OpenGL学习笔记:第一个OpenGL程序
OpenGL环境搭建参考博客:VS2015下OpenGL库的配置。
#include<GL\glew.h>
#include<GLTools.h>
#include<GLShaderManager.h> #ifdef __APPLE__
#include<GL\glut.h>
#else
#define FREEGLUT_STATIC
#include<GL\glut.h>
#endif GLShaderManager shaderManager; // 声明一个着色器管理器的实例
GLBatch triangleBatch; // 声明一个GLBatch实例 // 窗口大小改变函数
void ChangeSize(int w,int h) {
// 修改视窗的大小
glViewport(, , w, h);
} // 设置渲染的初始化
void SetupRC() {
// 设置背景颜色
glClearColor(0.0f, 0.0f, 1.0f, 1.0f); // 设置为蓝色 shaderManager.InitializeStockShaders(); // 设置三角形
// 顶点组成三角形图元
GLfloat vVerts[] = {
-0.5f,0.0f,0.0f,
0.5f,0.0f,0.0f,
0.0f,0.5f,0.0f
}; // 下面代码建立一个三角形的批次,仅包含三个顶点
triangleBatch.Begin(GL_TRIANGLES, );
triangleBatch.CopyVertexData3f(vVerts);
triangleBatch.End(); } // 绘制场景
void RenderScene(void) {
// 清除缓冲区
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); // 将数组传递给着色器
// 着色器用制定的颜色进行渲染
GLfloat vRed[] = { 1.0f,0.0f,0.0f,1.0f };
shaderManager.UseStockShader(GLT_SHADER_IDENTITY, vRed);
triangleBatch.Draw(); // 指示将集合图形提交到着色器 glutSwapBuffers(); } // 主函数
int main(int argc, char *argv[]) {
gltSetWorkingDirectory(argv[]); // 调用glutInit函数传输命令行参数并初始化GLUT库
glutInit(&argc, argv); // 告诉GLUT库,在创建窗口时要使用那种类型的显示模式
// GLUT_DOUBLE表示双缓冲窗口,GLUT_RGBA表示RGBA颜色模式
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH | GLUT_STENCIL); //设置GLUT窗口的大小,创建以"Triangle"为标题的窗口
glutInitWindowSize(, );
glutCreateWindow("Triangle"); //为改变窗口大小而设置一个回调函数
//注册一个函数以包含OpenGL渲染代码
glutReshapeFunc(ChangeSize);
glutDisplayFunc(RenderScene); // 调用glewInit初始化GLEW库
// 检查取人驱动程序初始化过程无问题
GLenum err = glewInit();
if (GLEW_OK != err) {
fprintf(stderr, "GLEW Error:%s\n", glewGetErrorString(err));
return ;
} SetupRC(); // glutMainLoop函数负责处理所有操作系统特定的消息、按键动作等直到我们关闭程序
glutMainLoop();
return ; }
运行结果:

OpenGL学习笔记:第一个OpenGL程序的更多相关文章
- c++学习笔记---03---从一个小程序说起2
从一个小程序说起2 要求:编写一个程序,要求用户输入一串整数和任意数目的空格,这些整数必须位于同一行中,但允许出现在该行中的任何位置.当用户按下键盘上的"Enter"键时,数据输入 ...
- c++学习笔记---02---从一个小程序说起
从一个小程序说起 这一讲的主要目的是帮助大家在C语言的背景知识上与C++建立联系. 问题探索 问题:对一个整型数组求和. 要求:定义一个存储着 n 个元素的数组,要求用C语言完成这个任务. 赶紧的:大 ...
- python新手第一天学习笔记-第一个ptyhon程序和python变量
一.python 的注释和第一个python 程序 : 1.单行注释 # Author Xiajq 2.多行注释 ''' ------------注释内容----------------------- ...
- Android学习笔记_70_一个应用程序启动另一个应用程序的Activity
第一种(我自己写的) :之前在网上看来一些,很多不是我要的可以启动另外一个应用程序的主Activity. //这些代码是启动另外的一个应用程序的主Activity,当然也可以启动任意一个Activit ...
- OpenGL学习笔记1——第一个程序
学习的参考书基本是按照GL编程指南,如果有消息机制概念,对于GLUT的理解是很自然的.下面就按照自己写的第一个程序详细解释一下GL,还是比较容易上手的. 程序实现的功能是,根据当前随即种子摇出来的结果 ...
- OpenGL学习笔记之了解OpenGL
OpenGL(全写Open GraphicsLibrary)是个定义了一个跨编程语言.跨平台的编程接口规格的专业的图形程序接口.它用于三维图像(二维的亦可),是一个功能强大,调用方便的底层图形库. 说 ...
- OpenGL学习笔记之配置OpenGL
OpenGL是计算机图形学领域的一门入门语言,OpenGL开发库的一些文件在官网上可以下载到.里面包含三个文件,如下: 1.把在OpenGL开发库中LIB(库文件)glut.lib和glut32.li ...
- android菜鸟学习笔记5----第一个android程序
程序功能:点击一个按钮,然后弹出一个提示信息 Step 1:在eclipse中新建一个android application project,在创建过程中不勾选create activity,这样就创 ...
- Mybatis学习笔记-第一个Mybatis程序
思路 搭建环境 搭建数据库(略) CREATE DDATABASE CREATE TABLE INSERT VALUES 新建项目 普通Maven项目 删除src文件夹 --> 建立父工程 导入 ...
- OpenGL学习笔记3——缓冲区对象
在GL中特别提出了缓冲区对象这一概念,是针对提高绘图效率的一个手段.由于GL的架构是基于客户——服务器模型建立的,因此默认所有的绘图数据均是存储在本地客户端,通过GL内核渲染处理以后再将数据发往GPU ...
随机推荐
- FusionCharts封装-Data
DataSet.java: /** * @Title:DataSet.java * @Package:com.fusionchart.model * @Description:FusionCharts ...
- GJB150-2009军用装备实验室环境试验方法新版标准
http://www.kekaoxing.com/m/view.php?aid=22604 GJB150.1A-2009 军用装备实验室环境试验方法第1部分:通用要求(代替GJB150.1-86)GJ ...
- Java中用正则表达式找出数字
Java中用正则表达式找出数字 1.题目 String str = "fjd789klsd908434jk#$$%%^38488545",从中找出78990843438488 ...
- <训练赛> 垃圾陷阱
垃圾陷阱 时间限制: 1 Sec 内存限制: 128 MB提交: 78 解决: 38[提交][状态][讨论版] 题目描述 卡门--农夫约翰极其珍视的一条Holsteins奶牛--已经落了到&quo ...
- 页面jquery调试的一个宝贵经验(类似于Eclipse中的写出一个对象点它的方法时候用alt加/可以跳出来它所有的方法)
案例讲解 一,html片段 <div class="page-upload"> <div class="tab-wrapper2"> & ...
- Modbus总结
1.概念 ①Coil和Register Modbus中定义的两种数据类型.Coil是位(bit)变量:Register是整型(Word,即16-bit)变量. ②Slave和Master与Server ...
- Jmeter_从jdbc请求的响应中获取参数做关联
在之前的文章-参数关联中,留个一个小尾巴,这里补充一下 http://www.cnblogs.com/Zfc-Cjk/p/8295495.html 1:从sql表中将需要取的数据查出来 2:我们需要把 ...
- [BZOJ1009] [HNOI2008] GT考试 (KMP & dp & 矩阵乘法)
Description 阿申准备报名参加GT考试,准考证号为N位数X1X2....Xn(0<=Xi<=9),他不希望准考证号上出现不吉利的数字. 他的不吉利数学A1A2...Am(0< ...
- [BZOJ1085] [SCOI2005] 骑士精神 (A*)
Description 在一个5×5的棋盘上有12个白色的骑士和12个黑色的骑士, 且有一个空位.在任何时候一个骑士都能按照骑士的走法(它可以走到和它横坐标相差为1,纵坐标相差为2或者横坐标相差为2, ...
- 云计算之路-阿里云上:3个manager节点异常造成 docker swarm 集群宕机
今天 11:29 - 11:39 左右,docker swarm 集群 3 个 manager 节点同时出现异常,造成整个集群宕机,由此给您带来很大的麻烦,请您谅解. 受此次故障影响的站点有:博问,闪 ...