在没有 XCode 的情况下使用 CGL/NSOpenGL 在 OSX 上使用 OpenGL 的 C++ 代码?

标签 c++ objective-c macos opengl gcc

我想使用 CGL 或 NSOpenGL 创建一个 OpenGL 窗口而不使用 XCode(使用命令行 gcc 编译)。我正在开发跨平台的东西,如果可以的话,我想将代码差异降到最低!我的代码库目前完全是 C++。这是可能吗?我是 OSX 的新手,还没有接触过 Objective-C 。我查看了开发人员文档并获取了一些示例文件。他们都在使用 xcode。我成功地编译了源代码并链接到正确的框架,但整个应用程序包、xib 和 info.plist 似乎有点过头了。

最佳答案

这是一个简单的系统:

// g++ glInfo.cpp -o glInfo.x -framework OpenGL 

#include <OpenGL/OpenGL.h>
#include <OpenGL/gl3.h>
#include <stdio.h>

int main(int argc, char **argv) 
{ 
    CGLContextObj     ctx; 
    CGLPixelFormatObj pix; 
    GLint             npix; 
    CGLPixelFormatAttribute attribs[] = { 
        (CGLPixelFormatAttribute) 0
    }; 

    CGLChoosePixelFormat( attribs, &pix, &npix ); 
    CGLCreateContext( pix, NULL, &ctx ); 
    CGLSetCurrentContext( ctx ); 

    printf("Vendor:   %s\n", glGetString(GL_VENDOR)                  ); 
    printf("Renderer: %s\n", glGetString(GL_RENDERER)                ); 
    printf("Version:  %s\n", glGetString(GL_VERSION)                 ); 
    printf("GLSL:     %s\n", glGetString(GL_SHADING_LANGUAGE_VERSION)); 

   return 0; 
}

关于在没有 XCode 的情况下使用 CGL/NSOpenGL 在 OSX 上使用 OpenGL 的 C++ 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9732778/

相关文章:

c++ - 我在哪里可以找到 d3dcompiler_43.dll 和相应的 lib 文件?

c++ - Cocos2Dx中Singleton的正确实现方式

c++ - 如何在使用 const "this"指针时获取非常量迭代器?

c++ - 使用 C++ 的多线程和并行进程

objective-c - 检测时间格式是 12 小时还是 24 小时格式

iphone - 任何 View 的颠倒变换

ios - 如何正确确保 32 位和 64 位兼容性?

javascript - 火狐插件 : not able to listen firefox "quit-application" event

objective-c - 阻止应用程序通过 Cocoa API(LittleSnitch API)访问网络?

cocoa - 获取 Mac UI 中当前选定的项目