Template:OpenGLTypesPlugin: Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{FixedStart}}
{{FixedStart}}
  ┌───────────────┬─────────────────┬──────────────────────────────────────────┐
  Table 2: Relations between the OpenGL variable types vs. C/C++ and QB64.
  │    OpenGL    │      C/C++      │       QB64                            
  ┌──────────────┬────────────────┬──────────────────────────────────────────┐
  ├───────────────┼─────────────────┼──────────────────────────────────────────┤
  │    '''OpenGL'''    │     '''C/C++'''     │     '''QB64'''                               
  │ GLenum       │ unsigned int   │ _UNSIGNED LONG                          │
  ├──────────────┼────────────────┼──────────────────────────────────────────┤
  ├───────────────┼─────────────────┼──────────────────────────────────────────┤
  │ GLenum       │ unsigned int   [[_UNSIGNED]] [[LONG]]                           │
  │ GLboolean     │ unsigned char   │ _UNSIGNED _BYTE                          │
  ├──────────────┼────────────────┼──────────────────────────────────────────┤
  ├───────────────┼─────────────────┼──────────────────────────────────────────┤
  │ GLboolean   │ unsigned char [[_UNSIGNED]] [[_BYTE]]                         │
  │ GLbitfield   │ unsigned int   │ _UNSIGNED LONG                          │
  ├──────────────┼────────────────┼──────────────────────────────────────────┤
  ├───────────────┼─────────────────┼──────────────────────────────────────────┤
  │ GLbitfield   │ unsigned int   [[_UNSIGNED]] [[LONG]]                           │
  │ GLbyte       │ signed char     │ _BYTE                                    │
  ├──────────────┼────────────────┼──────────────────────────────────────────┤
  ├───────────────┼─────────────────┼──────────────────────────────────────────┤
  │ GLbyte       │ signed char   [[_BYTE]]                                   │
  │ GLshort       │ short           │ INTEGER                                  │
  ├──────────────┼────────────────┼──────────────────────────────────────────┤
  ├───────────────┼─────────────────┼──────────────────────────────────────────┤
  │ GLshort     │ short         [[INTEGER]]                                 │
  │ GLint         │ int             │ LONG                                    │
  ├──────────────┼────────────────┼──────────────────────────────────────────┤
  ├───────────────┼─────────────────┼──────────────────────────────────────────┤
  │ GLint       │ int           [[LONG]]                                     │
  │ GLsizei       │ int             │ LONG                                    │
  ├──────────────┼────────────────┼──────────────────────────────────────────┤
  ├───────────────┼─────────────────┼──────────────────────────────────────────┤
  │ GLsizei     │ int           [[LONG]]                                     │
  │ GLubyte       │ unsigned char   │ _UNSIGNED _BYTE                          │
  ├──────────────┼────────────────┼──────────────────────────────────────────┤
  ├───────────────┼─────────────────┼──────────────────────────────────────────┤
  │ GLubyte     │ unsigned char [[_UNSIGNED]] [[_BYTE]]                         │
  │ GLushort     │ unsigned short │ _UNSIGNED INTEGER                        │
  ├──────────────┼────────────────┼──────────────────────────────────────────┤
  ├───────────────┼─────────────────┼──────────────────────────────────────────┤
  │ GLushort     │ unsigned short │ [[_UNSIGNED]] [[INTEGER]]                       │
  │ GLuint       │ unsigned int   │ _UNSIGNED LONG                          │
  ├──────────────┼────────────────┼──────────────────────────────────────────┤
  ├───────────────┼─────────────────┼──────────────────────────────────────────┤
  │ GLuint       │ unsigned int   [[_UNSIGNED]] [[LONG]]                           │
  │ GLfloat       │ float           │ SINGLE                                  │
  ├──────────────┼────────────────┼──────────────────────────────────────────┤
  ├───────────────┼─────────────────┼──────────────────────────────────────────┤
  │ GLfloat     │ float         [[SINGLE]]                                   │
  │ GLclampf     │ float           │ SINGLE                                  │
  ├──────────────┼────────────────┼──────────────────────────────────────────┤
  ├───────────────┼─────────────────┼──────────────────────────────────────────┤
  │ GLclampf     │ float         [[SINGLE]]                                   │
  │ GLdouble     │ double         │ DOUBLE                                  │
  ├──────────────┼────────────────┼──────────────────────────────────────────┤
  ├───────────────┼─────────────────┼──────────────────────────────────────────┤
  │ GLdouble     │ double         [[DOUBLE]]                                   │
  │ GLclampd     │ double         │ DOUBLE                                  │
  ├──────────────┼────────────────┼──────────────────────────────────────────┤
  ├───────────────┼─────────────────┼──────────────────────────────────────────┤
  │ GLclampd     │ double         [[DOUBLE]]                                   │
  │ GLvoid  (1) │ void           │ _OFFSET(any fixed lenght string or _BYTE │
  ├──────────────┼────────────────┼──────────────────────────────────────────┤
  │                               │        array element)                  │
  │ 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 44: Line 44:


   '''(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.
{{FixedEnd}}
{{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.