Khaotic Engine Reborn
Loading...
Searching...
No Matches
refraction_shader_class.h
1#ifndef _REFRACTIONSHADERCLASS_H_
2#define _REFRACTIONSHADERCLASS_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: refraction_shader_class
20{
21private:
22 struct matrix_buffer_type
23 {
24 XMMATRIX world;
25 XMMATRIX view;
26 XMMATRIX projection;
27 };
28
29 struct light_buffer_type
30 {
31 XMFLOAT4 ambient_color;
32 XMFLOAT4 diffuse_color;
33 XMFLOAT4 light_position;
34 XMFLOAT3 light_direction;
35 float padding;
36 };
37
38 struct clip_plane_buffer_type
39 {
40 XMFLOAT4 clip_plane;
41 };
42
43public:
47
48 bool initialize(ID3D11Device*, HWND);
49 void shutdown();
50 bool render(ID3D11DeviceContext*, int, XMMATRIX, XMMATRIX, XMMATRIX, ID3D11ShaderResourceView*,
51 XMFLOAT3, XMFLOAT4[], XMFLOAT4[], XMFLOAT4[], XMFLOAT4);
52
53private:
54 bool initialize_shader(ID3D11Device*, HWND, WCHAR*, WCHAR*);
55 void shutdown_shader();
56 void output_shader_error_message(ID3D10Blob*, HWND, WCHAR*);
57
58 bool set_shader_parameters(ID3D11DeviceContext*, XMMATRIX, XMMATRIX, XMMATRIX, ID3D11ShaderResourceView*,
59 XMFLOAT3, XMFLOAT4[], XMFLOAT4[], XMFLOAT4[], XMFLOAT4);
60 void render_shader(ID3D11DeviceContext*, int);
61
62private:
63 ID3D11VertexShader* vertex_shader_;
64 ID3D11PixelShader* pixel_shader_;
65 ID3D11InputLayout* layout_;
66 ID3D11SamplerState* sample_state_;
67 ID3D11Buffer* matrix_buffer_;
68 ID3D11Buffer* light_buffer_;
69 ID3D11Buffer* clip_plane_buffer_;
70};
71
72#endif