GlAccum: Difference between revisions

From QB64 Phoenix Edition Wiki
Jump to navigation Jump to search
No edit summary
Tag: Reverted
No edit summary
 
(10 intermediate revisions by the same user not shown)
Line 4: Line 4:


{{PageSyntax}}
{{PageSyntax}}
: '''_glAccum''' GLenum {{Parameter|op}}, GLfloat {{Parameter|value}}
: [[_glAccum]] GLenum {{Parameter|op}}, GLfloat {{Parameter|value}}




Line 10: Line 10:
* OpenGL is using its own set of variable types to describe its command parameters.
* OpenGL is using its own set of variable types to describe its command parameters.
* Use the following table to find the respective QB64 [[Variable Types]].
* Use the following table to find the respective QB64 [[Variable Types]].
{{FixedStart}}
{{OpenGLTypesPlugin}}
+=====================================================================================================================+
|                                                      Numerical types                                                |
+======================+====================+============================+============================+===============+
| Type Name            | Type suffix symbol | Minimum value              | Maximum value              | Size in Bytes |
+----------------------+--------------------+----------------------------+----------------------------+---------------+
| _BIT                | `                  | -1                        | 0                          | 1/8          |
+----------------------+--------------------+----------------------------+----------------------------+---------------+
| _BIT * n            | `n                | -128                      | 127                        | n/8          |
+----------------------+--------------------+----------------------------+----------------------------+---------------+
| _UNSIGNED _BIT      | ~`                | 0                          | 1                          | 1/8          |
+----------------------+--------------------+----------------------------+----------------------------+---------------+
| _BYTE                | %%                | -128                      | 127                        | 1            |
+----------------------+--------------------+----------------------------+----------------------------+---------------+
| _UNSIGNED _BYTE      | ~%%                | 0                          | 255                        | 1            |
+----------------------+--------------------+----------------------------+----------------------------+---------------+
| INTEGER              | %                  | -32,768                    | 32,767                    | 2            |
+----------------------+--------------------+----------------------------+----------------------------+---------------+
| _UNSIGNED INTEGER    | ~%                | 0                          | 65,535                    | 2            |
+----------------------+--------------------+----------------------------+----------------------------+---------------+
| LONG                | &              | -2,147,483,648            | 2,147,483,647              | 4            |
+----------------------+--------------------+----------------------------+----------------------------+---------------+
| _UNSIGNED LONG      | ~&            | 0                          | 4,294,967,295              | 4            |
+----------------------+--------------------+----------------------------+----------------------------+---------------+
| _INTEGER64          | &&        | -9,223,372,036,854,775,808 | 9,223,372,036,854,775,807  | 8            |
+----------------------+--------------------+----------------------------+----------------------------+---------------+
| _UNSIGNED _INTEGER64 | ~&&        | 0                          | 18,446,744,073,709,551,615 | 8            |
+----------------------+--------------------+----------------------------+----------------------------+---------------+
| SINGLE              | ! or none          | -2.802597E-45              | +3.402823E+38              | 4            |
+----------------------+--------------------+----------------------------+----------------------------+---------------+
| DOUBLE              | #                  | -4.490656458412465E-324    | +1.797693134862310E+308    | 8            |
+----------------------+--------------------+----------------------------+----------------------------+---------------+
| _FLOAT              | ##                | -1.18E-4932                | +1.18E+4932                | 32(10 used)  |
+----------------------+--------------------+----------------------------+----------------------------+---------------+
| _OFFSET              | %&            | -9,223,372,036,854,775,808 | 9,223,372,036,854,775,807  | use LEN      |
+----------------------+--------------------+----------------------------+----------------------------+---------------+
| _UNSIGNED _OFFSET    | ~%&            | 0                          | 18,446,744,073,709,551,615 | use LEN      |
+----------------------+--------------------+----------------------------+----------------------------+---------------+
| _MEM                | none              |        This is an internal TYPE like memory variable.                  |
+----------------------+--------------------+-------------------------------------------------------------------------+
{{FixedEnd}}
{{TextStart}}
  '''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      |  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.
{{TextEnd}}




{{PageDescription}}
{{PageDescription}}
* OpenGL's documentation is available in several places, so we won't reproduce it here for another time.
* OpenGL's documentation is available in several places, so we won't reproduce it here for another time.
* The full description for this command can be found at [https://docs.microsoft.com/en-us/windows/win32/opengl/glaccum Microsoft Docs] and is also valid for QB64 usage.
* The full description for this command can be found at [https://learn.microsoft.com/en-us/windows/win32/opengl/glaccum Microsoft Docs] and is also valid for QB64 usage.




{{PageSeeAlso}}
{{PageSeeAlso}}
* [[_GL|SUB _GL]]
* [[_GL|SUB _GL]]
* [[_glBegin]], [[_glBlendFunc]], [[_glClear]], [[_glClearAccum]]
* [[_glCopyPixels]], [[_glEnd]], [https://learn.microsoft.com/en-us/windows/win32/opengl/glgetbooleanv--glgetdoublev--glgetfloatv--glgetintegerv _glGet], [[_glLogicOp]]
* [https://learn.microsoft.com/en-us/windows/win32/opengl/glpixelstore-functions _glPixelStore], [https://learn.microsoft.com/en-us/windows/win32/opengl/glpixeltransfer _glPixelTransfer], [[_glReadBuffer]], [[_glReadPixels]]
* [[_glScissor]], [[_glStencilOp]]




{{PageNavigation}}
{{PageNavigation}}
[[Category:Final]]

Latest revision as of 00:33, 28 January 2023

The _glAccum statement operates on the accumulation buffer.


Syntax

_glAccum GLenum op, GLfloat value


Parameters

  • OpenGL is using its own set of variable types to describe its command parameters.
  • Use the following table to find the respective QB64 Variable Types.
   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.


Description

  • OpenGL's documentation is available in several places, so we won't reproduce it here for another time.
  • The full description for this command can be found at Microsoft Docs and is also valid for QB64 usage.


See also



Navigation:
Main Page with Articles and Tutorials
Keyword Reference - Alphabetical
Keyword Reference - By usage
Report a broken link