9 typedef struct _MipmapInfo MipmapInfo;
68 PixelFormatInfo(GLenum anInternalFormat, GLenum aFormat, GLenum aType,
int aBpp,
bool aCompressed,
bool anAlpha)
69 : internalFormat(anInternalFormat)
73 , compressed(aCompressed)
77 GLenum internalFormat;
85 typedef std::map<Texture2D::PixelFormat, const PixelFormatInfo> PixelFormatInfoMap;
98 bool initWithImage(
Image * image);
103 int getNumberOfMipmaps();
113 bool initWithData(
const void *data,
size_t dataLen,
Texture2D::PixelFormat pixelFormat,
int pixelsWide,
int pixelsHigh,
const Size& contentSize);
115 bool updateWithData(
const void *data,
int offsetX,
int offsetY,
int width,
int height);
117 GLuint getName()
const;
118 void setTexParameters(
const TexParams& texParams);
119 void setAliasTexParameters();
120 void setAntiAliasTexParameters();
122 static const PixelFormatInfoMap& getPixelFormatInfoMap();
149 bool _hasPremultipliedAlpha;
157 static const PixelFormatInfoMap _pixelFormatInfoTables;
159 bool _antialiasEnabled;
162 std::string _filePath;
168 bool initWithMipmaps(
MipmapInfo* mipmaps,
int mipmapsNum,
PixelFormat pixelFormat,
int pixelsWide,
int pixelsHigh);
170 void setGLProgram(
GLProgram* shaderProgram);
174 static PixelFormat convertI8ToFormat(
const unsigned char* data,
size_t dataLen,
PixelFormat format,
unsigned char** outData,
size_t* outDataLen);
175 static PixelFormat convertAI88ToFormat(
const unsigned char* data,
size_t dataLen,
PixelFormat format,
unsigned char** outData,
size_t* outDataLen);
176 static PixelFormat convertRGB888ToFormat(
const unsigned char* data,
size_t dataLen,
PixelFormat format,
unsigned char** outData,
size_t* outDataLen);
177 static PixelFormat convertRGBA8888ToFormat(
const unsigned char* data,
size_t dataLen,
PixelFormat format,
unsigned char** outData,
size_t* outDataLen);
180 static void convertI8ToRGB888(
const unsigned char* data,
size_t dataLen,
unsigned char* outData);
181 static void convertI8ToRGBA8888(
const unsigned char* data,
size_t dataLen,
unsigned char* outData);
182 static void convertI8ToRGB565(
const unsigned char* data,
size_t dataLen,
unsigned char* outData);
183 static void convertI8ToRGBA4444(
const unsigned char* data,
size_t dataLen,
unsigned char* outData);
184 static void convertI8ToRGB5A1(
const unsigned char* data,
size_t dataLen,
unsigned char* outData);
185 static void convertI8ToAI88(
const unsigned char* data,
size_t dataLen,
unsigned char* outData);
188 static void convertAI88ToRGB888(
const unsigned char* data,
size_t dataLen,
unsigned char* outData);
189 static void convertAI88ToRGBA8888(
const unsigned char* data,
size_t dataLen,
unsigned char* outData);
190 static void convertAI88ToRGB565(
const unsigned char* data,
size_t dataLen,
unsigned char* outData);
191 static void convertAI88ToRGBA4444(
const unsigned char* data,
size_t dataLen,
unsigned char* outData);
192 static void convertAI88ToRGB5A1(
const unsigned char* data,
size_t dataLen,
unsigned char* outData);
193 static void convertAI88ToA8(
const unsigned char* data,
size_t dataLen,
unsigned char* outData);
194 static void convertAI88ToI8(
const unsigned char* data,
size_t dataLen,
unsigned char* outData);
197 static void convertRGB888ToRGBA8888(
const unsigned char* data,
size_t dataLen,
unsigned char* outData);
198 static void convertRGB888ToRGB565(
const unsigned char* data,
size_t dataLen,
unsigned char* outData);
199 static void convertRGB888ToA8(
const unsigned char* data,
size_t dataLen,
unsigned char* outData);
200 static void convertRGB888ToI8(
const unsigned char* data,
size_t dataLen,
unsigned char* outData);
201 static void convertRGB888ToAI88(
const unsigned char* data,
size_t dataLen,
unsigned char* outData);
202 static void convertRGB888ToRGBA4444(
const unsigned char* data,
size_t dataLen,
unsigned char* outData);
203 static void convertRGB888ToRGB5A1(
const unsigned char* data,
size_t dataLen,
unsigned char* outData);
206 static void convertRGBA8888ToRGB888(
const unsigned char* data,
size_t dataLen,
unsigned char* outData);
207 static void convertRGBA8888ToRGB565(
const unsigned char* data,
size_t dataLen,
unsigned char* outData);
208 static void convertRGBA8888ToI8(
const unsigned char* data,
size_t dataLen,
unsigned char* outData);
209 static void convertRGBA8888ToA8(
const unsigned char* data,
size_t dataLen,
unsigned char* outData);
210 static void convertRGBA8888ToAI88(
const unsigned char* data,
size_t dataLen,
unsigned char* outData);
211 static void convertRGBA8888ToRGBA4444(
const unsigned char* data,
size_t dataLen,
unsigned char* outData);
212 static void convertRGBA8888ToRGB5A1(
const unsigned char* data,
size_t dataLen,
unsigned char* outData);
int getPixelsWide() const
Gets the width of the texture in pixels.
Definition: GLTexture2D.cpp:288
Definition: GLTexture2D.h:66
ETC-compressed texture: ETC.
ATITC-compressed texture: ATC_EXPLICIT_ALPHA.
Definition: GLTexture2D.h:88
int getPixelsHigh() const
Gets the height of the texture in pixels.
Definition: GLTexture2D.cpp:296
S3TC-compressed texture: S3TC_Dxt1.
Base class for a reference counted asset.
Definition: PERef.h:55
S3TC-compressed texture: S3TC_Dxt5.
different physics engine has different winding order.
Definition: EventBinding.h:32
ATITC-compressed texture: ATC_INTERPOLATED_ALPHA.
4-bit PVRTC-compressed texture: PVRTC4 (has alpha channel)
Default texture format: AUTO.
S3TC-compressed texture: S3TC_Dxt3.
PixelFormat
Definition: GLTexture2D.h:15
2-bit PVRTC-compressed texture: PVRTC2 (has alpha channel)
8-bit textures used as masks
16-bit textures: RGBA4444
Definition: GLTexture2D.h:12
16-bit texture without Alpha channel
4-bit PVRTC-compressed texture: PVRTC4
16-bit textures used as masks
ATITC-compressed texture: ATC_RGB.
GLProgram Class that implements a glProgram.
Definition: GLProgram.h:43
2-bit PVRTC-compressed texture: PVRTC2