예제 #1
0
 internal static void DrawIndexedInstancedIndirectGBufferPass(MyRenderContext rc, Buffer bufferForArgsRef, int alignedByteOffsetForArgs)
 {
     BeginDrawGBufferPass(rc);
     rc.DrawIndexedInstancedIndirect(bufferForArgsRef, alignedByteOffsetForArgs);
     SwitchDrawGBufferPass(rc);
     rc.DrawIndexedInstancedIndirect(bufferForArgsRef, alignedByteOffsetForArgs);
     EndDrawGBufferPass(rc);
 }
예제 #2
0
 internal static void DrawIndexedInstancedIndirectGPUParticles(MyRenderContext rc, Buffer bufferForArgsRef, int alignedByteOffsetForArgs)
 {
     rc.AllShaderStages.SetConstantBuffer(MyCommon.FRAME_SLOT, MyCommon.FrameConstantsStereoLeftEye);
     SetViewport(rc, MyStereoRegion.LEFT);
     rc.DrawIndexedInstancedIndirect(bufferForArgsRef, alignedByteOffsetForArgs);
     rc.AllShaderStages.SetConstantBuffer(MyCommon.FRAME_SLOT, MyCommon.FrameConstantsStereoRightEye);
     SetViewport(rc, MyStereoRegion.RIGHT);
     rc.DrawIndexedInstancedIndirect(bufferForArgsRef, alignedByteOffsetForArgs);
     rc.AllShaderStages.SetConstantBuffer(MyCommon.FRAME_SLOT, MyCommon.FrameConstants);
     SetViewport(rc, MyStereoRegion.FULLSCREEN);
 }
예제 #3
0
 internal static void DrawIndexedInstancedIndirectGPUParticles(MyRenderContext rc, IBuffer bufferForArgsRef, int alignedByteOffsetForArgs)
 {
     rc.AllShaderStages.SetConstantBuffer(MyCommon.FRAME_SLOT, MyCommon.FrameConstantsStereoLeftEye);
     SetViewport(rc, MyStereoRegion.LEFT);
     rc.DrawIndexedInstancedIndirect(bufferForArgsRef, alignedByteOffsetForArgs);
     rc.AllShaderStages.SetConstantBuffer(MyCommon.FRAME_SLOT, MyCommon.FrameConstantsStereoRightEye);
     SetViewport(rc, MyStereoRegion.RIGHT);
     rc.DrawIndexedInstancedIndirect(bufferForArgsRef, alignedByteOffsetForArgs);
     rc.AllShaderStages.SetConstantBuffer(MyCommon.FRAME_SLOT, MyCommon.FrameConstants);
     SetViewport(rc, MyStereoRegion.FULLSCREEN);
 }
예제 #4
0
 internal static void DrawIndexedInstancedIndirectGBufferPass(MyRenderContext rc, IBuffer bufferForArgsRef, int alignedByteOffsetForArgs)
 {
     BeginDrawGBufferPass(rc);
     rc.DrawIndexedInstancedIndirect(bufferForArgsRef, alignedByteOffsetForArgs);
     SwitchDrawGBufferPass(rc);
     rc.DrawIndexedInstancedIndirect(bufferForArgsRef, alignedByteOffsetForArgs);
     EndDrawGBufferPass(rc);
 }