我正在创建一个视频播放器应用程序,我想知道什么是处理媒体更改操作的优化方法。调整OpenGL PBO的大小或重新创建OGL上下文
现在我使用2xPBO作为这里的解释:OpenGL Pixel Buffer Object(非常棒的网站顺便说一下)和一些纹理。为了保持完美的色彩和外观,我需要我的PBO和纹理与我的视频剪辑大小相同。 (在Shadder阶段调整大小只进行一次)。
所以基本上,如果实际的媒体像是1920x1080,但播放列表中的下一个是1280x720,我应该怎么做?我现在正在想2个解决方案:
- 在飞行
- 调整大小公益组织和纹理重塑一切,我的整个OpenGLPreviewWidget
我知道解决方法1是包括在溶液中2,但应我重新创建一个openGL上下文,窗口等,或者,因为它太慢,只是调整大小会做到这一点?
创建一个全新的语境意味着很多关于司机的工作,说你有一个在虚拟机上运行,如C#或Java语言这将是重新分配一个int []缓冲区VS破坏VM实例之间的差异并用你想要的缓冲区创建一个新的。重新创建一个纹理是驱动程序,它的一些验证,内存分配和GPU转移要容易得多。 – TheStack 2015-02-24 11:31:24