mirror of
https://github.com/borgesdan/xn65
synced 2024-12-29 21:54:47 +01:00
Implementa GraphicsDevice::SetRenderTarget
This commit is contained in:
parent
491626d654
commit
b27b04388a
@ -101,13 +101,19 @@ namespace xna {
|
|||||||
//Render Target
|
//Render Target
|
||||||
//
|
//
|
||||||
|
|
||||||
impl->_renderTarget2D = RenderTarget2D::FromBackBuffer(_this);
|
if (renderTarget) {
|
||||||
|
renderTarget->Initialize();
|
||||||
|
impl->_renderTarget2D = renderTarget;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
impl->_renderTarget2D = RenderTarget2D::FromBackBuffer(_this);
|
||||||
|
}
|
||||||
|
|
||||||
const auto& renderView = impl->_renderTarget2D->impl2->_renderTargetView;
|
const auto& renderView = impl->_renderTarget2D->impl2->_renderTargetView;
|
||||||
impl->_context->OMSetRenderTargets(1, renderView.GetAddressOf(), nullptr);
|
impl->_context->OMSetRenderTargets(1, renderView.GetAddressOf(), nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GraphicsDevice::Present() const {
|
bool GraphicsDevice::Present() const {
|
||||||
const auto currentPresenInterval = presentationParameters->PresentationInterval;
|
|
||||||
bool result = impl->_swapChain->Present(impl->vSyncValue != 0);
|
bool result = impl->_swapChain->Present(impl->vSyncValue != 0);
|
||||||
|
|
||||||
impl->_context->OMSetRenderTargets(
|
impl->_context->OMSetRenderTargets(
|
||||||
|
@ -30,6 +30,9 @@ namespace xna {
|
|||||||
Exception::Throw(Exception::UNABLE_TO_INITIALIZE);
|
Exception::Throw(Exception::UNABLE_TO_INITIALIZE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (impl2->_renderTargetView)
|
||||||
|
return;
|
||||||
|
|
||||||
impl->dxDescription.Width = width;
|
impl->dxDescription.Width = width;
|
||||||
impl->dxDescription.Height = height;
|
impl->dxDescription.Height = height;
|
||||||
impl->dxDescription.BindFlags = D3D11_BIND_FLAG::D3D11_BIND_RENDER_TARGET;
|
impl->dxDescription.BindFlags = D3D11_BIND_FLAG::D3D11_BIND_RENDER_TARGET;
|
||||||
|
@ -45,7 +45,9 @@ namespace xna {
|
|||||||
constexpr xna::Viewport Viewport() const { return viewport; }
|
constexpr xna::Viewport Viewport() const { return viewport; }
|
||||||
//Gets or sets a viewport identifying the portion of the render target to receive draw calls.
|
//Gets or sets a viewport identifying the portion of the render target to receive draw calls.
|
||||||
void Viewport(xna::Viewport const& viewport);
|
void Viewport(xna::Viewport const& viewport);
|
||||||
|
//Sets a new render target for this GraphicsDevice.
|
||||||
|
void SetRenderTarget(P_RenderTarget2D const& renderTarget) { this->renderTarget = renderTarget; }
|
||||||
|
|
||||||
void Initialize();
|
void Initialize();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@ -55,6 +57,7 @@ namespace xna {
|
|||||||
P_RasterizerState rasterizerState{ nullptr };
|
P_RasterizerState rasterizerState{ nullptr };
|
||||||
P_SamplerStateCollection samplerStateCollection{ nullptr };
|
P_SamplerStateCollection samplerStateCollection{ nullptr };
|
||||||
P_PresentationParameters presentationParameters{ nullptr };
|
P_PresentationParameters presentationParameters{ nullptr };
|
||||||
|
P_RenderTarget2D renderTarget{ nullptr };
|
||||||
GraphicsProfile graphicsProfile{ GraphicsProfile::HiDef };
|
GraphicsProfile graphicsProfile{ GraphicsProfile::HiDef };
|
||||||
xna::Viewport viewport{};
|
xna::Viewport viewport{};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user