-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbg.cpp
More file actions
115 lines (91 loc) · 3.02 KB
/
bg.cpp
File metadata and controls
115 lines (91 loc) · 3.02 KB
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
/*==========================================================================================================================================================
ゲーム背景処理[bg.cpp]
Author:平澤詩苑
============================================================================================================================================================*/
#include "main.h"
#include "bg.h"
#include "color.h"
#include "input.h"
//マクロ定義
#define BG_TEX_NAME "data/TEXTURE/game.png" //背景のテクスチャ名
//グローバル変数宣言
LPDIRECT3DTEXTURE9 g_pTextureBg = NULL; //テクスチャへのポインタ
LPDIRECT3DVERTEXBUFFER9 g_pVtxBuffBg = NULL; //頂点バッファへのポインタ
//------------------------------------------------
// 背景初期化処理
//------------------------------------------------
void InitBg(void)
{
//デバイス取得
LPDIRECT3DDEVICE9 pDevice = GetDevice();
//頂点バッファの生成
pDevice->CreateVertexBuffer(sizeof(VERTEX_2D) * VTX_MAX, D3DUSAGE_WRITEONLY, FVF_VERTEX_2D, D3DPOOL_MANAGED, &g_pVtxBuffBg, NULL);
//ポインタを設定
VERTEX_2D *pVtx;
//頂点バッファをロックし、頂点情報へのポインタを取得
g_pVtxBuffBg->Lock(0, 0, (void* *)&pVtx, 0);
//テクスチャの読み込み
D3DXCreateTextureFromFile(pDevice, BG_TEX_NAME, &g_pTextureBg);
//頂点座標の設定
pVtx[VTX_LE_UP].pos = D3DXVECTOR3(NIL_F, NIL_F, NIL_F);
pVtx[VTX_RI_UP].pos = D3DXVECTOR3(SCREEN_WIDTH, NIL_F, NIL_F);
pVtx[VTX_LE_DO].pos = D3DXVECTOR3(NIL_F, SCREEN_HEIGHT, NIL_F);
pVtx[VTX_RI_DO].pos = D3DXVECTOR3(SCREEN_WIDTH, SCREEN_HEIGHT, NIL_F);
//rhwの設定
pVtx[VTX_LE_UP].rhw = RHW;
pVtx[VTX_RI_UP].rhw = RHW;
pVtx[VTX_LE_DO].rhw = RHW;
pVtx[VTX_RI_DO].rhw = RHW;
//頂点カラーの設定
pVtx[VTX_LE_UP].col = RGBA_WHITE;
pVtx[VTX_RI_UP].col = RGBA_WHITE;
pVtx[VTX_LE_DO].col = RGBA_WHITE;
pVtx[VTX_RI_DO].col = RGBA_WHITE;
//テクスチャの座標
pVtx[VTX_LE_UP].tex = D3DXVECTOR2(0.0f, 0.0f);
pVtx[VTX_RI_UP].tex = D3DXVECTOR2(1.0f, 0.0f);
pVtx[VTX_LE_DO].tex = D3DXVECTOR2(0.0f, 1.0f);
pVtx[VTX_RI_DO].tex = D3DXVECTOR2(1.0f, 1.0f);
//頂点バッファをロックする
g_pVtxBuffBg->Unlock();
}
//------------------------------------------------
// 背景終了処理
//------------------------------------------------
void UninitBg(void)
{
//テクスチャの破棄
if (g_pTextureBg != NULL)
{
g_pTextureBg->Release();
g_pTextureBg = NULL;
}
//頂点バッファの破棄
if (g_pVtxBuffBg != NULL)
{
g_pVtxBuffBg->Release();
g_pVtxBuffBg = NULL;
}
}
//------------------------------------------------
// 背景更新処理
//------------------------------------------------
void UpdateBg(void)
{
}
//------------------------------------------------
// 背景描画処理
//------------------------------------------------
void DrawBg(void)
{
//デバイス取得
LPDIRECT3DDEVICE9 pDevice = GetDevice();
//頂点バッファをデータストリームに設定
pDevice->SetStreamSource(0, g_pVtxBuffBg, 0, sizeof(VERTEX_2D));
//頂点フォーマットの設定
pDevice->SetFVF(FVF_VERTEX_2D);
//テクスチャの設定
pDevice->SetTexture(0, g_pTextureBg);
//ポリゴンの描画
pDevice->DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2);
}