Template:OpenGLTypesPlugin

From QB64 Phoenix Edition Wiki
Revision as of 20:38, 2 August 2022 by RhoSigma (talk | contribs)
Jump to navigation Jump to search
 ┌───────────────┬─────────────────┬──────────────────────────────────────────┐
 │    OpenGL     │      C/C++      │        QB64                              │
 ├───────────────┼─────────────────┼──────────────────────────────────────────┤
 │ GLenum        │ unsigned int    │ _UNSIGNED LONG                           │
 ├───────────────┼─────────────────┼──────────────────────────────────────────┤
 │ GLboolean     │ unsigned char   │ _UNSIGNED _BYTE                          │
 ├───────────────┼─────────────────┼──────────────────────────────────────────┤
 │ GLbitfield    │ unsigned int    │ _UNSIGNED LONG                           │
 ├───────────────┼─────────────────┼──────────────────────────────────────────┤
 │ GLbyte        │ signed char     │ _BYTE                                    │
 ├───────────────┼─────────────────┼──────────────────────────────────────────┤
 │ GLshort       │ short           │ INTEGER                                  │
 ├───────────────┼─────────────────┼──────────────────────────────────────────┤
 │ GLint         │ int             │ LONG                                     │
 ├───────────────┼─────────────────┼──────────────────────────────────────────┤
 │ GLsizei       │ int             │ LONG                                     │
 ├───────────────┼─────────────────┼──────────────────────────────────────────┤
 │ GLubyte       │ unsigned char   │ _UNSIGNED _BYTE                          │
 ├───────────────┼─────────────────┼──────────────────────────────────────────┤
 │ GLushort      │ unsigned short  │ _UNSIGNED INTEGER                        │
 ├───────────────┼─────────────────┼──────────────────────────────────────────┤
 │ GLuint        │ unsigned int    │ _UNSIGNED LONG                           │
 ├───────────────┼─────────────────┼──────────────────────────────────────────┤
 │ GLfloat       │ float           │ SINGLE                                   │
 ├───────────────┼─────────────────┼──────────────────────────────────────────┤
 │ GLclampf      │ float           │ SINGLE                                   │
 ├───────────────┼─────────────────┼──────────────────────────────────────────┤
 │ GLdouble      │ double          │ DOUBLE                                   │
 ├───────────────┼─────────────────┼──────────────────────────────────────────┤
 │ GLclampd      │ double          │ DOUBLE                                   │
 ├───────────────┼─────────────────┼──────────────────────────────────────────┤
 │ GLvoid   (1)  │ void            │ _OFFSET(any fixed lenght string or _BYTE │
 │               │                 │         array element)                   │
 └───────────────┴─────────────────┴──────────────────────────────────────────┘

 Note: If a parameter has an asterisk (*) in front, then it's a pointer to
       the designated OpenGL variable type, rather than a value of that type.
       Those must be passed using the _OFFSET(...) notation.

 E.g.  GLuint *anyParam is actually the offset of a _UNSIGNED LONG (~&)
       variable or array, which must be passed as _OFFSET(anyVar~&) or
       _OFFSET(anyArr~&()) respectively.

  (1)  This type is regularly only used for pointers (with asterisk (*)) to
       any byte sized memory data, hence _BYTE or fixed length strings.