本文来自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__ */


Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐