OpenGl学习笔记1——建立一个可以支持OpenGL的窗口
2011-07-18 17:19
721 查看
我的开发环境是VS2008——VC++
一、准备工作
1、下载OpenGl SDK ,CSDN中就有
2、释放后,在“工具|选项”中设置“项目和解决方案|VC++目录”
在“包含文件”与“库文件”中添加上OpenGl SDK的相关目录。
这样在你的程序中就可以用上#include<gl.h>,#include<glu.h>,#include<glaux.h>了
3、在你的stdafx.h中加上
#pragma comment( lib, "opengl32.lib")
#pragma comment( lib, "glu32.lib")
#pragma comment( lib, "glaux.lib")
然后就可以在自己的项目中调用OpenGl了。
二、创建一个支持OpenGL的窗口
必备的几个对象
HDC hDC=NULL;// 图形设备环境
HGLRC hRC=NULL;// OpenGl的展示环境
HWND hWnd=NULL;// Holds Our Window Handle
HINSTANCE hInstance;// Holds The Instance Of The Application
1、声明一个窗口类结构的对象,然后注册它,最后建立一个窗口
WNDCLASS wc;// Windows Class Structure
……//填写wc的过程略,如何一步步建立窗口的教程里都有。
RegisterClass(&wc); // To Register The Window Class
……//生成一个标准窗口的细节步骤,相关教程里很清楚
(hWnd=CreateWindowEx(……); //我实验的结果用CreateWindow();也不影响对OpenGL的支持
2、让生成的标准窗口支持OpenGL!
static
PIXELFORMATDESCRIPTOR pfd= // pfd Tells Windows How We Want Things To Be
{
sizeof(PIXELFORMATDESCRIPTOR),// Size Of This Pixel Format Descriptor
1, // Version Number
PFD_DRAW_TO_WINDOW |// Format Must Support Window
PFD_SUPPORT_OPENGL |// Format Must Support OpenGL——就是这里了。
PFD_DOUBLEBUFFER,// Must Support Double Buffering
PFD_TYPE_RGBA,// Request An RGBA Format
bits, // Select Our Color Depth
0, 0, 0, 0, 0, 0,// Color Bits Ignored
0, // No Alpha Buffer
0, // Shift Bit Ignored
0, // No Accumulation Buffer
0, 0, 0, 0,
// Accumulation Bits Ignored
16, // 16Bit Z-Buffer (Depth Buffer)
0, // No Stencil Buffer
0, // No Auxiliary Buffer
PFD_MAIN_PLANE,// Main Drawing Layer
0, // Reserved
0, 0, 0
// Layer Masks Ignored
};
hDC=GetDC(hWnd))) // To Get A Device Context(得到窗口的设备环境(入口)——一般说是设备上下文,我觉得“上下文”让人莫名其妙)
PixelFormat=ChoosePixelFormat(hDC,&pfd);
// To Find A Matching Pixel Format
SetPixelFormat(hDC,PixelFormat,&pfd); // To Set The Pixel Format
hRC=wglCreateContext(hDC); // To Get A Rendering Context for OpenGL 得到一个OpenGL的展示环境(入口?权限)
wglMakeCurrent(hDC,hRC);// To Activate The Rendering Context
ShowWindow(hWnd,SW_SHOW);// Show The Window
.............
好一个OpenGL表演的窗口就完成了。
一、准备工作
1、下载OpenGl SDK ,CSDN中就有
2、释放后,在“工具|选项”中设置“项目和解决方案|VC++目录”
在“包含文件”与“库文件”中添加上OpenGl SDK的相关目录。
这样在你的程序中就可以用上#include<gl.h>,#include<glu.h>,#include<glaux.h>了
3、在你的stdafx.h中加上
#pragma comment( lib, "opengl32.lib")
#pragma comment( lib, "glu32.lib")
#pragma comment( lib, "glaux.lib")
然后就可以在自己的项目中调用OpenGl了。
二、创建一个支持OpenGL的窗口
必备的几个对象
HDC hDC=NULL;// 图形设备环境
HGLRC hRC=NULL;// OpenGl的展示环境
HWND hWnd=NULL;// Holds Our Window Handle
HINSTANCE hInstance;// Holds The Instance Of The Application
1、声明一个窗口类结构的对象,然后注册它,最后建立一个窗口
WNDCLASS wc;// Windows Class Structure
……//填写wc的过程略,如何一步步建立窗口的教程里都有。
RegisterClass(&wc); // To Register The Window Class
……//生成一个标准窗口的细节步骤,相关教程里很清楚
(hWnd=CreateWindowEx(……); //我实验的结果用CreateWindow();也不影响对OpenGL的支持
2、让生成的标准窗口支持OpenGL!
static
PIXELFORMATDESCRIPTOR pfd= // pfd Tells Windows How We Want Things To Be
{
sizeof(PIXELFORMATDESCRIPTOR),// Size Of This Pixel Format Descriptor
1, // Version Number
PFD_DRAW_TO_WINDOW |// Format Must Support Window
PFD_SUPPORT_OPENGL |// Format Must Support OpenGL——就是这里了。
PFD_DOUBLEBUFFER,// Must Support Double Buffering
PFD_TYPE_RGBA,// Request An RGBA Format
bits, // Select Our Color Depth
0, 0, 0, 0, 0, 0,// Color Bits Ignored
0, // No Alpha Buffer
0, // Shift Bit Ignored
0, // No Accumulation Buffer
0, 0, 0, 0,
// Accumulation Bits Ignored
16, // 16Bit Z-Buffer (Depth Buffer)
0, // No Stencil Buffer
0, // No Auxiliary Buffer
PFD_MAIN_PLANE,// Main Drawing Layer
0, // Reserved
0, 0, 0
// Layer Masks Ignored
};
hDC=GetDC(hWnd))) // To Get A Device Context(得到窗口的设备环境(入口)——一般说是设备上下文,我觉得“上下文”让人莫名其妙)
PixelFormat=ChoosePixelFormat(hDC,&pfd);
// To Find A Matching Pixel Format
SetPixelFormat(hDC,PixelFormat,&pfd); // To Set The Pixel Format
hRC=wglCreateContext(hDC); // To Get A Rendering Context for OpenGL 得到一个OpenGL的展示环境(入口?权限)
wglMakeCurrent(hDC,hRC);// To Activate The Rendering Context
ShowWindow(hWnd,SW_SHOW);// Show The Window
.............
好一个OpenGL表演的窗口就完成了。
相关文章推荐
- OpenGL_Qt学习笔记之_01(创建一个OpenGL窗口)
- JPA学习笔记---JPA实体Bean的建立---链接上一个博文:对实体Bean中属性进行操作:保存日期类型,设置字段的长度,名字,是否为空,可以声明枚举字段;可以存放二进制数据,可以存放
- 用glew,glfw实现opengl绘制3D学习笔记1-实现一个窗口
- OpenGL_Qt学习笔记之_01(创建一个OpenGL窗口)
- OpenCV学习笔记(六十一)——建立支持OpenGL的OpenCV工程“Master OpenCV”chp.3
- OpenGL_Qt学习笔记之_01(创建一个OpenGL窗口)
- OpenGL_Qt学习笔记之_01(创建一个OpenGL窗口)
- OpenGL_Qt学习笔记之_01(创建一个OpenGL窗口)
- gtk学习笔记2(制作一个完整的窗口)
- tensorflow学习笔记二——建立一个简单的神经网络拟合二次函数
- SilverLight学习笔记--实际应用(一)(6):手把手建立一个Silverlight应用程序之创建数据校验类3
- 【树莓派学习笔记】关于树莓派在VNC远程登录时,弹出一个GDBus错误窗口的问题!!!
- OpenGL学习笔记:Console工程下怎么不显示控制台黑窗口只显示Windows窗口(VS2015)
- dx11学习笔记-1.创建一个空窗口
- coco2dx-2.2.2 win32启动过程(opengl 和 窗口大小初始化部分) - 学习笔记 1
- 学习笔记1--在Qt5中利用OpenGL渲染一个立方体
- IIS 学习笔记(在IIS上发布了一个webservice,访问时可以访问到其目录,但是无法打开.asmx文件)
- flex 学习笔记 一个可以动态缩放的tree
- LearnOpenGL学习笔记1:创建窗口
- 学习笔记2--与OpenGL窗口中的立方体进行简单的交互