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

關(guān)于OpenGl編程指南 第6版 第142頁(yè) 示例程序6-1 的運(yùn)行問(wèn)題

        這個(gè)程序就編譯問(wèn)題就花了我一個(gè)晚上的時(shí)間,很是郁悶,由于用的是 Visual Studio 2008,并且因?yàn)槲④泴?duì)OpenGL的支持只到1.1,1.1以后微軟就不再支持了,為什么,因?yàn)槲④浉氚l(fā)展自家的DirectX。所以如果想使用OpenGL1.1以上的功能或者函數(shù),只能使用OpenGL擴(kuò)展,這些擴(kuò)展是一些OpenGL團(tuán)體或個(gè)人開(kāi)發(fā)出來(lái)的能Windows上使用的OpenGL1.1以后的一些功能及函數(shù)。所以,在Windows上根本就沒(méi)有什么OpenGL2.0的頭文件或庫(kù)文件了,OpenGL1.1以后的東西都已經(jīng)以擴(kuò)展的形式存在了,而且,并沒(méi)有一個(gè)統(tǒng)一的標(biāo)準(zhǔn)。
        網(wǎng)上關(guān)于這個(gè)解決的方法已經(jīng)有很多,其中一個(gè)是用glew庫(kù),glew也是一個(gè)擴(kuò)展庫(kù),包含了OpenGL中許多核心及擴(kuò)展函數(shù),可以到這里下載:   http://glew.sourceforge.net/                            
       先安裝,再按下面順序包含頭文件(glew.h在glut.h前)
#include <GL/glew.h>
#include <GL/glut.h>
      其中安裝了glew庫(kù)方法如下:
bin/glew32.dll     to     %SystemRoot%/system32
lib/glew32.lib     to     {VC Root}/Lib
include/GL/glew.h     to     {VC Root}/Include/GL
include/GL/wglew.h     to     {VC Root}/Include/GL


      

 GLenum err = glewInit() ;     
 
if (GLEW_OK != err)
 
{
     exit(
-2);
 }


上述都是簡(jiǎn)單的問(wèn)題,一直執(zhí)行到這里的時(shí)候程序編譯是通過(guò)了,但是發(fā)現(xiàn)出現(xiàn)另外一個(gè)問(wèn)題,那就是,當(dāng)按下,a,s,r,m,x等鍵的時(shí)候完全沒(méi)有反應(yīng),于是我有查了一下,最后發(fā)現(xiàn)是由于沒(méi)有初始化glew的緣故,網(wǎng)上提供的通用方法是在init()函數(shù)調(diào)用之前先寫(xiě)上如上幾行代碼:

然后偶很郁悶的發(fā)現(xiàn),編譯出現(xiàn)錯(cuò)誤,這個(gè)地方也就是最神奇的地方,我試了很多次,都是提示錯(cuò)誤,提示GLenum 標(biāo)示符聲明不合法什么的,嘗試了一個(gè)晚上后終于放棄,過(guò)了幾天,重新回來(lái)看的時(shí)候,又試了幾次,做的都是換湯不換藥的事情,并將上述代碼的 exit(-2) 換成 return 0 ,還有就是把初始化的代碼換了個(gè)位置,放到init()函數(shù)的里面的開(kāi)始部分,運(yùn)行就OK了,不知道為什么出現(xiàn)這個(gè)問(wèn)題,又換到以前的位置或是將 return 0 重新?lián)Q回 exit(-2) 運(yùn)行又是錯(cuò)誤,鑒于這個(gè)問(wèn)題的詭異性,相信大家或許沒(méi)遇到過(guò),特此記錄下來(lái),以供對(duì)后來(lái)可能會(huì)遇到的朋友們一個(gè)提示。也期待有哪位高人指點(diǎn)一下緣故?

 以下為最終運(yùn)行成功的代碼:



/**//*
   此程序有時(shí)成功有時(shí)失敗,只發(fā)現(xiàn)原因在于初始化glew的那幾句代碼的具體位置,具體緣由有待解決
*/
 

/**//*
 *  blendeqn.c
 *  Demonstrate the different blending functions available with the
 *  OpenGL imaging subset.  This program demonstrates use of the
 *  glBlendEquation() call.
 *
 *  The following keys change the selected blend equation function:
 *
 *      'a'  ->  GL_FUNC_ADD
 *      's'  ->  GL_FUNC_SUBTRACT
 *      'r'  ->  GL_FUNC_REVERSE_SUBTRACT
 *      'm'  ->  GL_MIN
 *      'x'  ->  GL_MAX
 
*/



#include 
<GL/glew.h>
#include 
<GL/glut.h>
#include 
<stdlib.h>

void init(void)
{

   GLenum err 
= glewInit() ;     
   
if (GLEW_OK != err)return 0;
   
/**//*上面兩行代碼很奇怪,加到主函數(shù)的init()函數(shù)前就不行,有時(shí)候又可以,此問(wèn)題留待解決*/

   glClearColor(
1.01.00.00.0);

   glBlendFunc(GL_ONE, GL_ONE);
   glEnable(GL_BLEND);
}


void display(void)
{
   glClear(GL_COLOR_BUFFER_BIT);

   glColor3f(
0.00.01.0);
   glRectf(
-0.5,-0.5,0.5,0.5);

   glFlush();
}


void reshape(int w, int h)
{
   GLdouble aspect 
= (GLdouble) w / h;

   glViewport(
00, (GLsizei) w, (GLsizei) h);
   glMatrixMode(GL_PROJECTION);
   glLoadIdentity();
   
if (aspect < 1.0{
     aspect 
= 1.0 / aspect;
     glOrtho(
-aspect, aspect, -1.01.0-1.01.0);
   }
 else
     glOrtho(
-1.01.0-aspect, aspect, -1.01.0);
   glMatrixMode(GL_MODELVIEW);
}


void keyboard(unsigned char key, int x, int y)
{
   
switch (key) {
      
case 'a'case 'A':
     
/**//* Colors are added as: (1, 1, 0) + (0, 0, 1) = (1, 1, 1)
      *  which will produce a white square on a yellow background.
      
*/

     glBlendEquation(GL_FUNC_ADD);
     
break;

      
case 's'case 'S':
     
/**//* Colors are subtracted as: (0, 0, 1) - (1, 1, 0) = (-1, -1, 1)
      *  which is clamped to (0, 0, 1), producing a blue square on a
      *  yellow background
      
*/
     glBlendEquation(GL_FUNC_SUBTRACT);
     
break;

      
case 'r'case 'R':
     
/**//* Colors are subtracted as: (1, 1, 0) - (0, 0, 1) = (1, 1, -1)
      *  which is clamed to (1, 1, 0).  This produces yellow for both
      *  the square and the background.
      
*/

     glBlendEquation(GL_FUNC_REVERSE_SUBTRACT);
     
break;

      
case 'm'case 'M':
     
/**//* The minimum of each component is computed, as
      *  [min(1, 0), min(1, 0), min(0, 1)] which equates to (0, 0, 0).
      *  This will produce a black square on the yellow background.
      
*/

     glBlendEquation(GL_MIN);
     
break;

      
case 'x'case 'X':
     
/**//* The minimum of each component is computed, as
      *  [max(1, 0), max(1, 0), max(0, 1)] which equates to (1, 1, 1)
      *  This will produce a white square on the yellow background.
      
*/

     glBlendEquation(GL_MAX);
     
break;

      
case 27:
         exit(
0);
   }

   
   glutPostRedisplay();
}


int main(int argc, char** argv)

   glutInit(
&argc, argv);
   glutInitDisplayMode(GLUT_SINGLE 
| GLUT_RGB);
   glutInitWindowSize(
512,512);
   glutInitWindowPosition(
100100);
   glutCreateWindow(argv[
0]);

   init();
   
   glutReshapeFunc(reshape);
   glutKeyboardFunc(keyboard);
   glutDisplayFunc(display);
   glutMainLoop();
   
return 0;
}



 

posted on 2010-02-14 21:37 蝸牛也Coding 閱讀(1126) 評(píng)論(3)  編輯 收藏 引用

評(píng)論

# re: 關(guān)于OpenGl編程指南 第6版 第142頁(yè) 示例程序6-1 的運(yùn)行問(wèn)題 2010-02-27 15:53 philip

太好了
正為這個(gè)問(wèn)題奇怪呢
感謝感謝  回復(fù)  更多評(píng)論   

# re: 關(guān)于OpenGl編程指南 第6版 第142頁(yè) 示例程序6-1 的運(yùn)行問(wèn)題 2011-04-28 10:18 susan

Linking...
blendeqn.obj : error LNK2001: unresolved external symbol __imp__glewInit
blendeqn.obj : error LNK2001: unresolved external symbol __imp____glewBlendEquation
Debug/blendeqn.exe : fatal error LNK1120: 2 unresolved externals
執(zhí)行 link.exe 時(shí)出錯(cuò).
Creating browse info file...

我按你說(shuō)的改了,還是不行啊,為什么?  回復(fù)  更多評(píng)論   

# re: 關(guān)于OpenGl編程指南 第6版 第142頁(yè) 示例程序6-1 的運(yùn)行問(wèn)題 2011-04-28 10:38 susan

噢,想起來(lái)了,glew32.lib 在project setting 的links模塊下沒(méi)加上。  回復(fù)  更多評(píng)論   


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


<2010年2月>
31123456
78910111213
14151617181920
21222324252627
28123456
78910111213

導(dǎo)航

統(tǒng)計(jì)

常用鏈接

留言簿(8)

隨筆檔案(78)

搜索

積分與排名

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            午夜欧美精品久久久久久久| 国产精品女主播一区二区三区| 亚洲青涩在线| 久久免费视频观看| 麻豆国产va免费精品高清在线| 久久野战av| 亚洲第一级黄色片| 亚洲精品女人| 亚洲欧洲精品一区二区三区波多野1战4| 欧美激情aaaa| 99精品99久久久久久宅男| 亚洲一区在线播放| 久久精品一区蜜桃臀影院| 欧美大片在线观看| 国产精品一区二区久久久| 在线观看成人一级片| 中文日韩欧美| 老鸭窝91久久精品色噜噜导演| 亚洲黄色片网站| 亚洲视频在线观看视频| 久久久久欧美| 欧美视频在线一区二区三区| 国产亚洲综合精品| 日韩亚洲综合在线| 久久国产一区二区| 日韩一区二区福利| 久久久久国产一区二区| 欧美日韩在线播放一区二区| 韩国久久久久| 亚洲欧美在线免费| 亚洲国产婷婷香蕉久久久久久99| 午夜精品久久久久99热蜜桃导演| 另类天堂av| 国产日韩欧美在线看| 一区二区三区不卡视频在线观看 | 午夜影院日韩| 欧美激情一区二区三区四区 | 亚洲一二三区视频在线观看| 久久综合久久综合这里只有精品| 亚洲精品免费一区二区三区| 久久国产精品一区二区三区| 欧美色区777第一页| 精品91在线| 久久综合久色欧美综合狠狠| 在线一区观看| 欧美精品一二三| 亚洲国产一二三| 另类春色校园亚洲| 欧美在线你懂的| 国产精品亚洲网站| 亚洲欧美日韩中文在线制服| 亚洲乱码久久| 欧美三级在线播放| 亚洲午夜久久久| 日韩小视频在线观看专区| 欧美精品一区二区三区久久久竹菊 | 制服丝袜激情欧洲亚洲| 欧美激情一区二区三区| 久久夜色精品国产欧美乱| 韩国一区二区在线观看| 久久久久久久999精品视频| 亚洲欧美在线x视频| 国产欧美大片| 久久精品99国产精品酒店日本| 亚洲一区视频在线| 国产日韩欧美精品| 久久久欧美一区二区| 久久精品日产第一区二区三区| 韩日精品中文字幕| 嫩草伊人久久精品少妇av杨幂| 久久午夜精品一区二区| 亚洲国产综合在线看不卡| 亚洲国产高清自拍| 欧美日韩国产色站一区二区三区| 亚洲夜间福利| 欧美一级黄色网| 在线观看欧美日韩| 最新国产拍偷乱拍精品 | 欧美在线国产| 1024亚洲| 亚洲精品综合| 国产精品色午夜在线观看| 欧美中文字幕精品| 久久一二三区| 亚洲色图在线视频| 欧美一区二区三区免费看| 在线成人中文字幕| 一区二区三区国产在线观看| 国产中文一区| 亚洲欧洲日产国产综合网| 欧美性色综合| 久久夜色精品国产亚洲aⅴ| 欧美电影打屁股sp| 欧美一区二区三区免费大片| 老司机aⅴ在线精品导航| 欧美激情亚洲激情| 欧美日韩免费区域视频在线观看| 亚洲一区在线看| 久久精品亚洲精品| 中文在线一区| 美女久久一区| 久久久亚洲人| 国产精品久久久久久久第一福利 | 亚洲女同精品视频| 亚洲日本免费| 欧美一级视频精品观看| 99伊人成综合| 久久人人爽爽爽人久久久| 午夜精品偷拍| 欧美精品国产一区二区| 久久久福利视频| 国产精品国产三级国产普通话蜜臀 | 1000精品久久久久久久久| 亚洲午夜小视频| 日韩一级网站| 免费观看成人鲁鲁鲁鲁鲁视频 | 国产日韩欧美中文| 99日韩精品| 亚洲日本中文| 米奇777超碰欧美日韩亚洲| 久久精品国产99国产精品| 国产精品麻豆va在线播放| 日韩午夜中文字幕| 99综合在线| 欧美激情麻豆| 亚洲高清久久网| 最新国产成人在线观看| 老司机午夜精品视频| 蜜桃精品一区二区三区| 韩日成人av| 久久九九久精品国产免费直播| 久久国产精品网站| 国产一区二区精品丝袜| 欧美一级专区| 看欧美日韩国产| 在线播放精品| 欧美成人高清视频| 亚洲激情偷拍| 亚洲视频 欧洲视频| 国产精品久久久亚洲一区| 亚洲午夜免费福利视频| 欧美主播一区二区三区美女 久久精品人 | 一区二区在线不卡| 久久久天天操| 欧美高清在线播放| 亚洲精品欧美精品| 亚洲电影在线观看| 欧美母乳在线| 中文国产亚洲喷潮| 欧美在线视频a| 狠狠色综合网站久久久久久久| 欧美在线视频网站| 欧美粗暴jizz性欧美20| 亚洲精品久久视频| 欧美日韩中文另类| 午夜精品视频网站| 免费国产自线拍一欧美视频| 91久久国产自产拍夜夜嗨| 欧美人与性动交cc0o| 亚洲综合大片69999| 免费国产自线拍一欧美视频| 亚洲狼人精品一区二区三区| 国产精品久久久对白| 久久人人九九| 日韩视频免费| 久久精品国产亚洲5555| 亚洲人成精品久久久久| 国产精品日本精品| 模特精品在线| 亚洲欧美一区二区三区极速播放| 欧美 日韩 国产 一区| 亚洲一二区在线| 永久免费视频成人| 国产精品久久久久久久久动漫| 欧美一区二区视频免费观看| 亚洲激情黄色| 久久尤物视频| 亚洲一区二区三区高清 | 欧美视频一二三区| 久久久精品一区| 亚洲性视频网站| 亚洲人成毛片在线播放| 久久久久国产精品一区三寸 | 亚洲在线播放| 亚洲人成艺术| 狠狠综合久久| 国产精品婷婷| 欧美日韩一级片在线观看| 久久视频在线视频| 午夜在线精品偷拍| 一二三区精品福利视频| 亚洲第一毛片| 欧美α欧美αv大片| 久久国内精品自在自线400部| 一区二区三区四区五区视频 | 欧美偷拍另类| 欧美成人dvd在线视频| 久久―日本道色综合久久| 午夜精品久久久久久久久久久久久| 亚洲精品视频一区|