mirror of
https://github.com/borgesdan/xn65
synced 2024-12-29 21:54:47 +01:00
35 lines
941 B
C++
35 lines
941 B
C++
#ifndef XNA_PLATFORM_SWAPCHAIN_DX_HPP
|
|
#define XNA_PLATFORM_SWAPCHAIN_DX_HPP
|
|
|
|
#include "../graphics/swapchain.hpp"
|
|
#include "window-dx.hpp"
|
|
#include "dxheaders.hpp"
|
|
#include "../graphics/gresource.hpp"
|
|
|
|
namespace xna {
|
|
class SwapChain : public ISwapChain, public GraphicsResource {
|
|
public:
|
|
SwapChain(GraphicsDevice* device): GraphicsResource(device){}
|
|
|
|
virtual ~SwapChain() override {
|
|
if (dxSwapChain) {
|
|
dxSwapChain->Release();
|
|
dxSwapChain = nullptr;
|
|
}
|
|
}
|
|
|
|
virtual bool Initialize(xna_error_nullarg) override;
|
|
bool Initialize(GameWindow const& gameWindow, DXGI_SWAP_CHAIN_DESC1 const& desc, DXGI_SWAP_CHAIN_FULLSCREEN_DESC const& fullScreenDesc, xna_error_nullarg);
|
|
|
|
bool GetBackBuffer(ID3D11Texture2D*& texture2D);
|
|
|
|
bool Present(bool vsync);
|
|
|
|
public:
|
|
IDXGISwapChain1* dxSwapChain{ nullptr };
|
|
DXGI_SWAP_CHAIN_DESC1 dxDescription{};
|
|
DXGI_SWAP_CHAIN_FULLSCREEN_DESC dxFullScreenDescription{};
|
|
};
|
|
}
|
|
|
|
#endif |