殺虫侍
読み取り中…
検索中…
一致する文字列を見つけられません
renderer.h
[詳解]
1
7#pragma once
8#include "triangle.h"
9#include "shader.h"
10#include "render_param.h"
11#include "light.h"
12#include "renderer_2d.h"
13
21{
22public:
24 Renderer();
25
27 ~Renderer();
28
34 bool Initialize(HWND hWindow);
35
37 void Terminate();
38
40 void Draw();
41
43 void Swap();
44
52 bool CompileShader(const WCHAR* vsPath, const WCHAR* psPath, Shader& outShader);
53
58 ID3D11Device* GetDevice() { return m_pD3DDevice; }
59
64 ID3D11DeviceContext* GetDeviceContext() { return m_pImmediateContext; }
65
70 RenderParam GetRenderParam() { return m_renderParam; }
71
77 bool SetupViewTransform(const DirectX::XMMATRIX& viewMat);
78
83 const LightSet& GetLightSet() const { return m_lightSet; }
84
89 void SetEyePosLight(DirectX::XMFLOAT4 eyePos);
90
95 IDXGISwapChain* GetSwapChain() { return m_pSwapChain; }
96
101
102private:
104 bool initDeviceAndSwapChain(HWND hWindow);
106 bool initBackBuffer();
108 bool setupProjectionTransform();
110 bool createLightBuffer();
112 void setLight();
114 bool createSamplerState();
116 void compileShaders();
117
118 static const UINT FEATURE_LEVELS_NUM = 4;
119 D3D_FEATURE_LEVEL m_pFeatureLevels[FEATURE_LEVELS_NUM] = {};
120 D3D_FEATURE_LEVEL m_featureLevelsSupported;
121
122 ID3D11Device* m_pD3DDevice = nullptr;
123 ID3D11DeviceContext* m_pImmediateContext = nullptr;
124 IDXGISwapChain* m_pSwapChain = nullptr;
125
126 ID3D11RenderTargetView* m_pRenderTargetView = nullptr;
127 D3D11_VIEWPORT m_viewPort[1];
128
129 UINT m_backBufferNum = 3;
130 UINT m_screenWidth = 0;
131 UINT m_screenHeight = 0;
132
133 ID3D11BlendState* m_pBlendState = nullptr;
134
135 RenderParam m_renderParam;
136
137 float m_nearClipDist = 0.f;
138 float m_farClipDist = 0.f;
139 float m_fov = 0.f;
140
141 ID3D11DepthStencilView* m_pDepthStencilView = nullptr;
142 ID3D11DepthStencilState* m_pDepthState = nullptr;
143
144 LightSet m_lightSet;
145
146 ID3D11SamplerState* m_samplerState = nullptr;
147};
Shader TextureSpecularShader
テクスチャ+スペキュラシェーダー
Definition renderer.h:97
bool Initialize(HWND hWindow)
Direct3D デバイス・スワップチェーン・バックバッファを初期化する
Definition renderer.cpp:20
RenderParam GetRenderParam()
定数バッファセットを取得する
Definition renderer.h:70
ID3D11Device * GetDevice()
D3D デバイスポインタを取得する
Definition renderer.h:58
Shader SimpleShader
頂点カラーのみシェーダー
Definition renderer.h:99
Shader TextureShader
テクスチャのみシェーダー
Definition renderer.h:98
ID3D11DeviceContext * GetDeviceContext()
D3D デバイスコンテキストポインタを取得する
Definition renderer.h:64
void Swap()
バックバッファを画面に表示する
Definition renderer.cpp:125
Renderer()
コンストラクタ
Definition renderer.cpp:4
void Draw()
バックバッファをクリアして描画を開始する
Definition renderer.cpp:100
bool SetupViewTransform(const DirectX::XMMATRIX &viewMat)
ビュー変換行列を定数バッファに設定する
Definition renderer.cpp:354
bool CompileShader(const WCHAR *vsPath, const WCHAR *psPath, Shader &outShader)
頂点シェーダーとピクセルシェーダーをコンパイルする
Definition renderer.cpp:240
void Terminate()
全 Direct3D リソースを解放する
Definition renderer.cpp:222
void SetEyePosLight(DirectX::XMFLOAT4 eyePos)
ライトの視点座標を更新する
Definition renderer.cpp:431
Shader SpecularShader
スペキュラのみシェーダー
Definition renderer.h:100
const LightSet & GetLightSet() const
ライトセットを取得する
Definition renderer.h:83
IDXGISwapChain * GetSwapChain()
スワップチェーンポインタを取得する
Definition renderer.h:95
~Renderer()
デストラクタ
Definition renderer.cpp:15
ライティング用定数バッファ構造体の定義
レンダリングに必要な定数バッファをまとめた構造体の定義
Direct2D / DirectWrite を使用した 2D レンダラークラスの定義
シェーダーリソースをまとめた構造体の定義
ライト定数バッファのデータと GPU バッファをまとめた構造体
Definition light.h:23
ワールド・プロジェクション・ビューの各定数バッファセットを集約する構造体
Definition render_param.h:20
頂点シェーダー・ピクセルシェーダー・入力レイアウトを保持する構造体
Definition shader.h:16
三角形ポリゴン構造体の定義