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  _SO_GL_TEXTURE_IMAGE3_ELEMENT
00025 #define  _SO_GL_TEXTURE_IMAGE3_ELEMENT
00026 
00027 #include <Inventor/elements/SoTextureImage3Element.h>
00028 #include <SoDeprecationRules.h>
00029 
00030 class SoGLDisplayList;
00031 class SoBufferObject;
00032 class SoGLTexture;
00033 
00034 SO_PIMPL_PUBLIC_DECLARATION(SoGLTextureImage3Element)
00035 
00036 
00055 SoEXTENDER_Documented      class SoDEPRECATED  SoGLTextureImage3Element : public SoTextureImage3Element 
00056 {
00057   SO_PIMPL_PUBLIC_HEADER(SoGLTextureImage3Element);
00058 
00059   SO_ELEMENT_HEADER(SoGLTextureImage3Element);
00060 
00061 public:
00071   static SoGLDisplayList *
00072     set(SoState *state, SoNode *node,
00073         const SbVec3s &s, int nc,
00074         const unsigned char *bytes,
00075         SoBufferObject* bufferObject,
00076         GLint GLInternalFormat,
00077         float texQuality,
00078         int wrapS, int wrapT, int wrapR, int model,
00079         const SbColor &blendColor, float _maxAnisotropy,
00080         SbBool _enableBorder, const SbVec4f &_borderColor, SoGLDisplayList *list,
00081         SbBool enableCompressedTexture );
00082 
00087   static void set(SoState *state, SoNode *node,
00088                   const SbVec3s &subSize, int xoffset, int yoffset, int zoffset,
00089                   const unsigned char *bytes, int texname) ;
00090 
00091   static void setFilter(SoState *state, SoNode *node, int _minFilter, int _magFilter);
00092 
00096   virtual void push(SoState *state) ;
00097 
00101   virtual void pop(SoState *state, const SoElement *prevTopElement);
00102 
00103  private:
00104   
00105   static void         initClass();
00106   static void         exitClass();
00107 
00108   static int getMaxTextureSize(SoState* state);
00109 
00111   static SoGLTexture* getGLTexture(SoState* state, int unit);
00112 
00114   static void set(SoState *state, SoNode *node, const SoTexImageData& config);
00115 
00117   static void subImage(SoState *state, const SbVec3i32& size,
00118                        int xoffset, int yoffset, int zoffset,
00119                        const void* data);
00120 private:
00122   virtual void commonInit();
00123 
00125   virtual void init(SoState *state);
00126 
00131   virtual void setElt(const SbVec3s &s, int nc,
00132                       const unsigned char *bytes,
00133                       GLint GLInternalFormat,
00134                       int wrapS, int wrapT, int wrapR, int model,
00135                       const SbColor &blendColor, float _maxAnisotropy,
00136                       SbBool _enableBorder, const SbVec4f &_borderColor,
00137                       int unit=0);
00138 
00139 
00140   virtual ~SoGLTextureImage3Element();
00141 
00142 private:
00143   friend class SoGLTextureImageElementImpl;
00144 };
00145 
00146 #endif 
00147 
00148 
00149