[SDL] glSDL Texture sizes

Bob Pendleton bob at pendleton.com
Mon Nov 10 13:31:01 PST 2003

On Mon, 2003-11-10 at 13:50, Gabriel Gambetta wrote:
> > Another reason why I haven't messed with it is that this code should
> > be redesigned, using a texture space allocator (a 2D memory manager, 
> > basically; able to use a single texture for lots of surfaces and 
> > stuff like that), but that's still a TODO for the backend version.
> What good algorithms exist for that? I have a very similar need,
> although
> not directly related. I've tried using a quadtree and 2D BSP trees but
> the results weren't good (lots of space wasted)

Yeah, this is a variation of the knapsack problem and is fairly hard to
solve. I worked on it once. We found that the problems were caused by
fonts. Lots of little glyphs cause horrible fragmentation. So, we built
a special purpose allocator for fonts. It found the largest glyph and
then tried to tile the font into a single large region or several
smaller regions. Doing that got us past the worst of the fragmentation

We didn't try anything as complex as a bsp tree. We just broke up square
regions into smaller square regions and kept the free squares on a list,
one list for each size. Basically just a variation of the memory
allocators used by malloc() and friends. 

			Bob Pendleton

> Thanks,
> 	--Gabriel
> Lic. Gabriel Gambetta
> ARTech - GeneXus Development Team
> ggambett at artech.com.uy
> _______________________________________________
> SDL mailing list
> SDL at libsdl.org
> http://www.libsdl.org/mailman/listinfo/sdl
+ Bob Pendleton: writer and programmer. +
+ email: Bob at Pendleton.com              +
+ web:   www.GameProgrammer.com         +

More information about the SDL mailing list