freeglut3于win32下的编译

网上源码我不知道,这些声称本身编译了freeglut他们是怎么在vs下编译的freeglut。我没法编译成功,多是我比较笨吧,最后不得不改动freeglut代码,完成了编译,并经过了例子功能测试。我仔细看了一下,glutInit( int* pargc, char** argv ) 函数内部并无作平台相关的ifdef,也就是说全部的平台都会要求实现int mask = XParseGeometry( geometry,         &fgState.Position.X, &fgState.Position.Y,         &parsedWidth, &parsedHeight );这显然是个xwindow的下的XLib函数,在windows下没有对应接口函数。我把这部分注释掉了。vs完成了编译,也经过了例子测试。git

 fgPlatformInitialize( displayName );windows

    /*
     * Geometry parsing deferred until here because we may need the screen
     * size.
     */函数

    if (geometry )
    {
        unsigned int parsedWidth, parsedHeight;
        /*int mask = XParseGeometry( geometry,
                                   &fgState.Position.X, &fgState.Position.Y,
                                   &parsedWidth, &parsedHeight );*/
        /* TODO: Check for overflow? */
        fgState.Size.X = parsedWidth;
        fgState.Size.Y = parsedHeight;
        /*
        if( (mask & (WidthValue|HeightValue)) == (WidthValue|HeightValue) )
            fgState.Size.Use = GL_TRUE;测试

        if( mask & XNegative )
            fgState.Position.X += fgDisplay.ScreenWidth - fgState.Size.X;orm

        if( mask & YNegative )
            fgState.Position.Y += fgDisplay.ScreenHeight - fgState.Size.Y;接口

        if( (mask & (XValue|YValue)) == (XValue|YValue) )
            fgState.Position.Use = GL_TRUE;*/
    }
}源码

https://gitee.com/niuzhez 能够找到对应的vs2013的sln工程,与部分opengl例子。it

相关文章
相关标签/搜索