如何使用 c++ 和 opengl 在 mac 中创建窗口?
Posted
技术标签:
【中文标题】如何使用 c++ 和 opengl 在 mac 中创建窗口?【英文标题】:How do I create a window in mac using c++ and opengl? 【发布时间】:2012-10-28 01:20:48 【问题描述】:我是 mac 开发的新手。我目前已经开始使用windows(使用direct3d)开发一个3d程序,我希望使用opengl扩展到mac。我目前有关于如何初始化窗口并使用 opengl 和 windows 在其中绘制的代码。我正在寻找用 mac 界面替换此应用程序的 windows 部分的最无缝方式。
bool SystemClass::InitializeWindows(OpenGLClass* OpenGL, int& screenWidth, int&screenHeight)
WNDCLASSEX wc;
DEVMODE dmScreenSettings;
int posX, posY;
ApplicationHandle = this;
m_hinstance = GetModuleHandle(NULL);
m_applicationName = L"Engine";
wc.style = CS_HREDRAW;
wc.lpfnWndProc = WndProc;
wc.hInstance = m_hinstance;
wc.hIcon = LoadIcon(NULL, IDI_WINLOGO);
wc.hIconSm = wc.hIcon;
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.lpszMenuName = NULL;
wc.lpszClassName = m_applicationName;
wc.cbSize = sizeof(WNDCLASSEX);
//etc
//set full screen mode
//set window to front
//hide mouse
当我研究这个时,我看到很多人使用objective-c 或coco,我是否必须使用objective-c 或coco 才能得到我想要的结果?如果可以,我还能在 coco 库中使用 c++ 或 Objective-c++ 吗?
最后,与 mac 中的 messagebox() 最简单的等价物是什么?我使用了 NSGetCriticalAlertPanel() 但我似乎无法让它工作(主要是因为我找不到我必须包含的相应库)。
PS:我正在使用 xcode 编译器,如果有更好的或者您更喜欢的,请提出建议(我不是 xcode 的忠实粉丝)。
【问题讨论】:
没有办法用openGL创建一个窗口,它是一个仅用于渲染的api。窗口创建将是一些特定于平台的代码,最终您将调用 A(apple)GL 函数来创建 openGL 渲染上下文。 它叫可可而不是可可。是的,你必须使用 Objective-C(/++),因为 MacOS X 基本上植根于它基于消息的 OOP 系统。 Cocoa 之于 MacOS X 就像 Win32 API 之于 windows。 对于初学者(以及类似的端口),我不建议您使用 Cocoa,因为它的学习曲线相当长。相反,请使用 SDL 等库。 感谢所有评论,有人有什么好的教程或参考页面吗? (针对所述主题) 【参考方案1】:您可以从this SDL - openGL tutorial 开始,它是最新的。您还需要安装XCode 您可能拥有的东西。教程中有关于如何将 inlcude SDL 安装到项目中的详细说明。在一切都初始化并准备好使用之后,你会发现很多general sdl tutorials here,你可以关注这个sdltutorial on openGL。
也许this SDL FAQ 也有帮助。
【讨论】:
以上是关于如何使用 c++ 和 opengl 在 mac 中创建窗口?的主要内容,如果未能解决你的问题,请参考以下文章
在我的 OpenGL C++ 项目中究竟应该在哪里添加我的 BMP 文件?在 Mac 上使用 Xcode
如何使用 xcode 制作简单的 OpenGl C++ 程序
无法使用 GLEW (mac,c++) 在 openGL 中绘制任何内容