mirror of
https://github.com/QB64Official/qb64.git
synced 2024-09-28 11:17:47 +00:00
46 lines
1.5 KiB
Markdown
46 lines
1.5 KiB
Markdown
In order to use OpenGL drawing commands, you must do so from inside a [SUB](SUB) procedure called **_GL**, which enables the commands to be rendered.
|
|
|
|
## Syntax
|
|
|
|
> [SUB](SUB) _GL
|
|
> *REM Your OpenGL code here
|
|
> [END](END) [SUB](SUB)
|
|
|
|
## Description
|
|
|
|
* OpenGL commands are valid outside of **SUB _GL**, as long as the sub procedure exists in your code.
|
|
* Attempting to use OpenGL commands without having **SUB _GL** in a program will result in a **Syntax error**, even if the syntax is valid.
|
|
* SUB **_GL** cannot be invoked manually. The code inside it will be called automatically at approximately 60 frames per second.
|
|
* Using [INPUT](INPUT) inside SUB **_GL** will crash your program.
|
|
* If your program needs to perform any operations before SUB _GL must be run, it is recommended to use a shared variable as a flag to allow SUB _GL's contents to be run. See example below.
|
|
|
|
## Example
|
|
|
|
```vb
|
|
|
|
DIM allowGL AS _BYTE
|
|
|
|
'perform startup routines like loading assets
|
|
|
|
allowGL = -1 'sets allowGL to true so SUB _GL can run
|
|
|
|
DO
|
|
_LIMIT 1 'runs the main loop at 1 cycle per second
|
|
'notice how the main loop doesn't do anything, as SUB _GL will be running
|
|
'continuously.
|
|
LOOP
|
|
|
|
SUB _GL
|
|
IF NOT allowGL THEN EXIT SUB 'used to bypass running the code below until
|
|
' startup routines are done in the main module
|
|
|
|
'OpenGL code starts here
|
|
'The code in this area will be run automatically at ~60fps
|
|
END SUB
|
|
|
|
```
|
|
|
|
## See Also
|
|
|
|
* [Keyword Reference - Alphabetical#glA](Keyword-Reference-(Alphabetical)#glA)
|
|
* [SUB](SUB)
|