void GLArea::glarea_on_realize() { on_gl_realize(); gchar* info = gdk_gl_get_info(); g_free(info); }
int main(int argc, char *argv[]) { GtkWidget *window, *box, *glarea; gtk_init (&argc, &argv); EGLX_main(1); if (gdk_gl_query() == FALSE) { g_print ("GL not supported !\n"); return 0; } gchar *info_str; info_str = gdk_gl_get_info(); g_print (info_str); g_free (info_str); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW(window), "Simple Wayland-EGL"); gtk_container_set_border_width (GTK_CONTAINER(window), 10); borderw = gtk_container_get_border_width (GTK_CONTAINER(window)); titlebarw = 30; /* HOW DO WE OBTAIN THAT ? */ int attrs[] = { GDK_GL_RGBA, GDK_GL_RED_SIZE,1, GDK_GL_GREEN_SIZE,1, GDK_GL_BLUE_SIZE,1, GDK_GL_DOUBLEBUFFER, GDK_GL_NONE }; guint myborder = gtk_container_get_border_width (GTK_CONTAINER(window)); glarea = GTK_WIDGET(gtk_gl_area_new(attrs)); gtk_widget_set_size_request (GTK_WIDGET(glarea), 320,240); g_signal_connect (GTK_WIDGET(window), "destroy", G_CALLBACK(gtk_main_quit), NULL); g_signal_connect (GTK_WIDGET(glarea), "draw", G_CALLBACK(draw), NULL); g_signal_connect (GTK_WIDGET(glarea), "realize", G_CALLBACK(init), NULL); g_signal_connect (GTK_WIDGET(window), "draw", G_CALLBACK(resize), NULL); box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_container_add (GTK_CONTAINER(box), GTK_WIDGET(glarea)); gtk_container_add (GTK_CONTAINER(window), GTK_WIDGET(box)); gtk_widget_show (window); gtk_widget_show (glarea); gtk_widget_show (box); gtk_main(); return 0; }