iOS 全屏动画与 opengl es

发布于 2025-01-02 18:43:11 字数 381 浏览 2 评论 0原文

抱歉我的英语不好。

我在内存中创建了一个iPad全屏大小1024 * 768 * 4字节的位图缓冲区作为离屏缓冲区,以及2个线程,其中一个线程更新缓冲区并在其他线程上调用performSelector setNeedsDisplay,另一个线程在其上绘制整个缓冲区屏幕在每个drawRect循环中。

但这种方式太慢了。所以我想通过将其更改为 OpenGL ES 2.0 实现来提高性能。

我的想法是创建一个全屏纹理,使用 CADisplayLink 每 1/60 秒触发一个 DrawView 选择器,通过内存缓冲区更新纹理并在屏幕上绘制纹理。但我是 opengl-es 的新手,我知道如何初始化一个简单的 EAGLLayer,从数据创建纹理,但我不知道如何在视图上绘制纹理,有人可以提供一个示例吗?

Sorry for my poor English.

I created a iPad full-screen size 1024*768*4 bytes bitmap buffer in memory as off-screen buffer, and 2 threads, one of them update the buffer and call performSelector setNeedsDisplay on other thread, the another thread paint the whole buffer on screen in each drawRect cycle.

but this way is too slow. so I want improve the performance by changing it to the OpenGL ES 2.0 implementation.

My thought is to create a fullscreen texture, use CADisplayLink to fire a drawView selector every 1/60 second to update the texture by memory buffer and draw the texture on the screen. but i am new to opengl-es, I know how to initialize a simple EAGLLayer, create a texture from data, but I dont know how to draw the texture on the view, could any one give a sample?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

花期渐远 2025-01-09 18:43:11

OpenGL ES 2.0 对于仅渲染纹理来说太过分了。 OpenGL ES 1.1 就足够了。使用着色器并不意味着它会更快。要创建全屏纹理,请使用坐标从 -1.0 到 1.0 的两个三角形并应用纹理。

OpenGL ES 2.0 is too much for just rendering the texture. OpenGL ES 1.1 is enough. Using shaders doesn't mean that it would be faster. To create full screen texture use two triangles with coords from -1.0 to 1.0 and apply texture.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文