Template:OpenGLTypesPlugin: Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
m (Protected "Template:OpenGLTypesPlugin" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)))
No edit summary
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{TextStart}}
{{FixedStart}}
  '''OpenGL'''     |     '''C/C++'''       |        '''QB64'''
  Table 2: Relations between the OpenGL variable types vs. C/C++ and QB64.
  ------------+------------------+----------------------
┌──────────────┬────────────────┬──────────────────────────────────────────┐
  GLenum     |  unsigned int   |  [[_UNSIGNED]] [[LONG]]
│    '''OpenGL'''   │     '''C/C++'''     │    '''QB64'''                                 │
  GLboolean   |  unsigned char   | [[_UNSIGNED]] [[_BYTE]]
  ├──────────────┼────────────────┼──────────────────────────────────────────┤
  GLbitfield unsigned int   |  [[_UNSIGNED]] [[LONG]]
  GLenum       │ unsigned int   │ [[_UNSIGNED]] [[LONG]]                           │
  GLbyte     |  signed char     |  [[_BYTE]]
  ├──────────────┼────────────────┼──────────────────────────────────────────┤
  GLshort     |  short           |  [[INTEGER]]
GLboolean   │ unsigned char  [[_UNSIGNED]] [[_BYTE]]                         │
  GLint       |  int             |  [[LONG]]
├──────────────┼────────────────┼──────────────────────────────────────────┤
  GLsizei     |  int             |  [[LONG]]
  GLbitfield   │ unsigned int   │ [[_UNSIGNED]] [[LONG]]                           │
  GLubyte     |  unsigned char   | [[_UNSIGNED]] [[_BYTE]]
├──────────────┼────────────────┼──────────────────────────────────────────┤
  GLushort   |  unsigned short [[_UNSIGNED]] [[INTEGER]]
  GLbyte       │ signed char   │ [[_BYTE]]                                   │
  GLuint     |  unsigned int   |  [[_UNSIGNED]] [[LONG]]
  ├──────────────┼────────────────┼──────────────────────────────────────────┤
  GLfloat     |  float           |  [[SINGLE]]
GLshort     │ short         │ [[INTEGER]]                                 │
  GLclampf   |  float           |  [[SINGLE]]
  ├──────────────┼────────────────┼──────────────────────────────────────────┤
  GLdouble   |  double         |  [[DOUBLE]]
GLint       │ int           │ [[LONG]]                                     │
  GLclampd   |  double         |  [[DOUBLE]]
├──────────────┼────────────────┼──────────────────────────────────────────┤
  GLvoid     |  void           |  [[_OFFSET]](any fixed lenght string or [[_BYTE]]
  GLsizei     │ int           │ [[LONG]]                                     │
                                          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
       the designated OpenGL variable type, rather than a value of that type.
       the designated OpenGL variable type, rather than a value of that type.
Line 26: Line 42:
       variable or array, which must be passed as [[_OFFSET]](anyVar~&) or
       variable or array, which must be passed as [[_OFFSET]](anyVar~&) or
       [[_OFFSET]](anyArr~&()) respectively.
       [[_OFFSET]](anyArr~&()) respectively.
{{TextEnd}}
 
  '''(1)'''  This type is regularly only used for pointers (with asterisk (*)) to
      any byte sized memory data, hence [[_BYTE]] or fixed length strings.
{{FixedEnd}}

Latest revision as of 22:25, 11 December 2022

   Table 2: Relations between the OpenGL variable types vs. C/C++ and QB64.
 ┌──────────────┬────────────────┬──────────────────────────────────────────┐
 │    OpenGLC/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.