Mercurial > LightClone
annotate LightClone/Source/GuiCursor.cpp @ 51:efd2b1ca5b77
Clean up gui
author | koryspansel <koryspansel@bendbroadband.com> |
---|---|
date | Tue, 27 Sep 2011 09:42:01 -0700 |
parents | 7ff46a00bcd3 |
children | 3507bd831c7f |
rev | line source |
---|---|
20
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
1 /* |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
2 * GuiCursor |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
3 */ |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
4 |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
5 #include "GuiCursor.h" |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
6 #include "VertexTypes.h" |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
7 |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
8 /* |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
9 * GuiCursor |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
10 */ |
51 | 11 GuiCursor::GuiCursor() : GuiElement(), pTexture(NULL) |
20
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
12 { |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
13 } |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
14 |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
15 /* |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
16 * Render |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
17 */ |
50 | 18 void GuiCursor::Render(GuiRenderContext& kContext) |
20
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
19 { |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
20 if(pTexture) |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
21 { |
51 | 22 /* |
20
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
23 uint32 nPasses = 0; |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
24 |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
25 const float fOffsetX = -0.5f * ScreenSizeX; |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
26 const float fOffsetY = +0.5f * ScreenSizeY; |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
27 |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
28 const D3DXVECTOR4 kColorVector(1.0f, 1.0f, 1.0f, 1.0f); |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
29 |
50 | 30 kContext.GetRenderContext()->ApplyCameraToEffect(*kContext.GetCamera(), pEffect); |
20
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
31 |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
32 pEffect->SetTechnique(pEffect->GetTechnique(0)); |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
33 pEffect->Begin(&nPasses, 0); |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
34 pEffect->BeginPass(0); |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
35 |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
36 D3DXMATRIX kScale; |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
37 D3DXMatrixScaling(&kScale, kDimensions.x, kDimensions.y, 1.0f); |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
38 |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
39 D3DXMATRIX kTranslate; |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
40 D3DXMatrixTranslation(&kTranslate, fOffsetX + kPosition.x + 0.5f, fOffsetY - kPosition.y + 0.5f, 0.0f); |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
41 |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
42 D3DXMATRIX kWorldMatrix; |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
43 D3DXMatrixMultiply(&kWorldMatrix, &kScale, &kTranslate); |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
44 |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
45 pEffect->SetMatrix(pEffect->GetParameterByName(NULL, "kWorld"), &kWorldMatrix); |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
46 pEffect->SetVector(pEffect->GetParameterByName(NULL, "kColor"), &kColorVector); |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
47 pEffect->SetTexture(pEffect->GetParameterByName(NULL, "kTexture"), pTexture); |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
48 pEffect->CommitChanges(); |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
49 |
50 | 50 kContext.GetRenderContext()->DrawTriangles(Vertex::Quad::Declaration, pVertexBuffer, sizeof(Vertex::Quad), TrianglesPerFace); |
20
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
51 |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
52 pEffect->EndPass(); |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
53 pEffect->End(); |
51 | 54 */ |
55 kContext.Add(pTexture, GetPosition(), GetDepth(), GetDimensions(), kColor); | |
20
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
56 } |
50 | 57 |
58 GuiElement::Render(kContext); | |
20
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
59 } |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
60 |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
61 /* |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
62 * SetTexture |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
63 */ |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
64 ErrorCode GuiCursor::SetTexture(const char* pName, bool bResize) |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
65 { |
27 | 66 pTexture = NULL; |
20
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
67 |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
68 ErrorCode eCode = pResourceManager->CreateTextureFromFile(pName, &pTexture); |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
69 if(eCode == Error_Success) |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
70 { |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
71 if(bResize) |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
72 { |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
73 D3DSURFACE_DESC kDescriptor; |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
74 pTexture->GetLevelDesc(0, &kDescriptor); |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
75 |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
76 kDimensions.x = (float)kDescriptor.Width; |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
77 kDimensions.y = (float)kDescriptor.Height; |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
78 } |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
79 } |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
80 |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
81 return eCode; |
4e9b5299ffdc
Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff
changeset
|
82 } |