青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-38  評論-23  文章-0  trackbacks-0

nehe opengl 教程的使用的框架是基于win32的編程.雖然教程的作者已經搭好框架了,但是相對于來講win32窗口的編程是比較麻煩的,鑒于此,身為opengl初學者的我,在使用編程的習慣還是傾向于使用簡單的glut實用庫來重寫自己想學的所有lession.為此所有的lession 我將集中于一個大工程里.通過同一個頭文件定義所有的聲明等.
我為什么這么做呢?因為若我想用oop實現它 這將會是將簡單且容易轉換的.

現在將開始我的opengl之旅...基于vs 2008創建一個總體工程框架.

首先  新建 一個vs2008 解決方案 (solution)  命名為 opengl_glut  創建項目名稱定為lesson_1 設置為空白項目


在項目 lesson_1中添加頭文件 openglglut.h 將其保存在 opengl_glut解決方案下的src目錄,這個目錄將保存所有的源代碼,以后所有的lesson的代碼都將存放在該目錄下.


同樣的創建lesson_1.cpp 于是開始我們的代碼編寫之旅.我覺得良好的編程習慣將帶給自己一個很好的工作心情吧.同樣的良好的代碼風格也將給別人更好的心情..

首先實現 openglglut.h: 以后的所有lesson都將包含該頭文件 可能以后的lesson當中將會增加一些函數的聲明等.

/*
** opengl glut框架 定義的頭文件
** 頭文件中聲明了一些主要方法
** 頭文件中實現一些共同使用的方法則使得不再重復使用
*/


/** 定義避免在glut使用atexit*/
#ifndef GLUT_DISABLE_ATEXIT_HACK
#define GLUT_DISABLE_ATEXIT_HACK
#endif

#ifdef WIN32
    #include
<windows.h>
#endif

#ifndef OPENGLGLUT_H
#define OPENGLGLUT_H

#include
<stdio.h>
#include
<stdlib.h>
#include
<gl\glut.h>
/** 初始化一些窗口變量值*/
const int GL_WIN_WIDTH = 640;
const int GL_WIN_HEIGHT = 480;
const int GL_WIN_INITIAL_X = 30;
const int GL_WIN_INITIAL_Y = 30;

/** 設置是否全屏標志*/
bool isFullScreen=false;

/**  glut框架的窗口初始化創建函數**/

void createWindow(char* title,int* argc,char** argv)
{
    glutInitDisplayMode( GLUT_DOUBLE 
| GLUT_DEPTH | GLUT_RGBA | GLUT_MULTISAMPLE );
    glutInitWindowPosition( GL_WIN_INITIAL_X, GL_WIN_INITIAL_Y );
    glutInitWindowSize( GL_WIN_WIDTH, GL_WIN_HEIGHT );
    glutInit(argc, argv);
    glutCreateWindow(title);
}


/** 聲明繪制函數*/
void glutDisplay(void);  /** 該函數由所需要繪制的內容單獨實現**/

/** 聲明窗口調整函數 **/
void glutResize(int width,int height)
{
    glViewport(
00, width, height);/** 設置視口*/
    glMatrixMode(GL_PROJECTION);
/** 設置投影矩陣*/
    glLoadIdentity();  
//設置當前投影矩陣為單位矩陣
    /* modify this line to change perspective values */
    
/*使用透視投影,這其實是定義了一個投影矩陣并右乘當前矩陣得到最終投影矩陣*/
    gluPerspective(
45.0, (float)width/(float)height, 1.0300.0);
    glMatrixMode(GL_MODELVIEW);     
//設置模型視圖矩陣
    glLoadIdentity();               //設置當前矩陣為單位矩陣
}


/** 聲明opengl初始化*/
void InitOpenGL(void)
{
    glShadeModel(GL_SMOOTH);   
//啟用陰影平滑
    glClearColor(0.0,0.0,0.0,0.0); //黑色背景
    glClearDepth(1.0f);       // 設置深度緩存
    glEnable(GL_DEPTH_TEST); // 啟用深度測試
    glDepthFunc(GL_LEQUAL); // 所作深度測試的類型
    glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); //告訴系統 對透視進行修正
}

/** 空閑回調函數聲明*/
void glutIdle(void);

/** glut鼠標控制函數聲明*/
void glutMouse(int button,int state,int x,int y);

/** glut鍵盤控制函數聲明*/
void glutKeyboard(unsigned char key,int x,int y);

/** 聲明glut特殊按鍵 如shit ctrl alt等處理函數*/
void glutSpecial(int value, int x, int y)
{
    
switch (value)
    
{
         
case GLUT_KEY_F1:        // 按F1鍵時切換窗口/全屏模式
            if(isFullScreen)
            
{
                glutReshapeWindow(GL_WIN_WIDTH, GL_WIN_HEIGHT);
                glutPositionWindow(GL_WIN_INITIAL_X, GL_WIN_INITIAL_Y);
                isFullScreen 
= false;
            }

            
else
            
{
                glutFullScreen();
                isFullScreen 
= true;
            }

            
return;
         
default:
             
return;
    }

}


#endif


在創建完我的頭文件之后 我將開始了我的opengl學習過程
 lesson_1:使用glut創建一個簡單窗口,可實現按F1 全屏或窗口顯示
#include "openglglut.h"

/*
** opengl 教程第一課內容
** 創建一個簡單的glut窗口流程
*/

int main(int argc, char** argv)
{
    
/** 初始化窗口 并創建窗口*/

    createWindow(
"opengl lesson_1",&argc,argv);

    
/** 注冊glut的一些函數*/
    glutReshapeFunc(glutResize);     
//窗口調整函數 使得調整后圖形顯示不發生改變
    glutDisplayFunc(glutDisplay);    //重繪函數     使得可以在窗口中繪制圖形
    glutSpecialFunc(glutSpecial);    //特殊按鍵函數 使得實現全屏/窗口切換

    
/** 初始化opengl的一些操作*/
    InitOpenGL();

    
/** 進入仿真循環*/
    glutMainLoop();
}


/** 實現頭文件當中定義的繪制函數 **/
void glutDisplay(void)
{
    glClear(GL_COLOR_BUFFER_BIT 
| GL_DEPTH_BUFFER_BIT);
    glLoadIdentity();                   
//將先初始化單位矩陣
    glutSwapBuffers();                 //強制繪圖命令執行繪制在緩沖區交換出來
}


最終的顯示結果將是一個黑色的窗口:



末尾總結:在這一課當中,我學到如何創建glut窗口 并將它顯示出來
posted on 2009-07-15 09:28 米游 閱讀(773) 評論(0)  編輯 收藏 引用 所屬分類: OpenGL/OSG
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            91久久综合| 久久国产精品久久精品国产| 欧美在线播放一区二区| 国产综合香蕉五月婷在线| 奶水喷射视频一区| 国产精品亚洲综合天堂夜夜| 国产精品免费福利| 欧美精品久久天天躁| 一本久久精品一区二区| 久久久久国产一区二区| 国产人久久人人人人爽| 亚洲国产日韩欧美| 91久久精品国产91久久| 欧美福利专区| 国产一区二三区| 久久久久女教师免费一区| 欧美成人综合一区| 欧美激情区在线播放| 亚洲激情亚洲| 国产精品一区二区男女羞羞无遮挡 | 久久精品亚洲| 国产精品一区三区| 欧美在线啊v| 国产欧美日本在线| 欧美国产激情| 亚洲欧美中日韩| 日韩亚洲欧美成人一区| 国内精品久久久| 欧美精品网站| 麻豆精品视频在线观看| 久久一二三国产| 欧美在线观看日本一区| 一区二区三区四区精品| 久久手机精品视频| 久久久www| 亚洲最新中文字幕| 美女国内精品自产拍在线播放| 国产精品资源| 国产日韩欧美三级| 国产精品一卡| 国产色视频一区| 国语精品一区| 亚洲国产视频直播| 亚洲欧洲日本一区二区三区| 亚洲人成免费| 欧美一级大片在线免费观看| 国产日韩精品一区观看 | 久久久久久久999精品视频| 欧美一区二区在线看| 校园春色国产精品| 欧美一区二区三区在线观看视频 | 国产精品一区二区三区免费观看 | 亚洲电影有码| 亚洲国内精品| 亚洲免费观看在线视频| 欧美日韩精品免费看| 亚洲制服av| 美女久久一区| 国产美女扒开尿口久久久| 激情另类综合| 欧美激情中文不卡| 一个色综合av| 免费中文日韩| 国内外成人在线视频| 久久国产精品亚洲77777| 99天天综合性| 欧美日韩亚洲免费| 亚洲第一狼人社区| 性色av一区二区三区| 一区二区三区www| 欧美三级中文字幕在线观看| 在线播放国产一区中文字幕剧情欧美 | 欧美国产精品久久| 国产网站欧美日韩免费精品在线观看| 欧美性视频网站| 亚洲乱码视频| 欧美电影免费观看大全| 欧美77777| 亚洲欧美国产精品专区久久| 99re66热这里只有精品3直播| 欧美伦理91| 欧美一级在线亚洲天堂| 亚洲欧美影院| 亚洲破处大片| 亚洲制服少妇| 亚洲日本中文字幕区| 在线中文字幕一区| 国产亚洲免费的视频看| 欧美福利电影在线观看| 欧美刺激性大交免费视频 | 亚洲一区日本| 欧美在线视频全部完| 国产日韩欧美一区二区三区四区| 午夜精品视频一区| 午夜影院日韩| 亚洲高清不卡| 久久久美女艺术照精彩视频福利播放| 国内久久精品| 99热这里只有成人精品国产| 国产日韩在线看片| 亚洲国产中文字幕在线观看| 欧美日韩性生活视频| 久久精品一二三区| 国产精品v欧美精品v日本精品动漫| 久久精品久久99精品久久| 欧美日韩亚洲一区二区三区在线观看| 亚洲欧美一区二区三区极速播放| 免费的成人av| 亚洲国产天堂久久综合网| 国产精品久久久久久久久免费樱桃 | 一本一本久久a久久精品综合麻豆| 欧美99在线视频观看| 亚洲精品一区二区三区蜜桃久| 国产美女高潮久久白浆| 免费久久99精品国产| 国内精品久久久久影院色 | 亚洲男女毛片无遮挡| 亚洲电影在线播放| 久久精品视频va| 欧美国产精品劲爆| 亚洲特级毛片| 国内外成人在线| 亚洲淫片在线视频| 欧美18av| 香蕉成人伊视频在线观看| 国内激情久久| 欧美福利一区| 久久久久国内| 午夜精品剧场| 欧美一区综合| 9l视频自拍蝌蚪9l视频成人| 国产精品一区视频网站| 欧美成年人网| 久久久亚洲午夜电影| 亚洲一区黄色| 一区二区三区国产| 亚洲精华国产欧美| 美女主播一区| 欧美在线短视频| 欧美在线电影| 亚洲影视九九影院在线观看| 免费不卡中文字幕视频| 亚洲无限av看| 欧美日本三区| 亚洲人成绝费网站色www| 久久精品国产视频| 一区二区欧美精品| 欧美日韩免费看| 亚洲成色精品| 浪潮色综合久久天堂| 欧美一级免费视频| 国产一区二区毛片| 久久成人国产精品| 欧美在线精品一区| 国产性做久久久久久| 先锋资源久久| 久久久福利视频| 亚洲高清三级视频| 亚洲毛片播放| 一区二区三区高清不卡| 欧美激情aaaa| 欧美jizzhd精品欧美喷水| 在线观看视频一区二区| 久久免费偷拍视频| 老司机成人在线视频| 亚洲高清网站| 亚洲激情视频网站| 欧美三区在线视频| 久久成人免费电影| 老妇喷水一区二区三区| 亚洲靠逼com| 亚洲在线观看| 日韩香蕉视频| 久久精品欧洲| 亚洲欧美成人在线| 免费在线观看成人av| 宅男噜噜噜66一区二区| 欧美一区日韩一区| 在线一区免费观看| 美女久久一区| 久久香蕉国产线看观看网| 欧美久久一区| 欧美激情精品久久久六区热门| 欧美色视频日本高清在线观看| 欧美在线免费看| 国产精品久久久久久久午夜片| 欧美mv日韩mv亚洲| 精品成人一区二区三区| 一区二区三区产品免费精品久久75 | 国产日韩成人精品| 美女视频一区免费观看| 国产精品久久亚洲7777| 亚洲激情网站| 日韩午夜中文字幕| 欧美精品日韩| 国产精品永久免费在线| 亚洲人成网在线播放| 亚洲精品网站在线播放gif| 女人天堂亚洲aⅴ在线观看| 欧美黄色aaaa|