00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __GZ_GRAPHICSFORMAT_H__
00023 #define __GZ_GRAPHICSFORMAT_H__
00024
00030 #include "gzReference.h"
00031 #include "gzGraphicsAbstractionLayer.h"
00032 #include "gzContext.h"
00033
00034 class gzGraphicsFormat : public gzReference
00035 {
00036 public:
00037
00038 GZ_SYSTEM_EXPORT gzGraphicsFormat( gzInt redbits=1 , gzInt greenbits=1 , gzInt bluebits=1 , gzInt alphabits=0 , gzInt stencilbits=0 ,
00039 gzInt depthbits=1 , gzInt accredbits=0 , gzInt accgreenbits=0 , gzInt accbluebits=0 , gzInt accalphabits=0 );
00040
00041 GZ_SYSTEM_EXPORT virtual ~gzGraphicsFormat();
00042
00043 GZ_SYSTEM_EXPORT gzVoid setRGBBits( gzInt redbits , gzInt greenbits , gzInt bluebits );
00044
00045 GZ_SYSTEM_EXPORT gzVoid setRedBits(gzInt bits);
00046 GZ_SYSTEM_EXPORT gzVoid setGreenBits(gzInt bits);
00047 GZ_SYSTEM_EXPORT gzVoid setBlueBits(gzInt bits);
00048
00049 GZ_SYSTEM_EXPORT gzInt getRedBits();
00050 GZ_SYSTEM_EXPORT gzInt getGreenBits();
00051 GZ_SYSTEM_EXPORT gzInt getBlueBits();
00052 GZ_SYSTEM_EXPORT gzInt getColorBits();
00053
00054
00055 GZ_SYSTEM_EXPORT gzBool useDoubleBuffer() const;
00056 GZ_SYSTEM_EXPORT gzVoid useDoubleBuffer( gzBool enable );
00057
00058 GZ_SYSTEM_EXPORT gzBool useDepth() const;
00059 GZ_SYSTEM_EXPORT gzVoid useDepth( gzBool enable );
00060 GZ_SYSTEM_EXPORT gzVoid setDepthBits( gzInt bits );
00061 GZ_SYSTEM_EXPORT gzInt getDepthBits();
00062
00063 GZ_SYSTEM_EXPORT gzBool useAlpha() const;
00064 GZ_SYSTEM_EXPORT gzVoid useAlpha( gzBool enable );
00065 GZ_SYSTEM_EXPORT gzVoid setAlphaBits(gzInt bits );
00066 GZ_SYSTEM_EXPORT gzInt getAlphaBits();
00067
00068 GZ_SYSTEM_EXPORT gzBool useAccum() const;
00069 GZ_SYSTEM_EXPORT gzVoid useAccum( gzBool enable );
00070
00071 GZ_SYSTEM_EXPORT gzVoid setAccumBits( gzInt redbits , gzInt greenbits , gzInt bluebits , gzInt alphabits=0 );
00072
00073 GZ_SYSTEM_EXPORT gzVoid setAccumRedBits(gzInt bits);
00074 GZ_SYSTEM_EXPORT gzVoid setAccumGreenBits(gzInt bits);
00075 GZ_SYSTEM_EXPORT gzVoid setAccumBlueBits(gzInt bits);
00076 GZ_SYSTEM_EXPORT gzVoid setAccumAlphaBits(gzInt bits);
00077
00078 GZ_SYSTEM_EXPORT gzInt getAccumRedBits();
00079 GZ_SYSTEM_EXPORT gzInt getAccumGreenBits();
00080 GZ_SYSTEM_EXPORT gzInt getAccumBlueBits();
00081 GZ_SYSTEM_EXPORT gzInt getAccumAlphaBits();
00082 GZ_SYSTEM_EXPORT gzInt getAccumBits();
00083
00084
00085 GZ_SYSTEM_EXPORT gzBool useStencil() const;
00086 GZ_SYSTEM_EXPORT gzVoid useStencil( gzBool enable );
00087 GZ_SYSTEM_EXPORT gzVoid setStencilBits(gzInt bits );
00088 GZ_SYSTEM_EXPORT gzInt getStencilBits();
00089
00090
00091 GZ_SYSTEM_EXPORT gzVoid useFullScreen(gzBool on);
00092 GZ_SYSTEM_EXPORT gzBool useFullScreen() const;
00093
00094 GZ_SYSTEM_EXPORT gzVoid useStereo(gzBool on);
00095 GZ_SYSTEM_EXPORT gzBool useStereo() const;
00096
00097 GZ_SYSTEM_EXPORT gzVoid useMultisample(gzBool on);
00098 GZ_SYSTEM_EXPORT gzBool useMultisample() const;
00099
00100 GZ_SYSTEM_EXPORT gzVoid setMultisamples(gzInt samples);
00101 GZ_SYSTEM_EXPORT gzInt getMultisamples();
00102
00103 GZ_SYSTEM_EXPORT gzVoid setFullScreenWidth(gzInt width=0);
00104 GZ_SYSTEM_EXPORT gzInt getFullScreenWidth();
00105
00106 GZ_SYSTEM_EXPORT gzVoid setFullScreenHeight(gzInt height=0);
00107 GZ_SYSTEM_EXPORT gzInt getFullScreenHeight();
00108
00109 GZ_SYSTEM_EXPORT gzVoid setFullScreenFrequency(gzInt hz=0);
00110 GZ_SYSTEM_EXPORT gzInt getFullScreenFrequency() const ;
00111
00112 GZ_SYSTEM_EXPORT gzVoid notifyFormat();
00113
00114 GZ_SYSTEM_EXPORT gzVisual getVisual();
00115 GZ_SYSTEM_EXPORT gzVisual getNewVisual(gzDeviceContext context , gzContext *renderContext, gzBool offscreen=FALSE );
00116
00117 GZ_SYSTEM_EXPORT gzVoid setDefault();
00118 GZ_SYSTEM_EXPORT static gzGraphicsFormat * getDefault();
00119
00120 private:
00121
00122 enum CAPS_BITS
00123 {
00124 GZ_USE_DOUBLE_BUFFER = (1<<0),
00125 GZ_USE_ALPHA = (1<<1),
00126 GZ_USE_ACCUM = (1<<2),
00127 GZ_USE_STENCIL = (1<<3),
00128 GZ_USE_DEPTH = (1<<4),
00129 GZ_USE_STEREO = (1<<5),
00130 GZ_USE_MULTISAMPLE = (1<<6),
00131 GZ_USE_FULLSCREEN = (1<<7),
00132 };
00133
00134
00135 gzUShort m_enable;
00136
00137 gzInt m_red_bits;
00138 gzInt m_green_bits;
00139 gzInt m_blue_bits;
00140 gzInt m_alpha_bits;
00141 gzInt m_depth_bits;
00142 gzInt m_stencil_bits;
00143 gzInt m_accum_red_bits;
00144 gzInt m_accum_green_bits;
00145 gzInt m_accum_blue_bits;
00146 gzInt m_accum_alpha_bits;
00147
00148 gzInt m_fullScreenWidth;
00149 gzInt m_fullScreenHeight;
00150 gzInt m_fullScreenFrequency;
00151
00152 gzInt m_multisamples;
00153
00154 static gzRefPointer<gzGraphicsFormat> s_defaultFormat;
00155
00156 gzVisual m_visual;
00157 };
00158
00159 #endif // __GZ_GRAPHICSFORMAT_H__
00160
00161