68SoEXTENDER_Documented class SoTextureImageElementBase : public SoReplacedTextureElement
70 SO_PIMPL_BASE_PUBLIC_HEADER(SoTextureImageElementBase);
72 SO_ELEMENT_ABSTRACT_HEADER(SoTextureImageElementBase);
87 virtual void print(FILE *fp)
const;
96 virtual void commonInit();
99 virtual void init(
SoState *state);
103 static void initClass();
104 static void exitClass();
108 struct TextureDataConfiguration
123 uint32_t imageHeight;
141 TextureDataConfiguration()
161 size_t subImageSize()
const;
166 RENDERER_RESOURCE(SamplerConfiguration);
171 uint32_t sAddressMode;
172 uint32_t tAddressMode;
173 uint32_t rAddressMode;
179 uint8_t mipmapFilter;
182 static uint8_t getAutoMagFilter(
float quality);
183 static void getAutoMinFilter(uint8_t& minFilter, uint8_t& mipmapFilter,
float quality);
185 bool isUsingMipmaps()
const;
186 bool operator== (
const SamplerConfiguration& sc)
const;
187 bool operator!=(
const SamplerConfiguration& sc )
const
189 return !operator==( sc );
192 SamplerConfiguration();
193 ~SamplerConfiguration() { destroyRendererResource(); }
196 SamplerConfiguration(
const SamplerConfiguration& )
202 struct SoTexImageData
205 SoRef<SamplerConfiguration> samplerConfiguration;
211 SoGLTexture* gltexture;
214 const void* buffer[MAX_TEXTURE_NBR];
215 SoBufferObject* bufferObjects[MAX_TEXTURE_NBR];
221 GLint GLInternalFormat;
222 SoRenderToTextureProperty* renderToTextureProperty;
223 bool renderToTexturePropertyFirstPass;
228 int numCompressedMipmaps;
240 std::vector<SubTexture> subtextures;
256 SoTexImageData& getTexImageData(
const int unit)
const;
262 void getElt(
SoState *state,
int &_minFilter,
int &_magFilter,
float &_maxAnisotropy,
int unit)
const;
266 GLint &_GLInternalFormat,
int &_wrapS,
int &_wrapT,
267 int &_model,
SbColor &_blendColor,
int unit,
int currentTexture = -1)
const;
269 virtual void setElt(
const SbVec2i32 &s,
int nc,
272 int wrapS,
int wrapT,
int wrapR,
int model,
273 const SbColor &blendColor,
float _maxAnisotropy,
275 SbBool isCompressed,
int numCompressedMipmaps,
276 int hasTransparency = -1 ,
277 int unit=0,
int currentTexture=-1);
279 virtual void setElt(
SoState *state,
SoNode *node,
const SoTexImageData& config);
281 virtual void setSubElt(
const SbVec2i32 &subSize,
282 int xoffset,
int yoffset,
283 const void *buffer,
int texname,
286 virtual void setFilterElt(
int _minFilter,
int _magFilter,
int currUnit);
289 virtual ~SoTextureImageElementBase();
293 typedef std::vector<SoTexImageData> SoTexImageDataList;
294 mutable SoTexImageDataList m_texImageDataList;
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Class for creati...
Abstract base class for texture mapping nodes.
Stores the current texture image.
friend class SoVRMLAppearance
virtual void push(SoState *state)
Overrides push() method to copy values from next instance in the stack.
virtual void print(FILE *fp) const
Print info about image for debugging.