78 lines
3.9 KiB
C++
78 lines
3.9 KiB
C++
#ifndef _SHADERMANAGERCLASS_H_
|
|
#define _SHADERMANAGERCLASS_H_
|
|
|
|
// Inclure les en-têtes nécessaires
|
|
#include <d3d11.h>
|
|
#include <DirectXMath.h>
|
|
#include <vector>
|
|
#include "texture_shader_class.h"
|
|
#include "normal_map_shader_class.h"
|
|
#include "multi_texture_shader_class.h"
|
|
#include "translate_shader_class.h"
|
|
#include "alpha_map_shader_class.h"
|
|
#include "spec_map_shader_class.h"
|
|
#include "transparent_shader_class.h"
|
|
#include "light_shader_class.h"
|
|
#include "light_map_shader_class.h"
|
|
#include "refraction_shader_class.h"
|
|
#include "water_shader_class.h"
|
|
#include "celshade_class.h"
|
|
#include "depth_shader_class.h"
|
|
#include "skybox_shader_class.h"
|
|
#include "sunlight_shader_class.h"
|
|
#include "depth_shader_class.h"
|
|
|
|
using namespace DirectX;
|
|
|
|
class shader_manager_class
|
|
{
|
|
public:
|
|
shader_manager_class();
|
|
shader_manager_class(const shader_manager_class&);
|
|
~shader_manager_class();
|
|
|
|
bool initialize(ID3D11Device*, HWND);
|
|
void shutdown();
|
|
|
|
bool render_texture_shader(ID3D11DeviceContext*, int, XMMATRIX, XMMATRIX, XMMATRIX, ID3D11ShaderResourceView*);
|
|
bool render_normal_map_shader(ID3D11DeviceContext*, int, XMMATRIX, XMMATRIX, XMMATRIX, ID3D11ShaderResourceView*, ID3D11ShaderResourceView*, XMFLOAT3, XMFLOAT4);
|
|
bool render_multitexture_shader(ID3D11DeviceContext*, int, XMMATRIX, XMMATRIX, XMMATRIX, ID3D11ShaderResourceView*, ID3D11ShaderResourceView*);
|
|
bool render_translate_shader(ID3D11DeviceContext*, int, XMMATRIX, XMMATRIX, XMMATRIX, ID3D11ShaderResourceView*, float);
|
|
bool render_alpha_map_shader(ID3D11DeviceContext*, int, XMMATRIX, XMMATRIX, XMMATRIX, ID3D11ShaderResourceView*, ID3D11ShaderResourceView*, ID3D11ShaderResourceView*);
|
|
bool render_spec_map_shader(ID3D11DeviceContext*, int, XMMATRIX, XMMATRIX, XMMATRIX, ID3D11ShaderResourceView*, ID3D11ShaderResourceView*, ID3D11ShaderResourceView*, XMFLOAT3, XMFLOAT4, XMFLOAT3, XMFLOAT4, float);
|
|
bool render_transparent_shader(ID3D11DeviceContext*, int, XMMATRIX, XMMATRIX, XMMATRIX, ID3D11ShaderResourceView*, float);
|
|
bool renderlight_shader(ID3D11DeviceContext*, int, XMMATRIX, XMMATRIX, XMMATRIX, ID3D11ShaderResourceView*, XMFLOAT4[], XMFLOAT4[], XMFLOAT4[]);
|
|
bool renderlight_map_shader(ID3D11DeviceContext*, int, XMMATRIX, XMMATRIX, XMMATRIX, ID3D11ShaderResourceView*, ID3D11ShaderResourceView*);
|
|
bool render_refraction_shader(ID3D11DeviceContext*, int, XMMATRIX, XMMATRIX, XMMATRIX, ID3D11ShaderResourceView*, XMFLOAT3, XMFLOAT4[], XMFLOAT4[], XMFLOAT4[], XMFLOAT4);
|
|
bool render_water_shader(ID3D11DeviceContext*, int, XMMATRIX, XMMATRIX, XMMATRIX, XMMATRIX, ID3D11ShaderResourceView*, ID3D11ShaderResourceView*, ID3D11ShaderResourceView*, float, float);
|
|
bool render_cel_shading_shader(ID3D11DeviceContext*, int, XMMATRIX, XMMATRIX, XMMATRIX, ID3D11ShaderResourceView*, XMFLOAT4, XMFLOAT4, XMFLOAT3, float);
|
|
bool render_sunlight_shader(ID3D11DeviceContext*, int, XMMATRIX, XMMATRIX, XMMATRIX, ID3D11ShaderResourceView*, XMFLOAT4, XMFLOAT4, XMFLOAT3, float);
|
|
bool render_skybox_shader(ID3D11DeviceContext*, int, XMMATRIX, XMMATRIX, XMMATRIX, ID3D11ShaderResourceView*, XMFLOAT4, XMFLOAT4, XMFLOAT3, float);
|
|
bool render_depth_shader(
|
|
ID3D11DeviceContext* context,
|
|
int indexCount,
|
|
XMMATRIX worldMatrix,
|
|
XMMATRIX viewMatrix,
|
|
XMMATRIX projectionMatrix,
|
|
ID3D11ShaderResourceView* texture
|
|
);
|
|
|
|
private:
|
|
texture_shader_class* texture_shader_;
|
|
normal_map_shader_class* normal_map_shader_;
|
|
multi_texture_shader_class* multitexture_shader_;
|
|
translate_shader_class* translate_shader_;
|
|
alpha_map_shader_class* alpha_map_shader_;
|
|
spec_map_shader_class* spec_map_shader_;
|
|
transparent_shader_class* transparent_shader_;
|
|
light_shader_class* light_shader_;
|
|
light_map_shader_class* light_map_shader_;
|
|
refraction_shader_class* refraction_shader_;
|
|
water_shader_class* water_shader_;
|
|
celshade_class* cel_shading_shader_;
|
|
sunlight_shader_class* sunlight_shader_;
|
|
skybox_shader_class* skybox_shader_;
|
|
depth_shader_class* depth_shader_;
|
|
};
|
|
|
|
#endif |