示例#1
0
		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; 
		}
示例#2
0
		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); 
		}
示例#3
0
		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);
		}
示例#4
0
		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;
		}