Core animation 如何使用SDL2在Mac OS X上使用Core动画在FireBreath中进行渲染

Core animation 如何使用SDL2在Mac OS X上使用Core动画在FireBreath中进行渲染,core-animation,sdl,sdl-2,firebreath,browser-plugin,Core Animation,Sdl,Sdl 2,Firebreath,Browser Plugin,我正在尝试使用Core Animation/Cocoa在运行Safari 6.2的OS X 10.8.5上的浏览器插件中实现以下组合: 火焰呼吸+SDL2 我已经研究了FB提供的BasicMediaLayer示例,并了解我可以通过FB::PluginWindowMac::getDrawingPrimitive访问CALayer 我想要完成的是使用SDL/SDL2来执行渲染 在Windows上,这相对容易,因为FB plugin window FB::PluginWindowWin提供了一个HWN

我正在尝试使用Core Animation/Cocoa在运行Safari 6.2的OS X 10.8.5上的浏览器插件中实现以下组合:

火焰呼吸+SDL2

我已经研究了FB提供的BasicMediaLayer示例,并了解我可以通过FB::PluginWindowMac::getDrawingPrimitive访问CALayer

我想要完成的是使用SDL/SDL2来执行渲染

在Windows上,这相对容易,因为FB plugin window FB::PluginWindowWin提供了一个HWND,它可以从API传递给SDL_CreateWindow,然后是SDL_CreateRenderer和SDL_CreateTexture来执行渲染。根据我所学,void*将对应于Mac上的NSWindow*,根据我读过的其他帖子,我知道我在插件中无法访问它


因此,问题是:如何将SDL与OS X上现有的CALayer一起使用?

我做了大量研究,还浏览了SDL/SDL2论坛:

很遗憾,在我的问题中概述的环境中不可能使用SDL

我最终的解决方案是:我基本上决定镜像firebreath提供的名为BasicMediaPlayer的示例:

基本上,您必须专门化CAOpenGLLayer,将OpenGL图形放在drawInCGLContext方法中。 收听FB::AttachedEvent:您将收到的插件窗口对象可以强制转换为FB::PluginWindowMac*,它允许您通过getDrawingPrimitive连接专用CA层。
对于任何不熟悉OpenGL以及如何渲染帧的人:请看下面有关stackoverflow的内容,这应该会让您开始学习。

我怀疑是否有人知道,但祝您好运=]不过我很感谢您看一下。您会建议使用OpenGL并以这种方式处理渲染吗?我基本上只是尝试渲染YUV420P帧,在其他平台上,除了OSX,我可以将其提供给SDL渲染器。