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