예제 #1
0
GtkWidget* WINAPI gtk_glwidget_new( gboolean zbuffer, GtkWidget* share ){
	GtkWidget* drawing_area = gtk_drawing_area_new();
	GdkGLConfig* glconfig = ( zbuffer ) ? glconfig_new_with_depth() : glconfig_new();
	GdkGLContext* shared_context = ( share ) ? gtk_widget_get_gl_context( share ) : NULL;

	gtk_widget_set_gl_capability( drawing_area, glconfig, shared_context, TRUE, GDK_GL_RGBA_TYPE );

	return drawing_area;
}
예제 #2
0
파일: glwidget.cpp 프로젝트: Elzair/q3map2
gboolean glwidget_enable_gl( GtkWidget* widget, GtkWidget* widget2, gpointer data ){
	if ( widget2 == 0 && !gtk_widget_is_gl_capable( widget ) ) {
		GdkGLConfig* glconfig = ( g_object_get_data( G_OBJECT( widget ), "zbuffer" ) ) ? glconfig_new_with_depth() : glconfig_new();
		ASSERT_MESSAGE( glconfig != 0, "failed to create OpenGL config" );

		gtk_widget_set_gl_capability( widget, glconfig, g_shared != 0 ? gtk_widget_get_gl_context( g_shared ) : 0,  TRUE, GDK_GL_RGBA_TYPE );

		gtk_widget_realize( widget );
		if ( g_shared == 0 ) {
			g_shared = widget;
		}

		// free glconfig?
	}
	return FALSE;
}