本文来自http://blog.csdn.net/runaying ,引用必须注明出处!
温馨提醒:为了大家能更好学习,强烈推荐大家看看本人的这篇博客 Cocos2d-X权威指南笔记
字体属性、texture属性、RGB组成......
///cocos2d-x-3.0alpha0/cocos2dx/include //字体属性、texture属性、RGB组成...... #ifndef __CCTYPES_H__ #define __CCTYPES_H__ #include <string> #include "cocoa/CCGeometry.h" #include "CCGL.h" NS_CC_BEGIN /** RGB颜色组成的字节3字节 @since v3.0 */ struct Color3B { Color3B(): r(0), g(0), b(0) {} Color3B(GLubyte _r, GLubyte _g, GLubyte _b) : r(_r) , g(_g) , b(_b) {} bool equals(const Color3B &other) { return (this->r == other.r && this->g == other.g && this->b == other.b); } GLubyte r; GLubyte g; GLubyte b; const static Color3B WHITE; const static Color3B YELLOW; const static Color3B BLUE; const static Color3B GREEN; const static Color3B RED; const static Color3B MAGENTA; const static Color3B BLACK; const static Color3B ORANGE; const static Color3B GRAY; }; struct Color4F; /** 组成 RGBA 颜色(4 字节) @since v3.0 */ struct Color4B { Color4B(GLubyte _r, GLubyte _g, GLubyte _b, GLubyte _a) : r(_r) , g(_g) , b(_b) , a(_a) {} Color4B(): r(0), g(0), b(0), a(0) {} // 此功能应该使用 Color4F, so implement it in .cpp file. explicit Color4B(const Color4F &color4F); GLubyte r; GLubyte g; GLubyte b; GLubyte a; const static Color4B WHITE; const static Color4B YELLOW; const static Color4B BLUE; const static Color4B GREEN; const static Color4B RED; const static Color4B MAGENTA; const static Color4B BLACK; const static Color4B ORANGE; const static Color4B GRAY; }; /** RGBA color 由 4 floats 组成 @since v3.0 */ struct Color4F { Color4F(float _r, float _g, float _b, float _a) : r(_r) , g(_g) , b(_b) , a(_a) {} explicit Color4F(const Color3B &color3B) : r(color3B.r / 255.0f) , g(color3B.g / 255.0f) , b(color3B.b / 255.0f) , a(1.f) {} explicit Color4F(const Color4B &color4B) : r(color4B.r / 255.0f) , g(color4B.g / 255.0f) , b(color4B.b / 255.0f) , a(color4B.a / 255.0f) {} Color4F(): r(0.f), g(0.f), b(0.f), a(0.f) {} bool equals(const Color4F &other) { return (this->r == other.r && this->g == other.g && this->b == other.b && this->a == other.a); } GLfloat r; GLfloat g; GLfloat b; GLfloat a; const static Color4F WHITE; const static Color4F YELLOW; const static Color4F BLUE; const static Color4F GREEN; const static Color4F RED; const static Color4F MAGENTA; const static Color4F BLACK; const static Color4F ORANGE; const static Color4F GRAY; }; /** A vertex 由 2 floats 组成: x, y @since v3.0 */ struct Vertex2F { Vertex2F(float _x, float _y) :x(_x), y(_y) {} Vertex2F(): x(0.f), y(0.f) {} GLfloat x; GLfloat y; }; /** A vertex 由 2 floats 组成: x, y @since v3.0 */ struct Vertex3F { Vertex3F(float _x, float _y, float _z) : x(_x) , y(_y) , z(_z) {} Vertex3F(): x(0.f), y(0.f), z(0.f) {} GLfloat x; GLfloat y; GLfloat z; }; /** A texcoord(textureCoord 纹理坐标) composed(组成) of 2 floats: u, y @since v3.0 */ struct Tex2F { Tex2F(float _u, float _v): u(_u), v(_v) {} Tex2F(): u(0.f), v(0.f) {} GLfloat u; GLfloat v; }; //! Point Sprite component(组件) struct PointSprite { Vertex2F pos; // 8 bytes Color4B color; // 4 bytes GLfloat size; // 4 bytes }; //! A 2D Quad. 4 * 2 floats //四 struct Quad2 { Vertex2F tl; Vertex2F tr; Vertex2F bl; Vertex2F br; }; //! A 3D Quad. 4 * 3 floats //四 struct Quad3 { Vertex3F bl; Vertex3F br; Vertex3F tl; Vertex3F tr; }; //备注 :texcoord 是纹理坐标,在后续的Pixel shader中会用到用来读取纹理颜色 //! 一个顶点, a tex coord point(纹理坐标) and a color 4B //顶点 struct V2F_C4B_T2F { //! vertices (2F) //顶点 Vertex2F vertices; //! colors (4B) Color4B colors; //! tex coords (2F) Tex2F texCoords; }; //! 一个顶点, a tex coord point(纹理坐标) and a color 4F //顶点 struct V2F_C4F_T2F { //! vertices (2F) //顶点 Vertex2F vertices; //! colors (4F) Color4F colors; //! tex coords (2F) Tex2F texCoords; }; //! 一个顶点, a tex coord point(纹理坐标) and a color 4B //顶点 struct V3F_C4B_T2F { //! vertices (3F) //顶点 Vertex3F vertices; // 12 bytes //! colors (4B) Color4B colors; // 4 bytes // tex coords (2F) Tex2F texCoords; // 8 bytes }; //! A Triangle of V2F_C4B_T2F //三角形 struct V2F_C4B_T2F_Triangle { //! Point A V2F_C4B_T2F a; //! Point B V2F_C4B_T2F b; //! Point B V2F_C4B_T2F c; }; //! A Quad of V2F_C4B_T2F struct V2F_C4B_T2F_Quad { //! bottom left //下 V2F_C4B_T2F bl; //! bottom right //下 V2F_C4B_T2F br; //! top left V2F_C4B_T2F tl; //! top right V2F_C4B_T2F tr; }; //! 4 Vertex3FTex2FColor4B struct V3F_C4B_T2F_Quad { //! top left V3F_C4B_T2F tl; //! bottom left //下 V3F_C4B_T2F bl; //! top right V3F_C4B_T2F tr; //! bottom right V3F_C4B_T2F br; }; //! 4 Vertex2FTex2FColor4F Quad struct V2F_C4F_T2F_Quad { //! bottom left //下 V2F_C4F_T2F bl; //! bottom right //下 V2F_C4F_T2F br; //! top left V2F_C4F_T2F tl; //! top right V2F_C4F_T2F tr; }; //! textures 使用的混合函数 struct BlendFunc { //! source blend function //源混合功能 GLenum src; //! destination blend function //目标混合功能 GLenum dst; //! Blending(混合) disabled. Uses {GL_ONE, GL_ZERO} const static BlendFunc DISABLE; //! Blending(混合) enabled for textures with Alpha premultiplied(预乘). Uses {GL_ONE, GL_ONE_MINUS_SRC_ALPHA} const static BlendFunc ALPHA_PREMULTIPLIED; //! Blending(混合) enabled for textures with Alpha NON(非) premultiplied(预乘). Uses {GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA} const static BlendFunc ALPHA_NON_PREMULTIPLIED; //! Enables Additive(附加) blending(混合). Uses {GL_SRC_ALPHA, GL_ONE} const static BlendFunc ADDITIVE; }; // Label::VAlignment //对齐 // Label::HAlignment // XXX: 如果这些枚举被编辑, and/or 重新排序, 都会更新 Texture2D.m //! Vertical text alignment type //垂直 enum class TextVAlignment { TOP, CENTER, BOTTOM, }; // XXX: 如果这些枚举被编辑, and/or 重新排序, 都会更新 Texture2D.m //! Horizontal text alignment type //水平 enum class TextHAlignment { LEFT, CENTER, RIGHT, }; // animation 中的粒子系统的类型 // texture coordinates(坐标)for a quad //四 struct T2F_Quad { //! bottom left //下 Tex2F bl; //! bottom right //下 Tex2F br; //! top left Tex2F tl; //! top right Tex2F tr; }; // ParticleSystemQuad 动画的 延迟、texture 坐标、持有尺寸(以像素为单位) struct AnimationFrameData { T2F_Quad texCoords; float delay; Size size; }; /** 定义的字体属性类型 (i.e. font name, size, stroke(笔画样式)or 阴影) */ // 阴影属性 struct FontShadow { public: // 默认情况下,不启用阴影 FontShadow() : _shadowEnabled(false) , _shadowBlur(0) , _shadowOpacity(0) {} // true 启用阴影 bool _shadowEnabled; // 阴影偏移(x,y) Size _shadowOffset; // 模糊阴影 float _shadowBlur; // 阴影透明度 float _shadowOpacity; }; // stroke(描边)属性 struct FontStroke { public: // 默认情况下禁止 stroke FontStroke() : _strokeEnabled(false) , _strokeColor(Color3B::BLACK) , _strokeSize(0) {} // true if stroke enabled bool _strokeEnabled; // stroke color Color3B _strokeColor; // stroke size float _strokeSize; }; // font attributes struct FontDefinition { public: /** * @js NA * @lua NA */ FontDefinition() : _fontSize(0) , _alignment(TextHAlignment::CENTER) , _vertAlignment(TextVAlignment::TOP) , _dimensions(Size::ZERO) , _fontFillColor(Color3B::WHITE) {} // font name std::string _fontName; // font size int _fontSize; // horizontal alignment //水平对齐 TextHAlignment _alignment; // vertical alignment //垂直对齐 TextVAlignment _vertAlignment; // renering(渲染) box Size _dimensions; // font color Color3B _fontFillColor; // font shadow FontShadow _shadow; // font stroke FontStroke _stroke; }; /** @brief 设备的加速的报告,每个单元轴 g-force(力的大小) */ class Acceleration { public: double x; double y; double z; double timestamp; Acceleration(): x(0), y(0), z(0), timestamp(0) {} }; NS_CC_END #endif //__CCTYPES_H__