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