public override void Draw(GameTime gameTime, ConstantBuffer constBuffer)
{
var dev = Game.GraphicsDevice;
if (((LineFlags) Flags).HasFlag(LineFlags.THIN_LINE)) {
dev.PipelineState = thinFactory[Flags];
}
else {
dev.PipelineState = factory[Flags];
}
if (isDirty) {
linesConstantBuffer.SetData(linesConstData);
isDirty = false;
}
dev.GeometryShaderConstants[0] = constBuffer;
dev.VertexShaderConstants[0] = constBuffer;
dev.PixelShaderConstants[0] = constBuffer;
dev.PixelShaderConstants[1] = linesConstantBuffer;
dev.PixelShaderResources[0] = Texture;
dev.PixelShaderSamplers[0] = SamplerState.AnisotropicWrap;
dev.SetupVertexInput(currentBuffer, null);
dev.Draw(currentBuffer.Capacity, 0);
}