Fixed 24bpp videomode
This commit is contained in:
@@ -8,7 +8,7 @@ ln -sf /usr .
|
|||||||
mkdir -p tmp
|
mkdir -p tmp
|
||||||
|
|
||||||
if [ -z "$1" ]; then
|
if [ -z "$1" ]; then
|
||||||
hw/kdrive/sdl/Xsdl :1 -audit 3 -listen inet -listen inet6 -nolisten unix -nopn -exec "x-window-manager & xlogo & xev & xclock -update 1 & xloadimage -onroot -fullscreen background.bmp"
|
hw/kdrive/sdl/Xsdl :1 -audit 3 -screen 640x480x32 -listen inet -listen inet6 -nolisten unix -nopn -exec "x-window-manager & xlogo & xev & xclock -update 1 & xloadimage -onroot -fullscreen background.bmp"
|
||||||
else
|
else
|
||||||
gdb --args hw/kdrive/sdl/Xsdl :1 -exec xlogo
|
gdb --args hw/kdrive/sdl/Xsdl :1 -exec xlogo
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -200,7 +200,9 @@ static Bool sdlScreenInit(KdScreenInfo *screen)
|
|||||||
screen->height = 480;
|
screen->height = 480;
|
||||||
}
|
}
|
||||||
if (!screen->fb.depth)
|
if (!screen->fb.depth)
|
||||||
screen->fb.depth = 16;
|
{
|
||||||
|
screen->fb.depth = SDL_GetVideoInfo()->vfmt->BitsPerPixel;
|
||||||
|
}
|
||||||
printf("Attempting for %dx%d/%dbpp mode\n", screen->width, screen->height, screen->fb.depth);
|
printf("Attempting for %dx%d/%dbpp mode\n", screen->width, screen->height, screen->fb.depth);
|
||||||
driver->screen = SDL_SetVideoMode(screen->width, screen->height, screen->fb.depth, 0);
|
driver->screen = SDL_SetVideoMode(screen->width, screen->height, screen->fb.depth, 0);
|
||||||
if(driver->screen == NULL)
|
if(driver->screen == NULL)
|
||||||
@@ -210,15 +212,15 @@ static Bool sdlScreenInit(KdScreenInfo *screen)
|
|||||||
}
|
}
|
||||||
driver->randr = screen->randr;
|
driver->randr = screen->randr;
|
||||||
screen->driver = driver;
|
screen->driver = driver;
|
||||||
printf("Set %dx%d/%dbpp mode\n", driver->screen->w, driver->screen->h, driver->screen->format->BitsPerPixel);
|
|
||||||
screen->width = driver->screen->w;
|
screen->width = driver->screen->w;
|
||||||
screen->height = driver->screen->h;
|
screen->height = driver->screen->h;
|
||||||
screen->fb.depth = driver->screen->format->BitsPerPixel;
|
screen->fb.depth = driver->screen->format->BitsPerPixel == 24 ? 32 : driver->screen->format->BitsPerPixel;
|
||||||
|
screen->fb.bitsPerPixel = driver->screen->format->BitsPerPixel;
|
||||||
|
printf("Set %dx%d/%dbpp mode\n", driver->screen->w, driver->screen->h, driver->screen->format->BitsPerPixel);
|
||||||
screen->fb.visuals = (1<<TrueColor);
|
screen->fb.visuals = (1<<TrueColor);
|
||||||
screen->fb.redMask = driver->screen->format->Rmask;
|
screen->fb.redMask = driver->screen->format->Rmask;
|
||||||
screen->fb.greenMask = driver->screen->format->Gmask;
|
screen->fb.greenMask = driver->screen->format->Gmask;
|
||||||
screen->fb.blueMask = driver->screen->format->Bmask;
|
screen->fb.blueMask = driver->screen->format->Bmask;
|
||||||
screen->fb.bitsPerPixel = driver->screen->format->BitsPerPixel;
|
|
||||||
//screen->fb.shadow = FALSE;
|
//screen->fb.shadow = FALSE;
|
||||||
screen->rate=30; // 60 is too intense for CPU
|
screen->rate=30; // 60 is too intense for CPU
|
||||||
|
|
||||||
@@ -526,6 +528,8 @@ static Bool sdlFinishInitScreen(ScreenPtr pScreen)
|
|||||||
KdScreenInfo *screen = pScreenPriv->screen;
|
KdScreenInfo *screen = pScreenPriv->screen;
|
||||||
SdlDriver *scrpriv = screen->driver;
|
SdlDriver *scrpriv = screen->driver;
|
||||||
|
|
||||||
|
printf("%s", __func__);
|
||||||
|
|
||||||
if (!shadowSetup (pScreen))
|
if (!shadowSetup (pScreen))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ void sdlPollInput(void)
|
|||||||
while ( SDL_PollEvent(&event) ) {
|
while ( SDL_PollEvent(&event) ) {
|
||||||
switch (event.type) {
|
switch (event.type) {
|
||||||
case SDL_MOUSEMOTION:
|
case SDL_MOUSEMOTION:
|
||||||
//printf("SDL_MOUSEMOTION pressure %d\n", pressure);
|
//printf("SDL_MOUSEMOTION x:y %d:%d buttons %d\n", event.motion.x, event.motion.y, mouseState);
|
||||||
KdEnqueuePointerEvent(sdlPointer, mouseState, event.motion.x, event.motion.y, pressure);
|
KdEnqueuePointerEvent(sdlPointer, mouseState, event.motion.x, event.motion.y, pressure);
|
||||||
setScreenButtons();
|
setScreenButtons();
|
||||||
break;
|
break;
|
||||||
@@ -120,7 +120,7 @@ void sdlPollInput(void)
|
|||||||
break;
|
break;
|
||||||
*/
|
*/
|
||||||
default:
|
default:
|
||||||
buttonState = 1 << (event.button.button - 1);
|
//buttonState = 1 << (event.button.button - 1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
mouseState |= buttonState;
|
mouseState |= buttonState;
|
||||||
@@ -154,7 +154,7 @@ void sdlPollInput(void)
|
|||||||
break;
|
break;
|
||||||
*/
|
*/
|
||||||
default:
|
default:
|
||||||
buttonState = 1 << (event.button.button - 1);
|
//buttonState = 1 << (event.button.button - 1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
mouseState &= ~buttonState;
|
mouseState &= ~buttonState;
|
||||||
@@ -282,8 +282,10 @@ void sdlPollInput(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
//send_unicode (event.key.keysym.unicode);
|
//send_unicode (event.key.keysym.unicode);
|
||||||
|
#ifdef __ANDROID__
|
||||||
KdEnqueueKeyboardEvent (sdlKeyboard, SDL_android_keysym_to_scancode[event.key.keysym.unicode], 0);
|
KdEnqueueKeyboardEvent (sdlKeyboard, SDL_android_keysym_to_scancode[event.key.keysym.unicode], 0);
|
||||||
KdEnqueueKeyboardEvent (sdlKeyboard, SDL_android_keysym_to_scancode[event.key.keysym.unicode], 1);
|
KdEnqueueKeyboardEvent (sdlKeyboard, SDL_android_keysym_to_scancode[event.key.keysym.unicode], 1);
|
||||||
|
#endif
|
||||||
if (unshifted == event.key.keysym.unicode)
|
if (unshifted == event.key.keysym.unicode)
|
||||||
{
|
{
|
||||||
if (shiftState & 0x1)
|
if (shiftState & 0x1)
|
||||||
|
|||||||
Reference in New Issue
Block a user