72 lines
1.9 KiB
C++
72 lines
1.9 KiB
C++
#ifndef _SPECMAPSHADERCLASS_H_
|
|
#define _SPECMAPSHADERCLASS_H_
|
|
|
|
|
|
//////////////
|
|
// INCLUDES //
|
|
//////////////
|
|
#include <d3d11.h>
|
|
#include <d3dcompiler.h>
|
|
#include <directxmath.h>
|
|
#include <fstream>
|
|
using namespace DirectX;
|
|
using namespace std;
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// Class name: spec_map_shader_class
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
class spec_map_shader_class
|
|
{
|
|
private:
|
|
struct matrix_buffer_type
|
|
{
|
|
XMMATRIX world;
|
|
XMMATRIX view;
|
|
XMMATRIX projection;
|
|
};
|
|
|
|
struct light_buffer_type
|
|
{
|
|
XMFLOAT4 diffuse_color;
|
|
XMFLOAT4 specular_color;
|
|
float specular_power;
|
|
XMFLOAT3 light_direction;
|
|
};
|
|
|
|
struct camera_buffer_type
|
|
{
|
|
XMFLOAT3 camera_position;
|
|
float padding;
|
|
};
|
|
|
|
public:
|
|
spec_map_shader_class();
|
|
spec_map_shader_class(const spec_map_shader_class&);
|
|
~spec_map_shader_class();
|
|
|
|
bool initialize(ID3D11Device*, HWND);
|
|
void shutdown();
|
|
bool render(ID3D11DeviceContext*, int, XMMATRIX, XMMATRIX, XMMATRIX, ID3D11ShaderResourceView*, ID3D11ShaderResourceView*, ID3D11ShaderResourceView*,
|
|
XMFLOAT3, XMFLOAT4, XMFLOAT3, XMFLOAT4, float);
|
|
|
|
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*, ID3D11ShaderResourceView*,
|
|
XMFLOAT3, XMFLOAT4, XMFLOAT3, XMFLOAT4, float);
|
|
void render_shader(ID3D11DeviceContext*, int);
|
|
|
|
private:
|
|
ID3D11VertexShader* vertex_shader_;
|
|
ID3D11PixelShader* pixel_shader_;
|
|
ID3D11InputLayout* layout_;
|
|
ID3D11Buffer* matrix_buffer_;
|
|
ID3D11SamplerState* sample_state_;
|
|
ID3D11Buffer* light_buffer_;
|
|
ID3D11Buffer* camera_buffer_;
|
|
};
|
|
|
|
#endif |