mirror of
https://github.com/QB64Official/qb64.git
synced 2024-08-22 03:15:07 +00:00
49 lines
1.8 KiB
Text
49 lines
1.8 KiB
Text
|
{{DISPLAYTITLE:_GL}}
|
||
|
In order to use OpenGL drawing commands, you must do so from inside a [[SUB]] procedure called '''_GL''', which enables the commands to be rendered.
|
||
|
|
||
|
|
||
|
{{PageSyntax}}
|
||
|
:[[SUB]] _GL
|
||
|
:: ''REM Your OpenGL code here
|
||
|
: [[END]] [[SUB]]
|
||
|
|
||
|
{{PageDescription}}
|
||
|
* 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]] 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==
|
||
|
|
||
|
{{CodeStart}} '' ''
|
||
|
{{Cl|DIM}} allowGL {{Cl|AS}} {{Cl|_BYTE}}
|
||
|
|
||
|
'perform startup routines like loading assets
|
||
|
|
||
|
allowGL = -1 'sets allowGL to true so SUB _GL can run
|
||
|
|
||
|
{{Cl|DO}}
|
||
|
{{Cl|_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.
|
||
|
{{Cl|LOOP}}
|
||
|
|
||
|
{{Cl|SUB}} {{Cl|_GL}}
|
||
|
{{Cl|IF}} NOT allowGL {{Cl|THEN}} {{Cl|EXIT}} {{Cl|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
|
||
|
{{Cl|END}} {{Cl|SUB}} '' ''
|
||
|
{{CodeEnd}}
|
||
|
|
||
|
|
||
|
{{PageSeeAlso}}
|
||
|
* [[http://www.qb64.org/wiki/Keyword_Reference_-_Alphabetical#glA List of OpenGL commands]] ''All commands in the list are valid. For those without a wiki page, usage follows OpenGL standards.''
|
||
|
* [[SUB]]
|
||
|
|
||
|
|
||
|
{{PageNavigation}}
|