diff options
author | David Walter Seikel | 2012-01-04 18:41:13 +1000 |
---|---|---|
committer | David Walter Seikel | 2012-01-04 18:41:13 +1000 |
commit | dd7595a3475407a7fa96a97393bae8c5220e8762 (patch) | |
tree | e341e911d7eb911a51684a7412ef7f7c7605d28e /libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_image.h | |
parent | Add the skeleton. (diff) | |
download | SledjHamr-dd7595a3475407a7fa96a97393bae8c5220e8762.zip SledjHamr-dd7595a3475407a7fa96a97393bae8c5220e8762.tar.gz SledjHamr-dd7595a3475407a7fa96a97393bae8c5220e8762.tar.bz2 SledjHamr-dd7595a3475407a7fa96a97393bae8c5220e8762.tar.xz |
Add the base Enlightenment Foundation Libraries - eina, eet, evas, ecore, embryo, and edje.
Note that embryo wont be used, but I'm not sure yet if you can build edje without it.
Diffstat (limited to '')
-rw-r--r-- | libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_image.h | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_image.h b/libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_image.h new file mode 100644 index 0000000..379207b --- /dev/null +++ b/libraries/evas/src/modules/engines/direct3d/evas_direct3d_object_image.h | |||
@@ -0,0 +1,127 @@ | |||
1 | #ifndef __EVAS_DIRECT3D_OBJECT_IMAGE_H__ | ||
2 | #define __EVAS_DIRECT3D_OBJECT_IMAGE_H__ | ||
3 | |||
4 | #include "evas_engine.h" | ||
5 | |||
6 | #include "ref.h" | ||
7 | #include "array.h" | ||
8 | |||
9 | #include "evas_direct3d_object.h" | ||
10 | |||
11 | class D3DObjectImage : public D3DObject | ||
12 | { | ||
13 | public: | ||
14 | D3DObjectImage(); | ||
15 | virtual ~D3DObjectImage(); | ||
16 | |||
17 | void CopyTo(D3DObjectImage *image); | ||
18 | |||
19 | static void BeginCache(); | ||
20 | virtual void Draw(D3DDevice *d3d); | ||
21 | static void EndCache(D3DDevice *d3d); | ||
22 | |||
23 | void Init(FLOAT u, FLOAT v, FLOAT du, FLOAT dv, int image_id, | ||
24 | int width, int height, const char *source); | ||
25 | void Setup(FLOAT x, FLOAT y, FLOAT w, FLOAT h, | ||
26 | int sx, int sy, int sw, int sh); | ||
27 | void SetupColorFilter(DWORD color); | ||
28 | void SetupBorder(const D3DXVECTOR4 &world_border, const D3DXVECTOR4 &pix_border); | ||
29 | |||
30 | inline bool IsValid(); | ||
31 | inline const char *GetSource(); | ||
32 | inline int GetWidth(); | ||
33 | inline int GetHeight(); | ||
34 | inline FLOAT GetBorderLeft(); | ||
35 | inline FLOAT GetBorderRight(); | ||
36 | inline FLOAT GetBorderTop(); | ||
37 | inline FLOAT GetBorderBottom(); | ||
38 | |||
39 | bool UpdateImageData(DWORD *image_data); | ||
40 | DWORD *GetImageData(); | ||
41 | |||
42 | private: | ||
43 | struct Vertex | ||
44 | { | ||
45 | FLOAT x, y; | ||
46 | FLOAT u, v; | ||
47 | D3DCOLOR col; | ||
48 | }; | ||
49 | |||
50 | struct GroupDesc | ||
51 | { | ||
52 | int num; | ||
53 | int id; | ||
54 | }; | ||
55 | |||
56 | private: | ||
57 | Vertex *MakeData(); | ||
58 | Vertex *MakeDataBorder(); | ||
59 | |||
60 | private: | ||
61 | FLOAT _x, _y, _w, _h; | ||
62 | FLOAT _sx, _sy, _sw, _sh; | ||
63 | D3DXVECTOR4 _border; | ||
64 | D3DXVECTOR4 _uvborder; | ||
65 | |||
66 | FLOAT _u, _v, _du, _dv; | ||
67 | int _image_id; | ||
68 | int _width, _height; | ||
69 | |||
70 | D3DCOLOR _color; | ||
71 | int _cache_i; | ||
72 | bool _with_border; | ||
73 | bool _dirty; | ||
74 | |||
75 | TArray<DWORD> _image_data; | ||
76 | bool _image_data_updated; | ||
77 | |||
78 | char _source[256]; | ||
79 | |||
80 | Vertex _data[54]; | ||
81 | |||
82 | static TArray<D3DObjectImage *> _cache; | ||
83 | static bool _cache_enabled; | ||
84 | }; | ||
85 | |||
86 | bool D3DObjectImage::IsValid() | ||
87 | { | ||
88 | return _image_id >= 0 && _width > 0 && _height > 0; | ||
89 | } | ||
90 | |||
91 | const char *D3DObjectImage::GetSource() | ||
92 | { | ||
93 | return _source; | ||
94 | } | ||
95 | |||
96 | int D3DObjectImage::GetWidth() | ||
97 | { | ||
98 | return _width; | ||
99 | } | ||
100 | |||
101 | int D3DObjectImage::GetHeight() | ||
102 | { | ||
103 | return _height; | ||
104 | } | ||
105 | |||
106 | FLOAT D3DObjectImage::GetBorderLeft() | ||
107 | { | ||
108 | return _border.x; | ||
109 | } | ||
110 | |||
111 | FLOAT D3DObjectImage::GetBorderRight() | ||
112 | { | ||
113 | return _border.z; | ||
114 | } | ||
115 | |||
116 | FLOAT D3DObjectImage::GetBorderTop() | ||
117 | { | ||
118 | return _border.y; | ||
119 | } | ||
120 | |||
121 | FLOAT D3DObjectImage::GetBorderBottom() | ||
122 | { | ||
123 | return _border.w; | ||
124 | } | ||
125 | |||
126 | |||
127 | #endif // __EVAS_DIRECT3D_OBJECT_IMAGE_H__ | ||