c – 使用Gtk的OpenGL,尽管背景被清除,但仍未绘制形状
发布时间:2020-12-16 07:15:39 所属栏目:百科 来源:网络整理
导读:我想让OpenGL与gtk一起工作.它似乎是工作尺寸我能够清除背景颜色.然而,当我去绘画时,它不存在.我错过了什么.我把眼睛放在10,10,我正在看原点.我应该在原点附近看到一个后三角形. #include gtk/gtk.h#include GL/gl.h#include GL/glu.h#include iostreamGtkWi
我想让OpenGL与gtk一起工作.它似乎是工作尺寸我能够清除背景颜色.然而,当我去绘画时,它不存在.我错过了什么.我把眼睛放在10,10,我正在看原点.我应该在原点附近看到一个后三角形.
#include <gtk/gtk.h> #include <GL/gl.h> #include <GL/glu.h> #include <iostream> GtkWidget* wnd; GtkWidget* glarea; static gboolean render(GtkGLArea *area,GdkGLContext *context) { int w = gtk_widget_get_allocated_width(GTK_WIDGET(area)); int h = gtk_widget_get_allocated_height(GTK_WIDGET(area)); glViewport(0,w,h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(180,(double)w / (double)h,0.1,100.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(10,1,0); glClearColor(1,0); glClear(GL_COLOR_BUFFER_BIT); glColor3f(0,0); glBegin(GL_TRIANGLES); glVertex3f(0,0); glVertex3f(-1,2,-1); glVertex3f(1,3,2); glEnd(); return TRUE; } int main(int argc,char *argv[]) { gtk_init(&argc,&argv); wnd = gtk_window_new(GTK_WINDOW_TOPLEVEL); glarea = gtk_gl_area_new(); gtk_container_add(GTK_CONTAINER(wnd),glarea); g_signal_connect(wnd,"destroy",gtk_main_quit,0); g_signal_connect(glarea,"render",G_CALLBACK(render),NULL); gtk_widget_show_all(wnd); gtk_main(); return 0; } 解决方法
资料来源:
Emanuele Bassi’s blog – GTK+ developer
解决方案:删除固定功能管道. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |