-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrenderer.h
123 lines (96 loc) · 2.88 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 : GP11A132 21 DAYA MAHAPUTRA
//
//=============================================================================
#pragma once
#include "main.h"
//*********************************************************
// マクロ定義
//*********************************************************
#define LIGHT_MAX (10)
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
{
D3DXVECTOR3 Position;
D3DXVECTOR3 Normal;
D3DXCOLOR Diffuse;
D3DXVECTOR2 TexCoord;
};
// マテリアル構造体
struct MATERIAL
{
D3DXCOLOR Ambient;
D3DXCOLOR Diffuse;
D3DXCOLOR Specular;
D3DXCOLOR Emission;
float Shininess;
int noTexSampling;
};
// ライト構造体
struct LIGHT {
D3DXVECTOR3 Direction; // ライトの方向
D3DXVECTOR3 Position; // ライトの位置
D3DXCOLOR Diffuse; // 拡散光の色
D3DXCOLOR Ambient; // 環境光の色
float Attenuation;// 減衰率
int Type; // ライト種別・有効フラグ
int Enable; // ライト種別・有効フラグ
};
// フォグ構造体
struct FOG {
float FogStart; // フォグの開始距離
float FogEnd; // フォグの最大距離
D3DXCOLOR 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( D3DXMATRIX *WorldMatrix );
void SetViewMatrix( D3DXMATRIX *ViewMatrix );
void SetProjectionMatrix( D3DXMATRIX *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(D3DXVECTOR3 pos);