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 FXGLVISUAL_H
00029 #define FXGLVISUAL_H
00030
00031 #ifndef FXVISUAL_H
00032 #include "FXVisual.h"
00033 #endif
00034
00035 namespace FX {
00036
00037
00038 class FXFont;
00039 class FXWindow;
00040 class FXImage;
00041 class FXIcon;
00042 class FXBitmap;
00043 class FXDCWindow;
00044 class FXGLCanvas;
00045
00046
00048 class FXGRAPHINGMODULEAPI FXGLVisual : public FXVisual {
00049 FXDECLARE(FXGLVisual)
00050 friend class FXWindow;
00051 friend class FXImage;
00052 friend class FXIcon;
00053 friend class FXBitmap;
00054 friend class FXDCWindow;
00055 friend class FXGLCanvas;
00056 protected:
00057 FXint redSize;
00058 FXint greenSize;
00059 FXint blueSize;
00060 FXint alphaSize;
00061 FXint depthSize;
00062 FXint stencilSize;
00063 FXint accumRedSize;
00064 FXint accumGreenSize;
00065 FXint accumBlueSize;
00066 FXint accumAlphaSize;
00067 protected:
00068 FXGLVisual();
00069 private:
00070 FXGLVisual(const FXGLVisual&);
00071 FXGLVisual &operator=(const FXGLVisual&);
00072 public:
00073
00075 FXGLVisual(FXApp* a,FXuint flags);
00076
00084 static FXbool supported(FXApp* application,int& major,int& minor);
00085
00087 virtual void create();
00088
00090 virtual void detach();
00091
00093 virtual void destroy();
00094
00096 FXint getRedSize() const { return redSize; }
00097 FXint getGreenSize() const { return greenSize; }
00098 FXint getBlueSize() const { return blueSize; }
00099 FXint getAlphaSize() const { return alphaSize; }
00100 FXint getDepthSize() const { return depthSize; }
00101 FXint getStencilSize() const { return stencilSize; }
00102 FXint getAccumRedSize() const { return accumRedSize; }
00103 FXint getAccumGreenSize() const { return accumGreenSize; }
00104 FXint getAccumBlueSize() const { return accumBlueSize; }
00105 FXint getAccumAlphaSize() const { return accumAlphaSize; }
00106
00108 void setRedSize(FXint rs){ redSize=rs; }
00109 void setGreenSize(FXint gs){ greenSize=gs; }
00110 void setBlueSize(FXint bs){ blueSize=bs; }
00111 void setAlphaSize(FXint as){ alphaSize=as; }
00112 void setDepthSize(FXint ds){ depthSize=ds; }
00113 void setStencilSize(FXint ss){ stencilSize=ss; }
00114 void setAccumRedSize(FXint rs){ accumRedSize=rs; }
00115 void setAccumGreenSize(FXint gs){ accumGreenSize=gs; }
00116 void setAccumBlueSize(FXint bs){ accumBlueSize=bs; }
00117 void setAccumAlphaSize(FXint as){ accumAlphaSize=as; }
00118
00120 FXint getActualRedSize() const;
00121 FXint getActualGreenSize() const;
00122 FXint getActualBlueSize() const;
00123 FXint getActualAlphaSize() const;
00124 FXint getActualDepthSize() const;
00125 FXint getActualStencilSize() const;
00126 FXint getActualAccumRedSize() const;
00127 FXint getActualAccumGreenSize() const;
00128 FXint getActualAccumBlueSize() const;
00129 FXint getActualAccumAlphaSize() const;
00130
00132 FXbool isDoubleBuffer() const;
00133
00135 FXbool isStereo() const;
00136
00138 FXbool isAccelerated() const;
00139
00141 FXbool isBufferSwapCopy() const;
00142
00144 virtual void save(FXStream& store) const;
00145
00147 virtual void load(FXStream& store);
00148
00150 virtual ~FXGLVisual();
00151 };
00152
00153
00155 extern FXGRAPHINGMODULEAPI void glUseFXFont(FXFont* font,int first,int count,int list);
00156
00157 }
00158
00159 #endif
00160 #endif
00161 #endif