文档章节

MFC中使用GLUT

guoliang
 guoliang
发布于 2014/05/28 23:43
字数 191
阅读 1381
收藏 1
MFC中可以使用GLUT,但是因为GLUT的glutMainLoop会独占程序,影响MFC本身的执行,所以需要另外开辟一个线程来单独执行GLUT窗口。


void display()
{
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

	glPushMatrix();
	//glRotatef(0, 0.0, 1.0, 0.0);
	glutSolidTeapot(1.0);
	glPopMatrix();

	glutSwapBuffers();
}

void reshape(int x, int y)
{
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	gluPerspective(60, (float)x/(float)y, 0.1, 100);
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();
	gluLookAt(0.0, 0.0, 4.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);

	glEnable(GL_DEPTH_TEST);
	glEnable(GL_LIGHTING);
	glEnable(GL_LIGHT0);
}

void idle()
{
	glutPostRedisplay();
}

 UINT ThreadProc(LPVOID lpParameter)
{
	int argc=1;
	char* argv[]={"good"};
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
	glutCreateWindow("test");

	glutDisplayFunc(display);
	glutReshapeFunc(reshape);
	glutIdleFunc(idle);
	glutMainLoop();

	return 0;
}


void CRenderDlg::OnBnClickedOk()
{
	CWinThread* tr=AfxBeginThread(ThreadProc,GetSafeHwnd());
	tr->m_bAutoDelete=FALSE;

}



© 著作权归作者所有

guoliang
粉丝 26
博文 131
码字总数 27457
作品 0
杭州
程序员
私信 提问
用多线程方法实现在MFC/WIN32中调用OpenGL函数并创建OpenGL窗口

OpenGL相关的工具库中的OpenGL程序往往都是在C函数main中初始化和创建的,使用控制台来完成显示和控制颇为不便。如果能够在MFC中OpenGL函数并创建OpenGL窗口,并且可以将控制参数传入给OpenG...

guoliang
2014/05/29
615
0
ubuntu下eclipse OpenGL编程

转载美文:解惑 本文假设读者已经在ubuntu下配置好了gcc/g++环境,并使用eclipse开发opengl程序 在ubuntu终端下运行以下命令,安装opengl所需要的库文件 $ sudo apt-get install build-essen...

我是一只鱼
2011/11/02
630
0
Mac OS X下如何使用OpenGL

作为3D的工业标准,OpenGL在苹果上可以说无处不在,用起来也是分外的舒服。 一般OpenGL需要搭配一些窗口库来做,比如Qt、MFC等,或者用跨平台的GLUT。 好在GLUT是Mac OS X自带的,所以直接用...

Jian-Yong
2013/01/17
20.5K
3
在Visual Studio 2017上配置并使用OpenGL

在Visual Studio 2017上配置并使用OpenGL 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 首先在Windows下安装Visual Studio 2017,参考Visual Studio 2017的安装与使用。 1. 下...

凯鲁嘎吉
03/09
0
0
OGLplus 0.61.0 发布,OpenGL 的 C++ 封装库

OGLplus 0.61.0 发布,此版本更新了 GL 版本检测,还有一些构建系统的改进;错误代码枚举和 OALplus 异常更新;GL ARB_clip_control 封装器;Quickbook 文档更新。 此版本现已提供下载:ogl...

oschina
2015/05/08
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
今天
5
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
今天
6
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
今天
4
0
OSChina 周日乱弹 —— 我,小小编辑,食人族酋长

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享娃娃的单曲《飘洋过海来看你》: #今日歌曲推荐# 《飘洋过海来看你》- 娃娃 手机党少年们想听歌,请使劲儿戳(这里) @宇辰OSC...

小小编辑
今天
1K
11
MongoDB系列-- SpringBoot 中对 MongoDB 的 基本操作

SpringBoot 中对 MongoDB 的 基本操作 Database 库的创建 首先 在MongoDB 操作客户端 Robo 3T 中 创建数据库: 增加用户User: 创建 Collections 集合(类似mysql 中的 表): 后面我们大部分都...

TcWong
今天
40
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部