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
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 50
diff changeset
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
7ff46a00bcd3 Working on GuiRenderContext
koryspansel
parents: 27
diff changeset
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
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 50
diff changeset
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
7ff46a00bcd3 Working on GuiRenderContext
koryspansel
parents: 27
diff changeset
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
7ff46a00bcd3 Working on GuiRenderContext
koryspansel
parents: 27
diff changeset
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
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 50
diff changeset
54 */
efd2b1ca5b77 Clean up gui
koryspansel <koryspansel@bendbroadband.com>
parents: 50
diff changeset
55 kContext.Add(pTexture, GetPosition(), GetDepth(), GetDimensions(), kColor);
20
4e9b5299ffdc Added GuiCursor and fixed picking
koryspansel <koryspansel@bendbroadband.com>
parents:
diff changeset
56 }
50
7ff46a00bcd3 Working on GuiRenderContext
koryspansel
parents: 27
diff changeset
57
7ff46a00bcd3 Working on GuiRenderContext
koryspansel
parents: 27
diff changeset
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
5656c8e382fc More Gui work; Remove some old files
koryspansel
parents: 20
diff changeset
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 }