port from perforce
This commit is contained in:
44
aiwaz/Aiwaz/Resources/RenderTarget/SwapChain/SwapChain.h
Normal file
44
aiwaz/Aiwaz/Resources/RenderTarget/SwapChain/SwapChain.h
Normal file
@@ -0,0 +1,44 @@
|
||||
#pragma once
|
||||
|
||||
#include "IEngine.h"
|
||||
#include "ISwapChain.h"
|
||||
#include "../RenderTargetBase.h"
|
||||
|
||||
|
||||
class SwapChain
|
||||
: public RenderTargetBase
|
||||
, public ISwapChain
|
||||
{
|
||||
public:
|
||||
SwapChain(IEngine& argEngine);
|
||||
virtual ~SwapChain();
|
||||
|
||||
virtual void SetWindowParameters(HWND argWindowHandle, uint32 argWidth = 0, uint32 argHeight = 0, uint32 argRefreshRate = 0, DataFormat::Enumeration argFormat = DataFormat::Unknown, uint32 argMultiSampleCount = 0, uint32 argMultiSampleQuality = 0);
|
||||
virtual void Resize(int argWidth, int argHeight);
|
||||
virtual void Present();
|
||||
|
||||
virtual bool get_Fullscreen() const { return !m_SwapChainDescription.Windowed; }
|
||||
virtual void set_Fullscreen(bool argState);
|
||||
virtual bool get_VSync() const { return m_VSync; }
|
||||
virtual void set_VSync(bool argState) {m_VSync = argState; }
|
||||
|
||||
virtual IRenderTargetBase& get_Base() { return *dynamic_cast<IRenderTargetBase*>(this); }
|
||||
|
||||
// IRenderTargetBase
|
||||
virtual uint32 get_RenderTargetWidth() const { return m_SwapChainDescription.BufferDesc.Width; }
|
||||
virtual uint32 get_RenderTargetHeight() const { return m_SwapChainDescription.BufferDesc.Height; }
|
||||
virtual DataFormat::Enumeration get_RenderTargetFormat() const { return (DataFormat::Enumeration)m_SwapChainDescription.BufferDesc.Format; }
|
||||
|
||||
protected:
|
||||
//ICommandUser
|
||||
virtual string8 get_UserName() const { return "SwapChain"; }
|
||||
|
||||
protected:
|
||||
void RetriveData();
|
||||
virtual void Uninitialize();
|
||||
|
||||
private:
|
||||
DXGI_SWAP_CHAIN_DESC m_SwapChainDescription;
|
||||
IDXGISwapChain* m_SwapChain;
|
||||
bool m_VSync;
|
||||
};
|
||||
Reference in New Issue
Block a user