From QB64 Phoenix Edition Wiki
Jump to navigation
Jump to search
Table 2: Relations between the OpenGL variable types vs. C/C++ and QB64.
┌──────────────┬────────────────┬──────────────────────────────────────────┐
│ 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.
|