cocos2d-x节点(ccGLStateCache.h)API

本文来自http://blog.csdn.net/runaying ,引用必须注明出处!

cocos2d-x节点(ccGLStateCache.h)API

温馨提醒:为了大家能更好学习,强烈推荐大家看看本人的这篇博客 Cocos2d-X权威指南笔记

绑定/删除 texure ,启用/禁用 gl功能

///cocos2d-x-3.0alpha0/cocos2dx/shaders
//绑定/删除 texure ,启用/禁用 gl功能


#ifndef __CCGLSTATE_H__
#define __CCGLSTATE_H__

#include "CCGL.h"
#include "platform/CCPlatformMacros.h"

NS_CC_BEGIN

/**
 * @addtogroup shaders
 * @{
 */

class GLProgram;

namespace GL {

/** vertex attrib flags */
enum {
    VERTEX_ATTRIB_FLAT_NONE       = 0,

    VERTEX_ATTRIB_FLAG_POSITION   = 1 << 0,
    VERTEX_ATTRIB_FLAG_COLOR      = 1 << 1,
    VERTEX_ATTRIB_FLAG_TEX_COORDS = 1 << 2,

    VERTEX_ATTRIB_FLAG_POS_COLOR_TEX = (VERTEX_ATTRIB_FLAG_POSITION | VERTEX_ATTRIB_FLAG_COLOR | VERTEX_ATTRIB_FLAG_TEX_COORDS),
};

/** @file ccGLStateCache.h
*/

/** Invalidates(无效)the GL state cache.
 如果 CC_ENABLE_GL_STATE_CACHE 将重置GL状态缓存.
 @since v2.0.0
 */
void CC_DLL invalidateStateCache(void);

/** 使用的GL程序的情况与目前有所不同
 如果 CC_ENABLE_GL_STATE_CACHE 被禁用,它会直接使用 glUseProgram() .
 @since v2.0.0
 */
void CC_DLL useProgram(GLuint program);

/** Deletes the GL program. 如果正在使用使其无效
 如果 CC_ENABLE_GL_STATE_CACHE i被禁用,它会直接使用  glDeleteProgram() .
 @since v2.0.0
 */
void CC_DLL deleteProgram(GLuint program);

/** 使用混合函数的情况下,它尚未使用。
 如果 CC_ENABLE_GL_STATE_CACHE 被禁用,它会直接使用 glBlendFunc() .
 @since v2.0.0
 */
void CC_DLL blendFunc(GLenum sfactor, GLenum dfactor);

/** 重置混合模式缓存状态的情况下,你可以使用 glBlendFuncSeparate() or glBlendEquation().
 如果 CC_ENABLE_GL_STATE_CACHE 被禁用,他会使用 GL_FUNC_ADD(默认的混合模式).
 @since v2.0.0
 */
void CC_DLL blendResetToCache(void);

/** sets the projection(投影) matrix as dirty
 @since v2.0.0
 */
void CC_DLL setProjectionMatrixDirty(void);

/** 使用传递过来的参数启用顶点标识
可能的标志:

    * VERTEX_ATTRIB_FLAG_POSITION
    * VERTEX_ATTRIB_FLAG_COLOR
    * VERTEX_ATTRIB_FLAG_TEX_COORDS

 这些标志可以进行 ORed. 标志是不存在的,将被禁用

 @since v2.0.0
 */
void CC_DLL enableVertexAttribs(unsigned int flags);

/**如果尚未绑 texture 单元 0, 那么就绑定他.
 如果 CC_ENABLE_GL_STATE_CACHE 被禁用,它会直接使用  glBindTexture() .
 @since v2.0.0
 */
void CC_DLL bindTexture2D(GLuint textureId);


/** 如果 texture 没有绑定到给定的单位,那么就绑定他.
 如果 CC_ENABLE_GL_STATE_CACHE 被禁用,它会直接使用  glBindTexture() .
 @since v2.1.0
 */
void CC_DLL bindTexture2DN(GLuint textureUnit, GLuint textureId);

/** 它会删除给定的 texture. 如果texture 已经被绑定了, it will invalidate(无效) the cached.
 如果 CC_ENABLE_GL_STATE_CACHE 被禁用,它会直接使用  glDeleteTextures() .
 @since v2.0.0
 */
void CC_DLL deleteTexture(GLuint textureId);

/** 它会删除给定的 texture. 如果texture 已经被绑定了, it will invalidate(无效) the cached for the given texture unit.
 如果 CC_ENABLE_GL_STATE_CACHE 被禁用,它会直接使用  glDeleteTextures() .
 @since v2.1.0
 */
void CC_DLL deleteTextureN(GLuint textureUnit, GLuint textureId);

/** 如果 vertex array 没有绑,那么就绑定他.
 如果 CC_ENABLE_GL_STATE_CACHE 被禁用,它会直接使用  glBindVertexArray() .
 @since v2.0.0
 */
void CC_DLL bindVAO(GLuint vaoId);

// end of shaders group
/// @}

} // Namespace GL
NS_CC_END
    

#endif /* __CCGLSTATE_H__ */


你可能感兴趣的:(api,cocos2d,cocos2dx,cocos2d-x)