我对游戏开发非常陌生。 我正在尝试使用SDL在窗口上移动精灵。 我使用http://gamedevgeek.com/tutorials/moving-sprites-with-sdl/作为参考,以帮助我了解SDL。 但是,这种blit方法不适用于SDL2。 经过研究,我发现必须将表面转换 ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我正在尝试使用Core Animation / Cocoa在运行Safari(6.2)的OS X(10.8.5)的浏览器插件中使用以下组合:
FireBreath + SDL2
我研究了FB提供的BasicMediaPlayer示例,并了解可以通过FB :: PluginWindowMac :: getDrawingPrimitive()访问CALayer。
我要完成的工作是使用SDL / SDL2执行渲染。
在Windows上,这是相对容易的,因为FB插件窗口(FB :: PluginWindowWin)提供了HWND,可以将其传递给SDL_CreateWindowFrom API(随后由SDL_CreateRenderer和SDL_CreateTexture执行渲染)。 void *对应于Mac上的NSWindow *(据我了解),据我了解,我将无法在我的插件内访问(根据我读过的其他文章)。
所以问题是:如何在OS X上将SDL与现有的CALayer一起使用?
我已经做了很多研究,并且还浏览了SDL / SDL2论坛:
我似乎很遗憾无法在我的问题中概述的环境中使用SDL。
我最终得到的解决方案是:我基本上决定镜像firebreath提供的名为BasicMediaPlayer的示例:
CAOpenGLLayer
,在其中将OpenGL绘图放置在drawInCGLContext
方法中。 FB::AttachedEvent
:您将收到的插件窗口对象可以转换为FB::PluginWindowMac*
,它使您可以通过getDrawingPrimitive
附加专用的CA层。 对于不熟悉OpenGL以及如何渲染框架的任何人:请看以下关于stackoverflow的问题 ,这应该可以帮助您入门。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.