diff options
Diffstat (limited to 'src/my_gtk_gl_scene_widget.hpp')
-rw-r--r-- | src/my_gtk_gl_scene_widget.hpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/my_gtk_gl_scene_widget.hpp b/src/my_gtk_gl_scene_widget.hpp new file mode 100644 index 0000000..212f346 --- /dev/null +++ b/src/my_gtk_gl_scene_widget.hpp @@ -0,0 +1,29 @@ +#ifndef MY_GTK_GL_SCENE_H +#define MY_GTK_GL_SCENE_H + +#include "gtk_includes.hpp" + +// Class that will contain all the OpenGL logic for displaying the OpenCL computed data +// Implementation is kept in gpudataviz.cc (I want to keep interesting code part in this file) + +class MyGTKGLSceneWidget : public Gtk::DrawingArea, public Gtk::GL::Widget<MyGTKGLSceneWidget> +{ + public: + MyGTKGLSceneWidget(Glib::RefPtr<Gdk::GL::Config> &glconfig); + virtual ~MyGTKGLSceneWidget(); + + protected: + virtual void on_size_request(Gtk::Requisition* requisition); + virtual void on_realize(); + virtual bool on_configure_event(GdkEventConfigure* event); + virtual bool on_expose_event(GdkEventExpose* event); + virtual bool on_motion_notify_event (GdkEventMotion *event); + virtual bool on_button_press_event(GdkEventButton *event); + virtual bool on_button_release_event(GdkEventButton *event); + + bool do_mouse_logic(GdkEventType type, guint state, guint x, guint y); + private: + struct camera_params { float rx; float ry; float tz; } camera; +}; + +#endif /*MY_GTK_GL_SCENE_H*/ |