2013-11-05 01:14:22 +08:00
|
|
|
//
|
|
|
|
// 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-08 08:53:20 +08:00
|
|
|
//TODO make RenderCommand inherent from Object
|
2013-11-05 01:14:22 +08:00
|
|
|
class RenderCommand
|
|
|
|
{
|
2013-12-03 14:08:47 +08:00
|
|
|
public:
|
2013-12-18 10:02:11 +08:00
|
|
|
|
|
|
|
enum class Type
|
|
|
|
{
|
|
|
|
QUAD_COMMAND,
|
|
|
|
CUSTOM_COMMAND,
|
|
|
|
GROUP_COMMAND,
|
|
|
|
UNKNOWN_COMMAND,
|
|
|
|
};
|
|
|
|
|
2013-11-07 06:57:42 +08:00
|
|
|
virtual int64_t generateID() = 0;
|
2013-11-05 01:14:22 +08:00
|
|
|
|
2013-12-18 10:02:11 +08:00
|
|
|
/** Get Render Command Id */
|
|
|
|
virtual inline int64_t getID() { return _id; }
|
2013-12-03 14:08:47 +08:00
|
|
|
|
2013-12-18 10:02:11 +08:00
|
|
|
virtual inline Type getType() { return _type; }
|
2013-12-03 14:08:47 +08:00
|
|
|
virtual void releaseToCommandPool() =0;
|
2013-12-18 10:02:11 +08:00
|
|
|
|
2013-11-05 01:14:22 +08:00
|
|
|
protected:
|
2013-12-18 10:02:11 +08:00
|
|
|
RenderCommand();
|
|
|
|
virtual ~RenderCommand();
|
|
|
|
|
2013-11-05 01:14:22 +08:00
|
|
|
void printID();
|
|
|
|
|
|
|
|
//Generated IDs
|
2013-11-07 06:57:42 +08:00
|
|
|
int64_t _id; /// used for sorting render commands
|
2013-12-18 10:02:11 +08:00
|
|
|
Type _type;
|
2013-11-05 01:14:22 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
NS_CC_END
|
|
|
|
|
|
|
|
#endif //__CCRENDERCOMMAND_H_
|