JS技术

OpenGL边用边学------1 VS2015最简单OpenGL设置代码 - smstong的成长轨迹 - 博客频道

字号+ 作者:H5之家 来源:H5之家 2015-12-13 11:29 我要评论( )

1、 Android开发教程笔记完全版 pdf 2、 android各组件详解 PDF3、 Android游戏示例大全(从培训基础到复杂游戏开发) 4、 Android技术内幕系统篇PDF高清完整版.

Windows平台下开发OpenGL程序,最常用的还是使用VS环境,glut并不常用。作为《OpenGL边用边学》开篇第一文,先解决在VS环境下设置OpenGL的问题。

1. 使用VS设置向导,建立Win32应用程序框架

这个步骤不再多说了,鼠标点几下就可以完成。完成之后编译运行,确保自动生成的项目可用。

2. 包含必要的头文件,链接必要的库文件

在stdafx.h中增加如下代码。

3. 初始化OpenGL渲染环境,执行最简单渲染

修改窗口过程WndProc(),增加WM_CREATE和WM_PAINT消息的处理,一个用来初始化OpenGL环境,另一个用来实际OpenGL绘图操作。

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_CREATE: OnCreate(hWnd, message, wParam, lParam); break; case WM_COMMAND: { int wmId = LOWORD(wParam); // 分析菜单选择: switch (wmId) { case IDM_ABOUT: DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About); break; case IDM_EXIT: DestroyWindow(hWnd); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } } break; case WM_PAINT: OnPaint(hWnd, message, wParam, lParam); ::ValidateRect(hWnd, NULL); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; }

WM_CREATE消息处理函数如下,功能就是初始化窗口的OpenGL渲染环境。

void OnCreate(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { static PIXELFORMATDESCRIPTOR pfd = { sizeof(PIXELFORMATDESCRIPTOR), 1, PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER, PFD_TYPE_RGBA, 24, 0,0,0,0,0,0, 0, 0, 0, 0,0,0,0, 32, 0, 0, PFD_MAIN_PLANE, 0, 0,0,0 }; HDC hdc = ::GetDC(hWnd); int pixelFormat = ::ChoosePixelFormat(hdc, &pfd); if (!::SetPixelFormat(hdc, pixelFormat, &pfd)) { ::ReleaseDC(hWnd, hdc); MessageBox(hWnd, L"SetPixelFormat", L"ERROR", MB_OK); return; } HGLRC hrc = ::wglCreateContext(hdc); if (!::wglMakeCurrent(hdc, hrc)) { ::ReleaseDC(hWnd, hdc); ::wglDeleteContext(hrc); MessageBox(hWnd, L"wglMakeCurrent", L"ERROR", MB_OK); return; } ::ReleaseDC(hWnd, hdc); }

WM_PAINT消息处理函数如下,功能是清空颜色缓冲区,并交换前后缓存,从而更新显示。

void OnPaint(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { glClear(GL_COLOR_BUFFER_BIT); HDC hdc = ::GetDC(hWnd); ::SwapBuffers(hdc); ::ReleaseDC(hWnd, hdc); }

至此最简单的Win32+OpenGL程序框架就完成了。运行后窗口客户区显示为黑色,如下图:

OpenGL最简单框架

源码下载

  • 上一篇如何让软件绑定计算机硬件
  • 顶 0 踩 0

    我的同类文章

    猜你在找

    查看评论

    * 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

    个人资料


    smstong

  • 访问:868406次
  • 积分:11754
  • 等级:

    积分:11754

  • 排名:第587名
  • 文章搜索

    博客专栏

    CSDN-MarkDown编辑器使用手册

    文章:5篇

    阅读:4107

    文章分类

  • .net Framework(28)
  • C/C++(48)
  • Linux相关(102)
  • web开发(50)
  • Windows相关(61)
  • 图形图像处理(17)
  • 数据库(38)
  • 硬件相关(17)
  • 网络技术(47)
  • 脚本语言(30)
  • 虚拟化与云计算(2)
  • 非技术类(13)
  • Mac(7)
  • 文章存档

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • OpenGL边用边学------2 OpenGL状态、视口设置 - smstong的成长轨迹 - 博客频道 - CSDN

      OpenGL边用边学------2 OpenGL状态、视口设置 - smstong的成长轨迹 -

      2015-12-14 17:57

    网友点评