Lines Matching full:blend
2 * \file blend.c
33 #include "blend.h"
42 * Check if given blend source factor is legal.
79 * Check if given blend destination factor is legal.
119 * Check if src/dest RGB/A blend factors are legal. If not generate
186 ctx->Color.Blend[buf]._UsesDualSrc =
187 (blend_factor_is_dual_src(ctx->Color.Blend[buf].SrcRGB) ||
188 blend_factor_is_dual_src(ctx->Color.Blend[buf].DstRGB) ||
189 blend_factor_is_dual_src(ctx->Color.Blend[buf].SrcA) ||
190 blend_factor_is_dual_src(ctx->Color.Blend[buf].DstA));
195 * Return the number of per-buffer blend states to update in
207 * Set the separate blend source/dest factors for all draw buffers.
234 if (ctx->Color.Blend[buf].SrcRGB != sfactorRGB ||
235 ctx->Color.Blend[buf].DstRGB != dfactorRGB ||
236 ctx->Color.Blend[buf].SrcA != sfactorA ||
237 ctx->Color.Blend[buf].DstA != dfactorA) {
245 if (ctx->Color.Blend[0].SrcRGB != sfactorRGB ||
246 ctx->Color.Blend[0].DstRGB != dfactorRGB ||
247 ctx->Color.Blend[0].SrcA != sfactorA ||
248 ctx->Color.Blend[0].DstA != dfactorA) {
265 ctx->Color.Blend[buf].SrcRGB = sfactorRGB;
266 ctx->Color.Blend[buf].DstRGB = dfactorRGB;
267 ctx->Color.Blend[buf].SrcA = sfactorA;
268 ctx->Color.Blend[buf].DstA = dfactorA;
273 ctx->Color.Blend[buf]._UsesDualSrc = ctx->Color.Blend[0]._UsesDualSrc;
286 * Set blend source/dest factors for one color buffer/target.
296 * Set separate blend source/dest factors for one color buffer/target.
315 if (ctx->Color.Blend[buf].SrcRGB == sfactorRGB &&
316 ctx->Color.Blend[buf].DstRGB == dfactorRGB &&
317 ctx->Color.Blend[buf].SrcA == sfactorA &&
318 ctx->Color.Blend[buf].DstA == dfactorA)
329 ctx->Color.Blend[buf].SrcRGB = sfactorRGB;
330 ctx->Color.Blend[buf].DstRGB = dfactorRGB;
331 ctx->Color.Blend[buf].SrcA = sfactorA;
332 ctx->Color.Blend[buf].DstA = dfactorA;
427 if (ctx->Color.Blend[buf].EquationRGB != mode ||
428 ctx->Color.Blend[buf].EquationA != mode) {
436 if (ctx->Color.Blend[0].EquationRGB != mode ||
437 ctx->Color.Blend[0].EquationA != mode) {
454 ctx->Color.Blend[buf].EquationRGB = mode;
455 ctx->Color.Blend[buf].EquationA = mode;
466 * Set blend equation for one color buffer/target.
489 if (ctx->Color.Blend[buf].EquationRGB == mode &&
490 ctx->Color.Blend[buf].EquationA == mode)
494 ctx->Color.Blend[buf].EquationRGB = mode;
495 ctx->Color.Blend[buf].EquationA = mode;
519 if (ctx->Color.Blend[buf].EquationRGB != modeRGB ||
520 ctx->Color.Blend[buf].EquationA != modeA) {
528 if (ctx->Color.Blend[0].EquationRGB != modeRGB ||
529 ctx->Color.Blend[0].EquationA != modeA) {
562 ctx->Color.Blend[buf].EquationRGB = modeRGB;
563 ctx->Color.Blend[buf].EquationA = modeA;
574 * Set separate blend equations for one color buffer/target.
608 if (ctx->Color.Blend[buf].EquationRGB == modeRGB &&
609 ctx->Color.Blend[buf].EquationA == modeA)
613 ctx->Color.Blend[buf].EquationRGB = modeRGB;
614 ctx->Color.Blend[buf].EquationA = modeA;
974 * Some drivers implement GL_FRAMEBUFFER_SRGB using a flag on the blend state
1013 for (i = 0; i < ARRAY_SIZE(ctx->Color.Blend); i++) {
1014 ctx->Color.Blend[i].SrcRGB = GL_ONE;
1015 ctx->Color.Blend[i].DstRGB = GL_ZERO;
1016 ctx->Color.Blend[i].SrcA = GL_ONE;
1017 ctx->Color.Blend[i].DstA = GL_ZERO;
1018 ctx->Color.Blend[i].EquationRGB = GL_FUNC_ADD;
1019 ctx->Color.Blend[i].EquationA = GL_FUNC_ADD;