本文整理汇总了C++中CBlender_Compile::r_ColorWriteEnable方法的典型用法代码示例。如果您正苦于以下问题:C++ CBlender_Compile::r_ColorWriteEnable方法的具体用法?C++ CBlender_Compile::r_ColorWriteEnable怎么用?C++ CBlender_Compile::r_ColorWriteEnable使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CBlender_Compile
的用法示例。
在下文中一共展示了CBlender_Compile::r_ColorWriteEnable方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
// TODO: DX10: if nesessary for NV stencil optimisation implement pass 1
void CBlender_light_occq::Compile(CBlender_Compile& C)
{
IBlender::Compile (C);
switch (C.iElement)
{
case 0: // occlusion testing
C.r_Pass ("dumb", "dumb",false,TRUE,FALSE,FALSE);
C.r_End ();
// Color write as well as culling and stencil are set up manually in code.
break;
case 1: // NV40 optimization :)
C.r_Pass ("stub_notransform_t", "dumb",false,FALSE,FALSE,FALSE);
C.r_ColorWriteEnable (false,false,false,false);
C.r_CullMode (D3DCULL_NONE);
C.r_Stencil (TRUE,D3DCMP_LESSEQUAL,0xff,0x00); // keep/keep/keep
C.r_End ();
break;
case 2: // Stencil clear in case we've ran out of markers.
C.r_Pass ("stub_notransform_t", "dumb",false,FALSE,FALSE,FALSE);
C.r_ColorWriteEnable (false,false,false,false);
C.r_CullMode (D3DCULL_NONE);
if( RImplementation.o.dx10_msaa )
C.r_Stencil (TRUE,D3DCMP_ALWAYS,0x00,0x7E, D3DSTENCILOP_ZERO, D3DSTENCILOP_ZERO, D3DSTENCILOP_ZERO);
else
{
// Clear all bits except the last one
C.r_Stencil (TRUE,D3DCMP_ALWAYS,0x00,0xFE, D3DSTENCILOP_ZERO, D3DSTENCILOP_ZERO, D3DSTENCILOP_ZERO);
}
//C.r_Stencil (TRUE,D3DCMP_ALWAYS,0x00,0xFF, D3DSTENCILOP_ZERO, D3DSTENCILOP_ZERO, D3DSTENCILOP_ZERO); // keep/keep/keep
C.r_End ();
break;
}
}
示例2:
void CBlender_Detail_Still::Compile (CBlender_Compile& C)
{
IBlender::Compile (C);
bool bUseATOC = (RImplementation.o.dx10_msaa_alphatest==CRender::MSAA_ATEST_DX10_0_ATOC);
switch(C.iElement)
{
case SE_R2_NORMAL_HQ: // deffer wave
if (bUseATOC)
{
uber_deffer (C,false,"detail_w","base_atoc",true,0,true);
C.r_Stencil ( TRUE,D3DCMP_ALWAYS,0xff,0x7f,D3DSTENCILOP_KEEP,D3DSTENCILOP_REPLACE,D3DSTENCILOP_KEEP);
C.r_StencilRef (0x01);
C.r_ColorWriteEnable(false, false, false, false);
C.r_CullMode (D3DCULL_NONE);
// Alpha to coverage.
C.RS.SetRS (XRDX10RS_ALPHATOCOVERAGE, TRUE);
C.r_End ();
}
uber_deffer (C,false,"detail_w","base",true, 0, true);
C.r_Stencil ( TRUE,D3DCMP_ALWAYS,0xff,0x7f,D3DSTENCILOP_KEEP,D3DSTENCILOP_REPLACE,D3DSTENCILOP_KEEP);
C.r_StencilRef (0x01);
C.r_CullMode (D3DCULL_NONE);
if (bUseATOC)
C.RS.SetRS ( D3DRS_ZFUNC, D3DCMP_EQUAL);
C.r_End ();
break;
case SE_R2_NORMAL_LQ: // deffer still
if (bUseATOC)
{
uber_deffer (C,false,"detail_s","base_atoc",true,0,true);
C.r_Stencil ( TRUE,D3DCMP_ALWAYS,0xff,0x7f,D3DSTENCILOP_KEEP,D3DSTENCILOP_REPLACE,D3DSTENCILOP_KEEP);
C.r_StencilRef (0x01);
C.r_CullMode (D3DCULL_NONE);
C.r_ColorWriteEnable(false, false, false, false);
// Alpha to coverage.
C.RS.SetRS (XRDX10RS_ALPHATOCOVERAGE, TRUE);
C.r_End ();
}
uber_deffer (C,false,"detail_s","base",true, 0, true);
C.r_Stencil ( TRUE,D3DCMP_ALWAYS,0xff,0x7f,D3DSTENCILOP_KEEP,D3DSTENCILOP_REPLACE,D3DSTENCILOP_KEEP);
C.r_StencilRef (0x01);
C.r_CullMode (D3DCULL_NONE);
// Need this for ATOC
if (bUseATOC)
C.RS.SetRS ( D3DRS_ZFUNC, D3DCMP_EQUAL);
C.r_End ();
break;
}
}
示例3: Compile
void CBlender_Model_EbB::Compile( CBlender_Compile& C )
{
IBlender::Compile(C);
if (oBlend.value)
{
// forward
LPCSTR vsname = 0;
LPCSTR psname = 0;
switch(C.iElement)
{
case 0:
case 1:
vsname = psname = "model_env_lq";
C.r_Pass (vsname,psname,TRUE,TRUE,FALSE,TRUE,D3DBLEND_SRCALPHA, D3DBLEND_INVSRCALPHA, TRUE,0);
//C.r_Sampler ("s_base", C.L_textures[0]);
//C.r_Sampler ("s_env", oT2_Name,false,D3DTADDRESS_CLAMP);
C.r_dx10Texture ("s_base", C.L_textures[0]);
C.r_dx10Texture ("s_env", oT2_Name);
C.r_dx10Sampler ("smp_base");
C.r_dx10Sampler ("smp_rtlinear");
C.r_End ();
break;
}
}
else
{
// deferred
switch(C.iElement)
{
case SE_R2_NORMAL_HQ: // deffer
uber_deffer (C,true, "model","base",false,0,true);
C.r_Stencil ( TRUE,D3DCMP_ALWAYS,0xff,0x7f,D3DSTENCILOP_KEEP,D3DSTENCILOP_REPLACE,D3DSTENCILOP_KEEP);
C.r_StencilRef (0x01);
C.r_End ();
break;
case SE_R2_NORMAL_LQ: // deffer
uber_deffer (C,false, "model","base",false,0,true);
C.r_Stencil ( TRUE,D3DCMP_ALWAYS,0xff,0x7f,D3DSTENCILOP_KEEP,D3DSTENCILOP_REPLACE,D3DSTENCILOP_KEEP);
C.r_StencilRef (0x01);
C.r_End ();
break;
case SE_R2_SHADOW: // smap
//if (RImplementation.o.HW_smap) C.r_Pass ("shadow_direct_model","dumb", FALSE,TRUE,TRUE,FALSE);
//else C.r_Pass ("shadow_direct_model","shadow_direct_base",FALSE);
C.r_Pass ("shadow_direct_model","dumb", FALSE,TRUE,TRUE,FALSE);
//C.r_Sampler ("s_base",C.L_textures[0]);
C.r_dx10Texture ("s_base",C.L_textures[0]);
C.r_dx10Sampler ("smp_base");
C.r_dx10Sampler ("smp_linear");
C.r_ColorWriteEnable(false, false, false, false);
C.r_End ();
break;
}
}
}
示例4:
void CBlender_deffer_model::Compile(CBlender_Compile& C)
{
IBlender::Compile (C);
BOOL bForward = FALSE;
if (oBlend.value && oAREF.value<16) bForward = TRUE;
if (oStrictSorting.value) bForward = TRUE;
if (bForward) {
// forward rendering
LPCSTR vsname,psname;
switch(C.iElement)
{
case 0: //
case 1: //
vsname = psname = "model_def_lq";
C.r_Pass (vsname,psname,TRUE,TRUE,FALSE,TRUE,D3DBLEND_SRCALPHA, D3DBLEND_INVSRCALPHA, TRUE,oAREF.value);
//C.r_Sampler ("s_base", C.L_textures[0]);
C.r_dx10Texture ("s_base", C.L_textures[0]);
C.r_dx10Sampler ("smp_base");
C.r_End ();
break;
default:
break;
}
} else {
BOOL bAref = oBlend.value;
// deferred rendering
// codepath is the same, only the shaders differ
bool bUseATOC = (bAref && (RImplementation.o.dx10_msaa_alphatest==CRender::MSAA_ATEST_DX10_0_ATOC));
C.TessMethod = oTessellation.IDselected;
switch(C.iElement)
{
case SE_R2_NORMAL_HQ: // deffer
if (bUseATOC)
{
uber_deffer (C,true,"model","base_atoc",bAref,0,true);
C.r_Stencil ( TRUE,D3DCMP_ALWAYS,0xff,0x7f,D3DSTENCILOP_KEEP,D3DSTENCILOP_REPLACE,D3DSTENCILOP_KEEP);
C.r_StencilRef (0x01);
C.r_ColorWriteEnable(false, false, false, false);
// Alpha to coverage.
C.RS.SetRS (XRDX10RS_ALPHATOCOVERAGE, TRUE);
C.r_End ();
}
uber_deffer (C,true, "model", "base",bAref,0,true);
C.r_Stencil ( TRUE,D3DCMP_ALWAYS,0xff,0x7f,D3DSTENCILOP_KEEP,D3DSTENCILOP_REPLACE,D3DSTENCILOP_KEEP);
C.r_StencilRef (0x01);
if (bUseATOC) C.RS.SetRS ( D3DRS_ZFUNC, D3DCMP_EQUAL);
C.r_End ();
break;
case SE_R2_NORMAL_LQ: // deffer
if (bUseATOC)
{
uber_deffer (C,false,"model","base_atoc",bAref,0,true);
C.r_Stencil ( TRUE,D3DCMP_ALWAYS,0xff,0x7f,D3DSTENCILOP_KEEP,D3DSTENCILOP_REPLACE,D3DSTENCILOP_KEEP);
C.r_StencilRef (0x01);
C.r_ColorWriteEnable(false, false, false, false);
// Alpha to coverage.
C.RS.SetRS (XRDX10RS_ALPHATOCOVERAGE, TRUE);
C.r_End ();
}
uber_deffer (C,false, "model", "base",bAref,0,true);
C.r_Stencil ( TRUE,D3DCMP_ALWAYS,0xff,0x7f,D3DSTENCILOP_KEEP,D3DSTENCILOP_REPLACE,D3DSTENCILOP_KEEP);
C.r_StencilRef (0x01);
if (bUseATOC) C.RS.SetRS ( D3DRS_ZFUNC, D3DCMP_EQUAL);
C.r_End ();
break;
case SE_R2_SHADOW: // smap
if (bAref)
{
//if (RImplementation.o.HW_smap) C.r_Pass ("shadow_direct_model_aref","shadow_direct_base_aref", FALSE,TRUE,TRUE,FALSE,D3DBLEND_ZERO,D3DBLEND_ONE,TRUE,220);
//else C.r_Pass ("shadow_direct_model_aref","shadow_direct_base_aref", FALSE);
//C.r_Sampler ("s_base",C.L_textures[0]);
C.r_Pass ("shadow_direct_model_aref","shadow_direct_base_aref", FALSE,TRUE,TRUE,FALSE,D3DBLEND_ZERO,D3DBLEND_ONE,TRUE,220);
C.r_dx10Texture ("s_base",C.L_textures[0]);
C.r_dx10Sampler ("smp_base");
C.r_dx10Sampler ("smp_linear");
C.r_ColorWriteEnable(false, false, false, false);
C.r_End ();
break;
}
else
{
//if (RImplementation.o.HW_smap) C.r_Pass ("shadow_direct_model","dumb", FALSE,TRUE,TRUE,FALSE);
//else C.r_Pass ("shadow_direct_model","shadow_direct_base",FALSE);
C.r_Pass ("shadow_direct_model","dumb", FALSE,TRUE,TRUE,FALSE);
//C.r_Sampler ("s_base",C.L_textures[0]);
C.r_dx10Texture ("s_base",C.L_textures[0]);
C.r_dx10Sampler ("smp_base");
C.r_dx10Sampler ("smp_linear");
C.r_ColorWriteEnable(false, false, false, false);
C.r_End ();
break;
}
}
//.........这里部分代码省略.........