GLGENERATEMIPMAP(3G)

okay so welcome to GLGENERATEMIPMAP(3G), bestie β€” the manual page where we make mipmaps pop off βœ¨πŸ’…

NAME

glGenerateMipmap, glGenerateTextureMipmap β€” generate mipmaps for a specified texture object πŸŽ€


C SPECIFICATION

void glGenerateMipmap(GLenum target);

void glGenerateTextureMipmap(GLuint texture);

PARAMETERS

  • target β€” specifies the target to which the texture object is bound for glGenerateMipmap. It must be one of GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_TEXTURE_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_CUBE_MAP, or GL_TEXTURE_CUBE_MAP_ARRAY. no random targets allowed, queen πŸ‘‘
  • texture β€” specifies the texture object name for glGenerateTextureMipmap. πŸ¦‹

DESCRIPTION

So glGenerateMipmap and glGenerateTextureMipmap generate mipmaps for the specified texture object. For glGenerateMipmap, that’s the texture object bound to target. For glGenerateTextureMipmap, texture is the name of the texture object. literally that simple, bestie πŸ’œ

For cube map and cube map array textures, the texture object must be cube complete or cube array complete respectively. vibe check: complete only, no half-finished cube energy πŸ™ˆ

Mipmap generation replaces texel image levels $level_{base} + 1$ through $q$ with images derived from the $level_{base}$ image, regardless of their previous contents. All other mimap images, including the $level_{base}+1$ image, are left unchanged by this computation. the way this computation just ignores previous contents is so main character πŸ’…

The internal formats of the derived mipmap images all match those of the $level_{base}$ image. The contents of the derived images are computed by repeated, filtered reduction of the $level_{base} + 1$ image. For one- and two-dimensional array and cube map array textures, each layer is filtered independently. independent layers = independent little icons, periodt ✨


NOTES

Cube map array textures are accepted only if the GL version is 4.0 or higher. so if you’re on baby GL, cube map arrays are not invited to the function 😭


ERRORS

  • GL_INVALID_ENUM is generated by glGenerateMipmap if target is not one of the accepted texture targets. wrong target = invalid enum, bestie 🚨
  • GL_INVALID_OPERATION is generated by glGenerateTextureMipmap if texture is not the name of an existing texture object. no fake texture names in this group chat πŸ™…
  • GL_INVALID_OPERATION is generated if target is GL_TEXTURE_CUBE_MAP or GL_TEXTURE_CUBE_MAP_ARRAY, and the specified texture object is not cube complete or cube array complete, respectively. incomplete cube = invalid operation, and that’s on periodt πŸ’€

VERSION SUPPORT

The version-support table is giving Function / Feature Name vs OpenGL Version, and the columns are 2.0, 2.1, 3.0, 3.1, 3.2, 3.3, 4.0, 4.1, 4.2, 4.3, 4.4, 4.5. 🌈

  • glGenerateMipmap β€” 2.0: -; 2.1: -; 3.0: βœ”; 3.1: βœ”; 3.2: βœ”; 3.3: βœ”; 4.0: βœ”; 4.1: βœ”; 4.2: βœ”; 4.3: βœ”; 4.4: βœ”; 4.5: βœ”. she ate from 3.0 onward πŸ”₯
  • glGenerateTextureMipmap β€” 2.0: -; 2.1: -; 3.0: -; 3.1: -; 3.2: -; 3.3: -; 4.0: -; 4.1: -; 4.2: -; 4.3: -; 4.4: -; 4.5: βœ”. only 4.5 gets the checkmark, iconic late bloomer behavior πŸ‘‘

SEE ALSO

glTexImage2D(), glBindTexture(), glGenTextures() 🫢


Copyright Β© 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/. πŸ’–


Copyright Β© 2010-2014 Khronos Group πŸ’œ


okay that’s the whole page, bestie πŸŽ€ source/version: [FIXME: source] β€’ date: 08/09/2021 β€’ page: GLGENERATEMIPMAP(3G) β€” slay and goodbye βœ¨πŸ’…

πŸ“¦ where this page comes from