QEMUGLContext gd_gl_area_create_context(DisplayChangeListener *dcl, QEMUGLParams *params) { VirtualConsole *vc = container_of(dcl, VirtualConsole, gfx.dcl); GdkWindow *window; GdkGLContext *ctx; GError *err = NULL; gtk_gl_area_make_current(GTK_GL_AREA(vc->gfx.drawing_area)); window = gtk_widget_get_window(vc->gfx.drawing_area); ctx = gdk_window_create_gl_context(window, &err); gdk_gl_context_set_required_version(ctx, params->major_ver, params->minor_ver); gdk_gl_context_realize(ctx, &err); return ctx; }
static GdkGLContext * create_context(GtkGLArea *area) { GdkWindow *window = gtk_widget_get_window(GTK_WIDGET(area)); GError *error = NULL; GdkGLContext *context = gdk_window_create_gl_context(window, &error); if (error) { fprintf(stderr, "%s\n", error->message); g_error_free(error); return NULL; } gdk_gl_context_set_debug_enabled(context, TRUE); gdk_gl_context_set_forward_compatible(context, TRUE); gdk_gl_context_set_required_version(context, 3, 3); return context; }