Khaotic Engine Reborn
Loading...
Searching...
No Matches
water_shader_class.h
1#ifndef _WATERSHADERCLASS_H_
2#define _WATERSHADERCLASS_H_
3
4
6// INCLUDES //
8#include <d3d11.h>
9#include <d3dcompiler.h>
10#include <directxmath.h>
11#include <fstream>
12using namespace DirectX;
13using namespace std;
14
15
17// Class name: water_shader_class
20{
21private:
22 struct matrix_buffer_type
23 {
24 XMMATRIX world;
25 XMMATRIX view;
26 XMMATRIX projection;
27 };
28
29 struct reflection_buffer_type
30 {
31 XMMATRIX reflection;
32 };
33
34 struct water_buffer_type
35 {
36 float water_translation;
37 float reflect_refract_scale;
38 XMFLOAT2 padding;
39 };
40
41public:
45
46 bool initialize(ID3D11Device*, HWND);
47 void shutdown();
48 bool render(ID3D11DeviceContext*, int, XMMATRIX, XMMATRIX, XMMATRIX, XMMATRIX, ID3D11ShaderResourceView*,
49 ID3D11ShaderResourceView*, ID3D11ShaderResourceView*, float, float);
50
51private:
52 bool initialize_shader(ID3D11Device*, HWND, WCHAR*, WCHAR*);
53 void shutdown_shader();
54 void output_shader_error_message(ID3D10Blob*, HWND, WCHAR*);
55
56 bool set_shader_parameters(ID3D11DeviceContext*, XMMATRIX, XMMATRIX, XMMATRIX, XMMATRIX, ID3D11ShaderResourceView*,
57 ID3D11ShaderResourceView*, ID3D11ShaderResourceView*, float, float);
58 void render_shader(ID3D11DeviceContext*, int);
59
60private:
61 ID3D11VertexShader* vertex_shader_;
62 ID3D11PixelShader* pixel_shader_;
63 ID3D11InputLayout* layout_;
64 ID3D11Buffer* matrix_buffer_;
65 ID3D11SamplerState* sample_state_;
66 ID3D11Buffer* reflection_buffer_;
67 ID3D11Buffer* water_buffer_;
68};
69
70#endif