写opengl红宝书第一个程序已经很久了吧,当时也是遇到了很多问题,对于新手入门看见自己跟着书上打的代码电脑老是报出这么多卡都看不懂的错误,年轻人心态容易崩。
首先你先把书的源代码下载下来,在红宝书的前几页叙述中有链接。
关于第一个程序,由于最近看见博客上很多人提起,就来说说
按照书本上的代码打一遍的话,是不会有好结果的

#include “vgl.h”
#include “LoadShaders.h”

enum VAO_IDs { Triangles, NumVAOs };
enum Buffer_IDs { ArrayBuffer, NumBuffers };
enum Attrib_IDs { vPosition = 0 };

GLuint VAOs[NumVAOs];
GLuint Buffers[NumBuffers];

const GLuint NumVertices = 6;

//----------------------------------------------------------------------------
//
// init
//

void
init( void )
{
glGenVertexArrays( NumVAOs, VAOs );
glBindVertexArray( VAOs[Triangles] );

GLfloat  vertices[NumVertices][2] = {{ -0.90f, -0.90f }, {  0.85f, -0.90f }, { -0.90f,  0.85f },  // Triangle 1{  0.90f, -0.85f }, {  0.90f,  0.90f }, { -0.85f,  0.90f }   // Triangle 2
};glCreateBuffers( NumBuffers, Buffers );
glBindBuffer( GL_ARRAY_BUFFER, Buffers[ArrayBuffer] );
glBufferStorage( GL_ARRAY_BUFFER, sizeof(vertices), vertices, 0);ShaderInfo  shaders[] =
{{ GL_VERTEX_SHADER, "media/shaders/triangles/triangles.vert" },{ GL_FRAGMENT_SHADER, "media/shaders/triangles/triangles.frag" },{ GL_NONE, NULL }
};GLuint program = LoadShaders( shaders );
glUseProgram( program );glVertexAttribPointer( vPosition, 2, GL_FLOAT,GL_FALSE, 0, BUFFER_OFFSET(0) );
glEnableVertexAttribArray( vPosition );

}

//----------------------------------------------------------------------------
//
// display
//

void
display( void )
{
static const float black[] = { 0.0f, 0.0f, 0.0f, 0.0f };

glClearBufferfv(GL_COLOR, 0, black);glBindVertexArray( VAOs[Triangles] );
glDrawArrays( GL_TRIANGLES, 0, NumVertices );

}

//----------------------------------------------------------------------------
//
// main
//

#ifdef _WIN32
int CALLBACK WinMain(
In HINSTANCE hInstance,
In HINSTANCE hPrevInstance,
In LPSTR lpCmdLine,
In int nCmdShow
)
#else
int
main( int argc, char** argv )
#endif
{
glfwInit();

GLFWwindow* window = glfwCreateWindow(800, 600, "Triangles", NULL, NULL);glfwMakeContextCurrent(window);
gl3wInit();init();while (!glfwWindowShouldClose(window))
{display();glfwSwapBuffers(window);glfwPollEvents();
}glfwDestroyWindow(window);glfwTerminate();

}
这个是书本自带链接的代码,实际上一看就跟书本上写得不一样
那么关于书本上的代码
容易产生读取错误Cx00005错误。
解决办法:
在main函数中 ,在glewInit之前,加上一句glewExperiment=GL_TRUE;
运行通过,你将会看到两个蓝色的三角形。

关于OpenGL编程指南第一个程序出错的问题相关推荐

  1. OpenGL编程指南(第八版)第一个渲染三角形案例代码在win8双显卡电脑VS2015中运行方法总结

    弄了好几天才把第一个程序运行出来,用该博客记录一下参考的博客资料及问题: 写得很好的博客参考资料为: http://blog.csdn.net/IceTeaSet/article/details/50 ...

  2. OpenGL编程指南3:GLUT:OpenGL使用工具库

    1.前言 我们知道的,OpenGL包含了很多的渲染函数,这些函数的设计目的就是独立与任何窗口系统或操作系统.因此,他并没有包含打开窗口或者从键盘或鼠标读取事件的函数.遗憾的是,如果连最基本的打开窗口的 ...

  3. 《OpenGL编程指南(原书第8版)》——计算着色器

    原文  http://www.csdn.net/article/2014-11-21/2822754 主题 OpenGL 数学 概述 由于图形处理器每秒能够进行数以亿计次的计算,它已成为一种性能十分惊 ...

  4. 《OpenGL编程指南》一3.2 OpenGL缓存数据

    本节书摘来自华章出版社<OpenGL编程指南>一书中的第3章,第3.2节,作者 Bill Licea-Kane ,更多章节内容可以访问云栖社区"华章计算机"公众号查看 ...

  5. OpenGl编程指南例2.4大白话分析

    OpenGl编程指南例2.4分析 即上一篇文章搭建了opengl的环境后,继续学习Opengl,被第二章的各种gen,bind,buffer搞得晕头转向,在还没有消化完全的时候,又被一计重击打到--为 ...

  6. 《OpenGL编程指南》一第2章 着色器基础

    本节书摘来自华章出版社<OpenGL编程指南>一书中的第2章,作者 Bill Licea-Kane ,更多章节内容可以访问云栖社区"华章计算机"公众号查看 第2章 着色 ...

  7. OpenGL编程指南5:学习绘制不同风格的曲线

    1.不同风格曲线绘制 #include <vgl.h> //宏定义;当定义的宏不能用一行表达完整时,可以用"\"表示下一行继续 #define drawOneLine( ...

  8. OpenGL编程指南4:双缓冲实现运行

    1.前言 绘制一个旋转的方块,主要为了说明glutSwapBuffers()函数的用法. 同时也为了学习如何使用GLUT控制输入设备,并打开或关闭空闲处理函数. 2.OpenGL编程及程序剖析 /** ...

  9. OpenGL深入探索——《OpenGL编程指南(原书第8版)》——计算着色器

    转载自 <OpenGL编程指南(原书第8版)>--计算着色器 概述 由于图形处理器每秒能够进行数以亿计次的计算,它已成为一种性能十分惊人的器件.过去,这种处理器主要被设计用于承担实时图形渲 ...

最新文章

  1. 清华 NLP 团队推荐:必读的77篇机器阅读理解论文
  2. 航天智慧物流线上预选赛-成绩公布
  3. 服务器2012用什么虚拟机,虚拟机搭建Windows Server2012测试环境
  4. python入门有基础-python入门基础
  5. Android多线程源码学习笔记一:handler、looper、message、messageQueue
  6. cesium模型不遮挡点线面_cesium点线面测试数据
  7. JAVA面试题(part2)--位运算符
  8. Shiro表结构设计
  9. Pixel相机是怎么做到自动补抓最不错的自拍照
  10. django 模板mysql_59 Django基础三件套 , 模板{{}}语言 , 程序连mysql Django项目app Django中ORM的使用...
  11. 通过uwsgi+nginx启动flask的python web程序
  12. sql查询初学者指南_面向初学者SQL Server查询执行计划–类型和选项
  13. C++之判断当前是debug还是realease
  14. SpringMVC学习(二)使用注解开发SpringMVC
  15. printf 输出格式控制
  16. python 编码例子汇总
  17. Mac UE各版本破解方法
  18. 小米路由器和TP-Link做wifi无线桥接
  19. Matlab底层算法实现图像的平移
  20. nomachine NX 远程连接相关问题

热门文章

  1. 软件项目管理系统-外包管理-外包验收申请
  2. 线性回归 假设_线性回归的假设
  3. Scratch少儿编程案例-植物大战僵尸复刻无敌版
  4. JAVA中两个char类型相加_【技术干货】Java 面试宝典:Java 基础部分(1)
  5. 标志识别之AprilTag3
  6. 洛谷P5911 [POI2004]PRZ
  7. 龙芯软件开发(5)--北桥南桥芯片的作用
  8. 学习模拟电路设计制作
  9. 2021-2027中国纯电动汽车 (BEV) 中的电容器市场现状及未来发展趋势
  10. apache atlas 2.0 详细安装手册