Ejemplo n.º 1
0
bool CRenderPipeline::Render(CRenderOperation* op,RenderParam* rp)
{
	Ast( NULL != rp);
	SetRenderStyle(rp->m_RS);
	SetWorld( rp->m_Mat );
	return RenderEx( op );
}
Ejemplo n.º 2
0
void CTerrainMgr::Render()
{
	if ( !m_Param.m_RS.m_ShaderType.IsNull() || st_isEditor ||	HasRenderFlag(TerrainFlag::Cliff) )
	{
		DWORD handle = (st_Terrain_PS_Shader_ID + (GetVtxDeclIndex(m_Mask) & ~(TerrainFlag::NormalSpecular)) );
		m_Param.m_RS.m_ShaderType |= st_Terrain_VS_Shader_ID;
		m_Param.m_RS.m_ShaderType |= handle;
	}

	CRenderPipeline::GetInst()->SetRenderStyle(m_Param.m_RS);
	CRenderPipeline::GetInst()->SetWorld(m_Param.m_Mat);
	m_ShadowFilter->UpdateShadowParams();
	RenderEx();
}
Ejemplo n.º 3
0
	bool CEditRenderPipeline::Render( CRenderOperation* op,RenderParam* rp )
	{
		Ast( NULL != rp);
		SetRenderStyle(rp->m_RS);
		SetWorld( rp->m_Mat );

		if(IsPixelFillCount)
		{
			StencilParam tmpStencilParam;
			tmpStencilParam.m_bEnable=TRUE;
			tmpStencilParam.m_nCompFun=CMP_ALWAYS;
			tmpStencilParam.m_nRefrence=0;
			tmpStencilParam.m_nFailedFlag=STENCILOP_KEEP;
			tmpStencilParam.m_nZFailedFlag=STENCILOP_KEEP;
			tmpStencilParam.m_nPassFlag=STENCILOP_INCRSAT;
			tmpStencilParam.m_nReadMask=0xFFFFFFFF;
			tmpStencilParam.m_nWriteMask=0xFFFFFFFF;
			//开启模板测试
			_SetRenderStyle( RS_STENCILENABLE,		DWORD(tmpStencilParam.m_bEnable) );
			_SetRenderStyle( RS_STENCILREF,			DWORD(tmpStencilParam.m_nRefrence) );
			_SetRenderStyle( RS_STENCILFUNC,		tmpStencilParam.m_nCompFun );
			_SetRenderStyle( RS_STENCILFAIL,		tmpStencilParam.m_nFailedFlag );
			_SetRenderStyle( RS_STENCILZFAIL,		tmpStencilParam.m_nZFailedFlag );
			_SetRenderStyle( RS_STENCILPASS,		tmpStencilParam.m_nPassFlag );
			_SetRenderStyle( RS_STENCILMASK,		tmpStencilParam.m_nReadMask );
			_SetRenderStyle( RS_STENCILWRITEMASK,	tmpStencilParam.m_nWriteMask );
			//绑定像素填充率计算的shader
		}
		else
		{
			//将模版缓存恢复到原来状态!即RS中 但是引擎没有封装,而且也不适合每一桢都调用 
			//所有将模版恢复到原来状态的设置代码写在外面 
		}

		return RenderEx( op );
	}
Ejemplo n.º 4
0
HRESULT MPMadPresenter::Render(REFERENCE_TIME frameStart, int left, int top, int right, int bottom, int width, int height)
{
  return RenderEx(frameStart, 0, 0, left, top, right, bottom, width, height);
}