OpenGL红宝石实例程序2-14
来源:互联网 发布:图片转dwg软件 编辑:程序博客网 时间:2024/04/30 11:34
1、代码
// Main.cpp// Created by lmq, 2014/07/23// Chap02_11, glDrawElements// Chap02_12, glDrawElements// Chap02_14, glMultiDrawelements#include <iostream>#include "GL\glew.h"#include "GL\freeglut.h"#define CHAP02_11#define CHAP02_12#define CHAP02_14#undef CHAP02_11#undef CHAP02_12//#undef CHAP02_14void init(void);void reshape(int w, int h);void display(void);int main(int argc, char *argv[]){glutInit(&argc, argv);glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);glutInitWindowPosition(100, 100);glutInitWindowSize(250, 250);glutCreateWindow("Create Chap02_11 window");init();glutDisplayFunc(display);glutReshapeFunc(reshape);glutMainLoop();return 0;}void init(void){glewInit();glClearColor(0.0, 0.0, 0.0, 0.0);glShadeModel(GL_FLAT);}void reshape(int w, int h){glViewport(0, 0, w, h);glMatrixMode(GL_PROJECTION);glLoadIdentity();gluOrtho2D(0.0, (GLfloat)w, 0.0, (GLfloat)h);}void display(void){glClear(GL_COLOR_BUFFER_BIT);glColor3f(1.0, 1.0, 1.0);static GLfloat vertexs[] = {25.0, 25.0,50.0, 25.0,50.0, 50.0,25.0, 50.0,75.0, 25.0,100.0, 25.0,100.0, 50.0,75.0, 50};glEnableClientState(GL_VERTEX_ARRAY); // Enable vertex arrayglVertexPointer(2, GL_FLOAT, 0, vertexs);static GLubyte first[] = {0, 1, 2, 3};static GLubyte second[] = {4, 5, 6, 7};// Chap02_11,分别调用#ifdef CHAP02_11glDrawElements(GL_QUADS, 4, GL_UNSIGNED_BYTE, first);glDrawElements(GL_QUADS, 4, GL_UNSIGNED_BYTE, second);#endif // end CHAP02_11// Chap02_12,压缩glDrawElemnts()#ifdef CHAP02_12glColor3f(1.0, 0.0, 0.0);static GLubyte allIndices[] = {0, 1, 2, 3, 4, 5, 6, 7};glDrawElements(GL_QUADS, 8, GL_UNSIGNED_BYTE, allIndices);#endif // end CHAP02_12// Chap02_14,glMultiDrawElements#ifdef CHAP02_14glColor3f(1.0, 1.0, 0.0);static GLsizei count[] = {4, 4};static GLvoid *indices[2] = {first, second};glMultiDrawElements(GL_QUADS, count, GL_UNSIGNED_BYTE, indices, 2);#endif // end CHAP02_14glFlush();}
2、注意事项
glMultiDrawElements此函数必须包含"GL\glew.h",而且必须添加glew32.lib库。
但是即便是添加了头文件、库文件,程序运行依然报错
0x00000000 处有未经处理的异常(在 Chap02_11_d.exe 中): 0xC0000005: 执行位置 0x00000000 时发生访问冲突。解决此问题,必须在程序初始化时添加 "glewInit();"
0 0
- OpenGL红宝石实例程序2-14
- 红宝石
- OpenGL实例程序
- OpenGL程序:实例练习
- Opengl学习程序之多实例
- 4.4.2 OpenGL几何变换编程实例
- OpenGL系统设计-2 第一个OpenGL程序
- OpenGL(2)——第一个 OpenGL 程序
- 2、quartz程序实例
- [OpenGL]课后案例14:Mandelbrot集程序
- 用UBuntu开发OpenGL程序2
- ubuntu+opengl程序设计(2)第一个程序
- OpenGL--第一个OpenGL程序
- [OpenGL]第一个OpenGL程序
- OpenGL入门实例(一)
- Android OpenGL 入门实例
- opengl模板测试实例
- Android OpenGL 简单实例
- 新的生活,新的起点
- Light OJ 1066(bfs+坑)
- char与string
- Android学习笔记五 为应用程序打包
- 属性与引用计数
- OpenGL红宝石实例程序2-14
- xcode 自动更新资源
- HDU 4864 Task(2014多校--贪心)
- 选择运算符成员
- leetcode之Permutation Sequence解题思路
- JEDEC标准 芯片测试
- UVA755
- 哈佛为什么群星闪耀?
- 它将返回一个整数