Skip to content

Commit

Permalink
Added photon fixes submitted by Luca Barbato
Browse files Browse the repository at this point in the history
  • Loading branch information
slouken committed Oct 8, 2001
1 parent 8a8f8f0 commit 2e038f4
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 11 deletions.
33 changes: 28 additions & 5 deletions src/video/photon/SDL_ph_modes.c
Expand Up @@ -205,7 +205,7 @@ SDL_Rect **ph_ListModes(_THIS, SDL_PixelFormat *format, Uint32 flags)

void ph_FreeVideoModes(_THIS)
{
int i;
// int i;

// if ( SDL_modelist ) {
// for ( i=0; SDL_modelist[i]; ++i ) {
Expand All @@ -222,9 +222,10 @@ static void set_best_resolution(_THIS, int width, int height)
if ( use_vidmode ) {
PgDisplaySettings_t settings;
PgVideoModeInfo_t current_mode_info;
PgHWCaps_t my_hwcaps;
unsigned short current_bpp;
int i;

/*
if (PgGetVideoMode( &settings ) < 0)
{
fprintf(stderr,"error: PgGetVideoMode failed\n");
Expand All @@ -235,6 +236,17 @@ static void set_best_resolution(_THIS, int width, int height)
fprintf(stderr,"error: PgGetVideoModeInfo failed\n");
return;
}
*/
//lu_zero
if (PgGetGraphicsHWCaps(&my_hwcaps) < 0)
{
fprintf(stderr,"set_best_resolution: GetGraphicsHWCaps failed!! \n");
//that HAVE to work
}
if (PgGetVideoModeInfo(my_hwcaps.current_video_mode, &current_mode_info) < 0)
{
fprintf(stderr,"set_best_resolution: PgGetVideoModeInfo failed\n");
}
current_bpp = current_mode_info.bits_per_pixel;

if (PgGetVideoModeList(&mode_list) >= 0)
Expand Down Expand Up @@ -279,14 +291,25 @@ static void get_real_resolution(_THIS, int* w, int* h)
{

if ( use_vidmode ) {
PgDisplaySettings_t settings;
//PgDisplaySettings_t settings;
PgVideoModeInfo_t current_mode_info;
PgHWCaps_t my_hwcaps;
int unused;

/*
if (PgGetVideoMode( &settings ) >= 0) {
*w = settings.xres;
*h = settings.yres;
return;
}
}*/
if (PgGetGraphicsHWCaps(&my_hwcaps) >= 0)
{
if (PgGetVideoModeInfo(my_hwcaps.current_video_mode, &current_mode_info) < 0)
{
fprintf(stderr,"get_real_resolution: PgGetVideoModeInfo failed\n");
}
*w = current_mode_info.width;
*h = current_mode_info.height;
}
}
// *w = DisplayWidth(SDL_Display, SDL_Screen);
// *h = DisplayHeight(SDL_Display, SDL_Screen);
Expand Down
27 changes: 21 additions & 6 deletions src/video/photon/SDL_ph_video.c
Expand Up @@ -154,6 +154,7 @@ static int ph_VideoInit(_THIS, SDL_PixelFormat *vformat)
int rtnval;
PgDisplaySettings_t mysettings;
PgVideoModeInfo_t my_mode_info;
PgHWCaps_t my_hwcaps;

if( NULL == ( event = malloc( EVENT_SIZE ) ) )
exit( EXIT_FAILURE );
Expand Down Expand Up @@ -207,13 +208,19 @@ static int ph_VideoInit(_THIS, SDL_PixelFormat *vformat)
if(SDL_BlankCursor == NULL)
printf("could not create blank cursor\n");
/* Get the video mode */
/*
if (PgGetVideoMode( &mysettings ) < 0)
{
fprintf(stderr,"ph_VideoInit: PgGetVideoMode failed\n");
fprintf(stderr,"ph_VideoInit: PgGetVideoMode failed patch A?? \n");
//QNX6/Patch A always fails return code even though call succeeds. fixed Patch B
}

if (PgGetVideoModeInfo(mysettings.mode, &my_mode_info) < 0)
*/
if (PgGetGraphicsHWCaps(&my_hwcaps) < 0)
{
fprintf(stderr,"ph_VideoInit: GetGraphicsHWCaps failed!! \n");
//that HAVE to work
}
if (PgGetVideoModeInfo(my_hwcaps.current_video_mode, &my_mode_info) < 0)
{
fprintf(stderr,"ph_VideoInit: PgGetVideoModeInfo failed\n");
}
Expand Down Expand Up @@ -258,6 +265,7 @@ static SDL_Surface *ph_SetVideoMode(_THIS, SDL_Surface *current,
{
PhRegion_t region_info;
PgDisplaySettings_t settings;
PgHWCaps_t my_hwcaps;
PgVideoModeInfo_t mode_info;
int mode, actual_width, actual_height;
PtArg_t arg[5];
Expand Down Expand Up @@ -295,15 +303,22 @@ static SDL_Surface *ph_SetVideoMode(_THIS, SDL_Surface *current,
/* Get the video mode and set it */
if (bpp == 0)
{
/*again same issue, same solution
if (PgGetVideoMode( &settings ) < 0)
{
fprintf(stderr,"error: PgGetVideoMode failed\n");
}
if (PgGetVideoModeInfo(settings.mode, &mode_info) < 0)
*/
if (PgGetGraphicsHWCaps(&my_hwcaps) < 0)
{
fprintf(stderr,"ph_SetVideoMode: GetGraphicsHWCaps failed!! \n");
//that HAVE to work
}
if (PgGetVideoModeInfo(my_hwcaps.current_video_mode, &mode_info) < 0)
{
fprintf(stderr,"error: PgGetVideoModeInfo failed\n");
fprintf(stderr,"ph_SetVideoMode: PgGetVideoModeInfo failed\n");
}
bpp = mode_info.bits_per_pixel;
bpp = mode_info.bits_per_pixel;
}
if (flags & SDL_ANYFORMAT)
{
Expand Down

0 comments on commit 2e038f4

Please sign in to comment.