RsRenderTarget *RsUtil::GetNewRenderTarget() { // Create a new render target RsRenderTarget *pRenderTarget = RsImpl::pInstance()->GetNewRenderTarget(); // Make sure any new render target is set to the default back buffer pRenderTarget->SetTexture( BtNull ); // Return the render target return pRenderTarget; }
void SbPaint::SetupRenderToTexture() { // Make a new render target RsRenderTarget *pRenderTarget = RsUtil::GetNewRenderTarget(); // Set the render target name pRenderTarget->SetName( "painting" ); // Make a new render target RsCamera camera( (BtFloat)m_width, (BtFloat)m_height, 0.01f, 10000.0f, RsViewport(0, 0, m_width, m_height) ); // Update the camera camera.Update(); // Set the texture RsTexture *pTexture = m_pRenderTarget->GetTexture(0); pRenderTarget->SetTexture( pTexture ); // Set the camera pRenderTarget->SetCamera(camera); // Clear the render target if( m_isClear ) { m_isClear = BtFalse; pRenderTarget->SetCleared( BtTrue ); } else { pRenderTarget->SetCleared( BtFalse ); } // Clear the z buffer pRenderTarget->SetZCleared( BtFalse ); // Clear the screen to black pRenderTarget->SetClearColour( RsColour::WhiteColour() ); // Apply this render target pRenderTarget->Apply(); }