2012-10-28 116 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

回答

相關問題