Mercurial > LightClone
annotate LightClone/Source/GuiButton.cpp @ 21:b4dc5d674e22
Added GUI event system and some support data structures
author | koryspansel |
---|---|
date | Thu, 15 Sep 2011 18:42:12 -0700 |
parents | 33cb6979ac51 |
children | a785b0aaf004 |
rev | line source |
---|---|
11
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
1 /* |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
2 * GuiButton |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
3 */ |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
4 |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
5 #include "GuiButton.h" |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
6 #include "VertexTypes.h" |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
7 |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
8 /* |
21
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
9 * EventClick |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
10 */ |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
11 const char* GuiButton::EventClick = "GuiButton:Click"; |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
12 |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
13 /* |
11
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
14 * GuiButton |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
15 */ |
21
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
16 GuiButton::GuiButton() : nState(GuiButtonState_Normal), pEffect(NULL), pVertexBuffer(NULL) |
11
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
17 { |
21
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
18 memset(pTexture, 0, sizeof(pTexture)); |
11
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
19 } |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
20 |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
21 /* |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
22 * Initialize |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
23 */ |
21
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
24 ErrorCode GuiButton::Initialize(ResourceManager* pManager) |
11
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
25 { |
21
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
26 ErrorCode eCode = pManager->CreateEffectFromFile("Data\\Shaders\\TexturedQuad.fx", &pEffect); |
11
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
27 if(eCode == Error_Success) |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
28 { |
21
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
29 eCode = pManager->CreateVertexBuffer(6 * sizeof(Vertex::Quad), D3DUSAGE_WRITEONLY, D3DPOOL_MANAGED, &pVertexBuffer); |
11
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
30 if(eCode == Error_Success) |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
31 { |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
32 eCode = SetupVertexBuffer(); |
21
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
33 if(eCode == Error_Success) |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
34 { |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
35 pResourceManager = pManager; |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
36 } |
11
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
37 } |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
38 } |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
39 |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
40 return eCode; |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
41 } |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
42 |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
43 /* |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
44 * Terminate |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
45 */ |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
46 void GuiButton::Terminate() |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
47 { |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
48 for(uint32 i = 0; i < GuiButtonState_Count; ++i) |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
49 { |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
50 if(pTexture[i]) |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
51 { |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
52 pTexture[i]->Release(); |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
53 pTexture[i] = NULL; |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
54 } |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
55 } |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
56 |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
57 if(pVertexBuffer) |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
58 { |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
59 pVertexBuffer->Release(); |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
60 pVertexBuffer = NULL; |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
61 } |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
62 |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
63 if(pEffect) |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
64 { |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
65 pEffect->Release(); |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
66 pEffect = NULL; |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
67 } |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
68 } |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
69 |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
70 /* |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
71 * Update |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
72 */ |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
73 void GuiButton::Update(float fElapsed) |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
74 { |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
75 } |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
76 |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
77 /* |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
78 * Render |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
79 */ |
18 | 80 void GuiButton::Render(RenderContext& kContext, Camera& kCamera) |
11
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
81 { |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
82 if(pTexture[nState]) |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
83 { |
21
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
84 uint32 nPasses = 0; |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
85 |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
86 const float fOffsetX = -0.5f * ScreenSizeX; |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
87 const float fOffsetY = +0.5f * ScreenSizeY; |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
88 |
11
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
89 const D3DXVECTOR4 kColorVector(1.0f, 1.0f, 1.0f, 1.0f); |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
90 |
21
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
91 kContext.ApplyCameraToEffect(kCamera, pEffect); |
11
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
92 |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
93 D3DXMATRIX kScale; |
21
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
94 D3DXMatrixScaling(&kScale, kDimensions.x, kDimensions.y, 1.0f); |
11
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
95 |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
96 D3DXMATRIX kTranslate; |
21
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
97 D3DXMatrixTranslation(&kTranslate, fOffsetX + kPosition.x + 0.5f, fOffsetY - kPosition.y + 0.5f, 0.0f); |
11
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
98 |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
99 D3DXMATRIX kWorldMatrix; |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
100 D3DXMatrixMultiply(&kWorldMatrix, &kScale, &kTranslate); |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
101 |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
102 pEffect->SetMatrix(pEffect->GetParameterByName(NULL, "kWorld"), &kWorldMatrix); |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
103 pEffect->SetVector(pEffect->GetParameterByName(NULL, "kColor"), &kColorVector); |
12 | 104 pEffect->SetTexture(pEffect->GetParameterByName(NULL, "kTexture"), pTexture[nState]); |
21
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
105 |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
106 pEffect->SetTechnique(pEffect->GetTechnique(0)); |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
107 pEffect->Begin(&nPasses, 0); |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
108 pEffect->BeginPass(0); |
11
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
109 |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
110 kContext.DrawTriangles(Vertex::Quad::Declaration, pVertexBuffer, sizeof(Vertex::Quad), TrianglesPerFace); |
21
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
111 |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
112 pEffect->EndPass(); |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
113 pEffect->End(); |
11
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
114 } |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
115 } |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
116 |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
117 /* |
21
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
118 * SetTexture |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
119 */ |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
120 ErrorCode GuiButton::SetTexture(uint32 nState, const char* pName, bool bResize) |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
121 { |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
122 ErrorCode eCode = Error_Fail; |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
123 |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
124 if(nState < GuiButtonState_Count) |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
125 { |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
126 if(pTexture[nState]) |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
127 { |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
128 pTexture[nState]->Release(); |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
129 pTexture[nState] = NULL; |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
130 } |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
131 |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
132 eCode = pResourceManager->CreateTextureFromFile(pName, &pTexture[nState]); |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
133 if(eCode == Error_Success) |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
134 { |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
135 if(bResize) |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
136 { |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
137 D3DSURFACE_DESC kDescriptor; |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
138 pTexture[nState]->GetLevelDesc(0, &kDescriptor); |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
139 |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
140 kDimensions.x = (float)kDescriptor.Width; |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
141 kDimensions.y = (float)kDescriptor.Height; |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
142 } |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
143 } |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
144 } |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
145 |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
146 return eCode; |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
147 } |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
148 |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
149 /* |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
150 * OnMouseDown |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
151 */ |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
152 void GuiButton::OnMouseDown(uint32 nButton, float fX, float fY) |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
153 { |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
154 GuiEventArguments kArguments; |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
155 kArguments.pSource = this; |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
156 |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
157 Fire(EventClick, kArguments); |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
158 } |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
159 |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
160 /* |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
161 * OnMouseUp |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
162 */ |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
163 void GuiButton::OnMouseUp(uint32 nButton, float fX, float fY) |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
164 { |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
165 } |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
166 |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
167 /* |
11
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
168 * SetupVertexBuffer |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
169 */ |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
170 ErrorCode GuiButton::SetupVertexBuffer() |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
171 { |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
172 Vertex::Quad* pVertices = NULL; |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
173 |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
174 HRESULT hResult = pVertexBuffer->Lock(0, 0, (void**)&pVertices, D3DLOCK_DISCARD); |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
175 if(FAILED(hResult)) |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
176 { |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
177 return Error_Fail; |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
178 } |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
179 |
21
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
180 pVertices[0] = Vertex::Quad(+0.0f, -1.0f, 1.0f, 0.0f, 1.0f); |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
181 pVertices[1] = Vertex::Quad(+0.0f, +0.0f, 1.0f, 0.0f, 0.0f); |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
182 pVertices[2] = Vertex::Quad(+1.0f, +0.0f, 1.0f, 1.0f, 0.0f); |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
183 pVertices[3] = Vertex::Quad(+0.0f, -1.0f, 1.0f, 0.0f, 1.0f); |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
184 pVertices[4] = Vertex::Quad(+1.0f, +0.0f, 1.0f, 1.0f, 0.0f); |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
185 pVertices[5] = Vertex::Quad(+1.0f, -1.0f, 1.0f, 1.0f, 1.0f); |
11
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
186 |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
187 pVertexBuffer->Unlock(); |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
188 |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
189 return Error_Success; |
d80d06d5ff53
Begin working on Gui system
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
190 } |