Ajout de l'ensemble du workspace.
[GPU.git] / WCudaMSE / API_Bilat_Canvas_JNI / INC / CanvasNative.h
diff --git a/WCudaMSE/API_Bilat_Canvas_JNI/INC/CanvasNative.h b/WCudaMSE/API_Bilat_Canvas_JNI/INC/CanvasNative.h
new file mode 100755 (executable)
index 0000000..725c157
--- /dev/null
@@ -0,0 +1,112 @@
+#ifndef CANVAS_NATIVE_H
+#define CANVAS_NATIVE_H
+#include "envCanvasJNI.h"
+#include "Displayable_A.h"
+#include "Panel_A.h"
+#include "Context.h"
+#include <atomic>
+#include <jni.h>
+
+/*----------------------------------------------------------------------*\
+ |*                    Declaration                                     *|
+ \*---------------------------------------------------------------------*/
+
+/*--------------------------------------*\
+ |*            Public                  *|
+ \*-------------------------------------*/
+
+class CBI_CANVAS_JNI CanvasNative: public Panel_A
+    {
+       /*--------------------------------------*\
+        |*             Constructor             *|
+        \*-------------------------------------*/
+
+    public:
+       CanvasNative(Displayable_A* ptrDisplayable);
+
+       virtual ~CanvasNative();
+
+       /*--------------------------------------*\
+        |*             Methodes                *|
+        \*-------------------------------------*/
+
+    public:
+
+       virtual void init(JNIEnv *env, jobject canvas);
+
+       virtual void reshape(int w, int h, JNIEnv *env, jobject canvas);
+
+       virtual void display(JNIEnv *env, jobject canvas);
+
+       virtual void release(JNIEnv *env, jobject canvas);
+
+       virtual void onKeyPressed(const KeyEvent &keyEvent, JNIEnv *env, jobject canvas);
+
+       virtual void onMousePressed(const MouseEvent &e, JNIEnv *env, jobject canvas);
+
+       virtual void onMouseReleased(const MouseEvent &e, JNIEnv *env, jobject canvas);
+
+       virtual void onMouseMoved(const MouseEvent &e, JNIEnv *env, jobject canvas);
+
+       virtual void onMouseWheel(const MouseWheelEvent &e, JNIEnv *env, jobject canvas);
+
+    protected:
+
+       virtual void onPaintGL(JNIEnv *env, jobject canvas);
+
+       void repaint(JNIEnv *env, jobject canvas);
+
+       /*--------------------------------------*\
+        |*             Get                     *|
+        \*-------------------------------------*/
+    public:
+
+       virtual TextRenderer_A* getTextRenderer()
+           {
+           return txtRender;
+           }
+
+       virtual FontLoader_A* getFontLoader()
+           {
+           return fontLoader;
+           }
+
+       Displayable_A* getDisplayable()
+           {
+           return ptrDisplayable;
+           }
+
+       inline int getID() const
+           {
+           return id;
+           }
+
+       /*--------------------------------------*\
+        |*             Set                     *|
+        \*-------------------------------------*/
+    public:
+       inline void setID(int id)
+           {
+           this->id = id;
+           }
+
+    private:
+
+       //Inputs
+       Displayable_A* ptrDisplayable;
+
+       // Tools
+       int id;
+       TextRenderer_A* txtRender;
+       FontLoader_A* fontLoader;
+       bool isInit;
+       Context* ptrContext;
+
+       static std::atomic_int ID_COUNTER;
+    };
+
+#endif 
+
+/*----------------------------------------------------------------------*\
+ |*                    End                                             *|
+ \*---------------------------------------------------------------------*/