//レンダリングターゲットをクリアする void ShadowMapRenderTarget::ClearViews(){ auto Dev = App::GetApp()->GetDeviceResources(); auto pD3D11Device = Dev->GetD3DDevice(); auto pD3D11DeviceContext = Dev->GetD3DDeviceContext(); //シャドウマップクリア pD3D11DeviceContext->ClearDepthStencilView(pImpl->m_DepthStencilView.Get(), D3D11_CLEAR_DEPTH, 1.0, 0); }
/** * Callback to set up for rendering into a given display (which may have one or more eyes). ***/ void OSVR_DirectMode::SetupDisplay(void* userData, osvr::renderkit::GraphicsLibrary cLibrary, osvr::renderkit::RenderBuffer cBuffers) { // Make sure our pointers are filled in correctly. The config file selects // the graphics library to use, and may not match our needs. if (cLibrary.D3D11 == nullptr) { std::cerr << "SetupDisplay: No D3D11 GraphicsLibrary" << std::endl; return; } if (cBuffers.D3D11 == nullptr) { std::cerr << "SetupDisplay: No D3D11 RenderBuffer" << std::endl; return; } auto pcContext = cLibrary.D3D11->context; auto renderTargetView = cBuffers.D3D11->colorBufferView; auto depthStencilView = cBuffers.D3D11->depthStencilView; // Set up to render to the textures for this eye // RenderManager will have already set our render target to this // eye's buffer, so we don't need to do that here. FLOAT colorRgba[4] = { 0.0f, 0.0f, 0.0f, 1.0f }; pcContext->ClearRenderTargetView(renderTargetView, colorRgba); pcContext->ClearDepthStencilView(depthStencilView, D3D11_CLEAR_DEPTH | D3D11_CLEAR_STENCIL, 1.0f, 0); }
void RenderWindowD11_2::BeginRender() { auto context = m_pRSystem->GetD3DDeviceContext(); context->RSSetViewports(1, &m_screenViewport); ID3D11RenderTargetView *const targets[1] = { m_d3dRenderTargetView.Get() }; context->OMSetRenderTargets(1, targets, m_d3dDepthStencilView.Get()); context->ClearRenderTargetView(m_d3dRenderTargetView.Get(), DirectX::Colors::CornflowerBlue); // TODO SET COLOR context->ClearDepthStencilView(m_d3dDepthStencilView.Get(), D3D11_CLEAR_DEPTH | D3D11_CLEAR_STENCIL, 1.0f, 0); }
void BeginSceneCommand::run(ICommandContext* context) { auto device = context->GetDevice(); auto graphicsContext = device->GetContext(); graphicsContext->ClearRenderTargetView( device->GetRenderTargetView(), reinterpret_cast<const float*>(&Math::Color::Grey) ); graphicsContext->ClearDepthStencilView( device->GetDepthStencilView(), D3D11_CLEAR_DEPTH | D3D11_CLEAR_STENCIL, 1.0, 0 ); }
void Camera::Render() const { auto context = GraphicsDevice::GetInstance()->GetDeviceContext(); auto render_buffer= GraphicsDevice::GetInstance()->GetRenderTargetView(); auto depth_buffer = GraphicsDevice::GetInstance()->GetDepthStencilView(); SetViewport(); //set target context->OMSetRenderTargets(1, &render_buffer, depth_buffer); //clear context->ClearRenderTargetView(render_buffer, (const float *) &m_clear_color); context->ClearDepthStencilView(depth_buffer, D3D11_CLEAR_DEPTH | D3D11_CLEAR_STENCIL, 1.0f, 0); //render m_current = GetGameObject()->GetComponent<Camera>(); Renderer::RenderAll(); }
// Helper method to clear the back buffers. void Application::Clear() { m_deviceResources->PIXBeginEvent(L"Clear"); // Clear the views. auto context = m_deviceResources->GetD3DDeviceContext(); auto renderTarget = m_deviceResources->GetRenderTargetView(); auto depthStencil = m_deviceResources->GetDepthStencilView(); float color[4] = { 0.0f, 0.0f, 0.0f, 0.0f }; context->ClearRenderTargetView(renderTarget, color); context->ClearDepthStencilView(depthStencil, D3D11_CLEAR_DEPTH | D3D11_CLEAR_STENCIL, 1.0f, 0); context->OMSetRenderTargets(1, &renderTarget, depthStencil); // Set the viewport. auto viewport = m_deviceResources->GetScreenViewport(); context->RSSetViewports(1, &viewport); m_deviceResources->PIXEndEvent(); }
//操作 //スクリーン全体を指定の色でクリアする void DefaultRenderTarget::ClearViews(){ auto Dev = App::GetApp()->GetDeviceResources(); auto pD3D11Device = Dev->GetD3DDevice(); auto pD3D11DeviceContext = Dev->GetD3DDeviceContext(); //バッファのクリア float Color[4] = { 0, 0, 0,1.0f }; D3D11_VIEWPORT ViewPort; //ビューポートのセットアップ ZeroMemory(&ViewPort, sizeof(ViewPort)); ViewPort.Width = (float)App::GetApp()->GetGameWidth(); ViewPort.Height = (float)App::GetApp()->GetGameHeight(); ViewPort.MinDepth = 0.0f; ViewPort.MaxDepth = 1.0f; ViewPort.TopLeftX = 0; ViewPort.TopLeftY = 0; pD3D11DeviceContext->RSSetViewports(1, &ViewPort); //レンダリングターゲットのクリア pD3D11DeviceContext->ClearRenderTargetView(pImpl->m_D3D11RenderTargetView.Get(), Color); //通常の深度バッファとステンシルバッファのクリア pD3D11DeviceContext->ClearDepthStencilView(pImpl->m_DepthStencilView.Get(), D3D11_CLEAR_DEPTH, 1.0f, 0); }