mirror of https://github.com/axmolengine/axmol.git
[ci skip] update comments CCTrianglesCommand.h
This commit is contained in:
parent
305e5b63ec
commit
a87c5755e9
|
@ -29,47 +29,81 @@
|
|||
#include "renderer/CCGLProgramState.h"
|
||||
|
||||
NS_CC_BEGIN
|
||||
/**
|
||||
Command used to render one or more Triangles, which is similar to QuadCommand.
|
||||
Every TrianglesCommand will have generate material ID by give textureID, glProgramState, Blend function
|
||||
if the material id is the same, these TrianglesCommands could be batched to save draw call.
|
||||
*/
|
||||
class CC_DLL TrianglesCommand : public RenderCommand
|
||||
{
|
||||
public:
|
||||
/**The structure of Triangles. */
|
||||
struct Triangles
|
||||
{
|
||||
/**Vertex data pointer.*/
|
||||
V3F_C4B_T2F* verts;
|
||||
/**Index data pointer.*/
|
||||
unsigned short* indices;
|
||||
/**The number of vertices.*/
|
||||
ssize_t vertCount;
|
||||
/**The number of indices.*/
|
||||
ssize_t indexCount;
|
||||
};
|
||||
|
||||
/**Construtor.*/
|
||||
TrianglesCommand();
|
||||
/**Destructor.*/
|
||||
~TrianglesCommand();
|
||||
|
||||
/** Initializes the command with a globalZOrder, a texture ID, a `GLProgram`, a blending function, a pointer to triangles,
|
||||
* quantity of quads, and the Model View transform to be used for the quads */
|
||||
/** Initializes the command.
|
||||
@param globalOrder GlobalZOrder of the command.
|
||||
@param textureID The openGL handle of the used texture.
|
||||
@param glProgramState The specified glProgram and its uniform.
|
||||
@param blendType Blend function for the command.
|
||||
@param triangles Rendered triangles for the command.
|
||||
@param mv ModelView matrix for the command.
|
||||
@param flags to indicate that the command is using 3D rendering or not.
|
||||
*/
|
||||
void init(float globalOrder, GLuint textureID, GLProgramState* glProgramState, BlendFunc blendType, const Triangles& triangles,const Mat4& mv, uint32_t flags);
|
||||
|
||||
/**Deprecated function, the params is similar as the upper init function, with flags equals 0.*/
|
||||
CC_DEPRECATED_ATTRIBUTE void init(float globalOrder, GLuint textureID, GLProgramState* glProgramState, BlendFunc blendType, const Triangles& triangles,const Mat4& mv);
|
||||
|
||||
/**Apply the texture, shaders, programs, blend functions to GPU pipeline.*/
|
||||
void useMaterial() const;
|
||||
|
||||
/**Get the material id of command.*/
|
||||
inline uint32_t getMaterialID() const { return _materialID; }
|
||||
/**Get the openGL texture handle.*/
|
||||
inline GLuint getTextureID() const { return _textureID; }
|
||||
/**Get a const reference of triangles.*/
|
||||
inline const Triangles& getTriangles() const { return _triangles; }
|
||||
/**Get the vertex count in the triangles.*/
|
||||
inline ssize_t getVertexCount() const { return _triangles.vertCount; }
|
||||
/**Get the index count of the triangles.*/
|
||||
inline ssize_t getIndexCount() const { return _triangles.indexCount; }
|
||||
/**Get the vertex data pointer.*/
|
||||
inline const V3F_C4B_T2F* getVertices() const { return _triangles.verts; }
|
||||
/**Get the index data pointer.*/
|
||||
inline const unsigned short* getIndices() const { return _triangles.indices; }
|
||||
/**Get the glprogramstate.*/
|
||||
inline GLProgramState* getGLProgramState() const { return _glProgramState; }
|
||||
/**Get the blend function.*/
|
||||
inline BlendFunc getBlendType() const { return _blendType; }
|
||||
/**Get the model view matrix.*/
|
||||
inline const Mat4& getModelView() const { return _mv; }
|
||||
|
||||
protected:
|
||||
/**Generate the material ID by textureID, glProgramState, and blend function.*/
|
||||
void generateMaterialID();
|
||||
|
||||
/**Generated material id.*/
|
||||
uint32_t _materialID;
|
||||
/**OpenGL handle for texture.*/
|
||||
GLuint _textureID;
|
||||
/**GLprogramstate for the commmand. encapsulate shaders and uniforms.*/
|
||||
GLProgramState* _glProgramState;
|
||||
/**Blend function when rendering the triangles.*/
|
||||
BlendFunc _blendType;
|
||||
/**Rendered triangles.*/
|
||||
Triangles _triangles;
|
||||
/**Model view matrix when rendering the triangles.*/
|
||||
Mat4 _mv;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue