当前位置: 首页 > news >正文

宽屏营销型网站源码郴州市北湖建设局网站

宽屏营销型网站源码,郴州市北湖建设局网站,网站没有域名,c++语言网站建设理解glad: OpenGL只是一个标准/规范,具体的实现是由驱动开发商针对特定显卡实现的,由于OpenGL驱动版本众多,它大多数函数的位置都无法在编译时确定下来,需要在运行时查询,因此开发者需要在运行时获取函数…

理解glad: 

  1. OpenGL只是一个标准/规范,具体的实现是由驱动开发商针对特定显卡实现的,由于OpenGL驱动版本众多,它大多数函数的位置都无法在编译时确定下来,
  2. 需要在运行时查询,因此开发者需要在运行时获取函数地址并将其保存在一个函数指针中,动态地加载这些函数
// 定义函数原型
typedef void (*GL_GENBUFFERS) (GLsizei, GLuint*);
// 找到正确的函数并赋值给函数指针
GL_GENBUFFERS glGenBuffers  = (GL_GENBUFFERS)wglGetProcAddress("glGenBuffers");
// 现在函数可以被正常调用了
GLuint buffer;
glGenBuffers(1, &buffer);

 理解typedef void (*Fun) (void) 

  1. 函数指针定义:返回类型(*函数名pfun)(参数表) ,函数指针指向函数在内存中的首地址

  2. 如何赋值:定义普通函数,为pfun赋值,因此指向了函数的地址,、

  3. 如何调用:*解引用获取实际的函数,为函数传实参,fun(x);->(*pfun)(x);

  4. typedef 定义别名,pfun类型为void(*)(void)

  5. typedef本质定义新的类型,否则仅定义函数指针,新类型 + pfun;表明变量是函数指针

 glad初始化简单理解:参考

if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
{std::cout << "Failed to initialize GLAD" << std::endl;return -1;
}
  1. glfwGetProcAddress返回函数的地址
  2. glad.c为C语言的源文件,强制转化为()形式,而非c++的<>
  3. typedef void* (* GLADloadproc)(const char *name);定义名为GLADloadproc的函数指针,将glfwGetProcAddress函数强制转化为函数指针。
  4. 然后将函数指针(返回函数地址)作为参数传给gladLoadGLLoader的形参load
int gladLoadGLLoader(GLADloadproc load) {GLVersion.major = 0; GLVersion.minor = 0;glGetString = (PFNGLGETSTRINGPROC)load("glGetString");if(glGetString == NULL) return 0;if(glGetString(GL_VERSION) == NULL) return 0;find_coreGL();load_GL_VERSION_1_0(load);………略load_GL_VERSION_3_3(load);if (!find_extensionsGL()) return 0;return GLVersion.major != 0 || GLVersion.minor != 0;
}
  1. 调用load("glGetString")函数指针,获取opengl版本,然后传入find_coreGL()    去计算bool GLAD_GL_VERSION_3_3 = (major == 3 && minor >= 3) || major > 3;
  2. 接着返回调用load_GL_VERSION_1_0……,如果我们是3,3版本,对于每个函数,都会判断之前计算的bool,所有bool为true的函数,都会传入load()(获取函数地址的函数指针)作为实参,
  3. load_GL_VERSION()内部会加载所有,上一个版本没有的那些函数。
  4. 加载后的地址,就会被赋值到(形如)glad_glCullFace的变量上,

 如何将glad_开头的转化为gl开头的函数: 

  1. 定义在glad,c中,extern在glad.h中,按照下面的转化,这样我们就可以在代码中才可以用 gl开头 的函数了

#define GLAPI extern
typedef void (APIENTRYP PFNGLGENVERTEXARRAYSPROC)(GLsizei n, GLuint *arrays);//定义函数指针类型
GLAPI PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays;//声明  函数指针
#define glGenVertexArrays glad_glGenVertexArrays//定义宏

 理解glad的作用: 

  1. 根据版本号,获取所有函数的地址,存储封装到相应的函数指针glad,再转为gl开头的宏,供开发者使用
http://www.yayakq.cn/news/369000/

相关文章:

  • 做网站从哪方面入门品牌网站建设小7a蝌蚪
  • vs做的网站怎么放到iis中国内餐饮设计网站建设
  • 企业网站建设费用价格微信模板编辑器
  • 宜春网站建设德尔普的网站建设的价格
  • 哪家能建设网站昌平网站建设浩森宇特
  • 同一服务器如何建设多个网站秦皇岛网站开发费用
  • 郑州网站怎么推广重庆网站制作长沙
  • 定制跟模板网站有什么不一样dede织梦织梦更换模板网站
  • 网站开发流程怎么写wordpress的固定链接
  • 网站打开是建设中做简单手机网站多少钱呀
  • 设计网站建站做 爱 网站视频短片
  • 国外游戏代码网站上海网站制作工具
  • 装修公司的网站网站点击率代码
  • 荥阳做网站微信营销网站建设
  • 深圳微网站建设小型公众号开发
  • 江苏省交通工程建设局网站海南专业做网站的公司
  • asp.net网站开发python3.5 做网站
  • 山东省住房和城乡建设厅网站定额站张店好的网站建设的公司
  • 做设计网站模块的网站网站建设捌金手指花总十一
  • 骨干校建设专题网站如何拷贝别人网站的源码
  • 中国空间站科幻作文1000字网页关键词优化难度
  • mvc做网站用的多不多导出wordpress用户
  • 游戏卡充值可以做网站吗垡头网站建设
  • 北京金山办公软件有限公司宁波seo推广优化
  • 做网站的一般步骤便利的微网站建设
  • 电子商务网站建设的大纲django网站开发实例
  • 湘潭学校网站建设 磐石网络四川确诊感染最新消息
  • 外贸公司网站建设方案wordpress汉化插件下载
  • 想自己建一个公司网站怎么做免费的微网站制作
  • 济南seo网站推广公司wordpress4.5.2文章采集