00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef FXGLCONTEXT_H
00022 #define FXGLCONTEXT_H
00023
00024 #ifndef FXID_H
00025 #include "FXId.h"
00026 #endif
00027
00028 namespace FX {
00029
00030
00032 class FXAPI FXGLContext : public FXId {
00033 FXDECLARE(FXGLContext)
00034 private:
00035 FXDrawable *surface;
00036 FXGLVisual *visual;
00037 FXGLContext *shared;
00038 private:
00039 FXGLContext(const FXGLContext&);
00040 FXGLContext &operator=(const FXGLContext&);
00041 protected:
00042 FXGLContext();
00043 public:
00044
00049 FXGLContext(FXApp *a,FXGLVisual *vis,FXGLContext* shr=NULL);
00050
00052 virtual void create();
00053
00055 virtual void detach();
00056
00058 virtual void destroy();
00059
00061 void setVisual(FXGLVisual* vis);
00062
00064 FXGLVisual* getVisual() const { return visual; }
00065
00067 void setShared(FXGLContext *ctx);
00068
00070 FXGLContext* getShared() const { return shared; }
00071
00073 FXDrawable *drawable() const { return surface; }
00074
00076 FXbool begin(FXDrawable *draw);
00077
00079 FXbool end();
00080
00082 void swapBuffers();
00083
00085 FXbool isCurrent() const;
00086
00088 static FXbool hasCurrent();
00089
00091 FXbool isDoubleBuffer() const;
00092
00094 FXbool isStereo() const;
00095
00097 virtual void save(FXStream& store) const;
00098
00100 virtual void load(FXStream& store);
00101
00103 virtual ~FXGLContext();
00104 };
00105
00106
00107
00109 extern FXAPI FXbool glUseFXFont(FXFont* font,int first,int count,int list);
00110
00111 }
00112
00113 #endif
00114