mirror of https://github.com/snes9xgit/snes9x.git
Better driver failure behavior.
This commit is contained in:
parent
34268314c4
commit
02ce1fcb35
|
@ -1708,7 +1708,6 @@ S9xInitDriver (void)
|
||||||
{
|
{
|
||||||
if (gui_config->hw_accel > 0)
|
if (gui_config->hw_accel > 0)
|
||||||
{
|
{
|
||||||
driver->deinit ();
|
|
||||||
delete driver;
|
delete driver;
|
||||||
|
|
||||||
gui_config->hw_accel = HWA_NONE;
|
gui_config->hw_accel = HWA_NONE;
|
||||||
|
|
|
@ -243,15 +243,6 @@ S9xXVDisplayDriver::init (void)
|
||||||
GdkScreen *screen;
|
GdkScreen *screen;
|
||||||
GdkWindow *root;
|
GdkWindow *root;
|
||||||
|
|
||||||
buffer[0] = malloc (image_padded_size);
|
|
||||||
buffer[1] = malloc (scaled_padded_size);
|
|
||||||
|
|
||||||
padded_buffer[0] = (void *) (((uint8 *) buffer[0]) + image_padded_offset);
|
|
||||||
padded_buffer[1] = (void *) (((uint8 *) buffer[1]) + scaled_padded_offset);
|
|
||||||
|
|
||||||
memset (buffer[0], 0, image_padded_size);
|
|
||||||
memset (buffer[1], 0, scaled_padded_size);
|
|
||||||
|
|
||||||
/* Setup XV */
|
/* Setup XV */
|
||||||
gtk_widget_realize (drawing_area);
|
gtk_widget_realize (drawing_area);
|
||||||
|
|
||||||
|
@ -310,7 +301,7 @@ S9xXVDisplayDriver::init (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Try to find an RGB format */
|
/* Try to find an RGB format */
|
||||||
format = FOURCC_YUY2;
|
format = -1;
|
||||||
bpp = 100;
|
bpp = 100;
|
||||||
|
|
||||||
formats = XvListImageFormats (display,
|
formats = XvListImageFormats (display,
|
||||||
|
@ -350,12 +341,13 @@ S9xXVDisplayDriver::init (void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (format == FOURCC_YUY2)
|
if (format == -1)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < num_formats; i++)
|
for (int i = 0; i < num_formats; i++)
|
||||||
{
|
{
|
||||||
if (formats[i].id == FOURCC_YUY2)
|
if (formats[i].id == FOURCC_YUY2)
|
||||||
{
|
{
|
||||||
|
format = formats[i].id;
|
||||||
depth = formats[i].depth;
|
depth = formats[i].depth;
|
||||||
|
|
||||||
if (formats[i].byte_order == LSBFirst)
|
if (formats[i].byte_order == LSBFirst)
|
||||||
|
@ -380,6 +372,9 @@ S9xXVDisplayDriver::init (void)
|
||||||
|
|
||||||
free (formats);
|
free (formats);
|
||||||
|
|
||||||
|
if (format == -1)
|
||||||
|
return -1;
|
||||||
|
|
||||||
/* Build a table for yuv conversion */
|
/* Build a table for yuv conversion */
|
||||||
if (format == FOURCC_YUY2)
|
if (format == FOURCC_YUY2)
|
||||||
{
|
{
|
||||||
|
@ -459,6 +454,15 @@ S9xXVDisplayDriver::init (void)
|
||||||
desired_width = scaled_max_width;
|
desired_width = scaled_max_width;
|
||||||
desired_height = scaled_max_width;
|
desired_height = scaled_max_width;
|
||||||
|
|
||||||
|
buffer[0] = malloc (image_padded_size);
|
||||||
|
buffer[1] = malloc (scaled_padded_size);
|
||||||
|
|
||||||
|
padded_buffer[0] = (void *) (((uint8 *) buffer[0]) + image_padded_offset);
|
||||||
|
padded_buffer[1] = (void *) (((uint8 *) buffer[1]) + scaled_padded_offset);
|
||||||
|
|
||||||
|
memset (buffer[0], 0, image_padded_size);
|
||||||
|
memset (buffer[1], 0, scaled_padded_size);
|
||||||
|
|
||||||
clear_buffers ();
|
clear_buffers ();
|
||||||
|
|
||||||
/* Give Snes9x core a pointer to draw on */
|
/* Give Snes9x core a pointer to draw on */
|
||||||
|
|
Loading…
Reference in New Issue