[英]Glut Initialisation Function
我只是想特別詢問OpenGL和Microsoft Visual Studio C ++中的glutInit函數。
我瀏覽了GLUT文檔,發現如何使用以下方法聲明它:
void glutInit(int *argcp, char **argv);
我將此代碼插入頂部的main.cpp文件中,但出現錯誤。
當我跟蹤錯誤時,它導致我進入下面的代碼塊。
/* GLUT initialization sub-API. */
GLUTAPI void APIENTRY glutInit(int *argcp, char **argv);
#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK)
GLUTAPI void APIENTRY __glutInitWithExit(int *argcp, char **argv, void (__cdecl *exitfunc)(int));
#ifndef GLUT_BUILDING_LIB
static void APIENTRY glutInit_ATEXIT_HACK(int *argcp, char **argv) { __glutInitWithExit(argcp, argv, exit); }
#define glutInit glutInit_ATEXIT_HACK
#endif
#endif
上面的代碼是否已經聲明了glutInit
函數,其次您可以使用:
void glutInit(int *argcp, char **argv)
在main.cpp
在其中添加其他功能,例如核心過剩功能。
為了在VS項目中添加OpenGL庫:
請注意,根據您的OpenGL版本,您可能可以跳過第4步和第7步。
另外,盡管可能與您的問題沒有直接關系,但這是“我最喜歡的”初始化序列:
void CreateSimulation();
void DestroySimulation();
void AdjustSimulation(int iWindowId);
void OnIdle();
void OnDisplay();
void OnReshape(int iWidth,int iHeight);
void OnSpecial(int iKey,int iX,int iY);
void OnKeyboard(unsigned char iKey,int iX,int iY);
void OnMouse(int iButton,int iState,int iX,int iY);
void main()
{
int iWidth = glutGet(GLUT_SCREEN_WIDTH);
int iHeight = glutGet(GLUT_SCREEN_HEIGHT);
glutInitWindowPosition(0,0);
glutInitWindowSize(iWidth,iHeight);
glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE);
int iWindowId = glutCreateWindow(WINDOW_TITLE);
CreateSimulation();
atexit(DestroySimulation);
AdjustSimulation(iWindowId);
GLUI_Master.set_glutIdleFunc(OnIdle);
GLUI_Master.set_glutDisplayFunc(OnDisplay);
GLUI_Master.set_glutReshapeFunc(OnReshape);
GLUI_Master.set_glutSpecialFunc(OnSpecial);
GLUI_Master.set_glutKeyboardFunc(OnKeyboard);
GLUI_Master.set_glutMouseFunc(OnMouse);
glutMainLoop();
}
void CreateSimulation()
{
...
}
void DestroySimulation()
{
...
}
void AdjustSimulation(int iWindowId)
{
...
}
void OnIdle()
{
...
}
void OnDisplay()
{
...
}
void OnReshape(int iWidth,int iHeight)
{
...
}
void OnSpecial(int iKey,int iX,int iY)
{
switch (iKey)
{
...
}
}
void OnKeyboard(unsigned char iKey,int iX,int iY)
{
switch (iKey)
{
...
}
}
void OnMouse(int iButton,int iState,int iX,int iY)
{
switch (iButton)
{
...
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.