summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorleo2001-01-07 15:04:39 +0000
committerleo2001-01-07 15:04:39 +0000
commit33132667d786063f1c0ee9079e5015c463f5f5b0 (patch)
treea2d615535f909be34540f6109a6dd014b7a52a5d /common
parent5e30e9a7197c6b4d233374ca88765d02114d97c3 (diff)
Cross platform OpenGL window
git-svn-id: http://svn.leocad.org/trunk@213 c7d43263-9d01-0410-8a33-9dba5d9f93d6
Diffstat (limited to 'common')
-rw-r--r--common/glwindow.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/common/glwindow.h b/common/glwindow.h
new file mode 100644
index 0000000..837a9c2
--- /dev/null
+++ b/common/glwindow.h
@@ -0,0 +1,37 @@
+#ifndef _GLWINDOW_H_
+#define _GLWINDOW_H_
+
+class GLWindow
+{
+ public:
+ GLWindow (GLWindow *share);
+ virtual ~GLWindow ();
+
+ void Create (void* data);
+ void DestroyContext ();
+
+ bool MakeCurrent ();
+ void SwapBuffers ();
+ void Redraw ();
+
+ virtual void OnDraw () { };
+ virtual void OnSize (int cx, int cy)
+ { m_nWidth = cx; m_nHeight = cy; };
+ virtual void OnInitialUpdate ();
+ virtual void OnLeftButtonDown (int x, int y, bool bControl, bool bShift) { };
+ virtual void OnLeftButtonUp (int x, int y, bool bControl, bool bShift) { };
+ virtual void OnLeftButtonDoubleClick (int x, int y, bool bControl, bool bShift) { };
+ virtual void OnRightButtonDown (int x, int y, bool bControl, bool bShift) { };
+ virtual void OnRightButtonUp (int x, int y, bool bControl, bool bShift) { };
+ virtual void OnMouseMove (int x, int y, bool bControl, bool bShift) { };
+
+ protected:
+ int m_nWidth;
+ int m_nHeight;
+
+ private:
+ void *m_pData;
+ GLWindow *m_pShare;
+};
+
+#endif // _GLWINDOW_H_