开发者

about fast swapping texture on IOS opengl ES

开发者 https://www.devze.com 2023-02-06 17:35 出处:网络
i\'m work on a buffer for load very large pictures ( screen size)to single surface. The idea is to animate a lot of pictures ( more than the video memory can store ) frame by frame.

i'm work on a buffer for load very large pictures ( screen size) to single surface. The idea is to animate a lot of pictures ( more than the video memory can store ) frame by frame.

I have create a code for make a buffer but i have a big problem with the loading time of bitmap.

开发者_如何学C

My code work a this :

  1. I load an array of local bitmap files path.

  2. I (think ) i preload my bitmap datas in memory. I'm using a thread for store a CGImageRef in an NSArray for all my picture ( 40 for moment )

  3. In a second thread, the code look another NSArray for determine if is empty of not, if is empty, i bind my cgimageRef to the video memory by creating textures. ( use sharedgroup for this) This array store the adress of 20 textures names, and it's use directly by openGL for draw the surface. this array is my (buffer)

When i play my animation, i delete old textures from my "buffer" and my thread ( at point 3) load a new texture.

It's work great, but is really slow, and after few second, the animation lack.

Can you help me for optimise my code ?


Depending on device and iOS version glTexImage is just slow. With iOS 4 performance was improved so that you can expect decent speed on 2nd gen devices too, and with decent I mean one or two texture uploads per frame... Anyway: Use glTexSubImage and reuse already created texture-IDs. Also, when using glTex(Sub)Image, try to use a texture-ID that wasn't used for rendering in that frame. I mean: add some kind of texture-ID-doublebuffering. I asume you do all your GL stuff in the same thread, if not change it.

0

精彩评论

暂无评论...
验证码 换一张
取 消