#ifndef __CCTYPES_H__
#define __CCTYPES_H__
#include <string>
#include "cocoa/CCGeometry.h"
#include "CCGL.h"
NS_CC_BEGIN
/** RGB color composed(组成) of bytes 3 bytes
@since v0.8
*/
typedef struct _ccColor3B
{
GLubyte r;
/////
typedef unsigned char GLubyte;
////////
GLubyte g;
GLubyte b;
} ccColor3B;
//! helper macro(宏) that creates an ccColor3B type //ccc3用于创建一个ccColor3B type的宏
static inline ccColor3B
ccc3(const GLubyte r,const GLubyte g,const GLubyte b)
ccColor3B c = {r,g,b};
return c;
}
/** returns true if both ccColor3B are equal. Otherwise it returns false.
static inline bool ccc3BEqual(const ccColor3B &col1,const ccColor3B &col2) //判断两个cccolor3b是否相同
return col1.r == col2.r && col1.g == col2.g && col1.b == col2.b;
//ccColor3B predefined(预先定义的) colors
//! White color (255,255)
static const ccColor3B ccWHITE={255,255};
//! Yellow color (255,0)
static const ccColor3B ccYELLOW={255,0};
//! Blue color (0,255);margin-top:0px;margin-bottom:0px;font-size:11px;font-family:Menlo;">static const ccColor3B ccBLUE={0,255);margin-top:0px;margin-bottom:0px;font-size:11px;font-family:Menlo;">//! Green Color (0,255);margin-top:0px;margin-bottom:0px;font-size:11px;font-family:Menlo;">static const ccColor3B ccGREEN={0,255);margin-top:0px;margin-bottom:0px;font-size:11px;font-family:Menlo;">//! Red Color (255,)
static const ccColor3B ccRED={255,255);margin-top:0px;margin-bottom:0px;font-size:11px;font-family:Menlo;">//! Magenta Color (255,255);margin-top:0px;margin-bottom:0px;font-size:11px;font-family:Menlo;">static const ccColor3B ccMAGENTA={255,255);margin-top:0px;margin-bottom:0px;font-size:11px;font-family:Menlo;">//! Black Color (0,255);margin-top:0px;margin-bottom:0px;font-size:11px;font-family:Menlo;">static const ccColor3B ccBLACK={0,255);margin-top:0px;margin-bottom:0px;font-size:11px;font-family:Menlo;">//! Orange Color (255,127,255);margin-top:0px;margin-bottom:0px;font-size:11px;font-family:Menlo;">static const ccColor3B ccORANGE={255,255);margin-top:0px;margin-bottom:0px;font-size:11px;font-family:Menlo;">//! Gray Color (166,166,166)
static const ccColor3B ccGRAY={166,166};
/** RGBA color composed(组成) of 4 bytes
typedef struct _ccColor4B
GLubyte a;
} ccColor4B;
//! helper macro that creates an ccColor4B type //ccc4用于创建一个ccColor3B type的宏
static inline ccColor4B
ccc4(const GLubyte r,const GLubyte b,const GLubyte o)
ccColor4B c = {r,b,o};
/** RGBA color composed of 4 floats
typedef struct _ccColor4F {
GLfloat r;
GLfloat g;
GLfloat b;
GLfloat a;
} ccColor4F;
/** Returns a ccColor4F from a ccColor3B. Alpha will be 1.
@since v0.99.1
static inline ccColor4F ccc4FFromccc3B(ccColor3B c)
ccColor4F c4 = {c.r/255.f,c.g/255.f,c.b/255.f,1.f};
return c4;
//! helper that creates a ccColor4f type
static inline ccColor4F
ccc4f(const GLfloat r,const GLfloat g,const GLfloat b,const GLfloat a)
ccColor4F c4 = {r,a};
/** Returns a ccColor4F from a ccColor4B.
static inline ccColor4F ccc4FFromccc4B(ccColor4B c)
static inline ccColor4B ccc4BFromccc4F(ccColor4F c)
ccColor4B ret = {(GLubyte)(c.r*255),(GLubyte)(c.g*255),(GLubyte)(c.b*255),(GLubyte)(c.a*255)};
return ret;
/** returns YES if both ccColor4F are equal. Otherwise it returns NO.
static inline bool ccc4FEqual(ccColor4F a,ccColor4F b)
return a.r == b.r && a.g == b.g && a.b == b.b && a.a == b.a;
/** A vertex composed of 2 floats: x,y
typedef struct _ccVertex2F //向量
GLfloat x;
GLfloat y;
} ccVertex2F;
static inline ccVertex2F vertex2(const float x,const float y)//vertex2 创建向量
ccVertex2F c = {x,y};
typedef struct _ccVertex3F//三维向量
GLfloat z;
} ccVertex3F;
static inline ccVertex3F vertex3(const float x,const float y,const float z)//vertex3创建三维向量
ccVertex3F c = {x,y,z};
/** A texcoord composed of 2 floats: u,255);margin-top:0px;margin-bottom:0px;font-size:11px;font-family:Menlo;">typedef struct _ccTex2F { //纹理坐标
GLfloat u;
GLfloat v;
} ccTex2F;
static inline ccTex2F tex2(const float u,const float v)//tex2 创建纹理坐标
ccTex2F t = {u,v};
return t;
//! Point Sprite component
typedef struct_ccPointSprite
ccVertex2F pos; // 8 bytes
ccColor4B color; // 4 bytes
GLfloat size; // 4 bytes
} ccPointSprite;
//! A 2D Quad. 4 * 2 floats //图块 4个顶点(ccVertex2F)组成
typedef struct _ccQuad2 {
ccVertex2F tl;
ccVertex2F tr;
ccVertex2F bl;
ccVertex2F br;
} ccQuad2;
//! A 3D Quad. 4 * 3 floats
typedef struct _ccQuad3 { //3d图块4个顶点(ccVertex3F)组成
ccVertex3F bl;
ccVertex3F br;
ccVertex3F tl;
ccVertex3F tr;
} ccQuad3;
//! a Point with a vertex point,a tex coord point and a color 4B
_ccV2F_C4B_T2F //采用2维向量 4b颜色 的ccpoint
//! vertices (2F)
ccVertex2F vertices;
//! colors (4B)
ccColor4B colors;
//! tex coords (2F)
ccTex2F texCoords;
} ccV2F_C4B_T2F;
_ccV2F_C4F_T2F //采用2维向量 4f颜色 的ccpoint
//! colors (4F)
ccColor4F colors;
} ccV2F_C4F_T2F;
_ccV3F_C4B_T2F//采用3维向量 4b颜色 的ccpoint
//! vertices (3F)
ccVertex3F vertices; // 12 bytes
// char __padding__[4];
ccColor4B colors; // 4 bytes
// char __padding2__[4];
// tex coords (2F)
ccTex2F texCoords; // 8 bytes
} ccV3F_C4B_T2F;
//! A Triangle(三角形) of ccV2F_C4B_T2F
typedef struct _ccV2F_C4B_T2F_Triangle //采用ccV2F_C4B_T2F的三角形
//! Point A
ccV2F_C4B_T2F a;
//! Point B
ccV2F_C4B_T2F b;
ccV2F_C4B_T2F c;
} ccV2F_C4B_T2F_Triangle;
//! A Quad of ccV2F_C4B_T2F
typedef struct _ccV2F_C4B_T2F_Quad //采用ccV2F_C4B_T2F的图块
//! bottom left
ccV2F_C4B_T2F bl;
//! bottom right
ccV2F_C4B_T2F br;
//! top left
ccV2F_C4B_T2F tl;
//! top right
ccV2F_C4B_T2F tr;
} ccV2F_C4B_T2F_Quad;
//! 4 ccVertex3FTex2FColor4B
typedef struct _ccV3F_C4B_T2F_Quad //采用ccV3F_C4B_T2F的图块
ccV3F_C4B_T2F tl;
ccV3F_C4B_T2F bl;
ccV3F_C4B_T2F tr;
ccV3F_C4B_T2F br;
} ccV3F_C4B_T2F_Quad;
//! 4 ccVertex2FTex2FColor4F Quad
typedef struct _ccV2F_C4F_T2F_Quad //采用ccV2F_C4F_T2F的图块
ccV2F_C4F_T2F bl;
ccV2F_C4F_T2F br;
ccV2F_C4F_T2F tl;
ccV2F_C4F_T2F tr;
} ccV2F_C4F_T2F_Quad;
//! Blend(混合) Function used for textures
typedef struct _ccBlendFunc //用于纹理的混合函数
//! source blend function
GLenum src; //资源函数
///////
typedef unsigned int GLenum;
//////
//! destination blend function
GLenum dst; //目标函数
}ccBlendFunc;
static constccBlendFunckCCBlendFuncDisable = {GL_ONE,GL_ZERO};
//
#define GL_ONE 1
#define GL_ZERO 0
///// XXX: If any of these enums(枚举) are edited(编辑的) and/or reordered(再订购;重新整理),update CCTexture2D.m
//! Vertical(垂直的) text(文本) alignment(队列) type
typedef enum
kCCVerticalTextAlignmentTop,
kCCVerticalTextAlignmentCenter,255);margin-top:0px;margin-bottom:0px;font-size:11px;font-family:Menlo;"> kCCVerticalTextAlignmentBottom,255);margin-top:0px;margin-bottom:0px;font-size:11px;font-family:Menlo;">} CCVerticalTextAlignment;
// XXX: If any of these enums are edited and/or reordered,255);margin-top:0px;margin-bottom:0px;font-size:11px;font-family:Menlo;">//! Horizontal(水平的) text alignment type
kCCTextAlignmentLeft,255);margin-top:0px;margin-bottom:0px;font-size:11px;font-family:Menlo;"> kCCTextAlignmentCenter,255);margin-top:0px;margin-bottom:0px;font-size:11px;font-family:Menlo;"> kCCTextAlignmentRight,255);margin-top:0px;margin-bottom:0px;font-size:11px;font-family:Menlo;">} CCTextAlignment;
// types for animation in particle systems 粒子系统动画类型
// texture coordinates for a quad
typedef struct _ccT2F_Quad
ccTex2F bl;
ccTex2F br;
ccTex2F tl;
ccTex2F tr;
} ccT2F_Quad;
// struct that holds the size in pixels,texture coordinates and delays for animated CCParticleSystemQuad
typedef struct
ccT2F_Quad texCoords;
float delay;
CCSize size;
} ccAnimationFrameData;
/**
types used for defining fonts properties (i.e. font name,size,stroke or shadow(阴影 渐变))用于定义字体属性的类型(字体名 大小、、、)
// shadow attributes(阴影 渐变)属性
typedef struct _ccFontShadow
public:
// shadow is not enabled by default默认情况阴影不使用
_ccFontShadow(): m_shadowEnabled(false) {}
// true if shadow enabled
bool m_shadowEnabled;
// shadow x and y offset
CCSize m_shadowOffset; //偏移量
// shadow blurrines
float m_shadowBlur;//模糊值
// shadow opacity
float m_shadowOpacity;//透明值
} ccFontShadow;
// stroke attributes
_ccFontStroke
// stroke is disabled by default
_ccFontStroke(): m_strokeEnabled(false) {}
// true if stroke enabled
bool m_strokeEnabled;
// stroke color
ccColor3B m_strokeColor;
// stroke size
float m_strokeSize;
} ccFontStroke;
// font attributes
typedef struct _ccFontDefinition //字体定义
_ccFontDefinition(): m_alignment(kCCTextAlignmentCenter),255);margin-top:0px;margin-bottom:0px;font-size:11px;font-family:Menlo;"> m_vertAlignment(kCCVerticalTextAlignmentTop),255);margin-top:0px;margin-bottom:0px;font-size:11px;font-family:Menlo;"> m_fontFillColor(ccWHITE)
{ m_dimensions = CCSizeMake(0,0); }
// font name
std::string m_fontName;
// font size
int m_fontSize;
// horizontal alignment
CCTextAlignment m_alignment;
// vertical alignment
CCVerticalTextAlignment m_vertAlignment;
// renering Box
CCSize m_dimensions;
// font color
ccColor3B m_fontFillColor;
// font shadow
ccFontShadow m_shadow;
// font stroke
ccFontStroke m_stroke;
} ccFontDefinition;
NS_CC_END
#endif //__CCTYPES_H__
原文链接:https://www.f2er.com/cocos2dx/344010.html