1 /*
2  * This source file is part of MyGUI. For the latest info, see http://mygui.info/
3  * Distributed under the MIT License
4  * (See accompanying file COPYING.MIT or copy at http://opensource.org/licenses/MIT)
5  */
6 
7 #ifndef MYGUI_RENDER_FORMAT_H_
8 #define MYGUI_RENDER_FORMAT_H_
9 
10 #include "MyGUI_Macros.h"
11 
12 namespace MyGUI
13 {
14 
15 	struct MYGUI_EXPORT VertexColourType
16 	{
17 	public:
18 		enum Enum
19 		{
20 			ColourARGB, // D3D style compact colour
21 			ColourABGR, // GL style compact colour
22 			MAX
23 		};
24 
25 		VertexColourType(Enum _value = MAX) :
mValueVertexColourType26 			mValue(_value)
27 		{
28 		}
29 
30 		friend bool operator == (VertexColourType const& a, VertexColourType const& b)
31 		{
32 			return a.mValue == b.mValue;
33 		}
34 
35 		friend bool operator != (VertexColourType const& a, VertexColourType const& b)
36 		{
37 			return a.mValue != b.mValue;
38 		}
39 
getValueVertexColourType40 		int getValue() const
41 		{
42 			return mValue;
43 		}
44 
45 	private:
46 		Enum mValue;
47 	};
48 
49 	struct MYGUI_EXPORT PixelFormat
50 	{
51 		enum Enum
52 		{
53 			Unknow,
54 			L8, // 1 byte pixel format, 1 byte luminance
55 			L8A8, // 2 byte pixel format, 1 byte luminance, 1 byte alpha
56 			R8G8B8, // 24-bit pixel format, 8 bits for red, green and blue.
57 			R8G8B8A8 // 32-bit pixel format, 8 bits for red, green, blue and alpha.
58 		};
59 
60 		PixelFormat(Enum _value = Unknow) :
mValuePixelFormat61 			mValue(_value)
62 		{
63 		}
64 
65 		friend bool operator == (PixelFormat const& a, PixelFormat const& b)
66 		{
67 			return a.mValue == b.mValue;
68 		}
69 
70 		friend bool operator != (PixelFormat const& a, PixelFormat const& b)
71 		{
72 			return a.mValue != b.mValue;
73 		}
74 
getValuePixelFormat75 		int getValue() const
76 		{
77 			return mValue;
78 		}
79 
80 	private:
81 		Enum mValue;
82 	};
83 
84 	struct MYGUI_EXPORT TextureUsage
85 	{
86 		enum Enum
87 		{
88 			Default = MYGUI_FLAG_NONE,
89 			Static = MYGUI_FLAG(0),
90 			Dynamic = MYGUI_FLAG(1),
91 			Stream = MYGUI_FLAG(2),
92 			Read = MYGUI_FLAG(3),
93 			Write = MYGUI_FLAG(4),
94 			RenderTarget = MYGUI_FLAG(5)
95 		};
96 
97 		TextureUsage(Enum _value = Default) :
mValueTextureUsage98 			mValue(_value)
99 		{
100 		}
101 
102 		friend bool operator == (TextureUsage const& a, TextureUsage const& b)
103 		{
104 			return a.mValue == b.mValue;
105 		}
106 
107 		friend bool operator != (TextureUsage const& a, TextureUsage const& b)
108 		{
109 			return a.mValue != b.mValue;
110 		}
111 
112 		TextureUsage& operator |= (TextureUsage const& _other)
113 		{
114 			mValue = Enum(int(mValue) | int(_other.mValue));
115 			return *this;
116 		}
117 
118 		friend TextureUsage operator | (Enum const& a, Enum const& b)
119 		{
120 			return TextureUsage(Enum(int(a) | int(b)));
121 		}
122 
123 		friend TextureUsage operator | (TextureUsage const& a, TextureUsage const& b)
124 		{
125 			return TextureUsage(Enum(int(a.mValue) | int(b.mValue)));
126 		}
127 
isValueTextureUsage128 		bool isValue(Enum _value) const
129 		{
130 			return 0 != (mValue & _value);
131 		}
132 
getValueTextureUsage133 		int getValue() const
134 		{
135 			return mValue;
136 		}
137 
138 	private:
139 		Enum mValue;
140 	};
141 
142 } // namespace MyGUI
143 
144 
145 #endif // MYGUI_RENDER_FORMAT_H_
146