Fixed bug #616
rainer canavan 2009-03-29 12:30:12 PDT add default visual to this->hidden->visuals X11_SetIcon appears to have problems getting the correct bpp for the default visual of my screen. With larger icons, this causes a segfault somewhere in libX11. Instead of adding the default visual to the internal list, I can work around this problem (both the segfault and the distortion) by setting bpp to 32 before sicon = SDL_CreateRGBSurface(...) in X11_SetIcon, although with this patch, it stays at 24. --HG-- branch : SDL-1.2 extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%403925
This commit is contained in:
parent
f0e159b32a
commit
0bb1a6126e
1 changed files with 13 additions and 0 deletions
|
@ -338,6 +338,18 @@ static void move_cursor_to(_THIS, int x, int y)
|
|||
XWarpPointer(SDL_Display, None, SDL_Root, 0, 0, 0, 0, x, y);
|
||||
}
|
||||
|
||||
static int add_default_visual(_THIS)
|
||||
{
|
||||
int i;
|
||||
int n = this->hidden->nvisuals;
|
||||
for (i=0; i<n; i++) {
|
||||
if (this->hidden->visuals[i].visual == DefaultVisual(SDL_Display, SDL_Screen)) return n;
|
||||
}
|
||||
this->hidden->visuals[n].depth = DefaultDepth(SDL_Display, SDL_Screen);;
|
||||
this->hidden->visuals[n].visual = DefaultVisual(SDL_Display, SDL_Screen);;
|
||||
this->hidden->nvisuals++;
|
||||
return(this->hidden->nvisuals);
|
||||
}
|
||||
static int add_visual(_THIS, int depth, int class)
|
||||
{
|
||||
XVisualInfo vi;
|
||||
|
@ -801,6 +813,7 @@ int X11_GetVideoModes(_THIS)
|
|||
add_visual(this, depth_list[i], StaticColor);
|
||||
}
|
||||
}
|
||||
add_default_visual(this);
|
||||
}
|
||||
if ( this->hidden->nvisuals == 0 ) {
|
||||
SDL_SetError("Found no sufficiently capable X11 visuals");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue