#ifndef MY_GTK_GL_SCENE_H #define MY_GTK_GL_SCENE_H #include #include #include #include "opencl_mesh_kit.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 { public: MyGTKGLSceneWidget(Glib::RefPtr &glconfig); virtual ~MyGTKGLSceneWidget(); void step(); bool continuous_play; 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); virtual bool on_scroll_event(GdkEventScroll *event); virtual bool on_gtk_idle(); bool do_mouse_logic(GdkEventType type, guint state, guint x, guint y); private: OpenCLMeshKit clKit; struct camera_params { float rx; float ry; float tz; } camera; bool need_recompute; float time; }; #endif /*MY_GTK_GL_SCENE_H*/