Hi, I fix some bugs in Wormux.
1) Dig a hole I re-used old code from Wormux 0.4. The ground is now splitted in small cells (256x256 pixels) : that's really better for GPU. I optimized lock()/unlock() functions. Finally I play with 50-60 fps with no more troubles. I make a big cleanup of the code : CL_Canvas is not more used, and I use a class instead of a lot of variables for each item. I also remove refresh() function, because surface upload is managed very differently in new code. 2) Pause I remove disconnecting signal when we want to ask a question in game.cpp. Now, it works well on my computer (pause function). 3) And ? Something before 0.5 ? Yes : we should also cut the sky into small parts (re-use code from ground) because 1600x1200 texture is too big for GPU. --- <for your information> Be careful of surface & pixel buffer : in ClanLib 0.6, each surface were stored it's own memory block. Now (with OpenGL), surfarces are stored in the video card memory. The video card only accept size like 2, 4, 8, ..., 2^n (but width and height can be different). ClanLib also "pack" two or more surfaces in the same texture (e.g. for sprite). So, CL_Surface::get_width() is not equal to CL_PixelBuffer:get_width() !!! (this was a bug in my old "clipping.cpp" code (new "tile.cpp")). CL_Sprite::get_frame_surface() doesn't return the surface, but the GPU texture. </for your information> Bye, Haypo