SoGLCubeMapImage(3)
π SoGLCubeMapImage π
okay bestie, pull up a chair, we're reading the SoGLCubeMapImage(3) page from the Coin manual together and it's gonna be adorable. section 3, baby. let's go π¦
β¨ NAME β¨
SoGLCubeMapImage β the class that handles cube map textures. that's it, that's the whole vibe. she does cube maps and she does them well π
π SYNOPSIS π
lowkey the receipts first:
#include <include/Inventor/misc/SoGLCubeMapImage.h>
Inherits SoGLImage.
πΈ Public Types
enum Target { NEGATIVE_X = 0, POSITIVE_X, NEGATIVE_Y, POSITIVE_Y,
NEGATIVE_Z, POSITIVE_Z }
πΈ Public Types inherited from SoGLImage
enum Wrap { REPEAT = 0, CLAMP, CLAMP_TO_EDGE, CLAMP_TO_BORDER }
enum ResizeReason { IMAGE = 0, SUBIMAGE, MIPMAP }
enum Flags { SCALE_DOWN = 0x0001, NO_MIPMAP = 0x0002, LINEAR_MAG_FILTER
= 0x0004, LINEAR_MIN_FILTER = 0x0008, LINEAR_MIPMAP_FILTER = 0x0010,
FORCE_TRANSPARENCY_TRUE = 0x0020, FORCE_TRANSPARENCY_FALSE = 0x0040,
FORCE_ALPHA_TEST_TRUE = 0x0080, FORCE_ALPHA_TEST_FALSE = 0x0100,
INVINCIBLE = 0x0200, RECTANGLE = 0x0400, COMPRESSED = 0x0800,
USE_QUALITY_VALUE = 0X8000 }
typedef SbBool SoGLImageResizeCB(SoState *state, const SbVec3s &newsize,
unsigned char *destbuffer, ResizeReason reason, void *closure, class
SoGLImage *image)
(no cap, 0X8000 really is written with a capital X in the source, don't come for me, that's just how it is π)
πΈ Public Member Functions
SoGLCubeMapImage ()
virtual void unref (SoState *state=NULL)
virtual SoType getTypeId (void) const
void setCubeMapImage (const Target target, const unsigned char *bytes,
const SbVec2s &size, const int numcomponents)
virtual void setData (const SbImage *image, const Wrap wraps=REPEAT,
const Wrap wrapt=REPEAT, const float quality=0.5f, const int
border=0, SoState *createinstate=NULL)
virtual void setData (const SbImage *image, const Wrap wraps, const Wrap
wrapt, const Wrap wrapr, const float quality=0.5f, const int
border=0, SoState *createinstate=NULL)
virtual SoGLDisplayList * getGLDisplayList (SoState *state)
πΈ Public Member Functions inherited from SoGLImage
SoGLImage ()
virtual SbBool isOfType (SoType type) const
void setGLDisplayList (SoGLDisplayList *dl, SoState *state, const Wrap
wraps=REPEAT, const Wrap wrapt=REPEAT, const float quality=0.5f)
void setPBuffer (SoState *state, void *context, const Wrap wraps=REPEAT,
const Wrap wrapt=REPEAT, const float quality=0.5f)
void setData (const unsigned char *bytes, const SbVec2s &size, const int
numcomponents, const Wrap wraps=REPEAT, const Wrap wrapt=REPEAT,
const float quality=0.5f, const int border=0, SoState
*createinstate=NULL)
void setData (const unsigned char *bytes, const SbVec3s &size, const int
numcomponents, const Wrap wraps=REPEAT, const Wrap wrapt=REPEAT,
const Wrap wrapr=REPEAT, const float quality=0.5f, const int
border=0, SoState *createinstate=NULL)
void setFlags (const uint32_t flags)
uint32_t getFlags (void) const
const SbImage * getImage (void) const
SbBool hasTransparency (void) const
SbBool useAlphaTest (void) const
Wrap getWrapS (void) const
Wrap getWrapT (void) const
Wrap getWrapR (void) const
float getQuality (void) const
uint32_t getGLImageId (void) const
void setEndFrameCallback (void(*cb)(void *), void *closure)
int getNumFramesSinceUsed (void) const
πΈ Static Public Member Functions
static SoType getClassTypeId (void)
static void initClass (void)
πΈ Static Public Member Functions inherited from SoGLImage
static SoType getClassTypeId (void)
static void beginFrame (SoState *state)
static void tagImage (SoState *state, SoGLImage *image)
static void endFrame (SoState *state)
static void setDisplayListMaxAge (const uint32_t maxage)
static void freeAllImages (SoState *state=NULL)
static void initClass (void)
static void setResizeCallback (SoGLImageResizeCB *f, void *closure)
πΈ Additional Inherited Members
π Protected Member Functions inherited from SoGLImage
void incAge (void) const
void resetAge (void) const
virtual void unrefOldDL (SoState *state, const uint32_t maxage)
virtual ~SoGLImage ()
π¦ Detailed Description π¦
The SoGLCubeMapImage class is used to handle cube map textures. she's the cube map girlie, that's her whole personality β¨
β οΈ heads up bestie: be aware that this class is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API. so if you're out here expecting it in vintage SGI land, it's not there, don't @ me π
Since
Coin 3.0 β she's been iconic since 3.0 π
π Constructor & Destructor Documentation π
SoGLCubeMapImage::SoGLCubeMapImage (void )
Constructor. that's the whole note. she arrives πΈ
π₯ Member Function Documentation π₯
void SoGLCubeMapImage::unref (SoState * state = NULL) [virtual]
so this class has a private destructor, and that's on purpose β the idea is that users supply the current GL state when deleting the image, so that GL texture objects get freed as soon as possible. fast hands, clean memory, main character energy π
but if you pass NULL to this method? okay so the GL texture objects won't be deleted until the next time an GLRenderAction is applied in the image's cache context(s). so like, they're just sitting there, waiting for their moment π
Reimplemented from SoGLImage.
SoType SoGLCubeMapImage::getClassTypeId (void ) [static]
This static method returns the SoType object associated with objects of this class. runtime type tea β
SoType SoGLCubeMapImage::getTypeId (void ) const [virtual]
Returns the type identification of an object derived from a class inheriting SoGLImage. This is used for runtime type checking and "downward" casting. iykyk β you need this to find out what something actually is at runtime π
Reimplemented from SoGLImage.
void SoGLCubeMapImage::setData (const SbImage * image, const Wrap wraps = REPEAT, const Wrap wrapt = REPEAT, const float quality = 0.5f, const int border = 0, SoState * createinstate = NULL) [virtual]
Convenience 2D wrapper function around the 3D setData(). the little sister function π
Reimplemented from SoGLImage.
void SoGLCubeMapImage::setData (const SbImage * image, const Wrap wraps, const Wrap wrapt, const Wrap wrapr, const float quality = 0.5f, const int border = 0, SoState * createinstate = NULL) [virtual]
okay this is the big one, listen up bestie π£
Sets the data for this GL image. Should only be called when one of the parameters have changed, since this will cause the GL texture object to be recreated. no casual drive-by calls, she's not doing that for fun.
Caller is responsible for sending legal wrap values. CLAMP_TO_EDGE is only supported on OpenGL v1.2 implementations, and as an extension on some earlier SGI implementations (GL_SGIS_texture_edge_clamp). so like, know your hardware β
For now, if quality > 0.5 when created, we create mipmaps, otherwise a regular texture is created. Be aware: if you for instance create a texture with texture quality 0.4, and then later try to apply the texture with a texture quality greater than 0.5, the texture object will be recreated as a mipmap texture object. This will happen only once though, of course. one glow-up and then she's settled π
If border != 0, the OpenGL texture will be created with this border size. Be aware that this might be extremely slow on most PC hardware. like, tragic slow. we're talking "go make a snack" slow π
Normally, the OpenGL texture object isn't created until the first time it is needed, but if createinstate is != NULL, the texture object is created immediately. This is useful if you use a temporary buffer to hold the texture data.
β οΈ Be careful when using this feature, since the texture data might be needed at a later stage (for instance to create a texture object for another context). It will not be possible to create texture objects for other cache contexts whencreateinstateis!= NULL. so like, that's a real constraint, not a vibe, respect it.
Also if createinstate is supplied, and all the attributes are the same as the current data in the image, glTexSubImage() will be used to insert the image data instead of creating a new texture object. This is much faster on most OpenGL drivers, and is very useful, for instance when doing animated textures. animated textures stay winning π₯
If you supply NULL for image, the instance will be reset, causing all display lists and memory to be freed. full factory reset, we love a clean slate β¨
Reimplemented from SoGLImage.
SoGLDisplayList * SoGLCubeMapImage::getGLDisplayList (SoState * state) [virtual]
Returns or creates a SoGLDisplayList to be used for rendering. Returns NULL if no SoGLDisplayList could be created. if she can't make one, you get nothing, and that's just the truth π«Ά
Reimplemented from SoGLImage.
void SoGLCubeMapImage::initClass (void ) [static]
This static method initializes static data for the SoGLCubeMapImage class. call it once, get her set up, then go live your life π
π Author π
Generated automatically by Doxygen for Coin from the source code. so like, no human wrote this, the robot did, and honestly? slay π€β¨
and that's the whole page bestie!! π this was Version 4.0.10, dated Thu Jun 25 2026 00:00:00, and it's the SoGLCubeMapImage(3) page from the Coin manual. cube maps, mipmaps, and memory management β she contains multitudes ππ
π¦
go forth and texture your cubes correctly, no cap π
π¦ where this page comes from
- fedora 43: Coin4-devel 4.0.10-1.fc43 Β· BSD-3-Clause AND GPL-3.0-or-later
- fedora 43: Coin4-devel 4.0.10-1.fc43 Β· BSD-3-Clause AND GPL-3.0-or-later
- fedora 44: Coin4-devel 4.0.10-1.fc44 Β· BSD-3-Clause AND GPL-3.0-or-later
- fedora 44: Coin4-devel 4.0.10-1.fc44 Β· BSD-3-Clause AND GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms