本文来自http://blog.csdn.net/runaying ,引用必须注明出处!
cocos2d-x节点(CCShaderCache.h)API
温馨提醒:为了大家能更好学习,强烈推荐大家看看本人的这篇博客 Cocos2d-X权威指南笔记
获取/重新加载 ShaderCache实例
///cocos2d-x-3.0alpha0/cocos2dx/shaders
//获取/重新加载 ShaderCache 实例
#ifndef __CCSHADERCACHE_H__
#define __CCSHADERCACHE_H__
#include <string>
#include <unordered_map>
#include "cocoa/CCDictionary.h"
NS_CC_BEGIN
class GLProgram;
/**
* @addtogroup shaders
* @{
*/
/** ShaderCache
Singleton that stores manages GL shaders
@since v2.0
*/
class CC_DLL ShaderCache : public Object
{
public:
/**
* @js ctor
*/
ShaderCache();
/**
* @js NA
* @lua NA
*/
virtual ~ShaderCache();
/** returns 共享的实例 */
static ShaderCache* getInstance();
/**清除缓存。释放保留的实例. */
static void destroyInstance();
/** @过时不再需要建议使用新的 API ,可以使用 getInstance() 代替 */
CC_DEPRECATED_ATTRIBUTE static ShaderCache* sharedShaderCache();
/** @过时不再需要建议使用新的 API ,可以使用 destroyInstance() 代替 */
CC_DEPRECATED_ATTRIBUTE static void purgeSharedShaderCache();
/** 加载默认的 shaders */
void loadDefaultShaders();
/** reload the default shaders */
void reloadDefaultShaders();
/** returns a GL program for a given key
*/
GLProgram * getProgram(const std::string &key);
/** @过时不再需要建议使用新的 API ,可以使用 getProgram() 代替
* @js NA
* @lua NA
*/
CC_DEPRECATED_ATTRIBUTE GLProgram * programForKey(const std::string &key){ return getProgram(key); }
/** adds a GLProgram to the cache for a given name */
void addProgram(GLProgram* program, const std::string &key);
private:
bool init();
void loadDefaultShader(GLProgram *program, int type);
// Dictionary* _programs;
std::unordered_map<std::string, GLProgram*> _programs;
};
// end of shaders group
/// @}
NS_CC_END
#endif /* __CCSHADERCACHE_H__ */