11#ifndef INCGUARD_MGL_D3D11_DEVICE_H_1614578619
12#define INCGUARD_MGL_D3D11_DEVICE_H_1614578619
15#if defined(MGL_RENDERER_ENABLE_D3D11)
26namespace MGL::Render::D3D11
54 return _immediateContext;
100 return _vertexBuffer;
106 bool SetRenderTarget(ID3D11RenderTargetView *renderTargetView,
float width,
float height)
noexcept;
121 return _mainOrthogonalMatrixBuffer;
125 bool InitializeOrthogonalMatrixBuffer() noexcept;
126 bool InitializeVertexBuffer() noexcept;
127 bool InitializeConstantBuffer() noexcept;
129 bool UpdateViewport(
float width,
float height) noexcept;
130 bool UpdateOrthogonalMatrix() noexcept;
132 static
void OnEventPostFrameUpdate(
void *callbackArg,
void *notifyArg) noexcept;
133 static
void OnEventChangeClientSize(
void *callbackArg,
void *notifyArg) noexcept;
135 D3D_DRIVER_TYPE _driverType;
136 D3D_FEATURE_LEVEL _featureLevel;
137 CComPtr<ID3D11Device> _d3dDevice;
138 CComPtr<ID3D11Device1> _d3dDevice1;
139 CComPtr<ID3D11DeviceContext> _immediateContext;
140 CComPtr<ID3D11DeviceContext1> _immediateContext1;
141 CComPtr<IDXGISwapChain> _swapChain;
142 CComPtr<IDXGISwapChain1> _swapChain1;
143 CComPtr<ID3D11RenderTargetView> _mainRenderTargetView;
144 CComPtr<ID3D11Texture2D> _mainTexture;
145 CComPtr<ID3D11Buffer> _mainOrthogonalMatrixBuffer;
146 DynamicBuffer _vertexBuffer;
151 CComPtr<ID3D11Buffer> buffer;
158 ConstBuffer(
size_t inSize)
164 std::vector<ConstBuffer> _constBufferArray;
165 ID3D11RenderTargetView *_currentRenderTarget;
167 Event::Handle _eventPostFrameUpdate;
168 Event::Handle _eventChangeClientSize;
MGL Direct3D11 デバイス管理
Definition mgl_d3d11_device.h:30
void ClearRenderTarget(const Color &color) noexcept
レンダーターゲットのクリア
Definition mgl_d3d11_device.cc:380
IDXGISwapChain * GetSwapChain() noexcept
スワップチェインの取得
Definition mgl_d3d11_device.h:63
DXGI_FORMAT GetMainRenderTargetPixelFormat() const noexcept
メインレンダーターゲットのピクセルフォーマットを取得
Definition mgl_d3d11_device.cc:619
void Present() noexcept
描画の更新
Definition mgl_d3d11_device.cc:398
static STL::unique_ptr< Device > & GetInstanceRef() noexcept
インスタンスの取得
Definition mgl_d3d11_device.cc:35
bool SetRenderTarget(ID3D11RenderTargetView *renderTargetView, float width, float height) noexcept
描画先の変更
Definition mgl_d3d11_device.cc:539
ID3D11DeviceContext * GetContext() noexcept
デバイスコンテキストの取得
Definition mgl_d3d11_device.h:52
bool SetFullscreen(bool isEnable) noexcept
フルスクリーンモードに切り替える
Definition mgl_d3d11_device.cc:334
bool SetFrameLatency(uint32_t latency) noexcept
フレーム遅延の最大値を設定
Definition mgl_d3d11_device.cc:309
constexpr DynamicBuffer & GetVertexBuffer() noexcept
動的バッファの取得
Definition mgl_d3d11_device.h:98
ID3D11Device * GetD3DDevice() noexcept
Direct3Dデバイスの取得
Definition mgl_d3d11_device.h:74
ID3D11Buffer * GetConstantBuffer(size_t size) noexcept
定数バッファを取得
Definition mgl_d3d11_device.cc:509
Device() noexcept
コンストラクタ
Definition mgl_d3d11_device.cc:48
~Device() noexcept
デストラクタ
Definition mgl_d3d11_device.cc:75
bool ResizeClientBuffer(float width, float height) noexcept
クライアントバッファのリサイズ
Definition mgl_d3d11_device.cc:567
ID3D11Buffer * GetMainOrthogonalMatrixBuffer() const noexcept
平行投影行列の取得
Definition mgl_d3d11_device.h:119
bool IsFullscreen() const noexcept
フルスクリーン状態の取得
Definition mgl_d3d11_device.cc:357
Vector2 GetMainRenderTargetSize() const noexcept
メインレンダーターゲットのサイズを取得
Definition mgl_d3d11_device.cc:634
bool Initialize() noexcept
初期化処理
Definition mgl_d3d11_device.cc:97
シングルトンテンプレート(共有ライブラリ用)
Definition mgl_singleton.h:44
std::unique_ptr< T, Deleter > unique_ptr
MGLのアロケータを利用するユニークポインタ
Definition mgl_stl_memory.h:247
色情報
Definition mgl_color.h:22
動的バッファ
Definition mgl_d3d11_device.h:81
DynamicBuffer() noexcept
初期化用コンストラクタ
Definition mgl_d3d11_device.h:86
CComPtr< ID3D11Buffer > buffer
バッファの先頭アドレス
Definition mgl_d3d11_device.h:82
size_t offset
現在のオフセット
Definition mgl_d3d11_device.h:83
2Dベクトル
Definition mgl_vector2.h:23