一個簡單的OpenGL程式

來源:互聯網
上載者:User

一個簡單的OpenGL程式

 

 

cheungmine

2009-2

 

這是一個Windows控制台程式,建立一個空項目,把下面的檔案添加進去,編譯即可。需要更改的是路徑“../../???”。

 

依存的庫目錄

+--- win_opengl32/

       |

      +--- inc/

       |     |--- GL.h,GLU.h,GLUT.h

       |

       +--- lib/

       |     |--- GlU32.Lib,OpenGL32.Lib,glut32.lib,glut.def

       |   

       +--- bin/

              |--- glu32.dll,glut32.dll,opengl32.dll

 

 

//<br />// tutorial_01.c<br />//<br />// 記憶體流失檢測<br />// 在需要檢測的地方放置語句:<br />// _CrtDumpMemoryLeaks();<br />// 以下3句的次序不能改變<br />#define _CRTDBG_MAP_ALLOC<br />#include<stdlib.h><br />#include<crtdbg.h></p><p>#include<stdio.h><br />#include<string.h><br />#include<math.h><br />#include<assert.h></p><p>#include <windows.h></p><p>// 使用 USE_SGI_OPENGL 可能在某些機器上運行 wglMakeCurrent 系列函數返回失敗的結果<br />#define GLUT_NO_LIB_PRAGMA</p><p>// #define USE_SGI_OPENGL<br />#ifdef USE_SGI_OPENGL<br />#include "../../sgi-opengl2-sdk/include/gl/gl.h"<br />#include "../../sgi-opengl2-sdk/include/gl/glu.h"<br />#include "../../sgi-opengl2-sdk/include/gl/glut.h"</p><p>#pragma comment(lib, "../../sgi-opengl2-sdk/lib/opengl.lib")<br />#pragma comment(lib, "../../sgi-opengl2-sdk/lib/glu.lib")<br />#pragma comment(lib, "../../sgi-opengl2-sdk/lib/glut.lib")<br />#else<br />#include "../../win-opengl32/inc/GL.h"<br />#include "../../win-opengl32/inc/GLU.h"</p><p>#pragma comment(lib, "../../win-opengl32/lib/OPENGL32.lib")<br />#pragma comment(lib, "../../win-opengl32/lib/GLU32.lib")</p><p>#include "../../win-opengl32/inc/GLUT.h"<br />#pragma comment(lib, "../../win-opengl32/lib/glut32.lib")<br />#endif</p><p>void _display(void)<br />{<br /> glClear (GL_COLOR_BUFFER_BIT);<br /> glColor3f (1.0, 1.0, 1.0);<br /> glBegin(GL_POLYGON);<br /> glVertex3f (0.25, 0.25, 0.0);<br /> glVertex3f (0.75, 0.25, 0.0);<br /> glVertex3f (0.75, 0.75, 0.0);<br /> glVertex3f (0.25, 0.75, 0.0);<br /> glEnd();<br /> glFlush ();<br />}</p><p>void _init (void)<br />{<br /> glClearColor (0.0, 0.0, 0.0, 0.0);<br /> glMatrixMode(GL_PROJECTION);<br /> glLoadIdentity();<br /> glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);<br />}</p><p>int main(int argc, char** argv)<br />{<br /> glutInit(&argc, argv);<br /> glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);<br /> glutInitWindowSize (250, 250);<br /> glutInitWindowPosition (100, 100);<br /> glutCreateWindow ("hello");<br /> _init ();<br /> glutDisplayFunc(_display);<br /> glutMainLoop();</p><p> _CrtDumpMemoryLeaks();<br /> return 0;<br />}

 

    運行結果:

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.