搜索
查看: 5641|回复: 4
打印 上一主题 下一主题

OpenGL链接问题

[复制链接]
跳转到指定楼层
楼主
发表于 2014-1-5 14:56:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
50啊哈币
  1. // Triangle.cpp
  2. // Our first OpenGL program that will just draw a triangle on the screen.

  3. #include <GLTools.h> // OpenGL toolkit
  4. #include <GLShaderManager.h> // Shader Manager Class

  5. #ifdef __APPLE__
  6. #include <glut/glut.h> // OS X version of GLUT
  7. #else
  8. #define FREEGLUT_STATIC
  9. #include <GL/glut.h> // Windows FreeGlut equivalent
  10. #endif

  11. GLBatch triangleBatch;
  12. GLShaderManager shaderManager;

  13. ///////////////////////////////////////////////////////////////////////////////
  14. // Window has changed size, or has just been created. In either case, we need
  15. // to use the window dimensions to set the viewport and the projection matrix.
  16. void ChangeSize(int w, int h)
  17. {
  18. glViewport(0, 0, w, h);
  19. }


  20. ///////////////////////////////////////////////////////////////////////////////
  21. // This function does any needed initialization on the rendering context.
  22. // This is the first opportunity to do any OpenGL related tasks.
  23. void SetupRC()
  24. {
  25. // Blue background
  26. glClearColor(0.0f, 0.0f, 1.0f, 1.0f );

  27. shaderManager.InitializeStockShaders();

  28. // Load up a triangle
  29. GLfloat vVerts[] = { -0.5f, 0.0f, 0.0f,
  30. 0.5f, 0.0f, 0.0f,
  31. 0.0f, 0.5f, 0.0f };

  32. triangleBatch.Begin(GL_TRIANGLES, 3);
  33. triangleBatch.CopyVertexData3f(vVerts);
  34. triangleBatch.End();
  35. }



  36. ///////////////////////////////////////////////////////////////////////////////
  37. // Called to draw scene
  38. void RenderScene(void)
  39. {
  40. // Clear the window with current clearing color
  41. glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);

  42. GLfloat vRed[] = { 1.0f, 0.0f, 0.0f, 1.0f };
  43. shaderManager.UseStockShader(GLT_SHADER_IDENTITY, vRed);
  44. triangleBatch.Draw();

  45. // Perform the buffer swap to display back buffer
  46. glutSwapBuffers();
  47. }


  48. ///////////////////////////////////////////////////////////////////////////////
  49. // Main entry point for GLUT based programs
  50. int main(int argc, char* argv[])
  51. {
  52. gltSetWorkingDirectory(argv[0]);

  53. glutInit(&argc, argv);
  54. glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH | GLUT_STENCIL);
  55. glutInitWindowSize(800, 600);
  56. glutCreateWindow("Triangle");
  57. glutReshapeFunc(ChangeSize);
  58. glutDisplayFunc(RenderScene);

  59. GLenum err = glewInit();
  60. if (GLEW_OK != err) {
  61. fprintf(stderr, "GLEW Error: %s\n", glewGetErrorString(err));
  62. return 1;
  63. }

  64. SetupRC();

  65. glutMainLoop();
  66. return 0;
  67. }
复制代码

最近看了OpenGL Super Bible(Fifth Edition)里面提供的源代码我用Code::Blocks和g++不能编译
以上是源代码
报错如下(有点多……):
||Warning: .drectve `/DEFAULTLIB:"freeglut_static.lib" /DEFAULTLIB:"glu32.lib" /DEFAULTLIB:"opengl32.lib" /DEFAULTLIB:"gdi32.lib" /DEFAULTLIB:"winmm.lib" /DEFAULTLIB:"user32.lib" /DEFAULTLIB:"LIBCMT" /DEFAULTLIB:"OLDNAMES" ' unrecognized|
||Warning: .drectve `/DEFAULTLIB:"freeglut_static.lib" /DEFAULTLIB:"glu32.lib" /DEFAULTLIB:"opengl32.lib" /DEFAULTLIB:"gdi32.lib" /DEFAULTLIB:"winmm.lib" /DEFAULTLIB:"user32.lib" /DEFAULTLIB:"LIBCMT" /DEFAULTLIB:"OLDNAMES" ' unrecognized|
||Warning: .drectve `/DEFAULTLIB:"freeglut_static.lib" /DEFAULTLIB:"glu32.lib" /DEFAULTLIB:"opengl32.lib" /DEFAULTLIB:"gdi32.lib" /DEFAULTLIB:"winmm.lib" /DEFAULTLIB:"user32.lib" /DEFAULTLIB:"LIBCMT" /DEFAULTLIB:"OLDNAMES" ' unrecognized|
||Warning: .drectve `/DEFAULTLIB:"freeglut_static.lib" /DEFAULTLIB:"glu32.lib" /DEFAULTLIB:"opengl32.lib" /DEFAULTLIB:"gdi32.lib" /DEFAULTLIB:"winmm.lib" /DEFAULTLIB:"user32.lib" /DEFAULTLIB:"LIBCMT" /DEFAULTLIB:"OLDNAMES" ' unrecognized|
||Warning: .drectve `/DEFAULTLIB:"freeglut_static.lib" /DEFAULTLIB:"glu32.lib" /DEFAULTLIB:"opengl32.lib" /DEFAULTLIB:"gdi32.lib" /DEFAULTLIB:"winmm.lib" /DEFAULTLIB:"user32.lib" /DEFAULTLIB:"LIBCMT" /DEFAULTLIB:"OLDNAMES" ' unrecognized|
||Warning: .drectve `/DEFAULTLIB:"freeglut_static.lib" /DEFAULTLIB:"glu32.lib" /DEFAULTLIB:"opengl32.lib" /DEFAULTLIB:"gdi32.lib" /DEFAULTLIB:"winmm.lib" /DEFAULTLIB:"user32.lib" /DEFAULTLIB:"LIBCMT" /DEFAULTLIB:"OLDNAMES" ' unrecognized|
||Warning: .drectve `/DEFAULTLIB:"freeglut_static.lib" /DEFAULTLIB:"glu32.lib" /DEFAULTLIB:"opengl32.lib" /DEFAULTLIB:"gdi32.lib" /DEFAULTLIB:"winmm.lib" /DEFAULTLIB:"user32.lib" /DEFAULTLIB:"LIBCMT" /DEFAULTLIB:"OLDNAMES" ' unrecognized|
||Warning: .drectve `/DEFAULTLIB:"freeglut_static.lib" /DEFAULTLIB:"glu32.lib" /DEFAULTLIB:"opengl32.lib" /DEFAULTLIB:"gdi32.lib" /DEFAULTLIB:"winmm.lib" /DEFAULTLIB:"user32.lib" /DEFAULTLIB:"LIBCMT" /DEFAULTLIB:"OLDNAMES" ' unrecognized|
||Warning: .drectve `/DEFAULTLIB:"freeglut_static.lib" /DEFAULTLIB:"glu32.lib" /DEFAULTLIB:"opengl32.lib" /DEFAULTLIB:"gdi32.lib" /DEFAULTLIB:"winmm.lib" /DEFAULTLIB:"user32.lib" /DEFAULTLIB:"LIBCMT" /DEFAULTLIB:"OLDNAMES" ' unrecognized|
||Warning: .drectve `/DEFAULTLIB:"freeglut_static.lib" /DEFAULTLIB:"glu32.lib" /DEFAULTLIB:"opengl32.lib" /DEFAULTLIB:"gdi32.lib" /DEFAULTLIB:"winmm.lib" /DEFAULTLIB:"user32.lib" /DEFAULTLIB:"advapi32.lib" /DEFAULTLIB:"LIBCMT" /DEFAULTLIB:"OLDNAMES" ' unrecognized|
||Warning: .drectve `/DEFAULTLIB:"freeglut_static.lib" /DEFAULTLIB:"glu32.lib" /DEFAULTLIB:"opengl32.lib" /DEFAULTLIB:"gdi32.lib" /DEFAULTLIB:"winmm.lib" /DEFAULTLIB:"user32.lib" /DEFAULTLIB:"LIBCMT" /DEFAULTLIB:"OLDNAMES" ' unrecognized|
||Warning: .drectve `/DEFAULTLIB:"freeglut_static.lib" /DEFAULTLIB:"glu32.lib" /DEFAULTLIB:"opengl32.lib" /DEFAULTLIB:"gdi32.lib" /DEFAULTLIB:"winmm.lib" /DEFAULTLIB:"user32.lib" /DEFAULTLIB:"LIBCMT" /DEFAULTLIB:"OLDNAMES" ' unrecognized|
||Warning: .drectve `/DEFAULTLIB:"freeglut_static.lib" /DEFAULTLIB:"glu32.lib" /DEFAULTLIB:"opengl32.lib" /DEFAULTLIB:"gdi32.lib" /DEFAULTLIB:"winmm.lib" /DEFAULTLIB:"user32.lib" /DEFAULTLIB:"LIBCMT" /DEFAULTLIB:"OLDNAMES" ' unrecognized|
||Warning: .drectve `/DEFAULTLIB:"freeglut_static.lib" /DEFAULTLIB:"glu32.lib" /DEFAULTLIB:"opengl32.lib" /DEFAULTLIB:"gdi32.lib" /DEFAULTLIB:"winmm.lib" /DEFAULTLIB:"user32.lib" /DEFAULTLIB:"LIBCMT" /DEFAULTLIB:"OLDNAMES" ' unrecognized|
||Warning: .drectve `/DEFAULTLIB:"freeglut_static.lib" /DEFAULTLIB:"glu32.lib" /DEFAULTLIB:"opengl32.lib" /DEFAULTLIB:"gdi32.lib" /DEFAULTLIB:"winmm.lib" /DEFAULTLIB:"user32.lib" /DEFAULTLIB:"LIBCMT" /DEFAULTLIB:"OLDNAMES" ' unrecognized|
||Warning: .drectve `/DEFAULTLIB:"freeglut_static.lib" /DEFAULTLIB:"glu32.lib" /DEFAULTLIB:"opengl32.lib" /DEFAULTLIB:"gdi32.lib" /DEFAULTLIB:"winmm.lib" /DEFAULTLIB:"user32.lib" /DEFAULTLIB:"LIBCMT" /DEFAULTLIB:"OLDNAMES" ' unrecognized|
||Warning: .drectve `/DEFAULTLIB:"LIBCMT" /DEFAULTLIB:"OLDNAMES" ' unrecognized|
obj\Debug\D\OpenGL\SB5\Src\Chapter02\Triangle\Triangle.o||In function `_Z7SetupRCv':|
D:\OpenGL\SB5\Src\Chapter02\Triangle\Triangle.cpp|34|undefined reference to `GLShaderManager::InitializeStockShaders()'|
D:\OpenGL\SB5\Src\Chapter02\Triangle\Triangle.cpp|41|undefined reference to `GLBatch::Begin(unsigned int, unsigned int, unsigned int)'|
D:\OpenGL\SB5\Src\Chapter02\Triangle\Triangle.cpp|43|undefined reference to `GLBatch::End()'|
obj\Debug\D\OpenGL\SB5\Src\Chapter02\Triangle\Triangle.o||In function `_Z11RenderScenev':|
D:\OpenGL\SB5\Src\Chapter02\Triangle\Triangle.cpp|56|undefined reference to `GLShaderManager::UseStockShader(GLT_STOCK_SHADER, ...)'|
D:\OpenGL\SB5\Src\Chapter02\Triangle\Triangle.cpp|57|undefined reference to `GLBatch:raw()'|
obj\Debug\D\OpenGL\SB5\Src\Chapter02\Triangle\Triangle.o||In function `main':|
D:\OpenGL\SB5\Src\Chapter02\Triangle\Triangle.cpp|68|undefined reference to `gltSetWorkingDirectory(char const*)'|
obj\Debug\D\OpenGL\SB5\Src\Chapter02\Triangle\Triangle.o||In function `_Z41__static_initialization_and_destruction_0ii':|
D:\OpenGL\SB5\Src\Chapter02\Triangle\Triangle.cpp|14|undefined reference to `GLBatch::GLBatch()'|
D:\OpenGL\SB5\Src\Chapter02\Triangle\Triangle.cpp|15|undefined reference to `GLShaderManager::GLShaderManager()'|
D:\OpenGL\SB5\Src\Chapter02\Triangle\Triangle.cpp|15|undefined reference to `GLShaderManager::~GLShaderManager()'|
D:\OpenGL\SB5\Src\Chapter02\Triangle\Triangle.cpp|14|undefined reference to `GLBatch::~GLBatch()'|
obj\Debug\D\OpenGL\SB5\Src\Chapter02\Triangle\Triangle.o||In function `RadianToAngle':|
D:\CodeBlocks\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\include\math.h|180|undefined reference to `GLBatch::CopyVertexData3f(float (*) [3])'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_main.obj).text[_fgSystemTime]+0x2)||undefined reference to `__imp__timeGetTime@0'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_main.obj).text[_fgError]+0x6)||undefined reference to `___iob_func'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_main.obj).text[_fgError]+0x26)||undefined reference to `___iob_func'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_main.obj).text[_fgError]+0x41)||undefined reference to `___iob_func'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_main.obj).text[_fgError]+0x57)||undefined reference to `___iob_func'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_main.obj).text[_fgWarning]+0x6)||undefined reference to `___iob_func'|
16]+0xfe)||undefined reference to `__imp__wglCreateContext@4'|
16]+0x10f)||undefined reference to `__imp__wglMakeCurrent@8'|
16]+0x15f)||undefined reference to `__imp__wglGetCurrentContext@0'|
16]+0x170)||undefined reference to `__imp__wglCreateContext@4'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_window.obj).text[_fghIsExtensionSupported]+0x7)||undefined reference to `__imp__wglGetProcAddress@4'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_window.obj).text[_fgNewWGLCreateContext]+0x13)||undefined reference to `__imp__wglMakeCurrent@8'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_window.obj).text[_fgNewWGLCreateContext]+0x4c)||undefined reference to `__imp__wglGetProcAddress@4'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_window.obj).text[_fgNewWGLCreateContext]+0x87)||undefined reference to `__imp__wglDeleteContext@4'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_window.obj):(.text[_fghFillPFD]+0xb5)||undefined reference to `__imp__GetDeviceCaps@8'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_window.obj):(.text[_fgSetupPixelFormat]+0x2e)||undefined reference to `__imp__ChoosePixelFormat@8'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_window.obj):(.text[_fgSetupPixelFormat]+0x4b)||undefined reference to `__imp__wglGetCurrentContext@0'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_window.obj):(.text[_fgSetupPixelFormat]+0x55)||undefined reference to `__imp__wglGetCurrentDC@0'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_window.obj):(.text[_fgSetupPixelFormat]+0xf6)||undefined reference to `__imp__SetPixelFormat@12'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_window.obj):(.text[_fgSetupPixelFormat]+0xfd)||undefined reference to `__imp__wglCreateContext@4'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_window.obj):(.text[_fgSetupPixelFormat]+0x107)||undefined reference to `__imp__wglMakeCurrent@8'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_window.obj):(.text[_fgSetupPixelFormat]+0x124)||undefined reference to `__imp__wglGetProcAddress@4'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_window.obj):(.text[_fgSetupPixelFormat]+0x18a)||undefined reference to `__imp__wglMakeCurrent@8'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_window.obj):(.text[_fgSetupPixelFormat]+0x191)||undefined reference to `__imp__wglDeleteContext@4'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_window.obj):(.text[_fgSetupPixelFormat]+0x1d8)||undefined reference to `__imp__SetPixelFormat@12'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_window.obj):(.text[_fgSetWindow]+0x34)||undefined reference to `__imp__wglMakeCurrent@8'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_window.obj):(.text[_fgOpenWindow]+0x241)||undefined reference to `__imp__glDrawBuffer@4'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_window.obj):(.text[_fgOpenWindow]+0x24c)||undefined reference to `__imp__glReadBuffer@4'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_window.obj):(.text[_fgCloseWindow]+0x13)||undefined reference to `__imp__wglMakeCurrent@8'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_window.obj):(.text[_fgCloseWindow]+0x43)||undefined reference to `__imp__wglDeleteContext@4'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_init.obj):(.text[_fghInitialize]+0x10a)||undefined reference to `__imp__GetDeviceCaps@8'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_init.obj):(.text[_fghInitialize]+0x130)||undefined reference to `__imp__timeBeginPeriod@4'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_init.obj):(.text[_fgDeinitialize]+0x1c0)||undefined reference to `__imp__timeEndPeriod@4'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_init.obj):(.text[_glutInitDisplayString]+0x48)||undefined reference to `_strtok_s'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_init.obj):(.text[_glutInitDisplayString]+0xfa)||undefined reference to `_strtok_s'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_display.obj):(.text[_glutSwapBuffers]+0x3b)||undefined reference to `__imp__glFlush@0'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_display.obj):(.text[_glutSwapBuffers]+0x54)||undefined reference to `__imp__SwapBuffers@4'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_display.obj):(.text[_glutSwapBuffers]+0xe9)||undefined reference to `___iob_func'|
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib(.\Release\freeglut_menu.obj):(.text[_fghDisplayMenuBox]+0x1c)||undefined reference to `__imp__glColor4f@16'|
||产生更多的错误信息但不显示。|
||在编译器选项里修改最大的错误限制...|
||=== 已完成构建: 50 个错误, 17 个警告 ===|


文件下载链接
http://www.starstonesoftware.com/files/

SB5.zip
我在项目->构建选项中链接了
D:\OpenGL\SB5\freeglut-2.6.0\VisualStudio2008Static\Release\freeglut_static.lib

D:\OpenGL\SB5\VisualStudio2008\GLTools\Release\gltools.lib
这两个库

并在其他链接选项中添加:
-lglut32
-lopengl32
-lglu32
-lgdi32
-lwinmm

仍然报错




沙发
 楼主| 发表于 2014-1-5 14:58:10 | 只看该作者
是不是VS用的lib g++用不了?
板凳
发表于 2014-1-9 17:51:25 | 只看该作者
回贴时请遵守当地法律哦。好晕啊
地板
发表于 2014-4-1 20:33:48 | 只看该作者
// Triangle.cpp
// Our first OpenGL program that will just draw a triangle on the screen.

#include <GLTools.h> // OpenGL toolkit
#include <GLShaderManager.h> // Shader Manager Class

#ifdef __APPLE__
#include <glut/glut.h> // OS X version of GLUT
#else
#define FREEGLUT_STATIC
#include <GL/glut.h> // Windows FreeGlut equivalent
#endif

GLBatch triangleBatch;
GLShaderManager shaderManager;

///////////////////////////////////////////////////////////////////////////////
// Window has changed size, or has just been created. In either case, we need
// to use the window dimensions to set the viewport and the projection matrix.
void ChangeSize(int w, int h)
{
glViewport(0, 0, w, h);
}


///////////////////////////////////////////////////////////////////////////////
// This function does any needed initialization on the rendering context.
// This is the first opportunity to do any OpenGL related tasks.
void SetupRC()
{
// Blue background
glClearColor(0.0f, 0.0f, 1.0f, 1.0f );

shaderManager.InitializeStockShaders();

// Load up a triangle
GLfloat vVerts[] = { -0.5f, 0.0f, 0.0f,
0.5f, 0.0f, 0.0f,
0.0f, 0.5f, 0.0f };

triangleBatch.Begin(GL_TRIANGLES, 3);
triangleBatch.CopyVertexData3f(vVerts);
triangleBatch.End();
}



///////////////////////////////////////////////////////////////////////////////
// Called to draw scene
void RenderScene(void)
{
// Clear the window with current clearing color
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);

GLfloat vRed[] = { 1.0f, 0.0f, 0.0f, 1.0f };
shaderManager.UseStockShader(GLT_SHADER_IDENTITY, vRed);
triangleBatch.Draw();

// Perform the buffer swap to display back buffer
glutSwapBuffers();
}


///////////////////////////////////////////////////////////////////////////////
// Main entry point for GLUT based programs
int main(int argc, char* argv[])
{
gltSetWorkingDirectory(argv[0]);

glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH | GLUT_STENCIL);
glutInitWindowSize(800, 600);
glutCreateWindow("Triangle");
glutReshapeFunc(ChangeSize);
glutDisplayFunc(RenderScene);

GLenum err = glewInit();
if (GLEW_OK != err) {
fprintf(stderr, "GLEW Error: %s\n", glewGetErrorString(err));
return 1;
}

SetupRC();

glutMainLoop();
return 0;
}
5#
发表于 2014-4-20 20:01:40 | 只看该作者
这帖子看着晕死了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表