Re: [GtkGLExt] gtkglextmm + glade 3 + gtkbuilder...something must be missing on my code
- From: Cristobal Navarro <axischire gmail com>
- To: gtkglext <gtkglext-list gnome org>
- Subject: Re: [GtkGLExt] gtkglextmm + glade 3 + gtkbuilder...something must be missing on my code
- Date: Sat, 8 May 2010 22:36:05 -0400
Update:
i managed to fix my problem.
in my GLWindow class, on the constructor.
i was missing the call of the parent constructor, so now it is like this.
GLWindow::GLWindow(BaseObjectType* baseObject, Glib::RefPtr<Gtk::Builder>& refBuilder):Gtk::DrawingArea(baseObject)
after that, it works ok.
thanks anyways.
Cristobal
On Sat, May 8, 2010 at 8:21 PM, Cristobal Navarro
<axischire gmail com> wrote:
hello,
i am having trouble with linking my OpenGL Scene with a Drawing area coming from glade3.
im using gtkbuilder to read the GUI from c++ code.
it is working for buttons and related events, but not for the inherited events that my GLWindow class implements.
this is my GLWindow class
------------------CODE--START
//
// OpenGL scene.
//
class GLWindow : public Gtk::DrawingArea, public Gtk::GL::Widget<GLWindow>{
public:
GLWindow(BaseObjectType* baseObject, Glib::RefPtr<Gtk::Builder>& refBuilder);
virtual ~GLWindow();
bool draw();
protected:
virtual void on_realize();
virtual bool on_configure_event(GdkEventConfigure* event);
virtual bool on_expose_event(GdkEventExpose* event);
};
//draw method, custom
bool GLWindow::draw(){
// force our program to redraw the entire clock.
Glib::RefPtr<Gdk::Window> win = get_window();
if (win){
Gdk::Rectangle r(0, 0, get_allocation().get_width(),
get_allocation().get_height());
win->invalidate_rect(r, false);
}
return true;
}
---------------------CODE--END
the other three virtual methods are the default implemented ones that come in the examples (simple.cc)
next, my mainWindow class, where i setup opengl this way.
--------------------CODE--START
void Application::init(Glib::RefPtr<Gtk::Builder> refBuilder){
//Get the GtkBuilder-instantiated Button, and connect a signal handler:
quitButton = 0;
refBuilder->get_widget("buttonExit", quitButton);
if(quitButton){
quitButton->signal_clicked().connect( sigc::mem_fun(*this, &Application::on_button_quit_clicked) );
}
refBuilder->get_widget_derived("glWindow", myGL );
if(myGL){
printf("GL Initialized\n");
}
myGL->draw();
}
--------------------CODE--END
when i run the program, the drawing window remains gray, nothing is drawn....
what am i doing wrong??
if you need the whole source code for testing i can upload it
any help is welcome
Cristobal
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]