00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef _SO_HARDWARE_QUERY_
00026 #define _SO_HARDWARE_QUERY_
00027
00028 #ifdef _WIN32
00029 #pragma warning(disable:4251)
00030 #pragma warning(disable:4244)
00031 #endif
00032
00033 #include <Inventor/nodes/SoNode.h>
00034
00035 class SoHardwareQuery : public SoNode {
00036 SO_NODE_ABSTRACT_HEADER( SoHardwareQuery );
00037
00038 public:
00040
00041 SoHardwareQuery();
00042
00043 enum HW_Feature {
00054 HW_3DTEXMAP,
00060 HW_TEXCOLORMAP,
00065 HW_TEXCOMPRESSION
00066 };
00067 enum HW_SupportStatus {
00068 NO,
00069 YES,
00070 UNKNOWN
00071 };
00072
00081 static HW_SupportStatus isSupported( HW_Feature feature );
00082
00083 private:
00084 static void initClass();
00085 static void exitClass();
00086
00087 static void registerInit();
00088
00089
00090
00091 static void checkOGLExtensions();
00092 static SbBool _OGLExtensionsChecked;
00093 static void (*_GlTexImage3D)();
00094 static void (*_GlTexSubImage3D)();
00095 static void (*_GlColorTable)();
00096 static void (*_GlBlendEquation)();
00097 static int _hasSharedPalette;
00098 static int _palettedTexType;
00099 static int _GlTexInternalFormat;
00100 static int _GlTexFormat;
00101 static int _GlLutTarget;
00102 static int _GlLutInternalFormat;
00103 static int _hasCompressedTexture;
00104 static int _GlTexRGBAInternalFormat;
00105 static int _hasFragmentProgram;
00106 static int _hasTextureExtension;
00107 };
00108 #endif // _SO_HARDWARE_QUERY_
00109
00110
00111