Khaotic Engine Reborn
Loading...
Searching...
No Matches
skybox_shader_class.h
1#pragma once
2
3#include "Logger.h"
4#include <d3d11.h>
5#include <d3dcompiler.h>
6#include <directxmath.h>
7#include <fstream>
8using namespace DirectX;
9using namespace std;
10
12{
13
14 private :
15 struct MatrixBufferType
16 {
17 XMMATRIX world;
18 XMMATRIX view;
19 XMMATRIX projection;
20 };
21
22 struct CameraBufferType
23 {
24 XMFLOAT3 cameraPosition;
25 float padding;
26 };
27
28 struct SkyboxBufferType
29 {
30 XMFLOAT4 diffuseColor;
31 XMFLOAT4 ambientColor;
32 XMFLOAT3 sunDirection;
33 float intensity;
34 };
35
36 struct SkyboxColorBufferType
37 {
38 XMFLOAT4 sunColor;
39 };
40
41public :
45
46 bool Initialize(ID3D11Device*, HWND);
47 void Shutdown();
48 bool Render(ID3D11DeviceContext*, int, XMMATRIX, XMMATRIX, XMMATRIX, ID3D11ShaderResourceView*, XMFLOAT4, XMFLOAT4, XMFLOAT3,float);
49
50private:
51 bool InitializeShader(ID3D11Device*, HWND, WCHAR*, WCHAR*);
52 void ShutdownShader();
53 void OutputShaderErrorMessage(ID3D10Blob*, HWND, WCHAR*);
54
55 bool SetShaderParameters(ID3D11DeviceContext*, XMMATRIX, XMMATRIX, XMMATRIX, ID3D11ShaderResourceView*, XMFLOAT4, XMFLOAT4, XMFLOAT3, float);
56 void RenderShader(ID3D11DeviceContext*, int);
57
58private:
59 ID3D11VertexShader* m_vertexShader;
60 ID3D11PixelShader* m_pixelShader;
61 ID3D11InputLayout* m_layout;
62 ID3D11SamplerState* m_sampleState;
63 ID3D11Buffer* m_matrixBuffer;
64 ID3D11Buffer* m_cameraBuffer;
65 ID3D11Buffer* m_sunlightBuffer;
66 ID3D11Buffer* m_sunlightColorBuffer;
67 ID3D11Buffer* m_sunlightPositionBuffer;
68};