reworked begin and end
This commit is contained in:
+34
-14
@@ -345,20 +345,37 @@ void CFunnyWorldRenderer::Frame( float fDelta )
|
||||
IMAGE_LAYOUT_UNDEFINED, IMAGE_LAYOUT_DEPTH_STENCIL,
|
||||
STAGE_HAZARD_NONE, STAGE_HAZARD_RASTER_EARLY_DEPTH_OUT,
|
||||
BARRIER_HAZARD_DEPTH_STENCIL);
|
||||
m_pRasterCommandList->SetRenderResolution(uWidth, uHeight);
|
||||
m_pRasterCommandList->SetRenderTarget(0, v->m_pColor);
|
||||
m_pRasterCommandList->SetRenderTarget(1, v->m_pNormal);
|
||||
m_pRasterCommandList->SetRenderTarget(2, v->m_pWorldCoords);
|
||||
m_pRasterCommandList->SetDepthTarget(v->m_pDepth);
|
||||
m_pRasterCommandList->SetViewport(0, 0, uWidth, uHeight, 0, 1);
|
||||
m_pRasterCommandList->SetScissors(0, 0, uWidth, uHeight);
|
||||
m_pRasterCommandList->SetClearColor(0, 0, 0, 0, 0);
|
||||
m_pRasterCommandList->SetClearColor(1, 0, 0, 0, 0);
|
||||
m_pRasterCommandList->SetClearColor(2, 0, 0, 0, 0);
|
||||
m_pRasterCommandList->SetClearDepth(1);
|
||||
m_pRasterCommandList->SetLoadStoreModes(0, LOAD_MODE_CLEAR, STORE_MODE_STORE);
|
||||
m_pRasterCommandList->SetLoadStoreModes(1, LOAD_MODE_CLEAR, STORE_MODE_STORE);
|
||||
m_pRasterCommandList->SetLoadStoreModes(2, LOAD_MODE_CLEAR, STORE_MODE_STORE);
|
||||
RenderImage images[] = {
|
||||
{
|
||||
v->m_pColor,
|
||||
LOAD_MODE_CLEAR,
|
||||
STORE_MODE_STORE,
|
||||
},
|
||||
{
|
||||
v->m_pNormal,
|
||||
LOAD_MODE_CLEAR,
|
||||
STORE_MODE_STORE,
|
||||
},
|
||||
{
|
||||
v->m_pWorldCoords,
|
||||
LOAD_MODE_CLEAR,
|
||||
STORE_MODE_STORE,
|
||||
}
|
||||
|
||||
};
|
||||
RenderImage depth = {
|
||||
v->m_pDepth,
|
||||
LOAD_MODE_CLEAR,
|
||||
STORE_MODE_STORE,
|
||||
{.depth = 0},
|
||||
};
|
||||
BeginInfo begin = {};
|
||||
begin.uWidth = uWidth;
|
||||
begin.uHeight = uHeight;
|
||||
begin.pDepth = &depth;
|
||||
begin.pRenderImages = images;
|
||||
begin.uRenderImageCount = sizeof(images)/sizeof(*images);
|
||||
m_pRasterCommandList->Begin(&begin);
|
||||
uint32_t uTotalMeshes = 0;
|
||||
uint32_t u = 0;
|
||||
for ( auto mesh: m_pMeshes)
|
||||
@@ -390,6 +407,8 @@ void CFunnyWorldRenderer::Frame( float fDelta )
|
||||
m_pRasterMaterial->PSSetTextureArray(1, m_pTextures);
|
||||
|
||||
m_pRasterCommandList->SetMaterial(m_pRasterMaterial);
|
||||
m_pRasterCommandList->SetViewport(0, 0, uWidth, uHeight, 0, 1);
|
||||
m_pRasterCommandList->SetScissors(0, 0, uWidth, uHeight);
|
||||
u = 0;
|
||||
for ( auto mesh: m_pMeshes)
|
||||
{
|
||||
@@ -399,6 +418,7 @@ void CFunnyWorldRenderer::Frame( float fDelta )
|
||||
m_pRasterCommandList->DrawPrimitives(mesh->m_pVertexBuffer->GetSize()/32, 0, mesh->m_instances.GetSize(), u);
|
||||
u += mesh->m_instances.GetSize();
|
||||
}
|
||||
m_pRasterCommandList->End();
|
||||
m_pRasterCommandList->Barrier(STAGE_HAZARD_RASTER_COLOR_OUT, STAGE_HAZARD_NONE, 0);
|
||||
m_pRasterCommandList->BarrierTransition(
|
||||
v->m_pColor,
|
||||
|
||||
Reference in New Issue
Block a user