2012-10-28 53 views
0

我是mac开发新手。我目前开始使用Windows(使用direct3d)的3D程序,我期待使用opengl扩展到mac。我目前有如何启动窗口并使用opengl和windows绘制它的代码。我正在寻找最无懈可击的方式来用mac接口替换此应用程序的窗口部分。如何使用C++和opengl在mac中创建窗口?

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或可可很多人,我一定要使用的Objective-C或可可得到我想要的结果?如果可以的话,我还可以使用C++或coco库的Objective-C++吗?

最后什么是最简单的相当于mac中的messagebox()?我使用NSGetCriticalAlertPanel(),但我似乎无法得到它的工作(主要是因为我无法找到相应的库,我不得不包括)。我使用xcode编译器,如果有更好的一个或更喜欢更多,请建议它(我不是一个xcode的大粉丝)。

+1

没有办法用openGL创建窗口,它只是一个用于渲染的API。窗口创建将是一些平台特定的代码,最终你会调用一个A(apple)GL函数来创建一个openGL渲染上下文。 – stonemetal

+2

它被称为可可不可可。是的,你必须使用Objective-C(/ ++),因为MacOS X从根本上根植于基于消息的OOP系统。而可可是MacOS X的Win32 API对windows的。 – datenwolf

+0

对于初学者(以及像这样的端口),我不会推荐你使用Cocoa,因为这里有相当的学习曲线。相反,请使用SDL等库。 – TheAmateurProgrammer

回答

相关问题