00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef FX_DISABLEGL
00025
00026 #if FX_GRAPHINGMODULE
00027
00028 #ifndef FXGLCONTEXT_H
00029 #define FXGLCONTEXT_H
00030
00032
00033 namespace FX {
00034
00035 class FXApp;
00036 class FXDrawable;
00037 class FXGLVisual;
00038
00039
00050 class FXGRAPHINGMODULEAPI FXGLContext : public FXId {
00051 FXDECLARE(FXGLContext)
00052 private:
00053 FXGLVisual *visual;
00054 FXDrawable *surface;
00055 FXGLContext *sgnext;
00056 FXGLContext *sgprev;
00057 protected:
00058 void *ctx;
00059 protected:
00060 FXGLContext():visual(NULL),surface(NULL),sgnext(NULL),sgprev(NULL),ctx(NULL){}
00061 private:
00062 FXGLContext(const FXGLContext&);
00063 FXGLContext &operator=(const FXGLContext&);
00064 public:
00065
00069 FXGLContext(FXApp* a,FXGLVisual *vis);
00070
00074 FXGLContext(FXApp* a,FXGLVisual *vis,FXGLContext *shared);
00075
00077 FXbool isShared() const;
00078
00080 FXGLVisual* getVisual() const { return visual; }
00081
00083 virtual void create();
00084
00086 virtual void detach();
00087
00089 virtual void destroy();
00090
00092 FXbool begin(FXDrawable *drawable);
00093
00095 FXbool end();
00096
00098 void swapBuffers();
00099
00101 void swapSubBuffers(FXint x,FXint y,FXint w,FXint h);
00102
00104 virtual void save(FXStream& store) const;
00105
00107 virtual void load(FXStream& store);
00108
00110 virtual ~FXGLContext();
00111 };
00112
00113 }
00114
00115 #endif
00116 #endif
00117 #endif