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 #ifdef WIN32
00066 void makeOpenGLPalette();
00067 #endif
00068 private:
00069 FXGLVisual(const FXGLVisual&);
00070 FXGLVisual &operator=(const FXGLVisual&);
00071 public:
00072
00073
00074 FXGLVisual(FXApp* a,FXuint flags);
00075
00076
00077
00078
00079
00080
00081
00082
00083 static FXbool supported(FXApp* application,int& major,int& minor);
00084
00085
00086 virtual void create();
00087
00088
00089 virtual void detach();
00090
00091
00092 virtual void destroy();
00093
00094
00095 FXint getRedSize() const { return redSize; }
00096 FXint getGreenSize() const { return greenSize; }
00097 FXint getBlueSize() const { return blueSize; }
00098 FXint getAlphaSize() const { return alphaSize; }
00099 FXint getDepthSize() const { return depthSize; }
00100 FXint getStencilSize() const { return stencilSize; }
00101 FXint getAccumRedSize() const { return accumRedSize; }
00102 FXint getAccumGreenSize() const { return accumGreenSize; }
00103 FXint getAccumBlueSize() const { return accumBlueSize; }
00104 FXint getAccumAlphaSize() const { return accumAlphaSize; }
00105
00106
00107 void setRedSize(FXint rs){ redSize=rs; }
00108 void setGreenSize(FXint gs){ greenSize=gs; }
00109 void setBlueSize(FXint bs){ blueSize=bs; }
00110 void setAlphaSize(FXint as){ alphaSize=as; }
00111 void setDepthSize(FXint ds){ depthSize=ds; }
00112 void setStencilSize(FXint ss){ stencilSize=ss; }
00113 void setAccumRedSize(FXint rs){ accumRedSize=rs; }
00114 void setAccumGreenSize(FXint gs){ accumGreenSize=gs; }
00115 void setAccumBlueSize(FXint bs){ accumBlueSize=bs; }
00116 void setAccumAlphaSize(FXint as){ accumAlphaSize=as; }
00117
00118
00119 FXint getActualRedSize() const;
00120 FXint getActualGreenSize() const;
00121 FXint getActualBlueSize() const;
00122 FXint getActualAlphaSize() const;
00123 FXint getActualDepthSize() const;
00124 FXint getActualStencilSize() const;
00125 FXint getActualAccumRedSize() const;
00126 FXint getActualAccumGreenSize() const;
00127 FXint getActualAccumBlueSize() const;
00128 FXint getActualAccumAlphaSize() const;
00129
00130
00131 FXbool isDoubleBuffer() const;
00132
00133
00134 FXbool isStereo() const;
00135
00136
00137 FXbool isAccelerated() 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