Part of the Khronos Group
OpenGL.org

The Industry's Foundation for High Performance Graphics

from games to virtual reality, mobile phones to supercomputers

Results 1 to 3 of 3

Thread: Is it an omission in the reference doc?

  1. #1
    Intern Contributor
    Join Date
    Dec 2012
    Posts
    74

    Is it an omission in the reference doc?

    I tried to map some texture with the function glTexImage2D and set the parameter format to RGBA8.
    It's an obvious mistake, and I get the error code GL_INVALID_ENUM.
    But according to the referenc doc of the function glTexImage2D, only four circumstances are listed:


    GL_INVALID_ENUM is generated if target is not GL_TEXTURE_2D, GL_TEXTURE_1D_ARRAY, GL_TEXTURE_RECTANGLE, GL_PROXY_TEXTURE_2D, GL_PROXY_TEXTURE_1D_ARRAY, GL_PROXY_TEXTURE_RECTANGLE, GL_PROXY_TEXTURE_CUBE_MAP, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, or GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.

    GL_INVALID_ENUM is generated if target is one of the six cube map 2D image targets and the width and height parameters are not equal.

    GL_INVALID_ENUM is generated if type is not a type constant.


    So my understanding is because setting format to GL_RGB8 is so obvious a mistake that it's omitted in the reference doc and any mistake as naive as this will be omitted.
    Am I right?

    Thanks in advance!

  2. #2
    Intern Newbie
    Join Date
    Nov 2012
    Posts
    33
    This is the documentation you're referring to, right?

    In a sense, you're right, but it's mostly that GL_INVALID_ENUM is somewhat of a universal error code; since just about every non-numerical parameter in OpenGL takes a GLenum, GL_INVALID_ENUM gets triggered every time you, well, give anything an invalid enum.

    Up at the top, in the parameter specifications, it describes which GLenums are allowed.

    format

    Specifies the format of the pixel data. The following symbolic values are accepted: GL_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
    Here, it's implied that anything outside of those will throw a GL_INVALID_ENUM error.

  3. #3
    Senior Member OpenGL Pro
    Join Date
    Apr 2010
    Location
    Germany
    Posts
    1,129
    The reference clearly says right at the top of the page

    format
    Specifies the format of the pixel data. The following symbolic values are accepted: GL_RED, GL_RG, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.
    However, from what I read, the spec doesn't mention any errors if the values aren't correct. This either means the I overread it or that it's actually a spec bug. It's inconsistent to say the least.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •