Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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();
            }
        }