GLTEXCOORD(3G)

πŸ“¦ version 24.3.3, in opensuse-leap 16.0

🌸 NAME 🌸

okay so bestie, welcome to GLTEXCOORD(3G) πŸ’– this is the whole girlboss family of functions whose entire job is to set the current texture coordinates:

glTexCoord1d, glTexCoord1f, glTexCoord1i, glTexCoord1s, glTexCoord2d,
glTexCoord2f, glTexCoord2i, glTexCoord2s, glTexCoord3d, glTexCoord3f,
glTexCoord3i, glTexCoord3s, glTexCoord4d, glTexCoord4f, glTexCoord4i,
glTexCoord4s, glTexCoord1dv, glTexCoord1fv, glTexCoord1iv,
glTexCoord1sv, glTexCoord2dv, glTexCoord2fv, glTexCoord2iv,
glTexCoord2sv, glTexCoord3dv, glTexCoord3fv, glTexCoord3iv,
glTexCoord3sv, glTexCoord4dv, glTexCoord4fv, glTexCoord4iv,
glTexCoord4sv

that's thirty-two (32) little icons and every single one of them is serving πŸ’…


✨ C SPECIFICATION ✨

the scalar era πŸŽ€ (no pointer, just vibes):

void glTexCoord1d( GLdouble s )
void glTexCoord1f( GLfloat s )
void glTexCoord1i( GLint s )
void glTexCoord1s( GLshort s )
void glTexCoord2d( GLdouble s,
                   GLdouble t )
void glTexCoord2f( GLfloat s,
                   GLfloat t )
void glTexCoord2i( GLint s,
                   GLint t )
void glTexCoord2s( GLshort s,
                   GLshort t )
void glTexCoord3d( GLdouble s,
                   GLdouble t,
                   GLdouble r )
void glTexCoord3f( GLfloat s,
                   GLfloat t,
                   GLfloat r )
void glTexCoord3i( GLint s,
                   GLint t,
                   GLint r )
void glTexCoord3s( GLshort s,
                   GLshort t,
                   GLshort r )
void glTexCoord4d( GLdouble s,
                   GLdouble t,
                   GLdouble r,
                   GLdouble q )
void glTexCoord4f( GLfloat s,
                   GLfloat t,
                   GLfloat r,
                   GLfloat q )
void glTexCoord4i( GLint s,
                   GLint t,
                   GLint r,
                   GLint q )
void glTexCoord4s( GLshort s,
                   GLshort t,
                   GLshort r,
                   GLshort q )

πŸ“ PARAMETERS πŸ“

  • s, t, r, q β€” these specify the s, t, r, and q texture coordinates. and lowkey? not all of these parameters show up in all the forms of the command β€” some versions are just doing the most with fewer letters. πŸ’€

🌈 C SPECIFICATION 🌈

and now the pointer girlies, the vector versions, the "I brought an array" energy πŸ¦‹:

void glTexCoord1dv( const GLdouble *v )
void glTexCoord1fv( const GLfloat *v )
void glTexCoord1iv( const GLint *v )
void glTexCoord1sv( const GLshort *v )
void glTexCoord2dv( const GLdouble *v )
void glTexCoord2fv( const GLfloat *v )
void glTexCoord2iv( const GLint *v )
void glTexCoord2sv( const GLshort *v )
void glTexCoord3dv( const GLdouble *v )
void glTexCoord3fv( const GLfloat *v )
void glTexCoord3iv( const GLint *v )
void glTexCoord3sv( const GLshort *v )
void glTexCoord4dv( const GLdouble *v )
void glTexCoord4fv( const GLfloat *v )
void glTexCoord4iv( const GLint *v )
void glTexCoord4sv( const GLshort *v )

πŸ“ PARAMETERS πŸ“

  • v β€” a pointer to an array of one, two, three, or four elements, and those elements in turn specify the s, t, r, and q texture coordinates. so like, it's a glow-up of the scalar version but it packed a bag first πŸŽ’βœ¨

πŸ’– DESCRIPTION πŸ’–

glTexCoord specifies texture coordinates in one, two, three, or four dimensions. here's the tea, bestie, in a neat little lineup:

  • glTexCoord1 sets the current texture coordinates to (s, 0, 0, 1)
  • a call to glTexCoord2 sets them to (s, t, 0, 1)
  • glTexCoord3 specifies the texture coordinates as (s, t, r, 1)
  • and glTexCoord4 defines all four components explicitly as (s, t, r, q)

so the shorter ones just fill in the blanks for you, which is honestly so thoughtful of them 🫢

the current texture coordinates are part of the data that is associated with each vertex and with the current raster position. and initially, the values for s, t, r, and q are (0, 0, 0, 1). starting fresh, no baggage, main character origin story ⭐


πŸ‘‘ NOTES πŸ‘‘

  • the current texture coordinates can be updated at any time. literally any time. no appointment needed πŸ’… in particular, glTexCoord can be called between a call to glBegin and the corresponding call to glEnd. yes queen, mid-primitive, go off.
  • when the GL_ARB_imaging extension is supported, glTexCoord always updates texture unit GL_TEXTURE0_ARB. it's loyal like that. no cap.

πŸ” ASSOCIATED GETS πŸ”

  • glGet with argument GL_CURRENT_TEXTURE_COORDS β€” this is how you ask "so what are the current texture coords bestie" and it actually tells you πŸ’œ

🌟 SEE ALSO 🌟

  • glTexCoordPointer(3G)
  • glVertex(3G)

and that's the whole page, bestie, we ate and left no crumbs πŸ“πŸ§š

this was GLTEXCOORD(3G) β€” the 3G is giving OpenGL manual, third section, iconic behavior πŸ‘‘ mwah, go set some texture coordinates, you're gonna slay πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from