Ajout de l'ensemble du workspace.
[GPU.git] / WCudaMSE / API_Bilat_Canvas_JNI / INC / CanvasNative.h
1 #ifndef CANVAS_NATIVE_H
2 #define CANVAS_NATIVE_H
3 #include "envCanvasJNI.h"
4 #include "Displayable_A.h"
5 #include "Panel_A.h"
6 #include "Context.h"
7 #include <atomic>
8 #include <jni.h>
9
10 /*----------------------------------------------------------------------*\
11 |* Declaration *|
12 \*---------------------------------------------------------------------*/
13
14 /*--------------------------------------*\
15 |* Public *|
16 \*-------------------------------------*/
17
18 class CBI_CANVAS_JNI CanvasNative: public Panel_A
19 {
20 /*--------------------------------------*\
21 |* Constructor *|
22 \*-------------------------------------*/
23
24 public:
25 CanvasNative(Displayable_A* ptrDisplayable);
26
27 virtual ~CanvasNative();
28
29 /*--------------------------------------*\
30 |* Methodes *|
31 \*-------------------------------------*/
32
33 public:
34
35 virtual void init(JNIEnv *env, jobject canvas);
36
37 virtual void reshape(int w, int h, JNIEnv *env, jobject canvas);
38
39 virtual void display(JNIEnv *env, jobject canvas);
40
41 virtual void release(JNIEnv *env, jobject canvas);
42
43 virtual void onKeyPressed(const KeyEvent &keyEvent, JNIEnv *env, jobject canvas);
44
45 virtual void onMousePressed(const MouseEvent &e, JNIEnv *env, jobject canvas);
46
47 virtual void onMouseReleased(const MouseEvent &e, JNIEnv *env, jobject canvas);
48
49 virtual void onMouseMoved(const MouseEvent &e, JNIEnv *env, jobject canvas);
50
51 virtual void onMouseWheel(const MouseWheelEvent &e, JNIEnv *env, jobject canvas);
52
53 protected:
54
55 virtual void onPaintGL(JNIEnv *env, jobject canvas);
56
57 void repaint(JNIEnv *env, jobject canvas);
58
59 /*--------------------------------------*\
60 |* Get *|
61 \*-------------------------------------*/
62 public:
63
64 virtual TextRenderer_A* getTextRenderer()
65 {
66 return txtRender;
67 }
68
69 virtual FontLoader_A* getFontLoader()
70 {
71 return fontLoader;
72 }
73
74 Displayable_A* getDisplayable()
75 {
76 return ptrDisplayable;
77 }
78
79 inline int getID() const
80 {
81 return id;
82 }
83
84 /*--------------------------------------*\
85 |* Set *|
86 \*-------------------------------------*/
87 public:
88 inline void setID(int id)
89 {
90 this->id = id;
91 }
92
93 private:
94
95 //Inputs
96 Displayable_A* ptrDisplayable;
97
98 // Tools
99 int id;
100 TextRenderer_A* txtRender;
101 FontLoader_A* fontLoader;
102 bool isInit;
103 Context* ptrContext;
104
105 static std::atomic_int ID_COUNTER;
106 };
107
108 #endif
109
110 /*----------------------------------------------------------------------*\
111 |* End *|
112 \*---------------------------------------------------------------------*/