//////////////////////////////////////////////////////////////////////////////// // Filename: multitextureshaderclass.h //////////////////////////////////////////////////////////////////////////////// #ifndef _MULTITEXTURESHADERCLASS_H_ #define _MULTITEXTURESHADERCLASS_H_ ////////////// // INCLUDES // ////////////// #include "Logger.h" #include #include #include #include using namespace DirectX; using namespace std; //////////////////////////////////////////////////////////////////////////////// // Class name: multi_texture_shader_class //////////////////////////////////////////////////////////////////////////////// class multi_texture_shader_class { private: struct matrix_buffer_type { XMMATRIX world; XMMATRIX view; XMMATRIX projection; }; public: multi_texture_shader_class(); multi_texture_shader_class(const multi_texture_shader_class&); ~multi_texture_shader_class(); bool initialize(ID3D11Device*, HWND); void shutdown(); bool render(ID3D11DeviceContext*, int, XMMATRIX, XMMATRIX, XMMATRIX, ID3D11ShaderResourceView*, ID3D11ShaderResourceView*); private: bool initialize_shader(ID3D11Device*, HWND, WCHAR*, WCHAR*); void shutdown_shader(); void output_shader_error_message(ID3D10Blob*, HWND, WCHAR*); bool set_shader_parameters(ID3D11DeviceContext*, XMMATRIX, XMMATRIX, XMMATRIX, ID3D11ShaderResourceView*, ID3D11ShaderResourceView*); void render_shader(ID3D11DeviceContext*, int); private: ID3D11VertexShader* vertex_shader_; ID3D11PixelShader* pixel_shader_; ID3D11InputLayout* layout_; ID3D11Buffer* matrix_buffer_; ID3D11SamplerState* sample_state_; }; #endif