public static void Begin() { #if DEBUG PixHelper.BeginEvent(Color.Orange, "QuadRenderer Batch"); #endif spritesDrawn = -1; vertices.Clear(); Display.context.VertexShader.SetConstantBuffer(0, Display.screenBuffer); GraphicsManager.SetRastState(DeviceStates.rastStateDrawing); GraphicsManager.SetDepthState(DeviceStates.depthDisabled); GraphicsManager.SetBlendState(DeviceStates.blendStateTrans); GraphicsManager.SetPrimitiveTopology(PrimitiveTopology.TriangleList); ShaderManager.Apply("VS_2D"); ShaderManager.Apply("PS_2D"); Display.context.InputAssembler.SetIndexBuffer(indexBuffer, SharpDX.DXGI.Format.R16_UInt, 0); Display.context.InputAssembler.SetVertexBuffers(0, vertexBufferBind); ResetCut(); //Display.context.Rasterizer.SetScissorRectangles(new Rectangle(0, 0, Display.width, Display.height)); }
public void Render() { if (vertices.Count > 0) { ShaderManager.Apply("VS_Debug"); ShaderManager.Apply("PS_Debug"); GraphicsManager.SetBlendState(DeviceStates.blendStateTrans); GraphicsManager.SetDepthState(DeviceStates.depthWriteOff); GraphicsManager.SetPrimitiveTopology(SharpDX.Direct3D.PrimitiveTopology.TriangleList); Display.context.InputAssembler.SetVertexBuffers(0, new VertexBufferBinding(vertexBuffer, VertexColor.SizeInBytes, 0)); while (vertices.Seek()) { DataStream stream; Display.context.MapSubresource(vertexBuffer, MapMode.WriteDiscard, MapFlags.None, out stream); stream.WriteRange(vertices.Get()); Display.context.UnmapSubresource(vertexBuffer, 0); Display.context.Draw(vertices.GetItemsCount(), 0); } vertices.Clear(); } }