SDL or Xfree bug?

When I pass a rectangle outside the screen to SDL_UpdateRect(), my program
aborts with the following error message:

X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 129 (MIT-SHM)
Minor opcode of failed request: 3 (X_ShmPutImage)
Value in failed request: 0x14
Serial number of failed request: 436
Current serial number in output stream: 437

I’m using SDL 1.1.3 and XFree86 3.3.3.

Daniel

When I pass a rectangle outside the screen to SDL_UpdateRect(), my program
aborts with the following error message:

X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 129 (MIT-SHM)
Minor opcode of failed request: 3 (X_ShmPutImage)
Value in failed request: 0x14
Serial number of failed request: 436
Current serial number in output stream: 437

I’m using SDL 1.1.3 and XFree86 3.3.3.

This is a known issue. Basically its up to the application to "clip"
rectangles for UpdateRect as they are basically passed directly to X.
Supposedly this is for speed reasons.

I am not positive but I think it only barfs when the rect is fully off
screen.

At the very least this needs to be documented, but IMO this should be
fixed.

Take it easy,
XarkOn Sun, 11 Jun 2000, Daniel Heck wrote:

X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 129 (MIT-SHM)
Minor opcode of failed request: 3 (X_ShmPutImage)
Value in failed request: 0x14
Serial number of failed request: 436
Current serial number in output stream: 437

wow my same error, but on my program this error
is caused only by SDL_UpdateRects(), SDL_UpdateRect() run
without error

X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 129 (MIT-SHM)
Minor opcode of failed request: 3 (X_ShmPutImage)
Value in failed request: 0x14
Serial number of failed request: 436
Current serial number in output stream: 437

wow my same error, but on my program this error
is caused only by SDL_UpdateRects(), SDL_UpdateRect() run
without error

What was happenning when this error occured? (Forgive me if it was earlier
in the thread… as I’m feeling too lazy to go back and search :wink:

I ask this because this looks the the exact same error I get when I try
placing a surface that extends just beyond the physical screen (for
example, if I have a surface 40 pixels wide and I place it 39 pixels from
the right of the screen.) When I get this error, it is caused when I hit
SDL_UpdateRects() with one of the updating surfaces extended beyond the
edge of the screen.

I’d run back and set up debugging output of your location(s) and width(s)
of your surface(s) to at least eliminate this possibility.On Sun, 11 Jun 2000, luca wrote:


Sam Hart http://www.physics.arizona.edu/~hart/
Web Page Highlights: Video Game History, Black Hole Simulation, & more.
OTHER WEB SITES MAINTAINED BY SAM HART
http://www.geekcomix.com/ - Geekcomix, the Daily Geek Comic Strip Site
http://www.physics.arizona.edu/~hart/gw/ - Ghostworks (Alt./Linux Computing)