revision 552:02ddb55a507b
summary |
tree |
shortlog |
changelog |
graph |
changeset |
raw | bz2 | zip | gz changeset | 552:02ddb55a507b |
parent | 551:07125ce718da |
child | 553:4e6166258c22 |
author | nkeynes |
date | Wed Dec 19 00:47:13 2007 +0000 (15 years ago) |
Fix video_gtk_init() not returning a failing status if the glx init failed
Add a gtk-based blank method to prevent crash on expose
Add a gtk-based blank method to prevent crash on expose
1.1 --- a/src/drivers/video_gtk.c Mon Dec 10 05:32:21 2007 +00001.2 +++ b/src/drivers/video_gtk.c Wed Dec 19 00:47:13 2007 +00001.3 @@ -32,11 +32,13 @@1.5 gboolean video_gtk_init();1.6 void video_gtk_shutdown();1.7 +gboolean video_gtk_display_blank( uint32_t colour );1.8 uint16_t video_gtk_resolve_keysym( const gchar *keysym );1.10 struct display_driver display_gtk_driver = { "gtk", video_gtk_init, video_gtk_shutdown,1.11 video_gtk_resolve_keysym,1.12 - NULL, NULL, NULL, NULL, NULL, NULL, NULL };1.13 + NULL, NULL, NULL, NULL, NULL,1.14 + video_gtk_display_blank, NULL };1.16 /**1.17 * Extract the keyval of the key event if no modifier keys were pressed -1.18 @@ -121,8 +123,24 @@1.19 video_height = video_win->allocation.height;1.20 Display *display = gdk_x11_display_get_xdisplay( gtk_widget_get_display(GTK_WIDGET(video_win)));1.21 Window window = GDK_WINDOW_XWINDOW( GTK_WIDGET(video_win)->window );1.22 - video_glx_init_context( display, window );1.23 - video_glx_init_driver( &display_gtk_driver );1.24 + if( ! video_glx_init_context( display, window ) ||1.25 + ! video_glx_init_driver( &display_gtk_driver ) ) {1.26 + return FALSE;1.27 + }1.28 + return TRUE;1.29 +}1.30 +1.31 +gboolean video_gtk_display_blank( uint32_t colour )1.32 +{1.33 + GdkGC *gc = gdk_gc_new(video_win->window);1.34 + GdkColor color = {0, ((colour>>16)&0xFF)*257, ((colour>>8)&0xFF)*257, ((colour)&0xFF)*257 };1.35 + GdkColormap *cmap = gdk_colormap_get_system();1.36 + gdk_colormap_alloc_color( cmap, &color, TRUE, TRUE );1.37 + gdk_gc_set_foreground( gc, &color );1.38 + gdk_gc_set_background( gc, &color );1.39 + gdk_draw_rectangle( video_win->window, gc, TRUE, 0, 0, video_width, video_height );1.40 + gdk_gc_destroy(gc);1.41 + gdk_colormap_free_colors( cmap, &color, 1 );1.42 }1.44 void video_gtk_shutdown()
.