Template:OpenGLTypesPlugin: Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
{{TextStart}}
{{FixedStart}}
  '''OpenGL'''     |    '''C/C++'''       |        '''QB64'''
┌───────────────┬─────────────────┬──────────────────────────────────────────┐
  ------------+------------------+----------------------
│    OpenGL    │      C/C++     │       QB64                             │
  GLenum     |  unsigned int    |  [[_UNSIGNED]] [[LONG]]
  ├───────────────┼─────────────────┼──────────────────────────────────────────┤
  GLboolean   |  unsigned char  |  [[_UNSIGNED]] [[_BYTE]]
  GLenum       │ unsigned int    _UNSIGNED LONG                           │
  GLbitfield unsigned int    |  [[_UNSIGNED]] [[LONG]]
├───────────────┼─────────────────┼──────────────────────────────────────────┤
  GLbyte     |  signed char    | [[_BYTE]]
  GLboolean     │ unsigned char  _UNSIGNED _BYTE                         │
  GLshort     |  short          | [[INTEGER]]
├───────────────┼─────────────────┼──────────────────────────────────────────┤
  GLint       |  int            | [[LONG]]
  GLbitfield   │ unsigned int    _UNSIGNED LONG                           │
  GLsizei     |  int            | [[LONG]]
├───────────────┼─────────────────┼──────────────────────────────────────────┤
  GLubyte     |  unsigned char  |  [[_UNSIGNED]] [[_BYTE]]
  GLbyte       │ signed char    │ _BYTE                                    │
  GLushort   |  unsigned short  |  [[_UNSIGNED]] [[INTEGER]]
  ├───────────────┼─────────────────┼──────────────────────────────────────────┤
  GLuint     |  unsigned int    |  [[_UNSIGNED]] [[LONG]]
  GLshort       │ short          │ INTEGER                                  │
  GLfloat     |  float          | [[SINGLE]]
  ├───────────────┼─────────────────┼──────────────────────────────────────────┤
  GLclampf   |  float          | [[SINGLE]]
  GLint         │ int            │ LONG                                    │
  GLdouble   |  double          | [[DOUBLE]]
  ├───────────────┼─────────────────┼──────────────────────────────────────────┤
  GLclampd   |  double          | [[DOUBLE]]
  GLsizei       │ int            │ LONG                                    │
  GLvoid  '''(1)'''| void            |  [[_OFFSET]](any fixed lenght string or [[_BYTE]]
  ├───────────────┼─────────────────┼──────────────────────────────────────────┤
                                          array element)
  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
  '''Note:''' If a parameter has an asterisk (*) in front, then it's a pointer to
Line 29: Line 45:
   '''(1)'''  This type is regularly only used for pointers (with asterisk (*)) to
   '''(1)'''  This type is regularly only used for pointers (with asterisk (*)) to
       any byte sized memory data, hence _BYTE or fixed length strings.
       any byte sized memory data, hence _BYTE or fixed length strings.
{{TextEnd}}
{{FixedEnd}}

Revision as of 20:38, 2 August 2022

 ┌───────────────┬─────────────────┬──────────────────────────────────────────┐
 │    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.