bugClanLib - Bugs: bug #4851, SpritePacker goes into an endless...


bug #4851: SpritePacker goes into an endless loop

Submitter:  Ingo Ruhnke <grumbel>
Submitted:  Tue 19 Aug 2003 11:48:01 PM UTC
Category:  clanDisplay Severity:  3 - Normal
Item Group:  Crash Error Status:  None
Privacy:  Public Assigned to:  sphair
Open/Closed:  Open Release:  0.7-CVS
Operating System:  All Planned Release:  0.7.4
* Mandatory Fields

Add a New Comment Rich Markup

Sun 14 Sep 2003 04:26:30 PM UTC, comment #5: 

Managed to duplicate this behaviour. It happens when the surface is exact the same or one less than the max texture size. Will look into this.

Kenneth Gangstoe <sphair>
Group administrator
Sat 13 Sep 2003 12:56:56 AM UTC, comment #4: 

I see some code added for this, could you please check if this bug still applies?

Kenneth Gangstoe <sphair>
Group administrator
Thu 21 Aug 2003 09:53:00 AM UTC, comment #3: 

Note to self: Make sure sprite packer dont pack single frames. Also textures at edges dont need extra width.

Kenneth Gangstoe <sphair>
Group administrator
Wed 20 Aug 2003 11:32:17 AM UTC, comment #2: 

Could you add the offending sprite to the resources in the sprite Test in clanlib?

Wed 20 Aug 2003 08:04:28 AM UTC, comment #1: 

I'll look into it next week. It should first of all use the max-texture-size from OpenGL, and not a fixed 1024 :)

Kenneth Gangstoe <sphair>
Group administrator
Tue 19 Aug 2003 11:48:01 PM UTC, original submission:  

The SpritePacker gets stuck in an endless loop in Advent at line sprite_packer.cpp:125, backtrace follows below. This might be because Advent uses very large sprites, larger than what the gfx card can support (2048x600 or something like that)

(gdb) where
#0  0x4038cb53 in _List_iterator (this=0xbfffe1f0, __x=0x81ae800)
    at /usr/include/c++/3.2/bits/stl_list.h:127
#1  0x4038c648 in std::list<std::pair<int, CL_Rect>, std::allocator<std::pair<int, CL_Rect> > >::end() (this=0x8241588)
    at /usr/include/c++/3.2/bits/stl_list.h:373
#2  0x4038c185 in CL_SpritePacker::pack(int, int, int, int, int) (
    this=0xbfffe3e0, max_width=1024, max_height=1024, min_width=16,
    min_height=16, max_textures=-1) at sprite_packer.cpp:125
#3  0x40390684 in CL_Sprite (this=0xbfffe4b0, spritedescription=@0xbfffe4a0,
    pack_texture=true) at sprite.cpp:64
#4  0x402d9393 in SurfaceSprite (this=0x8241018, arg_filename=
        {static npos = 4294967295, _M_dataplus = {<allocator<char>> = {<No data fields>}, _M_p = 0x81ae76c "images/park.jpg"}, static _S_empty_rep_storage = {0, 0, 2, 0}}) at SurfaceSprite.cxx:57
#5  0x402da363 in SurfaceSprite::scm_surface_sprite_create(scm_unused_struct*)
    (name=0x4351eb88) at SurfaceSprite.cxx:186

Ingo Ruhnke <grumbel>
Group administrator


(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:

No files currently attached


Depends on the following items: None found

Items that depend on this one: None found


CC list is empty


There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

Only logged-in users can vote.


Follow 3 latest changes.

Date Changed by Updated Field Previous Value => Replaced by
2003-09-11 grumbel Planned ReleaseNone None
2003-08-21 sphair Operating SystemGNU/Linux None
2003-08-20 sphair Assigned toNone None

Back to the top

Powered by Savane 3.13-758e.
Corresponding source code