Mercurial > LightClone
annotate LightClone/Source/GuiImage.cpp @ 74:40c0b5305de8
Work on removing ScreenManager
author | koryspansel |
---|---|
date | Tue, 18 Oct 2011 11:56:49 -0700 |
parents | 3507bd831c7f |
children |
rev | line source |
---|---|
18 | 1 /* |
2 * GuiImage | |
3 */ | |
4 | |
5 #include "GuiImage.h" | |
6 #include "VertexTypes.h" | |
7 | |
8 /* | |
9 * GuiImage | |
10 */ | |
51 | 11 GuiImage::GuiImage() : pTexture(NULL) |
18 | 12 { |
13 } | |
14 | |
15 /* | |
16 * Initialize | |
17 */ | |
64
3507bd831c7f
Hook up ServiceProvider
koryspansel <koryspansel@bendbroadband.com>
parents:
51
diff
changeset
|
18 ErrorCode GuiImage::Initialize(ServiceProvider* pServiceProvider) |
18 | 19 { |
64
3507bd831c7f
Hook up ServiceProvider
koryspansel <koryspansel@bendbroadband.com>
parents:
51
diff
changeset
|
20 return GuiElement::Initialize(pServiceProvider); |
18 | 21 } |
22 | |
23 /* | |
24 * Render | |
25 */ | |
50 | 26 void GuiImage::Render(GuiRenderContext& kContext) |
18 | 27 { |
26
3a63df04f3c0
Several Gui enhancements; Drag and drop should work; Added resource caching
koryspansel
parents:
23
diff
changeset
|
28 if(nFlags & GuiElementFlag_Visible) |
18 | 29 { |
23 | 30 if(pTexture) |
31 { | |
51 | 32 kContext.Add(pTexture, GetPosition(), GetDepth(), GetDimensions(), D3DCOLOR_XRGB(255, 255, 255)); |
23 | 33 } |
18 | 34 |
50 | 35 GuiElement::Render(kContext); |
18 | 36 } |
37 } | |
38 | |
39 /* | |
40 * SetTexture | |
41 */ | |
21
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
42 ErrorCode GuiImage::SetTexture(const char* pName, bool bResize) |
18 | 43 { |
27 | 44 pTexture = NULL; |
18 | 45 |
64
3507bd831c7f
Hook up ServiceProvider
koryspansel <koryspansel@bendbroadband.com>
parents:
51
diff
changeset
|
46 ResourceManager* pResourceManager = NULL; |
3507bd831c7f
Hook up ServiceProvider
koryspansel <koryspansel@bendbroadband.com>
parents:
51
diff
changeset
|
47 |
3507bd831c7f
Hook up ServiceProvider
koryspansel <koryspansel@bendbroadband.com>
parents:
51
diff
changeset
|
48 ErrorCode eCode = pServiceProvider->GetService("ResourceManager", &pResourceManager); |
21
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
49 if(eCode == Error_Success) |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
50 { |
64
3507bd831c7f
Hook up ServiceProvider
koryspansel <koryspansel@bendbroadband.com>
parents:
51
diff
changeset
|
51 eCode = pResourceManager->CreateTextureFromFile(pName, &pTexture); |
3507bd831c7f
Hook up ServiceProvider
koryspansel <koryspansel@bendbroadband.com>
parents:
51
diff
changeset
|
52 if(eCode == Error_Success) |
21
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
53 { |
64
3507bd831c7f
Hook up ServiceProvider
koryspansel <koryspansel@bendbroadband.com>
parents:
51
diff
changeset
|
54 if(bResize) |
3507bd831c7f
Hook up ServiceProvider
koryspansel <koryspansel@bendbroadband.com>
parents:
51
diff
changeset
|
55 { |
3507bd831c7f
Hook up ServiceProvider
koryspansel <koryspansel@bendbroadband.com>
parents:
51
diff
changeset
|
56 D3DSURFACE_DESC kDescriptor; |
3507bd831c7f
Hook up ServiceProvider
koryspansel <koryspansel@bendbroadband.com>
parents:
51
diff
changeset
|
57 pTexture->GetLevelDesc(0, &kDescriptor); |
21
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
58 |
64
3507bd831c7f
Hook up ServiceProvider
koryspansel <koryspansel@bendbroadband.com>
parents:
51
diff
changeset
|
59 kDimensions.x = (float)kDescriptor.Width; |
3507bd831c7f
Hook up ServiceProvider
koryspansel <koryspansel@bendbroadband.com>
parents:
51
diff
changeset
|
60 kDimensions.y = (float)kDescriptor.Height; |
3507bd831c7f
Hook up ServiceProvider
koryspansel <koryspansel@bendbroadband.com>
parents:
51
diff
changeset
|
61 } |
21
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
62 } |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
63 } |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
64 |
b4dc5d674e22
Added GUI event system and some support data structures
koryspansel
parents:
18
diff
changeset
|
65 return eCode; |
18 | 66 } |