public RenderStereoTextureCommand(int width, int height, StereoRenderer stereoRenderer) : base(width, height, stereoRenderer.Scene) { this.CommandAttributes |= CommandAttributes.StereoRendering; this.sceneManager = stereoRenderer.Scene; this.stereoRenderer = stereoRenderer; this.stereoCamera = (StereoCamera)stereoRenderer.Camera; this.stereoCamera.StereoParametersChanged += RequestUpdate; Texture2DDescription StereoTextureDesc = new Texture2DDescription { ArraySize = 1, BindFlags = BindFlags.RenderTarget | BindFlags.ShaderResource, CpuAccessFlags = CpuAccessFlags.None, Format = Format.R8G8B8A8_UNorm, Width = 2 * width, Height = height, MipLevels = 1, OptionFlags = ResourceOptionFlags.None, SampleDescription = new SampleDescription(1, 0), Usage = ResourceUsage.Default }; Texture = new Texture2D(Game.Context.Device, StereoTextureDesc); }
protected Renderer(IDeviceContext deviceContext) { DeviceContext = deviceContext; DeviceContext.DeviceDisposing += OnDisposing; DeviceContext.DeviceResize += OnDeviceResize; DeviceContext.DeviceSuspend += OnDeviceSuspend; DeviceContext.DeviceResume += OnDeviceResume; Scene = new SceneManager(); Camera = new QuaternionCam(); buffers = new List<SlimDX.Direct3D11.Buffer>(); }
public RenderToTextureCommand(int width, int height, SceneManager sceneTree) : base(CommandType.Action) { SceneTree = sceneTree; RenderTextureDesc = new Texture2DDescription { ArraySize = 1, BindFlags = BindFlags.RenderTarget | BindFlags.ShaderResource, CpuAccessFlags = CpuAccessFlags.None, Format = Format.R8G8B8A8_UNorm, Width = width, Height = height, MipLevels = 1, OptionFlags = ResourceOptionFlags.None, SampleDescription = new SampleDescription(1, 0), Usage = ResourceUsage.Default }; texture = new Texture2D(Game.Context.Device, RenderTextureDesc); Texture2DDescription depthBufferDesc = new Texture2DDescription { ArraySize = 1, BindFlags = BindFlags.DepthStencil, CpuAccessFlags = CpuAccessFlags.None, Format = Format.D32_Float, Width = width, Height = height, MipLevels = 1, OptionFlags = ResourceOptionFlags.None, SampleDescription = new SampleDescription(1, 0), Usage = ResourceUsage.Default }; using (Texture2D depthBuffer = new Texture2D(Game.Context.Device, depthBufferDesc)) { DepthStencilView = new DepthStencilView(Game.Context.Device, depthBuffer); } RenderTargetView = new RenderTargetView(Game.Context.Device, texture); }
public void AddToScene(Renderer renderer, SceneManager scene) { UIMaterial uiMaterial = new UIMaterial(); RenderableNode rNode = new RenderableNode(InterfaceMesh); CameraOverlayNode caNode = new CameraOverlayNode(renderer.Camera); caNode.AppendChild(rNode); uiRCommand = new UserInterfaceRenderCommand(renderer, this, rNode); uiUCommand = new UserInterfaceUpdateCommand(this, uiRCommand); scene.Tree.RootNode.AppendChild(caNode); scene.CommandManager.AddUpdateCommand(uiUCommand); scene.CommandManager.AddBaseCommands(uiMaterial.PreRenderStates); scene.CommandManager.AddRenderCommand(uiRCommand); scene.CommandManager.AddBaseCommands(uiMaterial.PostRenderStates); }