2011-06-14 14:31:25 +08:00
|
|
|
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,
|
2011-07-11 14:00:55 +08:00
|
|
|
//! 8-bit intensity texture
|
|
|
|
kCCTexture2DPixelFormat_I8,
|
|
|
|
//! 16-bit textures used as masks
|
|
|
|
kCCTexture2DPixelFormat_AI88,
|
2011-06-14 14:31:25 +08:00
|
|
|
//! 16-bit textures: RGBA4444
|
|
|
|
kCCTexture2DPixelFormat_RGBA4444,
|
|
|
|
//! 16-bit textures: RGB5A1
|
|
|
|
kCCTexture2DPixelFormat_RGB5A1,
|
2011-07-11 14:00:55 +08:00
|
|
|
//! 4-bit PVRTC-compressed texture: PVRTC4
|
|
|
|
kCCTexture2DPixelFormat_PVRTC4,
|
|
|
|
//! 2-bit PVRTC-compressed texture: PVRTC2
|
|
|
|
kCCTexture2DPixelFormat_PVRTC2,
|
2011-06-14 14:31:25 +08:00
|
|
|
|
|
|
|
//! 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();
|
2011-07-11 14:00:55 +08:00
|
|
|
|
|
|
|
int bitsPerPixelForFormat();
|
2011-06-14 14:31:25 +08:00
|
|
|
|
|
|
|
static void setDefaultAlphaPixelFormat(CCTexture2DPixelFormat format);
|
|
|
|
static CCTexture2DPixelFormat defaultAlphaPixelFormat();
|
|
|
|
|
|
|
|
};
|
|
|
|
}//namespace cocos2d
|
|
|
|
|