cocos2d-x节点(ccGLStateCache.h)API

来源:互联网 发布:it unbelievable 编辑:程序博客网 时间:2024/05/21 09:24

本文来自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 GLNS_CC_END    #endif /* __CCGLSTATE_H__ */


原创粉丝点击