Khaotic Engine Reborn
Loading...
Searching...
No Matches
reflection_shader_class.h
1
2// Filename: reflectionshaderclass.h
4#ifndef _REFLECTIONSHADERCLASS_H_
5#define _REFLECTIONSHADERCLASS_H_
6
7
9// INCLUDES //
11#include "Logger.h"
12#include <d3d11.h>
13#include <d3dcompiler.h>
14#include <directxmath.h>
15#include <fstream>
16using namespace DirectX;
17using namespace std;
18
19
21// Class name: reflection_shader_class
24{
25private:
26 struct matrix_buffer_type
27 {
28 XMMATRIX world;
29 XMMATRIX view;
30 XMMATRIX projection;
31 };
32
33 struct reflection_buffer_type
34 {
35 XMMATRIX reflection_matrix;
36 };
37
38public:
42
43 bool initialize(ID3D11Device*, HWND);
44 void shutdown();
45 bool render(ID3D11DeviceContext*, int, XMMATRIX, XMMATRIX, XMMATRIX, ID3D11ShaderResourceView*, ID3D11ShaderResourceView*, XMMATRIX);
46
47private:
48 bool initialize_shader(ID3D11Device*, HWND, WCHAR*, WCHAR*);
49 void shutdown_shader();
50 void output_shader_error_message(ID3D10Blob*, HWND, WCHAR*);
51
52 bool set_shader_parameters(ID3D11DeviceContext*, XMMATRIX, XMMATRIX, XMMATRIX, ID3D11ShaderResourceView*, ID3D11ShaderResourceView*, XMMATRIX);
53 void render_shader(ID3D11DeviceContext*, int);
54
55private:
56 ID3D11VertexShader* vertex_shader_;
57 ID3D11PixelShader* pixel_shader_;
58 ID3D11InputLayout* layout_;
59 ID3D11Buffer* matrix_buffer_;
60 ID3D11SamplerState* sample_state_;
61 ID3D11Buffer* reflection_buffer_;
62
63};
64
65#endif