SDL-2:在OS X中运行本机cocoa应用程序时出现问题

时间:2014-05-23 19:03:42

标签: macos cocoa sdl sdl-2

我很好奇是否有人可以帮助解决我遇到的问题。我刚下载并安装了SDL 2框架,以及随附的示例程序,从Mercurial(http://www.libsdl.org/hg.php)到OSX Mavericks(10.9)。

我正在尝试在Xcode 5.1.1中运行示例本机可可代码,其中包含来自Mercurial中的tests文件夹的文件testnative.htestnative.ctestnativecocoa.m下载。

我已成功构建程序,但只要它命中函数SDL_CreateWindowFrom(native_window),程序就会崩溃并突出显示名为SDL_cocoakeyboard.m的文件的以下行:

 nswindow = ((SDL_WindowData*)window->driverdata)->nswindow;  Thread 1:EXC_BAD_ACCESS (code=1, address=0x8)

我对原始文件执行的唯一操作是将SDL.hSDL_syswm.h中的包含标题更改为SDL2/SDL.h中的SDL2/SDL_syswm.htestnative.h。我在程序中包含了cocoa和SDL2框架,并且我关闭了自动引用计数,这是运行示例代码所必需的。

我不知道在哪里我可能会出错,因为上述行之前的代码看起来并且运行正常(它可以在崩溃之前创建可可窗口)。

对此问题的任何见解都会很棒。提前谢谢!

1 个答案:

答案 0 :(得分:0)

评论中我错了,driverdatanull(从未初始化),需要使用SDL_cocoawindow.m:SetupWindowData之类的代码,但SetupWindowDatastatic (不是全局的)并且添加最小化初始化需要SDL_cocoawindow.h(但不公开)。

所以,我的猜测(也许我错了)这个 testnative 无效,至少没有当前的SDL2(错误的#include应该是一个标志)但是快速查看SDL2,显示有足够的​​可可代码,希望有其他方法可以让本机窗口工作。

一个好的开始How to set up a SDL 2 project for OS X in Xcode 4