1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- #ifndef __cocos2d_libs__CCTechnique__
- #define __cocos2d_libs__CCTechnique__
- #include <string>
- #include "renderer/CCRenderState.h"
- #include "renderer/CCPass.h"
- #include "base/CCRef.h"
- #include "platform/CCPlatformMacros.h"
- #include "base/CCVector.h"
- NS_CC_BEGIN
- class Pass;
- class GLProgramState;
- class Material;
- class CC_DLL Technique : public RenderState
- {
- friend class Material;
- friend class Renderer;
- friend class Pass;
- friend class MeshCommand;
- friend class Mesh;
- public:
-
- static Technique* createWithGLProgramState(Material* parent, GLProgramState* state);
- static Technique* create(Material* parent);
-
- void addPass(Pass* pass);
-
- std::string getName() const;
-
- Pass* getPassByIndex(ssize_t index) const;
-
- ssize_t getPassCount() const;
-
- const Vector<Pass*>& getPasses() const;
-
- Technique* clone() const;
- protected:
- Technique();
- ~Technique();
- bool init(Material* parent);
- void setName(const std::string& name);
- std::string _name;
- Vector<Pass*> _passes;
- };
- NS_CC_END
- #endif
|