axmol/cocos/2d/renderer/RenderCommand.h

53 lines
905 B
C
Raw Normal View History

//
// Created by NiTe Luo on 10/31/13.
//
#ifndef __CCRENDERCOMMAND_H_
#define __CCRENDERCOMMAND_H_
#include "CCPlatformMacros.h"
#include <stdint.h>
#include "ccTypes.h"
#include "kazmath/GL/matrix.h"
NS_CC_BEGIN
2013-11-07 06:57:42 +08:00
enum RenderCommandType
{
2013-11-07 06:57:42 +08:00
QUAD_COMMAND,
2013-11-09 04:06:39 +08:00
CUSTOM_COMMAND,
2013-11-07 06:57:42 +08:00
GROUP_COMMAND,
UNKNOWN_COMMAND,
};
2013-11-08 08:53:20 +08:00
//TODO make RenderCommand inherent from Object
class RenderCommand
{
protected:
RenderCommand();
virtual ~RenderCommand();
public:
2013-11-07 06:57:42 +08:00
virtual int64_t generateID() = 0;
2013-11-14 09:31:12 +08:00
virtual /**
* Get Render Command Id
*/
2013-11-07 06:57:42 +08:00
inline int64_t getID() { return _id; }
2013-11-14 09:31:12 +08:00
virtual inline RenderCommandType getType() { return _type; }
virtual void releaseToCommandPool() =0;
protected:
void printID();
protected:
//Generated IDs
2013-11-07 06:57:42 +08:00
int64_t _id; /// used for sorting render commands
RenderCommandType _type;
};
NS_CC_END
#endif //__CCRENDERCOMMAND_H_