namespace cocos2d { class CCImage; typedef enum { kCCTexture2DPixelFormat_Automatic = 0, //! 32-bit texture: RGBA8888 kCCTexture2DPixelFormat_RGBA8888, //! 24-bit texture: RGBA888 kCCTexture2DPixelFormat_RGB888, //! 16-bit texture without Alpha channel kCCTexture2DPixelFormat_RGB565, //! 8-bit textures used as masks kCCTexture2DPixelFormat_A8, //! 8-bit intensity texture kCCTexture2DPixelFormat_I8, //! 16-bit textures used as masks kCCTexture2DPixelFormat_AI88, //! 16-bit textures: RGBA4444 kCCTexture2DPixelFormat_RGBA4444, //! 16-bit textures: RGB5A1 kCCTexture2DPixelFormat_RGB5A1, //! 4-bit PVRTC-compressed texture: PVRTC4 kCCTexture2DPixelFormat_PVRTC4, //! 2-bit PVRTC-compressed texture: PVRTC2 kCCTexture2DPixelFormat_PVRTC2, //! Default texture format: RGBA8888 kCCTexture2DPixelFormat_Default = kCCTexture2DPixelFormat_RGBA8888, // backward compatibility stuff kTexture2DPixelFormat_Automatic = kCCTexture2DPixelFormat_Automatic, kTexture2DPixelFormat_RGBA8888 = kCCTexture2DPixelFormat_RGBA8888, kTexture2DPixelFormat_RGB888 = kCCTexture2DPixelFormat_RGB888, kTexture2DPixelFormat_RGB565 = kCCTexture2DPixelFormat_RGB565, kTexture2DPixelFormat_A8 = kCCTexture2DPixelFormat_A8, kTexture2DPixelFormat_RGBA4444 = kCCTexture2DPixelFormat_RGBA4444, kTexture2DPixelFormat_RGB5A1 = kCCTexture2DPixelFormat_RGB5A1, kTexture2DPixelFormat_Default = kCCTexture2DPixelFormat_Default } CCTexture2DPixelFormat; /** Extension to set the Min / Mag filter */ typedef struct _ccTexParams { GLuint minFilter; GLuint magFilter; GLuint wrapS; GLuint wrapT; } ccTexParams; class CCTexture2D : public CCObject { /** pixel format of the texture */ CCTexture2DPixelFormat getPixelFormat(); /** width in pixels */ unsigned int getPixelsWide(); unsigned int getPixelsHigh(); /** texture name */ GLuint getName(); /** content size */ CCSize getContentSizeInPixels(); /** texture max S */ void setMaxS(GLfloat val); GLfloat getMaxS(); /** texture max T */ GLfloat getMaxT(); void setMaxT(GLfloat val); bool getHasPremultipliedAlpha(); CCTexture2D(); ~CCTexture2D(); char * description(void); /** These functions are needed to create mutable textures */ void releaseData(void *data); void* keepData(void *data, unsigned int length); /** Intializes with a texture2d with data */ bool initWithData(const void* data, CCTexture2DPixelFormat pixelFormat, unsigned int pixelsWide, unsigned int pixelsHigh, CCSize contentSize); /** draws a texture at a given point */ void drawAtPoint(CCPoint point); /** draws a texture inside a rect */ void drawInRect(CCRect rect); /** Initializes a texture from a UIImage object */ bool initWithImage(CCImage * uiImage); /** Initializes a texture from a string with dimensions, alignment, font name and font size */ bool initWithString(const char *text, CCSize dimensions, CCTextAlignment alignment, const char *fontName, float fontSize); /** Initializes a texture from a string with font name and font size */ bool initWithString(const char *text, const char *fontName, float fontSize); /** returns the content size of the texture in points */ CCSize getContentSize(void); void setTexParameters(ccTexParams* texParams); void setAntiAliasTexParameters(); void setAliasTexParameters(); void generateMipmap(); int bitsPerPixelForFormat(); static void setDefaultAlphaPixelFormat(CCTexture2DPixelFormat format); static CCTexture2DPixelFormat defaultAlphaPixelFormat(); }; }//namespace cocos2d