Browse Source

Parse enum descriptions and value descriptions (#2208)

* Parse enum descriptions and value descriptions

* Put braces on newline

* Properly escape strings

* Realise that XML doesn't actually need backslash escapes

* Replace FPrintfEscapes with EscapeBackslashes

* Remove #include <stdarg.h>

* Update EscapeBackslashes description
pull/2217/head
Benedek Szilvasy 3 years ago
committed by GitHub
parent
commit
fffd78e7c8
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 1518 additions and 1457 deletions
  1. +325
    -315
      parser/raylib_api.json
  2. +325
    -315
      parser/raylib_api.lua
  3. +493
    -483
      parser/raylib_api.txt
  4. +317
    -313
      parser/raylib_api.xml
  5. +58
    -31
      parser/raylib_parser.c

+ 325
- 315
parser/raylib_api.json
File diff suppressed because it is too large
View File


+ 325
- 315
parser/raylib_api.lua
File diff suppressed because it is too large
View File


+ 493
- 483
parser/raylib_api.txt
File diff suppressed because it is too large
View File


+ 317
- 313
parser/raylib_api.xml View File

@ -208,341 +208,341 @@
</Struct>
</Structs>
<Enums count="21">
<Enum name="ConfigFlags" valueCount="14" desc="">
<Value name="FLAG_VSYNC_HINT" integer="64" desc="" />
<Value name="FLAG_FULLSCREEN_MODE" integer="2" desc="" />
<Value name="FLAG_WINDOW_RESIZABLE" integer="4" desc="" />
<Value name="FLAG_WINDOW_UNDECORATED" integer="8" desc="" />
<Value name="FLAG_WINDOW_HIDDEN" integer="128" desc="" />
<Value name="FLAG_WINDOW_MINIMIZED" integer="512" desc="" />
<Value name="FLAG_WINDOW_MAXIMIZED" integer="1024" desc="" />
<Value name="FLAG_WINDOW_UNFOCUSED" integer="2048" desc="" />
<Value name="FLAG_WINDOW_TOPMOST" integer="4096" desc="" />
<Value name="FLAG_WINDOW_ALWAYS_RUN" integer="256" desc="" />
<Value name="FLAG_WINDOW_TRANSPARENT" integer="16" desc="" />
<Value name="FLAG_WINDOW_HIGHDPI" integer="8192" desc="" />
<Value name="FLAG_MSAA_4X_HINT" integer="32" desc="" />
<Value name="FLAG_INTERLACED_HINT" integer="65536" desc="" />
<Enum name="ConfigFlags" valueCount="14" desc="System/Window config flags">
<Value name="FLAG_VSYNC_HINT" integer="64" desc="Set to try enabling V-Sync on GPU" />
<Value name="FLAG_FULLSCREEN_MODE" integer="2" desc="Set to run program in fullscreen" />
<Value name="FLAG_WINDOW_RESIZABLE" integer="4" desc="Set to allow resizable window" />
<Value name="FLAG_WINDOW_UNDECORATED" integer="8" desc="Set to disable window decoration (frame and buttons)" />
<Value name="FLAG_WINDOW_HIDDEN" integer="128" desc="Set to hide window" />
<Value name="FLAG_WINDOW_MINIMIZED" integer="512" desc="Set to minimize window (iconify)" />
<Value name="FLAG_WINDOW_MAXIMIZED" integer="1024" desc="Set to maximize window (expanded to monitor)" />
<Value name="FLAG_WINDOW_UNFOCUSED" integer="2048" desc="Set to window non focused" />
<Value name="FLAG_WINDOW_TOPMOST" integer="4096" desc="Set to window always on top" />
<Value name="FLAG_WINDOW_ALWAYS_RUN" integer="256" desc="Set to allow windows running while minimized" />
<Value name="FLAG_WINDOW_TRANSPARENT" integer="16" desc="Set to allow transparent framebuffer" />
<Value name="FLAG_WINDOW_HIGHDPI" integer="8192" desc="Set to support HighDPI" />
<Value name="FLAG_MSAA_4X_HINT" integer="32" desc="Set to try enabling MSAA 4X" />
<Value name="FLAG_INTERLACED_HINT" integer="65536" desc="Set to try enabling interlaced video format (for V3D)" />
</Enum>
<Enum name="TraceLogLevel" valueCount="8" desc="">
<Value name="LOG_ALL" integer="0" desc="" />
<Value name="LOG_TRACE" integer="1" desc="" />
<Value name="LOG_DEBUG" integer="2" desc="" />
<Value name="LOG_INFO" integer="3" desc="" />
<Value name="LOG_WARNING" integer="4" desc="" />
<Value name="LOG_ERROR" integer="5" desc="" />
<Value name="LOG_FATAL" integer="6" desc="" />
<Value name="LOG_NONE" integer="7" desc="" />
<Enum name="TraceLogLevel" valueCount="8" desc="Trace log level">
<Value name="LOG_ALL" integer="0" desc="Display all logs" />
<Value name="LOG_TRACE" integer="1" desc="Trace logging, intended for internal use only" />
<Value name="LOG_DEBUG" integer="2" desc="Debug logging, used for internal debugging, it should be disabled on release builds" />
<Value name="LOG_INFO" integer="3" desc="Info logging, used for program execution info" />
<Value name="LOG_WARNING" integer="4" desc="Warning logging, used on recoverable failures" />
<Value name="LOG_ERROR" integer="5" desc="Error logging, used on unrecoverable failures" />
<Value name="LOG_FATAL" integer="6" desc="Fatal logging, used to abort program: exit(EXIT_FAILURE)" />
<Value name="LOG_NONE" integer="7" desc="Disable logging" />
</Enum>
<Enum name="KeyboardKey" valueCount="110" desc="">
<Value name="KEY_NULL" integer="0" desc="" />
<Value name="KEY_APOSTROPHE" integer="39" desc="" />
<Value name="KEY_COMMA" integer="44" desc="" />
<Value name="KEY_MINUS" integer="45" desc="" />
<Value name="KEY_PERIOD" integer="46" desc="" />
<Value name="KEY_SLASH" integer="47" desc="" />
<Value name="KEY_ZERO" integer="48" desc="" />
<Value name="KEY_ONE" integer="49" desc="" />
<Value name="KEY_TWO" integer="50" desc="" />
<Value name="KEY_THREE" integer="51" desc="" />
<Value name="KEY_FOUR" integer="52" desc="" />
<Value name="KEY_FIVE" integer="53" desc="" />
<Value name="KEY_SIX" integer="54" desc="" />
<Value name="KEY_SEVEN" integer="55" desc="" />
<Value name="KEY_EIGHT" integer="56" desc="" />
<Value name="KEY_NINE" integer="57" desc="" />
<Value name="KEY_SEMICOLON" integer="59" desc="" />
<Value name="KEY_EQUAL" integer="61" desc="" />
<Value name="KEY_A" integer="65" desc="" />
<Value name="KEY_B" integer="66" desc="" />
<Value name="KEY_C" integer="67" desc="" />
<Value name="KEY_D" integer="68" desc="" />
<Value name="KEY_E" integer="69" desc="" />
<Value name="KEY_F" integer="70" desc="" />
<Value name="KEY_G" integer="71" desc="" />
<Value name="KEY_H" integer="72" desc="" />
<Value name="KEY_I" integer="73" desc="" />
<Value name="KEY_J" integer="74" desc="" />
<Value name="KEY_K" integer="75" desc="" />
<Value name="KEY_L" integer="76" desc="" />
<Value name="KEY_M" integer="77" desc="" />
<Value name="KEY_N" integer="78" desc="" />
<Value name="KEY_O" integer="79" desc="" />
<Value name="KEY_P" integer="80" desc="" />
<Value name="KEY_Q" integer="81" desc="" />
<Value name="KEY_R" integer="82" desc="" />
<Value name="KEY_S" integer="83" desc="" />
<Value name="KEY_T" integer="84" desc="" />
<Value name="KEY_U" integer="85" desc="" />
<Value name="KEY_V" integer="86" desc="" />
<Value name="KEY_W" integer="87" desc="" />
<Value name="KEY_X" integer="88" desc="" />
<Value name="KEY_Y" integer="89" desc="" />
<Value name="KEY_Z" integer="90" desc="" />
<Value name="KEY_LEFT_BRACKET" integer="91" desc="" />
<Value name="KEY_BACKSLASH" integer="92" desc="" />
<Value name="KEY_RIGHT_BRACKET" integer="93" desc="" />
<Value name="KEY_GRAVE" integer="96" desc="" />
<Value name="KEY_SPACE" integer="32" desc="" />
<Value name="KEY_ESCAPE" integer="256" desc="" />
<Value name="KEY_ENTER" integer="257" desc="" />
<Value name="KEY_TAB" integer="258" desc="" />
<Value name="KEY_BACKSPACE" integer="259" desc="" />
<Value name="KEY_INSERT" integer="260" desc="" />
<Value name="KEY_DELETE" integer="261" desc="" />
<Value name="KEY_RIGHT" integer="262" desc="" />
<Value name="KEY_LEFT" integer="263" desc="" />
<Value name="KEY_DOWN" integer="264" desc="" />
<Value name="KEY_UP" integer="265" desc="" />
<Value name="KEY_PAGE_UP" integer="266" desc="" />
<Value name="KEY_PAGE_DOWN" integer="267" desc="" />
<Value name="KEY_HOME" integer="268" desc="" />
<Value name="KEY_END" integer="269" desc="" />
<Value name="KEY_CAPS_LOCK" integer="280" desc="" />
<Value name="KEY_SCROLL_LOCK" integer="281" desc="" />
<Value name="KEY_NUM_LOCK" integer="282" desc="" />
<Value name="KEY_PRINT_SCREEN" integer="283" desc="" />
<Value name="KEY_PAUSE" integer="284" desc="" />
<Value name="KEY_F1" integer="290" desc="" />
<Value name="KEY_F2" integer="291" desc="" />
<Value name="KEY_F3" integer="292" desc="" />
<Value name="KEY_F4" integer="293" desc="" />
<Value name="KEY_F5" integer="294" desc="" />
<Value name="KEY_F6" integer="295" desc="" />
<Value name="KEY_F7" integer="296" desc="" />
<Value name="KEY_F8" integer="297" desc="" />
<Value name="KEY_F9" integer="298" desc="" />
<Value name="KEY_F10" integer="299" desc="" />
<Value name="KEY_F11" integer="300" desc="" />
<Value name="KEY_F12" integer="301" desc="" />
<Value name="KEY_LEFT_SHIFT" integer="340" desc="" />
<Value name="KEY_LEFT_CONTROL" integer="341" desc="" />
<Value name="KEY_LEFT_ALT" integer="342" desc="" />
<Value name="KEY_LEFT_SUPER" integer="343" desc="" />
<Value name="KEY_RIGHT_SHIFT" integer="344" desc="" />
<Value name="KEY_RIGHT_CONTROL" integer="345" desc="" />
<Value name="KEY_RIGHT_ALT" integer="346" desc="" />
<Value name="KEY_RIGHT_SUPER" integer="347" desc="" />
<Value name="KEY_KB_MENU" integer="348" desc="" />
<Value name="KEY_KP_0" integer="320" desc="" />
<Value name="KEY_KP_1" integer="321" desc="" />
<Value name="KEY_KP_2" integer="322" desc="" />
<Value name="KEY_KP_3" integer="323" desc="" />
<Value name="KEY_KP_4" integer="324" desc="" />
<Value name="KEY_KP_5" integer="325" desc="" />
<Value name="KEY_KP_6" integer="326" desc="" />
<Value name="KEY_KP_7" integer="327" desc="" />
<Value name="KEY_KP_8" integer="328" desc="" />
<Value name="KEY_KP_9" integer="329" desc="" />
<Value name="KEY_KP_DECIMAL" integer="330" desc="" />
<Value name="KEY_KP_DIVIDE" integer="331" desc="" />
<Value name="KEY_KP_MULTIPLY" integer="332" desc="" />
<Value name="KEY_KP_SUBTRACT" integer="333" desc="" />
<Value name="KEY_KP_ADD" integer="334" desc="" />
<Value name="KEY_KP_ENTER" integer="335" desc="" />
<Value name="KEY_KP_EQUAL" integer="336" desc="" />
<Value name="KEY_BACK" integer="4" desc="" />
<Value name="KEY_MENU" integer="82" desc="" />
<Value name="KEY_VOLUME_UP" integer="24" desc="" />
<Value name="KEY_VOLUME_DOWN" integer="25" desc="" />
<Enum name="KeyboardKey" valueCount="110" desc="Keyboard keys (US keyboard layout)">
<Value name="KEY_NULL" integer="0" desc="Key: NULL, used for no key pressed" />
<Value name="KEY_APOSTROPHE" integer="39" desc="Key: '" />
<Value name="KEY_COMMA" integer="44" desc="Key: ," />
<Value name="KEY_MINUS" integer="45" desc="Key: -" />
<Value name="KEY_PERIOD" integer="46" desc="Key: ." />
<Value name="KEY_SLASH" integer="47" desc="Key: /" />
<Value name="KEY_ZERO" integer="48" desc="Key: 0" />
<Value name="KEY_ONE" integer="49" desc="Key: 1" />
<Value name="KEY_TWO" integer="50" desc="Key: 2" />
<Value name="KEY_THREE" integer="51" desc="Key: 3" />
<Value name="KEY_FOUR" integer="52" desc="Key: 4" />
<Value name="KEY_FIVE" integer="53" desc="Key: 5" />
<Value name="KEY_SIX" integer="54" desc="Key: 6" />
<Value name="KEY_SEVEN" integer="55" desc="Key: 7" />
<Value name="KEY_EIGHT" integer="56" desc="Key: 8" />
<Value name="KEY_NINE" integer="57" desc="Key: 9" />
<Value name="KEY_SEMICOLON" integer="59" desc="Key: ;" />
<Value name="KEY_EQUAL" integer="61" desc="Key: =" />
<Value name="KEY_A" integer="65" desc="Key: A | a" />
<Value name="KEY_B" integer="66" desc="Key: B | b" />
<Value name="KEY_C" integer="67" desc="Key: C | c" />
<Value name="KEY_D" integer="68" desc="Key: D | d" />
<Value name="KEY_E" integer="69" desc="Key: E | e" />
<Value name="KEY_F" integer="70" desc="Key: F | f" />
<Value name="KEY_G" integer="71" desc="Key: G | g" />
<Value name="KEY_H" integer="72" desc="Key: H | h" />
<Value name="KEY_I" integer="73" desc="Key: I | i" />
<Value name="KEY_J" integer="74" desc="Key: J | j" />
<Value name="KEY_K" integer="75" desc="Key: K | k" />
<Value name="KEY_L" integer="76" desc="Key: L | l" />
<Value name="KEY_M" integer="77" desc="Key: M | m" />
<Value name="KEY_N" integer="78" desc="Key: N | n" />
<Value name="KEY_O" integer="79" desc="Key: O | o" />
<Value name="KEY_P" integer="80" desc="Key: P | p" />
<Value name="KEY_Q" integer="81" desc="Key: Q | q" />
<Value name="KEY_R" integer="82" desc="Key: R | r" />
<Value name="KEY_S" integer="83" desc="Key: S | s" />
<Value name="KEY_T" integer="84" desc="Key: T | t" />
<Value name="KEY_U" integer="85" desc="Key: U | u" />
<Value name="KEY_V" integer="86" desc="Key: V | v" />
<Value name="KEY_W" integer="87" desc="Key: W | w" />
<Value name="KEY_X" integer="88" desc="Key: X | x" />
<Value name="KEY_Y" integer="89" desc="Key: Y | y" />
<Value name="KEY_Z" integer="90" desc="Key: Z | z" />
<Value name="KEY_LEFT_BRACKET" integer="91" desc="Key: [" />
<Value name="KEY_BACKSLASH" integer="92" desc="Key: '\'" />
<Value name="KEY_RIGHT_BRACKET" integer="93" desc="Key: ]" />
<Value name="KEY_GRAVE" integer="96" desc="Key: `" />
<Value name="KEY_SPACE" integer="32" desc="Key: Space" />
<Value name="KEY_ESCAPE" integer="256" desc="Key: Esc" />
<Value name="KEY_ENTER" integer="257" desc="Key: Enter" />
<Value name="KEY_TAB" integer="258" desc="Key: Tab" />
<Value name="KEY_BACKSPACE" integer="259" desc="Key: Backspace" />
<Value name="KEY_INSERT" integer="260" desc="Key: Ins" />
<Value name="KEY_DELETE" integer="261" desc="Key: Del" />
<Value name="KEY_RIGHT" integer="262" desc="Key: Cursor right" />
<Value name="KEY_LEFT" integer="263" desc="Key: Cursor left" />
<Value name="KEY_DOWN" integer="264" desc="Key: Cursor down" />
<Value name="KEY_UP" integer="265" desc="Key: Cursor up" />
<Value name="KEY_PAGE_UP" integer="266" desc="Key: Page up" />
<Value name="KEY_PAGE_DOWN" integer="267" desc="Key: Page down" />
<Value name="KEY_HOME" integer="268" desc="Key: Home" />
<Value name="KEY_END" integer="269" desc="Key: End" />
<Value name="KEY_CAPS_LOCK" integer="280" desc="Key: Caps lock" />
<Value name="KEY_SCROLL_LOCK" integer="281" desc="Key: Scroll down" />
<Value name="KEY_NUM_LOCK" integer="282" desc="Key: Num lock" />
<Value name="KEY_PRINT_SCREEN" integer="283" desc="Key: Print screen" />
<Value name="KEY_PAUSE" integer="284" desc="Key: Pause" />
<Value name="KEY_F1" integer="290" desc="Key: F1" />
<Value name="KEY_F2" integer="291" desc="Key: F2" />
<Value name="KEY_F3" integer="292" desc="Key: F3" />
<Value name="KEY_F4" integer="293" desc="Key: F4" />
<Value name="KEY_F5" integer="294" desc="Key: F5" />
<Value name="KEY_F6" integer="295" desc="Key: F6" />
<Value name="KEY_F7" integer="296" desc="Key: F7" />
<Value name="KEY_F8" integer="297" desc="Key: F8" />
<Value name="KEY_F9" integer="298" desc="Key: F9" />
<Value name="KEY_F10" integer="299" desc="Key: F10" />
<Value name="KEY_F11" integer="300" desc="Key: F11" />
<Value name="KEY_F12" integer="301" desc="Key: F12" />
<Value name="KEY_LEFT_SHIFT" integer="340" desc="Key: Shift left" />
<Value name="KEY_LEFT_CONTROL" integer="341" desc="Key: Control left" />
<Value name="KEY_LEFT_ALT" integer="342" desc="Key: Alt left" />
<Value name="KEY_LEFT_SUPER" integer="343" desc="Key: Super left" />
<Value name="KEY_RIGHT_SHIFT" integer="344" desc="Key: Shift right" />
<Value name="KEY_RIGHT_CONTROL" integer="345" desc="Key: Control right" />
<Value name="KEY_RIGHT_ALT" integer="346" desc="Key: Alt right" />
<Value name="KEY_RIGHT_SUPER" integer="347" desc="Key: Super right" />
<Value name="KEY_KB_MENU" integer="348" desc="Key: KB menu" />
<Value name="KEY_KP_0" integer="320" desc="Key: Keypad 0" />
<Value name="KEY_KP_1" integer="321" desc="Key: Keypad 1" />
<Value name="KEY_KP_2" integer="322" desc="Key: Keypad 2" />
<Value name="KEY_KP_3" integer="323" desc="Key: Keypad 3" />
<Value name="KEY_KP_4" integer="324" desc="Key: Keypad 4" />
<Value name="KEY_KP_5" integer="325" desc="Key: Keypad 5" />
<Value name="KEY_KP_6" integer="326" desc="Key: Keypad 6" />
<Value name="KEY_KP_7" integer="327" desc="Key: Keypad 7" />
<Value name="KEY_KP_8" integer="328" desc="Key: Keypad 8" />
<Value name="KEY_KP_9" integer="329" desc="Key: Keypad 9" />
<Value name="KEY_KP_DECIMAL" integer="330" desc="Key: Keypad ." />
<Value name="KEY_KP_DIVIDE" integer="331" desc="Key: Keypad /" />
<Value name="KEY_KP_MULTIPLY" integer="332" desc="Key: Keypad *" />
<Value name="KEY_KP_SUBTRACT" integer="333" desc="Key: Keypad -" />
<Value name="KEY_KP_ADD" integer="334" desc="Key: Keypad +" />
<Value name="KEY_KP_ENTER" integer="335" desc="Key: Keypad Enter" />
<Value name="KEY_KP_EQUAL" integer="336" desc="Key: Keypad =" />
<Value name="KEY_BACK" integer="4" desc="Key: Android back button" />
<Value name="KEY_MENU" integer="82" desc="Key: Android menu button" />
<Value name="KEY_VOLUME_UP" integer="24" desc="Key: Android volume up button" />
<Value name="KEY_VOLUME_DOWN" integer="25" desc="Key: Android volume down button" />
</Enum>
<Enum name="MouseButton" valueCount="7" desc="">
<Value name="MOUSE_BUTTON_LEFT" integer="0" desc="" />
<Value name="MOUSE_BUTTON_RIGHT" integer="1" desc="" />
<Value name="MOUSE_BUTTON_MIDDLE" integer="2" desc="" />
<Value name="MOUSE_BUTTON_SIDE" integer="3" desc="" />
<Value name="MOUSE_BUTTON_EXTRA" integer="4" desc="" />
<Value name="MOUSE_BUTTON_FORWARD" integer="5" desc="" />
<Value name="MOUSE_BUTTON_BACK" integer="6" desc="" />
<Enum name="MouseButton" valueCount="7" desc="Mouse buttons">
<Value name="MOUSE_BUTTON_LEFT" integer="0" desc="Mouse button left" />
<Value name="MOUSE_BUTTON_RIGHT" integer="1" desc="Mouse button right" />
<Value name="MOUSE_BUTTON_MIDDLE" integer="2" desc="Mouse button middle (pressed wheel)" />
<Value name="MOUSE_BUTTON_SIDE" integer="3" desc="Mouse button side (advanced mouse device)" />
<Value name="MOUSE_BUTTON_EXTRA" integer="4" desc="Mouse button extra (advanced mouse device)" />
<Value name="MOUSE_BUTTON_FORWARD" integer="5" desc="Mouse button fordward (advanced mouse device)" />
<Value name="MOUSE_BUTTON_BACK" integer="6" desc="Mouse button back (advanced mouse device)" />
</Enum>
<Enum name="MouseCursor" valueCount="11" desc="">
<Value name="MOUSE_CURSOR_DEFAULT" integer="0" desc="" />
<Value name="MOUSE_CURSOR_ARROW" integer="1" desc="" />
<Value name="MOUSE_CURSOR_IBEAM" integer="2" desc="" />
<Value name="MOUSE_CURSOR_CROSSHAIR" integer="3" desc="" />
<Value name="MOUSE_CURSOR_POINTING_HAND" integer="4" desc="" />
<Value name="MOUSE_CURSOR_RESIZE_EW" integer="5" desc="" />
<Value name="MOUSE_CURSOR_RESIZE_NS" integer="6" desc="" />
<Value name="MOUSE_CURSOR_RESIZE_NWSE" integer="7" desc="" />
<Value name="MOUSE_CURSOR_RESIZE_NESW" integer="8" desc="" />
<Value name="MOUSE_CURSOR_RESIZE_ALL" integer="9" desc="" />
<Value name="MOUSE_CURSOR_NOT_ALLOWED" integer="10" desc="" />
<Enum name="MouseCursor" valueCount="11" desc="Mouse cursor">
<Value name="MOUSE_CURSOR_DEFAULT" integer="0" desc="Default pointer shape" />
<Value name="MOUSE_CURSOR_ARROW" integer="1" desc="Arrow shape" />
<Value name="MOUSE_CURSOR_IBEAM" integer="2" desc="Text writing cursor shape" />
<Value name="MOUSE_CURSOR_CROSSHAIR" integer="3" desc="Cross shape" />
<Value name="MOUSE_CURSOR_POINTING_HAND" integer="4" desc="Pointing hand cursor" />
<Value name="MOUSE_CURSOR_RESIZE_EW" integer="5" desc="Horizontal resize/move arrow shape" />
<Value name="MOUSE_CURSOR_RESIZE_NS" integer="6" desc="Vertical resize/move arrow shape" />
<Value name="MOUSE_CURSOR_RESIZE_NWSE" integer="7" desc="Top-left to bottom-right diagonal resize/move arrow shape" />
<Value name="MOUSE_CURSOR_RESIZE_NESW" integer="8" desc="The top-right to bottom-left diagonal resize/move arrow shape" />
<Value name="MOUSE_CURSOR_RESIZE_ALL" integer="9" desc="The omni-directional resize/move cursor shape" />
<Value name="MOUSE_CURSOR_NOT_ALLOWED" integer="10" desc="The operation-not-allowed shape" />
</Enum>
<Enum name="GamepadButton" valueCount="18" desc="">
<Value name="GAMEPAD_BUTTON_UNKNOWN" integer="0" desc="" />
<Value name="GAMEPAD_BUTTON_LEFT_FACE_UP" integer="1" desc="" />
<Value name="GAMEPAD_BUTTON_LEFT_FACE_RIGHT" integer="2" desc="" />
<Value name="GAMEPAD_BUTTON_LEFT_FACE_DOWN" integer="3" desc="" />
<Value name="GAMEPAD_BUTTON_LEFT_FACE_LEFT" integer="4" desc="" />
<Value name="GAMEPAD_BUTTON_RIGHT_FACE_UP" integer="5" desc="" />
<Value name="GAMEPAD_BUTTON_RIGHT_FACE_RIGHT" integer="6" desc="" />
<Value name="GAMEPAD_BUTTON_RIGHT_FACE_DOWN" integer="7" desc="" />
<Value name="GAMEPAD_BUTTON_RIGHT_FACE_LEFT" integer="8" desc="" />
<Value name="GAMEPAD_BUTTON_LEFT_TRIGGER_1" integer="9" desc="" />
<Value name="GAMEPAD_BUTTON_LEFT_TRIGGER_2" integer="10" desc="" />
<Value name="GAMEPAD_BUTTON_RIGHT_TRIGGER_1" integer="11" desc="" />
<Value name="GAMEPAD_BUTTON_RIGHT_TRIGGER_2" integer="12" desc="" />
<Value name="GAMEPAD_BUTTON_MIDDLE_LEFT" integer="13" desc="" />
<Value name="GAMEPAD_BUTTON_MIDDLE" integer="14" desc="" />
<Value name="GAMEPAD_BUTTON_MIDDLE_RIGHT" integer="15" desc="" />
<Value name="GAMEPAD_BUTTON_LEFT_THUMB" integer="16" desc="" />
<Value name="GAMEPAD_BUTTON_RIGHT_THUMB" integer="17" desc="" />
<Enum name="GamepadButton" valueCount="18" desc="Gamepad buttons">
<Value name="GAMEPAD_BUTTON_UNKNOWN" integer="0" desc="Unknown button, just for error checking" />
<Value name="GAMEPAD_BUTTON_LEFT_FACE_UP" integer="1" desc="Gamepad left DPAD up button" />
<Value name="GAMEPAD_BUTTON_LEFT_FACE_RIGHT" integer="2" desc="Gamepad left DPAD right button" />
<Value name="GAMEPAD_BUTTON_LEFT_FACE_DOWN" integer="3" desc="Gamepad left DPAD down button" />
<Value name="GAMEPAD_BUTTON_LEFT_FACE_LEFT" integer="4" desc="Gamepad left DPAD left button" />
<Value name="GAMEPAD_BUTTON_RIGHT_FACE_UP" integer="5" desc="Gamepad right button up (i.e. PS3: Triangle, Xbox: Y)" />
<Value name="GAMEPAD_BUTTON_RIGHT_FACE_RIGHT" integer="6" desc="Gamepad right button right (i.e. PS3: Square, Xbox: X)" />
<Value name="GAMEPAD_BUTTON_RIGHT_FACE_DOWN" integer="7" desc="Gamepad right button down (i.e. PS3: Cross, Xbox: A)" />
<Value name="GAMEPAD_BUTTON_RIGHT_FACE_LEFT" integer="8" desc="Gamepad right button left (i.e. PS3: Circle, Xbox: B)" />
<Value name="GAMEPAD_BUTTON_LEFT_TRIGGER_1" integer="9" desc="Gamepad top/back trigger left (first), it could be a trailing button" />
<Value name="GAMEPAD_BUTTON_LEFT_TRIGGER_2" integer="10" desc="Gamepad top/back trigger left (second), it could be a trailing button" />
<Value name="GAMEPAD_BUTTON_RIGHT_TRIGGER_1" integer="11" desc="Gamepad top/back trigger right (one), it could be a trailing button" />
<Value name="GAMEPAD_BUTTON_RIGHT_TRIGGER_2" integer="12" desc="Gamepad top/back trigger right (second), it could be a trailing button" />
<Value name="GAMEPAD_BUTTON_MIDDLE_LEFT" integer="13" desc="Gamepad center buttons, left one (i.e. PS3: Select)" />
<Value name="GAMEPAD_BUTTON_MIDDLE" integer="14" desc="Gamepad center buttons, middle one (i.e. PS3: PS, Xbox: XBOX)" />
<Value name="GAMEPAD_BUTTON_MIDDLE_RIGHT" integer="15" desc="Gamepad center buttons, right one (i.e. PS3: Start)" />
<Value name="GAMEPAD_BUTTON_LEFT_THUMB" integer="16" desc="Gamepad joystick pressed button left" />
<Value name="GAMEPAD_BUTTON_RIGHT_THUMB" integer="17" desc="Gamepad joystick pressed button right" />
</Enum>
<Enum name="GamepadAxis" valueCount="6" desc="">
<Value name="GAMEPAD_AXIS_LEFT_X" integer="0" desc="" />
<Value name="GAMEPAD_AXIS_LEFT_Y" integer="1" desc="" />
<Value name="GAMEPAD_AXIS_RIGHT_X" integer="2" desc="" />
<Value name="GAMEPAD_AXIS_RIGHT_Y" integer="3" desc="" />
<Value name="GAMEPAD_AXIS_LEFT_TRIGGER" integer="4" desc="" />
<Value name="GAMEPAD_AXIS_RIGHT_TRIGGER" integer="5" desc="" />
<Enum name="GamepadAxis" valueCount="6" desc="Gamepad axis">
<Value name="GAMEPAD_AXIS_LEFT_X" integer="0" desc="Gamepad left stick X axis" />
<Value name="GAMEPAD_AXIS_LEFT_Y" integer="1" desc="Gamepad left stick Y axis" />
<Value name="GAMEPAD_AXIS_RIGHT_X" integer="2" desc="Gamepad right stick X axis" />
<Value name="GAMEPAD_AXIS_RIGHT_Y" integer="3" desc="Gamepad right stick Y axis" />
<Value name="GAMEPAD_AXIS_LEFT_TRIGGER" integer="4" desc="Gamepad back trigger left, pressure level: [1..-1]" />
<Value name="GAMEPAD_AXIS_RIGHT_TRIGGER" integer="5" desc="Gamepad back trigger right, pressure level: [1..-1]" />
</Enum>
<Enum name="MaterialMapIndex" valueCount="11" desc="">
<Value name="MATERIAL_MAP_ALBEDO" integer="0" desc="" />
<Value name="MATERIAL_MAP_METALNESS" integer="1" desc="" />
<Value name="MATERIAL_MAP_NORMAL" integer="2" desc="" />
<Value name="MATERIAL_MAP_ROUGHNESS" integer="3" desc="" />
<Value name="MATERIAL_MAP_OCCLUSION" integer="4" desc="" />
<Value name="MATERIAL_MAP_EMISSION" integer="5" desc="" />
<Value name="MATERIAL_MAP_HEIGHT" integer="6" desc="" />
<Value name="MATERIAL_MAP_CUBEMAP" integer="7" desc="" />
<Value name="MATERIAL_MAP_IRRADIANCE" integer="8" desc="" />
<Value name="MATERIAL_MAP_PREFILTER" integer="9" desc="" />
<Value name="MATERIAL_MAP_BRDF" integer="10" desc="" />
<Enum name="MaterialMapIndex" valueCount="11" desc="Material map index">
<Value name="MATERIAL_MAP_ALBEDO" integer="0" desc="Albedo material (same as: MATERIAL_MAP_DIFFUSE)" />
<Value name="MATERIAL_MAP_METALNESS" integer="1" desc="Metalness material (same as: MATERIAL_MAP_SPECULAR)" />
<Value name="MATERIAL_MAP_NORMAL" integer="2" desc="Normal material" />
<Value name="MATERIAL_MAP_ROUGHNESS" integer="3" desc="Roughness material" />
<Value name="MATERIAL_MAP_OCCLUSION" integer="4" desc="Ambient occlusion material" />
<Value name="MATERIAL_MAP_EMISSION" integer="5" desc="Emission material" />
<Value name="MATERIAL_MAP_HEIGHT" integer="6" desc="Heightmap material" />
<Value name="MATERIAL_MAP_CUBEMAP" integer="7" desc="Cubemap material (NOTE: Uses GL_TEXTURE_CUBE_MAP)" />
<Value name="MATERIAL_MAP_IRRADIANCE" integer="8" desc="Irradiance material (NOTE: Uses GL_TEXTURE_CUBE_MAP)" />
<Value name="MATERIAL_MAP_PREFILTER" integer="9" desc="Prefilter material (NOTE: Uses GL_TEXTURE_CUBE_MAP)" />
<Value name="MATERIAL_MAP_BRDF" integer="10" desc="Brdf material" />
</Enum>
<Enum name="ShaderLocationIndex" valueCount="26" desc="">
<Value name="SHADER_LOC_VERTEX_POSITION" integer="0" desc="" />
<Value name="SHADER_LOC_VERTEX_TEXCOORD01" integer="1" desc="" />
<Value name="SHADER_LOC_VERTEX_TEXCOORD02" integer="2" desc="" />
<Value name="SHADER_LOC_VERTEX_NORMAL" integer="3" desc="" />
<Value name="SHADER_LOC_VERTEX_TANGENT" integer="4" desc="" />
<Value name="SHADER_LOC_VERTEX_COLOR" integer="5" desc="" />
<Value name="SHADER_LOC_MATRIX_MVP" integer="6" desc="" />
<Value name="SHADER_LOC_MATRIX_VIEW" integer="7" desc="" />
<Value name="SHADER_LOC_MATRIX_PROJECTION" integer="8" desc="" />
<Value name="SHADER_LOC_MATRIX_MODEL" integer="9" desc="" />
<Value name="SHADER_LOC_MATRIX_NORMAL" integer="10" desc="" />
<Value name="SHADER_LOC_VECTOR_VIEW" integer="11" desc="" />
<Value name="SHADER_LOC_COLOR_DIFFUSE" integer="12" desc="" />
<Value name="SHADER_LOC_COLOR_SPECULAR" integer="13" desc="" />
<Value name="SHADER_LOC_COLOR_AMBIENT" integer="14" desc="" />
<Value name="SHADER_LOC_MAP_ALBEDO" integer="15" desc="" />
<Value name="SHADER_LOC_MAP_METALNESS" integer="16" desc="" />
<Value name="SHADER_LOC_MAP_NORMAL" integer="17" desc="" />
<Value name="SHADER_LOC_MAP_ROUGHNESS" integer="18" desc="" />
<Value name="SHADER_LOC_MAP_OCCLUSION" integer="19" desc="" />
<Value name="SHADER_LOC_MAP_EMISSION" integer="20" desc="" />
<Value name="SHADER_LOC_MAP_HEIGHT" integer="21" desc="" />
<Value name="SHADER_LOC_MAP_CUBEMAP" integer="22" desc="" />
<Value name="SHADER_LOC_MAP_IRRADIANCE" integer="23" desc="" />
<Value name="SHADER_LOC_MAP_PREFILTER" integer="24" desc="" />
<Value name="SHADER_LOC_MAP_BRDF" integer="25" desc="" />
<Enum name="ShaderLocationIndex" valueCount="26" desc="Shader location index">
<Value name="SHADER_LOC_VERTEX_POSITION" integer="0" desc="Shader location: vertex attribute: position" />
<Value name="SHADER_LOC_VERTEX_TEXCOORD01" integer="1" desc="Shader location: vertex attribute: texcoord01" />
<Value name="SHADER_LOC_VERTEX_TEXCOORD02" integer="2" desc="Shader location: vertex attribute: texcoord02" />
<Value name="SHADER_LOC_VERTEX_NORMAL" integer="3" desc="Shader location: vertex attribute: normal" />
<Value name="SHADER_LOC_VERTEX_TANGENT" integer="4" desc="Shader location: vertex attribute: tangent" />
<Value name="SHADER_LOC_VERTEX_COLOR" integer="5" desc="Shader location: vertex attribute: color" />
<Value name="SHADER_LOC_MATRIX_MVP" integer="6" desc="Shader location: matrix uniform: model-view-projection" />
<Value name="SHADER_LOC_MATRIX_VIEW" integer="7" desc="Shader location: matrix uniform: view (camera transform)" />
<Value name="SHADER_LOC_MATRIX_PROJECTION" integer="8" desc="Shader location: matrix uniform: projection" />
<Value name="SHADER_LOC_MATRIX_MODEL" integer="9" desc="Shader location: matrix uniform: model (transform)" />
<Value name="SHADER_LOC_MATRIX_NORMAL" integer="10" desc="Shader location: matrix uniform: normal" />
<Value name="SHADER_LOC_VECTOR_VIEW" integer="11" desc="Shader location: vector uniform: view" />
<Value name="SHADER_LOC_COLOR_DIFFUSE" integer="12" desc="Shader location: vector uniform: diffuse color" />
<Value name="SHADER_LOC_COLOR_SPECULAR" integer="13" desc="Shader location: vector uniform: specular color" />
<Value name="SHADER_LOC_COLOR_AMBIENT" integer="14" desc="Shader location: vector uniform: ambient color" />
<Value name="SHADER_LOC_MAP_ALBEDO" integer="15" desc="Shader location: sampler2d texture: albedo (same as: SHADER_LOC_MAP_DIFFUSE)" />
<Value name="SHADER_LOC_MAP_METALNESS" integer="16" desc="Shader location: sampler2d texture: metalness (same as: SHADER_LOC_MAP_SPECULAR)" />
<Value name="SHADER_LOC_MAP_NORMAL" integer="17" desc="Shader location: sampler2d texture: normal" />
<Value name="SHADER_LOC_MAP_ROUGHNESS" integer="18" desc="Shader location: sampler2d texture: roughness" />
<Value name="SHADER_LOC_MAP_OCCLUSION" integer="19" desc="Shader location: sampler2d texture: occlusion" />
<Value name="SHADER_LOC_MAP_EMISSION" integer="20" desc="Shader location: sampler2d texture: emission" />
<Value name="SHADER_LOC_MAP_HEIGHT" integer="21" desc="Shader location: sampler2d texture: height" />
<Value name="SHADER_LOC_MAP_CUBEMAP" integer="22" desc="Shader location: samplerCube texture: cubemap" />
<Value name="SHADER_LOC_MAP_IRRADIANCE" integer="23" desc="Shader location: samplerCube texture: irradiance" />
<Value name="SHADER_LOC_MAP_PREFILTER" integer="24" desc="Shader location: samplerCube texture: prefilter" />
<Value name="SHADER_LOC_MAP_BRDF" integer="25" desc="Shader location: sampler2d texture: brdf" />
</Enum>
<Enum name="ShaderUniformDataType" valueCount="9" desc="">
<Value name="SHADER_UNIFORM_FLOAT" integer="0" desc="" />
<Value name="SHADER_UNIFORM_VEC2" integer="1" desc="" />
<Value name="SHADER_UNIFORM_VEC3" integer="2" desc="" />
<Value name="SHADER_UNIFORM_VEC4" integer="3" desc="" />
<Value name="SHADER_UNIFORM_INT" integer="4" desc="" />
<Value name="SHADER_UNIFORM_IVEC2" integer="5" desc="" />
<Value name="SHADER_UNIFORM_IVEC3" integer="6" desc="" />
<Value name="SHADER_UNIFORM_IVEC4" integer="7" desc="" />
<Value name="SHADER_UNIFORM_SAMPLER2D" integer="8" desc="" />
<Enum name="ShaderUniformDataType" valueCount="9" desc="Shader uniform data type">
<Value name="SHADER_UNIFORM_FLOAT" integer="0" desc="Shader uniform type: float" />
<Value name="SHADER_UNIFORM_VEC2" integer="1" desc="Shader uniform type: vec2 (2 float)" />
<Value name="SHADER_UNIFORM_VEC3" integer="2" desc="Shader uniform type: vec3 (3 float)" />
<Value name="SHADER_UNIFORM_VEC4" integer="3" desc="Shader uniform type: vec4 (4 float)" />
<Value name="SHADER_UNIFORM_INT" integer="4" desc="Shader uniform type: int" />
<Value name="SHADER_UNIFORM_IVEC2" integer="5" desc="Shader uniform type: ivec2 (2 int)" />
<Value name="SHADER_UNIFORM_IVEC3" integer="6" desc="Shader uniform type: ivec3 (3 int)" />
<Value name="SHADER_UNIFORM_IVEC4" integer="7" desc="Shader uniform type: ivec4 (4 int)" />
<Value name="SHADER_UNIFORM_SAMPLER2D" integer="8" desc="Shader uniform type: sampler2d" />
</Enum>
<Enum name="ShaderAttributeDataType" valueCount="4" desc="">
<Value name="SHADER_ATTRIB_FLOAT" integer="0" desc="" />
<Value name="SHADER_ATTRIB_VEC2" integer="1" desc="" />
<Value name="SHADER_ATTRIB_VEC3" integer="2" desc="" />
<Value name="SHADER_ATTRIB_VEC4" integer="3" desc="" />
<Enum name="ShaderAttributeDataType" valueCount="4" desc="Shader attribute data types">
<Value name="SHADER_ATTRIB_FLOAT" integer="0" desc="Shader attribute type: float" />
<Value name="SHADER_ATTRIB_VEC2" integer="1" desc="Shader attribute type: vec2 (2 float)" />
<Value name="SHADER_ATTRIB_VEC3" integer="2" desc="Shader attribute type: vec3 (3 float)" />
<Value name="SHADER_ATTRIB_VEC4" integer="3" desc="Shader attribute type: vec4 (4 float)" />
</Enum>
<Enum name="PixelFormat" valueCount="21" desc="">
<Value name="PIXELFORMAT_UNCOMPRESSED_GRAYSCALE" integer="1" desc="" />
<Value name="PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA" integer="2" desc="" />
<Value name="PIXELFORMAT_UNCOMPRESSED_R5G6B5" integer="3" desc="" />
<Value name="PIXELFORMAT_UNCOMPRESSED_R8G8B8" integer="4" desc="" />
<Value name="PIXELFORMAT_UNCOMPRESSED_R5G5B5A1" integer="5" desc="" />
<Value name="PIXELFORMAT_UNCOMPRESSED_R4G4B4A4" integer="6" desc="" />
<Value name="PIXELFORMAT_UNCOMPRESSED_R8G8B8A8" integer="7" desc="" />
<Value name="PIXELFORMAT_UNCOMPRESSED_R32" integer="8" desc="" />
<Value name="PIXELFORMAT_UNCOMPRESSED_R32G32B32" integer="9" desc="" />
<Value name="PIXELFORMAT_UNCOMPRESSED_R32G32B32A32" integer="10" desc="" />
<Value name="PIXELFORMAT_COMPRESSED_DXT1_RGB" integer="11" desc="" />
<Value name="PIXELFORMAT_COMPRESSED_DXT1_RGBA" integer="12" desc="" />
<Value name="PIXELFORMAT_COMPRESSED_DXT3_RGBA" integer="13" desc="" />
<Value name="PIXELFORMAT_COMPRESSED_DXT5_RGBA" integer="14" desc="" />
<Value name="PIXELFORMAT_COMPRESSED_ETC1_RGB" integer="15" desc="" />
<Value name="PIXELFORMAT_COMPRESSED_ETC2_RGB" integer="16" desc="" />
<Value name="PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA" integer="17" desc="" />
<Value name="PIXELFORMAT_COMPRESSED_PVRT_RGB" integer="18" desc="" />
<Value name="PIXELFORMAT_COMPRESSED_PVRT_RGBA" integer="19" desc="" />
<Value name="PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA" integer="20" desc="" />
<Value name="PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA" integer="21" desc="" />
<Enum name="PixelFormat" valueCount="21" desc="Pixel formats">
<Value name="PIXELFORMAT_UNCOMPRESSED_GRAYSCALE" integer="1" desc="8 bit per pixel (no alpha)" />
<Value name="PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA" integer="2" desc="8*2 bpp (2 channels)" />
<Value name="PIXELFORMAT_UNCOMPRESSED_R5G6B5" integer="3" desc="16 bpp" />
<Value name="PIXELFORMAT_UNCOMPRESSED_R8G8B8" integer="4" desc="24 bpp" />
<Value name="PIXELFORMAT_UNCOMPRESSED_R5G5B5A1" integer="5" desc="16 bpp (1 bit alpha)" />
<Value name="PIXELFORMAT_UNCOMPRESSED_R4G4B4A4" integer="6" desc="16 bpp (4 bit alpha)" />
<Value name="PIXELFORMAT_UNCOMPRESSED_R8G8B8A8" integer="7" desc="32 bpp" />
<Value name="PIXELFORMAT_UNCOMPRESSED_R32" integer="8" desc="32 bpp (1 channel - float)" />
<Value name="PIXELFORMAT_UNCOMPRESSED_R32G32B32" integer="9" desc="32*3 bpp (3 channels - float)" />
<Value name="PIXELFORMAT_UNCOMPRESSED_R32G32B32A32" integer="10" desc="32*4 bpp (4 channels - float)" />
<Value name="PIXELFORMAT_COMPRESSED_DXT1_RGB" integer="11" desc="4 bpp (no alpha)" />
<Value name="PIXELFORMAT_COMPRESSED_DXT1_RGBA" integer="12" desc="4 bpp (1 bit alpha)" />
<Value name="PIXELFORMAT_COMPRESSED_DXT3_RGBA" integer="13" desc="8 bpp" />
<Value name="PIXELFORMAT_COMPRESSED_DXT5_RGBA" integer="14" desc="8 bpp" />
<Value name="PIXELFORMAT_COMPRESSED_ETC1_RGB" integer="15" desc="4 bpp" />
<Value name="PIXELFORMAT_COMPRESSED_ETC2_RGB" integer="16" desc="4 bpp" />
<Value name="PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA" integer="17" desc="8 bpp" />
<Value name="PIXELFORMAT_COMPRESSED_PVRT_RGB" integer="18" desc="4 bpp" />
<Value name="PIXELFORMAT_COMPRESSED_PVRT_RGBA" integer="19" desc="4 bpp" />
<Value name="PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA" integer="20" desc="8 bpp" />
<Value name="PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA" integer="21" desc="2 bpp" />
</Enum>
<Enum name="TextureFilter" valueCount="6" desc="">
<Value name="TEXTURE_FILTER_POINT" integer="0" desc="" />
<Value name="TEXTURE_FILTER_BILINEAR" integer="1" desc="" />
<Value name="TEXTURE_FILTER_TRILINEAR" integer="2" desc="" />
<Value name="TEXTURE_FILTER_ANISOTROPIC_4X" integer="3" desc="" />
<Value name="TEXTURE_FILTER_ANISOTROPIC_8X" integer="4" desc="" />
<Value name="TEXTURE_FILTER_ANISOTROPIC_16X" integer="5" desc="" />
<Enum name="TextureFilter" valueCount="6" desc="Texture parameters: filter mode">
<Value name="TEXTURE_FILTER_POINT" integer="0" desc="No filter, just pixel approximation" />
<Value name="TEXTURE_FILTER_BILINEAR" integer="1" desc="Linear filtering" />
<Value name="TEXTURE_FILTER_TRILINEAR" integer="2" desc="Trilinear filtering (linear with mipmaps)" />
<Value name="TEXTURE_FILTER_ANISOTROPIC_4X" integer="3" desc="Anisotropic filtering 4x" />
<Value name="TEXTURE_FILTER_ANISOTROPIC_8X" integer="4" desc="Anisotropic filtering 8x" />
<Value name="TEXTURE_FILTER_ANISOTROPIC_16X" integer="5" desc="Anisotropic filtering 16x" />
</Enum>
<Enum name="TextureWrap" valueCount="4" desc="">
<Value name="TEXTURE_WRAP_REPEAT" integer="0" desc="" />
<Value name="TEXTURE_WRAP_CLAMP" integer="1" desc="" />
<Value name="TEXTURE_WRAP_MIRROR_REPEAT" integer="2" desc="" />
<Value name="TEXTURE_WRAP_MIRROR_CLAMP" integer="3" desc="" />
<Enum name="TextureWrap" valueCount="4" desc="Texture parameters: wrap mode">
<Value name="TEXTURE_WRAP_REPEAT" integer="0" desc="Repeats texture in tiled mode" />
<Value name="TEXTURE_WRAP_CLAMP" integer="1" desc="Clamps texture to edge pixel in tiled mode" />
<Value name="TEXTURE_WRAP_MIRROR_REPEAT" integer="2" desc="Mirrors and repeats the texture in tiled mode" />
<Value name="TEXTURE_WRAP_MIRROR_CLAMP" integer="3" desc="Mirrors and clamps to border the texture in tiled mode" />
</Enum>
<Enum name="CubemapLayout" valueCount="6" desc="">
<Value name="CUBEMAP_LAYOUT_AUTO_DETECT" integer="0" desc="" />
<Value name="CUBEMAP_LAYOUT_LINE_VERTICAL" integer="1" desc="" />
<Value name="CUBEMAP_LAYOUT_LINE_HORIZONTAL" integer="2" desc="" />
<Value name="CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR" integer="3" desc="" />
<Value name="CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE" integer="4" desc="" />
<Value name="CUBEMAP_LAYOUT_PANORAMA" integer="5" desc="" />
<Enum name="CubemapLayout" valueCount="6" desc="Cubemap layouts">
<Value name="CUBEMAP_LAYOUT_AUTO_DETECT" integer="0" desc="Automatically detect layout type" />
<Value name="CUBEMAP_LAYOUT_LINE_VERTICAL" integer="1" desc="Layout is defined by a vertical line with faces" />
<Value name="CUBEMAP_LAYOUT_LINE_HORIZONTAL" integer="2" desc="Layout is defined by an horizontal line with faces" />
<Value name="CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR" integer="3" desc="Layout is defined by a 3x4 cross with cubemap faces" />
<Value name="CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE" integer="4" desc="Layout is defined by a 4x3 cross with cubemap faces" />
<Value name="CUBEMAP_LAYOUT_PANORAMA" integer="5" desc="Layout is defined by a panorama image (equirectangular map)" />
</Enum>
<Enum name="FontType" valueCount="3" desc="">
<Value name="FONT_DEFAULT" integer="0" desc="" />
<Value name="FONT_BITMAP" integer="1" desc="" />
<Value name="FONT_SDF" integer="2" desc="" />
<Enum name="FontType" valueCount="3" desc="Font type, defines generation method">
<Value name="FONT_DEFAULT" integer="0" desc="Default font generation, anti-aliased" />
<Value name="FONT_BITMAP" integer="1" desc="Bitmap font generation, no anti-aliasing" />
<Value name="FONT_SDF" integer="2" desc="SDF font generation, requires external shader" />
</Enum>
<Enum name="BlendMode" valueCount="6" desc="">
<Value name="BLEND_ALPHA" integer="0" desc="" />
<Value name="BLEND_ADDITIVE" integer="1" desc="" />
<Value name="BLEND_MULTIPLIED" integer="2" desc="" />
<Value name="BLEND_ADD_COLORS" integer="3" desc="" />
<Value name="BLEND_SUBTRACT_COLORS" integer="4" desc="" />
<Value name="BLEND_CUSTOM" integer="5" desc="" />
<Enum name="BlendMode" valueCount="6" desc="Color blending modes (pre-defined)">
<Value name="BLEND_ALPHA" integer="0" desc="Blend textures considering alpha (default)" />
<Value name="BLEND_ADDITIVE" integer="1" desc="Blend textures adding colors" />
<Value name="BLEND_MULTIPLIED" integer="2" desc="Blend textures multiplying colors" />
<Value name="BLEND_ADD_COLORS" integer="3" desc="Blend textures adding colors (alternative)" />
<Value name="BLEND_SUBTRACT_COLORS" integer="4" desc="Blend textures subtracting colors (alternative)" />
<Value name="BLEND_CUSTOM" integer="5" desc="Belnd textures using custom src/dst factors (use rlSetBlendMode())" />
</Enum>
<Enum name="Gesture" valueCount="11" desc="">
<Value name="GESTURE_NONE" integer="0" desc="" />
<Value name="GESTURE_TAP" integer="1" desc="" />
<Value name="GESTURE_DOUBLETAP" integer="2" desc="" />
<Value name="GESTURE_HOLD" integer="4" desc="" />
<Value name="GESTURE_DRAG" integer="8" desc="" />
<Value name="GESTURE_SWIPE_RIGHT" integer="16" desc="" />
<Value name="GESTURE_SWIPE_LEFT" integer="32" desc="" />
<Value name="GESTURE_SWIPE_UP" integer="64" desc="" />
<Value name="GESTURE_SWIPE_DOWN" integer="128" desc="" />
<Value name="GESTURE_PINCH_IN" integer="256" desc="" />
<Value name="GESTURE_PINCH_OUT" integer="512" desc="" />
<Enum name="Gesture" valueCount="11" desc="Gesture">
<Value name="GESTURE_NONE" integer="0" desc="No gesture" />
<Value name="GESTURE_TAP" integer="1" desc="Tap gesture" />
<Value name="GESTURE_DOUBLETAP" integer="2" desc="Double tap gesture" />
<Value name="GESTURE_HOLD" integer="4" desc="Hold gesture" />
<Value name="GESTURE_DRAG" integer="8" desc="Drag gesture" />
<Value name="GESTURE_SWIPE_RIGHT" integer="16" desc="Swipe right gesture" />
<Value name="GESTURE_SWIPE_LEFT" integer="32" desc="Swipe left gesture" />
<Value name="GESTURE_SWIPE_UP" integer="64" desc="Swipe up gesture" />
<Value name="GESTURE_SWIPE_DOWN" integer="128" desc="Swipe down gesture" />
<Value name="GESTURE_PINCH_IN" integer="256" desc="Pinch in gesture" />
<Value name="GESTURE_PINCH_OUT" integer="512" desc="Pinch out gesture" />
</Enum>
<Enum name="CameraMode" valueCount="5" desc="">
<Value name="CAMERA_CUSTOM" integer="0" desc="" />
<Value name="CAMERA_FREE" integer="1" desc="" />
<Value name="CAMERA_ORBITAL" integer="2" desc="" />
<Value name="CAMERA_FIRST_PERSON" integer="3" desc="" />
<Value name="CAMERA_THIRD_PERSON" integer="4" desc="" />
<Enum name="CameraMode" valueCount="5" desc="Camera system modes">
<Value name="CAMERA_CUSTOM" integer="0" desc="Custom camera" />
<Value name="CAMERA_FREE" integer="1" desc="Free camera" />
<Value name="CAMERA_ORBITAL" integer="2" desc="Orbital camera" />
<Value name="CAMERA_FIRST_PERSON" integer="3" desc="First person camera" />
<Value name="CAMERA_THIRD_PERSON" integer="4" desc="Third person camera" />
</Enum>
<Enum name="CameraProjection" valueCount="2" desc="">
<Value name="CAMERA_PERSPECTIVE" integer="0" desc="" />
<Value name="CAMERA_ORTHOGRAPHIC" integer="1" desc="" />
<Enum name="CameraProjection" valueCount="2" desc="Camera projection">
<Value name="CAMERA_PERSPECTIVE" integer="0" desc="Perspective projection" />
<Value name="CAMERA_ORTHOGRAPHIC" integer="1" desc="Orthographic projection" />
</Enum>
<Enum name="NPatchLayout" valueCount="3" desc="">
<Value name="NPATCH_NINE_PATCH" integer="0" desc="" />
<Value name="NPATCH_THREE_PATCH_VERTICAL" integer="1" desc="" />
<Value name="NPATCH_THREE_PATCH_HORIZONTAL" integer="2" desc="" />
<Enum name="NPatchLayout" valueCount="3" desc="N-patch layout">
<Value name="NPATCH_NINE_PATCH" integer="0" desc="Npatch layout: 3x3 tiles" />
<Value name="NPATCH_THREE_PATCH_VERTICAL" integer="1" desc="Npatch layout: 1x3 tiles" />
<Value name="NPATCH_THREE_PATCH_HORIZONTAL" integer="2" desc="Npatch layout: 3x1 tiles" />
</Enum>
</Enums>
<Functions count="487">
<Functions count="489">
<Function name="InitWindow" retType="void" paramCount="3" desc="Initialize window and OpenGL context">
<Param type="int" name="width" desc="" />
<Param type="int" name="height" desc="" />
@ -610,6 +610,10 @@
</Function>
<Function name="GetScreenHeight" retType="int" paramCount="0" desc="Get current screen height">
</Function>
<Function name="GetRenderWidth" retType="int" paramCount="0" desc="Get current render width (it considers HiDPI)">
</Function>
<Function name="GetRenderHeight" retType="int" paramCount="0" desc="Get current render height (it considers HiDPI)">
</Function>
<Function name="GetMonitorCount" retType="int" paramCount="0" desc="Get number of connected monitors">
</Function>
<Function name="GetCurrentMonitor" retType="int" paramCount="0" desc="Get current connected monitor">

+ 58
- 31
parser/raylib_parser.c View File

@ -105,7 +105,7 @@ typedef struct EnumInfo {
int valueCount; // Number of values in enumerator
char valueName[MAX_ENUM_VALUES][64]; // Value name definition
int valueInteger[MAX_ENUM_VALUES]; // Value integer
char valueDesc[MAX_ENUM_VALUES][64]; // Value description
char valueDesc[MAX_ENUM_VALUES][128]; // Value description
} EnumInfo;
// Output format for parsed data
@ -139,7 +139,7 @@ static void GetDataTypeAndName(const char *typeName, int typeNameLen, char *type
static unsigned int TextLength(const char *text); // Get text length in bytes, check for \0 character
static bool IsTextEqual(const char *text1, const char *text2, unsigned int count);
static void MemoryCopy(void *dest, const void *src, unsigned int count);
static char* CharReplace(char* text, char search, char replace);
static char* EscapeBackslashes(char *text);
static void ExportParsedData(const char *fileName, int format); // Export parsed data in desired format
@ -186,7 +186,7 @@ int main(int argc, char* argv[])
}
// Read structs data (multiple lines, read directly from buffer)
// TODO: Parse structs data from "lines" instead of "buffer" -> Easier to get struct definition
// TODO: Parse structs data from "lines" instead of "buffer" -> Easier to get struct definition and description
for (int i = 0; i < length; i++)
{
// Read struct data (starting with "typedef struct", ending with '} ... ;')
@ -261,6 +261,8 @@ int main(int argc, char* argv[])
{
int structLineOffset = 0;
// TODO: Get struct description
// Get struct name: typedef struct name {
for (int c = 15; c < 64 + 15; c++)
{
@ -332,7 +334,20 @@ int main(int argc, char* argv[])
for (int i = 0; i < enumCount; i++)
{
// TODO: Get enum description from lines[enumLines[i] - 1]
// Parse enum description
// NOTE: This is not necessarily from the line immediately before,
// some of the enums have extra lines between the "description"
// and the typedef enum
for (int j = enumLines[i] - 1; j > 0; j--)
{
char *linePtr = lines[j];
if ((linePtr[0] != '/') || (linePtr[2] != ' '))
{
MemoryCopy(enums[i].desc, &lines[j + 1][0], sizeof(enums[i].desc) - 1);
break;
}
}
for (int j = 1; j < MAX_ENUM_VALUES*2; j++) // Maximum number of lines following enum first line
{
@ -367,7 +382,7 @@ int main(int argc, char* argv[])
// '=' -> value is provided
// ' ' -> value is equal to previous + 1, there could be a description if not '\0'
bool foundValue = false;
while (linePtr[c] != '\0')
while (p">(linePtr[c] != '\0') && (linePtr[c] != '/'))
{
if (linePtr[c] == '=') { foundValue = true; break; }
c++;
@ -392,11 +407,17 @@ int main(int argc, char* argv[])
else enums[i].valueInteger[enums[i].valueCount] = atoi(integer);
}
else enums[i].valueInteger[enums[i].valueCount] = (enums[i].valueInteger[enums[i].valueCount - 1] + 1);
// TODO: Parse value description if any
}
else enums[i].valueInteger[enums[i].valueCount] = (enums[i].valueInteger[enums[i].valueCount - 1] + 1);
// Look for description or end of line
while ((linePtr[c] != '/') && (linePtr[c] != '\0')) { c++; }
if (linePtr[c] == '/')
{
// Parse value description
MemoryCopy(enums[i].valueDesc[enums[i].valueCount], &linePtr[c], sizeof(enums[0].valueDesc[0]) - c - 1);
}
enums[i].valueCount++;
}
else if (linePtr[0] == '}')
@ -743,13 +764,19 @@ static bool IsTextEqual(const char *text1, const char *text2, unsigned int count
return result;
}
// Search and replace a character within a string.
static char* CharReplace(char* text, char search, char replace)
// Escape backslashes in a string, writing the escaped string into a static buffer
static char* EscapeBackslashes(char *text)
{
for (int i = 0; text[i] != '\0'; i++)
if (text[i] == search)
text[i] = replace;
return text;
static char buf[256];
char *a = text;
char *b = buf;
do
{
if (*a == '\\') *b++ = '\\';
*b++ = *a;
}
while (*a++);
return buf;
}
/*
@ -855,14 +882,14 @@ static void ExportParsedData(const char *fileName, int format)
{
fprintf(outFile, " {\n");
fprintf(outFile, " name = \"%s\",\n", structs[i].name);
fprintf(outFile, " description = \"%s\",\n", structs[i].desc);
fprintf(outFile, " description = \"%s\",\n", EscapeBackslashes(structs[i].desc + 3));
fprintf(outFile, " fields = {\n");
for (int f = 0; f < structs[i].fieldCount; f++)
{
fprintf(outFile, " {\n");
fprintf(outFile, " name = \"%s\",\n", structs[i].fieldName[f]),
fprintf(outFile, " type = \"%s\",\n", structs[i].fieldType[f]),
fprintf(outFile, " description = \"%s\"\n", structs[i].fieldDesc[f] + 3),
fprintf(outFile, " name = \"%s\",\n", structs[i].fieldName[f]);
fprintf(outFile, " type = \"%s\",\n", structs[i].fieldType[f]);
fprintf(outFile, " description = \"%s\"\n", EscapeBackslashes(structs[i].fieldDesc[f] + 3));
fprintf(outFile, " }");
if (f < structs[i].fieldCount - 1) fprintf(outFile, ",\n");
else fprintf(outFile, "\n");
@ -880,14 +907,14 @@ static void ExportParsedData(const char *fileName, int format)
{
fprintf(outFile, " {\n");
fprintf(outFile, " name = \"%s\",\n", enums[i].name);
fprintf(outFile, " description = \"%s\",\n", enums[i].desc + 3);
fprintf(outFile, " description = \"%s\",\n", EscapeBackslashes(enums[i].desc + 3));
fprintf(outFile, " values = {\n");
for (int e = 0; e < enums[i].valueCount; e++)
{
fprintf(outFile, " {\n");
fprintf(outFile, " name = \"%s\",\n", enums[i].valueName[e]),
fprintf(outFile, " value = %i,\n", enums[i].valueInteger[e]),
fprintf(outFile, " description = \"%s\"\n", enums[i].valueDesc[e] + 3),
fprintf(outFile, " name = \"%s\",\n", enums[i].valueName[e]);
fprintf(outFile, " value = %i,\n", enums[i].valueInteger[e]);
fprintf(outFile, " description = \"%s\"\n", EscapeBackslashes(enums[i].valueDesc[e] + 3));
fprintf(outFile, " }");
if (e < enums[i].valueCount - 1) fprintf(outFile, ",\n");
else fprintf(outFile, "\n");
@ -905,7 +932,7 @@ static void ExportParsedData(const char *fileName, int format)
{
fprintf(outFile, " {\n");
fprintf(outFile, " name = \"%s\",\n", funcs[i].name);
fprintf(outFile, " description = \"%s\",\n", CharReplace(funcs[i].desc, '\\', ' ') + 3);
fprintf(outFile, " description = \"%s\",\n", EscapeBackslashes(funcs[i].desc + 3));
fprintf(outFile, " returnType = \"%s\"", funcs[i].retType);
if (funcs[i].paramCount == 0) fprintf(outFile, "\n");
@ -938,14 +965,14 @@ static void ExportParsedData(const char *fileName, int format)
{
fprintf(outFile, " {\n");
fprintf(outFile, " \"name\": \"%s\",\n", structs[i].name);
fprintf(outFile, " \"description\": \"%s\",\n", structs[i].desc);
fprintf(outFile, " \"description\": \"%s\",\n", EscapeBackslashes(structs[i].desc + 3));
fprintf(outFile, " \"fields\": [\n");
for (int f = 0; f < structs[i].fieldCount; f++)
{
fprintf(outFile, " {\n");
fprintf(outFile, " \"name\": \"%s\",\n", structs[i].fieldName[f]),
fprintf(outFile, " \"type\": \"%s\",\n", structs[i].fieldType[f]),
fprintf(outFile, " \"description\": \"%s\"\n", structs[i].fieldDesc[f] + 3),
fprintf(outFile, " \"name\": \"%s\",\n", structs[i].fieldName[f]);
fprintf(outFile, " \"type\": \"%s\",\n", structs[i].fieldType[f]);
fprintf(outFile, " \"description\": \"%s\"\n", EscapeBackslashes(structs[i].fieldDesc[f] + 3));
fprintf(outFile, " }");
if (f < structs[i].fieldCount - 1) fprintf(outFile, ",\n");
else fprintf(outFile, "\n");
@ -963,14 +990,14 @@ static void ExportParsedData(const char *fileName, int format)
{
fprintf(outFile, " {\n");
fprintf(outFile, " \"name\": \"%s\",\n", enums[i].name);
fprintf(outFile, " \"description\": \"%s\",\n", enums[i].desc + 3);
fprintf(outFile, " \"description\": \"%s\",\n", EscapeBackslashes(enums[i].desc + 3));
fprintf(outFile, " \"values\": [\n");
for (int e = 0; e < enums[i].valueCount; e++)
{
fprintf(outFile, " {\n");
fprintf(outFile, " \"name\": \"%s\",\n", enums[i].valueName[e]),
fprintf(outFile, " \"value\": %i,\n", enums[i].valueInteger[e]),
fprintf(outFile, " \"description\": \"%s\"\n", enums[i].valueDesc[e] + 3),
fprintf(outFile, " \"name\": \"%s\",\n", enums[i].valueName[e]);
fprintf(outFile, " \"value\": %i,\n", enums[i].valueInteger[e]);
fprintf(outFile, " \"description\": \"%s\"\n", EscapeBackslashes(enums[i].valueDesc[e] + 3));
fprintf(outFile, " }");
if (e < enums[i].valueCount - 1) fprintf(outFile, ",\n");
else fprintf(outFile, "\n");
@ -988,7 +1015,7 @@ static void ExportParsedData(const char *fileName, int format)
{
fprintf(outFile, " {\n");
fprintf(outFile, " \"name\": \"%s\",\n", funcs[i].name);
fprintf(outFile, " \"description\": \"%s\",\n", CharReplace(funcs[i].desc, '\\', ' ') + 3);
fprintf(outFile, " \"description\": \"%s\",\n", EscapeBackslashes(funcs[i].desc + 3));
fprintf(outFile, " \"returnType\": \"%s\"", funcs[i].retType);
if (funcs[i].paramCount == 0) fprintf(outFile, "\n");

Loading…
Cancel
Save