• gl.gl_xxx ? gl.xx, GL.GL_XXX ? GL.XXX

    From Lawrence D?Oliveiro@3:633/10 to All on Sat Jun 13 05:37:27 2026
    import types
    import OpenGL
    import OpenGL.GL
    import OpenGL.GLU

    def gen_gl() :
    # Funny thing: the OpenGL specs document all routines and
    # constants *without* ?gl? and ?GL_? prefixes. It makes
    # sense to add these in a language that does not have
    # namespaces, like C. In Python, it does not. So this
    # routine takes apart the contents of the PyOpenGL modules
    # into separate pieces, with those unnecessary prefixes
    # stripped. So instead of calling OpenGL.GL.glClear(), say,
    # you can call gl.Clear(). And instead of referring to
    # OpenGL.GL.GL_ACCUM, you can use GL.ACCUM instead.
    # Much more concise all round.
    gl = types.ModuleType("gl", doc = "OpenGL routines")
    GL = types.ModuleType("GL", doc = "OpenGL constants")
    glu = types.ModuleType("glu", doc = "OpenGL utility routines")
    GLU = types.ModuleType("GLU", doc = "OpenGL utility constants")
    for prefix, src, dest in \
    (
    ("gl", OpenGL.GL, gl),
    ("GL_", OpenGL.GL, GL),
    ("glu", OpenGL.GLU, glu),
    ("GLU_", OpenGL.GLU, GLU),
    ) \
    :
    for name in dir(src) :
    if name.startswith(prefix) :
    setattr(dest, name[len(prefix):], getattr(src, name))
    #end if
    #end for
    #end for
    return \
    gl, GL, glu, GLU
    #end gen_gl
    gl, GL, glu, GLU = gen_gl()
    del gen_gl # your work is done

    --- PyGate Linux v1.5.16
    * Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)