summaryrefslogtreecommitdiff
path: root/src/my_gtk_gl_scene_widget.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/my_gtk_gl_scene_widget.hpp')
-rw-r--r--src/my_gtk_gl_scene_widget.hpp29
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*/