-
Notifications
You must be signed in to change notification settings - Fork 0
/
renderer.h
123 lines (98 loc) · 2.87 KB
/
renderer.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
//=============================================================================
//
// レンダリング処理 [renderer.h]
// Author :
//
//=============================================================================
#pragma once
//*********************************************************
// マクロ定義
//*********************************************************
#define LIGHT_MAX (5)
enum LIGHT_TYPE
{
LIGHT_TYPE_NONE, //ライト無し
LIGHT_TYPE_DIRECTIONAL, //ディレクショナルライト
LIGHT_TYPE_POINT, //ポイントライト
LIGHT_TYPE_NUM
};
enum BLEND_MODE
{
BLEND_MODE_NONE, //ブレンド無し
BLEND_MODE_ALPHABLEND, //αブレンド
BLEND_MODE_ADD, //加算ブレンド
BLEND_MODE_SUBTRACT, //減算ブレンド
BLEDD_MODE_NUM
};
enum CULL_MODE
{
CULL_MODE_NONE, //カリング無し
CULL_MODE_FRONT, //表のポリゴンを描画しない(CW)
CULL_MODE_BACK, //裏のポリゴンを描画しない(CCW)
CULL_MODE_NUM
};
//*********************************************************
// 構造体
//*********************************************************
// 頂点構造体
struct VERTEX_3D
{
XMFLOAT3 Position;
XMFLOAT3 Normal;
XMFLOAT4 Diffuse;
XMFLOAT2 TexCoord;
XMFLOAT3 Tangent;
XMFLOAT3 Binormal;
};
// マテリアル構造体
struct MATERIAL
{
XMFLOAT4 Ambient;
XMFLOAT4 Diffuse;
XMFLOAT4 Specular;
XMFLOAT4 Emission;
float Shininess;
int noTexSampling;
};
// ライト構造体
struct LIGHT {
XMFLOAT3 Direction; // ライトの方向
XMFLOAT3 Position; // ライトの位置
XMFLOAT4 Diffuse; // 拡散光の色
XMFLOAT4 Ambient; // 環境光の色
float Attenuation;// 減衰率
int Type; // ライト種別・有効フラグ
int Enable; // ライト種別・有効フラグ
};
// フォグ構造体
struct FOG {
float FogStart; // フォグの開始距離
float FogEnd; // フォグの最大距離
XMFLOAT4 FogColor; // フォグの色
};
//*****************************************************************************
// プロトタイプ宣言
//*****************************************************************************
HRESULT InitRenderer(HINSTANCE hInstance, HWND hWnd, BOOL bWindow);
void UninitRenderer(void);
void Clear(void);
void Present(void);
ID3D11Device *GetDevice( void );
ID3D11DeviceContext *GetDeviceContext( void );
void SetDepthEnable( BOOL Enable );
void SetBlendState(BLEND_MODE bm);
void SetCullingMode(CULL_MODE cm);
void SetAlphaTestEnable(BOOL flag);
void SetWorldViewProjection2D( void );
void SetWorldMatrix( XMMATRIX *WorldMatrix );
void SetViewMatrix( XMMATRIX *ViewMatrix );
void SetProjectionMatrix( XMMATRIX *ProjectionMatrix );
void SetMaterial( MATERIAL material );
void SetLightEnable(BOOL flag);
void SetLight(int index, LIGHT* light);
void SetFogEnable(BOOL flag);
void SetFog(FOG* fog);
void DebugTextOut(char* text, int x, int y);
void SetFuchi(int flag);
void SetShaderCamera(XMFLOAT3 pos);
void SetNormalMapping(int flag);