public ImposterFloat(int width, int height, Format format, Color4 background, ImposterOverlayType overlayType) { if (Effect == null) { Effect = SharedEffects.Effects["ImposterFloat"] as ImposterFloatEffect; } m_Disposed = true; m_BackupState = new RenderTargetBackupState(); m_ImposterView = new View3D(new System.Drawing.Rectangle(0, 0, width, height), width, height, (float)Math.PI / 4, 1f); m_Format = format; m_Background = background; m_OverlayType = overlayType; }
public void BeginRender(RenderTargetView imposterTarget, Color4 background, Viewport viewport, RenderTargetBackupState state) { if (m_Disposed == true) { return; } SlimDX.Direct3D11.DeviceContext context = GameEnvironment.Device.ImmediateContext; state.RenderTargets = context.OutputMerger.GetRenderTargets(1); state.Viewports = context.Rasterizer.GetViewports(); context.OutputMerger.SetTargets(imposterTarget); context.Rasterizer.SetViewports(viewport); context.ClearRenderTargetView(imposterTarget, background); }
public void EndRender(RenderTargetBackupState state) { if (m_Disposed == true) { return; } SlimDX.Direct3D11.DeviceContext context = GameEnvironment.Device.ImmediateContext; context.OutputMerger.SetTargets(state.RenderTargets); context.Rasterizer.SetViewports(state.Viewports); }
public void BeginRender(RenderTargetView imposterTarget, DepthStencilView depthView, DepthStencilState depthState, Color4 background, Viewport viewport, RenderTargetBackupState state) { if (m_Disposed == true) { return; } SlimDX.Direct3D11.DeviceContext context = GameEnvironment.Device.ImmediateContext; state.RenderTargets = context.OutputMerger.GetRenderTargets(1); state.Viewports = context.Rasterizer.GetViewports(); // GameEnvironment.Device.OutputMerger.SetTargets(GameEnvironment.DepthView, GameEnvironment.RenderView); // GameEnvironment.Device.ClearDepthStencilView(GameEnvironment.DepthView, DepthStencilClearFlags.Depth, 1.0f, 0); // GameEnvironment.Device.OutputMerger.DepthStencilState = GameEnvironment.DepthState; context.OutputMerger.SetTargets(depthView, imposterTarget); context.Rasterizer.SetViewports(viewport); context.ClearDepthStencilView(depthView, DepthStencilClearFlags.Depth, 1.0f, 0); context.ClearRenderTargetView(imposterTarget, background); context.OutputMerger.DepthStencilState = depthState; }