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