static void nv04_emit_blend(struct nv04_context* nv04) { uint32_t blend; blend=0x4; // texture MODULATE_ALPHA blend|=0x20; // alpha is MSB blend|=(2<<6); // flat shading blend|=(1<<8); // persp correct blend|=(0<<16); // no fog blend|=(nv04->blend->b_enable<<20); blend|=(nv04_blend_func(nv04->blend->b_src)<<24); blend|=(nv04_blend_func(nv04->blend->b_dst)<<28); BEGIN_RING(fahrenheit, NV04_DX5_TEXTURED_TRIANGLE_BLEND, 1); OUT_RING(blend); }
static void nv04_emit_blend(GLcontext *ctx) { nouveauContextPtr nmesa = NOUVEAU_CONTEXT(ctx); uint32_t blend; blend=0x4; // texture MODULATE_ALPHA blend|=0x20; // alpha is MSB switch(ctx->Light.ShadeModel) { case GL_SMOOTH:blend|=(1<<6);break; case GL_FLAT: blend|=(2<<6);break; default:break; } if (ctx->Hint.PerspectiveCorrection!=GL_FASTEST) blend|=(1<<8); blend|=(ctx->Fog.Enabled<<16); blend|=(ctx->Color.BlendEnabled<<20); blend|=(nv04_blend_func(ctx->Color.BlendSrcRGB)<<24); blend|=(nv04_blend_func(ctx->Color.BlendDstRGB)<<28); BEGIN_RING_CACHE(NvSub3D, NV04_DX5_TEXTURED_TRIANGLE_BLEND, 1); OUT_RING_CACHE(blend); }