298 Commits
3.6 ... master

Author SHA1 Message Date
Ray
0b94b80c92 Update raygui.h 2025-12-20 22:09:03 +01:00
Ray
867ca4bf8d Update raygui.h 2025-12-11 21:41:33 +01:00
367e169ad3 initializ some variables to prevent warnings (#515) 2025-12-02 23:31:24 +01:00
Ray
1a74db2ab3 Update raygui.h 2025-11-25 12:15:44 +01:00
Ray
715baf250d Update raygui.rc 2025-11-25 12:15:42 +01:00
Ray
3aea427fc8 REVIEWED: Out of bounds warning 2025-11-18 20:59:05 +01:00
Ray
773d1ec52b Update raygui.h 2025-11-18 16:49:44 +01:00
Ray
ff4dbd0712 Update raygui.h 2025-11-13 22:49:22 +01:00
Ray
aed63cedd1 Update raygui.h 2025-11-12 11:09:02 +01:00
Ray
4436a897f9 ADDED: New icons 2025-11-12 09:41:36 +01:00
Ray
d4ebcdc2be Update raygui.h 2025-11-11 19:38:38 +01:00
Ray
860e46d3f8 Reviewed text cursor 2025-11-09 14:06:53 +01:00
Ray
b9971133b2 Comment unused variable 2025-10-21 12:28:05 +02:00
947ef5799d Lock other controls when GuiTextInputBox is open (#512)
Previously, the color picker would end up eating inputs intended for the
GuiTextInputBox!
2025-10-08 14:46:29 +02:00
Ray
681393a423 Update user links to github 2025-09-22 11:54:08 +02:00
Ray
9cdfec460b Update raygui.h 2025-09-18 15:26:53 +02:00
Ray
546b4bacf4 Using calloc() instead of malloc() 2025-09-10 21:03:27 +02:00
Ray
cf3aab1e9f REVIEWED: Code sections description for consistency 2025-09-02 12:35:58 +02:00
9193f38424 Fixed examples (#505) 2025-08-28 22:49:47 +02:00
Ray
6530ee136b Fix #501 2025-08-15 12:21:17 +02:00
Ray
1b2612cf75 Minor format tweaks to align with new raylib conventions 2025-08-08 21:49:33 +02:00
Ray
54ee53e7d7 Update raygui.h 2025-08-04 23:36:27 +02:00
Ray
b4eb06657b Reviewed GuiGetTextWidth() exposed to public API 2025-07-30 16:46:49 +02:00
c4c87f2971 Making GetTextWidth part of the public API (#480)
GetTextWidth is useuful to be called publicly. E.g: when you want to get the final horizontal size of a Slider that has textBefore and textAfter.
2025-07-30 16:40:46 +02:00
1736d71bd7 Improve customizeability of allocator macros (#475)
Co-authored-by: Ray <raysan5@gmail.com>
2025-07-28 23:31:55 +02:00
be051532d3 Removed unpaired multi-line comment end (#497)
An unpaired multi-line comment end found it's way infront of a comment. I simply removed it.
2025-07-28 23:28:10 +02:00
Ray
ff866904d0 Review formating 2025-07-26 21:50:00 +02:00
Ray
99b37e4d4f Update raygui.h 2025-06-07 15:28:52 +02:00
Ray
40b8c25ec1 Update raygui.h 2025-05-29 12:31:55 +02:00
08c0c558fb fix: int comparison with unsigned int (#490) 2025-05-21 20:28:35 +02:00
Ray
f663b31cd6 Formatting tweaks 2025-05-10 22:45:25 +02:00
cb78993237 Add minus toggle for GuiValueBox & GuiValueBoxFloat (#485)
It was impossible to enter negative number.
Now pressing KEY_MINUS toggles sign for the value when value is not 0.
Due to original implementation it's not possible to start entry with minus symbol or have added minus while the value is 0.

fix max index
2025-05-06 22:09:07 +02:00
e00c4c18e0 Fix a typo (#482) 2025-05-06 22:07:40 +02:00
Ray
0895c8b8c4 Update raygui.h 2025-04-14 12:37:12 +02:00
Ray
c623a92f83 Update raygui.h 2025-04-13 20:38:01 +02:00
Ray
566c73f4e4 ADDED: Some required icons 2025-04-01 01:01:16 +02:00
Ray
58ba11d923 REMOVED: GuiSliderPro(), functionality was redundant 2025-04-01 01:00:56 +02:00
Ray
ea928f5609 Updated all styles to latest raygui 4.x and rGuiStyler 6.0 2025-03-27 19:04:19 +01:00
Ray
decc5151e6 Updated style: default 2025-03-27 18:52:18 +01:00
Ray
8d299c3c50 REMOVED: Old raygui style files (raygui <4.x) 2025-03-27 18:45:51 +01:00
Ray
ee64fedc1f Update style_dark.png 2025-03-26 00:33:35 +01:00
Ray
060561358e ADDED: New style: Genesis 2025-03-26 00:32:37 +01:00
Ray
678bf58834 Renamed font files 2025-03-26 00:31:04 +01:00
Ray
cb1c54d143 Avoid size_t 2025-03-25 22:50:45 +01:00
37f355ea6f Fix integer overflow potential (#477) 2025-03-25 22:46:28 +01:00
107214fa23 Replace RL_FREE with RAYGUI_FREE (#479) 2025-03-25 22:44:10 +01:00
1536ae35c7 removed left-right padding from GuiProgressBar (#473) 2025-03-14 13:16:02 +01:00
460411efef Fix enum compare warning in GuiPanel (#456) 2025-03-13 16:54:06 +01:00
63319f2ee7 Export GuiSliderPro and add static to GetTextLines (for shared libs) (#470)
I was having issues using it in conjunction with raylib (in Windows), so added these annotations here.

Let me know if it's okay, thanks for the project, Ray!!
2025-03-13 16:51:51 +01:00
b2ef0f864e [portable_window] fix window flicker when moving it without dragging... (#469)
...the bar. This example never expected it and was caching Window
Position, which means that position was outdated at the moment you moved
the window via other means than dragging the bar.

Fixes: https://github.com/raysan5/raygui/issues/468
2025-03-13 16:48:57 +01:00
372285ef98 Fix building and cleaning examples on OpenBSD. (#471) 2025-03-13 16:47:00 +01:00
Ray
d5459559e5 Update raygui.h 2025-03-13 16:42:25 +01:00
Ray
fc9d852d4a Update raygui.h 2025-03-10 17:10:07 +01:00
9a95871701 GuiTextBox() rework (#466)
* GuiTextBox: Fix possible overflow when handling backspace and delete

Simplify code a bit by removing unnecessary checks

* GuiTextBox: Fix CTRL+Backspace behavior

Remove undefined behavior (previously called isspace with oob values)
Fix unable to delete first character
Fix handling of symbols like any other "standard" input field or text editor on Windows does it

* GuiTextBox: Add CTRL+DELETE, CTRL+LEFT and CTRL+RIGHT handling

Copy behavior from programs like notepad, Notepad++, OneNote, address bar in Edge, etc.

* GuiTextBox: Simplify and improve auto-cursor code

Remove one global variable and compact checks into one bool variable
Fix auto cursor triggering immediately when button is held when clicking edit box
Tuned the values, so they match cooldown and delay when entering text

* GuiTextBox: Bring some checks in-line with the rest of the function
2025-02-28 15:09:58 +01:00
c198b9c34e fixed border and padding offset issue caused by BORDER_WIDTH (#465) 2025-02-28 12:28:33 +01:00
b19a0168fa Fix GuiSlider not drawing handle (#464) 2025-02-26 22:25:58 +01:00
f25b1dd757 Fix GuiTextBox handling of codepoints when deleting text and clicking with mouse (#462) 2025-02-25 21:40:57 +01:00
3397b015ef GuiTextBox paste support (#463)
* Add support for paste (CTRL+V) in GuiTextBox

* Remove commented out code

(a more elegant but incomplete solution, which does not check for control characters)
2025-02-25 21:39:31 +01:00
Ray
e4a59f0afa ADDED: GuiListView*() property LIST_ITEMS_BORDER_NORMAL
Allows creating list view with items outlined on normal state (not only when focused/selected)
2025-02-11 18:45:47 +01:00
Ray
f24b309386 REVIEWED: GuiListView() use style LIST_ITEMS_BORDER_WIDTH 2025-02-08 13:39:45 +01:00
Ray
ce1c756f70 REVIEWED: rltech style updated 2025-02-05 20:27:20 +01:00
Ray
4029ec0954 REVIEWED: Issue with TextJoin() #455 #457 2025-02-05 20:26:57 +01:00
74249a76c6 Expose RAYGUI_WINDOWBOX_CLOSEBUTTON_HEIGHT in GuiWindowBox. (#453) 2025-02-05 20:01:08 +01:00
c98814df2a Fix mismatch between if defined and define for RAYGUI_LINE_MARGIN_TEXT. (#454) 2025-02-05 20:00:19 +01:00
Ray
8535b51259 Update raygui version for potential breaking changes coming soon... 2025-02-02 13:42:42 +01:00
Ray
d36080ea70 Merge branch 'master' of https://github.com/raysan5/raygui 2025-02-01 21:39:50 +01:00
Ray
29ec7657c5 REVIEWED: property_list example #451 2025-02-01 21:39:40 +01:00
4ea41c76ee Added drawing of Slider knob in disabled state. (#452) 2025-02-01 21:35:23 +01:00
31b6ca3ccc Fix GuiTextSplit overrunning on max split count (#450)
Co-authored-by: segcore <segcore@github.com>
2025-02-01 21:34:29 +01:00
Ray
c8a037cde1 Removed temp files 2025-02-01 21:33:27 +01:00
Ray
34acf544e7 Update raygui.h 2025-01-31 13:10:39 +01:00
Ray
b00b72d143 Update style_amber.rgs 2025-01-31 12:29:21 +01:00
Ray
67909eea86 Update style_amber.png 2025-01-31 12:29:18 +01:00
Ray
4c7bc3935d Update style_amber.h 2025-01-31 12:29:03 +01:00
Ray
1391349feb Update raygui.h 2025-01-31 12:28:16 +01:00
Ray
eea93facea REVIEWED: GuiLoadIconsFromMemory() 2025-01-31 12:28:12 +01:00
Ray
49aaa0a801 Update controls_test_suite.c 2025-01-31 01:12:26 +01:00
Ray
76cc79d62b Update style_amber.h 2025-01-31 01:12:19 +01:00
Ray
cbe91fa082 Update raygui.h 2025-01-31 01:12:01 +01:00
Ray
46fd886f18 REMOVED: SPINNER control properties, using VALUEBOX and BUTTON
REVIEWED: All controls that use some label, use `LABEL` style
Several minor tweaks
2025-01-31 00:28:11 +01:00
Ray
97755aaf89 Update raygui.h 2025-01-26 21:01:58 +01:00
54bff64d7d fix: sprintf, use snprintf (#447) 2025-01-21 23:30:58 +01:00
004d5bf6f5 Add LoadIconsFromMemory (#449) 2025-01-21 23:29:48 +01:00
Ray
4646769751 Update custom_file_dialog.c 2025-01-21 22:44:06 +01:00
Ray
76b36b597e Update Makefile 2025-01-12 16:33:46 +01:00
Ray
e09dfe8bbd Update Makefile 2025-01-12 16:19:46 +01:00
Ray
1f81371106 Update year to 2025 2025-01-01 00:10:23 +01:00
Ray
090db355ea Remove trailing spaces 2024-12-23 19:23:47 +01:00
Ray
b9f40170c1 Updated style: Amber, make slider/progress bars visible on press 2024-12-19 17:52:38 +01:00
Ray
43cdbce0ad Update Makefile 2024-12-16 00:37:18 +01:00
Ray
f11dc823d1 Update raygui.h 2024-12-03 19:14:55 +01:00
d0cbf9bee2 Prevent crash when passing NULL to GuiToggleSlider (#437) 2024-12-01 23:16:15 +01:00
Ray
dbfd9c7880 ADDED: RLtech style 2024-11-28 08:44:15 +01:00
Ray
56f9fc5189 Update style_amber.h 2024-11-28 08:43:51 +01:00
Ray
1e03efca48 Update raygui.h 2024-09-24 20:01:51 +02:00
Ray
73f85d82f6 Update raygui.h 2024-09-24 20:01:33 +02:00
38ababbc62 add ctrl backspace support for deleting words (#431) 2024-09-24 19:47:40 +02:00
Ray
18edd7951b Update README.md 2024-09-23 15:32:55 +02:00
38bc79b432 GuiTextBox(): Do not get previous code point when at start of string (#420)
Co-authored-by: segcore <segcore@github.com>
2024-09-22 20:25:21 +02:00
Ray
20950c555d Update README.md 2024-09-22 20:23:18 +02:00
b5a81fb76e Fix #426 (#427) 2024-09-11 23:38:01 +02:00
Ray
56ec987258 REVIEWED: Possibly obfuscated variable in loop! 2024-09-10 13:01:29 +02:00
Ray
6aae83894a ADDED: Hot Icon
Minor tweaks
2024-08-19 13:40:12 +02:00
33f1659609 Added move in building for linux (#419)
Added the move since it restores the state to normal again.
2024-07-25 23:09:16 +02:00
Ray
2138b1b094 Update raygui.h 2024-07-25 11:45:14 +02:00
Ray
604d2d6ce4 REVIEWED: Amber style 2024-07-21 18:06:13 +02:00
Ray
b645a3b519 Create style_amber.h 2024-07-21 17:36:41 +02:00
Ray
6f46641413 Update raygui.h 2024-07-19 00:33:01 +02:00
Ray
9d04f2d36c ADDED: DropdownBox roll up mode #406 2024-07-18 23:24:44 +02:00
187dd8647f Support keypad Enter key with GuiValueBox and GuiValueBoxFloat. (#413) 2024-07-16 21:33:59 +02:00
Ray
3fb9d77a67 Minor tweaks 2024-07-09 09:07:50 +02:00
9b89f205f2 Correct spelling error (#412) 2024-07-06 15:20:52 +02:00
5d32bf01f4 Align text in the basic controls section (#411) 2024-07-05 21:19:43 +02:00
Ray
0f832e6a6e Update raygui.h 2024-06-18 23:24:11 +02:00
4b3d94f5df GuiTextBox(): Fix buffer overrun from cursor index (#405) 2024-05-31 11:18:17 +02:00
76f006b9d0 Fix icon padding adjustment in GetTextWidth (#408) 2024-05-31 11:17:22 +02:00
Ray
faed14c12b Update raygui.h 2024-05-29 19:58:34 +02:00
Ray
9c1a52515b Update raygui.h 2024-05-29 11:54:54 +02:00
Ray
7bb66e5c7f Create gui_value_box_float.c 2024-05-18 07:40:44 +02:00
Ray
9a9edd89b4 Update raygui.h 2024-05-18 07:40:42 +02:00
Ray
12804826d0 Update README.md 2024-05-09 21:01:17 +02:00
Ray
7c9472c97e Update README.md 2024-05-09 21:00:39 +02:00
Ray
680a50e83b REVIEWED: GuiValueBoxFloat() formatting... 2024-05-07 12:33:21 +02:00
a717c69962 Add floating point value box to raygui (#356)
* add floating point value box

* remove upper and lower bound

* remove enum entry for float value box

* fix code to match coding conventions

* fix code to match coding conventions

* change variable name
2024-05-07 12:09:14 +02:00
Ray
ec9621939c Update raygui.h 2024-05-06 21:34:10 +02:00
Ray
20939af882 Update Makefile #400 2024-05-05 11:19:51 +02:00
Ray
a3a0e86e21 Update raygui.h 2024-05-01 18:12:18 +02:00
Ray
6f532337ff Minor formatting tweaks 2024-04-20 19:22:59 +02:00
Ray
498511e4cf REVIEWED: GuiTabBar() detect middle button press over tab 2024-04-15 21:22:01 +02:00
5ab8a7b793 Added new style: Amber (#397)
* added a new style: amber

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md
2024-04-15 12:42:23 +02:00
Ray
f21318f500 Update raygui.h 2024-04-11 20:52:12 +02:00
34ef12062c Fix division by zero in GuiScrollBar function (#396)
When trying to use the floating window example, I got several times some crashes when expanding the window size. 
It's caused in the GuiScrollBar function, when the maxValue is equal to the minValue (I don't know if this case is intended in the first place).
Because valueRange variable is maxValue minus minValue, then it is equal to 0, and triggers a crash later, when we use it in division (division by 0).

I'm not sure if it's the best fix, maybe minValue == maxValue is not indentend in the first place and we should fix this problem earlier?
2024-04-11 10:40:05 +02:00
Ray
85549da837 Update raygui.h 2024-04-08 00:10:00 +02:00
Ray
0e96834a47 Update raygui.h 2024-04-07 09:47:54 +02:00
0a9a9f897a fix typo in raygui.h (#395)
Documentation mentions method GuiLoadStyleDefaulf which likely should have been GuiLoadStyleDefault.
2024-04-06 00:32:24 +02:00
Ray
e3f67f3c02 REVIEWED: Load default style before loading a custom style https://github.com/raysan5/rguistyler/issues/8
Make sure default style has been loaded to avoid overwriting new style properties due to the lazy initialization of default style.
2024-04-03 18:27:24 +02:00
c0d05782a9 fix compile error in custom input example (#394) 2024-04-01 17:57:13 +02:00
176ab3db60 GuiScrollPanel dynamic mouse scroll speed (#393) 2024-03-30 18:48:55 +01:00
bb68d06440 fix floating window example (#392) 2024-03-28 10:24:38 +01:00
ac19d7e08a single letter typo (#391) 2024-03-24 22:42:52 +01:00
Ray
9060e3bf33 REVIEWED: parameter name 2024-03-18 19:20:20 +01:00
82ba2b1a78 add floating window example (#382)
* add floating window example

A reusable floating window function. Window can be moved around through its title bar, minimized with its close button, resized from the icon in the lower right. The window is kept within the application area if the user pushes it outside the window/screen. The contents of the window are clipped with `BeginScissorMode` only if required and also a `GuiScrollPanel` enables user to see the clipped content of the window if current window size does not encapsulate all the content.

* modify to add ability to create multiple windows

* formatting for pointer dereference style consistency
2024-03-14 11:31:19 +01:00
623bc61f29 Add new icons to enum (#381) 2024-03-09 09:27:37 +01:00
Ray
b5693d0c41 ADDED: New icons 2024-03-07 22:52:39 +01:00
Ray
d3152f4a56 ADDED: Icon: WARNING 2024-03-07 13:07:27 +01:00
b3fea57382 Fix compilation error and remove warnings from examples (#380) 2024-02-29 11:45:31 +01:00
Ray
bc67f42209 Update raygui.h 2024-02-18 11:58:55 +01:00
Ray
a9e5e90058 Merge branch 'master' of https://github.com/raysan5/raygui 2024-02-18 10:42:09 +01:00
Ray
18675e1b40 Create controls_test_suite.png 2024-02-18 10:42:02 +01:00
77891affb3 added documentation on Hue control issues with GuiColorPicker (#373)
* added documentation on Hue control issues with GuiColorPicker

* Moved Color Picker doc from function signature to definition
2024-02-15 22:46:55 +01:00
Ray
a3bbc8408b Update raygui.h 2024-02-15 16:21:57 +01:00
Ray
a76bd963ec Revert "gitignore example executables on Linux and OSX (#374)"
This reverts commit 16088b51d1.
2024-02-15 16:21:47 +01:00
16088b51d1 gitignore example executables on Linux and OSX (#374) 2024-02-15 15:53:46 +01:00
Ray
7a5f4320bc RENAMED: guiSliderDragging -> guiControlExclusiveMode
Now this variables could serve to a wider purpose to multiple controls, to allow the excusive mode usage and to identify the current control rectangle with a "unique" id.
2024-02-15 15:45:48 +01:00
7fe39be75a fixed and simplified make clean for examples on Linux (#375) 2024-02-03 20:00:57 +01:00
Ray
418da225d5 REVIEWED: custom_input_box #378 2024-02-03 19:59:59 +01:00
58411f4cce Commonise GuiColorPanelHSV and GuiColorPanel logic and behavior (#370)
* transferred dragging GuiColorPanel outside bounds (#366) to GuiColorPanelHSV

* call GuiColorPanelHSV from inside GuiColorPanel, to eliminate code duplication

* comply with naming convention inside GuiColorPanel
2024-01-28 15:01:00 +01:00
db90a39ecf Fix GuiDrawText() sometimes drawing out of bounds (#367)
* Fix `GuiDrawText()` drawing out of bounds when icon is used

* Fix glyphWidth not being set when text wrap is off

* Fixed text sometimes drawing out of bounds when middle or right aligned

This changes textSizeX to have a maximum equal to the bounds width,
preventing the text x-position being set left of the bounds.

textSizeX is unchanged if only an icon is provided, so that lone icons
can always be middle aligned.

* Show ellipsis at the end of text when it gets cut off
2024-01-28 13:28:38 +01:00
jon
b2829289f6 Slider now centers correctly and general UX improvements (#368)
* Slider now centers correctly and general UX improvements

* Typo
2024-01-28 13:24:31 +01:00
45e7f967e6 fixed dragging GuiColorPanel outside of bounds (#366) 2024-01-20 20:49:27 +01:00
Ray
dd36bff888 REVIEWED: Controls description, return values changes! #345 2024-01-14 17:54:38 +01:00
Ray
63f0b86a80 REVIEWED: Update examples UI styles to latest version, including Latin-1 charset #354 2024-01-14 17:42:51 +01:00
Ray
df8ee3e91b REVIEWED: GuiTextBox(), reverted label format change 2024-01-14 17:41:46 +01:00
Ray
6e43ad1d67 REVIEWED: GuiScrollPanel(), allow configurable border, using LISTVIEW property 2024-01-14 17:41:15 +01:00
Ray
e30a826909 Update copyright year to 2024 2024-01-03 14:16:44 +01:00
Ray
22ad8f642a Update copyright year 2024-01-02 21:01:38 +01:00
2ea84a11ac Fix Checkbox using text color from Label (#357) 2024-01-02 13:14:11 +01:00
Ray
2c8dc854d4 Update raygui.h 2023-12-15 19:38:51 +01:00
dc10371543 Fix for incorrect build instructions on MSVC (#352) 2023-12-04 17:03:46 +01:00
141ae0cd31 Implemented new function DrawSplineSegmentBezierCubic, since the one being used had been deprecated (#350) 2023-11-16 12:59:35 +01:00
Ray
e765801006 Update raygui.h 2023-11-14 20:41:17 +01:00
Ray
d60885cd49 REVIEWED: Long words proper word-wrap 2023-11-13 16:14:07 +01:00
Ray
a2726c8600 Update raygui.h 2023-11-08 19:35:05 +01:00
Ray
95c0065bd8 Update raygui.h 2023-11-02 18:23:15 +01:00
499e8bf7b1 GuiSliderPro() returns 1/true if control value changed (#346) 2023-10-13 11:10:34 +02:00
Ray
dd67a47afb Update raygui.h 2023-10-09 09:58:21 +02:00
Ray
85a5c104f5 REVIEWED: GuiGrid() to support STATE_DISABLED 2023-10-03 15:34:12 +02:00
Ray
cfb9191775 Remove trail spaces 2023-09-26 12:54:36 +02:00
c59bacb1bc Added animation_curve to the examples in CMake (#336) 2023-09-25 13:22:09 +02:00
Ray
aada7c6a42 Update animation_curve.c 2023-09-23 22:48:02 +02:00
Ray
48bf2008fa Update README.md 2023-09-18 19:45:57 +02:00
Ray
1c3305031d REVIEWED: GuiCheckBox() #330
return internal-state: 1->Value changed in the control
2023-09-12 14:42:05 +02:00
Ray
25c8c65a6e Update README.md 2023-09-12 00:24:31 +02:00
Ray
268d8bfedd Update README.md 2023-09-12 00:23:23 +02:00
Ray
d0e7a05f9a Update raygui.h 2023-09-11 23:41:59 +02:00
Ray
db466282f8 REVIEWED: ALL styles to support ISO-8859-15 charset (as much as possible) 2023-09-11 20:53:06 +02:00
Ray
d5e9323ba9 Update raygui.h 2023-09-11 20:25:49 +02:00
Ray
9907803626 Update raygui.h 2023-09-11 18:54:10 +02:00
Ray
d2b4c917a9 Update styles README info 2023-09-11 18:52:54 +02:00
Ray
3f4c84b731 Update README.md 2023-09-11 18:52:39 +02:00
Ray
617dc15209 Support loading custom charset from external file 2023-09-11 18:52:24 +02:00
Ray
ac342b9ce8 Updated style: ashes 2023-09-11 17:50:26 +02:00
Ray
aadd9bd3b3 Merge branch 'master' of https://github.com/raysan5/raygui 2023-09-11 13:12:50 +02:00
Ray
72f61056bf Update style: Lavanda 2023-09-11 13:12:40 +02:00
Ray
ec688eced3 Update README.md 2023-09-11 12:54:10 +02:00
Ray
38839e4aa1 Update README.md 2023-09-11 12:51:37 +02:00
Ray
405e71f524 Update style_jungle.png 2023-09-11 12:45:15 +02:00
Ray
b1b46932fb Update screenshot.png 2023-09-11 12:45:12 +02:00
Ray
854351a42a Update style_selector.c 2023-09-11 12:41:35 +02:00
Ray
07a80c6828 Update style_jungle.h 2023-09-11 12:41:31 +02:00
Ray
5a1be66c8a REVIEWED: GuiToggleSlider() focus on mouse-hover 2023-09-11 12:41:14 +02:00
Ray
84f2588a4f Updated projects to include resources 2023-09-11 12:40:51 +02:00
Ray
c37013e10b Update controls_test_suite.c 2023-09-11 12:40:21 +02:00
Ray
44d8a6ac55 Create style_jungle.old.rgs 2023-09-11 11:00:58 +02:00
Ray
ed545e4d7b Update raygui.h 2023-09-11 11:00:29 +02:00
Ray
7746bf39a0 Review default styles 2023-09-10 20:32:40 +02:00
Ray
7b823e0c53 Updated style: Jungle
Support ISO-8859-15 charset, as much as possible
2023-09-10 20:02:11 +02:00
Ray
b9c28b4a3c REVIEWED: White rectangle assignment 2023-09-10 19:57:49 +02:00
Ray
7417b308af Update README.md 2023-09-10 18:56:25 +02:00
Ray
0fccdc61fb Update raygui.h 2023-09-08 23:26:31 +02:00
Ray
d6c317f719 Reviewed header information 2023-09-08 21:03:41 +02:00
25ffd1fe0b commented out unused vars (#329) 2023-09-08 21:01:34 +02:00
Ray
1af7a875fc Update raygui.h 2023-09-07 22:00:34 +02:00
Ray
e97226cd04 tweaks for Zig 2023-09-07 21:59:58 +02:00
Ray
33f43fee2c Update raygui.h 2023-09-07 17:26:08 +02:00
Ray
6f9a8088f2 Update raygui.h 2023-09-06 09:59:05 +02:00
Ray
7f275f4f8c Create raygui_512x512.png 2023-09-06 09:59:01 +02:00
Ray
2955c676ce Update controls_test_suite.c 2023-09-06 09:58:59 +02:00
Ray
718b5830d3 Update raygui.h 2023-09-04 18:10:07 +02:00
Ray
8d9a4b537f REVIEWED: GuiTextBox(), support cursor positioning with mouse 2023-09-03 22:17:50 +02:00
Ray
abf35d8895 Update README.md 2023-09-02 11:35:25 +02:00
Ray
12fc56e5e1 Update raygui.h 2023-09-01 20:57:33 +02:00
Ray
0938f9219c Update raygui.h 2023-09-01 20:29:14 +02:00
Ray
35df0d3d28 REVIEWED: GuiScrollPanel() to avoid smallish scroll-bars 2023-09-01 19:58:17 +02:00
Ray
bced15ec96 REVIEWED: Text-styling properties reorganized
Right now some text-styling properties are defined per control or global for all controls. I'm considering unifying this but there are multiple concerns about it...

ADDED: Some enums for text-styling convenience and comments
2023-09-01 19:57:44 +02:00
Ray
80b4d6ec06 Update controls_test_suite.c 2023-09-01 12:34:27 +02:00
Ray
e569da6a87 Update controls_test_suite.c 2023-09-01 11:39:08 +02:00
3b8164216b Fix warnings in MSVC (#324) 2023-08-29 09:44:14 +02:00
1a786bc9b7 Update raygui.h (#323)
* Update raygui.h

Add pointers for correctness

* Update raygui.h

Move star to match raygui coding style
2023-08-29 00:53:10 +02:00
Ray
d7eb8a7ec5 Update raygui.h 2023-08-28 23:57:15 +02:00
Ray
df543bafad Reviewed text drawing inside bounds issue 2023-08-28 21:17:14 +02:00
Ray
1ad1907dc1 REVIEWED: GuiDrawText(), support word-wrap (read-only text) 2023-08-28 20:27:02 +02:00
Ray
da377d736d Update raygui.h 2023-08-18 21:05:20 +02:00
Ray
e830109d52 Update raygui.h 2023-08-14 10:18:13 +02:00
9bf3ef57a5 made cube icons better (#322) 2023-08-12 18:04:19 +02:00
Ray
41417db52d Update controls_test_suite.c 2023-08-08 12:32:05 +02:00
Ray
a589af0a67 REVIEWED: GuiToggleSlider() new control 2023-08-07 19:41:53 +02:00
Ray
f09b9a546a Merge branch 'master' of https://github.com/raysan5/raygui 2023-08-07 19:04:32 +02:00
Ray
3174613820 Update portable_window.c 2023-08-07 19:04:23 +02:00
2b4d558d31 Add Toggle Slider (#305) (#307)
* Add Toggle Slider (#305)

* Style Toggle Slider

* Add GuiToggleSliderGroup

* Minimize API for GuiToggleSlider
2023-08-07 19:03:47 +02:00
96278a4d08 minor fix, removed unnecessary float cast for textOffsetY (#320)
Co-authored-by: jobat <jobat@toolbelt-games.com>
2023-08-06 20:07:56 +02:00
f8966405ac Fixed incorrect position of the GuiWindowBox closing icon with the defined RAYGUI_NO_ICONS macro. (#318)
In the absence of the added check, and disabled icons, the closing icon of the Gui Window Box was to the left of the center, although it should be strictly centered.
2023-08-04 12:37:23 +02:00
7567816d3e OS Specific path seperator char (#316)
* OS Specific path seperator char

Adds OS specific path seperator char

* Update gui_window_file_dialog.h

* Update custom_file_dialog.c
2023-08-02 19:18:22 +02:00
3d20f06bf2 Update raygui.h (#317) 2023-07-30 09:19:12 +02:00
Ray
eca6b1a7ff Added a reference word-wrap implementation to be applied to current GuiDrawText() 2023-07-29 19:30:52 +02:00
c8260e22de Added example of a calculator app with custom input box (#310)
Turned my previous pull request into an example, as you suggested.
2023-07-29 19:18:02 +02:00
050249b2e5 fix c++ build errors (#314) 2023-07-29 10:18:31 +02:00
36365199b1 Fix GuiScrollBar dragging taking slider behavior (#313) 2023-07-28 19:55:37 +02:00
Ray
1d5e69fc42 WARNING: REDESIGN: Move alpha to GuiDrawRectangle() and GuiDrawText()
Global alpha is not applied on those two functions instead of being individually applied inside every control.
Still, some functions like `DrawRectangleGradient*()` require it but those functions should be moved to raygui custom implementations.
2023-07-25 16:27:56 +02:00
Ray
3e7defc05a Update controls_test_suite.c 2023-07-25 16:25:21 +02:00
f62241d5d1 Fix progressbar border (#303) (#306)
* Fix progressbar border (#303)

* Fix ProgressBar visuals
2023-07-22 21:49:08 +02:00
Ray
02cdb87fb2 Update animation_curve.c 2023-07-22 21:47:35 +02:00
Ray
ccc9b55e82 WARNING: RENAMED: GuiFade() to GuiSetAlpha() 2023-07-21 19:32:43 +02:00
848569ce33 Fix window result and pedantic error (#302)
* Fix result for close button in WindowBox

* Fix pedantic error, void* cast
2023-07-12 16:23:45 +02:00
Ray
89f9d94c6b Update raygui.h 2023-07-12 16:05:14 +02:00
Ray
d54103a1c9 Update raygui.h 2023-07-12 16:02:20 +02:00
b850edc733 Update raygui.h (#301)
Cast malloc to unsigned char* for C++
2023-07-12 16:00:37 +02:00
Ray
670a5deb48 Update custom_sliders.c 2023-07-12 13:30:48 +02:00
df5ee2a420 Fix GuiSlider value pointer (#298) 2023-07-12 13:30:03 +02:00
0309c751b5 Fix Style Selector paths (#299) 2023-07-09 09:50:40 +02:00
Ray
8041f9d3d7 Update raygui.h 2023-07-09 09:39:53 +02:00
Ray
9a3ba8ba1f Update raygui.h 2023-07-09 09:34:30 +02:00
Ray
7373f3677d Update raygui.h 2023-07-09 09:32:26 +02:00
Ray
6111ae9ac1 Update raygui.h 2023-07-09 09:32:15 +02:00
Ray
328f46649b Update raygui.h 2023-07-07 20:03:10 +02:00
Ray
a234fab333 Update raygui.h 2023-07-06 14:57:12 +02:00
Ray
c480013f73 Reviewed C++ compilation (compound literals) 2023-07-06 14:14:47 +02:00
Ray
e7518232eb REVIEWED: GuiProgressBar() disabled state 2023-07-05 18:36:37 +02:00
Ray
9a2605d461 Update raygui.h 2023-07-05 16:48:10 +02:00
Ray
d6f3cdc15c REDESIGNED: GuiProgressBar(), more visual 2023-07-04 18:57:31 +02:00
Ray
8fef0f4fc0 Support style change on controls_test_suite example 2023-07-04 18:57:04 +02:00
fa1c93cdcc Added GuiColorPickerHSV() and GuiColorPanelHSV() (#293) 2023-06-21 23:51:37 +02:00
Ray
1902a2b2e5 Update raygui.h 2023-06-17 19:47:54 +02:00
Ray
32ae0cf716 Update animation_curve.c 2023-06-17 19:47:04 +02:00
Ray
7f70abc5db RENAMED gui module for consistency 2023-06-17 17:03:36 +02:00
Ray
b6db462f72 RENAMED: gui_file_dialog -> gui_window_file_dialog
For consistency with other gui modules
2023-06-17 17:00:54 +02:00
Ray
e6860d2e06 REVIEWED: Code formating 2023-06-17 16:47:51 +02:00
Ray
c17e0cd5d9 REVIEWED: Animation curve examples
ADDED: Example to VS2022 solution
2023-06-17 14:04:53 +02:00
Ray
df65b05208 ADDED: Support custom line spacing style property TEXT_LINE_SPACING 2023-06-15 17:11:29 +02:00
Ray
812408c828 REVIEWED: Sliders/scrollbar dragging state 2023-06-15 13:12:07 +02:00
b9991686d5 Update filename's buf size to match GuiTextBox size param. (#290) 2023-06-03 20:28:31 +02:00
Ray
83e6cae9e4 Update raygui.h 2023-06-01 22:50:10 +02:00
Ray
de7d3de282 Revert "Update portable_window.c"
This reverts commit 5e77b2ca6f.
2023-05-31 21:59:24 +02:00
Ray
3c5b5121bc Update raygui.h 2023-05-31 18:47:49 +02:00
Ray
5e77b2ca6f Update portable_window.c 2023-05-31 18:14:07 +02:00
Ray
37deba27a8 Update raygui.h 2023-05-31 18:14:04 +02:00
Ray
d72e70b410 Revert "Update portable_window.c"
This reverts commit 29a230929d.
2023-05-28 11:38:41 +02:00
Ray
29a230929d Update portable_window.c 2023-05-28 11:30:50 +02:00
Ray
935b8119e9 Update portable_window.c 2023-05-28 11:21:04 +02:00
Ray
4f48e5a3c7 Update portable_window.c 2023-05-28 11:13:21 +02:00
Ray
6650ad0ffa Update style_selector.c 2023-05-28 01:02:34 +02:00
Ray
2648c771e7 Avoid control crash on NULL pointers 2023-05-27 20:39:10 +02:00
Ray
ce358972ef Update README.md 2023-05-27 11:39:08 +02:00
Ray
ae38f05811 Update README.md 2023-05-27 11:38:38 +02:00
Ray
1af9a3960a Integrated 4.0-dev branch (#288)
* WARNING: Library redesign to support return result values

REVIEWED: All example projects

* REVIEWED: Cast values to improve Zig interconnection (#286)

* Update version and header info

* REVIEWED: `GuiListView()`, parameter order bug

* Update raygui.h

* REVIEWED: `GuiTabBar()` toggle logic

* Update raygui.h

* Update raygui.h
2023-05-27 11:34:45 +02:00
Ray
6e4530330d Update README.md 2023-05-27 10:18:45 +02:00
135718ee04 Fixed few stuff about animation curve example (#287)
Co-authored-by: AnstroPleuton <anstro.pleuton@proton.me>
2023-05-21 20:36:11 +02:00
Ray
78ad65365e REVIEWED: Cast values to improve Zig interconnection 2023-05-19 18:47:55 +02:00
215 changed files with 20019 additions and 8626 deletions

View File

@ -1,6 +1,6 @@
zlib License
Copyright (c) 2014-2023 Ramon Santamaria (@raysan5)
Copyright (c) 2014-2025 Ramon Santamaria (@raysan5)
This software is provided "as-is", without any express or implied warranty. In no event
will the authors be held liable for any damages arising from the use of this software.

View File

@ -4,15 +4,17 @@
`raygui` was originally inspired by [Unity IMGUI](https://docs.unity3d.com/Manual/GUIScriptingGuide.html) (immediate mode GUI API).
`raygui` was designed as an auxiliar module for [raylib](https://github.com/raysan5/raylib) to create simple GUI interfaces using raylib graphic style (simple colors, plain rectangular shapes, wide borders...) but it can be adapted to other engines/frameworks.
`raygui` was designed as an auxiliary module for [raylib](https://github.com/raysan5/raylib) to create simple GUI interfaces using raylib graphic style (simple colors, plain rectangular shapes, wide borders...) but it can be adapted to other engines/frameworks.
`raygui` is intended for **tools development**; it has already been used to develop [multiple published tools](https://raylibtech.itch.io).
<br>
**WARNING: Latest `raygui` from master branch is always aligned with latest `raylib` from master branch.**
**WARNING: Latest `raygui` from master branch is always aligned with latest `raylib` from master branch. Make sure to use the appropriate versions.**
**Make sure to use the appropiate versions.**
**WARNING: Latest `raygui 4.0` is an API-BREAKING redesign from previous versions (3.x), now all functions are more consistent and coherent, you can read the details about this breaking change in issue [283](https://github.com/raysan5/raygui/issues/283)**
*NOTE: raygui is a single-file header-only library (despite its internal dependency on raylib), so, functions definition AND implementation reside in the same file `raygui.h`, when including `raygui.h` in a module, `RAYGUI_IMPLEMENTATION` must be previously defined to include the implementation part of `raygui.h` BUT only in one compilation unit, other modules could also include `raygui.h` but `RAYGUI_IMPLEMENTATION` must not be defined again.*
## features
@ -23,17 +25,57 @@
- **Icons support**, embedding a complete 1-bit icons pack
- Multiple **tools** provided for raygui development
## code sample
```c
#include "raylib.h"
#define RAYGUI_IMPLEMENTATION
#include "raygui.h"
int main()
{
InitWindow(400, 200, "raygui - controls test suite");
SetTargetFPS(60);
bool showMessageBox = false;
while (!WindowShouldClose())
{
// Draw
//----------------------------------------------------------------------------------
BeginDrawing();
ClearBackground(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)));
if (GuiButton((Rectangle){ 24, 24, 120, 30 }, "#191#Show Message")) showMessageBox = true;
if (showMessageBox)
{
int result = GuiMessageBox((Rectangle){ 85, 70, 250, 100 },
"#191#Message Box", "Hi! This is a message!", "Nice;Cool");
if (result >= 0) showMessageBox = false;
}
EndDrawing();
}
CloseWindow();
return 0;
}
```
![screenshot000](https://github.com/raysan5/raygui/assets/5766837/170e2bce-b7ca-49dc-a263-32b673376546)
## raygui controls
### basic controls
```
Label | Button | LabelButton | Toggle | ToggleGroup | CheckBox
ComboBox | DropdownBox | TextBox | ValueBox | Spinner
Slider | SliderBar | ProgressBar | StatusBar | DummyRec | Grid
Label | Button | LabelButton | Toggle | ToggleGroup | ToggleSlider
CheckBox | ComboBox | DropdownBox | TextBox | ValueBox | Spinner
Slider | SliderBar | ProgressBar | StatusBar | DummyRec | Grid
```
### container/separator controls
```
WindowBox | GroupBox | Line | Panel | ScrollPanel | TabBar
WindowBox | GroupBox | Line | Panel | ScrollPanel | TabBar
```
### advanced controls
```
@ -45,7 +87,7 @@ ListView | ColorPicker | MessageBox | TextInputBox
`raygui` comes with a [default](styles/default) style automatically loaded at runtime:
![raygui default style](styles/default/style_table.png)
![raygui default style](styles/default/style_default.png)
Some additional styles are also provided for convenience, just check [styles directory](styles) for details:
@ -97,7 +139,7 @@ gcc -o src/raygui.dll src/raygui.c -shared -DRAYGUI_IMPLEMENTATION -DBUILD_LIBTY
- **Windows (MSVC)**
```
copy src\raylib.h src\raylib.c
copy src\raygui.h src\raygui.c
cl /O2 /I../raylib/src/ /D_USRDLL /D_WINDLL /DRAYGUI_IMPLEMENTATION /DBUILD_LIBTYPE_SHARED src/raygui.c /LD /Feraygui.dll /link /LIBPATH ../raylib/build/raylib/Release/raylib.lib /subsystem:windows /machine:x64
```
@ -105,6 +147,7 @@ cl /O2 /I../raylib/src/ /D_USRDLL /D_WINDLL /DRAYGUI_IMPLEMENTATION /DBUILD_LIBT
```
mv src/raygui.h src/raygui.c
gcc -o raygui.so src/raygui.c -shared -fpic -DRAYGUI_IMPLEMENTATION -lraylib -lGL -lm -lpthread -ldl -lrt -lX11
mv src/raygui.c src/raygui.h
```
- **Mac (clang, homebrew installed raylib)**

View File

@ -113,7 +113,7 @@ endif
ifeq ($(PLATFORM),PLATFORM_WEB)
# Emscripten required variables
EMSDK_PATH ?= C:/emsdk
EMSDK_PATH ?= C:/raylib/emsdk
EMSCRIPTEN_VERSION ?= 1.38.32
CLANG_VERSION = e$(EMSCRIPTEN_VERSION)_64bit
PYTHON_VERSION = 2.7.13.1_64bit\python-2.7.13.amd64
@ -219,21 +219,23 @@ endif
ifeq ($(PLATFORM),PLATFORM_WEB)
# -Os # size optimization
# -O2 # optimization level 2, if used, also set --memory-init-file 0
# -s USE_GLFW=3 # Use glfw3 library (context/input management)
# -s ALLOW_MEMORY_GROWTH=1 # to allow memory resizing -> WARNING: Audio buffers could FAIL!
# -s TOTAL_MEMORY=16777216 # to specify heap memory size (default = 16MB)
# -s USE_PTHREADS=1 # multithreading support
# -s WASM=0 # disable Web Assembly, emitted by default
# -s EMTERPRETIFY=1 # enable emscripten code interpreter (very slow)
# -s EMTERPRETIFY_ASYNC=1 # support synchronous loops by emterpreter
# -s FORCE_FILESYSTEM=1 # force filesystem to load/save files data
# -s ASSERTIONS=1 # enable runtime checks for common memory allocation errors (-O1 and above turn it off)
# -sUSE_GLFW=3 # Use glfw3 library (context/input management)
# -sALLOW_MEMORY_GROWTH=1 # to allow memory resizing -> WARNING: Audio buffers could FAIL!
# -sTOTAL_MEMORY=16777216 # to specify heap memory size (default = 16MB) (67108864 = 64MB)
# -sUSE_PTHREADS=1 # multithreading support
# -sWASM=0 # disable Web Assembly, emitted by default
# -sASYNCIFY # lets synchronous C/C++ code interact with asynchronous JS
# -sFORCE_FILESYSTEM=1 # force filesystem to load/save files data
# -sASSERTIONS=1 # enable runtime checks for common memory allocation errors (-O1 and above turn it off)
# -sMINIFY_HTML=0 # minify generated html from shell.html
# --profiling # include information for code profiling
# --memory-init-file 0 # to avoid an external memory initialization code file (.mem)
# --preload-file resources # specify a resources folder for data compilation
CFLAGS += -Os -s USE_GLFW=3 -s FORCE_FILESYSTEM=1 -s EMTERPRETIFY=1 -s EMTERPRETIFY_ASYNC=1 --preload-file $(dir $<)resources@resources
# --source-map-base # allow debugging in browser with source map
# --shell-file shell.html # define a custom shell .html and output extension
CFLAGS += -Os -sUSE_GLFW=3 -sFORCE_FILESYSTEM=1 -sASYNCIFY --preload-file $(dir $<)resources@resources -sMINIFY_HTML=0
ifeq ($(BUILD_MODE), DEBUG)
CFLAGS += -s ASSERTIONS=1 --profiling
CFLAGS += -sASSERTIONS=1 --profiling
endif
# NOTE: Simple raylib examples are compiled to be interpreter by emterpreter, that way,
# we can compile same code for ALL platforms with no change required, but, working on bigger
@ -275,6 +277,9 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP)
ifeq ($(PLATFORM_OS),BSD)
# Consider -L$(RAYLIB_INSTALL_PATH)
LDFLAGS += -L. -Lsrc -L/usr/local/lib
ifeq ($(shell uname),OpenBSD)
LDFLAGS += -L/usr/X11R6/lib
endif
endif
ifeq ($(PLATFORM_OS),LINUX)
# Reset everything.
@ -337,7 +342,7 @@ endif
ifeq ($(PLATFORM),PLATFORM_RPI)
# Libraries for Raspberry Pi compiling
# NOTE: Required packages: libasound2-dev (ALSA)
LDLIBS = -lraylib -lbrcmGLESv2 -lbrcmEGL -lpthread -lrt -lm -lbcm_host -ldl
LDLIBS = -lraylib -lGLESv2 -lEGL -lpthread -lrt -lm -ldrm -lgbm -ldl
endif
ifeq ($(PLATFORM),PLATFORM_WEB)
# Libraries for web (HTML5) compiling
@ -348,6 +353,7 @@ endif
EXAMPLES = \
controls_test_suite/controls_test_suite \
custom_file_dialog/custom_file_dialog \
custom_input_box/custom_input_box\
image_exporter/image_exporter \
image_importer_raw/image_importer_raw \
property_list/property_list \
@ -355,7 +361,8 @@ EXAMPLES = \
scroll_panel/scroll_panel \
style_selector/style_selector \
custom_sliders/custom_sliders \
animation_curve/animation_curve
animation_curve/animation_curve \
floating_window/floating_window \
CURRENT_MAKEFILE = $(lastword $(MAKEFILE_LIST))
@ -374,12 +381,16 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP)
del *.o *.exe /s
endif
ifeq ($(PLATFORM_OS),LINUX)
find -type f -executable | xargs file -i | grep -E 'x-object|x-archive|x-sharedlib|x-executable' | rev | cut -d ':' -f 2- | rev | xargs rm -fv
rm -f $(EXAMPLES)
endif
ifeq ($(PLATFORM_OS),OSX)
find . -type f -perm +ugo+x -delete
rm -f *.o
endif
ifeq ($(shell uname),OpenBSD)
find . -type f -perm 0755 -delete
rm -f *.o
endif
endif
ifeq ($(PLATFORM),PLATFORM_RPI)
find . -type f -executable -delete

View File

@ -22,23 +22,22 @@
#include "../../src/raygui.h"
// raygui embedded styles
#include "../style_selector/styles/style_cyber.h" // raygui style: cyber
#include "../style_selector/styles/style_jungle.h" // raygui style: jungle
#include "../style_selector/styles/style_lavanda.h" // raygui style: lavanda
#include "../style_selector/styles/style_dark.h" // raygui style: dark
#include "../style_selector/styles/style_bluish.h" // raygui style: bluish
#include "../style_selector/styles/style_terminal.h" // raygui style: terminal
#include "../styles/style_cyber.h" // raygui style: cyber
#include "../styles/style_jungle.h" // raygui style: jungle
#include "../styles/style_lavanda.h" // raygui style: lavanda
#include "../styles/style_dark.h" // raygui style: dark
#include "../styles/style_bluish.h" // raygui style: bluish
#include "../styles/style_terminal.h" // raygui style: terminal
#undef RAYGUI_IMPLEMENTATION // Avoid including raygui implementation again
#define GUI_CURVE_EDIT_IMPLEMENTATION
#include "gui_curve_edit.h"
#define GUI_CURVE_EDITOR_IMPLEMENTATION
#include "gui_curve_editor.h"
//------------------------------------------------------------------------------------
// Helper function
//------------------------------------------------------------------------------------
void LoadDefaults(GuiCurveEditState curves[]);
void LoadCurveDefaults(GuiCurveEditorState curves[]);
//------------------------------------------------------------------------------------
// Program main entry point
@ -50,7 +49,7 @@ int main()
const int screenWidth = 800;
const int screenHeight = 540;
InitWindow(screenWidth, screenHeight, "Animation curves");
InitWindow(screenWidth, screenHeight, "raygui - animation curves");
SetTargetFPS(60);
// Gui style
@ -62,32 +61,33 @@ int main()
const float margin = 8;
// Gui states
Vector2 scrollOffset = (Vector2) {0,0};
Rectangle contentRect = (Rectangle) {0,0,0,0};
Vector2 scrollOffset = (Vector2){ 0, 0 };
Rectangle contentRect = (Rectangle){ 0, 0, 0, 0 };
bool moveSlider = false;
bool sectionActive[5] = {false};
bool sectionActive[5] = { 0 };
sectionActive[0] = true;
const char* sectionNames[5] = {"X Position", "Y Position", "Width", "Height", "Rotation"};
bool editValueBox[5][4] = {false};
char* valTextBox[5][4][20];
const char *sectionNames[5] = { "X Position", "Y Position", "Width", "Height", "Rotation" };
bool editValueBox[5][4] = { 0 };
char *valTextBox[5][4][20] = { 0 };
bool playAnimation = true;
bool showHelp = true;
Rectangle settingsRect = (Rectangle) {screenWidth-screenWidth/3, 0, screenWidth/3, screenHeight};
Rectangle settingsRect = (Rectangle){ screenWidth - screenWidth/3, 0, screenWidth/3, screenHeight };
// Animation curves
// 0 -> Ball X position
// 1 -> Ball Y position
// 2 -> Ball Width
// 3 -> Ball Height
// 4 -> Ball rotation
GuiCurveEditState curves[5];
LoadDefaults(curves);
// Animation time
float time = 0.f;
float animationTime = 4.f;
GuiCurveEditorState curves[5] = { 0 };
LoadCurveDefaults(curves);
// Animation time
float time = 0.0f;
float animationTime = 4.0f;
//SetTargetFPS(60);
//--------------------------------------------------------------------------------------
// Main game loop
@ -95,22 +95,20 @@ int main()
{
// Update
//----------------------------------------------------------------------------------
if(playAnimation)
time += GetFrameTime();
if (playAnimation) time += GetFrameTime();
// Reset timer
if(time > animationTime)
time = 0;
if (time > animationTime) time = 0;
// Ball animation
const float t = time / animationTime;
Vector2 ballPos = (Vector2) {EvalGuiCurve(&curves[0], t), EvalGuiCurve(&curves[1], t)};
Vector2 ballSize = (Vector2) {EvalGuiCurve(&curves[2], t), EvalGuiCurve(&curves[3], t)};
float ballRotation = EvalGuiCurve(&curves[4], t);
const float t = time/animationTime;
Vector2 ballPos = (Vector2){ GuiCurveEval(&curves[0], t), GuiCurveEval(&curves[1], t) };
Vector2 ballSize = (Vector2){ GuiCurveEval(&curves[2], t), GuiCurveEval(&curves[3], t) };
float ballRotation = GuiCurveEval(&curves[4], t);
// Update style
if(visualStyleActive != prevVisualStyleActive){
if (visualStyleActive != prevVisualStyleActive)
{
switch (visualStyleActive)
{
case 0: GuiLoadStyleDefault(); break;
@ -122,26 +120,25 @@ int main()
case 6: GuiLoadStyleTerminal(); break;
default: break;
}
fontSize = GuiGetStyle(DEFAULT, TEXT_SIZE);
prevVisualStyleActive = visualStyleActive;
}
// Update settings panel rect
Rectangle sliderRect = (Rectangle) {settingsRect.x-4, settingsRect.y, 4, settingsRect.height};
if(CheckCollisionPointRec(GetMousePosition(), sliderRect) && IsMouseButtonPressed(MOUSE_BUTTON_LEFT)){
moveSlider = true;
}
if(IsMouseButtonUp(MOUSE_BUTTON_LEFT)){
moveSlider = false;
}
if(moveSlider){
Rectangle sliderRect = (Rectangle){ settingsRect.x - 4, settingsRect.y, 4, settingsRect.height };
if (CheckCollisionPointRec(GetMousePosition(), sliderRect) && IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) moveSlider = true;
if (IsMouseButtonUp(MOUSE_BUTTON_LEFT)) moveSlider = false;
if (moveSlider)
{
settingsRect.x = GetMouseX();
// Minimum-Maximum size
if(settingsRect.x > screenWidth-4)
settingsRect.x = screenWidth-4;
else if(settingsRect.x < 4) // width of the slider
settingsRect.x = 4;
settingsRect.width = screenWidth-settingsRect.x;
if (settingsRect.x > (screenWidth - 4)) settingsRect.x = screenWidth - 4;
else if (settingsRect.x < 4) settingsRect.x = 4;
settingsRect.width = screenWidth - settingsRect.x;
}
@ -154,33 +151,30 @@ int main()
// Scene
//----------------------------------------------------------------------------------
DrawRectangle(curves[0].start, curves[1].end, curves[0].end-curves[0].start, curves[1].start-curves[1].end, BLUE); // Sky
// sky
DrawRectangle(curves[0].start, curves[1].end, curves[0].end-curves[0].start, curves[1].start-curves[1].end, BLUE);
// ground
DrawRectangle(curves[0].start, curves[1].start, curves[0].end-curves[0].start, 32, DARKGREEN);
DrawRectangle(curves[0].start, curves[1].start, curves[0].end-curves[0].start, 32, DARKGREEN); // Ground
BeginScissorMode(curves[0].start, curves[1].end, curves[0].end-curves[0].start, curves[1].start-curves[1].end+32);
// Draw ball
DrawRectanglePro((Rectangle){ballPos.x, ballPos.y, ballSize.x, ballSize.y}, (Vector2){ballSize.x/2.f,ballSize.y/2.f}, ballRotation, PINK);
// Local origin
DrawRectanglePro((Rectangle){ballPos.x, ballPos.y, ballSize.x, ballSize.y}, (Vector2){ballSize.x/2.f,ballSize.y/2.f}, ballRotation, PINK); // Ball
DrawLine(ballPos.x, ballPos.y, ballPos.x + cosf(ballRotation*DEG2RAD)*ballSize.x, ballPos.y +sinf(ballRotation*DEG2RAD)*ballSize.y, RED);
DrawLine(ballPos.x, ballPos.y, ballPos.x + cosf((ballRotation+90)*DEG2RAD)*ballSize.x, ballPos.y +sinf((ballRotation+90)*DEG2RAD)*ballSize.y, GREEN);
EndScissorMode();
// Bounds
DrawRectangleLines(curves[0].start, curves[1].end, curves[0].end-curves[0].start, curves[1].start-curves[1].end+32, GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_NORMAL)));
//----------------------------------------------------------------------------------
// GUI
//----------------------------------------------------------------------------------
// Help window
if(showHelp){
if(GuiWindowBox((Rectangle) {margin, margin, settingsRect.x-2*margin, curves[1].end-2*margin}, "help")){
showHelp = false;
}
Rectangle helpTextRect = (Rectangle) {2*margin, 2*margin+RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT, settingsRect.x-4-4*margin, 0};
if (showHelp)
{
if (GuiWindowBox((Rectangle) {margin, margin, settingsRect.x-2*margin, curves[1].end-2*margin}, "help")) showHelp = false;
Rectangle helpTextRect = (Rectangle) { 2*margin, 2*margin+RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT, settingsRect.x - 4 - 4*margin, 0 };
GuiLabel((Rectangle) {helpTextRect.x, helpTextRect.y+helpTextRect.height, helpTextRect.width, fontSize}, "Curve widget controls:");
helpTextRect.height += fontSize+margin;
GuiLabel((Rectangle) {helpTextRect.x, helpTextRect.y+helpTextRect.height, helpTextRect.width, fontSize}, "- Left click to move/add point or move tangents");
@ -189,189 +183,194 @@ int main()
helpTextRect.height += fontSize+margin/2;
GuiLabel((Rectangle) {helpTextRect.x, helpTextRect.y+helpTextRect.height, helpTextRect.width, fontSize}, "- Right click to remove a point");
helpTextRect.height += fontSize+margin/2;
DrawRectangleGradientV(margin, margin+curves[1].end-2*margin, settingsRect.x-2*margin, 12, (Color){0,0,0,100}, BLANK);
}
DrawRectangleGradientV(margin, margin+curves[1].end - 2*margin, settingsRect.x - 2*margin, 12, (Color){ 0,0,0,100 }, BLANK);
}
// Settings panel
GuiScrollPanel(settingsRect, "Settings", contentRect, &scrollOffset);
// Clip rendering
GuiScrollPanel(settingsRect, "Settings", contentRect, &scrollOffset, NULL);
BeginScissorMode(settingsRect.x, settingsRect.y+RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT, settingsRect.width, settingsRect.height);
// Rebuild the content Rect
contentRect = (Rectangle) {settingsRect.x+margin, RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT+margin, settingsRect.width-2*margin-GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH), 0};
contentRect = (Rectangle){ settingsRect.x + margin, RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT+margin, settingsRect.width - 2*margin - GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH), 0 };
// Help button
if(GuiButton((Rectangle){contentRect.x, contentRect.y+contentRect.height+scrollOffset.y, contentRect.width, 1.5*fontSize}, GuiIconText(showHelp ? ICON_EYE_ON : ICON_EYE_OFF, "Curve controls help"))){
showHelp = !showHelp;
}
if (GuiButton((Rectangle){ contentRect.x, contentRect.y + contentRect.height + scrollOffset.y, contentRect.width, 1.5*fontSize }, GuiIconText(showHelp? ICON_EYE_ON : ICON_EYE_OFF, "Curve controls help"))) showHelp = !showHelp;
contentRect.height += 1.5*fontSize + margin;
// Animation Time slider
animationTime = GuiSlider((Rectangle){contentRect.x, contentRect.y+contentRect.height+scrollOffset.y, contentRect.width/2, fontSize}, NULL, TextFormat("Animation Time: %.2fs", animationTime), animationTime, 1, 8);
GuiSlider((Rectangle){ contentRect.x, contentRect.y+contentRect.height+scrollOffset.y, contentRect.width/2, fontSize }, NULL, TextFormat("Animation Time: %.2fs", animationTime), &animationTime, 1, 8);
contentRect.height += fontSize + margin;
// Load default curves
if(GuiButton((Rectangle){contentRect.x, contentRect.y+contentRect.height+scrollOffset.y, contentRect.width, 1.5*fontSize}, "Load default")){
LoadDefaults(curves);
animationTime = 4.f;
time = 0.f;
if (GuiButton((Rectangle){ contentRect.x, contentRect.y+contentRect.height+scrollOffset.y, contentRect.width, 1.5*fontSize }, "Load default"))
{
LoadCurveDefaults(curves);
animationTime = 4.0f;
time = 0.0f;
}
contentRect.height += 1.5*fontSize + margin;
contentRect.height += 1.5f*fontSize + margin;
// Styles
GuiLabel((Rectangle){contentRect.x, contentRect.y+contentRect.height+scrollOffset.y, contentRect.width, fontSize}, "Style:");
GuiLabel((Rectangle){ contentRect.x, contentRect.y + contentRect.height + scrollOffset.y, contentRect.width, fontSize }, "Style:");
contentRect.height += fontSize;
visualStyleActive = GuiComboBox((Rectangle){contentRect.x, contentRect.y+contentRect.height+scrollOffset.y, contentRect.width, 1.5*fontSize}, "default;Jungle;Lavanda;Dark;Bluish;Cyber;Terminal", visualStyleActive);
contentRect.height += 1.5*fontSize + margin;
GuiComboBox((Rectangle){contentRect.x, contentRect.y+contentRect.height+scrollOffset.y, contentRect.width, 1.5*fontSize }, "default;Jungle;Lavanda;Dark;Bluish;Cyber;Terminal", &visualStyleActive);
contentRect.height += 1.5f*fontSize + margin;
// Draw curves with their controls
// Draw curves with their controls
//----------------------------------------------------------------------------------
for(int i=0; i < 5; i++){
for (int i = 0; i < 5; i++)
{
// Collapsing section
Rectangle headerRect = (Rectangle){contentRect.x, contentRect.y+contentRect.height+scrollOffset.y, contentRect.width, 1.5*fontSize};
Rectangle headerRect = (Rectangle){ contentRect.x, contentRect.y + contentRect.height+scrollOffset.y, contentRect.width, 1.5f*fontSize };
GuiStatusBar(headerRect, NULL);
if(GuiLabelButton(headerRect, GuiIconText(sectionActive[i] ? ICON_ARROW_DOWN_FILL : ICON_ARROW_RIGHT_FILL, sectionNames[i]))){
sectionActive[i] = !sectionActive[i];
}
contentRect.height += 1.5*fontSize + margin;
if (GuiLabelButton(headerRect, GuiIconText(sectionActive[i] ? ICON_ARROW_DOWN_FILL : ICON_ARROW_RIGHT_FILL, sectionNames[i]))) sectionActive[i] = !sectionActive[i];
contentRect.height += 1.5f*fontSize + margin;
// Skip this section
if(!sectionActive[i])
continue;
if (!sectionActive[i]) continue;
// Draw curve control
Rectangle curveRect = (Rectangle){contentRect.x, contentRect.y+contentRect.height+scrollOffset.y, contentRect.width, fontSize*12};
Rectangle curveRect = (Rectangle){ contentRect.x, contentRect.y+contentRect.height + scrollOffset.y, contentRect.width, fontSize*12 };
EndScissorMode(); // Stop clipping from setting rect
// Curves can leaks from control boundary... scissor it !
BeginScissorMode(curveRect.x, curveRect.y, curveRect.width, curveRect.height);
GuiCurveEdit(&curves[i],curveRect);
GuiCurveEditor(&curves[i], curveRect);
EndScissorMode();
// Resume clipping from setting rect
BeginScissorMode(settingsRect.x, settingsRect.y+RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT, settingsRect.width, settingsRect.height);
BeginScissorMode(settingsRect.x, settingsRect.y + RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT, settingsRect.width, settingsRect.height);
contentRect.height += fontSize*12 + margin;
// Draw selected point controls
GuiCurveEditPoint* p = &(curves[i].points[curves[i].selectedIndex]);
p->leftLinear = GuiCheckBox((Rectangle){contentRect.x, contentRect.y+contentRect.height+scrollOffset.y, 1.5*fontSize, 1.5*fontSize}, "Left Linear", p->leftLinear);
p->rightLinear = GuiCheckBox((Rectangle){contentRect.x+contentRect.width/2, contentRect.y+contentRect.height+scrollOffset.y, 1.5*fontSize, 1.5*fontSize}, "Right Linear", p->rightLinear);
contentRect.height += 1.5*fontSize + margin;
GuiCurveEditorPoint *p = &(curves[i].points[curves[i].selectedIndex]);
GuiCheckBox((Rectangle){ contentRect.x, contentRect.y + contentRect.height + scrollOffset.y, 1.5f*fontSize, 1.5f*fontSize }, "Left Linear", &p->leftLinear);
GuiCheckBox((Rectangle){ contentRect.x+contentRect.width/2, contentRect.y + contentRect.height + scrollOffset.y, 1.5f*fontSize, 1.5f*fontSize }, "Right Linear", &p->rightLinear);
contentRect.height += 1.5f*fontSize + margin;
// Positions
GuiLabel((Rectangle){contentRect.x, contentRect.y+contentRect.height+scrollOffset.y, contentRect.width, fontSize}, "Position");
GuiLabel((Rectangle){ contentRect.x, contentRect.y + contentRect.height + scrollOffset.y, contentRect.width, fontSize }, "Position");
contentRect.height += fontSize;
if(!editValueBox[i][0]){
// transform x position to string
gcvt(p->position.x, 6, valTextBox[i][0]);
}
if(!editValueBox[i][1]){
// transform y position to string
gcvt(curves[i].start + (curves[i].end-curves[i].start) * p->position.y, 6, valTextBox[i][1]);
}
if (!editValueBox[i][0]) gcvt(p->position.x, 6, (char *)valTextBox[i][0]); // Transform x position to string
if (!editValueBox[i][1]) gcvt(curves[i].start + (curves[i].end-curves[i].start)*p->position.y, 6, (char *)valTextBox[i][1]); // Transform y position to string
// X pos
if(GuiTextBox((Rectangle){contentRect.x, contentRect.y+contentRect.height+scrollOffset.y, contentRect.width/2-margin, 1.5*fontSize}, valTextBox[i][0], 20, editValueBox[i][0])){
if (GuiTextBox((Rectangle){ contentRect.x, contentRect.y + contentRect.height + scrollOffset.y, contentRect.width/2-margin, 1.5f*fontSize }, (char *)valTextBox[i][0], 20, editValueBox[i][0]))
{
editValueBox[i][0] = !editValueBox[i][0];
// input ended
if(!editValueBox[i][0]){
// Input ended
if (!editValueBox[i][0])
{
// Try to convert text to float and assign it to the point
char * endPtr;
double value = strtod( (char *) valTextBox[i][0], &endPtr);
if ( endPtr != (char *) valTextBox[i][0] ) {
p->position.x = value < 0 ? 0 : value > 1 ? 1 : value;
}
char *endPtr = NULL;
double value = strtod((char *)valTextBox[i][0], &endPtr);
if (endPtr != (char *)valTextBox[i][0]) p->position.x = (value < 0)? 0 : (value > 1)? 1 : value;
}
}
// Y pos
if(GuiTextBox((Rectangle){contentRect.x+contentRect.width/2, contentRect.y+contentRect.height+scrollOffset.y, contentRect.width/2, 1.5*fontSize}, valTextBox[i][1], 20, editValueBox[i][1])){
if (GuiTextBox((Rectangle){ contentRect.x + contentRect.width/2, contentRect.y + contentRect.height + scrollOffset.y, contentRect.width/2.0f, 1.5f*fontSize }, (char *)valTextBox[i][1], 20, editValueBox[i][1]))
{
editValueBox[i][1] = !editValueBox[i][1];
// input ended
if(!editValueBox[i][1]){
// Input ended
if (!editValueBox[i][1])
{
// Try to convert text to float and assign it to the point
char * endPtr;
double value = strtod( (char *)valTextBox[i][1], &endPtr);
if ( endPtr != (char *) valTextBox[i][1] ) {
float normalizedVal = (value-curves[i].start) / (curves[i].end-curves[i].start);
p->position.y = normalizedVal < 0 ? 0 : normalizedVal > 1 ? 1 : normalizedVal;
}
char *endPtr = NULL;
double value = strtod((char *)valTextBox[i][1], &endPtr);
if (endPtr != (char *)valTextBox[i][1])
{
float normalizedVal = (value - curves[i].start)/(curves[i].end - curves[i].start);
p->position.y = (normalizedVal < 0)? 0 : (normalizedVal > 1)? 1 : normalizedVal;
}
}
}
contentRect.height += 1.5*fontSize + margin;
contentRect.height += 1.5f*fontSize + margin;
// Tangents
GuiLabel((Rectangle){contentRect.x, contentRect.y+contentRect.height+scrollOffset.y, contentRect.width, fontSize}, "Tangents");
GuiLabel((Rectangle){ contentRect.x, contentRect.y + contentRect.height + scrollOffset.y, contentRect.width, fontSize }, "Tangents");
contentRect.height += fontSize;
if(!editValueBox[i][2]){
// transform left tangent to string
gcvt(p->tangents.x, 6, valTextBox[i][2]);
}
if(!editValueBox[i][3]){
// transform right tangent to string
gcvt(p->tangents.y, 6, valTextBox[i][3]);
}
if (!editValueBox[i][2]) gcvt(p->tangents.x, 6, (char *)valTextBox[i][2]); // Transform left tangent to string
if (!editValueBox[i][3]) gcvt(p->tangents.y, 6, (char *)valTextBox[i][3]); // Transform right tangent to string
// Left tan
if(GuiTextBox((Rectangle){contentRect.x, contentRect.y+contentRect.height+scrollOffset.y, contentRect.width/2-margin, 1.5*fontSize}, valTextBox[i][2], 20, editValueBox[i][2])){
if (GuiTextBox((Rectangle){ contentRect.x, contentRect.y + contentRect.height + scrollOffset.y, contentRect.width/2 - margin, 1.5f*fontSize }, (char *)valTextBox[i][2], 20, editValueBox[i][2]))
{
editValueBox[i][2] = !editValueBox[i][2];
// input ended
if(!editValueBox[i][2]){
// Try to convert text to float and assign it to the point
char * endPtr;
double value = strtod( (char *) valTextBox[i][2], &endPtr);
if ( endPtr != (char *) valTextBox[i][2] ) {
p->tangents.x = value;
}
}
}
// Right tan
if(GuiTextBox((Rectangle){contentRect.x+contentRect.width/2, contentRect.y+contentRect.height+scrollOffset.y, contentRect.width/2, 1.5*fontSize}, valTextBox[i][3], 20, editValueBox[i][3])){
editValueBox[i][3] = !editValueBox[i][3];
// input ended
if(!editValueBox[i][3]){
// Try to convert text to float and assign it to the point
char * endPtr;
double value = strtod( (char *) valTextBox[i][3], &endPtr);
if ( endPtr != (char *) valTextBox[i][3] ) {
p->tangents.y = value;
}
}
}
contentRect.height += 1.5*fontSize + margin;
// Input ended
if (!editValueBox[i][2])
{
// Try to convert text to float and assign it to the point
char *endPtr = NULL;
double value = strtod((char *)valTextBox[i][2], &endPtr);
if (endPtr != (char *)valTextBox[i][2]) p->tangents.x = value;
}
}
// Right tan
if (GuiTextBox((Rectangle){ contentRect.x + contentRect.width/2.0f, contentRect.y + contentRect.height + scrollOffset.y, contentRect.width/2.0f, 1.5f*fontSize }, (char *)valTextBox[i][3], 20, editValueBox[i][3]))
{
editValueBox[i][3] = !editValueBox[i][3];
// Input ended
if (!editValueBox[i][3])
{
// Try to convert text to float and assign it to the point
char *endPtr = NULL;
double value = strtod((char *)valTextBox[i][3], &endPtr);
if (endPtr != (char *)valTextBox[i][3]) p->tangents.y = value;
}
}
contentRect.height += 1.5*fontSize + margin;
}
contentRect.height += margin;
EndScissorMode();
// Settings panel shadow
DrawRectangleGradientH(settingsRect.x-12, 0, 12, settingsRect.height, BLANK, (Color){0,0,0,100});
DrawRectangleGradientH(settingsRect.x - 12, 0, 12, settingsRect.height, BLANK, (Color){ 0, 0, 0, 100 });
// Slider
if(moveSlider){
DrawRectangle(sliderRect.x, sliderRect.y, sliderRect.width, sliderRect.height, GetColor(GuiGetStyle(DEFAULT, BASE_COLOR_PRESSED)));
}else if(CheckCollisionPointRec(GetMousePosition(), sliderRect)){
DrawRectangle(sliderRect.x, sliderRect.y, sliderRect.width, sliderRect.height, GetColor(GuiGetStyle(DEFAULT, BASE_COLOR_FOCUSED)));
}
if (moveSlider) DrawRectangle(sliderRect.x, sliderRect.y, sliderRect.width, sliderRect.height, GetColor(GuiGetStyle(DEFAULT, BASE_COLOR_PRESSED)));
else if(CheckCollisionPointRec(GetMousePosition(), sliderRect)) DrawRectangle(sliderRect.x, sliderRect.y, sliderRect.width, sliderRect.height, GetColor(GuiGetStyle(DEFAULT, BASE_COLOR_FOCUSED)));
// Draw Time controls
//----------------------------------------------------------------------------------
Rectangle timeLineRect = (Rectangle) {0, screenHeight-4*fontSize, settingsRect.x, 4*fontSize};
GuiPanel((Rectangle) { timeLineRect.x, timeLineRect.y, timeLineRect.width, 2*fontSize}, NULL);
GuiLabel((Rectangle) { timeLineRect.x, timeLineRect.y, timeLineRect.width, 2*fontSize}, TextFormat("Normalized Time: %.3f", time / animationTime));
if(GuiButton((Rectangle) { timeLineRect.x+timeLineRect.width/2-2*fontSize-margin/4, timeLineRect.y, 2*fontSize, 2*fontSize}, GuiIconText(playAnimation ? ICON_PLAYER_PAUSE : ICON_PLAYER_PLAY, ""))){
playAnimation = !playAnimation;
}
if(GuiButton((Rectangle) { timeLineRect.x+timeLineRect.width/2+margin/4, timeLineRect.y, 2*fontSize, 2*fontSize}, GuiIconText(ICON_PLAYER_STOP, ""))){
Rectangle timeLineRect = (Rectangle){ 0, screenHeight-4*fontSize, settingsRect.x, 4*fontSize };
GuiPanel((Rectangle){ timeLineRect.x, timeLineRect.y, timeLineRect.width, 2*fontSize }, NULL);
GuiLabel((Rectangle){ timeLineRect.x, timeLineRect.y, timeLineRect.width, 2*fontSize }, TextFormat("Normalized Time: %.3f", time/animationTime));
if (GuiButton((Rectangle){ timeLineRect.x+timeLineRect.width/2 - 2*fontSize - margin/4, timeLineRect.y, 2*fontSize, 2*fontSize }, GuiIconText((playAnimation? ICON_PLAYER_PAUSE : ICON_PLAYER_PLAY), ""))) playAnimation = !playAnimation;
if (GuiButton((Rectangle){ timeLineRect.x+timeLineRect.width/2 + margin/4, timeLineRect.y, 2*fontSize, 2*fontSize }, GuiIconText(ICON_PLAYER_STOP, "")))
{
playAnimation = false;
time = 0;
}
time = animationTime * GuiSlider((Rectangle){timeLineRect.x, timeLineRect.y+2*fontSize, timeLineRect.width, timeLineRect.height-2*fontSize}, NULL, NULL, time / animationTime, 0, 1);
float animTime = time/animationTime;
GuiSlider((Rectangle){timeLineRect.x, timeLineRect.y + 2*fontSize, timeLineRect.width, timeLineRect.height - 2*fontSize }, NULL, NULL, &animTime, 0, 1);
time = animationTime*animTime;
// Time panel shadow
DrawRectangleGradientV(timeLineRect.x, timeLineRect.y-12, timeLineRect.width, 12, BLANK, (Color){0,0,0,100});
DrawRectangleGradientV(timeLineRect.x, timeLineRect.y - 12, timeLineRect.width, 12, BLANK, (Color){ 0, 0, 0, 100 });
EndDrawing();
//----------------------------------------------------------------------------------
}
@ -382,7 +381,8 @@ int main()
return 0;
}
void LoadDefaults(GuiCurveEditState curves[]){
void LoadCurveDefaults(GuiCurveEditorState curves[])
{
// X pos
curves[0].start = 28;
curves[0].end = 506;
@ -459,7 +459,6 @@ void LoadDefaults(GuiCurveEditState curves[]){
curves[3].points[15].position = (Vector2) {0.950000, 0.507937};curves[3].points[15].tangents = (Vector2) {0,0};curves[3].points[15].leftLinear = 0;curves[3].points[15].rightLinear = 0;
// Rotation
curves[4].start = -360;
curves[4].end = 360;
curves[4].numPoints = 9;
@ -476,5 +475,3 @@ void LoadDefaults(GuiCurveEditState curves[]){
curves[4].points[7].position = (Vector2) {0.302752, 0.527778};curves[4].points[7].tangents = (Vector2) {0,0};curves[4].points[7].leftLinear = 0;curves[4].points[7].rightLinear = 0;
curves[4].points[8].position = (Vector2) {0.577982, 0.472222};curves[4].points[8].tangents = (Vector2) {0,0};curves[4].points[8].leftLinear = 0;curves[4].points[8].rightLinear = 0;
}

View File

@ -1,517 +0,0 @@
/*******************************************************************************************
*
* CurveEdit v1.0 - A cubic Hermite editor for making animation curves
*
* MODULE USAGE:
* #define GUI_CURVE_EDIT_IMPLEMENTATION
* #include "gui_curve_edit.h"
*
* INIT: GuiCurveEditState state = InitCurveEdit();
* EVALUATE: float y = EvalGuiCurve(&state, t); // 0 <= t <= 1
* DRAW: BeginScissorMode(bounds.x,bounds.y,bounds.width,bounds.height);
* GuiCurveEdit(&state, bounds, pointSize);
* EndScissorMode();
*
* NOTE: See 'Module Structures Declaration' section for more informations.
*
* NOTE: This module uses functions of the stdlib:
* - qsort
*
* NOTE: Built-in interactions:
* - Left click to move/add point or move tangents
* - While moving a tangent, hold (left/right) SHIFT to disable tangent symetry
* - Right click to remove a point
*
*
* LICENSE: zlib/libpng
*
* Copyright (c) 2023 Pierre Jaffuer (@smallcluster)
*
* This software is provided "as-is", without any express or implied warranty. In no event
* will the authors be held liable for any damages arising from the use of this software.
*
* Permission is granted to anyone to use this software for any purpose, including commercial
* applications, and to alter it and redistribute it freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not claim that you
* wrote the original software. If you use this software in a product, an acknowledgment
* in the product documentation would be appreciated but is not required.
*
* 2. Altered source versions must be plainly marked as such, and must not be misrepresented
* as being the original software.
*
* 3. This notice may not be removed or altered from any source distribution.
*
**********************************************************************************************/
#include "raylib.h"
#ifndef GUI_CURVE_EDIT_H
#define GUI_CURVE_EDIT_H
#ifndef GUI_CURVE_EDIT_MAX_POINTS
#define GUI_CURVE_EDIT_MAX_POINTS 30
#endif
//----------------------------------------------------------------------------------
// Module Structures Declaration
//----------------------------------------------------------------------------------
typedef struct {
Vector2 position = (Vector2) {0,0}; // In normalized space [0.f, 1.f]
Vector2 tangents = (Vector2) {0,0}; // The derivatives (left/right) of the 1D curve
// Let the curve editor calculate tangents to linearize part of the curve
bool leftLinear = false;
bool rightLinear = false;
} GuiCurveEditPoint;
typedef struct {
float start = 0; // Value at y = 0
float end = 1; // Value at y = 1
// Always valid (unless you manualy change state's point array)
int selectedIndex = -1; // -1 before Init
// Unsorted array with at least one point (constant curve)
GuiCurveEditPoint points[GUI_CURVE_EDIT_MAX_POINTS];
int numPoints = 0;
// private part
bool editLeftTangent = false;
bool editRightTangent = false;
Vector2 mouseOffset = (Vector2) {0,0};
} GuiCurveEditState;
#ifdef __cplusplus
extern "C" { // Prevents name mangling of functions
#endif
//----------------------------------------------------------------------------------
// Module Functions Declaration
//----------------------------------------------------------------------------------
// Initialize state
GuiCurveEditState InitGuiCurveEdit();
// Draw and update curve control
void GuiCurveEdit(GuiCurveEditState *state, Rectangle bounds);
// 1D Interpolation
// Returns the y value (in [start, end]) of the curve at x = t
// t must be normalized [0.f, 1.f]
float EvalGuiCurve(GuiCurveEditState *state, float t);
#ifdef __cplusplus
}
#endif
#endif // GUI_CURVE_EDIT_H
/***********************************************************************************
*
* GUI_CURVE_EDIT IMPLEMENTATION
*
************************************************************************************/
#if defined(GUI_CURVE_EDIT_IMPLEMENTATION)
#include "../../src/raygui.h" // Change this to fit your project
#include "stdlib.h" // Required for qsort
//----------------------------------------------------------------------------------
// Module Functions Definition
//----------------------------------------------------------------------------------
GuiCurveEditState InitGuiCurveEdit()
{
GuiCurveEditState state;
state.start = 0;
state.end = 1;
state.selectedIndex = 0;
state.editLeftTangent = false;
state.editRightTangent = false;
state.mouseOffset = (Vector2) {0.f,0.f};
// At least one point (AVG by default)
state.numPoints = 1;
state.points[0].position = (Vector2) {0.5f,0.5f};
state.points[0].tangents = (Vector2) {0.f,0.f};
state.points[0].leftLinear = false;
state.points[0].rightLinear = false;
return state;
}
int CompareGuiCurveEditPointPtr (const void * a, const void * b)
{
float fa = (*(GuiCurveEditPoint**)a)->position.x;
float fb = (*(GuiCurveEditPoint**)b)->position.x;
return (fa > fb) - (fa < fb);
}
float EvalGuiCurve(GuiCurveEditState *state, float t){
// Sort points
GuiCurveEditPoint* sortedPoints[GUI_CURVE_EDIT_MAX_POINTS];
for(int i=0; i < state->numPoints; i++){
sortedPoints[i] = &state->points[i];
}
qsort(sortedPoints, state->numPoints, sizeof(GuiCurveEditPoint*), CompareGuiCurveEditPointPtr);
if(state->numPoints == 0)
return state->start;
// Constants part on edges
if(t <= sortedPoints[0]->position.x)
return state->start + (state->end-state->start) * sortedPoints[0]->position.y;
if(t >= sortedPoints[state->numPoints-1]->position.x)
return state->start + (state->end-state->start) * sortedPoints[state->numPoints-1]->position.y;
// Find curve portion
for(int i=0; i < state->numPoints-1; i++){
const GuiCurveEditPoint* p1 = sortedPoints[i];
const GuiCurveEditPoint* p2 = sortedPoints[i+1];
// Skip this range
if(!(t >= p1->position.x && t < p2->position.x) || p1->position.x == p2->position.x)
continue;
float scale = (p2->position.x-p1->position.x);
float T = (t-p1->position.x)/scale;
float startTangent = scale * p1->tangents.y;
float endTangent = scale * p2->tangents.x;
float T2 = T*T;
float T3 = T*T*T;
return state->start + (state->end-state->start) * ((2*T3-3*T2+1)*p1->position.y+(T3-2*T2+T)*startTangent+(3*T2-2*T3)*p2->position.y+(T3-T2)*endTangent);
}
return state->start;
}
void GuiCurveEdit(GuiCurveEditState *state, Rectangle bounds){
//----------------------------------------------------------------------------------
// CONST
//----------------------------------------------------------------------------------
const float pointSize = 10;
const float fontSize = GuiGetStyle(DEFAULT, TEXT_SIZE);
const float handleLength = pointSize*2.5;
const float handleSize = pointSize/1.5f;
const Rectangle innerBounds = (Rectangle){bounds.x+fontSize, bounds.y+fontSize, bounds.width-2*fontSize, bounds.height-2*fontSize};
const Vector2 mouse = GetMousePosition();
const Vector2 mouseLocal = (Vector2) {(mouse.x-innerBounds.x)/innerBounds.width, (innerBounds.y+innerBounds.height-mouse.y)/innerBounds.height};
//----------------------------------------------------------------------------------
// UPDATE STATE
//----------------------------------------------------------------------------------
// Find first point under mouse (-1 if not found)
int hoveredPointIndex = -1;
for(int i=0; i < state->numPoints; i++){
const GuiCurveEditPoint* p = &state->points[i];
const Vector2 screenPos = (Vector2){p->position.x*innerBounds.width+innerBounds.x, innerBounds.y+innerBounds.height-p->position.y*innerBounds.height};
const Rectangle pointRect = (Rectangle) {screenPos.x-pointSize/2.f, screenPos.y-pointSize/2.f, pointSize, pointSize};
if(CheckCollisionPointRec(mouse, pointRect)){
hoveredPointIndex = i;
break;
}
}
// Unselect tangents
if(IsMouseButtonReleased(MOUSE_BUTTON_LEFT)){
state->editLeftTangent = false;
state->editRightTangent = false;
}
// Select a tangent if possible
if(IsMouseButtonPressed(MOUSE_BUTTON_LEFT) && state->selectedIndex != -1 && CheckCollisionPointRec(mouse, bounds)){
const GuiCurveEditPoint* p = &state->points[state->selectedIndex];
const Vector2 screenPos = (Vector2){p->position.x*innerBounds.width+innerBounds.x, innerBounds.y+innerBounds.height-p->position.y*innerBounds.height};
// Left control
Vector2 target = (Vector2) {(p->position.x-1)*innerBounds.width+innerBounds.x, innerBounds.y+innerBounds.height-(p->position.y-p->tangents.x)*innerBounds.height};
Vector2 dir = (Vector2) {target.x-screenPos.x, target.y-screenPos.y};
float d = sqrt(dir.x*dir.x+dir.y*dir.y);
Vector2 control = (Vector2) {screenPos.x+dir.x/d*handleLength, screenPos.y+dir.y/d*handleLength};
Rectangle controlRect = (Rectangle) {control.x-handleSize/2.f, control.y-handleSize/2.f, handleSize, handleSize};
// Edit left tangent
if(CheckCollisionPointRec(mouse, controlRect)){
state->editLeftTangent = true;
}
// Right control
target = (Vector2) {(p->position.x+1)*innerBounds.width+innerBounds.x, innerBounds.y+innerBounds.height-(p->position.y+p->tangents.y)*innerBounds.height};
dir = (Vector2) {target.x-screenPos.x, target.y-screenPos.y};
d = sqrt(dir.x*dir.x+dir.y*dir.y);
control = (Vector2) {screenPos.x+dir.x/d*handleLength, screenPos.y+dir.y/d*handleLength};
controlRect = (Rectangle) {control.x-handleSize/2.f, control.y-handleSize/2.f, handleSize, handleSize};
// Edit right tangent
if(CheckCollisionPointRec(mouse, controlRect)){
state->editRightTangent = true;
}
}
// Move tangents
if(IsMouseButtonDown(MOUSE_BUTTON_LEFT) && state->editRightTangent){
// editRightTangent == true implies selectedIndex != -1
GuiCurveEditPoint* p = &state->points[state->selectedIndex];
const Vector2 screenPos = (Vector2){p->position.x*innerBounds.width+innerBounds.x, innerBounds.y+innerBounds.height-p->position.y*innerBounds.height};
const Vector2 dir = (Vector2){mouseLocal.x-p->position.x, mouseLocal.y-p->position.y};
// Calculate right tangent slope
p->tangents.y = dir.x < 0.001f ? dir.y/0.001f : dir.y/dir.x;
p->rightLinear = false; // Stop right linearization update
// Tangents are symetric by default unless SHIFT is pressed
if(!(IsKeyDown(KEY_LEFT_SHIFT) || IsKeyDown(KEY_RIGHT_SHIFT))){
p->tangents.x = p->tangents.y;
p->leftLinear = false; // Stop left linearization update
}
} else if(IsMouseButtonDown(MOUSE_BUTTON_LEFT) && state->editLeftTangent){
// editLeftTangent == true implies selectedIndex != -1
GuiCurveEditPoint* p = &state->points[state->selectedIndex];
const Vector2 screenPos = (Vector2){p->position.x*innerBounds.width+innerBounds.x, innerBounds.y+innerBounds.height-p->position.y*innerBounds.height};
const Vector2 dir = (Vector2){mouseLocal.x-p->position.x, mouseLocal.y-p->position.y};
// Calculate left tangent slope
p->tangents.x = dir.x > -0.001f ? dir.y/(-0.001f) : dir.y/dir.x;
p->leftLinear = false; // Stop left linearization update
// Tangents are symetric by default unless SHIFT is pressed
if(!(IsKeyDown(KEY_LEFT_SHIFT) || IsKeyDown(KEY_RIGHT_SHIFT))){
p->tangents.y = p->tangents.x;
p->rightLinear = false; // Stop right linearization update
}
}
// Select a point
else if(IsMouseButtonPressed(MOUSE_BUTTON_LEFT) && hoveredPointIndex != -1 CheckCollisionPointRec(mouse, bounds)){
state->selectedIndex = hoveredPointIndex;
const GuiCurveEditPoint* p = &state->points[state->selectedIndex];
const Vector2 screenPos = (Vector2){p->position.x*innerBounds.width+innerBounds.x, innerBounds.y+innerBounds.height-p->position.y*innerBounds.height};
state->mouseOffset = (Vector2) {p->position.x - mouseLocal.x, p->position.y - mouseLocal.y};
}
// Remove a point (check against bounds)
else if(IsMouseButtonPressed(MOUSE_BUTTON_RIGHT) && hoveredPointIndex != -1 && CheckCollisionPointRec(mouse, bounds) && state->numPoints > 1){
// Deselect everything
state->selectedIndex = 0; // select first point by default
state->editLeftTangent = false;
state->editRightTangent = false;
// Remove point
state->numPoints -= 1;
for(int i=hoveredPointIndex; i < state->numPoints; i++ ){
state->points[i] = state->points[i+1];
}
// Add a point (check against innerBounds)
} else if(IsMouseButtonPressed(MOUSE_BUTTON_LEFT) && CheckCollisionPointRec(mouse, innerBounds) && state->numPoints < GUI_CURVE_EDIT_MAX_POINTS){
state->editLeftTangent = false;
state->editRightTangent = false;
// Create new point
GuiCurveEditPoint p;
p.tangents = (Vector2) {0.f, 0.f};
p.position = mouseLocal;
p.leftLinear = false;
p.rightLinear = false;
// Append point
state->points[state->numPoints] = p;
state->selectedIndex = state->numPoints; // select new point
state->numPoints += 1;
// Point is add on mouse pos
state->mouseOffset = (Vector2) {0,0};
// Move selected point
} else if(state->selectedIndex != -1 && IsMouseButtonDown(MOUSE_BUTTON_LEFT) && CheckCollisionPointRec(mouse, bounds) ){
GuiCurveEditPoint* p = &state->points[state->selectedIndex];
// use mouse offset on click to prevent point teleporting to mouse
const Vector2 newLocalPos = (Vector2){mouseLocal.x + state->mouseOffset.x, mouseLocal.y + state->mouseOffset.y};
// Clamp to innerbounds
p->position.x = newLocalPos.x < 0 ? 0 : newLocalPos.x > 1 ? 1 : newLocalPos.x;
p->position.y = newLocalPos.y < 0 ? 0 : newLocalPos.y > 1 ? 1 : newLocalPos.y;
}
// Sort points
GuiCurveEditPoint* sortedPoints[GUI_CURVE_EDIT_MAX_POINTS];
for(int i=0; i < state->numPoints; i++){
sortedPoints[i] = &state->points[i];
}
qsort(sortedPoints, state->numPoints, sizeof(GuiCurveEditPoint*), CompareGuiCurveEditPointPtr);
// Update linear tangents
for(int i=0; i < state->numPoints; i++){
GuiCurveEditPoint* p = sortedPoints[i];
// Left tangent
if(i > 0 && p->leftLinear){
const GuiCurveEditPoint* p2 = sortedPoints[i-1];
Vector2 dir = (Vector2) {p2->position.x-p->position.x, p2->position.y-p->position.y};
p->tangents.x = dir.x == 0 ? 0 : dir.y/dir.x;
}
// Right tangent
if(i < state->numPoints-1 && p->rightLinear){
const GuiCurveEditPoint* p2 = sortedPoints[i+1];
Vector2 dir = (Vector2) {p2->position.x-p->position.x, p2->position.y-p->position.y};
p->tangents.y = dir.x == 0 ? 0 : dir.y/dir.x;
}
}
//----------------------------------------------------------------------------------
// DRAWING
//----------------------------------------------------------------------------------
// Draw bg
DrawRectangle(bounds.x, bounds.y, bounds.width, bounds.height, GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)));
// Draw grid
// H lines
const Color lineColor = GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_NORMAL));
DrawLine(bounds.x, innerBounds.y, bounds.x+bounds.width, innerBounds.y, lineColor); // end
DrawLine(bounds.x, innerBounds.y+innerBounds.height/2, bounds.x+bounds.width, innerBounds.y+innerBounds.height/2, lineColor); // avg
DrawLine(bounds.x, innerBounds.y+innerBounds.height, bounds.x+bounds.width, innerBounds.y+innerBounds.height, lineColor); // start
// V lines
DrawLine(innerBounds.x, bounds.y, innerBounds.x, bounds.y+bounds.height, lineColor); // 0
DrawLine(innerBounds.x+innerBounds.width/4, bounds.y, innerBounds.x+innerBounds.width/4, bounds.y+bounds.height, lineColor); // 0.25
DrawLine(innerBounds.x+innerBounds.width/2, bounds.y, innerBounds.x+innerBounds.width/2, bounds.y+bounds.height, lineColor); // 0.5
DrawLine(innerBounds.x+3*innerBounds.width/4, bounds.y, innerBounds.x+3*innerBounds.width/4, bounds.y+bounds.height, lineColor); // 0.75
DrawLine(innerBounds.x+innerBounds.width, bounds.y, innerBounds.x+innerBounds.width, bounds.y+bounds.height, lineColor); // 1
Font font = GuiGetFont();
// V labels
DrawTextEx(font, "0", (Vector2) {innerBounds.x, bounds.y+bounds.height-fontSize}, fontSize,GuiGetStyle(DEFAULT, TEXT_SPACING), lineColor);
DrawTextEx(font, "0.25", (Vector2) {innerBounds.x+innerBounds.width/4.f, bounds.y+bounds.height-fontSize}, fontSize,GuiGetStyle(DEFAULT, TEXT_SPACING), lineColor);
DrawTextEx(font, "0.5", (Vector2) {innerBounds.x+innerBounds.width/2.f, bounds.y+bounds.height-fontSize}, fontSize,GuiGetStyle(DEFAULT, TEXT_SPACING), lineColor);
DrawTextEx(font, "0.75", (Vector2) {innerBounds.x+3.f*innerBounds.width/4.f, bounds.y+bounds.height-fontSize}, fontSize,GuiGetStyle(DEFAULT, TEXT_SPACING), lineColor);
DrawTextEx(font, "1", (Vector2) {innerBounds.x+innerBounds.width, bounds.y+bounds.height-fontSize}, fontSize,GuiGetStyle(DEFAULT, TEXT_SPACING), lineColor);
// H labels
DrawTextEx(font, TextFormat("%.2f", state->start), (Vector2) {innerBounds.x, innerBounds.y-fontSize+innerBounds.height}, fontSize, GuiGetStyle(DEFAULT, TEXT_SPACING), lineColor);
DrawTextEx(font, TextFormat("%.2f", state->start + (state->end-state->start)/2.f), (Vector2) {innerBounds.x, innerBounds.y-fontSize+innerBounds.height/2.f}, fontSize, GuiGetStyle(DEFAULT, TEXT_SPACING), lineColor);
DrawTextEx(font, TextFormat("%.2f", state->end), (Vector2) {innerBounds.x, innerBounds.y}, fontSize, GuiGetStyle(DEFAULT, TEXT_SPACING), lineColor);
// Draw contours
if(CheckCollisionPointRec(mouse, bounds))
DrawRectangleLines(bounds.x, bounds.y, bounds.width, bounds.height, GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_FOCUSED)));
else
DrawRectangleLines(bounds.x, bounds.y, bounds.width, bounds.height, GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_NORMAL)));
// Draw points
for(int i=0; i < state->numPoints; i++){
const GuiCurveEditPoint* p = sortedPoints[i];
const Vector2 screenPos = (Vector2){p->position.x*innerBounds.width+innerBounds.x, innerBounds.y+innerBounds.height-p->position.y*innerBounds.height};
const Rectangle pointRect = (Rectangle) {screenPos.x-pointSize/2.f, screenPos.y-pointSize/2.f, pointSize, pointSize};
Color pointColor;
Color pointBorderColor;
// Draw point
if(&state->points[state->selectedIndex] == p){
// Draw left handle
if(i > 0){
const Vector2 target = (Vector2) {(p->position.x-1)*innerBounds.width+innerBounds.x, innerBounds.y+innerBounds.height-(p->position.y-p->tangents.x)*innerBounds.height};
const Vector2 dir = (Vector2) {target.x-screenPos.x, target.y-screenPos.y};
const float d = sqrt(dir.x*dir.x+dir.y*dir.y);
const Vector2 control = (Vector2) {screenPos.x+dir.x/d*handleLength, screenPos.y+dir.y/d*handleLength};
const Rectangle controlRect = (Rectangle) {control.x-handleSize/2.f, control.y-handleSize/2.f, handleSize, handleSize};
Color controlColor;
Color controlBorderColor;
if(state->editLeftTangent){
controlColor = GetColor(GuiGetStyle(DEFAULT, BASE_COLOR_PRESSED));
controlBorderColor = GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_NORMAL));
} else if(CheckCollisionPointRec(mouse, controlRect)){
controlColor = GetColor(GuiGetStyle(DEFAULT, BASE_COLOR_FOCUSED));
controlBorderColor = GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_NORMAL));
}else{
controlColor = GetColor(GuiGetStyle(BUTTON, BASE_COLOR_NORMAL));
controlBorderColor = GetColor(GuiGetStyle(BUTTON, BORDER_COLOR_NORMAL));
}
DrawLine(screenPos.x,screenPos.y, control.x, control.y, controlColor);
DrawRectangle(controlRect.x, controlRect.y, controlRect.width, controlRect.height, controlColor);
DrawRectangleLines(controlRect.x, controlRect.y, controlRect.width, controlRect.height, controlColor);
}
// Draw right handle
if(i < state->numPoints-1){
const Vector2 target = (Vector2) {(p->position.x+1)*innerBounds.width+innerBounds.x, innerBounds.y+innerBounds.height-(p->position.y+p->tangents.y)*innerBounds.height};
const Vector2 dir = (Vector2) {target.x-screenPos.x, target.y-screenPos.y};
const float d = sqrt(dir.x*dir.x+dir.y*dir.y);
const Vector2 control = (Vector2) {screenPos.x+dir.x/d*handleLength, screenPos.y+dir.y/d*handleLength};
const Rectangle controlRect = (Rectangle) {control.x-handleSize/2.f, control.y-handleSize/2.f, handleSize, handleSize};
Color controlColor;
Color controlBorderColor;
if(state->editRightTangent){
controlColor = GetColor(GuiGetStyle(DEFAULT, BASE_COLOR_PRESSED));
controlBorderColor = GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_NORMAL));
} else if(CheckCollisionPointRec(mouse, controlRect)){
controlColor = GetColor(GuiGetStyle(DEFAULT, BASE_COLOR_FOCUSED));
controlBorderColor = GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_NORMAL));
}else{
controlColor = GetColor(GuiGetStyle(BUTTON, BASE_COLOR_NORMAL));
controlBorderColor = GetColor(GuiGetStyle(BUTTON, BORDER_COLOR_NORMAL));
}
DrawLine(screenPos.x,screenPos.y, control.x, control.y, controlColor);
DrawRectangle(controlRect.x, controlRect.y, controlRect.width, controlRect.height, controlColor);
DrawRectangleLines(controlRect.x, controlRect.y, controlRect.width, controlRect.height, controlColor);
}
pointColor = GetColor(GuiGetStyle(DEFAULT, BASE_COLOR_PRESSED));
pointBorderColor = GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_NORMAL));
} else if(&state->points[hoveredPointIndex] == p) {
pointColor = GetColor(GuiGetStyle(DEFAULT, BASE_COLOR_FOCUSED));
pointBorderColor = GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_NORMAL));
} else {
pointColor = GetColor(GuiGetStyle(BUTTON, BASE_COLOR_NORMAL));
pointBorderColor = GetColor(GuiGetStyle(BUTTON, BORDER_COLOR_NORMAL));
}
DrawRectangle(pointRect.x, pointRect.y, pointRect.width, pointRect.height, pointColor);
DrawRectangleLines(pointRect.x, pointRect.y, pointRect.width, pointRect.height, pointBorderColor);
}
// Draw curve
Color curveColor = GetColor(GuiGetStyle(LABEL, TEXT_COLOR_FOCUSED));
if(state->numPoints == 1){
const GuiCurveEditPoint* p = sortedPoints[0];
const Vector2 screenPos = (Vector2){p->position.x*innerBounds.width+innerBounds.x, innerBounds.y+innerBounds.height-p->position.y*innerBounds.height};
DrawLine(innerBounds.x, screenPos.y, innerBounds.x+innerBounds.width, screenPos.y, curveColor);
}else {
for(int i=0; i < state->numPoints-1; i++){
const GuiCurveEditPoint* p1 = sortedPoints[i];
const GuiCurveEditPoint* p2 = sortedPoints[i+1];
const Vector2 screenPos1 = (Vector2){p1->position.x*innerBounds.width+innerBounds.x, innerBounds.y+innerBounds.height-p1->position.y*innerBounds.height};
const Vector2 screenPos2 = (Vector2){p2->position.x*innerBounds.width+innerBounds.x, innerBounds.y+innerBounds.height-p2->position.y*innerBounds.height};
// Constant on edge
if(screenPos1.x > innerBounds.x && i == 0){
DrawLine(innerBounds.x, screenPos1.y, screenPos1.x, screenPos1.y, curveColor);
}
if(screenPos2.x < innerBounds.x+innerBounds.width && i == (state->numPoints-2)){
DrawLine(screenPos2.x, screenPos2.y, innerBounds.x+innerBounds.width, screenPos2.y, curveColor);
}
// Draw cubic Hermite curve
const float scale = (p2->position.x-p1->position.x)/3.f;
const Vector2 offset1 = (Vector2) {scale, scale*p1->tangents.y};
// negative endTangent => top part => need to invert value to calculate offset
const Vector2 offset2 = (Vector2) {-scale, -scale*p2->tangents.x};
const Vector2 c1 = (Vector2) {p1->position.x+offset1.x, p1->position.y+offset1.y};
const Vector2 c2 = (Vector2) {p2->position.x+offset2.x, p2->position.y+offset2.y};
const Vector2 screenC1 = (Vector2) {c1.x*innerBounds.width+innerBounds.x, innerBounds.y+innerBounds.height-c1.y*innerBounds.height};
const Vector2 screenC2 = (Vector2) {c2.x*innerBounds.width+innerBounds.x, innerBounds.y+innerBounds.height-c2.y*innerBounds.height};
DrawLineBezierCubic(screenPos1, screenPos2, screenC1, screenC2, 1, curveColor);
}
}
}
#endif // GUI_CURVE_EDIT_IMPLEMENTATION

View File

@ -0,0 +1,543 @@
/*******************************************************************************************
*
* CurveEdit v1.0 - A cubic Hermite editor for making animation curves
*
* MODULE USAGE:
* #define GUI_CURVE_EDITOR_IMPLEMENTATION
* #include "gui_curve_edit.h"
*
* INIT: GuiCurveEditState state = InitCurveEdit();
* EVALUATE: float y = EvalGuiCurve(&state, t); // 0 <= t <= 1
* DRAW: BeginScissorMode(bounds.x,bounds.y,bounds.width,bounds.height);
* GuiCurveEdit(&state, bounds, pointSize);
* EndScissorMode();
*
* NOTE: See 'Module Structures Declaration' section for more informations.
*
* NOTE: This module uses functions of the stdlib:
* - qsort
*
* NOTE: Built-in interactions:
* - Left click to move/add point or move tangents
* - While moving a tangent, hold (left/right) SHIFT to disable tangent symetry
* - Right click to remove a point
*
*
* LICENSE: zlib/libpng
*
* Copyright (c) 2023 Pierre Jaffuer (@smallcluster)
*
* This software is provided "as-is", without any express or implied warranty. In no event
* will the authors be held liable for any damages arising from the use of this software.
*
* Permission is granted to anyone to use this software for any purpose, including commercial
* applications, and to alter it and redistribute it freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not claim that you
* wrote the original software. If you use this software in a product, an acknowledgment
* in the product documentation would be appreciated but is not required.
*
* 2. Altered source versions must be plainly marked as such, and must not be misrepresented
* as being the original software.
*
* 3. This notice may not be removed or altered from any source distribution.
*
**********************************************************************************************/
#include "raylib.h"
#ifndef GUI_CURVE_EDITOR_H
#define GUI_CURVE_EDITOR_H
#ifndef GUI_CURVE_EDITOR_MAX_POINTS
#define GUI_CURVE_EDITOR_MAX_POINTS 30
#endif
//----------------------------------------------------------------------------------
// Module Structures Declaration
//----------------------------------------------------------------------------------
typedef struct {
Vector2 position; // In normalized space [0.0f, 1.0f]
Vector2 tangents; // The derivatives (left/right) of the 1D curve
// Let the curve editor calculate tangents to linearize part of the curve
bool leftLinear;
bool rightLinear;
} GuiCurveEditorPoint;
typedef struct {
float start; // Value at y = 0
float end; // Value at y = 1
// Always valid (unless you manualy change state's point array). Make sure to set it to -1 before init
int selectedIndex;
// Unsorted array with at least one point (constant curve)
GuiCurveEditorPoint points[GUI_CURVE_EDITOR_MAX_POINTS];
int numPoints;
// Private variables
bool editLeftTangent;
bool editRightTangent;
Vector2 mouseOffset;
} GuiCurveEditorState;
#ifdef __cplusplus
extern "C" { // Prevents name mangling of functions
#endif
//----------------------------------------------------------------------------------
// Module Functions Declaration
//----------------------------------------------------------------------------------
GuiCurveEditorState InitGuiCurveEditor(); // Initialize curve editor state
void GuiCurveEditor(GuiCurveEditorState *state, Rectangle bounds); // Draw and update curve control
// 1D Interpolation
// Returns the y value (in [start, end]) of the curve at x = t
// t must be normalized [0.f, 1.f]
float GuiCurveEval(GuiCurveEditorState *state, float t);
#ifdef __cplusplus
}
#endif
#endif // GUI_CURVE_EDITOR_H
/***********************************************************************************
*
* GUI_CURVE_EDITOR IMPLEMENTATION
*
************************************************************************************/
#if defined(GUI_CURVE_EDITOR_IMPLEMENTATION)
#include "../../src/raygui.h" // Change this to fit your project
#include "stdlib.h" // Required for qsort
//----------------------------------------------------------------------------------
// Module Functions Definition
//----------------------------------------------------------------------------------
GuiCurveEditorState InitGuiCurveEditor()
{
GuiCurveEditorState state = { 0 };
state.start = 0;
state.end = 1;
state.selectedIndex = 0;
state.editLeftTangent = false;
state.editRightTangent = false;
state.mouseOffset = (Vector2){ 0.0f, 0.0f };
// At least one point (AVG by default)
state.numPoints = 1;
state.points[0].position = (Vector2){ 0.5f, 0.5f };
state.points[0].tangents = (Vector2){ 0.0f, 0.0f };
state.points[0].leftLinear = false;
state.points[0].rightLinear = false;
return state;
}
static int CompareGuiCurveEditPointPtr(const void *a, const void *b)
{
float fa = (*(GuiCurveEditorPoint**)a)->position.x;
float fb = (*(GuiCurveEditorPoint**)b)->position.x;
return ((fa > fb) - (fa < fb));
}
float GuiCurveEval(GuiCurveEditorState *state, float t)
{
// Sort points
GuiCurveEditorPoint* sortedPoints[GUI_CURVE_EDITOR_MAX_POINTS];
for (int i=0; i < state->numPoints; i++) sortedPoints[i] = &state->points[i];
qsort(sortedPoints, state->numPoints, sizeof(GuiCurveEditorPoint*), CompareGuiCurveEditPointPtr);
if (state->numPoints == 0) return state->start;
// Constants part on edges
if (t <= sortedPoints[0]->position.x) return state->start + (state->end-state->start)*sortedPoints[0]->position.y;
if (t >= sortedPoints[state->numPoints-1]->position.x) return state->start + (state->end-state->start)*sortedPoints[state->numPoints-1]->position.y;
// Find curve portion
for (int i=0; i < state->numPoints-1; i++)
{
const GuiCurveEditorPoint *p1 = sortedPoints[i];
const GuiCurveEditorPoint *p2 = sortedPoints[i+1];
// Skip this range
if (!((t >= p1->position.x) && (t < p2->position.x)) || (p1->position.x == p2->position.x)) continue;
float scale = (p2->position.x-p1->position.x);
float T = (t-p1->position.x)/scale;
float startTangent = scale*p1->tangents.y;
float endTangent = scale*p2->tangents.x;
float T2 = T*T;
float T3 = T*T*T;
return (state->start + (state->end-state->start)*((2*T3 - 3*T2 + 1)*p1->position.y + (T3 - 2*T2 + T)*startTangent + (3*T2 - 2*T3)*p2->position.y + (T3 - T2)*endTangent));
}
return state->start;
}
void GuiCurveEditor(GuiCurveEditorState *state, Rectangle bounds)
{
// CONST
//----------------------------------------------------------------------------------
const float pointSize = 10.0f;
const float fontSize = GuiGetStyle(DEFAULT, TEXT_SIZE);
const float handleLength = pointSize*2.5f;
const float handleSize = pointSize/1.5f;
const Rectangle innerBounds = (Rectangle){ bounds.x + fontSize, bounds.y + fontSize, bounds.width - 2*fontSize, bounds.height - 2*fontSize };
const Vector2 mouse = GetMousePosition();
const Vector2 mouseLocal = (Vector2){ (mouse.x - innerBounds.x)/innerBounds.width, (innerBounds.y + innerBounds.height-mouse.y)/innerBounds.height};
//----------------------------------------------------------------------------------
// UPDATE STATE
//----------------------------------------------------------------------------------
// Find first point under mouse (-1 if not found)
int hoveredPointIndex = -1;
for (int i = 0; i < state->numPoints; i++)
{
const GuiCurveEditorPoint *p = &state->points[i];
const Vector2 screenPos = (Vector2){ p->position.x*innerBounds.width + innerBounds.x, innerBounds.y + innerBounds.height-p->position.y*innerBounds.height };
const Rectangle pointRect = (Rectangle){ screenPos.x - pointSize/2.0f, screenPos.y - pointSize/2.0f, pointSize, pointSize };
if (CheckCollisionPointRec(mouse, pointRect))
{
hoveredPointIndex = i;
break;
}
}
// Unselect tangents
if (IsMouseButtonReleased(MOUSE_BUTTON_LEFT))
{
state->editLeftTangent = false;
state->editRightTangent = false;
}
// Select a tangent if possible
if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT) && (state->selectedIndex != -1) && CheckCollisionPointRec(mouse, bounds))
{
const GuiCurveEditorPoint* p = &state->points[state->selectedIndex];
const Vector2 screenPos = (Vector2){ p->position.x*innerBounds.width+innerBounds.x, innerBounds.y+innerBounds.height-p->position.y*innerBounds.height };
// Left control
Vector2 target = (Vector2){ (p->position.x-1)*innerBounds.width + innerBounds.x, innerBounds.y + innerBounds.height - (p->position.y-p->tangents.x)*innerBounds.height };
Vector2 dir = (Vector2){ target.x-screenPos.x, target.y-screenPos.y };
float d = sqrt(dir.x*dir.x + dir.y*dir.y);
Vector2 control = (Vector2){ screenPos.x + dir.x/d*handleLength, screenPos.y + dir.y/d*handleLength };
Rectangle controlRect = (Rectangle){ control.x - handleSize/2.0f, control.y - handleSize/2.0f, handleSize, handleSize };
// Edit left tangent
if (CheckCollisionPointRec(mouse, controlRect)) state->editLeftTangent = true;
// Right control
target = (Vector2){ (p->position.x + 1)*innerBounds.width + innerBounds.x, innerBounds.y + innerBounds.height - (p->position.y + p->tangents.y)*innerBounds.height };
dir = (Vector2){ target.x-screenPos.x, target.y-screenPos.y };
d = sqrt(dir.x*dir.x + dir.y*dir.y);
control = (Vector2){ screenPos.x + dir.x/d*handleLength, screenPos.y + dir.y/d*handleLength };
controlRect = (Rectangle){ control.x - handleSize/2.0f, control.y - handleSize/2.0f, handleSize, handleSize };
// Edit right tangent
if (CheckCollisionPointRec(mouse, controlRect)) state->editRightTangent = true;
}
// Move tangents
if (IsMouseButtonDown(MOUSE_BUTTON_LEFT) && state->editRightTangent)
{
// editRightTangent == true implies selectedIndex != -1
GuiCurveEditorPoint *p = &state->points[state->selectedIndex];
const Vector2 dir = (Vector2){ mouseLocal.x - p->position.x, mouseLocal.y - p->position.y};
// Calculate right tangent slope
p->tangents.y = (dir.x < 0.001f)? dir.y/0.001f : dir.y/dir.x;
p->rightLinear = false; // Stop right linearization update
// Tangents are symetric by default unless SHIFT is pressed
if (!(IsKeyDown(KEY_LEFT_SHIFT) || IsKeyDown(KEY_RIGHT_SHIFT)))
{
p->tangents.x = p->tangents.y;
p->leftLinear = false; // Stop left linearization update
}
}
else if (IsMouseButtonDown(MOUSE_BUTTON_LEFT) && state->editLeftTangent)
{
// editLeftTangent == true implies selectedIndex != -1
GuiCurveEditorPoint *p = &state->points[state->selectedIndex];
const Vector2 dir = (Vector2){ mouseLocal.x - p->position.x, mouseLocal.y - p->position.y };
// Calculate left tangent slope
p->tangents.x = (dir.x > -0.001f)? dir.y/(-0.001f) : dir.y/dir.x;
p->leftLinear = false; // Stop left linearization update
// Tangents are symetric by default unless SHIFT is pressed
if (!(IsKeyDown(KEY_LEFT_SHIFT) || IsKeyDown(KEY_RIGHT_SHIFT)))
{
p->tangents.y = p->tangents.x;
p->rightLinear = false; // Stop right linearization update
}
}
// Select a point
else if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT) && (hoveredPointIndex != -1) && CheckCollisionPointRec(mouse, bounds))
{
state->selectedIndex = hoveredPointIndex;
const GuiCurveEditorPoint *p = &state->points[state->selectedIndex];
state->mouseOffset = (Vector2){ p->position.x - mouseLocal.x, p->position.y - mouseLocal.y };
}
// Remove a point (check against bounds)
else if (IsMouseButtonPressed(MOUSE_BUTTON_RIGHT) && (hoveredPointIndex != -1) && CheckCollisionPointRec(mouse, bounds) && (state->numPoints > 1))
{
// Deselect everything
state->selectedIndex = 0; // select first point by default
state->editLeftTangent = false;
state->editRightTangent = false;
// Remove point
state->numPoints -= 1;
for (int i = hoveredPointIndex; i < state->numPoints; i++) state->points[i] = state->points[i+1];
}
// Add a point (check against innerBounds)
else if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT) && CheckCollisionPointRec(mouse, innerBounds) && (state->numPoints < GUI_CURVE_EDITOR_MAX_POINTS))
{
state->editLeftTangent = false;
state->editRightTangent = false;
// Create new point
GuiCurveEditorPoint p;
p.tangents = (Vector2){ 0.0f, 0.0f };
p.position = mouseLocal;
p.leftLinear = false;
p.rightLinear = false;
// Append point
state->points[state->numPoints] = p;
state->selectedIndex = state->numPoints; // select new point
state->numPoints += 1;
// Point is add on mouse pos
state->mouseOffset = (Vector2){ 0, 0 };
}
// Move selected point
else if ((state->selectedIndex != -1) && IsMouseButtonDown(MOUSE_BUTTON_LEFT) && CheckCollisionPointRec(mouse, bounds))
{
GuiCurveEditorPoint *p = &state->points[state->selectedIndex];
// use mouse offset on click to prevent point teleporting to mouse
const Vector2 newLocalPos = (Vector2){ mouseLocal.x + state->mouseOffset.x, mouseLocal.y + state->mouseOffset.y };
// Clamp to innerbounds
p->position.x = (newLocalPos.x < 0)? 0 : ((newLocalPos.x > 1)? 1 : newLocalPos.x);
p->position.y = (newLocalPos.y < 0)? 0 : ((newLocalPos.y > 1)? 1 : newLocalPos.y);
}
// Sort points
GuiCurveEditorPoint *sortedPoints[GUI_CURVE_EDITOR_MAX_POINTS] = { 0 };
for (int i = 0; i < state->numPoints; i++) sortedPoints[i] = &state->points[i];
qsort(sortedPoints, state->numPoints, sizeof(GuiCurveEditorPoint*), CompareGuiCurveEditPointPtr);
// Update linear tangents
for (int i = 0; i < state->numPoints; i++)
{
GuiCurveEditorPoint *p = sortedPoints[i];
// Left tangent
if ((i > 0) && p->leftLinear)
{
const GuiCurveEditorPoint *p2 = sortedPoints[i - 1];
Vector2 dir = (Vector2){ p2->position.x - p->position.x, p2->position.y - p->position.y };
p->tangents.x = (dir.x == 0)? 0 : dir.y/dir.x;
}
// Right tangent
if ((i < state->numPoints - 1) && p->rightLinear)
{
const GuiCurveEditorPoint *p2 = sortedPoints[i + 1];
Vector2 dir = (Vector2){ p2->position.x - p->position.x, p2->position.y - p->position.y };
p->tangents.y = (dir.x == 0)? 0 : dir.y/dir.x;
}
}
//----------------------------------------------------------------------------------
// DRAWING
//----------------------------------------------------------------------------------
DrawRectangle(bounds.x, bounds.y, bounds.width, bounds.height, GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)));
// Draw grid
// H lines
const Color lineColor = GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_NORMAL));
DrawLine(bounds.x, innerBounds.y, bounds.x+bounds.width, innerBounds.y, lineColor); // end
DrawLine(bounds.x, innerBounds.y+innerBounds.height/2, bounds.x+bounds.width, innerBounds.y+innerBounds.height/2, lineColor); // avg
DrawLine(bounds.x, innerBounds.y+innerBounds.height, bounds.x+bounds.width, innerBounds.y+innerBounds.height, lineColor); // start
// V lines
DrawLine(innerBounds.x, bounds.y, innerBounds.x, bounds.y+bounds.height, lineColor); // 0
DrawLine(innerBounds.x + innerBounds.width/4, bounds.y, innerBounds.x + innerBounds.width/4, bounds.y + bounds.height, lineColor); // 0.25
DrawLine(innerBounds.x + innerBounds.width/2, bounds.y, innerBounds.x + innerBounds.width/2, bounds.y + bounds.height, lineColor); // 0.5
DrawLine(innerBounds.x + 3*innerBounds.width/4, bounds.y, innerBounds.x + 3*innerBounds.width/4, bounds.y + bounds.height, lineColor); // 0.75
DrawLine(innerBounds.x + innerBounds.width, bounds.y, innerBounds.x + innerBounds.width, bounds.y + bounds.height, lineColor); // 1
Font font = GuiGetFont();
// V labels
DrawTextEx(font, "0", (Vector2){ innerBounds.x, bounds.y + bounds.height-fontSize}, fontSize, GuiGetStyle(DEFAULT, TEXT_SPACING), lineColor);
DrawTextEx(font, "0.25", (Vector2){ innerBounds.x + innerBounds.width/4.0f, bounds.y + bounds.height - fontSize}, fontSize, GuiGetStyle(DEFAULT, TEXT_SPACING), lineColor);
DrawTextEx(font, "0.5", (Vector2){ innerBounds.x + innerBounds.width/2.0f, bounds.y + bounds.height - fontSize}, fontSize, GuiGetStyle(DEFAULT, TEXT_SPACING), lineColor);
DrawTextEx(font, "0.75", (Vector2){ innerBounds.x + 3.0f*innerBounds.width/4.0f, bounds.y + bounds.height-fontSize}, fontSize, GuiGetStyle(DEFAULT, TEXT_SPACING), lineColor);
DrawTextEx(font, "1", (Vector2){ innerBounds.x + innerBounds.width, bounds.y+bounds.height - fontSize}, fontSize, GuiGetStyle(DEFAULT, TEXT_SPACING), lineColor);
// H labels
DrawTextEx(font, TextFormat("%.2f", state->start), (Vector2){ innerBounds.x, innerBounds.y - fontSize+innerBounds.height }, fontSize, GuiGetStyle(DEFAULT, TEXT_SPACING), lineColor);
DrawTextEx(font, TextFormat("%.2f", state->start + (state->end-state->start)/2.f), (Vector2){ innerBounds.x, innerBounds.y - fontSize + innerBounds.height/2.0f }, fontSize, GuiGetStyle(DEFAULT, TEXT_SPACING), lineColor);
DrawTextEx(font, TextFormat("%.2f", state->end), (Vector2){ innerBounds.x, innerBounds.y }, fontSize, GuiGetStyle(DEFAULT, TEXT_SPACING), lineColor);
// Draw contours
if (CheckCollisionPointRec(mouse, bounds)) DrawRectangleLines(bounds.x, bounds.y, bounds.width, bounds.height, GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_FOCUSED)));
else DrawRectangleLines(bounds.x, bounds.y, bounds.width, bounds.height, GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_NORMAL)));
// Draw points
for (int i = 0; i < state->numPoints; i++)
{
const GuiCurveEditorPoint *p = sortedPoints[i];
const Vector2 screenPos = (Vector2){ p->position.x*innerBounds.width + innerBounds.x, innerBounds.y + innerBounds.height - p->position.y*innerBounds.height };
const Rectangle pointRect = (Rectangle){ screenPos.x - pointSize/2.0f, screenPos.y - pointSize/2.0f, pointSize, pointSize };
Color pointColor = { 0 };
Color pointBorderColor = { 0 };
// Draw point
if (&state->points[state->selectedIndex] == p)
{
// Draw left handle
if (i > 0)
{
const Vector2 target = (Vector2){ (p->position.x - 1)*innerBounds.width + innerBounds.x, innerBounds.y + innerBounds.height - (p->position.y - p->tangents.x)*innerBounds.height };
const Vector2 dir = (Vector2){ target.x - screenPos.x, target.y - screenPos.y };
const float d = sqrt(dir.x*dir.x + dir.y*dir.y);
const Vector2 control = (Vector2){ screenPos.x + dir.x/d*handleLength, screenPos.y + dir.y/d*handleLength };
const Rectangle controlRect = (Rectangle){ control.x - handleSize/2.0f, control.y - handleSize/2.0f, handleSize, handleSize };
Color controlColor = { 0 };
if (state->editLeftTangent)
{
controlColor = GetColor(GuiGetStyle(DEFAULT, BASE_COLOR_PRESSED));
}
else if (CheckCollisionPointRec(mouse, controlRect))
{
controlColor = GetColor(GuiGetStyle(DEFAULT, BASE_COLOR_FOCUSED));
}
else
{
controlColor = GetColor(GuiGetStyle(BUTTON, BASE_COLOR_NORMAL));
}
DrawLine(screenPos.x,screenPos.y, control.x, control.y, controlColor);
DrawRectangle(controlRect.x, controlRect.y, controlRect.width, controlRect.height, controlColor);
DrawRectangleLines(controlRect.x, controlRect.y, controlRect.width, controlRect.height, controlColor);
}
// Draw right handle
if (i < state->numPoints - 1)
{
const Vector2 target = (Vector2){ (p->position.x + 1)*innerBounds.width + innerBounds.x, innerBounds.y + innerBounds.height - (p->position.y + p->tangents.y)*innerBounds.height };
const Vector2 dir = (Vector2){ target.x - screenPos.x, target.y - screenPos.y };
const float d = sqrt(dir.x*dir.x + dir.y*dir.y);
const Vector2 control = (Vector2){ screenPos.x + dir.x/d*handleLength, screenPos.y + dir.y/d*handleLength };
const Rectangle controlRect = (Rectangle){ control.x - handleSize/2.0f, control.y - handleSize/2.0f, handleSize, handleSize };
Color controlColor = { 0 };
if (state->editRightTangent)
{
controlColor = GetColor(GuiGetStyle(DEFAULT, BASE_COLOR_PRESSED));
}
else if (CheckCollisionPointRec(mouse, controlRect))
{
controlColor = GetColor(GuiGetStyle(DEFAULT, BASE_COLOR_FOCUSED));
}
else
{
controlColor = GetColor(GuiGetStyle(BUTTON, BASE_COLOR_NORMAL));
}
DrawLine(screenPos.x,screenPos.y, control.x, control.y, controlColor);
DrawRectangle(controlRect.x, controlRect.y, controlRect.width, controlRect.height, controlColor);
DrawRectangleLines(controlRect.x, controlRect.y, controlRect.width, controlRect.height, controlColor);
}
pointColor = GetColor(GuiGetStyle(DEFAULT, BASE_COLOR_PRESSED));
pointBorderColor = GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_NORMAL));
}
else if (&state->points[hoveredPointIndex] == p)
{
pointColor = GetColor(GuiGetStyle(DEFAULT, BASE_COLOR_FOCUSED));
pointBorderColor = GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_NORMAL));
}
else
{
pointColor = GetColor(GuiGetStyle(BUTTON, BASE_COLOR_NORMAL));
pointBorderColor = GetColor(GuiGetStyle(BUTTON, BORDER_COLOR_NORMAL));
}
DrawRectangle(pointRect.x, pointRect.y, pointRect.width, pointRect.height, pointColor);
DrawRectangleLines(pointRect.x, pointRect.y, pointRect.width, pointRect.height, pointBorderColor);
}
// Draw curve
Color curveColor = GetColor(GuiGetStyle(LABEL, TEXT_COLOR_FOCUSED));
if (state->numPoints == 1)
{
const GuiCurveEditorPoint *p = sortedPoints[0];
const Vector2 screenPos = (Vector2){ p->position.x*innerBounds.width + innerBounds.x, innerBounds.y + innerBounds.height - p->position.y*innerBounds.height };
DrawLine(innerBounds.x, screenPos.y, innerBounds.x+innerBounds.width, screenPos.y, curveColor);
}
else
{
for (int i = 0; i < state->numPoints - 1; i++)
{
const GuiCurveEditorPoint *p1 = sortedPoints[i];
const GuiCurveEditorPoint *p2 = sortedPoints[i + 1];
const Vector2 screenPos1 = (Vector2){ p1->position.x*innerBounds.width + innerBounds.x, innerBounds.y + innerBounds.height - p1->position.y*innerBounds.height };
const Vector2 screenPos2 = (Vector2){ p2->position.x*innerBounds.width + innerBounds.x, innerBounds.y + innerBounds.height - p2->position.y*innerBounds.height };
// Constant on edge
if ((screenPos1.x > innerBounds.x) && (i == 0))
{
DrawLine(innerBounds.x, screenPos1.y, screenPos1.x, screenPos1.y, curveColor);
}
if ((screenPos2.x < innerBounds.x + innerBounds.width) && (i == (state->numPoints - 2)))
{
DrawLine(screenPos2.x, screenPos2.y, innerBounds.x+innerBounds.width, screenPos2.y, curveColor);
}
// Draw cubic Hermite curve
const float scale = (p2->position.x - p1->position.x)/3.0f;
const Vector2 offset1 = (Vector2){ scale, scale*p1->tangents.y };
// negative endTangent => top part => need to invert value to calculate offset
const Vector2 offset2 = (Vector2){ -scale, -scale*p2->tangents.x };
const Vector2 c1 = (Vector2){ p1->position.x + offset1.x, p1->position.y + offset1.y };
const Vector2 c2 = (Vector2){ p2->position.x + offset2.x, p2->position.y + offset2.y };
const Vector2 screenC1 = (Vector2){ c1.x*innerBounds.width + innerBounds.x, innerBounds.y + innerBounds.height - c1.y*innerBounds.height };
const Vector2 screenC2 = (Vector2){ c2.x*innerBounds.width + innerBounds.x, innerBounds.y + innerBounds.height - c2.y*innerBounds.height };
DrawSplineSegmentBezierCubic(screenPos1, screenC1, screenC2, screenPos2, 1, curveColor);
}
}
}
#endif // GUI_CURVE_EDITOR_IMPLEMENTATION

View File

@ -29,18 +29,33 @@
*
* LICENSE: zlib/libpng
*
* Copyright (c) 2016-2023 Ramon Santamaria (@raysan5)
* Copyright (c) 2016-2024 Ramon Santamaria (@raysan5)
*
**********************************************************************************************/
#include "raylib.h"
//#define RAYGUI_DEBUG_RECS_BOUNDS
//#define RAYGUI_DEBUG_TEXT_BOUNDS
#define RAYGUI_IMPLEMENTATION
//#define RAYGUI_CUSTOM_ICONS // It requires providing gui_icons.h in the same directory
//#include "gui_icons.h" // External icons data provided, it can be generated with rGuiIcons tool
#include "../../src/raygui.h"
#include <string.h> // Required for: strcpy()
// raygui embedded styles
#include "../styles/style_cyber.h" // raygui style: cyber
#include "../styles/style_jungle.h" // raygui style: jungle
#include "../styles/style_lavanda.h" // raygui style: lavanda
#include "../styles/style_dark.h" // raygui style: dark
#include "../styles/style_bluish.h" // raygui style: bluish
#include "../styles/style_terminal.h" // raygui style: terminal
#include "../styles/style_candy.h"
#include "../styles/style_cherry.h"
#include "../styles/style_ashes.h"
#include "../styles/style_enefete.h"
#include "../styles/style_sunny.h"
#include "../styles/style_amber.h"
//------------------------------------------------------------------------------------
// Program main entry point
@ -49,7 +64,7 @@ int main()
{
// Initialization
//---------------------------------------------------------------------------------------
const int screenWidth = 690;
const int screenWidth = 960;
const int screenHeight = 560;
InitWindow(screenWidth, screenHeight, "raygui - controls test suite");
@ -72,6 +87,9 @@ int main()
char textBoxText[64] = "Text box";
bool textBoxEditMode = false;
char textBoxMultiText[1024] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n\nDuis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n\nThisisastringlongerthanexpectedwithoutspacestotestcharbreaksforthosecases,checkingifworkingasexpected.\n\nExcepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
bool textBoxMultiEditMode = false;
int listViewScrollIndex = 0;
int listViewActive = -1;
@ -80,21 +98,22 @@ int main()
int listViewExFocus = -1;
const char *listViewExList[8] = { "This", "is", "a", "list view", "with", "disable", "elements", "amazing!" };
char multiTextBoxText[256] = "Multi text box";
bool multiTextBoxEditMode = false;
Color colorPickerValue = RED;
int sliderValue = 50;
int sliderBarValue = 60;
float progressValue = 0.4f;
float sliderValue = 50.0f;
float sliderBarValue = 60;
float progressValue = 0.1f;
bool forceSquaredChecked = false;
float alphaValue = 0.5f;
int comboBoxActive = 1;
//int comboBoxActive = 1;
int visualStyleActive = 0;
int prevVisualStyleActive = 0;
int toggleGroupActive = 0;
int toggleSliderActive = 0;
Vector2 viewScroll = { 0, 0 };
//----------------------------------------------------------------------------------
@ -107,9 +126,14 @@ int main()
bool showMessageBox = false;
char textInput[256] = { 0 };
char textInputFileName[256] = { 0 };
bool showTextInputBox = false;
char textInputFileName[256] = { 0 };
float alpha = 1.0f;
// DEBUG: Testing how those two properties affect all controls!
//GuiSetStyle(DEFAULT, TEXT_PADDING, 0);
//GuiSetStyle(DEFAULT, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER);
SetTargetFPS(60);
//--------------------------------------------------------------------------------------
@ -133,6 +157,45 @@ int main()
UnloadDroppedFiles(droppedFiles); // Clear internal buffers
}
//alpha -= 0.002f;
if (alpha < 0.0f) alpha = 0.0f;
if (IsKeyPressed(KEY_SPACE)) alpha = 1.0f;
GuiSetAlpha(alpha);
//progressValue += 0.002f;
if (IsKeyPressed(KEY_LEFT)) progressValue -= 0.1f;
else if (IsKeyPressed(KEY_RIGHT)) progressValue += 0.1f;
if (progressValue > 1.0f) progressValue = 1.0f;
else if (progressValue < 0.0f) progressValue = 0.0f;
if (visualStyleActive != prevVisualStyleActive)
{
GuiLoadStyleDefault();
switch (visualStyleActive)
{
case 0: break; // Default style
case 1: GuiLoadStyleJungle(); break;
case 2: GuiLoadStyleLavanda(); break;
case 3: GuiLoadStyleDark(); break;
case 4: GuiLoadStyleBluish(); break;
case 5: GuiLoadStyleCyber(); break;
case 6: GuiLoadStyleTerminal(); break;
case 7: GuiLoadStyleCandy(); break;
case 8: GuiLoadStyleCherry(); break;
case 9: GuiLoadStyleAshes(); break;
case 10: GuiLoadStyleEnefete(); break;
case 11: GuiLoadStyleSunny(); break;
case 12: GuiLoadStyleAmber(); break;
default: break;
}
GuiSetStyle(LABEL, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT);
prevVisualStyleActive = visualStyleActive;
}
//----------------------------------------------------------------------------------
// Draw
@ -140,16 +203,16 @@ int main()
BeginDrawing();
ClearBackground(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)));
// raygui: controls drawing
//----------------------------------------------------------------------------------
// Check all possible events that require GuiLock
if (dropDown000EditMode ||
dropDown001EditMode) GuiLock();
if (dropDown000EditMode || dropDown001EditMode) GuiLock();
if (showTextInputBox) GuiLock();
// First GUI column
//GuiSetStyle(CHECKBOX, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT);
forceSquaredChecked = GuiCheckBox((Rectangle){ 25, 108, 15, 15 }, "FORCE CHECK!", forceSquaredChecked);
GuiCheckBox((Rectangle){ 25, 108, 15, 15 }, "FORCE CHECK!", &forceSquaredChecked);
GuiSetStyle(TEXTBOX, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER);
//GuiSetStyle(VALUEBOX, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT);
@ -171,38 +234,63 @@ int main()
GuiSetState(STATE_NORMAL);
//GuiUnlock();
comboBoxActive = GuiComboBox((Rectangle){ 25, 470, 125, 30 }, "ONE;TWO;THREE;FOUR", comboBoxActive);
GuiComboBox((Rectangle){ 25, 480, 125, 30 }, "default;Jungle;Lavanda;Dark;Bluish;Cyber;Terminal;Candy;Cherry;Ashes;Enefete;Sunny;Amber", &visualStyleActive);
// NOTE: GuiDropdownBox must draw after any other control that can be covered on unfolding
GuiUnlock();
if (dropDown000EditMode || dropDown001EditMode) GuiUnlock();
if (showTextInputBox) GuiLock(); // Stay locked
GuiSetStyle(DROPDOWNBOX, TEXT_PADDING, 4);
GuiSetStyle(DROPDOWNBOX, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT);
if (GuiDropdownBox((Rectangle){ 25, 65, 125, 30 }, "#01#ONE;#02#TWO;#03#THREE;#04#FOUR", &dropdownBox001Active, dropDown001EditMode)) dropDown001EditMode = !dropDown001EditMode;
GuiSetStyle(DROPDOWNBOX, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER);
GuiSetStyle(DROPDOWNBOX, TEXT_PADDING, 0);
if (GuiDropdownBox((Rectangle){ 25, 25, 125, 30 }, "ONE;TWO;THREE", &dropdownBox000Active, dropDown000EditMode)) dropDown000EditMode = !dropDown000EditMode;
// Second GUI column
listViewActive = GuiListView((Rectangle){ 165, 25, 140, 140 }, "Charmander;Bulbasaur;#18#Squirtel;Pikachu;Eevee;Pidgey", &listViewScrollIndex, listViewActive);
listViewExActive = GuiListViewEx((Rectangle){ 165, 180, 140, 200 }, listViewExList, 8, &listViewExFocus, &listViewExScrollIndex, listViewExActive);
//GuiSetStyle(LISTVIEW, LIST_ITEMS_BORDER_NORMAL, 1);
GuiListView((Rectangle){ 165, 25, 140, 124 }, "Charmander;Bulbasaur;#18#Squirtel;Pikachu;Eevee;Pidgey", &listViewScrollIndex, &listViewActive);
GuiListViewEx((Rectangle){ 165, 162, 140, 184 }, listViewExList, 8, &listViewExScrollIndex, &listViewExActive, &listViewExFocus);
GuiSetStyle(LISTVIEW, LIST_ITEMS_BORDER_NORMAL, 0);
toggleGroupActive = GuiToggleGroup((Rectangle){ 165, 400, 140, 25 }, "#1#ONE\n#3#TWO\n#8#THREE\n#23#", toggleGroupActive);
//GuiToggle((Rectangle){ 165, 400, 140, 25 }, "#1#ONE", &toggleGroupActive);
GuiToggleGroup((Rectangle){ 165, 360, 140, 24 }, "#1#ONE\n#3#TWO\n#8#THREE\n#23#", &toggleGroupActive);
//GuiDisable();
GuiSetStyle(SLIDER, SLIDER_PADDING, 2);
GuiToggleSlider((Rectangle){ 165, 480, 140, 30 }, "ON;OFF", &toggleSliderActive);
GuiSetStyle(SLIDER, SLIDER_PADDING, 0);
// Third GUI column
GuiPanel((Rectangle){ 320, 25, 225, 140 }, "Panel Info");
colorPickerValue = GuiColorPicker((Rectangle){ 320, 185, 196, 192 }, NULL, colorPickerValue);
GuiColorPicker((Rectangle){ 320, 185, 196, 192 }, NULL, &colorPickerValue);
sliderValue = GuiSlider((Rectangle){ 355, 400, 165, 20 }, "TEST", TextFormat("%2.2f", (float)sliderValue), sliderValue, -50, 100);
sliderBarValue = GuiSliderBar((Rectangle){ 320, 430, 200, 20 }, NULL, TextFormat("%i", (int)sliderBarValue), sliderBarValue, 0, 100);
progressValue = GuiProgressBar((Rectangle){ 320, 460, 200, 20 }, NULL, NULL, progressValue, 0, 1);
//GuiDisable();
GuiSlider((Rectangle){ 355, 400, 165, 20 }, "TEST", TextFormat("%2.2f", sliderValue), &sliderValue, -50, 100);
GuiSliderBar((Rectangle){ 320, 430, 200, 20 }, NULL, TextFormat("%i", (int)sliderBarValue), &sliderBarValue, 0, 100);
GuiProgressBar((Rectangle){ 320, 460, 200, 20 }, NULL, TextFormat("%i%%", (int)(progressValue*100)), &progressValue, 0.0f, 1.0f);
GuiEnable();
// NOTE: View rectangle could be used to perform some scissor test
Rectangle view = GuiScrollPanel((Rectangle){ 560, 25, 102, 354 }, NULL, (Rectangle){ 560, 25, 300, 1200 }, &viewScroll);
Rectangle view = { 0 };
GuiScrollPanel((Rectangle){ 560, 25, 102, 354 }, NULL, (Rectangle){ 560, 25, 300, 1200 }, &viewScroll, &view);
GuiGrid((Rectangle) { 560, 25 + 180 + 195, 100, 120 }, NULL, 20, 2);
Vector2 mouseCell = { 0 };
GuiGrid((Rectangle) { 560, 25 + 180 + 195, 100, 120 }, NULL, 20, 3, &mouseCell);
GuiColorBarAlpha((Rectangle){ 320, 490, 200, 30 }, NULL, &alphaValue);
GuiSetStyle(DEFAULT, TEXT_ALIGNMENT_VERTICAL, TEXT_ALIGN_TOP); // WARNING: Word-wrap does not work as expected in case of no-top alignment
GuiSetStyle(DEFAULT, TEXT_WRAP_MODE, TEXT_WRAP_WORD); // WARNING: If wrap mode enabled, text editing is not supported
if (GuiTextBox((Rectangle){ 678, 25, 258, 492 }, textBoxMultiText, 1024, textBoxMultiEditMode)) textBoxMultiEditMode = !textBoxMultiEditMode;
GuiSetStyle(DEFAULT, TEXT_WRAP_MODE, TEXT_WRAP_NONE);
GuiSetStyle(DEFAULT, TEXT_ALIGNMENT_VERTICAL, TEXT_ALIGN_MIDDLE);
GuiSetStyle(DEFAULT, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT);
GuiStatusBar((Rectangle){ 0, (float)GetScreenHeight() - 20, (float)GetScreenWidth(), 20 }, "This is a status bar");
alphaValue = GuiColorBarAlpha((Rectangle){ 320, 490, 200, 30 }, NULL, alphaValue);
GuiSetStyle(DEFAULT, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER);
//GuiSetStyle(STATUSBAR, TEXT_INDENTATION, 20);
if (showMessageBox)
{
@ -215,20 +303,22 @@ int main()
if (showTextInputBox)
{
GuiUnlock();
DrawRectangle(0, 0, GetScreenWidth(), GetScreenHeight(), Fade(RAYWHITE, 0.8f));
int result = GuiTextInputBox((Rectangle){ (float)GetScreenWidth()/2 - 120, (float)GetScreenHeight()/2 - 60, 240, 140 }, "Save", GuiIconText(ICON_FILE_SAVE, "Save file as..."), "Ok;Cancel", textInput, 255, NULL);
int result = GuiTextInputBox((Rectangle){ (float)GetScreenWidth()/2 - 120, (float)GetScreenHeight()/2 - 60, 240, 140 }, GuiIconText(ICON_FILE_SAVE, "Save file as..."), "Introduce output file name:", "Ok;Cancel", textInput, 255, NULL);
if (result == 1)
{
// TODO: Validate textInput value and save
strcpy(textInputFileName, textInput);
TextCopy(textInputFileName, textInput);
}
if ((result == 0) || (result == 1) || (result == 2))
{
showTextInputBox = false;
strcpy(textInput, "\0");
TextCopy(textInput, "\0");
}
}
//----------------------------------------------------------------------------------

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

View File

@ -0,0 +1,71 @@
/*******************************************************************************************
*
* raygui - controls test suite
*
* COMPILATION (Windows - MinGW):
* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99
*
* LICENSE: zlib/libpng
*
* Copyright (c) 2016-2024 Ramon Santamaria (@raysan5)
*
**********************************************************************************************/
#include "raylib.h"
#define RAYGUI_IMPLEMENTATION
#include "../../src/raygui.h"
#include <stdio.h>
//------------------------------------------------------------------------------------
// Program main entry point
//------------------------------------------------------------------------------------
int main()
{
// Initialization
//---------------------------------------------------------------------------------------
const int screenWidth = 800;
const int screenHeight = 450;
InitWindow(screenWidth, screenHeight, "raygui - controls test suite");
float valueBoxValue = 0.0f;
bool valueBoxEditMode = false;
char valueBoxTextValue[32] = { 0 };
SetTargetFPS(60);
//--------------------------------------------------------------------------------------
// Main game loop
while (!WindowShouldClose()) // Detect window close button or ESC key
{
// Update
//----------------------------------------------------------------------------------
//----------------------------------------------------------------------------------
// Draw
//----------------------------------------------------------------------------------
BeginDrawing();
ClearBackground(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)));
if (GuiValueBoxFloat((Rectangle){ 25, 175, 125, 30 }, NULL, valueBoxTextValue, &valueBoxValue, valueBoxEditMode))
{
valueBoxEditMode = !valueBoxEditMode;
printf("Value: %2.2f\n", valueBoxValue);
}
EndDrawing();
//----------------------------------------------------------------------------------
}
// De-Initialization
//--------------------------------------------------------------------------------------
CloseWindow(); // Close window and OpenGL context
//--------------------------------------------------------------------------------------
return 0;
}

View File

@ -11,7 +11,7 @@
*
* LICENSE: zlib/libpng
*
* Copyright (c) 2016-2023 Ramon Santamaria (@raysan5)
* Copyright (c) 2016-2024 Ramon Santamaria (@raysan5)
*
**********************************************************************************************/
@ -21,8 +21,9 @@
#include "../../src/raygui.h"
#undef RAYGUI_IMPLEMENTATION // Avoid including raygui implementation again
#define GUI_FILE_DIALOG_IMPLEMENTATION
#include "gui_file_dialog.h"
#define GUI_WINDOW_FILE_DIALOG_IMPLEMENTATION
#include "gui_window_file_dialog.h"
//------------------------------------------------------------------------------------
// Program main entry point
@ -38,7 +39,7 @@ int main()
SetExitKey(0);
// Custom file dialog
GuiFileDialogState fileDialogState = InitGuiFileDialog(GetWorkingDirectory());
GuiWindowFileDialogState fileDialogState = InitGuiWindowFileDialog(GetWorkingDirectory());
bool exitWindow = false;
@ -61,7 +62,7 @@ int main()
// Load image file (if supported extension)
if (IsFileExtension(fileDialogState.fileNameText, ".png"))
{
strcpy(fileNameToLoad, TextFormat("%s/%s", fileDialogState.dirPathText, fileDialogState.fileNameText));
strcpy(fileNameToLoad, TextFormat("%s" PATH_SEPERATOR "%s", fileDialogState.dirPathText, fileDialogState.fileNameText));
UnloadTexture(texture);
texture = LoadTexture(fileNameToLoad);
}
@ -91,7 +92,7 @@ int main()
// GUI: Dialog Window
//--------------------------------------------------------------------------------
GuiFileDialog(&fileDialogState);
GuiWindowFileDialog(&fileDialogState);
//--------------------------------------------------------------------------------
//----------------------------------------------------------------------------------

View File

@ -1,13 +1,13 @@
/*******************************************************************************************
*
* FileDialog v1.2 - Modal file dialog to open/save files
* Window File Dialog v1.2 - Modal file dialog to open/save files
*
* MODULE USAGE:
* #define GUI_FILE_DIALOG_IMPLEMENTATION
* #include "gui_file_dialog.h"
* #define GUI_WINDOW_FILE_DIALOG_IMPLEMENTATION
* #include "gui_window_file_dialog.h"
*
* INIT: GuiFileDialogState state = InitGuiFileDialog();
* DRAW: GuiFileDialog(&state);
* INIT: GuiWindowFileDialogState state = GuiInitWindowFileDialog();
* DRAW: GuiWindowFileDialog(&state);
*
* NOTE: This module depends on some raylib file system functions:
* - LoadDirectoryFiles()
@ -18,7 +18,7 @@
*
* LICENSE: zlib/libpng
*
* Copyright (c) 2019-2022 Ramon Santamaria (@raysan5)
* Copyright (c) 2019-2024 Ramon Santamaria (@raysan5)
*
* This software is provided "as-is", without any express or implied warranty. In no event
* will the authors be held liable for any damages arising from the use of this software.
@ -39,8 +39,8 @@
#include "raylib.h"
#ifndef GUI_FILE_DIALOG_H
#define GUI_FILE_DIALOG_H
#ifndef GUI_WINDOW_FILE_DIALOG_H
#define GUI_WINDOW_FILE_DIALOG_H
// Gui file dialog context data
typedef struct {
@ -77,7 +77,7 @@ typedef struct {
bool saveFileMode;
} GuiFileDialogState;
} GuiWindowFileDialogState;
#ifdef __cplusplus
extern "C" { // Prevents name mangling of functions
@ -101,21 +101,21 @@ extern "C" { // Prevents name mangling of functions
//----------------------------------------------------------------------------------
// Module Functions Declaration
//----------------------------------------------------------------------------------
GuiFileDialogState InitGuiFileDialog(const char *initPath);
void GuiFileDialog(GuiFileDialogState *state);
GuiWindowFileDialogState InitGuiWindowFileDialog(const char *initPath);
void GuiWindowFileDialog(GuiWindowFileDialogState *state);
#ifdef __cplusplus
}
#endif
#endif // GUI_FILE_DIALOG_H
#endif // GUI_WINDOW_FILE_DIALOG_H
/***********************************************************************************
*
* GUI_FILE_DIALOG IMPLEMENTATION
* GUI_WINDOW_FILE_DIALOG IMPLEMENTATION
*
************************************************************************************/
#if defined(GUI_FILE_DIALOG_IMPLEMENTATION)
#if defined(GUI_WINDOW_FILE_DIALOG_IMPLEMENTATION)
#include "../../src/raygui.h"
@ -126,6 +126,11 @@ void GuiFileDialog(GuiFileDialogState *state);
//----------------------------------------------------------------------------------
#define MAX_DIRECTORY_FILES 2048
#define MAX_ICON_PATH_LENGTH 512
#ifdef _WIN32
#define PATH_SEPERATOR "\\"
#else
#define PATH_SEPERATOR "/"
#endif
//----------------------------------------------------------------------------------
// Types and Structures Definition
@ -153,7 +158,7 @@ FileInfo *dirFilesIcon = NULL; // Path string + icon (for fancy drawing)
// Internal Module Functions Definition
//----------------------------------------------------------------------------------
// Read files in new path
static void ReloadDirectoryFiles(GuiFileDialogState *state);
static void ReloadDirectoryFiles(GuiWindowFileDialogState *state);
#if defined(USE_CUSTOM_LISTVIEW_FILEINFO)
// List View control for files info with extended parameters
@ -163,9 +168,9 @@ static int GuiListViewFiles(Rectangle bounds, FileInfo *files, int count, int *f
//----------------------------------------------------------------------------------
// Module Functions Definition
//----------------------------------------------------------------------------------
GuiFileDialogState InitGuiFileDialog(const char *initPath)
GuiWindowFileDialogState InitGuiWindowFileDialog(const char *initPath)
{
GuiFileDialogState state = { 0 };
GuiWindowFileDialogState state = { 0 };
// Init window data
state.windowBounds = (Rectangle){ GetScreenWidth()/2 - 440/2, GetScreenHeight()/2 - 310/2, 440, 310 };
@ -214,7 +219,7 @@ GuiFileDialogState InitGuiFileDialog(const char *initPath)
}
// Update and draw file dialog
void GuiFileDialog(GuiFileDialogState *state)
void GuiWindowFileDialog(GuiWindowFileDialogState *state)
{
if (state->windowActive)
{
@ -310,7 +315,8 @@ void GuiFileDialog(GuiFileDialogState *state)
# if defined(USE_CUSTOM_LISTVIEW_FILEINFO)
state->filesListActive = GuiListViewFiles((Rectangle){ state->position.x + 8, state->position.y + 48 + 20, state->windowBounds.width - 16, state->windowBounds.height - 60 - 16 - 68 }, fileInfo, state->dirFiles.count, &state->itemFocused, &state->filesListScrollIndex, state->filesListActive);
# else
state->filesListActive = GuiListViewEx((Rectangle){ state->windowBounds.x + 8, state->windowBounds.y + 48 + 20, state->windowBounds.width - 16, state->windowBounds.height - 60 - 16 - 68 }, (const char**)dirFilesIcon, state->dirFiles.count, &state->itemFocused, &state->filesListScrollIndex, state->filesListActive);
GuiListViewEx((Rectangle){ state->windowBounds.x + 8, state->windowBounds.y + 48 + 20, state->windowBounds.width - 16, state->windowBounds.height - 60 - 16 - 68 },
(const char**)dirFilesIcon, state->dirFiles.count, &state->filesListScrollIndex, &state->filesListActive, &state->itemFocused);
# endif
GuiSetStyle(LISTVIEW, TEXT_ALIGNMENT, prevTextAlignment);
GuiSetStyle(LISTVIEW, LIST_ITEMS_HEIGHT, prevElementsHeight);
@ -352,7 +358,7 @@ void GuiFileDialog(GuiFileDialogState *state)
if (FileExists(TextFormat("%s/%s", state->dirPathText, state->fileNameText)))
{
// Select filename from list view
for (int i = 0; i < state->dirFiles.count; i++)
for (unsigned int i = 0; i < state->dirFiles.count; i++)
{
if (TextIsEqual(state->fileNameText, state->dirFiles.paths[i]))
{
@ -372,7 +378,7 @@ void GuiFileDialog(GuiFileDialogState *state)
}
GuiLabel((Rectangle){ state->windowBounds.x + 8, state->windowBounds.y + state->windowBounds.height - 24 - 12, 68, 24 }, "File filter:");
state->fileTypeActive = GuiComboBox((Rectangle){ state->windowBounds.x + 72, state->windowBounds.y + state->windowBounds.height - 24 - 12, state->windowBounds.width - 184, 24 }, "All files", state->fileTypeActive);
GuiComboBox((Rectangle){ state->windowBounds.x + 72, state->windowBounds.y + state->windowBounds.height - 24 - 12, state->windowBounds.width - 184, 24 }, "All files", &state->fileTypeActive);
state->SelectFilePressed = GuiButton((Rectangle){ state->windowBounds.x + state->windowBounds.width - 96 - 8, state->windowBounds.y + state->windowBounds.height - 68, 96, 24 }, "Select");
@ -418,7 +424,7 @@ static inline int FileCompare(const char *d1, const char *d2, const char *dir)
}
// Read files in new path
static void ReloadDirectoryFiles(GuiFileDialogState *state)
static void ReloadDirectoryFiles(GuiWindowFileDialogState *state)
{
UnloadDirectoryFiles(state->dirFiles);
@ -429,7 +435,7 @@ static void ReloadDirectoryFiles(GuiFileDialogState *state)
for (int i = 0; i < MAX_DIRECTORY_FILES; i++) memset(dirFilesIcon[i], 0, MAX_ICON_PATH_LENGTH);
// Copy paths as icon + fileNames into dirFilesIcon
for (int i = 0; i < state->dirFiles.count; i++)
for (unsigned int i = 0; i < state->dirFiles.count; i++)
{
if (IsPathFile(state->dirFiles.paths[i]))
{
@ -462,11 +468,12 @@ static void ReloadDirectoryFiles(GuiFileDialogState *state)
#if defined(USE_CUSTOM_LISTVIEW_FILEINFO)
// List View control for files info with extended parameters
static int GuiListViewFiles(Rectangle bounds, FileInfo *files, int count, int *focus, int *scrollIndex, int active)
static int GuiListViewFiles(Rectangle bounds, FileInfo *files, int count, int *focus, int *scrollIndex, int *active)
{
int result = 0;
GuiState state = guiState;
int itemFocused = (focus == NULL)? -1 : *focus;
int itemSelected = active;
int itemSelected = *active;
// Check if we need a scroll bar
bool useScrollBar = false;
@ -610,7 +617,8 @@ static int GuiListViewFiles(Rectangle bounds, FileInfo *files, int count, int *f
if (focus != NULL) *focus = itemFocused;
if (scrollIndex != NULL) *scrollIndex = startIndex;
return itemSelected;
*active = itemSelected;
return result;
}
#endif // USE_CUSTOM_LISTVIEW_FILEINFO

View File

@ -0,0 +1,223 @@
/*******************************************************************************************
*
* raygui - basic calculator app with custom input box for float values
*
* DEPENDENCIES:
* raylib 4.5 - Windowing/input management and drawing.
* raygui 3.5 - Immediate-mode GUI controls.
*
* COMPILATION (Windows - MinGW):
* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99
*
**********************************************************************************************/
#include "raylib.h"
#define RAYGUI_IMPLEMENTATION
#include "../../src/raygui.h"
int guiFloatingPointIndex = 0; // Global variable shared by all GuiFloatBox()
int GuiFloatBox(Rectangle bounds, const char* text, float* value, int minValue, int maxValue, bool editMode); // Custom input box that works with float values. Basicly GuiValueBox(), but with some changes
int main()
{
InitWindow(250, 100, "Basic calculator");
// General variables
SetTargetFPS(60);
float variableA = 0.0f;
float variableB = 0.0f;
float result = 0.0f;
char operation[2];
operation[0] = '+';
operation[1] = '\0';
bool variableAMode = false;
bool variableBMode = false;
//--------------------------------------------------------------------------------------
// Main game loop
while (!WindowShouldClose())
{
// Draw
//----------------------------------------------------------------------------------
BeginDrawing();
ClearBackground(RAYWHITE);
if (GuiFloatBox((Rectangle){ 10, 10, 100, 20 }, NULL, &variableA, -1000000.0, 1000000.0, variableAMode)) variableAMode = !variableAMode;
if (GuiFloatBox((Rectangle){ 140, 10, 100, 20 }, NULL, &variableB, -1000000.0, 1000000.0, variableBMode)) variableBMode = !variableBMode;
if (GuiButton((Rectangle){ 10, 70, 50, 20 }, "+"))
{
result = variableA + variableB;
operation[0] = '+';
}
if (GuiButton((Rectangle){ 70, 70, 50, 20 }, "-"))
{
result = variableA - variableB;
operation[0] = '-';
}
if (GuiButton((Rectangle){ 130, 70, 50, 20 }, "*"))
{
result = variableA * variableB;
operation[0] = '*';
}
if (GuiButton((Rectangle){ 190, 70, 50, 20 }, "/"))
{
result = variableA / variableB;
operation[0] = '/';
}
DrawText(operation, 123, 15, 10, DARKGRAY);
GuiFloatBox((Rectangle){ 55, 40, 135, 20 }, "= ", &result, -2000000.0, 2000000.0, false);
EndDrawing();
//----------------------------------------------------------------------------------
}
CloseWindow();
}
// Float Box control, updates input text with numbers
int GuiFloatBox(Rectangle bounds, const char* text, float* value, int minValue, int maxValue, bool editMode)
{
#if !defined(RAYGUI_VALUEBOX_MAX_CHARS)
#define RAYGUI_VALUEBOX_MAX_CHARS 32
#endif
int result = 0;
GuiState state = guiState;
char textValue[RAYGUI_VALUEBOX_MAX_CHARS + 1] = "\0";
Rectangle textBounds = { 0 };
if (text != NULL)
{
textBounds.width = (float)GuiGetTextWidth(text) + 2;
textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE);
textBounds.x = bounds.x + bounds.width + GuiGetStyle(VALUEBOX, TEXT_PADDING);
textBounds.y = bounds.y + bounds.height / 2.0f - GuiGetStyle(DEFAULT, TEXT_SIZE) / 2.0f;
if (GuiGetStyle(VALUEBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_LEFT) textBounds.x = bounds.x - textBounds.width - GuiGetStyle(VALUEBOX, TEXT_PADDING);
}
// Update control
//--------------------------------------------------------------------
if ((state != STATE_DISABLED) && !guiLocked && !guiControlExclusiveMode)
{
Vector2 mousePoint = GetMousePosition();
if (*value >= 0) sprintf(textValue, "+%.3f", *value);
else sprintf(textValue, "%.3f", *value);
bool valueHasChanged = false;
int keyCount = (int)strlen(textValue) - guiFloatingPointIndex;
if (editMode)
{
state = STATE_PRESSED;
// Only allow keys in range [48..57]
if (keyCount < RAYGUI_VALUEBOX_MAX_CHARS)
{
if (GuiGetTextWidth(textValue) < bounds.width)
{
int key = GetCharPressed();
if ((key >= 48) && (key <= 57) && guiFloatingPointIndex)
{
if (guiFloatingPointIndex && guiFloatingPointIndex != 4) guiFloatingPointIndex--;
textValue[keyCount] = (char)key;
textValue[++keyCount] = '\0';
valueHasChanged = true;
}
}
}
// Delete text
if (keyCount > 0)
{
if (IsKeyPressed(KEY_BACKSPACE))
{
if (guiFloatingPointIndex < 4) guiFloatingPointIndex++;
keyCount--;
textValue[keyCount] = '\0';
valueHasChanged = true;
}
}
// Change sign
if (IsKeyPressed(KEY_MINUS))
{
if (textValue[0] == '+') textValue[0] = '-';
else if (textValue[0] == '-') textValue[0] = '+';
valueHasChanged = true;
}
// Add decimal separator
if ((IsKeyPressed(KEY_COMMA) || IsKeyPressed(KEY_PERIOD)) && guiFloatingPointIndex == 4)
{
guiFloatingPointIndex--;
valueHasChanged = true;
}
if (valueHasChanged)
{
*value = atof(textValue);
}
if (IsKeyPressed(KEY_ENTER) || (!CheckCollisionPointRec(mousePoint, bounds) && IsMouseButtonPressed(MOUSE_LEFT_BUTTON)))
{
guiFloatingPointIndex = 0;
result = 1;
}
}
else
{
if (*value > maxValue) *value = maxValue;
else if (*value < minValue) *value = minValue;
if (CheckCollisionPointRec(mousePoint, bounds))
{
state = STATE_FOCUSED;
if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) result = 1;
}
}
}
//--------------------------------------------------------------------
// Draw control
//--------------------------------------------------------------------
Color baseColor = BLANK;
sprintf(textValue, "%.3f", *value);
if (state == STATE_PRESSED)
{
baseColor = GetColor(GuiGetStyle(VALUEBOX, BASE_COLOR_PRESSED));
textValue[(int)strlen(textValue) - guiFloatingPointIndex] = '\0';
}
else if (state == STATE_DISABLED) baseColor = GetColor(GuiGetStyle(VALUEBOX, BASE_COLOR_DISABLED));
// WARNING: BLANK color does not work properly with Fade()
GuiDrawRectangle(bounds, GuiGetStyle(VALUEBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(VALUEBOX, BORDER + (state * 3))), guiAlpha), baseColor);
GuiDrawText(textValue, GetTextBounds(VALUEBOX, bounds), TEXT_ALIGN_CENTER, Fade(GetColor(GuiGetStyle(VALUEBOX, TEXT + (state * 3))), guiAlpha));
// Draw cursor
if (editMode)
{
// NOTE: ValueBox internal text is always centered
Rectangle cursor = { bounds.x + GuiGetTextWidth(textValue) / 2.0f + bounds.width / 2.0f + 1, bounds.y + 2.0f * GuiGetStyle(VALUEBOX, BORDER_WIDTH), 4, bounds.height - 4 * GuiGetStyle(VALUEBOX, BORDER_WIDTH) };
GuiDrawRectangle(cursor, 0, BLANK, Fade(GetColor(GuiGetStyle(VALUEBOX, BORDER_COLOR_PRESSED)), guiAlpha));
}
// Draw text label if provided
GuiDrawText(text, textBounds, (GuiGetStyle(VALUEBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_RIGHT) ? TEXT_ALIGN_LEFT : TEXT_ALIGN_RIGHT, Fade(GetColor(GuiGetStyle(LABEL, TEXT + (state * 3))), guiAlpha));
//--------------------------------------------------------------------
return result;
}

View File

@ -11,7 +11,7 @@
*
* LICENSE: zlib/libpng
*
* Copyright (c) 2016-2023 Ramon Santamaria (@raysan5)
* Copyright (c) 2016-2024 Ramon Santamaria (@raysan5)
*
**********************************************************************************************/
@ -75,7 +75,7 @@ int main()
// raygui: controls drawing
//----------------------------------------------------------------------------------
GuiGroupBox((Rectangle){ 66, 24, 276, 312 }, "STANDARD");
value = GuiSlider((Rectangle){ 96, 48, 216, 16 }, TextFormat("%0.2f", value), NULL, value, 0.0f, 1.0f);
GuiSlider((Rectangle){ 96, 48, 216, 16 }, TextFormat("%0.2f", value), NULL, &value, 0.0f, 1.0f);
value = GuiVerticalSlider((Rectangle){ 120, 120, 24, 192 }, TextFormat("%0.2f", value), NULL, value, 0.0f, 1.0f);
value = GuiVerticalSliderBar((Rectangle){ 264, 120, 24, 192 }, TextFormat("%0.2f", value), NULL, value, 0.0f, 1.0f);
@ -182,7 +182,7 @@ float GuiVerticalSliderPro(Rectangle bounds, const char *textTop, const char *te
if (textTop != NULL)
{
Rectangle textBounds = { 0 };
textBounds.width = (float)GetTextWidth(textTop);
textBounds.width = (float)GuiGetTextWidth(textTop);
textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE);
textBounds.x = bounds.x + bounds.width/2 - textBounds.width/2;
textBounds.y = bounds.y - textBounds.height - GuiGetStyle(SLIDER, TEXT_PADDING);
@ -193,7 +193,7 @@ float GuiVerticalSliderPro(Rectangle bounds, const char *textTop, const char *te
if (textBottom != NULL)
{
Rectangle textBounds = { 0 };
textBounds.width = (float)GetTextWidth(textBottom);
textBounds.width = (float)GuiGetTextWidth(textBottom);
textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE);
textBounds.x = bounds.x + bounds.width/2 - textBounds.width/2;
textBounds.y = bounds.y + bounds.height + GuiGetStyle(SLIDER, TEXT_PADDING);
@ -304,7 +304,7 @@ bool GuiSliderProOwning(Rectangle bounds, const char *textLeft, const char *text
if (textLeft != NULL)
{
Rectangle textBounds = { 0 };
textBounds.width = (float)GetTextWidth(textLeft);
textBounds.width = (float)GuiGetTextWidth(textLeft);
textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE);
textBounds.x = bounds.x - textBounds.width - GuiGetStyle(SLIDER, TEXT_PADDING);
textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2;
@ -315,7 +315,7 @@ bool GuiSliderProOwning(Rectangle bounds, const char *textLeft, const char *text
if (textRight != NULL)
{
Rectangle textBounds = { 0 };
textBounds.width = (float)GetTextWidth(textRight);
textBounds.width = (float)GuiGetTextWidth(textRight);
textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE);
textBounds.x = bounds.x + bounds.width + GuiGetStyle(SLIDER, TEXT_PADDING);
textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2;
@ -435,7 +435,7 @@ bool GuiVerticalSliderProOwning(Rectangle bounds, const char *textTop, const cha
if (textTop != NULL)
{
Rectangle textBounds = { 0 };
textBounds.width = (float)GetTextWidth(textTop);
textBounds.width = (float)GuiGetTextWidth(textTop);
textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE);
textBounds.x = bounds.x + bounds.width/2 - textBounds.width/2;
textBounds.y = bounds.y - textBounds.height - GuiGetStyle(SLIDER, TEXT_PADDING);
@ -446,7 +446,7 @@ bool GuiVerticalSliderProOwning(Rectangle bounds, const char *textTop, const cha
if (textBottom != NULL)
{
Rectangle textBounds = { 0 };
textBounds.width = (float)GetTextWidth(textBottom);
textBounds.width = (float)GuiGetTextWidth(textBottom);
textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE);
textBounds.x = bounds.x + bounds.width/2 - textBounds.width/2;
textBounds.y = bounds.y + bounds.height + GuiGetStyle(SLIDER, TEXT_PADDING);
@ -467,4 +467,4 @@ bool GuiVerticalSliderOwning(Rectangle bounds, const char *textTop, const char *
bool GuiVerticalSliderBarOwning(Rectangle bounds, const char *textTop, const char *textBottom, float *value, float minValue, float maxValue, bool editMode)
{
return GuiVerticalSliderProOwning(bounds, textTop, textBottom, value, minValue, maxValue, 0, editMode);
}
}

View File

@ -0,0 +1,148 @@
#include "raylib.h"
#define RAYGUI_IMPLEMENTATION
#include "../../src/raygui.h"
#include "../../styles/dark/style_dark.h"
static Vector2 window_position = { 10, 10 };
static Vector2 window_size = { 200, 400 };
static bool minimized = false;
static bool moving = false;
static bool resizing = false;
static Vector2 scroll;
static Vector2 window2_position = { 250, 10 };
static Vector2 window2_size = { 200, 400 };
static bool minimized2 = false;
static bool moving2 = false;
static bool resizing2 = false;
static Vector2 scroll2;
void GuiWindowFloating(Vector2 *position, Vector2 *size, bool *minimized, bool *moving, bool *resizing, void (*draw_content)(Vector2, Vector2), Vector2 content_size, Vector2 *scroll, const char* title) {
#if !defined(RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT)
#define RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT 24
#endif
#if !defined(RAYGUI_WINDOW_CLOSEBUTTON_SIZE)
#define RAYGUI_WINDOW_CLOSEBUTTON_SIZE 18
#endif
int close_title_size_delta_half = (RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT - RAYGUI_WINDOW_CLOSEBUTTON_SIZE) / 2;
// window movement and resize input and collision check
if(IsMouseButtonPressed(MOUSE_LEFT_BUTTON) && !*moving && !*resizing) {
Vector2 mouse_position = GetMousePosition();
Rectangle title_collision_rect = { position->x, position->y, size->x - (RAYGUI_WINDOW_CLOSEBUTTON_SIZE + close_title_size_delta_half), RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT };
Rectangle resize_collision_rect = { position->x + size->x - 20, position->y + size->y - 20, 20, 20 };
if(CheckCollisionPointRec(mouse_position, title_collision_rect)) {
*moving = true;
} else if(!*minimized && CheckCollisionPointRec(mouse_position, resize_collision_rect)) {
*resizing = true;
}
}
// window movement and resize update
if(*moving) {
Vector2 mouse_delta = GetMouseDelta();
position->x += mouse_delta.x;
position->y += mouse_delta.y;
if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) {
*moving = false;
// clamp window position keep it inside the application area
if(position->x < 0) position->x = 0;
else if(position->x > GetScreenWidth() - size->x) position->x = GetScreenWidth() - size->x;
if(position->y < 0) position->y = 0;
else if(position->y > GetScreenHeight()) position->y = GetScreenHeight() - RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT;
}
} else if(*resizing) {
Vector2 mouse = GetMousePosition();
if (mouse.x > position->x)
size->x = mouse.x - position->x;
if (mouse.y > position->y)
size->y = mouse.y - position->y;
// clamp window size to an arbitrary minimum value and the window size as the maximum
if(size->x < 100) size->x = 100;
else if(size->x > GetScreenWidth()) size->x = GetScreenWidth();
if(size->y < 100) size->y = 100;
else if(size->y > GetScreenHeight()) size->y = GetScreenHeight();
if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) {
*resizing = false;
}
}
// window and content drawing with scissor and scroll area
if(*minimized) {
GuiStatusBar((Rectangle){ position->x, position->y, size->x, RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT }, title);
if (GuiButton((Rectangle){ position->x + size->x - RAYGUI_WINDOW_CLOSEBUTTON_SIZE - close_title_size_delta_half,
position->y + close_title_size_delta_half,
RAYGUI_WINDOW_CLOSEBUTTON_SIZE,
RAYGUI_WINDOW_CLOSEBUTTON_SIZE },
"#120#")) {
*minimized = false;
}
} else {
*minimized = GuiWindowBox((Rectangle) { position->x, position->y, size->x, size->y }, title);
// scissor and draw content within a scroll panel
if(draw_content != NULL) {
Rectangle scissor = { 0 };
GuiScrollPanel((Rectangle) { position->x, position->y + RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT, size->x, size->y - RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT },
NULL,
(Rectangle) { position->x, position->y, content_size.x, content_size.y },
scroll,
&scissor);
bool require_scissor = size->x < content_size.x || size->y < content_size.y;
if(require_scissor) {
BeginScissorMode(scissor.x, scissor.y, scissor.width, scissor.height);
}
draw_content(*position, *scroll);
if(require_scissor) {
EndScissorMode();
}
}
// draw the resize button/icon
GuiDrawIcon(71, position->x + size->x - 20, position->y + size->y - 20, 1, WHITE);
}
}
static void DrawContent(Vector2 position, Vector2 scroll) {
GuiButton((Rectangle) { position.x + 20 + scroll.x, position.y + 50 + scroll.y, 100, 25 }, "Button 1");
GuiButton((Rectangle) { position.x + 20 + scroll.x, position.y + 100 + scroll.y, 100, 25 }, "Button 2");
GuiButton((Rectangle) { position.x + 20 + scroll.x, position.y + 150 + scroll.y, 100, 25 }, "Button 3");
GuiLabel((Rectangle) { position.x + 20 + scroll.x, position.y + 200 + scroll.y, 250, 25 }, "A Label");
GuiLabel((Rectangle) { position.x + 20 + scroll.x, position.y + 250 + scroll.y, 250, 25 }, "Another Label");
GuiLabel((Rectangle) { position.x + 20 + scroll.x, position.y + 300 + scroll.y, 250, 25 }, "Yet Another Label");
}
int main(void) {
InitWindow(960, 560, "raygui - floating window example");
SetTargetFPS(60);
GuiLoadStyleDark();
while(!WindowShouldClose()) {
BeginDrawing();
ClearBackground(DARKGREEN);
GuiWindowFloating(&window_position, &window_size, &minimized, &moving, &resizing, &DrawContent, (Vector2) { 140, 320 }, &scroll, "Movable & Scalable Window");
GuiWindowFloating(&window2_position, &window2_size, &minimized2, &moving2, &resizing2, &DrawContent, (Vector2) { 140, 320 }, &scroll2, "Another window");
EndDrawing();
}
CloseWindow();
return 0;
}

View File

@ -11,7 +11,7 @@
*
* LICENSE: zlib/libpng
*
* Copyright (c) 2015-2023 Ramon Santamaria (@raysan5)
* Copyright (c) 2015-2024 Ramon Santamaria (@raysan5)
*
********************************************************************************************/
@ -44,7 +44,7 @@ int main(int argc, char *argv[])
const char *pixelFormatTextList[7] = { "GRAYSCALE", "GRAY ALPHA", "R5G6B5", "R8G8B8", "R5G5B5A1", "R4G4B4A4", "R8G8B8A8" };
bool textBoxEditMode = false;
char fileName[32] = "untitled";
char fileName[64] = "untitled";
//--------------------------------------------------------------------------------------
Image image = { 0 };
@ -54,7 +54,7 @@ int main(int argc, char *argv[])
float imageScale = 1.0f;
Rectangle imageRec = { 0 };
bool btnExport = false;
bool btnExportPressed = false;
SetTargetFPS(60);
//--------------------------------------------------------------------------------------
@ -91,7 +91,7 @@ int main(int argc, char *argv[])
UnloadDroppedFiles(droppedFiles);
}
if (btnExport)
if (btnExportPressed)
{
if (imageLoaded)
{
@ -163,17 +163,17 @@ int main(int argc, char *argv[])
windowBoxActive = !GuiWindowBox((Rectangle){ windowBoxRec.x, windowBoxRec.y, 220, 190 }, "Image Export Options");
GuiLabel((Rectangle){ windowBoxRec.x + 10, windowBoxRec.y + 35, 60, 25 }, "File format:");
fileFormatActive = GuiComboBox((Rectangle){ windowBoxRec.x + 80, windowBoxRec.y + 35, 130, 25 }, TextJoin(fileFormatTextList, 3, ";"), fileFormatActive);
GuiComboBox((Rectangle){ windowBoxRec.x + 80, windowBoxRec.y + 35, 130, 25 }, TextJoin(fileFormatTextList, 3, ";"), &fileFormatActive);
GuiLabel((Rectangle){ windowBoxRec.x + 10, windowBoxRec.y + 70, 63, 25 }, "Pixel format:");
pixelFormatActive = GuiComboBox((Rectangle){ windowBoxRec.x + 80, windowBoxRec.y + 70, 130, 25 }, TextJoin(pixelFormatTextList, 7, ";"), pixelFormatActive);
GuiComboBox((Rectangle){ windowBoxRec.x + 80, windowBoxRec.y + 70, 130, 25 }, TextJoin(pixelFormatTextList, 7, ";"), &pixelFormatActive);
GuiLabel((Rectangle){ windowBoxRec.x + 10, windowBoxRec.y + 105, 50, 25 }, "File name:");
if (GuiTextBox((Rectangle){ windowBoxRec.x + 80, windowBoxRec.y + 105, 130, 25 }, fileName, 64, textBoxEditMode)) textBoxEditMode = !textBoxEditMode;
btnExport = GuiButton((Rectangle){ windowBoxRec.x + 10, windowBoxRec.y + 145, 200, 30 }, "Export Image");
btnExportPressed = GuiButton((Rectangle){ windowBoxRec.x + 10, windowBoxRec.y + 145, 200, 30 }, "Export Image");
}
else btnExport = false;
else btnExportPressed = false;
if (btnExport) DrawText("Image exported!", 20, screenHeight - 20, 20, RED);
if (btnExportPressed) DrawText("Image exported!", 20, screenHeight - 20, 20, RED);
//-----------------------------------------------------------------------------
EndDrawing();

View File

@ -11,7 +11,7 @@
*
* LICENSE: zlib/libpng
*
* Copyright (c) 2015-2023 Ramon Santamaria (@raysan5)
* Copyright (c) 2015-2024 Ramon Santamaria (@raysan5)
*
**********************************************************************************************/
@ -194,14 +194,14 @@ int main()
if (GuiValueBox((Rectangle){ windowOffset.x + 60, windowOffset.y + 130, 80, 25 }, NULL, &heightValue, 0, 8192, heightEditMode)) heightEditMode = !heightEditMode;
GuiLabel((Rectangle){ windowOffset.x + 145, windowOffset.y + 130, 30, 25 }, "pixels");
GuiGroupBox((Rectangle){ windowOffset.x + 10, windowOffset.y + 180, 180, 160 }, "Pixel Format");
pixelFormatActive = GuiComboBox((Rectangle){ windowOffset.x + 20, windowOffset.y + 195, 160, 25 }, TextJoin(pixelFormatTextList, 8, ";"), pixelFormatActive);
GuiComboBox((Rectangle){ windowOffset.x + 20, windowOffset.y + 195, 160, 25 }, TextJoin(pixelFormatTextList, 8, ";"), &pixelFormatActive);
GuiLine((Rectangle){ windowOffset.x + 20, windowOffset.y + 220, 160, 20 }, NULL);
if (pixelFormatActive != 0) GuiDisable();
GuiLabel((Rectangle){ windowOffset.x + 20, windowOffset.y + 235, 50, 20 }, "Channels:");
channelsActive = GuiToggleGroup((Rectangle){ windowOffset.x + 20, windowOffset.y + 255, 156/4, 25 }, TextJoin(channelsTextList, 4, ";"), channelsActive);
GuiToggleGroup((Rectangle){ windowOffset.x + 20, windowOffset.y + 255, 156/4, 25 }, TextJoin(channelsTextList, 4, ";"), &channelsActive);
GuiLabel((Rectangle){ windowOffset.x + 20, windowOffset.y + 285, 50, 20 }, "Bit Depth:");
bitDepthActive = GuiToggleGroup((Rectangle){ windowOffset.x + 20, windowOffset.y + 305, 160/3, 25 }, TextJoin(bitDepthTextList, 3, ";"), bitDepthActive);
GuiToggleGroup((Rectangle){ windowOffset.x + 20, windowOffset.y + 305, 160/3, 25 }, TextJoin(bitDepthTextList, 3, ";"), &bitDepthActive);
GuiEnable();
GuiGroupBox((Rectangle){ windowOffset.x + 10, windowOffset.y + 355, 180, 50 }, "Header");

View File

@ -11,7 +11,7 @@
*
* LICENSE: zlib/libpng
*
* Copyright (c) 2016-2023 Ramon Santamaria (@raysan5)
* Copyright (c) 2016-2024 Ramon Santamaria (@raysan5)
*
**********************************************************************************************/
@ -53,10 +53,11 @@ int main()
//----------------------------------------------------------------------------------
mousePosition = GetMousePosition();
if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON))
if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON) && !dragWindow)
{
if (CheckCollisionPointRec(mousePosition, (Rectangle){ 0, 0, screenWidth, 20 }))
{
windowPosition = GetWindowPosition();
dragWindow = true;
panOffset = mousePosition;
}
@ -66,10 +67,10 @@ int main()
{
windowPosition.x += (mousePosition.x - panOffset.x);
windowPosition.y += (mousePosition.y - panOffset.y);
SetWindowPosition((int)windowPosition.x, (int)windowPosition.y);
if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) dragWindow = false;
SetWindowPosition(windowPosition.x, windowPosition.y);
}
//----------------------------------------------------------------------------------
@ -82,6 +83,7 @@ int main()
exitWindow = GuiWindowBox((Rectangle){ 0, 0, screenWidth, screenHeight }, "#198# PORTABLE WINDOW");
DrawText(TextFormat("Mouse Position: [ %.0f, %.0f ]", mousePosition.x, mousePosition.y), 10, 40, 10, DARKGRAY);
DrawText(TextFormat("Window Position: [ %.0f, %.0f ]", windowPosition.x, windowPosition.y), 10, 60, 10, DARKGRAY);
EndDrawing();
//----------------------------------------------------------------------------------

View File

@ -323,7 +323,7 @@ double GuiDMValueBox(Rectangle bounds, double value, double minValue, double max
Rectangle textBounds = {bounds.x + GuiGetStyle(VALUEBOX, BORDER_WIDTH) + textPadding, bounds.y + GuiGetStyle(VALUEBOX, BORDER_WIDTH),
bounds.width - 2*(GuiGetStyle(VALUEBOX, BORDER_WIDTH) + textPadding), bounds.height - 2*GuiGetStyle(VALUEBOX, BORDER_WIDTH)};
int textWidth = GetTextWidth(textValue);
int textWidth = GuiGetTextWidth(textValue);
if(textWidth > textBounds.width) textBounds.width = textWidth;
if (state == STATE_PRESSED)
@ -338,7 +338,7 @@ double GuiDMValueBox(Rectangle bounds, double value, double minValue, double max
if(cursor > 0) {
char c = textValue[cursor];
textValue[cursor] = '\0';
textWidthCursor = GetTextWidth(textValue);
textWidthCursor = GuiGetTextWidth(textValue);
textValue[cursor] = c;
}
//DrawRectangle(bounds.x + textWidthCursor + textPadding + 2, bounds.y + 2*GuiGetStyle(VALUEBOX, BORDER_WIDTH), 1, bounds.height - 4*GuiGetStyle(VALUEBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(VALUEBOX, BORDER_COLOR_PRESSED)), guiAlpha));
@ -368,10 +368,11 @@ double GuiDMValueBox(Rectangle bounds, double value, double minValue, double max
double GuiDMSpinner(Rectangle bounds, double value, double minValue, double maxValue, double step, int precision, bool editMode) {
GuiState state = GuiGetState();
Rectangle spinner = { bounds.x + GuiGetStyle(SPINNER, SPIN_BUTTON_WIDTH) + GuiGetStyle(SPINNER, SPIN_BUTTON_SPACING), bounds.y,
bounds.width - 2*(GuiGetStyle(SPINNER, SPIN_BUTTON_WIDTH) + GuiGetStyle(SPINNER, SPIN_BUTTON_SPACING)), bounds.height };
Rectangle leftButtonBound = { (float)bounds.x, (float)bounds.y, (float)GuiGetStyle(SPINNER, SPIN_BUTTON_WIDTH), (float)bounds.height };
Rectangle rightButtonBound = { (float)bounds.x + bounds.width - GuiGetStyle(SPINNER, SPIN_BUTTON_WIDTH), (float)bounds.y, (float)GuiGetStyle(SPINNER, SPIN_BUTTON_WIDTH), (float)bounds.height };
Rectangle spinner = { bounds.x + GuiGetStyle(VALUEBOX, SPINNER_BUTTON_WIDTH) + GuiGetStyle(VALUEBOX, SPINNER_BUTTON_SPACING), bounds.y,
bounds.width - 2*(GuiGetStyle(VALUEBOX, SPINNER_BUTTON_WIDTH) + GuiGetStyle(VALUEBOX, SPINNER_BUTTON_SPACING)), bounds.height };
Rectangle leftButtonBound = { (float)bounds.x, (float)bounds.y, (float)GuiGetStyle(VALUEBOX, SPINNER_BUTTON_WIDTH), (float)bounds.height };
Rectangle rightButtonBound = { (float)bounds.x + bounds.width - GuiGetStyle(VALUEBOX, SPINNER_BUTTON_WIDTH),
(float)bounds.y, (float)GuiGetStyle(VALUEBOX, SPINNER_BUTTON_WIDTH), (float)bounds.height };
// Update control
//--------------------------------------------------------------------
@ -395,7 +396,7 @@ double GuiDMSpinner(Rectangle bounds, double value, double minValue, double maxV
// NOTE: BORDER_WIDTH and TEXT_ALIGNMENT forced values
int tempBorderWidth = GuiGetStyle(BUTTON, BORDER_WIDTH);
int tempTextAlign = GuiGetStyle(BUTTON, TEXT_ALIGNMENT);
GuiSetStyle(BUTTON, BORDER_WIDTH, GuiGetStyle(SPINNER, BORDER_WIDTH));
GuiSetStyle(BUTTON, BORDER_WIDTH, GuiGetStyle(VALUEBOX, BORDER_WIDTH));
GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER);
#if defined(RAYGUI_SUPPORT_RICONS)
@ -543,7 +544,7 @@ void GuiDMPropertyList(Rectangle bounds, GuiDMProperty* props, int count, int* f
// draw property value
const bool locked = guiLocked;
GuiLock(); // lock the checkbox since we changed the value manually
GuiCheckBox((Rectangle){propBounds.x+propBounds.width/2, propBounds.y + height/4, height/2, height/2}, props[p].value.vbool ? "Yes" : "No", props[p].value.vbool);
GuiCheckBox((Rectangle){propBounds.x+propBounds.width/2, propBounds.y + height/4, height/2, height/2}, props[p].value.vbool? "Yes" : "No", &props[p].value.vbool);
if(!locked) GuiUnlock(); // only unlock when needed
} break;
@ -584,8 +585,8 @@ void GuiDMPropertyList(Rectangle bounds, GuiDMProperty* props, int count, int* f
// draw property name
GuiDrawText(props[p].name, (Rectangle){propBounds.x + PROPERTY_PADDING, propBounds.y, propBounds.width/2-PROPERTY_PADDING, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)}, TEXT_ALIGN_LEFT, textColor);
// draw property value
props[p].value.vselect.active = GuiComboBox((Rectangle){propBounds.x+propBounds.width/2, propBounds.y + 1, propBounds.width/2, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) - 2},
props[p].value.vselect.val, props[p].value.vselect.active);
GuiComboBox((Rectangle){propBounds.x+propBounds.width/2, propBounds.y + 1, propBounds.width/2, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) - 2},
props[p].value.vselect.val, &props[p].value.vselect.active);
} break;
case GUI_PROP_VECTOR2: case GUI_PROP_VECTOR3: case GUI_PROP_VECTOR4: {
@ -607,7 +608,7 @@ void GuiDMPropertyList(Rectangle bounds, GuiDMProperty* props, int count, int* f
// draw X, Y, Z, W values (only when expanded)
if(!PROP_CHECK_FLAG(&props[p], GUI_PFLAG_COLLAPSED)) {
Rectangle slotBounds = { propBounds.x, propBounds.y+GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)+1, propBounds.width, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)-2};
Rectangle lblBounds = { propBounds.x+PROPERTY_PADDING, slotBounds.y, GetTextWidth("A"), slotBounds.height};
Rectangle lblBounds = { propBounds.x+PROPERTY_PADDING, slotBounds.y, GuiGetTextWidth("A"), slotBounds.height};
Rectangle valBounds = { lblBounds.x+lblBounds.width+PROPERTY_PADDING, slotBounds.y, propBounds.width-lblBounds.width-2*PROPERTY_PADDING, slotBounds.height};
GuiDrawText("X", lblBounds, TEXT_ALIGN_LEFT, textColor);
props[p].value.v2.x = GuiDMSpinner(valBounds, props[p].value.v2.x, 0.0, 0.0, 1.0, PROPERTY_DECIMAL_DIGITS, (propState == STATE_FOCUSED) && CheckCollisionPointRec(mousePos, slotBounds) );
@ -646,7 +647,7 @@ void GuiDMPropertyList(Rectangle bounds, GuiDMProperty* props, int count, int* f
// draw X, Y, Width, Height values (only when expanded)
if(!PROP_CHECK_FLAG(&props[p], GUI_PFLAG_COLLAPSED)) {
Rectangle slotBounds = { propBounds.x, propBounds.y+GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)+1, propBounds.width, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)-2};
Rectangle lblBounds = { propBounds.x+PROPERTY_PADDING, slotBounds.y, GetTextWidth("Height"), slotBounds.height};
Rectangle lblBounds = { propBounds.x+PROPERTY_PADDING, slotBounds.y, GuiGetTextWidth("Height"), slotBounds.height};
Rectangle valBounds = { lblBounds.x+lblBounds.width+PROPERTY_PADDING, slotBounds.y, propBounds.width-lblBounds.width-2*PROPERTY_PADDING, slotBounds.height};
GuiDrawText("X", lblBounds, TEXT_ALIGN_LEFT, textColor);
props[p].value.vrect.x = GuiDMSpinner(valBounds, props[p].value.vrect.x, 0.0, 0.0, 1.0, 0, (propState == STATE_FOCUSED) && CheckCollisionPointRec(mousePos, slotBounds) );
@ -684,8 +685,8 @@ void GuiDMPropertyList(Rectangle bounds, GuiDMProperty* props, int count, int* f
// draw R, G, B, A values (only when expanded)
if(!PROP_CHECK_FLAG(&props[p], GUI_PFLAG_COLLAPSED)) {
Rectangle slotBounds = { propBounds.x, propBounds.y+GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)+1, propBounds.width, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)-2};
Rectangle lblBounds = { propBounds.x+PROPERTY_PADDING, slotBounds.y, GetTextWidth("A"), slotBounds.height};
Rectangle valBounds = { lblBounds.x+lblBounds.width+PROPERTY_PADDING, slotBounds.y, GetTextWidth("000000"), slotBounds.height};
Rectangle lblBounds = { propBounds.x+PROPERTY_PADDING, slotBounds.y, GuiGetTextWidth("A"), slotBounds.height};
Rectangle valBounds = { lblBounds.x+lblBounds.width+PROPERTY_PADDING, slotBounds.y, GuiGetTextWidth("000000"), slotBounds.height};
Rectangle sbarBounds = { valBounds.x + valBounds.width + PROPERTY_PADDING, slotBounds.y, slotBounds.width - 3*PROPERTY_PADDING - lblBounds.width - valBounds.width, slotBounds.height };
if(sbarBounds.width <= GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)-2) valBounds.width = propBounds.width-lblBounds.width-2*PROPERTY_PADDING; // hide slider when no space
@ -864,4 +865,4 @@ bool GuiDMSaveProperties(const char* file, GuiDMProperty* props, int count) {
return true;
}
#endif // GUI_PROPERTY_LIST_IMPLEMENTATION
#endif // GUI_PROPERTY_LIST_IMPLEMENTATION

View File

@ -11,7 +11,7 @@
*
* LICENSE: zlib/libpng
*
* Copyright (c) 2020-2023 Vlad Adrian (@Demizdor) and Ramon Santamaria (@raysan5)
* Copyright (c) 2020-2024 Vlad Adrian (@Demizdor) and Ramon Santamaria (@raysan5)
*
**********************************************************************************************/
@ -61,6 +61,8 @@ int main()
// Tweak the default raygui style a bit
GuiSetStyle(LISTVIEW, LIST_ITEMS_HEIGHT, 24);
GuiSetStyle(LISTVIEW, SCROLLBAR_WIDTH, 12);
Vector2 gridMouseCell = { 0 };
SetTargetFPS(60);
//--------------------------------------------------------------------------------------
@ -74,7 +76,7 @@ int main()
ClearBackground(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)));
GuiGrid((Rectangle){0, 0, screenWidth, screenHeight}, "Property List", 20.0f, 2); // Draw a fancy grid
GuiGrid((Rectangle){0, 0, screenWidth, screenHeight}, "Property List", 20.0f, 2, &gridMouseCell); // Draw a fancy grid
GuiDMPropertyList((Rectangle){(screenWidth - 180)/2, (screenHeight - 280)/2, 180, 280}, prop, SIZEOF(prop), &focus, &scroll);

BIN
examples/raygui.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

27
examples/raygui.rc Normal file
View File

@ -0,0 +1,27 @@
GLFW_ICON ICON "raygui.ico"
1 VERSIONINFO
FILEVERSION 4,0,0,0
PRODUCTVERSION 4,0,0,0
BEGIN
BLOCK "StringFileInfo"
BEGIN
//BLOCK "080904E4" // English UK
BLOCK "040904E4" // English US
BEGIN
//VALUE "CompanyName", "raylib technologies"
VALUE "FileDescription", "raygui application (www.raylib.com)"
VALUE "FileVersion", "4.0.0"
VALUE "InternalName", "raygui app"
VALUE "LegalCopyright", "(c) 2023 Ramon Santamaria (@raysan5)"
//VALUE "OriginalFilename", "raygui_app.exe"
VALUE "ProductName", "raygui app"
VALUE "ProductVersion", "4.0.0"
END
END
BLOCK "VarFileInfo"
BEGIN
//VALUE "Translation", 0x809, 1252 // English UK
VALUE "Translation", 0x409, 1252 // English US
END
END

View File

@ -17,7 +17,7 @@
*
* LICENSE: zlib/libpng
*
* Copyright (c) 2019-2023 Vlad Adrian (@Demizdor) and Ramon Santamaria (@raysan5)
* Copyright (c) 2019-2024 Vlad Adrian (@Demizdor) and Ramon Santamaria (@raysan5)
*
**********************************************************************************************/
@ -43,6 +43,7 @@ int main()
Rectangle panelRec = { 20, 40, 200, 150 };
Rectangle panelContentRec = {0, 0, 340, 340 };
Rectangle panelView = { 0 };
Vector2 panelScroll = { 99, -20 };
bool showContentArea = true;
@ -66,20 +67,20 @@ int main()
DrawText(TextFormat("[%f, %f]", panelScroll.x, panelScroll.y), 4, 4, 20, RED);
Rectangle view = GuiScrollPanel(panelRec, NULL, panelContentRec, &panelScroll);
GuiScrollPanel(panelRec, NULL, panelContentRec, &panelScroll, &panelView);
BeginScissorMode(view.x, view.y, view.width, view.height);
GuiGrid((Rectangle){panelRec.x + panelScroll.x, panelRec.y + panelScroll.y, panelContentRec.width, panelContentRec.height}, NULL, 16, 3);
BeginScissorMode(panelView.x, panelView.y, panelView.width, panelView.height);
GuiGrid((Rectangle){panelRec.x + panelScroll.x, panelRec.y + panelScroll.y, panelContentRec.width, panelContentRec.height}, NULL, 16, 3, NULL);
EndScissorMode();
if (showContentArea) DrawRectangle(panelRec.x + panelScroll.x, panelRec.y + panelScroll.y, panelContentRec.width, panelContentRec.height, Fade(RED, 0.1));
DrawStyleEditControls();
showContentArea = GuiCheckBox((Rectangle){ 565, 80, 20, 20 }, "SHOW CONTENT AREA", showContentArea);
GuiCheckBox((Rectangle){ 565, 80, 20, 20 }, "SHOW CONTENT AREA", &showContentArea);
panelContentRec.width = GuiSliderBar((Rectangle){ 590, 385, 145, 15}, "WIDTH", TextFormat("%i", (int)panelContentRec.width), panelContentRec.width, 1, 600);
panelContentRec.height = GuiSliderBar((Rectangle){ 590, 410, 145, 15 }, "HEIGHT", TextFormat("%i", (int)panelContentRec.height), panelContentRec.height, 1, 400);
GuiSliderBar((Rectangle){ 590, 385, 145, 15}, "WIDTH", TextFormat("%i", (int)panelContentRec.width), &panelContentRec.width, 1, 600);
GuiSliderBar((Rectangle){ 590, 410, 145, 15 }, "HEIGHT", TextFormat("%i", (int)panelContentRec.height), &panelContentRec.height, 1, 400);
EndDrawing();
//----------------------------------------------------------------------------------
@ -115,8 +116,9 @@ static void DrawStyleEditControls(void)
GuiSpinner((Rectangle){ 670, 240, 90, 20 }, NULL, &style, 0, 14, false);
GuiSetStyle(SCROLLBAR, SLIDER_PADDING, style);
style = GuiCheckBox((Rectangle){ 565, 280, 20, 20 }, "ARROWS_VISIBLE", GuiGetStyle(SCROLLBAR, ARROWS_VISIBLE));
GuiSetStyle(SCROLLBAR, ARROWS_VISIBLE, style);
bool scrollBarArrows = GuiGetStyle(SCROLLBAR, ARROWS_VISIBLE);
GuiCheckBox((Rectangle){ 565, 280, 20, 20 }, "ARROWS_VISIBLE", &scrollBarArrows);
GuiSetStyle(SCROLLBAR, ARROWS_VISIBLE, scrollBarArrows);
style = GuiGetStyle(SCROLLBAR, SLIDER_PADDING);
GuiLabel((Rectangle){ 555, 325, 110, 10 }, "SLIDER_PADDING");
@ -129,8 +131,9 @@ static void DrawStyleEditControls(void)
GuiSetStyle(SCROLLBAR, SLIDER_WIDTH, style);
const char *text = GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE? "SCROLLBAR: LEFT" : "SCROLLBAR: RIGHT";
style = GuiToggle((Rectangle){ 560, 110, 200, 35 }, text, GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE));
GuiSetStyle(LISTVIEW, SCROLLBAR_SIDE, style);
bool toggleScrollBarSide = GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE);
GuiToggle((Rectangle){ 560, 110, 200, 35 }, text, &toggleScrollBarSide);
GuiSetStyle(LISTVIEW, SCROLLBAR_SIDE, toggleScrollBarSide);
//----------------------------------------------------------
// ScrollBar style controls

View File

@ -11,7 +11,7 @@
*
* LICENSE: zlib/libpng
*
* Copyright (c) 2016-2023 Ramon Santamaria (@raysan5)
* Copyright (c) 2016-2024 Ramon Santamaria (@raysan5)
*
**********************************************************************************************/
@ -23,12 +23,19 @@
#include "../../src/raygui.h"
// raygui embedded styles
#include "styles/style_cyber.h" // raygui style: cyber
#include "styles/style_jungle.h" // raygui style: jungle
#include "styles/style_lavanda.h" // raygui style: lavanda
#include "styles/style_dark.h" // raygui style: dark
#include "styles/style_bluish.h" // raygui style: bluish
#include "styles/style_terminal.h" // raygui style: terminal
// NOTE: Included in the same order as selector
#define MAX_GUI_STYLES_AVAILABLE 12 // NOTE: Included light style
#include "../styles/style_jungle.h" // raygui style: jungle
#include "../styles/style_candy.h" // raygui style: candy
#include "../styles/style_lavanda.h" // raygui style: lavanda
#include "../styles/style_cyber.h" // raygui style: cyber
#include "../styles/style_terminal.h" // raygui style: terminal
#include "../styles/style_ashes.h" // raygui style: ashes
#include "../styles/style_bluish.h" // raygui style: bluish
#include "../styles/style_dark.h" // raygui style: dark
#include "../styles/style_cherry.h" // raygui style: cherry
#include "../styles/style_sunny.h" // raygui style: sunny
#include "../styles/style_enefete.h" // raygui style: enefete
#include <string.h> // Required for: strcpy()
@ -39,10 +46,10 @@ int main()
{
// Initialization
//---------------------------------------------------------------------------------------
const int screenWidth = 690;
const int screenHeight = 560;
const int screenWidth = 800;
const int screenHeight = 480;
InitWindow(screenWidth, screenHeight, "raygui - controls test suite");
InitWindow(screenWidth, screenHeight, "raygui - styles selector");
SetExitKey(0);
// Custom GUI font loading
@ -52,11 +59,6 @@ int main()
bool exitWindow = false;
bool showMessageBox = false;
char textInput[256] = { 0 };
bool showTextInputBox = false;
char textInputFileName[256] = { 0 };
// Load default style
GuiLoadStyleBluish();
int visualStyleActive = 4;
@ -74,8 +76,6 @@ int main()
if (IsKeyPressed(KEY_ESCAPE)) showMessageBox = !showMessageBox;
if (IsKeyDown(KEY_LEFT_CONTROL) && IsKeyPressed(KEY_S)) showTextInputBox = true;
if (IsFileDropped())
{
FilePathList droppedFiles = LoadDroppedFiles();
@ -87,22 +87,26 @@ int main()
if (visualStyleActive != prevVisualStyleActive)
{
// Reset to default internal style
// NOTE: Required to unload any previously loaded font texture
GuiLoadStyleDefault();
switch (visualStyleActive)
{
case 0: break; // Default style
case 1: GuiLoadStyleJungle(); break;
case 2: GuiLoadStyleLavanda(); break;
case 3: GuiLoadStyleDark(); break;
case 4: GuiLoadStyleBluish(); break;
case 5: GuiLoadStyleCyber(); break;
case 6: GuiLoadStyleTerminal(); break;
case 2: GuiLoadStyleCandy(); break;
case 3: GuiLoadStyleLavanda(); break;
case 4: GuiLoadStyleCyber(); break;
case 5: GuiLoadStyleTerminal(); break;
case 6: GuiLoadStyleAshes(); break;
case 7: GuiLoadStyleBluish(); break;
case 8: GuiLoadStyleDark(); break;
case 9: GuiLoadStyleCherry(); break;
case 10: GuiLoadStyleSunny(); break;
case 11: GuiLoadStyleEnefete(); break;
default: break;
}
GuiSetStyle(LABEL, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT);
prevVisualStyleActive = visualStyleActive;
}
//----------------------------------------------------------------------------------
@ -115,12 +119,17 @@ int main()
// Visuals options
GuiLabel((Rectangle){ 10, 10, 60, 24 }, "Style:");
visualStyleActive = GuiComboBox((Rectangle){ 60,10, 120, 24 }, "default;Jungle;Lavanda;Dark;Bluish;Cyber;Terminal", visualStyleActive);
GuiComboBox((Rectangle){ 60,10, 120, 24 }, "default;Jungle;Candy;Lavanda;Cyber;Terminal;Ashes;Bluish;Dark;Cherry;Sunny;Enefete", &visualStyleActive);
GuiSetIconScale(2);
GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_RIGHT);
GuiButton((Rectangle){ 25, 255, 300, 30 }, GuiIconText(ICON_FILE_SAVE, "Save File"));
GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER);
DrawRectangle(10, 44, GuiGetFont().texture.width, GuiGetFont().texture.height, BLACK);
DrawTexture(GuiGetFont().texture, 10, 44, WHITE);
DrawRectangleLines(10, 44, GuiGetFont().texture.width, GuiGetFont().texture.height,
GetColor(GuiGetStyle(DEFAULT, LINE_COLOR)));
//GuiSetIconScale(2);
//GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_RIGHT);
//GuiButton((Rectangle){ 25, 255, 300, 30 }, GuiIconText(ICON_FILE_SAVE, "Save File"));
//GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER);
//----------------------------------------------------------------------------------
EndDrawing();

View File

@ -1,354 +0,0 @@
//////////////////////////////////////////////////////////////////////////////////
// //
// StyleAsCode exporter v1.2 - Style data exported as a values array //
// //
// USAGE: On init call: GuiLoadStyleBluish(); //
// //
// more info and bugs-report: github.com/raysan5/raygui //
// feedback and support: ray[at]raylibtech.com //
// //
// Copyright (c) 2020-2023 raylib technologies (@raylibtech) //
// //
//////////////////////////////////////////////////////////////////////////////////
#define BLUISH_STYLE_PROPS_COUNT 14
// Custom style name: bluish
static const GuiStyleProp bluishStyleProps[BLUISH_STYLE_PROPS_COUNT] = {
{ 0, 0, 0x5ca6a6ff }, // DEFAULT_BORDER_COLOR_NORMAL
{ 0, 1, 0xb4e8f3ff }, // DEFAULT_BASE_COLOR_NORMAL
{ 0, 2, 0x447e77ff }, // DEFAULT_TEXT_COLOR_NORMAL
{ 0, 3, 0x5f8792ff }, // DEFAULT_BORDER_COLOR_FOCUSED
{ 0, 4, 0xcdeff7ff }, // DEFAULT_BASE_COLOR_FOCUSED
{ 0, 5, 0x4c6c74ff }, // DEFAULT_TEXT_COLOR_FOCUSED
{ 0, 6, 0x3b5b5fff }, // DEFAULT_BORDER_COLOR_PRESSED
{ 0, 7, 0xeaffffff }, // DEFAULT_BASE_COLOR_PRESSED
{ 0, 8, 0x275057ff }, // DEFAULT_TEXT_COLOR_PRESSED
{ 0, 9, 0x96aaacff }, // DEFAULT_BORDER_COLOR_DISABLED
{ 0, 10, 0xc8d7d9ff }, // DEFAULT_BASE_COLOR_DISABLED
{ 0, 11, 0x8c9c9eff }, // DEFAULT_TEXT_COLOR_DISABLED
{ 0, 18, 0x84adb7ff }, // DEFAULT_LINE_COLOR
{ 0, 19, 0xe8eef1ff }, // DEFAULT_BACKGROUND_COLOR
};
// WARNING: This style uses a custom font: (size: 10, spacing: 1)
#define BLUISH_COMPRESSED_DATA_SIZE 1423
// Font image pixels data compressed (DEFLATE)
// NOTE: Original pixel data simplified to GRAYSCALE
static unsigned char bluishFontData[BLUISH_COMPRESSED_DATA_SIZE] = { 0xed,
0xdd, 0xd1, 0x72, 0x9b, 0x3a, 0x10, 0x00, 0x50, 0xc4, 0xff, 0x7f, 0x72, 0x41, 0x77, 0x1a, 0x3b, 0x99, 0xb9, 0x2d, 0x2b,
0x58, 0x21, 0x08, 0x6d, 0x4f, 0xcf, 0xb4, 0x0f, 0x91, 0x51, 0x24, 0x2d, 0xe0, 0x34, 0x5a, 0x2f, 0x75, 0x02, 0x00, 0xf8,
0xcd, 0x1c, 0x7c, 0x6d, 0x0e, 0x5f, 0x3d, 0x27, 0x7a, 0x7a, 0x7d, 0x7d, 0x6e, 0xb4, 0xe7, 0x7a, 0x9b, 0x13, 0x3d, 0xb4,
0x5a, 0xda, 0x6d, 0xbf, 0x2a, 0x6f, 0x23, 0x56, 0x76, 0xfe, 0x5a, 0x8f, 0xed, 0x55, 0xca, 0xbc, 0x7e, 0x4e, 0xcd, 0x62,
0x5b, 0x0d, 0xbe, 0xb6, 0x6e, 0xce, 0xb7, 0xd6, 0x12, 0xb4, 0xcc, 0xb5, 0x06, 0xe3, 0xa9, 0x1f, 0x47, 0x6d, 0xf7, 0xd8,
0x3a, 0x6a, 0xeb, 0x7b, 0x2c, 0x1b, 0x7d, 0x2c, 0xe1, 0x59, 0xf1, 0xf3, 0x3b, 0x46, 0x2b, 0xb4, 0x06, 0xf1, 0xac, 0x9b,
0xaf, 0x7d, 0x29, 0x87, 0x5e, 0xdd, 0xfa, 0x0e, 0xb5, 0x2e, 0x75, 0x79, 0xaf, 0xc7, 0xaf, 0xb3, 0xa8, 0xa9, 0xd7, 0xc7,
0x2d, 0xe7, 0xe3, 0xbf, 0x7e, 0x8c, 0xa7, 0x6c, 0x5c, 0x07, 0x3f, 0xa3, 0xb5, 0x06, 0xf1, 0x8a, 0xc6, 0xf3, 0x5a, 0xb9,
0xb2, 0xd9, 0x63, 0xeb, 0xa8, 0xe9, 0xf0, 0x6a, 0x6f, 0x1f, 0xff, 0x1a, 0xe9, 0xf6, 0x3c, 0xca, 0x47, 0xdb, 0xd6, 0xda,
0x2d, 0x83, 0xee, 0xab, 0xd1, 0x7c, 0xa7, 0xe6, 0xb5, 0xb5, 0xbd, 0x0a, 0x6b, 0xaa, 0xe5, 0x7c, 0xfc, 0xe3, 0x33, 0xba,
0xbe, 0xff, 0x46, 0x33, 0x5b, 0x82, 0xf1, 0x94, 0xa0, 0xa5, 0x7d, 0xd4, 0x99, 0xf8, 0x97, 0xf7, 0x48, 0xe7, 0xe0, 0x7a,
0xae, 0xc1, 0x15, 0x7d, 0x65, 0xf4, 0xf3, 0xf1, 0x2f, 0xef, 0x73, 0xb5, 0x04, 0xef, 0x4a, 0xf7, 0xc6, 0xbf, 0xbc, 0xef,
0xff, 0x73, 0x30, 0xfa, 0x12, 0x46, 0x3f, 0xbe, 0xdb, 0x66, 0xde, 0x57, 0x73, 0xd7, 0xff, 0x6b, 0x9d, 0xa3, 0x73, 0xeb,
0xba, 0xd8, 0xb7, 0xe7, 0x9b, 0x8b, 0x7f, 0x0d, 0xdf, 0x79, 0x3e, 0xcf, 0xe2, 0xb3, 0xb3, 0x58, 0x07, 0x5d, 0xff, 0x6b,
0x38, 0x9e, 0xf2, 0xbe, 0xff, 0x6f, 0xcf, 0x39, 0x73, 0x15, 0x66, 0xe2, 0xbf, 0x17, 0xe3, 0x2b, 0xaf, 0xfd, 0xb8, 0xef,
0x7c, 0xfc, 0x5f, 0x3d, 0x6e, 0x7d, 0x97, 0xab, 0xcf, 0xe2, 0x29, 0xf5, 0xf3, 0x5f, 0x69, 0xfc, 0xcc, 0xf3, 0x79, 0xee,
0x64, 0xe6, 0x37, 0x2a, 0xce, 0xf7, 0xab, 0xbb, 0x33, 0xc8, 0xc4, 0xbf, 0x84, 0xab, 0x5a, 0x6e, 0x7f, 0xff, 0x6f, 0xc5,
0xbf, 0x35, 0xd2, 0x56, 0xfc, 0x73, 0xb3, 0xa8, 0xc9, 0x9f, 0xc1, 0x9f, 0x17, 0xff, 0xfa, 0xf5, 0xff, 0xa1, 0x63, 0x73,
0x8b, 0x5e, 0xdf, 0xea, 0xe9, 0x7b, 0x66, 0xdd, 0x33, 0x9e, 0xa7, 0xcd, 0x82, 0x33, 0x7e, 0x74, 0xc4, 0xf1, 0x87, 0xd8,
0x03, 0x00, 0x00, 0x00, 0x0c, 0xcb, 0xf2, 0x19, 0x95, 0x61, 0x32, 0xba, 0xe5, 0x5c, 0x56, 0x50, 0x9c, 0x9d, 0xd3, 0xca,
0x48, 0x6a, 0x8f, 0xf2, 0xae, 0xf5, 0x98, 0x6e, 0xca, 0xf9, 0xa9, 0x1d, 0x19, 0x29, 0x77, 0xb5, 0x2c, 0x87, 0xb3, 0x30,
0xb6, 0x77, 0x73, 0xe3, 0xec, 0x9c, 0x35, 0x58, 0xab, 0xbd, 0x51, 0xde, 0xb7, 0x1e, 0x73, 0xc7, 0xe8, 0x7a, 0x7e, 0x5b,
0x5e, 0x77, 0x76, 0xe7, 0x96, 0x54, 0xcb, 0xba, 0xbb, 0xd7, 0x97, 0xcb, 0x7c, 0x39, 0xb7, 0xaf, 0xda, 0xca, 0xce, 0x8b,
0xf2, 0x3f, 0x5a, 0xa3, 0x8c, 0xf2, 0x2a, 0x6a, 0xf7, 0xac, 0x97, 0xa1, 0xc7, 0x2c, 0x5d, 0xf1, 0x8f, 0x67, 0x15, 0xef,
0xcd, 0xb7, 0xb3, 0x1e, 0xe3, 0xde, 0x72, 0x2d, 0xc7, 0xb3, 0x0f, 0xa2, 0x18, 0xc7, 0x39, 0x12, 0xd9, 0xdc, 0x99, 0xda,
0xc8, 0xab, 0xd8, 0x9b, 0xdb, 0x92, 0xda, 0x9b, 0xac, 0x3b, 0x6b, 0x78, 0x3e, 0x5b, 0xe6, 0x58, 0x76, 0xc6, 0xda, 0x98,
0x6f, 0x3b, 0xc3, 0x64, 0x4d, 0x1d, 0xb3, 0x0e, 0xc8, 0x57, 0xc9, 0x9e, 0x3d, 0xad, 0x3c, 0x9c, 0xb5, 0x11, 0xff, 0x39,
0x39, 0xb7, 0x57, 0xcb, 0x9c, 0xda, 0x0b, 0xae, 0x3b, 0x6b, 0x78, 0x3e, 0x5b, 0xe6, 0xd8, 0xfa, 0x95, 0xee, 0x3b, 0xf6,
0xa8, 0x63, 0xae, 0x3b, 0x03, 0x6a, 0xba, 0x9f, 0xfa, 0x75, 0xa6, 0x8e, 0xbc, 0xff, 0x97, 0x8e, 0x77, 0xe4, 0x72, 0x3a,
0x57, 0xe3, 0xf8, 0x1d, 0xbb, 0x2f, 0xc3, 0x64, 0xd4, 0x31, 0xcf, 0xca, 0xdd, 0x28, 0x9d, 0x77, 0xec, 0x7b, 0x5a, 0xae,
0x88, 0x7f, 0x6f, 0x86, 0xc9, 0x3a, 0xec, 0x98, 0xe9, 0xf6, 0x9c, 0x9e, 0x1a, 0x5e, 0xff, 0xad, 0xf5, 0x18, 0xb9, 0x86,
0xad, 0x3c, 0xa0, 0xf6, 0x08, 0xfe, 0x05, 0x8b, 0xdf, 0xd9, 0x00, 0x00, 0x00, 0x00, 0x40, 0x22, 0xff, 0xa7, 0x9d, 0x7d,
0x93, 0xcb, 0x50, 0x69, 0x67, 0xed, 0x64, 0x6b, 0xf4, 0xcc, 0xb7, 0x67, 0xdd, 0x8c, 0x6e, 0xe9, 0x59, 0x8b, 0xbd, 0x96,
0xdc, 0x91, 0xfb, 0xbf, 0xef, 0x8e, 0x73, 0x4a, 0xa2, 0xdf, 0x6a, 0x2f, 0x1f, 0x47, 0x8d, 0xd9, 0xfd, 0xab, 0xbb, 0x23,
0x7b, 0xfd, 0x3b, 0x3f, 0x30, 0x3f, 0xa9, 0x95, 0xb9, 0xf4, 0x39, 0xf2, 0x91, 0xbb, 0x85, 0xaf, 0x96, 0x65, 0x73, 0x2d,
0x7a, 0xf7, 0xd0, 0x7a, 0xf2, 0x50, 0xda, 0xbb, 0x61, 0xe3, 0xe2, 0xdf, 0x3b, 0xe7, 0x7b, 0x5b, 0xb2, 0x75, 0x44, 0x9e,
0x17, 0xff, 0x56, 0x96, 0xcf, 0xa8, 0xf8, 0x9f, 0xcb, 0x83, 0x19, 0x17, 0xff, 0x9e, 0x1c, 0xae, 0x78, 0xec, 0xad, 0x3c,
0xa8, 0x3b, 0xe3, 0x1f, 0xd7, 0xd1, 0x3a, 0x12, 0xff, 0x7c, 0x96, 0x4f, 0x3e, 0xfe, 0xe7, 0xf2, 0x60, 0xc6, 0xc5, 0xbf,
0x27, 0x87, 0x63, 0x6d, 0x54, 0x8b, 0x5a, 0xd3, 0xb5, 0x47, 0xea, 0x4e, 0x8e, 0xe1, 0xd2, 0x11, 0xff, 0x12, 0x8e, 0xf1,
0x6c, 0xfe, 0x67, 0xe6, 0xfa, 0x2f, 0x97, 0xe5, 0xc1, 0x8c, 0xbd, 0xff, 0x8f, 0x5a, 0x87, 0xb2, 0x93, 0x7d, 0x58, 0x3a,
0xb2, 0x45, 0xd6, 0xc1, 0x6b, 0x71, 0x2c, 0xdf, 0x61, 0x4c, 0xfc, 0x7b, 0xfa, 0x3a, 0x76, 0x4c, 0x36, 0xfe, 0xa5, 0x23,
0xfe, 0x23, 0xc7, 0xde, 0x8e, 0x7f, 0x69, 0x64, 0x8b, 0xec, 0x1f, 0x33, 0x3a, 0xfe, 0xbd, 0x59, 0x2d, 0x65, 0x60, 0x5f,
0x75, 0x70, 0xfc, 0xf3, 0x79, 0x32, 0x63, 0xc7, 0xde, 0x8e, 0x7f, 0xff, 0xe8, 0x5e, 0x7f, 0xe6, 0x0b, 0x72, 0xe8, 0x51,
0x71, 0x06, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x7f, 0xa6, 0xc6, 0x13, 0xa9, 0xda, 0x59, 0x46, 0xc7, 0xb3, 0x85, 0x3e, 0x33,
0x28, 0xb6, 0xf3, 0x27, 0xc6, 0x54, 0xfa, 0xd9, 0x7f, 0x76, 0x57, 0xf6, 0xfb, 0x44, 0xab, 0xd5, 0x33, 0xb6, 0xab, 0x9f,
0x71, 0x76, 0x2c, 0xcb, 0xa7, 0x95, 0xf7, 0x92, 0xfb, 0x0c, 0x6a, 0x54, 0x9b, 0x66, 0x0e, 0x2a, 0xdd, 0x64, 0x3f, 0xbb,
0xdf, 0xaa, 0x55, 0x11, 0xf7, 0x33, 0xb2, 0x8a, 0x45, 0x0d, 0xcf, 0xd7, 0xda, 0x31, 0xb6, 0x25, 0xf8, 0x6a, 0xd4, 0xc7,
0xdc, 0xfd, 0x49, 0xe9, 0xfe, 0x5a, 0x0e, 0x47, 0x6b, 0x2a, 0xc5, 0x3b, 0x86, 0xaf, 0xbd, 0xee, 0xec, 0x19, 0xb0, 0x86,
0xd7, 0xd8, 0xf6, 0x58, 0xe7, 0x30, 0xbf, 0x65, 0x0a, 0x9f, 0x66, 0x96, 0xaf, 0x55, 0x53, 0x83, 0xa7, 0x86, 0xb5, 0xf7,
0x8f, 0xa2, 0xb1, 0x45, 0x4f, 0x4b, 0x9a, 0x82, 0x3e, 0x96, 0xee, 0xcf, 0x84, 0xd7, 0x9d, 0xe7, 0x48, 0x65, 0x7a, 0x6e,
0x9d, 0x01, 0xad, 0x27, 0xb9, 0x2d, 0x03, 0x9e, 0x55, 0x92, 0xaf, 0x55, 0xd3, 0xca, 0x3c, 0x68, 0xf7, 0x96, 0xad, 0xcd,
0x12, 0x9f, 0x33, 0xb9, 0x3b, 0xc3, 0xa8, 0x0a, 0x33, 0xc7, 0xee, 0x9c, 0xa5, 0x31, 0xa3, 0x29, 0x7d, 0x06, 0x5c, 0xfb,
0x24, 0x8f, 0xeb, 0x32, 0x0f, 0x8e, 0xce, 0x62, 0xf4, 0xce, 0xf2, 0xf1, 0xf8, 0x4f, 0xa7, 0x6a, 0x82, 0x94, 0xee, 0x5c,
0x99, 0xdc, 0x19, 0x70, 0x75, 0xfc, 0xaf, 0xca, 0x3c, 0x18, 0x55, 0x81, 0x63, 0x7d, 0x68, 0xfc, 0xf7, 0xaa, 0xcd, 0xe4,
0x63, 0x99, 0xcf, 0x18, 0x9d, 0xbe, 0xe5, 0xce, 0x30, 0xfa, 0x98, 0x29, 0xfd, 0x3f, 0x99, 0x67, 0xc4, 0xbf, 0xaf, 0x42,
0x4d, 0x49, 0xd7, 0x12, 0xfa, 0xae, 0xf8, 0xe7, 0x9f, 0x23, 0xd5, 0x77, 0xcc, 0xf8, 0xdc, 0xcb, 0x3b, 0xe2, 0xcf, 0x9f,
0x53, 0xf9, 0x68, 0x91, 0x9f, 0x04, 0x00, 0x00, 0x00, 0x40, 0x52, 0xf9, 0x9f, 0x4c, 0xf6, 0xca, 0xf7, 0xb7, 0xcc, 0x3b,
0xbb, 0x5a, 0xa5, 0xbb, 0xa5, 0x0c, 0xeb, 0xb3, 0x95, 0x63, 0x74, 0xf6, 0x99, 0x67, 0x9f, 0x7d, 0x97, 0x01, 0x3b, 0xe7,
0xaf, 0x7f, 0xe7, 0x41, 0x3b, 0xeb, 0xe3, 0x5b, 0xae, 0xff, 0x34, 0xff, 0x15, 0xf5, 0x06, 0x5a, 0x15, 0x22, 0xe6, 0xc3,
0xb9, 0x15, 0x4b, 0xb8, 0xa7, 0xba, 0x36, 0x6a, 0x06, 0xe4, 0xf7, 0x20, 0xbe, 0xbf, 0xca, 0xce, 0x92, 0x7c, 0x0e, 0xd5,
0x7c, 0x63, 0x8d, 0x8d, 0x75, 0x27, 0x1f, 0x26, 0x97, 0x43, 0x13, 0xd7, 0x50, 0x98, 0x52, 0xaf, 0x8d, 0x9e, 0x49, 0xf4,
0x67, 0xc6, 0x7f, 0x4a, 0xe6, 0xf6, 0xad, 0x07, 0xea, 0x65, 0x8c, 0xaa, 0xb1, 0x51, 0x3a, 0x32, 0x7c, 0x4a, 0xe3, 0xf9,
0x63, 0xb9, 0xf8, 0x47, 0x4f, 0xab, 0x5b, 0x4f, 0x3e, 0xf9, 0xe9, 0x9a, 0x2a, 0x1b, 0xe3, 0x9f, 0x60, 0x33, 0xae, 0x9a,
0xc7, 0xf8, 0x1a, 0x1b, 0xad, 0x9d, 0xf2, 0x38, 0xaf, 0x32, 0x17, 0xff, 0xab, 0x6a, 0x3b, 0x5c, 0x53, 0x65, 0xa3, 0xb7,
0x42, 0x48, 0x4f, 0x6e, 0x4f, 0x79, 0x48, 0x8d, 0x8d, 0x6c, 0x85, 0x90, 0xf3, 0xf7, 0xff, 0xe7, 0xee, 0x54, 0xdf, 0x53,
0x67, 0xa3, 0x27, 0x4f, 0xe7, 0xaa, 0x9d, 0xf9, 0xfc, 0xee, 0x7c, 0x26, 0xb7, 0x52, 0x65, 0x97, 0x51, 0x79, 0x3a, 0x4f,
0xf2, 0x94, 0x67, 0x9e, 0xf1, 0xa4, 0x73, 0xda, 0x1a, 0xfc, 0xdb, 0x59, 0x5e, 0xd6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x2f,
0xf0, 0x1f };
// Font characters rectangles data
static const Rectangle bluishFontRecs[95] = {
{ 4, 4, 5 , 10 },
{ 17, 4, 2 , 8 },
{ 27, 4, 4 , 3 },
{ 39, 4, 6 , 8 },
{ 53, 4, 5 , 10 },
{ 66, 4, 6 , 8 },
{ 80, 4, 5 , 10 },
{ 93, 4, 2 , 3 },
{ 103, 4, 3 , 8 },
{ 114, 4, 3 , 8 },
{ 125, 4, 6 , 6 },
{ 139, 4, 6 , 6 },
{ 153, 4, 2 , 3 },
{ 163, 4, 5 , 2 },
{ 176, 4, 2 , 2 },
{ 186, 4, 6 , 8 },
{ 200, 4, 5 , 8 },
{ 213, 4, 3 , 8 },
{ 224, 4, 5 , 8 },
{ 237, 4, 5 , 8 },
{ 4, 22, 5 , 8 },
{ 17, 22, 5 , 8 },
{ 30, 22, 5 , 8 },
{ 43, 22, 5 , 8 },
{ 56, 22, 5 , 8 },
{ 69, 22, 5 , 8 },
{ 82, 22, 2 , 8 },
{ 92, 22, 2 , 9 },
{ 102, 22, 4 , 6 },
{ 114, 22, 5 , 4 },
{ 127, 22, 4 , 6 },
{ 139, 22, 5 , 8 },
{ 152, 22, 6 , 8 },
{ 166, 22, 5 , 8 },
{ 179, 22, 5 , 8 },
{ 192, 22, 5 , 8 },
{ 205, 22, 5 , 8 },
{ 218, 22, 5 , 8 },
{ 231, 22, 5 , 8 },
{ 4, 40, 5 , 8 },
{ 17, 40, 5 , 8 },
{ 30, 40, 4 , 8 },
{ 42, 40, 5 , 8 },
{ 55, 40, 5 , 8 },
{ 68, 40, 5 , 8 },
{ 81, 40, 8 , 8 },
{ 97, 40, 5 , 8 },
{ 110, 40, 5 , 8 },
{ 123, 40, 5 , 8 },
{ 136, 40, 5 , 9 },
{ 149, 40, 5 , 8 },
{ 162, 40, 5 , 8 },
{ 175, 40, 6 , 8 },
{ 189, 40, 5 , 8 },
{ 202, 40, 5 , 8 },
{ 215, 40, 8 , 8 },
{ 231, 40, 5 , 8 },
{ 4, 58, 5 , 8 },
{ 17, 58, 5 , 8 },
{ 30, 58, 3 , 8 },
{ 41, 58, 6 , 8 },
{ 55, 58, 3 , 8 },
{ 66, 58, 6 , 4 },
{ 80, 58, 5 , 1 },
{ 93, 58, 2 , 3 },
{ 103, 58, 5 , 6 },
{ 116, 58, 5 , 8 },
{ 129, 58, 5 , 6 },
{ 142, 58, 5 , 8 },
{ 155, 58, 5 , 6 },
{ 168, 58, 5 , 8 },
{ 181, 58, 5 , 7 },
{ 194, 58, 5 , 8 },
{ 207, 58, 2 , 8 },
{ 217, 58, 3 , 9 },
{ 228, 58, 5 , 8 },
{ 241, 58, 2 , 8 },
{ 4, 76, 8 , 6 },
{ 20, 76, 5 , 6 },
{ 33, 76, 5 , 6 },
{ 46, 76, 5 , 7 },
{ 59, 76, 5 , 7 },
{ 72, 76, 5 , 6 },
{ 85, 76, 5 , 6 },
{ 98, 76, 5 , 8 },
{ 111, 76, 5 , 6 },
{ 124, 76, 5 , 6 },
{ 137, 76, 8 , 6 },
{ 153, 76, 5 , 6 },
{ 166, 76, 5 , 7 },
{ 179, 76, 5 , 6 },
{ 192, 76, 4 , 8 },
{ 204, 76, 2 , 10 },
{ 214, 76, 4 , 8 },
{ 226, 76, 6 , 4 },
};
// Font characters info data
// NOTE: No chars.image data provided
static const GlyphInfo bluishFontChars[95] = {
{ 32, 0, 9, 5, { 0 }},
{ 33, 0, 1, 2, { 0 }},
{ 34, 0, 1, 4, { 0 }},
{ 35, 0, 1, 6, { 0 }},
{ 36, 0, 0, 5, { 0 }},
{ 37, 0, 1, 6, { 0 }},
{ 38, 0, 0, 5, { 0 }},
{ 39, 0, 1, 2, { 0 }},
{ 40, 0, 1, 3, { 0 }},
{ 41, 0, 1, 3, { 0 }},
{ 42, 0, 1, 6, { 0 }},
{ 43, 0, 2, 6, { 0 }},
{ 44, 0, 7, 2, { 0 }},
{ 45, 0, 4, 5, { 0 }},
{ 46, 0, 7, 2, { 0 }},
{ 47, 0, 1, 6, { 0 }},
{ 48, 0, 1, 5, { 0 }},
{ 49, 0, 1, 3, { 0 }},
{ 50, 0, 1, 5, { 0 }},
{ 51, 0, 1, 5, { 0 }},
{ 52, 0, 1, 5, { 0 }},
{ 53, 0, 1, 5, { 0 }},
{ 54, 0, 1, 5, { 0 }},
{ 55, 0, 1, 5, { 0 }},
{ 56, 0, 1, 5, { 0 }},
{ 57, 0, 1, 5, { 0 }},
{ 58, 0, 1, 2, { 0 }},
{ 59, 0, 1, 2, { 0 }},
{ 60, 0, 2, 4, { 0 }},
{ 61, 0, 3, 5, { 0 }},
{ 62, 0, 2, 4, { 0 }},
{ 63, 0, 1, 5, { 0 }},
{ 64, 0, 1, 6, { 0 }},
{ 65, 0, 1, 5, { 0 }},
{ 66, 0, 1, 5, { 0 }},
{ 67, 0, 1, 5, { 0 }},
{ 68, 0, 1, 5, { 0 }},
{ 69, 0, 1, 5, { 0 }},
{ 70, 0, 1, 5, { 0 }},
{ 71, 0, 1, 5, { 0 }},
{ 72, 0, 1, 5, { 0 }},
{ 73, 0, 1, 4, { 0 }},
{ 74, 0, 1, 5, { 0 }},
{ 75, 0, 1, 5, { 0 }},
{ 76, 0, 1, 5, { 0 }},
{ 77, 0, 1, 8, { 0 }},
{ 78, 0, 1, 5, { 0 }},
{ 79, 0, 1, 5, { 0 }},
{ 80, 0, 1, 5, { 0 }},
{ 81, 0, 1, 5, { 0 }},
{ 82, 0, 1, 5, { 0 }},
{ 83, 0, 1, 5, { 0 }},
{ 84, 0, 1, 6, { 0 }},
{ 85, 0, 1, 5, { 0 }},
{ 86, 0, 1, 5, { 0 }},
{ 87, 0, 1, 8, { 0 }},
{ 88, 0, 1, 5, { 0 }},
{ 89, 0, 1, 5, { 0 }},
{ 90, 0, 1, 5, { 0 }},
{ 91, 0, 1, 3, { 0 }},
{ 92, 0, 1, 6, { 0 }},
{ 93, 0, 1, 3, { 0 }},
{ 94, 0, 1, 6, { 0 }},
{ 95, 0, 9, 5, { 0 }},
{ 96, 0, 1, 2, { 0 }},
{ 97, 0, 3, 5, { 0 }},
{ 98, 0, 1, 5, { 0 }},
{ 99, 0, 3, 5, { 0 }},
{ 100, 0, 1, 5, { 0 }},
{ 101, 0, 3, 5, { 0 }},
{ 102, 0, 1, 5, { 0 }},
{ 103, 0, 3, 5, { 0 }},
{ 104, 0, 1, 5, { 0 }},
{ 105, 0, 1, 2, { 0 }},
{ 106, 0, 1, 3, { 0 }},
{ 107, 0, 1, 5, { 0 }},
{ 108, 0, 1, 2, { 0 }},
{ 109, 0, 3, 8, { 0 }},
{ 110, 0, 3, 5, { 0 }},
{ 111, 0, 3, 5, { 0 }},
{ 112, 0, 3, 5, { 0 }},
{ 113, 0, 3, 5, { 0 }},
{ 114, 0, 3, 5, { 0 }},
{ 115, 0, 3, 5, { 0 }},
{ 116, 0, 1, 5, { 0 }},
{ 117, 0, 3, 5, { 0 }},
{ 118, 0, 3, 5, { 0 }},
{ 119, 0, 3, 8, { 0 }},
{ 120, 0, 3, 5, { 0 }},
{ 121, 0, 3, 5, { 0 }},
{ 122, 0, 3, 5, { 0 }},
{ 123, 0, 1, 4, { 0 }},
{ 124, 0, 0, 2, { 0 }},
{ 125, 0, 1, 4, { 0 }},
{ 126, 0, 3, 6, { 0 }},
};
// Style loading function: bluish
static void GuiLoadStyleBluish(void)
{
// Load style properties provided
// NOTE: Default properties are propagated
for (int i = 0; i < BLUISH_STYLE_PROPS_COUNT; i++)
{
GuiSetStyle(bluishStyleProps[i].controlId, bluishStyleProps[i].propertyId, bluishStyleProps[i].propertyValue);
}
// Custom font loading
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
int bluishFontDataSize = 0;
unsigned char *data = DecompressData(bluishFontData, BLUISH_COMPRESSED_DATA_SIZE, &bluishFontDataSize);
Image imFont = { data, 256, 256, 1, 2 };
Font font = { 0 };
font.baseSize = 10;
font.glyphCount = 95;
// Load texture from image
font.texture = LoadTextureFromImage(imFont);
UnloadImage(imFont); // Uncompressed data can be unloaded from memory
// Copy char recs data from global fontRecs
// NOTE: Required to avoid issues if trying to free font
font.recs = (Rectangle *)malloc(font.glyphCount*sizeof(Rectangle));
memcpy(font.recs, bluishFontRecs, font.glyphCount*sizeof(Rectangle));
// Copy font char info data from global fontChars
// NOTE: Required to avoid issues if trying to free font
font.glyphs = (GlyphInfo *)malloc(font.glyphCount*sizeof(GlyphInfo));
memcpy(font.glyphs, bluishFontChars, font.glyphCount*sizeof(GlyphInfo));
GuiSetFont(font);
// Setup a white rectangle on the font to be used on shapes drawing,
// this way we make sure all gui can be drawn on a single pass because no texture change is required
// NOTE: Setting up this rectangle is a manual process (for the moment)
Rectangle whiteChar = { 66, 5, 2, 2 };
SetShapesTexture(font.texture, whiteChar);
}

View File

@ -1,340 +0,0 @@
//////////////////////////////////////////////////////////////////////////////////
// //
// StyleAsCode exporter v1.2 - Style data exported as a values array //
// //
// USAGE: On init call: GuiLoadStyleCyber(); //
// //
// more info and bugs-report: github.com/raysan5/raygui //
// feedback and support: ray[at]raylibtech.com //
// //
// Copyright (c) 2020-2023 raylib technologies (@raylibtech) //
// //
//////////////////////////////////////////////////////////////////////////////////
#define CYBER_STYLE_PROPS_COUNT 16
// Custom style name: cyber
static const GuiStyleProp cyberStyleProps[CYBER_STYLE_PROPS_COUNT] = {
{ 0, 0, 0x2f7486ff }, // DEFAULT_BORDER_COLOR_NORMAL
{ 0, 1, 0x024658ff }, // DEFAULT_BASE_COLOR_NORMAL
{ 0, 2, 0x51bfd3ff }, // DEFAULT_TEXT_COLOR_NORMAL
{ 0, 3, 0x82cde0ff }, // DEFAULT_BORDER_COLOR_FOCUSED
{ 0, 4, 0x3299b4ff }, // DEFAULT_BASE_COLOR_FOCUSED
{ 0, 5, 0xb6e1eaff }, // DEFAULT_TEXT_COLOR_FOCUSED
{ 0, 6, 0xeb7630ff }, // DEFAULT_BORDER_COLOR_PRESSED
{ 0, 7, 0xffbc51ff }, // DEFAULT_BASE_COLOR_PRESSED
{ 0, 8, 0xd86f36ff }, // DEFAULT_TEXT_COLOR_PRESSED
{ 0, 9, 0x134b5aff }, // DEFAULT_BORDER_COLOR_DISABLED
{ 0, 10, 0x02313dff }, // DEFAULT_BASE_COLOR_DISABLED
{ 0, 11, 0x17505fff }, // DEFAULT_TEXT_COLOR_DISABLED
{ 0, 16, 0x0000000e }, // DEFAULT_TEXT_SIZE
{ 0, 17, 0x00000000 }, // DEFAULT_TEXT_SPACING
{ 0, 18, 0x81c0d0ff }, // DEFAULT_LINE_COLOR
{ 0, 19, 0x00222bff }, // DEFAULT_BACKGROUND_COLOR
};
// WARNING: This style uses a custom font: (size: 14, spacing: 0)
#define CYBER_COMPRESSED_DATA_SIZE 1104
// Font image pixels data compressed (DEFLATE)
// NOTE: Original pixel data simplified to GRAYSCALE
static unsigned char cyberFontData[CYBER_COMPRESSED_DATA_SIZE] = { 0xed,
0xdd, 0xe1, 0x6e, 0x9b, 0x30, 0x14, 0x05, 0x60, 0xb4, 0xf7, 0x7f, 0xe3, 0x8d, 0x9d, 0x49, 0x95, 0xb6, 0xa9, 0x9b, 0x02,
0xf6, 0xb5, 0x4d, 0x48, 0xfa, 0xed, 0xfb, 0xd7, 0x94, 0x05, 0x7c, 0xb1, 0x81, 0xfa, 0xc4, 0xc9, 0x06, 0x00, 0xb0, 0x58,
0x2e, 0x7e, 0xb7, 0x34, 0xff, 0x74, 0xde, 0x11, 0xfd, 0xfe, 0xf7, 0xdc, 0x63, 0x5f, 0x77, 0x74, 0x8f, 0x8e, 0x24, 0x27,
0xc7, 0x99, 0x87, 0x2d, 0xf3, 0xef, 0x56, 0x39, 0xd8, 0xbe, 0x6f, 0x4f, 0xfb, 0xce, 0xc3, 0x1c, 0xee, 0xfd, 0xda, 0xf3,
0x39, 0x87, 0x6d, 0xb6, 0x77, 0x6c, 0x75, 0xdc, 0xce, 0xab, 0xea, 0xff, 0xf9, 0xdf, 0xa3, 0xff, 0x29, 0x0d, 0xad, 0x56,
0x3d, 0xbb, 0xc6, 0xeb, 0xbf, 0x75, 0x9d, 0x5f, 0xeb, 0xc7, 0xc5, 0x34, 0x54, 0xba, 0xbf, 0x1f, 0xad, 0x1a, 0xaf, 0xf7,
0x86, 0x63, 0xd9, 0xcb, 0xef, 0x98, 0xee, 0x3d, 0xea, 0xad, 0x7f, 0x0e, 0x46, 0xee, 0x79, 0x3d, 0xaa, 0x7a, 0x36, 0x56,
0xc6, 0x9f, 0x6b, 0xeb, 0x3f, 0x36, 0xfe, 0x9f, 0xbf, 0xdf, 0xf7, 0x0f, 0xed, 0x7b, 0xf5, 0x2a, 0xfd, 0xbf, 0xed, 0x3d,
0x73, 0x93, 0xf1, 0xbf, 0x5e, 0xff, 0xbf, 0xfd, 0x3f, 0x03, 0x15, 0x6b, 0x3f, 0xae, 0x2b, 0xae, 0xff, 0xe3, 0xf6, 0xc6,
0xbd, 0xcc, 0x84, 0xab, 0xde, 0xea, 0x7b, 0xed, 0xb1, 0xeb, 0x7f, 0x1a, 0xcf, 0xae, 0x75, 0xf5, 0xbf, 0xde, 0x8f, 0xe6,
0x23, 0x78, 0x4e, 0xfd, 0xaf, 0x1b, 0xff, 0x7b, 0xee, 0xff, 0xf3, 0x26, 0xf5, 0x4f, 0x47, 0xaf, 0xea, 0x7d, 0xfa, 0x5c,
0x79, 0xbf, 0xe2, 0xf9, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, 0xd3, 0xac, 0x63, 0x0a, 0xc9, 0x86, 0xf7, 0x6e,
0xa3, 0x96, 0xa3, 0xcc, 0x49, 0x4e, 0x35, 0x0d, 0xbf, 0x71, 0xb6, 0x7d, 0x6d, 0x1e, 0xfc, 0x38, 0x27, 0xbb, 0x36, 0xf1,
0xb0, 0x35, 0x67, 0xc0, 0x67, 0x1c, 0x4d, 0x9a, 0xb7, 0xaf, 0x65, 0x25, 0x8f, 0xf3, 0x68, 0xb5, 0x1c, 0x74, 0x86, 0x32,
0x8b, 0x19, 0x7c, 0x7d, 0x74, 0xa4, 0x38, 0x4b, 0x35, 0x3d, 0xfe, 0xe9, 0x8a, 0xa3, 0xc9, 0xa7, 0x4c, 0xe4, 0xfc, 0xd6,
0x38, 0xce, 0x9a, 0x54, 0xfb, 0xef, 0xda, 0x1c, 0x74, 0xff, 0x58, 0x9f, 0x49, 0xe9, 0x94, 0xda, 0xd9, 0xfc, 0xbb, 0xa5,
0x46, 0x8f, 0x66, 0x9f, 0x98, 0xb1, 0x69, 0x4b, 0x1a, 0x65, 0xb0, 0x0f, 0xed, 0x85, 0xb6, 0xfc, 0x96, 0xfd, 0x8f, 0xad,
0x38, 0x26, 0xae, 0xa9, 0xfe, 0x59, 0xde, 0xed, 0xd1, 0xef, 0xef, 0x43, 0x9f, 0xa4, 0x48, 0x7e, 0x7e, 0xd8, 0x97, 0x64,
0xac, 0x72, 0x78, 0x45, 0x4a, 0xd7, 0x58, 0xdf, 0x33, 0x26, 0xb5, 0xe5, 0xa0, 0xf7, 0x85, 0x09, 0xb3, 0x2c, 0xca, 0xee,
0x3f, 0xea, 0xff, 0xd7, 0x8d, 0x76, 0xdb, 0xd2, 0xeb, 0xf3, 0x9c, 0x2b, 0x74, 0x3d, 0x07, 0xbf, 0xf6, 0xfa, 0x7f, 0xd5,
0x19, 0xb3, 0x62, 0xfc, 0x9f, 0xff, 0x94, 0x33, 0x7a, 0x4f, 0x9b, 0x62, 0x5e, 0x77, 0xf6, 0x1d, 0xef, 0xda, 0xfb, 0xff,
0xd6, 0xa3, 0x49, 0xf1, 0x53, 0x5f, 0x57, 0xb5, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0x9a, 0xfe, 0x4d,
0x69, 0xc6, 0x7a, 0x6c, 0xeb, 0x7a, 0xfe, 0x72, 0x5d, 0x4e, 0x26, 0x27, 0xbf, 0xdb, 0xba, 0x5e, 0xd9, 0x79, 0x8a, 0x77,
0xbf, 0x41, 0x0a, 0x78, 0x2c, 0x53, 0x98, 0xa5, 0x79, 0x97, 0xde, 0xff, 0x63, 0x56, 0xfd, 0x73, 0x98, 0xe4, 0xcb, 0x85,
0x29, 0xdf, 0xf5, 0x99, 0xe8, 0x99, 0x7d, 0xe5, 0x7e, 0xf5, 0xaf, 0xae, 0x37, 0x99, 0x83, 0xd4, 0x7b, 0x4e, 0x32, 0xb1,
0x77, 0xaa, 0xff, 0x36, 0xa1, 0xfe, 0xf5, 0xf1, 0x3f, 0x27, 0xe9, 0xe2, 0x34, 0x8d, 0x65, 0x73, 0x73, 0xfb, 0xad, 0x67,
0xed, 0xe3, 0x15, 0x27, 0xcf, 0xd6, 0x33, 0x7d, 0x7e, 0xff, 0xae, 0x8e, 0xff, 0x2b, 0xfb, 0x7f, 0x5e, 0xaa, 0xff, 0xb7,
0x5c, 0xff, 0xeb, 0x29, 0xfe, 0x0c, 0xa6, 0x80, 0xf7, 0xe6, 0xfa, 0xde, 0x67, 0xfc, 0x9f, 0x5b, 0xff, 0xdc, 0xe2, 0xfe,
0x2f, 0x4b, 0xc6, 0xe7, 0xf6, 0xf1, 0x25, 0x83, 0x89, 0xee, 0xb9, 0x77, 0xf0, 0xd7, 0xde, 0xff, 0x8f, 0xf5, 0xa0, 0xf6,
0x63, 0xca, 0xf4, 0xf1, 0x77, 0x74, 0xed, 0xdf, 0xb9, 0xe3, 0x3f, 0xaf, 0xf4, 0xd9, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x30, 0x8f, 0x96, 0xe2, 0x6a, 0x5d, 0xe9, 0x5c, 0x13, 0xaa, 0xb2, 0xfa, 0x6a, 0x7d, 0x9e, 0x76, 0xce, 0x2c, 0x6f,
0x86, 0xe7, 0xe8, 0xdb, 0x5e, 0x4f, 0x79, 0x3e, 0xbd, 0x67, 0x36, 0xbf, 0x27, 0xa3, 0x90, 0xf2, 0x1c, 0xec, 0x75, 0xab,
0x85, 0x8e, 0xcf, 0x0e, 0x8f, 0x7e, 0x63, 0xf2, 0xfa, 0xfa, 0xb7, 0x7c, 0x7f, 0x74, 0x3d, 0x0b, 0x36, 0xf6, 0xcd, 0xfe,
0x39, 0xcc, 0x87, 0x8e, 0x9f, 0x01, 0xf5, 0x6c, 0xcd, 0x3b, 0xd5, 0xff, 0xbc, 0x4d, 0x53, 0xae, 0xfe, 0xd8, 0xb7, 0x81,
0xaf, 0xcd, 0x60, 0xec, 0x4d, 0xe7, 0x46, 0x6d, 0xad, 0xd7, 0x7d, 0x78, 0x55, 0xdc, 0x2b, 0xeb, 0x3f, 0x5e, 0x89, 0x2c,
0xc9, 0xa8, 0xe7, 0xb2, 0x4f, 0xdf, 0x54, 0x72, 0x7e, 0xf5, 0x6d, 0xe7, 0xd5, 0xbf, 0xa5, 0x67, 0x8f, 0xf7, 0xff, 0x91,
0x57, 0xd3, 0xdc, 0x0b, 0xef, 0x95, 0xc1, 0xca, 0xc0, 0x5e, 0x5c, 0x59, 0xff, 0xe3, 0xea, 0xcd, 0xb8, 0xfe, 0x8f, 0x55,
0xf8, 0xbc, 0x05, 0x7e, 0xa8, 0xff, 0xe0, 0x73, 0x46, 0x1a, 0x9e, 0xa3, 0xaa, 0x4f, 0x18, 0xe7, 0xaf, 0x8c, 0x65, 0x94,
0x47, 0x9f, 0x11, 0x9e, 0x71, 0x6d, 0xb8, 0xea, 0xe9, 0xd0, 0xf3, 0xbf, 0xbf, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf0, 0x8a, 0xf3, 0x63, 0x79, 0x93, 0xf9, 0xc5, 0x34, 0x7d, 0x8b, 0xf6, 0xf9, 0xea, 0xa9, 0xc7, 0x6b, 0xaf, 0xee, 0xa5,
0xd4, 0x55, 0x7d, 0x9f, 0xe6, 0x27, 0x04, 0xfe, 0xdf, 0x72, 0xef, 0x98, 0x05, 0xcd, 0xf4, 0xe4, 0x6a, 0x26, 0xa5, 0x3a,
0x7a, 0xf2, 0xc6, 0xfd, 0xc9, 0xa9, 0x39, 0xaf, 0xce, 0xca, 0xb6, 0xcd, 0xa9, 0xff, 0x58, 0x76, 0x3a, 0xcb, 0x52, 0x13,
0x5f, 0xa7, 0xfe, 0x5b, 0x71, 0xbd, 0xd2, 0xb9, 0xfd, 0xbf, 0x67, 0xbf, 0x52, 0x4e, 0x35, 0x57, 0xfa, 0x7f, 0xde, 0xbe,
0xfe, 0xb5, 0xd6, 0xcc, 0x94, 0x1e, 0x57, 0xcb, 0x4e, 0xed, 0xe5, 0xf4, 0x69, 0x6f, 0xfd, 0x73, 0x69, 0xff, 0xdf, 0x1a,
0x57, 0xc3, 0x9c, 0xd9, 0x96, 0xf5, 0xf5, 0x8a, 0x57, 0xdf, 0x85, 0xd5, 0x3f, 0x21, 0x31, 0xa3, 0xfe, 0x63, 0xab, 0x68,
0x3e, 0xa7, 0x3d, 0x56, 0xec, 0x5d, 0x6e, 0x90, 0x41, 0xed, 0xeb, 0x25, 0x33, 0xfb, 0xff, 0xca, 0x7b, 0x0c, 0xf5, 0x5f,
0xf1, 0xce, 0x57, 0xd4, 0x7f, 0xfb, 0x52, 0xe9, 0xcc, 0xf7, 0xcf, 0xa2, 0x4a, 0xda, 0x7e, 0xed, 0xbf, 0x40, 0x69, 0x05,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xd9, 0xf3, 0x6e, 0x79, 0x42, 0x9a, 0xaa, 0x25, 0x4f, 0xd3, 0x96, 0x14, 0x39, 0x9e,
0x5b, 0x32, 0xc3, 0xb4, 0xaa, 0xfe, 0x47, 0xdf, 0x54, 0xdc, 0x9e, 0x50, 0xcb, 0x92, 0x9f, 0xaa, 0xfd, 0x15, 0xf5, 0xdf,
0x9a, 0x92, 0x6b, 0x99, 0x96, 0x7b, 0xbd, 0x53, 0x1e, 0xec, 0x7d, 0xce, 0x80, 0xfa, 0xea, 0x9d, 0xf5, 0xfe, 0x3f, 0x73,
0x3d, 0x67, 0xf5, 0x5f, 0x93, 0xbf, 0x68, 0x5f, 0xbd, 0xb1, 0xb2, 0x4a, 0xed, 0xcc, 0x75, 0xdb, 0x9d, 0x01, 0xef, 0x96,
0xef, 0xd2, 0xff, 0xbf, 0xea, 0xa7, 0x0b, 0xd5, 0x1f, 0xf5, 0x67, 0xfc, 0xf9, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
0x0f, 0xbf, 0x00 };
// Font characters rectangles data
static const Rectangle cyberFontRecs[95] = {
{ 4, 4, 4 , 14 },
{ 16, 4, 1 , 8 },
{ 25, 4, 4 , 3 },
{ 37, 4, 8 , 8 },
{ 53, 4, 8 , 9 },
{ 69, 4, 8 , 8 },
{ 85, 4, 8 , 8 },
{ 101, 4, 1 , 3 },
{ 110, 4, 4 , 9 },
{ 122, 4, 4 , 9 },
{ 134, 4, 5 , 6 },
{ 147, 4, 5 , 6 },
{ 160, 4, 2 , 2 },
{ 170, 4, 4 , 1 },
{ 182, 4, 1 , 1 },
{ 191, 4, 8 , 8 },
{ 207, 4, 8 , 8 },
{ 223, 4, 2 , 8 },
{ 233, 4, 8 , 8 },
{ 4, 26, 8 , 8 },
{ 20, 26, 8 , 8 },
{ 36, 26, 8 , 8 },
{ 52, 26, 8 , 8 },
{ 68, 26, 7 , 8 },
{ 83, 26, 8 , 8 },
{ 99, 26, 8 , 8 },
{ 115, 26, 1 , 4 },
{ 124, 26, 2 , 5 },
{ 134, 26, 4 , 8 },
{ 146, 26, 5 , 3 },
{ 159, 26, 4 , 8 },
{ 171, 26, 7 , 8 },
{ 186, 26, 8 , 8 },
{ 202, 26, 8 , 8 },
{ 218, 26, 8 , 8 },
{ 234, 26, 8 , 8 },
{ 4, 48, 8 , 8 },
{ 20, 48, 7 , 8 },
{ 35, 48, 7 , 8 },
{ 50, 48, 8 , 8 },
{ 66, 48, 8 , 8 },
{ 82, 48, 5 , 8 },
{ 95, 48, 7 , 8 },
{ 110, 48, 8 , 8 },
{ 126, 48, 7 , 8 },
{ 141, 48, 8 , 8 },
{ 157, 48, 8 , 8 },
{ 173, 48, 8 , 8 },
{ 189, 48, 8 , 8 },
{ 205, 48, 8 , 9 },
{ 221, 48, 8 , 8 },
{ 237, 48, 8 , 8 },
{ 4, 70, 8 , 8 },
{ 20, 70, 8 , 8 },
{ 36, 70, 8 , 8 },
{ 52, 70, 9 , 8 },
{ 69, 70, 8 , 8 },
{ 85, 70, 8 , 8 },
{ 101, 70, 8 , 8 },
{ 117, 70, 4 , 9 },
{ 129, 70, 8 , 8 },
{ 145, 70, 4 , 9 },
{ 157, 70, 4 , 3 },
{ 169, 70, 7 , 1 },
{ 184, 70, 2 , 3 },
{ 194, 70, 7 , 5 },
{ 209, 70, 7 , 8 },
{ 224, 70, 7 , 5 },
{ 239, 70, 7 , 8 },
{ 4, 92, 7 , 5 },
{ 19, 92, 4 , 8 },
{ 31, 92, 7 , 7 },
{ 46, 92, 7 , 8 },
{ 61, 92, 1 , 8 },
{ 70, 92, 3 , 10 },
{ 81, 92, 7 , 8 },
{ 96, 92, 4 , 8 },
{ 108, 92, 9 , 5 },
{ 125, 92, 7 , 5 },
{ 140, 92, 7 , 5 },
{ 155, 92, 7 , 7 },
{ 170, 92, 7 , 7 },
{ 185, 92, 5 , 5 },
{ 198, 92, 7 , 5 },
{ 213, 92, 5 , 8 },
{ 226, 92, 7 , 5 },
{ 4, 114, 7 , 5 },
{ 19, 114, 9 , 5 },
{ 36, 114, 7 , 5 },
{ 51, 114, 7 , 7 },
{ 66, 114, 7 , 5 },
{ 81, 114, 4 , 9 },
{ 93, 114, 1 , 9 },
{ 102, 114, 4 , 9 },
{ 114, 114, 8 , 2 },
};
// Font characters info data
// NOTE: No chars.image data provided
static const GlyphInfo cyberFontChars[95] = {
{ 32, 0, 11, 4, { 0 }},
{ 33, 0, 3, 2, { 0 }},
{ 34, 0, 3, 4, { 0 }},
{ 35, 0, 3, 8, { 0 }},
{ 36, 0, 3, 8, { 0 }},
{ 37, 0, 3, 8, { 0 }},
{ 38, 0, 3, 8, { 0 }},
{ 39, 0, 3, 2, { 0 }},
{ 40, 0, 3, 4, { 0 }},
{ 41, 0, 3, 4, { 0 }},
{ 42, 0, 4, 6, { 0 }},
{ 43, 0, 4, 6, { 0 }},
{ 44, 0, 10, 3, { 0 }},
{ 45, 0, 7, 5, { 0 }},
{ 46, 0, 10, 2, { 0 }},
{ 47, 0, 3, 8, { 0 }},
{ 48, 0, 3, 8, { 0 }},
{ 49, 0, 3, 3, { 0 }},
{ 50, 0, 3, 8, { 0 }},
{ 51, 0, 3, 8, { 0 }},
{ 52, 0, 3, 8, { 0 }},
{ 53, 0, 3, 8, { 0 }},
{ 54, 0, 3, 8, { 0 }},
{ 55, 0, 3, 7, { 0 }},
{ 56, 0, 3, 8, { 0 }},
{ 57, 0, 3, 8, { 0 }},
{ 58, 0, 6, 2, { 0 }},
{ 59, 0, 6, 3, { 0 }},
{ 60, 0, 3, 5, { 0 }},
{ 61, 0, 6, 6, { 0 }},
{ 62, 0, 3, 5, { 0 }},
{ 63, 0, 3, 7, { 0 }},
{ 64, 0, 3, 8, { 0 }},
{ 65, 0, 3, 8, { 0 }},
{ 66, 0, 3, 8, { 0 }},
{ 67, 0, 3, 8, { 0 }},
{ 68, 0, 3, 8, { 0 }},
{ 69, 0, 3, 7, { 0 }},
{ 70, 0, 3, 7, { 0 }},
{ 71, 0, 3, 8, { 0 }},
{ 72, 0, 3, 8, { 0 }},
{ 73, 0, 3, 6, { 0 }},
{ 74, 0, 3, 7, { 0 }},
{ 75, 0, 3, 8, { 0 }},
{ 76, 0, 3, 7, { 0 }},
{ 77, 0, 3, 9, { 0 }},
{ 78, 0, 3, 8, { 0 }},
{ 79, 0, 3, 8, { 0 }},
{ 80, 0, 3, 8, { 0 }},
{ 81, 0, 3, 8, { 0 }},
{ 82, 0, 3, 8, { 0 }},
{ 83, 0, 3, 8, { 0 }},
{ 84, 0, 3, 8, { 0 }},
{ 85, 0, 3, 8, { 0 }},
{ 86, 0, 3, 8, { 0 }},
{ 87, 0, 3, 10, { 0 }},
{ 88, 0, 3, 8, { 0 }},
{ 89, 0, 3, 8, { 0 }},
{ 90, 0, 3, 8, { 0 }},
{ 91, 0, 3, 4, { 0 }},
{ 92, 0, 3, 8, { 0 }},
{ 93, 0, 3, 4, { 0 }},
{ 94, 0, 3, 4, { 0 }},
{ 95, 0, 11, 7, { 0 }},
{ 96, 0, 3, 3, { 0 }},
{ 97, 0, 6, 7, { 0 }},
{ 98, 0, 3, 7, { 0 }},
{ 99, 0, 6, 7, { 0 }},
{ 100, 0, 3, 7, { 0 }},
{ 101, 0, 6, 7, { 0 }},
{ 102, 0, 3, 5, { 0 }},
{ 103, 0, 6, 7, { 0 }},
{ 104, 0, 3, 7, { 0 }},
{ 105, 0, 3, 2, { 0 }},
{ 106, -2, 3, 2, { 0 }},
{ 107, 0, 3, 7, { 0 }},
{ 108, 0, 3, 4, { 0 }},
{ 109, 0, 6, 10, { 0 }},
{ 110, 0, 6, 7, { 0 }},
{ 111, 0, 6, 7, { 0 }},
{ 112, 0, 6, 7, { 0 }},
{ 113, 0, 6, 7, { 0 }},
{ 114, 0, 6, 6, { 0 }},
{ 115, 0, 6, 7, { 0 }},
{ 116, 0, 3, 6, { 0 }},
{ 117, 0, 6, 7, { 0 }},
{ 118, 0, 6, 7, { 0 }},
{ 119, 0, 6, 10, { 0 }},
{ 120, 0, 6, 7, { 0 }},
{ 121, 0, 6, 7, { 0 }},
{ 122, 0, 6, 7, { 0 }},
{ 123, 0, 3, 5, { 0 }},
{ 124, 0, 3, 2, { 0 }},
{ 125, 0, 3, 5, { 0 }},
{ 126, 0, 6, 8, { 0 }},
};
// Style loading function: cyber
static void GuiLoadStyleCyber(void)
{
// Load style properties provided
// NOTE: Default properties are propagated
for (int i = 0; i < CYBER_STYLE_PROPS_COUNT; i++)
{
GuiSetStyle(cyberStyleProps[i].controlId, cyberStyleProps[i].propertyId, cyberStyleProps[i].propertyValue);
}
// Custom font loading
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
int cyberFontDataSize = 0;
unsigned char *data = DecompressData(cyberFontData, CYBER_COMPRESSED_DATA_SIZE, &cyberFontDataSize);
Image imFont = { data, 256, 256, 1, 2 };
Font font = { 0 };
font.baseSize = 14;
font.glyphCount = 95;
// Load texture from image
font.texture = LoadTextureFromImage(imFont);
UnloadImage(imFont); // Uncompressed data can be unloaded from memory
// Copy char recs data from global fontRecs
// NOTE: Required to avoid issues if trying to free font
font.recs = (Rectangle *)malloc(font.glyphCount*sizeof(Rectangle));
memcpy(font.recs, cyberFontRecs, font.glyphCount*sizeof(Rectangle));
// Copy font char info data from global fontChars
// NOTE: Required to avoid issues if trying to free font
font.glyphs = (GlyphInfo *)malloc(font.glyphCount*sizeof(GlyphInfo));
memcpy(font.glyphs, cyberFontChars, font.glyphCount*sizeof(GlyphInfo));
GuiSetFont(font);
// Setup a white rectangle on the font to be used on shapes drawing,
// this way we make sure all gui can be drawn on a single pass because no texture change is required
// NOTE: Setting up this rectangle is a manual process (for the moment)
Rectangle whiteChar = { 89, 9, 2, 2 };
SetShapesTexture(font.texture, whiteChar);
}

View File

@ -1,347 +0,0 @@
//////////////////////////////////////////////////////////////////////////////////
// //
// StyleAsCode exporter v1.2 - Style data exported as a values array //
// //
// USAGE: On init call: GuiLoadStyleDark(); //
// //
// more info and bugs-report: github.com/raysan5/raygui //
// feedback and support: ray[at]raylibtech.com //
// //
// Copyright (c) 2020-2023 raylib technologies (@raylibtech) //
// //
//////////////////////////////////////////////////////////////////////////////////
#define DARK_STYLE_PROPS_COUNT 22
// Custom style name: dark
static const GuiStyleProp darkStyleProps[DARK_STYLE_PROPS_COUNT] = {
{ 0, 0, 0x878787ff }, // DEFAULT_BORDER_COLOR_NORMAL
{ 0, 1, 0x2c2c2cff }, // DEFAULT_BASE_COLOR_NORMAL
{ 0, 2, 0xc3c3c3ff }, // DEFAULT_TEXT_COLOR_NORMAL
{ 0, 3, 0xe1e1e1ff }, // DEFAULT_BORDER_COLOR_FOCUSED
{ 0, 4, 0x848484ff }, // DEFAULT_BASE_COLOR_FOCUSED
{ 0, 5, 0x181818ff }, // DEFAULT_TEXT_COLOR_FOCUSED
{ 0, 6, 0x000000ff }, // DEFAULT_BORDER_COLOR_PRESSED
{ 0, 7, 0xefefefff }, // DEFAULT_BASE_COLOR_PRESSED
{ 0, 8, 0x202020ff }, // DEFAULT_TEXT_COLOR_PRESSED
{ 0, 9, 0x6a6a6aff }, // DEFAULT_BORDER_COLOR_DISABLED
{ 0, 10, 0x818181ff }, // DEFAULT_BASE_COLOR_DISABLED
{ 0, 11, 0x606060ff }, // DEFAULT_TEXT_COLOR_DISABLED
{ 0, 16, 0x00000010 }, // DEFAULT_TEXT_SIZE
{ 0, 17, 0x00000000 }, // DEFAULT_TEXT_SPACING
{ 0, 18, 0x9d9d9dff }, // DEFAULT_LINE_COLOR
{ 0, 19, 0x3c3c3cff }, // DEFAULT_BACKGROUND_COLOR
{ 1, 5, 0xf7f7f7ff }, // LABEL_TEXT_COLOR_FOCUSED
{ 1, 8, 0x898989ff }, // LABEL_TEXT_COLOR_PRESSED
{ 4, 5, 0xb0b0b0ff }, // SLIDER_TEXT_COLOR_FOCUSED
{ 5, 5, 0x848484ff }, // PROGRESSBAR_TEXT_COLOR_FOCUSED
{ 9, 5, 0xf5f5f5ff }, // TEXTBOX_TEXT_COLOR_FOCUSED
{ 10, 5, 0xf6f6f6ff }, // VALUEBOX_TEXT_COLOR_FOCUSED
};
// WARNING: This style uses a custom font: PixelOperator.ttf (size: 16, spacing: 0)
#define DARK_COMPRESSED_DATA_SIZE 1031
// Font image pixels data compressed (DEFLATE)
// NOTE: Original pixel data simplified to GRAYSCALE
static unsigned char darkFontData[DARK_COMPRESSED_DATA_SIZE] = { 0xed,
0xdd, 0xd1, 0x76, 0x9b, 0x30, 0x0c, 0x00, 0x50, 0xff, 0xff, 0x4f, 0x6b, 0x4f, 0x3b, 0xeb, 0xb6, 0x16, 0x90, 0x90, 0x8d,
0x93, 0xdc, 0xdd, 0x97, 0x9d, 0x36, 0x25, 0xc4, 0xc2, 0xc6, 0x04, 0xc9, 0xc4, 0x00, 0x00, 0xf8, 0x47, 0x7c, 0xfb, 0x93,
0xf8, 0xf1, 0x95, 0x71, 0x79, 0x3b, 0xc7, 0x3f, 0xff, 0xfd, 0xdb, 0x38, 0x78, 0xaf, 0x6b, 0xfb, 0x9a, 0x7d, 0xdf, 0x48,
0xb4, 0xc4, 0xf7, 0xfb, 0x17, 0x97, 0xb7, 0xfb, 0xd3, 0xe7, 0xcb, 0xbf, 0xfe, 0x68, 0x4b, 0xe7, 0xed, 0xfc, 0x54, 0xfc,
0xe3, 0x52, 0x24, 0xe2, 0x62, 0xdb, 0x5c, 0x6f, 0xc5, 0xa3, 0x77, 0x8e, 0xe6, 0x16, 0x3c, 0x3f, 0x3a, 0x7f, 0x8a, 0x74,
0xbe, 0x3d, 0xe2, 0xa0, 0x1f, 0xcd, 0x8d, 0xff, 0xd7, 0x7f, 0xb9, 0x7e, 0x1c, 0xc9, 0x88, 0x76, 0xf4, 0xf4, 0xe3, 0xfd,
0x8c, 0xd4, 0xf6, 0x67, 0xc4, 0x3f, 0x5a, 0xc7, 0xae, 0x68, 0xed, 0xff, 0xc7, 0xaf, 0xcc, 0xf6, 0xb7, 0x48, 0xf6, 0xdd,
0x8e, 0x36, 0xa9, 0xf5, 0xff, 0xee, 0xe8, 0xff, 0xf9, 0xec, 0x7d, 0xe3, 0x50, 0x7e, 0x5c, 0x5e, 0x19, 0xff, 0x4a, 0xec,
0xae, 0x8e, 0x5c, 0x95, 0x3e, 0x31, 0x36, 0x88, 0x7f, 0xf6, 0x38, 0x3c, 0x6e, 0xab, 0x91, 0x3e, 0x33, 0x3c, 0x1f, 0xff,
0xf3, 0xf1, 0x3f, 0x26, 0xc4, 0xff, 0xf9, 0x79, 0xf4, 0x9f, 0x88, 0x45, 0xb2, 0x2f, 0xe7, 0xce, 0x31, 0x91, 0xe8, 0x45,
0xf5, 0xd6, 0xab, 0x9d, 0xff, 0xbf, 0x46, 0x3f, 0xde, 0x38, 0xfe, 0x91, 0x9c, 0xdf, 0x66, 0xe7, 0x38, 0x3b, 0xb4, 0xc2,
0xf9, 0xfc, 0xff, 0x78, 0xef, 0xe2, 0xe6, 0xd8, 0x15, 0x2f, 0xd6, 0xfb, 0x3b, 0xe3, 0x1f, 0xd3, 0xe2, 0x1f, 0x4b, 0xe2,
0x3f, 0x0e, 0xaf, 0x6a, 0xe3, 0xf6, 0x0c, 0x7b, 0xcf, 0xf8, 0x67, 0xaf, 0xff, 0x6b, 0x23, 0xec, 0xf3, 0x2d, 0x11, 0x37,
0xaf, 0x41, 0x78, 0xfd, 0x6f, 0x11, 0x43, 0xf4, 0x7d, 0x8f, 0x8c, 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8b, 0xef,
0xd0, 0x45, 0x53, 0xb6, 0x6c, 0x25, 0x53, 0xfd, 0x5e, 0x9e, 0x7f, 0x2e, 0x6b, 0xf7, 0x6c, 0xef, 0xf2, 0xfb, 0xde, 0xf9,
0x37, 0x47, 0x59, 0xc8, 0xb5, 0x1c, 0xeb, 0x2b, 0x95, 0x16, 0x9d, 0xb9, 0x25, 0xf5, 0x4c, 0xf5, 0xee, 0x3b, 0x49, 0x51,
0xae, 0x2b, 0xe8, 0xf9, 0x54, 0x77, 0x7e, 0xd3, 0x13, 0xa5, 0xae, 0xf8, 0x8f, 0x2d, 0xe2, 0x9f, 0xcf, 0x13, 0xca, 0x1f,
0xb7, 0x91, 0xce, 0x47, 0x8b, 0xd6, 0x9c, 0xad, 0x68, 0x8d, 0x52, 0x24, 0x2a, 0xad, 0x7a, 0x72, 0x4e, 0x77, 0xef, 0xff,
0xd7, 0x32, 0xb2, 0x3f, 0x2b, 0xfe, 0xf9, 0x73, 0xeb, 0xdd, 0x33, 0xec, 0x8a, 0x5c, 0x82, 0x6a, 0xa5, 0x4c, 0x3e, 0xfe,
0xf9, 0xde, 0x73, 0xb6, 0xb5, 0x51, 0xca, 0xa3, 0xbe, 0x9b, 0x01, 0x9e, 0xad, 0x52, 0x5b, 0x9d, 0x8f, 0x3a, 0x3f, 0x23,
0x37, 0x2e, 0xd4, 0xb8, 0xed, 0xdb, 0xff, 0x63, 0x42, 0xff, 0x5f, 0x93, 0x8f, 0x1c, 0x4b, 0x8f, 0x92, 0xb3, 0x5e, 0xd4,
0x75, 0x56, 0x7b, 0x95, 0xf8, 0xaf, 0xfe, 0x6c, 0xb1, 0x65, 0xd6, 0xd8, 0xbc, 0x36, 0xda, 0x7d, 0xfe, 0xdf, 0x75, 0xc5,
0x7e, 0xbf, 0x52, 0x7d, 0x4d, 0xf4, 0xa3, 0xf4, 0x3d, 0x48, 0x65, 0x8e, 0xd4, 0x7b, 0xfd, 0x9f, 0x9f, 0xc1, 0x87, 0x0c,
0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x8f, 0xca, 0xff, 0x5f, 0x93, 0x11, 0x34, 0x4a, 0x2b, 0xa1, 0xcf, 0xcf,
0xb9, 0xbf, 0xb3, 0x26, 0x78, 0x3c, 0x9c, 0x61, 0x7e, 0x5c, 0x2d, 0xf0, 0xda, 0xf1, 0x7f, 0xfe, 0x37, 0xa3, 0xb0, 0x7e,
0xe7, 0xca, 0xf8, 0x8f, 0x42, 0x34, 0x7a, 0xb2, 0xe4, 0x73, 0x5b, 0x89, 0xff, 0xfe, 0xb7, 0x63, 0xfc, 0xc7, 0x92, 0xf8,
0xc7, 0xcb, 0xc7, 0xbf, 0x52, 0x6b, 0x71, 0x9c, 0x59, 0x2b, 0xfe, 0xe7, 0x6d, 0x1b, 0xa5, 0x2a, 0x8c, 0xfe, 0xf8, 0x47,
0x71, 0x2b, 0x71, 0x72, 0x44, 0xf5, 0xe6, 0xdc, 0xf7, 0xe4, 0xe9, 0xad, 0x8d, 0x7f, 0xf7, 0x73, 0x3f, 0x76, 0xea, 0xff,
0xd7, 0xea, 0xae, 0x66, 0x67, 0x1f, 0xdf, 0xe9, 0xe9, 0x4f, 0xf6, 0xff, 0xee, 0x67, 0x6b, 0xad, 0x3e, 0xff, 0xcf, 0x9a,
0xff, 0x8d, 0xf4, 0x68, 0x12, 0xdb, 0xc6, 0xff, 0xce, 0x2c, 0xb4, 0x3b, 0xfe, 0xf1, 0x22, 0xf3, 0xff, 0x51, 0x38, 0x3e,
0x67, 0xcf, 0xff, 0xaf, 0x3d, 0xef, 0x68, 0xef, 0xf8, 0x8f, 0x1b, 0xe7, 0xd7, 0x58, 0x72, 0xfd, 0x3f, 0x4e, 0xae, 0x36,
0x7a, 0xde, 0x67, 0xb4, 0xad, 0xdf, 0xff, 0xf7, 0xbe, 0xe5, 0x6b, 0xf5, 0xb3, 0x2b, 0x16, 0x58, 0x75, 0x1d, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x40, 0xfe, 0xff, 0xd9, 0x1d, 0xe4, 0xfc, 0xbd, 0xe8, 0xd1, 0x78, 0x6f, 0x3f, 0x9a, 0x32, 0x19,
0xc6, 0xc1, 0x9d, 0xf8, 0xec, 0x0a, 0x7c, 0x3d, 0x99, 0xb9, 0x47, 0x7b, 0xdf, 0x57, 0xd3, 0x30, 0x6e, 0xef, 0x51, 0x7e,
0x3d, 0xc1, 0xe7, 0x57, 0x96, 0x8d, 0xc6, 0xcc, 0xae, 0x75, 0xd5, 0x36, 0x33, 0x73, 0xc6, 0xbb, 0xeb, 0x3f, 0xba, 0x5a,
0x23, 0x6e, 0x8c, 0x0c, 0xb3, 0xe3, 0x5f, 0x5f, 0xe9, 0xbb, 0x7a, 0x7c, 0xad, 0x88, 0x7f, 0x4f, 0x16, 0x69, 0x3e, 0xf2,
0x6b, 0xd6, 0xd3, 0x3e, 0x7b, 0x9e, 0xca, 0xba, 0xdc, 0xc7, 0x4a, 0x06, 0xed, 0xbb, 0xc6, 0xff, 0xf9, 0xf5, 0xb4, 0x67,
0x55, 0x76, 0xf5, 0x66, 0xd0, 0x8b, 0xff, 0xbc, 0xda, 0xbe, 0x58, 0x38, 0x32, 0x55, 0x2b, 0x68, 0xe6, 0xd5, 0x0c, 0x76,
0x57, 0x91, 0xcc, 0x1f, 0xff, 0x6b, 0xcf, 0xb9, 0xaa, 0x3c, 0x1d, 0x68, 0xb7, 0xfe, 0xdf, 0x99, 0x3b, 0xbd, 0x4b, 0xfc,
0xeb, 0xb3, 0xfc, 0xd1, 0x34, 0x2b, 0x7d, 0x6e, 0xfc, 0x5f, 0xfd, 0xc4, 0x8b, 0xfa, 0x3c, 0xfc, 0x89, 0x3d, 0xa9, 0xbc,
0x73, 0xe5, 0xaf, 0xb2, 0x99, 0xfd, 0x9d, 0xf1, 0xdf, 0xef, 0x08, 0xe0, 0xe9, 0x51, 0x8c, 0xf7, 0x3a, 0x02, 0x54, 0xe0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x36, 0xbb, 0xe3, 0x7e, 0x9c, 0xa5, 0x13, 0x2d, 0x19, 0x37, 0xbb, 0xaf, 0xa5,
0x3f, 0x4e, 0xd6, 0xa7, 0xbd, 0x96, 0xdb, 0x15, 0xdb, 0xde, 0x0f, 0xae, 0xb6, 0x7f, 0x57, 0xfe, 0xf4, 0xee, 0x6b, 0xe9,
0xdf, 0x5f, 0x93, 0x33, 0x4e, 0x8e, 0x8e, 0x57, 0x8c, 0x7f, 0x25, 0x67, 0xf4, 0xf9, 0xb5, 0x94, 0xa3, 0x94, 0xf1, 0x1a,
0x9b, 0xe7, 0xcc, 0xed, 0x94, 0x8b, 0xbd, 0x72, 0xfc, 0x8f, 0x72, 0x74, 0xa2, 0x21, 0x0f, 0x5a, 0xfc, 0x47, 0xba, 0x16,
0x6f, 0xe7, 0xfe, 0xff, 0xc4, 0xda, 0xeb, 0xef, 0x17, 0xff, 0xce, 0x8a, 0xab, 0x19, 0x6b, 0x69, 0xe7, 0xab, 0x3b, 0xdf,
0xbf, 0xff, 0x57, 0xe7, 0xff, 0x3d, 0xe3, 0xff, 0xea, 0xb5, 0xb4, 0xf3, 0xf3, 0xff, 0xcf, 0x18, 0xff, 0xef, 0xbc, 0x22,
0x73, 0xac, 0xbd, 0x5e, 0x5e, 0xae, 0xf8, 0x7f, 0x7a, 0x5e, 0xee, 0xdd, 0xeb, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x46, 0xbf, 0x00 };
// Font characters rectangles data
static const Rectangle darkFontRecs[95] = {
{ 4, 4, 4 , 16 },
{ 16, 4, 1 , 9 },
{ 25, 4, 3 , 3 },
{ 36, 4, 6 , 9 },
{ 50, 4, 5 , 13 },
{ 63, 4, 7 , 9 },
{ 78, 4, 5 , 9 },
{ 91, 4, 1 , 3 },
{ 100, 4, 3 , 9 },
{ 111, 4, 3 , 9 },
{ 122, 4, 5 , 5 },
{ 135, 4, 5 , 5 },
{ 148, 4, 2 , 3 },
{ 158, 4, 4 , 1 },
{ 170, 4, 1 , 1 },
{ 179, 4, 3 , 9 },
{ 190, 4, 5 , 9 },
{ 203, 4, 3 , 9 },
{ 214, 4, 5 , 9 },
{ 227, 4, 5 , 9 },
{ 240, 4, 5 , 9 },
{ 4, 28, 5 , 9 },
{ 17, 28, 5 , 9 },
{ 30, 28, 5 , 9 },
{ 43, 28, 5 , 9 },
{ 56, 28, 5 , 9 },
{ 69, 28, 1 , 7 },
{ 78, 28, 2 , 9 },
{ 88, 28, 3 , 5 },
{ 99, 28, 4 , 3 },
{ 111, 28, 3 , 5 },
{ 122, 28, 5 , 9 },
{ 135, 28, 7 , 9 },
{ 150, 28, 5 , 9 },
{ 163, 28, 5 , 9 },
{ 176, 28, 5 , 9 },
{ 189, 28, 5 , 9 },
{ 202, 28, 5 , 9 },
{ 215, 28, 5 , 9 },
{ 228, 28, 5 , 9 },
{ 241, 28, 5 , 9 },
{ 4, 52, 1 , 9 },
{ 13, 52, 5 , 9 },
{ 26, 52, 5 , 9 },
{ 39, 52, 5 , 9 },
{ 52, 52, 7 , 9 },
{ 67, 52, 5 , 9 },
{ 80, 52, 5 , 9 },
{ 93, 52, 5 , 9 },
{ 106, 52, 5 , 9 },
{ 119, 52, 5 , 9 },
{ 132, 52, 5 , 9 },
{ 145, 52, 5 , 9 },
{ 158, 52, 5 , 9 },
{ 171, 52, 5 , 9 },
{ 184, 52, 7 , 9 },
{ 199, 52, 5 , 9 },
{ 212, 52, 5 , 9 },
{ 225, 52, 5 , 9 },
{ 238, 52, 3 , 9 },
{ 4, 76, 3 , 9 },
{ 15, 76, 3 , 9 },
{ 26, 76, 5 , 3 },
{ 39, 76, 5 , 1 },
{ 52, 76, 2 , 2 },
{ 62, 76, 5 , 7 },
{ 75, 76, 5 , 9 },
{ 88, 76, 5 , 7 },
{ 101, 76, 5 , 9 },
{ 114, 76, 5 , 7 },
{ 127, 76, 4 , 9 },
{ 139, 76, 5 , 9 },
{ 152, 76, 5 , 9 },
{ 165, 76, 1 , 9 },
{ 174, 76, 5 , 11 },
{ 187, 76, 5 , 9 },
{ 200, 76, 2 , 9 },
{ 210, 76, 7 , 7 },
{ 225, 76, 5 , 7 },
{ 238, 76, 5 , 7 },
{ 4, 100, 5 , 9 },
{ 17, 100, 5 , 9 },
{ 30, 100, 5 , 7 },
{ 43, 100, 5 , 7 },
{ 56, 100, 4 , 8 },
{ 68, 100, 5 , 7 },
{ 81, 100, 5 , 7 },
{ 94, 100, 7 , 7 },
{ 109, 100, 5 , 7 },
{ 122, 100, 5 , 9 },
{ 135, 100, 5 , 7 },
{ 148, 100, 4 , 9 },
{ 160, 100, 1 , 9 },
{ 169, 100, 4 , 9 },
{ 181, 100, 6 , 2 },
};
// Font glyphs info data
// NOTE: No glyphs.image data provided
static const GlyphInfo darkFontChars[95] = {
{ 32, 0, 13, 4, { 0 }},
{ 33, 2, 4, 5, { 0 }},
{ 34, 2, 4, 7, { 0 }},
{ 35, 1, 4, 8, { 0 }},
{ 36, 1, 2, 7, { 0 }},
{ 37, 1, 4, 9, { 0 }},
{ 38, 1, 4, 7, { 0 }},
{ 39, 2, 4, 5, { 0 }},
{ 40, 3, 4, 7, { 0 }},
{ 41, 1, 4, 7, { 0 }},
{ 42, 1, 4, 7, { 0 }},
{ 43, 1, 6, 7, { 0 }},
{ 44, 1, 12, 5, { 0 }},
{ 45, 1, 8, 6, { 0 }},
{ 46, 2, 12, 5, { 0 }},
{ 47, 1, 4, 5, { 0 }},
{ 48, 1, 4, 7, { 0 }},
{ 49, 2, 4, 7, { 0 }},
{ 50, 1, 4, 7, { 0 }},
{ 51, 1, 4, 7, { 0 }},
{ 52, 1, 4, 7, { 0 }},
{ 53, 1, 4, 7, { 0 }},
{ 54, 1, 4, 7, { 0 }},
{ 55, 1, 4, 7, { 0 }},
{ 56, 1, 4, 7, { 0 }},
{ 57, 1, 4, 7, { 0 }},
{ 58, 2, 6, 5, { 0 }},
{ 59, 1, 6, 5, { 0 }},
{ 60, 1, 6, 5, { 0 }},
{ 61, 1, 7, 6, { 0 }},
{ 62, 1, 6, 5, { 0 }},
{ 63, 1, 4, 7, { 0 }},
{ 64, 1, 4, 9, { 0 }},
{ 65, 1, 4, 7, { 0 }},
{ 66, 1, 4, 7, { 0 }},
{ 67, 1, 4, 7, { 0 }},
{ 68, 1, 4, 7, { 0 }},
{ 69, 1, 4, 7, { 0 }},
{ 70, 1, 4, 7, { 0 }},
{ 71, 1, 4, 7, { 0 }},
{ 72, 1, 4, 7, { 0 }},
{ 73, 2, 4, 5, { 0 }},
{ 74, 1, 4, 7, { 0 }},
{ 75, 1, 4, 7, { 0 }},
{ 76, 1, 4, 7, { 0 }},
{ 77, 1, 4, 9, { 0 }},
{ 78, 1, 4, 7, { 0 }},
{ 79, 1, 4, 7, { 0 }},
{ 80, 1, 4, 7, { 0 }},
{ 81, 1, 4, 7, { 0 }},
{ 82, 1, 4, 7, { 0 }},
{ 83, 1, 4, 7, { 0 }},
{ 84, 1, 4, 7, { 0 }},
{ 85, 1, 4, 7, { 0 }},
{ 86, 1, 4, 7, { 0 }},
{ 87, 1, 4, 9, { 0 }},
{ 88, 1, 4, 7, { 0 }},
{ 89, 1, 4, 7, { 0 }},
{ 90, 1, 4, 7, { 0 }},
{ 91, 3, 4, 7, { 0 }},
{ 92, 1, 4, 5, { 0 }},
{ 93, 1, 4, 7, { 0 }},
{ 94, 1, 4, 7, { 0 }},
{ 95, 0, 14, 5, { 0 }},
{ 96, 1, 4, 5, { 0 }},
{ 97, 1, 6, 7, { 0 }},
{ 98, 1, 4, 7, { 0 }},
{ 99, 1, 6, 7, { 0 }},
{ 100, 1, 4, 7, { 0 }},
{ 101, 1, 6, 7, { 0 }},
{ 102, 1, 4, 6, { 0 }},
{ 103, 1, 6, 7, { 0 }},
{ 104, 1, 4, 7, { 0 }},
{ 105, 2, 4, 5, { 0 }},
{ 106, 1, 4, 7, { 0 }},
{ 107, 1, 4, 7, { 0 }},
{ 108, 2, 4, 5, { 0 }},
{ 109, 1, 6, 9, { 0 }},
{ 110, 1, 6, 7, { 0 }},
{ 111, 1, 6, 7, { 0 }},
{ 112, 1, 6, 7, { 0 }},
{ 113, 1, 6, 7, { 0 }},
{ 114, 1, 6, 7, { 0 }},
{ 115, 1, 6, 7, { 0 }},
{ 116, 1, 5, 6, { 0 }},
{ 117, 1, 6, 7, { 0 }},
{ 118, 1, 6, 7, { 0 }},
{ 119, 1, 6, 9, { 0 }},
{ 120, 1, 6, 7, { 0 }},
{ 121, 1, 6, 7, { 0 }},
{ 122, 1, 6, 7, { 0 }},
{ 123, 2, 4, 7, { 0 }},
{ 124, 2, 4, 5, { 0 }},
{ 125, 1, 4, 7, { 0 }},
{ 126, 1, 4, 8, { 0 }},
};
// Style loading function: dark
static void GuiLoadStyleDark(void)
{
// Load style properties provided
// NOTE: Default properties are propagated
for (int i = 0; i < DARK_STYLE_PROPS_COUNT; i++)
{
GuiSetStyle(darkStyleProps[i].controlId, darkStyleProps[i].propertyId, darkStyleProps[i].propertyValue);
}
// Custom font loading
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
int darkFontDataSize = 0;
unsigned char *data = DecompressData(darkFontData, DARK_COMPRESSED_DATA_SIZE, &darkFontDataSize);
Image imFont = { data, 256, 256, 1, 2 };
Font font = { 0 };
font.baseSize = 16;
font.glyphCount = 95;
// Load texture from image
font.texture = LoadTextureFromImage(imFont);
UnloadImage(imFont); // Uncompressed data can be unloaded from memory
// Copy char recs data from global fontRecs
// NOTE: Required to avoid issues if trying to free font
font.recs = (Rectangle *)malloc(font.glyphCount*sizeof(Rectangle));
memcpy(font.recs, darkFontRecs, font.glyphCount*sizeof(Rectangle));
// Copy font char info data from global fontChars
// NOTE: Required to avoid issues if trying to free font
font.glyphs = (GlyphInfo *)malloc(font.glyphCount*sizeof(GlyphInfo));
memcpy(font.glyphs, darkFontChars, font.glyphCount*sizeof(GlyphInfo));
GuiSetFont(font);
// TODO: Setup a white rectangle on the font to be used on shapes drawing,
// this way we make sure all gui can be drawn on a single pass because no texture change is required
// NOTE: Setting up this rectangle is a manual process (for the moment)
Rectangle whiteChar = { 124, 6, 1, 1 };
SetShapesTexture(font.texture, whiteChar);
//-----------------------------------------------------------------
// TODO: Custom user style setup: Set specific properties here (if required)
// i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT
}

View File

@ -1,337 +0,0 @@
//////////////////////////////////////////////////////////////////////////////////
// //
// StyleAsCode exporter v1.2 - Style data exported as a values array //
// //
// USAGE: On init call: GuiLoadStyleJungle(); //
// //
// more info and bugs-report: github.com/raysan5/raygui //
// feedback and support: ray[at]raylibtech.com //
// //
// Copyright (c) 2020-2023 raylib technologies (@raylibtech) //
// //
//////////////////////////////////////////////////////////////////////////////////
#define JUNGLE_STYLE_PROPS_COUNT 16
// Custom style name: jungle
static const GuiStyleProp jungleStyleProps[JUNGLE_STYLE_PROPS_COUNT] = {
{ 0, 0, 0x60827dff }, // DEFAULT_BORDER_COLOR_NORMAL
{ 0, 1, 0x2c3334ff }, // DEFAULT_BASE_COLOR_NORMAL
{ 0, 2, 0x82a29fff }, // DEFAULT_TEXT_COLOR_NORMAL
{ 0, 3, 0x5f9aa8ff }, // DEFAULT_BORDER_COLOR_FOCUSED
{ 0, 4, 0x334e57ff }, // DEFAULT_BASE_COLOR_FOCUSED
{ 0, 5, 0x6aa9b8ff }, // DEFAULT_TEXT_COLOR_FOCUSED
{ 0, 6, 0xa9cb8dff }, // DEFAULT_BORDER_COLOR_PRESSED
{ 0, 7, 0x3b6357ff }, // DEFAULT_BASE_COLOR_PRESSED
{ 0, 8, 0x97af81ff }, // DEFAULT_TEXT_COLOR_PRESSED
{ 0, 9, 0x5b6462ff }, // DEFAULT_BORDER_COLOR_DISABLED
{ 0, 10, 0x2c3334ff }, // DEFAULT_BASE_COLOR_DISABLED
{ 0, 11, 0x666b69ff }, // DEFAULT_TEXT_COLOR_DISABLED
{ 0, 16, 0x0000000c }, // DEFAULT_TEXT_SIZE
{ 0, 17, 0x00000000 }, // DEFAULT_TEXT_SPACING
{ 0, 18, 0x638465ff }, // DEFAULT_LINE_COLOR
{ 0, 19, 0x2b3a3aff }, // DEFAULT_BACKGROUND_COLOR
};
// WARNING: This style uses a custom font: (size: 12, spacing: 0)
#define JUNGLE_COMPRESSED_DATA_SIZE 1059
// Font image pixels data compressed (DEFLATE)
// NOTE: Original pixel data simplified to GRAYSCALE
static unsigned char jungleFontData[JUNGLE_COMPRESSED_DATA_SIZE] = { 0xed,
0xdd, 0xe1, 0x6e, 0xdb, 0x20, 0x14, 0x06, 0x50, 0x84, 0xfa, 0xfe, 0xaf, 0xcc, 0xd4, 0x6d, 0xdd, 0xb4, 0x35, 0xc6, 0xdc,
0x0b, 0xd8, 0x69, 0x7a, 0x7a, 0xd4, 0x3f, 0x71, 0xeb, 0xd8, 0x5c, 0x83, 0x53, 0xf1, 0x15, 0xb7, 0x02, 0x00, 0xf0, 0xc9,
0xfb, 0xd7, 0xe3, 0xd7, 0x1e, 0x6d, 0x29, 0xbf, 0xb7, 0x8c, 0xef, 0xeb, 0xe3, 0xf5, 0x5f, 0x5b, 0xea, 0xe1, 0x4f, 0x3c,
0xde, 0x63, 0x3d, 0x38, 0x86, 0xa3, 0xa3, 0x3e, 0x3e, 0xb2, 0x12, 0xda, 0x72, 0xbc, 0xff, 0xe3, 0xf6, 0x2a, 0x81, 0x73,
0xf8, 0xf7, 0xab, 0x04, 0xce, 0xa5, 0xff, 0x7b, 0xbb, 0xeb, 0xdf, 0x6f, 0x83, 0xe3, 0x6d, 0xbf, 0xbe, 0xdf, 0x5b, 0xa2,
0x06, 0xf6, 0x79, 0xfc, 0xf3, 0x25, 0x74, 0x05, 0xc6, 0xaf, 0x8c, 0x58, 0xeb, 0xf6, 0x7e, 0xfa, 0xec, 0x1c, 0x5a, 0xf0,
0x08, 0x3e, 0x5e, 0xdf, 0x59, 0xff, 0xf2, 0xe7, 0x3d, 0xc6, 0xfb, 0xff, 0x59, 0x55, 0x5a, 0x7b, 0x7b, 0xd8, 0x12, 0xa5,
0x5b, 0x9b, 0x9a, 0x78, 0xa7, 0x15, 0x57, 0x73, 0x59, 0xd4, 0xba, 0xb5, 0x7b, 0x0e, 0x2d, 0x51, 0xff, 0xdc, 0x15, 0xba,
0x6a, 0x3f, 0xb9, 0xfe, 0xff, 0xee, 0xed, 0xe7, 0x15, 0xd0, 0xdf, 0xeb, 0xfc, 0x11, 0xaf, 0xea, 0xff, 0x65, 0x6b, 0xf5,
0x67, 0xea, 0x7f, 0xc5, 0xf8, 0xdf, 0xff, 0xf9, 0x7e, 0x9b, 0x3d, 0xde, 0x5f, 0xfd, 0xdd, 0xff, 0xe3, 0x77, 0xcf, 0x15,
0xf5, 0x8f, 0xdf, 0xff, 0xf7, 0x56, 0x7f, 0xc5, 0xf8, 0xff, 0x8c, 0x9f, 0x23, 0xcf, 0xee, 0xe3, 0x8f, 0xaf, 0x9d, 0xb6,
0xbd, 0xff, 0xdf, 0xa1, 0x57, 0xfd, 0xb3, 0xcf, 0x7f, 0x6d, 0x62, 0x9c, 0xdd, 0xdd, 0xff, 0x33, 0xfb, 0xfa, 0x68, 0x89,
0x96, 0xe8, 0x9f, 0x5f, 0xb5, 0xfe, 0xbd, 0xea, 0xb3, 0x62, 0xac, 0x89, 0xdc, 0xe5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x5e, 0x73, 0xc6, 0xa4, 0x3f, 0xff, 0xbe, 0x72, 0x26, 0x72, 0xd7, 0xb6, 0xf1, 0xb4, 0x41, 0x24, 0xb9, 0x52, 0x13, 0x2d,
0x76, 0x57, 0xbb, 0xec, 0x4a, 0xfb, 0x95, 0x70, 0x36, 0x63, 0xe4, 0x68, 0xb2, 0xef, 0x37, 0x53, 0xff, 0x1a, 0x9c, 0x7b,
0xed, 0x27, 0xf4, 0x8e, 0xf2, 0x8c, 0xc7, 0x33, 0xd7, 0xb3, 0xe7, 0x17, 0xdd, 0x16, 0x1b, 0x01, 0xca, 0x25, 0xfd, 0x7f,
0x2c, 0xc3, 0xb4, 0x27, 0xdd, 0xf8, 0x38, 0x67, 0xd6, 0x3b, 0xd6, 0xb7, 0x70, 0xa2, 0xf0, 0xef, 0x6c, 0xf3, 0xde, 0xeb,
0x7b, 0x75, 0xea, 0x33, 0x9b, 0x28, 0xc9, 0x5c, 0x93, 0x99, 0x04, 0xeb, 0x8a, 0xf1, 0x7f, 0x4d, 0xff, 0xef, 0x5d, 0xa7,
0xed, 0xbf, 0xef, 0x35, 0xe3, 0xf8, 0x5d, 0xf5, 0xdf, 0x31, 0x56, 0x97, 0x81, 0x51, 0x21, 0x7b, 0x2c, 0xb9, 0xfb, 0x7f,
0x26, 0xa9, 0xd3, 0x4b, 0x2b, 0xe5, 0x3f, 0x4f, 0xdd, 0xd1, 0xff, 0x67, 0xfa, 0x78, 0x6e, 0xfc, 0xef, 0xd7, 0x7f, 0x5d,
0xba, 0xad, 0xdd, 0xf2, 0x69, 0x7a, 0xa4, 0x8f, 0x3d, 0xd7, 0xfd, 0x9f, 0x95, 0x79, 0xc6, 0xfb, 0xfe, 0x9e, 0x52, 0x15,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xe6, 0xf1, 0xae, 0xca, 0x94, 0xb4, 0xc1, 0x55, 0x7c, 0x8e, 0xf3, 0x5a, 0x57,
0xa5, 0xf5, 0xae, 0x6f, 0xef, 0xd5, 0xb9, 0x8f, 0x15, 0x73, 0xd2, 0x99, 0x15, 0xcc, 0xe6, 0xb3, 0x88, 0xed, 0x29, 0x12,
0x79, 0x3b, 0xda, 0xed, 0xce, 0xfa, 0x67, 0x8e, 0x27, 0x5f, 0xff, 0x96, 0x5c, 0x61, 0xf0, 0x6c, 0x65, 0x98, 0xe7, 0xaa,
0x7f, 0x26, 0x75, 0x30, 0x53, 0xff, 0xf3, 0xb1, 0xaa, 0x74, 0xea, 0x11, 0x1f, 0xe3, 0xb3, 0xf5, 0x6f, 0xc9, 0x75, 0x1f,
0xf7, 0xdc, 0xc5, 0xf6, 0xd4, 0x3f, 0xd3, 0x6e, 0xaf, 0x32, 0xfe, 0x9f, 0xef, 0xb3, 0x26, 0xc7, 0xff, 0x76, 0x3a, 0xaa,
0xb4, 0xe5, 0x69, 0xd4, 0x78, 0x9f, 0x1a, 0x6d, 0x9f, 0xef, 0x5b, 0xff, 0xb2, 0xa5, 0xfe, 0x7b, 0xde, 0xf1, 0xeb, 0xdc,
0xff, 0x33, 0xab, 0x57, 0xdf, 0x91, 0x73, 0x9b, 0xcb, 0x86, 0x9f, 0x6d, 0xbd, 0xa2, 0x65, 0xf6, 0x8d, 0xff, 0x52, 0x80,
0x5f, 0x27, 0x25, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xc5, 0x1c, 0x45, 0x7e, 0xee, 0x6c, 0xc7, 0x0c, 0xe0, 0xe7,
0xd7, 0xeb, 0xc0, 0x1c, 0xe6, 0xff, 0xaf, 0xd7, 0x83, 0xc4, 0x48, 0x0b, 0xae, 0xf9, 0x97, 0x7b, 0x1e, 0xef, 0xe8, 0x3a,
0x68, 0xf9, 0x04, 0xe1, 0x8a, 0x79, 0xc0, 0xeb, 0xeb, 0x5f, 0x86, 0xe6, 0x63, 0x3f, 0x57, 0xb2, 0x26, 0x32, 0x43, 0x35,
0xb8, 0xe2, 0x53, 0x6f, 0x85, 0xa8, 0x78, 0x9a, 0xe9, 0xbc, 0x15, 0x32, 0x6b, 0xdd, 0x9d, 0xed, 0x2d, 0xf7, 0x84, 0xe2,
0x5e, 0x3a, 0xe6, 0x2c, 0xcb, 0x12, 0x3f, 0xf3, 0x1a, 0x3e, 0xb7, 0x3a, 0x30, 0x06, 0xec, 0xcf, 0x48, 0x97, 0x70, 0x7f,
0x9c, 0xcb, 0xdd, 0xed, 0xaf, 0x7f, 0x19, 0xc8, 0xf8, 0xad, 0x4e, 0xa4, 0xb4, 0x93, 0xa7, 0xdf, 0x66, 0xae, 0x80, 0xdd,
0xf5, 0x3f, 0x3b, 0xd7, 0x7c, 0x4a, 0xa8, 0x2c, 0xbd, 0x6e, 0x56, 0xd7, 0x7f, 0xe4, 0x3a, 0x5d, 0x7d, 0x05, 0x67, 0xae,
0x80, 0x6b, 0xfa, 0x7f, 0x0b, 0xd7, 0xbf, 0x3f, 0x36, 0xac, 0x6f, 0xbd, 0x4c, 0x0a, 0x28, 0x37, 0xa2, 0xcc, 0xa6, 0xd5,
0x32, 0x55, 0xac, 0xa9, 0x91, 0xe3, 0x8a, 0x4f, 0xd0, 0xb9, 0x67, 0x55, 0xaf, 0x4e, 0x6c, 0xe6, 0x5a, 0xe2, 0xfa, 0xfa,
0xb7, 0xf4, 0x13, 0xbf, 0xeb, 0xd3, 0x3d, 0xfd, 0x3a, 0xd7, 0xeb, 0xf2, 0x89, 0xbd, 0xf5, 0xfd, 0xff, 0xf9, 0xfe, 0x1b,
0xed, 0x8a, 0xdf, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x9e, 0x6b, 0x14, 0xc4, 0x57, 0xaa, 0x39, 0xff, 0x8d, 0xec,
0xb3, 0xb3, 0xae, 0x7c, 0x76, 0xee, 0xae, 0xe7, 0xdb, 0xe5, 0xd7, 0x05, 0x6b, 0x5b, 0x9e, 0x00, 0xb7, 0x7e, 0xde, 0x6c,
0x6e, 0x15, 0xb3, 0xb3, 0x16, 0xca, 0xae, 0xb8, 0x15, 0xcd, 0x60, 0xcc, 0xe4, 0x7a, 0xb2, 0x99, 0x8f, 0xf5, 0x39, 0xbc,
0x35, 0xd9, 0xb6, 0x5c, 0xff, 0xcf, 0xe5, 0x42, 0x9e, 0xad, 0xfe, 0xe5, 0xa2, 0x7c, 0xde, 0x4c, 0xfd, 0x67, 0x9f, 0xfe,
0x9c, 0x4f, 0x64, 0xc5, 0x5b, 0xf5, 0x15, 0xea, 0x3f, 0x96, 0xde, 0xcd, 0xe4, 0x08, 0x57, 0xe7, 0xf0, 0xee, 0xaa, 0x7f,
0x4b, 0x3d, 0x3b, 0x77, 0xa6, 0xfe, 0x73, 0x79, 0xf9, 0xeb, 0xfa, 0x7f, 0xfe, 0x1d, 0xcb, 0x96, 0x27, 0xa3, 0xcf, 0xf6,
0xd6, 0xd8, 0x4a, 0x8d, 0x77, 0x24, 0xb5, 0xd6, 0xe7, 0xe5, 0x76, 0x25, 0xbb, 0xee, 0x4d, 0x2f, 0xae, 0xca, 0xaf, 0xce,
0xae, 0xfe, 0x7d, 0x47, 0xfd, 0x65, 0xc7, 0x5e, 0xfb, 0x2a, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x6e, 0xf3, 0x38,
0xeb, 0x9e, 0x47, 0x15, 0x5d, 0xd5, 0xad, 0x85, 0x57, 0x68, 0x63, 0xd7, 0x0c, 0x70, 0xe9, 0x54, 0x69, 0x2e, 0xfd, 0x72,
0xf4, 0x6a, 0xed, 0x26, 0x45, 0xb8, 0xbb, 0xfe, 0x35, 0xbc, 0x56, 0x5b, 0x7c, 0x45, 0x33, 0x9e, 0xb5, 0xfe, 0xf9, 0x14,
0x97, 0x2b, 0xe0, 0x15, 0x92, 0x1c, 0x99, 0x9c, 0x9b, 0xfe, 0xff, 0x9a, 0xff, 0x07, 0xa2, 0xfe, 0x92, 0x5c, 0xea, 0xcf,
0xca, 0xbf, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x29, 0x3f, 0x00 };
// Font characters rectangles data
static const Rectangle jungleFontRecs[95] = {
{ 4, 4, 5 , 12 },
{ 17, 4, 2 , 7 },
{ 27, 4, 5 , 3 },
{ 40, 4, 5 , 5 },
{ 53, 4, 6 , 7 },
{ 67, 4, 7 , 7 },
{ 82, 4, 5 , 7 },
{ 95, 4, 3 , 3 },
{ 106, 4, 4 , 8 },
{ 118, 4, 4 , 8 },
{ 130, 4, 5 , 5 },
{ 143, 4, 5 , 5 },
{ 156, 4, 2 , 3 },
{ 166, 4, 5 , 1 },
{ 179, 4, 2 , 2 },
{ 189, 4, 7 , 7 },
{ 204, 4, 7 , 6 },
{ 219, 4, 6 , 6 },
{ 233, 4, 6 , 6 },
{ 4, 24, 6 , 6 },
{ 18, 24, 6 , 6 },
{ 32, 24, 6 , 6 },
{ 46, 24, 6 , 6 },
{ 60, 24, 6 , 6 },
{ 74, 24, 6 , 6 },
{ 88, 24, 6 , 6 },
{ 102, 24, 2 , 5 },
{ 112, 24, 2 , 6 },
{ 122, 24, 3 , 5 },
{ 133, 24, 5 , 3 },
{ 146, 24, 3 , 5 },
{ 157, 24, 6 , 7 },
{ 171, 24, 7 , 7 },
{ 186, 24, 6 , 7 },
{ 200, 24, 6 , 7 },
{ 214, 24, 6 , 7 },
{ 228, 24, 6 , 7 },
{ 4, 44, 6 , 7 },
{ 18, 44, 6 , 7 },
{ 32, 44, 6 , 7 },
{ 46, 44, 6 , 7 },
{ 60, 44, 6 , 7 },
{ 74, 44, 6 , 7 },
{ 88, 44, 6 , 7 },
{ 102, 44, 6 , 7 },
{ 116, 44, 7 , 7 },
{ 131, 44, 6 , 7 },
{ 145, 44, 6 , 7 },
{ 159, 44, 6 , 7 },
{ 173, 44, 7 , 8 },
{ 188, 44, 6 , 7 },
{ 202, 44, 6 , 7 },
{ 216, 44, 6 , 7 },
{ 230, 44, 6 , 7 },
{ 4, 64, 6 , 7 },
{ 18, 64, 7 , 7 },
{ 33, 64, 6 , 7 },
{ 47, 64, 6 , 7 },
{ 61, 64, 6 , 7 },
{ 75, 64, 4 , 8 },
{ 87, 64, 7 , 7 },
{ 102, 64, 4 , 8 },
{ 114, 64, 4 , 2 },
{ 126, 64, 6 , 1 },
{ 140, 64, 2 , 2 },
{ 150, 64, 6 , 5 },
{ 164, 64, 6 , 7 },
{ 178, 64, 6 , 5 },
{ 192, 64, 6 , 7 },
{ 206, 64, 6 , 5 },
{ 220, 64, 6 , 7 },
{ 234, 64, 6 , 7 },
{ 4, 84, 6 , 7 },
{ 18, 84, 6 , 7 },
{ 32, 84, 5 , 8 },
{ 45, 84, 6 , 7 },
{ 59, 84, 6 , 7 },
{ 73, 84, 7 , 5 },
{ 88, 84, 6 , 5 },
{ 102, 84, 6 , 5 },
{ 116, 84, 6 , 7 },
{ 130, 84, 6 , 7 },
{ 144, 84, 6 , 5 },
{ 158, 84, 6 , 5 },
{ 172, 84, 6 , 6 },
{ 186, 84, 6 , 5 },
{ 200, 84, 6 , 5 },
{ 214, 84, 7 , 5 },
{ 229, 84, 6 , 5 },
{ 4, 104, 6 , 7 },
{ 18, 104, 6 , 5 },
{ 32, 104, 4 , 8 },
{ 44, 104, 2 , 8 },
{ 54, 104, 4 , 8 },
{ 66, 104, 5 , 2 },
};
// Font characters info data
// NOTE: No chars.image data provided
static const GlyphInfo jungleFontChars[95] = {
{ 32, 0, 9, 5, { 0 }},
{ 33, 0, 2, 3, { 0 }},
{ 34, 0, 2, 6, { 0 }},
{ 35, 0, 3, 6, { 0 }},
{ 36, 0, 2, 7, { 0 }},
{ 37, 0, 2, 8, { 0 }},
{ 38, 0, 2, 6, { 0 }},
{ 39, 0, 2, 4, { 0 }},
{ 40, 0, 2, 5, { 0 }},
{ 41, 0, 2, 5, { 0 }},
{ 42, 0, 2, 6, { 0 }},
{ 43, 0, 3, 6, { 0 }},
{ 44, 0, 7, 3, { 0 }},
{ 45, 0, 5, 6, { 0 }},
{ 46, 0, 7, 3, { 0 }},
{ 47, 0, 2, 8, { 0 }},
{ 48, 0, 3, 8, { 0 }},
{ 49, 0, 3, 7, { 0 }},
{ 50, 0, 3, 7, { 0 }},
{ 51, 0, 3, 7, { 0 }},
{ 52, 0, 3, 7, { 0 }},
{ 53, 0, 3, 7, { 0 }},
{ 54, 0, 3, 7, { 0 }},
{ 55, 0, 3, 7, { 0 }},
{ 56, 0, 3, 7, { 0 }},
{ 57, 0, 3, 7, { 0 }},
{ 58, 0, 4, 3, { 0 }},
{ 59, 0, 4, 3, { 0 }},
{ 60, 0, 3, 4, { 0 }},
{ 61, 0, 4, 6, { 0 }},
{ 62, 0, 3, 4, { 0 }},
{ 63, 0, 2, 7, { 0 }},
{ 64, 0, 2, 8, { 0 }},
{ 65, 0, 2, 7, { 0 }},
{ 66, 0, 2, 7, { 0 }},
{ 67, 0, 2, 7, { 0 }},
{ 68, 0, 2, 7, { 0 }},
{ 69, 0, 2, 7, { 0 }},
{ 70, 0, 2, 7, { 0 }},
{ 71, 0, 2, 7, { 0 }},
{ 72, 0, 2, 7, { 0 }},
{ 73, 0, 2, 7, { 0 }},
{ 74, 0, 2, 7, { 0 }},
{ 75, 0, 2, 7, { 0 }},
{ 76, 0, 2, 7, { 0 }},
{ 77, 0, 2, 8, { 0 }},
{ 78, 0, 2, 7, { 0 }},
{ 79, 0, 2, 7, { 0 }},
{ 80, 0, 2, 7, { 0 }},
{ 81, 0, 2, 7, { 0 }},
{ 82, 0, 2, 7, { 0 }},
{ 83, 0, 2, 7, { 0 }},
{ 84, 0, 2, 7, { 0 }},
{ 85, 0, 2, 7, { 0 }},
{ 86, 0, 2, 7, { 0 }},
{ 87, 0, 2, 8, { 0 }},
{ 88, 0, 2, 7, { 0 }},
{ 89, 0, 2, 7, { 0 }},
{ 90, 0, 2, 7, { 0 }},
{ 91, 0, 2, 5, { 0 }},
{ 92, 0, 2, 8, { 0 }},
{ 93, 0, 2, 5, { 0 }},
{ 94, 0, -1, 5, { 0 }},
{ 95, 0, 10, 7, { 0 }},
{ 96, 0, -1, 3, { 0 }},
{ 97, 0, 4, 7, { 0 }},
{ 98, 0, 2, 7, { 0 }},
{ 99, 0, 4, 7, { 0 }},
{ 100, 0, 2, 7, { 0 }},
{ 101, 0, 4, 7, { 0 }},
{ 102, 0, 2, 7, { 0 }},
{ 103, 0, 4, 7, { 0 }},
{ 104, 0, 2, 7, { 0 }},
{ 105, 0, 2, 7, { 0 }},
{ 106, 0, 2, 6, { 0 }},
{ 107, 0, 2, 7, { 0 }},
{ 108, 0, 2, 7, { 0 }},
{ 109, 0, 4, 8, { 0 }},
{ 110, 0, 4, 7, { 0 }},
{ 111, 0, 4, 7, { 0 }},
{ 112, 0, 4, 7, { 0 }},
{ 113, 0, 4, 7, { 0 }},
{ 114, 0, 4, 7, { 0 }},
{ 115, 0, 4, 7, { 0 }},
{ 116, 0, 3, 7, { 0 }},
{ 117, 0, 4, 7, { 0 }},
{ 118, 0, 4, 7, { 0 }},
{ 119, 0, 4, 8, { 0 }},
{ 120, 0, 4, 7, { 0 }},
{ 121, 0, 4, 7, { 0 }},
{ 122, 0, 4, 7, { 0 }},
{ 123, 0, 2, 5, { 0 }},
{ 124, 0, 2, 3, { 0 }},
{ 125, 0, 2, 5, { 0 }},
{ 126, 0, -1, 6, { 0 }},
};
// Style loading function: jungle
static void GuiLoadStyleJungle(void)
{
// Load style properties provided
// NOTE: Default properties are propagated
for (int i = 0; i < JUNGLE_STYLE_PROPS_COUNT; i++)
{
GuiSetStyle(jungleStyleProps[i].controlId, jungleStyleProps[i].propertyId, jungleStyleProps[i].propertyValue);
}
// Custom font loading
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
int jungleFontDataSize = 0;
unsigned char *data = DecompressData(jungleFontData, JUNGLE_COMPRESSED_DATA_SIZE, &jungleFontDataSize);
Image imFont = { data, 256, 256, 1, 2 };
Font font = { 0 };
font.baseSize = 12;
font.glyphCount = 95;
// Load texture from image
font.texture = LoadTextureFromImage(imFont);
UnloadImage(imFont); // Uncompressed data can be unloaded from memory
// Copy char recs data from global fontRecs
// NOTE: Required to avoid issues if trying to free font
font.recs = (Rectangle *)malloc(font.glyphCount*sizeof(Rectangle));
memcpy(font.recs, jungleFontRecs, font.glyphCount*sizeof(Rectangle));
// Copy font char info data from global fontChars
// NOTE: Required to avoid issues if trying to free font
font.glyphs = (GlyphInfo *)malloc(font.glyphCount*sizeof(GlyphInfo));
memcpy(font.glyphs, jungleFontChars, font.glyphCount*sizeof(GlyphInfo));
GuiSetFont(font);
// Setup a white rectangle on the font to be used on shapes drawing,
// this way we make sure all gui can be drawn on a single pass because no texture change is required
// NOTE: Setting up this rectangle is a manual process (for the moment)
Rectangle whiteChar = { 27, 4, 2, 2 };
SetShapesTexture(font.texture, whiteChar);
}

View File

@ -1,349 +0,0 @@
//////////////////////////////////////////////////////////////////////////////////
// //
// StyleAsCode exporter v1.2 - Style data exported as a values array //
// //
// USAGE: On init call: GuiLoadStyleLavanda(); //
// //
// more info and bugs-report: github.com/raysan5/raygui //
// feedback and support: ray[at]raylibtech.com //
// //
// Copyright (c) 2020-2023 raylib technologies (@raylibtech) //
// //
//////////////////////////////////////////////////////////////////////////////////
#define LAVANDA_STYLE_PROPS_COUNT 15
// Custom style name: lavanda
static const GuiStyleProp lavandaStyleProps[LAVANDA_STYLE_PROPS_COUNT] = {
{ 0, 0, 0xab9bd3ff }, // DEFAULT_BORDER_COLOR_NORMAL
{ 0, 1, 0x3e4350ff }, // DEFAULT_BASE_COLOR_NORMAL
{ 0, 2, 0xdadaf4ff }, // DEFAULT_TEXT_COLOR_NORMAL
{ 0, 3, 0xee84a0ff }, // DEFAULT_BORDER_COLOR_FOCUSED
{ 0, 4, 0xf4b7c7ff }, // DEFAULT_BASE_COLOR_FOCUSED
{ 0, 5, 0xb7657bff }, // DEFAULT_TEXT_COLOR_FOCUSED
{ 0, 6, 0xd5c8dbff }, // DEFAULT_BORDER_COLOR_PRESSED
{ 0, 7, 0x966ec0ff }, // DEFAULT_BASE_COLOR_PRESSED
{ 0, 8, 0xd7ccf7ff }, // DEFAULT_TEXT_COLOR_PRESSED
{ 0, 9, 0x8fa2bdff }, // DEFAULT_BORDER_COLOR_DISABLED
{ 0, 10, 0x6b798dff }, // DEFAULT_BASE_COLOR_DISABLED
{ 0, 11, 0x8292a9ff }, // DEFAULT_TEXT_COLOR_DISABLED
{ 0, 16, 0x00000010 }, // DEFAULT_TEXT_SIZE
{ 0, 18, 0x84adb7ff }, // DEFAULT_LINE_COLOR
{ 0, 19, 0x5b5b81ff }, // DEFAULT_BACKGROUND_COLOR
};
// WARNING: This style uses a custom font: (size: 16, spacing: 1)
#define LAVANDA_COMPRESSED_DATA_SIZE 1317
// Font image pixels data compressed (DEFLATE)
// NOTE: Original pixel data simplified to GRAYSCALE
static unsigned char lavandaFontData[LAVANDA_COMPRESSED_DATA_SIZE] = { 0xed,
0xdd, 0x4b, 0x96, 0xa3, 0x48, 0x0c, 0x05, 0x50, 0xf6, 0xbf, 0xe9, 0xd7, 0xa3, 0x3a, 0xdd, 0x7d, 0xaa, 0x0c, 0x21, 0x85,
0xc0, 0x76, 0xd6, 0xcd, 0x3b, 0x4b, 0xff, 0x00, 0x11, 0x80, 0xcd, 0x13, 0xe4, 0x00, 0x00, 0xf8, 0x4d, 0xfe, 0xf8, 0x9f,
0x9c, 0x3c, 0x37, 0xcb, 0xef, 0xf4, 0xeb, 0xff, 0xb9, 0x78, 0xc6, 0xff, 0x9f, 0xb5, 0xf6, 0xbe, 0x59, 0xfe, 0xfc, 0xce,
0x23, 0xf9, 0xe3, 0xf4, 0x65, 0xe3, 0xf5, 0xaf, 0xde, 0xa1, 0xfe, 0xfc, 0x7f, 0xff, 0xbe, 0xa1, 0xfe, 0x59, 0x78, 0xe5,
0xf9, 0xe3, 0xd9, 0x58, 0x27, 0xae, 0x96, 0x56, 0xca, 0x6b, 0xcc, 0xce, 0x52, 0x3d, 0x9b, 0xc6, 0xca, 0xf3, 0x27, 0xa6,
0xb0, 0x5e, 0xff, 0x9c, 0x2e, 0xcb, 0xd7, 0xff, 0x3f, 0x5f, 0xa7, 0xee, 0xae, 0x7f, 0x67, 0x1c, 0xe5, 0xa6, 0xa5, 0x5a,
0x1d, 0x6f, 0xd5, 0x39, 0x9d, 0x99, 0xd2, 0x4e, 0x95, 0x56, 0xd6, 0xee, 0x5c, 0xbc, 0x77, 0x06, 0xa6, 0xf9, 0xd5, 0xb4,
0xdd, 0x3d, 0x8a, 0xd6, 0xd7, 0xd8, 0x8c, 0xcc, 0x51, 0x6e, 0x1c, 0xff, 0x53, 0x63, 0xf4, 0xcf, 0xaf, 0xbe, 0xda, 0x4b,
0x64, 0xbc, 0xfe, 0x53, 0x6b, 0xff, 0x3b, 0xea, 0x9f, 0xdb, 0xa7, 0x3d, 0xcb, 0xcf, 0xbb, 0xda, 0x93, 0xe6, 0x72, 0x6a,
0x73, 0x79, 0xe4, 0x96, 0x1b, 0xc6, 0xff, 0x27, 0x1c, 0x53, 0x7f, 0x7f, 0xfd, 0x8f, 0xc5, 0xad, 0xf8, 0xd1, 0x38, 0x0a,
0xfc, 0x59, 0xf5, 0x3f, 0xaf, 0x70, 0xc6, 0xf6, 0xf2, 0x79, 0xcb, 0x7c, 0x75, 0xe6, 0xee, 0xbf, 0x8f, 0xa7, 0xf1, 0xea,
0xbf, 0xb3, 0xfe, 0xd9, 0x18, 0x87, 0xcf, 0xef, 0x01, 0xf7, 0x8e, 0x49, 0x7e, 0xbd, 0x3a, 0x0f, 0xef, 0xff, 0x9f, 0xab,
0x7f, 0xf5, 0xfb, 0xff, 0xd5, 0x77, 0xad, 0x6f, 0xf8, 0x25, 0xe9, 0x5d, 0x63, 0xec, 0x6f, 0x59, 0x0a, 0xea, 0xaf, 0xfe,
0xd6, 0xb6, 0xcf, 0x3f, 0xf6, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, 0xeb, 0xcc, 0x44, 0x4e, 0x93, 0x5d, 0xd5, 0x44,
0x6d, 0x8a, 0xd9, 0xc4, 0x5c, 0xa4, 0x3f, 0x76, 0x72, 0xf9, 0xb5, 0x6e, 0x80, 0xb4, 0xce, 0xd1, 0x1f, 0x5b, 0xe9, 0xb7,
0xb4, 0xa6, 0x64, 0x32, 0xff, 0x9f, 0x91, 0xec, 0x69, 0x37, 0xe5, 0x96, 0xed, 0xf3, 0x63, 0xd5, 0x39, 0x4e, 0x23, 0xa9,
0x7c, 0xbd, 0xf6, 0xf5, 0x3b, 0x23, 0x32, 0x94, 0xa8, 0x4d, 0xfb, 0xbc, 0x64, 0x46, 0x13, 0x86, 0x69, 0x7d, 0x4e, 0x6e,
0x49, 0xd5, 0x64, 0x28, 0x87, 0xdf, 0x9b, 0xb7, 0xee, 0x5a, 0x95, 0xc6, 0x16, 0x70, 0xbe, 0xfe, 0x95, 0xed, 0x72, 0x7f,
0xfa, 0x52, 0x3a, 0x6f, 0x9f, 0xdb, 0xc6, 0xff, 0xf5, 0x68, 0x4c, 0xb3, 0xc7, 0x21, 0xe5, 0x6d, 0x43, 0xca, 0xfd, 0x66,
0xdd, 0xa4, 0x5d, 0x1a, 0x63, 0x3d, 0xe5, 0x8e, 0xb5, 0xab, 0x31, 0xb2, 0x3e, 0xe5, 0x19, 0x4a, 0x2b, 0x77, 0xfa, 0x44,
0xd2, 0xe8, 0x24, 0xdb, 0x1d, 0xc9, 0xb9, 0x79, 0xfc, 0x5f, 0x1f, 0x33, 0xcc, 0x6c, 0x9d, 0x32, 0x32, 0xf5, 0x79, 0x5b,
0x7a, 0x2c, 0xcd, 0x3d, 0xd8, 0x6e, 0x25, 0xf3, 0x48, 0xc6, 0x35, 0x83, 0x1d, 0x8b, 0xc7, 0x56, 0x0e, 0xfc, 0x73, 0x13,
0xda, 0xaf, 0xb6, 0xff, 0x59, 0xcc, 0x9e, 0x7d, 0x5b, 0xfd, 0xbb, 0x3d, 0x7d, 0xdf, 0x5c, 0xff, 0x7a, 0x35, 0x56, 0xeb,
0x5f, 0x3f, 0xe2, 0xc8, 0xc9, 0xde, 0x77, 0x3a, 0xe7, 0x98, 0x72, 0xe7, 0x7d, 0xe7, 0x3b, 0x63, 0x3e, 0xbe, 0xfa, 0xbb,
0xdd, 0x56, 0x29, 0x1f, 0xdb, 0x9c, 0xf7, 0x46, 0xbf, 0x3e, 0x1a, 0x89, 0x84, 0xe9, 0x47, 0xfc, 0x46, 0x06, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf0, 0x3d, 0xe7, 0x36, 0x53, 0xce, 0xdc, 0x4e, 0xa6, 0x99, 0xd3, 0xce, 0x22, 0x9f, 0xe7, 0x24,
0x8f, 0x66, 0x96, 0xbf, 0xfe, 0xba, 0x9c, 0x5e, 0x21, 0x37, 0x23, 0xb9, 0x9e, 0x6c, 0x67, 0x1e, 0xb2, 0x9d, 0xcc, 0xbd,
0xca, 0xc0, 0x74, 0xea, 0x9f, 0xa5, 0xb4, 0x43, 0x27, 0xa3, 0xd4, 0xc9, 0x29, 0x65, 0xe3, 0xda, 0x9b, 0x69, 0x27, 0xbd,
0xd6, 0x52, 0x67, 0xb9, 0x31, 0xf9, 0x37, 0x51, 0xff, 0x34, 0xd2, 0xe2, 0x59, 0x4a, 0x5d, 0x77, 0x33, 0x79, 0xdd, 0x2c,
0x57, 0xef, 0x0a, 0x83, 0xd9, 0x4a, 0xfa, 0x5d, 0x57, 0x20, 0x9b, 0xa3, 0x3f, 0xed, 0x8e, 0x88, 0xb5, 0xbc, 0x78, 0xb7,
0x5b, 0x20, 0x0b, 0xa9, 0xff, 0x8c, 0x65, 0xf2, 0xf6, 0xb2, 0x7c, 0x79, 0x43, 0xfd, 0xe7, 0xba, 0x67, 0x2a, 0x57, 0x9a,
0xad, 0xef, 0x2d, 0xf2, 0xe3, 0xeb, 0x7f, 0xd7, 0xf6, 0x7f, 0x25, 0x9f, 0x9b, 0x5b, 0xb2, 0xad, 0x95, 0xf1, 0x9f, 0xa5,
0x34, 0xeb, 0x6c, 0xfd, 0x8f, 0xa5, 0x24, 0x6c, 0x4e, 0xf3, 0xfc, 0xf5, 0xd7, 0x65, 0x34, 0xdf, 0x9c, 0x66, 0x06, 0xfb,
0xba, 0x2b, 0xe1, 0xf9, 0xfa, 0x1f, 0x37, 0x74, 0x33, 0x66, 0xe4, 0xe8, 0x68, 0x6e, 0xff, 0x9f, 0x46, 0x15, 0x3f, 0xb9,
0xfe, 0x53, 0xc7, 0xff, 0x69, 0xcf, 0xc5, 0x5a, 0x0f, 0xec, 0xd9, 0x27, 0xce, 0xf5, 0x5d, 0x75, 0xe7, 0x23, 0x1b, 0x09,
0xf2, 0x34, 0xfa, 0x03, 0xa6, 0x3a, 0xa7, 0xd7, 0xfa, 0xbf, 0xb3, 0xdc, 0x85, 0x79, 0xf5, 0x3e, 0x29, 0xa7, 0xd9, 0xbb,
0xf5, 0xef, 0xf5, 0x28, 0xac, 0xce, 0xc7, 0xd1, 0xc8, 0xf9, 0xf7, 0x7e, 0x7f, 0x59, 0x79, 0xcf, 0xdc, 0xdc, 0x0d, 0xf1,
0x99, 0x57, 0x4f, 0xcf, 0x6d, 0x7d, 0x0f, 0x9f, 0x94, 0xf4, 0x7f, 0x67, 0xfd, 0x3f, 0xb1, 0x03, 0x4b, 0xb7, 0x07, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0xe7, 0x7f, 0x5e, 0x27, 0x03, 0x2b, 0xd7, 0xdc, 0xef, 0xdf, 0x5f, 0xa0, 0xf6, 0x19,
0xd3, 0xe7, 0xe4, 0x6b, 0x29, 0x8a, 0x34, 0xce, 0x69, 0xaf, 0x7e, 0xe6, 0xfe, 0xd9, 0xd2, 0xfd, 0xfc, 0xc9, 0xde, 0x14,
0x55, 0x93, 0xf6, 0xc7, 0x58, 0xfa, 0xb2, 0x97, 0xc9, 0xa9, 0x65, 0xca, 0x52, 0xba, 0x66, 0x79, 0xde, 0x70, 0xb6, 0xfc,
0xe7, 0xd4, 0xbf, 0x9a, 0xbe, 0x4a, 0x2b, 0xb1, 0x56, 0xad, 0x73, 0xe5, 0x93, 0x33, 0xb2, 0x5c, 0xab, 0x99, 0xe0, 0x5e,
0xa6, 0x35, 0x03, 0x15, 0x38, 0x6e, 0xba, 0x23, 0xc8, 0xfa, 0x3e, 0x26, 0xad, 0xed, 0x70, 0x4a, 0x5b, 0xff, 0xea, 0xd6,
0x62, 0xa2, 0xfe, 0xb9, 0x35, 0xff, 0x77, 0x6f, 0xfd, 0x9f, 0xca, 0xb0, 0xd5, 0xfb, 0x5b, 0xfa, 0x6b, 0xcc, 0xea, 0xf6,
0x3f, 0x23, 0xe3, 0x3f, 0x83, 0xf9, 0xdf, 0x6c, 0xde, 0x87, 0xe9, 0x1b, 0xeb, 0xbf, 0x73, 0x37, 0x97, 0x7b, 0xb6, 0xdc,
0xb5, 0x7d, 0x70, 0xc6, 0xf6, 0xff, 0x19, 0x99, 0xdb, 0xe3, 0x8d, 0x57, 0x7e, 0x4f, 0xeb, 0x2e, 0x4b, 0x47, 0xb1, 0x23,
0xae, 0x36, 0x52, 0xea, 0x77, 0x0b, 0xc9, 0x4d, 0x47, 0x4f, 0xd9, 0xda, 0x43, 0x7f, 0x43, 0xfd, 0x3b, 0x47, 0x06, 0x47,
0xfb, 0x9b, 0x41, 0xe5, 0x28, 0x79, 0xa6, 0xe3, 0x32, 0x37, 0xd6, 0x3f, 0x23, 0x9d, 0x81, 0x9f, 0x5b, 0xff, 0x27, 0xd6,
0x9a, 0x99, 0x23, 0xdf, 0xce, 0x77, 0xd1, 0x89, 0x3b, 0xea, 0xa4, 0xf5, 0x6d, 0xf2, 0xb8, 0xed, 0xd7, 0x8a, 0xef, 0xcb,
0xa3, 0x67, 0xf4, 0x91, 0xf9, 0xe5, 0x97, 0xc7, 0x96, 0xcc, 0xcf, 0xa9, 0xff, 0x33, 0x7d, 0x1d, 0xd3, 0x7b, 0xa2, 0x77,
0xef, 0x53, 0x33, 0xb2, 0x07, 0x46, 0x97, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x3b, 0x5f, 0x97, 0xad, 0x6c, 0x6c,
0x2f, 0x8f, 0x34, 0x91, 0xcd, 0xe9, 0xa4, 0xbc, 0x8e, 0xf6, 0xd5, 0xf5, 0xbb, 0xb9, 0xc2, 0xf3, 0xf3, 0x63, 0x59, 0x3c,
0x67, 0x56, 0xcf, 0x3a, 0x55, 0xd3, 0x23, 0xe7, 0x49, 0xd4, 0x94, 0x92, 0xa7, 0xb9, 0xbc, 0xce, 0x7b, 0xe5, 0x1a, 0xbd,
0x6b, 0xd7, 0x61, 0xad, 0x64, 0xf3, 0x7b, 0x57, 0xd7, 0x4f, 0x2b, 0x25, 0x38, 0x99, 0x13, 0xdc, 0xc9, 0x7d, 0x5c, 0xad,
0x5f, 0xb9, 0xe8, 0x5c, 0xc8, 0x48, 0xaa, 0xfd, 0x3a, 0x4f, 0x5d, 0xef, 0x0e, 0x9a, 0x4c, 0x5b, 0xed, 0xdc, 0x0d, 0x22,
0x83, 0x3d, 0x0a, 0xf7, 0x65, 0x26, 0x26, 0xb7, 0xff, 0xfb, 0xcb, 0xb9, 0x92, 0x4b, 0xda, 0xdf, 0x52, 0xef, 0xd5, 0xff,
0xfa, 0xde, 0x25, 0xf7, 0xf5, 0x28, 0x3d, 0x55, 0xff, 0xce, 0x52, 0xbb, 0xbf, 0xfe, 0xb5, 0x94, 0x74, 0x6f, 0x0c, 0x5f,
0x5f, 0x5d, 0x3b, 0xc3, 0x69, 0xc7, 0x9f, 0x5d, 0xff, 0x6c, 0xec, 0x81, 0xf7, 0x32, 0xf8, 0x57, 0x5d, 0x0c, 0x4f, 0xd6,
0x7f, 0xae, 0x47, 0x35, 0xb7, 0xf5, 0x0a, 0xf6, 0xeb, 0x7f, 0x14, 0xf7, 0xbf, 0xc7, 0xe2, 0x1d, 0x1c, 0x26, 0xba, 0x86,
0xfb, 0xdb, 0xe3, 0xd9, 0x63, 0xbc, 0xfa, 0xb4, 0x3f, 0x3d, 0xfe, 0xe7, 0x33, 0xaa, 0x79, 0x2c, 0x83, 0x7a, 0x47, 0xcf,
0x70, 0xef, 0x1a, 0xf2, 0x53, 0xd3, 0xfe, 0xde, 0xfa, 0x3f, 0x93, 0x50, 0xce, 0x1b, 0xeb, 0x3f, 0xff, 0x59, 0x69, 0xf7,
0x15, 0xfc, 0xdc, 0xcc, 0x74, 0x3e, 0xa8, 0x6e, 0xdf, 0xb5, 0x8c, 0x64, 0xe6, 0xd5, 0x5f, 0xfd, 0xff, 0xde, 0x3c, 0x7f,
0xa4, 0xfe, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xed, 0x1f };
// Font characters rectangles data
static const Rectangle lavandaFontRecs[95] = {
{ 4, 4, 5 , 16 },
{ 17, 4, 1 , 9 },
{ 26, 4, 3 , 3 },
{ 37, 4, 7 , 8 },
{ 52, 4, 5 , 11 },
{ 65, 4, 10 , 8 },
{ 83, 4, 7 , 9 },
{ 98, 4, 1 , 3 },
{ 107, 4, 3 , 12 },
{ 118, 4, 3 , 12 },
{ 129, 4, 5 , 4 },
{ 142, 4, 5 , 5 },
{ 155, 4, 2 , 3 },
{ 165, 4, 3 , 1 },
{ 176, 4, 1 , 1 },
{ 185, 4, 4 , 12 },
{ 197, 4, 5 , 9 },
{ 210, 4, 3 , 9 },
{ 221, 4, 5 , 9 },
{ 234, 4, 5 , 9 },
{ 4, 28, 5 , 9 },
{ 17, 28, 5 , 9 },
{ 30, 28, 5 , 9 },
{ 43, 28, 5 , 9 },
{ 56, 28, 5 , 9 },
{ 69, 28, 5 , 9 },
{ 82, 28, 1 , 4 },
{ 91, 28, 2 , 6 },
{ 101, 28, 4 , 5 },
{ 113, 28, 4 , 3 },
{ 125, 28, 4 , 5 },
{ 137, 28, 5 , 9 },
{ 150, 28, 7 , 10 },
{ 165, 28, 7 , 9 },
{ 180, 28, 6 , 9 },
{ 194, 28, 5 , 9 },
{ 207, 28, 6 , 9 },
{ 221, 28, 5 , 9 },
{ 234, 28, 5 , 9 },
{ 4, 52, 6 , 9 },
{ 18, 52, 5 , 10 },
{ 31, 52, 1 , 9 },
{ 40, 52, 6 , 9 },
{ 54, 52, 6 , 9 },
{ 68, 52, 5 , 9 },
{ 81, 52, 8 , 11 },
{ 97, 52, 6 , 10 },
{ 111, 52, 7 , 9 },
{ 126, 52, 5 , 9 },
{ 139, 52, 7 , 11 },
{ 154, 52, 5 , 9 },
{ 167, 52, 6 , 9 },
{ 181, 52, 7 , 9 },
{ 196, 52, 6 , 9 },
{ 210, 52, 6 , 10 },
{ 224, 52, 9 , 10 },
{ 4, 76, 6 , 11 },
{ 18, 76, 5 , 10 },
{ 31, 76, 5 , 9 },
{ 44, 76, 3 , 12 },
{ 55, 76, 4 , 12 },
{ 67, 76, 3 , 12 },
{ 78, 76, 5 , 4 },
{ 91, 76, 6 , 1 },
{ 105, 76, 3 , 3 },
{ 116, 76, 6 , 7 },
{ 130, 76, 5 , 9 },
{ 143, 76, 4 , 7 },
{ 155, 76, 5 , 10 },
{ 168, 76, 4 , 7 },
{ 180, 76, 3 , 10 },
{ 191, 76, 4 , 11 },
{ 203, 76, 5 , 11 },
{ 216, 76, 1 , 9 },
{ 225, 76, 5 , 12 },
{ 238, 76, 5 , 9 },
{ 4, 100, 1 , 9 },
{ 13, 100, 8 , 9 },
{ 29, 100, 5 , 9 },
{ 42, 100, 4 , 7 },
{ 54, 100, 5 , 10 },
{ 67, 100, 5 , 10 },
{ 80, 100, 5 , 7 },
{ 93, 100, 5 , 7 },
{ 106, 100, 3 , 9 },
{ 117, 100, 5 , 7 },
{ 130, 100, 5 , 8 },
{ 143, 100, 9 , 8 },
{ 160, 100, 5 , 9 },
{ 173, 100, 6 , 9 },
{ 187, 100, 4 , 7 },
{ 199, 100, 5 , 12 },
{ 212, 100, 1 , 12 },
{ 221, 100, 5 , 12 },
{ 234, 100, 6 , 2 },
};
// Font characters info data
// NOTE: No chars.image data provided
static const GlyphInfo lavandaFontChars[95] = {
{ 32, 0, 12, 5, { 0 }},
{ 33, 0, 3, 2, { 0 }},
{ 34, 0, 3, 4, { 0 }},
{ 35, 0, 3, 8, { 0 }},
{ 36, 0, 2, 6, { 0 }},
{ 37, 0, 4, 11, { 0 }},
{ 38, 0, 3, 8, { 0 }},
{ 39, 0, 3, 2, { 0 }},
{ 40, 0, 2, 4, { 0 }},
{ 41, 0, 2, 4, { 0 }},
{ 42, 0, 3, 6, { 0 }},
{ 43, 0, 5, 6, { 0 }},
{ 44, 0, 10, 3, { 0 }},
{ 45, 0, 7, 4, { 0 }},
{ 46, 0, 11, 2, { 0 }},
{ 47, 0, 2, 5, { 0 }},
{ 48, 0, 3, 6, { 0 }},
{ 49, 0, 3, 4, { 0 }},
{ 50, 0, 3, 6, { 0 }},
{ 51, 0, 3, 6, { 0 }},
{ 52, 0, 3, 6, { 0 }},
{ 53, 0, 3, 6, { 0 }},
{ 54, 0, 3, 6, { 0 }},
{ 55, 0, 3, 6, { 0 }},
{ 56, 0, 3, 6, { 0 }},
{ 57, 0, 3, 6, { 0 }},
{ 58, 0, 7, 2, { 0 }},
{ 59, 0, 7, 3, { 0 }},
{ 60, 0, 5, 5, { 0 }},
{ 61, 0, 6, 5, { 0 }},
{ 62, 0, 5, 5, { 0 }},
{ 63, 0, 3, 6, { 0 }},
{ 64, 0, 4, 8, { 0 }},
{ 65, 0, 3, 8, { 0 }},
{ 66, 0, 3, 7, { 0 }},
{ 67, 0, 3, 6, { 0 }},
{ 68, 0, 3, 7, { 0 }},
{ 69, 0, 3, 6, { 0 }},
{ 70, 0, 3, 6, { 0 }},
{ 71, 0, 3, 7, { 0 }},
{ 72, 0, 2, 6, { 0 }},
{ 73, 0, 3, 2, { 0 }},
{ 74, 0, 3, 7, { 0 }},
{ 75, 0, 3, 7, { 0 }},
{ 76, 0, 3, 6, { 0 }},
{ 77, 0, 3, 9, { 0 }},
{ 78, 0, 2, 7, { 0 }},
{ 79, 0, 3, 8, { 0 }},
{ 80, 0, 3, 6, { 0 }},
{ 81, 0, 3, 8, { 0 }},
{ 82, 0, 3, 6, { 0 }},
{ 83, 0, 3, 7, { 0 }},
{ 84, 0, 3, 8, { 0 }},
{ 85, 0, 3, 7, { 0 }},
{ 86, 0, 2, 7, { 0 }},
{ 87, 0, 2, 10, { 0 }},
{ 88, 0, 3, 7, { 0 }},
{ 89, 0, 3, 6, { 0 }},
{ 90, 0, 3, 6, { 0 }},
{ 91, 0, 2, 4, { 0 }},
{ 92, 0, 2, 5, { 0 }},
{ 93, 0, 2, 4, { 0 }},
{ 94, 0, 3, 6, { 0 }},
{ 95, 0, 13, 7, { 0 }},
{ 96, 0, 3, 4, { 0 }},
{ 97, 0, 5, 7, { 0 }},
{ 98, 0, 3, 6, { 0 }},
{ 99, 0, 5, 5, { 0 }},
{ 100, 0, 2, 6, { 0 }},
{ 101, 0, 5, 5, { 0 }},
{ 102, 0, 2, 4, { 0 }},
{ 103, 0, 4, 5, { 0 }},
{ 104, 0, 3, 6, { 0 }},
{ 105, 0, 3, 2, { 0 }},
{ 106, -1, 3, 5, { 0 }},
{ 107, 0, 3, 6, { 0 }},
{ 108, 0, 3, 2, { 0 }},
{ 109, 0, 5, 9, { 0 }},
{ 110, 0, 5, 6, { 0 }},
{ 111, 0, 5, 5, { 0 }},
{ 112, 0, 5, 6, { 0 }},
{ 113, 0, 5, 6, { 0 }},
{ 114, 0, 5, 6, { 0 }},
{ 115, 0, 5, 6, { 0 }},
{ 116, 0, 3, 4, { 0 }},
{ 117, 0, 5, 6, { 0 }},
{ 118, 0, 4, 6, { 0 }},
{ 119, 0, 4, 10, { 0 }},
{ 120, 0, 5, 6, { 0 }},
{ 121, -1, 5, 6, { 0 }},
{ 122, 0, 5, 5, { 0 }},
{ 123, 0, 2, 6, { 0 }},
{ 124, 0, 2, 2, { 0 }},
{ 125, 0, 2, 6, { 0 }},
{ 126, 0, 7, 7, { 0 }},
};
// Style loading function: lavanda
static void GuiLoadStyleLavanda(void)
{
// Load style properties provided
// NOTE: Default properties are propagated
for (int i = 0; i < LAVANDA_STYLE_PROPS_COUNT; i++)
{
GuiSetStyle(lavandaStyleProps[i].controlId, lavandaStyleProps[i].propertyId, lavandaStyleProps[i].propertyValue);
}
// Custom font loading
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
int lavandaFontDataSize = 0;
unsigned char *data = DecompressData(lavandaFontData, LAVANDA_COMPRESSED_DATA_SIZE, &lavandaFontDataSize);
Image imFont = { data, 256, 256, 1, 2 };
Font font = { 0 };
font.baseSize = 16;
font.glyphCount = 95;
// Load texture from image
font.texture = LoadTextureFromImage(imFont);
UnloadImage(imFont); // Uncompressed data can be unloaded from memory
// Copy char recs data from global fontRecs
// NOTE: Required to avoid issues if trying to free font
font.recs = (Rectangle *)malloc(font.glyphCount*sizeof(Rectangle));
memcpy(font.recs, lavandaFontRecs, font.glyphCount*sizeof(Rectangle));
// Copy font char info data from global fontChars
// NOTE: Required to avoid issues if trying to free font
font.glyphs = (GlyphInfo *)malloc(font.glyphCount*sizeof(GlyphInfo));
memcpy(font.glyphs, lavandaFontChars, font.glyphCount*sizeof(GlyphInfo));
GuiSetFont(font);
// Setup a white rectangle on the font to be used on shapes drawing,
// this way we make sure all gui can be drawn on a single pass because no texture change is required
// NOTE: Setting up this rectangle is a manual process (for the moment)
Rectangle whiteChar = { 130, 5, 2, 2 };
SetShapesTexture(font.texture, whiteChar);
}

View File

@ -1,333 +0,0 @@
//////////////////////////////////////////////////////////////////////////////////
// //
// StyleAsCode exporter v1.2 - Style data exported as a values array //
// //
// USAGE: On init call: GuiLoadStyleTerminal(); //
// //
// more info and bugs-report: github.com/raysan5/raygui //
// feedback and support: ray[at]raylibtech.com //
// //
// Copyright (c) 2020-2023 raylib technologies (@raylibtech) //
// //
//////////////////////////////////////////////////////////////////////////////////
#define TERMINAL_STYLE_PROPS_COUNT 16
// Custom style name: terminal
static const GuiStyleProp terminalStyleProps[TERMINAL_STYLE_PROPS_COUNT] = {
{ 0, 0, 0x1c8d00ff }, // DEFAULT_BORDER_COLOR_NORMAL
{ 0, 1, 0x161313ff }, // DEFAULT_BASE_COLOR_NORMAL
{ 0, 2, 0x38f620ff }, // DEFAULT_TEXT_COLOR_NORMAL
{ 0, 3, 0xc3fbc6ff }, // DEFAULT_BORDER_COLOR_FOCUSED
{ 0, 4, 0x43bf2eff }, // DEFAULT_BASE_COLOR_FOCUSED
{ 0, 5, 0xdcfadcff }, // DEFAULT_TEXT_COLOR_FOCUSED
{ 0, 6, 0x1f5b19ff }, // DEFAULT_BORDER_COLOR_PRESSED
{ 0, 7, 0x43ff28ff }, // DEFAULT_BASE_COLOR_PRESSED
{ 0, 8, 0x1e6f15ff }, // DEFAULT_TEXT_COLOR_PRESSED
{ 0, 9, 0x223b22ff }, // DEFAULT_BORDER_COLOR_DISABLED
{ 0, 10, 0x182c18ff }, // DEFAULT_BASE_COLOR_DISABLED
{ 0, 11, 0x244125ff }, // DEFAULT_TEXT_COLOR_DISABLED
{ 0, 16, 0x00000010 }, // DEFAULT_TEXT_SIZE
{ 0, 17, 0x00000000 }, // DEFAULT_TEXT_SPACING
{ 0, 18, 0xe6fce3ff }, // DEFAULT_LINE_COLOR
{ 0, 19, 0x0c1505ff }, // DEFAULT_BACKGROUND_COLOR
};
// WARNING: This style uses a custom font: (size: 16, spacing: 0)
#define TERMINAL_COMPRESSED_DATA_SIZE 964
// Font image pixels data compressed (DEFLATE)
// NOTE: Original pixel data simplified to GRAYSCALE
static unsigned char terminalFontData[TERMINAL_COMPRESSED_DATA_SIZE] = { 0xed,
0xdd, 0x41, 0xb6, 0x9b, 0x30, 0x0c, 0x05, 0x50, 0xf6, 0xbf, 0x69, 0x75, 0xd0, 0xd3, 0x41, 0x7b, 0x9a, 0x0f, 0x92, 0x65,
0xc7, 0xc0, 0xed, 0x9d, 0xa5, 0x09, 0x9f, 0xf0, 0x02, 0x38, 0xb6, 0xec, 0xc4, 0x01, 0x00, 0xf0, 0x8f, 0xf8, 0xef, 0x23,
0xf1, 0xf1, 0x99, 0x71, 0x79, 0x3b, 0xbf, 0x1f, 0x8d, 0x8f, 0x7f, 0xe5, 0xcf, 0xbf, 0x2b, 0x5b, 0xba, 0xfe, 0xac, 0x48,
0xed, 0xdd, 0xd8, 0x5e, 0xd5, 0xb6, 0x93, 0x7d, 0xf6, 0xcf, 0xfb, 0x13, 0x1b, 0xe4, 0x7f, 0xfe, 0x6e, 0x33, 0xc7, 0x33,
0xca, 0xe9, 0xe5, 0x3f, 0x9d, 0x33, 0xcf, 0xa1, 0xec, 0x3e, 0xd6, 0x8e, 0xc9, 0x1e, 0xf9, 0x67, 0xff, 0x46, 0x6e, 0xbf,
0x63, 0x68, 0xcf, 0x6b, 0xe7, 0xf4, 0xd8, 0xde, 0xdd, 0x39, 0xff, 0xe3, 0xe3, 0x95, 0xbc, 0x7a, 0x1c, 0x57, 0xe5, 0x3f,
0xfe, 0x2e, 0xe5, 0x7f, 0xf6, 0xcc, 0x7c, 0x96, 0x3f, 0xa7, 0x17, 0x37, 0xcf, 0x3f, 0xdb, 0xee, 0x79, 0x66, 0xfe, 0x9f,
0xae, 0x0c, 0x3f, 0xdf, 0x93, 0x3f, 0xbf, 0x66, 0xe5, 0xdd, 0x7b, 0x4e, 0xfe, 0x67, 0xf7, 0xd1, 0xeb, 0xc7, 0x22, 0xdb,
0x32, 0x5c, 0x9f, 0xff, 0x48, 0x8b, 0xec, 0xde, 0xf9, 0xc7, 0xc9, 0xb1, 0x8a, 0x81, 0xf6, 0xed, 0xe8, 0x35, 0x43, 0xfe,
0xdf, 0xce, 0xff, 0xb8, 0x41, 0xfe, 0x47, 0x43, 0xfb, 0xaf, 0xf2, 0xce, 0x9e, 0x90, 0x7f, 0xed, 0xdd, 0xdd, 0x33, 0xff,
0xea, 0xf7, 0xff, 0xcf, 0x7d, 0x1e, 0xf2, 0x7f, 0xd2, 0xf5, 0x3f, 0x4e, 0xae, 0x1d, 0x23, 0xed, 0x97, 0x3d, 0xf3, 0x8f,
0x4b, 0x57, 0xcb, 0xf1, 0xde, 0xc2, 0xec, 0x35, 0xf7, 0x0d, 0x7d, 0xd4, 0xbb, 0xe7, 0xcf, 0x8a, 0x51, 0x0a, 0x00, 0x00,
0x00, 0x00, 0x00, 0xd0, 0x83, 0x5e, 0xa9, 0x31, 0xef, 0xfd, 0x9f, 0x5c, 0xed, 0x5c, 0xbd, 0x9e, 0xfe, 0xea, 0x1e, 0xc6,
0xf2, 0xa3, 0x32, 0x3b, 0x97, 0x39, 0x23, 0xc8, 0x99, 0xd1, 0xfb, 0xd1, 0xba, 0xc4, 0x98, 0x5e, 0x81, 0x1b, 0xd3, 0xde,
0x61, 0xa5, 0x1e, 0x20, 0x16, 0x8d, 0xf9, 0xdf, 0x23, 0xff, 0x28, 0x8c, 0xa7, 0x77, 0xcc, 0x26, 0x91, 0xff, 0xd3, 0xce,
0xff, 0xb3, 0x7d, 0xff, 0xfb, 0x13, 0x25, 0xff, 0x5d, 0xf2, 0x3f, 0xd2, 0xf7, 0xb5, 0x18, 0xaa, 0x1c, 0x78, 0x4f, 0xfe,
0xf9, 0x16, 0xc8, 0x51, 0x9c, 0xf1, 0xd7, 0x51, 0x97, 0x3e, 0x7f, 0x6e, 0xce, 0x59, 0xfe, 0x95, 0xb6, 0x5c, 0x25, 0xff,
0xb3, 0x5c, 0x72, 0xd5, 0xe5, 0xbd, 0x73, 0x15, 0xeb, 0xb3, 0x77, 0xf6, 0xad, 0xce, 0x7e, 0xce, 0xf5, 0xff, 0x5e, 0xf9,
0xaf, 0xaf, 0xe1, 0x8a, 0x0b, 0x75, 0xac, 0xf2, 0xff, 0xde, 0xf9, 0x1f, 0x5f, 0xbc, 0x2a, 0xc8, 0x5f, 0xfe, 0x6f, 0xca,
0xbf, 0xda, 0x62, 0x8b, 0xd6, 0xad, 0xed, 0x78, 0xff, 0xcf, 0xae, 0xaf, 0xb1, 0xae, 0xff, 0xef, 0x28, 0xf6, 0x86, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x86, 0xfa, 0xff, 0x7c, 0x15, 0x7e, 0xd7, 0xd8, 0x67, 0x6c, 0x31, 0xfb, 0x60, 0xc6,
0x5c, 0x86, 0xea, 0x11, 0xea, 0xda, 0x62, 0x7e, 0x0d, 0xb5, 0x9e, 0x95, 0xf8, 0xf3, 0x5b, 0x99, 0x31, 0xce, 0x3e, 0x7b,
0xd4, 0xbe, 0x52, 0xff, 0xb0, 0x32, 0xff, 0x4a, 0xad, 0x85, 0xfc, 0xe5, 0x2f, 0x7f, 0xf9, 0xcb, 0x7f, 0xaf, 0xfc, 0xcf,
0xd7, 0x8b, 0x8f, 0xa1, 0x2a, 0xba, 0x5a, 0x9d, 0x51, 0x67, 0xed, 0xfb, 0x8a, 0x76, 0xcf, 0x48, 0x9d, 0x7d, 0x7c, 0x39,
0xff, 0xb3, 0xd9, 0x6f, 0x63, 0x35, 0x94, 0xdf, 0x3e, 0xff, 0x77, 0x99, 0x67, 0x17, 0xc5, 0x33, 0xbd, 0x6b, 0xaf, 0x23,
0x7d, 0xfe, 0x8f, 0x9f, 0xfb, 0xf2, 0xdf, 0x3f, 0xff, 0x91, 0x2a, 0x6c, 0xf9, 0xef, 0x93, 0xff, 0x59, 0xc2, 0xf2, 0x7f,
0x7a, 0xfe, 0x9f, 0x7f, 0x87, 0xee, 0x2e, 0xf9, 0x77, 0x57, 0xc5, 0x57, 0xf3, 0xef, 0xac, 0x8c, 0xaf, 0xf6, 0xa2, 0x45,
0x71, 0x3d, 0x82, 0x48, 0xf7, 0x83, 0x56, 0xf2, 0x37, 0x0f, 0x00, 0xf6, 0x9b, 0x79, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00,
0xab, 0x7a, 0xc5, 0x73, 0x95, 0x6f, 0x7d, 0xeb, 0x81, 0x1d, 0x93, 0x47, 0xf6, 0x6a, 0xe3, 0x98, 0xe3, 0xbf, 0x5e, 0x70,
0xa4, 0x46, 0x54, 0x2b, 0x7b, 0xdd, 0xb9, 0xbe, 0x5a, 0xa4, 0x47, 0x4a, 0xb2, 0x35, 0x4a, 0xf9, 0xf1, 0x98, 0x9e, 0xd5,
0xf0, 0x3a, 0xab, 0x15, 0xaa, 0x55, 0xa2, 0xfd, 0xc7, 0x20, 0xca, 0x75, 0x0c, 0x47, 0x53, 0x05, 0xc1, 0x8c, 0xb5, 0xbd,
0xe5, 0x2f, 0xff, 0xae, 0x5f, 0x8f, 0x99, 0x51, 0x0d, 0xdc, 0x53, 0x8d, 0x12, 0x83, 0xd5, 0x37, 0xeb, 0xf2, 0xff, 0xce,
0x0a, 0xde, 0xeb, 0x6a, 0xbe, 0xb2, 0x9f, 0xa6, 0x68, 0x4c, 0x50, 0xfe, 0xdf, 0xcf, 0xbf, 0x7a, 0x34, 0xde, 0x93, 0x7f,
0x47, 0x6d, 0xf9, 0x93, 0xf2, 0x8f, 0x86, 0x99, 0xcf, 0x63, 0xf3, 0x66, 0xde, 0x90, 0xff, 0x8c, 0xfb, 0x6f, 0x4f, 0x6b,
0xe2, 0x7d, 0xe7, 0x7f, 0x47, 0x75, 0xf1, 0xfc, 0x2b, 0xc3, 0x9c, 0xd7, 0xec, 0x98, 0xff, 0xfa, 0xaa, 0x48, 0xf9, 0xcf,
0xbf, 0xfe, 0xef, 0x9c, 0x7f, 0xa5, 0x77, 0x68, 0xf5, 0x9d, 0xa1, 0xfb, 0x35, 0x33, 0xd7, 0x4f, 0x91, 0xbf, 0x0a, 0xf4,
0x3b, 0xf4, 0xff, 0x77, 0x3e, 0x1f, 0x67, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x8d, 0xac, 0x75, 0xfe, 0x9e, 0x75,
0xb6, 0xe2, 0x62, 0xe5, 0x3a, 0x8a, 0xb5, 0x15, 0xc0, 0xe2, 0x72, 0x7d, 0xcf, 0xde, 0xe3, 0x01, 0x6b, 0xd6, 0x4c, 0xae,
0xae, 0xae, 0xf7, 0xdd, 0xfc, 0xb3, 0xa3, 0xa0, 0xd7, 0x1f, 0xdb, 0xef, 0xb7, 0xf0, 0x9f, 0x9e, 0x7f, 0xf7, 0x3a, 0xda,
0xdd, 0x9f, 0x89, 0xa7, 0xe7, 0xff, 0xf3, 0x9d, 0x61, 0x45, 0xfe, 0xf5, 0x35, 0x3b, 0x8f, 0x87, 0x64, 0xfd, 0xbd, 0xfc,
0xb3, 0x33, 0x7b, 0x76, 0x39, 0xff, 0xe7, 0xdc, 0x13, 0xe4, 0x7f, 0x97, 0xf6, 0xdf, 0x21, 0xff, 0xcd, 0xf2, 0xef, 0x5f,
0x47, 0xbb, 0x3a, 0xb7, 0xec, 0x7a, 0x5b, 0xef, 0x4d, 0xdf, 0xff, 0x8e, 0x86, 0x79, 0xe0, 0xe7, 0x6b, 0x2f, 0x77, 0xaf,
0xa3, 0x5c, 0xf9, 0xfe, 0xf7, 0xf4, 0x6a, 0xc9, 0x58, 0x52, 0xcf, 0xb6, 0xcf, 0xf1, 0x89, 0x29, 0xf3, 0xe6, 0xe5, 0xbf,
0x7b, 0xfe, 0xb5, 0x6f, 0xe3, 0xcf, 0xcf, 0x7f, 0xe5, 0xd1, 0x7f, 0xc6, 0xd9, 0x21, 0xff, 0x77, 0xd7, 0x72, 0xcb, 0xff,
0x5d, 0xd7, 0xad, 0xd1, 0xfe, 0x7f, 0xcc, 0xef, 0x40, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0d, 0x7e, 0x01 };
// Font characters rectangles data
static const Rectangle terminalFontRecs[95] = {
{ 4, 4, 4 , 16 },
{ 16, 4, 1 , 11 },
{ 25, 4, 3 , 3 },
{ 36, 4, 6 , 11 },
{ 50, 4, 5 , 11 },
{ 63, 4, 5 , 11 },
{ 76, 4, 5 , 11 },
{ 89, 4, 1 , 2 },
{ 98, 4, 2 , 13 },
{ 108, 4, 2 , 13 },
{ 118, 4, 3 , 3 },
{ 129, 4, 5 , 5 },
{ 142, 4, 1 , 3 },
{ 151, 4, 5 , 1 },
{ 164, 4, 1 , 1 },
{ 173, 4, 6 , 12 },
{ 187, 4, 5 , 11 },
{ 200, 4, 2 , 11 },
{ 210, 4, 5 , 11 },
{ 223, 4, 5 , 11 },
{ 236, 4, 5 , 11 },
{ 4, 28, 5 , 11 },
{ 17, 28, 5 , 11 },
{ 30, 28, 5 , 11 },
{ 43, 28, 5 , 11 },
{ 56, 28, 5 , 11 },
{ 69, 28, 1 , 8 },
{ 78, 28, 1 , 10 },
{ 87, 28, 4 , 5 },
{ 99, 28, 5 , 3 },
{ 112, 28, 4 , 5 },
{ 124, 28, 5 , 11 },
{ 137, 28, 11 , 11 },
{ 156, 28, 5 , 11 },
{ 169, 28, 5 , 11 },
{ 182, 28, 5 , 11 },
{ 195, 28, 5 , 11 },
{ 208, 28, 5 , 11 },
{ 221, 28, 5 , 11 },
{ 234, 28, 5 , 11 },
{ 4, 52, 5 , 11 },
{ 17, 52, 1 , 11 },
{ 26, 52, 5 , 11 },
{ 39, 52, 5 , 11 },
{ 52, 52, 5 , 11 },
{ 65, 52, 7 , 11 },
{ 80, 52, 5 , 11 },
{ 93, 52, 5 , 11 },
{ 106, 52, 5 , 11 },
{ 119, 52, 5 , 13 },
{ 132, 52, 5 , 11 },
{ 145, 52, 5 , 11 },
{ 158, 52, 5 , 11 },
{ 171, 52, 5 , 11 },
{ 184, 52, 5 , 11 },
{ 197, 52, 7 , 11 },
{ 212, 52, 5 , 11 },
{ 225, 52, 5 , 11 },
{ 238, 52, 5 , 11 },
{ 4, 76, 2 , 13 },
{ 14, 76, 6 , 12 },
{ 28, 76, 2 , 13 },
{ 38, 76, 5 , 4 },
{ 51, 76, 5 , 1 },
{ 64, 76, 2 , 2 },
{ 74, 76, 5 , 8 },
{ 87, 76, 5 , 11 },
{ 100, 76, 5 , 8 },
{ 113, 76, 5 , 11 },
{ 126, 76, 5 , 8 },
{ 139, 76, 4 , 11 },
{ 151, 76, 5 , 10 },
{ 164, 76, 5 , 11 },
{ 177, 76, 1 , 11 },
{ 186, 76, 1 , 13 },
{ 195, 76, 5 , 11 },
{ 208, 76, 1 , 11 },
{ 217, 76, 7 , 8 },
{ 232, 76, 5 , 8 },
{ 4, 100, 5 , 8 },
{ 17, 100, 5 , 10 },
{ 30, 100, 5 , 10 },
{ 43, 100, 4 , 8 },
{ 55, 100, 5 , 8 },
{ 68, 100, 3 , 11 },
{ 79, 100, 5 , 8 },
{ 92, 100, 5 , 8 },
{ 105, 100, 7 , 8 },
{ 120, 100, 5 , 8 },
{ 133, 100, 5 , 10 },
{ 146, 100, 5 , 8 },
{ 159, 100, 3 , 13 },
{ 170, 100, 1 , 15 },
{ 179, 100, 3 , 13 },
{ 190, 100, 5 , 3 },
};
// Font characters info data
// NOTE: No chars.image data provided
static const GlyphInfo terminalFontChars[95] = {
{ 32, 0, 14, 4, { 0 }},
{ 33, 1, 3, 3, { 0 }},
{ 34, 1, 3, 5, { 0 }},
{ 35, 1, 3, 8, { 0 }},
{ 36, 1, 3, 7, { 0 }},
{ 37, 1, 3, 7, { 0 }},
{ 38, 1, 3, 7, { 0 }},
{ 39, 1, 3, 3, { 0 }},
{ 40, 1, 2, 4, { 0 }},
{ 41, 1, 2, 4, { 0 }},
{ 42, 1, 3, 5, { 0 }},
{ 43, 1, 7, 7, { 0 }},
{ 44, 1, 13, 3, { 0 }},
{ 45, 1, 9, 7, { 0 }},
{ 46, 1, 13, 3, { 0 }},
{ 47, 1, 2, 8, { 0 }},
{ 48, 1, 3, 7, { 0 }},
{ 49, 1, 3, 4, { 0 }},
{ 50, 1, 3, 7, { 0 }},
{ 51, 1, 3, 7, { 0 }},
{ 52, 1, 3, 7, { 0 }},
{ 53, 1, 3, 7, { 0 }},
{ 54, 1, 3, 7, { 0 }},
{ 55, 1, 3, 7, { 0 }},
{ 56, 1, 3, 7, { 0 }},
{ 57, 1, 3, 7, { 0 }},
{ 58, 1, 6, 3, { 0 }},
{ 59, 1, 6, 3, { 0 }},
{ 60, 1, 7, 6, { 0 }},
{ 61, 1, 8, 7, { 0 }},
{ 62, 1, 7, 6, { 0 }},
{ 63, 1, 3, 7, { 0 }},
{ 64, 2, 3, 15, { 0 }},
{ 65, 1, 3, 7, { 0 }},
{ 66, 1, 3, 7, { 0 }},
{ 67, 1, 3, 7, { 0 }},
{ 68, 1, 3, 7, { 0 }},
{ 69, 1, 3, 7, { 0 }},
{ 70, 1, 3, 7, { 0 }},
{ 71, 1, 3, 7, { 0 }},
{ 72, 1, 3, 7, { 0 }},
{ 73, 1, 3, 3, { 0 }},
{ 74, 1, 3, 7, { 0 }},
{ 75, 1, 3, 7, { 0 }},
{ 76, 1, 3, 7, { 0 }},
{ 77, 1, 3, 9, { 0 }},
{ 78, 1, 3, 7, { 0 }},
{ 79, 1, 3, 7, { 0 }},
{ 80, 1, 3, 7, { 0 }},
{ 81, 1, 3, 7, { 0 }},
{ 82, 1, 3, 7, { 0 }},
{ 83, 1, 3, 7, { 0 }},
{ 84, 1, 3, 7, { 0 }},
{ 85, 1, 3, 7, { 0 }},
{ 86, 1, 3, 7, { 0 }},
{ 87, 1, 3, 9, { 0 }},
{ 88, 1, 3, 7, { 0 }},
{ 89, 1, 3, 7, { 0 }},
{ 90, 1, 3, 7, { 0 }},
{ 91, 1, 2, 4, { 0 }},
{ 92, 1, 2, 8, { 0 }},
{ 93, 1, 2, 4, { 0 }},
{ 94, 1, 3, 7, { 0 }},
{ 95, 1, 15, 7, { 0 }},
{ 96, 1, 0, 4, { 0 }},
{ 97, 1, 6, 7, { 0 }},
{ 98, 1, 3, 7, { 0 }},
{ 99, 1, 6, 7, { 0 }},
{ 100, 1, 3, 7, { 0 }},
{ 101, 1, 6, 7, { 0 }},
{ 102, 1, 3, 6, { 0 }},
{ 103, 1, 6, 7, { 0 }},
{ 104, 1, 3, 7, { 0 }},
{ 105, 1, 3, 3, { 0 }},
{ 106, 1, 3, 3, { 0 }},
{ 107, 1, 3, 7, { 0 }},
{ 108, 1, 3, 3, { 0 }},
{ 109, 1, 6, 9, { 0 }},
{ 110, 1, 6, 7, { 0 }},
{ 111, 1, 6, 7, { 0 }},
{ 112, 1, 6, 7, { 0 }},
{ 113, 1, 6, 7, { 0 }},
{ 114, 1, 6, 6, { 0 }},
{ 115, 1, 6, 7, { 0 }},
{ 116, 1, 3, 5, { 0 }},
{ 117, 1, 6, 7, { 0 }},
{ 118, 1, 6, 7, { 0 }},
{ 119, 1, 6, 9, { 0 }},
{ 120, 1, 6, 7, { 0 }},
{ 121, 1, 6, 7, { 0 }},
{ 122, 1, 6, 7, { 0 }},
{ 123, 1, 2, 5, { 0 }},
{ 124, 1, 1, 3, { 0 }},
{ 125, 1, 2, 5, { 0 }},
{ 126, 1, 8, 7, { 0 }},
};
// Style loading function: terminal
static void GuiLoadStyleTerminal(void)
{
// Load style properties provided
// NOTE: Default properties are propagated
for (int i = 0; i < TERMINAL_STYLE_PROPS_COUNT; i++)
{
GuiSetStyle(terminalStyleProps[i].controlId, terminalStyleProps[i].propertyId, terminalStyleProps[i].propertyValue);
}
// Custom font loading
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
int terminalFontDataSize = 0;
unsigned char *data = DecompressData(terminalFontData, TERMINAL_COMPRESSED_DATA_SIZE, &terminalFontDataSize);
Image imFont = { data, 256, 256, 1, 2 };
Font font = { 0 };
font.baseSize = 16;
font.glyphCount = 95;
// Load texture from image
font.texture = LoadTextureFromImage(imFont);
UnloadImage(imFont); // Uncompressed data can be unloaded from memory
// Copy char recs data from global fontRecs
// NOTE: Required to avoid issues if trying to free font
font.recs = (Rectangle *)malloc(font.glyphCount*sizeof(Rectangle));
memcpy(font.recs, terminalFontRecs, font.glyphCount*sizeof(Rectangle));
// Copy font char info data from global fontChars
// NOTE: Required to avoid issues if trying to free font
font.glyphs = (GlyphInfo *)malloc(font.glyphCount*sizeof(GlyphInfo));
memcpy(font.glyphs, terminalFontChars, font.glyphCount*sizeof(GlyphInfo));
GuiSetFont(font);
// Setup a white rectangle on the font to be used on shapes drawing,
// this way we make sure all gui can be drawn on a single pass because no texture change is required
// NOTE: Setting up this rectangle is a manual process (for the moment)
Rectangle whiteChar = { 63, 4, 2, 2 };
SetShapesTexture(font.texture, whiteChar);
}

View File

@ -0,0 +1,606 @@
//////////////////////////////////////////////////////////////////////////////////
// //
// StyleAsCode exporter v2.0 - Style data exported as a values array //
// //
// USAGE: On init call: GuiLoadStyleAmber(); //
// //
// more info and bugs-report: github.com/raysan5/raygui //
// feedback and support: ray[at]raylibtech.com //
// //
// Copyright (c) 2020-2024 raylib technologies (@raylibtech) //
// //
//////////////////////////////////////////////////////////////////////////////////
#define AMBER_STYLE_PROPS_COUNT 16
// Custom style name: Amber
static const GuiStyleProp amberStyleProps[AMBER_STYLE_PROPS_COUNT] = {
{ 0, 0, (int)0x898988ff }, // DEFAULT_BORDER_COLOR_NORMAL
{ 0, 1, (int)0x292929ff }, // DEFAULT_BASE_COLOR_NORMAL
{ 0, 2, (int)0xd4d4d4ff }, // DEFAULT_TEXT_COLOR_NORMAL
{ 0, 3, (int)0xeb891dff }, // DEFAULT_BORDER_COLOR_FOCUSED
{ 0, 4, (int)0x292929ff }, // DEFAULT_BASE_COLOR_FOCUSED
{ 0, 5, (int)0xffffffff }, // DEFAULT_TEXT_COLOR_FOCUSED
{ 0, 6, (int)0xf1cf9dff }, // DEFAULT_BORDER_COLOR_PRESSED
{ 0, 7, (int)0xf39333ff }, // DEFAULT_BASE_COLOR_PRESSED
{ 0, 8, (int)0x282020ff }, // DEFAULT_TEXT_COLOR_PRESSED
{ 0, 9, (int)0x6a6a6aff }, // DEFAULT_BORDER_COLOR_DISABLED
{ 0, 10, (int)0x818181ff }, // DEFAULT_BASE_COLOR_DISABLED
{ 0, 11, (int)0x606060ff }, // DEFAULT_TEXT_COLOR_DISABLED
{ 0, 16, (int)0x00000010 }, // DEFAULT_TEXT_SIZE
{ 0, 18, (int)0xef922aff }, // DEFAULT_LINE_COLOR
{ 0, 19, (int)0x333333ff }, // DEFAULT_BACKGROUND_COLOR
{ 0, 20, (int)0x00000018 }, // DEFAULT_TEXT_LINE_SPACING
};
// WARNING: This style uses a custom font: "hello-world.ttf" (size: 16, spacing: 1)
#define AMBER_STYLE_FONT_ATLAS_COMP_SIZE 2605
// Font atlas image pixels data: DEFLATE compressed
static unsigned char amberFontData[AMBER_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed,
0xdd, 0x8b, 0x8e, 0x9c, 0xb8, 0x12, 0x00, 0x50, 0xf8, 0xff, 0x7f, 0x76, 0x5d, 0xe9, 0x66, 0xb3, 0xd2, 0xee, 0x8e, 0x6d,
0xaa, 0x30, 0x8f, 0xee, 0x9c, 0x1c, 0x45, 0x91, 0x9a, 0x34, 0x18, 0xdb, 0x85, 0x0d, 0x33, 0x94, 0x63, 0x03, 0x00, 0x00,
0x00, 0x88, 0x2d, 0x5a, 0xe7, 0xb3, 0xcc, 0xe7, 0x5b, 0xf7, 0xf3, 0xf6, 0xd7, 0xe7, 0x6d, 0xb0, 0xed, 0xe8, 0xbe, 0xfa,
0x65, 0xda, 0x92, 0xfb, 0x89, 0xee, 0x37, 0xe2, 0x87, 0x4f, 0x7e, 0xff, 0xc9, 0xec, 0xa7, 0x77, 0xbe, 0xf9, 0xda, 0xcb,
0x6e, 0x19, 0x1f, 0xbd, 0x25, 0x4b, 0x56, 0xff, 0xce, 0xd1, 0x7a, 0xcf, 0xd4, 0xe1, 0xef, 0x3f, 0x2d, 0xb1, 0x97, 0x71,
0x79, 0x7e, 0xde, 0xdb, 0x36, 0x39, 0xeb, 0xdc, 0x79, 0xb7, 0xe9, 0x96, 0xda, 0xb7, 0xd6, 0xc4, 0x7f, 0xaf, 0x4d, 0x32,
0x9f, 0x6f, 0xdd, 0x7a, 0xfc, 0x15, 0x37, 0xbd, 0xb8, 0xdd, 0x13, 0xfd, 0xa4, 0x17, 0x23, 0xfb, 0x20, 0xca, 0x23, 0xb5,
0xff, 0x71, 0x2f, 0x5a, 0x71, 0x4d, 0xed, 0x95, 0xf6, 0xe7, 0xab, 0x4b, 0xff, 0x1b, 0x6d, 0x78, 0xe6, 0xb5, 0x6b, 0x55,
0xbf, 0x1e, 0xf7, 0x1f, 0xbe, 0x5b, 0x2b, 0xdb, 0xf1, 0x72, 0x45, 0xba, 0x2d, 0x62, 0xd8, 0x6b, 0xf6, 0xee, 0x35, 0x23,
0x77, 0x76, 0x51, 0x38, 0xef, 0x98, 0x6c, 0xd9, 0x52, 0xa3, 0x5a, 0x5b, 0x3c, 0xfe, 0xaf, 0x88, 0xff, 0xf8, 0x7f, 0x2d,
0xee, 0xa9, 0xf1, 0x36, 0x92, 0x65, 0xca, 0x47, 0xed, 0xde, 0x39, 0x6e, 0x7f, 0x3c, 0xbf, 0xba, 0x4e, 0x7b, 0xdb, 0xf6,
0x42, 0x6d, 0xf4, 0xb6, 0xb4, 0xee, 0x79, 0x6f, 0xe5, 0xab, 0x5e, 0x24, 0xce, 0x26, 0x4e, 0x5f, 0x4b, 0x63, 0xd0, 0xd2,
0xe3, 0xb6, 0x8b, 0x74, 0x49, 0xa3, 0xf0, 0x9d, 0xf1, 0x96, 0x6d, 0xe9, 0x77, 0xae, 0x1b, 0xa3, 0xf2, 0xfb, 0x1b, 0xcf,
0xbe, 0xa2, 0x18, 0x0f, 0xe7, 0xcb, 0xb9, 0xa7, 0xaf, 0x89, 0x71, 0xf1, 0x3d, 0x55, 0x36, 0xfe, 0xb7, 0x85, 0xf1, 0x1f,
0xe9, 0xfa, 0xbe, 0x2f, 0xfe, 0x9f, 0x18, 0xff, 0xb7, 0x49, 0xfc, 0x6f, 0xe2, 0x3f, 0xf5, 0x7f, 0x73, 0xf7, 0x05, 0xe3,
0x71, 0x3b, 0x12, 0xf3, 0x99, 0x58, 0x18, 0xcf, 0x71, 0x7b, 0xf4, 0x8f, 0x7a, 0x5b, 0x65, 0x26, 0xd8, 0xbf, 0xdf, 0xea,
0xc7, 0xd9, 0xe8, 0x1e, 0x2d, 0xd2, 0x33, 0xce, 0xd1, 0xdd, 0x55, 0xe6, 0x79, 0x49, 0x2c, 0xeb, 0x99, 0x5b, 0x29, 0xfe,
0x23, 0xf5, 0xcc, 0x27, 0x26, 0x35, 0x9f, 0x8d, 0xff, 0x18, 0x5c, 0xff, 0x46, 0xfd, 0x28, 0x2e, 0xbd, 0xff, 0xcf, 0xc6,
0xff, 0x36, 0x99, 0x95, 0x6d, 0xa9, 0x9e, 0x5a, 0x29, 0x65, 0x7b, 0xd1, 0x13, 0xd5, 0x95, 0xf1, 0x1f, 0xc9, 0xb3, 0x8e,
0x03, 0x4f, 0xc3, 0x7a, 0xc7, 0xa8, 0xdc, 0xbd, 0xb5, 0x93, 0xfd, 0x2a, 0x1e, 0x6c, 0x93, 0x33, 0x23, 0x76, 0x7b, 0x7c,
0xfc, 0x8f, 0xc7, 0xe6, 0xff, 0x91, 0x9e, 0x1b, 0x5c, 0x1f, 0xff, 0xf1, 0xf2, 0xe8, 0xaf, 0xcd, 0xff, 0xa3, 0x38, 0x2f,
0x8f, 0x45, 0x73, 0xf9, 0xea, 0xdd, 0xcc, 0xbb, 0x5a, 0x64, 0x9b, 0x3e, 0x4f, 0xf8, 0xc4, 0xf9, 0x7f, 0x3c, 0x54, 0x8f,
0x51, 0xb8, 0x37, 0x10, 0xff, 0x95, 0xf8, 0xaf, 0xcd, 0x69, 0x67, 0x4f, 0x37, 0x63, 0xe9, 0x95, 0xe9, 0xb3, 0xe3, 0xbf,
0x1e, 0xb1, 0xe2, 0xff, 0xe8, 0xdc, 0x36, 0x86, 0xcf, 0x65, 0x63, 0x49, 0x1b, 0x7e, 0xc6, 0x58, 0xb3, 0x2e, 0xfe, 0xe3,
0xc4, 0x5d, 0xc3, 0x9f, 0x18, 0xff, 0xdb, 0x8d, 0xf1, 0x1f, 0x5f, 0x3b, 0xff, 0xaf, 0xdc, 0xff, 0xc7, 0xf0, 0x27, 0xd2,
0xb1, 0x68, 0x06, 0xf0, 0xfe, 0xd1, 0xbf, 0xf2, 0xb4, 0x67, 0xfc, 0x9b, 0x47, 0x91, 0xfe, 0xb9, 0x40, 0xe5, 0x69, 0xd3,
0x6c, 0xee, 0xbc, 0xa5, 0xcb, 0xf6, 0xe9, 0xe3, 0x7f, 0xfe, 0xbc, 0x63, 0xba, 0x25, 0x0a, 0xfd, 0xe8, 0x6d, 0xd7, 0xd7,
0x78, 0x7c, 0x64, 0x05, 0xbe, 0x97, 0xf8, 0x07, 0x57, 0x00, 0xd1, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xc0, 0x77, 0x6a, 0xff, 0xfa, 0xf7, 0x9f, 0xdb, 0xda, 0x8f, 0xd9, 0x8c, 0x5b, 0x77, 0x4b, 0x6f, 0x5f, 0xad,
0x70, 0xfc, 0x7c, 0xc9, 0x56, 0xe7, 0x60, 0xdf, 0x06, 0x67, 0x5a, 0xaf, 0x83, 0xeb, 0xb7, 0x8c, 0x4b, 0x9d, 0x69, 0x9b,
0x7e, 0xbd, 0x6c, 0xa9, 0x77, 0x92, 0x73, 0x79, 0x02, 0xdb, 0xe4, 0x0d, 0xd7, 0xec, 0xba, 0x0e, 0xb3, 0x1c, 0x86, 0x99,
0xcc, 0x87, 0xed, 0x50, 0x34, 0xcd, 0x3f, 0xcf, 0x96, 0x67, 0x1b, 0x66, 0xc5, 0x8c, 0x72, 0xde, 0xbf, 0x5a, 0xee, 0xe9,
0x3d, 0x99, 0xf9, 0x69, 0xf4, 0x3e, 0x7a, 0x4b, 0x67, 0x67, 0xbe, 0x2b, 0x07, 0xfb, 0xa8, 0x3e, 0xf7, 0x74, 0xf6, 0x8b,
0xca, 0x96, 0xbd, 0xbb, 0xae, 0xca, 0x2c, 0xd7, 0xc3, 0x7e, 0xb8, 0x15, 0x46, 0x39, 0x92, 0xf7, 0x6e, 0x1e, 0xf1, 0x5c,
0x5f, 0x5b, 0x95, 0xfb, 0x3e, 0xa6, 0x25, 0x8e, 0xe4, 0x77, 0xda, 0xf0, 0x38, 0x71, 0xd9, 0x3b, 0x65, 0x91, 0xac, 0xad,
0xed, 0xef, 0x1c, 0x1b, 0xb9, 0xba, 0x3c, 0x13, 0xff, 0x95, 0xfc, 0xd2, 0x5b, 0x3a, 0x03, 0xea, 0xde, 0xc9, 0x4b, 0xff,
0xfb, 0x7a, 0x76, 0x57, 0xa6, 0x95, 0x6c, 0x5b, 0xdf, 0x11, 0xff, 0xf3, 0xdc, 0x69, 0x91, 0x1a, 0x07, 0xf3, 0x7d, 0xf1,
0x89, 0xdc, 0x0d, 0x77, 0xe5, 0x23, 0x3f, 0xd3, 0x8a, 0x57, 0xc6, 0x7f, 0x3e, 0x4f, 0x6c, 0x3d, 0xf3, 0xcf, 0xfa, 0xf8,
0xcf, 0xe7, 0xab, 0x8a, 0x6e, 0x3e, 0x15, 0xf1, 0x5f, 0x8d, 0xff, 0xf8, 0x80, 0xf8, 0x5f, 0x99, 0x49, 0x7b, 0xb6, 0xb7,
0x48, 0x65, 0x3e, 0x9f, 0x65, 0xf9, 0x69, 0x83, 0xb9, 0xec, 0xb1, 0xbb, 0x8f, 0x38, 0x30, 0xff, 0xb8, 0x27, 0xfe, 0x67,
0x99, 0x7b, 0x73, 0xfd, 0xab, 0xba, 0x9f, 0x55, 0x6b, 0x30, 0xcc, 0x7a, 0x4e, 0xb6, 0x45, 0x23, 0xb9, 0x52, 0xe0, 0xea,
0xf8, 0x1f, 0x47, 0x6d, 0xad, 0x6c, 0xdb, 0xd2, 0x11, 0xf7, 0xec, 0x08, 0x18, 0x4b, 0xef, 0x0c, 0xee, 0xb9, 0x8a, 0xef,
0xa7, 0x57, 0x8f, 0x8b, 0xe1, 0x1d, 0xe6, 0xba, 0xbe, 0x75, 0xef, 0xf8, 0x1f, 0x8b, 0xf3, 0xa9, 0xc7, 0x8d, 0x99, 0x56,
0xf3, 0xab, 0x5c, 0x64, 0xeb, 0xb3, 0x92, 0x23, 0x35, 0x9f, 0x55, 0xf9, 0x5b, 0xe2, 0xff, 0xfa, 0x2d, 0xeb, 0x23, 0x2d,
0x17, 0xff, 0x71, 0xc3, 0xdc, 0xf2, 0x13, 0xe6, 0xff, 0xdb, 0x30, 0x5f, 0xfd, 0x5d, 0xf1, 0x5f, 0x6d, 0x8d, 0x6b, 0xe3,
0x3f, 0x0a, 0xf3, 0xf6, 0x95, 0xf3, 0xfc, 0x67, 0xe6, 0xff, 0xe3, 0x31, 0x26, 0xd2, 0xf5, 0x5e, 0xcd, 0x61, 0x7a, 0x65,
0xfc, 0xc7, 0x2d, 0xf7, 0x96, 0xf7, 0xc7, 0xff, 0xda, 0xb8, 0x5c, 0x1b, 0xff, 0x2b, 0xd7, 0xab, 0x10, 0xff, 0xf7, 0xcf,
0x0c, 0xd6, 0x7e, 0xa7, 0x72, 0x77, 0xf0, 0xe4, 0xf8, 0x7f, 0x7f, 0x5d, 0x3f, 0x1f, 0xff, 0x2b, 0xe7, 0xff, 0xf1, 0x70,
0xfc, 0x57, 0xd6, 0xff, 0xba, 0x67, 0x96, 0x2f, 0xfe, 0x9f, 0x88, 0xff, 0x37, 0xd4, 0x7a, 0x7e, 0xde, 0x34, 0x7f, 0x5a,
0x98, 0x5b, 0x35, 0xb1, 0xf6, 0x54, 0x3c, 0x8a, 0x2b, 0x87, 0x47, 0xa1, 0xd4, 0x95, 0x99, 0xe3, 0xb6, 0xe4, 0x5e, 0xbe,
0x76, 0x35, 0xa9, 0x64, 0x8e, 0xaf, 0xae, 0x33, 0x76, 0xe7, 0x7d, 0xc1, 0x35, 0xdf, 0xca, 0xb5, 0x62, 0x4c, 0xeb, 0x7e,
0xc5, 0x75, 0x64, 0x7b, 0x61, 0x16, 0x7f, 0x3e, 0x5d, 0xdc, 0xf4, 0x1d, 0xd4, 0x22, 0xe2, 0x1f, 0xb5, 0xc8, 0x9b, 0x7a,
0x61, 0x24, 0xef, 0xa9, 0xcd, 0x42, 0xd7, 0xd4, 0xba, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x56, 0xfd, 0x7e, 0x72, 0x36, 0xa7, 0xf8, 0x28, 0x6f, 0x62, 0x7e, 0x7f, 0xb3, 0x2c, 0x68, 0xed, 0xc1, 0x2d, 0xa3,
0x5a, 0x68, 0x07, 0xcf, 0xa6, 0x25, 0xf3, 0xbc, 0xf5, 0xeb, 0xa4, 0x9f, 0x5f, 0xbe, 0x25, 0xb7, 0xb5, 0xc9, 0x1e, 0x8f,
0xee, 0xfd, 0x78, 0x1b, 0xf7, 0xb3, 0xa8, 0xe5, 0xea, 0xbd, 0x9f, 0x99, 0xbf, 0x25, 0x57, 0x2c, 0x98, 0xd5, 0xe8, 0x96,
0x68, 0xc9, 0x23, 0xbd, 0x69, 0xb4, 0xd6, 0xc4, 0xd1, 0x76, 0x38, 0x7a, 0x0e, 0x71, 0xf0, 0xad, 0xa3, 0x59, 0xae, 0xc5,
0xd1, 0x96, 0x4c, 0x56, 0xa3, 0x33, 0xb9, 0x27, 0x56, 0xe6, 0xd2, 0x5d, 0x95, 0x4b, 0x3f, 0x97, 0xbb, 0x71, 0x1f, 0xb6,
0x51, 0x9c, 0xbc, 0x52, 0xb7, 0xc1, 0x31, 0x5a, 0x21, 0xef, 0xc3, 0xf1, 0xbd, 0x1f, 0x6f, 0xe3, 0x3d, 0x9d, 0xdd, 0x64,
0x65, 0xfe, 0xfd, 0x96, 0xce, 0xd8, 0xb9, 0x27, 0x57, 0xc4, 0x38, 0x9e, 0x4f, 0x62, 0x4f, 0x67, 0xae, 0x98, 0xf5, 0xc3,
0xfd, 0xc4, 0x15, 0xe0, 0xce, 0xfc, 0x3b, 0x6f, 0x88, 0xff, 0x55, 0xb9, 0xb4, 0xaf, 0xce, 0xca, 0xd3, 0xba, 0xa5, 0x6f,
0x17, 0xd7, 0x6d, 0x3d, 0xe2, 0x62, 0x98, 0x01, 0x23, 0xca, 0x63, 0xd4, 0xd1, 0x63, 0x8c, 0x22, 0x67, 0xb4, 0x62, 0xd1,
0xf1, 0xeb, 0x66, 0x2c, 0x88, 0xff, 0x33, 0x6f, 0x03, 0x1f, 0x1f, 0x5b, 0x8e, 0xd6, 0xef, 0x7d, 0x19, 0xf3, 0xc7, 0x39,
0xd8, 0x73, 0x59, 0xd8, 0x57, 0x67, 0xcc, 0x59, 0x17, 0xe7, 0xab, 0xf2, 0xe8, 0xe4, 0xa2, 0x25, 0xd2, 0xf3, 0xf1, 0x4c,
0xfc, 0xc7, 0xe1, 0xd9, 0x7f, 0x36, 0x9f, 0x4d, 0x3e, 0x1a, 0x62, 0xf1, 0x1b, 0xb5, 0xfd, 0xf2, 0xb6, 0x8b, 0xc6, 0xff,
0xd5, 0xf1, 0xbf, 0x9d, 0x88, 0xfe, 0x7b, 0x57, 0xcc, 0xd8, 0x8a, 0xeb, 0x52, 0x5c, 0x9d, 0x4b, 0x33, 0x0a, 0x65, 0x7b,
0x2e, 0xfe, 0xb3, 0x2b, 0x18, 0x8c, 0x8e, 0xd0, 0x0e, 0x97, 0xa4, 0x5d, 0x14, 0x9b, 0x51, 0xec, 0xd5, 0xf1, 0x48, 0x66,
0x8e, 0x73, 0xe3, 0xff, 0x76, 0x3a, 0xfe, 0xd7, 0xd7, 0xab, 0xf8, 0xaf, 0xcf, 0x67, 0xee, 0x8d, 0xff, 0xad, 0xb0, 0x4e,
0x4b, 0x14, 0x66, 0x5d, 0xf5, 0x2b, 0xc0, 0x5d, 0xfd, 0xfa, 0xed, 0xcf, 0xd3, 0x67, 0xfd, 0xe0, 0x5d, 0xe7, 0x30, 0xeb,
0x21, 0x99, 0x7e, 0x15, 0x93, 0xa3, 0xe4, 0xef, 0x8d, 0x2b, 0x7d, 0x7e, 0x2b, 0x66, 0x88, 0xaf, 0xe4, 0x2d, 0x3d, 0x7f,
0xbf, 0x70, 0xfe, 0x2a, 0x52, 0x5d, 0xbf, 0x2b, 0x4e, 0xf7, 0x91, 0x4c, 0x7b, 0xad, 0xed, 0xaf, 0xef, 0xbd, 0x0e, 0xcc,
0xb3, 0xc6, 0x7e, 0x46, 0x3e, 0xa0, 0xb8, 0xed, 0x5a, 0xfc, 0x96, 0xfa, 0x88, 0x45, 0x77, 0x8e, 0x57, 0x8d, 0xff, 0x6b,
0x9f, 0xad, 0x66, 0xe3, 0xe8, 0xfb, 0xb2, 0x58, 0xc5, 0x25, 0xd7, 0x92, 0x58, 0x7a, 0xbf, 0x23, 0xfe, 0xc5, 0xff, 0x15,
0xf1, 0x7f, 0xfc, 0x18, 0xf1, 0xb5, 0xf1, 0xff, 0x44, 0x2f, 0x12, 0xff, 0x67, 0xe6, 0x97, 0x6f, 0x9a, 0x51, 0x5e, 0x1b,
0xff, 0xeb, 0xc6, 0xb1, 0xca, 0x7d, 0xd7, 0x9b, 0x5a, 0x47, 0xfc, 0xf3, 0x49, 0xed, 0xfc, 0x9e, 0x75, 0x34, 0x00, 0xf1,
0x0f, 0x5c, 0x33, 0xef, 0x3e, 0xf6, 0x93, 0x7b, 0xd1, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xc0, 0x59, 0xad, 0x9b, 0x59, 0x3c, 0xba, 0x59, 0xcc, 0xff, 0xf9, 0xef, 0xcf, 0x5b, 0x9f, 0x3d, 0x9f, 0x2d, 0x55, 0xb6,
0x36, 0xcc, 0xf8, 0xde, 0x1e, 0x2e, 0xf5, 0x95, 0x47, 0x68, 0xb7, 0x9d, 0xe1, 0xda, 0x5a, 0xe9, 0xbd, 0x47, 0xdb, 0x6e,
0xa8, 0xc9, 0x5a, 0x7b, 0xb5, 0xe1, 0xb6, 0x96, 0xee, 0xb3, 0xb5, 0x2d, 0xff, 0xfd, 0x9f, 0xfb, 0xb0, 0x86, 0xf7, 0x64,
0x5e, 0xde, 0xda, 0x9b, 0xd1, 0xb5, 0x6c, 0x5a, 0x3f, 0x6f, 0xdb, 0xff, 0xfa, 0xdb, 0xdb, 0x96, 0xa9, 0x83, 0x71, 0xee,
0xfb, 0x95, 0xe7, 0x33, 0x2a, 0xf5, 0x9a, 0x0c, 0xc4, 0x3f, 0x1f, 0x21, 0x06, 0x67, 0x18, 0xa5, 0x6c, 0x66, 0x77, 0xb5,
0x65, 0x6f, 0x4d, 0x86, 0xbd, 0xb0, 0xda, 0xca, 0x1d, 0xed, 0x15, 0xa5, 0xf5, 0x1b, 0xb6, 0x49, 0xdf, 0xcc, 0xf5, 0xe7,
0x4c, 0xdd, 0x8f, 0xf2, 0xcd, 0x8e, 0xce, 0xb3, 0x7f, 0xe4, 0xfe, 0x99, 0xec, 0xc9, 0x33, 0xf9, 0xf5, 0xf9, 0x9e, 0xbc,
0x96, 0xb6, 0xc1, 0x3c, 0xa7, 0xf2, 0xd6, 0xee, 0xca, 0xf3, 0x19, 0x8d, 0xc3, 0xfd, 0x3a, 0xc8, 0x1f, 0xe3, 0x78, 0x5b,
0x8e, 0xea, 0xf8, 0xf9, 0xb6, 0x1c, 0xf5, 0xcc, 0x48, 0x47, 0x52, 0xbe, 0xcc, 0xfd, 0xbe, 0xde, 0xdb, 0xdb, 0x6c, 0x3d,
0x9d, 0x67, 0xde, 0x11, 0x9f, 0xc5, 0x7f, 0xa4, 0xe3, 0x7f, 0xbc, 0x0a, 0xcc, 0xf1, 0x4f, 0x47, 0x57, 0xd9, 0x7d, 0x30,
0x96, 0xf7, 0x6a, 0xb9, 0x0d, 0xeb, 0xbf, 0xf6, 0xd6, 0xfe, 0xaa, 0xf3, 0xa9, 0x1c, 0x67, 0x4f, 0xd7, 0x59, 0x2e, 0x2b,
0xea, 0x3e, 0x3c, 0x93, 0x67, 0xdb, 0x72, 0xd4, 0x9b, 0xdb, 0x20, 0x4b, 0xff, 0xea, 0xf6, 0x8a, 0xc4, 0xde, 0xaa, 0x6b,
0xd6, 0x8c, 0xd6, 0xe0, 0xcb, 0x6e, 0xe9, 0x45, 0x79, 0x65, 0xf6, 0x97, 0x9d, 0x13, 0xe7, 0xc7, 0xe5, 0xea, 0x58, 0xbe,
0xa5, 0xb3, 0x96, 0xcf, 0x56, 0xc9, 0xc8, 0x8c, 0xd8, 0x95, 0x2d, 0x51, 0xb8, 0x37, 0x6c, 0xe9, 0x27, 0x16, 0xa3, 0x9c,
0xe2, 0x91, 0x1c, 0xe3, 0x9e, 0x6d, 0xcb, 0xd9, 0x68, 0x96, 0x39, 0x9b, 0xca, 0x96, 0xd1, 0xac, 0xa9, 0xff, 0x9d, 0xfc,
0xca, 0x98, 0x67, 0x56, 0xe7, 0x6b, 0x97, 0xcd, 0xff, 0xe7, 0x39, 0xb6, 0xd7, 0x8c, 0xcb, 0xd5, 0xb1, 0x7c, 0x2b, 0xac,
0x5a, 0x10, 0x97, 0xdf, 0x31, 0x56, 0x57, 0x47, 0xdb, 0xbb, 0xf7, 0xc6, 0xb9, 0xcf, 0xab, 0x6b, 0x1f, 0xc4, 0x0b, 0xdb,
0x32, 0x1f, 0xff, 0xd7, 0xac, 0x73, 0xb1, 0x76, 0x6d, 0xbc, 0x76, 0x5b, 0x9f, 0x3a, 0x3e, 0xca, 0xaf, 0x5e, 0xe5, 0xee,
0xfa, 0x5a, 0xae, 0xe5, 0xf2, 0x7f, 0x3a, 0xfe, 0x63, 0xe1, 0x8a, 0x02, 0xab, 0xe2, 0xbf, 0xbd, 0x24, 0x62, 0xfe, 0x94,
0xf8, 0xcf, 0xad, 0xc2, 0x11, 0xa5, 0x95, 0x3b, 0x32, 0x31, 0x9e, 0x7f, 0x96, 0xff, 0x9e, 0x5a, 0xfe, 0x9e, 0xf1, 0xff,
0xb9, 0xf8, 0x8f, 0x0f, 0x8c, 0xff, 0xf7, 0x96, 0xf9, 0xf9, 0xb1, 0xf1, 0xd9, 0xf8, 0xaf, 0x8c, 0xcb, 0xf5, 0x75, 0x79,
0xd6, 0xc6, 0x7f, 0x24, 0x46, 0xec, 0xf5, 0x99, 0xb8, 0x9f, 0x8a, 0xff, 0xf7, 0x8e, 0xa5, 0xb3, 0xba, 0x7a, 0xb2, 0x64,
0xb3, 0x55, 0xe6, 0xdf, 0x15, 0xff, 0xd5, 0x15, 0x55, 0x23, 0x39, 0x93, 0x7d, 0xff, 0xf8, 0x1f, 0xa9, 0x35, 0xf7, 0xbe,
0x67, 0xfc, 0x8f, 0xc9, 0xda, 0xbc, 0x9f, 0x37, 0xff, 0x8f, 0x47, 0x63, 0x2c, 0x4a, 0x2b, 0xc9, 0x66, 0x57, 0xda, 0x5b,
0x35, 0xff, 0xbf, 0xf3, 0xe7, 0x8c, 0x9f, 0x36, 0x9b, 0x3c, 0xf7, 0xa4, 0xe3, 0x33, 0xe2, 0x7f, 0x3e, 0x92, 0x7e, 0x5e,
0x8b, 0x3d, 0x3d, 0xc6, 0xca, 0xf6, 0xfc, 0x4d, 0xf1, 0xbf, 0xdd, 0x32, 0xfe, 0x57, 0x57, 0x3a, 0xcd, 0xfe, 0xfe, 0xd9,
0x27, 0xc5, 0xff, 0xca, 0x95, 0x87, 0xee, 0x2c, 0x99, 0xf8, 0x7f, 0xdb, 0x3d, 0xce, 0x8a, 0x92, 0xdf, 0xf5, 0x13, 0x99,
0xbb, 0xc7, 0xf9, 0xf7, 0x5e, 0xb1, 0xdf, 0xdb, 0xff, 0xaa, 0xbf, 0xe7, 0x2e, 0xfe, 0x3f, 0x2f, 0xfe, 0xb3, 0x23, 0x76,
0x65, 0xcb, 0xfc, 0x48, 0xe7, 0x3f, 0x5f, 0xd7, 0x62, 0xeb, 0x9f, 0x7e, 0xde, 0x71, 0xb7, 0x7a, 0x5f, 0xc9, 0xc4, 0x3f,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xad, 0x36, 0xcc, 0xe4, 0x9f, 0xcd, 0x4a, 0x3e, 0xca, 0x0c,
0x18, 0xb7, 0xe4, 0x38, 0xaf, 0xe6, 0xff, 0x3f, 0xfe, 0x79, 0xbe, 0xc6, 0x2a, 0x65, 0x5a, 0x7b, 0xee, 0x6d, 0xd2, 0x66,
0x3f, 0x7f, 0xde, 0x0a, 0xab, 0x3c, 0xdc, 0xd1, 0x62, 0xad, 0xd4, 0x9f, 0xf9, 0xa9, 0xb6, 0xf6, 0x85, 0xb5, 0x35, 0x5b,
0x33, 0xe0, 0x99, 0x1c, 0xe7, 0xb3, 0xe3, 0xb4, 0x45, 0xc7, 0x18, 0x67, 0xb8, 0xce, 0x95, 0xa9, 0x72, 0xee, 0xeb, 0xdb,
0xb2, 0x5f, 0x8a, 0x7b, 0x5a, 0xac, 0xf9, 0x0d, 0xfb, 0x47, 0xdf, 0xd9, 0xa9, 0x64, 0x18, 0x8e, 0x64, 0xf6, 0xa3, 0xfb,
0x4a, 0xbd, 0xee, 0x08, 0xfd, 0xab, 0xd8, 0xfe, 0xd2, 0xb1, 0x67, 0x9c, 0x7b, 0x76, 0x94, 0x15, 0xb1, 0xdd, 0xf4, 0x66,
0x58, 0x4b, 0xbf, 0xcb, 0xd3, 0x16, 0xed, 0x4d, 0x94, 0xaf, 0xca, 0x3d, 0xbc, 0x4d, 0xf3, 0x72, 0xad, 0xba, 0xce, 0xe4,
0x4b, 0xbd, 0x0d, 0xf6, 0x95, 0xfb, 0x7c, 0x4b, 0xe6, 0x6a, 0x89, 0xc5, 0x59, 0xdc, 0xd7, 0xd6, 0xca, 0x36, 0xb9, 0x8e,
0x47, 0x22, 0xc6, 0xce, 0x6c, 0xc9, 0x1f, 0xe7, 0x6d, 0x6b, 0x69, 0x7c, 0xee, 0x7b, 0xb9, 0xfb, 0xa2, 0xdc, 0xc3, 0xf5,
0x4c, 0x9a, 0xab, 0x72, 0x9c, 0xd7, 0x32, 0xb3, 0xac, 0xcb, 0xa4, 0xb7, 0x77, 0xfb, 0xf1, 0xda, 0x33, 0xbc, 0xbe, 0x56,
0x3e, 0x21, 0x97, 0xee, 0x1b, 0xdf, 0x0c, 0xff, 0xec, 0xf7, 0xf3, 0x8f, 0x8c, 0x67, 0xdb, 0x74, 0xce, 0xf8, 0x64, 0xfb,
0x5f, 0x9f, 0x49, 0x67, 0xfb, 0xc8, 0x0c, 0x87, 0x5b, 0x39, 0x03, 0x98, 0xf8, 0xff, 0xf6, 0xf9, 0x7f, 0xdc, 0x90, 0x17,
0x69, 0x76, 0x2d, 0x59, 0x9b, 0xff, 0x77, 0x13, 0xff, 0x27, 0xa3, 0xe2, 0xf9, 0x5c, 0x9a, 0xf3, 0xab, 0xfc, 0x26, 0xfe,
0x17, 0x8d, 0xfb, 0xdf, 0x96, 0x49, 0xd3, 0xf8, 0x7f, 0x5d, 0x54, 0x7c, 0xea, 0x5a, 0x1a, 0x6c, 0x85, 0xb1, 0x7c, 0x65,
0x86, 0xe1, 0xb8, 0xe1, 0x0a, 0x54, 0xc9, 0xcc, 0x98, 0xff, 0xfc, 0xd3, 0xa2, 0x7c, 0x65, 0x8e, 0xad, 0x6b, 0xca, 0xb6,
0x26, 0xfe, 0xdf, 0x99, 0xfd, 0xfa, 0x13, 0xe7, 0xff, 0xf7, 0x3c, 0x63, 0xd8, 0x6e, 0xce, 0xcc, 0x16, 0x4b, 0x3e, 0xdf,
0x92, 0x77, 0x38, 0x2b, 0xef, 0x97, 0x9e, 0xcf, 0xa4, 0x77, 0x5f, 0x56, 0xfa, 0xda, 0x5d, 0x9e, 0xf1, 0x1f, 0xbe, 0xfb,
0xd9, 0xb4, 0xf8, 0x07, 0xf1, 0x6f, 0xf6, 0x0f, 0xee, 0x4c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xc7, 0xaf, 0x3f, 0xea, 0x01, 0xc4, 0x3f, 0xf0, 0xc7,
0xc5, 0xff, 0xff, 0x00 };
// Font glyphs rectangles data (on atlas)
static const Rectangle amberFontRecs[189] = {
{ 4, 4, 5 , 16 },
{ 17, 4, 2 , 10 },
{ 27, 4, 4 , 4 },
{ 39, 4, 5 , 10 },
{ 52, 4, 5 , 11 },
{ 65, 4, 5 , 10 },
{ 78, 4, 5 , 10 },
{ 91, 4, 2 , 4 },
{ 101, 4, 4 , 13 },
{ 113, 4, 5 , 13 },
{ 126, 4, 4 , 4 },
{ 138, 4, 5 , 6 },
{ 151, 4, 3 , 2 },
{ 162, 4, 5 , 2 },
{ 175, 4, 2 , 1 },
{ 185, 4, 5 , 10 },
{ 198, 4, 5 , 10 },
{ 211, 4, 4 , 10 },
{ 223, 4, 5 , 10 },
{ 236, 4, 5 , 10 },
{ 249, 4, 5 , 10 },
{ 262, 4, 5 , 10 },
{ 275, 4, 5 , 10 },
{ 288, 4, 5 , 10 },
{ 301, 4, 5 , 10 },
{ 314, 4, 5 , 10 },
{ 327, 4, 2 , 6 },
{ 337, 4, 2 , 6 },
{ 347, 4, 5 , 6 },
{ 360, 4, 5 , 4 },
{ 373, 4, 5 , 6 },
{ 386, 4, 5 , 10 },
{ 399, 4, 5 , 7 },
{ 412, 4, 5 , 10 },
{ 425, 4, 5 , 10 },
{ 438, 4, 5 , 10 },
{ 451, 4, 5 , 10 },
{ 464, 4, 5 , 10 },
{ 477, 4, 5 , 10 },
{ 490, 4, 5 , 10 },
{ 4, 28, 5 , 10 },
{ 17, 28, 4 , 10 },
{ 29, 28, 5 , 10 },
{ 42, 28, 5 , 10 },
{ 55, 28, 5 , 10 },
{ 68, 28, 5 , 10 },
{ 81, 28, 5 , 10 },
{ 94, 28, 5 , 10 },
{ 107, 28, 5 , 10 },
{ 120, 28, 5 , 10 },
{ 133, 28, 5 , 10 },
{ 146, 28, 5 , 10 },
{ 159, 28, 5 , 10 },
{ 172, 28, 5 , 10 },
{ 185, 28, 5 , 10 },
{ 198, 28, 5 , 10 },
{ 211, 28, 5 , 10 },
{ 224, 28, 5 , 10 },
{ 237, 28, 5 , 10 },
{ 250, 28, 3 , 13 },
{ 261, 28, 5 , 10 },
{ 274, 28, 3 , 13 },
{ 285, 28, 4 , 3 },
{ 297, 28, 5 , 1 },
{ 310, 28, 3 , 3 },
{ 321, 28, 5 , 7 },
{ 334, 28, 5 , 10 },
{ 347, 28, 5 , 7 },
{ 360, 28, 5 , 10 },
{ 373, 28, 5 , 7 },
{ 386, 28, 5 , 10 },
{ 399, 28, 5 , 10 },
{ 412, 28, 5 , 10 },
{ 425, 28, 4 , 10 },
{ 437, 28, 3 , 13 },
{ 448, 28, 5 , 10 },
{ 461, 28, 5 , 10 },
{ 474, 28, 5 , 7 },
{ 487, 28, 5 , 7 },
{ 4, 52, 5 , 7 },
{ 17, 52, 5 , 10 },
{ 30, 52, 5 , 10 },
{ 43, 52, 5 , 7 },
{ 56, 52, 5 , 7 },
{ 69, 52, 5 , 10 },
{ 82, 52, 5 , 7 },
{ 95, 52, 5 , 7 },
{ 108, 52, 5 , 7 },
{ 121, 52, 5 , 7 },
{ 134, 52, 5 , 10 },
{ 147, 52, 5 , 7 },
{ 160, 52, 4 , 13 },
{ 172, 52, 2 , 13 },
{ 182, 52, 4 , 13 },
{ 194, 52, 5 , 4 },
{ 207, 52, 2 , 9 },
{ 217, 52, 5 , 7 },
{ 230, 52, 5 , 10 },
{ 243, 52, 5 , 10 },
{ 256, 52, 5 , 10 },
{ 269, 52, 0 , 0 },
{ 277, 52, 5 , 10 },
{ 290, 52, 0 , 0 },
{ 298, 52, 5 , 7 },
{ 311, 52, 3 , 5 },
{ 322, 52, 5 , 5 },
{ 335, 52, 5 , 3 },
{ 348, 52, 5 , 7 },
{ 361, 52, 5 , 2 },
{ 374, 52, 4 , 4 },
{ 386, 52, 5 , 8 },
{ 399, 52, 3 , 5 },
{ 410, 52, 3 , 6 },
{ 421, 52, 0 , 0 },
{ 429, 52, 5 , 10 },
{ 442, 52, 5 , 10 },
{ 455, 52, 2 , 3 },
{ 465, 52, 0 , 0 },
{ 473, 52, 3 , 5 },
{ 484, 52, 4 , 4 },
{ 496, 52, 5 , 5 },
{ 4, 76, 5 , 10 },
{ 17, 76, 5 , 7 },
{ 30, 76, 5 , 10 },
{ 43, 76, 5 , 10 },
{ 56, 76, 5 , 14 },
{ 69, 76, 5 , 14 },
{ 82, 76, 5 , 14 },
{ 95, 76, 5 , 14 },
{ 108, 76, 5 , 12 },
{ 121, 76, 5 , 12 },
{ 134, 76, 5 , 10 },
{ 147, 76, 5 , 13 },
{ 160, 76, 5 , 14 },
{ 173, 76, 5 , 14 },
{ 186, 76, 5 , 14 },
{ 199, 76, 5 , 12 },
{ 212, 76, 4 , 14 },
{ 224, 76, 4 , 14 },
{ 236, 76, 4 , 14 },
{ 248, 76, 4 , 12 },
{ 260, 76, 5 , 10 },
{ 273, 76, 5 , 14 },
{ 286, 76, 5 , 14 },
{ 299, 76, 5 , 14 },
{ 312, 76, 5 , 14 },
{ 325, 76, 5 , 14 },
{ 338, 76, 5 , 12 },
{ 351, 76, 4 , 3 },
{ 363, 76, 5 , 10 },
{ 376, 76, 5 , 14 },
{ 389, 76, 5 , 14 },
{ 402, 76, 5 , 14 },
{ 415, 76, 5 , 12 },
{ 428, 76, 5 , 14 },
{ 441, 76, 5 , 10 },
{ 454, 76, 5 , 10 },
{ 467, 76, 5 , 10 },
{ 480, 76, 5 , 10 },
{ 493, 76, 5 , 10 },
{ 4, 100, 5 , 10 },
{ 17, 100, 5 , 9 },
{ 30, 100, 5 , 9 },
{ 43, 100, 5 , 7 },
{ 56, 100, 5 , 10 },
{ 69, 100, 5 , 10 },
{ 82, 100, 5 , 10 },
{ 95, 100, 5 , 10 },
{ 108, 100, 5 , 9 },
{ 121, 100, 4 , 10 },
{ 133, 100, 4 , 10 },
{ 145, 100, 4 , 10 },
{ 157, 100, 4 , 9 },
{ 169, 100, 5 , 10 },
{ 182, 100, 5 , 10 },
{ 195, 100, 5 , 10 },
{ 208, 100, 5 , 10 },
{ 221, 100, 5 , 10 },
{ 234, 100, 5 , 10 },
{ 247, 100, 5 , 9 },
{ 260, 100, 5 , 6 },
{ 273, 100, 5 , 7 },
{ 286, 100, 5 , 10 },
{ 299, 100, 5 , 10 },
{ 312, 100, 5 , 10 },
{ 325, 100, 5 , 9 },
{ 338, 100, 5 , 13 },
{ 351, 100, 5 , 10 },
{ 364, 100, 5 , 12 },
};
// Font glyphs info data
// NOTE: No glyphs.image data provided
static const GlyphInfo amberFontGlyphs[189] = {
{ 32, 0, 0, 5, { 0 }},
{ 33, 1, 3, 5, { 0 }},
{ 34, 0, 3, 5, { 0 }},
{ 35, 0, 3, 5, { 0 }},
{ 36, 0, 3, 5, { 0 }},
{ 37, 0, 3, 5, { 0 }},
{ 38, 0, 3, 5, { 0 }},
{ 39, 1, 4, 5, { 0 }},
{ 40, 0, 3, 5, { 0 }},
{ 41, 0, 3, 5, { 0 }},
{ 42, 0, 3, 5, { 0 }},
{ 43, 0, 7, 5, { 0 }},
{ 44, 0, 12, 5, { 0 }},
{ 45, 0, 9, 5, { 0 }},
{ 46, 1, 12, 5, { 0 }},
{ 47, 0, 3, 5, { 0 }},
{ 48, 0, 3, 5, { 0 }},
{ 49, 0, 3, 5, { 0 }},
{ 50, 0, 3, 5, { 0 }},
{ 51, 0, 3, 5, { 0 }},
{ 52, 0, 3, 5, { 0 }},
{ 53, 0, 3, 5, { 0 }},
{ 54, 0, 3, 5, { 0 }},
{ 55, 0, 3, 5, { 0 }},
{ 56, 0, 3, 5, { 0 }},
{ 57, 0, 3, 5, { 0 }},
{ 58, 0, 7, 5, { 0 }},
{ 59, 0, 7, 5, { 0 }},
{ 60, 0, 7, 5, { 0 }},
{ 61, 0, 8, 5, { 0 }},
{ 62, 0, 7, 5, { 0 }},
{ 63, 0, 3, 5, { 0 }},
{ 64, 0, 6, 5, { 0 }},
{ 65, 0, 3, 5, { 0 }},
{ 66, 0, 3, 5, { 0 }},
{ 67, 0, 3, 5, { 0 }},
{ 68, 0, 3, 5, { 0 }},
{ 69, 0, 3, 5, { 0 }},
{ 70, 0, 3, 5, { 0 }},
{ 71, 0, 3, 5, { 0 }},
{ 72, 0, 3, 5, { 0 }},
{ 73, 0, 3, 5, { 0 }},
{ 74, 0, 3, 5, { 0 }},
{ 75, 0, 3, 5, { 0 }},
{ 76, 0, 3, 5, { 0 }},
{ 77, 0, 3, 5, { 0 }},
{ 78, 0, 3, 5, { 0 }},
{ 79, 0, 3, 5, { 0 }},
{ 80, 0, 3, 5, { 0 }},
{ 81, 0, 3, 5, { 0 }},
{ 82, 0, 3, 5, { 0 }},
{ 83, 0, 3, 5, { 0 }},
{ 84, 0, 3, 5, { 0 }},
{ 85, 0, 3, 5, { 0 }},
{ 86, 0, 3, 5, { 0 }},
{ 87, 0, 3, 5, { 0 }},
{ 88, 0, 3, 5, { 0 }},
{ 89, 0, 3, 5, { 0 }},
{ 90, 0, 3, 5, { 0 }},
{ 91, 0, 3, 5, { 0 }},
{ 92, 0, 3, 5, { 0 }},
{ 93, 0, 3, 5, { 0 }},
{ 94, 0, 3, 5, { 0 }},
{ 95, 0, 12, 5, { 0 }},
{ 96, 1, 4, 5, { 0 }},
{ 97, 0, 6, 5, { 0 }},
{ 98, 0, 3, 5, { 0 }},
{ 99, 0, 6, 5, { 0 }},
{ 100, 0, 3, 5, { 0 }},
{ 101, 0, 6, 5, { 0 }},
{ 102, 0, 3, 5, { 0 }},
{ 103, 0, 6, 5, { 0 }},
{ 104, 0, 3, 5, { 0 }},
{ 105, 0, 3, 5, { 0 }},
{ 106, 0, 3, 5, { 0 }},
{ 107, 0, 3, 5, { 0 }},
{ 108, 0, 3, 5, { 0 }},
{ 109, 0, 6, 5, { 0 }},
{ 110, 0, 6, 5, { 0 }},
{ 111, 0, 6, 5, { 0 }},
{ 112, 0, 6, 5, { 0 }},
{ 113, 0, 6, 5, { 0 }},
{ 114, 0, 6, 5, { 0 }},
{ 115, 0, 6, 5, { 0 }},
{ 116, 0, 3, 5, { 0 }},
{ 117, 0, 6, 5, { 0 }},
{ 118, 0, 6, 5, { 0 }},
{ 119, 0, 6, 5, { 0 }},
{ 120, 0, 6, 5, { 0 }},
{ 121, 0, 6, 5, { 0 }},
{ 122, 0, 6, 5, { 0 }},
{ 123, 0, 3, 5, { 0 }},
{ 124, 1, 3, 5, { 0 }},
{ 125, 0, 3, 5, { 0 }},
{ 126, 0, 8, 5, { 0 }},
{ 161, 1, 4, 5, { 0 }},
{ 162, 0, 6, 5, { 0 }},
{ 163, 0, 3, 5, { 0 }},
{ 8364, 0, 3, 5, { 0 }},
{ 165, 0, 3, 5, { 0 }},
{ 352, 0, 0, 0, { 0 }},
{ 167, 0, 3, 5, { 0 }},
{ 353, 0, 0, 0, { 0 }},
{ 169, 0, 6, 5, { 0 }},
{ 170, 2, 3, 5, { 0 }},
{ 171, 0, 8, 5, { 0 }},
{ 172, 0, 6, 5, { 0 }},
{ 174, 0, 6, 5, { 0 }},
{ 175, 0, 3, 5, { 0 }},
{ 176, 1, 3, 5, { 0 }},
{ 177, 0, 5, 5, { 0 }},
{ 178, 2, 3, 5, { 0 }},
{ 179, 2, 3, 5, { 0 }},
{ 381, 0, 0, 0, { 0 }},
{ 181, 0, 6, 5, { 0 }},
{ 182, 0, 3, 5, { 0 }},
{ 183, 1, 6, 5, { 0 }},
{ 382, 0, 0, 0, { 0 }},
{ 185, 0, 3, 5, { 0 }},
{ 186, 0, 3, 5, { 0 }},
{ 187, 0, 8, 5, { 0 }},
{ 338, 0, 3, 5, { 0 }},
{ 339, 0, 6, 5, { 0 }},
{ 376, 0, 3, 5, { 0 }},
{ 191, 0, 3, 5, { 0 }},
{ 192, 0, -1, 5, { 0 }},
{ 193, 0, -1, 5, { 0 }},
{ 194, 0, -1, 5, { 0 }},
{ 195, 0, -1, 5, { 0 }},
{ 196, 0, 1, 5, { 0 }},
{ 197, 0, 1, 5, { 0 }},
{ 198, 0, 3, 5, { 0 }},
{ 199, 0, 3, 5, { 0 }},
{ 200, 0, -1, 5, { 0 }},
{ 201, 0, -1, 5, { 0 }},
{ 202, 0, -1, 5, { 0 }},
{ 203, 0, 1, 5, { 0 }},
{ 204, 0, -1, 5, { 0 }},
{ 205, 0, -1, 5, { 0 }},
{ 206, 0, -1, 5, { 0 }},
{ 207, 0, 1, 5, { 0 }},
{ 208, 0, 3, 5, { 0 }},
{ 209, 0, -1, 5, { 0 }},
{ 210, 0, -1, 5, { 0 }},
{ 211, 0, -1, 5, { 0 }},
{ 212, 0, -1, 5, { 0 }},
{ 213, 0, -1, 5, { 0 }},
{ 214, 0, 1, 5, { 0 }},
{ 215, 0, 10, 5, { 0 }},
{ 216, 0, 3, 5, { 0 }},
{ 217, 0, -1, 5, { 0 }},
{ 218, 0, -1, 5, { 0 }},
{ 219, 0, -1, 5, { 0 }},
{ 220, 0, 1, 5, { 0 }},
{ 221, 0, -1, 5, { 0 }},
{ 222, 0, 3, 5, { 0 }},
{ 223, 0, 3, 5, { 0 }},
{ 224, 0, 3, 5, { 0 }},
{ 225, 0, 3, 5, { 0 }},
{ 226, 0, 3, 5, { 0 }},
{ 227, 0, 3, 5, { 0 }},
{ 228, 0, 4, 5, { 0 }},
{ 229, 0, 4, 5, { 0 }},
{ 230, 0, 6, 5, { 0 }},
{ 231, 0, 6, 5, { 0 }},
{ 232, 0, 3, 5, { 0 }},
{ 233, 0, 3, 5, { 0 }},
{ 234, 0, 3, 5, { 0 }},
{ 235, 0, 4, 5, { 0 }},
{ 236, 0, 3, 5, { 0 }},
{ 237, 0, 3, 5, { 0 }},
{ 238, 0, 3, 5, { 0 }},
{ 239, 0, 4, 5, { 0 }},
{ 240, 0, 3, 5, { 0 }},
{ 241, 0, 3, 5, { 0 }},
{ 242, 0, 3, 5, { 0 }},
{ 243, 0, 3, 5, { 0 }},
{ 244, 0, 3, 5, { 0 }},
{ 245, 0, 3, 5, { 0 }},
{ 246, 0, 4, 5, { 0 }},
{ 247, 0, 7, 5, { 0 }},
{ 248, 0, 6, 5, { 0 }},
{ 249, 0, 3, 5, { 0 }},
{ 250, 0, 3, 5, { 0 }},
{ 251, 0, 3, 5, { 0 }},
{ 252, 0, 4, 5, { 0 }},
{ 253, 0, 3, 5, { 0 }},
{ 254, 0, 3, 5, { 0 }},
{ 255, 0, 4, 5, { 0 }},
};
// Style loading function: Amber
static void GuiLoadStyleAmber(void)
{
// Load style properties provided
// NOTE: Default properties are propagated
for (int i = 0; i < AMBER_STYLE_PROPS_COUNT; i++)
{
GuiSetStyle(amberStyleProps[i].controlId, amberStyleProps[i].propertyId, amberStyleProps[i].propertyValue);
}
// Custom font loading
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
int amberFontDataSize = 0;
unsigned char *data = DecompressData(amberFontData, AMBER_STYLE_FONT_ATLAS_COMP_SIZE, &amberFontDataSize);
Image imFont = { data, 512, 256, 1, 2 };
Font font = { 0 };
font.baseSize = 16;
font.glyphCount = 189;
// Load texture from image
font.texture = LoadTextureFromImage(imFont);
UnloadImage(imFont); // Uncompressed image data can be unloaded from memory
// Copy char recs data from global fontRecs
// NOTE: Required to avoid issues if trying to free font
font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle));
memcpy(font.recs, amberFontRecs, font.glyphCount*sizeof(Rectangle));
// Copy font char info data from global fontChars
// NOTE: Required to avoid issues if trying to free font
font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo));
memcpy(font.glyphs, amberFontGlyphs, font.glyphCount*sizeof(GlyphInfo));
GuiSetFont(font);
// Setup a white rectangle on the font to be used on shapes drawing,
// it makes possible to draw shapes and text (full UI) in a single draw call
Rectangle fontWhiteRec = { 510, 254, 1, 1 };
SetShapesTexture(font.texture, fontWhiteRec);
//-----------------------------------------------------------------
// TODO: Custom user style setup: Set specific properties here (if required)
// i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT
}

View File

@ -0,0 +1,578 @@
//////////////////////////////////////////////////////////////////////////////////
// //
// StyleAsCode exporter v2.0 - Style data exported as a values array //
// //
// USAGE: On init call: GuiLoadStyleAshes(); //
// //
// more info and bugs-report: github.com/raysan5/raygui //
// feedback and support: ray[at]raylibtech.com //
// //
// Copyright (c) 2020-2024 raylib technologies (@raylibtech) //
// //
//////////////////////////////////////////////////////////////////////////////////
#define ASHES_STYLE_PROPS_COUNT 16
// Custom style name: Ashes
static const GuiStyleProp ashesStyleProps[ASHES_STYLE_PROPS_COUNT] = {
{ 0, 0, 0xf0f0f0ff }, // DEFAULT_BORDER_COLOR_NORMAL
{ 0, 1, 0x868686ff }, // DEFAULT_BASE_COLOR_NORMAL
{ 0, 2, 0xe6e6e6ff }, // DEFAULT_TEXT_COLOR_NORMAL
{ 0, 3, 0x929999ff }, // DEFAULT_BORDER_COLOR_FOCUSED
{ 0, 4, 0xeaeaeaff }, // DEFAULT_BASE_COLOR_FOCUSED
{ 0, 5, 0x98a1a8ff }, // DEFAULT_TEXT_COLOR_FOCUSED
{ 0, 6, 0x3f3f3fff }, // DEFAULT_BORDER_COLOR_PRESSED
{ 0, 7, 0xf6f6f6ff }, // DEFAULT_BASE_COLOR_PRESSED
{ 0, 8, 0x414141ff }, // DEFAULT_TEXT_COLOR_PRESSED
{ 0, 9, 0x8b8b8bff }, // DEFAULT_BORDER_COLOR_DISABLED
{ 0, 10, 0x777777ff }, // DEFAULT_BASE_COLOR_DISABLED
{ 0, 11, 0x959595ff }, // DEFAULT_TEXT_COLOR_DISABLED
{ 0, 16, 0x00000010 }, // DEFAULT_TEXT_SIZE
{ 0, 18, 0x9dadb1ff }, // DEFAULT_LINE_COLOR
{ 0, 19, 0x6b6b6bff }, // DEFAULT_BACKGROUND_COLOR
{ 0, 20, 0x00000018 }, // DEFAULT_TEXT_LINE_SPACING
};
// WARNING: This style uses a custom font: "v5loxical.ttf" (size: 16, spacing: 1)
#define ASHES_STYLE_FONT_ATLAS_COMP_SIZE 2042
// Font atlas image pixels data: DEFLATE compressed
static unsigned char ashesFontData[ASHES_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed,
0xdd, 0xd1, 0xb2, 0xab, 0x36, 0x0c, 0x05, 0x50, 0xff, 0xff, 0x4f, 0xab, 0x0f, 0x9d, 0x4e, 0xdb, 0x69, 0x13, 0x90, 0x2c,
0x83, 0x21, 0xeb, 0xae, 0xb7, 0x9c, 0xdc, 0x40, 0x0c, 0x1b, 0x63, 0x88, 0x45, 0x0c, 0x00, 0x00, 0x00, 0xe0, 0xe7, 0xc5,
0xff, 0xbe, 0x12, 0x1f, 0xdf, 0x19, 0xa7, 0x3f, 0xe7, 0xdf, 0xaf, 0xc7, 0x87, 0xbf, 0xe6, 0x3e, 0x2f, 0x4e, 0x2f, 0xb7,
0xf2, 0x97, 0xf8, 0xdf, 0xf5, 0x8b, 0xe9, 0xa5, 0xc6, 0xe9, 0x6f, 0xf3, 0xed, 0xbd, 0xdf, 0x96, 0xf9, 0xe9, 0x93, 0x22,
0xb1, 0x8c, 0xec, 0xfb, 0x3f, 0x7f, 0xce, 0xd5, 0x2d, 0x1e, 0x5f, 0xfe, 0xf2, 0xfd, 0xaf, 0xd9, 0xd7, 0xe3, 0xe4, 0xab,
0xdf, 0xfe, 0x12, 0x07, 0x7f, 0x39, 0x9b, 0xbb, 0x78, 0x40, 0xfe, 0xe3, 0xcb, 0xe7, 0x7d, 0xff, 0xc4, 0x98, 0x38, 0x26,
0x9c, 0x5b, 0xee, 0x95, 0xed, 0xf9, 0x69, 0x4f, 0xcf, 0x6d, 0xeb, 0xef, 0x6d, 0x9c, 0xcb, 0x5c, 0x34, 0xac, 0xff, 0x6c,
0xab, 0x45, 0xc3, 0xbb, 0xe3, 0xc4, 0xde, 0x92, 0xd9, 0x9b, 0xb3, 0x69, 0xab, 0xbd, 0x7f, 0x34, 0x6c, 0xaf, 0x6b, 0xf3,
0xff, 0xcf, 0x7f, 0x23, 0x75, 0x14, 0x1c, 0x4d, 0xf9, 0xcf, 0xf7, 0xb9, 0xdf, 0x8e, 0xbe, 0x71, 0xd1, 0xd9, 0xd4, 0xb9,
0x3d, 0xb4, 0xfe, 0x7a, 0xdf, 0xa7, 0x5f, 0x9d, 0xff, 0x68, 0xfc, 0x1f, 0x47, 0x6b, 0x17, 0xf2, 0x3f, 0xbd, 0x15, 0xa2,
0xd8, 0xdb, 0x56, 0x7b, 0xa2, 0xd9, 0xad, 0x1f, 0x8b, 0x7b, 0xfa, 0x55, 0x09, 0xad, 0x1d, 0xcd, 0x22, 0xf9, 0x7f, 0x72,
0x7d, 0x6c, 0x4c, 0x6f, 0xbd, 0xf3, 0xfb, 0x44, 0x7e, 0xfd, 0x8e, 0xf7, 0x00, 0xf9, 0xbf, 0x22, 0xff, 0x95, 0xe4, 0xc6,
0x92, 0xa3, 0x7f, 0xf5, 0xca, 0xc0, 0x8a, 0xb6, 0xcc, 0xe5, 0x3f, 0x1a, 0x5b, 0x20, 0xdb, 0x6f, 0xe7, 0xd7, 0xff, 0xec,
0x48, 0x3d, 0x6e, 0xec, 0xff, 0xbf, 0x1d, 0x1d, 0x33, 0x47, 0xcd, 0x6c, 0x3a, 0x73, 0xcb, 0xfd, 0x7b, 0x5d, 0xe7, 0xaf,
0x88, 0xac, 0xc8, 0x7f, 0xf5, 0xfc, 0xbf, 0x72, 0x86, 0x3a, 0x36, 0xc9, 0xf3, 0xf5, 0xf9, 0x8f, 0xf6, 0x16, 0x58, 0x99,
0xff, 0xb3, 0x6d, 0x1f, 0x0b, 0xc7, 0xff, 0xb9, 0xab, 0xab, 0xfb, 0xf7, 0xff, 0xf7, 0x5f, 0xff, 0x1b, 0xe5, 0xeb, 0x46,
0xd9, 0x6b, 0x80, 0x71, 0xea, 0xec, 0xe1, 0x29, 0xf9, 0xef, 0x38, 0xfe, 0x55, 0x47, 0x4a, 0x1d, 0x57, 0xb8, 0xb2, 0xf9,
0x8f, 0x86, 0xb6, 0x8f, 0xa5, 0x47, 0xff, 0x4a, 0xaf, 0x24, 0xff, 0xbd, 0xe3, 0xff, 0x38, 0x71, 0x06, 0x18, 0xaf, 0xe8,
0xff, 0xf3, 0xa3, 0x9c, 0x68, 0xb8, 0x07, 0x57, 0xb9, 0xbb, 0x9a, 0xed, 0x31, 0x2b, 0xf7, 0x24, 0x77, 0x68, 0x77, 0xfd,
0xff, 0x75, 0xdb, 0xa0, 0xb6, 0x2f, 0xfc, 0xf5, 0xff, 0x9e, 0xdf, 0xff, 0xef, 0xb4, 0x35, 0x90, 0xff, 0xab, 0xf7, 0xdb,
0xb8, 0xb5, 0x7f, 0x95, 0x7f, 0xbf, 0x60, 0xeb, 0xca, 0xff, 0xda, 0xdf, 0xff, 0xc4, 0x41, 0x6f, 0x38, 0x1e, 0xd9, 0xff,
0x5f, 0xb3, 0x36, 0x21, 0x79, 0xe0, 0x58, 0x2f, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xfc, 0xd0, 0xec, 0x99, 0xcc, 0xec, 0xe5, 0x6a, 0x15, 0xe0, 0x8e, 0xf7, 0x57, 0x97, 0x10, 0x6d, 0xf5, 0x1f, 0xfb,
0xaa, 0x49, 0x7e, 0x9e, 0x4d, 0x9a, 0x99, 0xf7, 0x9c, 0xab, 0x6f, 0x9e, 0xab, 0x24, 0x17, 0xc9, 0x9a, 0x6d, 0x91, 0xac,
0x5b, 0x9c, 0xdd, 0x8e, 0xf3, 0xb3, 0xec, 0xe7, 0xfe, 0xff, 0xdf, 0xb5, 0x2a, 0xfa, 0xf6, 0xe5, 0xd1, 0xd4, 0x32, 0xd7,
0xe5, 0x7f, 0xb4, 0xd7, 0x54, 0xcd, 0x57, 0xa8, 0xca, 0xd7, 0xc7, 0x1f, 0x9b, 0xe5, 0x3f, 0xb3, 0x3f, 0x66, 0xeb, 0xfe,
0x44, 0x61, 0x56, 0x64, 0x4c, 0xcf, 0xb7, 0x8c, 0x85, 0xfb, 0x5d, 0x57, 0x05, 0xc9, 0x31, 0x99, 0xff, 0x3b, 0xf7, 0xfd,
0x4a, 0x6d, 0x46, 0xf9, 0x7f, 0x43, 0xfe, 0x2b, 0xd5, 0x3d, 0x3b, 0xe6, 0x45, 0x77, 0xd5, 0xc7, 0x8d, 0xf4, 0x79, 0x51,
0x66, 0x7f, 0x88, 0xa9, 0xca, 0xea, 0x91, 0x3e, 0x0e, 0xef, 0x98, 0x7f, 0xfd, 0x7f, 0xa5, 0x36, 0xde, 0xdd, 0xf9, 0x9f,
0x7b, 0x22, 0xc0, 0xea, 0xea, 0x07, 0x6b, 0xfb, 0xa7, 0xde, 0xfe, 0x3f, 0x26, 0xf2, 0x9f, 0x7d, 0x86, 0xd9, 0x5e, 0xf9,
0x9f, 0x3f, 0xff, 0xaf, 0x57, 0x3b, 0xef, 0x1a, 0x05, 0x8f, 0x86, 0xe3, 0x7d, 0xf5, 0x49, 0x82, 0x5d, 0xf9, 0x1f, 0x85,
0xa7, 0xc0, 0xcd, 0x9e, 0x8f, 0x3e, 0x3b, 0xff, 0xb9, 0x2b, 0x11, 0xeb, 0xf2, 0xff, 0xec, 0xfe, 0x7f, 0xbc, 0xe0, 0xfc,
0xbf, 0x63, 0x7b, 0x8f, 0x4d, 0xcf, 0xff, 0xbb, 0x46, 0xd1, 0xef, 0xcb, 0x7f, 0xf6, 0x7b, 0x76, 0x7c, 0xfe, 0x5b, 0xcf,
0xff, 0xe5, 0xff, 0xed, 0xf9, 0xbf, 0xeb, 0x49, 0x66, 0x7b, 0xe4, 0x3f, 0x9a, 0xaa, 0xef, 0xca, 0xff, 0x5b, 0xf3, 0xbf,
0xeb, 0xf5, 0xbf, 0xe7, 0xe6, 0x7f, 0x94, 0xc6, 0x66, 0x73, 0xef, 0x7e, 0x42, 0xff, 0x3f, 0x0a, 0xd7, 0xac, 0xf2, 0x23,
0xd9, 0xeb, 0xc6, 0xff, 0xf2, 0x7f, 0xee, 0xee, 0xd9, 0xdd, 0xf9, 0x5f, 0x73, 0xff, 0xab, 0xef, 0xbc, 0xa0, 0xe3, 0xdd,
0x7b, 0x8f, 0xff, 0x57, 0xff, 0x16, 0x67, 0xed, 0xf2, 0x7b, 0xae, 0xb4, 0x45, 0xf9, 0xba, 0x7d, 0xcf, 0x6f, 0x49, 0xf2,
0xd7, 0xdf, 0xb2, 0x47, 0xce, 0x38, 0x78, 0x7f, 0x34, 0xf5, 0x73, 0x95, 0xea, 0xf0, 0x3b, 0xe4, 0x3f, 0xfb, 0xd4, 0x9f,
0xec, 0xbb, 0xf7, 0xc8, 0xff, 0xfa, 0x96, 0xbd, 0x3a, 0xff, 0x4f, 0xfc, 0xb5, 0xe2, 0xef, 0xb5, 0x42, 0x2c, 0x7e, 0xff,
0x6f, 0xef, 0x0b, 0x7b, 0x3d, 0x31, 0xcb, 0x76, 0xe5, 0xca, 0xbe, 0x15, 0xad, 0x05, 0x8e, 0xac, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0x9b, 0xfb, 0x70, 0x34, 0x7f, 0x32, 0x9a, 0xaa, 0x20, 0x64, 0xeb, 0xc0,
0x8d, 0xd3, 0xb5, 0xf0, 0xa3, 0x54, 0x79, 0x76, 0xbe, 0xba, 0xc2, 0xf7, 0x19, 0xcd, 0x9f, 0xbf, 0x69, 0x14, 0x66, 0x09,
0x67, 0x9f, 0x6d, 0x50, 0xa9, 0xad, 0x50, 0x5f, 0x56, 0x14, 0xab, 0x48, 0xce, 0xb7, 0x41, 0x14, 0x9e, 0xef, 0x70, 0xf4,
0x5d, 0xf2, 0x5b, 0x21, 0xf3, 0x5a, 0x65, 0x6e, 0xf9, 0x38, 0xf1, 0xdc, 0x81, 0x38, 0x9c, 0xdf, 0xd0, 0x9b, 0xff, 0xd5,
0x75, 0xb0, 0x2b, 0xb5, 0x3c, 0xfe, 0xfb, 0xda, 0x7d, 0x75, 0x27, 0xbe, 0x1d, 0x77, 0x2a, 0x55, 0x28, 0xb2, 0xc7, 0xe1,
0xfc, 0x5e, 0x38, 0xb7, 0xac, 0x91, 0xda, 0x02, 0x95, 0x7a, 0xe6, 0x9d, 0x6d, 0x1a, 0x85, 0x9a, 0x17, 0xe7, 0x7b, 0x9f,
0x28, 0xb6, 0xfd, 0x4c, 0xcd, 0x9d, 0x33, 0x33, 0x8a, 0xa3, 0xb0, 0xe7, 0x75, 0xd5, 0xc1, 0x8d, 0x96, 0x4c, 0x77, 0x54,
0xc1, 0xca, 0xd5, 0xee, 0xcd, 0xce, 0x24, 0x8d, 0xc9, 0xfd, 0x38, 0xbf, 0x7f, 0x47, 0x4b, 0x35, 0xae, 0xe3, 0x65, 0xc5,
0x97, 0x65, 0x65, 0xf2, 0x5f, 0xef, 0x4b, 0xd7, 0xe7, 0x3f, 0xbf, 0x06, 0x99, 0x0a, 0x52, 0x73, 0xbd, 0xe3, 0x7c, 0xfe,
0x77, 0xed, 0xff, 0xef, 0xce, 0x7f, 0xbe, 0x06, 0xcc, 0xd1, 0x79, 0x77, 0x65, 0x2f, 0x8a, 0x52, 0x26, 0xb3, 0xfb, 0x60,
0xbd, 0xff, 0x8f, 0xd2, 0x39, 0x55, 0xe7, 0xb6, 0xbd, 0x22, 0xff, 0x63, 0x61, 0xfe, 0xef, 0xee, 0xff, 0xf7, 0xcc, 0x7f,
0x5f, 0x2d, 0xdf, 0xb9, 0xfc, 0xe7, 0x53, 0x3e, 0x8a, 0x6b, 0xde, 0x77, 0xfe, 0x1f, 0xe9, 0xf1, 0xd3, 0xcc, 0xb2, 0xa2,
0xe5, 0x5c, 0x6b, 0x1c, 0x3c, 0x9f, 0xf0, 0xf9, 0xf9, 0x1f, 0xc5, 0x33, 0xe0, 0xa3, 0xa7, 0x61, 0xe4, 0xdb, 0x67, 0x76,
0x84, 0xbb, 0xbe, 0x0a, 0xf2, 0xf5, 0xcf, 0xc1, 0x88, 0x86, 0xb3, 0xfc, 0xa3, 0xca, 0x85, 0xb1, 0x41, 0xfe, 0xeb, 0xd7,
0x87, 0xbb, 0xfa, 0xff, 0xee, 0xeb, 0xd6, 0x3d, 0xf9, 0x1f, 0xa5, 0x71, 0x4c, 0x5f, 0x3b, 0x8f, 0xa9, 0xfe, 0x7f, 0xbc,
0x2c, 0xff, 0xd7, 0x3f, 0x07, 0x23, 0x5a, 0x46, 0xf9, 0x51, 0x7c, 0xde, 0x50, 0xef, 0xf9, 0xff, 0xb7, 0xe7, 0xe2, 0x46,
0xf9, 0xd9, 0x70, 0x6b, 0xf3, 0x7f, 0xee, 0x6a, 0xf5, 0xca, 0xfc, 0x0f, 0xf9, 0x3f, 0x79, 0x87, 0xeb, 0xe8, 0x5e, 0xc5,
0x48, 0xdf, 0x75, 0x99, 0xbd, 0x77, 0x74, 0xe5, 0xf9, 0xff, 0x75, 0xfd, 0xff, 0x58, 0x72, 0xfd, 0x7f, 0x45, 0x3f, 0xfb,
0xa4, 0xfe, 0xff, 0xfb, 0x9e, 0xfd, 0x9c, 0xfc, 0x9f, 0x49, 0xdc, 0x78, 0x44, 0x45, 0xd1, 0xae, 0x4a, 0xd0, 0xd7, 0x5e,
0xff, 0xeb, 0xbe, 0x9f, 0xd1, 0x73, 0xfe, 0x9f, 0xef, 0x49, 0xe7, 0x46, 0xb9, 0x9d, 0xcb, 0xba, 0xee, 0xfc, 0xff, 0x1d,
0xf9, 0xef, 0x59, 0xbb, 0xfb, 0x2b, 0x20, 0xee, 0x99, 0xff, 0x51, 0xfc, 0x7d, 0xcd, 0xbd, 0xe7, 0xff, 0x57, 0xe6, 0x6c,
0x8f, 0x7d, 0xe6, 0xbd, 0xf9, 0x3f, 0xfa, 0xfd, 0xcf, 0x13, 0xb7, 0xdb, 0xec, 0xd1, 0x27, 0x16, 0xbd, 0xf7, 0xae, 0xb3,
0xa3, 0x98, 0xba, 0x56, 0x21, 0xff, 0x9d, 0xf9, 0x7f, 0x53, 0xc2, 0x9e, 0x92, 0xff, 0x55, 0x47, 0x8c, 0xa7, 0x3c, 0x19,
0x42, 0xfe, 0xaf, 0xcd, 0xff, 0xaf, 0x24, 0xec, 0xbd, 0xf9, 0x7f, 0xdf, 0xd1, 0x2c, 0x3b, 0x86, 0x8e, 0x0b, 0xc7, 0xdd,
0x71, 0xe3, 0x18, 0xbf, 0xba, 0x5e, 0xd7, 0xac, 0xf3, 0xae, 0x2d, 0xf3, 0x84, 0xb5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x7a, 0x67, 0xb9, 0x44, 0xcb, 0x6c, 0xd9, 0x51, 0xaa, 0xc3, 0x9e, 0x9f, 0x0b, 0x99, 0xad,
0x35, 0x3f, 0x5a, 0xea, 0x14, 0x57, 0xaa, 0xc5, 0x1e, 0xcf, 0x37, 0x8d, 0x64, 0x5b, 0xde, 0xb5, 0xad, 0xa2, 0xbc, 0xf4,
0x95, 0xdb, 0xe4, 0xf3, 0xac, 0xa0, 0xfc, 0x93, 0x16, 0x2a, 0xd5, 0x33, 0xae, 0xcb, 0xc1, 0xea, 0xd9, 0xfc, 0xf9, 0xba,
0xfc, 0xf3, 0x55, 0x4f, 0xfb, 0x9e, 0x14, 0xd0, 0xfd, 0x2d, 0x32, 0x75, 0x5e, 0xcf, 0xb5, 0x42, 0x34, 0xb5, 0xe5, 0x5d,
0xdb, 0xea, 0x68, 0x8d, 0x62, 0xf9, 0xda, 0x76, 0xd5, 0xeb, 0x8e, 0x52, 0x3f, 0x78, 0x47, 0x0e, 0x2a, 0xfd, 0xd1, 0xfd,
0xb3, 0x5c, 0xe7, 0xe7, 0xf7, 0xd6, 0xf3, 0xff, 0xd4, 0xf3, 0xb1, 0x67, 0x7c, 0xa7, 0xef, 0xb5, 0xb4, 0x76, 0xfa, 0x0e,
0xd5, 0xfc, 0x77, 0x54, 0x97, 0xe9, 0x9c, 0xe7, 0x1e, 0x5f, 0x6a, 0x2e, 0x47, 0xeb, 0xf9, 0xff, 0x4e, 0xaf, 0x57, 0xf3,
0x9f, 0x1f, 0x2f, 0xcc, 0x8e, 0x2f, 0xe6, 0x9f, 0x50, 0x94, 0xaf, 0xde, 0x79, 0xdf, 0xeb, 0xdd, 0xcf, 0x48, 0x5a, 0xfd,
0x7a, 0x25, 0xff, 0xbb, 0xf6, 0x0d, 0x3d, 0xf9, 0x8f, 0x0d, 0xb7, 0x52, 0x7e, 0xf4, 0x36, 0x7f, 0x9e, 0x59, 0x3d, 0xbe,
0x74, 0xe7, 0x7f, 0xc7, 0xb6, 0xcf, 0x8f, 0xff, 0x9f, 0x97, 0xff, 0x28, 0xf4, 0xc3, 0xf7, 0xf5, 0x83, 0x99, 0xa7, 0x58,
0xd6, 0xc7, 0xf8, 0xfb, 0xef, 0x83, 0xf2, 0x7f, 0x77, 0xdb, 0x8f, 0x1f, 0xe8, 0xff, 0xf7, 0xd9, 0xef, 0xba, 0xc7, 0xc1,
0xf2, 0x2f, 0xff, 0xf2, 0x1f, 0x27, 0xc6, 0x63, 0x7b, 0xbc, 0x7e, 0x5d, 0xfe, 0x73, 0x95, 0xf9, 0xd7, 0xbf, 0x5e, 0xcb,
0xed, 0xda, 0x6d, 0x24, 0xff, 0xfb, 0xe5, 0x7f, 0xe6, 0x89, 0x61, 0x4f, 0x68, 0xf3, 0xde, 0xfb, 0x7f, 0xcf, 0x1a, 0x6b,
0xea, 0xff, 0xe5, 0xbf, 0x7e, 0xff, 0xff, 0x1d, 0xf9, 0xef, 0xbe, 0x97, 0xf7, 0x94, 0xeb, 0x7f, 0xe3, 0xe0, 0xb9, 0x40,
0x71, 0xcb, 0x73, 0xc4, 0xd6, 0xe4, 0xff, 0x19, 0xdb, 0xe4, 0x78, 0xaf, 0x7a, 0x52, 0xfe, 0x9f, 0xdf, 0xe6, 0x9d, 0xf7,
0x25, 0xdf, 0xf1, 0xbd, 0x9f, 0x99, 0xff, 0x37, 0x6c, 0x93, 0xa3, 0x11, 0xd3, 0x9e, 0xfd, 0xff, 0xf3, 0x73, 0x10, 0x8b,
0x7f, 0x83, 0xb2, 0x6f, 0xfe, 0xc7, 0x6b, 0xfa, 0xff, 0xe7, 0x6f, 0x93, 0xb8, 0xf1, 0x5b, 0xf4, 0xe6, 0x7f, 0xb7, 0xfb,
0x7f, 0x77, 0xff, 0x06, 0xed, 0x69, 0xe7, 0x3d, 0xcf, 0xfb, 0xfd, 0x4f, 0x6d, 0x4c, 0xfd, 0xa4, 0x7d, 0xf1, 0xae, 0x3b,
0xe7, 0x2a, 0xe2, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, 0xd6, 0x55, 0xdf, 0x3c, 0x8a,
0x33, 0xab, 0xce, 0xbd, 0x56, 0xa9, 0xe6, 0x1e, 0xcb, 0xbe, 0x6b, 0xa5, 0x36, 0x4b, 0xb4, 0xcd, 0x5d, 0xea, 0xda, 0x32,
0x9f, 0x97, 0x1b, 0xc5, 0x2a, 0x2c, 0xbc, 0xeb, 0x08, 0xb0, 0xaa, 0x42, 0xfe, 0x68, 0xa8, 0x92, 0x5f, 0xab, 0xe6, 0x78,
0x4f, 0x2d, 0xf7, 0xb9, 0x99, 0xb2, 0xeb, 0xb6, 0x4c, 0x6f, 0x9d, 0x7c, 0xde, 0x75, 0x04, 0x58, 0xf9, 0x1c, 0x91, 0x68,
0xfc, 0xcc, 0xd8, 0xea, 0xbb, 0x8e, 0xaf, 0x33, 0xcf, 0x46, 0xa2, 0xf2, 0xc4, 0xfa, 0xb5, 0x8d, 0xd6, 0x96, 0x85, 0x3b,
0x8e, 0x59, 0xcf, 0xde, 0x4b, 0xf7, 0xeb, 0x51, 0xe5, 0xff, 0xd7, 0x92, 0xb4, 0x7a, 0x8e, 0xf8, 0x6c, 0x5d, 0x8e, 0xfc,
0x59, 0xea, 0x7e, 0x35, 0x1b, 0xa2, 0x30, 0xa7, 0x7f, 0x78, 0x4e, 0x06, 0x37, 0xf5, 0x3f, 0x9d, 0x75, 0x3b, 0xae, 0xcf,
0xff, 0x5e, 0xaf, 0xd7, 0xfa, 0x7f, 0xf9, 0x47, 0xfe, 0xe5, 0x5f, 0xfe, 0x91, 0xff, 0xf7, 0xe6, 0x3f, 0xe4, 0x9f, 0x5b,
0x47, 0xff, 0x2b, 0x9f, 0xdb, 0x21, 0xff, 0x73, 0x77, 0xff, 0xe4, 0x9f, 0x3b, 0xee, 0xfe, 0xf7, 0x55, 0xc8, 0x95, 0xff,
0xda, 0xaf, 0xaf, 0xe4, 0x1f, 0xf9, 0x7f, 0x7b, 0xff, 0x2f, 0xff, 0xb8, 0xff, 0x77, 0x4d, 0xfe, 0xd5, 0xc9, 0xce, 0xfd,
0x4a, 0x3a, 0xf7, 0x24, 0x44, 0xb8, 0xfe, 0xba, 0x85, 0xbd, 0xb1, 0xff, 0xb7, 0x99, 0x47, 0x2d, 0xab, 0xc5, 0xe1, 0x17,
0xe6, 0x7f, 0xc9, 0x3f, 0xfc, 0xda, 0xc8, 0xaf, 0xfb, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xe3, 0xcf, 0x7f, 0xda, 0x01, 0xe4, 0x1f, 0xf8, 0xb9, 0xfc, 0xff,
0x01 };
// Font glyphs rectangles data (on atlas)
static const Rectangle ashesFontRecs[189] = {
{ 4, 4, 4 , 16 },
{ 16, 4, 1 , 10 },
{ 25, 4, 3 , 3 },
{ 36, 4, 6 , 8 },
{ 50, 4, 5 , 11 },
{ 63, 4, 7 , 8 },
{ 78, 4, 6 , 9 },
{ 92, 4, 1 , 3 },
{ 101, 4, 3 , 12 },
{ 112, 4, 3 , 12 },
{ 123, 4, 5 , 5 },
{ 136, 4, 5 , 5 },
{ 149, 4, 2 , 2 },
{ 159, 4, 4 , 1 },
{ 171, 4, 1 , 1 },
{ 180, 4, 5 , 10 },
{ 193, 4, 4 , 8 },
{ 205, 4, 2 , 8 },
{ 215, 4, 4 , 8 },
{ 227, 4, 4 , 8 },
{ 239, 4, 6 , 8 },
{ 253, 4, 4 , 8 },
{ 265, 4, 4 , 8 },
{ 277, 4, 4 , 8 },
{ 289, 4, 4 , 8 },
{ 301, 4, 4 , 8 },
{ 313, 4, 1 , 5 },
{ 322, 4, 2 , 6 },
{ 332, 4, 4 , 7 },
{ 344, 4, 4 , 4 },
{ 356, 4, 4 , 7 },
{ 368, 4, 4 , 10 },
{ 380, 4, 8 , 7 },
{ 396, 4, 4 , 10 },
{ 408, 4, 4 , 10 },
{ 420, 4, 4 , 10 },
{ 432, 4, 4 , 10 },
{ 444, 4, 4 , 10 },
{ 456, 4, 5 , 10 },
{ 469, 4, 4 , 10 },
{ 481, 4, 4 , 10 },
{ 493, 4, 1 , 10 },
{ 4, 28, 3 , 10 },
{ 15, 28, 4 , 10 },
{ 27, 28, 4 , 10 },
{ 39, 28, 7 , 10 },
{ 54, 28, 4 , 10 },
{ 66, 28, 4 , 10 },
{ 78, 28, 4 , 10 },
{ 90, 28, 5 , 11 },
{ 103, 28, 4 , 10 },
{ 115, 28, 4 , 10 },
{ 127, 28, 5 , 10 },
{ 140, 28, 4 , 10 },
{ 152, 28, 4 , 10 },
{ 164, 28, 7 , 10 },
{ 179, 28, 4 , 10 },
{ 191, 28, 4 , 10 },
{ 203, 28, 4 , 10 },
{ 215, 28, 2 , 12 },
{ 225, 28, 5 , 10 },
{ 238, 28, 2 , 12 },
{ 248, 28, 5 , 3 },
{ 261, 28, 5 , 1 },
{ 274, 28, 2 , 2 },
{ 284, 28, 4 , 8 },
{ 296, 28, 4 , 10 },
{ 308, 28, 3 , 8 },
{ 319, 28, 4 , 10 },
{ 331, 28, 4 , 8 },
{ 343, 28, 3 , 10 },
{ 354, 28, 5 , 11 },
{ 367, 28, 4 , 10 },
{ 379, 28, 1 , 10 },
{ 388, 28, 3 , 13 },
{ 399, 28, 4 , 10 },
{ 411, 28, 2 , 10 },
{ 421, 28, 7 , 8 },
{ 436, 28, 4 , 8 },
{ 448, 28, 4 , 8 },
{ 460, 28, 4 , 11 },
{ 472, 28, 4 , 11 },
{ 484, 28, 3 , 8 },
{ 495, 28, 4 , 8 },
{ 4, 52, 3 , 10 },
{ 15, 52, 4 , 8 },
{ 27, 52, 5 , 8 },
{ 40, 52, 7 , 8 },
{ 55, 52, 4 , 8 },
{ 67, 52, 4 , 11 },
{ 79, 52, 4 , 8 },
{ 91, 52, 4 , 12 },
{ 103, 52, 1 , 10 },
{ 112, 52, 4 , 12 },
{ 124, 52, 4 , 2 },
{ 136, 52, 1 , 10 },
{ 145, 52, 4 , 12 },
{ 157, 52, 5 , 10 },
{ 170, 52, 5 , 10 },
{ 183, 52, 5 , 10 },
{ 196, 52, 6 , 13 },
{ 210, 52, 4 , 10 },
{ 222, 52, 6 , 13 },
{ 236, 52, 7 , 9 },
{ 251, 52, 3 , 7 },
{ 262, 52, 6 , 5 },
{ 276, 52, 6 , 13 },
{ 290, 52, 7 , 9 },
{ 305, 52, 4 , 1 },
{ 317, 52, 3 , 5 },
{ 328, 52, 5 , 7 },
{ 341, 52, 3 , 5 },
{ 352, 52, 6 , 13 },
{ 366, 52, 6 , 13 },
{ 380, 52, 4 , 11 },
{ 392, 52, 6 , 10 },
{ 406, 52, 3 , 3 },
{ 417, 52, 6 , 13 },
{ 431, 52, 2 , 5 },
{ 441, 52, 3 , 5 },
{ 452, 52, 6 , 5 },
{ 466, 52, 7 , 10 },
{ 481, 52, 7 , 8 },
{ 496, 52, 6 , 13 },
{ 4, 76, 4 , 10 },
{ 16, 76, 4 , 13 },
{ 28, 76, 4 , 13 },
{ 40, 76, 4 , 13 },
{ 52, 76, 4 , 13 },
{ 64, 76, 4 , 13 },
{ 76, 76, 4 , 13 },
{ 88, 76, 7 , 10 },
{ 103, 76, 4 , 13 },
{ 115, 76, 4 , 13 },
{ 127, 76, 4 , 13 },
{ 139, 76, 4 , 13 },
{ 151, 76, 4 , 13 },
{ 163, 76, 2 , 13 },
{ 173, 76, 2 , 13 },
{ 183, 76, 3 , 13 },
{ 194, 76, 3 , 13 },
{ 205, 76, 5 , 10 },
{ 218, 76, 4 , 13 },
{ 230, 76, 4 , 13 },
{ 242, 76, 4 , 13 },
{ 254, 76, 4 , 13 },
{ 266, 76, 4 , 13 },
{ 278, 76, 4 , 13 },
{ 290, 76, 5 , 5 },
{ 303, 76, 6 , 12 },
{ 317, 76, 4 , 13 },
{ 329, 76, 4 , 13 },
{ 341, 76, 4 , 13 },
{ 353, 76, 4 , 13 },
{ 365, 76, 4 , 13 },
{ 377, 76, 6 , 13 },
{ 391, 76, 5 , 12 },
{ 404, 76, 4 , 12 },
{ 416, 76, 4 , 12 },
{ 428, 76, 4 , 12 },
{ 440, 76, 4 , 12 },
{ 452, 76, 4 , 12 },
{ 464, 76, 4 , 12 },
{ 476, 76, 7 , 8 },
{ 491, 76, 3 , 11 },
{ 4, 100, 4 , 12 },
{ 16, 100, 4 , 12 },
{ 28, 100, 4 , 12 },
{ 40, 100, 4 , 12 },
{ 52, 100, 3 , 12 },
{ 63, 100, 3 , 12 },
{ 74, 100, 3 , 12 },
{ 85, 100, 3 , 12 },
{ 96, 100, 6 , 13 },
{ 110, 100, 4 , 12 },
{ 122, 100, 4 , 12 },
{ 134, 100, 4 , 12 },
{ 146, 100, 4 , 12 },
{ 158, 100, 4 , 12 },
{ 170, 100, 4 , 12 },
{ 182, 100, 5 , 5 },
{ 195, 100, 6 , 10 },
{ 209, 100, 4 , 12 },
{ 221, 100, 4 , 12 },
{ 233, 100, 4 , 12 },
{ 245, 100, 4 , 12 },
{ 257, 100, 4 , 15 },
{ 269, 100, 6 , 13 },
{ 283, 100, 4 , 15 },
};
// Font glyphs info data
// NOTE: No glyphs.image data provided
static const GlyphInfo ashesFontGlyphs[189] = {
{ 32, 0, 13, 4, { 0 }},
{ 33, 0, 3, 4, { 0 }},
{ 34, 0, 1, 5, { 0 }},
{ 35, 0, 4, 8, { 0 }},
{ 36, 0, 2, 7, { 0 }},
{ 37, 0, 5, 9, { 0 }},
{ 38, 0, 4, 8, { 0 }},
{ 39, 0, 1, 3, { 0 }},
{ 40, 0, 2, 5, { 0 }},
{ 41, 0, 2, 5, { 0 }},
{ 42, 0, 3, 7, { 0 }},
{ 43, 0, 6, 7, { 0 }},
{ 44, 0, 12, 4, { 0 }},
{ 45, 0, 9, 5, { 0 }},
{ 46, 0, 12, 3, { 0 }},
{ 47, 0, 3, 7, { 0 }},
{ 48, 0, 5, 6, { 0 }},
{ 49, 0, 5, 4, { 0 }},
{ 50, 0, 5, 6, { 0 }},
{ 51, 0, 5, 6, { 0 }},
{ 52, 0, 5, 8, { 0 }},
{ 53, 0, 5, 6, { 0 }},
{ 54, 0, 5, 6, { 0 }},
{ 55, 0, 5, 6, { 0 }},
{ 56, 0, 5, 6, { 0 }},
{ 57, 0, 5, 6, { 0 }},
{ 58, 0, 8, 3, { 0 }},
{ 59, 0, 8, 4, { 0 }},
{ 60, 0, 5, 6, { 0 }},
{ 61, 0, 7, 7, { 0 }},
{ 62, 0, 5, 6, { 0 }},
{ 63, 1, 3, 7, { 0 }},
{ 64, 0, 5, 10, { 0 }},
{ 65, 0, 3, 6, { 0 }},
{ 66, 0, 3, 6, { 0 }},
{ 67, 0, 3, 6, { 0 }},
{ 68, 0, 3, 6, { 0 }},
{ 69, 0, 3, 6, { 0 }},
{ 70, 0, 3, 6, { 0 }},
{ 71, 0, 3, 6, { 0 }},
{ 72, 0, 3, 6, { 0 }},
{ 73, 0, 3, 3, { 0 }},
{ 74, 0, 3, 5, { 0 }},
{ 75, 0, 3, 6, { 0 }},
{ 76, 0, 3, 6, { 0 }},
{ 77, 0, 3, 9, { 0 }},
{ 78, 0, 3, 6, { 0 }},
{ 79, 0, 3, 6, { 0 }},
{ 80, 0, 3, 6, { 0 }},
{ 81, 0, 3, 7, { 0 }},
{ 82, 0, 3, 6, { 0 }},
{ 83, 0, 3, 6, { 0 }},
{ 84, 0, 3, 6, { 0 }},
{ 85, 0, 3, 6, { 0 }},
{ 86, 0, 3, 6, { 0 }},
{ 87, 0, 3, 9, { 0 }},
{ 88, 0, 3, 6, { 0 }},
{ 89, 0, 3, 6, { 0 }},
{ 90, 0, 3, 6, { 0 }},
{ 91, 0, 2, 4, { 0 }},
{ 92, 0, 3, 7, { 0 }},
{ 93, 0, 2, 4, { 0 }},
{ 94, 0, 3, 7, { 0 }},
{ 95, 0, 12, 7, { 0 }},
{ 96, 0, 1, 4, { 0 }},
{ 97, 0, 5, 6, { 0 }},
{ 98, 0, 3, 6, { 0 }},
{ 99, 0, 5, 5, { 0 }},
{ 100, 0, 3, 6, { 0 }},
{ 101, 0, 5, 6, { 0 }},
{ 102, 0, 3, 5, { 0 }},
{ 103, 0, 5, 6, { 0 }},
{ 104, 0, 3, 6, { 0 }},
{ 105, 0, 3, 3, { 0 }},
{ 106, 0, 3, 5, { 0 }},
{ 107, 0, 3, 6, { 0 }},
{ 108, 0, 3, 4, { 0 }},
{ 109, 0, 5, 9, { 0 }},
{ 110, 0, 5, 6, { 0 }},
{ 111, 0, 5, 6, { 0 }},
{ 112, 0, 5, 6, { 0 }},
{ 113, 0, 5, 6, { 0 }},
{ 114, 0, 5, 5, { 0 }},
{ 115, 0, 5, 6, { 0 }},
{ 116, 0, 3, 5, { 0 }},
{ 117, 0, 5, 6, { 0 }},
{ 118, 0, 5, 7, { 0 }},
{ 119, 0, 5, 9, { 0 }},
{ 120, 0, 5, 6, { 0 }},
{ 121, 0, 5, 6, { 0 }},
{ 122, 0, 5, 6, { 0 }},
{ 123, 0, 2, 6, { 0 }},
{ 124, 0, 3, 3, { 0 }},
{ 125, 0, 2, 6, { 0 }},
{ 126, 0, 1, 6, { 0 }},
{ 161, 0, 4, 4, { 0 }},
{ 162, 0, 3, 6, { 0 }},
{ 163, 0, 3, 7, { 0 }},
{ 8364, 0, 3, 7, { 0 }},
{ 165, 0, 3, 7, { 0 }},
{ 352, 1, 0, 8, { 0 }},
{ 167, 0, 3, 6, { 0 }},
{ 353, 1, 0, 8, { 0 }},
{ 169, 0, 1, 9, { 0 }},
{ 170, 0, 1, 5, { 0 }},
{ 171, 0, 6, 8, { 0 }},
{ 172, 1, 0, 8, { 0 }},
{ 174, 0, 1, 9, { 0 }},
{ 175, 0, 0, 6, { 0 }},
{ 176, 0, 1, 5, { 0 }},
{ 177, 0, 5, 7, { 0 }},
{ 178, 0, 1, 5, { 0 }},
{ 179, 1, 0, 8, { 0 }},
{ 381, 1, 0, 8, { 0 }},
{ 181, 0, 5, 6, { 0 }},
{ 182, 0, 3, 8, { 0 }},
{ 183, 0, 7, 5, { 0 }},
{ 382, 1, 0, 8, { 0 }},
{ 185, 0, 1, 4, { 0 }},
{ 186, 0, 1, 5, { 0 }},
{ 187, 0, 6, 8, { 0 }},
{ 338, 0, 3, 9, { 0 }},
{ 339, 0, 5, 9, { 0 }},
{ 376, 1, 0, 8, { 0 }},
{ 191, 0, 4, 6, { 0 }},
{ 192, 0, 0, 6, { 0 }},
{ 193, 0, 0, 6, { 0 }},
{ 194, 0, 0, 6, { 0 }},
{ 195, 0, 0, 6, { 0 }},
{ 196, 0, 0, 6, { 0 }},
{ 197, 0, 0, 6, { 0 }},
{ 198, 0, 3, 9, { 0 }},
{ 199, 0, 3, 6, { 0 }},
{ 200, 0, 0, 6, { 0 }},
{ 201, 0, 0, 6, { 0 }},
{ 202, 0, 0, 6, { 0 }},
{ 203, 0, 0, 6, { 0 }},
{ 204, 0, 0, 4, { 0 }},
{ 205, 0, 0, 4, { 0 }},
{ 206, 0, 0, 5, { 0 }},
{ 207, 0, 0, 5, { 0 }},
{ 208, 0, 3, 7, { 0 }},
{ 209, 0, 0, 6, { 0 }},
{ 210, 0, 0, 6, { 0 }},
{ 211, 0, 0, 6, { 0 }},
{ 212, 0, 0, 6, { 0 }},
{ 213, 0, 0, 6, { 0 }},
{ 214, 0, 0, 6, { 0 }},
{ 215, 0, 7, 7, { 0 }},
{ 216, 0, 2, 8, { 0 }},
{ 217, 0, 0, 6, { 0 }},
{ 218, 0, 0, 6, { 0 }},
{ 219, 0, 0, 6, { 0 }},
{ 220, 0, 0, 6, { 0 }},
{ 221, 0, 0, 6, { 0 }},
{ 222, 1, 0, 8, { 0 }},
{ 223, 0, 3, 7, { 0 }},
{ 224, 0, 1, 6, { 0 }},
{ 225, 0, 1, 6, { 0 }},
{ 226, 0, 1, 6, { 0 }},
{ 227, 0, 1, 6, { 0 }},
{ 228, 0, 1, 6, { 0 }},
{ 229, 0, 1, 6, { 0 }},
{ 230, 0, 5, 9, { 0 }},
{ 231, 0, 5, 5, { 0 }},
{ 232, 0, 1, 6, { 0 }},
{ 233, 0, 1, 6, { 0 }},
{ 234, 0, 1, 6, { 0 }},
{ 235, 0, 1, 6, { 0 }},
{ 236, 0, 1, 5, { 0 }},
{ 237, 0, 1, 5, { 0 }},
{ 238, 0, 1, 5, { 0 }},
{ 239, 0, 1, 5, { 0 }},
{ 240, 1, 0, 8, { 0 }},
{ 241, 0, 1, 6, { 0 }},
{ 242, 0, 1, 6, { 0 }},
{ 243, 0, 1, 6, { 0 }},
{ 244, 0, 1, 6, { 0 }},
{ 245, 0, 1, 6, { 0 }},
{ 246, 0, 1, 6, { 0 }},
{ 247, 0, 7, 7, { 0 }},
{ 248, 0, 4, 8, { 0 }},
{ 249, 0, 1, 6, { 0 }},
{ 250, 0, 1, 6, { 0 }},
{ 251, 0, 1, 6, { 0 }},
{ 252, 0, 1, 6, { 0 }},
{ 253, 0, 1, 6, { 0 }},
{ 254, 1, 0, 8, { 0 }},
{ 255, 0, 1, 6, { 0 }},
};
// Style loading function: Ashes
static void GuiLoadStyleAshes(void)
{
// Load style properties provided
// NOTE: Default properties are propagated
for (int i = 0; i < ASHES_STYLE_PROPS_COUNT; i++)
{
GuiSetStyle(ashesStyleProps[i].controlId, ashesStyleProps[i].propertyId, ashesStyleProps[i].propertyValue);
}
// Custom font loading
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
int ashesFontDataSize = 0;
unsigned char *data = DecompressData(ashesFontData, ASHES_STYLE_FONT_ATLAS_COMP_SIZE, &ashesFontDataSize);
Image imFont = { data, 512, 256, 1, 2 };
Font font = { 0 };
font.baseSize = 16;
font.glyphCount = 189;
// Load texture from image
font.texture = LoadTextureFromImage(imFont);
UnloadImage(imFont); // Uncompressed image data can be unloaded from memory
// Copy char recs data from global fontRecs
// NOTE: Required to avoid issues if trying to free font
font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle));
memcpy(font.recs, ashesFontRecs, font.glyphCount*sizeof(Rectangle));
// Copy font char info data from global fontChars
// NOTE: Required to avoid issues if trying to free font
font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo));
memcpy(font.glyphs, ashesFontGlyphs, font.glyphCount*sizeof(GlyphInfo));
GuiSetFont(font);
// Setup a white rectangle on the font to be used on shapes drawing,
// it makes possible to draw shapes and text (full UI) in a single draw call
Rectangle fontWhiteRec = { 510, 254, 1, 1 };
SetShapesTexture(font.texture, fontWhiteRec);
//-----------------------------------------------------------------
// TODO: Custom user style setup: Set specific properties here (if required)
// i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT
}

View File

@ -0,0 +1,619 @@
//////////////////////////////////////////////////////////////////////////////////
// //
// StyleAsCode exporter v2.0 - Style data exported as a values array //
// //
// USAGE: On init call: GuiLoadStyleBluish(); //
// //
// more info and bugs-report: github.com/raysan5/raygui //
// feedback and support: ray[at]raylibtech.com //
// //
// Copyright (c) 2020-2024 raylib technologies (@raylibtech) //
// //
//////////////////////////////////////////////////////////////////////////////////
#define BLUISH_STYLE_PROPS_COUNT 14
// Custom style name: Bluish
static const GuiStyleProp bluishStyleProps[BLUISH_STYLE_PROPS_COUNT] = {
{ 0, 0, 0x5ca6a6ff }, // DEFAULT_BORDER_COLOR_NORMAL
{ 0, 1, 0xb4e8f3ff }, // DEFAULT_BASE_COLOR_NORMAL
{ 0, 2, 0x447e77ff }, // DEFAULT_TEXT_COLOR_NORMAL
{ 0, 3, 0x5f8792ff }, // DEFAULT_BORDER_COLOR_FOCUSED
{ 0, 4, 0xcdeff7ff }, // DEFAULT_BASE_COLOR_FOCUSED
{ 0, 5, 0x4c6c74ff }, // DEFAULT_TEXT_COLOR_FOCUSED
{ 0, 6, 0x3b5b5fff }, // DEFAULT_BORDER_COLOR_PRESSED
{ 0, 7, 0xeaffffff }, // DEFAULT_BASE_COLOR_PRESSED
{ 0, 8, 0x275057ff }, // DEFAULT_TEXT_COLOR_PRESSED
{ 0, 9, 0x96aaacff }, // DEFAULT_BORDER_COLOR_DISABLED
{ 0, 10, 0xc8d7d9ff }, // DEFAULT_BASE_COLOR_DISABLED
{ 0, 11, 0x8c9c9eff }, // DEFAULT_TEXT_COLOR_DISABLED
{ 0, 18, 0x84adb7ff }, // DEFAULT_LINE_COLOR
{ 0, 19, 0xe8eef1ff }, // DEFAULT_BACKGROUND_COLOR
};
// WARNING: This style uses a custom font: "homespun.ttf" (size: 10, spacing: 1)
#define BLUISH_STYLE_FONT_ATLAS_COMP_SIZE 2914
// Font atlas image pixels data: DEFLATE compressed
static unsigned char bluishFontData[BLUISH_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed,
0x9d, 0xb1, 0x8e, 0x24, 0x49, 0x11, 0x86, 0x2b, 0xf3, 0x00, 0x09, 0x13, 0x01, 0x12, 0xe0, 0x20, 0x81, 0x90, 0xf0, 0x10,
0x12, 0x2e, 0x16, 0x3c, 0x02, 0x2f, 0x02, 0x0e, 0xef, 0x81, 0x07, 0x12, 0x06, 0x12, 0xce, 0x99, 0x38, 0x48, 0x20, 0xe1,
0x81, 0x83, 0xc0, 0xc3, 0xc5, 0xe5, 0x2c, 0x8c, 0xc3, 0x81, 0x93, 0x26, 0x33, 0xd0, 0x4e, 0xcf, 0x2e, 0xe2, 0xae, 0xfe,
0xc8, 0x8a, 0xac, 0xa8, 0xea, 0xea, 0x9b, 0x6f, 0x3f, 0xed, 0x1a, 0x95, 0x5d, 0xd5, 0x99, 0x19, 0x59, 0x35, 0xb3, 0x9d,
0x5f, 0x47, 0xd8, 0x02, 0x00, 0x00, 0x00, 0xf0, 0x09, 0xaa, 0x38, 0x56, 0xe5, 0xab, 0x6b, 0xe0, 0x4a, 0xb7, 0xe3, 0xd5,
0x69, 0x8f, 0x5d, 0xad, 0x06, 0xae, 0xe0, 0xb5, 0xf8, 0x6d, 0x1f, 0xa7, 0xbc, 0x90, 0x31, 0xb3, 0xf5, 0xdd, 0x7c, 0xac,
0xcf, 0x52, 0xe4, 0xf5, 0x35, 0x34, 0x8a, 0x75, 0x4c, 0x1c, 0xeb, 0xab, 0xe3, 0x35, 0x2b, 0xa2, 0xa5, 0x9a, 0x89, 0xfe,
0xd8, 0xf3, 0x59, 0xeb, 0x57, 0xf4, 0xce, 0x5a, 0x7b, 0x8f, 0xb6, 0x72, 0x8d, 0x26, 0x57, 0xc5, 0x9b, 0x77, 0x54, 0x33,
0xd4, 0x45, 0x3c, 0x6d, 0xf5, 0xb5, 0x37, 0xca, 0xa6, 0x57, 0x7b, 0xef, 0x60, 0xd6, 0xac, 0xbd, 0xcc, 0xc7, 0xc7, 0x47,
0x61, 0xa1, 0xd7, 0xeb, 0x96, 0xfd, 0xf1, 0xef, 0xcf, 0xfd, 0x29, 0x2b, 0xf7, 0xc1, 0x9b, 0x68, 0x75, 0x11, 0x2f, 0xd5,
0x9f, 0xdb, 0xcc, 0x95, 0xd5, 0x2b, 0x7a, 0x67, 0x2d, 0x9b, 0x67, 0x7b, 0xfd, 0xfc, 0x5b, 0x4f, 0xd7, 0xc7, 0x51, 0x9e,
0xdb, 0xd6, 0xe6, 0xae, 0x25, 0x3d, 0x57, 0xd5, 0x78, 0x17, 0xf7, 0xde, 0x5a, 0x9f, 0x85, 0x1e, 0x6a, 0xd9, 0x1f, 0x7f,
0xbd, 0xa2, 0xed, 0xe5, 0xaf, 0x1a, 0x59, 0x13, 0xfd, 0x29, 0xa2, 0xc5, 0x3f, 0x6b, 0x4f, 0xfc, 0xcb, 0x4b, 0x4f, 0xab,
0xb8, 0x9f, 0x4d, 0xdc, 0xd1, 0x47, 0x46, 0x3f, 0x1e, 0xff, 0xf2, 0xb2, 0x56, 0x8b, 0xf8, 0xa9, 0x74, 0x6e, 0xfc, 0xcb,
0xcb, 0xf3, 0xbf, 0x8a, 0xde, 0x17, 0x19, 0x7d, 0xfd, 0xb4, 0x8d, 0xfc, 0x5c, 0x8d, 0xdd, 0xff, 0xb7, 0x79, 0x56, 0x6b,
0xeb, 0xb8, 0xd8, 0xfb, 0xe3, 0x8d, 0xc5, 0xdf, 0xe4, 0x4f, 0x9e, 0xb7, 0xab, 0x78, 0xef, 0x28, 0x7a, 0xd2, 0xfd, 0xdf,
0x65, 0x7f, 0xca, 0xcb, 0xf3, 0x7f, 0x7d, 0xcc, 0x91, 0xbb, 0x30, 0x12, 0xff, 0x51, 0x8c, 0x8f, 0xbc, 0xf7, 0xf5, 0xb5,
0xe3, 0xf1, 0xbf, 0x5d, 0x71, 0xed, 0x5d, 0x8e, 0x5e, 0xc5, 0x4b, 0xe8, 0xf7, 0xbf, 0xe2, 0xfc, 0xce, 0xf3, 0x76, 0xed,
0x44, 0xc6, 0x97, 0x15, 0xe7, 0xf3, 0xb1, 0xe1, 0x08, 0x22, 0xf1, 0x2f, 0x72, 0x56, 0xcb, 0xe9, 0x3f, 0xff, 0xbd, 0xf8,
0x7b, 0x3d, 0xf5, 0xe2, 0x1f, 0x1b, 0x85, 0x05, 0x7f, 0x07, 0xbf, 0x5e, 0xfc, 0xed, 0xdd, 0xff, 0x87, 0xb6, 0x8d, 0x4d,
0xbd, 0xde, 0xbb, 0xd2, 0x7d, 0x46, 0x3d, 0xd3, 0x9f, 0xab, 0x8d, 0x02, 0xf6, 0xf0, 0x34, 0x11, 0xc7, 0x27, 0x62, 0x0f,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x66, 0xf9, 0x64, 0x19, 0x26, 0xd9, 0x2d, 0xfb, 0xac, 0x20, 0x6d, 0xe7,
0x78, 0x46, 0x92, 0xdf, 0xcb, 0xb3, 0xe6, 0x63, 0x39, 0xc9, 0xf9, 0xb1, 0x09, 0x23, 0xe5, 0xac, 0x96, 0xb6, 0xd9, 0xc2,
0x58, 0xdf, 0xcd, 0xd5, 0x76, 0x4e, 0x17, 0x73, 0x35, 0xea, 0xe5, 0x79, 0xf3, 0x51, 0x27, 0x7a, 0x37, 0xf3, 0x69, 0xb9,
0x0d, 0x76, 0xe7, 0x5a, 0xa8, 0xa5, 0x0f, 0xf7, 0xfa, 0x62, 0xe6, 0xcb, 0xbe, 0x7d, 0x55, 0xcf, 0xce, 0x53, 0xfe, 0x87,
0xd7, 0x4b, 0xe5, 0x55, 0xd8, 0xf4, 0xa8, 0x5b, 0xea, 0x39, 0x6d, 0x2a, 0xfe, 0x7a, 0x54, 0x7a, 0x6f, 0xde, 0xb7, 0x1e,
0xf5, 0xd5, 0x62, 0x2d, 0xdb, 0xed, 0x03, 0x15, 0x63, 0xed, 0x48, 0x44, 0xdd, 0x19, 0x73, 0xbc, 0x8a, 0xd1, 0xd8, 0x5a,
0x68, 0x6f, 0xd2, 0x06, 0x73, 0xb8, 0xdf, 0x96, 0xd9, 0x66, 0x67, 0x74, 0x67, 0xbc, 0xbe, 0x61, 0xd2, 0x43, 0xe7, 0xf4,
0x04, 0x5f, 0x25, 0xba, 0x7a, 0x3c, 0x0f, 0xa7, 0x3b, 0xf1, 0xaf, 0xc1, 0xb1, 0xdd, 0x5a, 0x6a, 0x68, 0x2f, 0xd8, 0x06,
0x73, 0xb8, 0xdf, 0x96, 0xd9, 0x36, 0x7f, 0x65, 0xfa, 0x89, 0x9d, 0x75, 0xce, 0x71, 0x2b, 0xc0, 0xc2, 0xd7, 0xb1, 0x77,
0x2b, 0x35, 0xf3, 0xf9, 0x5f, 0x26, 0x7e, 0x22, 0x97, 0xdd, 0xae, 0xc6, 0xf6, 0x27, 0xf6, 0x9c, 0x61, 0x92, 0x75, 0xce,
0xb5, 0xdc, 0x8d, 0x32, 0xf9, 0xc4, 0x3e, 0xa7, 0xe5, 0x88, 0xf8, 0xcf, 0x1a, 0x26, 0x3d, 0xed, 0x9c, 0xe5, 0x74, 0xa7,
0xc7, 0xe4, 0xfd, 0xef, 0xcd, 0x47, 0xe6, 0x1c, 0x7a, 0x1e, 0x90, 0xdf, 0x83, 0xd7, 0x40, 0xe3, 0x33, 0x1b, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xff, 0xe3, 0xdb, 0x37, 0x31, 0x43, 0xc5, 0xb7, 0x76, 0xa2, 0x39, 0x7a,
0xea, 0xe9, 0xd6, 0x4d, 0x76, 0xcb, 0xcc, 0x5c, 0x8c, 0x5a, 0x62, 0x67, 0x8e, 0x3f, 0xef, 0xd6, 0x4e, 0x89, 0xfa, 0x54,
0xbb, 0x3d, 0x9f, 0x95, 0xb3, 0xfb, 0x67, 0xc3, 0x9e, 0xdd, 0xfe, 0xad, 0x17, 0xf4, 0x93, 0x3c, 0x73, 0xe9, 0x6d, 0xcf,
0x33, 0x77, 0x0b, 0x6f, 0x2d, 0x6d, 0x75, 0x2e, 0x66, 0xf7, 0xd0, 0x66, 0x3c, 0x14, 0x7f, 0x37, 0x2c, 0x2f, 0xfe, 0xb3,
0x63, 0x3e, 0xb7, 0x25, 0x9a, 0x47, 0xe4, 0x7a, 0xf1, 0xf7, 0x2c, 0x9f, 0xac, 0xf8, 0xef, 0xf3, 0x60, 0xf2, 0xe2, 0x3f,
0xe3, 0x70, 0xe9, 0xbe, 0x7b, 0x1e, 0xd4, 0x99, 0xf1, 0xd7, 0x79, 0xb4, 0xb6, 0xc4, 0x3f, 0x6e, 0xf9, 0xc4, 0xe3, 0xbf,
0xcf, 0x83, 0xc9, 0x8b, 0xff, 0x8c, 0xc3, 0xd1, 0x9d, 0x6c, 0x51, 0x3d, 0x9c, 0x7b, 0xc4, 0x06, 0x8e, 0x61, 0x9b, 0x88,
0x7f, 0x91, 0x7d, 0xdc, 0xeb, 0x7f, 0x46, 0xee, 0xff, 0x72, 0x98, 0x07, 0x93, 0xfb, 0xfc, 0xcf, 0x9a, 0x87, 0x32, 0xb0,
0x0f, 0xcb, 0x84, 0x2d, 0xd2, 0x93, 0xe7, 0x62, 0x9b, 0xef, 0x90, 0x13, 0xff, 0x99, 0x6b, 0x6d, 0x3b, 0x27, 0x1a, 0xff,
0x32, 0x11, 0xff, 0xcc, 0xbe, 0xfb, 0xf1, 0x2f, 0x8e, 0x2d, 0x32, 0x3e, 0x27, 0x3b, 0xfe, 0xb3, 0x56, 0x4b, 0x49, 0xbc,
0x96, 0x25, 0xc7, 0x3f, 0xee, 0xc9, 0xe4, 0xf6, 0xdd, 0x8f, 0xff, 0x7c, 0xef, 0x6e, 0x7f, 0xea, 0x01, 0x0e, 0x3d, 0x90,
0x71, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0xff, 0xb3, 0x38, 0x15, 0xa9, 0x7c, 0xcb, 0x68, 0xbb,
0x2d, 0xf4, 0xd6, 0xa0, 0x58, 0xf7, 0x27, 0x72, 0x32, 0xfd, 0x8c, 0x6b, 0x77, 0x45, 0xdf, 0x47, 0xcd, 0xd6, 0x4c, 0xdf,
0x8e, 0xae, 0x71, 0xb6, 0xcd, 0xf2, 0xf1, 0xbc, 0x97, 0xd8, 0x77, 0x50, 0x55, 0x6e, 0x9a, 0x2a, 0x32, 0xdd, 0x44, 0xbf,
0xbb, 0xef, 0xe5, 0xaa, 0xd0, 0xd7, 0xc9, 0xcc, 0x62, 0x61, 0x72, 0xbd, 0xda, 0x44, 0xdf, 0x9a, 0x38, 0xaa, 0xae, 0x51,
0xa7, 0xbf, 0x29, 0x3d, 0x9f, 0xcb, 0x61, 0x6b, 0x4e, 0x25, 0xbd, 0x63, 0x78, 0xdb, 0xeb, 0x8e, 0xae, 0x80, 0x2e, 0xef,
0xb1, 0xf5, 0xbe, 0x56, 0xe9, 0xb7, 0x2c, 0xb2, 0x9a, 0x59, 0x3c, 0x57, 0x8d, 0x89, 0xaa, 0x61, 0xfe, 0xfe, 0x91, 0xea,
0x9b, 0xaa, 0x96, 0xb4, 0x88, 0x6b, 0xb4, 0xe9, 0xef, 0x84, 0xdb, 0xa0, 0x8e, 0x54, 0xe4, 0xca, 0xde, 0x0a, 0xf0, 0x2a,
0xb9, 0xb5, 0x84, 0x5a, 0x25, 0xf1, 0x5c, 0x35, 0x9e, 0x79, 0xe0, 0x5f, 0x2d, 0x9a, 0x9b, 0x45, 0xaf, 0x99, 0xd8, 0x93,
0x21, 0x2b, 0xc3, 0xcc, 0xb6, 0x27, 0x67, 0x71, 0x46, 0xb4, 0x84, 0x57, 0xc0, 0xb1, 0x95, 0x3c, 0x8e, 0x33, 0x0f, 0xb6,
0x8e, 0x22, 0x7b, 0x67, 0x79, 0x7b, 0xfc, 0x97, 0x5d, 0x39, 0x41, 0xca, 0xb4, 0x2b, 0x13, 0x5b, 0x01, 0x47, 0xc7, 0xff,
0x28, 0xf3, 0x20, 0x2b, 0x03, 0x47, 0xbf, 0x68, 0xfc, 0x47, 0xd9, 0x66, 0xe2, 0xb1, 0x8c, 0x1b, 0xa3, 0xcb, 0x5d, 0x9e,
0x0c, 0xd9, 0xe7, 0x2c, 0xe1, 0xff, 0xc9, 0x5c, 0x23, 0xfe, 0x73, 0x19, 0x6a, 0x4a, 0x38, 0x97, 0xd0, 0xbd, 0xe2, 0x1f,
0xaf, 0x23, 0x35, 0x77, 0x4e, 0xbe, 0x7b, 0x79, 0x46, 0xfc, 0xe1, 0x71, 0x32, 0x1f, 0x35, 0xfc, 0x24, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x52, 0xfe, 0x8f, 0x88, 0xbd, 0x72, 0xff, 0x96, 0x3a, 0xd8, 0xd5, 0x2a, 0xd3, 0x2d,
0x25, 0xed, 0x9a, 0x9e, 0x63, 0xb4, 0xb7, 0xe6, 0xd9, 0xdb, 0x6b, 0x97, 0x69, 0xfb, 0xe7, 0x7f, 0x7b, 0xd0, 0xb7, 0x7f,
0x6b, 0xd2, 0xce, 0x7a, 0x7e, 0xcb, 0xf1, 0xdf, 0xe6, 0x3f, 0x22, 0xdf, 0x80, 0x97, 0x21, 0xa2, 0x6e, 0x76, 0x2b, 0x9a,
0xdc, 0x53, 0xed, 0x32, 0x67, 0x40, 0x9b, 0xd8, 0x83, 0xb8, 0x7f, 0x96, 0x9d, 0x16, 0xac, 0x43, 0x55, 0x4f, 0xcc, 0xb1,
0xd1, 0x07, 0x3e, 0x4c, 0xcc, 0xa1, 0xd1, 0x39, 0x14, 0x96, 0xd0, 0x6b, 0x55, 0x4d, 0xa2, 0xf2, 0x90, 0xf1, 0x5f, 0x82,
0x6e, 0x5f, 0xdf, 0x90, 0x2f, 0x23, 0x2b, 0xc7, 0x46, 0x99, 0x30, 0x7c, 0x8a, 0x53, 0x7f, 0x2c, 0x16, 0x7f, 0x55, 0xad,
0x2e, 0xfe, 0x6c, 0x3c, 0x23, 0xcb, 0x46, 0x7e, 0x05, 0x9b, 0xbc, 0x6c, 0x1e, 0xf9, 0x39, 0x36, 0xbc, 0x9d, 0x72, 0xed,
0x55, 0xc6, 0xe2, 0x1f, 0xcd, 0xed, 0x70, 0x46, 0xfc, 0x67, 0x6b, 0xdb, 0xe4, 0x66, 0xe6, 0x28, 0x17, 0xc9, 0xb1, 0x11,
0xcd, 0x10, 0xb2, 0xff, 0xf9, 0x9f, 0xed, 0x23, 0xe4, 0xed, 0x54, 0x9f, 0x93, 0x67, 0x63, 0xc6, 0xd3, 0x39, 0x6a, 0x67,
0x3e, 0xbe, 0x3b, 0x1f, 0x71, 0x2b, 0xfb, 0x43, 0xc5, 0xff, 0xca, 0x6e, 0xcf, 0x95, 0x38, 0xb2, 0xe6, 0x19, 0xf6, 0xcf,
0xa3, 0xae, 0x69, 0xe6, 0xe0, 0x75, 0x5b, 0x5e, 0xcc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x93, 0x01,
0x68, 0x91, 0x39, 0x6d, 0x3e, 0x79, 0xfc, 0x8b, 0x56, 0xed, 0x5b, 0xf6, 0x35, 0xfb, 0x8e, 0x7d, 0xd7, 0xbe, 0xe2, 0x5c,
0xb1, 0xa6, 0xe5, 0x1b, 0x1a, 0x9d, 0x53, 0x83, 0x75, 0xca, 0x4a, 0xd8, 0xd7, 0xd9, 0x57, 0x8b, 0x2c, 0x36, 0xf3, 0xd1,
0x6b, 0x8d, 0xe2, 0xe1, 0xfb, 0x5f, 0x9e, 0x45, 0xb1, 0x9e, 0xb7, 0xe7, 0xe7, 0xf6, 0x64, 0x1f, 0xda, 0x3f, 0xed, 0x1f,
0xf6, 0x37, 0xfb, 0xd0, 0x3e, 0x2b, 0x3f, 0xc3, 0x5c, 0xf7, 0x52, 0xde, 0x8c, 0xe1, 0x29, 0x58, 0x4d, 0xcb, 0x3f, 0x47,
0x55, 0x08, 0x53, 0xd7, 0x2b, 0xcf, 0xd6, 0x44, 0x0b, 0xf9, 0x3a, 0xe3, 0x77, 0x52, 0xdf, 0xf1, 0x6e, 0xe1, 0x0a, 0x01,
0x7e, 0x55, 0xb1, 0x78, 0x3c, 0xe6, 0x32, 0xa7, 0xdc, 0xf6, 0xd7, 0xd6, 0xc6, 0xf4, 0x7b, 0xfb, 0x8f, 0xfd, 0xc0, 0xaa,
0xfd, 0xd0, 0xbe, 0x6a, 0x7f, 0xb5, 0xcf, 0xc9, 0xbc, 0x36, 0xeb, 0xe3, 0x6b, 0xd2, 0x87, 0xd1, 0xb9, 0x60, 0xbc, 0x73,
0xca, 0xcb, 0x2e, 0x60, 0x5d, 0xbd, 0x5f, 0xd6, 0xad, 0xac, 0xe2, 0xe6, 0xaa, 0xd1, 0xde, 0x50, 0x19, 0xe6, 0x39, 0x5a,
0x9b, 0x8b, 0x2e, 0x72, 0x0c, 0x75, 0x71, 0xe7, 0xa9, 0x7e, 0xab, 0xe3, 0xa3, 0x78, 0x8c, 0xf7, 0x1b, 0xd6, 0xb3, 0x20,
0x99, 0x18, 0xe9, 0xaf, 0xed, 0xcf, 0xf6, 0x0d, 0xfb, 0xb6, 0xfd, 0xcb, 0xfe, 0x6d, 0x1f, 0xd9, 0x67, 0x56, 0xef, 0x22,
0xe5, 0xe6, 0xe8, 0x27, 0xa5, 0x97, 0x0d, 0xa9, 0x38, 0x39, 0x9c, 0xba, 0x8c, 0xa7, 0xbe, 0xf7, 0xba, 0x5c, 0x9d, 0xde,
0x3c, 0xf5, 0xe1, 0xca, 0x51, 0x7b, 0xc3, 0x25, 0x34, 0x47, 0xaa, 0x72, 0xa0, 0xba, 0xff, 0x47, 0xf1, 0x18, 0xc7, 0xbf,
0x08, 0x43, 0x65, 0x7d, 0x8e, 0x7e, 0x61, 0x7f, 0xb7, 0xaf, 0xdb, 0x97, 0xec, 0x0b, 0xf6, 0x79, 0x7b, 0x5f, 0xc4, 0x4b,
0xad, 0xed, 0x51, 0x06, 0xa5, 0xb8, 0x01, 0x7a, 0x8b, 0xc7, 0x7a, 0xfc, 0x6b, 0x9a, 0x1d, 0x60, 0xef, 0x9e, 0x0b, 0x73,
0x75, 0xb6, 0x22, 0xcf, 0x7f, 0xf5, 0x13, 0x59, 0x3d, 0x53, 0x47, 0xf1, 0x98, 0x75, 0x28, 0x4c, 0xdc, 0x75, 0x7f, 0xb0,
0x9f, 0xd9, 0x4f, 0xed, 0x7b, 0xf6, 0x2b, 0xfb, 0xc8, 0x9a, 0x7d, 0x33, 0xb8, 0xb6, 0x4b, 0xb8, 0xde, 0xa0, 0x4d, 0xde,
0xff, 0x5d, 0xda, 0x77, 0xd7, 0x8e, 0xbf, 0xea, 0xb7, 0x3a, 0x3e, 0x8a, 0xc7, 0xac, 0x43, 0xa1, 0x5c, 0xc9, 0xf7, 0xed,
0xc7, 0xf6, 0x81, 0xfd, 0xd2, 0x7e, 0x64, 0xdf, 0xb7, 0xdf, 0xd8, 0x97, 0x27, 0xc6, 0x66, 0xa1, 0xdf, 0xbd, 0xbc, 0xdf,
0xca, 0xca, 0x20, 0xef, 0x54, 0x6e, 0x1e, 0xa1, 0x33, 0xde, 0x29, 0xce, 0x96, 0x78, 0xc4, 0x6d, 0x2c, 0xbd, 0x32, 0x7e,
0x62, 0xbf, 0xb5, 0x3f, 0xd9, 0x07, 0xf6, 0x3b, 0xfb, 0xa3, 0xfd, 0xc5, 0xde, 0x73, 0x4c, 0xba, 0x68, 0xcd, 0xbc, 0x59,
0xbf, 0xce, 0xe4, 0xef, 0x2a, 0xd9, 0xae, 0x51, 0xd6, 0x3b, 0x59, 0xa2, 0xbd, 0x34, 0x8a, 0xc7, 0xb5, 0xfc, 0x96, 0x99,
0xac, 0x7b, 0x8f, 0xed, 0x79, 0xc1, 0x96, 0x58, 0xce, 0x59, 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0,
0xc5, 0xfe, 0xf1, 0xdd, 0x9a, 0x65, 0x53, 0x76, 0x89, 0xb1, 0x15, 0x14, 0x71, 0x5a, 0x8a, 0xcc, 0x61, 0x51, 0x37, 0xd4,
0xda, 0x2a, 0xa1, 0x91, 0xce, 0x1c, 0x1f, 0xf9, 0x3b, 0xfa, 0x78, 0x9e, 0x15, 0x35, 0xe3, 0x23, 0x45, 0x3f, 0x75, 0x6d,
0x6e, 0xe5, 0x9e, 0x88, 0x85, 0xa2, 0x6b, 0x89, 0x99, 0x70, 0x34, 0x9a, 0xf0, 0x04, 0x9a, 0x3c, 0xcb, 0x5e, 0x76, 0x1e,
0x4d, 0x66, 0xc4, 0x79, 0x92, 0xce, 0x8d, 0x3a, 0xfe, 0x9e, 0x8c, 0xf2, 0x93, 0xcc, 0xeb, 0xb3, 0x7e, 0x96, 0x3d, 0x1f,
0xef, 0xa1, 0xbe, 0x99, 0x5b, 0x85, 0xcd, 0x9c, 0xb6, 0xb6, 0xe9, 0x13, 0xf3, 0x51, 0xfc, 0xb7, 0x7b, 0x12, 0x63, 0x0b,
0xc5, 0xe4, 0x0e, 0xfe, 0xba, 0xa3, 0xa5, 0xb3, 0xed, 0xf8, 0x6d, 0xca, 0x9e, 0xf1, 0x73, 0x69, 0x69, 0x83, 0x23, 0xba,
0x62, 0x54, 0x2c, 0x9b, 0x34, 0x99, 0x7c, 0x2b, 0xa6, 0x3a, 0xee, 0x83, 0x97, 0x91, 0xa8, 0x9d, 0x1a, 0xff, 0xb1, 0x85,
0x12, 0x89, 0x7f, 0x77, 0x33, 0x24, 0x68, 0xbb, 0x64, 0x94, 0x11, 0x47, 0xbb, 0x58, 0x65, 0xea, 0xe9, 0x9b, 0xd3, 0xe2,
0xdf, 0xe5, 0x4d, 0xee, 0x7d, 0x7b, 0xf3, 0x10, 0xcf, 0xff, 0xb2, 0x66, 0x71, 0x6c, 0x8f, 0xff, 0xd8, 0x42, 0x31, 0x51,
0x03, 0x6f, 0xce, 0xc4, 0x8a, 0x65, 0x77, 0xf2, 0x57, 0xba, 0xce, 0xec, 0x74, 0x56, 0x8e, 0xbb, 0x99, 0x8c, 0x59, 0x9e,
0x65, 0xb3, 0x6c, 0xcc, 0x01, 0x66, 0x03, 0x5b, 0x63, 0x7b, 0xfc, 0xc7, 0x16, 0x4a, 0xc4, 0x69, 0x19, 0x9b, 0x38, 0x25,
0xb8, 0xab, 0xee, 0xf9, 0x45, 0x3a, 0x8f, 0xd0, 0x4c, 0x25, 0xc8, 0xb3, 0x5a, 0xbc, 0x79, 0x28, 0x1b, 0x23, 0xe7, 0xe7,
0xd0, 0x89, 0xc4, 0x7f, 0x9f, 0x85, 0x12, 0x33, 0x08, 0xe2, 0xfe, 0xe6, 0xd8, 0x22, 0xea, 0x77, 0xcf, 0x71, 0x19, 0x7f,
0x66, 0x74, 0xb9, 0x36, 0xb6, 0x1a, 0x13, 0xfe, 0x2b, 0x23, 0xf3, 0x7c, 0x96, 0x85, 0x32, 0x6b, 0xce, 0x94, 0x09, 0xbf,
0xe4, 0xdc, 0xec, 0x87, 0xf1, 0x96, 0x3e, 0x88, 0x1d, 0xf9, 0x46, 0xb6, 0x3e, 0xe9, 0xe2, 0xbf, 0x1d, 0xdf, 0xbb, 0x65,
0x64, 0xf5, 0x61, 0xd2, 0xec, 0xb7, 0xc8, 0x1e, 0x37, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x19,
0x2e, 0x4b, 0xb0, 0x86, 0x95, 0x6e, 0xd3, 0x47, 0x6b, 0x28, 0x6b, 0x8e, 0xe7, 0xdd, 0xdc, 0xdf, 0xef, 0x29, 0xee, 0x3e,
0x5d, 0x5e, 0x9f, 0xbd, 0x4f, 0x80, 0xf3, 0x0c, 0x17, 0xcf, 0x7d, 0xa8, 0xa1, 0x77, 0xa9, 0xce, 0x3b, 0x3c, 0x89, 0x3d,
0xaf, 0xb8, 0x77, 0x73, 0x7f, 0xbf, 0x47, 0x19, 0x1c, 0x55, 0x7a, 0x1f, 0x33, 0x7d, 0x1e, 0xad, 0x80, 0x2c, 0xc3, 0xc5,
0xf3, 0xce, 0x62, 0xef, 0xd2, 0x44, 0x8b, 0xbe, 0xbe, 0xfe, 0x7c, 0xbf, 0x39, 0x19, 0x84, 0xee, 0xed, 0xf7, 0xe8, 0x6a,
0x54, 0xca, 0xfb, 0xa8, 0x72, 0x05, 0xdc, 0x72, 0x5a, 0xd5, 0xe0, 0xd3, 0xff, 0x1c, 0x8f, 0x25, 0x9a, 0xd3, 0x4c, 0x1d,
0xbf, 0x39, 0x6f, 0x3a, 0x5b, 0x51, 0x2c, 0xe7, 0xd0, 0xfd, 0xfd, 0x9e, 0xee, 0xe6, 0x9b, 0x3a, 0x7e, 0xaf, 0x60, 0x94,
0x8f, 0xa7, 0x4f, 0x54, 0x64, 0x5c, 0xcf, 0x77, 0x64, 0xc2, 0xff, 0x88, 0x1d, 0x5f, 0x64, 0x46, 0x27, 0x73, 0x76, 0xc3,
0xaf, 0xb0, 0x57, 0x1f, 0x8b, 0xcc, 0xcd, 0x72, 0xb0, 0x13, 0xe2, 0x5f, 0x9c, 0x7a, 0x68, 0x79, 0x2d, 0xcb, 0xa0, 0xee,
0x5a, 0xd6, 0xf1, 0xeb, 0xee, 0xd5, 0x47, 0xe3, 0x6f, 0x27, 0xc5, 0xdf, 0x77, 0xdf, 0xb2, 0x5a, 0x88, 0x7f, 0x34, 0xfe,
0xfd, 0xa4, 0xe7, 0xbf, 0x76, 0xdf, 0x32, 0x5b, 0xce, 0x88, 0xbf, 0xb9, 0x35, 0xf5, 0x1e, 0x2d, 0xfe, 0xe5, 0x14, 0x57,
0x20, 0xbb, 0x8a, 0xa7, 0x9f, 0x4d, 0xee, 0xc8, 0xf8, 0xcf, 0x59, 0x1c, 0xe5, 0xce, 0x2d, 0x71, 0x5b, 0x25, 0xf3, 0x5d,
0xf2, 0xab, 0x78, 0xfa, 0x2d, 0xc7, 0x1d, 0xdf, 0xf3, 0x1d, 0x07, 0xbb, 0x63, 0x4b, 0xdc, 0xcb, 0xcb, 0x7c, 0x17, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x2d, 0xfe, 0x4f, 0xd4, 0xe5, 0x99, 0x31, 0x53, 0xaa, 0xeb, 0xe7, 0x5c, 0x35,
0xc7, 0x8e, 0x97, 0x4f, 0x48, 0xb7, 0xdc, 0xdb, 0xa9, 0xaa, 0xa1, 0xe8, 0xc7, 0x5d, 0x1e, 0xed, 0x99, 0xd8, 0xc4, 0x0e,
0xb8, 0xef, 0x06, 0xb5, 0x09, 0x07, 0xa7, 0x3a, 0x0e, 0x4e, 0x0b, 0xe5, 0xd8, 0xe8, 0x4e, 0x3e, 0x21, 0x73, 0x72, 0x17,
0x64, 0x8e, 0x48, 0xf7, 0xbb, 0x89, 0x55, 0xd1, 0xc2, 0x9f, 0x33, 0x3e, 0x85, 0xf2, 0xe5, 0x68, 0xcf, 0x64, 0x76, 0x07,
0x7c, 0xce, 0xc1, 0x69, 0x21, 0x07, 0xc7, 0xab, 0x22, 0x55, 0x07, 0x55, 0xba, 0xf4, 0x6e, 0x4b, 0xae, 0x53, 0x15, 0xeb,
0xb7, 0x9e, 0x81, 0x8c, 0xfc, 0x6f, 0xd9, 0x3b, 0x60, 0x45, 0x98, 0x6e, 0x33, 0x4f, 0xd8, 0x99, 0x16, 0x9d, 0xff, 0xc1,
0xab, 0xde, 0x37, 0x53, 0xc9, 0x28, 0xb7, 0xdf, 0x5e, 0x85, 0xbe, 0x12, 0xca, 0x64, 0x75, 0xdf, 0x6f, 0x38, 0x77, 0x51,
0x39, 0x27, 0xb7, 0x22, 0x90, 0x6e, 0x29, 0x32, 0x27, 0x4a, 0x71, 0x6b, 0x52, 0xf5, 0x70, 0x7d, 0x9c, 0x6c, 0x77, 0xa8,
0x38, 0x96, 0x60, 0xd9, 0x91, 0xfb, 0x69, 0xdf, 0xbd, 0xdc, 0x27, 0x72, 0xec, 0xf4, 0x89, 0xb8, 0x64, 0xb5, 0xd8, 0x54,
0x7d, 0xa9, 0x71, 0x7e, 0x94, 0xe3, 0xb3, 0x06, 0x75, 0xc7, 0xb7, 0xb9, 0x47, 0xfc, 0xc7, 0xf3, 0x15, 0x7f, 0x32, 0x9c,
0x73, 0x1f, 0x45, 0x57, 0xe0, 0x5c, 0x8e, 0x8d, 0x6c, 0xa7, 0xb2, 0x0c, 0xec, 0x8d, 0xb3, 0xe3, 0x5f, 0x06, 0xe7, 0xe8,
0xac, 0x5d, 0x76, 0x57, 0x07, 0x23, 0xfe, 0xbc, 0xde, 0x93, 0x69, 0x26, 0xaf, 0xc5, 0xaf, 0xd0, 0xb7, 0x37, 0xfe, 0x67,
0xd8, 0x2c, 0x57, 0x30, 0x50, 0x72, 0x33, 0x03, 0x9d, 0x37, 0xa2, 0xe8, 0x4a, 0xb3, 0x8b, 0xf6, 0xf5, 0xd3, 0x95, 0x19,
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xd1, 0xf3, 0xff, 0xd4, 0x70, 0xcb, 0x95, 0xb3, 0xec, 0xe4, 0xe5,
0x1f, 0xca, 0x76, 0x78, 0xe6, 0x5c, 0xaa, 0xb9, 0x4c, 0x3f, 0xca, 0x47, 0xa9, 0x81, 0xfc, 0x2b, 0x37, 0xeb, 0x44, 0x55,
0xaa, 0xaa, 0x27, 0xf8, 0x30, 0x33, 0x86, 0x8f, 0x3a, 0xea, 0xed, 0xfc, 0x9c, 0xe3, 0xf0, 0xe8, 0xab, 0xd9, 0xc0, 0xd9,
0xc9, 0xc9, 0xef, 0xde, 0x9c, 0xb9, 0x99, 0x59, 0x31, 0xed, 0x92, 0x86, 0xcf, 0x8c, 0x5b, 0x91, 0xeb, 0xf0, 0xe8, 0x19,
0x6d, 0xd2, 0x2f, 0xf0, 0xab, 0x2f, 0x66, 0x7d, 0x5a, 0x1d, 0xdd, 0x91, 0x6a, 0x61, 0x8b, 0xa2, 0xdc, 0xdd, 0x94, 0xe9,
0xae, 0xc3, 0xd3, 0x43, 0x11, 0x9b, 0x69, 0x19, 0xed, 0xa5, 0x96, 0x44, 0x97, 0x2e, 0x6b, 0xb7, 0xd2, 0x82, 0x4f, 0xcc,
0x6b, 0x67, 0xd9, 0x29, 0x4e, 0xf6, 0x93, 0x47, 0xac, 0xfc, 0x72, 0xaf, 0xf8, 0x3f, 0xe6, 0x8c, 0xf9, 0x39, 0x29, 0x1e,
0x2d, 0xca, 0x36, 0xe9, 0xab, 0xe4, 0xc4, 0xff, 0xda, 0xf3, 0x92, 0x97, 0x65, 0xe3, 0x9c, 0x9e, 0xcd, 0x19, 0x61, 0x99,
0xfb, 0xd5, 0xd1, 0xf8, 0x97, 0xe4, 0xd1, 0x9f, 0x61, 0xf8, 0xcc, 0x64, 0xd9, 0x38, 0xcb, 0x3d, 0x9a, 0xb5, 0x2c, 0x8e,
0xbe, 0xff, 0x33, 0xef, 0x98, 0x7b, 0x1b, 0x3e, 0x57, 0x76, 0x78, 0xe2, 0x2e, 0x9d, 0xf6, 0xd5, 0xe1, 0xd1, 0xd0, 0xb1,
0x7c, 0x3d, 0x95, 0xf9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xe6, 0xb9, 0xfd, 0x61, 0x1e, 0x88, 0x3f, 0xbc, 0xda, 0xf8, 0xff, 0x17 };
// Font glyphs rectangles data (on atlas)
static const Rectangle bluishFontRecs[189] = {
{ 4, 4, 5 , 10 },
{ 17, 4, 2 , 8 },
{ 27, 4, 4 , 3 },
{ 39, 4, 6 , 8 },
{ 53, 4, 5 , 10 },
{ 66, 4, 6 , 8 },
{ 80, 4, 5 , 10 },
{ 93, 4, 2 , 3 },
{ 103, 4, 3 , 8 },
{ 114, 4, 3 , 8 },
{ 125, 4, 6 , 6 },
{ 139, 4, 6 , 6 },
{ 153, 4, 2 , 3 },
{ 163, 4, 5 , 2 },
{ 176, 4, 2 , 2 },
{ 186, 4, 6 , 8 },
{ 200, 4, 5 , 8 },
{ 213, 4, 3 , 8 },
{ 224, 4, 5 , 8 },
{ 237, 4, 5 , 8 },
{ 4, 22, 5 , 8 },
{ 17, 22, 5 , 8 },
{ 30, 22, 5 , 8 },
{ 43, 22, 5 , 8 },
{ 56, 22, 5 , 8 },
{ 69, 22, 5 , 8 },
{ 82, 22, 2 , 8 },
{ 92, 22, 2 , 9 },
{ 102, 22, 4 , 6 },
{ 114, 22, 5 , 4 },
{ 127, 22, 4 , 6 },
{ 139, 22, 5 , 8 },
{ 152, 22, 6 , 8 },
{ 166, 22, 5 , 8 },
{ 179, 22, 5 , 8 },
{ 192, 22, 5 , 8 },
{ 205, 22, 5 , 8 },
{ 218, 22, 5 , 8 },
{ 231, 22, 5 , 8 },
{ 4, 40, 5 , 8 },
{ 17, 40, 5 , 8 },
{ 30, 40, 4 , 8 },
{ 42, 40, 5 , 8 },
{ 55, 40, 5 , 8 },
{ 68, 40, 5 , 8 },
{ 81, 40, 8 , 8 },
{ 97, 40, 5 , 8 },
{ 110, 40, 5 , 8 },
{ 123, 40, 5 , 8 },
{ 136, 40, 5 , 9 },
{ 149, 40, 5 , 8 },
{ 162, 40, 5 , 8 },
{ 175, 40, 6 , 8 },
{ 189, 40, 5 , 8 },
{ 202, 40, 5 , 8 },
{ 215, 40, 8 , 8 },
{ 231, 40, 5 , 8 },
{ 4, 58, 5 , 8 },
{ 17, 58, 5 , 8 },
{ 30, 58, 3 , 8 },
{ 41, 58, 6 , 8 },
{ 55, 58, 3 , 8 },
{ 66, 58, 6 , 4 },
{ 80, 58, 5 , 1 },
{ 93, 58, 2 , 3 },
{ 103, 58, 5 , 6 },
{ 116, 58, 5 , 8 },
{ 129, 58, 5 , 6 },
{ 142, 58, 5 , 8 },
{ 155, 58, 5 , 6 },
{ 168, 58, 5 , 8 },
{ 181, 58, 5 , 7 },
{ 194, 58, 5 , 8 },
{ 207, 58, 2 , 8 },
{ 217, 58, 3 , 9 },
{ 228, 58, 5 , 8 },
{ 241, 58, 2 , 8 },
{ 4, 76, 8 , 6 },
{ 20, 76, 5 , 6 },
{ 33, 76, 5 , 6 },
{ 46, 76, 5 , 7 },
{ 59, 76, 5 , 7 },
{ 72, 76, 5 , 6 },
{ 85, 76, 5 , 6 },
{ 98, 76, 5 , 8 },
{ 111, 76, 5 , 6 },
{ 124, 76, 5 , 6 },
{ 137, 76, 8 , 6 },
{ 153, 76, 5 , 6 },
{ 166, 76, 5 , 7 },
{ 179, 76, 5 , 6 },
{ 192, 76, 4 , 8 },
{ 204, 76, 2 , 10 },
{ 214, 76, 4 , 8 },
{ 226, 76, 6 , 4 },
{ 240, 76, 2 , 8 },
{ 4, 94, 5 , 8 },
{ 17, 94, 5 , 8 },
{ 30, 94, 8 , 8 },
{ 46, 94, 6 , 8 },
{ 60, 94, 5 , 10 },
{ 73, 94, 5 , 10 },
{ 86, 94, 5 , 9 },
{ 99, 94, 7 , 8 },
{ 114, 94, 4 , 6 },
{ 126, 94, 5 , 4 },
{ 139, 94, 5 , 3 },
{ 152, 94, 7 , 8 },
{ 167, 94, 5 , 2 },
{ 180, 94, 4 , 4 },
{ 192, 94, 6 , 8 },
{ 206, 94, 4 , 6 },
{ 218, 94, 4 , 6 },
{ 230, 94, 8 , 8 },
{ 4, 112, 5 , 9 },
{ 17, 112, 6 , 8 },
{ 31, 112, 2 , 2 },
{ 41, 112, 8 , 8 },
{ 57, 112, 3 , 6 },
{ 68, 112, 4 , 6 },
{ 80, 112, 5 , 4 },
{ 93, 112, 6 , 8 },
{ 107, 112, 6 , 6 },
{ 121, 112, 5 , 10 },
{ 134, 112, 5 , 8 },
{ 147, 112, 5 , 10 },
{ 160, 112, 5 , 10 },
{ 173, 112, 5 , 10 },
{ 186, 112, 5 , 10 },
{ 199, 112, 5 , 10 },
{ 212, 112, 5 , 10 },
{ 225, 112, 6 , 8 },
{ 239, 112, 5 , 9 },
{ 4, 130, 5 , 10 },
{ 17, 130, 5 , 10 },
{ 30, 130, 5 , 10 },
{ 43, 130, 5 , 10 },
{ 56, 130, 4 , 10 },
{ 68, 130, 4 , 10 },
{ 80, 130, 4 , 10 },
{ 92, 130, 4 , 10 },
{ 104, 130, 6 , 8 },
{ 118, 130, 5 , 10 },
{ 131, 130, 5 , 10 },
{ 144, 130, 5 , 10 },
{ 157, 130, 5 , 10 },
{ 170, 130, 5 , 10 },
{ 183, 130, 5 , 10 },
{ 196, 130, 4 , 4 },
{ 208, 130, 5 , 10 },
{ 221, 130, 5 , 10 },
{ 234, 130, 5 , 10 },
{ 4, 148, 5 , 10 },
{ 17, 148, 5 , 10 },
{ 30, 148, 5 , 10 },
{ 43, 148, 5 , 8 },
{ 56, 148, 5 , 8 },
{ 69, 148, 5 , 9 },
{ 82, 148, 5 , 9 },
{ 95, 148, 5 , 9 },
{ 108, 148, 5 , 9 },
{ 121, 148, 5 , 8 },
{ 134, 148, 5 , 10 },
{ 147, 148, 6 , 6 },
{ 161, 148, 5 , 7 },
{ 174, 148, 5 , 9 },
{ 187, 148, 5 , 9 },
{ 200, 148, 5 , 9 },
{ 213, 148, 5 , 8 },
{ 226, 148, 3 , 9 },
{ 237, 148, 3 , 9 },
{ 4, 166, 4 , 9 },
{ 16, 166, 4 , 8 },
{ 28, 166, 5 , 9 },
{ 41, 166, 5 , 9 },
{ 54, 166, 5 , 9 },
{ 67, 166, 5 , 9 },
{ 80, 166, 5 , 9 },
{ 93, 166, 5 , 9 },
{ 106, 166, 5 , 8 },
{ 119, 166, 4 , 6 },
{ 131, 166, 5 , 8 },
{ 144, 166, 5 , 9 },
{ 157, 166, 5 , 9 },
{ 170, 166, 5 , 9 },
{ 183, 166, 5 , 8 },
{ 196, 166, 5 , 10 },
{ 209, 166, 5 , 10 },
{ 222, 166, 5 , 9 },
};
// Font glyphs info data
// NOTE: No glyphs.image data provided
static const GlyphInfo bluishFontGlyphs[189] = {
{ 32, 0, 9, 5, { 0 }},
{ 33, 0, 1, 2, { 0 }},
{ 34, 0, 1, 4, { 0 }},
{ 35, 0, 1, 6, { 0 }},
{ 36, 0, 0, 5, { 0 }},
{ 37, 0, 1, 6, { 0 }},
{ 38, 0, 0, 5, { 0 }},
{ 39, 0, 1, 2, { 0 }},
{ 40, 0, 1, 3, { 0 }},
{ 41, 0, 1, 3, { 0 }},
{ 42, 0, 1, 6, { 0 }},
{ 43, 0, 2, 6, { 0 }},
{ 44, 0, 7, 2, { 0 }},
{ 45, 0, 4, 5, { 0 }},
{ 46, 0, 7, 2, { 0 }},
{ 47, 0, 1, 6, { 0 }},
{ 48, 0, 1, 5, { 0 }},
{ 49, 0, 1, 3, { 0 }},
{ 50, 0, 1, 5, { 0 }},
{ 51, 0, 1, 5, { 0 }},
{ 52, 0, 1, 5, { 0 }},
{ 53, 0, 1, 5, { 0 }},
{ 54, 0, 1, 5, { 0 }},
{ 55, 0, 1, 5, { 0 }},
{ 56, 0, 1, 5, { 0 }},
{ 57, 0, 1, 5, { 0 }},
{ 58, 0, 1, 2, { 0 }},
{ 59, 0, 1, 2, { 0 }},
{ 60, 0, 2, 4, { 0 }},
{ 61, 0, 3, 5, { 0 }},
{ 62, 0, 2, 4, { 0 }},
{ 63, 0, 1, 5, { 0 }},
{ 64, 0, 1, 6, { 0 }},
{ 65, 0, 1, 5, { 0 }},
{ 66, 0, 1, 5, { 0 }},
{ 67, 0, 1, 5, { 0 }},
{ 68, 0, 1, 5, { 0 }},
{ 69, 0, 1, 5, { 0 }},
{ 70, 0, 1, 5, { 0 }},
{ 71, 0, 1, 5, { 0 }},
{ 72, 0, 1, 5, { 0 }},
{ 73, 0, 1, 4, { 0 }},
{ 74, 0, 1, 5, { 0 }},
{ 75, 0, 1, 5, { 0 }},
{ 76, 0, 1, 5, { 0 }},
{ 77, 0, 1, 8, { 0 }},
{ 78, 0, 1, 5, { 0 }},
{ 79, 0, 1, 5, { 0 }},
{ 80, 0, 1, 5, { 0 }},
{ 81, 0, 1, 5, { 0 }},
{ 82, 0, 1, 5, { 0 }},
{ 83, 0, 1, 5, { 0 }},
{ 84, 0, 1, 6, { 0 }},
{ 85, 0, 1, 5, { 0 }},
{ 86, 0, 1, 5, { 0 }},
{ 87, 0, 1, 8, { 0 }},
{ 88, 0, 1, 5, { 0 }},
{ 89, 0, 1, 5, { 0 }},
{ 90, 0, 1, 5, { 0 }},
{ 91, 0, 1, 3, { 0 }},
{ 92, 0, 1, 6, { 0 }},
{ 93, 0, 1, 3, { 0 }},
{ 94, 0, 1, 6, { 0 }},
{ 95, 0, 9, 5, { 0 }},
{ 96, 0, 1, 2, { 0 }},
{ 97, 0, 3, 5, { 0 }},
{ 98, 0, 1, 5, { 0 }},
{ 99, 0, 3, 5, { 0 }},
{ 100, 0, 1, 5, { 0 }},
{ 101, 0, 3, 5, { 0 }},
{ 102, 0, 1, 5, { 0 }},
{ 103, 0, 3, 5, { 0 }},
{ 104, 0, 1, 5, { 0 }},
{ 105, 0, 1, 2, { 0 }},
{ 106, 0, 1, 3, { 0 }},
{ 107, 0, 1, 5, { 0 }},
{ 108, 0, 1, 2, { 0 }},
{ 109, 0, 3, 8, { 0 }},
{ 110, 0, 3, 5, { 0 }},
{ 111, 0, 3, 5, { 0 }},
{ 112, 0, 3, 5, { 0 }},
{ 113, 0, 3, 5, { 0 }},
{ 114, 0, 3, 5, { 0 }},
{ 115, 0, 3, 5, { 0 }},
{ 116, 0, 1, 5, { 0 }},
{ 117, 0, 3, 5, { 0 }},
{ 118, 0, 3, 5, { 0 }},
{ 119, 0, 3, 8, { 0 }},
{ 120, 0, 3, 5, { 0 }},
{ 121, 0, 3, 5, { 0 }},
{ 122, 0, 3, 5, { 0 }},
{ 123, 0, 1, 4, { 0 }},
{ 124, 0, 0, 2, { 0 }},
{ 125, 0, 1, 4, { 0 }},
{ 126, 0, 3, 6, { 0 }},
{ 161, 0, 1, 2, { 0 }},
{ 162, 0, 2, 5, { 0 }},
{ 163, 0, 1, 5, { 0 }},
{ 8364, 0, 1, 7, { 0 }},
{ 165, 0, 1, 6, { 0 }},
{ 352, 0, -1, 5, { 0 }},
{ 167, 0, 0, 5, { 0 }},
{ 353, 0, 0, 5, { 0 }},
{ 169, 0, 1, 7, { 0 }},
{ 170, 0, -1, 4, { 0 }},
{ 171, 0, 3, 5, { 0 }},
{ 172, 0, 4, 5, { 0 }},
{ 174, 0, 1, 7, { 0 }},
{ 175, 0, -1, 5, { 0 }},
{ 176, 0, -1, 4, { 0 }},
{ 177, 0, 1, 6, { 0 }},
{ 178, 0, -1, 4, { 0 }},
{ 179, 0, -1, 4, { 0 }},
{ 381, 0, 1, 7, { 0 }},
{ 181, 0, 1, 5, { 0 }},
{ 182, 0, 1, 6, { 0 }},
{ 183, 0, 4, 2, { 0 }},
{ 382, 0, 1, 7, { 0 }},
{ 185, 0, -1, 3, { 0 }},
{ 186, 0, -1, 4, { 0 }},
{ 187, 0, 3, 5, { 0 }},
{ 338, 0, 1, 6, { 0 }},
{ 339, 0, 3, 6, { 0 }},
{ 376, 0, -1, 5, { 0 }},
{ 191, 0, 1, 5, { 0 }},
{ 192, 0, -1, 5, { 0 }},
{ 193, 0, -1, 5, { 0 }},
{ 194, 0, -1, 5, { 0 }},
{ 195, 0, -1, 5, { 0 }},
{ 196, 0, -1, 5, { 0 }},
{ 197, 0, -1, 5, { 0 }},
{ 198, 0, 1, 6, { 0 }},
{ 199, 0, 1, 5, { 0 }},
{ 200, 0, -1, 5, { 0 }},
{ 201, 0, -1, 5, { 0 }},
{ 202, 0, -1, 5, { 0 }},
{ 203, 0, -1, 5, { 0 }},
{ 204, 0, -1, 4, { 0 }},
{ 205, 0, -1, 4, { 0 }},
{ 206, 0, -1, 4, { 0 }},
{ 207, 0, -1, 4, { 0 }},
{ 208, 0, 1, 6, { 0 }},
{ 209, 0, -1, 5, { 0 }},
{ 210, 0, -1, 5, { 0 }},
{ 211, 0, -1, 5, { 0 }},
{ 212, 0, -1, 5, { 0 }},
{ 213, 0, -1, 5, { 0 }},
{ 214, 0, -1, 5, { 0 }},
{ 215, 0, 3, 4, { 0 }},
{ 216, 0, 0, 5, { 0 }},
{ 217, 0, -1, 5, { 0 }},
{ 218, 0, -1, 5, { 0 }},
{ 219, 0, -1, 5, { 0 }},
{ 220, 0, -1, 5, { 0 }},
{ 221, 0, -1, 5, { 0 }},
{ 222, 0, 1, 5, { 0 }},
{ 223, 0, 1, 5, { 0 }},
{ 224, 0, 0, 5, { 0 }},
{ 225, 0, 0, 5, { 0 }},
{ 226, 0, 0, 5, { 0 }},
{ 227, 0, 0, 5, { 0 }},
{ 228, 0, 1, 5, { 0 }},
{ 229, 0, -1, 5, { 0 }},
{ 230, 0, 3, 6, { 0 }},
{ 231, 0, 3, 5, { 0 }},
{ 232, 0, 0, 5, { 0 }},
{ 233, 0, 0, 5, { 0 }},
{ 234, 0, 0, 5, { 0 }},
{ 235, 0, 1, 5, { 0 }},
{ 236, 0, 0, 3, { 0 }},
{ 237, 0, 0, 2, { 0 }},
{ 238, 0, 0, 3, { 0 }},
{ 239, 0, 1, 3, { 0 }},
{ 240, 0, 0, 5, { 0 }},
{ 241, 0, 0, 5, { 0 }},
{ 242, 0, 0, 5, { 0 }},
{ 243, 0, 0, 5, { 0 }},
{ 244, 0, 0, 5, { 0 }},
{ 245, 0, 0, 5, { 0 }},
{ 246, 0, 1, 5, { 0 }},
{ 247, 0, 2, 4, { 0 }},
{ 248, 0, 2, 5, { 0 }},
{ 249, 0, 0, 5, { 0 }},
{ 250, 0, 0, 5, { 0 }},
{ 251, 0, 0, 5, { 0 }},
{ 252, 0, 1, 5, { 0 }},
{ 253, 0, 0, 5, { 0 }},
{ 254, 0, 0, 5, { 0 }},
{ 255, 0, 1, 5, { 0 }},
};
// Style loading function: Bluish
static void GuiLoadStyleBluish(void)
{
// Load style properties provided
// NOTE: Default properties are propagated
for (int i = 0; i < BLUISH_STYLE_PROPS_COUNT; i++)
{
GuiSetStyle(bluishStyleProps[i].controlId, bluishStyleProps[i].propertyId, bluishStyleProps[i].propertyValue);
}
// Custom font loading
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
int bluishFontDataSize = 0;
unsigned char *data = DecompressData(bluishFontData, BLUISH_STYLE_FONT_ATLAS_COMP_SIZE, &bluishFontDataSize);
Image imFont = { data, 256, 256, 1, 2 };
Font font = { 0 };
font.baseSize = 10;
font.glyphCount = 189;
// Load texture from image
font.texture = LoadTextureFromImage(imFont);
UnloadImage(imFont); // Uncompressed image data can be unloaded from memory
// Copy char recs data from global fontRecs
// NOTE: Required to avoid issues if trying to free font
font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle));
memcpy(font.recs, bluishFontRecs, font.glyphCount*sizeof(Rectangle));
// Copy font char info data from global fontChars
// NOTE: Required to avoid issues if trying to free font
font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo));
memcpy(font.glyphs, bluishFontGlyphs, font.glyphCount*sizeof(GlyphInfo));
GuiSetFont(font);
// Setup a white rectangle on the font to be used on shapes drawing,
// it makes possible to draw shapes and text (full UI) in a single draw call
Rectangle fontWhiteRec = { 254, 254, 1, 1 };
SetShapesTexture(font.texture, fontWhiteRec);
//-----------------------------------------------------------------
// TODO: Custom user style setup: Set specific properties here (if required)
// i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT
}

View File

@ -0,0 +1,589 @@
//////////////////////////////////////////////////////////////////////////////////
// //
// StyleAsCode exporter v2.0 - Style data exported as a values array //
// //
// USAGE: On init call: GuiLoadStyleCandy(); //
// //
// more info and bugs-report: github.com/raysan5/raygui //
// feedback and support: ray[at]raylibtech.com //
// //
// Copyright (c) 2020-2024 raylib technologies (@raylibtech) //
// //
//////////////////////////////////////////////////////////////////////////////////
#define CANDY_STYLE_PROPS_COUNT 17
// Custom style name: Candy
static const GuiStyleProp candyStyleProps[CANDY_STYLE_PROPS_COUNT] = {
{ 0, 0, 0xe58b68ff }, // DEFAULT_BORDER_COLOR_NORMAL
{ 0, 1, 0xfeda96ff }, // DEFAULT_BASE_COLOR_NORMAL
{ 0, 2, 0xe59b5fff }, // DEFAULT_TEXT_COLOR_NORMAL
{ 0, 3, 0xee813fff }, // DEFAULT_BORDER_COLOR_FOCUSED
{ 0, 4, 0xfcd85bff }, // DEFAULT_BASE_COLOR_FOCUSED
{ 0, 5, 0xfc6955ff }, // DEFAULT_TEXT_COLOR_FOCUSED
{ 0, 6, 0xb34848ff }, // DEFAULT_BORDER_COLOR_PRESSED
{ 0, 7, 0xeb7272ff }, // DEFAULT_BASE_COLOR_PRESSED
{ 0, 8, 0xbd4a4aff }, // DEFAULT_TEXT_COLOR_PRESSED
{ 0, 9, 0x94795dff }, // DEFAULT_BORDER_COLOR_DISABLED
{ 0, 10, 0xc2a37aff }, // DEFAULT_BASE_COLOR_DISABLED
{ 0, 11, 0x9c8369ff }, // DEFAULT_TEXT_COLOR_DISABLED
{ 0, 16, 0x0000000f }, // DEFAULT_TEXT_SIZE
{ 0, 17, 0x00000000 }, // DEFAULT_TEXT_SPACING
{ 0, 18, 0xd77575ff }, // DEFAULT_LINE_COLOR
{ 0, 19, 0xfff5e1ff }, // DEFAULT_BACKGROUND_COLOR
{ 0, 20, 0x00000016 }, // DEFAULT_TEXT_LINE_SPACING
};
// WARNING: This style uses a custom font: "v5easter.ttf" (size: 15, spacing: 0)
#define CANDY_STYLE_FONT_ATLAS_COMP_SIZE 2260
// Font atlas image pixels data: DEFLATE compressed
static unsigned char candyFontData[CANDY_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed,
0xdd, 0x4d, 0x92, 0xd4, 0x38, 0x10, 0x06, 0x50, 0xdd, 0x80, 0xfb, 0xcc, 0x61, 0xe6, 0x4a, 0x73, 0x45, 0x8e, 0xc0, 0x86,
0x25, 0xa1, 0x89, 0x61, 0x88, 0x20, 0x80, 0x2e, 0x4b, 0x4a, 0xa5, 0x6c, 0xd9, 0xf5, 0x78, 0x1b, 0xa2, 0xdd, 0x5d, 0x55,
0xfe, 0xf9, 0x2c, 0xc9, 0x2e, 0xa5, 0x6b, 0x01, 0x00, 0x00, 0x00, 0xde, 0xdc, 0x7f, 0xff, 0xfe, 0xfc, 0x59, 0xf9, 0xe0,
0xa7, 0x3f, 0x7f, 0xb7, 0x7e, 0xb8, 0xf4, 0x68, 0x49, 0xfc, 0x2f, 0x8f, 0x3f, 0x49, 0xdf, 0x2b, 0x94, 0x83, 0x25, 0xed,
0xcf, 0xfc, 0xfb, 0xcf, 0x6a, 0xca, 0xbb, 0xbf, 0x7a, 0x9d, 0xd6, 0x27, 0x8a, 0x2c, 0x3b, 0x7a, 0xd5, 0x7a, 0xb0, 0x4e,
0xa5, 0x63, 0x49, 0x0d, 0xad, 0x5d, 0x9d, 0xde, 0xab, 0x63, 0x7b, 0xa7, 0xbd, 0xfe, 0x65, 0x78, 0x1d, 0xcb, 0x82, 0x65,
0x75, 0x72, 0x1f, 0xaf, 0xcc, 0xff, 0xef, 0xff, 0x32, 0xf3, 0x7f, 0xfc, 0x9a, 0x33, 0xc7, 0xc4, 0xcf, 0xb5, 0xa9, 0x09,
0xf9, 0x1f, 0x3f, 0x8b, 0x1c, 0xaf, 0xc1, 0xeb, 0xa3, 0xb8, 0x0c, 0xff, 0x4d, 0xfb, 0xfc, 0x9a, 0xf9, 0xaa, 0x2b, 0x97,
0xf5, 0xa5, 0x76, 0xfe, 0x38, 0x6f, 0x7d, 0x9a, 0xb9, 0x7d, 0x78, 0xe6, 0xb2, 0xdc, 0xfc, 0xb7, 0x7e, 0x37, 0x7a, 0x66,
0x8f, 0xf7, 0x0e, 0x7a, 0x5b, 0xf3, 0x3a, 0x74, 0xec, 0xb7, 0x5b, 0xb1, 0x9c, 0x2d, 0x3c, 0xba, 0xc6, 0xc7, 0xe7, 0x92,
0xd6, 0xd2, 0xf9, 0x36, 0x77, 0xe4, 0xd8, 0xb8, 0xe2, 0x28, 0x6e, 0xef, 0xcd, 0x8c, 0x76, 0xa9, 0xfe, 0xb2, 0xb5, 0xe5,
0xbf, 0xf7, 0xa8, 0xad, 0x8b, 0x5b, 0xda, 0x32, 0xdc, 0xd2, 0xc6, 0xfa, 0x2c, 0x79, 0x5b, 0x38, 0x2b, 0xff, 0x75, 0x22,
0xfd, 0x25, 0xd0, 0xe3, 0x3c, 0x3e, 0x6b, 0xb7, 0x3e, 0x7f, 0xf4, 0x28, 0xc9, 0x3d, 0x66, 0x67, 0xf3, 0x7f, 0xdc, 0x1f,
0x2e, 0x87, 0xe7, 0x9b, 0xf3, 0x7a, 0x5c, 0x3b, 0xe5, 0x3f, 0xda, 0x43, 0xee, 0x1f, 0xdd, 0xe4, 0xb5, 0xff, 0xeb, 0xf3,
0xdf, 0x4a, 0x64, 0x1d, 0x1c, 0xa9, 0xe6, 0xb6, 0xc6, 0x3d, 0xe3, 0xe9, 0xe8, 0x19, 0x7d, 0x7c, 0x8c, 0x7b, 0x7e, 0xff,
0xbf, 0x3d, 0x6e, 0xac, 0xcb, 0x46, 0x4e, 0xf9, 0x09, 0xdb, 0xb7, 0xff, 0xdf, 0xd7, 0x2f, 0x58, 0xd3, 0xff, 0x6f, 0x8d,
0xff, 0xcb, 0xe9, 0xad, 0x7f, 0x2b, 0x59, 0xf1, 0xbd, 0x5f, 0x43, 0x3d, 0xa0, 0xb9, 0xab, 0x0a, 0xb1, 0xfd, 0x39, 0x97,
0xff, 0x15, 0x7d, 0x80, 0xd1, 0xd1, 0xdf, 0x33, 0xfa, 0xff, 0x91, 0x2d, 0x18, 0xbd, 0xce, 0x9c, 0xb5, 0x66, 0xe3, 0xd7,
0xf9, 0xaf, 0xdb, 0x62, 0x79, 0xe7, 0xf9, 0xd9, 0x2d, 0x98, 0xff, 0xaa, 0xb1, 0x5e, 0xf5, 0xe8, 0x51, 0x5c, 0x2f, 0xbd,
0x37, 0x56, 0x6f, 0x71, 0xe5, 0xf4, 0x8c, 0xf6, 0xbf, 0x75, 0xfd, 0x7f, 0xe6, 0xea, 0xc0, 0xd8, 0x9d, 0x8d, 0xba, 0xe1,
0xb1, 0x22, 0xff, 0x77, 0x69, 0xc5, 0xb2, 0x7a, 0xd5, 0xae, 0xff, 0x45, 0xee, 0x69, 0x67, 0xf4, 0xe7, 0xee, 0x92, 0xff,
0xda, 0x71, 0x36, 0xed, 0x5f, 0x12, 0xbf, 0xe3, 0xbe, 0xea, 0x5b, 0x05, 0xad, 0xbb, 0x8d, 0xe7, 0xdd, 0xc5, 0xde, 0x31,
0xff, 0xf7, 0xb8, 0xff, 0xbf, 0xc7, 0xb6, 0x5c, 0x3b, 0x92, 0xdb, 0x31, 0xff, 0xf0, 0x1e, 0xdf, 0x26, 0x3c, 0xef, 0x5b,
0x8b, 0xf2, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xdd, 0x67, 0xe7, 0xc4, 0x2b,
0x44, 0x8e, 0xcd, 0xb9, 0xa9, 0x4b, 0xea, 0x22, 0xc5, 0xe6, 0x46, 0x9f, 0x5b, 0xc3, 0x39, 0x5a, 0x35, 0x7b, 0x6e, 0x5e,
0xf8, 0xeb, 0x7a, 0x42, 0x33, 0xaf, 0x7b, 0x3c, 0x17, 0x79, 0x64, 0x5e, 0x76, 0xb4, 0xd6, 0xf9, 0x68, 0x4d, 0xa0, 0x48,
0xed, 0xa4, 0xd9, 0xda, 0xe9, 0xe3, 0x6b, 0x1c, 0x99, 0xc1, 0x3a, 0x3b, 0xe7, 0xed, 0xac, 0x8a, 0xcd, 0xd1, 0x9c, 0xf6,
0x55, 0xbd, 0xad, 0xc3, 0x95, 0xea, 0x76, 0xab, 0xd3, 0x90, 0x5d, 0x35, 0x63, 0x65, 0xfe, 0x4b, 0x57, 0x6d, 0xec, 0xbe,
0xf9, 0xce, 0x35, 0x71, 0x46, 0xfb, 0x79, 0x35, 0xf7, 0xca, 0xf4, 0x3e, 0x19, 0x6d, 0xa9, 0x9e, 0x9f, 0xff, 0xe8, 0xba,
0xb7, 0xb6, 0x6a, 0xdd, 0xb6, 0x8a, 0xfd, 0x95, 0xf9, 0x8f, 0xf6, 0xed, 0x8e, 0x5b, 0xbe, 0xf1, 0x8a, 0x07, 0xe7, 0x54,
0xb4, 0xa9, 0x1b, 0xe5, 0x7f, 0xfc, 0xdd, 0x56, 0xce, 0x61, 0x9f, 0x6b, 0x7b, 0x6b, 0x5a, 0xfe, 0xe3, 0x7d, 0x9f, 0xdd,
0xda, 0xf8, 0xdc, 0xaa, 0x39, 0xeb, 0xf2, 0x5f, 0xd2, 0xab, 0x32, 0xed, 0x99, 0xff, 0x9e, 0xf6, 0x21, 0x32, 0x36, 0x18,
0xff, 0xcb, 0xe8, 0x19, 0x77, 0xf4, 0xdd, 0x22, 0xed, 0xff, 0xf1, 0x5a, 0xde, 0xb9, 0xfd, 0xdf, 0x25, 0xff, 0x65, 0xab,
0xfe, 0xff, 0xec, 0xd1, 0x38, 0x96, 0xf3, 0xeb, 0x6a, 0xb3, 0xed, 0xfe, 0x24, 0xa3, 0x91, 0x2d, 0x3e, 0x5b, 0x1d, 0x39,
0x7a, 0xdd, 0x21, 0xf3, 0x89, 0x4d, 0xf7, 0xba, 0xc6, 0x55, 0xde, 0x72, 0xfc, 0x1f, 0xbf, 0xee, 0x2b, 0xff, 0xb3, 0xfd,
0xe9, 0x72, 0x41, 0xfe, 0x57, 0x6d, 0xbb, 0x3b, 0xe7, 0x7f, 0xa6, 0xe7, 0x77, 0x56, 0xfe, 0xcb, 0xcb, 0xa7, 0x50, 0xcd,
0xe6, 0x3f, 0xfe, 0x6c, 0x9c, 0xd1, 0x9c, 0xd7, 0x0b, 0xef, 0x6f, 0xad, 0x38, 0x07, 0xc6, 0xef, 0x37, 0x14, 0xf9, 0xbf,
0x55, 0xfe, 0xaf, 0x6f, 0xff, 0x7b, 0x9f, 0xad, 0xf8, 0xde, 0xf9, 0x2f, 0x53, 0xd7, 0xf8, 0x56, 0xfc, 0xdd, 0x6e, 0xfd,
0xff, 0xec, 0x73, 0xe7, 0xb9, 0xe7, 0xd3, 0x75, 0x7d, 0xdc, 0xd8, 0xf5, 0xa4, 0xd8, 0xd3, 0x0c, 0x62, 0x55, 0xb3, 0xd7,
0x1c, 0x53, 0x25, 0xfc, 0x0c, 0xaf, 0x32, 0x7c, 0x06, 0x90, 0xff, 0x5f, 0x97, 0xac, 0x7b, 0x3a, 0x32, 0xac, 0xce, 0xd3,
0xbd, 0xf2, 0x3f, 0xf7, 0x4d, 0x83, 0xfc, 0xa7, 0x0d, 0xd6, 0x0b, 0xda, 0x7f, 0x58, 0x7b, 0x97, 0x3d, 0xef, 0xf7, 0xc9,
0xe8, 0xd3, 0x03, 0xef, 0xdb, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x38, 0x57,
0xe0, 0xf5, 0x2c, 0xcf, 0xe3, 0x2a, 0x18, 0x25, 0x58, 0x05, 0xbb, 0x74, 0x54, 0x4e, 0xae, 0xc1, 0xf7, 0x1b, 0x99, 0xa5,
0xbc, 0x5b, 0x2d, 0x82, 0xd1, 0xfa, 0x88, 0x23, 0xb5, 0xb1, 0xcb, 0x70, 0x9d, 0xaf, 0x68, 0x15, 0x9b, 0x32, 0x59, 0x73,
0x34, 0x3e, 0xff, 0x2e, 0x3a, 0x83, 0xfa, 0x68, 0x7f, 0x7e, 0xaa, 0xdf, 0xea, 0x97, 0xef, 0xbe, 0xd6, 0x7f, 0x86, 0xdf,
0xb5, 0x76, 0xcd, 0xf7, 0x9b, 0xdd, 0x27, 0x3d, 0x5b, 0x28, 0x92, 0xff, 0x1d, 0xab, 0xee, 0x65, 0x55, 0xf9, 0xb8, 0x53,
0xbd, 0xed, 0x91, 0x3a, 0xbc, 0xed, 0x7a, 0x1e, 0xf3, 0xf9, 0xef, 0xad, 0x29, 0x50, 0x27, 0xab, 0x7e, 0x8e, 0x9e, 0x2b,
0x8e, 0xb7, 0xcb, 0xd1, 0xdc, 0xe4, 0xd7, 0xad, 0xdc, 0xa7, 0xfa, 0xf9, 0xc7, 0xff, 0xfe, 0xfe, 0x30, 0xff, 0x35, 0x3c,
0x1b, 0xa7, 0xfd, 0x89, 0x32, 0xe7, 0x57, 0xbf, 0x47, 0xfe, 0xc7, 0xcf, 0x99, 0x77, 0xa8, 0xb7, 0x5d, 0x12, 0x7e, 0x9a,
0x39, 0xf3, 0x3d, 0x5a, 0x53, 0x24, 0x9a, 0xff, 0x91, 0x34, 0xbd, 0x3e, 0xcb, 0x95, 0x8e, 0x0a, 0x6a, 0xa3, 0xf9, 0x6f,
0xbd, 0x6b, 0x24, 0xff, 0x75, 0xb8, 0xf6, 0x4a, 0xff, 0xb6, 0x1c, 0x6b, 0x5d, 0xf6, 0xcc, 0x7f, 0xa4, 0xc7, 0x59, 0x4f,
0xcc, 0xff, 0x5c, 0x8d, 0xaf, 0x72, 0x7a, 0xfe, 0x73, 0x9f, 0x53, 0xd1, 0x37, 0x92, 0xe9, 0x4d, 0x76, 0xff, 0xef, 0xd6,
0x46, 0x5b, 0xbc, 0x2e, 0xff, 0xf5, 0x83, 0xf7, 0x5f, 0xd5, 0xfe, 0xc7, 0xeb, 0xab, 0xd6, 0x83, 0x4f, 0xf8, 0x84, 0xfc,
0x97, 0x4d, 0xfa, 0xff, 0xf9, 0xcf, 0x52, 0xdb, 0x33, 0xff, 0xe3, 0x3d, 0xae, 0xf1, 0x76, 0x7d, 0xac, 0xaf, 0xd0, 0x1e,
0x01, 0xd4, 0xc0, 0x19, 0xa0, 0x27, 0xff, 0xb1, 0xf6, 0x3f, 0x3a, 0xfe, 0x8f, 0x27, 0xa3, 0x3e, 0xb6, 0xfd, 0xcf, 0x1d,
0xff, 0xaf, 0xaa, 0x45, 0x98, 0xfb, 0xbc, 0xad, 0xac, 0x5a, 0x9b, 0xb1, 0xbe, 0x56, 0xb4, 0xfd, 0x6f, 0xf5, 0x0e, 0x66,
0xf2, 0x5f, 0x26, 0x93, 0xf8, 0xf1, 0xf5, 0xbf, 0x55, 0xed, 0xff, 0xf9, 0xd7, 0xff, 0x6b, 0x20, 0x21, 0xab, 0xaa, 0x6e,
0xd6, 0xe1, 0x6b, 0x31, 0xb3, 0x55, 0xd5, 0xfa, 0xef, 0x34, 0xf4, 0x9c, 0x9b, 0x5f, 0xdf, 0xa5, 0xe8, 0xd9, 0x2a, 0x19,
0xa3, 0xbe, 0x5d, 0xfb, 0xff, 0xd7, 0xb4, 0xff, 0x3d, 0xad, 0x7f, 0xa4, 0x0e, 0xd9, 0xba, 0xeb, 0x7f, 0xd1, 0xf1, 0xd3,
0xdc, 0xfd, 0xbf, 0xeb, 0xeb, 0x08, 0x66, 0x5f, 0xf9, 0x39, 0xf3, 0xb5, 0xae, 0xfa, 0x44, 0x3b, 0xf6, 0xff, 0xe3, 0x63,
0xab, 0x91, 0x51, 0x7d, 0xde, 0xfd, 0xbf, 0x98, 0x56, 0xfe, 0xd7, 0xbc, 0xeb, 0xba, 0x63, 0x4e, 0xfe, 0xf7, 0xdc, 0x07,
0x7b, 0xe5, 0xbf, 0xf7, 0x29, 0xe6, 0x35, 0xfd, 0x4e, 0xfc, 0x6e, 0x7b, 0xb0, 0x9d, 0xff, 0x7b, 0x7d, 0xff, 0xe7, 0xfc,
0x27, 0x8f, 0x5e, 0x9d, 0xff, 0xdd, 0xce, 0x00, 0x59, 0x4f, 0xbc, 0x2e, 0x49, 0x7b, 0x32, 0x72, 0x17, 0x6f, 0xf7, 0xf3,
0xa5, 0xfc, 0xf3, 0xfc, 0xef, 0x6f, 0xd6, 0xc7, 0xf7, 0x9b, 0xae, 0xef, 0x5b, 0xcb, 0x3f, 0xbc, 0xaf, 0xf6, 0xf7, 0x7f,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0x9e, 0x0f, 0x58, 0x27, 0xe7, 0x0a, 0xc6, 0x2a,
0x0d, 0x95, 0xe6, 0x8c, 0xd3, 0x1a, 0xfe, 0x9d, 0x91, 0x75, 0x89, 0xd7, 0xb0, 0x88, 0xd4, 0xe0, 0x2e, 0x8d, 0xba, 0x35,
0x39, 0xdb, 0xe6, 0x9c, 0xf5, 0x6c, 0xd7, 0xda, 0x1b, 0x3b, 0x2e, 0x46, 0xb6, 0x54, 0xbb, 0x86, 0xca, 0x79, 0xdb, 0x21,
0xba, 0xbf, 0x6b, 0x63, 0x76, 0x77, 0x6d, 0x54, 0xae, 0xc9, 0xa9, 0x07, 0x50, 0x1b, 0x75, 0x54, 0xe2, 0xf3, 0xd5, 0x46,
0xcf, 0x00, 0xf5, 0x8f, 0xda, 0x4e, 0x35, 0xf4, 0x3b, 0xa3, 0x7b, 0x3d, 0xb6, 0xac, 0xa7, 0xaa, 0x63, 0x5e, 0xa5, 0xe8,
0xc8, 0xb6, 0x59, 0xbf, 0x9e, 0xe3, 0xc7, 0x45, 0x4d, 0x7a, 0x87, 0xde, 0xba, 0x24, 0xfb, 0xef, 0xef, 0x76, 0x05, 0xd9,
0xba, 0xac, 0xfd, 0xcf, 0xc8, 0xff, 0x58, 0x0d, 0xd6, 0x91, 0x3a, 0x63, 0x99, 0xf9, 0xdf, 0xab, 0x3f, 0x16, 0x7f, 0x1e,
0x44, 0x56, 0xc5, 0xfd, 0x7b, 0xcc, 0xda, 0x8d, 0x3f, 0x99, 0xe0, 0x3e, 0xfb, 0x7b, 0xf5, 0xfa, 0xf5, 0x9c, 0x29, 0xe7,
0xea, 0x42, 0x5c, 0x95, 0xff, 0xbc, 0xfe, 0x7f, 0xb4, 0x3f, 0x1d, 0x79, 0x26, 0xd2, 0x6c, 0x2d, 0xc5, 0x99, 0x27, 0x8b,
0x9c, 0xbd, 0x2e, 0x73, 0xa3, 0x82, 0x9e, 0x31, 0xeb, 0x0e, 0xdb, 0x61, 0x66, 0x1b, 0x95, 0xe0, 0x93, 0x17, 0xb2, 0xf2,
0x9f, 0x51, 0xcf, 0x74, 0x7c, 0xfc, 0xd7, 0xde, 0x56, 0xb9, 0xe7, 0xc5, 0xd8, 0xeb, 0xed, 0xba, 0xac, 0x4e, 0x8c, 0x63,
0xae, 0x7d, 0x92, 0x51, 0x4e, 0xfe, 0xfb, 0x7b, 0xb5, 0xbb, 0xef, 0xd3, 0xd2, 0x31, 0x4e, 0xde, 0x3f, 0xff, 0xa3, 0x9f,
0x25, 0xb3, 0x8f, 0x3b, 0x5b, 0x5d, 0xfa, 0x9a, 0x65, 0xf3, 0x4f, 0x2a, 0xd9, 0xfd, 0xd8, 0xbe, 0x3a, 0xff, 0x6b, 0x9e,
0x06, 0x93, 0xbd, 0x8d, 0x5a, 0xa3, 0x86, 0xac, 0xf6, 0xbf, 0x35, 0x02, 0xa9, 0x5b, 0x8c, 0x0b, 0xfb, 0xb2, 0x3d, 0x7e,
0xfd, 0x7f, 0xee, 0x58, 0x59, 0xb1, 0x6c, 0xfe, 0xb8, 0xdd, 0x37, 0xe3, 0xbb, 0xe4, 0xff, 0x0e, 0xe7, 0xc8, 0x78, 0xab,
0x9d, 0xd1, 0xf7, 0x3d, 0xbf, 0xfd, 0xcf, 0xc8, 0x7f, 0xfe, 0x15, 0xd0, 0x3b, 0x2e, 0x5b, 0x9f, 0xd5, 0xd9, 0x6b, 0x70,
0xf2, 0x2f, 0xff, 0xf1, 0xbe, 0x4a, 0x4d, 0xaf, 0x70, 0xb9, 0xe2, 0xe9, 0x60, 0x57, 0x8d, 0xff, 0x73, 0xaf, 0x43, 0xdd,
0xb5, 0xff, 0x7f, 0xf7, 0x7d, 0x3a, 0xd3, 0x6b, 0xa7, 0xbc, 0x55, 0xdf, 0x60, 0xf6, 0x6c, 0xff, 0xb4, 0xfc, 0x3f, 0x7b,
0x9f, 0x4a, 0xbd, 0xfc, 0xe7, 0x9e, 0x01, 0xd6, 0x65, 0x7c, 0x24, 0xbb, 0xef, 0x97, 0xff, 0xbb, 0x3c, 0x35, 0x48, 0xfe,
0x9f, 0x31, 0xe6, 0x3b, 0xf7, 0x7b, 0x0e, 0x39, 0xdf, 0xff, 0x2b, 0x27, 0x3e, 0x01, 0xef, 0xec, 0xfb, 0xff, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x33, 0x7e, 0x33, 0x2b, 0x3d, 0x1f, 0xfd, 0xe5, 0xa7, 0xfa,
0xad, 0x7e, 0xf9, 0xee, 0x6b, 0xfd, 0xe7, 0xb0, 0xce, 0xc9, 0x19, 0x6b, 0xa1, 0x2e, 0xf7, 0xda, 0xba, 0xdc, 0xc7, 0x7b,
0xfb, 0x2e, 0x55, 0xb9, 0x7b, 0x8f, 0xd9, 0x3a, 0xb8, 0x85, 0x57, 0xa6, 0x2f, 0xab, 0x9e, 0x43, 0x74, 0xee, 0xe1, 0xab,
0xd7, 0xfc, 0x54, 0x3f, 0xff, 0xf8, 0xdf, 0xdf, 0x1f, 0x6e, 0xcb, 0xbe, 0x7a, 0x60, 0x79, 0x6b, 0xa1, 0x2e, 0xf7, 0xca,
0xba, 0xdc, 0x7d, 0x7b, 0x7b, 0xf7, 0xaa, 0xdc, 0xfd, 0x6b, 0x51, 0x37, 0x49, 0xdf, 0xb5, 0xb3, 0xe4, 0xe2, 0xdb, 0x72,
0xaf, 0x1a, 0xce, 0x35, 0x5c, 0x5b, 0x73, 0xae, 0x2e, 0xef, 0xf9, 0xeb, 0xb2, 0xaa, 0x87, 0xd9, 0x4a, 0xce, 0x6e, 0x47,
0x74, 0x6c, 0x2d, 0xae, 0xd9, 0x9b, 0xfd, 0xef, 0xb8, 0xd3, 0xec, 0xe7, 0x99, 0xfc, 0xef, 0x54, 0xa7, 0xb9, 0xbd, 0xbd,
0xe3, 0xcf, 0x51, 0x7a, 0x4e, 0x5d, 0xee, 0xd6, 0xde, 0x2e, 0x27, 0xcf, 0xbc, 0x8d, 0x6d, 0xa1, 0xfe, 0x3e, 0xeb, 0x1e,
0x75, 0x96, 0xee, 0x9e, 0xff, 0x9d, 0xb6, 0x63, 0x0d, 0xd6, 0xe5, 0xdf, 0xab, 0xf6, 0xf6, 0xae, 0xf9, 0xbf, 0x47, 0xa5,
0x95, 0x9e, 0xfc, 0xef, 0x76, 0xdc, 0x3e, 0xb1, 0xfd, 0x2f, 0x1d, 0xd5, 0xee, 0x33, 0x97, 0xe5, 0xd4, 0x8c, 0x7f, 0xe7,
0xba, 0xbc, 0xef, 0x93, 0xff, 0x22, 0xff, 0xa7, 0xf4, 0xff, 0xcf, 0x5b, 0x36, 0xdf, 0x37, 0x58, 0x71, 0xfd, 0xff, 0x5e,
0x75, 0x79, 0xdf, 0xa9, 0xfd, 0xdf, 0xa7, 0xce, 0xe2, 0x33, 0xf3, 0xbf, 0x63, 0x7b, 0xaa, 0x2e, 0xa7, 0xfc, 0xd7, 0xcd,
0xd2, 0xb7, 0xcb, 0x11, 0x15, 0x3f, 0x22, 0x76, 0xaa, 0x57, 0x9d, 0x7d, 0x6d, 0xb0, 0xff, 0x0e, 0xfb, 0x13, 0xea, 0x72,
0xde, 0x27, 0xff, 0x33, 0xd7, 0xff, 0xcf, 0x4f, 0x5f, 0x19, 0x7a, 0x0e, 0xf8, 0x15, 0x67, 0xa0, 0xd8, 0xfd, 0xff, 0xb3,
0xaf, 0x8b, 0x67, 0x3d, 0x97, 0x28, 0xf7, 0x3b, 0x59, 0xcf, 0xa9, 0xcb, 0x79, 0x9f, 0xbb, 0x3d, 0x33, 0xf7, 0xff, 0xfb,
0xee, 0x2c, 0x96, 0xe1, 0x1c, 0x67, 0x3c, 0xeb, 0xbf, 0x5c, 0x54, 0xc5, 0x38, 0xfa, 0xfd, 0x9f, 0x3b, 0x7d, 0xa3, 0x52,
0x7d, 0xd7, 0xd5, 0xc9, 0xb1, 0x16, 0xeb, 0x8f, 0xd6, 0x35, 0x55, 0x8c, 0x5f, 0xe7, 0xbf, 0xf5, 0x5d, 0x4a, 0x9e, 0x94,
0xff, 0x27, 0xec, 0x6d, 0xc7, 0x2c, 0xac, 0xf4, 0x97, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xd0, 0x3d, 0x43, 0xf3, 0xf8, 0xbb, 0xcd, 0x3b, 0xd7, 0x20, 0x05, 0x66, 0xe7, 0xe3, 0x3c, 0x63, 0x3e, 0x1e, 0x90, 0x3d,
0xb7, 0x71, 0xaf, 0x7a, 0xdc, 0x40, 0xee, 0xfc, 0x7f, 0xf9, 0x07, 0xf9, 0x97, 0x7f, 0x90, 0x7f, 0xf9, 0x07, 0xf9, 0xff,
0xf9, 0x97, 0x55, 0xfe, 0xe1, 0xe6, 0xf9, 0xaf, 0x4b, 0x6a, 0x9b, 0x03, 0x77, 0x39, 0x03, 0x44, 0xf2, 0x5f, 0xf4, 0xff,
0xe1, 0xb1, 0xdf, 0x01, 0x30, 0xfe, 0x07, 0xe3, 0x7f, 0xf9, 0x87, 0x77, 0xcc, 0x7f, 0xeb, 0xfb, 0xbf, 0x46, 0xff, 0xf0,
0x8c, 0xf1, 0xbf, 0x2d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0xf2, 0xff, 0x3f, 0xdb, 0x01, 0xe4, 0x1f, 0x78, 0xbb, 0xfc, 0xff, 0x0b };
// Font glyphs rectangles data (on atlas)
static const Rectangle candyFontRecs[189] = {
{ 4, 4, 3 , 15 },
{ 15, 4, 2 , 9 },
{ 25, 4, 3 , 2 },
{ 36, 4, 8 , 9 },
{ 52, 4, 6 , 11 },
{ 66, 4, 7 , 9 },
{ 81, 4, 7 , 9 },
{ 96, 4, 1 , 2 },
{ 105, 4, 3 , 11 },
{ 116, 4, 3 , 11 },
{ 127, 4, 7 , 7 },
{ 142, 4, 6 , 5 },
{ 156, 4, 2 , 3 },
{ 166, 4, 5 , 1 },
{ 179, 4, 2 , 2 },
{ 189, 4, 5 , 10 },
{ 202, 4, 6 , 9 },
{ 216, 4, 4 , 9 },
{ 228, 4, 6 , 9 },
{ 242, 4, 6 , 9 },
{ 256, 4, 7 , 9 },
{ 271, 4, 6 , 9 },
{ 285, 4, 6 , 9 },
{ 299, 4, 6 , 9 },
{ 313, 4, 6 , 9 },
{ 327, 4, 6 , 9 },
{ 341, 4, 2 , 6 },
{ 351, 4, 2 , 7 },
{ 361, 4, 4 , 6 },
{ 373, 4, 5 , 3 },
{ 386, 4, 4 , 6 },
{ 398, 4, 6 , 9 },
{ 412, 4, 8 , 7 },
{ 428, 4, 6 , 9 },
{ 442, 4, 6 , 9 },
{ 456, 4, 6 , 9 },
{ 470, 4, 6 , 9 },
{ 484, 4, 6 , 9 },
{ 4, 27, 6 , 9 },
{ 18, 27, 6 , 9 },
{ 32, 27, 6 , 9 },
{ 46, 27, 2 , 9 },
{ 56, 27, 6 , 9 },
{ 70, 27, 6 , 9 },
{ 84, 27, 6 , 9 },
{ 98, 27, 8 , 9 },
{ 114, 27, 6 , 9 },
{ 128, 27, 6 , 9 },
{ 142, 27, 6 , 9 },
{ 156, 27, 6 , 9 },
{ 170, 27, 6 , 9 },
{ 184, 27, 6 , 9 },
{ 198, 27, 6 , 9 },
{ 212, 27, 6 , 9 },
{ 226, 27, 6 , 9 },
{ 240, 27, 8 , 9 },
{ 256, 27, 6 , 9 },
{ 270, 27, 6 , 9 },
{ 284, 27, 6 , 9 },
{ 298, 27, 3 , 11 },
{ 309, 27, 5 , 10 },
{ 322, 27, 3 , 11 },
{ 333, 27, 6 , 4 },
{ 347, 27, 6 , 1 },
{ 361, 27, 3 , 2 },
{ 372, 27, 6 , 7 },
{ 386, 27, 6 , 10 },
{ 400, 27, 6 , 7 },
{ 414, 27, 6 , 10 },
{ 428, 27, 6 , 7 },
{ 442, 27, 5 , 10 },
{ 455, 27, 7 , 10 },
{ 470, 27, 6 , 10 },
{ 484, 27, 2 , 10 },
{ 494, 27, 2 , 12 },
{ 4, 50, 6 , 10 },
{ 18, 50, 3 , 10 },
{ 29, 50, 8 , 7 },
{ 45, 50, 6 , 7 },
{ 59, 50, 6 , 7 },
{ 73, 50, 6 , 10 },
{ 87, 50, 6 , 10 },
{ 101, 50, 6 , 7 },
{ 115, 50, 6 , 7 },
{ 129, 50, 3 , 10 },
{ 140, 50, 6 , 7 },
{ 154, 50, 6 , 7 },
{ 168, 50, 8 , 7 },
{ 184, 50, 6 , 7 },
{ 198, 50, 6 , 10 },
{ 212, 50, 6 , 7 },
{ 226, 50, 4 , 11 },
{ 238, 50, 1 , 11 },
{ 247, 50, 4 , 11 },
{ 259, 50, 6 , 2 },
{ 273, 50, 2 , 10 },
{ 283, 50, 6 , 11 },
{ 297, 50, 8 , 9 },
{ 313, 50, 7 , 9 },
{ 328, 50, 6 , 9 },
{ 342, 50, 0 , 0 },
{ 350, 50, 6 , 11 },
{ 364, 50, 0 , 0 },
{ 372, 50, 8 , 8 },
{ 388, 50, 5 , 7 },
{ 401, 50, 7 , 6 },
{ 416, 50, 7 , 12 },
{ 431, 50, 8 , 8 },
{ 447, 50, 6 , 1 },
{ 461, 50, 4 , 5 },
{ 473, 50, 6 , 7 },
{ 487, 50, 3 , 5 },
{ 498, 50, 3 , 5 },
{ 4, 73, 0 , 0 },
{ 12, 73, 6 , 9 },
{ 26, 73, 6 , 9 },
{ 40, 73, 4 , 4 },
{ 52, 73, 0 , 0 },
{ 60, 73, 2 , 5 },
{ 70, 73, 4 , 7 },
{ 82, 73, 7 , 6 },
{ 97, 73, 10 , 9 },
{ 115, 73, 10 , 7 },
{ 133, 73, 0 , 0 },
{ 141, 73, 6 , 9 },
{ 155, 73, 6 , 12 },
{ 169, 73, 6 , 12 },
{ 183, 73, 6 , 12 },
{ 197, 73, 6 , 12 },
{ 211, 73, 6 , 11 },
{ 225, 73, 6 , 12 },
{ 239, 73, 10 , 9 },
{ 257, 73, 6 , 12 },
{ 271, 73, 6 , 12 },
{ 285, 73, 6 , 12 },
{ 299, 73, 6 , 12 },
{ 313, 73, 6 , 11 },
{ 327, 73, 3 , 12 },
{ 338, 73, 3 , 12 },
{ 349, 73, 4 , 12 },
{ 361, 73, 4 , 11 },
{ 373, 73, 8 , 9 },
{ 389, 73, 6 , 12 },
{ 403, 73, 6 , 12 },
{ 417, 73, 6 , 12 },
{ 431, 73, 6 , 12 },
{ 445, 73, 6 , 12 },
{ 459, 73, 6 , 11 },
{ 473, 73, 5 , 5 },
{ 486, 73, 9 , 10 },
{ 4, 96, 6 , 12 },
{ 18, 96, 6 , 12 },
{ 32, 96, 6 , 12 },
{ 46, 96, 6 , 11 },
{ 60, 96, 6 , 12 },
{ 74, 96, 7 , 12 },
{ 89, 96, 6 , 10 },
{ 103, 96, 6 , 10 },
{ 117, 96, 6 , 10 },
{ 131, 96, 6 , 10 },
{ 145, 96, 6 , 10 },
{ 159, 96, 6 , 9 },
{ 173, 96, 6 , 11 },
{ 187, 96, 10 , 7 },
{ 205, 96, 6 , 10 },
{ 219, 96, 6 , 10 },
{ 233, 96, 6 , 10 },
{ 247, 96, 6 , 10 },
{ 261, 96, 6 , 9 },
{ 275, 96, 3 , 10 },
{ 286, 96, 3 , 10 },
{ 297, 96, 4 , 10 },
{ 309, 96, 4 , 9 },
{ 321, 96, 7 , 12 },
{ 336, 96, 6 , 13 },
{ 350, 96, 6 , 10 },
{ 364, 96, 6 , 10 },
{ 378, 96, 6 , 10 },
{ 392, 96, 6 , 10 },
{ 406, 96, 6 , 9 },
{ 420, 96, 7 , 12 },
{ 435, 96, 8 , 8 },
{ 451, 96, 6 , 10 },
{ 465, 96, 6 , 10 },
{ 479, 96, 6 , 10 },
{ 493, 96, 6 , 9 },
{ 4, 119, 6 , 13 },
{ 18, 119, 7 , 12 },
{ 33, 119, 6 , 12 },
};
// Font glyphs info data
// NOTE: No glyphs.image data provided
static const GlyphInfo candyFontGlyphs[189] = {
{ 32, 0, 12, 3, { 0 }},
{ 33, 0, 3, 3, { 0 }},
{ 34, 0, 2, 4, { 0 }},
{ 35, 0, 3, 9, { 0 }},
{ 36, 0, 2, 7, { 0 }},
{ 37, 0, 3, 8, { 0 }},
{ 38, 0, 3, 8, { 0 }},
{ 39, 0, 2, 2, { 0 }},
{ 40, 1, 2, 5, { 0 }},
{ 41, 1, 2, 5, { 0 }},
{ 42, 0, 4, 8, { 0 }},
{ 43, 0, 6, 7, { 0 }},
{ 44, 0, 10, 3, { 0 }},
{ 45, 0, 7, 6, { 0 }},
{ 46, 0, 10, 3, { 0 }},
{ 47, 1, 3, 7, { 0 }},
{ 48, 0, 3, 7, { 0 }},
{ 49, 0, 3, 5, { 0 }},
{ 50, 0, 3, 7, { 0 }},
{ 51, 0, 3, 7, { 0 }},
{ 52, 0, 3, 8, { 0 }},
{ 53, 0, 3, 7, { 0 }},
{ 54, 0, 3, 7, { 0 }},
{ 55, 0, 3, 7, { 0 }},
{ 56, 0, 3, 7, { 0 }},
{ 57, 0, 3, 7, { 0 }},
{ 58, 0, 6, 3, { 0 }},
{ 59, 0, 6, 3, { 0 }},
{ 60, 1, 5, 6, { 0 }},
{ 61, 1, 7, 7, { 0 }},
{ 62, 1, 5, 6, { 0 }},
{ 63, 0, 3, 7, { 0 }},
{ 64, 0, 4, 9, { 0 }},
{ 65, 0, 3, 7, { 0 }},
{ 66, 0, 3, 7, { 0 }},
{ 67, 0, 3, 7, { 0 }},
{ 68, 0, 3, 7, { 0 }},
{ 69, 0, 3, 7, { 0 }},
{ 70, 0, 3, 7, { 0 }},
{ 71, 0, 3, 7, { 0 }},
{ 72, 0, 3, 7, { 0 }},
{ 73, 0, 3, 3, { 0 }},
{ 74, 0, 3, 7, { 0 }},
{ 75, 0, 3, 7, { 0 }},
{ 76, 0, 3, 7, { 0 }},
{ 77, 0, 3, 9, { 0 }},
{ 78, 0, 3, 7, { 0 }},
{ 79, 0, 3, 7, { 0 }},
{ 80, 0, 3, 7, { 0 }},
{ 81, 0, 3, 7, { 0 }},
{ 82, 0, 3, 7, { 0 }},
{ 83, 0, 3, 7, { 0 }},
{ 84, 0, 3, 7, { 0 }},
{ 85, 0, 3, 7, { 0 }},
{ 86, 0, 3, 7, { 0 }},
{ 87, 0, 3, 9, { 0 }},
{ 88, 0, 3, 7, { 0 }},
{ 89, 0, 3, 7, { 0 }},
{ 90, 0, 3, 7, { 0 }},
{ 91, 1, 2, 5, { 0 }},
{ 92, 1, 3, 7, { 0 }},
{ 93, 1, 2, 5, { 0 }},
{ 94, 0, 3, 7, { 0 }},
{ 95, 0, 11, 7, { 0 }},
{ 96, 0, 0, 4, { 0 }},
{ 97, 0, 5, 7, { 0 }},
{ 98, 0, 2, 7, { 0 }},
{ 99, 0, 5, 7, { 0 }},
{ 100, 0, 2, 7, { 0 }},
{ 101, 0, 5, 7, { 0 }},
{ 102, 0, 2, 6, { 0 }},
{ 103, 0, 5, 7, { 0 }},
{ 104, 0, 2, 7, { 0 }},
{ 105, 0, 2, 3, { 0 }},
{ 106, 0, 2, 3, { 0 }},
{ 107, 0, 2, 7, { 0 }},
{ 108, 0, 2, 4, { 0 }},
{ 109, 0, 5, 9, { 0 }},
{ 110, 0, 5, 7, { 0 }},
{ 111, 0, 5, 7, { 0 }},
{ 112, 0, 5, 7, { 0 }},
{ 113, 0, 5, 7, { 0 }},
{ 114, 0, 5, 7, { 0 }},
{ 115, 0, 5, 7, { 0 }},
{ 116, 0, 2, 4, { 0 }},
{ 117, 0, 5, 7, { 0 }},
{ 118, 0, 5, 7, { 0 }},
{ 119, 0, 5, 9, { 0 }},
{ 120, 0, 5, 7, { 0 }},
{ 121, 0, 5, 7, { 0 }},
{ 122, 0, 5, 7, { 0 }},
{ 123, 1, 2, 6, { 0 }},
{ 124, 1, 2, 3, { 0 }},
{ 125, 1, 2, 6, { 0 }},
{ 126, 0, 0, 7, { 0 }},
{ 161, 0, 3, 3, { 0 }},
{ 162, 0, 2, 7, { 0 }},
{ 163, 0, 3, 9, { 0 }},
{ 8364, 0, 3, 8, { 0 }},
{ 165, 0, 3, 7, { 0 }},
{ 352, 0, 12, 1, { 0 }},
{ 167, 0, 2, 7, { 0 }},
{ 353, 0, 12, 1, { 0 }},
{ 169, 0, 0, 9, { 0 }},
{ 170, 0, 0, 6, { 0 }},
{ 171, 1, 5, 9, { 0 }},
{ 172, 0, 0, 7, { 0 }},
{ 174, 0, 0, 9, { 0 }},
{ 175, 0, 0, 7, { 0 }},
{ 176, 0, 0, 5, { 0 }},
{ 177, 0, 4, 7, { 0 }},
{ 178, 0, 0, 4, { 0 }},
{ 179, 0, 0, 4, { 0 }},
{ 381, 0, 12, 1, { 0 }},
{ 181, 0, 5, 7, { 0 }},
{ 182, 0, 3, 7, { 0 }},
{ 183, 0, 6, 5, { 0 }},
{ 382, 0, 12, 1, { 0 }},
{ 185, 0, 0, 3, { 0 }},
{ 186, 0, 0, 5, { 0 }},
{ 187, 1, 5, 9, { 0 }},
{ 338, 0, 3, 11, { 0 }},
{ 339, 0, 5, 11, { 0 }},
{ 376, 0, 12, 1, { 0 }},
{ 191, 0, 4, 7, { 0 }},
{ 192, 0, 0, 7, { 0 }},
{ 193, 0, 0, 7, { 0 }},
{ 194, 0, 0, 7, { 0 }},
{ 195, 0, 0, 7, { 0 }},
{ 196, 0, 1, 7, { 0 }},
{ 197, 0, 0, 7, { 0 }},
{ 198, 0, 3, 11, { 0 }},
{ 199, 0, 3, 7, { 0 }},
{ 200, 0, 0, 7, { 0 }},
{ 201, 0, 0, 7, { 0 }},
{ 202, 0, 0, 7, { 0 }},
{ 203, 0, 1, 7, { 0 }},
{ 204, -1, 0, 3, { 0 }},
{ 205, 0, 0, 3, { 0 }},
{ 206, -1, 0, 3, { 0 }},
{ 207, -1, 1, 3, { 0 }},
{ 208, 0, 3, 9, { 0 }},
{ 209, 0, 0, 7, { 0 }},
{ 210, 0, 0, 7, { 0 }},
{ 211, 0, 0, 7, { 0 }},
{ 212, 0, 0, 7, { 0 }},
{ 213, 0, 0, 7, { 0 }},
{ 214, 0, 1, 7, { 0 }},
{ 215, 0, 7, 6, { 0 }},
{ 216, 0, 3, 10, { 0 }},
{ 217, 0, 0, 7, { 0 }},
{ 218, 0, 0, 7, { 0 }},
{ 219, 0, 0, 7, { 0 }},
{ 220, 0, 1, 7, { 0 }},
{ 221, 0, 0, 7, { 0 }},
{ 222, 0, 0, 7, { 0 }},
{ 223, 0, 3, 7, { 0 }},
{ 224, 0, 2, 7, { 0 }},
{ 225, 0, 2, 7, { 0 }},
{ 226, 0, 2, 7, { 0 }},
{ 227, 0, 2, 7, { 0 }},
{ 228, 0, 3, 7, { 0 }},
{ 229, 0, 1, 7, { 0 }},
{ 230, 0, 5, 11, { 0 }},
{ 231, 0, 5, 7, { 0 }},
{ 232, 0, 2, 7, { 0 }},
{ 233, 0, 2, 7, { 0 }},
{ 234, 0, 2, 7, { 0 }},
{ 235, 0, 3, 7, { 0 }},
{ 236, 0, 2, 4, { 0 }},
{ 237, 0, 2, 4, { 0 }},
{ 238, 0, 2, 4, { 0 }},
{ 239, 0, 3, 4, { 0 }},
{ 240, 0, 0, 7, { 0 }},
{ 241, 0, 2, 7, { 0 }},
{ 242, 0, 2, 7, { 0 }},
{ 243, 0, 2, 7, { 0 }},
{ 244, 0, 2, 7, { 0 }},
{ 245, 0, 2, 7, { 0 }},
{ 246, 0, 3, 7, { 0 }},
{ 247, 0, 0, 7, { 0 }},
{ 248, 0, 5, 9, { 0 }},
{ 249, 0, 2, 7, { 0 }},
{ 250, 0, 2, 7, { 0 }},
{ 251, 0, 2, 7, { 0 }},
{ 252, 0, 3, 7, { 0 }},
{ 253, 0, 2, 7, { 0 }},
{ 254, 0, 0, 7, { 0 }},
{ 255, 0, 3, 7, { 0 }},
};
// Style loading function: Candy
static void GuiLoadStyleCandy(void)
{
// Load style properties provided
// NOTE: Default properties are propagated
for (int i = 0; i < CANDY_STYLE_PROPS_COUNT; i++)
{
GuiSetStyle(candyStyleProps[i].controlId, candyStyleProps[i].propertyId, candyStyleProps[i].propertyValue);
}
// Custom font loading
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
int candyFontDataSize = 0;
unsigned char *data = DecompressData(candyFontData, CANDY_STYLE_FONT_ATLAS_COMP_SIZE, &candyFontDataSize);
Image imFont = { data, 512, 256, 1, 2 };
Font font = { 0 };
font.baseSize = 15;
font.glyphCount = 189;
// Load texture from image
font.texture = LoadTextureFromImage(imFont);
UnloadImage(imFont); // Uncompressed image data can be unloaded from memory
// Copy char recs data from global fontRecs
// NOTE: Required to avoid issues if trying to free font
font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle));
memcpy(font.recs, candyFontRecs, font.glyphCount*sizeof(Rectangle));
// Copy font char info data from global fontChars
// NOTE: Required to avoid issues if trying to free font
font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo));
memcpy(font.glyphs, candyFontGlyphs, font.glyphCount*sizeof(GlyphInfo));
GuiSetFont(font);
// Setup a white rectangle on the font to be used on shapes drawing,
// it makes possible to draw shapes and text (full UI) in a single draw call
Rectangle fontWhiteRec = { 510, 254, 1, 1 };
SetShapesTexture(font.texture, fontWhiteRec);
//-----------------------------------------------------------------
// TODO: Custom user style setup: Set specific properties here (if required)
// i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT
}

View File

@ -0,0 +1,617 @@
//////////////////////////////////////////////////////////////////////////////////
// //
// StyleAsCode exporter v2.0 - Style data exported as a values array //
// //
// USAGE: On init call: GuiLoadStyleCherry(); //
// //
// more info and bugs-report: github.com/raysan5/raygui //
// feedback and support: ray[at]raylibtech.com //
// //
// Copyright (c) 2020-2024 raylib technologies (@raylibtech) //
// //
//////////////////////////////////////////////////////////////////////////////////
#define CHERRY_STYLE_PROPS_COUNT 17
// Custom style name: Cherry
static const GuiStyleProp cherryStyleProps[CHERRY_STYLE_PROPS_COUNT] = {
{ 0, 0, 0xda5757ff }, // DEFAULT_BORDER_COLOR_NORMAL
{ 0, 1, 0x753233ff }, // DEFAULT_BASE_COLOR_NORMAL
{ 0, 2, 0xe17373ff }, // DEFAULT_TEXT_COLOR_NORMAL
{ 0, 3, 0xfaaa97ff }, // DEFAULT_BORDER_COLOR_FOCUSED
{ 0, 4, 0xe06262ff }, // DEFAULT_BASE_COLOR_FOCUSED
{ 0, 5, 0xfdb4aaff }, // DEFAULT_TEXT_COLOR_FOCUSED
{ 0, 6, 0xe03c46ff }, // DEFAULT_BORDER_COLOR_PRESSED
{ 0, 7, 0x5b1e20ff }, // DEFAULT_BASE_COLOR_PRESSED
{ 0, 8, 0xc2474fff }, // DEFAULT_TEXT_COLOR_PRESSED
{ 0, 9, 0xa19292ff }, // DEFAULT_BORDER_COLOR_DISABLED
{ 0, 10, 0x706060ff }, // DEFAULT_BASE_COLOR_DISABLED
{ 0, 11, 0x9e8585ff }, // DEFAULT_TEXT_COLOR_DISABLED
{ 0, 16, 0x0000000f }, // DEFAULT_TEXT_SIZE
{ 0, 17, 0x00000000 }, // DEFAULT_TEXT_SPACING
{ 0, 18, 0xfb8170ff }, // DEFAULT_LINE_COLOR
{ 0, 19, 0x3a1720ff }, // DEFAULT_BACKGROUND_COLOR
{ 0, 20, 0x00000016 }, // DEFAULT_TEXT_LINE_SPACING
};
// WARNING: This style uses a custom font: "Westington.ttf" (size: 15, spacing: 0)
#define CHERRY_STYLE_FONT_ATLAS_COMP_SIZE 2821
// Font atlas image pixels data: DEFLATE compressed
static unsigned char cherryFontData[CHERRY_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed,
0xdd, 0x59, 0x92, 0xdc, 0xba, 0x11, 0x05, 0x50, 0xee, 0x7f, 0xd3, 0xd7, 0xe1, 0x70, 0x84, 0xed, 0x27, 0xa9, 0x09, 0x20,
0x91, 0x20, 0xab, 0x5b, 0x47, 0xe7, 0xaf, 0xa1, 0x1a, 0x38, 0x24, 0x26, 0x16, 0x12, 0xb9, 0x00, 0x00, 0x00, 0x00, 0xf2,
0xef, 0x7f, 0x5f, 0xfd, 0xf5, 0xcf, 0x65, 0xff, 0xff, 0xaa, 0xdc, 0xbe, 0x73, 0xfd, 0xb3, 0xb3, 0xf8, 0xae, 0x59, 0xf8,
0x7f, 0xf9, 0xf2, 0xbb, 0x64, 0xfa, 0x33, 0xd7, 0x8f, 0x7b, 0xfd, 0x58, 0xef, 0xce, 0xfd, 0xfa, 0x31, 0x5c, 0x37, 0x9f,
0xbf, 0xf6, 0xdd, 0x2a, 0xaf, 0xb9, 0x2f, 0x59, 0xbf, 0x7b, 0x3a, 0xae, 0xc8, 0xdc, 0x35, 0xb8, 0x3f, 0xa7, 0xd7, 0xf0,
0x95, 0xeb, 0xef, 0x9c, 0xe1, 0x59, 0x1c, 0x7f, 0xab, 0xb5, 0x1a, 0xe0, 0xeb, 0xbf, 0x8e, 0xee, 0xa6, 0x14, 0xee, 0xab,
0xff, 0xbd, 0x22, 0x8b, 0x65, 0xa3, 0xd7, 0xec, 0xdd, 0x57, 0x59, 0xa8, 0xa5, 0x2a, 0x57, 0x21, 0x8b, 0xe7, 0x61, 0xf5,
0xdc, 0xa5, 0x54, 0xff, 0x8c, 0xbe, 0x6d, 0x5a, 0x8e, 0xe7, 0xae, 0x24, 0xd3, 0x7f, 0x1d, 0xbf, 0xa2, 0xf2, 0x6e, 0x33,
0xf7, 0xd5, 0xdd, 0xab, 0xfb, 0xdf, 0x39, 0x53, 0xf7, 0xef, 0xd9, 0xf8, 0x1f, 0xd5, 0x97, 0xf7, 0xe7, 0xfb, 0xee, 0x28,
0xf2, 0xdf, 0xde, 0x45, 0xed, 0xbe, 0xdb, 0x89, 0xf4, 0xdc, 0xdc, 0x9d, 0x29, 0x9e, 0x8d, 0xfa, 0xff, 0xbb, 0x8f, 0x97,
0x14, 0x7b, 0x5e, 0x59, 0xb8, 0x4f, 0xb3, 0x54, 0xeb, 0xcd, 0xf4, 0x26, 0x2a, 0x35, 0xdd, 0x6e, 0x2f, 0x6a, 0xbf, 0xa7,
0xfb, 0xf5, 0x35, 0xb8, 0x3b, 0xdf, 0x99, 0x3c, 0x82, 0x94, 0xe2, 0xff, 0x5a, 0xac, 0xb1, 0x9f, 0x8a, 0xff, 0x71, 0xac,
0x8c, 0xe2, 0x29, 0xc3, 0x2b, 0x9c, 0x96, 0xef, 0x9f, 0x52, 0x8d, 0x76, 0x6a, 0x9c, 0x55, 0xbf, 0x7f, 0x66, 0xcf, 0x5e,
0x06, 0xa3, 0xb9, 0xee, 0x5e, 0xe8, 0x7c, 0xaf, 0x2f, 0xc5, 0xda, 0x75, 0xa5, 0x8f, 0x9f, 0xad, 0xde, 0xfa, 0x28, 0x7e,
0xb3, 0x5c, 0x17, 0x67, 0xa2, 0x3f, 0x74, 0xa2, 0x4f, 0xf2, 0x09, 0xf1, 0x9f, 0xc2, 0x08, 0xae, 0x5a, 0xc7, 0xa7, 0xa9,
0x6d, 0xce, 0xa1, 0xfa, 0xb5, 0x3b, 0xfe, 0xd7, 0xcb, 0xc6, 0x91, 0x91, 0xd6, 0x71, 0x58, 0x4a, 0x23, 0xe9, 0x7a, 0x1b,
0xbe, 0xfb, 0xda, 0xbb, 0xb9, 0xa2, 0x4c, 0xd4, 0x9e, 0x59, 0x9e, 0x01, 0xd8, 0x89, 0xff, 0xfe, 0xf1, 0x7f, 0x4a, 0xaf,
0x98, 0xab, 0x8d, 0x6b, 0x35, 0x71, 0x16, 0xbe, 0x59, 0x9a, 0x6a, 0xb6, 0x1c, 0x9d, 0x65, 0xbd, 0x1a, 0xe3, 0xbf, 0x36,
0x72, 0x4a, 0xdb, 0xdc, 0x44, 0x7d, 0xec, 0x96, 0xa6, 0xfb, 0x35, 0xad, 0xaf, 0xb8, 0x8f, 0xff, 0xbb, 0xf6, 0x7f, 0xbf,
0xff, 0xff, 0x7e, 0xfb, 0xdf, 0x3d, 0xfa, 0x9f, 0x9f, 0xc5, 0x18, 0x9f, 0xd3, 0xe7, 0xe2, 0xff, 0x64, 0xdf, 0xbf, 0x36,
0x96, 0x4f, 0x71, 0x9e, 0x32, 0x4d, 0x23, 0xf6, 0x94, 0x47, 0xe7, 0x69, 0x99, 0xd5, 0xe9, 0xab, 0xab, 0x53, 0xfe, 0x8c,
0xfa, 0x3c, 0xf6, 0x4f, 0x1d, 0xff, 0x67, 0xe9, 0xd9, 0xc0, 0xb8, 0x6f, 0x75, 0x77, 0x66, 0xd2, 0x3e, 0xff, 0xf7, 0xde,
0x53, 0xd6, 0xb5, 0x5a, 0x27, 0x85, 0x31, 0x76, 0x65, 0xd6, 0xbc, 0xfa, 0x34, 0xb1, 0xf3, 0xd9, 0xe4, 0xfb, 0xd7, 0xa9,
0x3a, 0xd7, 0x98, 0x72, 0xed, 0x9e, 0x89, 0x67, 0x3f, 0xeb, 0xb3, 0x0a, 0x4f, 0xf5, 0xa6, 0x66, 0xe6, 0x62, 0xae, 0xe2,
0xbc, 0x69, 0x0a, 0x3d, 0x9c, 0x4f, 0x8f, 0xff, 0x4f, 0xaa, 0x89, 0x3e, 0xf1, 0xf7, 0x27, 0x69, 0x1e, 0xe9, 0x77, 0x45,
0x40, 0x26, 0x46, 0xe2, 0x57, 0xa1, 0x9e, 0xfe, 0x0e, 0xcf, 0xff, 0xc7, 0xf1, 0x5f, 0x1d, 0xff, 0x67, 0xea, 0xf7, 0x18,
0x6b, 0xcf, 0x01, 0xf2, 0xe1, 0xad, 0xbf, 0x1a, 0xa0, 0x67, 0x4e, 0xfe, 0xe9, 0xfa, 0x39, 0x87, 0xc7, 0x85, 0x7f, 0xe3,
0x75, 0x05, 0xf7, 0x0f, 0x20, 0xfa, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0x5e, 0x37,
0xb8, 0xbe, 0x16, 0xb1, 0x3b, 0x4b, 0x6b, 0xe5, 0xfd, 0x7e, 0x2f, 0x1d, 0xbd, 0x47, 0xf5, 0x68, 0x2b, 0xb9, 0xa0, 0x33,
0xf5, 0xdd, 0xb3, 0xbc, 0xa2, 0x73, 0x74, 0x34, 0xf9, 0xc7, 0x1a, 0xd5, 0x99, 0x73, 0xba, 0x73, 0x5d, 0xc6, 0x99, 0x77,
0x57, 0xf2, 0xfb, 0xae, 0xad, 0x06, 0x5e, 0x5d, 0x21, 0xd0, 0x99, 0xed, 0x60, 0xf6, 0xfa, 0x56, 0xee, 0xa8, 0x95, 0x4f,
0xdb, 0x59, 0x8b, 0x78, 0x9f, 0x81, 0xf9, 0x1a, 0x66, 0x88, 0xee, 0xca, 0x51, 0x97, 0x8d, 0x35, 0xfb, 0xbf, 0xdf, 0xc9,
0x95, 0x55, 0xdb, 0xe3, 0x7b, 0xaa, 0x92, 0x77, 0xa9, 0x9a, 0xb3, 0x39, 0x2d, 0x9f, 0x3b, 0xf3, 0xcd, 0xe6, 0x32, 0xfa,
0xd4, 0x33, 0xb6, 0x5f, 0x8b, 0xfb, 0x30, 0xac, 0xad, 0xe5, 0xce, 0xf2, 0x5a, 0xf8, 0xb4, 0xe5, 0x8b, 0x48, 0xf1, 0x3d,
0x6b, 0xf7, 0xda, 0x99, 0xec, 0x3f, 0xd5, 0x2c, 0x59, 0x67, 0xe2, 0x3f, 0xe5, 0xef, 0x92, 0xdb, 0x7b, 0xe2, 0x1a, 0x66,
0x28, 0xaa, 0x66, 0x5e, 0xca, 0x46, 0xbd, 0x96, 0x8d, 0xb5, 0xee, 0x5d, 0xf1, 0xbf, 0x13, 0xe1, 0xb3, 0xf9, 0x7b, 0xd3,
0xb2, 0xba, 0x7f, 0x25, 0x1b, 0x7a, 0xb5, 0x1f, 0xdc, 0x19, 0x21, 0x77, 0xc7, 0x9e, 0x8d, 0x33, 0x73, 0x26, 0xfe, 0xf3,
0x01, 0xf1, 0xbf, 0x53, 0x17, 0x7d, 0xcf, 0xf8, 0x4f, 0x43, 0xed, 0x9c, 0xd2, 0x15, 0xfa, 0x3d, 0x76, 0x2b, 0x7b, 0x59,
0x5c, 0xe5, 0x8c, 0xce, 0x69, 0x6e, 0x8f, 0x3a, 0xd6, 0x14, 0x3f, 0x19, 0xff, 0xeb, 0xf5, 0xcd, 0xa9, 0xf8, 0xbf, 0xdb,
0xad, 0x23, 0xa5, 0xdd, 0x9e, 0xfa, 0xf6, 0xc1, 0x5a, 0xa9, 0x8b, 0x32, 0x9d, 0x5b, 0xb4, 0x12, 0xff, 0x19, 0xee, 0xa0,
0x51, 0xd9, 0xb7, 0xa0, 0x9a, 0x0d, 0xb9, 0x23, 0xfe, 0xe7, 0xf3, 0x9b, 0x67, 0xb2, 0xee, 0xed, 0x88, 0xf3, 0x77, 0xe2,
0x7f, 0x74, 0x05, 0x53, 0xcc, 0xd6, 0xb7, 0x9e, 0xe5, 0x7b, 0xfc, 0x69, 0xbd, 0x59, 0xd4, 0x67, 0xf6, 0x9a, 0xc9, 0x37,
0x68, 0xff, 0xcf, 0xc7, 0x7f, 0xe5, 0x5d, 0x67, 0xe7, 0x66, 0xf2, 0x5a, 0xfc, 0x67, 0xbb, 0x85, 0x4f, 0xf3, 0xe8, 0xf2,
0x8d, 0xbc, 0x5f, 0x33, 0xf3, 0x05, 0xb5, 0x18, 0x4f, 0xeb, 0x78, 0xa3, 0xf6, 0x69, 0x27, 0x7a, 0x98, 0xeb, 0xf1, 0x9f,
0xa3, 0xe3, 0xff, 0x95, 0x4f, 0xa8, 0xf7, 0xff, 0xef, 0x3e, 0xbb, 0x77, 0xfe, 0xaf, 0x6b, 0xee, 0x69, 0xa6, 0xed, 0x4e,
0x43, 0x2f, 0xe2, 0x7c, 0xcd, 0x90, 0xd7, 0x9e, 0x91, 0x55, 0x3e, 0xff, 0x44, 0x44, 0x56, 0x63, 0xab, 0x1a, 0xff, 0xbd,
0xf3, 0xff, 0x1d, 0xf3, 0xcc, 0x73, 0x47, 0x9f, 0x42, 0xa4, 0xa6, 0x38, 0xbe, 0xca, 0xd6, 0x0c, 0x79, 0x36, 0xe2, 0x3f,
0x0d, 0xf1, 0x7f, 0xf7, 0xfc, 0x6e, 0x37, 0xfe, 0x33, 0x78, 0xbe, 0x91, 0x6f, 0x13, 0xff, 0x29, 0xc5, 0x7f, 0x9a, 0x23,
0x32, 0xe5, 0xd8, 0xba, 0x96, 0x9f, 0x4f, 0x9e, 0x79, 0xfe, 0x3f, 0x7e, 0xca, 0xba, 0xf3, 0x24, 0x79, 0xf6, 0x3b, 0xd5,
0x7f, 0xed, 0x30, 0x3a, 0x4b, 0x59, 0x8e, 0xb0, 0x94, 0x72, 0xf3, 0xcf, 0x8f, 0xf9, 0xb2, 0xd9, 0x4a, 0x8d, 0x6b, 0x88,
0x6a, 0x4e, 0xea, 0xd5, 0x7d, 0xd5, 0xf3, 0xfa, 0xbe, 0x36, 0xcf, 0xbc, 0x72, 0x67, 0xaf, 0x06, 0x39, 0x89, 0xf9, 0x19,
0xbf, 0x49, 0x73, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7a, 0xd6, 0x60,
0xa6, 0x94, 0xd5, 0x6b, 0xf6, 0x7f, 0x55, 0x73, 0x90, 0xe5, 0x36, 0xcb, 0xf4, 0xda, 0x5a, 0xdf, 0x0c, 0x8f, 0xb1, 0x63,
0xa5, 0xf4, 0xd9, 0x2c, 0xdc, 0xf3, 0xe7, 0xb6, 0x76, 0xf5, 0xb3, 0x98, 0xcf, 0x32, 0xed, 0x2b, 0xd3, 0xc7, 0xeb, 0xad,
0xef, 0xd7, 0xd0, 0xd7, 0x5f, 0x77, 0x15, 0x56, 0x38, 0xaf, 0x5e, 0xad, 0x99, 0x5c, 0xf1, 0x6f, 0xd4, 0x15, 0xd7, 0x44,
0x86, 0xbb, 0x9d, 0x1c, 0xfa, 0x77, 0xe7, 0xfe, 0xeb, 0xfb, 0xf5, 0xee, 0x7b, 0xf5, 0xe5, 0x2d, 0xbc, 0xb6, 0x33, 0xe8,
0x5e, 0x8f, 0x64, 0xe1, 0xce, 0xe2, 0x7d, 0x38, 0xfb, 0x3f, 0x47, 0x59, 0x04, 0x53, 0xc8, 0xf4, 0x71, 0xee, 0x78, 0x67,
0xf2, 0x3f, 0x8d, 0xf2, 0x3c, 0xfe, 0xf9, 0xef, 0x2b, 0xf7, 0x53, 0x2d, 0x67, 0x72, 0x06, 0xb9, 0x24, 0x7b, 0xd7, 0x5a,
0xe7, 0xf6, 0x5e, 0x5d, 0xef, 0x47, 0x9c, 0xb9, 0xa2, 0xf5, 0xf8, 0x5f, 0x6f, 0x77, 0x4e, 0xc5, 0xff, 0x7e, 0x16, 0xde,
0x9d, 0x1c, 0x3d, 0xfb, 0x7f, 0xbf, 0x6f, 0xfd, 0xaf, 0xe5, 0xde, 0xd9, 0xb5, 0x95, 0xeb, 0x76, 0x9c, 0x09, 0x67, 0x9c,
0x61, 0x6a, 0xf5, 0x38, 0xae, 0xc5, 0xfc, 0xce, 0x9f, 0x13, 0xff, 0x57, 0x29, 0xfe, 0xaf, 0x0f, 0x8a, 0xff, 0xbb, 0x76,
0xe7, 0x2a, 0xee, 0x27, 0x72, 0xd7, 0x33, 0xbb, 0x1a, 0xdb, 0x9c, 0xdf, 0x6b, 0xd5, 0x94, 0xfa, 0xc3, 0x29, 0x67, 0x4f,
0x7c, 0x2b, 0x07, 0xd7, 0x78, 0x77, 0x93, 0x71, 0xdf, 0xbf, 0x56, 0x53, 0xd6, 0x32, 0x31, 0xdd, 0x8f, 0x28, 0xb2, 0xb4,
0x3b, 0x41, 0x3d, 0x2f, 0x58, 0x0e, 0x64, 0x47, 0x59, 0xad, 0xe9, 0x53, 0xe8, 0xff, 0x5f, 0x5b, 0xfb, 0x48, 0x54, 0xf3,
0x1e, 0xd7, 0x72, 0xac, 0xa7, 0xd0, 0xee, 0xcc, 0xc4, 0xdf, 0x5e, 0x16, 0xde, 0x4c, 0x8e, 0xb2, 0xae, 0xc5, 0x3a, 0xf2,
0x6a, 0xab, 0x31, 0xd6, 0x7a, 0x98, 0xd9, 0x1a, 0x6d, 0xcd, 0xd4, 0x0d, 0x59, 0xdc, 0xab, 0xa1, 0xde, 0x5e, 0x54, 0xf2,
0xc9, 0xd5, 0x6b, 0x80, 0xbc, 0x36, 0xff, 0x77, 0x15, 0x32, 0xd5, 0xaf, 0xe5, 0xe6, 0xab, 0xcc, 0xbd, 0x55, 0x8e, 0xaf,
0x96, 0x73, 0x6f, 0x26, 0x6b, 0x7b, 0x4f, 0xfe, 0xe2, 0xd5, 0xf3, 0x73, 0x4d, 0xcd, 0x6a, 0xe5, 0xa5, 0xf6, 0x7f, 0x3d,
0x02, 0xe6, 0x76, 0xa5, 0xdc, 0xe9, 0xd5, 0x54, 0x33, 0x76, 0xf7, 0xf7, 0x7e, 0xde, 0x9f, 0xff, 0x5f, 0xcb, 0xe0, 0xfd,
0x59, 0xd9, 0x59, 0xd3, 0xf0, 0x3f, 0xfa, 0x3e, 0xeb, 0xed, 0x67, 0x38, 0x39, 0x5a, 0xfb, 0xf7, 0xc6, 0x7f, 0x8a, 0xe3,
0xc9, 0xd9, 0x7a, 0x38, 0x4b, 0x39, 0x87, 0xc7, 0xf3, 0x5b, 0xe7, 0xc6, 0x3f, 0x9f, 0x78, 0x3f, 0xed, 0xe4, 0xb2, 0x7f,
0xf6, 0x7b, 0xe6, 0xb1, 0x1e, 0xd3, 0x89, 0xd9, 0x97, 0xe7, 0xce, 0xc4, 0xda, 0x31, 0xa5, 0xf1, 0x8e, 0xad, 0xcd, 0xff,
0x65, 0x63, 0x8e, 0x6f, 0x77, 0xbf, 0xde, 0x14, 0x66, 0x15, 0xff, 0x86, 0x5f, 0x0a, 0x7c, 0x3d, 0x03, 0x91, 0xbf, 0x22,
0xf7, 0xf0, 0x4f, 0x3c, 0xc6, 0x8e, 0xe7, 0xff, 0xd5, 0x7e, 0x53, 0x6d, 0xe7, 0x80, 0xb9, 0x79, 0x9f, 0xca, 0xfc, 0x6e,
0x75, 0xcc, 0x08, 0x54, 0x9e, 0x31, 0x57, 0x76, 0x0e, 0xe8, 0x18, 0xc1, 0x65, 0xf9, 0xf9, 0x3f, 0xf0, 0x53, 0x6a, 0xa2,
0xda, 0xbc, 0x22, 0xf0, 0xfd, 0x47, 0x3b, 0x22, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8,
0x9e, 0xbf, 0x88, 0x5e, 0x5f, 0xeb, 0xba, 0x9e, 0xeb, 0xb0, 0x9e, 0x71, 0x65, 0x76, 0x7d, 0xea, 0x55, 0xca, 0x1a, 0xb9,
0x97, 0x9b, 0x66, 0x2e, 0x5b, 0x73, 0x3d, 0x5b, 0x5d, 0x35, 0x43, 0xd6, 0x5e, 0xe9, 0xf8, 0x95, 0xf5, 0x57, 0x5f, 0xd3,
0xe7, 0x2d, 0xaf, 0x1c, 0x77, 0x16, 0x73, 0x18, 0xac, 0xdc, 0x53, 0xfd, 0xc7, 0xba, 0x77, 0x2e, 0xae, 0x62, 0x46, 0x9f,
0x4a, 0xb6, 0xe3, 0x4a, 0xbc, 0xde, 0xe5, 0x3b, 0xcd, 0xe2, 0x67, 0x65, 0x39, 0xa7, 0xf3, 0xa8, 0x16, 0xc9, 0x60, 0xc5,
0x68, 0x26, 0xd6, 0x9c, 0xee, 0xe5, 0x1b, 0xa8, 0x96, 0x8d, 0xaf, 0x7a, 0x3d, 0xcf, 0x49, 0x16, 0xeb, 0x8f, 0xb5, 0x1c,
0x7d, 0x27, 0x8f, 0x7b, 0x7d, 0x0d, 0x73, 0x96, 0x73, 0x64, 0x5d, 0x8b, 0xad, 0x4d, 0x26, 0xda, 0x87, 0xea, 0xb9, 0x98,
0x6d, 0x01, 0x57, 0xdb, 0xcd, 0xd5, 0x9a, 0xa4, 0x1a, 0xff, 0xd5, 0xcf, 0x3a, 0x13, 0xff, 0x77, 0xc7, 0x96, 0xdb, 0x9c,
0x13, 0xd9, 0xcc, 0x6f, 0xf8, 0x6c, 0xaf, 0xb0, 0xa7, 0xfd, 0x4d, 0x71, 0x8d, 0xfe, 0xf9, 0x75, 0x81, 0xa7, 0x56, 0x07,
0xd6, 0x73, 0x47, 0xbf, 0x71, 0x0f, 0xa4, 0x2d, 0x6b, 0xe4, 0x5c, 0x3e, 0xd6, 0xf5, 0xf8, 0x5f, 0x1d, 0x2f, 0xac, 0xe6,
0x33, 0xcc, 0x44, 0xeb, 0x34, 0xdb, 0xfe, 0x67, 0xeb, 0xea, 0x3f, 0xdf, 0xff, 0xbf, 0x36, 0xda, 0xd0, 0xb9, 0xd1, 0xc1,
0x6c, 0x1e, 0x8e, 0xd5, 0xbb, 0xa9, 0x5e, 0x3a, 0xce, 0x0d, 0xbc, 0xf7, 0xd7, 0xf1, 0xfd, 0x77, 0xf7, 0x4e, 0x95, 0x91,
0x52, 0xb6, 0x33, 0x36, 0x65, 0xf9, 0x6c, 0xdc, 0x1f, 0xf5, 0x7a, 0xce, 0xe5, 0xd5, 0xf8, 0x1f, 0xd5, 0x26, 0x6b, 0x23,
0xb8, 0x71, 0xfb, 0x3f, 0x93, 0x6b, 0x72, 0x6f, 0xb7, 0x8a, 0x1c, 0x89, 0xc3, 0x7a, 0xe9, 0xce, 0x4e, 0x27, 0x7f, 0xaa,
0x13, 0x53, 0xae, 0x99, 0x72, 0xac, 0xf4, 0xc4, 0xf8, 0x7f, 0x9c, 0x71, 0x24, 0x85, 0x7c, 0x25, 0x3b, 0xa3, 0xa8, 0xdd,
0xf6, 0xa5, 0xe3, 0xdd, 0xb2, 0xb5, 0x97, 0xc3, 0xb9, 0x6f, 0xdd, 0x31, 0xfe, 0x3f, 0x3b, 0xff, 0xb7, 0xbf, 0xe3, 0x58,
0xcf, 0x6e, 0x45, 0xab, 0xb5, 0xd9, 0xaf, 0xe7, 0x22, 0x1f, 0xd2, 0xab, 0xa9, 0xd5, 0x0e, 0xfb, 0x7f, 0x1d, 0xcf, 0x59,
0xe7, 0xa5, 0xf8, 0xef, 0x1d, 0x09, 0xe5, 0xc0, 0xfc, 0xe4, 0xf3, 0xd1, 0xbf, 0x32, 0xfe, 0xef, 0x98, 0x31, 0xab, 0xee,
0x38, 0x72, 0xb6, 0xb4, 0xb2, 0xe3, 0xea, 0xfc, 0x3d, 0xf9, 0x44, 0x0b, 0xdf, 0xb5, 0x4f, 0xc2, 0x4f, 0x8d, 0xff, 0x37,
0xf7, 0x18, 0xd9, 0x89, 0xff, 0xf3, 0x59, 0x9a, 0xf3, 0x87, 0x79, 0xbd, 0xdd, 0x4f, 0x1c, 0xed, 0x11, 0x9b, 0xf6, 0x38,
0xdc, 0x8f, 0xe1, 0x9d, 0xd2, 0xb9, 0x7d, 0x78, 0x6a, 0x51, 0xba, 0x53, 0xfa, 0x56, 0xfb, 0x3f, 0x33, 0x0b, 0xf5, 0x74,
0xfc, 0x77, 0xce, 0x86, 0xe6, 0x50, 0xeb, 0xb8, 0x3e, 0x9a, 0xe8, 0x9f, 0x1b, 0xed, 0xf8, 0xc4, 0x6a, 0xcb, 0xf0, 0x4e,
0xff, 0xbf, 0xfe, 0xfb, 0x8b, 0x7f, 0xce, 0x66, 0xa5, 0x38, 0xab, 0xf5, 0x93, 0xc6, 0xff, 0xd7, 0xd4, 0xae, 0x51, 0x79,
0x69, 0xfc, 0xff, 0x19, 0xaf, 0xff, 0x7b, 0x7f, 0x81, 0x75, 0x1d, 0x6e, 0x87, 0x9f, 0x2e, 0x3d, 0xdf, 0x63, 0xdc, 0x2b,
0xcd, 0x2b, 0xed, 0xff, 0xdc, 0x48, 0xf4, 0xbd, 0xf8, 0xef, 0xea, 0x2f, 0xab, 0x09, 0x3a, 0xe7, 0x59, 0xde, 0x6d, 0xc3,
0x6b, 0xbb, 0x38, 0xee, 0xfd, 0xda, 0x66, 0x76, 0x74, 0x50, 0x2b, 0xcd, 0xe1, 0xf1, 0xff, 0xee, 0x55, 0xae, 0x1c, 0xcf,
0xa7, 0xc4, 0xbf, 0xbc, 0xea, 0xa7, 0xea, 0x8c, 0x4a, 0x1c, 0x3e, 0x15, 0xc3, 0xcf, 0xdf, 0x4d, 0x7b, 0xcf, 0xff, 0xd7,
0xeb, 0xe8, 0xb5, 0xe7, 0xff, 0x3b, 0x2d, 0xc3, 0xd3, 0xcf, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0xef, 0xb7, 0xfe, 0x6c, 0x9c, 0x99, 0xa6, 0x9e, 0xd5, 0x7b, 0x37, 0x2b, 0xc0, 0xde, 0x11, 0xa5, 0xb4, 0xf6,
0x6c, 0x36, 0xb7, 0x75, 0xf7, 0xfa, 0xb4, 0x7a, 0x7e, 0xf0, 0x6c, 0xac, 0x3a, 0xac, 0xff, 0xba, 0xfc, 0xd4, 0x71, 0x9e,
0xca, 0xc2, 0x55, 0xb9, 0x1f, 0x9e, 0xbb, 0x96, 0x69, 0xbf, 0xc2, 0xb3, 0xef, 0x51, 0xcd, 0x05, 0x9d, 0xa5, 0x1c, 0x10,
0xab, 0x71, 0x96, 0xcd, 0x0c, 0xf5, 0xf5, 0xb5, 0x67, 0xb3, 0xb5, 0x4e, 0x6f, 0xe6, 0xea, 0x6c, 0xe4, 0x87, 0xae, 0x9f,
0xa3, 0x9d, 0xd5, 0xa5, 0xdd, 0xc7, 0xb9, 0x7e, 0xc5, 0x3a, 0x72, 0x73, 0x67, 0xe3, 0xcc, 0x67, 0xf9, 0xcc, 0x64, 0x50,
0x3b, 0xe5, 0x91, 0x75, 0xa5, 0xbd, 0x99, 0x0b, 0x56, 0x57, 0x34, 0x3e, 0xb7, 0xd6, 0xb6, 0xbe, 0x0a, 0x6c, 0x37, 0xbf,
0xd5, 0x73, 0xfd, 0xb7, 0x6a, 0x5f, 0xe4, 0xd7, 0xa3, 0xcc, 0x07, 0xe4, 0x74, 0x38, 0xbb, 0x9a, 0xed, 0xcc, 0x5e, 0x23,
0xe7, 0xbf, 0xe1, 0xde, 0xde, 0x21, 0x3b, 0x6b, 0x08, 0x53, 0xec, 0x51, 0x8d, 0x32, 0x1a, 0xdc, 0xc7, 0xe7, 0x6e, 0xf9,
0x5c, 0x0e, 0xb8, 0x6b, 0x22, 0x33, 0x6d, 0x0a, 0xd9, 0x2f, 0x32, 0x58, 0xd7, 0xde, 0x5d, 0x56, 0xbb, 0x47, 0x67, 0xf2,
0x96, 0xe7, 0xc0, 0x1d, 0x75, 0xbd, 0x98, 0x9b, 0xeb, 0x5a, 0x6e, 0x93, 0x53, 0x6c, 0x7b, 0x3b, 0x4b, 0x3a, 0xea, 0xe7,
0x6a, 0x2f, 0x6f, 0xa6, 0x6c, 0x3d, 0xa3, 0xe1, 0x4c, 0xcf, 0xf2, 0x99, 0xf2, 0xf5, 0x5c, 0xe6, 0xb3, 0xd9, 0x6f, 0xf2,
0x58, 0x59, 0xca, 0x77, 0xdb, 0x35, 0x91, 0x87, 0xff, 0xd4, 0x5d, 0xf3, 0x7c, 0x36, 0x8b, 0x4a, 0x0d, 0x5a, 0xcb, 0x91,
0xf8, 0x5c, 0xc9, 0x6c, 0xae, 0x83, 0x13, 0x57, 0xeb, 0x2a, 0xde, 0x39, 0x9f, 0x11, 0xff, 0xb9, 0xbd, 0xe6, 0xd7, 0x56,
0xdd, 0xd6, 0xdd, 0x2e, 0xce, 0xb4, 0x99, 0xf5, 0x7a, 0xa3, 0xfa, 0xb9, 0xb5, 0xac, 0x34, 0x73, 0xd9, 0x79, 0xae, 0xe9,
0x91, 0x7e, 0x65, 0x8f, 0xca, 0x95, 0x4f, 0xad, 0xb4, 0x03, 0x4f, 0x95, 0x54, 0x46, 0x30, 0x4f, 0xc5, 0xff, 0x67, 0xb4,
0xef, 0xb5, 0xdd, 0x0d, 0xc7, 0xe3, 0xff, 0x94, 0x7b, 0x45, 0xfd, 0x65, 0x29, 0xcf, 0xde, 0x74, 0xcc, 0x0b, 0xa5, 0xb5,
0xec, 0x6a, 0x9a, 0x9f, 0xaf, 0xec, 0x66, 0xf7, 0xb9, 0xf1, 0x5f, 0xdd, 0x3b, 0xe6, 0xad, 0xf8, 0xcf, 0xc7, 0xb7, 0xff,
0xeb, 0xbb, 0x9b, 0xfe, 0xf9, 0x19, 0x55, 0x4a, 0x3d, 0x8b, 0xce, 0xb2, 0xab, 0xb8, 0xef, 0xda, 0x6e, 0xaf, 0xf9, 0xc4,
0xf8, 0x66, 0x36, 0x27, 0xf0, 0x93, 0xf1, 0x5f, 0xb9, 0x2a, 0xbd, 0x25, 0xbb, 0x33, 0x43, 0x6f, 0xb4, 0xff, 0xf3, 0xcf,
0x0d, 0xde, 0x8a, 0xff, 0xea, 0xf3, 0xff, 0x99, 0xbd, 0x3c, 0x4f, 0xb4, 0x8c, 0x95, 0x96, 0xfc, 0xec, 0x3e, 0x09, 0x27,
0xc6, 0x39, 0xa7, 0xdb, 0xff, 0xca, 0x78, 0xe4, 0x1a, 0xee, 0xfc, 0x7e, 0xba, 0xe4, 0xda, 0x9e, 0xf9, 0xfd, 0xb4, 0x19,
0x99, 0xa7, 0xc6, 0xf7, 0x9f, 0xb5, 0xdf, 0xea, 0xf5, 0xda, 0xf3, 0xb4, 0x9f, 0x70, 0xac, 0x1d, 0x33, 0x00, 0xcf, 0x3f,
0x73, 0xfc, 0xb4, 0x73, 0x57, 0xdd, 0x89, 0xe5, 0xb9, 0xef, 0xd3, 0x51, 0x3e, 0xf3, 0xbd, 0xe5, 0x4c, 0xe5, 0x6f, 0xfa,
0xf5, 0xef, 0x67, 0xe5, 0x10, 0x1e, 0xff, 0x86, 0x76, 0xaf, 0xfc, 0xb9, 0xdf, 0x4d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xa9, 0xdf, 0xde, 0xd7, 0xd7, 0xbd, 0x57, 0xd7, 0x7c, 0xf7, 0x67, 0xe2, 0x8e, 0x35,
0x3c, 0xd0, 0xb6, 0x16, 0x34, 0x93, 0xb9, 0xe0, 0xba, 0x63, 0x31, 0x5b, 0x99, 0x4d, 0x80, 0xf9, 0x36, 0xff, 0x8d, 0x75,
0x7e, 0xd5, 0xcf, 0xcd, 0x30, 0xf3, 0x82, 0x55, 0x7c, 0x30, 0x1f, 0xff, 0x19, 0xe6, 0x32, 0xea, 0x2e, 0xbd, 0x26, 0xb2,
0x0b, 0x5c, 0x85, 0xfc, 0x55, 0xd1, 0x47, 0x80, 0xa5, 0xf8, 0x9f, 0xc9, 0xc8, 0xfd, 0x49, 0xa5, 0x29, 0xef, 0x3e, 0x06,
0xfc, 0x79, 0x94, 0xfd, 0xbd, 0xe2, 0x7f, 0x27, 0x7f, 0x3d, 0xf0, 0x7e, 0xfc, 0xa7, 0x58, 0x5a, 0xcf, 0x15, 0x0b, 0xfc,
0xda, 0xfb, 0x9f, 0x99, 0xfd, 0x4f, 0x7b, 0xe9, 0xd5, 0xb0, 0xc7, 0x44, 0xf5, 0xa9, 0x24, 0xd0, 0xf1, 0x7c, 0x70, 0xa7,
0xb4, 0xfe, 0x9b, 0x84, 0x99, 0xe7, 0x19, 0xae, 0x1c, 0x7c, 0xff, 0xe7, 0x92, 0xb5, 0xfa, 0xca, 0x19, 0x84, 0xef, 0xdf,
0xef, 0x70, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x79, 0xff, 0xf9, 0xe7, 0x3c, 0x80, 0xf8, 0x07, 0xfe, 0xba, 0xf8, 0xff, 0x17 };
// Font glyphs rectangles data (on atlas)
static const Rectangle cherryFontRecs[189] = {
{ 4, 4, 5 , 15 },
{ 17, 4, 3 , 10 },
{ 28, 4, 5 , 2 },
{ 41, 4, 10 , 10 },
{ 59, 4, 7 , 11 },
{ 74, 4, 7 , 10 },
{ 89, 4, 8 , 10 },
{ 105, 4, 1 , 2 },
{ 114, 4, 3 , 10 },
{ 125, 4, 3 , 10 },
{ 136, 4, 3 , 3 },
{ 147, 4, 7 , 7 },
{ 162, 4, 2 , 2 },
{ 172, 4, 6 , 3 },
{ 186, 4, 1 , 1 },
{ 195, 4, 4 , 10 },
{ 207, 4, 5 , 8 },
{ 220, 4, 5 , 8 },
{ 233, 4, 5 , 8 },
{ 246, 4, 5 , 8 },
{ 259, 4, 5 , 8 },
{ 272, 4, 5 , 8 },
{ 285, 4, 5 , 8 },
{ 298, 4, 5 , 8 },
{ 311, 4, 5 , 8 },
{ 324, 4, 5 , 8 },
{ 337, 4, 3 , 10 },
{ 348, 4, 3 , 12 },
{ 359, 4, 6 , 7 },
{ 373, 4, 6 , 4 },
{ 387, 4, 6 , 7 },
{ 401, 4, 5 , 10 },
{ 414, 4, 8 , 10 },
{ 430, 4, 7 , 9 },
{ 445, 4, 7 , 9 },
{ 460, 4, 6 , 9 },
{ 474, 4, 6 , 9 },
{ 488, 4, 7 , 9 },
{ 4, 27, 6 , 9 },
{ 18, 27, 6 , 9 },
{ 32, 27, 7 , 9 },
{ 47, 27, 3 , 9 },
{ 58, 27, 6 , 9 },
{ 72, 27, 7 , 9 },
{ 87, 27, 7 , 9 },
{ 102, 27, 11 , 9 },
{ 121, 27, 8 , 9 },
{ 137, 27, 6 , 9 },
{ 151, 27, 6 , 9 },
{ 165, 27, 7 , 9 },
{ 180, 27, 7 , 9 },
{ 195, 27, 6 , 9 },
{ 209, 27, 7 , 9 },
{ 224, 27, 8 , 9 },
{ 240, 27, 9 , 9 },
{ 257, 27, 11 , 9 },
{ 276, 27, 7 , 9 },
{ 291, 27, 7 , 9 },
{ 306, 27, 7 , 9 },
{ 321, 27, 3 , 9 },
{ 332, 27, 4 , 10 },
{ 344, 27, 3 , 9 },
{ 355, 27, 3 , 3 },
{ 366, 27, 7 , 2 },
{ 381, 27, 2 , 2 },
{ 391, 27, 6 , 6 },
{ 405, 27, 6 , 9 },
{ 419, 27, 6 , 6 },
{ 433, 27, 6 , 9 },
{ 447, 27, 6 , 6 },
{ 461, 27, 5 , 9 },
{ 474, 27, 5 , 9 },
{ 487, 27, 7 , 9 },
{ 4, 50, 3 , 7 },
{ 15, 50, 3 , 8 },
{ 26, 50, 6 , 9 },
{ 40, 50, 4 , 9 },
{ 52, 50, 11 , 6 },
{ 71, 50, 7 , 6 },
{ 86, 50, 5 , 6 },
{ 99, 50, 6 , 8 },
{ 113, 50, 6 , 8 },
{ 127, 50, 5 , 6 },
{ 140, 50, 5 , 6 },
{ 153, 50, 5 , 9 },
{ 166, 50, 7 , 6 },
{ 181, 50, 7 , 6 },
{ 196, 50, 11 , 6 },
{ 215, 50, 7 , 6 },
{ 230, 50, 7 , 8 },
{ 245, 50, 6 , 6 },
{ 259, 50, 5 , 9 },
{ 272, 50, 1 , 9 },
{ 281, 50, 5 , 9 },
{ 294, 50, 7 , 3 },
{ 309, 50, 3 , 10 },
{ 320, 50, 7 , 10 },
{ 335, 50, 7 , 10 },
{ 350, 50, 6 , 9 },
{ 364, 50, 7 , 9 },
{ 379, 50, 6 , 12 },
{ 393, 50, 7 , 11 },
{ 408, 50, 5 , 9 },
{ 421, 50, 5 , 5 },
{ 434, 50, 4 , 5 },
{ 446, 50, 6 , 7 },
{ 460, 50, 6 , 3 },
{ 474, 50, 5 , 5 },
{ 487, 50, 6 , 1 },
{ 4, 73, 3 , 3 },
{ 15, 73, 7 , 10 },
{ 30, 73, 3 , 5 },
{ 41, 73, 3 , 5 },
{ 52, 73, 7 , 12 },
{ 67, 73, 6 , 8 },
{ 81, 73, 7 , 9 },
{ 96, 73, 2 , 3 },
{ 106, 73, 6 , 9 },
{ 120, 73, 3 , 5 },
{ 131, 73, 3 , 5 },
{ 142, 73, 6 , 7 },
{ 156, 73, 13 , 9 },
{ 177, 73, 10 , 6 },
{ 195, 73, 7 , 11 },
{ 210, 73, 5 , 10 },
{ 223, 73, 7 , 12 },
{ 238, 73, 7 , 12 },
{ 253, 73, 7 , 12 },
{ 268, 73, 7 , 12 },
{ 283, 73, 7 , 11 },
{ 298, 73, 7 , 11 },
{ 313, 73, 12 , 9 },
{ 333, 73, 6 , 11 },
{ 347, 73, 7 , 12 },
{ 362, 73, 7 , 12 },
{ 377, 73, 7 , 12 },
{ 392, 73, 7 , 11 },
{ 407, 73, 3 , 12 },
{ 418, 73, 3 , 12 },
{ 429, 73, 3 , 12 },
{ 440, 73, 3 , 11 },
{ 451, 73, 7 , 9 },
{ 466, 73, 8 , 12 },
{ 482, 73, 6 , 12 },
{ 496, 73, 6 , 12 },
{ 4, 96, 6 , 12 },
{ 18, 96, 6 , 12 },
{ 32, 96, 6 , 11 },
{ 46, 96, 5 , 5 },
{ 59, 96, 8 , 9 },
{ 75, 96, 8 , 12 },
{ 91, 96, 8 , 12 },
{ 107, 96, 8 , 12 },
{ 123, 96, 8 , 11 },
{ 139, 96, 7 , 12 },
{ 154, 96, 7 , 9 },
{ 169, 96, 8 , 9 },
{ 185, 96, 6 , 9 },
{ 199, 96, 6 , 9 },
{ 213, 96, 6 , 9 },
{ 227, 96, 6 , 9 },
{ 241, 96, 6 , 8 },
{ 255, 96, 6 , 10 },
{ 269, 96, 10 , 6 },
{ 287, 96, 6 , 8 },
{ 301, 96, 6 , 9 },
{ 315, 96, 6 , 9 },
{ 329, 96, 6 , 9 },
{ 343, 96, 6 , 8 },
{ 357, 96, 3 , 10 },
{ 368, 96, 3 , 10 },
{ 379, 96, 3 , 10 },
{ 390, 96, 3 , 9 },
{ 401, 96, 6 , 10 },
{ 415, 96, 7 , 9 },
{ 430, 96, 5 , 9 },
{ 443, 96, 5 , 9 },
{ 456, 96, 5 , 9 },
{ 469, 96, 5 , 9 },
{ 482, 96, 5 , 8 },
{ 495, 96, 7 , 9 },
{ 4, 119, 8 , 8 },
{ 20, 119, 7 , 9 },
{ 35, 119, 7 , 9 },
{ 50, 119, 7 , 9 },
{ 65, 119, 7 , 8 },
{ 80, 119, 7 , 11 },
{ 95, 119, 5 , 8 },
{ 108, 119, 7 , 10 },
};
// Font glyphs info data
// NOTE: No glyphs.image data provided
static const GlyphInfo cherryFontGlyphs[189] = {
{ 32, 0, 12, 5, { 0 }},
{ 33, 0, 2, 4, { 0 }},
{ 34, 0, 2, 6, { 0 }},
{ 35, 0, 2, 11, { 0 }},
{ 36, 0, 2, 8, { 0 }},
{ 37, 0, 2, 8, { 0 }},
{ 38, 0, 2, 9, { 0 }},
{ 39, 0, 2, 2, { 0 }},
{ 40, 0, 2, 4, { 0 }},
{ 41, 0, 2, 4, { 0 }},
{ 42, 0, 2, 4, { 0 }},
{ 43, 0, 4, 8, { 0 }},
{ 44, 0, 11, 3, { 0 }},
{ 45, 0, 6, 7, { 0 }},
{ 46, 0, 11, 2, { 0 }},
{ 47, 0, 2, 5, { 0 }},
{ 48, 0, 4, 6, { 0 }},
{ 49, 0, 4, 6, { 0 }},
{ 50, 0, 4, 6, { 0 }},
{ 51, 0, 4, 6, { 0 }},
{ 52, 0, 4, 6, { 0 }},
{ 53, 0, 4, 6, { 0 }},
{ 54, 0, 4, 6, { 0 }},
{ 55, 0, 4, 6, { 0 }},
{ 56, 0, 4, 6, { 0 }},
{ 57, 0, 4, 6, { 0 }},
{ 58, 0, 2, 4, { 0 }},
{ 59, 0, 2, 4, { 0 }},
{ 60, 0, 4, 7, { 0 }},
{ 61, 0, 5, 7, { 0 }},
{ 62, 0, 4, 7, { 0 }},
{ 63, 0, 2, 6, { 0 }},
{ 64, 0, 2, 9, { 0 }},
{ 65, 0, 3, 8, { 0 }},
{ 66, 0, 3, 8, { 0 }},
{ 67, 0, 3, 7, { 0 }},
{ 68, 0, 3, 7, { 0 }},
{ 69, 0, 3, 8, { 0 }},
{ 70, 0, 3, 7, { 0 }},
{ 71, 0, 3, 7, { 0 }},
{ 72, 0, 3, 8, { 0 }},
{ 73, 0, 3, 4, { 0 }},
{ 74, 0, 3, 7, { 0 }},
{ 75, 0, 3, 8, { 0 }},
{ 76, 0, 3, 8, { 0 }},
{ 77, 0, 3, 12, { 0 }},
{ 78, 0, 3, 9, { 0 }},
{ 79, 0, 3, 7, { 0 }},
{ 80, 0, 3, 7, { 0 }},
{ 81, 0, 3, 8, { 0 }},
{ 82, 0, 3, 8, { 0 }},
{ 83, 0, 3, 7, { 0 }},
{ 84, 0, 3, 8, { 0 }},
{ 85, 0, 3, 9, { 0 }},
{ 86, 0, 3, 10, { 0 }},
{ 87, 0, 3, 12, { 0 }},
{ 88, 0, 3, 8, { 0 }},
{ 89, 0, 3, 8, { 0 }},
{ 90, 0, 3, 8, { 0 }},
{ 91, 0, 3, 4, { 0 }},
{ 92, 0, 2, 5, { 0 }},
{ 93, 0, 3, 4, { 0 }},
{ 94, 0, 3, 4, { 0 }},
{ 95, 0, 10, 8, { 0 }},
{ 96, 0, 2, 3, { 0 }},
{ 97, 0, 6, 7, { 0 }},
{ 98, 0, 3, 7, { 0 }},
{ 99, 0, 6, 7, { 0 }},
{ 100, 0, 3, 7, { 0 }},
{ 101, 0, 6, 7, { 0 }},
{ 102, 0, 3, 6, { 0 }},
{ 103, 0, 5, 6, { 0 }},
{ 104, 0, 3, 8, { 0 }},
{ 105, 0, 5, 4, { 0 }},
{ 106, 0, 5, 4, { 0 }},
{ 107, 0, 3, 7, { 0 }},
{ 108, 0, 3, 5, { 0 }},
{ 109, 0, 6, 12, { 0 }},
{ 110, 0, 6, 8, { 0 }},
{ 111, 0, 6, 6, { 0 }},
{ 112, 0, 6, 7, { 0 }},
{ 113, 0, 6, 7, { 0 }},
{ 114, 0, 6, 6, { 0 }},
{ 115, 0, 6, 6, { 0 }},
{ 116, 0, 3, 6, { 0 }},
{ 117, 0, 6, 8, { 0 }},
{ 118, 0, 6, 8, { 0 }},
{ 119, 0, 6, 12, { 0 }},
{ 120, 0, 6, 8, { 0 }},
{ 121, 0, 6, 8, { 0 }},
{ 122, 0, 6, 7, { 0 }},
{ 123, 0, 3, 6, { 0 }},
{ 124, 0, 3, 2, { 0 }},
{ 125, 0, 3, 6, { 0 }},
{ 126, 0, 6, 8, { 0 }},
{ 161, 0, 4, 4, { 0 }},
{ 162, 0, 4, 8, { 0 }},
{ 163, 0, 2, 8, { 0 }},
{ 8364, 0, 3, 7, { 0 }},
{ 165, 0, 3, 8, { 0 }},
{ 352, 0, 0, 7, { 0 }},
{ 167, 0, 2, 8, { 0 }},
{ 353, 0, 3, 6, { 0 }},
{ 169, 0, 1, 6, { 0 }},
{ 170, 0, 2, 5, { 0 }},
{ 171, 0, 5, 7, { 0 }},
{ 172, 0, 6, 7, { 0 }},
{ 174, 0, 1, 6, { 0 }},
{ 175, 0, 2, 7, { 0 }},
{ 176, 0, 2, 4, { 0 }},
{ 177, 0, 3, 8, { 0 }},
{ 178, 0, 2, 4, { 0 }},
{ 179, 0, 2, 4, { 0 }},
{ 381, 0, 0, 8, { 0 }},
{ 181, 0, 6, 7, { 0 }},
{ 182, 0, 3, 8, { 0 }},
{ 183, 0, 6, 3, { 0 }},
{ 382, 0, 3, 7, { 0 }},
{ 185, 0, 2, 4, { 0 }},
{ 186, 0, 2, 4, { 0 }},
{ 187, 0, 5, 7, { 0 }},
{ 338, 0, 3, 14, { 0 }},
{ 339, 0, 6, 11, { 0 }},
{ 376, 0, 1, 8, { 0 }},
{ 191, 0, 4, 6, { 0 }},
{ 192, 0, 0, 8, { 0 }},
{ 193, 0, 0, 8, { 0 }},
{ 194, 0, 0, 8, { 0 }},
{ 195, 0, 0, 8, { 0 }},
{ 196, 0, 1, 8, { 0 }},
{ 197, 0, 1, 8, { 0 }},
{ 198, 0, 3, 13, { 0 }},
{ 199, 0, 3, 7, { 0 }},
{ 200, 0, 0, 8, { 0 }},
{ 201, 0, 0, 8, { 0 }},
{ 202, 0, 0, 8, { 0 }},
{ 203, 0, 1, 8, { 0 }},
{ 204, 0, 0, 4, { 0 }},
{ 205, 0, 0, 4, { 0 }},
{ 206, 0, 0, 4, { 0 }},
{ 207, 0, 1, 4, { 0 }},
{ 208, 0, 3, 8, { 0 }},
{ 209, 0, 0, 9, { 0 }},
{ 210, 0, 0, 7, { 0 }},
{ 211, 0, 0, 7, { 0 }},
{ 212, 0, 0, 7, { 0 }},
{ 213, 0, 0, 7, { 0 }},
{ 214, 0, 1, 7, { 0 }},
{ 215, 1, 5, 7, { 0 }},
{ 216, 0, 3, 9, { 0 }},
{ 217, 0, 0, 9, { 0 }},
{ 218, 0, 0, 9, { 0 }},
{ 219, 0, 0, 9, { 0 }},
{ 220, 0, 1, 9, { 0 }},
{ 221, 0, 0, 8, { 0 }},
{ 222, 0, 2, 8, { 0 }},
{ 223, 0, 3, 9, { 0 }},
{ 224, 0, 3, 7, { 0 }},
{ 225, 0, 3, 7, { 0 }},
{ 226, 0, 3, 7, { 0 }},
{ 227, 0, 3, 7, { 0 }},
{ 228, 0, 4, 7, { 0 }},
{ 229, 0, 2, 7, { 0 }},
{ 230, 0, 6, 11, { 0 }},
{ 231, 0, 6, 7, { 0 }},
{ 232, 0, 3, 7, { 0 }},
{ 233, 0, 3, 7, { 0 }},
{ 234, 0, 3, 7, { 0 }},
{ 235, 0, 4, 7, { 0 }},
{ 236, 0, 2, 4, { 0 }},
{ 237, 0, 2, 4, { 0 }},
{ 238, 0, 2, 4, { 0 }},
{ 239, 0, 3, 4, { 0 }},
{ 240, 0, 2, 7, { 0 }},
{ 241, 0, 3, 8, { 0 }},
{ 242, 0, 3, 6, { 0 }},
{ 243, 0, 3, 6, { 0 }},
{ 244, 0, 3, 6, { 0 }},
{ 245, 0, 3, 6, { 0 }},
{ 246, 0, 4, 6, { 0 }},
{ 247, 0, 3, 8, { 0 }},
{ 248, 0, 4, 9, { 0 }},
{ 249, 0, 3, 8, { 0 }},
{ 250, 0, 3, 8, { 0 }},
{ 251, 0, 3, 8, { 0 }},
{ 252, 0, 4, 8, { 0 }},
{ 253, 0, 3, 8, { 0 }},
{ 254, 0, 4, 6, { 0 }},
{ 255, 0, 4, 8, { 0 }},
};
// Style loading function: Cherry
static void GuiLoadStyleCherry(void)
{
// Load style properties provided
// NOTE: Default properties are propagated
for (int i = 0; i < CHERRY_STYLE_PROPS_COUNT; i++)
{
GuiSetStyle(cherryStyleProps[i].controlId, cherryStyleProps[i].propertyId, cherryStyleProps[i].propertyValue);
}
// Custom font loading
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
int cherryFontDataSize = 0;
unsigned char *data = DecompressData(cherryFontData, CHERRY_STYLE_FONT_ATLAS_COMP_SIZE, &cherryFontDataSize);
Image imFont = { data, 512, 256, 1, 2 };
Font font = { 0 };
font.baseSize = 15;
font.glyphCount = 189;
// Load texture from image
font.texture = LoadTextureFromImage(imFont);
UnloadImage(imFont); // Uncompressed image data can be unloaded from memory
// Copy char recs data from global fontRecs
// NOTE: Required to avoid issues if trying to free font
font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle));
memcpy(font.recs, cherryFontRecs, font.glyphCount*sizeof(Rectangle));
// Copy font char info data from global fontChars
// NOTE: Required to avoid issues if trying to free font
font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo));
memcpy(font.glyphs, cherryFontGlyphs, font.glyphCount*sizeof(GlyphInfo));
GuiSetFont(font);
// Setup a white rectangle on the font to be used on shapes drawing,
// it makes possible to draw shapes and text (full UI) in a single draw call
Rectangle fontWhiteRec = { 510, 254, 1, 1 };
SetShapesTexture(font.texture, fontWhiteRec);
//-----------------------------------------------------------------
// TODO: Custom user style setup: Set specific properties here (if required)
// i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT
}

View File

@ -0,0 +1,591 @@
//////////////////////////////////////////////////////////////////////////////////
// //
// StyleAsCode exporter v2.0 - Style data exported as a values array //
// //
// USAGE: On init call: GuiLoadStyleCyber(); //
// //
// more info and bugs-report: github.com/raysan5/raygui //
// feedback and support: ray[at]raylibtech.com //
// //
// Copyright (c) 2020-2024 raylib technologies (@raylibtech) //
// //
//////////////////////////////////////////////////////////////////////////////////
#define CYBER_STYLE_PROPS_COUNT 17
// Custom style name: Cyber
static const GuiStyleProp cyberStyleProps[CYBER_STYLE_PROPS_COUNT] = {
{ 0, 0, 0x2f7486ff }, // DEFAULT_BORDER_COLOR_NORMAL
{ 0, 1, 0x024658ff }, // DEFAULT_BASE_COLOR_NORMAL
{ 0, 2, 0x51bfd3ff }, // DEFAULT_TEXT_COLOR_NORMAL
{ 0, 3, 0x82cde0ff }, // DEFAULT_BORDER_COLOR_FOCUSED
{ 0, 4, 0x3299b4ff }, // DEFAULT_BASE_COLOR_FOCUSED
{ 0, 5, 0xb6e1eaff }, // DEFAULT_TEXT_COLOR_FOCUSED
{ 0, 6, 0xeb7630ff }, // DEFAULT_BORDER_COLOR_PRESSED
{ 0, 7, 0xffbc51ff }, // DEFAULT_BASE_COLOR_PRESSED
{ 0, 8, 0xd86f36ff }, // DEFAULT_TEXT_COLOR_PRESSED
{ 0, 9, 0x134b5aff }, // DEFAULT_BORDER_COLOR_DISABLED
{ 0, 10, 0x02313dff }, // DEFAULT_BASE_COLOR_DISABLED
{ 0, 11, 0x17505fff }, // DEFAULT_TEXT_COLOR_DISABLED
{ 0, 16, 0x0000000e }, // DEFAULT_TEXT_SIZE
{ 0, 17, 0x00000000 }, // DEFAULT_TEXT_SPACING
{ 0, 18, 0x81c0d0ff }, // DEFAULT_LINE_COLOR
{ 0, 19, 0x00222bff }, // DEFAULT_BACKGROUND_COLOR
{ 0, 20, 0x00000015 }, // DEFAULT_TEXT_LINE_SPACING
};
// WARNING: This style uses a custom font: "Kyrou 7 Wide.ttf" (size: 14, spacing: 0)
#define CYBER_STYLE_FONT_ATLAS_COMP_SIZE 2286
// Font atlas image pixels data: DEFLATE compressed
static unsigned char cyberFontData[CYBER_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed,
0xdd, 0x81, 0x6e, 0xdb, 0x36, 0x10, 0x06, 0x60, 0x21, 0xef, 0xff, 0xc6, 0x99, 0xf6, 0x0f, 0xe8, 0xd0, 0x2d, 0x45, 0x6b,
0x89, 0x3c, 0x92, 0xb2, 0xec, 0x7c, 0xfd, 0x80, 0x61, 0x88, 0x62, 0x5b, 0xa2, 0x78, 0xe4, 0x49, 0x0a, 0xcf, 0xd9, 0x00,
0x00, 0x00, 0x00, 0x26, 0xcb, 0xc5, 0x9f, 0x96, 0xe6, 0x9f, 0xce, 0x3b, 0xa2, 0x9f, 0xff, 0x9e, 0x7b, 0xec, 0xfa, 0x57,
0x7f, 0xbb, 0xe7, 0xe1, 0xb9, 0xd3, 0x9e, 0x5f, 0x7f, 0x92, 0xc3, 0xdf, 0x4d, 0xa9, 0x75, 0x73, 0x7a, 0xc6, 0x8e, 0xcf,
0x4c, 0x5f, 0xbc, 0x3d, 0xde, 0x87, 0x74, 0xbf, 0x62, 0xe5, 0xc8, 0xf8, 0xf3, 0xdf, 0xde, 0xd5, 0xdf, 0x8f, 0x7b, 0x71,
0x5b, 0x2f, 0xcf, 0xc9, 0x1e, 0xa5, 0xe1, 0x37, 0xce, 0x5e, 0xbf, 0x0d, 0xec, 0xfd, 0x7e, 0xe9, 0x5c, 0x94, 0xd3, 0x31,
0x63, 0x5b, 0x70, 0x34, 0x19, 0x3c, 0x97, 0x19, 0x1e, 0xd1, 0xda, 0xe3, 0xff, 0xac, 0x5f, 0xe4, 0xb7, 0xff, 0x6e, 0xa5,
0x48, 0xcb, 0xc2, 0xf8, 0xdf, 0xba, 0xc6, 0x97, 0xf5, 0x79, 0x51, 0x1a, 0x22, 0xbd, 0xff, 0x35, 0xad, 0x47, 0x5b, 0x1b,
0xf1, 0xd2, 0xfc, 0xbb, 0x29, 0x1d, 0xf1, 0xac, 0x33, 0xd2, 0x3b, 0x72, 0x9e, 0xb5, 0xc6, 0x8a, 0xa3, 0xf9, 0xfa, 0xb3,
0xcf, 0xc1, 0xd7, 0xef, 0xcb, 0xc7, 0xc8, 0xbd, 0xa1, 0xa5, 0xf6, 0xf2, 0x27, 0xa6, 0x90, 0xcd, 0xcd, 0x3a, 0xfb, 0xab,
0xf3, 0xc2, 0x94, 0x63, 0x29, 0x43, 0x67, 0xef, 0xf8, 0x73, 0xab, 0xf3, 0xf7, 0xda, 0x11, 0xaf, 0x3f, 0xd7, 0xcf, 0xa4,
0xd1, 0xbc, 0x36, 0x9a, 0xfd, 0x6c, 0xa9, 0x2c, 0x88, 0xdf, 0x79, 0x63, 0xf1, 0xcc, 0x1c, 0x69, 0x24, 0xef, 0x3c, 0xda,
0xf6, 0xf9, 0x43, 0xfb, 0x5e, 0xbd, 0xca, 0xfc, 0x9f, 0x81, 0xf3, 0x97, 0x52, 0x3b, 0x9f, 0xe5, 0x94, 0xad, 0x47, 0x7c,
0xfc, 0xe9, 0x7b, 0xe1, 0x98, 0x3f, 0xb2, 0xff, 0x67, 0x9b, 0x92, 0xd3, 0x66, 0xe2, 0xb9, 0x4c, 0xf7, 0xb5, 0xd2, 0xbf,
0x71, 0x5b, 0xcf, 0x99, 0x93, 0xbf, 0x7f, 0xd8, 0x17, 0xe7, 0x62, 0x57, 0xc4, 0xff, 0xff, 0xa3, 0x58, 0x06, 0x22, 0x36,
0x83, 0x33, 0xcc, 0xdc, 0xeb, 0xff, 0x71, 0xfb, 0xd0, 0xf9, 0xcb, 0xf4, 0xab, 0xda, 0xff, 0xa3, 0x37, 0xa5, 0xfc, 0x21,
0xd3, 0x46, 0xd9, 0x7d, 0xe1, 0xbd, 0xe4, 0x2c, 0xca, 0xd2, 0x1e, 0xcd, 0xff, 0xd7, 0x65, 0x3b, 0x6b, 0xae, 0x96, 0x7a,
0xee, 0x9d, 0x56, 0xaf, 0xff, 0xd3, 0x38, 0xba, 0xac, 0x8b, 0xff, 0xeb, 0xfd, 0x35, 0x78, 0xfe, 0x72, 0xf1, 0xf5, 0xf9,
0x9c, 0x2b, 0xf4, 0x7a, 0xc6, 0xb3, 0xf6, 0xfa, 0xff, 0xaa, 0x11, 0x63, 0x45, 0xfe, 0x9f, 0x17, 0xcf, 0xff, 0x7b, 0xee,
0xff, 0xe7, 0x4d, 0xe2, 0x3f, 0xc3, 0x4f, 0xa4, 0x32, 0xfd, 0xfe, 0x7c, 0x5b, 0xb6, 0x3b, 0xf6, 0x7c, 0x21, 0x43, 0x47,
0x3c, 0xeb, 0x5e, 0x4c, 0x26, 0xfd, 0x6e, 0x1a, 0x67, 0xc5, 0xda, 0xfd, 0xdd, 0xe7, 0xde, 0xff, 0xf7, 0xfc, 0x1f, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x9e, 0xd5, 0x9d, 0xb9, 0xe0, 0x75, 0x95,
0x55, 0xb4, 0x23, 0xab, 0x6e, 0x47, 0xd6, 0xec, 0x56, 0x5f, 0x79, 0x5e, 0x87, 0xa8, 0xbe, 0xce, 0xb8, 0x7d, 0x95, 0x73,
0xdf, 0xba, 0xe1, 0xb1, 0xea, 0x28, 0x39, 0x5d, 0x47, 0xdf, 0x56, 0x8f, 0xe0, 0xbc, 0x76, 0xeb, 0x59, 0x25, 0xab, 0xf5,
0xb5, 0x5f, 0x57, 0xd6, 0xa6, 0x4c, 0xb9, 0x05, 0x7b, 0x56, 0xbf, 0xa7, 0xab, 0x3e, 0x41, 0x75, 0x1d, 0xfa, 0x75, 0x55,
0x01, 0xc7, 0x57, 0xc8, 0x1f, 0xbf, 0xf3, 0xbe, 0xfc, 0x28, 0xda, 0xf7, 0x38, 0x13, 0xce, 0xd9, 0x8a, 0xf8, 0xcf, 0x61,
0x45, 0x80, 0x5c, 0x58, 0xdb, 0x75, 0x5d, 0x25, 0xdc, 0x75, 0x95, 0x76, 0xce, 0xe3, 0xbf, 0xbd, 0x66, 0x73, 0x26, 0x47,
0x6b, 0xca, 0xd1, 0x33, 0x6b, 0x04, 0xa8, 0x8c, 0x5b, 0x33, 0xe2, 0xbf, 0x9a, 0x3b, 0xbc, 0x76, 0xfc, 0x57, 0xeb, 0x89,
0xe5, 0xe0, 0xbc, 0xa7, 0xb1, 0x6f, 0xdf, 0x61, 0xfb, 0x76, 0xd3, 0xf8, 0x3f, 0x8f, 0xa9, 0x0c, 0x57, 0x29, 0x9e, 0xd7,
0x9f, 0xe6, 0xd9, 0x9b, 0xa2, 0xb4, 0x56, 0xd3, 0x73, 0x2f, 0x8f, 0x2c, 0xab, 0xf2, 0xff, 0x9c, 0x5c, 0x79, 0xa4, 0x29,
0x97, 0x9d, 0x3b, 0xc6, 0xb6, 0x8e, 0x5a, 0x8f, 0x2b, 0x8a, 0x9d, 0xd5, 0x2b, 0x7c, 0xfe, 0xfc, 0x3e, 0x56, 0x4f, 0xf9,
0x9a, 0xf8, 0x1f, 0x8f, 0xc4, 0x3c, 0x65, 0xce, 0x9a, 0x73, 0x6f, 0x22, 0xc5, 0x79, 0x6b, 0xcd, 0x6b, 0xaf, 0x98, 0xff,
0xf3, 0x52, 0xf3, 0x7f, 0xcb, 0xf5, 0x7f, 0x26, 0x5c, 0xbd, 0xd6, 0x5a, 0x6d, 0x6f, 0x3e, 0x97, 0x2b, 0xf2, 0xff, 0x96,
0x99, 0x7d, 0x7c, 0xfe, 0x1f, 0xd9, 0x9a, 0xe6, 0x59, 0xf8, 0xfa, 0xf8, 0x6f, 0x3b, 0xa6, 0x5c, 0xfa, 0xda, 0xd7, 0x8b,
0xff, 0xdc, 0xe2, 0xfe, 0x5f, 0x16, 0xd6, 0x66, 0xce, 0x94, 0xd1, 0x6d, 0x4d, 0xfc, 0xb7, 0xd5, 0x43, 0x1f, 0xb9, 0xfe,
0x1f, 0x8b, 0xf0, 0xf3, 0x08, 0xf8, 0x4b, 0xfc, 0x4f, 0xca, 0xff, 0x67, 0xbd, 0xba, 0xff, 0x5e, 0xc9, 0xc8, 0x0c, 0xda,
0x7e, 0x4c, 0x99, 0x9e, 0x7f, 0x8f, 0xd6, 0xf6, 0x5d, 0x9d, 0xff, 0xcf, 0x7a, 0xfd, 0x56, 0x3e, 0xef, 0xe7, 0x5b, 0xc6,
0x7a, 0xe5, 0xf6, 0x84, 0x6f, 0x73, 0x58, 0xfd, 0x7c, 0xcf, 0x77, 0x94, 0xbe, 0xdf, 0x53, 0x6c, 0x6d, 0x70, 0xef, 0xe7,
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x5e, 0x65, 0x75, 0xbf, 0x15,
0x53, 0x69, 0x58, 0x1f, 0xda, 0x52, 0x3f, 0xf3, 0xb8, 0xfa, 0xe6, 0xa3, 0x1a, 0x12, 0x7b, 0x53, 0xed, 0xcd, 0x59, 0xad,
0xd9, 0x5a, 0x07, 0x61, 0xb4, 0x4e, 0x67, 0xe5, 0xdd, 0x5b, 0x5a, 0xf9, 0x7c, 0xcd, 0x63, 0x4e, 0xd6, 0x01, 0x6f, 0x13,
0x7b, 0xe0, 0xf9, 0x9a, 0xe7, 0x0c, 0xd4, 0x5c, 0x18, 0xa9, 0x22, 0x98, 0x85, 0x2b, 0x4c, 0x53, 0x6a, 0x95, 0xf6, 0x0a,
0x1c, 0xad, 0x5b, 0x33, 0xa9, 0xca, 0xc3, 0xea, 0x7e, 0x3d, 0x63, 0x6b, 0x7f, 0x1d, 0x85, 0x67, 0xc4, 0xff, 0x71, 0x0f,
0xc9, 0xe4, 0xb3, 0xdd, 0xf7, 0xd3, 0xb3, 0xd8, 0x7f, 0x5c, 0x5b, 0xf9, 0xa3, 0xb1, 0xdf, 0xf4, 0x6c, 0xcf, 0xf0, 0x59,
0xce, 0x60, 0x25, 0x84, 0xbd, 0x73, 0xbe, 0x69, 0x8f, 0xfe, 0xb1, 0x9e, 0xb7, 0x6e, 0x05, 0xfc, 0x3b, 0xc5, 0xff, 0x56,
0xac, 0x58, 0xb8, 0x3a, 0xfe, 0xb7, 0xa6, 0x7d, 0xca, 0xb4, 0x23, 0x9a, 0x57, 0x7d, 0xfb, 0xa3, 0x3b, 0xc7, 0x9a, 0x53,
0xcb, 0x2a, 0x17, 0xd6, 0x7a, 0x48, 0x47, 0xef, 0xaa, 0x8e, 0x00, 0x29, 0xce, 0xff, 0xfd, 0x2d, 0x3d, 0x2b, 0xc7, 0x78,
0xcd, 0xf8, 0xaf, 0xb5, 0x66, 0x06, 0xce, 0xf0, 0xda, 0xf9, 0x7f, 0x66, 0xe5, 0xee, 0x4a, 0x74, 0xec, 0x0f, 0xde, 0x65,
0x2f, 0xcf, 0xce, 0xf5, 0xab, 0x83, 0xad, 0xe9, 0x3b, 0x19, 0xf6, 0xee, 0xd7, 0xe5, 0x97, 0xf8, 0xcc, 0x92, 0x6b, 0xf4,
0x1c, 0xb4, 0x70, 0xb5, 0x1a, 0x69, 0x6f, 0xfc, 0xe7, 0xd2, 0xf9, 0x7f, 0x6b, 0xfc, 0xf6, 0x8c, 0xad, 0x74, 0xbe, 0xb6,
0xe2, 0xbb, 0xd6, 0x5f, 0x99, 0xd3, 0x1e, 0xbb, 0xa6, 0x1e, 0xed, 0xcc, 0x6f, 0xe8, 0xc8, 0x84, 0x7e, 0x9b, 0x93, 0x4f,
0x48, 0x31, 0x07, 0xef, 0xcd, 0xfc, 0x7b, 0xc6, 0xd9, 0x74, 0xdc, 0x19, 0xc8, 0xc1, 0x18, 0x98, 0x45, 0x39, 0xf8, 0xcc,
0x79, 0x30, 0x53, 0xf3, 0xb5, 0x75, 0x77, 0x17, 0x57, 0x66, 0x74, 0xd7, 0xbc, 0xdb, 0xb3, 0xda, 0xe4, 0xca, 0xf9, 0x3f,
0xdd, 0xd9, 0xee, 0xc8, 0xfc, 0x9f, 0xe1, 0x3a, 0x99, 0x67, 0xb9, 0xdf, 0x76, 0xbb, 0xf9, 0xbf, 0x2d, 0x36, 0x73, 0x79,
0xfe, 0x2f, 0xfe, 0xaf, 0x7e, 0xd2, 0xb2, 0xbd, 0x44, 0xfc, 0xaf, 0xbd, 0xfe, 0x9f, 0x33, 0x82, 0x54, 0x67, 0xd9, 0x6d,
0xf1, 0x33, 0x82, 0xfa, 0xab, 0xd6, 0xc5, 0xff, 0xf6, 0xad, 0xaa, 0x35, 0xbe, 0x5b, 0x6d, 0xca, 0x67, 0xc4, 0x7f, 0x4b,
0xfe, 0x9f, 0xe2, 0xfd, 0xff, 0xf6, 0x6f, 0xd8, 0x4a, 0x57, 0xce, 0xd2, 0x9e, 0x77, 0xbc, 0x67, 0x8f, 0xe0, 0x9d, 0x47,
0xb4, 0xb1, 0xe7, 0xff, 0x77, 0x1b, 0x83, 0xc7, 0xbe, 0x53, 0xe5, 0x3b, 0xf7, 0x7f, 0x75, 0x97, 0xf1, 0xd7, 0x72, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0x5e, 0xb7, 0x90, 0x4b, 0xd7, 0xcb, 0x57, 0xeb,
0xd6, 0xf5, 0xaf, 0x58, 0xcd, 0xa4, 0x96, 0xc9, 0xa4, 0xb3, 0xb5, 0x37, 0xac, 0xce, 0xcf, 0x60, 0xbb, 0x67, 0xf8, 0x77,
0xd2, 0xb0, 0x22, 0x2c, 0xa5, 0x33, 0x7c, 0xbf, 0x75, 0xab, 0x23, 0xab, 0x06, 0x33, 0xb5, 0x75, 0x67, 0x9e, 0xef, 0x9c,
0x56, 0xc3, 0xfe, 0x6a, 0x2f, 0x56, 0x5f, 0x49, 0x69, 0xc5, 0x64, 0xca, 0xb5, 0x09, 0x7a, 0xc7, 0xbb, 0x74, 0xb6, 0x59,
0xef, 0xb9, 0xfe, 0xda, 0xc6, 0xad, 0x55, 0x66, 0xbe, 0x6e, 0xdf, 0xcb, 0x3d, 0xfb, 0x73, 0xa8, 0xdf, 0xa7, 0x3c, 0x42,
0x6f, 0x53, 0xea, 0x7a, 0xb7, 0x54, 0xe3, 0xd8, 0x1b, 0xd6, 0xd0, 0x67, 0xb8, 0x36, 0x58, 0xca, 0xed, 0x30, 0xb3, 0xe7,
0x8d, 0x7d, 0xda, 0xd9, 0x5a, 0xed, 0x0c, 0xcc, 0xa0, 0x29, 0xd6, 0xbf, 0xcb, 0x60, 0x65, 0x88, 0x1c, 0xac, 0xf1, 0xce,
0xb2, 0xf5, 0xed, 0xe9, 0x8c, 0xfe, 0xf6, 0xe3, 0x4d, 0x73, 0x9b, 0xb6, 0xd5, 0xab, 0xfe, 0xb8, 0x7d, 0x56, 0xba, 0x97,
0x66, 0x9b, 0x5a, 0x9b, 0x5e, 0x9d, 0x6f, 0xdc, 0xbd, 0xb6, 0xc7, 0x79, 0xf5, 0xb1, 0xf5, 0xd7, 0x06, 0x95, 0x5a, 0x2c,
0xf3, 0xe2, 0x3f, 0xdd, 0x15, 0xa5, 0xf6, 0xa1, 0xab, 0x8e, 0xbe, 0xf8, 0x6f, 0x7b, 0xdf, 0x94, 0xe6, 0xff, 0xb3, 0xf8,
0x5b, 0xbb, 0x7d, 0xb4, 0xda, 0x7e, 0x35, 0xfe, 0xfb, 0xfb, 0x40, 0x16, 0xd4, 0x48, 0x3d, 0xcb, 0x4a, 0x2a, 0x5b, 0xc6,
0xaf, 0xb1, 0xd7, 0xc5, 0xff, 0x51, 0xeb, 0x8d, 0xe6, 0x1b, 0xb3, 0xe6, 0xff, 0x0c, 0xe7, 0xff, 0xad, 0x7d, 0x35, 0xcd,
0xdf, 0x2f, 0xd4, 0x92, 0x53, 0x1d, 0x55, 0x77, 0xde, 0x4f, 0xbf, 0x29, 0x63, 0x2b, 0x7e, 0x1b, 0xc6, 0xea, 0xed, 0x3d,
0xe3, 0xf6, 0x9c, 0xca, 0x9d, 0xd7, 0x6f, 0x9d, 0x31, 0xf6, 0xdd, 0x23, 0xfe, 0xb3, 0x28, 0xd3, 0xc9, 0x50, 0xbb, 0xa6,
0x6b, 0xdf, 0xaf, 0xb9, 0xbb, 0x94, 0xcb, 0xaa, 0x8a, 0xce, 0xf9, 0x2e, 0x8c, 0x75, 0xdb, 0x5b, 0xc7, 0xc1, 0xfd, 0x82,
0xf9, 0x7f, 0xe5, 0x1d, 0xd0, 0x7a, 0x55, 0xf8, 0x6b, 0xe2, 0xff, 0x59, 0xd7, 0x46, 0xeb, 0xfa, 0x76, 0x4f, 0xfc, 0xe7,
0xe2, 0xe3, 0xb8, 0x3e, 0xfe, 0x3f, 0xfe, 0x18, 0x41, 0xe9, 0xc8, 0x6b, 0xd7, 0x6c, 0x9f, 0x39, 0xbe, 0x8c, 0x8e, 0x75,
0xcf, 0xc9, 0xff, 0x9f, 0x1f, 0xff, 0x77, 0xbe, 0x43, 0x91, 0x37, 0xba, 0x43, 0x93, 0x5f, 0xee, 0xb2, 0x5c, 0xf7, 0x3c,
0xb6, 0x7e, 0xfd, 0xfd, 0x5a, 0xdb, 0xc7, 0xee, 0xff, 0x7f, 0xdf, 0xfc, 0xff, 0xce, 0x7f, 0xb3, 0xe0, 0xef, 0x36, 0x56,
0xb6, 0xd3, 0xfd, 0xe3, 0x7b, 0xfe, 0xc8, 0xfc, 0xe8, 0x6e, 0xc8, 0xf7, 0xcd, 0xff, 0xef, 0xff, 0x17, 0x4b, 0xaa, 0xad,
0x5e, 0x71, 0x4d, 0x72, 0xc7, 0xfb, 0x7b, 0xb3, 0xfb, 0xfb, 0xd1, 0xbd, 0xd0, 0x55, 0xf9, 0xff, 0x76, 0xf3, 0xfb, 0xff,
0xf0, 0x9a, 0xe3, 0x13, 0x20, 0xfe, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xf7, 0xaf, 0x29,
0x53, 0x5e, 0x37, 0x91, 0x1f, 0x6b, 0xc8, 0x3f, 0x06, 0x56, 0x23, 0xad, 0xab, 0x22, 0x7b, 0x5c, 0x03, 0xeb, 0x73, 0xe0,
0xef, 0x47, 0xd7, 0x1e, 0x57, 0x26, 0xad, 0x1f, 0x7d, 0xc6, 0x91, 0xa5, 0x78, 0xae, 0xc6, 0xd7, 0x32, 0xe7, 0xb7, 0xff,
0x9f, 0xbb, 0xd6, 0xf7, 0x71, 0xbd, 0x84, 0xb1, 0x33, 0xd2, 0xb3, 0xf2, 0xf0, 0x5e, 0x15, 0x0a, 0xf7, 0x1f, 0xed, 0x91,
0xc3, 0x3a, 0x92, 0x77, 0xae, 0x22, 0xbb, 0x97, 0xaa, 0xcb, 0xac, 0x3f, 0xae, 0xb1, 0x78, 0xc8, 0x49, 0x5d, 0xcf, 0xe7,
0x54, 0xbb, 0x3d, 0x3b, 0x57, 0xc7, 0xb5, 0xb0, 0xf7, 0xc6, 0xf5, 0xf2, 0xc7, 0x55, 0x91, 0x33, 0x38, 0xfa, 0x9d, 0x47,
0x7f, 0x4a, 0x47, 0xf7, 0xa7, 0x33, 0x96, 0xe6, 0x4f, 0xc8, 0xa4, 0xea, 0x5c, 0xc7, 0xad, 0xb1, 0xbf, 0xf0, 0x4a, 0xe1,
0xbd, 0x2b, 0xfe, 0xf3, 0x25, 0x43, 0xc8, 0x0b, 0xae, 0x6e, 0x69, 0x1d, 0x8f, 0x5f, 0x6b, 0xe5, 0x4c, 0x9a, 0x57, 0x84,
0x8f, 0x54, 0xdc, 0xb1, 0x9e, 0xaa, 0xbd, 0x27, 0x9e, 0xf7, 0xd3, 0x7b, 0x57, 0x91, 0xfd, 0x3c, 0x39, 0xae, 0xbc, 0x6c,
0xf5, 0x9b, 0xb6, 0x56, 0x49, 0x21, 0x3b, 0x78, 0xd6, 0xd6, 0xe3, 0x2c, 0xee, 0x4f, 0xf3, 0x7f, 0x2d, 0xb3, 0x79, 0xd6,
0xb1, 0xb7, 0xee, 0x6b, 0x96, 0x5c, 0x09, 0xb6, 0xf4, 0x84, 0x1c, 0x66, 0x5b, 0xaf, 0x18, 0x27, 0x2d, 0x99, 0xe8, 0x3d,
0xf7, 0x3b, 0x8d, 0xbd, 0x21, 0x07, 0x79, 0xf8, 0x5d, 0xeb, 0xde, 0x8e, 0x8c, 0x4a, 0x69, 0xb8, 0xc2, 0x6f, 0xc9, 0x0e,
0xf6, 0x4b, 0xb7, 0xde, 0x35, 0xfe, 0x5b, 0xe6, 0xff, 0xbc, 0x69, 0xfc, 0xef, 0x37, 0xdf, 0xef, 0xfa, 0xf7, 0x9f, 0xb5,
0xce, 0xff, 0xf7, 0xda, 0x3a, 0x33, 0x83, 0x7f, 0x7c, 0xbf, 0x6d, 0x5d, 0xa5, 0xcf, 0xfe, 0xfb, 0x8e, 0xaf, 0x11, 0xff,
0x77, 0x9e, 0x27, 0xeb, 0xf1, 0xff, 0xf9, 0x02, 0xfb, 0x9d, 0xd2, 0x1d, 0x9d, 0xb3, 0xf8, 0xdf, 0x6f, 0xb9, 0x75, 0x66,
0x65, 0xab, 0xea, 0xb3, 0xaa, 0x95, 0x95, 0x3e, 0xef, 0x1b, 0xff, 0x2d, 0xf9, 0xd2, 0xab, 0x5e, 0x27, 0x6f, 0xc3, 0x11,
0x74, 0xd7, 0xf8, 0x3f, 0x7f, 0xf2, 0x50, 0x7f, 0x42, 0xf6, 0x8c, 0xad, 0xfb, 0x45, 0x77, 0xf0, 0x9e, 0x77, 0xec, 0xcf,
0x8b, 0xff, 0x91, 0x0a, 0x85, 0xc7, 0xf7, 0x5d, 0xee, 0x70, 0x9d, 0xbc, 0xa2, 0x1e, 0xe2, 0x3d, 0xf6, 0x3b, 0x8b, 0xe6,
0xa2, 0x7b, 0x3f, 0xc9, 0x71, 0x07, 0xff, 0x9e, 0x4f, 0x0d, 0x6a, 0xfd, 0x78, 0xf5, 0xf6, 0x67, 0xf5, 0xc6, 0x2b, 0xf6,
0x5b, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xa7, 0x95, 0x3c, 0x39, 0x59,
0x05, 0xbc, 0x75, 0xd5, 0x2e, 0xfa, 0x55, 0xb5, 0x66, 0x6a, 0x26, 0x54, 0xc9, 0x7c, 0xb4, 0xf6, 0x66, 0xbf, 0xfc, 0x68,
0xb6, 0xc1, 0x77, 0x86, 0xab, 0x56, 0xf3, 0xfd, 0x69, 0xbd, 0x78, 0xb5, 0xcf, 0x57, 0x6b, 0xa6, 0x8e, 0xd5, 0x8b, 0x3d,
0x5b, 0x29, 0xfd, 0x59, 0x1c, 0xcf, 0x56, 0x55, 0x80, 0x3d, 0x7a, 0xe7, 0xf3, 0x7a, 0xbe, 0xd6, 0x03, 0x32, 0x1e, 0xfd,
0xdf, 0xa1, 0x07, 0x65, 0x59, 0x5e, 0xb1, 0x72, 0x9f, 0x3f, 0xf4, 0x50, 0x9e, 0x94, 0x03, 0xb4, 0xad, 0x65, 0xdf, 0x6f,
0xb5, 0xf5, 0xf1, 0x3e, 0xa7, 0xb1, 0xb2, 0xdf, 0xbd, 0xb6, 0x8e, 0xd4, 0xf3, 0x85, 0x96, 0x2b, 0xe2, 0xf3, 0xaa, 0xa8,
0xaf, 0xb3, 0xb5, 0xe5, 0x68, 0xb7, 0x37, 0x39, 0x56, 0xf1, 0xcf, 0xac, 0x39, 0xff, 0x9d, 0x7a, 0x7d, 0x86, 0xda, 0x42,
0xfc, 0x23, 0xfe, 0xbf, 0x5b, 0xaf, 0x17, 0xff, 0x7c, 0xdf, 0xfc, 0x7f, 0x1f, 0xaa, 0x17, 0xbf, 0xdd, 0x6a, 0xeb, 0xf8,
0xb5, 0xd0, 0x7d, 0xb6, 0xde, 0xb5, 0x0a, 0x22, 0x70, 0xc5, 0x1d, 0xd8, 0xb1, 0x27, 0xb8, 0xc0, 0x6b, 0xe4, 0x60, 0x95,
0xb8, 0x36, 0xfb, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0xe2, 0xdf, 0x7f, 0xda, 0x01, 0xc4, 0x3f,
0xf0, 0xed, 0xe2, 0xff, 0x1f };
// Font glyphs rectangles data (on atlas)
static const Rectangle cyberFontRecs[189] = {
{ 4, 4, 4 , 14 },
{ 16, 4, 1 , 8 },
{ 25, 4, 4 , 3 },
{ 37, 4, 8 , 8 },
{ 53, 4, 8 , 9 },
{ 69, 4, 8 , 8 },
{ 85, 4, 8 , 8 },
{ 101, 4, 1 , 3 },
{ 110, 4, 4 , 9 },
{ 122, 4, 4 , 9 },
{ 134, 4, 5 , 6 },
{ 147, 4, 5 , 6 },
{ 160, 4, 2 , 2 },
{ 170, 4, 4 , 1 },
{ 182, 4, 1 , 1 },
{ 191, 4, 8 , 8 },
{ 207, 4, 8 , 8 },
{ 223, 4, 2 , 8 },
{ 233, 4, 8 , 8 },
{ 249, 4, 8 , 8 },
{ 265, 4, 8 , 8 },
{ 281, 4, 8 , 8 },
{ 297, 4, 8 , 8 },
{ 313, 4, 7 , 8 },
{ 328, 4, 8 , 8 },
{ 344, 4, 8 , 8 },
{ 360, 4, 1 , 4 },
{ 369, 4, 2 , 5 },
{ 379, 4, 4 , 8 },
{ 391, 4, 5 , 3 },
{ 404, 4, 4 , 8 },
{ 416, 4, 7 , 8 },
{ 431, 4, 8 , 8 },
{ 447, 4, 8 , 8 },
{ 463, 4, 8 , 8 },
{ 479, 4, 8 , 8 },
{ 495, 4, 8 , 8 },
{ 4, 26, 7 , 8 },
{ 19, 26, 7 , 8 },
{ 34, 26, 8 , 8 },
{ 50, 26, 8 , 8 },
{ 66, 26, 5 , 8 },
{ 79, 26, 7 , 8 },
{ 94, 26, 8 , 8 },
{ 110, 26, 7 , 8 },
{ 125, 26, 8 , 8 },
{ 141, 26, 8 , 8 },
{ 157, 26, 8 , 8 },
{ 173, 26, 8 , 8 },
{ 189, 26, 8 , 9 },
{ 205, 26, 8 , 8 },
{ 221, 26, 8 , 8 },
{ 237, 26, 8 , 8 },
{ 253, 26, 8 , 8 },
{ 269, 26, 8 , 8 },
{ 285, 26, 9 , 8 },
{ 302, 26, 8 , 8 },
{ 318, 26, 8 , 8 },
{ 334, 26, 8 , 8 },
{ 350, 26, 4 , 9 },
{ 362, 26, 8 , 8 },
{ 378, 26, 4 , 9 },
{ 390, 26, 4 , 3 },
{ 402, 26, 7 , 1 },
{ 417, 26, 2 , 3 },
{ 427, 26, 7 , 5 },
{ 442, 26, 7 , 8 },
{ 457, 26, 7 , 5 },
{ 472, 26, 7 , 8 },
{ 487, 26, 7 , 5 },
{ 4, 48, 4 , 8 },
{ 16, 48, 7 , 7 },
{ 31, 48, 7 , 8 },
{ 46, 48, 1 , 8 },
{ 55, 48, 3 , 10 },
{ 66, 48, 7 , 8 },
{ 81, 48, 4 , 8 },
{ 93, 48, 9 , 5 },
{ 110, 48, 7 , 5 },
{ 125, 48, 7 , 5 },
{ 140, 48, 7 , 7 },
{ 155, 48, 7 , 7 },
{ 170, 48, 5 , 5 },
{ 183, 48, 7 , 5 },
{ 198, 48, 5 , 8 },
{ 211, 48, 7 , 5 },
{ 226, 48, 7 , 5 },
{ 241, 48, 9 , 5 },
{ 258, 48, 7 , 5 },
{ 273, 48, 7 , 7 },
{ 288, 48, 7 , 5 },
{ 303, 48, 4 , 9 },
{ 315, 48, 1 , 9 },
{ 324, 48, 4 , 9 },
{ 336, 48, 8 , 2 },
{ 352, 48, 1 , 8 },
{ 361, 48, 7 , 8 },
{ 376, 48, 7 , 8 },
{ 391, 48, 8 , 9 },
{ 407, 48, 8 , 9 },
{ 423, 48, 8 , 10 },
{ 439, 48, 4 , 9 },
{ 451, 48, 7 , 8 },
{ 466, 48, 8 , 8 },
{ 482, 48, 7 , 6 },
{ 497, 48, 5 , 3 },
{ 4, 70, 5 , 3 },
{ 17, 70, 8 , 8 },
{ 33, 70, 0 , 0 },
{ 41, 70, 4 , 3 },
{ 53, 70, 8 , 6 },
{ 69, 70, 4 , 5 },
{ 81, 70, 4 , 5 },
{ 93, 70, 8 , 10 },
{ 109, 70, 7 , 7 },
{ 124, 70, 5 , 7 },
{ 137, 70, 1 , 1 },
{ 146, 70, 7 , 8 },
{ 161, 70, 2 , 5 },
{ 171, 70, 4 , 5 },
{ 183, 70, 5 , 3 },
{ 196, 70, 14 , 8 },
{ 218, 70, 13 , 5 },
{ 239, 70, 8 , 9 },
{ 255, 70, 7 , 8 },
{ 270, 70, 8 , 10 },
{ 286, 70, 8 , 10 },
{ 302, 70, 8 , 10 },
{ 318, 70, 8 , 10 },
{ 334, 70, 8 , 9 },
{ 350, 70, 8 , 12 },
{ 366, 70, 14 , 8 },
{ 388, 70, 8 , 10 },
{ 404, 70, 7 , 10 },
{ 419, 70, 7 , 10 },
{ 434, 70, 7 , 10 },
{ 449, 70, 7 , 9 },
{ 464, 70, 5 , 10 },
{ 477, 70, 5 , 10 },
{ 490, 70, 5 , 10 },
{ 4, 92, 5 , 9 },
{ 17, 92, 8 , 8 },
{ 33, 92, 8 , 10 },
{ 49, 92, 8 , 10 },
{ 65, 92, 8 , 10 },
{ 81, 92, 8 , 10 },
{ 97, 92, 8 , 10 },
{ 113, 92, 8 , 9 },
{ 129, 92, 4 , 4 },
{ 141, 92, 8 , 8 },
{ 157, 92, 8 , 10 },
{ 173, 92, 8 , 10 },
{ 189, 92, 8 , 10 },
{ 205, 92, 8 , 9 },
{ 221, 92, 8 , 10 },
{ 237, 92, 7 , 9 },
{ 252, 92, 7 , 9 },
{ 267, 92, 7 , 8 },
{ 282, 92, 7 , 8 },
{ 297, 92, 7 , 8 },
{ 312, 92, 7 , 8 },
{ 327, 92, 7 , 8 },
{ 342, 92, 7 , 9 },
{ 357, 92, 13 , 5 },
{ 378, 92, 7 , 7 },
{ 393, 92, 7 , 8 },
{ 408, 92, 7 , 8 },
{ 423, 92, 7 , 8 },
{ 438, 92, 7 , 8 },
{ 453, 92, 3 , 8 },
{ 464, 92, 2 , 8 },
{ 474, 92, 3 , 8 },
{ 485, 92, 3 , 8 },
{ 4, 114, 8 , 8 },
{ 20, 114, 7 , 8 },
{ 35, 114, 7 , 8 },
{ 50, 114, 7 , 8 },
{ 65, 114, 7 , 8 },
{ 80, 114, 7 , 8 },
{ 95, 114, 7 , 8 },
{ 110, 114, 5 , 6 },
{ 123, 114, 7 , 5 },
{ 138, 114, 7 , 8 },
{ 153, 114, 7 , 8 },
{ 168, 114, 7 , 8 },
{ 183, 114, 7 , 8 },
{ 198, 114, 7 , 10 },
{ 213, 114, 7 , 10 },
{ 228, 114, 7 , 10 },
};
// Font glyphs info data
// NOTE: No glyphs.image data provided
static const GlyphInfo cyberFontGlyphs[189] = {
{ 32, 0, 11, 4, { 0 }},
{ 33, 0, 3, 2, { 0 }},
{ 34, 0, 3, 4, { 0 }},
{ 35, 0, 3, 8, { 0 }},
{ 36, 0, 3, 8, { 0 }},
{ 37, 0, 3, 8, { 0 }},
{ 38, 0, 3, 8, { 0 }},
{ 39, 0, 3, 2, { 0 }},
{ 40, 0, 3, 4, { 0 }},
{ 41, 0, 3, 4, { 0 }},
{ 42, 0, 4, 6, { 0 }},
{ 43, 0, 4, 6, { 0 }},
{ 44, 0, 10, 3, { 0 }},
{ 45, 0, 7, 5, { 0 }},
{ 46, 0, 10, 2, { 0 }},
{ 47, 0, 3, 8, { 0 }},
{ 48, 0, 3, 8, { 0 }},
{ 49, 0, 3, 3, { 0 }},
{ 50, 0, 3, 8, { 0 }},
{ 51, 0, 3, 8, { 0 }},
{ 52, 0, 3, 8, { 0 }},
{ 53, 0, 3, 8, { 0 }},
{ 54, 0, 3, 8, { 0 }},
{ 55, 0, 3, 7, { 0 }},
{ 56, 0, 3, 8, { 0 }},
{ 57, 0, 3, 8, { 0 }},
{ 58, 0, 6, 2, { 0 }},
{ 59, 0, 6, 3, { 0 }},
{ 60, 0, 3, 5, { 0 }},
{ 61, 0, 6, 6, { 0 }},
{ 62, 0, 3, 5, { 0 }},
{ 63, 0, 3, 7, { 0 }},
{ 64, 0, 3, 8, { 0 }},
{ 65, 0, 3, 8, { 0 }},
{ 66, 0, 3, 8, { 0 }},
{ 67, 0, 3, 8, { 0 }},
{ 68, 0, 3, 8, { 0 }},
{ 69, 0, 3, 7, { 0 }},
{ 70, 0, 3, 7, { 0 }},
{ 71, 0, 3, 8, { 0 }},
{ 72, 0, 3, 8, { 0 }},
{ 73, 0, 3, 6, { 0 }},
{ 74, 0, 3, 7, { 0 }},
{ 75, 0, 3, 8, { 0 }},
{ 76, 0, 3, 7, { 0 }},
{ 77, 0, 3, 9, { 0 }},
{ 78, 0, 3, 8, { 0 }},
{ 79, 0, 3, 8, { 0 }},
{ 80, 0, 3, 8, { 0 }},
{ 81, 0, 3, 8, { 0 }},
{ 82, 0, 3, 8, { 0 }},
{ 83, 0, 3, 8, { 0 }},
{ 84, 0, 3, 8, { 0 }},
{ 85, 0, 3, 8, { 0 }},
{ 86, 0, 3, 8, { 0 }},
{ 87, 0, 3, 10, { 0 }},
{ 88, 0, 3, 8, { 0 }},
{ 89, 0, 3, 8, { 0 }},
{ 90, 0, 3, 8, { 0 }},
{ 91, 0, 3, 4, { 0 }},
{ 92, 0, 3, 8, { 0 }},
{ 93, 0, 3, 4, { 0 }},
{ 94, 0, 3, 4, { 0 }},
{ 95, 0, 11, 7, { 0 }},
{ 96, 0, 3, 3, { 0 }},
{ 97, 0, 6, 7, { 0 }},
{ 98, 0, 3, 7, { 0 }},
{ 99, 0, 6, 7, { 0 }},
{ 100, 0, 3, 7, { 0 }},
{ 101, 0, 6, 7, { 0 }},
{ 102, 0, 3, 5, { 0 }},
{ 103, 0, 6, 7, { 0 }},
{ 104, 0, 3, 7, { 0 }},
{ 105, 0, 3, 2, { 0 }},
{ 106, -2, 3, 2, { 0 }},
{ 107, 0, 3, 7, { 0 }},
{ 108, 0, 3, 4, { 0 }},
{ 109, 0, 6, 10, { 0 }},
{ 110, 0, 6, 7, { 0 }},
{ 111, 0, 6, 7, { 0 }},
{ 112, 0, 6, 7, { 0 }},
{ 113, 0, 6, 7, { 0 }},
{ 114, 0, 6, 6, { 0 }},
{ 115, 0, 6, 7, { 0 }},
{ 116, 0, 3, 6, { 0 }},
{ 117, 0, 6, 7, { 0 }},
{ 118, 0, 6, 7, { 0 }},
{ 119, 0, 6, 10, { 0 }},
{ 120, 0, 6, 7, { 0 }},
{ 121, 0, 6, 7, { 0 }},
{ 122, 0, 6, 7, { 0 }},
{ 123, 0, 3, 5, { 0 }},
{ 124, 0, 3, 2, { 0 }},
{ 125, 0, 3, 5, { 0 }},
{ 126, 0, 6, 8, { 0 }},
{ 161, 0, 3, 2, { 0 }},
{ 162, 0, 4, 7, { 0 }},
{ 163, 0, 3, 7, { 0 }},
{ 8364, 0, 3, 9, { 0 }},
{ 165, 0, 3, 8, { 0 }},
{ 352, 0, 1, 8, { 0 }},
{ 167, 0, 4, 5, { 0 }},
{ 353, 0, 3, 7, { 0 }},
{ 169, 0, 3, 9, { 0 }},
{ 170, 0, 3, 7, { 0 }},
{ 171, 0, 6, 6, { 0 }},
{ 172, 0, 7, 6, { 0 }},
{ 174, 0, 3, 9, { 0 }},
{ 175, 0, 11, 3, { 0 }},
{ 176, 0, 3, 4, { 0 }},
{ 177, 0, 6, 8, { 0 }},
{ 178, 0, 3, 4, { 0 }},
{ 179, 0, 3, 4, { 0 }},
{ 381, 0, 1, 8, { 0 }},
{ 181, 0, 6, 7, { 0 }},
{ 182, 0, 4, 6, { 0 }},
{ 183, 0, 7, 2, { 0 }},
{ 382, 0, 3, 7, { 0 }},
{ 185, 0, 3, 4, { 0 }},
{ 186, 0, 3, 5, { 0 }},
{ 187, 0, 6, 6, { 0 }},
{ 338, 0, 3, 14, { 0 }},
{ 339, 0, 6, 13, { 0 }},
{ 376, 0, 2, 8, { 0 }},
{ 191, 0, 3, 7, { 0 }},
{ 192, 0, 1, 8, { 0 }},
{ 193, 0, 1, 8, { 0 }},
{ 194, 0, 1, 8, { 0 }},
{ 195, 0, 1, 8, { 0 }},
{ 196, 0, 2, 8, { 0 }},
{ 197, 0, -1, 8, { 0 }},
{ 198, 0, 3, 14, { 0 }},
{ 199, 0, 3, 8, { 0 }},
{ 200, 0, 1, 7, { 0 }},
{ 201, 0, 1, 7, { 0 }},
{ 202, 0, 1, 7, { 0 }},
{ 203, 0, 2, 7, { 0 }},
{ 204, 0, 1, 6, { 0 }},
{ 205, 0, 1, 6, { 0 }},
{ 206, 0, 1, 6, { 0 }},
{ 207, 0, 2, 6, { 0 }},
{ 208, 0, 3, 9, { 0 }},
{ 209, 0, 1, 8, { 0 }},
{ 210, 0, 1, 8, { 0 }},
{ 211, 0, 1, 8, { 0 }},
{ 212, 0, 1, 8, { 0 }},
{ 213, 0, 1, 8, { 0 }},
{ 214, 0, 2, 8, { 0 }},
{ 215, 1, 6, 6, { 0 }},
{ 216, 0, 3, 8, { 0 }},
{ 217, 0, 1, 8, { 0 }},
{ 218, 0, 1, 8, { 0 }},
{ 219, 0, 1, 8, { 0 }},
{ 220, 0, 2, 8, { 0 }},
{ 221, 0, 1, 8, { 0 }},
{ 222, 0, 3, 7, { 0 }},
{ 223, 0, 3, 7, { 0 }},
{ 224, 0, 3, 7, { 0 }},
{ 225, 0, 3, 7, { 0 }},
{ 226, 0, 3, 7, { 0 }},
{ 227, 0, 3, 7, { 0 }},
{ 228, 0, 3, 7, { 0 }},
{ 229, 0, 2, 7, { 0 }},
{ 230, 0, 6, 13, { 0 }},
{ 231, 0, 6, 7, { 0 }},
{ 232, 0, 3, 7, { 0 }},
{ 233, 0, 3, 7, { 0 }},
{ 234, 0, 3, 7, { 0 }},
{ 235, 0, 3, 7, { 0 }},
{ 236, -1, 3, 2, { 0 }},
{ 237, 0, 3, 2, { 0 }},
{ 238, -1, 3, 2, { 0 }},
{ 239, -1, 3, 2, { 0 }},
{ 240, 0, 3, 8, { 0 }},
{ 241, 0, 3, 7, { 0 }},
{ 242, 0, 3, 7, { 0 }},
{ 243, 0, 3, 7, { 0 }},
{ 244, 0, 3, 7, { 0 }},
{ 245, 0, 3, 7, { 0 }},
{ 246, 0, 3, 7, { 0 }},
{ 247, 0, 4, 6, { 0 }},
{ 248, 0, 6, 7, { 0 }},
{ 249, 0, 3, 7, { 0 }},
{ 250, 0, 3, 7, { 0 }},
{ 251, 0, 3, 7, { 0 }},
{ 252, 0, 3, 7, { 0 }},
{ 253, 0, 3, 7, { 0 }},
{ 254, 0, 3, 7, { 0 }},
{ 255, 0, 3, 7, { 0 }},
};
// Style loading function: Cyber
static void GuiLoadStyleCyber(void)
{
// Load style properties provided
// NOTE: Default properties are propagated
for (int i = 0; i < CYBER_STYLE_PROPS_COUNT; i++)
{
GuiSetStyle(cyberStyleProps[i].controlId, cyberStyleProps[i].propertyId, cyberStyleProps[i].propertyValue);
}
// Custom font loading
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
int cyberFontDataSize = 0;
unsigned char *data = DecompressData(cyberFontData, CYBER_STYLE_FONT_ATLAS_COMP_SIZE, &cyberFontDataSize);
Image imFont = { data, 512, 256, 1, 2 };
Font font = { 0 };
font.baseSize = 14;
font.glyphCount = 189;
// Load texture from image
font.texture = LoadTextureFromImage(imFont);
UnloadImage(imFont); // Uncompressed image data can be unloaded from memory
// Copy char recs data from global fontRecs
// NOTE: Required to avoid issues if trying to free font
font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle));
memcpy(font.recs, cyberFontRecs, font.glyphCount*sizeof(Rectangle));
// Copy font char info data from global fontChars
// NOTE: Required to avoid issues if trying to free font
font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo));
memcpy(font.glyphs, cyberFontGlyphs, font.glyphCount*sizeof(GlyphInfo));
GuiSetFont(font);
// Setup a white rectangle on the font to be used on shapes drawing,
// it makes possible to draw shapes and text (full UI) in a single draw call
Rectangle fontWhiteRec = { 510, 254, 1, 1 };
SetShapesTexture(font.texture, fontWhiteRec);
//-----------------------------------------------------------------
// TODO: Custom user style setup: Set specific properties here (if required)
// i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT
}

View File

@ -0,0 +1,589 @@
//////////////////////////////////////////////////////////////////////////////////
// //
// StyleAsCode exporter v2.0 - Style data exported as a values array //
// //
// USAGE: On init call: GuiLoadStyleDark(); //
// //
// more info and bugs-report: github.com/raysan5/raygui //
// feedback and support: ray[at]raylibtech.com //
// //
// Copyright (c) 2020-2024 raylib technologies (@raylibtech) //
// //
//////////////////////////////////////////////////////////////////////////////////
#define DARK_STYLE_PROPS_COUNT 23
// Custom style name: Dark
static const GuiStyleProp darkStyleProps[DARK_STYLE_PROPS_COUNT] = {
{ 0, 0, 0x878787ff }, // DEFAULT_BORDER_COLOR_NORMAL
{ 0, 1, 0x2c2c2cff }, // DEFAULT_BASE_COLOR_NORMAL
{ 0, 2, 0xc3c3c3ff }, // DEFAULT_TEXT_COLOR_NORMAL
{ 0, 3, 0xe1e1e1ff }, // DEFAULT_BORDER_COLOR_FOCUSED
{ 0, 4, 0x848484ff }, // DEFAULT_BASE_COLOR_FOCUSED
{ 0, 5, 0x181818ff }, // DEFAULT_TEXT_COLOR_FOCUSED
{ 0, 6, 0x000000ff }, // DEFAULT_BORDER_COLOR_PRESSED
{ 0, 7, 0xefefefff }, // DEFAULT_BASE_COLOR_PRESSED
{ 0, 8, 0x202020ff }, // DEFAULT_TEXT_COLOR_PRESSED
{ 0, 9, 0x6a6a6aff }, // DEFAULT_BORDER_COLOR_DISABLED
{ 0, 10, 0x818181ff }, // DEFAULT_BASE_COLOR_DISABLED
{ 0, 11, 0x606060ff }, // DEFAULT_TEXT_COLOR_DISABLED
{ 0, 16, 0x00000010 }, // DEFAULT_TEXT_SIZE
{ 0, 17, 0x00000000 }, // DEFAULT_TEXT_SPACING
{ 0, 18, 0x9d9d9dff }, // DEFAULT_LINE_COLOR
{ 0, 19, 0x3c3c3cff }, // DEFAULT_BACKGROUND_COLOR
{ 0, 20, 0x00000018 }, // DEFAULT_TEXT_LINE_SPACING
{ 1, 5, 0xf7f7f7ff }, // LABEL_TEXT_COLOR_FOCUSED
{ 1, 8, 0x898989ff }, // LABEL_TEXT_COLOR_PRESSED
{ 4, 5, 0xb0b0b0ff }, // SLIDER_TEXT_COLOR_FOCUSED
{ 5, 5, 0x848484ff }, // PROGRESSBAR_TEXT_COLOR_FOCUSED
{ 9, 5, 0xf5f5f5ff }, // TEXTBOX_TEXT_COLOR_FOCUSED
{ 10, 5, 0xf6f6f6ff }, // VALUEBOX_TEXT_COLOR_FOCUSED
};
// WARNING: This style uses a custom font: "PixelOperator.ttf" (size: 16, spacing: 0)
#define DARK_STYLE_FONT_ATLAS_COMP_SIZE 2126
// Font atlas image pixels data: DEFLATE compressed
static unsigned char darkFontData[DARK_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed,
0xdd, 0xdb, 0x72, 0xa4, 0x3a, 0x12, 0x05, 0x50, 0xfd, 0xff, 0x4f, 0xe7, 0x3c, 0x4c, 0x4c, 0x4c, 0x74, 0x9c, 0xd3, 0x20,
0xa5, 0x52, 0x17, 0xec, 0xd5, 0xeb, 0xcd, 0xe5, 0x76, 0x51, 0xa0, 0x94, 0x84, 0x28, 0x36, 0xd1, 0x00, 0x00, 0x00, 0x80,
0x5f, 0x2f, 0xfe, 0xf5, 0x27, 0xf1, 0xd7, 0xdf, 0x8c, 0xee, 0xbf, 0xf3, 0xfc, 0xf3, 0xff, 0xbd, 0x1a, 0x0f, 0xef, 0xd5,
0xb7, 0xad, 0xa3, 0xef, 0x1b, 0x03, 0x7b, 0xe2, 0xdf, 0xb7, 0x2f, 0xba, 0xff, 0xee, 0xdf, 0x3e, 0xdf, 0xf8, 0xef, 0x3f,
0xfd, 0xa5, 0xe7, 0xad, 0x8f, 0xa1, 0xfd, 0x3e, 0xfe, 0x7f, 0xc6, 0x8e, 0x62, 0x2c, 0xd9, 0xf7, 0xef, 0x5b, 0x37, 0xbe,
0xed, 0x95, 0xff, 0x27, 0x1e, 0x3e, 0x4f, 0xe6, 0x28, 0xf5, 0xd4, 0xd6, 0x0d, 0xf5, 0x1f, 0x5d, 0x95, 0x18, 0xa5, 0x2d,
0xe7, 0xff, 0xef, 0x1a, 0x85, 0x3d, 0x55, 0x76, 0x4f, 0x3e, 0x55, 0xfa, 0xf8, 0xfe, 0x78, 0x6a, 0xfd, 0xe3, 0x3d, 0x60,
0x94, 0x7c, 0x96, 0xf9, 0xd6, 0x18, 0xd3, 0xbf, 0xdd, 0xd7, 0x92, 0x6a, 0x3e, 0xd5, 0xcc, 0x2b, 0xad, 0xe4, 0x28, 0x9d,
0xa8, 0xff, 0x48, 0xf7, 0x54, 0x31, 0x58, 0xd1, 0x15, 0x7b, 0x30, 0xd3, 0x0f, 0xb7, 0x8d, 0xf5, 0x1f, 0xa5, 0x73, 0x97,
0x28, 0x6b, 0x73, 0x27, 0xea, 0xff, 0x79, 0xd4, 0x6e, 0x25, 0xed, 0x26, 0x5e, 0xf6, 0x51, 0x6d, 0x2d, 0xaf, 0x9d, 0xa7,
0xae, 0xae, 0xff, 0xe7, 0xdf, 0x1c, 0x1d, 0x6f, 0x63, 0x70, 0xec, 0xae, 0xd8, 0x4f, 0xb9, 0xf1, 0xbf, 0x7e, 0x3f, 0xc6,
0x5f, 0xc7, 0xe6, 0xec, 0x3c, 0x64, 0x64, 0x0f, 0xc7, 0xe0, 0xd9, 0xd5, 0xec, 0x08, 0x7b, 0x72, 0xfc, 0xef, 0x9b, 0x0b,
0xaa, 0xff, 0xb5, 0xf5, 0x9f, 0xf9, 0x24, 0xd1, 0xb9, 0x05, 0x99, 0x31, 0xb1, 0x5d, 0x50, 0xff, 0xa3, 0xfd, 0xd0, 0xf3,
0xbe, 0xaa, 0x9a, 0xcb, 0x8f, 0xae, 0x4b, 0xf4, 0x9d, 0x61, 0xef, 0x6b, 0x85, 0xe3, 0x73, 0xa3, 0xf1, 0xfa, 0x1f, 0xef,
0x3d, 0xdf, 0xfe, 0xda, 0xe8, 0x5e, 0xfd, 0xfb, 0x99, 0xdd, 0xfc, 0x1e, 0xdf, 0x57, 0xff, 0x91, 0x18, 0x53, 0xce, 0xd7,
0x73, 0x4d, 0xfd, 0x47, 0x62, 0xe5, 0xa2, 0x95, 0xad, 0xf2, 0xe5, 0xd6, 0x25, 0xea, 0xd6, 0x0c, 0xce, 0x1f, 0x81, 0xf7,
0xfa, 0x7f, 0x3b, 0x1f, 0x3c, 0x3f, 0xfe, 0xc7, 0x15, 0xe3, 0x7f, 0xa4, 0xd7, 0x86, 0x5b, 0xa2, 0xf7, 0xfd, 0x5a, 0xfd,
0x47, 0xa2, 0x66, 0xa2, 0xe4, 0xbc, 0xbc, 0x2d, 0x59, 0xcb, 0xab, 0x5d, 0x33, 0xdc, 0x73, 0xb4, 0xde, 0x46, 0xd1, 0xaa,
0xb3, 0x9a, 0x9f, 0x55, 0xff, 0xad, 0x60, 0xfc, 0xef, 0x9b, 0x03, 0xcc, 0x7e, 0x8e, 0xf8, 0xd8, 0xe8, 0x5f, 0x59, 0xff,
0xbb, 0x56, 0xec, 0xd7, 0xb7, 0xc6, 0xb8, 0xe2, 0xc8, 0x58, 0xff, 0xaf, 0x9c, 0xff, 0xe7, 0xd7, 0x00, 0xc6, 0xce, 0x63,
0xe2, 0xd2, 0xea, 0xcf, 0x9c, 0x33, 0x57, 0x5d, 0xb1, 0xaf, 0xfd, 0x36, 0x41, 0x24, 0xbe, 0xab, 0x51, 0xb3, 0x8a, 0xb3,
0xfa, 0x18, 0x8c, 0x8f, 0xff, 0xbb, 0xae, 0xff, 0xbf, 0xcf, 0xb9, 0xef, 0x18, 0xff, 0xdb, 0xeb, 0xe8, 0x7e, 0xcb, 0xf6,
0x00, 0x7b, 0x7b, 0x80, 0x50, 0xfd, 0xe0, 0x7b, 0xc4, 0x80, 0xfa, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x0a, 0xbf, 0x9f, 0x5f, 0x9f, 0x63, 0x30, 0x9e, 0x84, 0xbd, 0x3e, 0x81, 0x7d, 0x26, 0x13, 0x38, 0xbb,
0x87, 0xaa, 0xfe, 0xe2, 0x73, 0x76, 0xfc, 0x48, 0xd2, 0x42, 0x7f, 0xcb, 0x88, 0xe1, 0xa7, 0x1f, 0x54, 0x26, 0x0a, 0x64,
0x32, 0x0d, 0xda, 0x60, 0x9b, 0xa8, 0xcd, 0x52, 0x1a, 0xdb, 0xfa, 0x3d, 0x2d, 0xfe, 0x0b, 0xf5, 0x7f, 0xfe, 0x95, 0x96,
0xc8, 0xef, 0xd9, 0x59, 0xff, 0xa3, 0x6d, 0x2f, 0x97, 0x8f, 0x3b, 0x37, 0x96, 0xec, 0x4e, 0x14, 0x8b, 0xc2, 0x63, 0xb8,
0x6f, 0x5c, 0xfd, 0x33, 0x43, 0x67, 0x47, 0xbb, 0x9e, 0xa9, 0xff, 0xd1, 0xec, 0xd3, 0x78, 0xe8, 0x85, 0xef, 0xa9, 0xff,
0xb6, 0xa5, 0xfe, 0xe3, 0x23, 0xf5, 0x5f, 0x9d, 0x24, 0x53, 0x95, 0x42, 0x9e, 0x49, 0xbe, 0x19, 0x3f, 0x86, 0xf9, 0x84,
0xdf, 0x6c, 0x8b, 0xfb, 0x4e, 0xfd, 0x67, 0xda, 0xd6, 0x73, 0xce, 0xaa, 0xfa, 0x7f, 0xdf, 0xb7, 0x99, 0xd1, 0x64, 0xfe,
0xe7, 0x35, 0x95, 0xbf, 0x27, 0x47, 0xf7, 0xed, 0x39, 0x5a, 0x6b, 0xdb, 0xca, 0xec, 0x58, 0xf9, 0x95, 0xfa, 0x8f, 0xe4,
0x5f, 0x89, 0x97, 0x1e, 0xa5, 0x36, 0x81, 0xbd, 0x26, 0xb5, 0x6d, 0x6f, 0xfd, 0x57, 0x3f, 0xf7, 0xe7, 0x8e, 0xfa, 0x3f,
0x9f, 0xa3, 0xbb, 0xea, 0x1c, 0xae, 0x76, 0xac, 0xfc, 0xd9, 0xe3, 0xff, 0x7b, 0x2f, 0xb9, 0xa3, 0x7d, 0xcc, 0x8c, 0xf4,
0x27, 0xc7, 0xff, 0x73, 0x3f, 0x3f, 0x5b, 0xff, 0x55, 0xad, 0x3d, 0x36, 0xce, 0x4c, 0xb2, 0x63, 0xe5, 0xce, 0x55, 0xb2,
0xdd, 0xe7, 0xff, 0xab, 0x3e, 0x59, 0x1b, 0x9e, 0x4d, 0xc4, 0xb5, 0xf5, 0x3f, 0xb3, 0x0a, 0xb9, 0x6e, 0xbe, 0x70, 0x66,
0xfe, 0x9f, 0x7b, 0xbe, 0x6d, 0xe6, 0xa9, 0x80, 0xb7, 0x8d, 0xff, 0xbb, 0xae, 0x92, 0xb5, 0xcd, 0x35, 0xb9, 0xf7, 0xbd,
0x2a, 0x9f, 0x52, 0x37, 0x9e, 0xdf, 0x1f, 0xc5, 0x33, 0xbc, 0xaf, 0xd7, 0x7f, 0x7e, 0x95, 0xbf, 0x15, 0xad, 0x4a, 0x9e,
0x9b, 0xff, 0xef, 0x7e, 0xd2, 0x49, 0xe6, 0x5d, 0x6a, 0xfa, 0xdf, 0xbe, 0xab, 0xc2, 0xb5, 0xa3, 0xc0, 0xdf, 0xaf, 0x36,
0x44, 0xd1, 0xc8, 0x51, 0x95, 0xdf, 0xff, 0xe7, 0xb6, 0x8d, 0x3f, 0xf1, 0x6c, 0xfc, 0x4a, 0x7c, 0x0c, 0x3e, 0x4f, 0xff,
0x44, 0xfd, 0x67, 0xde, 0x39, 0xf3, 0xbf, 0x46, 0x8f, 0x61, 0x65, 0xfd, 0x9f, 0xeb, 0x01, 0xe4, 0x6e, 0xc2, 0x8d, 0xb3,
0x18, 0xe0, 0xe7, 0xf4, 0x00, 0x9e, 0x70, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xec, 0xbe, 0x13, 0xfb, 0xef, 0xd9, 0x5c, 0x99, 0xd4, 0xf8, 0xf1, 0xfb, 0xa4, 0x77, 0x26, 0xe6, 0xb7, 0x97, 0x14, 0xb2,
0xe7, 0xdf, 0xfa, 0xf3, 0x95, 0x8a, 0x3c, 0xde, 0x28, 0xbc, 0x6b, 0xfd, 0x29, 0x93, 0xe4, 0x39, 0x4b, 0x71, 0x34, 0x77,
0xe0, 0x7d, 0x0f, 0x8f, 0x1f, 0x97, 0x99, 0xd7, 0x5a, 0x61, 0x9a, 0x42, 0x24, 0xd2, 0x5e, 0xde, 0xf6, 0x7a, 0x7f, 0x36,
0x70, 0x94, 0x6d, 0xf1, 0x58, 0x1d, 0x55, 0x65, 0x27, 0xdf, 0x9e, 0x98, 0x3f, 0x9f, 0xbc, 0x13, 0x2f, 0xad, 0xae, 0xbf,
0xfe, 0x7b, 0x92, 0x23, 0xd6, 0xe7, 0x18, 0xf5, 0xfc, 0x34, 0x93, 0x7a, 0x31, 0x96, 0xc1, 0x36, 0xd7, 0x06, 0x56, 0x8f,
0x50, 0x6d, 0xb2, 0x42, 0x62, 0xaa, 0xa5, 0xcc, 0x67, 0xff, 0xbd, 0x6f, 0x69, 0x1b, 0x1c, 0xb9, 0x6e, 0x48, 0xcc, 0x8c,
0xce, 0xfa, 0xaa, 0xfe, 0x69, 0x1b, 0xec, 0x6f, 0x32, 0x79, 0x75, 0x51, 0x9a, 0x44, 0x91, 0xff, 0x3f, 0x91, 0x48, 0x6d,
0x6e, 0xc9, 0x2c, 0xbe, 0x7c, 0x46, 0x7c, 0x26, 0xa7, 0x2a, 0x16, 0xef, 0xd9, 0x4c, 0xfd, 0xb7, 0x43, 0xf5, 0x9f, 0x49,
0x3d, 0x38, 0x9f, 0x98, 0x1d, 0xa9, 0xda, 0xdd, 0x5b, 0xff, 0xd1, 0xd1, 0x7f, 0x65, 0x66, 0xd7, 0x51, 0x78, 0xce, 0xf0,
0x3e, 0xe3, 0xad, 0x1e, 0xff, 0xdb, 0xe3, 0x7e, 0x1a, 0x4f, 0x75, 0x5b, 0x3f, 0x42, 0x65, 0x7a, 0x93, 0xb1, 0xfa, 0x5f,
0xdd, 0x63, 0xcd, 0x3c, 0x07, 0x29, 0x3e, 0x37, 0xfe, 0x9f, 0x49, 0xcc, 0x8e, 0xc4, 0xd9, 0x75, 0xe6, 0x7d, 0xeb, 0xd7,
0x5e, 0xa2, 0xb0, 0xfe, 0x33, 0x3d, 0x40, 0xbe, 0xfe, 0x77, 0xce, 0xa6, 0xb3, 0x79, 0x93, 0x31, 0xdd, 0x86, 0xce, 0xd4,
0x7f, 0xe5, 0xd3, 0x96, 0x56, 0x24, 0xe6, 0x8e, 0x3f, 0xd9, 0xf1, 0xd4, 0xf8, 0xdf, 0x52, 0xe3, 0x7f, 0x6e, 0x9c, 0xa8,
0x3b, 0xf6, 0xb5, 0x73, 0xe5, 0xf7, 0xfa, 0x8f, 0x0d, 0xef, 0xb6, 0xaf, 0xfe, 0x33, 0x3d, 0x61, 0x2c, 0x9b, 0xff, 0x67,
0xab, 0x25, 0x86, 0xe7, 0xd7, 0x3b, 0x13, 0x73, 0x33, 0xeb, 0xcc, 0xf7, 0xd7, 0x7f, 0xe5, 0x33, 0x4c, 0xda, 0x54, 0xfa,
0x72, 0x94, 0x8e, 0xc8, 0xfb, 0xc6, 0xff, 0x15, 0xb3, 0xe9, 0x4c, 0xfa, 0xfe, 0x3d, 0xeb, 0x7f, 0xad, 0xf8, 0x88, 0xb5,
0xe3, 0x79, 0x88, 0x2b, 0x66, 0x85, 0x27, 0xce, 0xff, 0xab, 0x12, 0xd8, 0x73, 0xe7, 0xff, 0xd5, 0x2b, 0xf2, 0x73, 0xc7,
0xf2, 0xde, 0xf1, 0x3f, 0xd7, 0x42, 0x62, 0x68, 0x7c, 0x6e, 0x9f, 0xaa, 0xff, 0x5b, 0xbe, 0xd1, 0x50, 0xd1, 0x6f, 0x45,
0x49, 0xef, 0x96, 0x79, 0x6e, 0x4b, 0xe5, 0x3c, 0xaa, 0x72, 0xfd, 0x6a, 0xe6, 0xfa, 0xff, 0xcc, 0xb7, 0x53, 0x56, 0xbf,
0x5b, 0xfe, 0xfa, 0xff, 0xda, 0xfa, 0x8f, 0xe2, 0x2d, 0xe6, 0x9e, 0x5e, 0xea, 0xe6, 0xf7, 0xd3, 0x7e, 0xee, 0x38, 0x82,
0x6a, 0x59, 0xeb, 0x39, 0x71, 0x3e, 0xc4, 0xef, 0x9a, 0x33, 0xf3, 0xd3, 0xbf, 0xe1, 0x6d, 0x3f, 0x18, 0x9b, 0x01, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xef, 0xde, 0xc3, 0x14, 0xaf, 0x77, 0x38, 0xbc, 0x65, 0x4b,
0x64, 0x72, 0x29, 0x5b, 0x69, 0xce, 0x5d, 0x4b, 0x24, 0xf3, 0x67, 0xb7, 0xae, 0x77, 0xaf, 0xac, 0xff, 0x64, 0xb3, 0x69,
0xe6, 0x99, 0xc4, 0xf9, 0xcc, 0x3e, 0x3e, 0x7b, 0x34, 0xdf, 0x32, 0x3c, 0x22, 0x91, 0xc6, 0x5a, 0x79, 0xbc, 0x5a, 0x6a,
0xdf, 0x65, 0x5b, 0x59, 0x6f, 0x0f, 0xd0, 0x9f, 0x0f, 0x53, 0x7f, 0x8f, 0x69, 0xa4, 0xf6, 0x79, 0x4d, 0x32, 0xff, 0x4c,
0x5b, 0x6a, 0xe9, 0x04, 0xe2, 0x6c, 0xab, 0xe9, 0xfd, 0x5b, 0x31, 0xfd, 0x97, 0xdf, 0xb3, 0x5a, 0xe3, 0x73, 0x47, 0x33,
0x9b, 0x17, 0x5f, 0x7d, 0xbc, 0x6a, 0xd3, 0xdb, 0x6a, 0x7a, 0x80, 0x8a, 0xfa, 0xaf, 0xdb, 0xca, 0xfd, 0xf7, 0xc6, 0x46,
0xf2, 0x7e, 0xfa, 0xf8, 0xfc, 0xfd, 0xa7, 0xf1, 0xd1, 0x24, 0x81, 0x5c, 0xca, 0xe4, 0xae, 0x4f, 0x95, 0xcb, 0xe5, 0xca,
0xa7, 0xb7, 0xed, 0x1c, 0xff, 0x33, 0x49, 0x52, 0x99, 0xb4, 0xd0, 0xea, 0x57, 0xb2, 0xbd, 0x65, 0xae, 0xfe, 0x33, 0x99,
0x4d, 0x51, 0x94, 0x67, 0x5c, 0xf7, 0xdc, 0x93, 0x48, 0xce, 0xaf, 0x4f, 0x1e, 0xcd, 0x78, 0x4d, 0x25, 0xaf, 0xca, 0xd8,
0xdd, 0xfb, 0x4a, 0x4c, 0x26, 0x3e, 0x44, 0xd7, 0xf1, 0x8e, 0xe9, 0xb1, 0x70, 0xd7, 0xd3, 0x02, 0x33, 0xcf, 0xa4, 0x68,
0xc9, 0xd4, 0xcc, 0x28, 0x9b, 0xe1, 0x57, 0xbf, 0xb2, 0xa2, 0xfe, 0xe3, 0xe1, 0x3c, 0xb9, 0xfa, 0x99, 0x65, 0xd5, 0x47,
0xb3, 0xa7, 0x67, 0xf8, 0x62, 0xfd, 0xaf, 0x9d, 0xa7, 0xd5, 0x9c, 0xff, 0x47, 0xfa, 0x59, 0x3c, 0x77, 0xb6, 0x98, 0xe8,
0x4c, 0x77, 0xfe, 0x69, 0xf5, 0xbf, 0x77, 0x1f, 0x57, 0xf7, 0xe6, 0xcf, 0x33, 0xec, 0xf6, 0xd1, 0xfa, 0x9f, 0x49, 0x8b,
0xaf, 0x39, 0x5f, 0x79, 0x5f, 0xff, 0xaf, 0x5c, 0xd9, 0xb8, 0xa3, 0xfe, 0x6f, 0xa9, 0xf2, 0xb1, 0x7d, 0xbe, 0xb6, 0xfe,
0xcf, 0xd7, 0xd0, 0x6c, 0xf2, 0xfb, 0xf9, 0x6d, 0x8f, 0xb2, 0xf3, 0xff, 0x9a, 0x75, 0xa1, 0xea, 0x79, 0xc4, 0x6d, 0x3d,
0xe8, 0xaa, 0xa7, 0xab, 0xbd, 0xcd, 0x1d, 0xaa, 0xcf, 0x77, 0xef, 0x18, 0xff, 0x43, 0xfd, 0x2f, 0x58, 0x0b, 0xaf, 0x1d,
0x25, 0xf3, 0x2b, 0xcc, 0x33, 0xfd, 0xc9, 0xf8, 0xb3, 0xec, 0x6b, 0x57, 0xc9, 0x32, 0x7d, 0x68, 0xcf, 0x2b, 0xf9, 0x27,
0x6e, 0x7c, 0x75, 0xfe, 0xdf, 0xf3, 0x54, 0xa0, 0x6f, 0xd5, 0x7f, 0x24, 0xd7, 0xb7, 0xee, 0xa8, 0xff, 0xb5, 0x57, 0x06,
0xd6, 0x5f, 0xcb, 0xbf, 0x79, 0xfe, 0xbf, 0xa2, 0xcf, 0xfb, 0x76, 0xfd, 0x7f, 0x61, 0x0e, 0xbd, 0xe6, 0x5b, 0x28, 0xe7,
0xea, 0x7f, 0x6e, 0xdc, 0x56, 0xff, 0x2b, 0x56, 0x8c, 0xf3, 0x9f, 0x7a, 0xc5, 0xf9, 0x7f, 0xef, 0x4c, 0xe3, 0xe7, 0xd7,
0x7f, 0x7d, 0xd2, 0xf9, 0x9a, 0xf3, 0xcd, 0x76, 0xe9, 0x77, 0x61, 0xee, 0xfa, 0x4e, 0xf2, 0x9e, 0x16, 0xb3, 0x66, 0xed,
0x23, 0xf3, 0x94, 0xde, 0xda, 0xa7, 0x39, 0xc5, 0xa2, 0x4a, 0xcf, 0x5d, 0xe5, 0xdd, 0x73, 0xfd, 0x7f, 0xef, 0x37, 0x8a,
0xaa, 0xb7, 0x50, 0xfd, 0x7f, 0xa3, 0x0f, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xdb,
0xee, 0xd0, 0xdb, 0x9b, 0xa8, 0x5f, 0x9f, 0x82, 0x71, 0x7b, 0xa2, 0xfe, 0xdb, 0x5d, 0x33, 0xed, 0xda, 0x44, 0xfd, 0xd6,
0x95, 0x4c, 0xf4, 0xbd, 0x44, 0xfd, 0xdf, 0x78, 0xc7, 0xc7, 0x6d, 0x89, 0xfa, 0x75, 0x77, 0x4e, 0xdf, 0x9e, 0xa8, 0xdf,
0x5e, 0xf2, 0x87, 0x6e, 0x4e, 0xd4, 0xcf, 0xdf, 0x3b, 0x75, 0x6b, 0xa2, 0x3e, 0x6b, 0xef, 0x98, 0xec, 0xed, 0xfb, 0xe3,
0xe0, 0x31, 0x5b, 0x75, 0x77, 0x69, 0x7c, 0xf4, 0xce, 0xcf, 0xf1, 0x8c, 0xa6, 0x15, 0x3d, 0x4a, 0xe5, 0x5d, 0x9a, 0xeb,
0x13, 0xf5, 0x7f, 0x4a, 0xbd, 0xee, 0x4a, 0xd4, 0x7f, 0xcf, 0x19, 0x8b, 0x4d, 0xdb, 0x1f, 0x43, 0xf3, 0xc6, 0xb5, 0x89,
0x5a, 0xcf, 0xfd, 0xe8, 0xbd, 0xcf, 0x47, 0xf8, 0x76, 0xa2, 0xf6, 0x6f, 0xab, 0xff, 0x55, 0xfb, 0x29, 0x8a, 0xaa, 0xae,
0xf7, 0x95, 0x7d, 0x59, 0x41, 0x75, 0xf5, 0x1f, 0xe5, 0xaf, 0xed, 0x4d, 0xd4, 0xca, 0xae, 0x27, 0xa8, 0xff, 0xef, 0xac,
0x01, 0xe4, 0xd6, 0xad, 0xe6, 0x12, 0x75, 0x4f, 0xb6, 0x80, 0x9d, 0x89, 0x5a, 0x5f, 0xaf, 0xff, 0xcc, 0xac, 0x5c, 0xfd,
0xdf, 0x39, 0xff, 0x8f, 0xb2, 0x57, 0x32, 0xbd, 0x46, 0x7e, 0xfd, 0xff, 0xcb, 0x4f, 0xd4, 0xfa, 0x99, 0xf5, 0x7f, 0x47,
0xa2, 0xae, 0xfa, 0x3f, 0x33, 0xff, 0x5f, 0xf7, 0x54, 0x82, 0x9d, 0x89, 0xba, 0xc6, 0xff, 0x55, 0x15, 0x71, 0x77, 0x95,
0xdf, 0x95, 0x9b, 0xfb, 0xcd, 0xf3, 0xff, 0xdc, 0x93, 0x40, 0xb3, 0x3d, 0xc0, 0xbe, 0x84, 0xd6, 0x13, 0x89, 0xfa, 0x12,
0x75, 0x67, 0x8e, 0xd7, 0xf3, 0xec, 0xef, 0x9b, 0xd7, 0x63, 0x6e, 0x9f, 0xff, 0xd7, 0x5e, 0xab, 0xf9, 0xe7, 0x9a, 0xd2,
0xea, 0x15, 0xef, 0x55, 0xf3, 0xff, 0xda, 0x2b, 0x5b, 0x12, 0x75, 0xab, 0x8f, 0xda, 0x6f, 0x5f, 0xff, 0x3b, 0xdb, 0xd3,
0xc0, 0xee, 0x79, 0xed, 0xf9, 0x9e, 0x10, 0xf8, 0xda, 0x37, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0xf9, 0xef, 0x3f, 0xfb, 0x01, 0xd4, 0x3f,
0xf0, 0xeb, 0xea, 0xff, 0x3f };
// Font glyphs rectangles data (on atlas)
static const Rectangle darkFontRecs[189] = {
{ 4, 4, 4 , 16 },
{ 16, 4, 1 , 9 },
{ 25, 4, 3 , 3 },
{ 36, 4, 6 , 9 },
{ 50, 4, 5 , 13 },
{ 63, 4, 7 , 9 },
{ 78, 4, 5 , 9 },
{ 91, 4, 1 , 3 },
{ 100, 4, 3 , 9 },
{ 111, 4, 3 , 9 },
{ 122, 4, 5 , 5 },
{ 135, 4, 5 , 5 },
{ 148, 4, 2 , 3 },
{ 158, 4, 4 , 1 },
{ 170, 4, 1 , 1 },
{ 179, 4, 3 , 9 },
{ 190, 4, 5 , 9 },
{ 203, 4, 3 , 9 },
{ 214, 4, 5 , 9 },
{ 227, 4, 5 , 9 },
{ 240, 4, 5 , 9 },
{ 253, 4, 5 , 9 },
{ 266, 4, 5 , 9 },
{ 279, 4, 5 , 9 },
{ 292, 4, 5 , 9 },
{ 305, 4, 5 , 9 },
{ 318, 4, 1 , 7 },
{ 327, 4, 2 , 9 },
{ 337, 4, 3 , 5 },
{ 348, 4, 4 , 3 },
{ 360, 4, 3 , 5 },
{ 371, 4, 5 , 9 },
{ 384, 4, 7 , 9 },
{ 399, 4, 5 , 9 },
{ 412, 4, 5 , 9 },
{ 425, 4, 5 , 9 },
{ 438, 4, 5 , 9 },
{ 451, 4, 5 , 9 },
{ 464, 4, 5 , 9 },
{ 477, 4, 5 , 9 },
{ 490, 4, 5 , 9 },
{ 4, 28, 1 , 9 },
{ 13, 28, 5 , 9 },
{ 26, 28, 5 , 9 },
{ 39, 28, 5 , 9 },
{ 52, 28, 7 , 9 },
{ 67, 28, 5 , 9 },
{ 80, 28, 5 , 9 },
{ 93, 28, 5 , 9 },
{ 106, 28, 5 , 9 },
{ 119, 28, 5 , 9 },
{ 132, 28, 5 , 9 },
{ 145, 28, 5 , 9 },
{ 158, 28, 5 , 9 },
{ 171, 28, 5 , 9 },
{ 184, 28, 7 , 9 },
{ 199, 28, 5 , 9 },
{ 212, 28, 5 , 9 },
{ 225, 28, 5 , 9 },
{ 238, 28, 3 , 9 },
{ 249, 28, 3 , 9 },
{ 260, 28, 3 , 9 },
{ 271, 28, 5 , 3 },
{ 284, 28, 5 , 1 },
{ 297, 28, 2 , 2 },
{ 307, 28, 5 , 7 },
{ 320, 28, 5 , 9 },
{ 333, 28, 5 , 7 },
{ 346, 28, 5 , 9 },
{ 359, 28, 5 , 7 },
{ 372, 28, 4 , 9 },
{ 384, 28, 5 , 9 },
{ 397, 28, 5 , 9 },
{ 410, 28, 1 , 9 },
{ 419, 28, 5 , 11 },
{ 432, 28, 5 , 9 },
{ 445, 28, 2 , 9 },
{ 455, 28, 7 , 7 },
{ 470, 28, 5 , 7 },
{ 483, 28, 5 , 7 },
{ 496, 28, 5 , 9 },
{ 4, 52, 5 , 9 },
{ 17, 52, 5 , 7 },
{ 30, 52, 5 , 7 },
{ 43, 52, 4 , 8 },
{ 55, 52, 5 , 7 },
{ 68, 52, 5 , 7 },
{ 81, 52, 7 , 7 },
{ 96, 52, 5 , 7 },
{ 109, 52, 5 , 9 },
{ 122, 52, 5 , 7 },
{ 135, 52, 4 , 9 },
{ 147, 52, 1 , 9 },
{ 156, 52, 4 , 9 },
{ 168, 52, 6 , 2 },
{ 182, 52, 1 , 9 },
{ 191, 52, 5 , 11 },
{ 204, 52, 6 , 9 },
{ 218, 52, 6 , 9 },
{ 232, 52, 5 , 9 },
{ 245, 52, 5 , 12 },
{ 258, 52, 5 , 9 },
{ 271, 52, 5 , 10 },
{ 284, 52, 7 , 9 },
{ 299, 52, 5 , 9 },
{ 312, 52, 6 , 5 },
{ 326, 52, 5 , 3 },
{ 339, 52, 7 , 9 },
{ 354, 52, 5 , 9 },
{ 367, 52, 4 , 4 },
{ 379, 52, 5 , 7 },
{ 392, 52, 5 , 9 },
{ 405, 52, 5 , 9 },
{ 418, 52, 5 , 12 },
{ 431, 52, 5 , 9 },
{ 444, 52, 7 , 9 },
{ 459, 52, 1 , 1 },
{ 468, 52, 5 , 10 },
{ 481, 52, 5 , 9 },
{ 494, 52, 5 , 9 },
{ 4, 76, 6 , 5 },
{ 18, 76, 9 , 9 },
{ 35, 76, 9 , 7 },
{ 52, 76, 5 , 11 },
{ 65, 76, 5 , 9 },
{ 78, 76, 5 , 12 },
{ 91, 76, 5 , 12 },
{ 104, 76, 5 , 12 },
{ 117, 76, 6 , 12 },
{ 131, 76, 5 , 11 },
{ 144, 76, 5 , 13 },
{ 157, 76, 9 , 9 },
{ 174, 76, 5 , 12 },
{ 187, 76, 5 , 12 },
{ 200, 76, 5 , 12 },
{ 213, 76, 5 , 12 },
{ 226, 76, 5 , 11 },
{ 239, 76, 2 , 12 },
{ 249, 76, 2 , 12 },
{ 259, 76, 3 , 12 },
{ 270, 76, 3 , 11 },
{ 281, 76, 6 , 9 },
{ 295, 76, 6 , 12 },
{ 309, 76, 5 , 12 },
{ 322, 76, 5 , 12 },
{ 335, 76, 5 , 12 },
{ 348, 76, 6 , 12 },
{ 362, 76, 5 , 11 },
{ 375, 76, 5 , 5 },
{ 388, 76, 7 , 9 },
{ 403, 76, 5 , 12 },
{ 416, 76, 5 , 12 },
{ 429, 76, 5 , 12 },
{ 442, 76, 5 , 11 },
{ 455, 76, 5 , 12 },
{ 468, 76, 5 , 9 },
{ 481, 76, 5 , 9 },
{ 494, 76, 5 , 10 },
{ 4, 100, 5 , 10 },
{ 17, 100, 5 , 10 },
{ 30, 100, 6 , 10 },
{ 44, 100, 5 , 9 },
{ 57, 100, 5 , 11 },
{ 70, 100, 9 , 7 },
{ 87, 100, 5 , 10 },
{ 100, 100, 5 , 10 },
{ 113, 100, 5 , 10 },
{ 126, 100, 5 , 10 },
{ 139, 100, 5 , 9 },
{ 152, 100, 2 , 10 },
{ 162, 100, 2 , 10 },
{ 172, 100, 3 , 10 },
{ 183, 100, 3 , 9 },
{ 194, 100, 6 , 9 },
{ 208, 100, 6 , 10 },
{ 222, 100, 5 , 10 },
{ 235, 100, 5 , 10 },
{ 248, 100, 5 , 10 },
{ 261, 100, 6 , 10 },
{ 275, 100, 5 , 9 },
{ 288, 100, 5 , 5 },
{ 301, 100, 7 , 7 },
{ 316, 100, 5 , 10 },
{ 329, 100, 5 , 10 },
{ 342, 100, 5 , 10 },
{ 355, 100, 5 , 9 },
{ 368, 100, 5 , 12 },
{ 381, 100, 5 , 11 },
{ 394, 100, 5 , 11 },
};
// Font glyphs info data
// NOTE: No glyphs.image data provided
static const GlyphInfo darkFontGlyphs[189] = {
{ 32, 0, 13, 4, { 0 }},
{ 33, 2, 4, 5, { 0 }},
{ 34, 2, 4, 7, { 0 }},
{ 35, 1, 4, 8, { 0 }},
{ 36, 1, 2, 7, { 0 }},
{ 37, 1, 4, 9, { 0 }},
{ 38, 1, 4, 7, { 0 }},
{ 39, 2, 4, 5, { 0 }},
{ 40, 3, 4, 7, { 0 }},
{ 41, 1, 4, 7, { 0 }},
{ 42, 1, 4, 7, { 0 }},
{ 43, 1, 6, 7, { 0 }},
{ 44, 1, 12, 5, { 0 }},
{ 45, 1, 8, 6, { 0 }},
{ 46, 2, 12, 5, { 0 }},
{ 47, 1, 4, 5, { 0 }},
{ 48, 1, 4, 7, { 0 }},
{ 49, 2, 4, 7, { 0 }},
{ 50, 1, 4, 7, { 0 }},
{ 51, 1, 4, 7, { 0 }},
{ 52, 1, 4, 7, { 0 }},
{ 53, 1, 4, 7, { 0 }},
{ 54, 1, 4, 7, { 0 }},
{ 55, 1, 4, 7, { 0 }},
{ 56, 1, 4, 7, { 0 }},
{ 57, 1, 4, 7, { 0 }},
{ 58, 2, 6, 5, { 0 }},
{ 59, 1, 6, 5, { 0 }},
{ 60, 1, 6, 5, { 0 }},
{ 61, 1, 7, 6, { 0 }},
{ 62, 1, 6, 5, { 0 }},
{ 63, 1, 4, 7, { 0 }},
{ 64, 1, 4, 9, { 0 }},
{ 65, 1, 4, 7, { 0 }},
{ 66, 1, 4, 7, { 0 }},
{ 67, 1, 4, 7, { 0 }},
{ 68, 1, 4, 7, { 0 }},
{ 69, 1, 4, 7, { 0 }},
{ 70, 1, 4, 7, { 0 }},
{ 71, 1, 4, 7, { 0 }},
{ 72, 1, 4, 7, { 0 }},
{ 73, 2, 4, 5, { 0 }},
{ 74, 1, 4, 7, { 0 }},
{ 75, 1, 4, 7, { 0 }},
{ 76, 1, 4, 7, { 0 }},
{ 77, 1, 4, 9, { 0 }},
{ 78, 1, 4, 7, { 0 }},
{ 79, 1, 4, 7, { 0 }},
{ 80, 1, 4, 7, { 0 }},
{ 81, 1, 4, 7, { 0 }},
{ 82, 1, 4, 7, { 0 }},
{ 83, 1, 4, 7, { 0 }},
{ 84, 1, 4, 7, { 0 }},
{ 85, 1, 4, 7, { 0 }},
{ 86, 1, 4, 7, { 0 }},
{ 87, 1, 4, 9, { 0 }},
{ 88, 1, 4, 7, { 0 }},
{ 89, 1, 4, 7, { 0 }},
{ 90, 1, 4, 7, { 0 }},
{ 91, 3, 4, 7, { 0 }},
{ 92, 1, 4, 5, { 0 }},
{ 93, 1, 4, 7, { 0 }},
{ 94, 1, 4, 7, { 0 }},
{ 95, 0, 14, 5, { 0 }},
{ 96, 1, 4, 5, { 0 }},
{ 97, 1, 6, 7, { 0 }},
{ 98, 1, 4, 7, { 0 }},
{ 99, 1, 6, 7, { 0 }},
{ 100, 1, 4, 7, { 0 }},
{ 101, 1, 6, 7, { 0 }},
{ 102, 1, 4, 6, { 0 }},
{ 103, 1, 6, 7, { 0 }},
{ 104, 1, 4, 7, { 0 }},
{ 105, 2, 4, 5, { 0 }},
{ 106, 1, 4, 7, { 0 }},
{ 107, 1, 4, 7, { 0 }},
{ 108, 2, 4, 5, { 0 }},
{ 109, 1, 6, 9, { 0 }},
{ 110, 1, 6, 7, { 0 }},
{ 111, 1, 6, 7, { 0 }},
{ 112, 1, 6, 7, { 0 }},
{ 113, 1, 6, 7, { 0 }},
{ 114, 1, 6, 7, { 0 }},
{ 115, 1, 6, 7, { 0 }},
{ 116, 1, 5, 6, { 0 }},
{ 117, 1, 6, 7, { 0 }},
{ 118, 1, 6, 7, { 0 }},
{ 119, 1, 6, 9, { 0 }},
{ 120, 1, 6, 7, { 0 }},
{ 121, 1, 6, 7, { 0 }},
{ 122, 1, 6, 7, { 0 }},
{ 123, 2, 4, 7, { 0 }},
{ 124, 2, 4, 5, { 0 }},
{ 125, 1, 4, 7, { 0 }},
{ 126, 1, 4, 8, { 0 }},
{ 161, 2, 6, 5, { 0 }},
{ 162, 1, 4, 7, { 0 }},
{ 163, 1, 4, 8, { 0 }},
{ 8364, 1, 4, 8, { 0 }},
{ 165, 1, 4, 7, { 0 }},
{ 352, 1, 1, 7, { 0 }},
{ 167, 2, 4, 9, { 0 }},
{ 353, 1, 3, 7, { 0 }},
{ 169, 1, 4, 9, { 0 }},
{ 170, 2, 4, 9, { 0 }},
{ 171, 1, 6, 8, { 0 }},
{ 172, 1, 8, 7, { 0 }},
{ 174, 1, 4, 9, { 0 }},
{ 175, 2, 4, 9, { 0 }},
{ 176, 1, 4, 6, { 0 }},
{ 177, 1, 6, 7, { 0 }},
{ 178, 2, 4, 9, { 0 }},
{ 179, 2, 4, 9, { 0 }},
{ 381, 1, 1, 7, { 0 }},
{ 181, 1, 6, 7, { 0 }},
{ 182, 1, 4, 9, { 0 }},
{ 183, 2, 8, 5, { 0 }},
{ 382, 1, 3, 7, { 0 }},
{ 185, 2, 4, 9, { 0 }},
{ 186, 2, 4, 9, { 0 }},
{ 187, 1, 6, 8, { 0 }},
{ 338, 1, 4, 11, { 0 }},
{ 339, 1, 6, 11, { 0 }},
{ 376, 1, 2, 7, { 0 }},
{ 191, 1, 6, 7, { 0 }},
{ 192, 1, 1, 7, { 0 }},
{ 193, 1, 1, 7, { 0 }},
{ 194, 1, 1, 7, { 0 }},
{ 195, 1, 1, 7, { 0 }},
{ 196, 1, 2, 7, { 0 }},
{ 197, 1, 0, 7, { 0 }},
{ 198, 1, 4, 11, { 0 }},
{ 199, 1, 4, 7, { 0 }},
{ 200, 1, 1, 7, { 0 }},
{ 201, 1, 1, 7, { 0 }},
{ 202, 1, 1, 7, { 0 }},
{ 203, 1, 2, 7, { 0 }},
{ 204, 1, 1, 5, { 0 }},
{ 205, 2, 1, 5, { 0 }},
{ 206, 1, 1, 5, { 0 }},
{ 207, 1, 2, 5, { 0 }},
{ 208, 0, 4, 7, { 0 }},
{ 209, 1, 1, 7, { 0 }},
{ 210, 1, 1, 7, { 0 }},
{ 211, 1, 1, 7, { 0 }},
{ 212, 1, 1, 7, { 0 }},
{ 213, 1, 1, 7, { 0 }},
{ 214, 1, 2, 7, { 0 }},
{ 215, 1, 6, 7, { 0 }},
{ 216, 0, 4, 7, { 0 }},
{ 217, 1, 1, 7, { 0 }},
{ 218, 1, 1, 7, { 0 }},
{ 219, 1, 1, 7, { 0 }},
{ 220, 1, 2, 7, { 0 }},
{ 221, 1, 1, 7, { 0 }},
{ 222, 1, 4, 7, { 0 }},
{ 223, 1, 4, 7, { 0 }},
{ 224, 1, 3, 7, { 0 }},
{ 225, 1, 3, 7, { 0 }},
{ 226, 1, 3, 7, { 0 }},
{ 227, 1, 3, 7, { 0 }},
{ 228, 1, 4, 7, { 0 }},
{ 229, 1, 2, 7, { 0 }},
{ 230, 1, 6, 11, { 0 }},
{ 231, 1, 6, 7, { 0 }},
{ 232, 1, 3, 7, { 0 }},
{ 233, 1, 3, 7, { 0 }},
{ 234, 1, 3, 7, { 0 }},
{ 235, 1, 4, 7, { 0 }},
{ 236, 1, 3, 5, { 0 }},
{ 237, 2, 3, 5, { 0 }},
{ 238, 1, 3, 5, { 0 }},
{ 239, 1, 4, 5, { 0 }},
{ 240, 1, 4, 7, { 0 }},
{ 241, 1, 3, 7, { 0 }},
{ 242, 1, 3, 7, { 0 }},
{ 243, 1, 3, 7, { 0 }},
{ 244, 1, 3, 7, { 0 }},
{ 245, 1, 3, 7, { 0 }},
{ 246, 1, 4, 7, { 0 }},
{ 247, 1, 6, 7, { 0 }},
{ 248, 0, 6, 7, { 0 }},
{ 249, 1, 3, 7, { 0 }},
{ 250, 1, 3, 7, { 0 }},
{ 251, 1, 3, 7, { 0 }},
{ 252, 1, 4, 7, { 0 }},
{ 253, 1, 3, 7, { 0 }},
{ 254, 1, 4, 7, { 0 }},
{ 255, 1, 4, 7, { 0 }},
};
// Style loading function: Dark
static void GuiLoadStyleDark(void)
{
// Load style properties provided
// NOTE: Default properties are propagated
for (int i = 0; i < DARK_STYLE_PROPS_COUNT; i++)
{
GuiSetStyle(darkStyleProps[i].controlId, darkStyleProps[i].propertyId, darkStyleProps[i].propertyValue);
}
// Custom font loading
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
int darkFontDataSize = 0;
unsigned char *data = DecompressData(darkFontData, DARK_STYLE_FONT_ATLAS_COMP_SIZE, &darkFontDataSize);
Image imFont = { data, 512, 256, 1, 2 };
Font font = { 0 };
font.baseSize = 16;
font.glyphCount = 189;
// Load texture from image
font.texture = LoadTextureFromImage(imFont);
UnloadImage(imFont); // Uncompressed image data can be unloaded from memory
// Copy char recs data from global fontRecs
// NOTE: Required to avoid issues if trying to free font
font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle));
memcpy(font.recs, darkFontRecs, font.glyphCount*sizeof(Rectangle));
// Copy font char info data from global fontChars
// NOTE: Required to avoid issues if trying to free font
font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo));
memcpy(font.glyphs, darkFontGlyphs, font.glyphCount*sizeof(GlyphInfo));
GuiSetFont(font);
// Setup a white rectangle on the font to be used on shapes drawing,
// it makes possible to draw shapes and text (full UI) in a single draw call
Rectangle fontWhiteRec = { 510, 254, 1, 1 };
SetShapesTexture(font.texture, fontWhiteRec);
//-----------------------------------------------------------------
// TODO: Custom user style setup: Set specific properties here (if required)
// i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT
}

View File

@ -0,0 +1,600 @@
//////////////////////////////////////////////////////////////////////////////////
// //
// StyleAsCode exporter v2.0 - Style data exported as a values array //
// //
// USAGE: On init call: GuiLoadStyleEnefete(); //
// //
// more info and bugs-report: github.com/raysan5/raygui //
// feedback and support: ray[at]raylibtech.com //
// //
// Copyright (c) 2020-2024 raylib technologies (@raylibtech) //
// //
//////////////////////////////////////////////////////////////////////////////////
#define ENEFETE_STYLE_PROPS_COUNT 17
// Custom style name: Enefete
static const GuiStyleProp enefeteStyleProps[ENEFETE_STYLE_PROPS_COUNT] = {
{ 0, 0, 0x1980d5ff }, // DEFAULT_BORDER_COLOR_NORMAL
{ 0, 1, 0x4df3ebff }, // DEFAULT_BASE_COLOR_NORMAL
{ 0, 2, 0x103e60ff }, // DEFAULT_TEXT_COLOR_NORMAL
{ 0, 3, 0xe7e2f7ff }, // DEFAULT_BORDER_COLOR_FOCUSED
{ 0, 4, 0x23d4ddff }, // DEFAULT_BASE_COLOR_FOCUSED
{ 0, 5, 0xf1f1f1ff }, // DEFAULT_TEXT_COLOR_FOCUSED
{ 0, 6, 0x6413a6ff }, // DEFAULT_BORDER_COLOR_PRESSED
{ 0, 7, 0xea66d9ff }, // DEFAULT_BASE_COLOR_PRESSED
{ 0, 8, 0x9f00bbff }, // DEFAULT_TEXT_COLOR_PRESSED
{ 0, 9, 0x4b909eff }, // DEFAULT_BORDER_COLOR_DISABLED
{ 0, 10, 0x73c7d0ff }, // DEFAULT_BASE_COLOR_DISABLED
{ 0, 11, 0x448894ff }, // DEFAULT_TEXT_COLOR_DISABLED
{ 0, 16, 0x00000010 }, // DEFAULT_TEXT_SIZE
{ 0, 17, 0x00000000 }, // DEFAULT_TEXT_SPACING
{ 0, 18, 0x1d3f6cff }, // DEFAULT_LINE_COLOR
{ 0, 19, 0x29c9e5ff }, // DEFAULT_BACKGROUND_COLOR
{ 0, 20, 0x00000018 }, // DEFAULT_TEXT_LINE_SPACING
};
// WARNING: This style uses a custom font: "GenericMobileSystemNuevo.ttf" (size: 16, spacing: 0)
#define ENEFETE_STYLE_FONT_ATLAS_COMP_SIZE 2462
// Font atlas image pixels data: DEFLATE compressed
static unsigned char enefeteFontData[ENEFETE_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed,
0xdd, 0x59, 0xb2, 0xeb, 0x34, 0x10, 0x00, 0x50, 0x6d, 0x83, 0xfd, 0xef, 0x8d, 0x6d, 0x88, 0xa2, 0x28, 0x0a, 0xb8, 0x8f,
0x58, 0x52, 0x77, 0xcb, 0x53, 0x0e, 0xa7, 0xf8, 0xb9, 0x7e, 0x49, 0x6c, 0xd9, 0x6d, 0x0d, 0xb6, 0x5a, 0xbd, 0x01, 0x00,
0x00, 0x00, 0x5f, 0xef, 0xcf, 0xff, 0xfe, 0xff, 0x6f, 0xff, 0xb7, 0xe5, 0x78, 0xdb, 0xdf, 0xff, 0x62, 0xb4, 0xa5, 0x7f,
0xdc, 0x93, 0x7e, 0xb0, 0x6d, 0xee, 0xb7, 0x62, 0xfb, 0xd5, 0x97, 0xca, 0xa6, 0x1f, 0x94, 0x5a, 0x4b, 0xff, 0xbd, 0x1d,
0x96, 0x7d, 0x0f, 0x94, 0x5e, 0x3b, 0xdc, 0xe7, 0xcf, 0x9f, 0x1c, 0x6f, 0xa9, 0xdc, 0xcf, 0x95, 0x32, 0xad, 0x3c, 0x3f,
0x2b, 0x25, 0xd8, 0x96, 0xb7, 0x1e, 0x97, 0x54, 0x9b, 0x2a, 0xc7, 0xf1, 0x37, 0xf7, 0x9b, 0xc4, 0xff, 0xf1, 0xd1, 0xfc,
0x1d, 0x83, 0x47, 0x67, 0x7f, 0xfe, 0xda, 0x68, 0xd3, 0xf7, 0x84, 0x7f, 0x7e, 0xbb, 0x2e, 0x42, 0xb3, 0xdf, 0xd2, 0x87,
0x77, 0xc2, 0x95, 0x12, 0x3a, 0x2e, 0xbd, 0x16, 0x8a, 0x89, 0xd1, 0x77, 0x46, 0xf6, 0x65, 0x66, 0xdb, 0xdc, 0xfe, 0xc5,
0xae, 0xf9, 0xf1, 0xf7, 0x1d, 0x5f, 0x69, 0x47, 0x67, 0x78, 0x74, 0xe5, 0x1e, 0x1f, 0xdf, 0xfa, 0x59, 0xcd, 0x44, 0xfd,
0x9e, 0xf8, 0xef, 0xff, 0x8a, 0xb3, 0x1e, 0x8c, 0xc1, 0x7c, 0xdd, 0xb0, 0x5e, 0x2b, 0x1c, 0xdf, 0xb3, 0xf6, 0x95, 0xf0,
0x51, 0x39, 0xf5, 0xc0, 0x35, 0xbc, 0x7e, 0xce, 0xa2, 0xbf, 0xb3, 0x23, 0xfe, 0x2b, 0xa2, 0xb8, 0x4d, 0xd4, 0x88, 0x91,
0x36, 0xc5, 0x71, 0x8b, 0x33, 0x1f, 0xe1, 0xa3, 0x7d, 0x89, 0xb4, 0x67, 0xf2, 0x65, 0xb9, 0xda, 0xe6, 0xd8, 0x17, 0xff,
0x15, 0xf5, 0xed, 0x7a, 0x5d, 0xb2, 0xaf, 0x7c, 0x67, 0xea, 0xeb, 0xfb, 0xc7, 0xff, 0xfa, 0xb1, 0x55, 0xc4, 0x7f, 0xcd,
0x59, 0x59, 0x8f, 0xff, 0x2e, 0xfe, 0xa7, 0xeb, 0xff, 0xcf, 0xa5, 0xde, 0x83, 0xfd, 0xaf, 0x7c, 0xaf, 0xbd, 0xaa, 0x9d,
0x7f, 0x6d, 0xfc, 0x8f, 0xfa, 0x83, 0x6d, 0x39, 0xfe, 0x63, 0xbd, 0xcf, 0x48, 0x6f, 0xa3, 0xaa, 0xfd, 0xbf, 0xb7, 0xf5,
0x70, 0xdc, 0x7b, 0x8c, 0x44, 0xf8, 0xda, 0x98, 0x47, 0xcd, 0x37, 0x5f, 0x11, 0xff, 0x6d, 0x62, 0x6f, 0xfa, 0xb0, 0xff,
0x3f, 0x7b, 0x87, 0x5f, 0x8b, 0xff, 0xba, 0xba, 0xe3, 0xca, 0xf8, 0xef, 0xc1, 0x11, 0xb1, 0xea, 0x7e, 0x7c, 0xfc, 0xd8,
0xd6, 0xc6, 0xe7, 0xce, 0xeb, 0xff, 0x8f, 0xda, 0x81, 0x99, 0xf8, 0xff, 0x96, 0xf6, 0xff, 0x4c, 0x4b, 0x7b, 0x54, 0x8a,
0xf3, 0xf7, 0xb3, 0x2b, 0x6a, 0xf3, 0x6b, 0xe3, 0xbf, 0x4f, 0x8d, 0x61, 0xdf, 0x3b, 0xfe, 0xdb, 0x72, 0x2f, 0xaf, 0xf2,
0xda, 0x8d, 0x5e, 0x51, 0xa3, 0x2b, 0x77, 0xe6, 0xae, 0x76, 0xcf, 0xf8, 0x8f, 0x5d, 0xcf, 0x7d, 0xd8, 0xca, 0xef, 0x89,
0xf8, 0x6f, 0xaf, 0x89, 0xff, 0x1e, 0x1c, 0xed, 0xf8, 0xdc, 0xde, 0x8b, 0x8d, 0xc7, 0x45, 0x5a, 0xf2, 0x99, 0x36, 0x4a,
0x55, 0xfc, 0xdf, 0xe3, 0x4c, 0xaa, 0xff, 0x2b, 0xc6, 0xff, 0xdb, 0x61, 0x0b, 0xff, 0xbb, 0xe2, 0xff, 0xf8, 0xf9, 0x5f,
0xbb, 0xfd, 0xb3, 0xba, 0x68, 0xfc, 0xd7, 0x8c, 0xff, 0x9f, 0x7f, 0xb7, 0x9e, 0xe9, 0xb9, 0xe6, 0xe2, 0xff, 0x4e, 0xcf,
0xff, 0xf6, 0xc6, 0xff, 0xe8, 0xa9, 0xf7, 0x9b, 0xda, 0xff, 0x95, 0xe3, 0xf8, 0xf1, 0x77, 0x6e, 0xf6, 0xbd, 0x53, 0xd4,
0x42, 0x6f, 0x72, 0xdd, 0x33, 0xfa, 0xa3, 0xcf, 0x81, 0x72, 0xa3, 0x74, 0x57, 0xbf, 0xff, 0x53, 0x5f, 0x82, 0xe7, 0xed,
0x4f, 0xbf, 0x71, 0x9b, 0x91, 0x77, 0xbd, 0x25, 0xeb, 0xea, 0x3a, 0xf3, 0xf9, 0x6c, 0xfc, 0xb7, 0x9c, 0x1f, 0x76, 0xd6,
0x6c, 0x4a, 0xe2, 0x19, 0x63, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xe4, 0xf9,
0x0b, 0x91, 0xb9, 0x86, 0xd1, 0x3c, 0x04, 0xb5, 0xf9, 0x10, 0xfa, 0x8f, 0x3c, 0xac, 0xab, 0xdf, 0x3d, 0x3b, 0xd7, 0x32,
0x33, 0x4f, 0xb3, 0xf6, 0xb3, 0x55, 0x99, 0x25, 0x6a, 0x67, 0x9e, 0x8f, 0xf3, 0xdd, 0xac, 0x66, 0x6b, 0x8e, 0x65, 0x41,
0x5b, 0xcf, 0x69, 0x9e, 0xc9, 0xc3, 0x57, 0x3d, 0xb7, 0xba, 0x26, 0x3f, 0xda, 0xfc, 0x9c, 0xf7, 0x9a, 0x4c, 0x23, 0x75,
0xf1, 0xbf, 0x7e, 0x1e, 0xfa, 0x8f, 0xfd, 0xe8, 0x17, 0x64, 0x62, 0xa8, 0xdf, 0x3a, 0xf7, 0xf7, 0x3b, 0xc5, 0xff, 0xec,
0x3d, 0x38, 0x7b, 0xf5, 0xc6, 0x67, 0xdc, 0x8d, 0xb2, 0x4f, 0x5c, 0x9f, 0x5b, 0xa5, 0x15, 0xe5, 0x47, 0xad, 0x8f, 0xff,
0x76, 0x52, 0xfd, 0x1f, 0x8d, 0xff, 0x3e, 0x5c, 0xcd, 0xe6, 0xbe, 0xf1, 0xbf, 0x9e, 0x77, 0x22, 0xfb, 0xab, 0xb9, 0x95,
0x1c, 0xe2, 0xb9, 0xc6, 0xf3, 0xf1, 0x9f, 0xcb, 0x14, 0x74, 0x6e, 0xdd, 0x7a, 0x7d, 0xfc, 0x47, 0x4b, 0xe4, 0xaa, 0xf8,
0x8f, 0x5f, 0x25, 0x7d, 0x98, 0xcd, 0xfa, 0x8e, 0xf1, 0xdf, 0xbf, 0x3e, 0xfe, 0xeb, 0x73, 0xf9, 0x46, 0x23, 0x20, 0x92,
0x07, 0x7d, 0xa6, 0x5f, 0xbd, 0xda, 0xb3, 0x8b, 0xf7, 0xbb, 0xa2, 0xf5, 0xff, 0xe8, 0xf3, 0x33, 0x47, 0x72, 0x75, 0xfc,
0xb7, 0x61, 0x84, 0xf7, 0x44, 0x94, 0xc6, 0x47, 0x40, 0x32, 0x39, 0xaf, 0xae, 0x89, 0xff, 0x16, 0x5a, 0x31, 0x30, 0x5e,
0xcf, 0xdf, 0x3d, 0xfe, 0xab, 0xfb, 0x06, 0xd1, 0x11, 0x83, 0xea, 0x7d, 0xbc, 0x5f, 0xff, 0xbf, 0x17, 0xb4, 0x12, 0x77,
0xc4, 0x7f, 0xb6, 0x7c, 0xa2, 0xd1, 0x14, 0x8b, 0xff, 0xf9, 0xda, 0x3d, 0xb6, 0x9a, 0x40, 0x6c, 0xdb, 0x7b, 0xe3, 0xbf,
0x36, 0x7f, 0xea, 0xfa, 0x58, 0xf1, 0x9b, 0xe2, 0x3f, 0xda, 0xff, 0x9f, 0xef, 0x71, 0xdd, 0x2b, 0xfe, 0xdb, 0xc4, 0xfa,
0x3c, 0x67, 0xc7, 0xff, 0x28, 0xdb, 0xea, 0xdb, 0xe2, 0x3f, 0x1a, 0x5b, 0xd1, 0xf5, 0x8c, 0x5a, 0xb8, 0xa6, 0x7b, 0x7b,
0xfd, 0xdf, 0x5e, 0x1a, 0xff, 0xf1, 0xf5, 0x65, 0x9e, 0x15, 0xff, 0xd5, 0xad, 0x86, 0xeb, 0xf3, 0xea, 0x45, 0x47, 0x1b,
0xe3, 0xa3, 0x94, 0xef, 0x6e, 0xff, 0xf7, 0x0d, 0xad, 0xf0, 0xec, 0xf3, 0xff, 0xab, 0xe2, 0x7f, 0xd7, 0xf3, 0xbf, 0x36,
0xbd, 0xe6, 0xdf, 0xae, 0xbd, 0x12, 0xff, 0xd5, 0xf1, 0x5f, 0xb9, 0x76, 0xe2, 0xda, 0xbf, 0xa8, 0x7e, 0xff, 0xa7, 0x7e,
0x24, 0x6d, 0xff, 0xfb, 0x3f, 0x7b, 0xca, 0xa7, 0x4d, 0xad, 0x98, 0xb6, 0xfe, 0xab, 0x6d, 0x72, 0x55, 0xe3, 0xd8, 0x3e,
0xd7, 0xbf, 0x7d, 0x73, 0xf7, 0xf8, 0x8f, 0xbd, 0x6d, 0x10, 0xfd, 0x64, 0xfc, 0x13, 0xf7, 0x59, 0x0b, 0xec, 0x3b, 0xdf,
0xa2, 0x54, 0x0a, 0xd5, 0x25, 0xa4, 0x54, 0x71, 0x07, 0x78, 0xd7, 0x7b, 0xe6, 0xbb, 0xfe, 0x3d, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf7, 0xcd, 0x5e, 0x99, 0xcd, 0xb9, 0xfd, 0xeb, 0x5f, 0x7b, 0x68, 0xbe,
0x6b, 0x4f, 0x7e, 0xae, 0x2f, 0xe7, 0xc1, 0x58, 0x9b, 0x77, 0x5a, 0x91, 0x83, 0xa1, 0x3a, 0x8f, 0xd4, 0xb8, 0x5c, 0x66,
0xcf, 0xf4, 0x78, 0x26, 0xf1, 0xea, 0x15, 0x12, 0x99, 0xd7, 0x93, 0xc9, 0xa8, 0x93, 0x59, 0x4b, 0x20, 0x9e, 0x09, 0xb1,
0x2d, 0x7e, 0x6b, 0xec, 0xac, 0xfd, 0x3a, 0xbf, 0x3a, 0x9a, 0xef, 0xb3, 0x26, 0xfe, 0x63, 0xb9, 0x25, 0xaf, 0xc8, 0xb4,
0x16, 0xbf, 0x9a, 0x6a, 0xf7, 0xb0, 0xbe, 0x54, 0xe6, 0xf6, 0x36, 0xf7, 0xf7, 0xcc, 0x9c, 0xfe, 0x5c, 0xee, 0x81, 0xd5,
0x92, 0xe8, 0x53, 0xd9, 0x52, 0x56, 0x3f, 0xf9, 0xf9, 0x73, 0xc7, 0xdb, 0xfa, 0x54, 0xe6, 0x88, 0xd5, 0x6f, 0xfd, 0x6d,
0xf0, 0xf9, 0x7e, 0x78, 0xe7, 0xad, 0x9d, 0xd1, 0xfa, 0x94, 0xf8, 0x5f, 0xbf, 0x77, 0x9f, 0x1d, 0xff, 0xf1, 0xfb, 0x54,
0x2b, 0xcc, 0xd2, 0xb3, 0xbe, 0x36, 0x46, 0x64, 0xe6, 0x6e, 0x3e, 0x47, 0xd0, 0x19, 0x19, 0x35, 0x7e, 0x8d, 0xa6, 0x95,
0xb3, 0x36, 0x17, 0xfd, 0x9f, 0xe2, 0xf7, 0xa8, 0xb5, 0xb5, 0x2f, 0xfe, 0x6b, 0x32, 0xf2, 0x3d, 0x27, 0xfe, 0x67, 0x7a,
0x1b, 0xe7, 0xc5, 0xff, 0xf8, 0xef, 0x75, 0x59, 0xb5, 0x2b, 0x73, 0xed, 0x8c, 0x72, 0x2d, 0xb7, 0xd0, 0x19, 0xe9, 0xc1,
0xfb, 0x4a, 0x2f, 0xce, 0x67, 0xde, 0x7f, 0xfc, 0x3f, 0x5b, 0x53, 0xcf, 0xc6, 0xff, 0xfa, 0x2f, 0xfe, 0x36, 0xd1, 0x7e,
0xa8, 0x6e, 0xff, 0xaf, 0x5c, 0x2f, 0x4f, 0x8a, 0xff, 0x36, 0x95, 0x8b, 0xec, 0xde, 0xf5, 0x7f, 0x65, 0x4e, 0xad, 0xfa,
0xf8, 0x8f, 0x45, 0x78, 0xa4, 0x26, 0x9f, 0x5f, 0xf1, 0x60, 0xed, 0xbc, 0x8d, 0x5b, 0xf9, 0x3d, 0xd1, 0xfe, 0xdf, 0x11,
0xff, 0xd5, 0xe3, 0x7f, 0xf1, 0x35, 0x3c, 0xf6, 0x8c, 0x74, 0x45, 0xc6, 0xff, 0xda, 0x09, 0xfd, 0xff, 0x51, 0x3b, 0x31,
0x5a, 0x2a, 0xf5, 0x6b, 0x53, 0x55, 0x66, 0xdb, 0x5e, 0x8d, 0xff, 0x4c, 0xfd, 0x1f, 0x1d, 0x87, 0xc8, 0xb4, 0x10, 0xdb,
0x60, 0xe4, 0x60, 0xf4, 0x9b, 0xeb, 0x59, 0x43, 0x73, 0xed, 0xff, 0x1d, 0xf1, 0x7f, 0x56, 0xff, 0xbf, 0x25, 0x47, 0x35,
0xeb, 0xda, 0xff, 0x2d, 0xd1, 0xca, 0xcc, 0xdc, 0x6d, 0x22, 0xa5, 0xbd, 0x5e, 0x66, 0x57, 0xd6, 0xff, 0xb9, 0xd5, 0xe6,
0xda, 0xb6, 0x7c, 0xa7, 0x91, 0xf6, 0xff, 0x9e, 0xa7, 0x70, 0xcf, 0xae, 0xff, 0xcf, 0x7c, 0x3a, 0xb9, 0x73, 0x7f, 0xee,
0x93, 0x77, 0x6e, 0x4f, 0x1e, 0xe9, 0x3b, 0xf4, 0xff, 0x23, 0xe3, 0xff, 0xd1, 0x9c, 0xc7, 0xe3, 0xda, 0xb8, 0x0f, 0x46,
0xd3, 0xbe, 0x35, 0xfe, 0xef, 0x91, 0x9b, 0xf9, 0x7b, 0xe3, 0xbf, 0xa5, 0xf2, 0x4f, 0x5f, 0x11, 0xff, 0x73, 0x2d, 0xab,
0xd8, 0x8a, 0x88, 0xb9, 0x15, 0x93, 0xa3, 0x7d, 0xba, 0x76, 0xea, 0x95, 0x9e, 0x79, 0xfe, 0xb7, 0xe7, 0xfd, 0x9f, 0xda,
0x37, 0x0d, 0x9e, 0xfb, 0x3e, 0xd4, 0x3b, 0x8e, 0xe0, 0x8c, 0xfb, 0xf9, 0x78, 0xd5, 0x82, 0xbe, 0xe9, 0x98, 0x62, 0x4f,
0x75, 0xa3, 0xcf, 0x89, 0xf7, 0xdd, 0xef, 0xa3, 0xef, 0xff, 0x44, 0xcb, 0x54, 0xa6, 0xe5, 0x6f, 0xb9, 0x83, 0x5d, 0x19,
0xff, 0xfb, 0x5b, 0x49, 0x55, 0xef, 0x30, 0x7c, 0xdb, 0x95, 0xa2, 0x64, 0xbe, 0xe5, 0xbc, 0xae, 0x8f, 0xf4, 0xbe, 0xa5,
0x24, 0x5c, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3b, 0xe7, 0x8a, 0xf5, 0xb2,
0x4c, 0x0b, 0xb3, 0x79, 0xae, 0xfa, 0xc2, 0xcc, 0xcd, 0x36, 0xcc, 0xdd, 0x9c, 0xfd, 0x9e, 0x9f, 0xab, 0x1a, 0xf4, 0xc1,
0xbf, 0x68, 0x81, 0x3d, 0xed, 0xe1, 0x79, 0xc8, 0xeb, 0x6b, 0x34, 0xfc, 0xdc, 0xe3, 0x96, 0x28, 0x91, 0x36, 0x31, 0x4f,
0x75, 0x6d, 0xae, 0xde, 0xee, 0x63, 0xae, 0xc9, 0x96, 0x1e, 0xc9, 0xfb, 0x37, 0x9b, 0xbd, 0x64, 0x47, 0xa9, 0xe4, 0x66,
0xbb, 0xf7, 0xa5, 0xbf, 0xc7, 0x72, 0x3f, 0xf4, 0xc3, 0x18, 0xaa, 0xb9, 0x3f, 0xcd, 0x65, 0xe8, 0x5b, 0x9f, 0xb3, 0x3e,
0x97, 0xdf, 0xb3, 0x6d, 0xcc, 0x89, 0xbd, 0x7e, 0xb5, 0xc7, 0x23, 0x25, 0xb7, 0x75, 0x6e, 0xae, 0xfe, 0x8e, 0x63, 0x8e,
0xe7, 0xb3, 0x9d, 0xff, 0x9e, 0x4c, 0xed, 0x37, 0x9e, 0x85, 0x99, 0xa9, 0x27, 0xda, 0xd4, 0xdd, 0x7a, 0x2d, 0xca, 0xa3,
0x77, 0x99, 0xf5, 0xf8, 0xaf, 0x99, 0x83, 0xde, 0x87, 0xc7, 0x13, 0x5b, 0x81, 0x63, 0x26, 0xbf, 0xf7, 0xfb, 0x5a, 0x8b,
0xf9, 0xf8, 0xff, 0xd6, 0x36, 0xf6, 0xfd, 0x4a, 0xa0, 0x2f, 0xd6, 0xf1, 0x9f, 0x23, 0x6c, 0xa6, 0x15, 0x5f, 0x13, 0xff,
0xeb, 0xf7, 0xad, 0xfd, 0xf1, 0xdf, 0x43, 0xdf, 0x10, 0x6d, 0xcf, 0xde, 0x73, 0x6b, 0x2e, 0xfe, 0xc7, 0x57, 0xd0, 0x9e,
0xad, 0x55, 0xab, 0x28, 0xe5, 0x72, 0x94, 0xb7, 0x60, 0xef, 0x21, 0x9b, 0x11, 0x68, 0x35, 0x1b, 0x5b, 0x0f, 0xf5, 0x46,
0xf6, 0xd4, 0xff, 0xf9, 0xfe, 0xff, 0x7c, 0xbb, 0x2d, 0x3e, 0x7e, 0x90, 0xb9, 0x96, 0x76, 0xb4, 0xc3, 0xcf, 0xd8, 0x1a,
0xc9, 0x1b, 0x77, 0xd5, 0xd6, 0xdd, 0xf1, 0xdf, 0xff, 0xb3, 0x8e, 0xe2, 0x51, 0x44, 0xad, 0xdf, 0x1d, 0xee, 0xd7, 0xb2,
0x88, 0x8f, 0xff, 0xad, 0x1e, 0x43, 0xc5, 0x11, 0xcf, 0xf5, 0x0b, 0x67, 0xa3, 0xb4, 0xae, 0xfe, 0xcf, 0x9c, 0xf5, 0x2b,
0xb7, 0x66, 0x46, 0xf7, 0xde, 0x1a, 0xff, 0x73, 0xe5, 0x76, 0x45, 0xfc, 0x57, 0xe7, 0x13, 0x9c, 0x69, 0x4d, 0x44, 0xb3,
0x34, 0x5f, 0xd1, 0x97, 0x9c, 0xcd, 0xce, 0x9f, 0x5b, 0x7f, 0xf6, 0x4d, 0xf1, 0xdf, 0x8a, 0xda, 0xff, 0x67, 0x6e, 0xbd,
0x47, 0xfb, 0xbf, 0xbf, 0xa0, 0xfe, 0xcf, 0x3e, 0xd7, 0x99, 0x3f, 0x86, 0x73, 0x8e, 0x36, 0x9e, 0x81, 0x3f, 0xf3, 0x04,
0xe3, 0xca, 0xbe, 0x70, 0x76, 0x6b, 0x36, 0xfe, 0xbf, 0xb5, 0xfe, 0x7f, 0x43, 0xfc, 0xe7, 0x9f, 0x65, 0xaf, 0x8c, 0xff,
0x9d, 0x75, 0x44, 0xf9, 0xf6, 0x51, 0xee, 0xd9, 0xff, 0x3b, 0xeb, 0xff, 0x9a, 0x35, 0xe7, 0x9f, 0x16, 0xff, 0x33, 0xa3,
0x4c, 0x4f, 0x8d, 0xff, 0x8a, 0x18, 0xa9, 0x1a, 0xff, 0xaf, 0xbe, 0x03, 0xb4, 0xad, 0x99, 0xeb, 0x9f, 0x17, 0xe1, 0xe3,
0xf8, 0x8f, 0xbc, 0xff, 0xf3, 0xee, 0xf8, 0x9f, 0x7b, 0x37, 0xe6, 0xd9, 0xf1, 0xdf, 0x93, 0x2b, 0xd6, 0xbc, 0xf3, 0xf9,
0x70, 0x6c, 0xfd, 0xe9, 0xe7, 0xc5, 0x7f, 0xfc, 0xed, 0x8c, 0xb7, 0x3f, 0xff, 0xcb, 0xbd, 0x1d, 0xb0, 0xf7, 0xf9, 0xdf,
0x13, 0xde, 0x2b, 0xe1, 0x4d, 0xf7, 0x42, 0xe7, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xa0, 0x6a, 0x46, 0x46, 0x3c, 0x67, 0xcf, 0xdc, 0x4c, 0xb1, 0x6b, 0x72, 0xdf, 0x47, 0x32, 0x15, 0xcc, 0xec, 0x4f, 0x3c,
0xff, 0x41, 0x24, 0xdb, 0xfe, 0xd1, 0xb9, 0x89, 0xe6, 0x1c, 0xcf, 0xe4, 0x32, 0xda, 0x75, 0x8c, 0xeb, 0x59, 0xe1, 0xe7,
0x7f, 0x61, 0x2e, 0xf7, 0x63, 0x2c, 0x2e, 0xee, 0x71, 0xae, 0x33, 0xf3, 0xee, 0x76, 0x67, 0x8a, 0xef, 0xc9, 0x5c, 0xef,
0xf5, 0x7b, 0x95, 0xcd, 0xd3, 0x1f, 0xdb, 0xe7, 0x48, 0x09, 0xf7, 0xc4, 0x4a, 0x2c, 0x6d, 0xe2, 0x4a, 0xaa, 0xce, 0xef,
0x93, 0x59, 0x99, 0x63, 0xfe, 0x8e, 0x5c, 0x99, 0xb3, 0xbf, 0x25, 0xf2, 0xf5, 0xdf, 0xe5, 0x5c, 0xdf, 0xb5, 0x65, 0x71,
0x9c, 0xf1, 0xe8, 0xbe, 0xad, 0xa4, 0x1e, 0xca, 0x6e, 0xfa, 0x9c, 0x7c, 0x04, 0xb1, 0x3a, 0xf7, 0xbd, 0xed, 0xe2, 0xf7,
0x1f, 0x73, 0x26, 0xb7, 0xc0, 0x4c, 0x1d, 0xde, 0x02, 0xf1, 0x7f, 0xc7, 0xfc, 0x55, 0xb9, 0xcc, 0x57, 0x33, 0xa5, 0x78,
0xd6, 0xb6, 0x23, 0xbf, 0x07, 0x56, 0x62, 0xbb, 0xf2, 0x18, 0xf7, 0xe7, 0xec, 0x38, 0xce, 0x26, 0xf2, 0xe4, 0x73, 0xdd,
0xb6, 0xe7, 0x82, 0x89, 0xd6, 0xff, 0x4f, 0x8d, 0xff, 0xd1, 0x6a, 0x04, 0x9f, 0xd7, 0x25, 0x3b, 0x6f, 0x5b, 0xc5, 0x5a,
0x06, 0xab, 0x3d, 0xa0, 0x1d, 0xdb, 0xae, 0xcc, 0xd9, 0x75, 0xf6, 0xb1, 0xc6, 0xcb, 0xe8, 0xca, 0xf8, 0x9f, 0xe9, 0xd7,
0x7d, 0x5b, 0xfd, 0xdf, 0x2f, 0xdf, 0x36, 0x7f, 0x17, 0xbb, 0xfb, 0xb5, 0xbd, 0x7f, 0xcd, 0x8e, 0x27, 0xc4, 0xf8, 0x5d,
0xe3, 0xff, 0xaa, 0x8c, 0xc7, 0x35, 0x2b, 0x2d, 0x45, 0xfb, 0xff, 0x4f, 0xb8, 0x26, 0x7a, 0x72, 0x2d, 0xe3, 0xd8, 0x0a,
0xce, 0xd5, 0xdb, 0xc4, 0xff, 0xdd, 0xeb, 0xff, 0x99, 0xb1, 0x95, 0xfb, 0xe5, 0xaf, 0xcc, 0xae, 0xd3, 0xfb, 0xee, 0xeb,
0xa5, 0x85, 0x9e, 0x79, 0xed, 0xd8, 0x26, 0xfe, 0xc5, 0xbf, 0xf8, 0xbf, 0xe2, 0x7a, 0xe9, 0x5f, 0xd1, 0xff, 0x17, 0xff,
0xe2, 0x3f, 0xf2, 0xcc, 0xec, 0xfe, 0xfd, 0xff, 0x5d, 0x4f, 0x2a, 0xdf, 0x36, 0xfe, 0x1f, 0x7d, 0xda, 0xfb, 0xa4, 0xf1,
0xff, 0xdd, 0xcf, 0xff, 0xae, 0xf8, 0xdd, 0xdc, 0x3e, 0xbf, 0xff, 0x19, 0xf7, 0x3b, 0xf2, 0xc5, 0xf3, 0xfc, 0xeb, 0x50,
0x19, 0x80, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe6, 0xe7, 0x00, 0xaf, 0xbe,
0xa7, 0x7f, 0x66, 0xbe, 0xf7, 0xc8, 0x9c, 0xcf, 0xb9, 0xef, 0x04, 0xf1, 0x1f, 0x9b, 0xa7, 0x73, 0x66, 0xbe, 0xf7, 0xfc,
0xdc, 0x7c, 0xe7, 0x1a, 0xde, 0x37, 0x53, 0x5c, 0x6c, 0x43, 0x2e, 0xc2, 0xa3, 0x39, 0x3a, 0xef, 0xb2, 0xed, 0x1d, 0x2b,
0x73, 0xc0, 0xbd, 0x6a, 0xd5, 0xa7, 0xc4, 0x7f, 0xdb, 0x96, 0xef, 0x12, 0xbe, 0xb1, 0xff, 0x2f, 0xfe, 0x41, 0xfc, 0x8b,
0x7f, 0xd0, 0xfe, 0x17, 0xff, 0x60, 0xfc, 0xff, 0xaa, 0x58, 0x9d, 0x59, 0x27, 0xe6, 0xc9, 0x4f, 0x31, 0xe0, 0x7e, 0x77,
0x80, 0xf8, 0xdd, 0xa1, 0x7a, 0x5b, 0x1b, 0xde, 0x37, 0x3c, 0x23, 0x84, 0xb3, 0xe2, 0xff, 0x9a, 0x51, 0x8a, 0xd5, 0xf8,
0xd7, 0xfe, 0x87, 0x37, 0xf5, 0x46, 0x22, 0xef, 0xff, 0x89, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0xe9, 0xaf, 0xff, 0x94, 0x03, 0x88, 0x7f, 0xe0, 0xeb, 0xe2, 0xff,
0x0f };
// Font glyphs rectangles data (on atlas)
static const Rectangle enefeteFontRecs[189] = {
{ 4, 4, 4 , 16 },
{ 16, 4, 2 , 10 },
{ 26, 4, 5 , 3 },
{ 39, 4, 7 , 10 },
{ 54, 4, 7 , 13 },
{ 69, 4, 7 , 10 },
{ 84, 4, 7 , 10 },
{ 99, 4, 2 , 3 },
{ 109, 4, 3 , 12 },
{ 120, 4, 3 , 12 },
{ 131, 4, 5 , 6 },
{ 144, 4, 6 , 5 },
{ 158, 4, 2 , 4 },
{ 168, 4, 5 , 1 },
{ 181, 4, 2 , 2 },
{ 191, 4, 4 , 10 },
{ 203, 4, 6 , 10 },
{ 217, 4, 4 , 10 },
{ 229, 4, 6 , 10 },
{ 243, 4, 6 , 10 },
{ 257, 4, 6 , 10 },
{ 271, 4, 6 , 10 },
{ 285, 4, 6 , 10 },
{ 299, 4, 6 , 10 },
{ 313, 4, 6 , 10 },
{ 327, 4, 6 , 10 },
{ 341, 4, 2 , 6 },
{ 351, 4, 2 , 8 },
{ 361, 4, 7 , 7 },
{ 376, 4, 5 , 3 },
{ 389, 4, 7 , 7 },
{ 404, 4, 6 , 10 },
{ 418, 4, 7 , 12 },
{ 433, 4, 7 , 10 },
{ 448, 4, 7 , 10 },
{ 463, 4, 7 , 10 },
{ 478, 4, 7 , 10 },
{ 493, 4, 7 , 10 },
{ 4, 28, 7 , 10 },
{ 19, 28, 7 , 10 },
{ 34, 28, 7 , 10 },
{ 49, 28, 2 , 10 },
{ 59, 28, 5 , 10 },
{ 72, 28, 7 , 10 },
{ 87, 28, 6 , 10 },
{ 101, 28, 9 , 10 },
{ 118, 28, 7 , 10 },
{ 133, 28, 7 , 10 },
{ 148, 28, 7 , 10 },
{ 163, 28, 7 , 12 },
{ 178, 28, 7 , 10 },
{ 193, 28, 7 , 10 },
{ 208, 28, 6 , 10 },
{ 222, 28, 7 , 10 },
{ 237, 28, 7 , 10 },
{ 252, 28, 8 , 10 },
{ 268, 28, 7 , 10 },
{ 283, 28, 6 , 10 },
{ 297, 28, 7 , 10 },
{ 312, 28, 4 , 12 },
{ 324, 28, 4 , 10 },
{ 336, 28, 4 , 12 },
{ 348, 28, 6 , 3 },
{ 362, 28, 7 , 1 },
{ 377, 28, 4 , 3 },
{ 389, 28, 6 , 7 },
{ 403, 28, 6 , 10 },
{ 417, 28, 6 , 7 },
{ 431, 28, 6 , 10 },
{ 445, 28, 6 , 7 },
{ 459, 28, 4 , 10 },
{ 471, 28, 6 , 9 },
{ 485, 28, 6 , 10 },
{ 499, 28, 2 , 10 },
{ 4, 52, 5 , 12 },
{ 17, 52, 6 , 10 },
{ 31, 52, 3 , 10 },
{ 42, 52, 8 , 7 },
{ 58, 52, 6 , 7 },
{ 72, 52, 6 , 7 },
{ 86, 52, 6 , 9 },
{ 100, 52, 6 , 9 },
{ 114, 52, 5 , 7 },
{ 127, 52, 6 , 7 },
{ 141, 52, 4 , 10 },
{ 153, 52, 6 , 7 },
{ 167, 52, 6 , 7 },
{ 181, 52, 8 , 7 },
{ 197, 52, 6 , 7 },
{ 211, 52, 6 , 9 },
{ 225, 52, 6 , 7 },
{ 239, 52, 5 , 12 },
{ 252, 52, 2 , 12 },
{ 262, 52, 5 , 12 },
{ 275, 52, 7 , 3 },
{ 290, 52, 2 , 9 },
{ 300, 52, 6 , 11 },
{ 314, 52, 7 , 10 },
{ 329, 52, 7 , 9 },
{ 344, 52, 6 , 10 },
{ 358, 52, 7 , 11 },
{ 373, 52, 6 , 12 },
{ 387, 52, 6 , 10 },
{ 401, 52, 7 , 10 },
{ 416, 52, 5 , 5 },
{ 429, 52, 7 , 6 },
{ 444, 52, 6 , 3 },
{ 458, 52, 7 , 10 },
{ 473, 52, 9 , 10 },
{ 490, 52, 4 , 4 },
{ 4, 76, 6 , 7 },
{ 18, 76, 4 , 5 },
{ 30, 76, 4 , 5 },
{ 42, 76, 7 , 11 },
{ 57, 76, 6 , 9 },
{ 71, 76, 7 , 12 },
{ 86, 76, 2 , 2 },
{ 96, 76, 6 , 10 },
{ 110, 76, 3 , 5 },
{ 121, 76, 4 , 5 },
{ 133, 76, 7 , 6 },
{ 148, 76, 9 , 10 },
{ 165, 76, 8 , 7 },
{ 181, 76, 6 , 11 },
{ 195, 76, 6 , 11 },
{ 209, 76, 7 , 11 },
{ 224, 76, 7 , 11 },
{ 239, 76, 7 , 11 },
{ 254, 76, 7 , 11 },
{ 269, 76, 7 , 11 },
{ 284, 76, 7 , 11 },
{ 299, 76, 9 , 10 },
{ 316, 76, 7 , 12 },
{ 331, 76, 7 , 11 },
{ 346, 76, 7 , 11 },
{ 361, 76, 7 , 11 },
{ 376, 76, 7 , 11 },
{ 391, 76, 3 , 11 },
{ 402, 76, 3 , 11 },
{ 413, 76, 5 , 11 },
{ 426, 76, 5 , 11 },
{ 439, 76, 8 , 10 },
{ 455, 76, 7 , 11 },
{ 470, 76, 7 , 11 },
{ 485, 76, 7 , 11 },
{ 4, 100, 7 , 11 },
{ 19, 100, 7 , 11 },
{ 34, 100, 7 , 11 },
{ 49, 100, 7 , 7 },
{ 64, 100, 7 , 13 },
{ 79, 100, 7 , 11 },
{ 94, 100, 7 , 11 },
{ 109, 100, 7 , 11 },
{ 124, 100, 7 , 11 },
{ 139, 100, 6 , 11 },
{ 153, 100, 7 , 10 },
{ 168, 100, 7 , 10 },
{ 183, 100, 6 , 10 },
{ 197, 100, 6 , 10 },
{ 211, 100, 6 , 10 },
{ 225, 100, 6 , 10 },
{ 239, 100, 6 , 10 },
{ 253, 100, 6 , 11 },
{ 267, 100, 8 , 7 },
{ 283, 100, 6 , 9 },
{ 297, 100, 6 , 10 },
{ 311, 100, 6 , 10 },
{ 325, 100, 6 , 10 },
{ 339, 100, 6 , 10 },
{ 353, 100, 3 , 10 },
{ 364, 100, 3 , 10 },
{ 375, 100, 5 , 10 },
{ 388, 100, 5 , 10 },
{ 401, 100, 6 , 10 },
{ 415, 100, 6 , 10 },
{ 429, 100, 6 , 10 },
{ 443, 100, 6 , 10 },
{ 457, 100, 6 , 10 },
{ 471, 100, 6 , 10 },
{ 485, 100, 6 , 10 },
{ 4, 124, 6 , 7 },
{ 18, 124, 7 , 11 },
{ 33, 124, 6 , 10 },
{ 47, 124, 6 , 10 },
{ 61, 124, 6 , 10 },
{ 75, 124, 6 , 10 },
{ 89, 124, 6 , 12 },
{ 103, 124, 6 , 12 },
{ 117, 124, 6 , 12 },
};
// Font glyphs info data
// NOTE: No glyphs.image data provided
static const GlyphInfo enefeteFontGlyphs[189] = {
{ 32, 0, 12, 4, { 0 }},
{ 33, 0, 2, 3, { 0 }},
{ 34, 0, 2, 6, { 0 }},
{ 35, 0, 2, 8, { 0 }},
{ 36, 0, 1, 8, { 0 }},
{ 37, 0, 2, 8, { 0 }},
{ 38, 0, 2, 8, { 0 }},
{ 39, 0, 2, 3, { 0 }},
{ 40, 0, 2, 4, { 0 }},
{ 41, 0, 2, 4, { 0 }},
{ 42, 0, 4, 6, { 0 }},
{ 43, 0, 6, 7, { 0 }},
{ 44, 0, 10, 3, { 0 }},
{ 45, 0, 8, 6, { 0 }},
{ 46, 0, 10, 3, { 0 }},
{ 47, 0, 2, 5, { 0 }},
{ 48, 0, 2, 7, { 0 }},
{ 49, 0, 2, 7, { 0 }},
{ 50, 0, 2, 7, { 0 }},
{ 51, 0, 2, 7, { 0 }},
{ 52, 0, 2, 7, { 0 }},
{ 53, 0, 2, 7, { 0 }},
{ 54, 0, 2, 7, { 0 }},
{ 55, 0, 2, 7, { 0 }},
{ 56, 0, 2, 7, { 0 }},
{ 57, 0, 2, 7, { 0 }},
{ 58, 0, 4, 3, { 0 }},
{ 59, 0, 4, 3, { 0 }},
{ 60, 0, 4, 8, { 0 }},
{ 61, 0, 6, 6, { 0 }},
{ 62, 0, 4, 8, { 0 }},
{ 63, 0, 2, 7, { 0 }},
{ 64, 0, 2, 8, { 0 }},
{ 65, 0, 2, 8, { 0 }},
{ 66, 0, 2, 8, { 0 }},
{ 67, 0, 2, 8, { 0 }},
{ 68, 0, 2, 8, { 0 }},
{ 69, 0, 2, 8, { 0 }},
{ 70, 0, 2, 8, { 0 }},
{ 71, 0, 2, 8, { 0 }},
{ 72, 0, 2, 8, { 0 }},
{ 73, 0, 2, 3, { 0 }},
{ 74, 0, 2, 6, { 0 }},
{ 75, 0, 2, 8, { 0 }},
{ 76, 0, 2, 7, { 0 }},
{ 77, 0, 2, 10, { 0 }},
{ 78, 0, 2, 8, { 0 }},
{ 79, 0, 2, 8, { 0 }},
{ 80, 0, 2, 8, { 0 }},
{ 81, 0, 2, 8, { 0 }},
{ 82, 0, 2, 8, { 0 }},
{ 83, 0, 2, 8, { 0 }},
{ 84, 0, 2, 7, { 0 }},
{ 85, 0, 2, 8, { 0 }},
{ 86, 0, 2, 8, { 0 }},
{ 87, 0, 2, 9, { 0 }},
{ 88, 0, 2, 8, { 0 }},
{ 89, 0, 2, 7, { 0 }},
{ 90, 0, 2, 8, { 0 }},
{ 91, 0, 2, 5, { 0 }},
{ 92, 0, 2, 5, { 0 }},
{ 93, 0, 2, 5, { 0 }},
{ 94, 0, 2, 7, { 0 }},
{ 95, 0, 14, 8, { 0 }},
{ 96, 0, 2, 5, { 0 }},
{ 97, 0, 5, 7, { 0 }},
{ 98, 0, 2, 7, { 0 }},
{ 99, 0, 5, 7, { 0 }},
{ 100, 0, 2, 7, { 0 }},
{ 101, 0, 5, 7, { 0 }},
{ 102, 0, 2, 5, { 0 }},
{ 103, 0, 5, 7, { 0 }},
{ 104, 0, 2, 7, { 0 }},
{ 105, 0, 2, 3, { 0 }},
{ 106, 0, 2, 6, { 0 }},
{ 107, 0, 2, 7, { 0 }},
{ 108, 0, 2, 4, { 0 }},
{ 109, 0, 5, 9, { 0 }},
{ 110, 0, 5, 7, { 0 }},
{ 111, 0, 5, 7, { 0 }},
{ 112, 0, 5, 7, { 0 }},
{ 113, 0, 5, 7, { 0 }},
{ 114, 0, 5, 6, { 0 }},
{ 115, 0, 5, 7, { 0 }},
{ 116, 0, 2, 5, { 0 }},
{ 117, 0, 5, 7, { 0 }},
{ 118, 0, 5, 7, { 0 }},
{ 119, 0, 5, 9, { 0 }},
{ 120, 0, 5, 7, { 0 }},
{ 121, 0, 5, 7, { 0 }},
{ 122, 0, 5, 7, { 0 }},
{ 123, 0, 2, 6, { 0 }},
{ 124, 0, 2, 3, { 0 }},
{ 125, 0, 2, 6, { 0 }},
{ 126, 0, 6, 8, { 0 }},
{ 161, 0, 5, 3, { 0 }},
{ 162, 0, 3, 7, { 0 }},
{ 163, 0, 2, 8, { 0 }},
{ 8364, 0, 3, 8, { 0 }},
{ 165, 0, 2, 7, { 0 }},
{ 352, 0, 1, 8, { 0 }},
{ 167, 0, 2, 7, { 0 }},
{ 353, 0, 2, 7, { 0 }},
{ 169, 0, 2, 8, { 0 }},
{ 170, 0, 2, 6, { 0 }},
{ 171, 0, 6, 8, { 0 }},
{ 172, 0, 7, 7, { 0 }},
{ 174, 0, 2, 8, { 0 }},
{ 175, 1, 3, 14, { 0 }},
{ 176, 0, 2, 5, { 0 }},
{ 177, 0, 4, 7, { 0 }},
{ 178, 0, 2, 5, { 0 }},
{ 179, 0, 2, 5, { 0 }},
{ 381, 0, 1, 8, { 0 }},
{ 181, 0, 5, 7, { 0 }},
{ 182, 0, 2, 8, { 0 }},
{ 183, 0, 6, 3, { 0 }},
{ 382, 0, 2, 7, { 0 }},
{ 185, 0, 2, 4, { 0 }},
{ 186, 0, 2, 5, { 0 }},
{ 187, 0, 6, 8, { 0 }},
{ 338, 0, 2, 10, { 0 }},
{ 339, 0, 5, 9, { 0 }},
{ 376, 0, 1, 7, { 0 }},
{ 191, 0, 3, 7, { 0 }},
{ 192, 0, 1, 8, { 0 }},
{ 193, 0, 1, 8, { 0 }},
{ 194, 0, 1, 8, { 0 }},
{ 195, 0, 1, 8, { 0 }},
{ 196, 0, 1, 8, { 0 }},
{ 197, 0, 1, 8, { 0 }},
{ 198, 0, 2, 10, { 0 }},
{ 199, 0, 2, 8, { 0 }},
{ 200, 0, 1, 8, { 0 }},
{ 201, 0, 1, 8, { 0 }},
{ 202, 0, 1, 8, { 0 }},
{ 203, 0, 1, 8, { 0 }},
{ 204, 0, 1, 4, { 0 }},
{ 205, 0, 1, 4, { 0 }},
{ 206, 0, 1, 6, { 0 }},
{ 207, 0, 1, 6, { 0 }},
{ 208, 0, 2, 9, { 0 }},
{ 209, 0, 1, 8, { 0 }},
{ 210, 0, 1, 8, { 0 }},
{ 211, 0, 1, 8, { 0 }},
{ 212, 0, 1, 8, { 0 }},
{ 213, 0, 1, 8, { 0 }},
{ 214, 0, 1, 8, { 0 }},
{ 215, 0, 5, 8, { 0 }},
{ 216, 0, 1, 8, { 0 }},
{ 217, 0, 1, 8, { 0 }},
{ 218, 0, 1, 8, { 0 }},
{ 219, 0, 1, 8, { 0 }},
{ 220, 0, 1, 8, { 0 }},
{ 221, 0, 1, 7, { 0 }},
{ 222, 0, 2, 8, { 0 }},
{ 223, 0, 2, 8, { 0 }},
{ 224, 0, 2, 7, { 0 }},
{ 225, 0, 2, 7, { 0 }},
{ 226, 0, 2, 7, { 0 }},
{ 227, 0, 2, 7, { 0 }},
{ 228, 0, 2, 7, { 0 }},
{ 229, 0, 1, 7, { 0 }},
{ 230, 0, 5, 9, { 0 }},
{ 231, 0, 5, 7, { 0 }},
{ 232, 0, 2, 7, { 0 }},
{ 233, 0, 2, 7, { 0 }},
{ 234, 0, 2, 7, { 0 }},
{ 235, 0, 2, 7, { 0 }},
{ 236, 0, 2, 4, { 0 }},
{ 237, 0, 2, 4, { 0 }},
{ 238, 0, 2, 6, { 0 }},
{ 239, 0, 2, 6, { 0 }},
{ 240, 0, 2, 7, { 0 }},
{ 241, 0, 2, 7, { 0 }},
{ 242, 0, 2, 7, { 0 }},
{ 243, 0, 2, 7, { 0 }},
{ 244, 0, 2, 7, { 0 }},
{ 245, 0, 2, 7, { 0 }},
{ 246, 0, 2, 7, { 0 }},
{ 247, 0, 4, 7, { 0 }},
{ 248, 0, 3, 8, { 0 }},
{ 249, 0, 2, 7, { 0 }},
{ 250, 0, 2, 7, { 0 }},
{ 251, 0, 2, 7, { 0 }},
{ 252, 0, 2, 7, { 0 }},
{ 253, 0, 2, 7, { 0 }},
{ 254, 0, 2, 7, { 0 }},
{ 255, 0, 2, 7, { 0 }},
};
// Style loading function: Enefete
static void GuiLoadStyleEnefete(void)
{
// Load style properties provided
// NOTE: Default properties are propagated
for (int i = 0; i < ENEFETE_STYLE_PROPS_COUNT; i++)
{
GuiSetStyle(enefeteStyleProps[i].controlId, enefeteStyleProps[i].propertyId, enefeteStyleProps[i].propertyValue);
}
// Custom font loading
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
int enefeteFontDataSize = 0;
unsigned char *data = DecompressData(enefeteFontData, ENEFETE_STYLE_FONT_ATLAS_COMP_SIZE, &enefeteFontDataSize);
Image imFont = { data, 512, 256, 1, 2 };
Font font = { 0 };
font.baseSize = 16;
font.glyphCount = 189;
// Load texture from image
font.texture = LoadTextureFromImage(imFont);
UnloadImage(imFont); // Uncompressed image data can be unloaded from memory
// Copy char recs data from global fontRecs
// NOTE: Required to avoid issues if trying to free font
font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle));
memcpy(font.recs, enefeteFontRecs, font.glyphCount*sizeof(Rectangle));
// Copy font char info data from global fontChars
// NOTE: Required to avoid issues if trying to free font
font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo));
memcpy(font.glyphs, enefeteFontGlyphs, font.glyphCount*sizeof(GlyphInfo));
GuiSetFont(font);
// Setup a white rectangle on the font to be used on shapes drawing,
// it makes possible to draw shapes and text (full UI) in a single draw call
Rectangle fontWhiteRec = { 510, 254, 1, 1 };
SetShapesTexture(font.texture, fontWhiteRec);
//-----------------------------------------------------------------
// TODO: Custom user style setup: Set specific properties here (if required)
// i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT
}

View File

@ -0,0 +1,578 @@
//////////////////////////////////////////////////////////////////////////////////
// //
// StyleAsCode exporter v2.0 - Style data exported as a values array //
// //
// USAGE: On init call: GuiLoadStyleJungle(); //
// //
// more info and bugs-report: github.com/raysan5/raygui //
// feedback and support: ray[at]raylibtech.com //
// //
// Copyright (c) 2020-2024 raylib technologies (@raylibtech) //
// //
//////////////////////////////////////////////////////////////////////////////////
#define JUNGLE_STYLE_PROPS_COUNT 17
// Custom style name: Jungle
static const GuiStyleProp jungleStyleProps[JUNGLE_STYLE_PROPS_COUNT] = {
{ 0, 0, 0x60827dff }, // DEFAULT_BORDER_COLOR_NORMAL
{ 0, 1, 0x2c3334ff }, // DEFAULT_BASE_COLOR_NORMAL
{ 0, 2, 0x82a29fff }, // DEFAULT_TEXT_COLOR_NORMAL
{ 0, 3, 0x5f9aa8ff }, // DEFAULT_BORDER_COLOR_FOCUSED
{ 0, 4, 0x334e57ff }, // DEFAULT_BASE_COLOR_FOCUSED
{ 0, 5, 0x6aa9b8ff }, // DEFAULT_TEXT_COLOR_FOCUSED
{ 0, 6, 0xa9cb8dff }, // DEFAULT_BORDER_COLOR_PRESSED
{ 0, 7, 0x3b6357ff }, // DEFAULT_BASE_COLOR_PRESSED
{ 0, 8, 0x97af81ff }, // DEFAULT_TEXT_COLOR_PRESSED
{ 0, 9, 0x5b6462ff }, // DEFAULT_BORDER_COLOR_DISABLED
{ 0, 10, 0x2c3334ff }, // DEFAULT_BASE_COLOR_DISABLED
{ 0, 11, 0x666b69ff }, // DEFAULT_TEXT_COLOR_DISABLED
{ 0, 16, 0x0000000c }, // DEFAULT_TEXT_SIZE
{ 0, 17, 0x00000000 }, // DEFAULT_TEXT_SPACING
{ 0, 18, 0x638465ff }, // DEFAULT_LINE_COLOR
{ 0, 19, 0x2b3a3aff }, // DEFAULT_BACKGROUND_COLOR
{ 0, 20, 0x00000012 }, // DEFAULT_TEXT_LINE_SPACING
};
// WARNING: This style uses a custom font: "Pixel Intv.otf" (size: 12, spacing: 0)
#define JUNGLE_STYLE_FONT_ATLAS_COMP_SIZE 2030
// Font atlas image pixels data: DEFLATE compressed
static unsigned char jungleFontData[JUNGLE_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed,
0x9d, 0x3d, 0x8e, 0x25, 0x35, 0x14, 0x85, 0x8d, 0xe9, 0x8c, 0x10, 0x11, 0x80, 0x84, 0x20, 0x41, 0x22, 0x21, 0x61, 0x34,
0x12, 0x64, 0xb3, 0x00, 0x62, 0x84, 0x08, 0x10, 0x11, 0x09, 0xb0, 0x07, 0x66, 0x65, 0x93, 0x90, 0xb3, 0x01, 0x76, 0xc1,
0x02, 0x2e, 0x9a, 0xbf, 0x9e, 0x9f, 0xae, 0xb2, 0x7d, 0x8f, 0xaf, 0xcb, 0xae, 0x7a, 0x5f, 0x7f, 0x9a, 0xd1, 0xcc, 0xf3,
0x73, 0x95, 0xcb, 0xc7, 0xd7, 0x55, 0xaf, 0x7d, 0xde, 0xb5, 0x25, 0x00, 0x00, 0x00, 0x80, 0x07, 0x3c, 0xff, 0xd9, 0x7e,
0x6d, 0xab, 0x24, 0xbd, 0x2a, 0x69, 0x3f, 0xd6, 0xeb, 0xd7, 0x5f, 0x96, 0xe4, 0xdd, 0x77, 0x6c, 0x1f, 0x31, 0xef, 0xb4,
0x61, 0xaf, 0xd5, 0xfb, 0x2d, 0x4b, 0xae, 0x92, 0xfd, 0xe3, 0xef, 0xf7, 0x57, 0x72, 0x5c, 0xc3, 0xbb, 0x3f, 0xc9, 0x71,
0x2d, 0xe5, 0x7a, 0xa3, 0xf5, 0x2f, 0xf7, 0xc1, 0x7e, 0xd9, 0xcb, 0x3f, 0xcf, 0x7b, 0x22, 0x3b, 0x8e, 0xb9, 0xff, 0xfe,
0xe4, 0x1a, 0x81, 0xfe, 0x91, 0xe1, 0xeb, 0xdd, 0xd2, 0xbb, 0x6b, 0xd7, 0x60, 0xce, 0x16, 0xbc, 0x7e, 0x7d, 0xa4, 0xfe,
0xe9, 0xfe, 0x1c, 0xed, 0xf1, 0x5f, 0x53, 0xc5, 0xec, 0x6e, 0xb3, 0x27, 0x52, 0x51, 0x9b, 0x2c, 0x9c, 0x29, 0x62, 0x34,
0xa7, 0xa0, 0xde, 0xcd, 0xc5, 0x6b, 0x30, 0x41, 0x7f, 0x6d, 0x84, 0x46, 0x1d, 0x47, 0x8b, 0xff, 0xe7, 0xdc, 0xbd, 0x18,
0x01, 0xe5, 0xa3, 0xf6, 0xb7, 0x38, 0x2a, 0xfe, 0xd3, 0x50, 0xf5, 0x7b, 0xf4, 0x3f, 0x62, 0xfe, 0x2f, 0xbf, 0xbf, 0xdc,
0x67, 0xdb, 0xc7, 0xcb, 0xaf, 0xe2, 0xdf, 0x7f, 0xf7, 0x8c, 0xd0, 0xdf, 0x7f, 0xff, 0x1f, 0xab, 0x7e, 0xc4, 0xfc, 0xbf,
0xe2, 0x73, 0x64, 0xed, 0x3e, 0xbe, 0x3d, 0x76, 0x6c, 0x78, 0xfc, 0xcf, 0xa0, 0xa4, 0x7e, 0xed, 0xf9, 0xcf, 0x3a, 0xe6,
0xd9, 0xd1, 0xf1, 0xaf, 0x1c, 0xeb, 0x75, 0x4f, 0x98, 0x10, 0x9f, 0x67, 0xd5, 0xbf, 0xa4, 0x3e, 0x44, 0xcc, 0x35, 0x9e,
0xbb, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x35, 0x57, 0x4c, 0xca, 0xeb, 0xef,
0x91, 0x2b, 0x91, 0xa3, 0xca, 0xda, 0xdd, 0x06, 0x1e, 0xe7, 0x4a, 0x16, 0x7a, 0x6c, 0x56, 0xbf, 0x8c, 0x72, 0xfb, 0x25,
0xb7, 0x37, 0xa3, 0xa5, 0x35, 0xea, 0xf9, 0x7a, 0xf4, 0xcf, 0xce, 0xb5, 0xd7, 0xb2, 0x43, 0x6f, 0xcf, 0xcf, 0xb8, 0xbf,
0x72, 0xdd, 0x7b, 0x7d, 0xde, 0x32, 0xdf, 0x0c, 0x90, 0x0e, 0x89, 0xff, 0x36, 0x0f, 0xd3, 0x18, 0x77, 0xe3, 0xb6, 0xcf,
0xac, 0xd4, 0xd6, 0x3b, 0xb7, 0xa3, 0xf0, 0xcd, 0x6a, 0xf3, 0xd8, 0xf1, 0x1d, 0xed, 0xfa, 0x54, 0x1d, 0x25, 0xca, 0x98,
0x54, 0x1c, 0xac, 0x11, 0xf3, 0x7f, 0x4c, 0xfc, 0x97, 0xc6, 0xa9, 0xbd, 0xf7, 0x27, 0x66, 0x1e, 0x9f, 0xa5, 0xff, 0x88,
0xb9, 0x3a, 0x35, 0xcc, 0x0a, 0x6a, 0x5b, 0xb4, 0xfb, 0xbf, 0xe2, 0xd4, 0x29, 0xb9, 0x95, 0xf4, 0xe7, 0xa9, 0x19, 0xf1,
0xdf, 0x13, 0xe3, 0xda, 0xfc, 0x5f, 0xd6, 0x3f, 0xce, 0xdd, 0x66, 0x53, 0x9e, 0xa6, 0x5b, 0x62, 0x6c, 0xad, 0xfb, 0x3f,
0x44, 0xfa, 0x19, 0xe7, 0x7d, 0x9e, 0x42, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x18, 0xeb, 0xc7, 0x3b, 0xca, 0x53, 0x62, 0x8d, 0x59, 0x7c, 0xf6, 0xfd, 0x5a, 0x47, 0xb9, 0xf5, 0x8e, 0xef, 0xef, 0x68,
0xdf, 0x47, 0xc4, 0x9a, 0xb4, 0x92, 0xc1, 0xac, 0xdf, 0x8b, 0x68, 0x4b, 0x38, 0xf2, 0x46, 0xf4, 0xdb, 0x4c, 0xfd, 0x95,
0xf6, 0xe8, 0xfa, 0x9b, 0x98, 0x61, 0xb0, 0x96, 0x19, 0x66, 0x2d, 0xfd, 0x15, 0xd7, 0x41, 0x8f, 0xfe, 0xf5, 0xb9, 0x2a,
0x15, 0xf4, 0xf0, 0xcf, 0xf1, 0xaa, 0xfe, 0x26, 0xe6, 0x7d, 0x1c, 0x73, 0x17, 0x1b, 0xa3, 0xbf, 0xd2, 0x6f, 0x57, 0x99,
0xff, 0xeb, 0xc7, 0xcc, 0xe2, 0xfc, 0x6f, 0xd5, 0x59, 0xc5, 0xc2, 0xdd, 0xa8, 0xfe, 0x98, 0x6a, 0xed, 0x9f, 0xdb, 0xd5,
0x3f, 0x0d, 0xd1, 0x7f, 0xcc, 0x19, 0xcf, 0x73, 0xff, 0x57, 0xb2, 0x57, 0xcf, 0xf0, 0xb9, 0xf5, 0x79, 0xc3, 0x6b, 0xa5,
0x47, 0xf4, 0xcc, 0xb8, 0xf9, 0x1f, 0x17, 0xe0, 0x79, 0x5c, 0xa2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x47, 0xac, 0x51, 0xe8, 0x6b, 0x67, 0x23, 0x56, 0x00, 0x1f, 0xbe, 0x9e, 0x1b, 0xd6, 0x30, 0xdf, 0x7f,
0x3d, 0xef, 0x38, 0x46, 0xcc, 0x99, 0xf3, 0x4f, 0xdb, 0x8f, 0xb7, 0x35, 0x0f, 0x9a, 0xee, 0x20, 0x8c, 0x58, 0x07, 0x3c,
0x5e, 0xff, 0xd4, 0xb4, 0x1e, 0xfb, 0x50, 0xc9, 0x2c, 0x78, 0x86, 0xb2, 0x33, 0xe3, 0x53, 0x29, 0x43, 0x94, 0xdf, 0xcd,
0x54, 0xef, 0x05, 0x25, 0xd7, 0x5d, 0xed, 0x68, 0xda, 0x0e, 0xc5, 0x25, 0x77, 0x4c, 0xcd, 0xcb, 0xe2, 0xbf, 0xf2, 0xec,
0xbe, 0xb6, 0xdc, 0x30, 0x07, 0x8c, 0xf7, 0x48, 0x27, 0x77, 0x3c, 0xf6, 0xf9, 0xee, 0xc6, 0xeb, 0x9f, 0x1a, 0x3c, 0x7e,
0xd1, 0x8e, 0x14, 0xab, 0xec, 0x7e, 0xab, 0x8c, 0x80, 0xd1, 0xfa, 0xd7, 0xae, 0x55, 0x77, 0x09, 0xa5, 0xd0, 0x71, 0x13,
0xad, 0x7f, 0xcb, 0x38, 0x8d, 0x1e, 0xc1, 0xca, 0x08, 0x38, 0x26, 0xfe, 0xcd, 0xad, 0x7f, 0x79, 0x6e, 0x88, 0xef, 0x3d,
0xc5, 0x05, 0xa4, 0xcd, 0x28, 0xbd, 0x6e, 0x35, 0x45, 0xc5, 0x2c, 0xcd, 0x1c, 0x47, 0x3c, 0x41, 0x6b, 0x7b, 0x55, 0x47,
0x3b, 0x36, 0xb5, 0x9e, 0x38, 0x5e, 0x7f, 0x93, 0x77, 0xfc, 0xce, 0xcb, 0xed, 0x7e, 0xad, 0x45, 0x9d, 0xee, 0xd8, 0x8b,
0x8f, 0xff, 0xf5, 0xbe, 0x8d, 0x76, 0x44, 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
0xdb, 0xcc, 0x51, 0xe0, 0xcf, 0x54, 0x53, 0xaf, 0xa1, 0xee, 0x9d, 0x75, 0xe4, 0xde, 0xb9, 0xa3, 0xf6, 0xb7, 0xd3, 0xf3,
0x82, 0xd9, 0x90, 0x1d, 0xe0, 0xe2, 0xd7, 0xcd, 0xfa, 0xb2, 0x98, 0xd5, 0x7a, 0x48, 0xcd, 0xb8, 0xe5, 0xf5, 0x60, 0xf4,
0xf8, 0x7a, 0x54, 0xcf, 0x47, 0xbc, 0x0f, 0x2f, 0xc6, 0xdb, 0xa6, 0xc5, 0xbf, 0xe6, 0x0b, 0x59, 0x4d, 0xff, 0x74, 0x90,
0x3f, 0xaf, 0x47, 0xff, 0xde, 0xdd, 0x9f, 0x75, 0x47, 0x96, 0xbf, 0x57, 0xaf, 0xa0, 0x7f, 0x9b, 0x7b, 0x57, 0xf1, 0x11,
0x46, 0xfb, 0xf0, 0x66, 0xe9, 0x6f, 0xd2, 0xde, 0xb9, 0x3d, 0xfa, 0xf7, 0xf9, 0xe5, 0x8f, 0x8b, 0x7f, 0xfd, 0x8c, 0x69,
0xc8, 0xce, 0xe8, 0xbd, 0xd1, 0xea, 0xcb, 0xd4, 0x38, 0xc3, 0xa9, 0x15, 0xef, 0x97, 0x1b, 0xe5, 0xec, 0x9a, 0xeb, 0x5e,
0x8c, 0xf2, 0xaf, 0xf6, 0x66, 0xff, 0x9e, 0xa1, 0x3f, 0xde, 0xb1, 0x6b, 0x8f, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x5b, 0x5b, 0xc7, 0x89, 0xdb, 0x8f, 0xca, 0x9b, 0xd5, 0xcd, 0x36, 0x33, 0x7a, 0xa8,
0xb9, 0x63, 0xbc, 0xde, 0x8a, 0xd2, 0x5a, 0xe5, 0x77, 0xf6, 0xe5, 0x3d, 0x8f, 0xec, 0x13, 0x57, 0xef, 0xd4, 0xea, 0xe6,
0xb7, 0xea, 0x66, 0x77, 0xed, 0xd7, 0x59, 0x50, 0xb2, 0x70, 0x66, 0xbf, 0x03, 0xc0, 0x97, 0xab, 0xcd, 0xf7, 0x6a, 0x2e,
0x3a, 0x45, 0x62, 0x5c, 0x17, 0x6a, 0x86, 0xbe, 0xc7, 0xef, 0xf4, 0xc1, 0xa3, 0xe0, 0xba, 0xf9, 0x1d, 0x25, 0x7d, 0xb5,
0xf3, 0x7d, 0x66, 0xc3, 0xec, 0xae, 0xeb, 0xd3, 0x3f, 0xbb, 0x73, 0xb5, 0xf9, 0xd5, 0x89, 0xf1, 0x15, 0x6a, 0x59, 0x71,
0x4a, 0xc7, 0xfc, 0xb2, 0xf0, 0xbf, 0xda, 0x35, 0xd5, 0xeb, 0xbe, 0x3d, 0xf3, 0xfa, 0x6b, 0xdf, 0xdd, 0xff, 0xed, 0xad,
0xeb, 0x75, 0xf2, 0x68, 0x2e, 0xae, 0xde, 0x11, 0x10, 0x99, 0x4d, 0x51, 0x75, 0x64, 0xb5, 0xe8, 0xbf, 0x77, 0xce, 0x36,
0xfd, 0xdf, 0xfc, 0xdb, 0x57, 0xbb, 0x14, 0xff, 0x9a, 0xfe, 0x71, 0x3e, 0xf7, 0xb1, 0xf1, 0x3f, 0x22, 0x2b, 0xde, 0x5e,
0x49, 0x6b, 0xfc, 0x6b, 0x63, 0xa7, 0x27, 0xfe, 0x4b, 0xf7, 0x7f, 0xbf, 0xfe, 0xaa, 0x0b, 0xee, 0x68, 0xfd, 0x93, 0xec,
0x53, 0xd5, 0x9e, 0x1a, 0xeb, 0x3d, 0xd9, 0x33, 0x77, 0x94, 0xee, 0xff, 0xaa, 0x86, 0xd1, 0xf1, 0xbf, 0x9e, 0xfe, 0xa9,
0xc3, 0x59, 0xeb, 0x1d, 0x53, 0xad, 0x3d, 0x69, 0xe2, 0x0c, 0xbe, 0xff, 0xfc, 0x7f, 0xac, 0xfe, 0xb1, 0xce, 0x4a, 0x2d,
0xab, 0xe3, 0x8a, 0xfc, 0xf2, 0xd6, 0x27, 0xa9, 0xc7, 0xf6, 0xbd, 0x6b, 0xfe, 0xaf, 0xd5, 0xed, 0x3b, 0xf3, 0xa8, 0xba,
0x10, 0x39, 0xe7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0xa3, 0xd7, 0x89, 0xf6, 0xe9,
0xa6, 0x43, 0xa4, 0x56, 0x6f, 0x74, 0x79, 0xcd, 0xd3, 0xf6, 0x95, 0x7d, 0x63, 0x9f, 0x3f, 0x78, 0xf5, 0x99, 0x3d, 0xb3,
0x5f, 0x27, 0xb4, 0x35, 0xef, 0xee, 0x70, 0xbc, 0xf5, 0xa3, 0xbc, 0xa7, 0xb4, 0x8a, 0xd1, 0xe3, 0x44, 0xfb, 0xc1, 0x9e,
0xd8, 0x1f, 0x1b, 0x47, 0xad, 0xd5, 0x1b, 0x5d, 0x5e, 0xd2, 0xff, 0x33, 0xfb, 0xd7, 0xfe, 0xb1, 0xa7, 0xf6, 0xc5, 0x66,
0xad, 0xbf, 0x0e, 0x6f, 0x6b, 0xc9, 0xcd, 0xe3, 0xd9, 0x47, 0x59, 0xcb, 0x03, 0xd5, 0xe7, 0x44, 0xf9, 0xd9, 0x3e, 0xb0,
0x1f, 0x37, 0x7c, 0x68, 0xb5, 0x7a, 0xa3, 0xcb, 0x4b, 0xfa, 0xff, 0x69, 0x66, 0x7f, 0xdb, 0x6f, 0xf6, 0xe1, 0x83, 0x92,
0x27, 0xf6, 0x64, 0x42, 0x5b, 0x93, 0xdd, 0xbd, 0x68, 0xe7, 0x5d, 0xe7, 0x3e, 0xda, 0x6a, 0xfc, 0xf7, 0x38, 0xd1, 0x3e,
0xb6, 0x9f, 0xec, 0x5b, 0xc1, 0x85, 0x30, 0x53, 0xff, 0xaf, 0xed, 0xbf, 0x1d, 0xfd, 0x35, 0x47, 0x45, 0x6f, 0x79, 0x6b,
0xfc, 0xdb, 0xa0, 0xfc, 0x6f, 0x3d, 0xfa, 0xcf, 0xea, 0xb3, 0x76, 0x6f, 0xe6, 0x56, 0x9f, 0x7c, 0x64, 0x4f, 0x17, 0xd2,
0xbf, 0x76, 0xff, 0x4f, 0x8e, 0x8c, 0xb3, 0xd1, 0xf7, 0xff, 0x33, 0xeb, 0x5f, 0x6a, 0xdf, 0xef, 0x0b, 0xe9, 0xdf, 0xe2,
0xb0, 0x1a, 0xe7, 0x31, 0x19, 0xe3, 0x44, 0x43, 0xff, 0x38, 0xfd, 0xf5, 0xd8, 0x1e, 0xef, 0x81, 0x53, 0xeb, 0x8d, 0x2e,
0xaf, 0xe1, 0xd1, 0x7f, 0x76, 0x5b, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xb4,
0xe4, 0x8b, 0x2b, 0xaf, 0x3e, 0xe7, 0xe2, 0xda, 0x62, 0x69, 0xd5, 0x31, 0x17, 0x4a, 0x14, 0xa7, 0x43, 0xdb, 0xce, 0xc2,
0x26, 0xe6, 0x3a, 0x8c, 0xbd, 0xce, 0xfa, 0xb5, 0xc4, 0x9e, 0x6f, 0x0f, 0x7f, 0xbe, 0xb8, 0xd6, 0xb6, 0xa4, 0x62, 0xf6,
0xb0, 0xbc, 0xab, 0x71, 0x4f, 0x9f, 0x99, 0xbc, 0x8a, 0x5e, 0x7b, 0x4f, 0xfc, 0x75, 0x1e, 0x7b, 0xbe, 0x9e, 0x7c, 0x31,
0x67, 0xcf, 0x70, 0xe1, 0xd1, 0xff, 0xd6, 0x68, 0x75, 0x52, 0x79, 0x33, 0xa0, 0xac, 0x5a, 0xa6, 0xe6, 0x0f, 0x3d, 0xdb,
0x75, 0x46, 0xea, 0xaf, 0xc4, 0xd5, 0x59, 0xca, 0x3c, 0xd7, 0x79, 0x54, 0xd9, 0xc8, 0xe3, 0xaa, 0xfa, 0x9f, 0x59, 0xe3,
0xde, 0xfb, 0xff, 0xad, 0xeb, 0x7f, 0xf6, 0xb9, 0xaf, 0xc5, 0x21, 0x6f, 0xe2, 0x3e, 0xe1, 0x23, 0xca, 0x8e, 0xd4, 0xbf,
0xc7, 0x9d, 0x76, 0xb6, 0x18, 0x6f, 0xbd, 0x9e, 0x5b, 0x8a, 0xff, 0x51, 0xcf, 0xd5, 0xe7, 0xd3, 0xdf, 0xd0, 0xff, 0xa6,
0xf5, 0x4f, 0x37, 0xf9, 0xfc, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd7, 0xa5, 0xf6, 0x3b, 0x55,
0xab, 0xec, 0x0c, 0x6a, 0x8b, 0xfb, 0x02, 0xdb, 0xae, 0x6f, 0x0d, 0xcf, 0x5f, 0x96, 0xf6, 0xce, 0xec, 0xfb, 0x9d, 0xaf,
0xde, 0x77, 0x65, 0xaf, 0xe1, 0x3a, 0xbe, 0x40, 0x3d, 0x73, 0xd6, 0xd1, 0x9e, 0xbf, 0xd2, 0x4e, 0xbb, 0xca, 0x0e, 0xd6,
0x31, 0xeb, 0x1e, 0xd7, 0xf1, 0xff, 0x6d, 0xbd, 0x9e, 0x4f, 0xb0, 0x5e, 0x32, 0x72, 0xdd, 0x4b, 0x1d, 0x5b, 0x56, 0xe8,
0xdb, 0xb5, 0xd6, 0xbd, 0x6a, 0x25, 0xf9, 0x02, 0xde, 0xa6, 0xbe, 0x11, 0xac, 0xf8, 0xa6, 0x29, 0xbb, 0x1d, 0xdf, 0xcb,
0x7e, 0xcc, 0x9d, 0xbb, 0x0f, 0xce, 0xa4, 0xf1, 0xc8, 0xfb, 0x7f, 0xdd, 0xdf, 0x1d, 0x79, 0xdf, 0x58, 0x4b, 0xff, 0x33,
0x5c, 0x43, 0xdd, 0xef, 0x63, 0x43, 0xf4, 0xaf, 0xd7, 0x39, 0xb7, 0xfe, 0xab, 0xcd, 0x0d, 0xb3, 0xbc, 0x3b, 0xba, 0xfe,
0xd7, 0xf5, 0x7e, 0xcd, 0x68, 0xe7, 0x2c, 0xed, 0x95, 0x71, 0x67, 0x85, 0xac, 0xd1, 0x57, 0xf0, 0xbd, 0xcd, 0x68, 0x27,
0xbe, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x46, 0xf3, 0x39, 0xcd, 0xce, 0xe1, 0xb7, 0xba,
0x9b, 0xef, 0xd8, 0xf3, 0xf5, 0x79, 0x00, 0x95, 0x96, 0x1e, 0x9b, 0xc3, 0xaf, 0x7f, 0x75, 0xe5, 0xec, 0x19, 0xfc, 0xea,
0xab, 0x5c, 0x57, 0x5e, 0x3f, 0x68, 0x8b, 0xff, 0x5b, 0x76, 0x71, 0x6b, 0x33, 0xc0, 0xd1, 0xb9, 0x8d, 0x7a, 0xca, 0xfa,
0xb2, 0xa2, 0xcc, 0x70, 0x1d, 0x7a, 0x33, 0xcd, 0xa8, 0x65, 0xbd, 0x2e, 0xc0, 0xf5, 0x33, 0xe3, 0xf5, 0xdd, 0xff, 0x57,
0x5b, 0xcd, 0x8f, 0x2e, 0xd3, 0xf5, 0x3f, 0x4b, 0xfc, 0x47, 0x39, 0xd9, 0xd6, 0x58, 0xcd, 0x5f, 0x4b, 0xff, 0x24, 0xcc,
0xb9, 0x47, 0x97, 0x79, 0xbe, 0xaf, 0x30, 0x7f, 0x0e, 0x9b, 0xa1, 0xbf, 0x75, 0xc6, 0xff, 0x95, 0xf3, 0x57, 0x5d, 0x25,
0x8b, 0x25, 0xd9, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0xcd, 0xfb, 0x67, 0x15,
0x3f, 0xda, 0x3a, 0xde, 0x40, 0xc5, 0xfb, 0x12, 0x7d, 0x05, 0x3d, 0x59, 0xfc, 0x4c, 0xf0, 0xb5, 0x8d, 0x76, 0x0e, 0x95,
0xf3, 0xf8, 0xad, 0xe4, 0x0d, 0xdc, 0xef, 0xbb, 0x1c, 0xee, 0xfb, 0x8c, 0xcf, 0xe2, 0x97, 0x96, 0xd4, 0xff, 0x7c, 0x0e,
0xb7, 0xed, 0x92, 0x7c, 0x82, 0xbe, 0x5b, 0x71, 0xfd, 0xf6, 0xfc, 0x2b, 0xdc, 0x6a, 0x76, 0xbc, 0x51, 0x65, 0x4a, 0xcd,
0x99, 0x99, 0x36, 0xcf, 0x93, 0xc7, 0x4d, 0xf3, 0x76, 0x1d, 0xeb, 0x52, 0x9a, 0xe5, 0x7d, 0xba, 0x05, 0xfd, 0xd3, 0xf2,
0xee, 0x36, 0xf4, 0x47, 0x7f, 0x6b, 0xf0, 0x30, 0x9f, 0x47, 0xff, 0x73, 0x3b, 0xdc, 0xe6, 0x65, 0x1b, 0x36, 0xf9, 0x1b,
0x0a, 0x3c, 0xeb, 0x5f, 0xe3, 0xd3, 0x8a, 0xf2, 0xfd, 0x2c, 0xf4, 0xbf, 0xee, 0xe7, 0xd4, 0xf3, 0x7d, 0x36, 0x04, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0xb2,
0x0c, 0xa2, 0x3f, 0xfa, 0xdf, 0xb8, 0xfe, 0xff, 0x03 };
// Font glyphs rectangles data (on atlas)
static const Rectangle jungleFontRecs[189] = {
{ 4, 4, 5 , 12 },
{ 17, 4, 2 , 7 },
{ 27, 4, 5 , 3 },
{ 40, 4, 5 , 5 },
{ 53, 4, 6 , 7 },
{ 67, 4, 7 , 7 },
{ 82, 4, 5 , 7 },
{ 95, 4, 3 , 3 },
{ 106, 4, 4 , 8 },
{ 118, 4, 4 , 8 },
{ 130, 4, 5 , 5 },
{ 143, 4, 5 , 5 },
{ 156, 4, 2 , 3 },
{ 166, 4, 5 , 1 },
{ 179, 4, 2 , 2 },
{ 189, 4, 7 , 7 },
{ 204, 4, 7 , 6 },
{ 219, 4, 6 , 6 },
{ 233, 4, 6 , 6 },
{ 4, 24, 6 , 6 },
{ 18, 24, 6 , 6 },
{ 32, 24, 6 , 6 },
{ 46, 24, 6 , 6 },
{ 60, 24, 6 , 6 },
{ 74, 24, 6 , 6 },
{ 88, 24, 6 , 6 },
{ 102, 24, 2 , 5 },
{ 112, 24, 2 , 6 },
{ 122, 24, 3 , 5 },
{ 133, 24, 5 , 3 },
{ 146, 24, 3 , 5 },
{ 157, 24, 6 , 7 },
{ 171, 24, 7 , 7 },
{ 186, 24, 6 , 7 },
{ 200, 24, 6 , 7 },
{ 214, 24, 6 , 7 },
{ 228, 24, 6 , 7 },
{ 4, 44, 6 , 7 },
{ 18, 44, 6 , 7 },
{ 32, 44, 6 , 7 },
{ 46, 44, 6 , 7 },
{ 60, 44, 6 , 7 },
{ 74, 44, 6 , 7 },
{ 88, 44, 6 , 7 },
{ 102, 44, 6 , 7 },
{ 116, 44, 7 , 7 },
{ 131, 44, 6 , 7 },
{ 145, 44, 6 , 7 },
{ 159, 44, 6 , 7 },
{ 173, 44, 7 , 8 },
{ 188, 44, 6 , 7 },
{ 202, 44, 6 , 7 },
{ 216, 44, 6 , 7 },
{ 230, 44, 6 , 7 },
{ 4, 64, 6 , 7 },
{ 18, 64, 7 , 7 },
{ 33, 64, 6 , 7 },
{ 47, 64, 6 , 7 },
{ 61, 64, 6 , 7 },
{ 75, 64, 4 , 8 },
{ 87, 64, 7 , 7 },
{ 102, 64, 4 , 8 },
{ 114, 64, 4 , 2 },
{ 126, 64, 6 , 1 },
{ 140, 64, 2 , 2 },
{ 150, 64, 6 , 5 },
{ 164, 64, 6 , 7 },
{ 178, 64, 6 , 5 },
{ 192, 64, 6 , 7 },
{ 206, 64, 6 , 5 },
{ 220, 64, 6 , 7 },
{ 234, 64, 6 , 7 },
{ 4, 84, 6 , 7 },
{ 18, 84, 6 , 7 },
{ 32, 84, 5 , 8 },
{ 45, 84, 6 , 7 },
{ 59, 84, 6 , 7 },
{ 73, 84, 7 , 5 },
{ 88, 84, 6 , 5 },
{ 102, 84, 6 , 5 },
{ 116, 84, 6 , 7 },
{ 130, 84, 6 , 7 },
{ 144, 84, 6 , 5 },
{ 158, 84, 6 , 5 },
{ 172, 84, 6 , 6 },
{ 186, 84, 6 , 5 },
{ 200, 84, 6 , 5 },
{ 214, 84, 7 , 5 },
{ 229, 84, 6 , 5 },
{ 4, 104, 6 , 7 },
{ 18, 104, 6 , 5 },
{ 32, 104, 4 , 8 },
{ 44, 104, 2 , 8 },
{ 54, 104, 4 , 8 },
{ 66, 104, 5 , 2 },
{ 79, 104, 2 , 7 },
{ 89, 104, 6 , 6 },
{ 103, 104, 6 , 7 },
{ 117, 104, 6 , 7 },
{ 131, 104, 6 , 7 },
{ 145, 104, 8 , 8 },
{ 161, 104, 6 , 9 },
{ 175, 104, 8 , 8 },
{ 191, 104, 7 , 7 },
{ 206, 104, 8 , 8 },
{ 222, 104, 6 , 5 },
{ 236, 104, 8 , 8 },
{ 4, 124, 7 , 7 },
{ 19, 124, 8 , 8 },
{ 35, 124, 4 , 4 },
{ 47, 124, 8 , 8 },
{ 63, 124, 8 , 8 },
{ 79, 124, 8 , 8 },
{ 95, 124, 8 , 8 },
{ 111, 124, 6 , 7 },
{ 125, 124, 5 , 8 },
{ 138, 124, 3 , 3 },
{ 149, 124, 8 , 8 },
{ 165, 124, 8 , 8 },
{ 181, 124, 8 , 8 },
{ 197, 124, 6 , 5 },
{ 211, 124, 10 , 7 },
{ 229, 124, 10 , 5 },
{ 4, 144, 8 , 8 },
{ 20, 144, 6 , 7 },
{ 34, 144, 6 , 10 },
{ 48, 144, 6 , 10 },
{ 62, 144, 6 , 10 },
{ 76, 144, 6 , 10 },
{ 90, 144, 6 , 10 },
{ 104, 144, 6 , 10 },
{ 118, 144, 10 , 7 },
{ 136, 144, 6 , 9 },
{ 150, 144, 6 , 10 },
{ 164, 144, 6 , 10 },
{ 178, 144, 6 , 10 },
{ 192, 144, 6 , 10 },
{ 206, 144, 6 , 10 },
{ 220, 144, 6 , 10 },
{ 234, 144, 6 , 10 },
{ 4, 164, 6 , 10 },
{ 18, 164, 6 , 7 },
{ 32, 164, 6 , 10 },
{ 46, 164, 6 , 10 },
{ 60, 164, 6 , 10 },
{ 74, 164, 6 , 10 },
{ 88, 164, 6 , 10 },
{ 102, 164, 6 , 10 },
{ 116, 164, 6 , 5 },
{ 130, 164, 6 , 7 },
{ 144, 164, 6 , 10 },
{ 158, 164, 6 , 10 },
{ 172, 164, 6 , 10 },
{ 186, 164, 6 , 10 },
{ 200, 164, 6 , 10 },
{ 214, 164, 6 , 7 },
{ 228, 164, 6 , 7 },
{ 4, 184, 6 , 8 },
{ 18, 184, 6 , 8 },
{ 32, 184, 6 , 8 },
{ 46, 184, 6 , 8 },
{ 60, 184, 6 , 8 },
{ 74, 184, 6 , 8 },
{ 88, 184, 9 , 5 },
{ 105, 184, 6 , 7 },
{ 119, 184, 6 , 8 },
{ 133, 184, 6 , 8 },
{ 147, 184, 6 , 8 },
{ 161, 184, 6 , 8 },
{ 175, 184, 6 , 8 },
{ 189, 184, 6 , 8 },
{ 203, 184, 6 , 8 },
{ 217, 184, 6 , 8 },
{ 231, 184, 6 , 7 },
{ 4, 204, 6 , 8 },
{ 18, 204, 6 , 8 },
{ 32, 204, 6 , 8 },
{ 46, 204, 6 , 8 },
{ 60, 204, 6 , 8 },
{ 74, 204, 6 , 8 },
{ 88, 204, 5 , 5 },
{ 101, 204, 6 , 5 },
{ 115, 204, 6 , 8 },
{ 129, 204, 6 , 8 },
{ 143, 204, 6 , 8 },
{ 157, 204, 6 , 8 },
{ 171, 204, 6 , 10 },
{ 185, 204, 6 , 9 },
{ 199, 204, 6 , 10 },
};
// Font glyphs info data
// NOTE: No glyphs.image data provided
static const GlyphInfo jungleFontGlyphs[189] = {
{ 32, 0, 9, 5, { 0 }},
{ 33, 0, 2, 3, { 0 }},
{ 34, 0, 2, 6, { 0 }},
{ 35, 0, 3, 6, { 0 }},
{ 36, 0, 2, 7, { 0 }},
{ 37, 0, 2, 8, { 0 }},
{ 38, 0, 2, 6, { 0 }},
{ 39, 0, 2, 4, { 0 }},
{ 40, 0, 2, 5, { 0 }},
{ 41, 0, 2, 5, { 0 }},
{ 42, 0, 2, 6, { 0 }},
{ 43, 0, 3, 6, { 0 }},
{ 44, 0, 7, 3, { 0 }},
{ 45, 0, 5, 6, { 0 }},
{ 46, 0, 7, 3, { 0 }},
{ 47, 0, 2, 8, { 0 }},
{ 48, 0, 3, 8, { 0 }},
{ 49, 0, 3, 7, { 0 }},
{ 50, 0, 3, 7, { 0 }},
{ 51, 0, 3, 7, { 0 }},
{ 52, 0, 3, 7, { 0 }},
{ 53, 0, 3, 7, { 0 }},
{ 54, 0, 3, 7, { 0 }},
{ 55, 0, 3, 7, { 0 }},
{ 56, 0, 3, 7, { 0 }},
{ 57, 0, 3, 7, { 0 }},
{ 58, 0, 4, 3, { 0 }},
{ 59, 0, 4, 3, { 0 }},
{ 60, 0, 3, 4, { 0 }},
{ 61, 0, 4, 6, { 0 }},
{ 62, 0, 3, 4, { 0 }},
{ 63, 0, 2, 7, { 0 }},
{ 64, 0, 2, 8, { 0 }},
{ 65, 0, 2, 7, { 0 }},
{ 66, 0, 2, 7, { 0 }},
{ 67, 0, 2, 7, { 0 }},
{ 68, 0, 2, 7, { 0 }},
{ 69, 0, 2, 7, { 0 }},
{ 70, 0, 2, 7, { 0 }},
{ 71, 0, 2, 7, { 0 }},
{ 72, 0, 2, 7, { 0 }},
{ 73, 0, 2, 7, { 0 }},
{ 74, 0, 2, 7, { 0 }},
{ 75, 0, 2, 7, { 0 }},
{ 76, 0, 2, 7, { 0 }},
{ 77, 0, 2, 8, { 0 }},
{ 78, 0, 2, 7, { 0 }},
{ 79, 0, 2, 7, { 0 }},
{ 80, 0, 2, 7, { 0 }},
{ 81, 0, 2, 7, { 0 }},
{ 82, 0, 2, 7, { 0 }},
{ 83, 0, 2, 7, { 0 }},
{ 84, 0, 2, 7, { 0 }},
{ 85, 0, 2, 7, { 0 }},
{ 86, 0, 2, 7, { 0 }},
{ 87, 0, 2, 8, { 0 }},
{ 88, 0, 2, 7, { 0 }},
{ 89, 0, 2, 7, { 0 }},
{ 90, 0, 2, 7, { 0 }},
{ 91, 0, 2, 5, { 0 }},
{ 92, 0, 2, 8, { 0 }},
{ 93, 0, 2, 5, { 0 }},
{ 94, 0, -1, 5, { 0 }},
{ 95, 0, 10, 7, { 0 }},
{ 96, 0, -1, 3, { 0 }},
{ 97, 0, 4, 7, { 0 }},
{ 98, 0, 2, 7, { 0 }},
{ 99, 0, 4, 7, { 0 }},
{ 100, 0, 2, 7, { 0 }},
{ 101, 0, 4, 7, { 0 }},
{ 102, 0, 2, 7, { 0 }},
{ 103, 0, 4, 7, { 0 }},
{ 104, 0, 2, 7, { 0 }},
{ 105, 0, 2, 7, { 0 }},
{ 106, 0, 2, 6, { 0 }},
{ 107, 0, 2, 7, { 0 }},
{ 108, 0, 2, 7, { 0 }},
{ 109, 0, 4, 8, { 0 }},
{ 110, 0, 4, 7, { 0 }},
{ 111, 0, 4, 7, { 0 }},
{ 112, 0, 4, 7, { 0 }},
{ 113, 0, 4, 7, { 0 }},
{ 114, 0, 4, 7, { 0 }},
{ 115, 0, 4, 7, { 0 }},
{ 116, 0, 3, 7, { 0 }},
{ 117, 0, 4, 7, { 0 }},
{ 118, 0, 4, 7, { 0 }},
{ 119, 0, 4, 8, { 0 }},
{ 120, 0, 4, 7, { 0 }},
{ 121, 0, 4, 7, { 0 }},
{ 122, 0, 4, 7, { 0 }},
{ 123, 0, 2, 5, { 0 }},
{ 124, 0, 2, 3, { 0 }},
{ 125, 0, 2, 5, { 0 }},
{ 126, 0, -1, 6, { 0 }},
{ 161, 0, 2, 3, { 0 }},
{ 162, 0, 3, 7, { 0 }},
{ 163, 0, 2, 7, { 0 }},
{ 8364, 0, 2, 7, { 0 }},
{ 165, 0, 2, 7, { 0 }},
{ 352, 0, 1, 8, { 0 }},
{ 167, 0, 1, 7, { 0 }},
{ 353, 0, 1, 8, { 0 }},
{ 169, 0, 2, 8, { 0 }},
{ 170, 0, 1, 8, { 0 }},
{ 171, 0, 3, 7, { 0 }},
{ 172, 0, 1, 8, { 0 }},
{ 174, 0, 2, 8, { 0 }},
{ 175, 0, 1, 8, { 0 }},
{ 176, 0, 1, 2, { 0 }},
{ 177, 0, 1, 8, { 0 }},
{ 178, 0, 1, 8, { 0 }},
{ 179, 0, 1, 8, { 0 }},
{ 381, 0, 1, 8, { 0 }},
{ 181, 0, 4, 7, { 0 }},
{ 182, 0, 1, 4, { 0 }},
{ 183, 0, 4, 4, { 0 }},
{ 382, 0, 1, 8, { 0 }},
{ 185, 0, 1, 8, { 0 }},
{ 186, 0, 1, 8, { 0 }},
{ 187, 0, 3, 7, { 0 }},
{ 338, 0, 2, 11, { 0 }},
{ 339, 0, 4, 11, { 0 }},
{ 376, 0, 1, 8, { 0 }},
{ 191, 0, 2, 7, { 0 }},
{ 192, 0, -1, 7, { 0 }},
{ 193, 0, -1, 7, { 0 }},
{ 194, 0, -1, 7, { 0 }},
{ 195, 0, -1, 7, { 0 }},
{ 196, 0, -1, 7, { 0 }},
{ 197, 0, -1, 7, { 0 }},
{ 198, 0, 2, 11, { 0 }},
{ 199, 0, 2, 7, { 0 }},
{ 200, 0, -1, 7, { 0 }},
{ 201, 0, -1, 7, { 0 }},
{ 202, 0, -1, 7, { 0 }},
{ 203, 0, -1, 7, { 0 }},
{ 204, 0, -1, 7, { 0 }},
{ 205, 0, -1, 7, { 0 }},
{ 206, 0, -1, 7, { 0 }},
{ 207, 0, -1, 7, { 0 }},
{ 208, 0, 2, 7, { 0 }},
{ 209, 0, -1, 7, { 0 }},
{ 210, 0, -1, 7, { 0 }},
{ 211, 0, -1, 7, { 0 }},
{ 212, 0, -1, 7, { 0 }},
{ 213, 0, -1, 7, { 0 }},
{ 214, 0, -1, 7, { 0 }},
{ 215, 0, 3, 7, { 0 }},
{ 216, 0, 2, 7, { 0 }},
{ 217, 0, -1, 7, { 0 }},
{ 218, 0, -1, 7, { 0 }},
{ 219, 0, -1, 7, { 0 }},
{ 220, 0, -1, 7, { 0 }},
{ 221, 0, -1, 7, { 0 }},
{ 222, 0, 2, 7, { 0 }},
{ 223, 0, 2, 7, { 0 }},
{ 224, 0, 1, 7, { 0 }},
{ 225, 0, 1, 7, { 0 }},
{ 226, 0, 1, 7, { 0 }},
{ 227, 0, 1, 7, { 0 }},
{ 228, 0, 1, 7, { 0 }},
{ 229, 0, 1, 7, { 0 }},
{ 230, 0, 4, 10, { 0 }},
{ 231, 0, 4, 7, { 0 }},
{ 232, 0, 1, 7, { 0 }},
{ 233, 0, 1, 7, { 0 }},
{ 234, 0, 1, 7, { 0 }},
{ 235, 0, 1, 7, { 0 }},
{ 236, 0, 1, 7, { 0 }},
{ 237, 0, 1, 7, { 0 }},
{ 238, 0, 1, 7, { 0 }},
{ 239, 0, 1, 7, { 0 }},
{ 240, 0, 2, 7, { 0 }},
{ 241, 0, 1, 7, { 0 }},
{ 242, 0, 1, 7, { 0 }},
{ 243, 0, 1, 7, { 0 }},
{ 244, 0, 1, 7, { 0 }},
{ 245, 0, 1, 7, { 0 }},
{ 246, 0, 1, 7, { 0 }},
{ 247, 0, 3, 6, { 0 }},
{ 248, 0, 4, 7, { 0 }},
{ 249, 0, 1, 7, { 0 }},
{ 250, 0, 1, 7, { 0 }},
{ 251, 0, 1, 7, { 0 }},
{ 252, 0, 1, 7, { 0 }},
{ 253, 0, 1, 7, { 0 }},
{ 254, 0, 2, 7, { 0 }},
{ 255, 0, 1, 7, { 0 }},
};
// Style loading function: Jungle
static void GuiLoadStyleJungle(void)
{
// Load style properties provided
// NOTE: Default properties are propagated
for (int i = 0; i < JUNGLE_STYLE_PROPS_COUNT; i++)
{
GuiSetStyle(jungleStyleProps[i].controlId, jungleStyleProps[i].propertyId, jungleStyleProps[i].propertyValue);
}
// Custom font loading
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
int jungleFontDataSize = 0;
unsigned char *data = DecompressData(jungleFontData, JUNGLE_STYLE_FONT_ATLAS_COMP_SIZE, &jungleFontDataSize);
Image imFont = { data, 256, 256, 1, 2 };
Font font = { 0 };
font.baseSize = 12;
font.glyphCount = 189;
// Load texture from image
font.texture = LoadTextureFromImage(imFont);
UnloadImage(imFont); // Uncompressed image data can be unloaded from memory
// Copy char recs data from global fontRecs
// NOTE: Required to avoid issues if trying to free font
font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle));
memcpy(font.recs, jungleFontRecs, font.glyphCount*sizeof(Rectangle));
// Copy font char info data from global fontChars
// NOTE: Required to avoid issues if trying to free font
font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo));
memcpy(font.glyphs, jungleFontGlyphs, font.glyphCount*sizeof(GlyphInfo));
GuiSetFont(font);
// Setup a white rectangle on the font to be used on shapes drawing,
// it makes possible to draw shapes and text (full UI) in a single draw call
Rectangle fontWhiteRec = { 254, 254, 1, 1 };
SetShapesTexture(font.texture, fontWhiteRec);
//-----------------------------------------------------------------
// TODO: Custom user style setup: Set specific properties here (if required)
// i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT
}

View File

@ -0,0 +1,607 @@
//////////////////////////////////////////////////////////////////////////////////
// //
// StyleAsCode exporter v2.0 - Style data exported as a values array //
// //
// USAGE: On init call: GuiLoadStyleLavanda(); //
// //
// more info and bugs-report: github.com/raysan5/raygui //
// feedback and support: ray[at]raylibtech.com //
// //
// Copyright (c) 2020-2024 raylib technologies (@raylibtech) //
// //
//////////////////////////////////////////////////////////////////////////////////
#define LAVANDA_STYLE_PROPS_COUNT 16
// Custom style name: Lavanda
static const GuiStyleProp lavandaStyleProps[LAVANDA_STYLE_PROPS_COUNT] = {
{ 0, 0, 0xab9bd3ff }, // DEFAULT_BORDER_COLOR_NORMAL
{ 0, 1, 0x3e4350ff }, // DEFAULT_BASE_COLOR_NORMAL
{ 0, 2, 0xdadaf4ff }, // DEFAULT_TEXT_COLOR_NORMAL
{ 0, 3, 0xee84a0ff }, // DEFAULT_BORDER_COLOR_FOCUSED
{ 0, 4, 0xf4b7c7ff }, // DEFAULT_BASE_COLOR_FOCUSED
{ 0, 5, 0xb7657bff }, // DEFAULT_TEXT_COLOR_FOCUSED
{ 0, 6, 0xd5c8dbff }, // DEFAULT_BORDER_COLOR_PRESSED
{ 0, 7, 0x966ec0ff }, // DEFAULT_BASE_COLOR_PRESSED
{ 0, 8, 0xd7ccf7ff }, // DEFAULT_TEXT_COLOR_PRESSED
{ 0, 9, 0x8fa2bdff }, // DEFAULT_BORDER_COLOR_DISABLED
{ 0, 10, 0x6b798dff }, // DEFAULT_BASE_COLOR_DISABLED
{ 0, 11, 0x8292a9ff }, // DEFAULT_TEXT_COLOR_DISABLED
{ 0, 16, 0x00000010 }, // DEFAULT_TEXT_SIZE
{ 0, 18, 0x84adb7ff }, // DEFAULT_LINE_COLOR
{ 0, 19, 0x5b5b81ff }, // DEFAULT_BACKGROUND_COLOR
{ 0, 20, 0x00000018 }, // DEFAULT_TEXT_LINE_SPACING
};
// WARNING: This style uses a custom font: "Cartridge.ttf" (size: 16, spacing: 1)
#define LAVANDA_STYLE_FONT_ATLAS_COMP_SIZE 2636
// Font atlas image pixels data: DEFLATE compressed
static unsigned char lavandaFontData[LAVANDA_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed,
0xdd, 0xdb, 0xd2, 0xa4, 0xba, 0x0d, 0x06, 0x50, 0xde, 0xff, 0xa5, 0xbf, 0x5c, 0xa4, 0x52, 0x49, 0xaa, 0x66, 0x63, 0x24,
0x0b, 0x9a, 0xee, 0x59, 0xb3, 0xee, 0x7e, 0xa6, 0x4f, 0x06, 0xf9, 0x04, 0x96, 0x73, 0x00, 0x00, 0x00, 0x00, 0x24, 0x7f,
0xfc, 0x4b, 0x4e, 0xfe, 0x6f, 0x2e, 0xbf, 0xd3, 0x7f, 0xfe, 0x9e, 0xc5, 0xff, 0xf8, 0xff, 0xff, 0x75, 0xed, 0x7d, 0x73,
0xf9, 0xf3, 0x3b, 0x47, 0xf2, 0xc7, 0xef, 0x97, 0x8d, 0xd7, 0xff, 0xd3, 0x3b, 0xd4, 0xff, 0xff, 0x7f, 0xff, 0x55, 0xca,
0xf1, 0xfc, 0x35, 0x47, 0xf1, 0x73, 0xb2, 0xf8, 0x9c, 0xab, 0xbf, 0xb0, 0x56, 0xfa, 0xb5, 0x73, 0x9e, 0xd3, 0x2b, 0xb2,
0xf3, 0xca, 0xf3, 0xd7, 0x1d, 0xe5, 0xb2, 0x3a, 0x96, 0x25, 0x5c, 0x3d, 0xcb, 0xef, 0x8b, 0xff, 0x5c, 0x78, 0xe5, 0xf9,
0xf1, 0x6c, 0xd4, 0x09, 0xeb, 0x72, 0xac, 0xd6, 0x18, 0x3b, 0xa5, 0x7a, 0xf6, 0x1d, 0x2b, 0xff, 0xff, 0x5a, 0x6d, 0xbb,
0x5f, 0x3b, 0xae, 0x4a, 0xbf, 0xfe, 0xad, 0xaf, 0x94, 0x5c, 0x06, 0xfe, 0x7f, 0x5a, 0xdf, 0x7e, 0xe2, 0xfa, 0xcf, 0xf6,
0xb5, 0x7d, 0xa5, 0xad, 0x9c, 0xb8, 0x46, 0xab, 0xf1, 0x9f, 0x56, 0x8b, 0x90, 0x45, 0x99, 0xde, 0x1d, 0xff, 0x9d, 0x76,
0x34, 0x37, 0x95, 0x6a, 0xb5, 0xbe, 0xad, 0x5f, 0x37, 0x29, 0xb6, 0xb4, 0xbd, 0xf8, 0x5f, 0x7f, 0x4e, 0xc6, 0xca, 0x6d,
0xdd, 0x7b, 0xa9, 0x97, 0x76, 0xef, 0xb7, 0x75, 0x6b, 0x95, 0x34, 0x7a, 0x40, 0xfd, 0xfa, 0x7a, 0xaa, 0xc4, 0x6b, 0x51,
0x7a, 0xa5, 0x75, 0xcb, 0x58, 0xbd, 0x9f, 0x72, 0x6b, 0x95, 0x47, 0xca, 0xf2, 0x68, 0xb7, 0x3a, 0xd5, 0x5f, 0x94, 0x72,
0x5c, 0x56, 0xfa, 0xe5, 0xfd, 0xab, 0x30, 0xa5, 0xd1, 0x59, 0x6e, 0x6b, 0xff, 0xd7, 0xad, 0x71, 0x9a, 0x57, 0x72, 0xca,
0x7d, 0x83, 0x94, 0x47, 0x95, 0xeb, 0x73, 0xbc, 0x1e, 0x8b, 0xcc, 0xc7, 0x7f, 0xaf, 0x1f, 0xf3, 0xa7, 0x72, 0xef, 0xf6,
0x12, 0xe6, 0xeb, 0xc6, 0xb7, 0xc7, 0x7f, 0x1a, 0x7d, 0x8c, 0xea, 0x6b, 0x52, 0x9e, 0x7b, 0x39, 0x6f, 0x23, 0xaf, 0x5f,
0x99, 0x19, 0xba, 0x26, 0x3b, 0xad, 0x41, 0x1a, 0xe3, 0xc5, 0xdd, 0x96, 0x7c, 0x7a, 0xce, 0xea, 0xc9, 0xf8, 0xcf, 0x85,
0x19, 0x89, 0xd5, 0x95, 0x97, 0x65, 0x29, 0xe4, 0x86, 0xf6, 0xff, 0x0d, 0x73, 0xaa, 0x4f, 0xc5, 0x7f, 0x96, 0x73, 0x5b,
0x13, 0xd7, 0x74, 0x46, 0xce, 0x43, 0x3e, 0x70, 0x16, 0xae, 0xc4, 0xff, 0xd1, 0x6c, 0xc9, 0x7f, 0x3b, 0xfe, 0x8f, 0x8b,
0xbd, 0xf8, 0xa3, 0x31, 0x0b, 0xf8, 0x5b, 0xf1, 0x9f, 0x46, 0xcc, 0x64, 0x6c, 0x64, 0xde, 0xeb, 0x33, 0xcc, 0xc6, 0xff,
0x7b, 0x6b, 0xe1, 0x55, 0xff, 0x3f, 0x17, 0xef, 0x30, 0xfd, 0x4e, 0xfc, 0x1f, 0xa3, 0xfd, 0xff, 0xf5, 0x15, 0x33, 0x31,
0x6b, 0xf4, 0x77, 0xc4, 0x7f, 0x9a, 0xf5, 0x70, 0x06, 0x67, 0x6e, 0xbe, 0x39, 0xfe, 0x3b, 0xd1, 0x93, 0x76, 0x5d, 0x79,
0xde, 0xba, 0xe5, 0xa4, 0xc7, 0x56, 0xad, 0x19, 0xee, 0x9e, 0xff, 0xef, 0xdf, 0xb7, 0xc9, 0xf6, 0xab, 0xf3, 0xf0, 0xf8,
0xff, 0xb9, 0xf8, 0x3f, 0xca, 0x33, 0xd8, 0xe7, 0xf7, 0x5a, 0xea, 0xf5, 0x4f, 0x1a, 0xf7, 0xbb, 0x8f, 0x91, 0xdf, 0xf2,
0xb6, 0xf3, 0x70, 0xed, 0x35, 0x29, 0xcf, 0x6d, 0x9c, 0xdf, 0x01, 0xfb, 0xe7, 0xd9, 0x88, 0xce, 0xbc, 0xec, 0xfb, 0xea,
0xd8, 0xbc, 0xa6, 0x8d, 0xfd, 0x5b, 0x4a, 0x81, 0x67, 0x9e, 0x31, 0x40, 0xfc, 0x8b, 0x7f, 0x78, 0xfb, 0x73, 0xcb, 0xe2,
0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xdf, 0x5a, 0xa1, 0x57, 0x5b, 0x15, 0xbe,
0x93, 0xcb, 0xb8, 0x93, 0x9d, 0x6e, 0xbd, 0x42, 0x3d, 0xad, 0x9c, 0x04, 0xbd, 0xd7, 0xe5, 0x34, 0x0b, 0x5a, 0x46, 0xf2,
0x13, 0x74, 0xf3, 0x4e, 0x55, 0x32, 0x08, 0x54, 0xf7, 0x32, 0xe8, 0xee, 0x1b, 0x50, 0xfb, 0x8c, 0xce, 0x6a, 0xfd, 0x0c,
0x65, 0x41, 0xe8, 0xe4, 0x16, 0xde, 0x5b, 0x95, 0x5a, 0xcf, 0xd1, 0xb6, 0x93, 0xf5, 0x23, 0xad, 0x55, 0x73, 0x93, 0xf1,
0x9f, 0x4b, 0xb9, 0x0e, 0x3a, 0x19, 0x6a, 0x3a, 0x59, 0x6a, 0x32, 0x9c, 0x5f, 0xe7, 0x5a, 0x94, 0x5e, 0xcb, 0x39, 0x95,
0xe2, 0x77, 0xaa, 0xef, 0xca, 0x90, 0x46, 0xa4, 0xd5, 0xca, 0xb0, 0xb3, 0x3e, 0x72, 0xa7, 0x55, 0xd9, 0xbb, 0x7a, 0x53,
0xca, 0x45, 0x7c, 0x77, 0xde, 0x9d, 0x94, 0xe3, 0xe7, 0xd9, 0xf8, 0x4f, 0xe3, 0x17, 0xe5, 0x52, 0xce, 0xe5, 0x6e, 0x46,
0xb6, 0x6e, 0x26, 0xa7, 0x5e, 0x16, 0x81, 0x7e, 0xfc, 0x5f, 0x3b, 0x03, 0xbf, 0x1d, 0xff, 0x3b, 0xfb, 0xc7, 0x4c, 0xc4,
0x7f, 0xb6, 0x3f, 0x39, 0x23, 0xe5, 0x5a, 0x79, 0x97, 0x55, 0xfc, 0x3c, 0x19, 0xff, 0xfd, 0x8c, 0x85, 0x67, 0xbf, 0x38,
0x5b, 0xf1, 0x3f, 0xf9, 0xba, 0xa3, 0x99, 0x5f, 0x6b, 0x3f, 0xfe, 0xd3, 0xec, 0xb9, 0xce, 0xf5, 0x3d, 0xa7, 0xf2, 0x06,
0x77, 0xae, 0xcf, 0x5c, 0xc8, 0xd7, 0xbb, 0xdb, 0x33, 0xa8, 0xe5, 0xae, 0xce, 0xb2, 0x35, 0xde, 0x8d, 0xff, 0x3c, 0xd8,
0xff, 0xaf, 0x8c, 0xc8, 0x32, 0xde, 0xfe, 0x7f, 0x57, 0xfc, 0xdf, 0xd5, 0xff, 0xbf, 0xd2, 0x92, 0x75, 0xf7, 0xf5, 0x7a,
0x3a, 0xfe, 0xef, 0x98, 0x97, 0xca, 0x48, 0xcb, 0xd5, 0xaf, 0x31, 0xae, 0xf6, 0xff, 0x33, 0xb4, 0x2b, 0x55, 0x6f, 0xdc,
0x92, 0x9b, 0xdb, 0xff, 0x34, 0x46, 0x4a, 0xbb, 0xf1, 0x7f, 0x5c, 0xca, 0x83, 0x9a, 0xe6, 0xb9, 0xae, 0xd4, 0xe1, 0x3b,
0x3b, 0xef, 0xed, 0xf4, 0xe0, 0xd3, 0xdc, 0x79, 0x2e, 0x8d, 0x91, 0xea, 0x6f, 0xc4, 0xff, 0xce, 0x2e, 0x5d, 0x4f, 0xf5,
0xdc, 0x8f, 0x0b, 0x6d, 0xde, 0x1b, 0xe3, 0x7f, 0x7e, 0xfe, 0x6f, 0xfd, 0x1d, 0xf2, 0xf0, 0xf8, 0x3f, 0x8d, 0x28, 0x7e,
0x5f, 0xfc, 0xd7, 0xdb, 0xa3, 0x99, 0xfd, 0x90, 0xa7, 0x6b, 0x80, 0xce, 0xee, 0x99, 0x9d, 0x9d, 0x53, 0x53, 0xda, 0x89,
0x6c, 0xae, 0x47, 0x32, 0xd5, 0xff, 0x7f, 0x2e, 0xfe, 0xd3, 0xba, 0x0e, 0x3b, 0xdf, 0xbf, 0xbf, 0x3b, 0x40, 0xb6, 0x5a,
0x95, 0x8c, 0xc6, 0xff, 0xc4, 0x2c, 0x5d, 0xb7, 0x4e, 0x7a, 0x7e, 0x3f, 0xf4, 0xe7, 0xee, 0x59, 0xa7, 0xb9, 0xab, 0x5b,
0x46, 0xee, 0x8c, 0x67, 0x64, 0x2e, 0x2d, 0x5b, 0xf1, 0xbf, 0x7f, 0x2e, 0xaa, 0xfb, 0x32, 0xae, 0xfb, 0xc6, 0xf5, 0x79,
0x91, 0x6e, 0xfc, 0xf7, 0x32, 0xd4, 0x5f, 0xfd, 0x1d, 0xff, 0x3c, 0x57, 0x72, 0x8c, 0xdf, 0x91, 0x4e, 0xab, 0xae, 0xea,
0xf6, 0x2c, 0xd2, 0xda, 0x35, 0xff, 0x7d, 0xf1, 0xff, 0x44, 0xad, 0x31, 0x33, 0xf3, 0xd9, 0xb9, 0x17, 0x99, 0xf2, 0x35,
0x3d, 0x3d, 0xc2, 0xfa, 0xfc, 0x19, 0xbd, 0x6f, 0x47, 0xa3, 0x37, 0x65, 0xe3, 0x9d, 0x88, 0xff, 0xa3, 0x71, 0xbf, 0x62,
0xff, 0x4e, 0xdf, 0x77, 0x66, 0x35, 0xce, 0x8d, 0x4f, 0x25, 0xcc, 0xbd, 0xbf, 0x67, 0x10, 0x3f, 0x17, 0x75, 0x7f, 0x6b,
0xa9, 0xfd, 0x1d, 0xf1, 0xff, 0x4c, 0x8d, 0x3d, 0x3d, 0x12, 0x81, 0x4f, 0x8e, 0xa9, 0x33, 0x32, 0x02, 0xe7, 0xb7, 0xda,
0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xa9, 0xf5, 0x63, 0x33, 0xf9, 0x89, 0xd6,
0x6b, 0x9a, 0x6b, 0x2b, 0x21, 0xd2, 0x58, 0xaf, 0xbc, 0x97, 0x47, 0xbf, 0x9a, 0xd5, 0xe5, 0x7c, 0xbd, 0x4c, 0x2e, 0xae,
0xa1, 0x59, 0xad, 0x10, 0xc9, 0xf6, 0x5a, 0xbc, 0xee, 0xae, 0x06, 0xab, 0x4f, 0xeb, 0x64, 0x65, 0x38, 0xdf, 0x4d, 0xa0,
0xbb, 0x0f, 0xc0, 0x59, 0x96, 0x83, 0x94, 0x3f, 0xef, 0xec, 0x95, 0x29, 0xe7, 0x0a, 0x4b, 0x61, 0xed, 0x54, 0x5a, 0x57,
0x68, 0x27, 0xa3, 0xc3, 0xff, 0x7e, 0x5e, 0xe5, 0x6c, 0x65, 0x79, 0xa5, 0x55, 0xb2, 0xf1, 0xd5, 0xf3, 0x9d, 0xac, 0x32,
0x10, 0xf6, 0xf3, 0xe8, 0x67, 0x70, 0x05, 0x7e, 0x86, 0xfe, 0x5a, 0x59, 0x25, 0x96, 0xad, 0x3a, 0x3e, 0x43, 0x75, 0xed,
0x6e, 0x79, 0xa5, 0x51, 0x73, 0xa7, 0x5d, 0xe3, 0x1f, 0xad, 0x0c, 0x09, 0x19, 0xc8, 0x08, 0x90, 0x56, 0x09, 0x9d, 0xb5,
0x42, 0x69, 0xaf, 0x42, 0xac, 0x67, 0x39, 0x4a, 0xf9, 0x3b, 0x1e, 0x8d, 0x3c, 0xa8, 0xb3, 0xd9, 0x97, 0x76, 0xf6, 0xfd,
0x98, 0xc9, 0x98, 0x39, 0xb5, 0x86, 0xbe, 0x97, 0x9b, 0xa9, 0xfe, 0xd9, 0x9d, 0xab, 0x2a, 0x1b, 0xbd, 0xd0, 0x14, 0x7f,
0x5d, 0x2e, 0xb7, 0x71, 0x7f, 0x6e, 0xf5, 0xea, 0x71, 0x53, 0xcf, 0xa9, 0x34, 0x95, 0x3b, 0xe9, 0xae, 0xf8, 0x3f, 0xc6,
0xb3, 0x9c, 0xf5, 0x7a, 0x21, 0xbb, 0x3d, 0xf5, 0xbd, 0xf8, 0x5f, 0xef, 0x52, 0xb4, 0x5f, 0xe3, 0xdf, 0x19, 0xff, 0xbd,
0x5c, 0x88, 0x59, 0xf6, 0xba, 0xbb, 0x7b, 0xaf, 0xd5, 0xfa, 0xf1, 0x69, 0x67, 0x97, 0xed, 0xe5, 0xd1, 0xc8, 0x22, 0xb7,
0x6c, 0x6f, 0xdd, 0xfe, 0x7e, 0xff, 0x7f, 0xdd, 0x8f, 0x3f, 0xab, 0x1b, 0xef, 0xc8, 0xff, 0x77, 0x7f, 0xfc, 0xd7, 0xb2,
0x26, 0xf7, 0xda, 0xf0, 0x6b, 0x79, 0x74, 0x27, 0xb3, 0xdf, 0x7d, 0x2a, 0xfe, 0xeb, 0xe3, 0xea, 0xe9, 0x31, 0x45, 0xe7,
0x0c, 0xe5, 0x42, 0x2e, 0xc3, 0xb4, 0xf2, 0xa7, 0x9e, 0x8f, 0x7a, 0x67, 0xb3, 0xf0, 0xdc, 0xf9, 0x3e, 0x57, 0xc6, 0x62,
0xcf, 0xc5, 0x7f, 0x36, 0x46, 0xe0, 0x7b, 0xed, 0x56, 0x2e, 0xb7, 0x22, 0xf7, 0xc7, 0xff, 0xdc, 0x9e, 0x95, 0xfb, 0x79,
0xfa, 0x7a, 0x7d, 0xfc, 0x6c, 0xcc, 0x82, 0x75, 0xce, 0xe8, 0xb5, 0xb9, 0x8e, 0x3c, 0x32, 0xeb, 0x9d, 0xad, 0xb8, 0xb9,
0x7f, 0x4e, 0xbe, 0x36, 0x1b, 0x34, 0x1f, 0xff, 0x47, 0x71, 0xfc, 0x7d, 0x5c, 0xdc, 0xab, 0x63, 0x77, 0xdc, 0x9a, 0xad,
0xfe, 0xf8, 0xec, 0x9c, 0x55, 0xfd, 0xbb, 0x3f, 0xdf, 0xff, 0xdf, 0xcb, 0x1a, 0x9b, 0x56, 0x3f, 0x38, 0x1b, 0x75, 0x69,
0x27, 0xf3, 0xf2, 0x4e, 0x8c, 0x4d, 0xee, 0x53, 0x36, 0xf1, 0x1d, 0xcf, 0x47, 0x11, 0xd3, 0xf1, 0x5f, 0x2f, 0x85, 0x7c,
0xb4, 0x1f, 0xd4, 0xbf, 0x5a, 0xfb, 0x11, 0x98, 0xc1, 0xb3, 0xf8, 0xfc, 0xfc, 0x5f, 0xda, 0x75, 0x5f, 0x36, 0x33, 0x9e,
0x57, 0xdb, 0x8e, 0x67, 0xf3, 0x09, 0xe6, 0xa5, 0xf9, 0x0b, 0xfb, 0xb9, 0xff, 0xf3, 0x48, 0xa4, 0x4d, 0xe7, 0x9c, 0xbe,
0xbf, 0x1e, 0xd9, 0xbb, 0x77, 0x96, 0xdb, 0xcf, 0x62, 0x6e, 0x7f, 0xf7, 0x2c, 0x9f, 0x33, 0xe8, 0xde, 0xdf, 0xc8, 0xe0,
0xfd, 0x44, 0x8e, 0xad, 0x79, 0x9a, 0x7c, 0xf8, 0x3b, 0x1e, 0xce, 0xef, 0x43, 0xf1, 0xff, 0xe9, 0x72, 0xef, 0xcf, 0xd5,
0xc9, 0x7a, 0xfb, 0xfd, 0xf1, 0xcf, 0x3b, 0xe3, 0xff, 0x78, 0x49, 0xfc, 0xf3, 0x7c, 0x0d, 0x2e, 0xfe, 0xdf, 0x77, 0x2e,
0x77, 0x9f, 0xff, 0x7d, 0xfb, 0xaf, 0xd3, 0x96, 0xdf, 0x55, 0xaa, 0xca, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x58, 0xaf, 0x1c, 0xca, 0x50, 0x46, 0xa0, 0xe3, 0xff, 0x72, 0x97, 0xac, 0x73, 0x4d, 0x76, 0xf2,
0xc6, 0xf7, 0x57, 0x53, 0xa5, 0x7d, 0x6c, 0x27, 0x17, 0x4b, 0x2e, 0xad, 0x00, 0xc9, 0xc8, 0x7e, 0x09, 0xfd, 0x52, 0x4a,
0x29, 0x9b, 0x68, 0x25, 0x7f, 0x5b, 0x1a, 0x2b, 0x83, 0x7b, 0x59, 0x9f, 0x3e, 0x75, 0x9e, 0x57, 0x19, 0x57, 0xfa, 0xbf,
0x26, 0x37, 0xac, 0x1e, 0xbc, 0xfa, 0x3d, 0x7a, 0x59, 0x58, 0x73, 0x69, 0xa5, 0x5b, 0xda, 0xb9, 0x5c, 0xfb, 0xeb, 0x29,
0xd3, 0x5c, 0x4f, 0x99, 0xed, 0xd2, 0x5e, 0x45, 0x63, 0x2f, 0x5f, 0x6a, 0xb7, 0x8e, 0xdc, 0xcf, 0xf0, 0x9d, 0xed, 0x77,
0xbe, 0xb2, 0x47, 0x41, 0xbe, 0xe8, 0x3c, 0x77, 0xeb, 0x86, 0xfe, 0xef, 0xcc, 0xed, 0xb1, 0xb3, 0x9b, 0xf9, 0xef, 0xca,
0x55, 0xdf, 0xdb, 0x87, 0xe6, 0x8d, 0xab, 0x38, 0x77, 0xea, 0xf0, 0x6e, 0x1e, 0xb3, 0x6f, 0x58, 0xdf, 0x9b, 0x8f, 0xfe,
0xae, 0xe7, 0xce, 0xf3, 0x3a, 0xcf, 0xe1, 0x1b, 0x7e, 0x6b, 0x25, 0xc3, 0x6b, 0xa7, 0xfd, 0xcf, 0xa5, 0xf2, 0xba, 0x92,
0xdd, 0xb4, 0xb7, 0xeb, 0xd5, 0x67, 0x8e, 0x1e, 0x9b, 0xd9, 0xb6, 0x3a, 0xd9, 0xae, 0xcf, 0x77, 0xac, 0xaa, 0x1f, 0xd9,
0x6d, 0xff, 0xbb, 0x7f, 0xed, 0xec, 0x43, 0xf4, 0x89, 0xf3, 0xdc, 0xdb, 0x1d, 0x2d, 0x8b, 0x51, 0xf7, 0x95, 0x32, 0xae,
0x1d, 0xdb, 0xed, 0x25, 0xef, 0x8d, 0xff, 0xab, 0xed, 0xff, 0x51, 0xbe, 0xea, 0x77, 0x7a, 0xda, 0x6f, 0x3b, 0xba, 0x93,
0x71, 0xf3, 0xa9, 0x23, 0x77, 0xc4, 0x7f, 0x4e, 0xb3, 0xf1, 0xe7, 0xd2, 0x2c, 0xc3, 0x4e, 0x66, 0xe7, 0xfa, 0xd1, 0x5c,
0x2a, 0x8f, 0xf3, 0x36, 0xf4, 0xfb, 0xe2, 0x7f, 0xef, 0xbd, 0xd7, 0xf1, 0x5d, 0xcf, 0x50, 0x7b, 0xb4, 0xe7, 0xe1, 0xee,
0x8b, 0xe1, 0xa3, 0xfd, 0xad, 0xf2, 0x9a, 0x28, 0xaf, 0xe5, 0x04, 0xbd, 0xbb, 0xfd, 0xbf, 0x96, 0xdd, 0xfc, 0x3d, 0x47,
0xaf, 0xb5, 0x49, 0xef, 0x88, 0xff, 0xdc, 0x3a, 0x26, 0x4c, 0x69, 0xa6, 0xf5, 0x28, 0xee, 0x7d, 0x94, 0xd7, 0xb5, 0x0b,
0xeb, 0x3d, 0x35, 0xae, 0xb4, 0x29, 0xb3, 0x11, 0xdb, 0x3b, 0xf2, 0xa6, 0xfe, 0xff, 0x2f, 0xc5, 0xff, 0x1d, 0x31, 0xfe,
0x4c, 0xfc, 0xef, 0xf5, 0x00, 0xfa, 0xfb, 0x2d, 0x75, 0x6a, 0x86, 0x9d, 0xbd, 0x6d, 0x76, 0x8f, 0x76, 0x6b, 0x87, 0xfc,
0xa1, 0x36, 0xec, 0xcd, 0xb4, 0x7e, 0x5b, 0xff, 0xff, 0xfc, 0xfe, 0x4f, 0xda, 0xf3, 0xcb, 0xef, 0x8b, 0xff, 0x7e, 0x0b,
0x70, 0x4f, 0xfc, 0xe7, 0xc1, 0x79, 0xd2, 0xb4, 0x67, 0x3d, 0xd3, 0xb8, 0x6f, 0xfc, 0xc6, 0x71, 0x61, 0xe5, 0xec, 0x77,
0xf6, 0xd0, 0xfc, 0xee, 0xf8, 0x5f, 0xcf, 0x2f, 0xfd, 0x4a, 0xff, 0x3f, 0x1b, 0xb3, 0xa0, 0xd3, 0xf1, 0xff, 0x3d, 0xf9,
0x46, 0x33, 0x36, 0xee, 0xf8, 0xbe, 0x56, 0xa3, 0x1b, 0x57, 0x3b, 0xa3, 0x89, 0xeb, 0x73, 0xae, 0xcf, 0xec, 0x76, 0x92,
0x57, 0x9d, 0xab, 0x3b, 0xee, 0x58, 0x7e, 0x66, 0xfe, 0xef, 0x5b, 0x22, 0x5f, 0xfc, 0xaf, 0xe6, 0xd0, 0xcf, 0xc7, 0xcf,
0xb5, 0x23, 0x95, 0xe7, 0x0c, 0x3f, 0x17, 0xff, 0x9f, 0x9b, 0xe7, 0xb9, 0x67, 0x37, 0x93, 0xce, 0x33, 0x36, 0xc7, 0x2d,
0xcf, 0xce, 0xbd, 0xef, 0x59, 0x8b, 0xe3, 0x0b, 0xe2, 0x7f, 0x66, 0x36, 0xb4, 0x53, 0x12, 0x59, 0xec, 0x8b, 0x9c, 0xe2,
0x33, 0xd7, 0x77, 0xf5, 0xff, 0x67, 0x5b, 0xc5, 0x4f, 0x3e, 0xe7, 0xf1, 0xfc, 0x95, 0xde, 0x3d, 0x06, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xf6, 0xda, 0xba, 0x7a, 0xd6, 0xbd, 0x34, 0xd7, 0xef, 0xf6, 0xd7,
0xa9, 0xd6, 0x77, 0x0d, 0xb8, 0xf2, 0x9e, 0x29, 0xaf, 0xbf, 0xa9, 0x7d, 0x52, 0xe5, 0x5b, 0xdf, 0x93, 0x75, 0xff, 0x58,
0xe4, 0x18, 0xc8, 0xc8, 0x35, 0x91, 0x72, 0x4e, 0x87, 0xa3, 0x99, 0x95, 0x28, 0xe5, 0xab, 0x2e, 0x8d, 0xbf, 0xa7, 0xbc,
0x32, 0xf3, 0x68, 0x7c, 0xef, 0x37, 0xaf, 0xb9, 0xef, 0x66, 0xf2, 0xec, 0xef, 0x50, 0x31, 0xbd, 0xea, 0x31, 0xcd, 0x3c,
0xdc, 0x19, 0x5b, 0xef, 0x9a, 0x8d, 0x15, 0xcd, 0x9d, 0x48, 0xaf, 0xd4, 0xd7, 0x69, 0xc7, 0x46, 0xad, 0x3e, 0xcb, 0xe8,
0x75, 0x3a, 0xb7, 0x43, 0x4c, 0x46, 0x33, 0x69, 0xbe, 0x79, 0x5d, 0x5e, 0x9a, 0xd9, 0x35, 0xf2, 0x05, 0xeb, 0x90, 0xb3,
0xb1, 0x5b, 0x4a, 0x1a, 0x3b, 0x9d, 0x7c, 0x66, 0xa5, 0xf3, 0xde, 0x95, 0xf9, 0xce, 0x55, 0xa3, 0xd5, 0x7c, 0x6e, 0x4f,
0x5d, 0x75, 0xbd, 0x9c, 0x1f, 0x19, 0x7f, 0xc7, 0x67, 0xe2, 0xbf, 0x93, 0x77, 0x37, 0xcb, 0x3e, 0xe5, 0xb3, 0xab, 0x9e,
0xbb, 0xd9, 0xc6, 0xd2, 0xda, 0x6d, 0x60, 0xff, 0xef, 0x9f, 0xc8, 0xba, 0x73, 0x6f, 0xfb, 0x3f, 0xdf, 0xc7, 0xae, 0x66,
0x38, 0xe8, 0x5d, 0xdd, 0xdd, 0x9d, 0x2e, 0xf2, 0x33, 0xf1, 0xbf, 0xce, 0xba, 0x98, 0x91, 0xd9, 0x84, 0x4f, 0x1c, 0x4b,
0x73, 0xd7, 0xa7, 0x0c, 0x8d, 0x17, 0xd6, 0xb9, 0x2e, 0x9f, 0x88, 0xff, 0x9c, 0xf4, 0xce, 0xd3, 0xd8, 0xd9, 0x62, 0xea,
0xef, 0x93, 0xb3, 0x15, 0xfd, 0x5d, 0x6b, 0xe6, 0xe2, 0x3f, 0xc3, 0x3b, 0xb0, 0xbd, 0x3d, 0xfe, 0xa7, 0x67, 0x00, 0xfa,
0x31, 0x9e, 0xf6, 0x68, 0x6d, 0x62, 0x94, 0xdb, 0xf9, 0xfb, 0x73, 0x59, 0xf7, 0xcf, 0xf2, 0x2a, 0xa7, 0x75, 0x45, 0x64,
0x60, 0x1e, 0x25, 0xed, 0x1e, 0xf6, 0xfd, 0xf1, 0xbf, 0xb3, 0xe7, 0x4f, 0xbe, 0x2e, 0xfe, 0x57, 0x35, 0x5a, 0x3d, 0xbf,
0x6d, 0x5a, 0xb1, 0xda, 0x3b, 0x96, 0x8d, 0xd9, 0x9f, 0x2c, 0xb3, 0xe6, 0xdf, 0xd3, 0xfb, 0xaf, 0x7d, 0xdb, 0x99, 0xf8,
0x9f, 0x89, 0xce, 0x4f, 0xc6, 0x7f, 0x36, 0xf6, 0x8e, 0x99, 0x6c, 0xdd, 0xd2, 0xcc, 0x14, 0x9a, 0x97, 0xce, 0xff, 0x75,
0x46, 0x34, 0xf3, 0x7b, 0x75, 0xdc, 0x71, 0x6c, 0x6f, 0xe6, 0x2b, 0x37, 0x8e, 0x7d, 0x8f, 0x0f, 0xb4, 0xff, 0x13, 0x35,
0xc3, 0x67, 0xdb, 0xff, 0x63, 0xf4, 0x7a, 0x5c, 0xff, 0xfa, 0x3c, 0xd0, 0xa3, 0x7c, 0x4b, 0xfc, 0xe7, 0x4b, 0xe3, 0xff,
0xb8, 0xb0, 0xa3, 0xdc, 0x5b, 0x6b, 0x80, 0x3c, 0x3a, 0xfe, 0x7f, 0x57, 0xfc, 0xcf, 0xde, 0x01, 0xc9, 0xf2, 0x1e, 0x67,
0x2d, 0xca, 0xd3, 0xb8, 0xd3, 0x98, 0xe2, 0x6e, 0x6a, 0xef, 0x79, 0xfe, 0x27, 0xcd, 0xd1, 0x49, 0x35, 0x1e, 0xef, 0x39,
0x76, 0xcf, 0xac, 0x6b, 0xca, 0x73, 0x8a, 0x19, 0xb9, 0xce, 0x9f, 0xcc, 0xba, 0xbb, 0x1a, 0xc5, 0x3d, 0xff, 0xeb, 0x77,
0xef, 0xa7, 0x66, 0xe8, 0xc8, 0xe4, 0xb3, 0x44, 0x6f, 0x79, 0x3a, 0x60, 0xfa, 0x1e, 0xda, 0x37, 0xe4, 0x21, 0xce, 0xcf,
0x67, 0x4c, 0xbf, 0xef, 0xa9, 0x01, 0xee, 0xed, 0xe9, 0x7d, 0xcf, 0xb3, 0xc1, 0x88, 0x7e, 0xd6, 0xcf, 0xa8, 0xfc, 0xe6,
0xef, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xa6, 0xfd, 0xfb, 0x9f, 0x72, 0x00, 0xf1, 0x0f, 0xfc, 0x75, 0xf1, 0xff, 0x2f };
// Font glyphs rectangles data (on atlas)
static const Rectangle lavandaFontRecs[189] = {
{ 4, 4, 5 , 16 },
{ 17, 4, 1 , 9 },
{ 26, 4, 3 , 3 },
{ 37, 4, 7 , 8 },
{ 52, 4, 5 , 11 },
{ 65, 4, 10 , 8 },
{ 83, 4, 7 , 9 },
{ 98, 4, 1 , 3 },
{ 107, 4, 3 , 12 },
{ 118, 4, 3 , 12 },
{ 129, 4, 5 , 4 },
{ 142, 4, 5 , 5 },
{ 155, 4, 2 , 3 },
{ 165, 4, 3 , 1 },
{ 176, 4, 1 , 1 },
{ 185, 4, 4 , 12 },
{ 197, 4, 5 , 9 },
{ 210, 4, 3 , 9 },
{ 221, 4, 5 , 9 },
{ 234, 4, 5 , 9 },
{ 247, 4, 5 , 9 },
{ 260, 4, 5 , 9 },
{ 273, 4, 5 , 9 },
{ 286, 4, 5 , 9 },
{ 299, 4, 5 , 9 },
{ 312, 4, 5 , 9 },
{ 325, 4, 1 , 4 },
{ 334, 4, 2 , 6 },
{ 344, 4, 4 , 5 },
{ 356, 4, 4 , 3 },
{ 368, 4, 4 , 5 },
{ 380, 4, 5 , 9 },
{ 393, 4, 7 , 10 },
{ 408, 4, 7 , 9 },
{ 423, 4, 6 , 9 },
{ 437, 4, 5 , 9 },
{ 450, 4, 6 , 9 },
{ 464, 4, 5 , 9 },
{ 477, 4, 5 , 9 },
{ 490, 4, 6 , 9 },
{ 4, 28, 5 , 10 },
{ 17, 28, 1 , 9 },
{ 26, 28, 6 , 9 },
{ 40, 28, 6 , 9 },
{ 54, 28, 5 , 9 },
{ 67, 28, 8 , 11 },
{ 83, 28, 6 , 10 },
{ 97, 28, 7 , 9 },
{ 112, 28, 5 , 9 },
{ 125, 28, 7 , 11 },
{ 140, 28, 5 , 9 },
{ 153, 28, 6 , 9 },
{ 167, 28, 7 , 9 },
{ 182, 28, 6 , 9 },
{ 196, 28, 6 , 10 },
{ 210, 28, 9 , 10 },
{ 227, 28, 6 , 11 },
{ 241, 28, 5 , 10 },
{ 254, 28, 5 , 9 },
{ 267, 28, 3 , 12 },
{ 278, 28, 4 , 12 },
{ 290, 28, 3 , 12 },
{ 301, 28, 5 , 4 },
{ 314, 28, 6 , 1 },
{ 328, 28, 3 , 3 },
{ 339, 28, 6 , 7 },
{ 353, 28, 5 , 9 },
{ 366, 28, 4 , 7 },
{ 378, 28, 5 , 10 },
{ 391, 28, 4 , 7 },
{ 403, 28, 3 , 10 },
{ 414, 28, 4 , 11 },
{ 426, 28, 5 , 11 },
{ 439, 28, 1 , 9 },
{ 448, 28, 5 , 12 },
{ 461, 28, 5 , 9 },
{ 474, 28, 1 , 9 },
{ 483, 28, 8 , 9 },
{ 4, 52, 5 , 9 },
{ 17, 52, 4 , 7 },
{ 29, 52, 5 , 10 },
{ 42, 52, 5 , 10 },
{ 55, 52, 5 , 7 },
{ 68, 52, 5 , 7 },
{ 81, 52, 3 , 9 },
{ 92, 52, 5 , 7 },
{ 105, 52, 5 , 8 },
{ 118, 52, 9 , 8 },
{ 135, 52, 5 , 9 },
{ 148, 52, 6 , 9 },
{ 162, 52, 4 , 7 },
{ 174, 52, 5 , 12 },
{ 187, 52, 1 , 12 },
{ 196, 52, 5 , 12 },
{ 209, 52, 6 , 2 },
{ 223, 52, 1 , 9 },
{ 232, 52, 5 , 10 },
{ 245, 52, 6 , 9 },
{ 259, 52, 7 , 9 },
{ 274, 52, 5 , 9 },
{ 287, 52, 6 , 12 },
{ 301, 52, 5 , 10 },
{ 314, 52, 5 , 10 },
{ 327, 52, 8 , 8 },
{ 343, 52, 4 , 7 },
{ 355, 52, 6 , 5 },
{ 369, 52, 6 , 3 },
{ 383, 52, 8 , 8 },
{ 399, 52, 5 , 1 },
{ 412, 52, 4 , 4 },
{ 424, 52, 5 , 7 },
{ 437, 52, 3 , 4 },
{ 448, 52, 3 , 4 },
{ 459, 52, 5 , 12 },
{ 472, 52, 5 , 10 },
{ 485, 52, 7 , 11 },
{ 500, 52, 1 , 1 },
{ 4, 76, 4 , 10 },
{ 16, 76, 2 , 4 },
{ 26, 76, 4 , 7 },
{ 38, 76, 6 , 5 },
{ 52, 76, 11 , 9 },
{ 71, 76, 7 , 7 },
{ 86, 76, 5 , 12 },
{ 99, 76, 5 , 9 },
{ 112, 76, 7 , 12 },
{ 127, 76, 7 , 12 },
{ 142, 76, 7 , 12 },
{ 157, 76, 7 , 12 },
{ 172, 76, 7 , 11 },
{ 187, 76, 7 , 12 },
{ 202, 76, 10 , 9 },
{ 220, 76, 5 , 12 },
{ 233, 76, 5 , 12 },
{ 246, 76, 5 , 12 },
{ 259, 76, 5 , 12 },
{ 272, 76, 5 , 11 },
{ 285, 76, 2 , 12 },
{ 295, 76, 2 , 12 },
{ 305, 76, 3 , 12 },
{ 316, 76, 3 , 11 },
{ 327, 76, 7 , 9 },
{ 342, 76, 6 , 12 },
{ 356, 76, 7 , 12 },
{ 371, 76, 7 , 12 },
{ 386, 76, 7 , 12 },
{ 401, 76, 7 , 12 },
{ 416, 76, 7 , 11 },
{ 431, 76, 5 , 5 },
{ 444, 76, 7 , 9 },
{ 459, 76, 6 , 12 },
{ 473, 76, 6 , 12 },
{ 487, 76, 6 , 12 },
{ 4, 100, 6 , 11 },
{ 18, 100, 5 , 13 },
{ 31, 100, 5 , 9 },
{ 44, 100, 5 , 11 },
{ 57, 100, 6 , 10 },
{ 71, 100, 6 , 10 },
{ 85, 100, 6 , 10 },
{ 99, 100, 6 , 10 },
{ 113, 100, 6 , 9 },
{ 127, 100, 6 , 11 },
{ 141, 100, 7 , 7 },
{ 156, 100, 4 , 10 },
{ 168, 100, 4 , 10 },
{ 180, 100, 4 , 10 },
{ 192, 100, 4 , 10 },
{ 204, 100, 4 , 9 },
{ 216, 100, 2 , 10 },
{ 226, 100, 2 , 10 },
{ 236, 100, 3 , 10 },
{ 247, 100, 3 , 9 },
{ 258, 100, 5 , 9 },
{ 271, 100, 5 , 12 },
{ 284, 100, 4 , 10 },
{ 296, 100, 4 , 10 },
{ 308, 100, 4 , 10 },
{ 320, 100, 5 , 10 },
{ 333, 100, 4 , 9 },
{ 345, 100, 5 , 5 },
{ 358, 100, 6 , 7 },
{ 372, 100, 5 , 10 },
{ 385, 100, 5 , 10 },
{ 398, 100, 5 , 10 },
{ 411, 100, 5 , 9 },
{ 424, 100, 6 , 12 },
{ 438, 100, 5 , 12 },
{ 451, 100, 6 , 11 },
};
// Font glyphs info data
// NOTE: No glyphs.image data provided
static const GlyphInfo lavandaFontGlyphs[189] = {
{ 32, 0, 12, 5, { 0 }},
{ 33, 0, 3, 2, { 0 }},
{ 34, 0, 3, 4, { 0 }},
{ 35, 0, 3, 8, { 0 }},
{ 36, 0, 2, 6, { 0 }},
{ 37, 0, 4, 11, { 0 }},
{ 38, 0, 3, 8, { 0 }},
{ 39, 0, 3, 2, { 0 }},
{ 40, 0, 2, 4, { 0 }},
{ 41, 0, 2, 4, { 0 }},
{ 42, 0, 3, 6, { 0 }},
{ 43, 0, 5, 6, { 0 }},
{ 44, 0, 10, 3, { 0 }},
{ 45, 0, 7, 4, { 0 }},
{ 46, 0, 11, 2, { 0 }},
{ 47, 0, 2, 5, { 0 }},
{ 48, 0, 3, 6, { 0 }},
{ 49, 0, 3, 4, { 0 }},
{ 50, 0, 3, 6, { 0 }},
{ 51, 0, 3, 6, { 0 }},
{ 52, 0, 3, 6, { 0 }},
{ 53, 0, 3, 6, { 0 }},
{ 54, 0, 3, 6, { 0 }},
{ 55, 0, 3, 6, { 0 }},
{ 56, 0, 3, 6, { 0 }},
{ 57, 0, 3, 6, { 0 }},
{ 58, 0, 7, 2, { 0 }},
{ 59, 0, 7, 3, { 0 }},
{ 60, 0, 5, 5, { 0 }},
{ 61, 0, 6, 5, { 0 }},
{ 62, 0, 5, 5, { 0 }},
{ 63, 0, 3, 6, { 0 }},
{ 64, 0, 4, 8, { 0 }},
{ 65, 0, 3, 8, { 0 }},
{ 66, 0, 3, 7, { 0 }},
{ 67, 0, 3, 6, { 0 }},
{ 68, 0, 3, 7, { 0 }},
{ 69, 0, 3, 6, { 0 }},
{ 70, 0, 3, 6, { 0 }},
{ 71, 0, 3, 7, { 0 }},
{ 72, 0, 2, 6, { 0 }},
{ 73, 0, 3, 2, { 0 }},
{ 74, 0, 3, 7, { 0 }},
{ 75, 0, 3, 7, { 0 }},
{ 76, 0, 3, 6, { 0 }},
{ 77, 0, 3, 9, { 0 }},
{ 78, 0, 2, 7, { 0 }},
{ 79, 0, 3, 8, { 0 }},
{ 80, 0, 3, 6, { 0 }},
{ 81, 0, 3, 8, { 0 }},
{ 82, 0, 3, 6, { 0 }},
{ 83, 0, 3, 7, { 0 }},
{ 84, 0, 3, 8, { 0 }},
{ 85, 0, 3, 7, { 0 }},
{ 86, 0, 2, 7, { 0 }},
{ 87, 0, 2, 10, { 0 }},
{ 88, 0, 3, 7, { 0 }},
{ 89, 0, 3, 6, { 0 }},
{ 90, 0, 3, 6, { 0 }},
{ 91, 0, 2, 4, { 0 }},
{ 92, 0, 2, 5, { 0 }},
{ 93, 0, 2, 4, { 0 }},
{ 94, 0, 3, 6, { 0 }},
{ 95, 0, 13, 7, { 0 }},
{ 96, 0, 3, 4, { 0 }},
{ 97, 0, 5, 7, { 0 }},
{ 98, 0, 3, 6, { 0 }},
{ 99, 0, 5, 5, { 0 }},
{ 100, 0, 2, 6, { 0 }},
{ 101, 0, 5, 5, { 0 }},
{ 102, 0, 2, 4, { 0 }},
{ 103, 0, 4, 5, { 0 }},
{ 104, 0, 3, 6, { 0 }},
{ 105, 0, 3, 2, { 0 }},
{ 106, -1, 3, 5, { 0 }},
{ 107, 0, 3, 6, { 0 }},
{ 108, 0, 3, 2, { 0 }},
{ 109, 0, 5, 9, { 0 }},
{ 110, 0, 5, 6, { 0 }},
{ 111, 0, 5, 5, { 0 }},
{ 112, 0, 5, 6, { 0 }},
{ 113, 0, 5, 6, { 0 }},
{ 114, 0, 5, 6, { 0 }},
{ 115, 0, 5, 6, { 0 }},
{ 116, 0, 3, 4, { 0 }},
{ 117, 0, 5, 6, { 0 }},
{ 118, 0, 4, 6, { 0 }},
{ 119, 0, 4, 10, { 0 }},
{ 120, 0, 5, 6, { 0 }},
{ 121, -1, 5, 6, { 0 }},
{ 122, 0, 5, 5, { 0 }},
{ 123, 0, 2, 6, { 0 }},
{ 124, 0, 2, 2, { 0 }},
{ 125, 0, 2, 6, { 0 }},
{ 126, 0, 7, 7, { 0 }},
{ 161, 0, 5, 2, { 0 }},
{ 162, 0, 4, 6, { 0 }},
{ 163, 0, 3, 7, { 0 }},
{ 8364, 0, 3, 8, { 0 }},
{ 165, 0, 3, 6, { 0 }},
{ 352, 0, 0, 7, { 0 }},
{ 167, 0, 3, 6, { 0 }},
{ 353, 0, 2, 6, { 0 }},
{ 169, 0, 4, 9, { 0 }},
{ 170, 0, 3, 5, { 0 }},
{ 171, 0, 6, 7, { 0 }},
{ 172, 0, 6, 7, { 0 }},
{ 174, 0, 4, 9, { 0 }},
{ 175, 0, 2, 6, { 0 }},
{ 176, 0, 3, 5, { 0 }},
{ 177, 0, 5, 6, { 0 }},
{ 178, 0, 3, 4, { 0 }},
{ 179, 0, 3, 4, { 0 }},
{ 381, 0, 0, 6, { 0 }},
{ 181, 0, 5, 6, { 0 }},
{ 182, 0, 3, 8, { 0 }},
{ 183, 0, 7, 2, { 0 }},
{ 382, 0, 2, 5, { 0 }},
{ 185, 0, 3, 3, { 0 }},
{ 186, 0, 3, 5, { 0 }},
{ 187, 0, 6, 7, { 0 }},
{ 338, 0, 3, 12, { 0 }},
{ 339, 0, 5, 8, { 0 }},
{ 376, 0, 1, 6, { 0 }},
{ 191, 0, 5, 6, { 0 }},
{ 192, 0, 0, 8, { 0 }},
{ 193, 0, 0, 8, { 0 }},
{ 194, 0, 0, 8, { 0 }},
{ 195, 0, 0, 8, { 0 }},
{ 196, 0, 1, 8, { 0 }},
{ 197, 0, 0, 8, { 0 }},
{ 198, 0, 3, 11, { 0 }},
{ 199, 0, 3, 6, { 0 }},
{ 200, 0, 0, 6, { 0 }},
{ 201, 0, 0, 6, { 0 }},
{ 202, 0, 0, 6, { 0 }},
{ 203, 0, 1, 6, { 0 }},
{ 204, -1, 0, 2, { 0 }},
{ 205, 0, 0, 3, { 0 }},
{ 206, -1, 0, 3, { 0 }},
{ 207, -1, 1, 3, { 0 }},
{ 208, -1, 3, 7, { 0 }},
{ 209, 0, 0, 7, { 0 }},
{ 210, 0, 0, 8, { 0 }},
{ 211, 0, 0, 8, { 0 }},
{ 212, 0, 0, 8, { 0 }},
{ 213, 0, 0, 8, { 0 }},
{ 214, 0, 1, 8, { 0 }},
{ 215, 0, 5, 6, { 0 }},
{ 216, 0, 3, 8, { 0 }},
{ 217, 0, 0, 7, { 0 }},
{ 218, 0, 0, 7, { 0 }},
{ 219, 0, 0, 7, { 0 }},
{ 220, 0, 1, 7, { 0 }},
{ 221, 0, 0, 6, { 0 }},
{ 222, 0, 3, 6, { 0 }},
{ 223, 0, 3, 6, { 0 }},
{ 224, 0, 2, 7, { 0 }},
{ 225, 0, 2, 7, { 0 }},
{ 226, 0, 2, 7, { 0 }},
{ 227, 0, 2, 7, { 0 }},
{ 228, 0, 3, 7, { 0 }},
{ 229, 0, 1, 7, { 0 }},
{ 230, 0, 5, 8, { 0 }},
{ 231, 0, 5, 5, { 0 }},
{ 232, 0, 2, 5, { 0 }},
{ 233, 0, 2, 5, { 0 }},
{ 234, 0, 2, 5, { 0 }},
{ 235, 0, 3, 5, { 0 }},
{ 236, -1, 2, 2, { 0 }},
{ 237, 0, 2, 3, { 0 }},
{ 238, -1, 2, 3, { 0 }},
{ 239, -1, 3, 3, { 0 }},
{ 240, 0, 3, 6, { 0 }},
{ 241, 0, 2, 6, { 0 }},
{ 242, 0, 2, 5, { 0 }},
{ 243, 0, 2, 5, { 0 }},
{ 244, 0, 2, 5, { 0 }},
{ 245, 0, 2, 6, { 0 }},
{ 246, 0, 3, 5, { 0 }},
{ 247, 0, 5, 6, { 0 }},
{ 248, -1, 5, 6, { 0 }},
{ 249, 0, 2, 6, { 0 }},
{ 250, 0, 2, 6, { 0 }},
{ 251, 0, 2, 6, { 0 }},
{ 252, 0, 3, 6, { 0 }},
{ 253, -1, 2, 6, { 0 }},
{ 254, 0, 3, 6, { 0 }},
{ 255, -1, 3, 6, { 0 }},
};
// Style loading function: Lavanda
static void GuiLoadStyleLavanda(void)
{
// Load style properties provided
// NOTE: Default properties are propagated
for (int i = 0; i < LAVANDA_STYLE_PROPS_COUNT; i++)
{
GuiSetStyle(lavandaStyleProps[i].controlId, lavandaStyleProps[i].propertyId, lavandaStyleProps[i].propertyValue);
}
// Custom font loading
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
int lavandaFontDataSize = 0;
unsigned char *data = DecompressData(lavandaFontData, LAVANDA_STYLE_FONT_ATLAS_COMP_SIZE, &lavandaFontDataSize);
Image imFont = { data, 512, 256, 1, 2 };
Font font = { 0 };
font.baseSize = 16;
font.glyphCount = 189;
// Load texture from image
font.texture = LoadTextureFromImage(imFont);
UnloadImage(imFont); // Uncompressed image data can be unloaded from memory
// Copy char recs data from global fontRecs
// NOTE: Required to avoid issues if trying to free font
font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle));
memcpy(font.recs, lavandaFontRecs, font.glyphCount*sizeof(Rectangle));
// Copy font char info data from global fontChars
// NOTE: Required to avoid issues if trying to free font
font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo));
memcpy(font.glyphs, lavandaFontGlyphs, font.glyphCount*sizeof(GlyphInfo));
GuiSetFont(font);
// Setup a white rectangle on the font to be used on shapes drawing,
// it makes possible to draw shapes and text (full UI) in a single draw call
Rectangle fontWhiteRec = { 510, 254, 1, 1 };
SetShapesTexture(font.texture, fontWhiteRec);
//-----------------------------------------------------------------
// TODO: Custom user style setup: Set specific properties here (if required)
// i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT
}

View File

@ -0,0 +1,616 @@
//////////////////////////////////////////////////////////////////////////////////
// //
// StyleAsCode exporter v2.0 - Style data exported as a values array //
// //
// USAGE: On init call: GuiLoadStyleSunny(); //
// //
// more info and bugs-report: github.com/raysan5/raygui //
// feedback and support: ray[at]raylibtech.com //
// //
// Copyright (c) 2020-2024 raylib technologies (@raylibtech) //
// //
//////////////////////////////////////////////////////////////////////////////////
#define SUNNY_STYLE_PROPS_COUNT 33
// Custom style name: Sunny
static const GuiStyleProp sunnyStyleProps[SUNNY_STYLE_PROPS_COUNT] = {
{ 0, 0, 0x9c760aff }, // DEFAULT_BORDER_COLOR_NORMAL
{ 0, 1, 0x594006ff }, // DEFAULT_BASE_COLOR_NORMAL
{ 0, 2, 0xf6d519ff }, // DEFAULT_TEXT_COLOR_NORMAL
{ 0, 3, 0xf6ee89ff }, // DEFAULT_BORDER_COLOR_FOCUSED
{ 0, 4, 0xf5f3d1ff }, // DEFAULT_BASE_COLOR_FOCUSED
{ 0, 5, 0xf4cd19ff }, // DEFAULT_TEXT_COLOR_FOCUSED
{ 0, 6, 0xf7e580ff }, // DEFAULT_BORDER_COLOR_PRESSED
{ 0, 7, 0xf7f2c1ff }, // DEFAULT_BASE_COLOR_PRESSED
{ 0, 8, 0x52470aff }, // DEFAULT_TEXT_COLOR_PRESSED
{ 0, 9, 0xc0be92ff }, // DEFAULT_BORDER_COLOR_DISABLED
{ 0, 10, 0xd3d3a1ff }, // DEFAULT_BASE_COLOR_DISABLED
{ 0, 11, 0xbcbc89ff }, // DEFAULT_TEXT_COLOR_DISABLED
{ 0, 16, 0x00000010 }, // DEFAULT_TEXT_SIZE
{ 0, 17, 0x00000000 }, // DEFAULT_TEXT_SPACING
{ 0, 18, 0x725706ff }, // DEFAULT_LINE_COLOR
{ 0, 19, 0xf0be4bff }, // DEFAULT_BACKGROUND_COLOR
{ 0, 20, 0x00000018 }, // DEFAULT_TEXT_LINE_SPACING
{ 1, 2, 0x504506ff }, // LABEL_TEXT_COLOR_NORMAL
{ 1, 5, 0xfdeb9bff }, // LABEL_TEXT_COLOR_FOCUSED
{ 1, 8, 0xf5e8a4ff }, // LABEL_TEXT_COLOR_PRESSED
{ 2, 2, 0xebc21fff }, // BUTTON_TEXT_COLOR_NORMAL
{ 3, 2, 0xebc21fff }, // TOGGLE_TEXT_COLOR_NORMAL
{ 4, 2, 0x81700fff }, // SLIDER_TEXT_COLOR_NORMAL
{ 4, 5, 0xf4e49aff }, // SLIDER_TEXT_COLOR_FOCUSED
{ 7, 2, 0xebc21fff }, // COMBOBOX_TEXT_COLOR_NORMAL
{ 8, 2, 0xefd87bff }, // DROPDOWNBOX_TEXT_COLOR_NORMAL
{ 8, 5, 0xd4b219ff }, // DROPDOWNBOX_TEXT_COLOR_FOCUSED
{ 9, 2, 0x7a680bff }, // TEXTBOX_TEXT_COLOR_NORMAL
{ 9, 5, 0xad931fff }, // TEXTBOX_TEXT_COLOR_FOCUSED
{ 10, 2, 0x62570eff }, // VALUEBOX_TEXT_COLOR_NORMAL
{ 10, 5, 0xf2df88ff }, // VALUEBOX_TEXT_COLOR_FOCUSED
{ 12, 2, 0xf4e798ff }, // LISTVIEW_TEXT_COLOR_NORMAL
{ 15, 2, 0xebc21fff }, // STATUSBAR_TEXT_COLOR_NORMAL
};
// WARNING: This style uses a custom font: "GenericMobileSystemNuevo.ttf" (size: 16, spacing: 0)
#define SUNNY_STYLE_FONT_ATLAS_COMP_SIZE 2462
// Font atlas image pixels data: DEFLATE compressed
static unsigned char sunnyFontData[SUNNY_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed,
0xdd, 0x59, 0xb2, 0xeb, 0x34, 0x10, 0x00, 0x50, 0x6d, 0x83, 0xfd, 0xef, 0x8d, 0x6d, 0x88, 0xa2, 0x28, 0x0a, 0xb8, 0x8f,
0x58, 0x52, 0x77, 0xcb, 0x53, 0x0e, 0xa7, 0xf8, 0xb9, 0x7e, 0x49, 0x6c, 0xd9, 0x6d, 0x0d, 0xb6, 0x5a, 0xbd, 0x01, 0x00,
0x00, 0x00, 0x5f, 0xef, 0xcf, 0xff, 0xfe, 0xff, 0x6f, 0xff, 0xb7, 0xe5, 0x78, 0xdb, 0xdf, 0xff, 0x62, 0xb4, 0xa5, 0x7f,
0xdc, 0x93, 0x7e, 0xb0, 0x6d, 0xee, 0xb7, 0x62, 0xfb, 0xd5, 0x97, 0xca, 0xa6, 0x1f, 0x94, 0x5a, 0x4b, 0xff, 0xbd, 0x1d,
0x96, 0x7d, 0x0f, 0x94, 0x5e, 0x3b, 0xdc, 0xe7, 0xcf, 0x9f, 0x1c, 0x6f, 0xa9, 0xdc, 0xcf, 0x95, 0x32, 0xad, 0x3c, 0x3f,
0x2b, 0x25, 0xd8, 0x96, 0xb7, 0x1e, 0x97, 0x54, 0x9b, 0x2a, 0xc7, 0xf1, 0x37, 0xf7, 0x9b, 0xc4, 0xff, 0xf1, 0xd1, 0xfc,
0x1d, 0x83, 0x47, 0x67, 0x7f, 0xfe, 0xda, 0x68, 0xd3, 0xf7, 0x84, 0x7f, 0x7e, 0xbb, 0x2e, 0x42, 0xb3, 0xdf, 0xd2, 0x87,
0x77, 0xc2, 0x95, 0x12, 0x3a, 0x2e, 0xbd, 0x16, 0x8a, 0x89, 0xd1, 0x77, 0x46, 0xf6, 0x65, 0x66, 0xdb, 0xdc, 0xfe, 0xc5,
0xae, 0xf9, 0xf1, 0xf7, 0x1d, 0x5f, 0x69, 0x47, 0x67, 0x78, 0x74, 0xe5, 0x1e, 0x1f, 0xdf, 0xfa, 0x59, 0xcd, 0x44, 0xfd,
0x9e, 0xf8, 0xef, 0xff, 0x8a, 0xb3, 0x1e, 0x8c, 0xc1, 0x7c, 0xdd, 0xb0, 0x5e, 0x2b, 0x1c, 0xdf, 0xb3, 0xf6, 0x95, 0xf0,
0x51, 0x39, 0xf5, 0xc0, 0x35, 0xbc, 0x7e, 0xce, 0xa2, 0xbf, 0xb3, 0x23, 0xfe, 0x2b, 0xa2, 0xb8, 0x4d, 0xd4, 0x88, 0x91,
0x36, 0xc5, 0x71, 0x8b, 0x33, 0x1f, 0xe1, 0xa3, 0x7d, 0x89, 0xb4, 0x67, 0xf2, 0x65, 0xb9, 0xda, 0xe6, 0xd8, 0x17, 0xff,
0x15, 0xf5, 0xed, 0x7a, 0x5d, 0xb2, 0xaf, 0x7c, 0x67, 0xea, 0xeb, 0xfb, 0xc7, 0xff, 0xfa, 0xb1, 0x55, 0xc4, 0x7f, 0xcd,
0x59, 0x59, 0x8f, 0xff, 0x2e, 0xfe, 0xa7, 0xeb, 0xff, 0xcf, 0xa5, 0xde, 0x83, 0xfd, 0xaf, 0x7c, 0xaf, 0xbd, 0xaa, 0x9d,
0x7f, 0x6d, 0xfc, 0x8f, 0xfa, 0x83, 0x6d, 0x39, 0xfe, 0x63, 0xbd, 0xcf, 0x48, 0x6f, 0xa3, 0xaa, 0xfd, 0xbf, 0xb7, 0xf5,
0x70, 0xdc, 0x7b, 0x8c, 0x44, 0xf8, 0xda, 0x98, 0x47, 0xcd, 0x37, 0x5f, 0x11, 0xff, 0x6d, 0x62, 0x6f, 0xfa, 0xb0, 0xff,
0x3f, 0x7b, 0x87, 0x5f, 0x8b, 0xff, 0xba, 0xba, 0xe3, 0xca, 0xf8, 0xef, 0xc1, 0x11, 0xb1, 0xea, 0x7e, 0x7c, 0xfc, 0xd8,
0xd6, 0xc6, 0xe7, 0xce, 0xeb, 0xff, 0x8f, 0xda, 0x81, 0x99, 0xf8, 0xff, 0x96, 0xf6, 0xff, 0x4c, 0x4b, 0x7b, 0x54, 0x8a,
0xf3, 0xf7, 0xb3, 0x2b, 0x6a, 0xf3, 0x6b, 0xe3, 0xbf, 0x4f, 0x8d, 0x61, 0xdf, 0x3b, 0xfe, 0xdb, 0x72, 0x2f, 0xaf, 0xf2,
0xda, 0x8d, 0x5e, 0x51, 0xa3, 0x2b, 0x77, 0xe6, 0xae, 0x76, 0xcf, 0xf8, 0x8f, 0x5d, 0xcf, 0x7d, 0xd8, 0xca, 0xef, 0x89,
0xf8, 0x6f, 0xaf, 0x89, 0xff, 0x1e, 0x1c, 0xed, 0xf8, 0xdc, 0xde, 0x8b, 0x8d, 0xc7, 0x45, 0x5a, 0xf2, 0x99, 0x36, 0x4a,
0x55, 0xfc, 0xdf, 0xe3, 0x4c, 0xaa, 0xff, 0x2b, 0xc6, 0xff, 0xdb, 0x61, 0x0b, 0xff, 0xbb, 0xe2, 0xff, 0xf8, 0xf9, 0x5f,
0xbb, 0xfd, 0xb3, 0xba, 0x68, 0xfc, 0xd7, 0x8c, 0xff, 0x9f, 0x7f, 0xb7, 0x9e, 0xe9, 0xb9, 0xe6, 0xe2, 0xff, 0x4e, 0xcf,
0xff, 0xf6, 0xc6, 0xff, 0xe8, 0xa9, 0xf7, 0x9b, 0xda, 0xff, 0x95, 0xe3, 0xf8, 0xf1, 0x77, 0x6e, 0xf6, 0xbd, 0x53, 0xd4,
0x42, 0x6f, 0x72, 0xdd, 0x33, 0xfa, 0xa3, 0xcf, 0x81, 0x72, 0xa3, 0x74, 0x57, 0xbf, 0xff, 0x53, 0x5f, 0x82, 0xe7, 0xed,
0x4f, 0xbf, 0x71, 0x9b, 0x91, 0x77, 0xbd, 0x25, 0xeb, 0xea, 0x3a, 0xf3, 0xf9, 0x6c, 0xfc, 0xb7, 0x9c, 0x1f, 0x76, 0xd6,
0x6c, 0x4a, 0xe2, 0x19, 0x63, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xe4, 0xf9,
0x0b, 0x91, 0xb9, 0x86, 0xd1, 0x3c, 0x04, 0xb5, 0xf9, 0x10, 0xfa, 0x8f, 0x3c, 0xac, 0xab, 0xdf, 0x3d, 0x3b, 0xd7, 0x32,
0x33, 0x4f, 0xb3, 0xf6, 0xb3, 0x55, 0x99, 0x25, 0x6a, 0x67, 0x9e, 0x8f, 0xf3, 0xdd, 0xac, 0x66, 0x6b, 0x8e, 0x65, 0x41,
0x5b, 0xcf, 0x69, 0x9e, 0xc9, 0xc3, 0x57, 0x3d, 0xb7, 0xba, 0x26, 0x3f, 0xda, 0xfc, 0x9c, 0xf7, 0x9a, 0x4c, 0x23, 0x75,
0xf1, 0xbf, 0x7e, 0x1e, 0xfa, 0x8f, 0xfd, 0xe8, 0x17, 0x64, 0x62, 0xa8, 0xdf, 0x3a, 0xf7, 0xf7, 0x3b, 0xc5, 0xff, 0xec,
0x3d, 0x38, 0x7b, 0xf5, 0xc6, 0x67, 0xdc, 0x8d, 0xb2, 0x4f, 0x5c, 0x9f, 0x5b, 0xa5, 0x15, 0xe5, 0x47, 0xad, 0x8f, 0xff,
0x76, 0x52, 0xfd, 0x1f, 0x8d, 0xff, 0x3e, 0x5c, 0xcd, 0xe6, 0xbe, 0xf1, 0xbf, 0x9e, 0x77, 0x22, 0xfb, 0xab, 0xb9, 0x95,
0x1c, 0xe2, 0xb9, 0xc6, 0xf3, 0xf1, 0x9f, 0xcb, 0x14, 0x74, 0x6e, 0xdd, 0x7a, 0x7d, 0xfc, 0x47, 0x4b, 0xe4, 0xaa, 0xf8,
0x8f, 0x5f, 0x25, 0x7d, 0x98, 0xcd, 0xfa, 0x8e, 0xf1, 0xdf, 0xbf, 0x3e, 0xfe, 0xeb, 0x73, 0xf9, 0x46, 0x23, 0x20, 0x92,
0x07, 0x7d, 0xa6, 0x5f, 0xbd, 0xda, 0xb3, 0x8b, 0xf7, 0xbb, 0xa2, 0xf5, 0xff, 0xe8, 0xf3, 0x33, 0x47, 0x72, 0x75, 0xfc,
0xb7, 0x61, 0x84, 0xf7, 0x44, 0x94, 0xc6, 0x47, 0x40, 0x32, 0x39, 0xaf, 0xae, 0x89, 0xff, 0x16, 0x5a, 0x31, 0x30, 0x5e,
0xcf, 0xdf, 0x3d, 0xfe, 0xab, 0xfb, 0x06, 0xd1, 0x11, 0x83, 0xea, 0x7d, 0xbc, 0x5f, 0xff, 0xbf, 0x17, 0xb4, 0x12, 0x77,
0xc4, 0x7f, 0xb6, 0x7c, 0xa2, 0xd1, 0x14, 0x8b, 0xff, 0xf9, 0xda, 0x3d, 0xb6, 0x9a, 0x40, 0x6c, 0xdb, 0x7b, 0xe3, 0xbf,
0x36, 0x7f, 0xea, 0xfa, 0x58, 0xf1, 0x9b, 0xe2, 0x3f, 0xda, 0xff, 0x9f, 0xef, 0x71, 0xdd, 0x2b, 0xfe, 0xdb, 0xc4, 0xfa,
0x3c, 0x67, 0xc7, 0xff, 0x28, 0xdb, 0xea, 0xdb, 0xe2, 0x3f, 0x1a, 0x5b, 0xd1, 0xf5, 0x8c, 0x5a, 0xb8, 0xa6, 0x7b, 0x7b,
0xfd, 0xdf, 0x5e, 0x1a, 0xff, 0xf1, 0xf5, 0x65, 0x9e, 0x15, 0xff, 0xd5, 0xad, 0x86, 0xeb, 0xf3, 0xea, 0x45, 0x47, 0x1b,
0xe3, 0xa3, 0x94, 0xef, 0x6e, 0xff, 0xf7, 0x0d, 0xad, 0xf0, 0xec, 0xf3, 0xff, 0xab, 0xe2, 0x7f, 0xd7, 0xf3, 0xbf, 0x36,
0xbd, 0xe6, 0xdf, 0xae, 0xbd, 0x12, 0xff, 0xd5, 0xf1, 0x5f, 0xb9, 0x76, 0xe2, 0xda, 0xbf, 0xa8, 0x7e, 0xff, 0xa7, 0x7e,
0x24, 0x6d, 0xff, 0xfb, 0x3f, 0x7b, 0xca, 0xa7, 0x4d, 0xad, 0x98, 0xb6, 0xfe, 0xab, 0x6d, 0x72, 0x55, 0xe3, 0xd8, 0x3e,
0xd7, 0xbf, 0x7d, 0x73, 0xf7, 0xf8, 0x8f, 0xbd, 0x6d, 0x10, 0xfd, 0x64, 0xfc, 0x13, 0xf7, 0x59, 0x0b, 0xec, 0x3b, 0xdf,
0xa2, 0x54, 0x0a, 0xd5, 0x25, 0xa4, 0x54, 0x71, 0x07, 0x78, 0xd7, 0x7b, 0xe6, 0xbb, 0xfe, 0x3d, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf7, 0xcd, 0x5e, 0x99, 0xcd, 0xb9, 0xfd, 0xeb, 0x5f, 0x7b, 0x68, 0xbe,
0x6b, 0x4f, 0x7e, 0xae, 0x2f, 0xe7, 0xc1, 0x58, 0x9b, 0x77, 0x5a, 0x91, 0x83, 0xa1, 0x3a, 0x8f, 0xd4, 0xb8, 0x5c, 0x66,
0xcf, 0xf4, 0x78, 0x26, 0xf1, 0xea, 0x15, 0x12, 0x99, 0xd7, 0x93, 0xc9, 0xa8, 0x93, 0x59, 0x4b, 0x20, 0x9e, 0x09, 0xb1,
0x2d, 0x7e, 0x6b, 0xec, 0xac, 0xfd, 0x3a, 0xbf, 0x3a, 0x9a, 0xef, 0xb3, 0x26, 0xfe, 0x63, 0xb9, 0x25, 0xaf, 0xc8, 0xb4,
0x16, 0xbf, 0x9a, 0x6a, 0xf7, 0xb0, 0xbe, 0x54, 0xe6, 0xf6, 0x36, 0xf7, 0xf7, 0xcc, 0x9c, 0xfe, 0x5c, 0xee, 0x81, 0xd5,
0x92, 0xe8, 0x53, 0xd9, 0x52, 0x56, 0x3f, 0xf9, 0xf9, 0x73, 0xc7, 0xdb, 0xfa, 0x54, 0xe6, 0x88, 0xd5, 0x6f, 0xfd, 0x6d,
0xf0, 0xf9, 0x7e, 0x78, 0xe7, 0xad, 0x9d, 0xd1, 0xfa, 0x94, 0xf8, 0x5f, 0xbf, 0x77, 0x9f, 0x1d, 0xff, 0xf1, 0xfb, 0x54,
0x2b, 0xcc, 0xd2, 0xb3, 0xbe, 0x36, 0x46, 0x64, 0xe6, 0x6e, 0x3e, 0x47, 0xd0, 0x19, 0x19, 0x35, 0x7e, 0x8d, 0xa6, 0x95,
0xb3, 0x36, 0x17, 0xfd, 0x9f, 0xe2, 0xf7, 0xa8, 0xb5, 0xb5, 0x2f, 0xfe, 0x6b, 0x32, 0xf2, 0x3d, 0x27, 0xfe, 0x67, 0x7a,
0x1b, 0xe7, 0xc5, 0xff, 0xf8, 0xef, 0x75, 0x59, 0xb5, 0x2b, 0x73, 0xed, 0x8c, 0x72, 0x2d, 0xb7, 0xd0, 0x19, 0xe9, 0xc1,
0xfb, 0x4a, 0x2f, 0xce, 0x67, 0xde, 0x7f, 0xfc, 0x3f, 0x5b, 0x53, 0xcf, 0xc6, 0xff, 0xfa, 0x2f, 0xfe, 0x36, 0xd1, 0x7e,
0xa8, 0x6e, 0xff, 0xaf, 0x5c, 0x2f, 0x4f, 0x8a, 0xff, 0x36, 0x95, 0x8b, 0xec, 0xde, 0xf5, 0x7f, 0x65, 0x4e, 0xad, 0xfa,
0xf8, 0x8f, 0x45, 0x78, 0xa4, 0x26, 0x9f, 0x5f, 0xf1, 0x60, 0xed, 0xbc, 0x8d, 0x5b, 0xf9, 0x3d, 0xd1, 0xfe, 0xdf, 0x11,
0xff, 0xd5, 0xe3, 0x7f, 0xf1, 0x35, 0x3c, 0xf6, 0x8c, 0x74, 0x45, 0xc6, 0xff, 0xda, 0x09, 0xfd, 0xff, 0x51, 0x3b, 0x31,
0x5a, 0x2a, 0xf5, 0x6b, 0x53, 0x55, 0x66, 0xdb, 0x5e, 0x8d, 0xff, 0x4c, 0xfd, 0x1f, 0x1d, 0x87, 0xc8, 0xb4, 0x10, 0xdb,
0x60, 0xe4, 0x60, 0xf4, 0x9b, 0xeb, 0x59, 0x43, 0x73, 0xed, 0xff, 0x1d, 0xf1, 0x7f, 0x56, 0xff, 0xbf, 0x25, 0x47, 0x35,
0xeb, 0xda, 0xff, 0x2d, 0xd1, 0xca, 0xcc, 0xdc, 0x6d, 0x22, 0xa5, 0xbd, 0x5e, 0x66, 0x57, 0xd6, 0xff, 0xb9, 0xd5, 0xe6,
0xda, 0xb6, 0x7c, 0xa7, 0x91, 0xf6, 0xff, 0x9e, 0xa7, 0x70, 0xcf, 0xae, 0xff, 0xcf, 0x7c, 0x3a, 0xb9, 0x73, 0x7f, 0xee,
0x93, 0x77, 0x6e, 0x4f, 0x1e, 0xe9, 0x3b, 0xf4, 0xff, 0x23, 0xe3, 0xff, 0xd1, 0x9c, 0xc7, 0xe3, 0xda, 0xb8, 0x0f, 0x46,
0xd3, 0xbe, 0x35, 0xfe, 0xef, 0x91, 0x9b, 0xf9, 0x7b, 0xe3, 0xbf, 0xa5, 0xf2, 0x4f, 0x5f, 0x11, 0xff, 0x73, 0x2d, 0xab,
0xd8, 0x8a, 0x88, 0xb9, 0x15, 0x93, 0xa3, 0x7d, 0xba, 0x76, 0xea, 0x95, 0x9e, 0x79, 0xfe, 0xb7, 0xe7, 0xfd, 0x9f, 0xda,
0x37, 0x0d, 0x9e, 0xfb, 0x3e, 0xd4, 0x3b, 0x8e, 0xe0, 0x8c, 0xfb, 0xf9, 0x78, 0xd5, 0x82, 0xbe, 0xe9, 0x98, 0x62, 0x4f,
0x75, 0xa3, 0xcf, 0x89, 0xf7, 0xdd, 0xef, 0xa3, 0xef, 0xff, 0x44, 0xcb, 0x54, 0xa6, 0xe5, 0x6f, 0xb9, 0x83, 0x5d, 0x19,
0xff, 0xfb, 0x5b, 0x49, 0x55, 0xef, 0x30, 0x7c, 0xdb, 0x95, 0xa2, 0x64, 0xbe, 0xe5, 0xbc, 0xae, 0x8f, 0xf4, 0xbe, 0xa5,
0x24, 0x5c, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3b, 0xe7, 0x8a, 0xf5, 0xb2,
0x4c, 0x0b, 0xb3, 0x79, 0xae, 0xfa, 0xc2, 0xcc, 0xcd, 0x36, 0xcc, 0xdd, 0x9c, 0xfd, 0x9e, 0x9f, 0xab, 0x1a, 0xf4, 0xc1,
0xbf, 0x68, 0x81, 0x3d, 0xed, 0xe1, 0x79, 0xc8, 0xeb, 0x6b, 0x34, 0xfc, 0xdc, 0xe3, 0x96, 0x28, 0x91, 0x36, 0x31, 0x4f,
0x75, 0x6d, 0xae, 0xde, 0xee, 0x63, 0xae, 0xc9, 0x96, 0x1e, 0xc9, 0xfb, 0x37, 0x9b, 0xbd, 0x64, 0x47, 0xa9, 0xe4, 0x66,
0xbb, 0xf7, 0xa5, 0xbf, 0xc7, 0x72, 0x3f, 0xf4, 0xc3, 0x18, 0xaa, 0xb9, 0x3f, 0xcd, 0x65, 0xe8, 0x5b, 0x9f, 0xb3, 0x3e,
0x97, 0xdf, 0xb3, 0x6d, 0xcc, 0x89, 0xbd, 0x7e, 0xb5, 0xc7, 0x23, 0x25, 0xb7, 0x75, 0x6e, 0xae, 0xfe, 0x8e, 0x63, 0x8e,
0xe7, 0xb3, 0x9d, 0xff, 0x9e, 0x4c, 0xed, 0x37, 0x9e, 0x85, 0x99, 0xa9, 0x27, 0xda, 0xd4, 0xdd, 0x7a, 0x2d, 0xca, 0xa3,
0x77, 0x99, 0xf5, 0xf8, 0xaf, 0x99, 0x83, 0xde, 0x87, 0xc7, 0x13, 0x5b, 0x81, 0x63, 0x26, 0xbf, 0xf7, 0xfb, 0x5a, 0x8b,
0xf9, 0xf8, 0xff, 0xd6, 0x36, 0xf6, 0xfd, 0x4a, 0xa0, 0x2f, 0xd6, 0xf1, 0x9f, 0x23, 0x6c, 0xa6, 0x15, 0x5f, 0x13, 0xff,
0xeb, 0xf7, 0xad, 0xfd, 0xf1, 0xdf, 0x43, 0xdf, 0x10, 0x6d, 0xcf, 0xde, 0x73, 0x6b, 0x2e, 0xfe, 0xc7, 0x57, 0xd0, 0x9e,
0xad, 0x55, 0xab, 0x28, 0xe5, 0x72, 0x94, 0xb7, 0x60, 0xef, 0x21, 0x9b, 0x11, 0x68, 0x35, 0x1b, 0x5b, 0x0f, 0xf5, 0x46,
0xf6, 0xd4, 0xff, 0xf9, 0xfe, 0xff, 0x7c, 0xbb, 0x2d, 0x3e, 0x7e, 0x90, 0xb9, 0x96, 0x76, 0xb4, 0xc3, 0xcf, 0xd8, 0x1a,
0xc9, 0x1b, 0x77, 0xd5, 0xd6, 0xdd, 0xf1, 0xdf, 0xff, 0xb3, 0x8e, 0xe2, 0x51, 0x44, 0xad, 0xdf, 0x1d, 0xee, 0xd7, 0xb2,
0x88, 0x8f, 0xff, 0xad, 0x1e, 0x43, 0xc5, 0x11, 0xcf, 0xf5, 0x0b, 0x67, 0xa3, 0xb4, 0xae, 0xfe, 0xcf, 0x9c, 0xf5, 0x2b,
0xb7, 0x66, 0x46, 0xf7, 0xde, 0x1a, 0xff, 0x73, 0xe5, 0x76, 0x45, 0xfc, 0x57, 0xe7, 0x13, 0x9c, 0x69, 0x4d, 0x44, 0xb3,
0x34, 0x5f, 0xd1, 0x97, 0x9c, 0xcd, 0xce, 0x9f, 0x5b, 0x7f, 0xf6, 0x4d, 0xf1, 0xdf, 0x8a, 0xda, 0xff, 0x67, 0x6e, 0xbd,
0x47, 0xfb, 0xbf, 0xbf, 0xa0, 0xfe, 0xcf, 0x3e, 0xd7, 0x99, 0x3f, 0x86, 0x73, 0x8e, 0x36, 0x9e, 0x81, 0x3f, 0xf3, 0x04,
0xe3, 0xca, 0xbe, 0x70, 0x76, 0x6b, 0x36, 0xfe, 0xbf, 0xb5, 0xfe, 0x7f, 0x43, 0xfc, 0xe7, 0x9f, 0x65, 0xaf, 0x8c, 0xff,
0x9d, 0x75, 0x44, 0xf9, 0xf6, 0x51, 0xee, 0xd9, 0xff, 0x3b, 0xeb, 0xff, 0x9a, 0x35, 0xe7, 0x9f, 0x16, 0xff, 0x33, 0xa3,
0x4c, 0x4f, 0x8d, 0xff, 0x8a, 0x18, 0xa9, 0x1a, 0xff, 0xaf, 0xbe, 0x03, 0xb4, 0xad, 0x99, 0xeb, 0x9f, 0x17, 0xe1, 0xe3,
0xf8, 0x8f, 0xbc, 0xff, 0xf3, 0xee, 0xf8, 0x9f, 0x7b, 0x37, 0xe6, 0xd9, 0xf1, 0xdf, 0x93, 0x2b, 0xd6, 0xbc, 0xf3, 0xf9,
0x70, 0x6c, 0xfd, 0xe9, 0xe7, 0xc5, 0x7f, 0xfc, 0xed, 0x8c, 0xb7, 0x3f, 0xff, 0xcb, 0xbd, 0x1d, 0xb0, 0xf7, 0xf9, 0xdf,
0x13, 0xde, 0x2b, 0xe1, 0x4d, 0xf7, 0x42, 0xe7, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xa0, 0x6a, 0x46, 0x46, 0x3c, 0x67, 0xcf, 0xdc, 0x4c, 0xb1, 0x6b, 0x72, 0xdf, 0x47, 0x32, 0x15, 0xcc, 0xec, 0x4f, 0x3c,
0xff, 0x41, 0x24, 0xdb, 0xfe, 0xd1, 0xb9, 0x89, 0xe6, 0x1c, 0xcf, 0xe4, 0x32, 0xda, 0x75, 0x8c, 0xeb, 0x59, 0xe1, 0xe7,
0x7f, 0x61, 0x2e, 0xf7, 0x63, 0x2c, 0x2e, 0xee, 0x71, 0xae, 0x33, 0xf3, 0xee, 0x76, 0x67, 0x8a, 0xef, 0xc9, 0x5c, 0xef,
0xf5, 0x7b, 0x95, 0xcd, 0xd3, 0x1f, 0xdb, 0xe7, 0x48, 0x09, 0xf7, 0xc4, 0x4a, 0x2c, 0x6d, 0xe2, 0x4a, 0xaa, 0xce, 0xef,
0x93, 0x59, 0x99, 0x63, 0xfe, 0x8e, 0x5c, 0x99, 0xb3, 0xbf, 0x25, 0xf2, 0xf5, 0xdf, 0xe5, 0x5c, 0xdf, 0xb5, 0x65, 0x71,
0x9c, 0xf1, 0xe8, 0xbe, 0xad, 0xa4, 0x1e, 0xca, 0x6e, 0xfa, 0x9c, 0x7c, 0x04, 0xb1, 0x3a, 0xf7, 0xbd, 0xed, 0xe2, 0xf7,
0x1f, 0x73, 0x26, 0xb7, 0xc0, 0x4c, 0x1d, 0xde, 0x02, 0xf1, 0x7f, 0xc7, 0xfc, 0x55, 0xb9, 0xcc, 0x57, 0x33, 0xa5, 0x78,
0xd6, 0xb6, 0x23, 0xbf, 0x07, 0x56, 0x62, 0xbb, 0xf2, 0x18, 0xf7, 0xe7, 0xec, 0x38, 0xce, 0x26, 0xf2, 0xe4, 0x73, 0xdd,
0xb6, 0xe7, 0x82, 0x89, 0xd6, 0xff, 0x4f, 0x8d, 0xff, 0xd1, 0x6a, 0x04, 0x9f, 0xd7, 0x25, 0x3b, 0x6f, 0x5b, 0xc5, 0x5a,
0x06, 0xab, 0x3d, 0xa0, 0x1d, 0xdb, 0xae, 0xcc, 0xd9, 0x75, 0xf6, 0xb1, 0xc6, 0xcb, 0xe8, 0xca, 0xf8, 0x9f, 0xe9, 0xd7,
0x7d, 0x5b, 0xfd, 0xdf, 0x2f, 0xdf, 0x36, 0x7f, 0x17, 0xbb, 0xfb, 0xb5, 0xbd, 0x7f, 0xcd, 0x8e, 0x27, 0xc4, 0xf8, 0x5d,
0xe3, 0xff, 0xaa, 0x8c, 0xc7, 0x35, 0x2b, 0x2d, 0x45, 0xfb, 0xff, 0x4f, 0xb8, 0x26, 0x7a, 0x72, 0x2d, 0xe3, 0xd8, 0x0a,
0xce, 0xd5, 0xdb, 0xc4, 0xff, 0xdd, 0xeb, 0xff, 0x99, 0xb1, 0x95, 0xfb, 0xe5, 0xaf, 0xcc, 0xae, 0xd3, 0xfb, 0xee, 0xeb,
0xa5, 0x85, 0x9e, 0x79, 0xed, 0xd8, 0x26, 0xfe, 0xc5, 0xbf, 0xf8, 0xbf, 0xe2, 0x7a, 0xe9, 0x5f, 0xd1, 0xff, 0x17, 0xff,
0xe2, 0x3f, 0xf2, 0xcc, 0xec, 0xfe, 0xfd, 0xff, 0x5d, 0x4f, 0x2a, 0xdf, 0x36, 0xfe, 0x1f, 0x7d, 0xda, 0xfb, 0xa4, 0xf1,
0xff, 0xdd, 0xcf, 0xff, 0xae, 0xf8, 0xdd, 0xdc, 0x3e, 0xbf, 0xff, 0x19, 0xf7, 0x3b, 0xf2, 0xc5, 0xf3, 0xfc, 0xeb, 0x50,
0x19, 0x80, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe6, 0xe7, 0x00, 0xaf, 0xbe,
0xa7, 0x7f, 0x66, 0xbe, 0xf7, 0xc8, 0x9c, 0xcf, 0xb9, 0xef, 0x04, 0xf1, 0x1f, 0x9b, 0xa7, 0x73, 0x66, 0xbe, 0xf7, 0xfc,
0xdc, 0x7c, 0xe7, 0x1a, 0xde, 0x37, 0x53, 0x5c, 0x6c, 0x43, 0x2e, 0xc2, 0xa3, 0x39, 0x3a, 0xef, 0xb2, 0xed, 0x1d, 0x2b,
0x73, 0xc0, 0xbd, 0x6a, 0xd5, 0xa7, 0xc4, 0x7f, 0xdb, 0x96, 0xef, 0x12, 0xbe, 0xb1, 0xff, 0x2f, 0xfe, 0x41, 0xfc, 0x8b,
0x7f, 0xd0, 0xfe, 0x17, 0xff, 0x60, 0xfc, 0xff, 0xaa, 0x58, 0x9d, 0x59, 0x27, 0xe6, 0xc9, 0x4f, 0x31, 0xe0, 0x7e, 0x77,
0x80, 0xf8, 0xdd, 0xa1, 0x7a, 0x5b, 0x1b, 0xde, 0x37, 0x3c, 0x23, 0x84, 0xb3, 0xe2, 0xff, 0x9a, 0x51, 0x8a, 0xd5, 0xf8,
0xd7, 0xfe, 0x87, 0x37, 0xf5, 0x46, 0x22, 0xef, 0xff, 0x89, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0xe9, 0xaf, 0xff, 0x94, 0x03, 0x88, 0x7f, 0xe0, 0xeb, 0xe2, 0xff,
0x0f };
// Font glyphs rectangles data (on atlas)
static const Rectangle sunnyFontRecs[189] = {
{ 4, 4, 4 , 16 },
{ 16, 4, 2 , 10 },
{ 26, 4, 5 , 3 },
{ 39, 4, 7 , 10 },
{ 54, 4, 7 , 13 },
{ 69, 4, 7 , 10 },
{ 84, 4, 7 , 10 },
{ 99, 4, 2 , 3 },
{ 109, 4, 3 , 12 },
{ 120, 4, 3 , 12 },
{ 131, 4, 5 , 6 },
{ 144, 4, 6 , 5 },
{ 158, 4, 2 , 4 },
{ 168, 4, 5 , 1 },
{ 181, 4, 2 , 2 },
{ 191, 4, 4 , 10 },
{ 203, 4, 6 , 10 },
{ 217, 4, 4 , 10 },
{ 229, 4, 6 , 10 },
{ 243, 4, 6 , 10 },
{ 257, 4, 6 , 10 },
{ 271, 4, 6 , 10 },
{ 285, 4, 6 , 10 },
{ 299, 4, 6 , 10 },
{ 313, 4, 6 , 10 },
{ 327, 4, 6 , 10 },
{ 341, 4, 2 , 6 },
{ 351, 4, 2 , 8 },
{ 361, 4, 7 , 7 },
{ 376, 4, 5 , 3 },
{ 389, 4, 7 , 7 },
{ 404, 4, 6 , 10 },
{ 418, 4, 7 , 12 },
{ 433, 4, 7 , 10 },
{ 448, 4, 7 , 10 },
{ 463, 4, 7 , 10 },
{ 478, 4, 7 , 10 },
{ 493, 4, 7 , 10 },
{ 4, 28, 7 , 10 },
{ 19, 28, 7 , 10 },
{ 34, 28, 7 , 10 },
{ 49, 28, 2 , 10 },
{ 59, 28, 5 , 10 },
{ 72, 28, 7 , 10 },
{ 87, 28, 6 , 10 },
{ 101, 28, 9 , 10 },
{ 118, 28, 7 , 10 },
{ 133, 28, 7 , 10 },
{ 148, 28, 7 , 10 },
{ 163, 28, 7 , 12 },
{ 178, 28, 7 , 10 },
{ 193, 28, 7 , 10 },
{ 208, 28, 6 , 10 },
{ 222, 28, 7 , 10 },
{ 237, 28, 7 , 10 },
{ 252, 28, 8 , 10 },
{ 268, 28, 7 , 10 },
{ 283, 28, 6 , 10 },
{ 297, 28, 7 , 10 },
{ 312, 28, 4 , 12 },
{ 324, 28, 4 , 10 },
{ 336, 28, 4 , 12 },
{ 348, 28, 6 , 3 },
{ 362, 28, 7 , 1 },
{ 377, 28, 4 , 3 },
{ 389, 28, 6 , 7 },
{ 403, 28, 6 , 10 },
{ 417, 28, 6 , 7 },
{ 431, 28, 6 , 10 },
{ 445, 28, 6 , 7 },
{ 459, 28, 4 , 10 },
{ 471, 28, 6 , 9 },
{ 485, 28, 6 , 10 },
{ 499, 28, 2 , 10 },
{ 4, 52, 5 , 12 },
{ 17, 52, 6 , 10 },
{ 31, 52, 3 , 10 },
{ 42, 52, 8 , 7 },
{ 58, 52, 6 , 7 },
{ 72, 52, 6 , 7 },
{ 86, 52, 6 , 9 },
{ 100, 52, 6 , 9 },
{ 114, 52, 5 , 7 },
{ 127, 52, 6 , 7 },
{ 141, 52, 4 , 10 },
{ 153, 52, 6 , 7 },
{ 167, 52, 6 , 7 },
{ 181, 52, 8 , 7 },
{ 197, 52, 6 , 7 },
{ 211, 52, 6 , 9 },
{ 225, 52, 6 , 7 },
{ 239, 52, 5 , 12 },
{ 252, 52, 2 , 12 },
{ 262, 52, 5 , 12 },
{ 275, 52, 7 , 3 },
{ 290, 52, 2 , 9 },
{ 300, 52, 6 , 11 },
{ 314, 52, 7 , 10 },
{ 329, 52, 7 , 9 },
{ 344, 52, 6 , 10 },
{ 358, 52, 7 , 11 },
{ 373, 52, 6 , 12 },
{ 387, 52, 6 , 10 },
{ 401, 52, 7 , 10 },
{ 416, 52, 5 , 5 },
{ 429, 52, 7 , 6 },
{ 444, 52, 6 , 3 },
{ 458, 52, 7 , 10 },
{ 473, 52, 9 , 10 },
{ 490, 52, 4 , 4 },
{ 4, 76, 6 , 7 },
{ 18, 76, 4 , 5 },
{ 30, 76, 4 , 5 },
{ 42, 76, 7 , 11 },
{ 57, 76, 6 , 9 },
{ 71, 76, 7 , 12 },
{ 86, 76, 2 , 2 },
{ 96, 76, 6 , 10 },
{ 110, 76, 3 , 5 },
{ 121, 76, 4 , 5 },
{ 133, 76, 7 , 6 },
{ 148, 76, 9 , 10 },
{ 165, 76, 8 , 7 },
{ 181, 76, 6 , 11 },
{ 195, 76, 6 , 11 },
{ 209, 76, 7 , 11 },
{ 224, 76, 7 , 11 },
{ 239, 76, 7 , 11 },
{ 254, 76, 7 , 11 },
{ 269, 76, 7 , 11 },
{ 284, 76, 7 , 11 },
{ 299, 76, 9 , 10 },
{ 316, 76, 7 , 12 },
{ 331, 76, 7 , 11 },
{ 346, 76, 7 , 11 },
{ 361, 76, 7 , 11 },
{ 376, 76, 7 , 11 },
{ 391, 76, 3 , 11 },
{ 402, 76, 3 , 11 },
{ 413, 76, 5 , 11 },
{ 426, 76, 5 , 11 },
{ 439, 76, 8 , 10 },
{ 455, 76, 7 , 11 },
{ 470, 76, 7 , 11 },
{ 485, 76, 7 , 11 },
{ 4, 100, 7 , 11 },
{ 19, 100, 7 , 11 },
{ 34, 100, 7 , 11 },
{ 49, 100, 7 , 7 },
{ 64, 100, 7 , 13 },
{ 79, 100, 7 , 11 },
{ 94, 100, 7 , 11 },
{ 109, 100, 7 , 11 },
{ 124, 100, 7 , 11 },
{ 139, 100, 6 , 11 },
{ 153, 100, 7 , 10 },
{ 168, 100, 7 , 10 },
{ 183, 100, 6 , 10 },
{ 197, 100, 6 , 10 },
{ 211, 100, 6 , 10 },
{ 225, 100, 6 , 10 },
{ 239, 100, 6 , 10 },
{ 253, 100, 6 , 11 },
{ 267, 100, 8 , 7 },
{ 283, 100, 6 , 9 },
{ 297, 100, 6 , 10 },
{ 311, 100, 6 , 10 },
{ 325, 100, 6 , 10 },
{ 339, 100, 6 , 10 },
{ 353, 100, 3 , 10 },
{ 364, 100, 3 , 10 },
{ 375, 100, 5 , 10 },
{ 388, 100, 5 , 10 },
{ 401, 100, 6 , 10 },
{ 415, 100, 6 , 10 },
{ 429, 100, 6 , 10 },
{ 443, 100, 6 , 10 },
{ 457, 100, 6 , 10 },
{ 471, 100, 6 , 10 },
{ 485, 100, 6 , 10 },
{ 4, 124, 6 , 7 },
{ 18, 124, 7 , 11 },
{ 33, 124, 6 , 10 },
{ 47, 124, 6 , 10 },
{ 61, 124, 6 , 10 },
{ 75, 124, 6 , 10 },
{ 89, 124, 6 , 12 },
{ 103, 124, 6 , 12 },
{ 117, 124, 6 , 12 },
};
// Font glyphs info data
// NOTE: No glyphs.image data provided
static const GlyphInfo sunnyFontGlyphs[189] = {
{ 32, 0, 12, 4, { 0 }},
{ 33, 0, 2, 3, { 0 }},
{ 34, 0, 2, 6, { 0 }},
{ 35, 0, 2, 8, { 0 }},
{ 36, 0, 1, 8, { 0 }},
{ 37, 0, 2, 8, { 0 }},
{ 38, 0, 2, 8, { 0 }},
{ 39, 0, 2, 3, { 0 }},
{ 40, 0, 2, 4, { 0 }},
{ 41, 0, 2, 4, { 0 }},
{ 42, 0, 4, 6, { 0 }},
{ 43, 0, 6, 7, { 0 }},
{ 44, 0, 10, 3, { 0 }},
{ 45, 0, 8, 6, { 0 }},
{ 46, 0, 10, 3, { 0 }},
{ 47, 0, 2, 5, { 0 }},
{ 48, 0, 2, 7, { 0 }},
{ 49, 0, 2, 7, { 0 }},
{ 50, 0, 2, 7, { 0 }},
{ 51, 0, 2, 7, { 0 }},
{ 52, 0, 2, 7, { 0 }},
{ 53, 0, 2, 7, { 0 }},
{ 54, 0, 2, 7, { 0 }},
{ 55, 0, 2, 7, { 0 }},
{ 56, 0, 2, 7, { 0 }},
{ 57, 0, 2, 7, { 0 }},
{ 58, 0, 4, 3, { 0 }},
{ 59, 0, 4, 3, { 0 }},
{ 60, 0, 4, 8, { 0 }},
{ 61, 0, 6, 6, { 0 }},
{ 62, 0, 4, 8, { 0 }},
{ 63, 0, 2, 7, { 0 }},
{ 64, 0, 2, 8, { 0 }},
{ 65, 0, 2, 8, { 0 }},
{ 66, 0, 2, 8, { 0 }},
{ 67, 0, 2, 8, { 0 }},
{ 68, 0, 2, 8, { 0 }},
{ 69, 0, 2, 8, { 0 }},
{ 70, 0, 2, 8, { 0 }},
{ 71, 0, 2, 8, { 0 }},
{ 72, 0, 2, 8, { 0 }},
{ 73, 0, 2, 3, { 0 }},
{ 74, 0, 2, 6, { 0 }},
{ 75, 0, 2, 8, { 0 }},
{ 76, 0, 2, 7, { 0 }},
{ 77, 0, 2, 10, { 0 }},
{ 78, 0, 2, 8, { 0 }},
{ 79, 0, 2, 8, { 0 }},
{ 80, 0, 2, 8, { 0 }},
{ 81, 0, 2, 8, { 0 }},
{ 82, 0, 2, 8, { 0 }},
{ 83, 0, 2, 8, { 0 }},
{ 84, 0, 2, 7, { 0 }},
{ 85, 0, 2, 8, { 0 }},
{ 86, 0, 2, 8, { 0 }},
{ 87, 0, 2, 9, { 0 }},
{ 88, 0, 2, 8, { 0 }},
{ 89, 0, 2, 7, { 0 }},
{ 90, 0, 2, 8, { 0 }},
{ 91, 0, 2, 5, { 0 }},
{ 92, 0, 2, 5, { 0 }},
{ 93, 0, 2, 5, { 0 }},
{ 94, 0, 2, 7, { 0 }},
{ 95, 0, 14, 8, { 0 }},
{ 96, 0, 2, 5, { 0 }},
{ 97, 0, 5, 7, { 0 }},
{ 98, 0, 2, 7, { 0 }},
{ 99, 0, 5, 7, { 0 }},
{ 100, 0, 2, 7, { 0 }},
{ 101, 0, 5, 7, { 0 }},
{ 102, 0, 2, 5, { 0 }},
{ 103, 0, 5, 7, { 0 }},
{ 104, 0, 2, 7, { 0 }},
{ 105, 0, 2, 3, { 0 }},
{ 106, 0, 2, 6, { 0 }},
{ 107, 0, 2, 7, { 0 }},
{ 108, 0, 2, 4, { 0 }},
{ 109, 0, 5, 9, { 0 }},
{ 110, 0, 5, 7, { 0 }},
{ 111, 0, 5, 7, { 0 }},
{ 112, 0, 5, 7, { 0 }},
{ 113, 0, 5, 7, { 0 }},
{ 114, 0, 5, 6, { 0 }},
{ 115, 0, 5, 7, { 0 }},
{ 116, 0, 2, 5, { 0 }},
{ 117, 0, 5, 7, { 0 }},
{ 118, 0, 5, 7, { 0 }},
{ 119, 0, 5, 9, { 0 }},
{ 120, 0, 5, 7, { 0 }},
{ 121, 0, 5, 7, { 0 }},
{ 122, 0, 5, 7, { 0 }},
{ 123, 0, 2, 6, { 0 }},
{ 124, 0, 2, 3, { 0 }},
{ 125, 0, 2, 6, { 0 }},
{ 126, 0, 6, 8, { 0 }},
{ 161, 0, 5, 3, { 0 }},
{ 162, 0, 3, 7, { 0 }},
{ 163, 0, 2, 8, { 0 }},
{ 8364, 0, 3, 8, { 0 }},
{ 165, 0, 2, 7, { 0 }},
{ 352, 0, 1, 8, { 0 }},
{ 167, 0, 2, 7, { 0 }},
{ 353, 0, 2, 7, { 0 }},
{ 169, 0, 2, 8, { 0 }},
{ 170, 0, 2, 6, { 0 }},
{ 171, 0, 6, 8, { 0 }},
{ 172, 0, 7, 7, { 0 }},
{ 174, 0, 2, 8, { 0 }},
{ 175, 1, 3, 14, { 0 }},
{ 176, 0, 2, 5, { 0 }},
{ 177, 0, 4, 7, { 0 }},
{ 178, 0, 2, 5, { 0 }},
{ 179, 0, 2, 5, { 0 }},
{ 381, 0, 1, 8, { 0 }},
{ 181, 0, 5, 7, { 0 }},
{ 182, 0, 2, 8, { 0 }},
{ 183, 0, 6, 3, { 0 }},
{ 382, 0, 2, 7, { 0 }},
{ 185, 0, 2, 4, { 0 }},
{ 186, 0, 2, 5, { 0 }},
{ 187, 0, 6, 8, { 0 }},
{ 338, 0, 2, 10, { 0 }},
{ 339, 0, 5, 9, { 0 }},
{ 376, 0, 1, 7, { 0 }},
{ 191, 0, 3, 7, { 0 }},
{ 192, 0, 1, 8, { 0 }},
{ 193, 0, 1, 8, { 0 }},
{ 194, 0, 1, 8, { 0 }},
{ 195, 0, 1, 8, { 0 }},
{ 196, 0, 1, 8, { 0 }},
{ 197, 0, 1, 8, { 0 }},
{ 198, 0, 2, 10, { 0 }},
{ 199, 0, 2, 8, { 0 }},
{ 200, 0, 1, 8, { 0 }},
{ 201, 0, 1, 8, { 0 }},
{ 202, 0, 1, 8, { 0 }},
{ 203, 0, 1, 8, { 0 }},
{ 204, 0, 1, 4, { 0 }},
{ 205, 0, 1, 4, { 0 }},
{ 206, 0, 1, 6, { 0 }},
{ 207, 0, 1, 6, { 0 }},
{ 208, 0, 2, 9, { 0 }},
{ 209, 0, 1, 8, { 0 }},
{ 210, 0, 1, 8, { 0 }},
{ 211, 0, 1, 8, { 0 }},
{ 212, 0, 1, 8, { 0 }},
{ 213, 0, 1, 8, { 0 }},
{ 214, 0, 1, 8, { 0 }},
{ 215, 0, 5, 8, { 0 }},
{ 216, 0, 1, 8, { 0 }},
{ 217, 0, 1, 8, { 0 }},
{ 218, 0, 1, 8, { 0 }},
{ 219, 0, 1, 8, { 0 }},
{ 220, 0, 1, 8, { 0 }},
{ 221, 0, 1, 7, { 0 }},
{ 222, 0, 2, 8, { 0 }},
{ 223, 0, 2, 8, { 0 }},
{ 224, 0, 2, 7, { 0 }},
{ 225, 0, 2, 7, { 0 }},
{ 226, 0, 2, 7, { 0 }},
{ 227, 0, 2, 7, { 0 }},
{ 228, 0, 2, 7, { 0 }},
{ 229, 0, 1, 7, { 0 }},
{ 230, 0, 5, 9, { 0 }},
{ 231, 0, 5, 7, { 0 }},
{ 232, 0, 2, 7, { 0 }},
{ 233, 0, 2, 7, { 0 }},
{ 234, 0, 2, 7, { 0 }},
{ 235, 0, 2, 7, { 0 }},
{ 236, 0, 2, 4, { 0 }},
{ 237, 0, 2, 4, { 0 }},
{ 238, 0, 2, 6, { 0 }},
{ 239, 0, 2, 6, { 0 }},
{ 240, 0, 2, 7, { 0 }},
{ 241, 0, 2, 7, { 0 }},
{ 242, 0, 2, 7, { 0 }},
{ 243, 0, 2, 7, { 0 }},
{ 244, 0, 2, 7, { 0 }},
{ 245, 0, 2, 7, { 0 }},
{ 246, 0, 2, 7, { 0 }},
{ 247, 0, 4, 7, { 0 }},
{ 248, 0, 3, 8, { 0 }},
{ 249, 0, 2, 7, { 0 }},
{ 250, 0, 2, 7, { 0 }},
{ 251, 0, 2, 7, { 0 }},
{ 252, 0, 2, 7, { 0 }},
{ 253, 0, 2, 7, { 0 }},
{ 254, 0, 2, 7, { 0 }},
{ 255, 0, 2, 7, { 0 }},
};
// Style loading function: Sunny
static void GuiLoadStyleSunny(void)
{
// Load style properties provided
// NOTE: Default properties are propagated
for (int i = 0; i < SUNNY_STYLE_PROPS_COUNT; i++)
{
GuiSetStyle(sunnyStyleProps[i].controlId, sunnyStyleProps[i].propertyId, sunnyStyleProps[i].propertyValue);
}
// Custom font loading
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
int sunnyFontDataSize = 0;
unsigned char *data = DecompressData(sunnyFontData, SUNNY_STYLE_FONT_ATLAS_COMP_SIZE, &sunnyFontDataSize);
Image imFont = { data, 512, 256, 1, 2 };
Font font = { 0 };
font.baseSize = 16;
font.glyphCount = 189;
// Load texture from image
font.texture = LoadTextureFromImage(imFont);
UnloadImage(imFont); // Uncompressed image data can be unloaded from memory
// Copy char recs data from global fontRecs
// NOTE: Required to avoid issues if trying to free font
font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle));
memcpy(font.recs, sunnyFontRecs, font.glyphCount*sizeof(Rectangle));
// Copy font char info data from global fontChars
// NOTE: Required to avoid issues if trying to free font
font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo));
memcpy(font.glyphs, sunnyFontGlyphs, font.glyphCount*sizeof(GlyphInfo));
GuiSetFont(font);
// Setup a white rectangle on the font to be used on shapes drawing,
// it makes possible to draw shapes and text (full UI) in a single draw call
Rectangle fontWhiteRec = { 510, 254, 1, 1 };
SetShapesTexture(font.texture, fontWhiteRec);
//-----------------------------------------------------------------
// TODO: Custom user style setup: Set specific properties here (if required)
// i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT
}

View File

@ -0,0 +1,569 @@
//////////////////////////////////////////////////////////////////////////////////
// //
// StyleAsCode exporter v2.0 - Style data exported as a values array //
// //
// USAGE: On init call: GuiLoadStyleTerminal(); //
// //
// more info and bugs-report: github.com/raysan5/raygui //
// feedback and support: ray[at]raylibtech.com //
// //
// Copyright (c) 2020-2024 raylib technologies (@raylibtech) //
// //
//////////////////////////////////////////////////////////////////////////////////
#define TERMINAL_STYLE_PROPS_COUNT 17
// Custom style name: Terminal
static const GuiStyleProp terminalStyleProps[TERMINAL_STYLE_PROPS_COUNT] = {
{ 0, 0, 0x1c8d00ff }, // DEFAULT_BORDER_COLOR_NORMAL
{ 0, 1, 0x161313ff }, // DEFAULT_BASE_COLOR_NORMAL
{ 0, 2, 0x38f620ff }, // DEFAULT_TEXT_COLOR_NORMAL
{ 0, 3, 0xc3fbc6ff }, // DEFAULT_BORDER_COLOR_FOCUSED
{ 0, 4, 0x43bf2eff }, // DEFAULT_BASE_COLOR_FOCUSED
{ 0, 5, 0xdcfadcff }, // DEFAULT_TEXT_COLOR_FOCUSED
{ 0, 6, 0x1f5b19ff }, // DEFAULT_BORDER_COLOR_PRESSED
{ 0, 7, 0x43ff28ff }, // DEFAULT_BASE_COLOR_PRESSED
{ 0, 8, 0x1e6f15ff }, // DEFAULT_TEXT_COLOR_PRESSED
{ 0, 9, 0x223b22ff }, // DEFAULT_BORDER_COLOR_DISABLED
{ 0, 10, 0x182c18ff }, // DEFAULT_BASE_COLOR_DISABLED
{ 0, 11, 0x244125ff }, // DEFAULT_TEXT_COLOR_DISABLED
{ 0, 16, 0x00000010 }, // DEFAULT_TEXT_SIZE
{ 0, 17, 0x00000000 }, // DEFAULT_TEXT_SPACING
{ 0, 18, 0xe6fce3ff }, // DEFAULT_LINE_COLOR
{ 0, 19, 0x0c1505ff }, // DEFAULT_BACKGROUND_COLOR
{ 0, 20, 0x00000018 }, // DEFAULT_TEXT_LINE_SPACING
};
// WARNING: This style uses a custom font: "Mecha.ttf" (size: 16, spacing: 0)
#define TERMINAL_STYLE_FONT_ATLAS_COMP_SIZE 1860
// Font atlas image pixels data: DEFLATE compressed
static unsigned char terminalFontData[TERMINAL_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed,
0xdd, 0x41, 0x92, 0xa4, 0x36, 0x10, 0x05, 0x50, 0xee, 0x7f, 0xe9, 0xf4, 0x62, 0x62, 0x16, 0x76, 0xb8, 0x1b, 0x94, 0x4a,
0x89, 0x04, 0x9e, 0x5f, 0x78, 0xd3, 0xd5, 0x53, 0x4d, 0x01, 0xbf, 0x24, 0x84, 0x94, 0xc4, 0x01, 0x00, 0x00, 0x00, 0x7c,
0x5e, 0xfc, 0xef, 0x4f, 0xe2, 0xc7, 0xdf, 0x8c, 0xcb, 0xef, 0xf3, 0xe7, 0xa7, 0xf1, 0xe3, 0x5f, 0xf9, 0xfb, 0xdf, 0x95,
0x77, 0xba, 0xfe, 0x5b, 0x31, 0xb4, 0x75, 0x73, 0x5b, 0x95, 0x7b, 0x9f, 0xd1, 0xdf, 0xfe, 0x7d, 0x7b, 0xaa, 0xde, 0xad,
0xf6, 0x95, 0xb1, 0xb3, 0x23, 0xbf, 0xe7, 0xae, 0x6e, 0x61, 0x6c, 0xdf, 0x2b, 0xc7, 0xa6, 0x7d, 0x1c, 0x0d, 0xf2, 0x7f,
0x7e, 0xcc, 0x46, 0xf2, 0x14, 0xe9, 0xf4, 0x8e, 0x7f, 0x3b, 0xad, 0xfc, 0x0e, 0x1d, 0xdd, 0xc6, 0xdc, 0x3e, 0x89, 0x92,
0xf7, 0x9f, 0xf9, 0x3b, 0x51, 0xb6, 0xd7, 0x72, 0xff, 0x26, 0x86, 0xdb, 0x88, 0xf9, 0x4f, 0x78, 0xbe, 0x8f, 0x63, 0xd1,
0x71, 0xef, 0x99, 0xff, 0xfc, 0x51, 0xcb, 0x9f, 0x29, 0x57, 0xb7, 0x3c, 0xd7, 0xa6, 0xaf, 0x3a, 0x27, 0xe5, 0xff, 0xec,
0x9b, 0xfa, 0xe7, 0x16, 0xb4, 0xa2, 0xdd, 0x90, 0xff, 0x5c, 0x06, 0x62, 0x22, 0x47, 0xbb, 0xf2, 0x5f, 0xdb, 0xd6, 0xc8,
0xff, 0x33, 0xda, 0xff, 0xb3, 0x6d, 0xff, 0xf7, 0x79, 0x2b, 0xff, 0xd9, 0xa3, 0x90, 0x6d, 0xff, 0x63, 0x7a, 0xfb, 0x3b,
0xe7, 0x7f, 0x74, 0xdc, 0x43, 0xfe, 0xcf, 0xaf, 0xe8, 0x73, 0xbf, 0x7d, 0xb6, 0x27, 0xe4, 0x7f, 0x5d, 0xfe, 0x7f, 0xeb,
0xb3, 0x9d, 0xf5, 0xf4, 0x76, 0xe4, 0xff, 0xd8, 0x9e, 0xff, 0xb3, 0xeb, 0xa8, 0xeb, 0xfb, 0x62, 0xc7, 0x08, 0xd4, 0x91,
0x1c, 0xdb, 0x89, 0xc1, 0x0c, 0xdf, 0xd3, 0x0b, 0x3b, 0xcb, 0x7f, 0x66, 0x4f, 0x66, 0xf2, 0x7f, 0x76, 0x5c, 0x8e, 0x5f,
0x7a, 0x30, 0xab, 0xf6, 0x7e, 0x45, 0xfe, 0x67, 0x46, 0xe4, 0x9e, 0x9d, 0xff, 0x38, 0xd9, 0x57, 0x31, 0x31, 0xbe, 0xb9,
0xb3, 0xcf, 0x30, 0xd3, 0x4f, 0xeb, 0x7b, 0x1c, 0xde, 0xd3, 0xff, 0x8f, 0xd6, 0xed, 0xbf, 0xfc, 0xcf, 0x5d, 0xff, 0xbf,
0x2d, 0xff, 0xb1, 0xfd, 0x58, 0xc5, 0x85, 0x33, 0x56, 0xfe, 0xe7, 0xf6, 0xf0, 0x79, 0x8f, 0x23, 0x16, 0x5d, 0xbf, 0x74,
0xcd, 0x7f, 0xee, 0xd3, 0x7d, 0xb1, 0xfd, 0x8f, 0x1b, 0x8f, 0x8f, 0xfc, 0xaf, 0xd8, 0x9b, 0x23, 0x77, 0xd8, 0x66, 0xe7,
0x2f, 0xc8, 0xbf, 0xfc, 0xcb, 0x7f, 0xef, 0xfe, 0x7f, 0x0c, 0x8e, 0xdc, 0xc6, 0xe3, 0xc7, 0xff, 0xe2, 0x52, 0x6f, 0x69,
0x7e, 0xb6, 0xe0, 0x78, 0x9f, 0x2b, 0xf7, 0x6e, 0xf9, 0xd9, 0x75, 0x4f, 0xb9, 0xfe, 0xdf, 0x39, 0x93, 0xf2, 0x28, 0x99,
0x87, 0xb2, 0x7e, 0xfe, 0xdf, 0x33, 0xe7, 0x28, 0x77, 0xcf, 0x3f, 0xb0, 0x7a, 0x95, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x65, 0x0d, 0x4d, 0x94, 0xad, 0x7b, 0x8c, 0x16, 0x95, 0xe7, 0xf7, 0xd4, 0x58,
0xbf, 0xb6, 0x87, 0xaa, 0xde, 0x71, 0xec, 0x59, 0x02, 0x63, 0xeb, 0x30, 0x73, 0x2b, 0xff, 0x56, 0xaf, 0x6e, 0x9b, 0x59,
0xdd, 0x58, 0xb3, 0x65, 0x15, 0xb5, 0x2d, 0xee, 0x49, 0xc7, 0xca, 0x75, 0xe2, 0x71, 0x69, 0x75, 0x70, 0x6d, 0x92, 0x56,
0xaf, 0xd8, 0xce, 0xac, 0x7d, 0xdf, 0x99, 0xff, 0xb1, 0x33, 0x70, 0xfc, 0x73, 0x46, 0x62, 0x35, 0x55, 0x6d, 0x0d, 0x98,
0x63, 0xe9, 0xb9, 0x19, 0x8b, 0xd6, 0x90, 0x8d, 0xef, 0x83, 0x3d, 0xe9, 0x90, 0xff, 0x2f, 0xe7, 0x3f, 0x57, 0x23, 0x7b,
0xc7, 0xb3, 0x50, 0xe4, 0x5f, 0xfe, 0xe5, 0xff, 0xad, 0xf9, 0x8f, 0xe2, 0xfe, 0x77, 0xbe, 0x5a, 0x47, 0xcd, 0x95, 0x55,
0x6d, 0x4a, 0xe4, 0x5f, 0xfe, 0x7f, 0xef, 0x6d, 0xc7, 0xc5, 0x56, 0x6c, 0xa4, 0xc5, 0xdb, 0x59, 0xb3, 0x64, 0x5f, 0x15,
0xad, 0xd1, 0x6f, 0x93, 0x28, 0x4c, 0xf0, 0x57, 0xf2, 0x9f, 0xaf, 0x7b, 0xbe, 0x67, 0xdc, 0x2b, 0xb3, 0xe5, 0x99, 0xda,
0x57, 0xf5, 0xf9, 0x3f, 0x7b, 0x1e, 0x42, 0xe6, 0xfb, 0xe9, 0x5b, 0xf9, 0x1f, 0xfd, 0x6c, 0xf2, 0x7f, 0x6c, 0x7e, 0xb6,
0xcc, 0xfd, 0x35, 0x16, 0x23, 0xd9, 0xd2, 0x57, 0x6d, 0x75, 0xa4, 0x46, 0xdb, 0xaa, 0x7e, 0x9e, 0xab, 0xd2, 0xf8, 0xde,
0xfc, 0x47, 0xc1, 0x7d, 0xae, 0xb9, 0x56, 0x52, 0xfe, 0xe5, 0xff, 0x98, 0xac, 0xc0, 0xdb, 0x3d, 0xff, 0x2b, 0xae, 0xbf,
0x2b, 0x9f, 0xe6, 0xfa, 0xcc, 0xf6, 0xff, 0x59, 0xf7, 0xff, 0xbe, 0x92, 0xff, 0xb3, 0x63, 0x79, 0x77, 0xfe, 0x3b, 0xd5,
0x4c, 0xcd, 0x8c, 0x30, 0xce, 0xfc, 0x9b, 0x8e, 0xf9, 0xdf, 0x35, 0x9f, 0x47, 0xfe, 0x77, 0xe5, 0xff, 0xe7, 0xa7, 0x8d,
0xcb, 0x7f, 0xaf, 0xfc, 0xaf, 0xeb, 0xff, 0x3f, 0x3b, 0xff, 0xeb, 0x7a, 0x5f, 0xab, 0xfb, 0x73, 0xb5, 0x5b, 0x9e, 0x99,
0x01, 0xf7, 0xdb, 0xfc, 0xbb, 0x48, 0x57, 0x6d, 0xaf, 0x98, 0x87, 0x37, 0x33, 0x3b, 0x68, 0xf7, 0x95, 0x41, 0xf5, 0xbf,
0xa9, 0x1f, 0xb3, 0xe8, 0x9b, 0x7f, 0x78, 0x46, 0xfe, 0xbf, 0xb0, 0xaf, 0x71, 0x3c, 0xee, 0x69, 0x59, 0x57, 0xfe, 0x3e,
0xce, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0xd3, 0x2a, 0xac, 0xaa, 0xba, 0x8d, 0x3b,
0xab, 0x65, 0xe4, 0xd6, 0xf9, 0xc5, 0xe5, 0xba, 0x2e, 0x99, 0x55, 0xe4, 0x23, 0x6b, 0xf9, 0x6a, 0xd6, 0x34, 0xe6, 0xcf,
0x81, 0x48, 0xad, 0x96, 0x3b, 0x3f, 0x53, 0x32, 0x35, 0xec, 0xd7, 0xcd, 0xb6, 0xff, 0xbd, 0x7e, 0x43, 0xbe, 0x92, 0xc8,
0xaa, 0xf5, 0x05, 0x75, 0xf5, 0x9f, 0x8e, 0x82, 0xd5, 0x8a, 0xd9, 0x35, 0xf4, 0xf7, 0xe6, 0x7f, 0x74, 0xf5, 0xdb, 0xf5,
0x9f, 0x55, 0xd4, 0x5b, 0x89, 0xc4, 0xca, 0xbc, 0xca, 0xfc, 0x57, 0x9c, 0xe3, 0x51, 0xf6, 0xbe, 0xb1, 0xb8, 0x4e, 0xc1,
0x95, 0x56, 0xe2, 0xd9, 0x6b, 0xa2, 0xe2, 0xd5, 0xf9, 0xaf, 0xad, 0x96, 0x5b, 0xff, 0x9d, 0x90, 0xaf, 0x4f, 0x70, 0x5f,
0xfe, 0xff, 0x6e, 0x57, 0x75, 0xfe, 0x33, 0xef, 0x5b, 0x53, 0xd9, 0x6a, 0x2e, 0xff, 0x3d, 0x56, 0xf6, 0xc5, 0xf2, 0x9e,
0x47, 0x26, 0xff, 0x63, 0xfd, 0xb6, 0x15, 0xf9, 0xcf, 0x57, 0xe6, 0x39, 0x36, 0x65, 0xfd, 0x28, 0x4e, 0xf9, 0xfa, 0xfc,
0xd7, 0x9f, 0x69, 0xf1, 0x9f, 0xff, 0xbb, 0xac, 0xb6, 0x7d, 0x4b, 0xfe, 0x73, 0xd5, 0x69, 0x66, 0xf3, 0x9f, 0xbd, 0xe2,
0xbd, 0xbb, 0xfd, 0x5f, 0x73, 0x4d, 0xb0, 0x3e, 0xff, 0x91, 0xaa, 0x0c, 0xde, 0x27, 0xff, 0xb1, 0x20, 0xb9, 0xf2, 0x9f,
0x6d, 0x03, 0xdf, 0x90, 0xff, 0xea, 0xe7, 0x7c, 0x74, 0xc8, 0x7f, 0x6e, 0xc4, 0x2b, 0x4a, 0x73, 0x1a, 0xed, 0xdb, 0xff,
0x63, 0xdb, 0xf8, 0x5f, 0xff, 0xfc, 0x47, 0x49, 0xbf, 0xf0, 0xce, 0xfc, 0xd7, 0x57, 0xcb, 0xcd, 0x56, 0x0d, 0xbc, 0x3e,
0xd6, 0xd7, 0xa7, 0xfd, 0xaf, 0xbf, 0x1e, 0x5e, 0xd1, 0xfe, 0x1f, 0x0b, 0xee, 0x52, 0xac, 0xbf, 0xaa, 0xee, 0x9f, 0xff,
0xaa, 0xeb, 0xc2, 0xcc, 0x73, 0x93, 0x46, 0xef, 0xff, 0xc5, 0xe9, 0x59, 0x3c, 0x7a, 0xe7, 0x68, 0x3c, 0x4f, 0x31, 0xf8,
0xf4, 0xa2, 0xfe, 0xd7, 0xff, 0x95, 0xed, 0xff, 0x9a, 0x51, 0xef, 0xae, 0xa3, 0xe9, 0xd7, 0x9e, 0x2f, 0xde, 0x63, 0x8b,
0xf3, 0x4f, 0xdc, 0x8a, 0xed, 0x57, 0x56, 0x7d, 0x8e, 0xf1, 0xfc, 0x67, 0x5f, 0x93, 0xff, 0x8a, 0x8a, 0xd3, 0xf5, 0xed,
0xe1, 0xf7, 0xe6, 0xbc, 0xcc, 0xdc, 0x75, 0xef, 0xb1, 0xb5, 0xd5, 0xe7, 0xc5, 0x3b, 0xf2, 0x5f, 0xf7, 0xd9, 0x63, 0xc9,
0xb7, 0x4a, 0xa6, 0x96, 0x77, 0x2c, 0x9f, 0x0f, 0x23, 0xff, 0xcf, 0xcd, 0x7f, 0xdc, 0x70, 0xcf, 0xf0, 0x58, 0x3c, 0x1e,
0xdd, 0x61, 0x0f, 0xef, 0xcd, 0x3f, 0xfd, 0xce, 0x88, 0xee, 0xf9, 0x5f, 0x3f, 0x2f, 0xf4, 0xcb, 0xed, 0x81, 0x2a, 0xf9,
0x3c, 0xf1, 0x5a, 0x56, 0xfe, 0x73, 0xfd, 0x96, 0xd9, 0xf9, 0xff, 0x20, 0xff, 0xdf, 0xdd, 0xeb, 0xd0, 0x7f, 0x76, 0x03,
0xf2, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xfb, 0x67, 0xbb, 0x45, 0x6a, 0x7d, 0x5b, 0x0c, 0x56,
0x32, 0x88, 0x74, 0xa5, 0xf8, 0x6c, 0x7d, 0x8c, 0x18, 0x5c, 0xf7, 0x35, 0x5f, 0x37, 0xf8, 0xfa, 0xf3, 0x15, 0x66, 0xd6,
0x0f, 0xae, 0x3f, 0x8e, 0x75, 0x15, 0xd6, 0xeb, 0x8f, 0x52, 0xe6, 0xef, 0x47, 0x79, 0xed, 0xb5, 0xfe, 0x99, 0x99, 0xdf,
0xcf, 0x99, 0x95, 0xbe, 0xb5, 0x67, 0xd4, 0xb5, 0x63, 0x5b, 0xb7, 0xba, 0x33, 0x26, 0x92, 0x3e, 0x3e, 0x4f, 0xfb, 0xf7,
0xaa, 0x9f, 0x5d, 0x8f, 0x63, 0x2e, 0x4b, 0x51, 0xba, 0x06, 0x37, 0xf7, 0xd7, 0x9f, 0xb6, 0xaf, 0xaf, 0x57, 0x01, 0xd8,
0xdd, 0x5f, 0xc8, 0x3f, 0x35, 0x28, 0x6e, 0x9f, 0x8b, 0xbf, 0xae, 0xa2, 0x4e, 0x5d, 0xad, 0xe2, 0xbb, 0x8f, 0xe3, 0x71,
0xfa, 0x0c, 0x93, 0x68, 0xb8, 0xbe, 0xe5, 0xac, 0xff, 0x18, 0x2d, 0xf7, 0x75, 0x5c, 0xee, 0x23, 0xe6, 0xf3, 0x9f, 0x7f,
0x3e, 0x53, 0x14, 0x57, 0xe6, 0xcd, 0x57, 0xc7, 0xac, 0xde, 0xfa, 0x7c, 0xfb, 0x9f, 0xb9, 0x52, 0x88, 0xe5, 0x9f, 0xaa,
0xf6, 0x3b, 0x39, 0x4e, 0x6a, 0xb9, 0xae, 0x3e, 0x2b, 0x56, 0xbc, 0x12, 0x1b, 0xce, 0xad, 0xdc, 0xf5, 0xde, 0xb5, 0x33,
0x64, 0x26, 0xff, 0x7d, 0x8f, 0xcd, 0xd1, 0xe6, 0x95, 0xdd, 0xf9, 0x7f, 0xee, 0x2b, 0xef, 0xc9, 0x7f, 0x9f, 0xb3, 0xef,
0xb7, 0xcf, 0x33, 0xfb, 0xac, 0xc2, 0x0e, 0x47, 0xe0, 0xac, 0x4e, 0xec, 0x5b, 0xf3, 0x1f, 0x3f, 0x8e, 0x0c, 0xf6, 0xff,
0x4e, 0xfe, 0xb9, 0x5f, 0xf0, 0xb4, 0xfc, 0x57, 0xb6, 0xcb, 0x15, 0x6d, 0xf9, 0xde, 0x6b, 0x66, 0xed, 0xbf, 0xf6, 0xff,
0xdb, 0xf9, 0xbf, 0xff, 0x2a, 0x6c, 0x6f, 0x66, 0xfa, 0xed, 0xb3, 0x3e, 0xf9, 0x1f, 0x19, 0xf3, 0x92, 0xff, 0xb7, 0xe7,
0xff, 0x09, 0xdf, 0x4d, 0xb3, 0xf7, 0xff, 0xde, 0x31, 0xfe, 0x57, 0xf5, 0x8a, 0xf6, 0x7f, 0x6e, 0x8c, 0xfd, 0xee, 0x6d,
0xcb, 0x1f, 0xf3, 0xb7, 0x1c, 0x85, 0xd1, 0x3e, 0x80, 0xfe, 0xbf, 0xfc, 0xbf, 0x27, 0xff, 0x47, 0x7a, 0xf6, 0xc1, 0xb3,
0xae, 0x33, 0x46, 0x8e, 0xc7, 0x73, 0xf2, 0x5f, 0x79, 0xc7, 0xee, 0x29, 0xe3, 0x7f, 0x4f, 0xfb, 0x66, 0x78, 0x63, 0xfe,
0xef, 0xbd, 0xd7, 0xda, 0x63, 0xe6, 0xef, 0x33, 0xfb, 0x32, 0x4f, 0xce, 0xff, 0xb3, 0xfb, 0x64, 0xc7, 0x6d, 0x57, 0x85,
0x51, 0xb8, 0xa7, 0x79, 0x46, 0xfe, 0x63, 0x53, 0xfe, 0x47, 0xc6, 0x06, 0xde, 0x9d, 0xff, 0xf1, 0xd6, 0x2a, 0x6e, 0x1f,
0x63, 0x96, 0xff, 0xbb, 0xf3, 0xbf, 0x7f, 0xeb, 0x77, 0xf5, 0xc4, 0x62, 0x49, 0xd2, 0xc7, 0x8f, 0xc9, 0x13, 0xfb, 0xa4,
0x3b, 0xb7, 0x4d, 0xfe, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xef, 0xcc, 0x00, 0x1e, 0x7b, 0xb5,
0x43, 0x05, 0xfd, 0x23, 0x5d, 0x6d, 0xbd, 0xee, 0xf3, 0x1e, 0x89, 0xaa, 0xee, 0x99, 0x6d, 0xe8, 0x5c, 0x41, 0xdf, 0xac,
0xdb, 0xb7, 0x7e, 0x03, 0xf4, 0xae, 0xa0, 0x7f, 0x5e, 0xe5, 0x63, 0xfd, 0xe7, 0xad, 0x9c, 0x3f, 0xdf, 0xbb, 0x82, 0x7e,
0xbf, 0xb5, 0xab, 0xf4, 0xfb, 0x26, 0xd9, 0x59, 0x41, 0x7f, 0xbc, 0xbf, 0x71, 0x6c, 0xdc, 0xae, 0x6c, 0x35, 0x83, 0xae,
0x15, 0xf4, 0xbb, 0xaf, 0x05, 0xe3, 0xfe, 0xb5, 0x59, 0x63, 0xcf, 0xb4, 0xa8, 0xaa, 0xa0, 0xf1, 0xb4, 0x0a, 0xfa, 0x67,
0x19, 0x7b, 0x52, 0x9d, 0x6c, 0xf9, 0xb7, 0xfe, 0xf7, 0xbe, 0xfc, 0xf7, 0xad, 0x93, 0x91, 0xad, 0x52, 0xd3, 0xbb, 0x82,
0xa6, 0xfc, 0xcb, 0xbf, 0xfc, 0xaf, 0xaa, 0x91, 0x20, 0xff, 0x3c, 0x3d, 0xff, 0x3b, 0x2b, 0xe8, 0xa8, 0xa0, 0xb9, 0xbb,
0x22, 0xd0, 0x21, 0xff, 0xae, 0xff, 0x1f, 0xf1, 0x04, 0x3d, 0xf9, 0x5f, 0xf3, 0x8a, 0xfc, 0x7f, 0xfd, 0xde, 0x9f, 0x0a,
0xda, 0x2b, 0xf3, 0x1f, 0x4d, 0xc7, 0xff, 0xf6, 0xdf, 0xf1, 0xe1, 0x89, 0xf9, 0xd7, 0xff, 0xcf, 0xe7, 0xe2, 0xfe, 0x0a,
0x9a, 0xf9, 0x34, 0xcb, 0xbf, 0xfe, 0x7f, 0xc5, 0xfc, 0x9f, 0x9a, 0xb6, 0x47, 0x05, 0xcd, 0xb9, 0x6d, 0x93, 0x7f, 0xd0,
0x2b, 0xd4, 0xff, 0x07, 0xbd, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xf9, 0xf3, 0x9f, 0xfd, 0x00, 0xf2, 0x0f, 0x7c, 0x2e, 0xff, 0xff, 0x00 };
// Font glyphs rectangles data (on atlas)
static const Rectangle terminalFontRecs[189] = {
{ 4, 4, 4 , 16 },
{ 16, 4, 1 , 11 },
{ 25, 4, 3 , 3 },
{ 36, 4, 6 , 11 },
{ 50, 4, 5 , 11 },
{ 63, 4, 5 , 11 },
{ 76, 4, 5 , 11 },
{ 89, 4, 1 , 2 },
{ 98, 4, 2 , 13 },
{ 108, 4, 2 , 13 },
{ 118, 4, 3 , 3 },
{ 129, 4, 5 , 5 },
{ 142, 4, 1 , 3 },
{ 151, 4, 5 , 1 },
{ 164, 4, 1 , 1 },
{ 173, 4, 6 , 12 },
{ 187, 4, 5 , 11 },
{ 200, 4, 2 , 11 },
{ 210, 4, 5 , 11 },
{ 223, 4, 5 , 11 },
{ 236, 4, 5 , 11 },
{ 249, 4, 5 , 11 },
{ 262, 4, 5 , 11 },
{ 275, 4, 5 , 11 },
{ 288, 4, 5 , 11 },
{ 301, 4, 5 , 11 },
{ 314, 4, 1 , 8 },
{ 323, 4, 1 , 10 },
{ 332, 4, 4 , 5 },
{ 344, 4, 5 , 3 },
{ 357, 4, 4 , 5 },
{ 369, 4, 5 , 11 },
{ 382, 4, 11 , 11 },
{ 401, 4, 5 , 11 },
{ 414, 4, 5 , 11 },
{ 427, 4, 5 , 11 },
{ 440, 4, 5 , 11 },
{ 453, 4, 5 , 11 },
{ 466, 4, 5 , 11 },
{ 479, 4, 5 , 11 },
{ 492, 4, 5 , 11 },
{ 4, 28, 1 , 11 },
{ 13, 28, 5 , 11 },
{ 26, 28, 5 , 11 },
{ 39, 28, 5 , 11 },
{ 52, 28, 7 , 11 },
{ 67, 28, 5 , 11 },
{ 80, 28, 5 , 11 },
{ 93, 28, 5 , 11 },
{ 106, 28, 5 , 13 },
{ 119, 28, 5 , 11 },
{ 132, 28, 5 , 11 },
{ 145, 28, 5 , 11 },
{ 158, 28, 5 , 11 },
{ 171, 28, 5 , 11 },
{ 184, 28, 7 , 11 },
{ 199, 28, 5 , 11 },
{ 212, 28, 5 , 11 },
{ 225, 28, 5 , 11 },
{ 238, 28, 2 , 13 },
{ 248, 28, 6 , 12 },
{ 262, 28, 2 , 13 },
{ 272, 28, 5 , 4 },
{ 285, 28, 5 , 1 },
{ 298, 28, 2 , 2 },
{ 308, 28, 5 , 8 },
{ 321, 28, 5 , 11 },
{ 334, 28, 5 , 8 },
{ 347, 28, 5 , 11 },
{ 360, 28, 5 , 8 },
{ 373, 28, 4 , 11 },
{ 385, 28, 5 , 10 },
{ 398, 28, 5 , 11 },
{ 411, 28, 1 , 11 },
{ 420, 28, 1 , 13 },
{ 429, 28, 5 , 11 },
{ 442, 28, 1 , 11 },
{ 451, 28, 7 , 8 },
{ 466, 28, 5 , 8 },
{ 479, 28, 5 , 8 },
{ 492, 28, 5 , 10 },
{ 4, 52, 5 , 10 },
{ 17, 52, 4 , 8 },
{ 29, 52, 5 , 8 },
{ 42, 52, 3 , 11 },
{ 53, 52, 5 , 8 },
{ 66, 52, 5 , 8 },
{ 79, 52, 7 , 8 },
{ 94, 52, 5 , 8 },
{ 107, 52, 5 , 10 },
{ 120, 52, 5 , 8 },
{ 133, 52, 3 , 13 },
{ 144, 52, 1 , 15 },
{ 153, 52, 3 , 13 },
{ 164, 52, 5 , 3 },
{ 177, 52, 1 , 11 },
{ 186, 52, 5 , 11 },
{ 199, 52, 5 , 10 },
{ 212, 52, 5 , 10 },
{ 225, 52, 5 , 10 },
{ 238, 52, 0 , 0 },
{ 246, 52, 0 , 0 },
{ 254, 52, 0 , 0 },
{ 262, 52, 7 , 8 },
{ 277, 52, 0 , 0 },
{ 285, 52, 0 , 0 },
{ 293, 52, 5 , 3 },
{ 306, 52, 7 , 8 },
{ 321, 52, 5 , 1 },
{ 334, 52, 3 , 3 },
{ 345, 52, 5 , 7 },
{ 358, 52, 0 , 0 },
{ 366, 52, 0 , 0 },
{ 374, 52, 0 , 0 },
{ 382, 52, 5 , 10 },
{ 395, 52, 7 , 11 },
{ 410, 52, 1 , 1 },
{ 419, 52, 0 , 0 },
{ 427, 52, 0 , 0 },
{ 435, 52, 0 , 0 },
{ 443, 52, 0 , 0 },
{ 451, 52, 0 , 0 },
{ 459, 52, 0 , 0 },
{ 467, 52, 5 , 13 },
{ 480, 52, 5 , 11 },
{ 493, 52, 5 , 14 },
{ 4, 76, 5 , 14 },
{ 17, 76, 5 , 14 },
{ 30, 76, 5 , 14 },
{ 43, 76, 5 , 13 },
{ 56, 76, 5 , 13 },
{ 69, 76, 9 , 11 },
{ 86, 76, 5 , 13 },
{ 99, 76, 5 , 14 },
{ 112, 76, 5 , 14 },
{ 125, 76, 5 , 14 },
{ 138, 76, 5 , 13 },
{ 151, 76, 2 , 14 },
{ 161, 76, 2 , 14 },
{ 171, 76, 3 , 14 },
{ 182, 76, 3 , 13 },
{ 193, 76, 5 , 11 },
{ 206, 76, 5 , 14 },
{ 219, 76, 5 , 14 },
{ 232, 76, 5 , 14 },
{ 245, 76, 5 , 14 },
{ 258, 76, 5 , 14 },
{ 271, 76, 5 , 13 },
{ 284, 76, 5 , 5 },
{ 297, 76, 5 , 13 },
{ 310, 76, 5 , 14 },
{ 323, 76, 5 , 14 },
{ 336, 76, 5 , 14 },
{ 349, 76, 5 , 13 },
{ 362, 76, 5 , 14 },
{ 375, 76, 5 , 11 },
{ 388, 76, 5 , 11 },
{ 401, 76, 5 , 11 },
{ 414, 76, 5 , 11 },
{ 427, 76, 5 , 11 },
{ 440, 76, 5 , 11 },
{ 453, 76, 5 , 10 },
{ 466, 76, 5 , 10 },
{ 479, 76, 9 , 8 },
{ 496, 76, 5 , 10 },
{ 4, 100, 5 , 11 },
{ 17, 100, 5 , 11 },
{ 30, 100, 5 , 11 },
{ 43, 100, 5 , 10 },
{ 56, 100, 2 , 11 },
{ 66, 100, 2 , 11 },
{ 76, 100, 3 , 11 },
{ 87, 100, 3 , 10 },
{ 98, 100, 5 , 11 },
{ 111, 100, 5 , 11 },
{ 124, 100, 5 , 11 },
{ 137, 100, 5 , 11 },
{ 150, 100, 5 , 11 },
{ 163, 100, 5 , 11 },
{ 176, 100, 5 , 10 },
{ 189, 100, 5 , 5 },
{ 202, 100, 5 , 10 },
{ 215, 100, 5 , 11 },
{ 228, 100, 5 , 11 },
{ 241, 100, 5 , 11 },
{ 254, 100, 5 , 10 },
{ 267, 100, 5 , 13 },
{ 280, 100, 4 , 8 },
{ 292, 100, 5 , 12 },
};
// Font glyphs info data
// NOTE: No glyphs.image data provided
static const GlyphInfo terminalFontGlyphs[189] = {
{ 32, 0, 14, 4, { 0 }},
{ 33, 1, 3, 3, { 0 }},
{ 34, 1, 3, 5, { 0 }},
{ 35, 1, 3, 8, { 0 }},
{ 36, 1, 3, 7, { 0 }},
{ 37, 1, 3, 7, { 0 }},
{ 38, 1, 3, 7, { 0 }},
{ 39, 1, 3, 3, { 0 }},
{ 40, 1, 2, 4, { 0 }},
{ 41, 1, 2, 4, { 0 }},
{ 42, 1, 3, 5, { 0 }},
{ 43, 1, 7, 7, { 0 }},
{ 44, 1, 13, 3, { 0 }},
{ 45, 1, 9, 7, { 0 }},
{ 46, 1, 13, 3, { 0 }},
{ 47, 1, 2, 8, { 0 }},
{ 48, 1, 3, 7, { 0 }},
{ 49, 1, 3, 4, { 0 }},
{ 50, 1, 3, 7, { 0 }},
{ 51, 1, 3, 7, { 0 }},
{ 52, 1, 3, 7, { 0 }},
{ 53, 1, 3, 7, { 0 }},
{ 54, 1, 3, 7, { 0 }},
{ 55, 1, 3, 7, { 0 }},
{ 56, 1, 3, 7, { 0 }},
{ 57, 1, 3, 7, { 0 }},
{ 58, 1, 6, 3, { 0 }},
{ 59, 1, 6, 3, { 0 }},
{ 60, 1, 7, 6, { 0 }},
{ 61, 1, 8, 7, { 0 }},
{ 62, 1, 7, 6, { 0 }},
{ 63, 1, 3, 7, { 0 }},
{ 64, 2, 3, 15, { 0 }},
{ 65, 1, 3, 7, { 0 }},
{ 66, 1, 3, 7, { 0 }},
{ 67, 1, 3, 7, { 0 }},
{ 68, 1, 3, 7, { 0 }},
{ 69, 1, 3, 7, { 0 }},
{ 70, 1, 3, 7, { 0 }},
{ 71, 1, 3, 7, { 0 }},
{ 72, 1, 3, 7, { 0 }},
{ 73, 1, 3, 3, { 0 }},
{ 74, 1, 3, 7, { 0 }},
{ 75, 1, 3, 7, { 0 }},
{ 76, 1, 3, 7, { 0 }},
{ 77, 1, 3, 9, { 0 }},
{ 78, 1, 3, 7, { 0 }},
{ 79, 1, 3, 7, { 0 }},
{ 80, 1, 3, 7, { 0 }},
{ 81, 1, 3, 7, { 0 }},
{ 82, 1, 3, 7, { 0 }},
{ 83, 1, 3, 7, { 0 }},
{ 84, 1, 3, 7, { 0 }},
{ 85, 1, 3, 7, { 0 }},
{ 86, 1, 3, 7, { 0 }},
{ 87, 1, 3, 9, { 0 }},
{ 88, 1, 3, 7, { 0 }},
{ 89, 1, 3, 7, { 0 }},
{ 90, 1, 3, 7, { 0 }},
{ 91, 1, 2, 4, { 0 }},
{ 92, 1, 2, 8, { 0 }},
{ 93, 1, 2, 4, { 0 }},
{ 94, 1, 3, 7, { 0 }},
{ 95, 1, 15, 7, { 0 }},
{ 96, 1, 0, 4, { 0 }},
{ 97, 1, 6, 7, { 0 }},
{ 98, 1, 3, 7, { 0 }},
{ 99, 1, 6, 7, { 0 }},
{ 100, 1, 3, 7, { 0 }},
{ 101, 1, 6, 7, { 0 }},
{ 102, 1, 3, 6, { 0 }},
{ 103, 1, 6, 7, { 0 }},
{ 104, 1, 3, 7, { 0 }},
{ 105, 1, 3, 3, { 0 }},
{ 106, 1, 3, 3, { 0 }},
{ 107, 1, 3, 7, { 0 }},
{ 108, 1, 3, 3, { 0 }},
{ 109, 1, 6, 9, { 0 }},
{ 110, 1, 6, 7, { 0 }},
{ 111, 1, 6, 7, { 0 }},
{ 112, 1, 6, 7, { 0 }},
{ 113, 1, 6, 7, { 0 }},
{ 114, 1, 6, 6, { 0 }},
{ 115, 1, 6, 7, { 0 }},
{ 116, 1, 3, 5, { 0 }},
{ 117, 1, 6, 7, { 0 }},
{ 118, 1, 6, 7, { 0 }},
{ 119, 1, 6, 9, { 0 }},
{ 120, 1, 6, 7, { 0 }},
{ 121, 1, 6, 7, { 0 }},
{ 122, 1, 6, 7, { 0 }},
{ 123, 1, 2, 5, { 0 }},
{ 124, 1, 1, 3, { 0 }},
{ 125, 1, 2, 5, { 0 }},
{ 126, 1, 8, 7, { 0 }},
{ 161, 1, 3, 3, { 0 }},
{ 162, 1, 3, 7, { 0 }},
{ 163, 1, 3, 7, { 0 }},
{ 8364, 1, 3, 7, { 0 }},
{ 165, 1, 3, 7, { 0 }},
{ 352, 0, 14, 4, { 0 }},
{ 167, 0, 14, 4, { 0 }},
{ 353, 0, 14, 4, { 0 }},
{ 169, 1, 3, 9, { 0 }},
{ 170, 0, 14, 4, { 0 }},
{ 171, 0, 14, 4, { 0 }},
{ 172, 1, 8, 7, { 0 }},
{ 174, 1, 3, 9, { 0 }},
{ 175, 1, 1, 7, { 0 }},
{ 176, 1, 0, 5, { 0 }},
{ 177, 1, 7, 7, { 0 }},
{ 178, 0, 14, 4, { 0 }},
{ 179, 0, 14, 4, { 0 }},
{ 381, 0, 14, 4, { 0 }},
{ 181, 1, 6, 7, { 0 }},
{ 182, 1, 3, 9, { 0 }},
{ 183, 1, 8, 3, { 0 }},
{ 382, 0, 14, 4, { 0 }},
{ 185, 0, 14, 4, { 0 }},
{ 186, 0, 14, 4, { 0 }},
{ 187, 0, 14, 4, { 0 }},
{ 338, 0, 14, 4, { 0 }},
{ 339, 0, 14, 4, { 0 }},
{ 376, 1, 1, 7, { 0 }},
{ 191, 1, 3, 7, { 0 }},
{ 192, 1, 0, 7, { 0 }},
{ 193, 1, 0, 7, { 0 }},
{ 194, 1, 0, 7, { 0 }},
{ 195, 1, 0, 7, { 0 }},
{ 196, 1, 1, 7, { 0 }},
{ 197, 1, 1, 7, { 0 }},
{ 198, 1, 3, 11, { 0 }},
{ 199, 1, 3, 7, { 0 }},
{ 200, 1, 0, 7, { 0 }},
{ 201, 1, 0, 7, { 0 }},
{ 202, 1, 0, 7, { 0 }},
{ 203, 1, 1, 7, { 0 }},
{ 204, 0, 0, 3, { 0 }},
{ 205, 1, 0, 3, { 0 }},
{ 206, 0, 0, 3, { 0 }},
{ 207, 0, 1, 3, { 0 }},
{ 208, 1, 3, 7, { 0 }},
{ 209, 1, 0, 7, { 0 }},
{ 210, 1, 0, 7, { 0 }},
{ 211, 1, 0, 7, { 0 }},
{ 212, 1, 0, 7, { 0 }},
{ 213, 1, 0, 7, { 0 }},
{ 214, 1, 1, 7, { 0 }},
{ 215, 1, 7, 7, { 0 }},
{ 216, 1, 2, 7, { 0 }},
{ 217, 1, 0, 7, { 0 }},
{ 218, 1, 0, 7, { 0 }},
{ 219, 1, 0, 7, { 0 }},
{ 220, 1, 1, 7, { 0 }},
{ 221, 1, 0, 7, { 0 }},
{ 222, 1, 3, 7, { 0 }},
{ 223, 1, 3, 7, { 0 }},
{ 224, 1, 3, 7, { 0 }},
{ 225, 1, 3, 7, { 0 }},
{ 226, 1, 3, 7, { 0 }},
{ 227, 1, 3, 7, { 0 }},
{ 228, 1, 4, 7, { 0 }},
{ 229, 1, 4, 7, { 0 }},
{ 230, 1, 6, 11, { 0 }},
{ 231, 1, 6, 7, { 0 }},
{ 232, 1, 3, 7, { 0 }},
{ 233, 1, 3, 7, { 0 }},
{ 234, 1, 3, 7, { 0 }},
{ 235, 1, 4, 7, { 0 }},
{ 236, 0, 3, 3, { 0 }},
{ 237, 1, 3, 3, { 0 }},
{ 238, 0, 3, 3, { 0 }},
{ 239, 0, 4, 3, { 0 }},
{ 240, 1, 3, 7, { 0 }},
{ 241, 1, 3, 7, { 0 }},
{ 242, 1, 3, 7, { 0 }},
{ 243, 1, 3, 7, { 0 }},
{ 244, 1, 3, 7, { 0 }},
{ 245, 1, 3, 7, { 0 }},
{ 246, 1, 4, 7, { 0 }},
{ 247, 1, 7, 7, { 0 }},
{ 248, 1, 5, 7, { 0 }},
{ 249, 1, 3, 7, { 0 }},
{ 250, 1, 3, 7, { 0 }},
{ 251, 1, 3, 7, { 0 }},
{ 252, 1, 4, 7, { 0 }},
{ 253, 1, 3, 7, { 0 }},
{ 254, 1, 6, 6, { 0 }},
{ 255, 1, 4, 7, { 0 }},
};
// Style loading function: Terminal
static void GuiLoadStyleTerminal(void)
{
// Load style properties provided
// NOTE: Default properties are propagated
for (int i = 0; i < TERMINAL_STYLE_PROPS_COUNT; i++)
{
GuiSetStyle(terminalStyleProps[i].controlId, terminalStyleProps[i].propertyId, terminalStyleProps[i].propertyValue);
}
// Custom font loading
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
int terminalFontDataSize = 0;
unsigned char *data = DecompressData(terminalFontData, TERMINAL_STYLE_FONT_ATLAS_COMP_SIZE, &terminalFontDataSize);
Image imFont = { data, 512, 256, 1, 2 };
Font font = { 0 };
font.baseSize = 16;
font.glyphCount = 189;
// Load texture from image
font.texture = LoadTextureFromImage(imFont);
UnloadImage(imFont); // Uncompressed image data can be unloaded from memory
// Copy char recs data from global fontRecs
// NOTE: Required to avoid issues if trying to free font
font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle));
memcpy(font.recs, terminalFontRecs, font.glyphCount*sizeof(Rectangle));
// Copy font char info data from global fontChars
// NOTE: Required to avoid issues if trying to free font
font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo));
memcpy(font.glyphs, terminalFontGlyphs, font.glyphCount*sizeof(GlyphInfo));
GuiSetFont(font);
// Setup a white rectangle on the font to be used on shapes drawing,
// it makes possible to draw shapes and text (full UI) in a single draw call
Rectangle fontWhiteRec = { 510, 254, 1, 1 };
SetShapesTexture(font.texture, fontWhiteRec);
//-----------------------------------------------------------------
// TODO: Custom user style setup: Set specific properties here (if required)
// i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT
}

BIN
logo/raygui_512x512.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@ -31,6 +31,7 @@ if(${BUILD_RAYGUI_EXAMPLES})
# Get the sources together
set(example_dirs
animation_curve
controls_test_suite
custom_file_dialog
custom_sliders
@ -72,4 +73,4 @@ if(${BUILD_RAYGUI_EXAMPLES})
# Copy all of the resource files to the destination
file(COPY ${example_resources} DESTINATION "resources/")
endif()
endif()

View File

@ -35,10 +35,10 @@
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{AB6D26C4-F5F4-420D-B15B-CE52619A5D36}</ProjectGuid>
<ProjectGuid>{50A98C3D-C898-4830-A00B-3F78DC2E742B}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>text_editor</RootNamespace>
<ProjectName>text_editor</ProjectName>
<RootNamespace>style_selector</RootNamespace>
<ProjectName>animation_curve</ProjectName>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
@ -349,7 +349,13 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\examples\text_editor\text_editor.c" />
<ClCompile Include="..\..\..\examples\animation_curve\animation_curve.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\examples\animation_curve\gui_curve_editor.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\..\examples\raygui.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">

View File

@ -351,6 +351,9 @@
<ItemGroup>
<ClCompile Include="..\..\..\examples\controls_test_suite\controls_test_suite.c" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\..\examples\raygui.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>

View File

@ -351,6 +351,12 @@
<ItemGroup>
<ClCompile Include="..\..\..\examples\custom_file_dialog\custom_file_dialog.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\examples\custom_file_dialog\gui_window_file_dialog.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\..\examples\raygui.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>

View File

@ -351,6 +351,9 @@
<ItemGroup>
<ClCompile Include="..\..\..\examples\image_exporter\image_exporter.c" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\..\examples\raygui.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>

View File

@ -351,6 +351,9 @@
<ItemGroup>
<ClCompile Include="..\..\..\examples\image_importer_raw\image_importer_raw.c" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\..\examples\raygui.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>

View File

@ -351,6 +351,9 @@
<ItemGroup>
<ClCompile Include="..\..\..\examples\portable_window\portable_window.c" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\..\examples\raygui.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>

View File

@ -351,6 +351,9 @@
<ItemGroup>
<ClCompile Include="..\..\..\examples\property_list\property_list.c" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\..\examples\raygui.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>

View File

@ -351,6 +351,9 @@
<ItemGroup>
<ClCompile Include="..\..\..\examples\scroll_panel\scroll_panel.c" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\..\examples\raygui.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>

View File

@ -351,6 +351,9 @@
<ItemGroup>
<ClCompile Include="..\..\..\examples\style_selector\style_selector.c" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\..\examples\raygui.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>

View File

@ -1,357 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug.DLL|Win32">
<Configuration>Debug.DLL</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug.DLL|x64">
<Configuration>Debug.DLL</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release.DLL|Win32">
<Configuration>Release.DLL</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release.DLL|x64">
<Configuration>Release.DLL</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{B740AD57-ABF2-4421-96C0-FE220130A873}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>textbox_selection</RootNamespace>
<ProjectName>textbox_selection</ProjectName>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug.DLL|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug.DLL|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release.DLL|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release.DLL|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug.DLL|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug.DLL|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release.DLL|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release.DLL|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug.DLL|Win32'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug.DLL|x64'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release.DLL|Win32'">
<LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release.DLL|x64'">
<LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP%(PreprocessorDefinitions)</PreprocessorDefinitions>
<CompileAs>CompileAsC</CompileAs>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\</AdditionalLibraryDirectories>
<AdditionalDependencies>raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<CompileAs>CompileAsC</CompileAs>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions>/FS %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\</AdditionalLibraryDirectories>
<AdditionalDependencies>raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug.DLL|Win32'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<CompileAs>CompileAsC</CompileAs>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\</AdditionalLibraryDirectories>
<AdditionalDependencies>raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<PostBuildEvent>
<Command>xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)"</Command>
<Message>Copy Debug DLL to output directory</Message>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug.DLL|x64'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<CompileAs>CompileAsC</CompileAs>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\</AdditionalLibraryDirectories>
<AdditionalDependencies>raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
<PostBuildEvent>
<Command>xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)"</Command>
<Message>Copy Debug DLL to output directory</Message>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<CompileAs>CompileAsC</CompileAs>
<RemoveUnreferencedCodeData>true</RemoveUnreferencedCodeData>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<CompileAs>CompileAsC</CompileAs>
<RemoveUnreferencedCodeData>true</RemoveUnreferencedCodeData>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release.DLL|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<CompileAs>CompileAsC</CompileAs>
<RemoveUnreferencedCodeData>true</RemoveUnreferencedCodeData>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\</AdditionalLibraryDirectories>
</Link>
<PostBuildEvent>
<Command>xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)"</Command>
</PostBuildEvent>
<PostBuildEvent>
<Message>Copy Release DLL to output directory</Message>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release.DLL|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;PLATFORM_DESKTOP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(SolutionDir)..\..\src;$(SolutionDir)..\..\src\external;$(SolutionDir)..\..\..\raylib\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<CompileAs>CompileAsC</CompileAs>
<RemoveUnreferencedCodeData>true</RemoveUnreferencedCodeData>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>raylib.lib;opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winmm.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\</AdditionalLibraryDirectories>
</Link>
<PostBuildEvent>
<Command>xcopy /y /d "$(SolutionDir)\build\raylib\bin\$(Platform)\$(Configuration)\raylib.dll" "$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)"</Command>
</PostBuildEvent>
<PostBuildEvent>
<Message>Copy Release DLL to output directory</Message>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
<ProjectReference Include="..\raylib\raylib.vcxproj">
<Project>{e89d61ac-55de-4482-afd4-df7242ebc859}</Project>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\examples\textbox_selection\textbox_selection.c" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -19,14 +19,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "property_list", "examples\p
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "scroll_panel", "examples\scroll_panel.vcxproj", "{56EE93DF-A3AF-4856-A4EC-E27358C6DA87}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "text_editor", "examples\text_editor.vcxproj", "{AB6D26C4-F5F4-420D-B15B-CE52619A5D36}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "examples", "examples", "{5DC256E9-D698-4D07-8AD7-DFDAE9125DE3}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "textbox_selection", "examples\textbox_selection.vcxproj", "{B740AD57-ABF2-4421-96C0-FE220130A873}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "style_selector", "examples\style_selector.vcxproj", "{BCF5E746-FDBF-4CAC-9B95-44FE9A498430}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "animation_curve", "examples\animation_curve.vcxproj", "{50A98C3D-C898-4830-A00B-3F78DC2E742B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug.DLL|x64 = Debug.DLL|x64
@ -167,38 +165,6 @@ Global
{56EE93DF-A3AF-4856-A4EC-E27358C6DA87}.Release|x64.Build.0 = Release|x64
{56EE93DF-A3AF-4856-A4EC-E27358C6DA87}.Release|x86.ActiveCfg = Release|Win32
{56EE93DF-A3AF-4856-A4EC-E27358C6DA87}.Release|x86.Build.0 = Release|Win32
{AB6D26C4-F5F4-420D-B15B-CE52619A5D36}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64
{AB6D26C4-F5F4-420D-B15B-CE52619A5D36}.Debug.DLL|x64.Build.0 = Debug.DLL|x64
{AB6D26C4-F5F4-420D-B15B-CE52619A5D36}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32
{AB6D26C4-F5F4-420D-B15B-CE52619A5D36}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32
{AB6D26C4-F5F4-420D-B15B-CE52619A5D36}.Debug|x64.ActiveCfg = Debug|x64
{AB6D26C4-F5F4-420D-B15B-CE52619A5D36}.Debug|x64.Build.0 = Debug|x64
{AB6D26C4-F5F4-420D-B15B-CE52619A5D36}.Debug|x86.ActiveCfg = Debug|Win32
{AB6D26C4-F5F4-420D-B15B-CE52619A5D36}.Debug|x86.Build.0 = Debug|Win32
{AB6D26C4-F5F4-420D-B15B-CE52619A5D36}.Release.DLL|x64.ActiveCfg = Release.DLL|x64
{AB6D26C4-F5F4-420D-B15B-CE52619A5D36}.Release.DLL|x64.Build.0 = Release.DLL|x64
{AB6D26C4-F5F4-420D-B15B-CE52619A5D36}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32
{AB6D26C4-F5F4-420D-B15B-CE52619A5D36}.Release.DLL|x86.Build.0 = Release.DLL|Win32
{AB6D26C4-F5F4-420D-B15B-CE52619A5D36}.Release|x64.ActiveCfg = Release|x64
{AB6D26C4-F5F4-420D-B15B-CE52619A5D36}.Release|x64.Build.0 = Release|x64
{AB6D26C4-F5F4-420D-B15B-CE52619A5D36}.Release|x86.ActiveCfg = Release|Win32
{AB6D26C4-F5F4-420D-B15B-CE52619A5D36}.Release|x86.Build.0 = Release|Win32
{B740AD57-ABF2-4421-96C0-FE220130A873}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64
{B740AD57-ABF2-4421-96C0-FE220130A873}.Debug.DLL|x64.Build.0 = Debug.DLL|x64
{B740AD57-ABF2-4421-96C0-FE220130A873}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32
{B740AD57-ABF2-4421-96C0-FE220130A873}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32
{B740AD57-ABF2-4421-96C0-FE220130A873}.Debug|x64.ActiveCfg = Debug|x64
{B740AD57-ABF2-4421-96C0-FE220130A873}.Debug|x64.Build.0 = Debug|x64
{B740AD57-ABF2-4421-96C0-FE220130A873}.Debug|x86.ActiveCfg = Debug|Win32
{B740AD57-ABF2-4421-96C0-FE220130A873}.Debug|x86.Build.0 = Debug|Win32
{B740AD57-ABF2-4421-96C0-FE220130A873}.Release.DLL|x64.ActiveCfg = Release.DLL|x64
{B740AD57-ABF2-4421-96C0-FE220130A873}.Release.DLL|x64.Build.0 = Release.DLL|x64
{B740AD57-ABF2-4421-96C0-FE220130A873}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32
{B740AD57-ABF2-4421-96C0-FE220130A873}.Release.DLL|x86.Build.0 = Release.DLL|Win32
{B740AD57-ABF2-4421-96C0-FE220130A873}.Release|x64.ActiveCfg = Release|x64
{B740AD57-ABF2-4421-96C0-FE220130A873}.Release|x64.Build.0 = Release|x64
{B740AD57-ABF2-4421-96C0-FE220130A873}.Release|x86.ActiveCfg = Release|Win32
{B740AD57-ABF2-4421-96C0-FE220130A873}.Release|x86.Build.0 = Release|Win32
{BCF5E746-FDBF-4CAC-9B95-44FE9A498430}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64
{BCF5E746-FDBF-4CAC-9B95-44FE9A498430}.Debug.DLL|x64.Build.0 = Debug.DLL|x64
{BCF5E746-FDBF-4CAC-9B95-44FE9A498430}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32
@ -215,6 +181,22 @@ Global
{BCF5E746-FDBF-4CAC-9B95-44FE9A498430}.Release|x64.Build.0 = Release|x64
{BCF5E746-FDBF-4CAC-9B95-44FE9A498430}.Release|x86.ActiveCfg = Release|Win32
{BCF5E746-FDBF-4CAC-9B95-44FE9A498430}.Release|x86.Build.0 = Release|Win32
{50A98C3D-C898-4830-A00B-3F78DC2E742B}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64
{50A98C3D-C898-4830-A00B-3F78DC2E742B}.Debug.DLL|x64.Build.0 = Debug.DLL|x64
{50A98C3D-C898-4830-A00B-3F78DC2E742B}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32
{50A98C3D-C898-4830-A00B-3F78DC2E742B}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32
{50A98C3D-C898-4830-A00B-3F78DC2E742B}.Debug|x64.ActiveCfg = Debug|x64
{50A98C3D-C898-4830-A00B-3F78DC2E742B}.Debug|x64.Build.0 = Debug|x64
{50A98C3D-C898-4830-A00B-3F78DC2E742B}.Debug|x86.ActiveCfg = Debug|Win32
{50A98C3D-C898-4830-A00B-3F78DC2E742B}.Debug|x86.Build.0 = Debug|Win32
{50A98C3D-C898-4830-A00B-3F78DC2E742B}.Release.DLL|x64.ActiveCfg = Release.DLL|x64
{50A98C3D-C898-4830-A00B-3F78DC2E742B}.Release.DLL|x64.Build.0 = Release.DLL|x64
{50A98C3D-C898-4830-A00B-3F78DC2E742B}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32
{50A98C3D-C898-4830-A00B-3F78DC2E742B}.Release.DLL|x86.Build.0 = Release.DLL|Win32
{50A98C3D-C898-4830-A00B-3F78DC2E742B}.Release|x64.ActiveCfg = Release|x64
{50A98C3D-C898-4830-A00B-3F78DC2E742B}.Release|x64.Build.0 = Release|x64
{50A98C3D-C898-4830-A00B-3F78DC2E742B}.Release|x86.ActiveCfg = Release|Win32
{50A98C3D-C898-4830-A00B-3F78DC2E742B}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -227,9 +209,8 @@ Global
{FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8} = {5DC256E9-D698-4D07-8AD7-DFDAE9125DE3}
{D28301C9-C293-4F41-9F58-F2609F33134E} = {5DC256E9-D698-4D07-8AD7-DFDAE9125DE3}
{56EE93DF-A3AF-4856-A4EC-E27358C6DA87} = {5DC256E9-D698-4D07-8AD7-DFDAE9125DE3}
{AB6D26C4-F5F4-420D-B15B-CE52619A5D36} = {5DC256E9-D698-4D07-8AD7-DFDAE9125DE3}
{B740AD57-ABF2-4421-96C0-FE220130A873} = {5DC256E9-D698-4D07-8AD7-DFDAE9125DE3}
{BCF5E746-FDBF-4CAC-9B95-44FE9A498430} = {5DC256E9-D698-4D07-8AD7-DFDAE9125DE3}
{50A98C3D-C898-4830-A00B-3F78DC2E742B} = {5DC256E9-D698-4D07-8AD7-DFDAE9125DE3}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {E926C768-6307-4423-A1EC-57E95B1FAB29}

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
# raygui styles
`raygui` comes with **12 custom styles** carefully designed for the best visual experience. Those styles have been created using [rGuiStyler](https://raylibtech.itch.io/rguistyler) tool and they complement internal [default style](default), always available by `raygui`.
`raygui` comes with **several custom UI styles** carefully designed for the best visual experience. Those styles have been created using [rGuiStyler](https://raylibtech.itch.io/rguistyler) tool and they complement internal [default style](default), always available by `raygui`.
## styles usage
@ -11,40 +11,43 @@ Styles can also be embedded in the code if desired, `.h` files are provided with
Here it is a quick overview of those styles, you can navigate to each directory for additional information.
#### 1. style: [default](default)
![default style](default/style_table.png)
![default style](default/style_default.png)
#### 2. style: [dark](dark)
![dark style](dark/style_table.png)
![dark style](dark/style_dark.png)
#### 3. style: [bluish](bluish)
![bluish style](bluish/style_table.png)
![bluish style](bluish/style_bluish.png)
#### 4. style: [candy](candy)
![candy style](candy/style_table.png)
![candy style](candy/style_candy.png)
#### 5. style: [cherry](cherry)
![cherry style](cherry/style_table.png)
![cherry style](cherry/style_cherry.png)
#### 6. style: [cyber](cyber)
![cyber style](cyber/style_table.png)
![cyber style](cyber/style_cyber.png)
#### 7. style: [jungle](jungle)
![jungle style](jungle/style_table.png)
![jungle style](jungle/style_jungle.png)
#### 8. style: [lavanda](lavanda)
![lavanda style](lavanda/style_table.png)
![lavanda style](lavanda/style_lavanda.png)
#### 9. style: [terminal](terminal)
![terminal style](terminal/style_table.png)
![terminal style](terminal/style_terminal.png)
#### 10. style: [sunny](sunny)
![sunny style](sunny/style_table.png)
![sunny style](sunny/style_sunny.png)
#### 11. style: [ashes](ashes)
![ashes style](ashes/style_table.png)
![ashes style](ashes/style_ashes.png)
#### 12. enefete: [enefete](enefete)
![enefete style](enefete/style_table.png)
![enefete style](enefete/style_enefete.png)
#### 13. amber: [amber](amber)
![amber style](amber/style_amber.png)
*NOTE: Those styles require raylib 4.0 and raygui 3.1.*
*NOTE: Those styles require raylib 5.5 and raygui 4.5*

33
styles/amber/README.md Normal file
View File

@ -0,0 +1,33 @@
## style: amber
Amber accenture and charcoal tones with a light font for nice visuals.
![amber style table](style_amber.png)
## style: provided files
Several options are provided to add the style to a `raygui` application, choose the one that better fits the project.
| file name | description |
| :-------- | :---------- |
| `style_amber.rgs` | Binary style file (raygui 4.0), font data compressed (recs, glyphs) |
| `style_amber.h` | Embeddable style as code file, self-contained, includes font data |
| `style_amber.png` | Style table image, contains `rGSf` chunk with binary `rgs` file data |
## screenshot
![amber style screen](screenshot.png)
## about font
"Hello World" font by Anthony Gross
```
CATEGORY: Monospace
LANGUAGE SUPPORT: Latin Extended
FORMAT: TTF
LICENSE: Free for personal and commercial use, SIL Open Font License
```
This font is licensed under the Open Font License. More info: https://www.dafont.com/es/hello-world.font
_The style font is optimized to look best at 16px, if you require different sizing please open the style in rGuiStyler and edit it._

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

BIN
styles/amber/screenshot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

608
styles/amber/style_amber.h Normal file
View File

@ -0,0 +1,608 @@
//////////////////////////////////////////////////////////////////////////////////
// //
// StyleAsCode exporter v2.0 - Style data exported as a values array //
// //
// USAGE: On init call: GuiLoadStyleAmber(); //
// //
// more info and bugs-report: github.com/raysan5/raygui //
// feedback and support: ray[at]raylibtech.com //
// //
// Copyright (c) 2020-2025 raylib technologies (@raylibtech) //
// //
//////////////////////////////////////////////////////////////////////////////////
#define AMBER_STYLE_PROPS_COUNT 18
// Custom style name: Amber
static const GuiStyleProp amberStyleProps[AMBER_STYLE_PROPS_COUNT] = {
{ 0, 0, (int)0x898988ff }, // DEFAULT_BORDER_COLOR_NORMAL
{ 0, 1, (int)0x292929ff }, // DEFAULT_BASE_COLOR_NORMAL
{ 0, 2, (int)0xd4d4d4ff }, // DEFAULT_TEXT_COLOR_NORMAL
{ 0, 3, (int)0xeb891dff }, // DEFAULT_BORDER_COLOR_FOCUSED
{ 0, 4, (int)0x292929ff }, // DEFAULT_BASE_COLOR_FOCUSED
{ 0, 5, (int)0xffffffff }, // DEFAULT_TEXT_COLOR_FOCUSED
{ 0, 6, (int)0xf1cf9dff }, // DEFAULT_BORDER_COLOR_PRESSED
{ 0, 7, (int)0xf39333ff }, // DEFAULT_BASE_COLOR_PRESSED
{ 0, 8, (int)0x191410ff }, // DEFAULT_TEXT_COLOR_PRESSED
{ 0, 9, (int)0x6a6a6aff }, // DEFAULT_BORDER_COLOR_DISABLED
{ 0, 10, (int)0x818181ff }, // DEFAULT_BASE_COLOR_DISABLED
{ 0, 11, (int)0x606060ff }, // DEFAULT_TEXT_COLOR_DISABLED
{ 0, 16, (int)0x00000010 }, // DEFAULT_TEXT_SIZE
{ 0, 18, (int)0xef922aff }, // DEFAULT_LINE_COLOR
{ 0, 19, (int)0x333333ff }, // DEFAULT_BACKGROUND_COLOR
{ 0, 20, (int)0x00000018 }, // DEFAULT_TEXT_LINE_SPACING
{ 1, 8, (int)0xe7e0d4ff }, // LABEL_TEXT_COLOR_PRESSED
{ 4, 8, (int)0xf1cf9dff }, // SLIDER_TEXT_COLOR_PRESSED
};
// WARNING: This style uses a custom font: "hello-world.ttf" (size: 16, spacing: 1)
#define AMBER_STYLE_FONT_ATLAS_COMP_SIZE 2605
// Font atlas image pixels data: DEFLATE compressed
static unsigned char amberFontData[AMBER_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed,
0xdd, 0x8b, 0x8e, 0x9c, 0xb8, 0x12, 0x00, 0x50, 0xf8, 0xff, 0x7f, 0x76, 0x5d, 0xe9, 0x66, 0xb3, 0xd2, 0xee, 0x8e, 0x6d,
0xaa, 0x30, 0x8f, 0xee, 0x9c, 0x1c, 0x45, 0x91, 0x9a, 0x34, 0x18, 0xdb, 0x85, 0x0d, 0x33, 0x94, 0x63, 0x03, 0x00, 0x00,
0x00, 0x88, 0x2d, 0x5a, 0xe7, 0xb3, 0xcc, 0xe7, 0x5b, 0xf7, 0xf3, 0xf6, 0xd7, 0xe7, 0x6d, 0xb0, 0xed, 0xe8, 0xbe, 0xfa,
0x65, 0xda, 0x92, 0xfb, 0x89, 0xee, 0x37, 0xe2, 0x87, 0x4f, 0x7e, 0xff, 0xc9, 0xec, 0xa7, 0x77, 0xbe, 0xf9, 0xda, 0xcb,
0x6e, 0x19, 0x1f, 0xbd, 0x25, 0x4b, 0x56, 0xff, 0xce, 0xd1, 0x7a, 0xcf, 0xd4, 0xe1, 0xef, 0x3f, 0x2d, 0xb1, 0x97, 0x71,
0x79, 0x7e, 0xde, 0xdb, 0x36, 0x39, 0xeb, 0xdc, 0x79, 0xb7, 0xe9, 0x96, 0xda, 0xb7, 0xd6, 0xc4, 0x7f, 0xaf, 0x4d, 0x32,
0x9f, 0x6f, 0xdd, 0x7a, 0xfc, 0x15, 0x37, 0xbd, 0xb8, 0xdd, 0x13, 0xfd, 0xa4, 0x17, 0x23, 0xfb, 0x20, 0xca, 0x23, 0xb5,
0xff, 0x71, 0x2f, 0x5a, 0x71, 0x4d, 0xed, 0x95, 0xf6, 0xe7, 0xab, 0x4b, 0xff, 0x1b, 0x6d, 0x78, 0xe6, 0xb5, 0x6b, 0x55,
0xbf, 0x1e, 0xf7, 0x1f, 0xbe, 0x5b, 0x2b, 0xdb, 0xf1, 0x72, 0x45, 0xba, 0x2d, 0x62, 0xd8, 0x6b, 0xf6, 0xee, 0x35, 0x23,
0x77, 0x76, 0x51, 0x38, 0xef, 0x98, 0x6c, 0xd9, 0x52, 0xa3, 0x5a, 0x5b, 0x3c, 0xfe, 0xaf, 0x88, 0xff, 0xf8, 0x7f, 0x2d,
0xee, 0xa9, 0xf1, 0x36, 0x92, 0x65, 0xca, 0x47, 0xed, 0xde, 0x39, 0x6e, 0x7f, 0x3c, 0xbf, 0xba, 0x4e, 0x7b, 0xdb, 0xf6,
0x42, 0x6d, 0xf4, 0xb6, 0xb4, 0xee, 0x79, 0x6f, 0xe5, 0xab, 0x5e, 0x24, 0xce, 0x26, 0x4e, 0x5f, 0x4b, 0x63, 0xd0, 0xd2,
0xe3, 0xb6, 0x8b, 0x74, 0x49, 0xa3, 0xf0, 0x9d, 0xf1, 0x96, 0x6d, 0xe9, 0x77, 0xae, 0x1b, 0xa3, 0xf2, 0xfb, 0x1b, 0xcf,
0xbe, 0xa2, 0x18, 0x0f, 0xe7, 0xcb, 0xb9, 0xa7, 0xaf, 0x89, 0x71, 0xf1, 0x3d, 0x55, 0x36, 0xfe, 0xb7, 0x85, 0xf1, 0x1f,
0xe9, 0xfa, 0xbe, 0x2f, 0xfe, 0x9f, 0x18, 0xff, 0xb7, 0x49, 0xfc, 0x6f, 0xe2, 0x3f, 0xf5, 0x7f, 0x73, 0xf7, 0x05, 0xe3,
0x71, 0x3b, 0x12, 0xf3, 0x99, 0x58, 0x18, 0xcf, 0x71, 0x7b, 0xf4, 0x8f, 0x7a, 0x5b, 0x65, 0x26, 0xd8, 0xbf, 0xdf, 0xea,
0xc7, 0xd9, 0xe8, 0x1e, 0x2d, 0xd2, 0x33, 0xce, 0xd1, 0xdd, 0x55, 0xe6, 0x79, 0x49, 0x2c, 0xeb, 0x99, 0x5b, 0x29, 0xfe,
0x23, 0xf5, 0xcc, 0x27, 0x26, 0x35, 0x9f, 0x8d, 0xff, 0x18, 0x5c, 0xff, 0x46, 0xfd, 0x28, 0x2e, 0xbd, 0xff, 0xcf, 0xc6,
0xff, 0x36, 0x99, 0x95, 0x6d, 0xa9, 0x9e, 0x5a, 0x29, 0x65, 0x7b, 0xd1, 0x13, 0xd5, 0x95, 0xf1, 0x1f, 0xc9, 0xb3, 0x8e,
0x03, 0x4f, 0xc3, 0x7a, 0xc7, 0xa8, 0xdc, 0xbd, 0xb5, 0x93, 0xfd, 0x2a, 0x1e, 0x6c, 0x93, 0x33, 0x23, 0x76, 0x7b, 0x7c,
0xfc, 0x8f, 0xc7, 0xe6, 0xff, 0x91, 0x9e, 0x1b, 0x5c, 0x1f, 0xff, 0xf1, 0xf2, 0xe8, 0xaf, 0xcd, 0xff, 0xa3, 0x38, 0x2f,
0x8f, 0x45, 0x73, 0xf9, 0xea, 0xdd, 0xcc, 0xbb, 0x5a, 0x64, 0x9b, 0x3e, 0x4f, 0xf8, 0xc4, 0xf9, 0x7f, 0x3c, 0x54, 0x8f,
0x51, 0xb8, 0x37, 0x10, 0xff, 0x95, 0xf8, 0xaf, 0xcd, 0x69, 0x67, 0x4f, 0x37, 0x63, 0xe9, 0x95, 0xe9, 0xb3, 0xe3, 0xbf,
0x1e, 0xb1, 0xe2, 0xff, 0xe8, 0xdc, 0x36, 0x86, 0xcf, 0x65, 0x63, 0x49, 0x1b, 0x7e, 0xc6, 0x58, 0xb3, 0x2e, 0xfe, 0xe3,
0xc4, 0x5d, 0xc3, 0x9f, 0x18, 0xff, 0xdb, 0x8d, 0xf1, 0x1f, 0x5f, 0x3b, 0xff, 0xaf, 0xdc, 0xff, 0xc7, 0xf0, 0x27, 0xd2,
0xb1, 0x68, 0x06, 0xf0, 0xfe, 0xd1, 0xbf, 0xf2, 0xb4, 0x67, 0xfc, 0x9b, 0x47, 0x91, 0xfe, 0xb9, 0x40, 0xe5, 0x69, 0xd3,
0x6c, 0xee, 0xbc, 0xa5, 0xcb, 0xf6, 0xe9, 0xe3, 0x7f, 0xfe, 0xbc, 0x63, 0xba, 0x25, 0x0a, 0xfd, 0xe8, 0x6d, 0xd7, 0xd7,
0x78, 0x7c, 0x64, 0x05, 0xbe, 0x97, 0xf8, 0x07, 0x57, 0x00, 0xd1, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xc0, 0x77, 0x6a, 0xff, 0xfa, 0xf7, 0x9f, 0xdb, 0xda, 0x8f, 0xd9, 0x8c, 0x5b, 0x77, 0x4b, 0x6f, 0x5f, 0xad,
0x70, 0xfc, 0x7c, 0xc9, 0x56, 0xe7, 0x60, 0xdf, 0x06, 0x67, 0x5a, 0xaf, 0x83, 0xeb, 0xb7, 0x8c, 0x4b, 0x9d, 0x69, 0x9b,
0x7e, 0xbd, 0x6c, 0xa9, 0x77, 0x92, 0x73, 0x79, 0x02, 0xdb, 0xe4, 0x0d, 0xd7, 0xec, 0xba, 0x0e, 0xb3, 0x1c, 0x86, 0x99,
0xcc, 0x87, 0xed, 0x50, 0x34, 0xcd, 0x3f, 0xcf, 0x96, 0x67, 0x1b, 0x66, 0xc5, 0x8c, 0x72, 0xde, 0xbf, 0x5a, 0xee, 0xe9,
0x3d, 0x99, 0xf9, 0x69, 0xf4, 0x3e, 0x7a, 0x4b, 0x67, 0x67, 0xbe, 0x2b, 0x07, 0xfb, 0xa8, 0x3e, 0xf7, 0x74, 0xf6, 0x8b,
0xca, 0x96, 0xbd, 0xbb, 0xae, 0xca, 0x2c, 0xd7, 0xc3, 0x7e, 0xb8, 0x15, 0x46, 0x39, 0x92, 0xf7, 0x6e, 0x1e, 0xf1, 0x5c,
0x5f, 0x5b, 0x95, 0xfb, 0x3e, 0xa6, 0x25, 0x8e, 0xe4, 0x77, 0xda, 0xf0, 0x38, 0x71, 0xd9, 0x3b, 0x65, 0x91, 0xac, 0xad,
0xed, 0xef, 0x1c, 0x1b, 0xb9, 0xba, 0x3c, 0x13, 0xff, 0x95, 0xfc, 0xd2, 0x5b, 0x3a, 0x03, 0xea, 0xde, 0xc9, 0x4b, 0xff,
0xfb, 0x7a, 0x76, 0x57, 0xa6, 0x95, 0x6c, 0x5b, 0xdf, 0x11, 0xff, 0xf3, 0xdc, 0x69, 0x91, 0x1a, 0x07, 0xf3, 0x7d, 0xf1,
0x89, 0xdc, 0x0d, 0x77, 0xe5, 0x23, 0x3f, 0xd3, 0x8a, 0x57, 0xc6, 0x7f, 0x3e, 0x4f, 0x6c, 0x3d, 0xf3, 0xcf, 0xfa, 0xf8,
0xcf, 0xe7, 0xab, 0x8a, 0x6e, 0x3e, 0x15, 0xf1, 0x5f, 0x8d, 0xff, 0xf8, 0x80, 0xf8, 0x5f, 0x99, 0x49, 0x7b, 0xb6, 0xb7,
0x48, 0x65, 0x3e, 0x9f, 0x65, 0xf9, 0x69, 0x83, 0xb9, 0xec, 0xb1, 0xbb, 0x8f, 0x38, 0x30, 0xff, 0xb8, 0x27, 0xfe, 0x67,
0x99, 0x7b, 0x73, 0xfd, 0xab, 0xba, 0x9f, 0x55, 0x6b, 0x30, 0xcc, 0x7a, 0x4e, 0xb6, 0x45, 0x23, 0xb9, 0x52, 0xe0, 0xea,
0xf8, 0x1f, 0x47, 0x6d, 0xad, 0x6c, 0xdb, 0xd2, 0x11, 0xf7, 0xec, 0x08, 0x18, 0x4b, 0xef, 0x0c, 0xee, 0xb9, 0x8a, 0xef,
0xa7, 0x57, 0x8f, 0x8b, 0xe1, 0x1d, 0xe6, 0xba, 0xbe, 0x75, 0xef, 0xf8, 0x1f, 0x8b, 0xf3, 0xa9, 0xc7, 0x8d, 0x99, 0x56,
0xf3, 0xab, 0x5c, 0x64, 0xeb, 0xb3, 0x92, 0x23, 0x35, 0x9f, 0x55, 0xf9, 0x5b, 0xe2, 0xff, 0xfa, 0x2d, 0xeb, 0x23, 0x2d,
0x17, 0xff, 0x71, 0xc3, 0xdc, 0xf2, 0x13, 0xe6, 0xff, 0xdb, 0x30, 0x5f, 0xfd, 0x5d, 0xf1, 0x5f, 0x6d, 0x8d, 0x6b, 0xe3,
0x3f, 0x0a, 0xf3, 0xf6, 0x95, 0xf3, 0xfc, 0x67, 0xe6, 0xff, 0xe3, 0x31, 0x26, 0xd2, 0xf5, 0x5e, 0xcd, 0x61, 0x7a, 0x65,
0xfc, 0xc7, 0x2d, 0xf7, 0x96, 0xf7, 0xc7, 0xff, 0xda, 0xb8, 0x5c, 0x1b, 0xff, 0x2b, 0xd7, 0xab, 0x10, 0xff, 0xf7, 0xcf,
0x0c, 0xd6, 0x7e, 0xa7, 0x72, 0x77, 0xf0, 0xe4, 0xf8, 0x7f, 0x7f, 0x5d, 0x3f, 0x1f, 0xff, 0x2b, 0xe7, 0xff, 0xf1, 0x70,
0xfc, 0x57, 0xd6, 0xff, 0xba, 0x67, 0x96, 0x2f, 0xfe, 0x9f, 0x88, 0xff, 0x37, 0xd4, 0x7a, 0x7e, 0xde, 0x34, 0x7f, 0x5a,
0x98, 0x5b, 0x35, 0xb1, 0xf6, 0x54, 0x3c, 0x8a, 0x2b, 0x87, 0x47, 0xa1, 0xd4, 0x95, 0x99, 0xe3, 0xb6, 0xe4, 0x5e, 0xbe,
0x76, 0x35, 0xa9, 0x64, 0x8e, 0xaf, 0xae, 0x33, 0x76, 0xe7, 0x7d, 0xc1, 0x35, 0xdf, 0xca, 0xb5, 0x62, 0x4c, 0xeb, 0x7e,
0xc5, 0x75, 0x64, 0x7b, 0x61, 0x16, 0x7f, 0x3e, 0x5d, 0xdc, 0xf4, 0x1d, 0xd4, 0x22, 0xe2, 0x1f, 0xb5, 0xc8, 0x9b, 0x7a,
0x61, 0x24, 0xef, 0xa9, 0xcd, 0x42, 0xd7, 0xd4, 0xba, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x56, 0xfd, 0x7e, 0x72, 0x36, 0xa7, 0xf8, 0x28, 0x6f, 0x62, 0x7e, 0x7f, 0xb3, 0x2c, 0x68, 0xed, 0xc1, 0x2d, 0xa3,
0x5a, 0x68, 0x07, 0xcf, 0xa6, 0x25, 0xf3, 0xbc, 0xf5, 0xeb, 0xa4, 0x9f, 0x5f, 0xbe, 0x25, 0xb7, 0xb5, 0xc9, 0x1e, 0x8f,
0xee, 0xfd, 0x78, 0x1b, 0xf7, 0xb3, 0xa8, 0xe5, 0xea, 0xbd, 0x9f, 0x99, 0xbf, 0x25, 0x57, 0x2c, 0x98, 0xd5, 0xe8, 0x96,
0x68, 0xc9, 0x23, 0xbd, 0x69, 0xb4, 0xd6, 0xc4, 0xd1, 0x76, 0x38, 0x7a, 0x0e, 0x71, 0xf0, 0xad, 0xa3, 0x59, 0xae, 0xc5,
0xd1, 0x96, 0x4c, 0x56, 0xa3, 0x33, 0xb9, 0x27, 0x56, 0xe6, 0xd2, 0x5d, 0x95, 0x4b, 0x3f, 0x97, 0xbb, 0x71, 0x1f, 0xb6,
0x51, 0x9c, 0xbc, 0x52, 0xb7, 0xc1, 0x31, 0x5a, 0x21, 0xef, 0xc3, 0xf1, 0xbd, 0x1f, 0x6f, 0xe3, 0x3d, 0x9d, 0xdd, 0x64,
0x65, 0xfe, 0xfd, 0x96, 0xce, 0xd8, 0xb9, 0x27, 0x57, 0xc4, 0x38, 0x9e, 0x4f, 0x62, 0x4f, 0x67, 0xae, 0x98, 0xf5, 0xc3,
0xfd, 0xc4, 0x15, 0xe0, 0xce, 0xfc, 0x3b, 0x6f, 0x88, 0xff, 0x55, 0xb9, 0xb4, 0xaf, 0xce, 0xca, 0xd3, 0xba, 0xa5, 0x6f,
0x17, 0xd7, 0x6d, 0x3d, 0xe2, 0x62, 0x98, 0x01, 0x23, 0xca, 0x63, 0xd4, 0xd1, 0x63, 0x8c, 0x22, 0x67, 0xb4, 0x62, 0xd1,
0xf1, 0xeb, 0x66, 0x2c, 0x88, 0xff, 0x33, 0x6f, 0x03, 0x1f, 0x1f, 0x5b, 0x8e, 0xd6, 0xef, 0x7d, 0x19, 0xf3, 0xc7, 0x39,
0xd8, 0x73, 0x59, 0xd8, 0x57, 0x67, 0xcc, 0x59, 0x17, 0xe7, 0xab, 0xf2, 0xe8, 0xe4, 0xa2, 0x25, 0xd2, 0xf3, 0xf1, 0x4c,
0xfc, 0xc7, 0xe1, 0xd9, 0x7f, 0x36, 0x9f, 0x4d, 0x3e, 0x1a, 0x62, 0xf1, 0x1b, 0xb5, 0xfd, 0xf2, 0xb6, 0x8b, 0xc6, 0xff,
0xd5, 0xf1, 0xbf, 0x9d, 0x88, 0xfe, 0x7b, 0x57, 0xcc, 0xd8, 0x8a, 0xeb, 0x52, 0x5c, 0x9d, 0x4b, 0x33, 0x0a, 0x65, 0x7b,
0x2e, 0xfe, 0xb3, 0x2b, 0x18, 0x8c, 0x8e, 0xd0, 0x0e, 0x97, 0xa4, 0x5d, 0x14, 0x9b, 0x51, 0xec, 0xd5, 0xf1, 0x48, 0x66,
0x8e, 0x73, 0xe3, 0xff, 0x76, 0x3a, 0xfe, 0xd7, 0xd7, 0xab, 0xf8, 0xaf, 0xcf, 0x67, 0xee, 0x8d, 0xff, 0xad, 0xb0, 0x4e,
0x4b, 0x14, 0x66, 0x5d, 0xf5, 0x2b, 0xc0, 0x5d, 0xfd, 0xfa, 0xed, 0xcf, 0xd3, 0x67, 0xfd, 0xe0, 0x5d, 0xe7, 0x30, 0xeb,
0x21, 0x99, 0x7e, 0x15, 0x93, 0xa3, 0xe4, 0xef, 0x8d, 0x2b, 0x7d, 0x7e, 0x2b, 0x66, 0x88, 0xaf, 0xe4, 0x2d, 0x3d, 0x7f,
0xbf, 0x70, 0xfe, 0x2a, 0x52, 0x5d, 0xbf, 0x2b, 0x4e, 0xf7, 0x91, 0x4c, 0x7b, 0xad, 0xed, 0xaf, 0xef, 0xbd, 0x0e, 0xcc,
0xb3, 0xc6, 0x7e, 0x46, 0x3e, 0xa0, 0xb8, 0xed, 0x5a, 0xfc, 0x96, 0xfa, 0x88, 0x45, 0x77, 0x8e, 0x57, 0x8d, 0xff, 0x6b,
0x9f, 0xad, 0x66, 0xe3, 0xe8, 0xfb, 0xb2, 0x58, 0xc5, 0x25, 0xd7, 0x92, 0x58, 0x7a, 0xbf, 0x23, 0xfe, 0xc5, 0xff, 0x15,
0xf1, 0x7f, 0xfc, 0x18, 0xf1, 0xb5, 0xf1, 0xff, 0x44, 0x2f, 0x12, 0xff, 0x67, 0xe6, 0x97, 0x6f, 0x9a, 0x51, 0x5e, 0x1b,
0xff, 0xeb, 0xc6, 0xb1, 0xca, 0x7d, 0xd7, 0x9b, 0x5a, 0x47, 0xfc, 0xf3, 0x49, 0xed, 0xfc, 0x9e, 0x75, 0x34, 0x00, 0xf1,
0x0f, 0x5c, 0x33, 0xef, 0x3e, 0xf6, 0x93, 0x7b, 0xd1, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xc0, 0x59, 0xad, 0x9b, 0x59, 0x3c, 0xba, 0x59, 0xcc, 0xff, 0xf9, 0xef, 0xcf, 0x5b, 0x9f, 0x3d, 0x9f, 0x2d, 0x55, 0xb6,
0x36, 0xcc, 0xf8, 0xde, 0x1e, 0x2e, 0xf5, 0x95, 0x47, 0x68, 0xb7, 0x9d, 0xe1, 0xda, 0x5a, 0xe9, 0xbd, 0x47, 0xdb, 0x6e,
0xa8, 0xc9, 0x5a, 0x7b, 0xb5, 0xe1, 0xb6, 0x96, 0xee, 0xb3, 0xb5, 0x2d, 0xff, 0xfd, 0x9f, 0xfb, 0xb0, 0x86, 0xf7, 0x64,
0x5e, 0xde, 0xda, 0x9b, 0xd1, 0xb5, 0x6c, 0x5a, 0x3f, 0x6f, 0xdb, 0xff, 0xfa, 0xdb, 0xdb, 0x96, 0xa9, 0x83, 0x71, 0xee,
0xfb, 0x95, 0xe7, 0x33, 0x2a, 0xf5, 0x9a, 0x0c, 0xc4, 0x3f, 0x1f, 0x21, 0x06, 0x67, 0x18, 0xa5, 0x6c, 0x66, 0x77, 0xb5,
0x65, 0x6f, 0x4d, 0x86, 0xbd, 0xb0, 0xda, 0xca, 0x1d, 0xed, 0x15, 0xa5, 0xf5, 0x1b, 0xb6, 0x49, 0xdf, 0xcc, 0xf5, 0xe7,
0x4c, 0xdd, 0x8f, 0xf2, 0xcd, 0x8e, 0xce, 0xb3, 0x7f, 0xe4, 0xfe, 0x99, 0xec, 0xc9, 0x33, 0xf9, 0xf5, 0xf9, 0x9e, 0xbc,
0x96, 0xb6, 0xc1, 0x3c, 0xa7, 0xf2, 0xd6, 0xee, 0xca, 0xf3, 0x19, 0x8d, 0xc3, 0xfd, 0x3a, 0xc8, 0x1f, 0xe3, 0x78, 0x5b,
0x8e, 0xea, 0xf8, 0xf9, 0xb6, 0x1c, 0xf5, 0xcc, 0x48, 0x47, 0x52, 0xbe, 0xcc, 0xfd, 0xbe, 0xde, 0xdb, 0xdb, 0x6c, 0x3d,
0x9d, 0x67, 0xde, 0x11, 0x9f, 0xc5, 0x7f, 0xa4, 0xe3, 0x7f, 0xbc, 0x0a, 0xcc, 0xf1, 0x4f, 0x47, 0x57, 0xd9, 0x7d, 0x30,
0x96, 0xf7, 0x6a, 0xb9, 0x0d, 0xeb, 0xbf, 0xf6, 0xd6, 0xfe, 0xaa, 0xf3, 0xa9, 0x1c, 0x67, 0x4f, 0xd7, 0x59, 0x2e, 0x2b,
0xea, 0x3e, 0x3c, 0x93, 0x67, 0xdb, 0x72, 0xd4, 0x9b, 0xdb, 0x20, 0x4b, 0xff, 0xea, 0xf6, 0x8a, 0xc4, 0xde, 0xaa, 0x6b,
0xd6, 0x8c, 0xd6, 0xe0, 0xcb, 0x6e, 0xe9, 0x45, 0x79, 0x65, 0xf6, 0x97, 0x9d, 0x13, 0xe7, 0xc7, 0xe5, 0xea, 0x58, 0xbe,
0xa5, 0xb3, 0x96, 0xcf, 0x56, 0xc9, 0xc8, 0x8c, 0xd8, 0x95, 0x2d, 0x51, 0xb8, 0x37, 0x6c, 0xe9, 0x27, 0x16, 0xa3, 0x9c,
0xe2, 0x91, 0x1c, 0xe3, 0x9e, 0x6d, 0xcb, 0xd9, 0x68, 0x96, 0x39, 0x9b, 0xca, 0x96, 0xd1, 0xac, 0xa9, 0xff, 0x9d, 0xfc,
0xca, 0x98, 0x67, 0x56, 0xe7, 0x6b, 0x97, 0xcd, 0xff, 0xe7, 0x39, 0xb6, 0xd7, 0x8c, 0xcb, 0xd5, 0xb1, 0x7c, 0x2b, 0xac,
0x5a, 0x10, 0x97, 0xdf, 0x31, 0x56, 0x57, 0x47, 0xdb, 0xbb, 0xf7, 0xc6, 0xb9, 0xcf, 0xab, 0x6b, 0x1f, 0xc4, 0x0b, 0xdb,
0x32, 0x1f, 0xff, 0xd7, 0xac, 0x73, 0xb1, 0x76, 0x6d, 0xbc, 0x76, 0x5b, 0x9f, 0x3a, 0x3e, 0xca, 0xaf, 0x5e, 0xe5, 0xee,
0xfa, 0x5a, 0xae, 0xe5, 0xf2, 0x7f, 0x3a, 0xfe, 0x63, 0xe1, 0x8a, 0x02, 0xab, 0xe2, 0xbf, 0xbd, 0x24, 0x62, 0xfe, 0x94,
0xf8, 0xcf, 0xad, 0xc2, 0x11, 0xa5, 0x95, 0x3b, 0x32, 0x31, 0x9e, 0x7f, 0x96, 0xff, 0x9e, 0x5a, 0xfe, 0x9e, 0xf1, 0xff,
0xb9, 0xf8, 0x8f, 0x0f, 0x8c, 0xff, 0xf7, 0x96, 0xf9, 0xf9, 0xb1, 0xf1, 0xd9, 0xf8, 0xaf, 0x8c, 0xcb, 0xf5, 0x75, 0x79,
0xd6, 0xc6, 0x7f, 0x24, 0x46, 0xec, 0xf5, 0x99, 0xb8, 0x9f, 0x8a, 0xff, 0xf7, 0x8e, 0xa5, 0xb3, 0xba, 0x7a, 0xb2, 0x64,
0xb3, 0x55, 0xe6, 0xdf, 0x15, 0xff, 0xd5, 0x15, 0x55, 0x23, 0x39, 0x93, 0x7d, 0xff, 0xf8, 0x1f, 0xa9, 0x35, 0xf7, 0xbe,
0x67, 0xfc, 0x8f, 0xc9, 0xda, 0xbc, 0x9f, 0x37, 0xff, 0x8f, 0x47, 0x63, 0x2c, 0x4a, 0x2b, 0xc9, 0x66, 0x57, 0xda, 0x5b,
0x35, 0xff, 0xbf, 0xf3, 0xe7, 0x8c, 0x9f, 0x36, 0x9b, 0x3c, 0xf7, 0xa4, 0xe3, 0x33, 0xe2, 0x7f, 0x3e, 0x92, 0x7e, 0x5e,
0x8b, 0x3d, 0x3d, 0xc6, 0xca, 0xf6, 0xfc, 0x4d, 0xf1, 0xbf, 0xdd, 0x32, 0xfe, 0x57, 0x57, 0x3a, 0xcd, 0xfe, 0xfe, 0xd9,
0x27, 0xc5, 0xff, 0xca, 0x95, 0x87, 0xee, 0x2c, 0x99, 0xf8, 0x7f, 0xdb, 0x3d, 0xce, 0x8a, 0x92, 0xdf, 0xf5, 0x13, 0x99,
0xbb, 0xc7, 0xf9, 0xf7, 0x5e, 0xb1, 0xdf, 0xdb, 0xff, 0xaa, 0xbf, 0xe7, 0x2e, 0xfe, 0x3f, 0x2f, 0xfe, 0xb3, 0x23, 0x76,
0x65, 0xcb, 0xfc, 0x48, 0xe7, 0x3f, 0x5f, 0xd7, 0x62, 0xeb, 0x9f, 0x7e, 0xde, 0x71, 0xb7, 0x7a, 0x5f, 0xc9, 0xc4, 0x3f,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xad, 0x36, 0xcc, 0xe4, 0x9f, 0xcd, 0x4a, 0x3e, 0xca, 0x0c,
0x18, 0xb7, 0xe4, 0x38, 0xaf, 0xe6, 0xff, 0x3f, 0xfe, 0x79, 0xbe, 0xc6, 0x2a, 0x65, 0x5a, 0x7b, 0xee, 0x6d, 0xd2, 0x66,
0x3f, 0x7f, 0xde, 0x0a, 0xab, 0x3c, 0xdc, 0xd1, 0x62, 0xad, 0xd4, 0x9f, 0xf9, 0xa9, 0xb6, 0xf6, 0x85, 0xb5, 0x35, 0x5b,
0x33, 0xe0, 0x99, 0x1c, 0xe7, 0xb3, 0xe3, 0xb4, 0x45, 0xc7, 0x18, 0x67, 0xb8, 0xce, 0x95, 0xa9, 0x72, 0xee, 0xeb, 0xdb,
0xb2, 0x5f, 0x8a, 0x7b, 0x5a, 0xac, 0xf9, 0x0d, 0xfb, 0x47, 0xdf, 0xd9, 0xa9, 0x64, 0x18, 0x8e, 0x64, 0xf6, 0xa3, 0xfb,
0x4a, 0xbd, 0xee, 0x08, 0xfd, 0xab, 0xd8, 0xfe, 0xd2, 0xb1, 0x67, 0x9c, 0x7b, 0x76, 0x94, 0x15, 0xb1, 0xdd, 0xf4, 0x66,
0x58, 0x4b, 0xbf, 0xcb, 0xd3, 0x16, 0xed, 0x4d, 0x94, 0xaf, 0xca, 0x3d, 0xbc, 0x4d, 0xf3, 0x72, 0xad, 0xba, 0xce, 0xe4,
0x4b, 0xbd, 0x0d, 0xf6, 0x95, 0xfb, 0x7c, 0x4b, 0xe6, 0x6a, 0x89, 0xc5, 0x59, 0xdc, 0xd7, 0xd6, 0xca, 0x36, 0xb9, 0x8e,
0x47, 0x22, 0xc6, 0xce, 0x6c, 0xc9, 0x1f, 0xe7, 0x6d, 0x6b, 0x69, 0x7c, 0xee, 0x7b, 0xb9, 0xfb, 0xa2, 0xdc, 0xc3, 0xf5,
0x4c, 0x9a, 0xab, 0x72, 0x9c, 0xd7, 0x32, 0xb3, 0xac, 0xcb, 0xa4, 0xb7, 0x77, 0xfb, 0xf1, 0xda, 0x33, 0xbc, 0xbe, 0x56,
0x3e, 0x21, 0x97, 0xee, 0x1b, 0xdf, 0x0c, 0xff, 0xec, 0xf7, 0xf3, 0x8f, 0x8c, 0x67, 0xdb, 0x74, 0xce, 0xf8, 0x64, 0xfb,
0x5f, 0x9f, 0x49, 0x67, 0xfb, 0xc8, 0x0c, 0x87, 0x5b, 0x39, 0x03, 0x98, 0xf8, 0xff, 0xf6, 0xf9, 0x7f, 0xdc, 0x90, 0x17,
0x69, 0x76, 0x2d, 0x59, 0x9b, 0xff, 0x77, 0x13, 0xff, 0x27, 0xa3, 0xe2, 0xf9, 0x5c, 0x9a, 0xf3, 0xab, 0xfc, 0x26, 0xfe,
0x17, 0x8d, 0xfb, 0xdf, 0x96, 0x49, 0xd3, 0xf8, 0x7f, 0x5d, 0x54, 0x7c, 0xea, 0x5a, 0x1a, 0x6c, 0x85, 0xb1, 0x7c, 0x65,
0x86, 0xe1, 0xb8, 0xe1, 0x0a, 0x54, 0xc9, 0xcc, 0x98, 0xff, 0xfc, 0xd3, 0xa2, 0x7c, 0x65, 0x8e, 0xad, 0x6b, 0xca, 0xb6,
0x26, 0xfe, 0xdf, 0x99, 0xfd, 0xfa, 0x13, 0xe7, 0xff, 0xf7, 0x3c, 0x63, 0xd8, 0x6e, 0xce, 0xcc, 0x16, 0x4b, 0x3e, 0xdf,
0x92, 0x77, 0x38, 0x2b, 0xef, 0x97, 0x9e, 0xcf, 0xa4, 0x77, 0x5f, 0x56, 0xfa, 0xda, 0x5d, 0x9e, 0xf1, 0x1f, 0xbe, 0xfb,
0xd9, 0xb4, 0xf8, 0x07, 0xf1, 0x6f, 0xf6, 0x0f, 0xee, 0x4c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xc7, 0xaf, 0x3f, 0xea, 0x01, 0xc4, 0x3f, 0xf0, 0xc7,
0xc5, 0xff, 0xff, 0x00 };
// Font glyphs rectangles data (on atlas)
static const Rectangle amberFontRecs[189] = {
{ 4, 4, 5 , 16 },
{ 17, 4, 2 , 10 },
{ 27, 4, 4 , 4 },
{ 39, 4, 5 , 10 },
{ 52, 4, 5 , 11 },
{ 65, 4, 5 , 10 },
{ 78, 4, 5 , 10 },
{ 91, 4, 2 , 4 },
{ 101, 4, 4 , 13 },
{ 113, 4, 5 , 13 },
{ 126, 4, 4 , 4 },
{ 138, 4, 5 , 6 },
{ 151, 4, 3 , 2 },
{ 162, 4, 5 , 2 },
{ 175, 4, 2 , 1 },
{ 185, 4, 5 , 10 },
{ 198, 4, 5 , 10 },
{ 211, 4, 4 , 10 },
{ 223, 4, 5 , 10 },
{ 236, 4, 5 , 10 },
{ 249, 4, 5 , 10 },
{ 262, 4, 5 , 10 },
{ 275, 4, 5 , 10 },
{ 288, 4, 5 , 10 },
{ 301, 4, 5 , 10 },
{ 314, 4, 5 , 10 },
{ 327, 4, 2 , 6 },
{ 337, 4, 2 , 6 },
{ 347, 4, 5 , 6 },
{ 360, 4, 5 , 4 },
{ 373, 4, 5 , 6 },
{ 386, 4, 5 , 10 },
{ 399, 4, 5 , 7 },
{ 412, 4, 5 , 10 },
{ 425, 4, 5 , 10 },
{ 438, 4, 5 , 10 },
{ 451, 4, 5 , 10 },
{ 464, 4, 5 , 10 },
{ 477, 4, 5 , 10 },
{ 490, 4, 5 , 10 },
{ 4, 28, 5 , 10 },
{ 17, 28, 4 , 10 },
{ 29, 28, 5 , 10 },
{ 42, 28, 5 , 10 },
{ 55, 28, 5 , 10 },
{ 68, 28, 5 , 10 },
{ 81, 28, 5 , 10 },
{ 94, 28, 5 , 10 },
{ 107, 28, 5 , 10 },
{ 120, 28, 5 , 10 },
{ 133, 28, 5 , 10 },
{ 146, 28, 5 , 10 },
{ 159, 28, 5 , 10 },
{ 172, 28, 5 , 10 },
{ 185, 28, 5 , 10 },
{ 198, 28, 5 , 10 },
{ 211, 28, 5 , 10 },
{ 224, 28, 5 , 10 },
{ 237, 28, 5 , 10 },
{ 250, 28, 3 , 13 },
{ 261, 28, 5 , 10 },
{ 274, 28, 3 , 13 },
{ 285, 28, 4 , 3 },
{ 297, 28, 5 , 1 },
{ 310, 28, 3 , 3 },
{ 321, 28, 5 , 7 },
{ 334, 28, 5 , 10 },
{ 347, 28, 5 , 7 },
{ 360, 28, 5 , 10 },
{ 373, 28, 5 , 7 },
{ 386, 28, 5 , 10 },
{ 399, 28, 5 , 10 },
{ 412, 28, 5 , 10 },
{ 425, 28, 4 , 10 },
{ 437, 28, 3 , 13 },
{ 448, 28, 5 , 10 },
{ 461, 28, 5 , 10 },
{ 474, 28, 5 , 7 },
{ 487, 28, 5 , 7 },
{ 4, 52, 5 , 7 },
{ 17, 52, 5 , 10 },
{ 30, 52, 5 , 10 },
{ 43, 52, 5 , 7 },
{ 56, 52, 5 , 7 },
{ 69, 52, 5 , 10 },
{ 82, 52, 5 , 7 },
{ 95, 52, 5 , 7 },
{ 108, 52, 5 , 7 },
{ 121, 52, 5 , 7 },
{ 134, 52, 5 , 10 },
{ 147, 52, 5 , 7 },
{ 160, 52, 4 , 13 },
{ 172, 52, 2 , 13 },
{ 182, 52, 4 , 13 },
{ 194, 52, 5 , 4 },
{ 207, 52, 2 , 9 },
{ 217, 52, 5 , 7 },
{ 230, 52, 5 , 10 },
{ 243, 52, 5 , 10 },
{ 256, 52, 5 , 10 },
{ 269, 52, 0 , 0 },
{ 277, 52, 5 , 10 },
{ 290, 52, 0 , 0 },
{ 298, 52, 5 , 7 },
{ 311, 52, 3 , 5 },
{ 322, 52, 5 , 5 },
{ 335, 52, 5 , 3 },
{ 348, 52, 5 , 7 },
{ 361, 52, 5 , 2 },
{ 374, 52, 4 , 4 },
{ 386, 52, 5 , 8 },
{ 399, 52, 3 , 5 },
{ 410, 52, 3 , 6 },
{ 421, 52, 0 , 0 },
{ 429, 52, 5 , 10 },
{ 442, 52, 5 , 10 },
{ 455, 52, 2 , 3 },
{ 465, 52, 0 , 0 },
{ 473, 52, 3 , 5 },
{ 484, 52, 4 , 4 },
{ 496, 52, 5 , 5 },
{ 4, 76, 5 , 10 },
{ 17, 76, 5 , 7 },
{ 30, 76, 5 , 10 },
{ 43, 76, 5 , 10 },
{ 56, 76, 5 , 14 },
{ 69, 76, 5 , 14 },
{ 82, 76, 5 , 14 },
{ 95, 76, 5 , 14 },
{ 108, 76, 5 , 12 },
{ 121, 76, 5 , 12 },
{ 134, 76, 5 , 10 },
{ 147, 76, 5 , 13 },
{ 160, 76, 5 , 14 },
{ 173, 76, 5 , 14 },
{ 186, 76, 5 , 14 },
{ 199, 76, 5 , 12 },
{ 212, 76, 4 , 14 },
{ 224, 76, 4 , 14 },
{ 236, 76, 4 , 14 },
{ 248, 76, 4 , 12 },
{ 260, 76, 5 , 10 },
{ 273, 76, 5 , 14 },
{ 286, 76, 5 , 14 },
{ 299, 76, 5 , 14 },
{ 312, 76, 5 , 14 },
{ 325, 76, 5 , 14 },
{ 338, 76, 5 , 12 },
{ 351, 76, 4 , 3 },
{ 363, 76, 5 , 10 },
{ 376, 76, 5 , 14 },
{ 389, 76, 5 , 14 },
{ 402, 76, 5 , 14 },
{ 415, 76, 5 , 12 },
{ 428, 76, 5 , 14 },
{ 441, 76, 5 , 10 },
{ 454, 76, 5 , 10 },
{ 467, 76, 5 , 10 },
{ 480, 76, 5 , 10 },
{ 493, 76, 5 , 10 },
{ 4, 100, 5 , 10 },
{ 17, 100, 5 , 9 },
{ 30, 100, 5 , 9 },
{ 43, 100, 5 , 7 },
{ 56, 100, 5 , 10 },
{ 69, 100, 5 , 10 },
{ 82, 100, 5 , 10 },
{ 95, 100, 5 , 10 },
{ 108, 100, 5 , 9 },
{ 121, 100, 4 , 10 },
{ 133, 100, 4 , 10 },
{ 145, 100, 4 , 10 },
{ 157, 100, 4 , 9 },
{ 169, 100, 5 , 10 },
{ 182, 100, 5 , 10 },
{ 195, 100, 5 , 10 },
{ 208, 100, 5 , 10 },
{ 221, 100, 5 , 10 },
{ 234, 100, 5 , 10 },
{ 247, 100, 5 , 9 },
{ 260, 100, 5 , 6 },
{ 273, 100, 5 , 7 },
{ 286, 100, 5 , 10 },
{ 299, 100, 5 , 10 },
{ 312, 100, 5 , 10 },
{ 325, 100, 5 , 9 },
{ 338, 100, 5 , 13 },
{ 351, 100, 5 , 10 },
{ 364, 100, 5 , 12 },
};
// Font glyphs info data
// NOTE: No glyphs.image data provided
static const GlyphInfo amberFontGlyphs[189] = {
{ 32, 0, 0, 5, { 0 }},
{ 33, 1, 3, 5, { 0 }},
{ 34, 0, 3, 5, { 0 }},
{ 35, 0, 3, 5, { 0 }},
{ 36, 0, 3, 5, { 0 }},
{ 37, 0, 3, 5, { 0 }},
{ 38, 0, 3, 5, { 0 }},
{ 39, 1, 4, 5, { 0 }},
{ 40, 0, 3, 5, { 0 }},
{ 41, 0, 3, 5, { 0 }},
{ 42, 0, 3, 5, { 0 }},
{ 43, 0, 7, 5, { 0 }},
{ 44, 0, 12, 5, { 0 }},
{ 45, 0, 9, 5, { 0 }},
{ 46, 1, 12, 5, { 0 }},
{ 47, 0, 3, 5, { 0 }},
{ 48, 0, 3, 5, { 0 }},
{ 49, 0, 3, 5, { 0 }},
{ 50, 0, 3, 5, { 0 }},
{ 51, 0, 3, 5, { 0 }},
{ 52, 0, 3, 5, { 0 }},
{ 53, 0, 3, 5, { 0 }},
{ 54, 0, 3, 5, { 0 }},
{ 55, 0, 3, 5, { 0 }},
{ 56, 0, 3, 5, { 0 }},
{ 57, 0, 3, 5, { 0 }},
{ 58, 0, 7, 5, { 0 }},
{ 59, 0, 7, 5, { 0 }},
{ 60, 0, 7, 5, { 0 }},
{ 61, 0, 8, 5, { 0 }},
{ 62, 0, 7, 5, { 0 }},
{ 63, 0, 3, 5, { 0 }},
{ 64, 0, 6, 5, { 0 }},
{ 65, 0, 3, 5, { 0 }},
{ 66, 0, 3, 5, { 0 }},
{ 67, 0, 3, 5, { 0 }},
{ 68, 0, 3, 5, { 0 }},
{ 69, 0, 3, 5, { 0 }},
{ 70, 0, 3, 5, { 0 }},
{ 71, 0, 3, 5, { 0 }},
{ 72, 0, 3, 5, { 0 }},
{ 73, 0, 3, 5, { 0 }},
{ 74, 0, 3, 5, { 0 }},
{ 75, 0, 3, 5, { 0 }},
{ 76, 0, 3, 5, { 0 }},
{ 77, 0, 3, 5, { 0 }},
{ 78, 0, 3, 5, { 0 }},
{ 79, 0, 3, 5, { 0 }},
{ 80, 0, 3, 5, { 0 }},
{ 81, 0, 3, 5, { 0 }},
{ 82, 0, 3, 5, { 0 }},
{ 83, 0, 3, 5, { 0 }},
{ 84, 0, 3, 5, { 0 }},
{ 85, 0, 3, 5, { 0 }},
{ 86, 0, 3, 5, { 0 }},
{ 87, 0, 3, 5, { 0 }},
{ 88, 0, 3, 5, { 0 }},
{ 89, 0, 3, 5, { 0 }},
{ 90, 0, 3, 5, { 0 }},
{ 91, 0, 3, 5, { 0 }},
{ 92, 0, 3, 5, { 0 }},
{ 93, 0, 3, 5, { 0 }},
{ 94, 0, 3, 5, { 0 }},
{ 95, 0, 12, 5, { 0 }},
{ 96, 1, 4, 5, { 0 }},
{ 97, 0, 6, 5, { 0 }},
{ 98, 0, 3, 5, { 0 }},
{ 99, 0, 6, 5, { 0 }},
{ 100, 0, 3, 5, { 0 }},
{ 101, 0, 6, 5, { 0 }},
{ 102, 0, 3, 5, { 0 }},
{ 103, 0, 6, 5, { 0 }},
{ 104, 0, 3, 5, { 0 }},
{ 105, 0, 3, 5, { 0 }},
{ 106, 0, 3, 5, { 0 }},
{ 107, 0, 3, 5, { 0 }},
{ 108, 0, 3, 5, { 0 }},
{ 109, 0, 6, 5, { 0 }},
{ 110, 0, 6, 5, { 0 }},
{ 111, 0, 6, 5, { 0 }},
{ 112, 0, 6, 5, { 0 }},
{ 113, 0, 6, 5, { 0 }},
{ 114, 0, 6, 5, { 0 }},
{ 115, 0, 6, 5, { 0 }},
{ 116, 0, 3, 5, { 0 }},
{ 117, 0, 6, 5, { 0 }},
{ 118, 0, 6, 5, { 0 }},
{ 119, 0, 6, 5, { 0 }},
{ 120, 0, 6, 5, { 0 }},
{ 121, 0, 6, 5, { 0 }},
{ 122, 0, 6, 5, { 0 }},
{ 123, 0, 3, 5, { 0 }},
{ 124, 1, 3, 5, { 0 }},
{ 125, 0, 3, 5, { 0 }},
{ 126, 0, 8, 5, { 0 }},
{ 161, 1, 4, 5, { 0 }},
{ 162, 0, 6, 5, { 0 }},
{ 163, 0, 3, 5, { 0 }},
{ 8364, 0, 3, 5, { 0 }},
{ 165, 0, 3, 5, { 0 }},
{ 352, 0, 0, 0, { 0 }},
{ 167, 0, 3, 5, { 0 }},
{ 353, 0, 0, 0, { 0 }},
{ 169, 0, 6, 5, { 0 }},
{ 170, 2, 3, 5, { 0 }},
{ 171, 0, 8, 5, { 0 }},
{ 172, 0, 6, 5, { 0 }},
{ 174, 0, 6, 5, { 0 }},
{ 175, 0, 3, 5, { 0 }},
{ 176, 1, 3, 5, { 0 }},
{ 177, 0, 5, 5, { 0 }},
{ 178, 2, 3, 5, { 0 }},
{ 179, 2, 3, 5, { 0 }},
{ 381, 0, 0, 0, { 0 }},
{ 181, 0, 6, 5, { 0 }},
{ 182, 0, 3, 5, { 0 }},
{ 183, 1, 6, 5, { 0 }},
{ 382, 0, 0, 0, { 0 }},
{ 185, 0, 3, 5, { 0 }},
{ 186, 0, 3, 5, { 0 }},
{ 187, 0, 8, 5, { 0 }},
{ 338, 0, 3, 5, { 0 }},
{ 339, 0, 6, 5, { 0 }},
{ 376, 0, 3, 5, { 0 }},
{ 191, 0, 3, 5, { 0 }},
{ 192, 0, -1, 5, { 0 }},
{ 193, 0, -1, 5, { 0 }},
{ 194, 0, -1, 5, { 0 }},
{ 195, 0, -1, 5, { 0 }},
{ 196, 0, 1, 5, { 0 }},
{ 197, 0, 1, 5, { 0 }},
{ 198, 0, 3, 5, { 0 }},
{ 199, 0, 3, 5, { 0 }},
{ 200, 0, -1, 5, { 0 }},
{ 201, 0, -1, 5, { 0 }},
{ 202, 0, -1, 5, { 0 }},
{ 203, 0, 1, 5, { 0 }},
{ 204, 0, -1, 5, { 0 }},
{ 205, 0, -1, 5, { 0 }},
{ 206, 0, -1, 5, { 0 }},
{ 207, 0, 1, 5, { 0 }},
{ 208, 0, 3, 5, { 0 }},
{ 209, 0, -1, 5, { 0 }},
{ 210, 0, -1, 5, { 0 }},
{ 211, 0, -1, 5, { 0 }},
{ 212, 0, -1, 5, { 0 }},
{ 213, 0, -1, 5, { 0 }},
{ 214, 0, 1, 5, { 0 }},
{ 215, 0, 10, 5, { 0 }},
{ 216, 0, 3, 5, { 0 }},
{ 217, 0, -1, 5, { 0 }},
{ 218, 0, -1, 5, { 0 }},
{ 219, 0, -1, 5, { 0 }},
{ 220, 0, 1, 5, { 0 }},
{ 221, 0, -1, 5, { 0 }},
{ 222, 0, 3, 5, { 0 }},
{ 223, 0, 3, 5, { 0 }},
{ 224, 0, 3, 5, { 0 }},
{ 225, 0, 3, 5, { 0 }},
{ 226, 0, 3, 5, { 0 }},
{ 227, 0, 3, 5, { 0 }},
{ 228, 0, 4, 5, { 0 }},
{ 229, 0, 4, 5, { 0 }},
{ 230, 0, 6, 5, { 0 }},
{ 231, 0, 6, 5, { 0 }},
{ 232, 0, 3, 5, { 0 }},
{ 233, 0, 3, 5, { 0 }},
{ 234, 0, 3, 5, { 0 }},
{ 235, 0, 4, 5, { 0 }},
{ 236, 0, 3, 5, { 0 }},
{ 237, 0, 3, 5, { 0 }},
{ 238, 0, 3, 5, { 0 }},
{ 239, 0, 4, 5, { 0 }},
{ 240, 0, 3, 5, { 0 }},
{ 241, 0, 3, 5, { 0 }},
{ 242, 0, 3, 5, { 0 }},
{ 243, 0, 3, 5, { 0 }},
{ 244, 0, 3, 5, { 0 }},
{ 245, 0, 3, 5, { 0 }},
{ 246, 0, 4, 5, { 0 }},
{ 247, 0, 7, 5, { 0 }},
{ 248, 0, 6, 5, { 0 }},
{ 249, 0, 3, 5, { 0 }},
{ 250, 0, 3, 5, { 0 }},
{ 251, 0, 3, 5, { 0 }},
{ 252, 0, 4, 5, { 0 }},
{ 253, 0, 3, 5, { 0 }},
{ 254, 0, 3, 5, { 0 }},
{ 255, 0, 4, 5, { 0 }},
};
// Style loading function: Amber
static void GuiLoadStyleAmber(void)
{
// Load style properties provided
// NOTE: Default properties are propagated
for (int i = 0; i < AMBER_STYLE_PROPS_COUNT; i++)
{
GuiSetStyle(amberStyleProps[i].controlId, amberStyleProps[i].propertyId, amberStyleProps[i].propertyValue);
}
// Custom font loading
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
int amberFontDataSize = 0;
unsigned char *data = DecompressData(amberFontData, AMBER_STYLE_FONT_ATLAS_COMP_SIZE, &amberFontDataSize);
Image imFont = { data, 512, 256, 1, 2 };
Font font = { 0 };
font.baseSize = 16;
font.glyphCount = 189;
// Load texture from image
font.texture = LoadTextureFromImage(imFont);
UnloadImage(imFont); // Uncompressed image data can be unloaded from memory
// Copy char recs data from global fontRecs
// NOTE: Required to avoid issues if trying to free font
font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle));
memcpy(font.recs, amberFontRecs, font.glyphCount*sizeof(Rectangle));
// Copy font char info data from global fontChars
// NOTE: Required to avoid issues if trying to free font
font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo));
memcpy(font.glyphs, amberFontGlyphs, font.glyphCount*sizeof(GlyphInfo));
GuiSetFont(font);
// Setup a white rectangle on the font to be used on shapes drawing,
// it makes possible to draw shapes and text (full UI) in a single draw call
Rectangle fontWhiteRec = { 510, 254, 1, 1 };
SetShapesTexture(font.texture, fontWhiteRec);
//-----------------------------------------------------------------
// TODO: Custom user style setup: Set specific properties here (if required)
// i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

View File

@ -1,16 +1,27 @@
style: ashes
-------------
## style: ashes
What once was life now is ashes, just as slight reminiscense covers the ground, a gray sequence of tones that reminds to a distant past.
![ashes style table](style_table.png)
![ashes style table](style_ashes.png)
screenshot
-----------
## style: provided files
Several options are provided to add the style to a `raygui` application, choose the one that better fits the project.
| file name | description |
| :-------- | :---------- |
| `style_ashes.rgs` | Binary style file (raygui 4.0), font data compressed (recs, glyphs) |
| `style_ashes.txt.rgs` | Text style file, no font data, requires external font provided |
| `style_ashes.old.rgs` | Binary style file (raygui 3.x), font data uncompressed (recs, glyphs) |
| `style_ashes.h` | Embeddable style as code file, self-contained, includes font data |
| `style_ashes.png` | Style table image, contains `rGSf` chunk with binary `rgs` file data |
## screenshot
![ashes style screen](screenshot.png)
about font
-----------
## about font
"V5 Loxica Lixera" font by vFive Digital (Roberto Christen).
100% free font, downloaded from dafont.com: [v5loxica-lixera](https://www.dafont.com/v5loxica-lixera.font)

View File

@ -1,338 +0,0 @@
//////////////////////////////////////////////////////////////////////////////////
// //
// StyleAsCode exporter v1.2 - Style data exported as a values array //
// //
// USAGE: On init call: GuiLoadStyleAshes(); //
// //
// more info and bugs-report: github.com/raysan5/raygui //
// feedback and support: ray[at]raylibtech.com //
// //
// Copyright (c) 2020-2023 raylib technologies (@raylibtech) //
// //
//////////////////////////////////////////////////////////////////////////////////
#define ASHES_STYLE_PROPS_COUNT 15
// Custom style name: ashes
static const GuiStyleProp ashesStyleProps[ASHES_STYLE_PROPS_COUNT] = {
{ 0, 0, 0xf0f0f0ff }, // DEFAULT_BORDER_COLOR_NORMAL
{ 0, 1, 0x868686ff }, // DEFAULT_BASE_COLOR_NORMAL
{ 0, 2, 0xe6e6e6ff }, // DEFAULT_TEXT_COLOR_NORMAL
{ 0, 3, 0x929999ff }, // DEFAULT_BORDER_COLOR_FOCUSED
{ 0, 4, 0xeaeaeaff }, // DEFAULT_BASE_COLOR_FOCUSED
{ 0, 5, 0x98a1a8ff }, // DEFAULT_TEXT_COLOR_FOCUSED
{ 0, 6, 0x3f3f3fff }, // DEFAULT_BORDER_COLOR_PRESSED
{ 0, 7, 0xf6f6f6ff }, // DEFAULT_BASE_COLOR_PRESSED
{ 0, 8, 0x414141ff }, // DEFAULT_TEXT_COLOR_PRESSED
{ 0, 9, 0x8b8b8bff }, // DEFAULT_BORDER_COLOR_DISABLED
{ 0, 10, 0x777777ff }, // DEFAULT_BASE_COLOR_DISABLED
{ 0, 11, 0x959595ff }, // DEFAULT_TEXT_COLOR_DISABLED
{ 0, 16, 0x00000010 }, // DEFAULT_TEXT_SIZE
{ 0, 18, 0x9dadb1ff }, // DEFAULT_LINE_COLOR
{ 0, 19, 0x6b6b6bff }, // DEFAULT_BACKGROUND_COLOR
};
// WARNING: This style uses a custom font: (size: 16, spacing: 1)
#define ASHES_COMPRESSED_DATA_SIZE 999
// Font image pixels data compressed (DEFLATE)
// NOTE: Original pixel data simplified to GRAYSCALE
static unsigned char ashesFontData[ASHES_COMPRESSED_DATA_SIZE] = { 0xed,
0xdd, 0x4b, 0x96, 0x9b, 0x30, 0x10, 0x05, 0x50, 0xed, 0x7f, 0xd3, 0x95, 0x51, 0x4e, 0x3e, 0xa7, 0x31, 0x54, 0xa9, 0x64,
0x7e, 0x37, 0x77, 0xd6, 0xed, 0x60, 0x9a, 0x87, 0xc0, 0x36, 0x0f, 0x39, 0x06, 0x00, 0xc0, 0x7f, 0xe2, 0xc7, 0x9f, 0xc4,
0xe6, 0x23, 0xe3, 0xf0, 0x72, 0xfe, 0xfd, 0x79, 0x6c, 0xfc, 0x36, 0xb7, 0xbc, 0x38, 0xfc, 0xbc, 0x95, 0xdf, 0xc4, 0x8f,
0xeb, 0x17, 0xd3, 0xcf, 0x1a, 0x87, 0xff, 0x9a, 0x4f, 0x8f, 0xfd, 0xf4, 0x9c, 0x71, 0xd1, 0xfc, 0xe3, 0xc3, 0xf2, 0x3e,
0x2f, 0x31, 0x26, 0xf6, 0x89, 0x63, 0xcf, 0x7b, 0x3c, 0xd3, 0xf9, 0xed, 0xb9, 0xb5, 0x6f, 0x1d, 0x7f, 0xec, 0xfe, 0x36,
0x5e, 0x9b, 0xff, 0xdf, 0xff, 0xc6, 0xc6, 0x6f, 0x6b, 0x19, 0xaf, 0x19, 0xe9, 0x9f, 0xd7, 0x34, 0x9a, 0xd2, 0x3e, 0xbe,
0xd7, 0xc6, 0xd4, 0x71, 0xa8, 0xb2, 0xf4, 0xfa, 0x1a, 0x8f, 0x64, 0x5a, 0xb1, 0xb3, 0x17, 0x46, 0x7a, 0x89, 0xb3, 0xc7,
0xf3, 0xca, 0xf8, 0xbf, 0x4a, 0xfe, 0xb5, 0xbd, 0x39, 0x2e, 0x90, 0x7f, 0x25, 0xb9, 0x68, 0x58, 0xd3, 0x68, 0x3a, 0xff,
0xaf, 0x48, 0x3f, 0x9b, 0x7f, 0x34, 0x6e, 0x81, 0xce, 0xfc, 0xab, 0xc7, 0xff, 0xca, 0xf1, 0x6f, 0x5c, 0x24, 0xcf, 0xef,
0xe7, 0x1f, 0x5f, 0xdf, 0x02, 0x1d, 0xe3, 0x7f, 0xec, 0x1e, 0x6d, 0x63, 0xe7, 0x55, 0x4d, 0x3c, 0x20, 0xff, 0x8e, 0xfd,
0xbf, 0x7a, 0xa6, 0xbc, 0xee, 0xf9, 0x3f, 0x0e, 0x1c, 0xeb, 0xe2, 0x11, 0xe3, 0x3f, 0x7f, 0x96, 0x3b, 0xfe, 0x7e, 0x73,
0xef, 0x4c, 0x19, 0xa7, 0xff, 0xed, 0xb5, 0x57, 0x20, 0xbf, 0xff, 0xdf, 0xfd, 0xc7, 0xff, 0x55, 0xce, 0x41, 0x67, 0xad,
0x77, 0x9c, 0x3a, 0xbe, 0xe4, 0xff, 0x86, 0xbf, 0x3f, 0x6c, 0x79, 0x7b, 0x99, 0xf4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x4a, 0xcd, 0x82, 0x7c, 0x13, 0x21, 0xa6, 0x3b, 0x6e, 0x3d, 0xfd, 0xfb, 0x48, 0x6f, 0x81, 0x4a, 0xef, 0x7e, 0x6b, 0xbd,
0x72, 0x8f, 0x1f, 0xe9, 0x4e, 0x5d, 0xb5, 0xef, 0x1b, 0xe5, 0x56, 0xd7, 0x7c, 0x43, 0x7d, 0xc5, 0x15, 0xe4, 0x7a, 0xd7,
0x2e, 0xd3, 0xd1, 0x8d, 0xa6, 0x9e, 0x56, 0x34, 0xdf, 0xa3, 0xd2, 0x9d, 0xff, 0x38, 0x3d, 0xff, 0x58, 0xda, 0x07, 0x89,
0x9d, 0xbe, 0xd9, 0x1b, 0xf2, 0xaf, 0x36, 0x77, 0x33, 0xc7, 0xf9, 0x68, 0xef, 0x4e, 0xe6, 0xd7, 0x6f, 0xff, 0x7e, 0x80,
0x37, 0xe6, 0x3f, 0xd2, 0xe3, 0x36, 0x7f, 0x84, 0x3d, 0x7a, 0xa6, 0x8e, 0x13, 0xc7, 0xff, 0xa7, 0xf3, 0x76, 0x24, 0x46,
0x4d, 0x36, 0xff, 0xdc, 0xf3, 0xfe, 0x59, 0xd7, 0xdc, 0x88, 0x38, 0x33, 0xff, 0x31, 0xd9, 0xe3, 0x8c, 0xb6, 0x23, 0x46,
0xf5, 0x3c, 0x77, 0xbd, 0xf1, 0xdf, 0xfd, 0xfa, 0x6f, 0x5d, 0xfe, 0xd1, 0xd0, 0xc6, 0x8a, 0xa5, 0x5d, 0xd0, 0xca, 0x3d,
0x2a, 0xcf, 0xc9, 0xbf, 0xf2, 0x0e, 0xa7, 0x67, 0x39, 0x77, 0xe8, 0xa1, 0xbe, 0x21, 0x7f, 0xe4, 0xaf, 0x87, 0x5e, 0x79,
0xdd, 0xb6, 0xee, 0xf3, 0x9f, 0x48, 0x1f, 0xaf, 0xe5, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x4b, 0xbf, 0x77,
0xbb, 0xa1, 0x99, 0x9f, 0x17, 0xbc, 0xe3, 0xf1, 0xd5, 0x67, 0x88, 0xb6, 0x0e, 0x68, 0x5f, 0xa3, 0x74, 0xfb, 0x8a, 0x72,
0xc7, 0x35, 0xee, 0x75, 0xf9, 0x8f, 0xf6, 0x5e, 0x6d, 0xbe, 0xa5, 0x96, 0x9f, 0x31, 0x7f, 0x5c, 0x2c, 0xff, 0x91, 0xd8,
0xee, 0xf2, 0x7f, 0x77, 0xfe, 0x7d, 0x6d, 0xe9, 0xa7, 0xe7, 0x3f, 0x6e, 0x95, 0xff, 0xdc, 0x77, 0x04, 0x74, 0xe5, 0x5f,
0x6f, 0xbc, 0x77, 0x9d, 0x05, 0xe7, 0xef, 0x3a, 0x18, 0xe5, 0xef, 0x16, 0xea, 0xca, 0x7f, 0x14, 0xee, 0x04, 0x5c, 0xd7,
0x96, 0xbf, 0xd7, 0xf8, 0x1f, 0x0d, 0xe3, 0x7f, 0x5c, 0xf4, 0xf8, 0x3f, 0x9a, 0x1a, 0xa2, 0xf2, 0x7f, 0x77, 0xfe, 0x9d,
0xf7, 0xcb, 0x3e, 0x31, 0xff, 0xab, 0xbe, 0xfe, 0x93, 0xff, 0x1d, 0xf3, 0x8f, 0xb6, 0xbf, 0xbc, 0x2f, 0xff, 0xdc, 0x1e,
0x10, 0xd3, 0xfd, 0xf2, 0xfd, 0x4f, 0x4d, 0x22, 0xb9, 0xb4, 0xd1, 0x30, 0xaf, 0x43, 0xfe, 0xf5, 0x57, 0xf6, 0xce, 0xa6,
0xbd, 0x39, 0x23, 0xb2, 0xf3, 0x34, 0xe4, 0xe6, 0x81, 0xb8, 0xf2, 0xb7, 0x7e, 0x9c, 0x31, 0x87, 0x89, 0xcf, 0x6d, 0xb1,
0xcf, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x67, 0x79, 0x8c, 0xe4, 0xf5, 0xc8, 0xae, 0xab, 0xb9, 0xa3, 0xe5, 0x1b,
0x07, 0xa2, 0xe1, 0x0a, 0xfb, 0xdc, 0xff, 0x8f, 0xbf, 0xae, 0x0d, 0x77, 0xdd, 0xe5, 0x30, 0x7b, 0x75, 0x68, 0x7b, 0x96,
0xe1, 0x9e, 0x2b, 0x92, 0xab, 0x3a, 0x0d, 0x51, 0x68, 0x46, 0xc7, 0x82, 0x2b, 0xa9, 0x91, 0xdc, 0xae, 0x67, 0xb6, 0xa2,
0x73, 0xf9, 0x44, 0xcb, 0xd1, 0xa5, 0xa3, 0x4b, 0x1c, 0xd3, 0x5d, 0xe1, 0x7c, 0x53, 0x78, 0x45, 0x33, 0xea, 0x1e, 0xf9,
0xf7, 0x76, 0x14, 0x56, 0x8d, 0xdc, 0xde, 0xf1, 0x1f, 0x5f, 0x69, 0xc6, 0xcb, 0xbf, 0x33, 0xff, 0xdc, 0x2b, 0x91, 0x75,
0xf9, 0x1b, 0xff, 0xe7, 0x8d, 0xff, 0xd9, 0x16, 0x9f, 0xfc, 0xdf, 0x91, 0x7f, 0x34, 0xcd, 0xcd, 0x2d, 0xff, 0xf9, 0x77,
0x97, 0xb9, 0x0e, 0x6c, 0x57, 0x57, 0xf8, 0x3a, 0xe3, 0x7f, 0xb4, 0xb5, 0xa2, 0xf3, 0x77, 0xbf, 0x5f, 0xa1, 0x49, 0x5a,
0xd9, 0x3f, 0xa3, 0xe5, 0x8e, 0x86, 0xb3, 0xcf, 0xff, 0xdf, 0xec, 0x00, 0x5f, 0x37, 0xff, 0x6c, 0x7b, 0x35, 0x26, 0xef,
0x68, 0x38, 0x27, 0xff, 0xf5, 0x5b, 0xf6, 0xbe, 0xf9, 0xdf, 0xb7, 0x31, 0x7d, 0xa5, 0xad, 0xd5, 0x91, 0xbf, 0x1e, 0xb9,
0xfb, 0x2e, 0x70, 0xcf, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0xef, 0xf8, 0x54, 0x3b, 0xdf, 0x89, 0xcd, 0xf4, 0x88, 0x63,
0xe2, 0x8a, 0xfa, 0xf1, 0x26, 0xe0, 0x38, 0x3c, 0x4f, 0x7e, 0x24, 0xbb, 0xc7, 0x4f, 0xbf, 0x9e, 0xd5, 0xdb, 0xd0, 0x3a,
0x6b, 0x8e, 0xf4, 0xca, 0x3c, 0x8f, 0xf3, 0xf7, 0x41, 0x3c, 0x27, 0xff, 0xf9, 0x26, 0x7e, 0x2d, 0xff, 0x7c, 0x6f, 0x6c,
0xdd, 0x4f, 0xdf, 0x7a, 0x3d, 0xfb, 0x1b, 0xc7, 0xff, 0xd5, 0x73, 0xe4, 0xcb, 0x7f, 0xae, 0xcf, 0x70, 0x9f, 0xe3, 0x7f,
0xdf, 0x3c, 0xdf, 0xf2, 0xef, 0xbe, 0xb7, 0x66, 0x7d, 0x0f, 0xba, 0xeb, 0x3b, 0x12, 0xde, 0xb8, 0x07, 0x3c, 0x21, 0xff,
0xae, 0x9c, 0xe5, 0xdf, 0xdd, 0xad, 0x1f, 0x07, 0xe6, 0xc8, 0x1e, 0xd3, 0xf7, 0x6a, 0x46, 0xcb, 0x77, 0xa7, 0xe8, 0x76,
0xdd, 0xa3, 0xfd, 0x18, 0x8b, 0xde, 0xdd, 0xc8, 0xff, 0x1e, 0x1d, 0x48, 0xf9, 0xdb, 0xfb, 0xbe, 0xb7, 0xaf, 0xf0, 0x86,
0x3d, 0x46, 0xb3, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x5b, 0xfa, 0x05 };
// Font characters rectangles data
static const Rectangle ashesFontRecs[95] = {
{ 4, 4, 4 , 16 },
{ 16, 4, 1 , 10 },
{ 25, 4, 3 , 3 },
{ 36, 4, 6 , 8 },
{ 50, 4, 5 , 11 },
{ 63, 4, 7 , 8 },
{ 78, 4, 6 , 9 },
{ 92, 4, 1 , 3 },
{ 101, 4, 3 , 12 },
{ 112, 4, 3 , 12 },
{ 123, 4, 5 , 5 },
{ 136, 4, 5 , 5 },
{ 149, 4, 2 , 2 },
{ 159, 4, 4 , 1 },
{ 171, 4, 1 , 1 },
{ 180, 4, 5 , 10 },
{ 193, 4, 4 , 8 },
{ 205, 4, 2 , 8 },
{ 215, 4, 4 , 8 },
{ 227, 4, 4 , 8 },
{ 239, 4, 6 , 8 },
{ 4, 28, 4 , 8 },
{ 16, 28, 4 , 8 },
{ 28, 28, 4 , 8 },
{ 40, 28, 4 , 8 },
{ 52, 28, 4 , 8 },
{ 64, 28, 1 , 5 },
{ 73, 28, 2 , 6 },
{ 83, 28, 4 , 7 },
{ 95, 28, 4 , 4 },
{ 107, 28, 4 , 7 },
{ 119, 28, 4 , 10 },
{ 131, 28, 8 , 7 },
{ 147, 28, 4 , 10 },
{ 159, 28, 4 , 10 },
{ 171, 28, 4 , 10 },
{ 183, 28, 4 , 10 },
{ 195, 28, 4 , 10 },
{ 207, 28, 5 , 10 },
{ 220, 28, 4 , 10 },
{ 232, 28, 4 , 10 },
{ 4, 52, 1 , 10 },
{ 13, 52, 3 , 10 },
{ 24, 52, 4 , 10 },
{ 36, 52, 4 , 10 },
{ 48, 52, 7 , 10 },
{ 63, 52, 4 , 10 },
{ 75, 52, 4 , 10 },
{ 87, 52, 4 , 10 },
{ 99, 52, 5 , 11 },
{ 112, 52, 4 , 10 },
{ 124, 52, 4 , 10 },
{ 136, 52, 5 , 10 },
{ 149, 52, 4 , 10 },
{ 161, 52, 4 , 10 },
{ 173, 52, 7 , 10 },
{ 188, 52, 4 , 10 },
{ 200, 52, 4 , 10 },
{ 212, 52, 4 , 10 },
{ 224, 52, 2 , 12 },
{ 234, 52, 5 , 10 },
{ 4, 76, 2 , 12 },
{ 14, 76, 5 , 3 },
{ 27, 76, 5 , 1 },
{ 40, 76, 2 , 2 },
{ 50, 76, 4 , 8 },
{ 62, 76, 4 , 10 },
{ 74, 76, 3 , 8 },
{ 85, 76, 4 , 10 },
{ 97, 76, 4 , 8 },
{ 109, 76, 3 , 10 },
{ 120, 76, 5 , 11 },
{ 133, 76, 4 , 10 },
{ 145, 76, 1 , 10 },
{ 154, 76, 3 , 13 },
{ 165, 76, 4 , 10 },
{ 177, 76, 2 , 10 },
{ 187, 76, 7 , 8 },
{ 202, 76, 4 , 8 },
{ 214, 76, 4 , 8 },
{ 226, 76, 4 , 11 },
{ 238, 76, 4 , 11 },
{ 4, 100, 3 , 8 },
{ 15, 100, 4 , 8 },
{ 27, 100, 3 , 10 },
{ 38, 100, 4 , 8 },
{ 50, 100, 5 , 8 },
{ 63, 100, 7 , 8 },
{ 78, 100, 4 , 8 },
{ 90, 100, 4 , 11 },
{ 102, 100, 4 , 8 },
{ 114, 100, 4 , 12 },
{ 126, 100, 1 , 10 },
{ 135, 100, 4 , 12 },
{ 147, 100, 4 , 2 },
};
// Font characters info data
// NOTE: No chars.image data provided
static const GlyphInfo ashesFontChars[95] = {
{ 32, 0, 13, 4, { 0 }},
{ 33, 0, 3, 4, { 0 }},
{ 34, 0, 1, 5, { 0 }},
{ 35, 0, 4, 8, { 0 }},
{ 36, 0, 2, 7, { 0 }},
{ 37, 0, 5, 9, { 0 }},
{ 38, 0, 4, 8, { 0 }},
{ 39, 0, 1, 3, { 0 }},
{ 40, 0, 2, 5, { 0 }},
{ 41, 0, 2, 5, { 0 }},
{ 42, 0, 3, 7, { 0 }},
{ 43, 0, 6, 7, { 0 }},
{ 44, 0, 12, 4, { 0 }},
{ 45, 0, 9, 5, { 0 }},
{ 46, 0, 12, 3, { 0 }},
{ 47, 0, 3, 7, { 0 }},
{ 48, 0, 5, 6, { 0 }},
{ 49, 0, 5, 4, { 0 }},
{ 50, 0, 5, 6, { 0 }},
{ 51, 0, 5, 6, { 0 }},
{ 52, 0, 5, 8, { 0 }},
{ 53, 0, 5, 6, { 0 }},
{ 54, 0, 5, 6, { 0 }},
{ 55, 0, 5, 6, { 0 }},
{ 56, 0, 5, 6, { 0 }},
{ 57, 0, 5, 6, { 0 }},
{ 58, 0, 8, 3, { 0 }},
{ 59, 0, 8, 4, { 0 }},
{ 60, 0, 5, 6, { 0 }},
{ 61, 0, 7, 7, { 0 }},
{ 62, 0, 5, 6, { 0 }},
{ 63, 1, 3, 7, { 0 }},
{ 64, 0, 5, 10, { 0 }},
{ 65, 0, 3, 6, { 0 }},
{ 66, 0, 3, 6, { 0 }},
{ 67, 0, 3, 6, { 0 }},
{ 68, 0, 3, 6, { 0 }},
{ 69, 0, 3, 6, { 0 }},
{ 70, 0, 3, 6, { 0 }},
{ 71, 0, 3, 6, { 0 }},
{ 72, 0, 3, 6, { 0 }},
{ 73, 0, 3, 3, { 0 }},
{ 74, 0, 3, 5, { 0 }},
{ 75, 0, 3, 6, { 0 }},
{ 76, 0, 3, 6, { 0 }},
{ 77, 0, 3, 9, { 0 }},
{ 78, 0, 3, 6, { 0 }},
{ 79, 0, 3, 6, { 0 }},
{ 80, 0, 3, 6, { 0 }},
{ 81, 0, 3, 7, { 0 }},
{ 82, 0, 3, 6, { 0 }},
{ 83, 0, 3, 6, { 0 }},
{ 84, 0, 3, 6, { 0 }},
{ 85, 0, 3, 6, { 0 }},
{ 86, 0, 3, 6, { 0 }},
{ 87, 0, 3, 9, { 0 }},
{ 88, 0, 3, 6, { 0 }},
{ 89, 0, 3, 6, { 0 }},
{ 90, 0, 3, 6, { 0 }},
{ 91, 0, 2, 4, { 0 }},
{ 92, 0, 3, 7, { 0 }},
{ 93, 0, 2, 4, { 0 }},
{ 94, 0, 3, 7, { 0 }},
{ 95, 0, 12, 7, { 0 }},
{ 96, 0, 1, 4, { 0 }},
{ 97, 0, 5, 6, { 0 }},
{ 98, 0, 3, 6, { 0 }},
{ 99, 0, 5, 5, { 0 }},
{ 100, 0, 3, 6, { 0 }},
{ 101, 0, 5, 6, { 0 }},
{ 102, 0, 3, 5, { 0 }},
{ 103, 0, 5, 6, { 0 }},
{ 104, 0, 3, 6, { 0 }},
{ 105, 0, 3, 3, { 0 }},
{ 106, 0, 3, 5, { 0 }},
{ 107, 0, 3, 6, { 0 }},
{ 108, 0, 3, 4, { 0 }},
{ 109, 0, 5, 9, { 0 }},
{ 110, 0, 5, 6, { 0 }},
{ 111, 0, 5, 6, { 0 }},
{ 112, 0, 5, 6, { 0 }},
{ 113, 0, 5, 6, { 0 }},
{ 114, 0, 5, 5, { 0 }},
{ 115, 0, 5, 6, { 0 }},
{ 116, 0, 3, 5, { 0 }},
{ 117, 0, 5, 6, { 0 }},
{ 118, 0, 5, 7, { 0 }},
{ 119, 0, 5, 9, { 0 }},
{ 120, 0, 5, 6, { 0 }},
{ 121, 0, 5, 6, { 0 }},
{ 122, 0, 5, 6, { 0 }},
{ 123, 0, 2, 6, { 0 }},
{ 124, 0, 3, 3, { 0 }},
{ 125, 0, 2, 6, { 0 }},
{ 126, 0, 1, 6, { 0 }},
};
// Style loading function: ashes
static void GuiLoadStyleAshes(void)
{
// Load style properties provided
// NOTE: Default properties are propagated
for (int i = 0; i < ASHES_STYLE_PROPS_COUNT; i++)
{
GuiSetStyle(ashesStyleProps[i].controlId, ashesStyleProps[i].propertyId, ashesStyleProps[i].propertyValue);
}
// Custom font loading
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
int ashesFontDataSize = 0;
unsigned char *data = DecompressData(ashesFontData, ASHES_COMPRESSED_DATA_SIZE, &ashesFontDataSize);
Image imFont = { data, 256, 256, 1, 2 };
Font font = { 0 };
font.baseSize = 16;
font.glyphCount = 95;
// Load texture from image
font.texture = LoadTextureFromImage(imFont);
UnloadImage(imFont); // Uncompressed data can be unloaded from memory
// Copy char recs data from global fontRecs
// NOTE: Required to avoid issues if trying to free font
font.recs = (Rectangle *)malloc(font.glyphCount*sizeof(Rectangle));
memcpy(font.recs, ashesFontRecs, font.glyphCount*sizeof(Rectangle));
// Copy font char info data from global fontChars
// NOTE: Required to avoid issues if trying to free font
font.glyphs = (GlyphInfo *)malloc(font.glyphCount*sizeof(GlyphInfo));
memcpy(font.glyphs, ashesFontChars, font.glyphCount*sizeof(GlyphInfo));
GuiSetFont(font);
// Setup a white rectangle on the font to be used on shapes drawing,
// this way we make sure all gui can be drawn on a single pass because no texture change is required
// NOTE: Setting up this rectangle is a manual process (for the moment)
Rectangle whiteChar = { 37, 6, 1, 1 };
SetShapesTexture(font.texture, whiteChar);
//-----------------------------------------------------------------
// TODO: Custom user style setup: Set specific properties here (if required)
// i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT
}

Binary file not shown.

View File

@ -1,24 +0,0 @@
#
# rgs style text file (v3.1) - raygui style file generated using rGuiStyler
#
# Style properties:
# f <gen_font_size> <charmap_file> <font_file>
# p <control_id> <property_id> <property_value> <property_name>
#
f 16 0 v5loxical.ttf
p 00 00 0xf0f0f0ff DEFAULT_BORDER_COLOR_NORMAL
p 00 01 0x868686ff DEFAULT_BASE_COLOR_NORMAL
p 00 02 0xe6e6e6ff DEFAULT_TEXT_COLOR_NORMAL
p 00 03 0x929999ff DEFAULT_BORDER_COLOR_FOCUSED
p 00 04 0xeaeaeaff DEFAULT_BASE_COLOR_FOCUSED
p 00 05 0x98a1a8ff DEFAULT_TEXT_COLOR_FOCUSED
p 00 06 0x3f3f3fff DEFAULT_BORDER_COLOR_PRESSED
p 00 07 0xf6f6f6ff DEFAULT_BASE_COLOR_PRESSED
p 00 08 0x414141ff DEFAULT_TEXT_COLOR_PRESSED
p 00 09 0x8b8b8bff DEFAULT_BORDER_COLOR_DISABLED
p 00 10 0x777777ff DEFAULT_BASE_COLOR_DISABLED
p 00 11 0x959595ff DEFAULT_TEXT_COLOR_DISABLED
p 00 16 0x00000010 TEXT_SIZE
p 00 17 0x00000001 TEXT_SPACING
p 00 18 0x9dadb1ff DEFAULT_LINE_COLOR
p 00 19 0x6b6b6bff DEFAULT_BACKGROUND_COLOR

1
styles/ashes/charset.txt Normal file
View File

@ -0,0 +1 @@
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£€¥Š§š©ª«¬®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 124 KiB

565
styles/ashes/style_ashes.h Normal file
View File

@ -0,0 +1,565 @@
//////////////////////////////////////////////////////////////////////////////////
// //
// StyleAsCode exporter v2.0 - Style data exported as a values array //
// //
// USAGE: On init call: GuiLoadStyleAshes(); //
// //
// more info and bugs-report: github.com/raysan5/raygui //
// feedback and support: ray[at]raylibtech.com //
// //
// Copyright (c) 2020-2025 raylib technologies (@raylibtech) //
// //
//////////////////////////////////////////////////////////////////////////////////
#define ASHES_STYLE_PROPS_COUNT 16
// Custom style name: Ashes
static const GuiStyleProp ashesStyleProps[ASHES_STYLE_PROPS_COUNT] = {
{ 0, 0, (int)0xf0f0f0ff }, // DEFAULT_BORDER_COLOR_NORMAL
{ 0, 1, (int)0x868686ff }, // DEFAULT_BASE_COLOR_NORMAL
{ 0, 2, (int)0xe6e6e6ff }, // DEFAULT_TEXT_COLOR_NORMAL
{ 0, 3, (int)0x929999ff }, // DEFAULT_BORDER_COLOR_FOCUSED
{ 0, 4, (int)0xeaeaeaff }, // DEFAULT_BASE_COLOR_FOCUSED
{ 0, 5, (int)0x98a1a8ff }, // DEFAULT_TEXT_COLOR_FOCUSED
{ 0, 6, (int)0x3f3f3fff }, // DEFAULT_BORDER_COLOR_PRESSED
{ 0, 7, (int)0xf6f6f6ff }, // DEFAULT_BASE_COLOR_PRESSED
{ 0, 8, (int)0x414141ff }, // DEFAULT_TEXT_COLOR_PRESSED
{ 0, 9, (int)0x8b8b8bff }, // DEFAULT_BORDER_COLOR_DISABLED
{ 0, 10, (int)0x777777ff }, // DEFAULT_BASE_COLOR_DISABLED
{ 0, 11, (int)0x959595ff }, // DEFAULT_TEXT_COLOR_DISABLED
{ 0, 16, (int)0x00000010 }, // DEFAULT_TEXT_SIZE
{ 0, 18, (int)0x9dadb1ff }, // DEFAULT_LINE_COLOR
{ 0, 19, (int)0x6b6b6bff }, // DEFAULT_BACKGROUND_COLOR
{ 0, 20, (int)0x00000018 }, // DEFAULT_TEXT_LINE_SPACING
};
// WARNING: This style uses a custom font: "v5loxical.ttf" (size: 16, spacing: 1)
#define ASHES_STYLE_FONT_ATLAS_COMP_SIZE 1800
// Font atlas image pixels data: DEFLATE compressed
static unsigned char ashesFontData[ASHES_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed,
0x9d, 0x51, 0xb6, 0xa4, 0x36, 0x0c, 0x44, 0xbd, 0xff, 0x4d, 0x57, 0xbe, 0x72, 0x32, 0xc9, 0x49, 0x83, 0x25, 0x97, 0xb0,
0x0c, 0x77, 0xee, 0x5f, 0xbf, 0x1e, 0x1a, 0x5c, 0xc8, 0x06, 0xbb, 0x24, 0x6b, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x07, 0xfd,
0xef, 0x27, 0xfa, 0xf9, 0x4d, 0x4d, 0x1f, 0xe7, 0xdf, 0x9f, 0xeb, 0xc7, 0x5f, 0x63, 0xc7, 0xd3, 0xf4, 0xef, 0x66, 0xfe,
0xa2, 0xff, 0x3d, 0x3f, 0x2d, 0xff, 0xaa, 0xa6, 0xaf, 0xe6, 0xea, 0xbb, 0x57, 0xbf, 0xa9, 0xa6, 0xfa, 0xeb, 0xe2, 0x78,
0xd7, 0x47, 0xd4, 0xc2, 0x3d, 0x31, 0xf7, 0xbb, 0xf3, 0x9a, 0xae, 0xb7, 0xe7, 0xaf, 0x7b, 0x6b, 0xfe, 0xbb, 0xf7, 0x6d,
0x5c, 0xab, 0xff, 0x9f, 0xff, 0xc6, 0x8f, 0xbf, 0xe6, 0x34, 0xae, 0x89, 0xf4, 0xeb, 0x33, 0x95, 0x49, 0xed, 0xf9, 0xbb,
0x56, 0x4b, 0xfd, 0x50, 0xe6, 0xe8, 0xf9, 0x33, 0x1e, 0x41, 0xb5, 0x74, 0x73, 0x17, 0x2a, 0x7c, 0xc4, 0xd5, 0xfe, 0x3c,
0x13, 0xff, 0x5d, 0xf4, 0xcf, 0xdd, 0xcd, 0x6a, 0xa0, 0x7f, 0x46, 0x39, 0x19, 0xce, 0x54, 0xa6, 0xf1, 0xbf, 0x42, 0xfd,
0xa8, 0xfe, 0x32, 0xb6, 0x80, 0x53, 0xff, 0x6c, 0xff, 0x9f, 0xe9, 0xff, 0x46, 0x13, 0x3d, 0x9f, 0xd7, 0x5f, 0x8f, 0xb7,
0x80, 0x23, 0xfe, 0xc7, 0x6d, 0x6f, 0xab, 0x9b, 0xa7, 0x1a, 0xbd, 0x40, 0x7f, 0xc7, 0xfd, 0x9f, 0x1d, 0x29, 0xfb, 0x8e,
0xff, 0x9a, 0xe8, 0xeb, 0xf4, 0x8a, 0xf8, 0x8f, 0x8f, 0x72, 0xf3, 0xef, 0x9b, 0x77, 0x23, 0xa5, 0xb6, 0x5f, 0x7b, 0xee,
0x09, 0xe4, 0xef, 0xff, 0x77, 0x7e, 0xfc, 0x77, 0x19, 0x83, 0x76, 0x9d, 0xb7, 0xb6, 0xc6, 0x17, 0xfa, 0x7f, 0xe1, 0xfa,
0x45, 0xcb, 0x73, 0x97, 0xa1, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xca, 0x59,
0x10, 0x77, 0x22, 0x68, 0xd9, 0xe3, 0xe6, 0xf1, 0xdf, 0x2b, 0xdc, 0x02, 0x19, 0xdf, 0xfd, 0xaf, 0xf3, 0x8a, 0x7d, 0x7f,
0x84, 0x3d, 0x75, 0x4a, 0xae, 0x83, 0x29, 0xed, 0xea, 0x5a, 0x77, 0xa8, 0x57, 0xac, 0x20, 0xe7, 0xbd, 0x76, 0x11, 0x8f,
0xae, 0x4c, 0x3e, 0x2d, 0x99, 0x73, 0x54, 0xdc, 0xfa, 0x8f, 0xed, 0xfa, 0xab, 0xd4, 0x0f, 0xa2, 0x1b, 0xbf, 0xd9, 0x17,
0xf4, 0xcf, 0x3a, 0x77, 0x23, 0xfd, 0xbc, 0xec, 0xde, 0xc9, 0xf8, 0xf9, 0xdd, 0xe7, 0x03, 0x7c, 0x51, 0xff, 0x11, 0x8e,
0xdb, 0x78, 0x0f, 0x3b, 0x3b, 0x52, 0x6b, 0x63, 0xfc, 0x5f, 0x8d, 0xdb, 0x0a, 0x44, 0x4d, 0x54, 0x9d, 0xd8, 0xef, 0xfe,
0x73, 0xae, 0xeb, 0x4f, 0x44, 0x4f, 0xe9, 0x3f, 0x16, 0x7d, 0x9c, 0xb2, 0xf5, 0x18, 0xd9, 0x71, 0xae, 0x5f, 0xfc, 0xbb,
0x9f, 0xff, 0xea, 0xf4, 0x97, 0xc1, 0x8d, 0xa5, 0x52, 0x2f, 0x68, 0x26, 0x47, 0xe5, 0x3d, 0xfa, 0x67, 0xde, 0x70, 0x3c,
0xc7, 0x39, 0xc1, 0x87, 0xfa, 0x05, 0xfd, 0x01, 0xfd, 0xf1, 0xa1, 0x67, 0x9e, 0xdb, 0xea, 0xe6, 0x7f, 0x14, 0xee, 0xaf,
0xd1, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0xeb, 0xdb, 0xd9, 0x2a,
0xe0, 0x8e, 0xef, 0x67, 0x7f, 0x41, 0x36, 0xc7, 0xa7, 0xcf, 0x3f, 0xfa, 0x7b, 0xfd, 0xd8, 0x91, 0xeb, 0x50, 0xa7, 0xff,
0xb0, 0xbb, 0x68, 0xe3, 0x9e, 0xb4, 0x78, 0x7d, 0xfc, 0xd1, 0x4c, 0xff, 0x11, 0x68, 0x77, 0x15, 0xe6, 0x4c, 0xa0, 0x7f,
0x7f, 0xfd, 0x7d, 0x95, 0x2f, 0xdf, 0xae, 0xff, 0x38, 0x4a, 0xff, 0xb5, 0x1d, 0x01, 0x5c, 0xfa, 0xe7, 0xfd, 0xed, 0xae,
0x51, 0x70, 0x3d, 0xc7, 0x60, 0xa4, 0x77, 0x12, 0x72, 0xe9, 0x3f, 0x12, 0x79, 0x7f, 0x0e, 0x6f, 0xfc, 0x1b, 0xe2, 0x7f,
0x18, 0xe2, 0x7f, 0x34, 0xed, 0xff, 0x87, 0xc9, 0x0f, 0x8a, 0xfe, 0xdf, 0xd6, 0xdf, 0x53, 0xfb, 0xf8, 0xbd, 0xfa, 0x77,
0x7d, 0xfe, 0x43, 0xff, 0x13, 0xf5, 0x97, 0xed, 0xca, 0x7d, 0xfa, 0xaf, 0x66, 0x4d, 0x7a, 0x9e, 0xb4, 0x94, 0x7e, 0x6e,
0x57, 0x38, 0x57, 0x2b, 0x9e, 0x7d, 0xea, 0xc8, 0x14, 0xbc, 0xab, 0x10, 0x11, 0x9b, 0x4d, 0x8a, 0x56, 0xd7, 0xa8, 0xd3,
0xff, 0xcc, 0x8a, 0x25, 0xcc, 0xd0, 0x56, 0x64, 0xbb, 0xc0, 0x3b, 0xee, 0xf9, 0x2f, 0x46, 0x08, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0xad, 0x84, 0xc7, 0x56, 0x23, 0x5d, 0x6b, 0xb9, 0xc3, 0xb2, 0xbb, 0x80,
0x0c, 0xeb, 0xeb, 0x6b, 0xff, 0x5f, 0x7f, 0xac, 0x0c, 0xbb, 0x72, 0x1c, 0x1c, 0x9f, 0xcf, 0x3a, 0x1b, 0x32, 0xeb, 0x8b,
0x55, 0x8e, 0x06, 0x25, 0x7c, 0xd1, 0x15, 0xeb, 0xe2, 0x0a, 0xaf, 0xc1, 0xef, 0xf2, 0x44, 0x2b, 0x78, 0x45, 0xb2, 0xac,
0x51, 0x3a, 0x9c, 0xc4, 0x5a, 0x76, 0x0a, 0xc7, 0x7d, 0xc2, 0x2a, 0xb8, 0x0f, 0xcf, 0xd0, 0xdf, 0x3b, 0x86, 0x54, 0x45,
0xae, 0x37, 0xfe, 0xb5, 0xa0, 0x7f, 0x74, 0x37, 0x1b, 0xf4, 0xf7, 0xe8, 0x1f, 0x7b, 0x12, 0xa9, 0xd3, 0x9f, 0xf8, 0xdf,
0x17, 0xff, 0xab, 0x1e, 0x3e, 0xf4, 0xff, 0x86, 0xfe, 0x32, 0xd5, 0xe1, 0x46, 0xff, 0x75, 0x8f, 0x5a, 0xcc, 0x01, 0xeb,
0x72, 0x0a, 0xf7, 0x89, 0xff, 0x61, 0xf3, 0x44, 0xfb, 0x2a, 0x88, 0x77, 0xe8, 0x17, 0x1c, 0xdf, 0xee, 0x3d, 0xfe, 0x3f,
0xe9, 0x00, 0xee, 0xec, 0xf7, 0xac, 0xf4, 0xae, 0x76, 0xd1, 0xbf, 0x5e, 0x81, 0x73, 0xf5, 0x3f, 0x37, 0x47, 0xa0, 0x53,
0xab, 0xa2, 0x7f, 0xff, 0xac, 0x0b, 0xa0, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8,
0x3c, 0xd3, 0x9d, 0xf3, 0x4f, 0xc8, 0xe4, 0x82, 0x88, 0xfa, 0x00, 0xc7, 0x74, 0x8d, 0x7c, 0xa5, 0x9c, 0xc7, 0xab, 0xbe,
0x93, 0xbb, 0x56, 0x96, 0x71, 0x45, 0x42, 0x97, 0xad, 0x54, 0xeb, 0xcf, 0xda, 0x55, 0x1f, 0x3d, 0x53, 0xe3, 0x71, 0x25,
0x0b, 0xc2, 0xed, 0x3b, 0x90, 0xcd, 0x19, 0xa3, 0xe0, 0xfa, 0xa5, 0xcb, 0x87, 0x9f, 0xd3, 0x3f, 0xee, 0x1a, 0xab, 0xfb,
0xd4, 0x91, 0x8b, 0x94, 0xcd, 0x1b, 0x91, 0x6d, 0x2d, 0x5a, 0x97, 0xf9, 0x4f, 0xbb, 0xfa, 0xff, 0xea, 0xfa, 0xf8, 0x4f,
0xea, 0x1f, 0xf7, 0x00, 0x5d, 0x8f, 0x5a, 0x6b, 0x3a, 0x5d, 0x1d, 0x4f, 0xcb, 0x57, 0xd9, 0x4f, 0x7f, 0x5f, 0x8d, 0x6f,
0x6f, 0xcb, 0xdc, 0xab, 0xbc, 0x16, 0xd9, 0x91, 0xfe, 0x5f, 0xe1, 0xfe, 0xdf, 0x93, 0x59, 0x51, 0xef, 0x82, 0x7e, 0x7e,
0x7f, 0x04, 0x19, 0x7a, 0xf9, 0xbb, 0x2c, 0x58, 0xa1, 0x7f, 0x59, 0x1e, 0x48, 0x07, 0xfd, 0xaf, 0x9f, 0xc7, 0x65, 0x75,
0x24, 0xd5, 0x8e, 0xff, 0xf9, 0x7a, 0xda, 0xae, 0x3a, 0xe3, 0x8e, 0x7d, 0x53, 0x6a, 0xfa, 0xff, 0xda, 0xf8, 0x1f, 0x45,
0xcf, 0xff, 0x9d, 0xbd, 0x8f, 0x2e, 0x27, 0xf8, 0xb3, 0xcf, 0x7f, 0x9e, 0xf7, 0x99, 0x7c, 0x66, 0x44, 0xec, 0xfd, 0xbf,
0xb3, 0x03, 0xb2, 0xa7, 0xfe, 0xf1, 0x3d, 0x25, 0x73, 0xfd, 0xe6, 0xb7, 0x1d, 0xa9, 0xeb, 0x7b, 0x58, 0x56, 0xf6, 0x6d,
0x78, 0x83, 0x4f, 0xbd, 0x63, 0xde, 0x97, 0x19, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0xf3, 0xc8, 0xac, 0xae, 0x38, 0x2b, 0x51, 0x01, 0xdc, 0xb7, 0x6e, 0x73, 0xe7, 0x2f, 0xd1, 0x42, 0x2d, 0xb7, 0x4c,
0x1d, 0xe8, 0x2b, 0x77, 0x8c, 0x82, 0xde, 0x19, 0xdf, 0xba, 0x94, 0x16, 0xd5, 0xcf, 0xfa, 0xaa, 0x64, 0x73, 0xd1, 0x64,
0xdc, 0x6d, 0x0a, 0xd6, 0x88, 0x9f, 0xcb, 0x36, 0xf1, 0xf9, 0x42, 0xee, 0xbd, 0xf3, 0x75, 0xeb, 0xa6, 0x0a, 0xc6, 0x81,
0x42, 0x8e, 0xb3, 0xdf, 0x6d, 0xb5, 0x1e, 0x95, 0xeb, 0xfa, 0xe7, 0xe3, 0x5f, 0xb6, 0xba, 0xf6, 0x59, 0xfd, 0x73, 0x11,
0xb2, 0x1e, 0xff, 0x4a, 0x65, 0xd0, 0x54, 0x79, 0x76, 0x56, 0xf5, 0x1f, 0x66, 0xfd, 0x9f, 0x8b, 0x7f, 0x6d, 0x18, 0xff,
0xff, 0x1c, 0xa1, 0x64, 0xfb, 0xdd, 0x35, 0x9f, 0xe4, 0x1e, 0xfd, 0xb3, 0xde, 0x3f, 0xdd, 0xb8, 0x63, 0xf5, 0xa8, 0xb7,
0x25, 0xdb, 0x83, 0xa8, 0xa1, 0x2f, 0xe6, 0x2e, 0xef, 0xac, 0x87, 0xc3, 0x71, 0xfd, 0x09, 0x7c, 0xa5, 0x87, 0x5c, 0xbd,
0x6b, 0x9c, 0xfa, 0xbb, 0xbc, 0xab, 0xb3, 0xb1, 0x87, 0xfe, 0xde, 0xf7, 0xc7, 0x7e, 0xf1, 0x7f, 0xed, 0xbb, 0xed, 0xad,
0x7f, 0xec, 0xfd, 0x4f, 0x9b, 0x5b, 0xb9, 0xa3, 0x3f, 0x59, 0xa9, 0x27, 0xd0, 0x3e, 0xfa, 0xef, 0x3a, 0xd6, 0xdb, 0xe7,
0xb6, 0xba, 0xe8, 0x7f, 0x37, 0xff, 0x73, 0x5a, 0xc6, 0xc6, 0x49, 0xfa, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x71, 0x8d, 0x74, 0x76, 0x95, 0x51, 0x41, 0x27, 0xf1, 0x75, 0xa5, 0xb4, 0xeb, 0x7c,
0x82, 0xaa, 0xab, 0x58, 0xdd, 0x1f, 0x3e, 0x5a, 0x1b, 0x55, 0x41, 0xb7, 0xa3, 0x4b, 0xab, 0xbc, 0x13, 0x53, 0x26, 0xef,
0xab, 0xaf, 0xf2, 0xbf, 0xfb, 0x2a, 0x66, 0x75, 0x55, 0xc0, 0xd5, 0xee, 0x69, 0x4b, 0xd7, 0x55, 0xf6, 0xf1, 0x66, 0x0d,
0xa3, 0xfe, 0xa7, 0xf6, 0xbc, 0xfb, 0x3d, 0x48, 0x6a, 0xf4, 0x79, 0x56, 0xff, 0xf8, 0x78, 0xb1, 0x3a, 0xbe, 0xac, 0xef,
0x38, 0xa2, 0xcb, 0x2c, 0x98, 0xca, 0xb6, 0xf7, 0xf7, 0xcf, 0xbe, 0xcf, 0x65, 0xcb, 0x19, 0x74, 0xd6, 0x05, 0xf7, 0xeb,
0xbf, 0xaf, 0x8d, 0x7b, 0xeb, 0xbf, 0x53, 0x67, 0xf4, 0x47, 0xff, 0xaf, 0xe9, 0x1f, 0xab, 0xb4, 0x5f, 0xff, 0x79, 0x4e,
0xb7, 0xda, 0xd1, 0x9f, 0xf8, 0x27, 0xfe, 0xd1, 0xff, 0xc9, 0xcf, 0x63, 0x11, 0x7a, 0xaa, 0xfe, 0x2a, 0x9d, 0x33, 0x39,
0x51, 0x7f, 0x5f, 0xde, 0x6d, 0x7f, 0xfd, 0x77, 0x69, 0x72, 0xb6, 0xfe, 0xe3, 0x35, 0xf1, 0x8f, 0xfe, 0xbe, 0x7a, 0x05,
0xe7, 0xcd, 0xff, 0xe4, 0xb3, 0xd6, 0x9d, 0xf3, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0,
0x5e, 0xff, 0xbf, 0xc2, 0xf3, 0xf6, 0x19, 0x27, 0x7a, 0xa5, 0x3f, 0x7f, 0x7e, 0x96, 0x5d, 0xa9, 0x19, 0xfa, 0xbd, 0x79,
0x10, 0xb3, 0xd7, 0x91, 0x5d, 0x4d, 0x89, 0xd7, 0xac, 0x8e, 0xfa, 0x70, 0xea, 0xfd, 0xf9, 0x91, 0xbd, 0x0a, 0x1c, 0xfb,
0x0e, 0x54, 0xe7, 0x41, 0x64, 0xf2, 0x51, 0x9e, 0xf2, 0x92, 0x5f, 0x57, 0x54, 0xed, 0xbc, 0xe2, 0x94, 0xe9, 0x3f, 0xb4,
0xd1, 0x7f, 0x1f, 0xd5, 0x3f, 0xb7, 0x03, 0x80, 0xc2, 0x3d, 0xa5, 0xc2, 0xeb, 0x96, 0x3d, 0x56, 0x93, 0xcf, 0xa9, 0x91,
0xaa, 0x54, 0xfc, 0xfb, 0x22, 0x22, 0x33, 0xfe, 0x9f, 0xa1, 0xbf, 0x8e, 0xca, 0x83, 0x89, 0xfa, 0xdd, 0x54, 0xac, 0x7f,
0xd6, 0xb7, 0x70, 0x46, 0xfc, 0xf7, 0xf1, 0x9d, 0xe6, 0x47, 0x2a, 0xa1, 0xff, 0xad, 0xbe, 0xda, 0xe2, 0x20, 0x8a, 0x3b,
0x5a, 0xd1, 0x3f, 0xf2, 0x16, 0xb5, 0xa2, 0x7f, 0x3f, 0x1f, 0x5c, 0xf6, 0xfd, 0xef, 0x9b, 0xfa, 0xaf, 0xc6, 0xff, 0x69,
0x3e, 0xc8, 0xd8, 0x5e, 0x8b, 0x4f, 0xe9, 0xaf, 0x03, 0xf4, 0x57, 0xab, 0x11, 0xca, 0xe9, 0x83, 0xd5, 0x03, 0xcf, 0xff,
0xf1, 0x99, 0xc4, 0x8e, 0xf1, 0x7f, 0xbe, 0xfe, 0x4f, 0xec, 0x90, 0xe8, 0xd9, 0xcf, 0xed, 0x0c, 0xfd, 0xbb, 0xbd, 0xff,
0x79, 0xe7, 0x92, 0x9c, 0xf3, 0x3f, 0x67, 0x55, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0x72, 0x0e, 0xc0, 0xaa, 0x03, 0x5f, 0xcb, 0x2b, 0x55, 0x0a, 0x38, 0xf8, 0xd5, 0xc8, 0xbf, 0x3f, 0x26, 0x6b, 0x2c,
0x57, 0x9c, 0xad, 0xa7, 0x5a, 0x7a, 0x55, 0x85, 0xfc, 0x61, 0xa9, 0x92, 0x1f, 0x73, 0x1f, 0x3f, 0xed, 0xdf, 0x5f, 0x5b,
0x11, 0xdf, 0x9d, 0x0f, 0x51, 0xe1, 0x25, 0x7e, 0x3e, 0x1f, 0x61, 0xa7, 0x7f, 0xff, 0xae, 0x5a, 0xb9, 0x36, 0x65, 0x1b,
0xb0, 0x1a, 0xda, 0x3d, 0xdb, 0xa4, 0x53, 0xfe, 0x9f, 0x67, 0xa5, 0x7d, 0x35, 0x4f, 0x49, 0x8b, 0x3d, 0xea, 0x2e, 0x87,
0x81, 0x8e, 0xf5, 0x43, 0x7b, 0x8f, 0xfc, 0x8c, 0xfe, 0xe7, 0xf8, 0xb4, 0xd0, 0x1f, 0xfd, 0xd1, 0xff, 0xcb, 0xfa, 0xeb,
0x00, 0xfd, 0x3d, 0xfb, 0x36, 0xa0, 0x7f, 0x27, 0x3f, 0x74, 0x34, 0xfe, 0x87, 0x25, 0xc3, 0x1c, 0xfd, 0xbb, 0xf8, 0xa1,
0xd1, 0xbf, 0x4f, 0x9e, 0x46, 0x6f, 0xfd, 0xcf, 0x7b, 0xff, 0x1b, 0xc5, 0xb5, 0xd1, 0xdf, 0xe3, 0x87, 0x67, 0x0e, 0x88,
0xf9, 0x27, 0x40, 0x7f, 0xf8, 0xa2, 0xf6, 0xa8, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0x7a, 0x16,
0x01, 0xfd, 0x01, 0x00, 0x80, 0xfe, 0x1f, 0xd0, 0x1f, 0xd0, 0x1f, 0xd0, 0x1f, 0xd0, 0x1f, 0xd0, 0x1f, 0xd0, 0x1f, 0xb2,
0x15, 0x0d, 0x68, 0x07, 0x7a, 0x01, 0x40, 0x7f, 0xc0, 0x39, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xbb, 0x01, 0xfd, 0x61, 0xab, 0xfe, 0x7f, 0x01 };
// Font glyphs rectangles data (on atlas)
static const Rectangle ashesFontRecs[189] = {
{ 4, 4, 4 , 16 },
{ 16, 4, 1 , 10 },
{ 25, 4, 3 , 3 },
{ 36, 4, 6 , 8 },
{ 50, 4, 5 , 11 },
{ 63, 4, 7 , 8 },
{ 78, 4, 6 , 9 },
{ 92, 4, 1 , 3 },
{ 101, 4, 3 , 12 },
{ 112, 4, 3 , 12 },
{ 123, 4, 5 , 5 },
{ 136, 4, 5 , 5 },
{ 149, 4, 2 , 2 },
{ 159, 4, 4 , 1 },
{ 171, 4, 1 , 1 },
{ 180, 4, 5 , 10 },
{ 193, 4, 4 , 8 },
{ 205, 4, 2 , 8 },
{ 215, 4, 4 , 8 },
{ 227, 4, 4 , 8 },
{ 239, 4, 6 , 8 },
{ 4, 28, 4 , 8 },
{ 16, 28, 4 , 8 },
{ 28, 28, 4 , 8 },
{ 40, 28, 4 , 8 },
{ 52, 28, 4 , 8 },
{ 64, 28, 1 , 5 },
{ 73, 28, 2 , 6 },
{ 83, 28, 4 , 7 },
{ 95, 28, 4 , 4 },
{ 107, 28, 4 , 7 },
{ 119, 28, 4 , 10 },
{ 131, 28, 8 , 7 },
{ 147, 28, 4 , 10 },
{ 159, 28, 4 , 10 },
{ 171, 28, 4 , 10 },
{ 183, 28, 4 , 10 },
{ 195, 28, 4 , 10 },
{ 207, 28, 5 , 10 },
{ 220, 28, 4 , 10 },
{ 232, 28, 4 , 10 },
{ 244, 28, 1 , 10 },
{ 4, 52, 3 , 10 },
{ 15, 52, 4 , 10 },
{ 27, 52, 4 , 10 },
{ 39, 52, 7 , 10 },
{ 54, 52, 4 , 10 },
{ 66, 52, 4 , 10 },
{ 78, 52, 4 , 10 },
{ 90, 52, 5 , 11 },
{ 103, 52, 4 , 10 },
{ 115, 52, 4 , 10 },
{ 127, 52, 5 , 10 },
{ 140, 52, 4 , 10 },
{ 152, 52, 4 , 10 },
{ 164, 52, 7 , 10 },
{ 179, 52, 4 , 10 },
{ 191, 52, 4 , 10 },
{ 203, 52, 4 , 10 },
{ 215, 52, 2 , 12 },
{ 225, 52, 5 , 10 },
{ 238, 52, 2 , 12 },
{ 4, 76, 5 , 3 },
{ 17, 76, 5 , 1 },
{ 30, 76, 2 , 2 },
{ 40, 76, 4 , 8 },
{ 52, 76, 4 , 10 },
{ 64, 76, 3 , 8 },
{ 75, 76, 4 , 10 },
{ 87, 76, 4 , 8 },
{ 99, 76, 3 , 10 },
{ 110, 76, 5 , 11 },
{ 123, 76, 4 , 10 },
{ 135, 76, 1 , 10 },
{ 144, 76, 3 , 13 },
{ 155, 76, 4 , 10 },
{ 167, 76, 2 , 10 },
{ 177, 76, 7 , 8 },
{ 192, 76, 4 , 8 },
{ 204, 76, 4 , 8 },
{ 216, 76, 4 , 11 },
{ 228, 76, 4 , 11 },
{ 240, 76, 3 , 8 },
{ 4, 100, 4 , 8 },
{ 16, 100, 3 , 10 },
{ 27, 100, 4 , 8 },
{ 39, 100, 5 , 8 },
{ 52, 100, 7 , 8 },
{ 67, 100, 4 , 8 },
{ 79, 100, 4 , 11 },
{ 91, 100, 4 , 8 },
{ 103, 100, 4 , 12 },
{ 115, 100, 1 , 10 },
{ 124, 100, 4 , 12 },
{ 136, 100, 4 , 2 },
{ 148, 100, 1 , 10 },
{ 157, 100, 4 , 12 },
{ 169, 100, 5 , 10 },
{ 182, 100, 5 , 10 },
{ 195, 100, 5 , 10 },
{ 208, 100, 0 , 0 },
{ 216, 100, 4 , 10 },
{ 228, 100, 0 , 0 },
{ 236, 100, 7 , 9 },
{ 4, 124, 3 , 7 },
{ 15, 124, 6 , 5 },
{ 29, 124, 0 , 0 },
{ 37, 124, 7 , 9 },
{ 52, 124, 4 , 1 },
{ 64, 124, 3 , 5 },
{ 75, 124, 5 , 7 },
{ 88, 124, 3 , 5 },
{ 99, 124, 0 , 0 },
{ 107, 124, 0 , 0 },
{ 115, 124, 4 , 11 },
{ 127, 124, 6 , 10 },
{ 141, 124, 3 , 3 },
{ 152, 124, 0 , 0 },
{ 160, 124, 2 , 5 },
{ 170, 124, 3 , 5 },
{ 181, 124, 6 , 5 },
{ 195, 124, 7 , 10 },
{ 210, 124, 7 , 8 },
{ 225, 124, 0 , 0 },
{ 233, 124, 4 , 10 },
{ 4, 148, 4 , 13 },
{ 16, 148, 4 , 13 },
{ 28, 148, 4 , 13 },
{ 40, 148, 4 , 13 },
{ 52, 148, 4 , 13 },
{ 64, 148, 4 , 13 },
{ 76, 148, 7 , 10 },
{ 91, 148, 4 , 13 },
{ 103, 148, 4 , 13 },
{ 115, 148, 4 , 13 },
{ 127, 148, 4 , 13 },
{ 139, 148, 4 , 13 },
{ 151, 148, 2 , 13 },
{ 161, 148, 2 , 13 },
{ 171, 148, 3 , 13 },
{ 182, 148, 3 , 13 },
{ 193, 148, 5 , 10 },
{ 206, 148, 4 , 13 },
{ 218, 148, 4 , 13 },
{ 230, 148, 4 , 13 },
{ 242, 148, 4 , 13 },
{ 4, 172, 4 , 13 },
{ 16, 172, 4 , 13 },
{ 28, 172, 5 , 5 },
{ 41, 172, 6 , 12 },
{ 55, 172, 4 , 13 },
{ 67, 172, 4 , 13 },
{ 79, 172, 4 , 13 },
{ 91, 172, 4 , 13 },
{ 103, 172, 4 , 13 },
{ 115, 172, 0 , 0 },
{ 123, 172, 5 , 12 },
{ 136, 172, 4 , 12 },
{ 148, 172, 4 , 12 },
{ 160, 172, 4 , 12 },
{ 172, 172, 4 , 12 },
{ 184, 172, 4 , 12 },
{ 196, 172, 4 , 12 },
{ 208, 172, 7 , 8 },
{ 223, 172, 3 , 11 },
{ 234, 172, 4 , 12 },
{ 4, 196, 4 , 12 },
{ 16, 196, 4 , 12 },
{ 28, 196, 4 , 12 },
{ 40, 196, 3 , 12 },
{ 51, 196, 3 , 12 },
{ 62, 196, 3 , 12 },
{ 73, 196, 3 , 12 },
{ 84, 196, 0 , 0 },
{ 92, 196, 4 , 12 },
{ 104, 196, 4 , 12 },
{ 116, 196, 4 , 12 },
{ 128, 196, 4 , 12 },
{ 140, 196, 4 , 12 },
{ 152, 196, 4 , 12 },
{ 164, 196, 5 , 5 },
{ 177, 196, 6 , 10 },
{ 191, 196, 4 , 12 },
{ 203, 196, 4 , 12 },
{ 215, 196, 4 , 12 },
{ 227, 196, 4 , 12 },
{ 239, 196, 4 , 15 },
{ 4, 220, 0 , 0 },
{ 12, 220, 4 , 15 },
};
// Font glyphs info data
// NOTE: No glyphs.image data provided
static const GlyphInfo ashesFontGlyphs[189] = {
{ 32, 0, 0, 4, { 0 }},
{ 33, 0, 3, 4, { 0 }},
{ 34, 0, 1, 5, { 0 }},
{ 35, 0, 4, 8, { 0 }},
{ 36, 0, 2, 7, { 0 }},
{ 37, 0, 5, 9, { 0 }},
{ 38, 0, 4, 8, { 0 }},
{ 39, 0, 1, 3, { 0 }},
{ 40, 0, 2, 5, { 0 }},
{ 41, 0, 2, 5, { 0 }},
{ 42, 0, 3, 7, { 0 }},
{ 43, 0, 6, 7, { 0 }},
{ 44, 0, 12, 4, { 0 }},
{ 45, 0, 9, 5, { 0 }},
{ 46, 0, 12, 3, { 0 }},
{ 47, 0, 3, 7, { 0 }},
{ 48, 0, 5, 6, { 0 }},
{ 49, 0, 5, 4, { 0 }},
{ 50, 0, 5, 6, { 0 }},
{ 51, 0, 5, 6, { 0 }},
{ 52, 0, 5, 8, { 0 }},
{ 53, 0, 5, 6, { 0 }},
{ 54, 0, 5, 6, { 0 }},
{ 55, 0, 5, 6, { 0 }},
{ 56, 0, 5, 6, { 0 }},
{ 57, 0, 5, 6, { 0 }},
{ 58, 0, 8, 3, { 0 }},
{ 59, 0, 8, 4, { 0 }},
{ 60, 0, 5, 6, { 0 }},
{ 61, 0, 7, 7, { 0 }},
{ 62, 0, 5, 6, { 0 }},
{ 63, 1, 3, 7, { 0 }},
{ 64, 0, 5, 10, { 0 }},
{ 65, 0, 3, 6, { 0 }},
{ 66, 0, 3, 6, { 0 }},
{ 67, 0, 3, 6, { 0 }},
{ 68, 0, 3, 6, { 0 }},
{ 69, 0, 3, 6, { 0 }},
{ 70, 0, 3, 6, { 0 }},
{ 71, 0, 3, 6, { 0 }},
{ 72, 0, 3, 6, { 0 }},
{ 73, 0, 3, 3, { 0 }},
{ 74, 0, 3, 5, { 0 }},
{ 75, 0, 3, 6, { 0 }},
{ 76, 0, 3, 6, { 0 }},
{ 77, 0, 3, 9, { 0 }},
{ 78, 0, 3, 6, { 0 }},
{ 79, 0, 3, 6, { 0 }},
{ 80, 0, 3, 6, { 0 }},
{ 81, 0, 3, 7, { 0 }},
{ 82, 0, 3, 6, { 0 }},
{ 83, 0, 3, 6, { 0 }},
{ 84, 0, 3, 6, { 0 }},
{ 85, 0, 3, 6, { 0 }},
{ 86, 0, 3, 6, { 0 }},
{ 87, 0, 3, 9, { 0 }},
{ 88, 0, 3, 6, { 0 }},
{ 89, 0, 3, 6, { 0 }},
{ 90, 0, 3, 6, { 0 }},
{ 91, 0, 2, 4, { 0 }},
{ 92, 0, 3, 7, { 0 }},
{ 93, 0, 2, 4, { 0 }},
{ 94, 0, 3, 7, { 0 }},
{ 95, 0, 12, 7, { 0 }},
{ 96, 0, 1, 4, { 0 }},
{ 97, 0, 5, 6, { 0 }},
{ 98, 0, 3, 6, { 0 }},
{ 99, 0, 5, 5, { 0 }},
{ 100, 0, 3, 6, { 0 }},
{ 101, 0, 5, 6, { 0 }},
{ 102, 0, 3, 5, { 0 }},
{ 103, 0, 5, 6, { 0 }},
{ 104, 0, 3, 6, { 0 }},
{ 105, 0, 3, 3, { 0 }},
{ 106, 0, 3, 5, { 0 }},
{ 107, 0, 3, 6, { 0 }},
{ 108, 0, 3, 4, { 0 }},
{ 109, 0, 5, 9, { 0 }},
{ 110, 0, 5, 6, { 0 }},
{ 111, 0, 5, 6, { 0 }},
{ 112, 0, 5, 6, { 0 }},
{ 113, 0, 5, 6, { 0 }},
{ 114, 0, 5, 5, { 0 }},
{ 115, 0, 5, 6, { 0 }},
{ 116, 0, 3, 5, { 0 }},
{ 117, 0, 5, 6, { 0 }},
{ 118, 0, 5, 7, { 0 }},
{ 119, 0, 5, 9, { 0 }},
{ 120, 0, 5, 6, { 0 }},
{ 121, 0, 5, 6, { 0 }},
{ 122, 0, 5, 6, { 0 }},
{ 123, 0, 2, 6, { 0 }},
{ 124, 0, 3, 3, { 0 }},
{ 125, 0, 2, 6, { 0 }},
{ 126, 0, 1, 6, { 0 }},
{ 161, 0, 4, 4, { 0 }},
{ 162, 0, 3, 6, { 0 }},
{ 163, 0, 3, 7, { 0 }},
{ 8364, 0, 3, 7, { 0 }},
{ 165, 0, 3, 7, { 0 }},
{ 352, 0, 0, 0, { 0 }},
{ 167, 0, 3, 6, { 0 }},
{ 353, 0, 0, 0, { 0 }},
{ 169, 0, 1, 9, { 0 }},
{ 170, 0, 1, 5, { 0 }},
{ 171, 0, 6, 8, { 0 }},
{ 172, 0, 0, 0, { 0 }},
{ 174, 0, 1, 9, { 0 }},
{ 175, 0, 0, 6, { 0 }},
{ 176, 0, 1, 5, { 0 }},
{ 177, 0, 5, 7, { 0 }},
{ 178, 0, 1, 5, { 0 }},
{ 179, 0, 0, 0, { 0 }},
{ 381, 0, 0, 0, { 0 }},
{ 181, 0, 5, 6, { 0 }},
{ 182, 0, 3, 8, { 0 }},
{ 183, 0, 7, 5, { 0 }},
{ 382, 0, 0, 0, { 0 }},
{ 185, 0, 1, 4, { 0 }},
{ 186, 0, 1, 5, { 0 }},
{ 187, 0, 6, 8, { 0 }},
{ 338, 0, 3, 9, { 0 }},
{ 339, 0, 5, 9, { 0 }},
{ 376, 0, 0, 0, { 0 }},
{ 191, 0, 4, 6, { 0 }},
{ 192, 0, 0, 6, { 0 }},
{ 193, 0, 0, 6, { 0 }},
{ 194, 0, 0, 6, { 0 }},
{ 195, 0, 0, 6, { 0 }},
{ 196, 0, 0, 6, { 0 }},
{ 197, 0, 0, 6, { 0 }},
{ 198, 0, 3, 9, { 0 }},
{ 199, 0, 3, 6, { 0 }},
{ 200, 0, 0, 6, { 0 }},
{ 201, 0, 0, 6, { 0 }},
{ 202, 0, 0, 6, { 0 }},
{ 203, 0, 0, 6, { 0 }},
{ 204, 0, 0, 4, { 0 }},
{ 205, 0, 0, 4, { 0 }},
{ 206, 0, 0, 5, { 0 }},
{ 207, 0, 0, 5, { 0 }},
{ 208, 0, 3, 7, { 0 }},
{ 209, 0, 0, 6, { 0 }},
{ 210, 0, 0, 6, { 0 }},
{ 211, 0, 0, 6, { 0 }},
{ 212, 0, 0, 6, { 0 }},
{ 213, 0, 0, 6, { 0 }},
{ 214, 0, 0, 6, { 0 }},
{ 215, 0, 7, 7, { 0 }},
{ 216, 0, 2, 8, { 0 }},
{ 217, 0, 0, 6, { 0 }},
{ 218, 0, 0, 6, { 0 }},
{ 219, 0, 0, 6, { 0 }},
{ 220, 0, 0, 6, { 0 }},
{ 221, 0, 0, 6, { 0 }},
{ 222, 0, 0, 0, { 0 }},
{ 223, 0, 3, 7, { 0 }},
{ 224, 0, 1, 6, { 0 }},
{ 225, 0, 1, 6, { 0 }},
{ 226, 0, 1, 6, { 0 }},
{ 227, 0, 1, 6, { 0 }},
{ 228, 0, 1, 6, { 0 }},
{ 229, 0, 1, 6, { 0 }},
{ 230, 0, 5, 9, { 0 }},
{ 231, 0, 5, 5, { 0 }},
{ 232, 0, 1, 6, { 0 }},
{ 233, 0, 1, 6, { 0 }},
{ 234, 0, 1, 6, { 0 }},
{ 235, 0, 1, 6, { 0 }},
{ 236, 0, 1, 5, { 0 }},
{ 237, 0, 1, 5, { 0 }},
{ 238, 0, 1, 5, { 0 }},
{ 239, 0, 1, 5, { 0 }},
{ 240, 0, 0, 0, { 0 }},
{ 241, 0, 1, 6, { 0 }},
{ 242, 0, 1, 6, { 0 }},
{ 243, 0, 1, 6, { 0 }},
{ 244, 0, 1, 6, { 0 }},
{ 245, 0, 1, 6, { 0 }},
{ 246, 0, 1, 6, { 0 }},
{ 247, 0, 7, 7, { 0 }},
{ 248, 0, 4, 8, { 0 }},
{ 249, 0, 1, 6, { 0 }},
{ 250, 0, 1, 6, { 0 }},
{ 251, 0, 1, 6, { 0 }},
{ 252, 0, 1, 6, { 0 }},
{ 253, 0, 1, 6, { 0 }},
{ 254, 0, 0, 0, { 0 }},
{ 255, 0, 1, 6, { 0 }},
};
// Style loading function: Ashes
static void GuiLoadStyleAshes(void)
{
// Load style properties provided
// NOTE: Default properties are propagated
for (int i = 0; i < ASHES_STYLE_PROPS_COUNT; i++)
{
GuiSetStyle(ashesStyleProps[i].controlId, ashesStyleProps[i].propertyId, ashesStyleProps[i].propertyValue);
}
// Custom font loading
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
int ashesFontDataSize = 0;
unsigned char *data = DecompressData(ashesFontData, ASHES_STYLE_FONT_ATLAS_COMP_SIZE, &ashesFontDataSize);
Image imFont = { data, 256, 256, 1, 2 };
Font font = { 0 };
font.baseSize = 16;
font.glyphCount = 189;
// Load texture from image
font.texture = LoadTextureFromImage(imFont);
UnloadImage(imFont); // Uncompressed image data can be unloaded from memory
// Copy char recs data from global fontRecs
// NOTE: Required to avoid issues if trying to free font
font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle));
memcpy(font.recs, ashesFontRecs, font.glyphCount*sizeof(Rectangle));
// Copy font char info data from global fontChars
// NOTE: Required to avoid issues if trying to free font
font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo));
memcpy(font.glyphs, ashesFontGlyphs, font.glyphCount*sizeof(GlyphInfo));
GuiSetFont(font);
// Setup a white rectangle on the font to be used on shapes drawing,
// it makes possible to draw shapes and text (full UI) in a single draw call
Rectangle fontWhiteRec = { 254, 254, 1, 1 };
SetShapesTexture(font.texture, fontWhiteRec);
//-----------------------------------------------------------------
// TODO: Custom user style setup: Set specific properties here (if required)
// i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

View File

@ -0,0 +1,26 @@
#
# rgs style text file (v4.0) - raygui style file generated using rGuiStyler
#
# Provided info:
# f fontGenSize charsetFileName fontFileName
# p <controlId> <propertyId> <propertyValue> Property description
#
# WARNING: This style uses a custom font, must be provided with style file
#
f 16 charset.txt v5loxical.ttf
p 00 00 0xf0f0f0ff DEFAULT_BORDER_COLOR_NORMAL
p 00 01 0x868686ff DEFAULT_BASE_COLOR_NORMAL
p 00 02 0xe6e6e6ff DEFAULT_TEXT_COLOR_NORMAL
p 00 03 0x929999ff DEFAULT_BORDER_COLOR_FOCUSED
p 00 04 0xeaeaeaff DEFAULT_BASE_COLOR_FOCUSED
p 00 05 0x98a1a8ff DEFAULT_TEXT_COLOR_FOCUSED
p 00 06 0x3f3f3fff DEFAULT_BORDER_COLOR_PRESSED
p 00 07 0xf6f6f6ff DEFAULT_BASE_COLOR_PRESSED
p 00 08 0x414141ff DEFAULT_TEXT_COLOR_PRESSED
p 00 09 0x8b8b8bff DEFAULT_BORDER_COLOR_DISABLED
p 00 10 0x777777ff DEFAULT_BASE_COLOR_DISABLED
p 00 11 0x959595ff DEFAULT_TEXT_COLOR_DISABLED
p 00 16 0x00000010 TEXT_SIZE
p 00 18 0x9dadb1ff LINE_COLOR
p 00 19 0x6b6b6bff BACKGROUND_COLOR
p 00 20 0x00000018 TEXT_LINE_SPACING

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

View File

@ -1,16 +1,27 @@
style: bluish
--------------
## style: bluish
Like a breeze, a slight touch of color cover the clear sky, a spacious and relaxing feeling.
![bluish style table](style_table.png)
![bluish style table](style_bluish.png)
screenshot
-----------
## style: provided files
Several options are provided to add the style to a `raygui` application, choose the one that better fits the project.
| file name | description |
| :-------- | :---------- |
| `style_bluish.rgs` | Binary style file (raygui 4.0), font data compressed (recs, glyphs) |
| `style_bluish.txt.rgs` | Text style file, no font data, requires external font provided |
| `style_bluish.old.rgs` | Binary style file (raygui 3.x), font data uncompressed (recs, glyphs) |
| `style_bluish.h` | Embeddable style as code file, self-contained, includes font data |
| `style_bluish.png` | Style table image, contains `rGSf` chunk with binary `rgs` file data |
## screenshot
![bluish style screen](screenshot.png)
about font
-----------
## about font
"Homespun BRK" font by AEnigma (Brian Kent).
100% free font, downloaded from dafont.com: [homespun-brk](https://www.dafont.com/homespun-brk.font)

View File

@ -1,359 +0,0 @@
//////////////////////////////////////////////////////////////////////////////////
// //
// StyleAsCode exporter v1.2 - Style data exported as a values array //
// //
// USAGE: On init call: GuiLoadStyleBluish(); //
// //
// more info and bugs-report: github.com/raysan5/raygui //
// feedback and support: ray[at]raylibtech.com //
// //
// Copyright (c) 2020-2023 raylib technologies (@raylibtech) //
// //
//////////////////////////////////////////////////////////////////////////////////
#define BLUISH_STYLE_PROPS_COUNT 14
// Custom style name: bluish
static const GuiStyleProp bluishStyleProps[BLUISH_STYLE_PROPS_COUNT] = {
{ 0, 0, 0x5ca6a6ff }, // DEFAULT_BORDER_COLOR_NORMAL
{ 0, 1, 0xb4e8f3ff }, // DEFAULT_BASE_COLOR_NORMAL
{ 0, 2, 0x447e77ff }, // DEFAULT_TEXT_COLOR_NORMAL
{ 0, 3, 0x5f8792ff }, // DEFAULT_BORDER_COLOR_FOCUSED
{ 0, 4, 0xcdeff7ff }, // DEFAULT_BASE_COLOR_FOCUSED
{ 0, 5, 0x4c6c74ff }, // DEFAULT_TEXT_COLOR_FOCUSED
{ 0, 6, 0x3b5b5fff }, // DEFAULT_BORDER_COLOR_PRESSED
{ 0, 7, 0xeaffffff }, // DEFAULT_BASE_COLOR_PRESSED
{ 0, 8, 0x275057ff }, // DEFAULT_TEXT_COLOR_PRESSED
{ 0, 9, 0x96aaacff }, // DEFAULT_BORDER_COLOR_DISABLED
{ 0, 10, 0xc8d7d9ff }, // DEFAULT_BASE_COLOR_DISABLED
{ 0, 11, 0x8c9c9eff }, // DEFAULT_TEXT_COLOR_DISABLED
{ 0, 18, 0x84adb7ff }, // DEFAULT_LINE_COLOR
{ 0, 19, 0xe8eef1ff }, // DEFAULT_BACKGROUND_COLOR
};
// WARNING: This style uses a custom font: (size: 10, spacing: 1)
#define BLUISH_COMPRESSED_DATA_SIZE 1423
// Font image pixels data compressed (DEFLATE)
// NOTE: Original pixel data simplified to GRAYSCALE
static unsigned char bluishFontData[BLUISH_COMPRESSED_DATA_SIZE] = { 0xed,
0xdd, 0xd1, 0x72, 0x9b, 0x3a, 0x10, 0x00, 0x50, 0xc4, 0xff, 0x7f, 0x72, 0x41, 0x77, 0x1a, 0x3b, 0x99, 0xb9, 0x2d, 0x2b,
0x58, 0x21, 0x08, 0x6d, 0x4f, 0xcf, 0xb4, 0x0f, 0x91, 0x51, 0x24, 0x2d, 0xe0, 0x34, 0x5a, 0x2f, 0x75, 0x02, 0x00, 0xf8,
0xcd, 0x1c, 0x7c, 0x6d, 0x0e, 0x5f, 0x3d, 0x27, 0x7a, 0x7a, 0x7d, 0x7d, 0x6e, 0xb4, 0xe7, 0x7a, 0x9b, 0x13, 0x3d, 0xb4,
0x5a, 0xda, 0x6d, 0xbf, 0x2a, 0x6f, 0x23, 0x56, 0x76, 0xfe, 0x5a, 0x8f, 0xed, 0x55, 0xca, 0xbc, 0x7e, 0x4e, 0xcd, 0x62,
0x5b, 0x0d, 0xbe, 0xb6, 0x6e, 0xce, 0xb7, 0xd6, 0x12, 0xb4, 0xcc, 0xb5, 0x06, 0xe3, 0xa9, 0x1f, 0x47, 0x6d, 0xf7, 0xd8,
0x3a, 0x6a, 0xeb, 0x7b, 0x2c, 0x1b, 0x7d, 0x2c, 0xe1, 0x59, 0xf1, 0xf3, 0x3b, 0x46, 0x2b, 0xb4, 0x06, 0xf1, 0xac, 0x9b,
0xaf, 0x7d, 0x29, 0x87, 0x5e, 0xdd, 0xfa, 0x0e, 0xb5, 0x2e, 0x75, 0x79, 0xaf, 0xc7, 0xaf, 0xb3, 0xa8, 0xa9, 0xd7, 0xc7,
0x2d, 0xe7, 0xe3, 0xbf, 0x7e, 0x8c, 0xa7, 0x6c, 0x5c, 0x07, 0x3f, 0xa3, 0xb5, 0x06, 0xf1, 0x8a, 0xc6, 0xf3, 0x5a, 0xb9,
0xb2, 0xd9, 0x63, 0xeb, 0xa8, 0xe9, 0xf0, 0x6a, 0x6f, 0x1f, 0xff, 0x1a, 0xe9, 0xf6, 0x3c, 0xca, 0x47, 0xdb, 0xd6, 0xda,
0x2d, 0x83, 0xee, 0xab, 0xd1, 0x7c, 0xa7, 0xe6, 0xb5, 0xb5, 0xbd, 0x0a, 0x6b, 0xaa, 0xe5, 0x7c, 0xfc, 0xe3, 0x33, 0xba,
0xbe, 0xff, 0x46, 0x33, 0x5b, 0x82, 0xf1, 0x94, 0xa0, 0xa5, 0x7d, 0xd4, 0x99, 0xf8, 0x97, 0xf7, 0x48, 0xe7, 0xe0, 0x7a,
0xae, 0xc1, 0x15, 0x7d, 0x65, 0xf4, 0xf3, 0xf1, 0x2f, 0xef, 0x73, 0xb5, 0x04, 0xef, 0x4a, 0xf7, 0xc6, 0xbf, 0xbc, 0xef,
0xff, 0x73, 0x30, 0xfa, 0x12, 0x46, 0x3f, 0xbe, 0xdb, 0x66, 0xde, 0x57, 0x73, 0xd7, 0xff, 0x6b, 0x9d, 0xa3, 0x73, 0xeb,
0xba, 0xd8, 0xb7, 0xe7, 0x9b, 0x8b, 0x7f, 0x0d, 0xdf, 0x79, 0x3e, 0xcf, 0xe2, 0xb3, 0xb3, 0x58, 0x07, 0x5d, 0xff, 0x6b,
0x38, 0x9e, 0xf2, 0xbe, 0xff, 0x6f, 0xcf, 0x39, 0x73, 0x15, 0x66, 0xe2, 0xbf, 0x17, 0xe3, 0x2b, 0xaf, 0xfd, 0xb8, 0xef,
0x7c, 0xfc, 0x5f, 0x3d, 0x6e, 0x7d, 0x97, 0xab, 0xcf, 0xe2, 0x29, 0xf5, 0xf3, 0x5f, 0x69, 0xfc, 0xcc, 0xf3, 0x79, 0xee,
0x64, 0xe6, 0x37, 0x2a, 0xce, 0xf7, 0xab, 0xbb, 0x33, 0xc8, 0xc4, 0xbf, 0x84, 0xab, 0x5a, 0x6e, 0x7f, 0xff, 0x6f, 0xc5,
0xbf, 0x35, 0xd2, 0x56, 0xfc, 0x73, 0xb3, 0xa8, 0xc9, 0x9f, 0xc1, 0x9f, 0x17, 0xff, 0xfa, 0xf5, 0xff, 0xa1, 0x63, 0x73,
0x8b, 0x5e, 0xdf, 0xea, 0xe9, 0x7b, 0x66, 0xdd, 0x33, 0x9e, 0xa7, 0xcd, 0x82, 0x33, 0x7e, 0x74, 0xc4, 0xf1, 0x87, 0xd8,
0x03, 0x00, 0x00, 0x00, 0x0c, 0xcb, 0xf2, 0x19, 0x95, 0x61, 0x32, 0xba, 0xe5, 0x5c, 0x56, 0x50, 0x9c, 0x9d, 0xd3, 0xca,
0x48, 0x6a, 0x8f, 0xf2, 0xae, 0xf5, 0x98, 0x6e, 0xca, 0xf9, 0xa9, 0x1d, 0x19, 0x29, 0x77, 0xb5, 0x2c, 0x87, 0xb3, 0x30,
0xb6, 0x77, 0x73, 0xe3, 0xec, 0x9c, 0x35, 0x58, 0xab, 0xbd, 0x51, 0xde, 0xb7, 0x1e, 0x73, 0xc7, 0xe8, 0x7a, 0x7e, 0x5b,
0x5e, 0x77, 0x76, 0xe7, 0x96, 0x54, 0xcb, 0xba, 0xbb, 0xd7, 0x97, 0xcb, 0x7c, 0x39, 0xb7, 0xaf, 0xda, 0xca, 0xce, 0x8b,
0xf2, 0x3f, 0x5a, 0xa3, 0x8c, 0xf2, 0x2a, 0x6a, 0xf7, 0xac, 0x97, 0xa1, 0xc7, 0x2c, 0x5d, 0xf1, 0x8f, 0x67, 0x15, 0xef,
0xcd, 0xb7, 0xb3, 0x1e, 0xe3, 0xde, 0x72, 0x2d, 0xc7, 0xb3, 0x0f, 0xa2, 0x18, 0xc7, 0x39, 0x12, 0xd9, 0xdc, 0x99, 0xda,
0xc8, 0xab, 0xd8, 0x9b, 0xdb, 0x92, 0xda, 0x9b, 0xac, 0x3b, 0x6b, 0x78, 0x3e, 0x5b, 0xe6, 0x58, 0x76, 0xc6, 0xda, 0x98,
0x6f, 0x3b, 0xc3, 0x64, 0x4d, 0x1d, 0xb3, 0x0e, 0xc8, 0x57, 0xc9, 0x9e, 0x3d, 0xad, 0x3c, 0x9c, 0xb5, 0x11, 0xff, 0x39,
0x39, 0xb7, 0x57, 0xcb, 0x9c, 0xda, 0x0b, 0xae, 0x3b, 0x6b, 0x78, 0x3e, 0x5b, 0xe6, 0xd8, 0xfa, 0x95, 0xee, 0x3b, 0xf6,
0xa8, 0x63, 0xae, 0x3b, 0x03, 0x6a, 0xba, 0x9f, 0xfa, 0x75, 0xa6, 0x8e, 0xbc, 0xff, 0x97, 0x8e, 0x77, 0xe4, 0x72, 0x3a,
0x57, 0xe3, 0xf8, 0x1d, 0xbb, 0x2f, 0xc3, 0x64, 0xd4, 0x31, 0xcf, 0xca, 0xdd, 0x28, 0x9d, 0x77, 0xec, 0x7b, 0x5a, 0xae,
0x88, 0x7f, 0x6f, 0x86, 0xc9, 0x3a, 0xec, 0x98, 0xe9, 0xf6, 0x9c, 0x9e, 0x1a, 0x5e, 0xff, 0xad, 0xf5, 0x18, 0xb9, 0x86,
0xad, 0x3c, 0xa0, 0xf6, 0x08, 0xfe, 0x05, 0x8b, 0xdf, 0xd9, 0x00, 0x00, 0x00, 0x00, 0x40, 0x22, 0xff, 0xa7, 0x9d, 0x7d,
0x93, 0xcb, 0x50, 0x69, 0x67, 0xed, 0x64, 0x6b, 0xf4, 0xcc, 0xb7, 0x67, 0xdd, 0x8c, 0x6e, 0xe9, 0x59, 0x8b, 0xbd, 0x96,
0xdc, 0x91, 0xfb, 0xbf, 0xef, 0x8e, 0x73, 0x4a, 0xa2, 0xdf, 0x6a, 0x2f, 0x1f, 0x47, 0x8d, 0xd9, 0xfd, 0xab, 0xbb, 0x23,
0x7b, 0xfd, 0x3b, 0x3f, 0x30, 0x3f, 0xa9, 0x95, 0xb9, 0xf4, 0x39, 0xf2, 0x91, 0xbb, 0x85, 0xaf, 0x96, 0x65, 0x73, 0x2d,
0x7a, 0xf7, 0xd0, 0x7a, 0xf2, 0x50, 0xda, 0xbb, 0x61, 0xe3, 0xe2, 0xdf, 0x3b, 0xe7, 0x7b, 0x5b, 0xb2, 0x75, 0x44, 0x9e,
0x17, 0xff, 0x56, 0x96, 0xcf, 0xa8, 0xf8, 0x9f, 0xcb, 0x83, 0x19, 0x17, 0xff, 0x9e, 0x1c, 0xae, 0x78, 0xec, 0xad, 0x3c,
0xa8, 0x3b, 0xe3, 0x1f, 0xd7, 0xd1, 0x3a, 0x12, 0xff, 0x7c, 0x96, 0x4f, 0x3e, 0xfe, 0xe7, 0xf2, 0x60, 0xc6, 0xc5, 0xbf,
0x27, 0x87, 0x63, 0x6d, 0x54, 0x8b, 0x5a, 0xd3, 0xb5, 0x47, 0xea, 0x4e, 0x8e, 0xe1, 0xd2, 0x11, 0xff, 0x12, 0x8e, 0xf1,
0x6c, 0xfe, 0x67, 0xe6, 0xfa, 0x2f, 0x97, 0xe5, 0xc1, 0x8c, 0xbd, 0xff, 0x8f, 0x5a, 0x87, 0xb2, 0x93, 0x7d, 0x58, 0x3a,
0xb2, 0x45, 0xd6, 0xc1, 0x6b, 0x71, 0x2c, 0xdf, 0x61, 0x4c, 0xfc, 0x7b, 0xfa, 0x3a, 0x76, 0x4c, 0x36, 0xfe, 0xa5, 0x23,
0xfe, 0x23, 0xc7, 0xde, 0x8e, 0x7f, 0x69, 0x64, 0x8b, 0xec, 0x1f, 0x33, 0x3a, 0xfe, 0xbd, 0x59, 0x2d, 0x65, 0x60, 0x5f,
0x75, 0x70, 0xfc, 0xf3, 0x79, 0x32, 0x63, 0xc7, 0xde, 0x8e, 0x7f, 0xff, 0xe8, 0x5e, 0x7f, 0xe6, 0x0b, 0x72, 0xe8, 0x51,
0x71, 0x06, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x7f, 0xa6, 0xc6, 0x13, 0xa9, 0xda, 0x59, 0x46, 0xc7, 0xb3, 0x85, 0x3e, 0x33,
0x28, 0xb6, 0xf3, 0x27, 0xc6, 0x54, 0xfa, 0xd9, 0x7f, 0x76, 0x57, 0xf6, 0xfb, 0x44, 0xab, 0xd5, 0x33, 0xb6, 0xab, 0x9f,
0x71, 0x76, 0x2c, 0xcb, 0xa7, 0x95, 0xf7, 0x92, 0xfb, 0x0c, 0x6a, 0x54, 0x9b, 0x66, 0x0e, 0x2a, 0xdd, 0x64, 0x3f, 0xbb,
0xdf, 0xaa, 0x55, 0x11, 0xf7, 0x33, 0xb2, 0x8a, 0x45, 0x0d, 0xcf, 0xd7, 0xda, 0x31, 0xb6, 0x25, 0xf8, 0x6a, 0xd4, 0xc7,
0xdc, 0xfd, 0x49, 0xe9, 0xfe, 0x5a, 0x0e, 0x47, 0x6b, 0x2a, 0xc5, 0x3b, 0x86, 0xaf, 0xbd, 0xee, 0xec, 0x19, 0xb0, 0x86,
0xd7, 0xd8, 0xf6, 0x58, 0xe7, 0x30, 0xbf, 0x65, 0x0a, 0x9f, 0x66, 0x96, 0xaf, 0x55, 0x53, 0x83, 0xa7, 0x86, 0xb5, 0xf7,
0x8f, 0xa2, 0xb1, 0x45, 0x4f, 0x4b, 0x9a, 0x82, 0x3e, 0x96, 0xee, 0xcf, 0x84, 0xd7, 0x9d, 0xe7, 0x48, 0x65, 0x7a, 0x6e,
0x9d, 0x01, 0xad, 0x27, 0xb9, 0x2d, 0x03, 0x9e, 0x55, 0x92, 0xaf, 0x55, 0xd3, 0xca, 0x3c, 0x68, 0xf7, 0x96, 0xad, 0xcd,
0x12, 0x9f, 0x33, 0xb9, 0x3b, 0xc3, 0xa8, 0x0a, 0x33, 0xc7, 0xee, 0x9c, 0xa5, 0x31, 0xa3, 0x29, 0x7d, 0x06, 0x5c, 0xfb,
0x24, 0x8f, 0xeb, 0x32, 0x0f, 0x8e, 0xce, 0x62, 0xf4, 0xce, 0xf2, 0xf1, 0xf8, 0x4f, 0xa7, 0x6a, 0x82, 0x94, 0xee, 0x5c,
0x99, 0xdc, 0x19, 0x70, 0x75, 0xfc, 0xaf, 0xca, 0x3c, 0x18, 0x55, 0x81, 0x63, 0x7d, 0x68, 0xfc, 0xf7, 0xaa, 0xcd, 0xe4,
0x63, 0x99, 0xcf, 0x18, 0x9d, 0xbe, 0xe5, 0xce, 0x30, 0xfa, 0x98, 0x29, 0xfd, 0x3f, 0x99, 0x67, 0xc4, 0xbf, 0xaf, 0x42,
0x4d, 0x49, 0xd7, 0x12, 0xfa, 0xae, 0xf8, 0xe7, 0x9f, 0x23, 0xd5, 0x77, 0xcc, 0xf8, 0xdc, 0xcb, 0x3b, 0xe2, 0xcf, 0x9f,
0x53, 0xf9, 0x68, 0x91, 0x9f, 0x04, 0x00, 0x00, 0x00, 0x40, 0x52, 0xf9, 0x9f, 0x4c, 0xf6, 0xca, 0xf7, 0xb7, 0xcc, 0x3b,
0xbb, 0x5a, 0xa5, 0xbb, 0xa5, 0x0c, 0xeb, 0xb3, 0x95, 0x63, 0x74, 0xf6, 0x99, 0x67, 0x9f, 0x7d, 0x97, 0x01, 0x3b, 0xe7,
0xaf, 0x7f, 0xe7, 0x41, 0x3b, 0xeb, 0xe3, 0x5b, 0xae, 0xff, 0x34, 0xff, 0x15, 0xf5, 0x06, 0x5a, 0x15, 0x22, 0xe6, 0xc3,
0xb9, 0x15, 0x4b, 0xb8, 0xa7, 0xba, 0x36, 0x6a, 0x06, 0xe4, 0xf7, 0x20, 0xbe, 0xbf, 0xca, 0xce, 0x92, 0x7c, 0x0e, 0xd5,
0x7c, 0x63, 0x8d, 0x8d, 0x75, 0x27, 0x1f, 0x26, 0x97, 0x43, 0x13, 0xd7, 0x50, 0x98, 0x52, 0xaf, 0x8d, 0x9e, 0x49, 0xf4,
0x67, 0xc6, 0x7f, 0x4a, 0xe6, 0xf6, 0xad, 0x07, 0xea, 0x65, 0x8c, 0xaa, 0xb1, 0x51, 0x3a, 0x32, 0x7c, 0x4a, 0xe3, 0xf9,
0x63, 0xb9, 0xf8, 0x47, 0x4f, 0xab, 0x5b, 0x4f, 0x3e, 0xf9, 0xe9, 0x9a, 0x2a, 0x1b, 0xe3, 0x9f, 0x60, 0x33, 0xae, 0x9a,
0xc7, 0xf8, 0x1a, 0x1b, 0xad, 0x9d, 0xf2, 0x38, 0xaf, 0x32, 0x17, 0xff, 0xab, 0x6a, 0x3b, 0x5c, 0x53, 0x65, 0xa3, 0xb7,
0x42, 0x48, 0x4f, 0x6e, 0x4f, 0x79, 0x48, 0x8d, 0x8d, 0x6c, 0x85, 0x90, 0xf3, 0xf7, 0xff, 0xe7, 0xee, 0x54, 0xdf, 0x53,
0x67, 0xa3, 0x27, 0x4f, 0xe7, 0xaa, 0x9d, 0xf9, 0xfc, 0xee, 0x7c, 0x26, 0xb7, 0x52, 0x65, 0x97, 0x51, 0x79, 0x3a, 0x4f,
0xf2, 0x94, 0x67, 0x9e, 0xf1, 0xa4, 0x73, 0xda, 0x1a, 0xfc, 0xdb, 0x59, 0x5e, 0xd6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x2f,
0xf0, 0x1f };
// Font characters rectangles data
static const Rectangle bluishFontRecs[95] = {
{ 4, 4, 5 , 10 },
{ 17, 4, 2 , 8 },
{ 27, 4, 4 , 3 },
{ 39, 4, 6 , 8 },
{ 53, 4, 5 , 10 },
{ 66, 4, 6 , 8 },
{ 80, 4, 5 , 10 },
{ 93, 4, 2 , 3 },
{ 103, 4, 3 , 8 },
{ 114, 4, 3 , 8 },
{ 125, 4, 6 , 6 },
{ 139, 4, 6 , 6 },
{ 153, 4, 2 , 3 },
{ 163, 4, 5 , 2 },
{ 176, 4, 2 , 2 },
{ 186, 4, 6 , 8 },
{ 200, 4, 5 , 8 },
{ 213, 4, 3 , 8 },
{ 224, 4, 5 , 8 },
{ 237, 4, 5 , 8 },
{ 4, 22, 5 , 8 },
{ 17, 22, 5 , 8 },
{ 30, 22, 5 , 8 },
{ 43, 22, 5 , 8 },
{ 56, 22, 5 , 8 },
{ 69, 22, 5 , 8 },
{ 82, 22, 2 , 8 },
{ 92, 22, 2 , 9 },
{ 102, 22, 4 , 6 },
{ 114, 22, 5 , 4 },
{ 127, 22, 4 , 6 },
{ 139, 22, 5 , 8 },
{ 152, 22, 6 , 8 },
{ 166, 22, 5 , 8 },
{ 179, 22, 5 , 8 },
{ 192, 22, 5 , 8 },
{ 205, 22, 5 , 8 },
{ 218, 22, 5 , 8 },
{ 231, 22, 5 , 8 },
{ 4, 40, 5 , 8 },
{ 17, 40, 5 , 8 },
{ 30, 40, 4 , 8 },
{ 42, 40, 5 , 8 },
{ 55, 40, 5 , 8 },
{ 68, 40, 5 , 8 },
{ 81, 40, 8 , 8 },
{ 97, 40, 5 , 8 },
{ 110, 40, 5 , 8 },
{ 123, 40, 5 , 8 },
{ 136, 40, 5 , 9 },
{ 149, 40, 5 , 8 },
{ 162, 40, 5 , 8 },
{ 175, 40, 6 , 8 },
{ 189, 40, 5 , 8 },
{ 202, 40, 5 , 8 },
{ 215, 40, 8 , 8 },
{ 231, 40, 5 , 8 },
{ 4, 58, 5 , 8 },
{ 17, 58, 5 , 8 },
{ 30, 58, 3 , 8 },
{ 41, 58, 6 , 8 },
{ 55, 58, 3 , 8 },
{ 66, 58, 6 , 4 },
{ 80, 58, 5 , 1 },
{ 93, 58, 2 , 3 },
{ 103, 58, 5 , 6 },
{ 116, 58, 5 , 8 },
{ 129, 58, 5 , 6 },
{ 142, 58, 5 , 8 },
{ 155, 58, 5 , 6 },
{ 168, 58, 5 , 8 },
{ 181, 58, 5 , 7 },
{ 194, 58, 5 , 8 },
{ 207, 58, 2 , 8 },
{ 217, 58, 3 , 9 },
{ 228, 58, 5 , 8 },
{ 241, 58, 2 , 8 },
{ 4, 76, 8 , 6 },
{ 20, 76, 5 , 6 },
{ 33, 76, 5 , 6 },
{ 46, 76, 5 , 7 },
{ 59, 76, 5 , 7 },
{ 72, 76, 5 , 6 },
{ 85, 76, 5 , 6 },
{ 98, 76, 5 , 8 },
{ 111, 76, 5 , 6 },
{ 124, 76, 5 , 6 },
{ 137, 76, 8 , 6 },
{ 153, 76, 5 , 6 },
{ 166, 76, 5 , 7 },
{ 179, 76, 5 , 6 },
{ 192, 76, 4 , 8 },
{ 204, 76, 2 , 10 },
{ 214, 76, 4 , 8 },
{ 226, 76, 6 , 4 },
};
// Font characters info data
// NOTE: No chars.image data provided
static const GlyphInfo bluishFontChars[95] = {
{ 32, 0, 9, 5, { 0 }},
{ 33, 0, 1, 2, { 0 }},
{ 34, 0, 1, 4, { 0 }},
{ 35, 0, 1, 6, { 0 }},
{ 36, 0, 0, 5, { 0 }},
{ 37, 0, 1, 6, { 0 }},
{ 38, 0, 0, 5, { 0 }},
{ 39, 0, 1, 2, { 0 }},
{ 40, 0, 1, 3, { 0 }},
{ 41, 0, 1, 3, { 0 }},
{ 42, 0, 1, 6, { 0 }},
{ 43, 0, 2, 6, { 0 }},
{ 44, 0, 7, 2, { 0 }},
{ 45, 0, 4, 5, { 0 }},
{ 46, 0, 7, 2, { 0 }},
{ 47, 0, 1, 6, { 0 }},
{ 48, 0, 1, 5, { 0 }},
{ 49, 0, 1, 3, { 0 }},
{ 50, 0, 1, 5, { 0 }},
{ 51, 0, 1, 5, { 0 }},
{ 52, 0, 1, 5, { 0 }},
{ 53, 0, 1, 5, { 0 }},
{ 54, 0, 1, 5, { 0 }},
{ 55, 0, 1, 5, { 0 }},
{ 56, 0, 1, 5, { 0 }},
{ 57, 0, 1, 5, { 0 }},
{ 58, 0, 1, 2, { 0 }},
{ 59, 0, 1, 2, { 0 }},
{ 60, 0, 2, 4, { 0 }},
{ 61, 0, 3, 5, { 0 }},
{ 62, 0, 2, 4, { 0 }},
{ 63, 0, 1, 5, { 0 }},
{ 64, 0, 1, 6, { 0 }},
{ 65, 0, 1, 5, { 0 }},
{ 66, 0, 1, 5, { 0 }},
{ 67, 0, 1, 5, { 0 }},
{ 68, 0, 1, 5, { 0 }},
{ 69, 0, 1, 5, { 0 }},
{ 70, 0, 1, 5, { 0 }},
{ 71, 0, 1, 5, { 0 }},
{ 72, 0, 1, 5, { 0 }},
{ 73, 0, 1, 4, { 0 }},
{ 74, 0, 1, 5, { 0 }},
{ 75, 0, 1, 5, { 0 }},
{ 76, 0, 1, 5, { 0 }},
{ 77, 0, 1, 8, { 0 }},
{ 78, 0, 1, 5, { 0 }},
{ 79, 0, 1, 5, { 0 }},
{ 80, 0, 1, 5, { 0 }},
{ 81, 0, 1, 5, { 0 }},
{ 82, 0, 1, 5, { 0 }},
{ 83, 0, 1, 5, { 0 }},
{ 84, 0, 1, 6, { 0 }},
{ 85, 0, 1, 5, { 0 }},
{ 86, 0, 1, 5, { 0 }},
{ 87, 0, 1, 8, { 0 }},
{ 88, 0, 1, 5, { 0 }},
{ 89, 0, 1, 5, { 0 }},
{ 90, 0, 1, 5, { 0 }},
{ 91, 0, 1, 3, { 0 }},
{ 92, 0, 1, 6, { 0 }},
{ 93, 0, 1, 3, { 0 }},
{ 94, 0, 1, 6, { 0 }},
{ 95, 0, 9, 5, { 0 }},
{ 96, 0, 1, 2, { 0 }},
{ 97, 0, 3, 5, { 0 }},
{ 98, 0, 1, 5, { 0 }},
{ 99, 0, 3, 5, { 0 }},
{ 100, 0, 1, 5, { 0 }},
{ 101, 0, 3, 5, { 0 }},
{ 102, 0, 1, 5, { 0 }},
{ 103, 0, 3, 5, { 0 }},
{ 104, 0, 1, 5, { 0 }},
{ 105, 0, 1, 2, { 0 }},
{ 106, 0, 1, 3, { 0 }},
{ 107, 0, 1, 5, { 0 }},
{ 108, 0, 1, 2, { 0 }},
{ 109, 0, 3, 8, { 0 }},
{ 110, 0, 3, 5, { 0 }},
{ 111, 0, 3, 5, { 0 }},
{ 112, 0, 3, 5, { 0 }},
{ 113, 0, 3, 5, { 0 }},
{ 114, 0, 3, 5, { 0 }},
{ 115, 0, 3, 5, { 0 }},
{ 116, 0, 1, 5, { 0 }},
{ 117, 0, 3, 5, { 0 }},
{ 118, 0, 3, 5, { 0 }},
{ 119, 0, 3, 8, { 0 }},
{ 120, 0, 3, 5, { 0 }},
{ 121, 0, 3, 5, { 0 }},
{ 122, 0, 3, 5, { 0 }},
{ 123, 0, 1, 4, { 0 }},
{ 124, 0, 0, 2, { 0 }},
{ 125, 0, 1, 4, { 0 }},
{ 126, 0, 3, 6, { 0 }},
};
// Style loading function: bluish
static void GuiLoadStyleBluish(void)
{
// Load style properties provided
// NOTE: Default properties are propagated
for (int i = 0; i < BLUISH_STYLE_PROPS_COUNT; i++)
{
GuiSetStyle(bluishStyleProps[i].controlId, bluishStyleProps[i].propertyId, bluishStyleProps[i].propertyValue);
}
// Custom font loading
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
int bluishFontDataSize = 0;
unsigned char *data = DecompressData(bluishFontData, BLUISH_COMPRESSED_DATA_SIZE, &bluishFontDataSize);
Image imFont = { data, 256, 256, 1, 2 };
Font font = { 0 };
font.baseSize = 10;
font.glyphCount = 95;
// Load texture from image
font.texture = LoadTextureFromImage(imFont);
UnloadImage(imFont); // Uncompressed data can be unloaded from memory
// Copy char recs data from global fontRecs
// NOTE: Required to avoid issues if trying to free font
font.recs = (Rectangle *)malloc(font.glyphCount*sizeof(Rectangle));
memcpy(font.recs, bluishFontRecs, font.glyphCount*sizeof(Rectangle));
// Copy font char info data from global fontChars
// NOTE: Required to avoid issues if trying to free font
font.glyphs = (GlyphInfo *)malloc(font.glyphCount*sizeof(GlyphInfo));
memcpy(font.glyphs, bluishFontChars, font.glyphCount*sizeof(GlyphInfo));
GuiSetFont(font);
// Setup a white rectangle on the font to be used on shapes drawing,
// this way we make sure all gui can be drawn on a single pass because no texture change is required
// NOTE: Setting up this rectangle is a manual process (for the moment)
Rectangle whiteChar = { 66, 5, 2, 2 };
SetShapesTexture(font.texture, whiteChar);
//-----------------------------------------------------------------
// TODO: Custom user style setup: Set specific properties here (if required)
// i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT
}

Binary file not shown.

View File

@ -1,24 +0,0 @@
#
# rgs style text file (v3.1) - raygui style file generated using rGuiStyler
#
# Style properties:
# f <gen_font_size> <charmap_file> <font_file>
# p <control_id> <property_id> <property_value> <property_name>
#
f 10 0 homespun.ttf
p 00 00 0x5ca6a6ff DEFAULT_BORDER_COLOR_NORMAL
p 00 01 0xb4e8f3ff DEFAULT_BASE_COLOR_NORMAL
p 00 02 0x447e77ff DEFAULT_TEXT_COLOR_NORMAL
p 00 03 0x5f8792ff DEFAULT_BORDER_COLOR_FOCUSED
p 00 04 0xcdeff7ff DEFAULT_BASE_COLOR_FOCUSED
p 00 05 0x4c6c74ff DEFAULT_TEXT_COLOR_FOCUSED
p 00 06 0x3b5b5fff DEFAULT_BORDER_COLOR_PRESSED
p 00 07 0xeaffffff DEFAULT_BASE_COLOR_PRESSED
p 00 08 0x275057ff DEFAULT_TEXT_COLOR_PRESSED
p 00 09 0x96aaacff DEFAULT_BORDER_COLOR_DISABLED
p 00 10 0xc8d7d9ff DEFAULT_BASE_COLOR_DISABLED
p 00 11 0x8c9c9eff DEFAULT_TEXT_COLOR_DISABLED
p 00 16 0x0000000a TEXT_SIZE
p 00 17 0x00000001 TEXT_SPACING
p 00 18 0x84adb7ff DEFAULT_LINE_COLOR
p 00 19 0xe8eef1ff DEFAULT_BACKGROUND_COLOR

View File

@ -0,0 +1 @@
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£€¥Š§š©ª«¬®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 130 KiB

View File

@ -0,0 +1,610 @@
//////////////////////////////////////////////////////////////////////////////////
// //
// StyleAsCode exporter v2.0 - Style data exported as a values array //
// //
// USAGE: On init call: GuiLoadStyleBluish(); //
// //
// more info and bugs-report: github.com/raysan5/raygui //
// feedback and support: ray[at]raylibtech.com //
// //
// Copyright (c) 2020-2025 raylib technologies (@raylibtech) //
// //
//////////////////////////////////////////////////////////////////////////////////
#define BLUISH_STYLE_PROPS_COUNT 14
// Custom style name: Bluish
static const GuiStyleProp bluishStyleProps[BLUISH_STYLE_PROPS_COUNT] = {
{ 0, 0, (int)0x5ca6a6ff }, // DEFAULT_BORDER_COLOR_NORMAL
{ 0, 1, (int)0xb4e8f3ff }, // DEFAULT_BASE_COLOR_NORMAL
{ 0, 2, (int)0x447e77ff }, // DEFAULT_TEXT_COLOR_NORMAL
{ 0, 3, (int)0x5f8792ff }, // DEFAULT_BORDER_COLOR_FOCUSED
{ 0, 4, (int)0xcdeff7ff }, // DEFAULT_BASE_COLOR_FOCUSED
{ 0, 5, (int)0x4c6c74ff }, // DEFAULT_TEXT_COLOR_FOCUSED
{ 0, 6, (int)0x3b5b5fff }, // DEFAULT_BORDER_COLOR_PRESSED
{ 0, 7, (int)0xeaffffff }, // DEFAULT_BASE_COLOR_PRESSED
{ 0, 8, (int)0x275057ff }, // DEFAULT_TEXT_COLOR_PRESSED
{ 0, 9, (int)0x96aaacff }, // DEFAULT_BORDER_COLOR_DISABLED
{ 0, 10, (int)0xc8d7d9ff }, // DEFAULT_BASE_COLOR_DISABLED
{ 0, 11, (int)0x8c9c9eff }, // DEFAULT_TEXT_COLOR_DISABLED
{ 0, 18, (int)0x84adb7ff }, // DEFAULT_LINE_COLOR
{ 0, 19, (int)0xe8eef1ff }, // DEFAULT_BACKGROUND_COLOR
};
// WARNING: This style uses a custom font: "homespun.ttf" (size: 10, spacing: 1)
#define BLUISH_STYLE_FONT_ATLAS_COMP_SIZE 2730
// Font atlas image pixels data: DEFLATE compressed
static unsigned char bluishFontData[BLUISH_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed,
0x9d, 0xdb, 0x92, 0xdb, 0x38, 0x0c, 0x44, 0x45, 0xee, 0xff, 0xff, 0xf1, 0x90, 0xdc, 0xca, 0xc8, 0x33, 0xa9, 0x4d, 0xd4,
0x10, 0x01, 0x41, 0x17, 0xef, 0x9c, 0x9c, 0x4a, 0x1e, 0x44, 0x8b, 0x26, 0x09, 0x4a, 0x76, 0x84, 0x76, 0x63, 0x2c, 0x00,
0x00, 0x00, 0x00, 0x7f, 0x51, 0xc5, 0xb1, 0x2a, 0x5f, 0x5d, 0x1d, 0x3d, 0xad, 0xc7, 0xab, 0xd1, 0xee, 0xeb, 0xad, 0x3a,
0x7a, 0xb0, 0x5a, 0xec, 0xb6, 0x3f, 0x29, 0x2f, 0x32, 0x56, 0xb6, 0x7e, 0xaf, 0xc7, 0xf6, 0x2a, 0x79, 0x5e, 0x5f, 0x5d,
0xb3, 0xd8, 0x66, 0x88, 0x63, 0x7d, 0x73, 0xbe, 0x63, 0x14, 0xd1, 0x52, 0xc7, 0x10, 0xe3, 0x19, 0x9f, 0x67, 0x6d, 0xf7,
0x68, 0x9d, 0xb5, 0xf5, 0x1e, 0x6d, 0xa3, 0x8f, 0x26, 0x77, 0xc5, 0xaf, 0x77, 0x54, 0x2b, 0xd4, 0x45, 0x3c, 0xc7, 0xe6,
0x6b, 0x57, 0xca, 0xd4, 0xab, 0xad, 0x77, 0x18, 0xa3, 0x8d, 0xf6, 0x5a, 0x8f, 0x3f, 0x67, 0x31, 0x5c, 0xaf, 0xd7, 0x2d,
0xc7, 0xe3, 0xdf, 0x3f, 0xc7, 0x53, 0x36, 0xae, 0x83, 0x5f, 0xd1, 0xea, 0x22, 0x5e, 0x6a, 0x3c, 0xeb, 0xca, 0x95, 0xcd,
0x1e, 0xad, 0xb3, 0x96, 0xe9, 0xd5, 0xde, 0x3e, 0x7f, 0x1d, 0xe9, 0xf6, 0x3c, 0xca, 0x67, 0xdb, 0xd6, 0xda, 0xb5, 0xa4,
0xfb, 0xaa, 0x9a, 0xef, 0x62, 0x5e, 0x5b, 0xdb, 0xab, 0xd0, 0x5d, 0x2d, 0xc7, 0xe3, 0xaf, 0x77, 0xf4, 0x78, 0xfd, 0x55,
0x33, 0x6b, 0x62, 0x3c, 0x45, 0xb4, 0xd8, 0x67, 0x1d, 0x89, 0x7f, 0x79, 0x8d, 0xb4, 0x8a, 0xeb, 0x79, 0x88, 0x2b, 0xfa,
0xcc, 0xe8, 0xfb, 0xe3, 0x5f, 0x5e, 0x7b, 0xb5, 0x88, 0x4f, 0xa5, 0x6b, 0xe3, 0x5f, 0x5e, 0xf7, 0xff, 0x2a, 0x46, 0x5f,
0x64, 0xf4, 0xf5, 0xdd, 0xd6, 0xf3, 0xb9, 0xea, 0xbb, 0xfe, 0xd7, 0x75, 0x56, 0x7b, 0xeb, 0xbc, 0xd8, 0xdb, 0xf3, 0xf5,
0xc5, 0x7f, 0xc8, 0x4f, 0x9e, 0xaf, 0x5d, 0x7c, 0x74, 0x16, 0x3d, 0xe9, 0xfa, 0xef, 0x72, 0x3c, 0xe5, 0x75, 0xff, 0xdf,
0x9e, 0xb3, 0xe7, 0x2a, 0xf4, 0xc4, 0x7f, 0x2f, 0xc6, 0x67, 0x5e, 0xfb, 0xba, 0x6f, 0x7f, 0xfc, 0xd7, 0x1e, 0xb7, 0xde,
0xe5, 0xec, 0x5d, 0xbc, 0xb8, 0xbe, 0xff, 0x15, 0xe3, 0x3b, 0xcf, 0xd7, 0xde, 0xf1, 0xcc, 0x2f, 0x2b, 0xce, 0xd7, 0x33,
0x76, 0x67, 0xe0, 0x89, 0x7f, 0x91, 0xab, 0x5a, 0x2e, 0xff, 0xfc, 0xb7, 0xe2, 0x6f, 0x8d, 0xd4, 0x8a, 0xbf, 0x6f, 0x16,
0xc3, 0xf9, 0x1d, 0xfc, 0x79, 0xf1, 0x1f, 0xdf, 0xff, 0x1f, 0x9a, 0x9b, 0x9b, 0x7a, 0xbd, 0xd5, 0xd3, 0x3d, 0xb3, 0x8e,
0x8c, 0xe7, 0x69, 0xb3, 0x80, 0x23, 0x7c, 0x04, 0xe2, 0xf8, 0x41, 0xec, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xd2, 0x54, 0x3e, 0x59, 0x0a, 0x93, 0xec, 0x96, 0x63, 0xaa, 0x20, 0xad, 0xce, 0xb1, 0x14, 0x49, 0xf6, 0x28, 0xaf, 0x5a,
0x8f, 0xe5, 0x22, 0xcd, 0xcf, 0x08, 0x28, 0x52, 0xae, 0x6a, 0x69, 0xd3, 0x2a, 0x8c, 0xed, 0x6c, 0xae, 0x56, 0xe7, 0x74,
0xb1, 0x56, 0x7b, 0xa3, 0xbc, 0x6e, 0x3d, 0x6a, 0x60, 0x74, 0x91, 0xa7, 0xe5, 0x63, 0x27, 0x3b, 0xd7, 0x5c, 0x2d, 0x7d,
0x37, 0xd7, 0xe7, 0x53, 0xbe, 0x1c, 0xcb, 0xab, 0x5a, 0xea, 0x3c, 0xa5, 0xff, 0xb0, 0x46, 0xa9, 0x74, 0x15, 0x23, 0x3c,
0xeb, 0x96, 0x7a, 0x4e, 0x0b, 0xc5, 0x5f, 0xcf, 0x4a, 0xe7, 0xe6, 0x6d, 0xd5, 0xa3, 0xee, 0xcd, 0xd7, 0x32, 0xaf, 0x3e,
0x50, 0x31, 0xd6, 0x1a, 0x09, 0xaf, 0x76, 0x66, 0x18, 0xba, 0x8a, 0xbd, 0xb9, 0x35, 0x57, 0x6e, 0x72, 0xec, 0xac, 0xe1,
0x71, 0xb5, 0xcc, 0x9c, 0x3a, 0xa3, 0x1b, 0xf3, 0xb5, 0x15, 0x26, 0xdd, 0x75, 0x4e, 0x4f, 0xd0, 0xab, 0x78, 0x77, 0x8f,
0xa5, 0xc3, 0xe9, 0x46, 0xfc, 0xab, 0x73, 0x6e, 0x6b, 0x4b, 0x75, 0xe5, 0x82, 0xc7, 0xce, 0x1a, 0x1e, 0x57, 0xcb, 0xcc,
0xad, 0x5f, 0x09, 0xdf, 0xb1, 0xb3, 0xce, 0x39, 0x6f, 0x07, 0x0c, 0x77, 0x3f, 0xe3, 0x7b, 0xa7, 0x66, 0xde, 0xff, 0x4b,
0xe0, 0x13, 0xb9, 0x1c, 0xd6, 0x6a, 0xcc, 0xdf, 0xb1, 0x63, 0x0a, 0x93, 0xac, 0x73, 0x9e, 0xa5, 0xdd, 0x28, 0xc1, 0x3b,
0xf6, 0x35, 0x2d, 0x67, 0xc4, 0x3f, 0xaa, 0x30, 0xe9, 0x69, 0xe7, 0x2c, 0x97, 0x6b, 0x7a, 0x86, 0xbc, 0xfe, 0xad, 0xf5,
0xc8, 0x5c, 0x43, 0x4b, 0x07, 0x64, 0x8f, 0xe0, 0x27, 0xd0, 0x78, 0x66, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xe0, 0xd0, 0xff, 0xd8, 0xea, 0x1b, 0x9f, 0x42, 0xc5, 0x56, 0xed, 0x78, 0x3d, 0x7a, 0xea, 0xe5, 0xaa, 0x9b, 0xec,
0x96, 0xc8, 0x5a, 0xec, 0xb5, 0xf8, 0xce, 0xdc, 0x7f, 0xde, 0xad, 0x35, 0x25, 0xea, 0xa9, 0x76, 0xfb, 0x3c, 0x2b, 0x27,
0xfb, 0x37, 0x76, 0x47, 0xb6, 0xfe, 0x5b, 0x1f, 0xa8, 0x4f, 0xb2, 0x94, 0x4b, 0x5f, 0x23, 0xcf, 0xcc, 0x16, 0xae, 0x2d,
0x6d, 0x73, 0x2d, 0xa2, 0x39, 0xb4, 0x88, 0x0e, 0xc5, 0xce, 0x86, 0xe5, 0xc5, 0x3f, 0x3a, 0xe7, 0x6b, 0x5b, 0xbc, 0x3e,
0x22, 0xcf, 0x8b, 0xbf, 0xa5, 0xf2, 0xc9, 0x8a, 0xff, 0x31, 0x1d, 0x4c, 0x5e, 0xfc, 0x23, 0x1a, 0x2e, 0x3d, 0x76, 0x4b,
0x07, 0x75, 0x65, 0xfc, 0xb5, 0x8f, 0xd6, 0x4c, 0xfc, 0xfd, 0x2a, 0x1f, 0x7f, 0xfc, 0x8f, 0xe9, 0x60, 0xf2, 0xe2, 0x1f,
0xd1, 0x70, 0x74, 0xc3, 0x2d, 0xaa, 0xbb, 0xbd, 0x47, 0xc6, 0x8e, 0xc6, 0xb0, 0x05, 0xe2, 0x5f, 0xe4, 0x18, 0x8f, 0xea,
0x3f, 0x3d, 0xd7, 0x7f, 0x39, 0x4d, 0x07, 0x93, 0x7b, 0xff, 0xcf, 0x5a, 0x87, 0xb2, 0xa3, 0x3e, 0x2c, 0x01, 0xb5, 0x48,
0x4f, 0x5e, 0x8b, 0x39, 0xbd, 0x43, 0x4e, 0xfc, 0x23, 0x7d, 0xcd, 0x9d, 0xe3, 0x8d, 0x7f, 0x09, 0xc4, 0x3f, 0x73, 0xec,
0x76, 0xfc, 0x8b, 0xa1, 0x16, 0xd9, 0x3f, 0x27, 0x3b, 0xfe, 0x51, 0x55, 0x4b, 0x49, 0xec, 0x6b, 0x24, 0xc7, 0xdf, 0xaf,
0x93, 0xc9, 0x1d, 0xbb, 0x1d, 0xff, 0xf8, 0xe8, 0xd6, 0x3f, 0xf5, 0x04, 0x0d, 0x3d, 0xe0, 0x38, 0x03, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x2c, 0x46, 0x45, 0x2a, 0x5b, 0x65, 0x34, 0xaf, 0x16, 0xfa, 0x52, 0x50, 0x6c,
0xeb, 0x27, 0x72, 0x9c, 0x7e, 0xf6, 0x6b, 0x77, 0x79, 0xdf, 0x47, 0xad, 0x56, 0x64, 0x6c, 0x67, 0xd7, 0x38, 0x9b, 0x53,
0xf9, 0x58, 0xba, 0x17, 0xdf, 0x6f, 0x50, 0x95, 0x37, 0x4d, 0x15, 0x4e, 0x37, 0xde, 0xdf, 0xee, 0x5b, 0x5e, 0x15, 0xba,
0x9f, 0x4c, 0x17, 0x8b, 0x21, 0xf7, 0xeb, 0x08, 0x8c, 0xad, 0x89, 0xa3, 0xaa, 0x8f, 0x1a, 0xfe, 0xa5, 0x74, 0xdc, 0xcb,
0x61, 0xd6, 0x53, 0x49, 0x67, 0x0c, 0xd7, 0x5c, 0xb7, 0x77, 0x07, 0x74, 0x79, 0x8d, 0x6d, 0x8f, 0xb5, 0x4a, 0x7d, 0xcb,
0x22, 0xab, 0x99, 0xf9, 0xbd, 0x6a, 0x86, 0xa8, 0x1a, 0x66, 0xe7, 0x8f, 0xd4, 0xd8, 0x54, 0xb5, 0xa4, 0x45, 0xf4, 0xd1,
0xc2, 0xbf, 0x09, 0x1f, 0x3b, 0x75, 0xa4, 0x3c, 0x3d, 0x5b, 0x3b, 0xc0, 0xaa, 0xe4, 0xd6, 0x12, 0x6a, 0x95, 0xf8, 0xbd,
0x6a, 0x2c, 0xe5, 0x81, 0xdd, 0x9b, 0xd7, 0x9b, 0x45, 0xef, 0x19, 0xdf, 0x9d, 0x21, 0xcb, 0x61, 0x66, 0xee, 0xce, 0x59,
0x8c, 0x19, 0x2d, 0xee, 0x1d, 0x70, 0x6e, 0x25, 0x8f, 0xf3, 0x94, 0x07, 0xb3, 0xb3, 0xc8, 0xce, 0x2c, 0xcf, 0xc7, 0x7f,
0x39, 0xe4, 0x09, 0x52, 0xc2, 0x5a, 0x19, 0xdf, 0x0e, 0x38, 0x3b, 0xfe, 0x67, 0x29, 0x0f, 0xb2, 0x1c, 0x38, 0xfa, 0x43,
0xe3, 0xbf, 0xe7, 0x36, 0xe3, 0x8f, 0xa5, 0x5f, 0x31, 0xba, 0xdc, 0x72, 0x67, 0xc8, 0x3e, 0x67, 0x71, 0xff, 0x4f, 0xe6,
0x19, 0xf1, 0x8f, 0x39, 0xd4, 0x14, 0xb7, 0x97, 0xd0, 0x5d, 0xf1, 0xf7, 0xd7, 0x91, 0x8a, 0x9d, 0x93, 0xaf, 0xbd, 0xbc,
0x22, 0xfe, 0xf0, 0x3e, 0xce, 0x47, 0x0d, 0x7d, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x29, 0xff,
0xc1, 0xa3, 0x5e, 0xb9, 0xbf, 0xa5, 0xee, 0x64, 0xb5, 0x4a, 0xb8, 0xa5, 0xa4, 0xf5, 0x69, 0x69, 0x8c, 0x8e, 0xd6, 0x3c,
0xfb, 0xea, 0xbb, 0x84, 0xd5, 0x3f, 0xbf, 0x73, 0xd0, 0xeb, 0xbf, 0x35, 0x29, 0xb3, 0x9e, 0xdf, 0x72, 0xfe, 0xaf, 0xf9,
0xcf, 0xf0, 0x1b, 0xb0, 0x1c, 0x22, 0xea, 0xb4, 0xb6, 0xa2, 0xc9, 0x9c, 0x6a, 0x97, 0x9e, 0x01, 0x2d, 0x90, 0x83, 0xb8,
0xdf, 0x65, 0xa7, 0x39, 0xeb, 0x50, 0xd5, 0x0b, 0x3d, 0x36, 0xfa, 0x8e, 0x1e, 0xc6, 0xa7, 0xa1, 0xd1, 0x1e, 0x0a, 0x8b,
0xeb, 0xb5, 0xaa, 0x26, 0x51, 0x79, 0xcb, 0xf8, 0x2f, 0x4e, 0x6d, 0x5f, 0x9f, 0xf0, 0xcb, 0xc8, 0xf2, 0xd8, 0x28, 0x01,
0x85, 0x4f, 0x31, 0xea, 0x8f, 0xf9, 0xe2, 0xaf, 0xaa, 0xd5, 0xf9, 0xef, 0x8d, 0x57, 0xb8, 0x6c, 0xe4, 0x57, 0xb0, 0xc9,
0x73, 0xf3, 0xc8, 0xf7, 0xd8, 0xb0, 0x32, 0xe5, 0x5a, 0x57, 0xe9, 0x8b, 0xbf, 0xd7, 0xdb, 0xe1, 0x8a, 0xf8, 0x47, 0x6b,
0xdb, 0xe4, 0x3a, 0x73, 0x94, 0x87, 0x78, 0x6c, 0x78, 0x1d, 0x42, 0x8e, 0xdf, 0xff, 0xb3, 0xf5, 0x08, 0x79, 0x99, 0xea,
0x6b, 0x7c, 0x36, 0x22, 0x3a, 0x9d, 0xb3, 0x32, 0xf3, 0xfe, 0xec, 0xbc, 0x47, 0x5b, 0xd9, 0xdf, 0x2a, 0xfe, 0x4f, 0xd6,
0xf6, 0x3c, 0x89, 0x33, 0x6b, 0x9e, 0xa1, 0xfe, 0x79, 0xd7, 0x3d, 0xcd, 0x1a, 0xfc, 0x6c, 0x95, 0x17, 0x6b, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe7, 0x38, 0x00, 0x2d, 0xd2, 0xd3, 0x66, 0xbe, 0x87, 0x9a, 0xe6, 0x2f, 0xb4, 0x77,
0x4e, 0x75, 0xd6, 0x25, 0x2b, 0x6e, 0x7d, 0xce, 0xb1, 0xda, 0x63, 0xbe, 0x95, 0x8e, 0xf4, 0x35, 0xb7, 0x5e, 0x33, 0xfa,
0x2f, 0x4b, 0x45, 0xd1, 0xa6, 0x9e, 0xae, 0x0f, 0xe3, 0x79, 0x76, 0xfb, 0x9c, 0xc3, 0x87, 0xb3, 0x7a, 0x96, 0x7d, 0x8e,
0xaa, 0x08, 0xa6, 0xfa, 0x2b, 0x9f, 0x2a, 0x89, 0xe6, 0xd2, 0xe7, 0xec, 0xbf, 0x93, 0xfa, 0x4d, 0x77, 0x73, 0x57, 0x04,
0xb0, 0xab, 0x88, 0x95, 0xc3, 0x1e, 0x3e, 0x31, 0xe7, 0x94, 0x35, 0xbf, 0xd6, 0xa6, 0xde, 0xbf, 0x1a, 0x2e, 0x32, 0x4d,
0xea, 0x5f, 0xb4, 0xf7, 0x8b, 0x75, 0x4e, 0x79, 0x65, 0xfd, 0xea, 0xe6, 0xf5, 0xb2, 0xad, 0xc2, 0x2a, 0xa6, 0x37, 0x8d,
0xd6, 0x09, 0x95, 0x5d, 0x5f, 0xa3, 0xad, 0xb5, 0xe8, 0xc2, 0x53, 0xa8, 0x8b, 0x2b, 0x4d, 0x8d, 0x5b, 0x1d, 0xcf, 0x8d,
0xbf, 0x76, 0x41, 0x1a, 0x93, 0x33, 0xff, 0xad, 0x20, 0x2c, 0x8e, 0x3b, 0xa5, 0xe5, 0x7e, 0x54, 0x0c, 0xcf, 0xa6, 0x2e,
0xe3, 0xa9, 0xaf, 0xbd, 0x2e, 0x77, 0xa7, 0xb5, 0x2e, 0x7d, 0x77, 0xe7, 0xa8, 0x5c, 0x70, 0x71, 0xad, 0x91, 0xaa, 0x14,
0x78, 0xcd, 0xf5, 0xaf, 0x34, 0x14, 0x7d, 0x5a, 0x75, 0x62, 0xed, 0xed, 0x3d, 0xc7, 0x24, 0xbf, 0xe2, 0x73, 0x8d, 0xc7,
0x76, 0xfc, 0x6b, 0x9a, 0x1a, 0x60, 0x7c, 0xaf, 0x68, 0x0f, 0x7e, 0xb2, 0xce, 0xdf, 0xff, 0xd5, 0x27, 0x70, 0x99, 0xdc,
0xb5, 0xc7, 0xe2, 0x5f, 0x4c, 0xcf, 0x96, 0x72, 0xf0, 0xfa, 0xb7, 0xd4, 0x9b, 0xb6, 0xcb, 0x9a, 0xff, 0xfa, 0xef, 0x52,
0x6d, 0xf7, 0xec, 0xf8, 0xab, 0x71, 0xcf, 0xce, 0xe7, 0x58, 0xfc, 0x6d, 0x85, 0xd2, 0x6c, 0xaf, 0xf6, 0xdc, 0x86, 0xeb,
0xbb, 0x97, 0xf5, 0xad, 0xac, 0x7c, 0xbf, 0xa6, 0x5e, 0xe0, 0x1b, 0x74, 0xc5, 0x3b, 0xdd, 0xad, 0x83, 0xfa, 0x70, 0xd7,
0xa9, 0xd2, 0xca, 0x39, 0x6f, 0x8d, 0xbc, 0xa8, 0x9e, 0x6e, 0x4c, 0x7f, 0x37, 0x39, 0xaa, 0x2d, 0xca, 0x7a, 0xa7, 0x71,
0xa2, 0x5a, 0xe9, 0xc9, 0x3a, 0xa8, 0x98, 0xcb, 0xde, 0x7b, 0xeb, 0xba, 0xd0, 0x8c, 0xcc, 0xc4, 0x32, 0xa6, 0x9a, 0x04,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0xfa, 0xc7, 0xaa, 0x5c, 0x35, 0x77, 0xfe, 0xbc, 0x72, 0xa5, 0xc8,
0x5e, 0xeb, 0x44, 0x05, 0xad, 0xe2, 0xd6, 0xbe, 0x54, 0xb7, 0xe6, 0xc9, 0x56, 0xe9, 0xe8, 0xe3, 0x79, 0xda, 0xa7, 0x88,
0xea, 0x68, 0x09, 0x3f, 0xa3, 0x5e, 0xff, 0x34, 0xb3, 0x3e, 0x8f, 0xfd, 0xec, 0x71, 0x38, 0x54, 0x30, 0x5d, 0xd6, 0x7b,
0x5a, 0xcf, 0x68, 0x32, 0x1f, 0x3c, 0x44, 0x46, 0xa8, 0x99, 0x39, 0x8c, 0x26, 0x8f, 0xff, 0x23, 0xa3, 0xfc, 0x21, 0xdd,
0x7a, 0xb6, 0xcf, 0x1a, 0x9f, 0xc7, 0xbb, 0x6b, 0x6c, 0xc3, 0xac, 0xad, 0x36, 0x8c, 0x36, 0xa5, 0x08, 0xd0, 0x33, 0x9a,
0x89, 0x7f, 0x39, 0x90, 0x37, 0x1d, 0x32, 0x4f, 0xbf, 0xad, 0xc4, 0xd2, 0x1e, 0x3a, 0x76, 0x9b, 0xd2, 0xc8, 0x2c, 0xa6,
0x43, 0x96, 0xde, 0xb7, 0xde, 0x1d, 0xa3, 0x62, 0xd9, 0xa4, 0x5e, 0xc9, 0xd6, 0xbe, 0x54, 0x43, 0xe1, 0x60, 0xf9, 0x0c,
0x79, 0x47, 0xfe, 0xa4, 0xf8, 0x77, 0xd3, 0xf7, 0x40, 0x6b, 0x48, 0xf6, 0x7c, 0x6e, 0xb4, 0xe2, 0xaa, 0x84, 0xee, 0xbe,
0x39, 0x2d, 0xf6, 0x55, 0xde, 0x64, 0x86, 0xdb, 0x5a, 0x07, 0xfb, 0x53, 0x3c, 0xa2, 0x49, 0xe8, 0xa7, 0xc4, 0xbf, 0x06,
0xf5, 0x56, 0x3e, 0xcf, 0x26, 0x3b, 0x8b, 0xa8, 0xfd, 0x9a, 0xae, 0x72, 0xae, 0x5b, 0x02, 0xb9, 0x4f, 0x4b, 0x4b, 0xb3,
0x98, 0x15, 0xeb, 0xa2, 0x31, 0xec, 0x87, 0xe2, 0x7f, 0x44, 0xb9, 0xf2, 0xf7, 0x1d, 0xa3, 0x38, 0x73, 0xe7, 0x96, 0x8a,
0x48, 0xaf, 0x56, 0xa4, 0xbe, 0xe3, 0x55, 0x2d, 0xd6, 0x3a, 0xd8, 0xfd, 0x1d, 0xd1, 0x25, 0xdd, 0xed, 0xa2, 0xf3, 0x75,
0x8d, 0x77, 0xb7, 0x8b, 0x8e, 0xad, 0x15, 0xea, 0xb7, 0x3b, 0x57, 0xfa, 0xef, 0x19, 0x5d, 0x46, 0x59, 0x5f, 0x05, 0xfd,
0xe0, 0x15, 0x7c, 0x7f, 0xfc, 0x63, 0xaa, 0x8f, 0x12, 0x50, 0x91, 0x5c, 0xeb, 0x69, 0xe8, 0x6f, 0xe9, 0xc6, 0x3a, 0x58,
0xae, 0x51, 0x3f, 0x51, 0x49, 0x11, 0xaf, 0xd5, 0xf7, 0xcc, 0xf8, 0xef, 0x69, 0xf5, 0x2c, 0x2f, 0xd1, 0xfb, 0x9d, 0xd0,
0x9e, 0xa4, 0x2f, 0xfa, 0x3f, 0xc6, 0xff, 0x1d, 0x15, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x64, 0x07,
0x20, 0x5b, 0x6b, 0x52, 0x53, 0x74, 0x35, 0xfa, 0x68, 0x75, 0x7a, 0x12, 0x55, 0xf3, 0xac, 0x7b, 0xf5, 0x3e, 0xc5, 0x7c,
0x3a, 0x7b, 0xfe, 0x98, 0xed, 0xe8, 0x7b, 0x15, 0x2f, 0x96, 0x16, 0xa2, 0xba, 0xde, 0xa5, 0x1a, 0xef, 0xf0, 0x21, 0x9e,
0x74, 0xfa, 0x75, 0x38, 0xf7, 0xeb, 0x7d, 0x94, 0xa2, 0xa3, 0x1a, 0x1e, 0x2f, 0x99, 0x63, 0xb6, 0x15, 0x5c, 0x5e, 0xc5,
0x8b, 0xa5, 0x36, 0xf0, 0xa9, 0x53, 0x9a, 0x68, 0xd1, 0xfd, 0xeb, 0x27, 0xdd, 0xcd, 0xf0, 0x0d, 0xba, 0x5b, 0xef, 0xa3,
0x6b, 0x4e, 0x29, 0x1d, 0x48, 0x95, 0x3b, 0x60, 0x75, 0xb2, 0xaa, 0xae, 0x31, 0x2f, 0x01, 0xe5, 0x48, 0x44, 0xd7, 0xe2,
0x75, 0x32, 0x53, 0xc7, 0x57, 0x0d, 0x9c, 0xf6, 0x24, 0xf2, 0x39, 0x0d, 0xdd, 0xaf, 0xf7, 0xe9, 0xa6, 0xcb, 0x54, 0x56,
0xee, 0x20, 0xe2, 0x03, 0xb7, 0xe7, 0xcf, 0xe3, 0xab, 0xd5, 0xa7, 0x3c, 0x83, 0xbc, 0xc7, 0x17, 0xe9, 0xe3, 0x34, 0x8c,
0xec, 0xf8, 0x13, 0x72, 0xf7, 0xbe, 0xac, 0xce, 0xaa, 0x7a, 0x18, 0x37, 0x66, 0x95, 0xb4, 0x72, 0x24, 0xd2, 0xb2, 0xec,
0x54, 0x57, 0xcb, 0x3a, 0xfe, 0xdc, 0xdc, 0xbd, 0x37, 0xfe, 0xe3, 0xf6, 0xf8, 0xdb, 0x2a, 0x39, 0x5f, 0x0b, 0xf1, 0xf7,
0xc6, 0xbf, 0x27, 0xde, 0xff, 0x63, 0xf1, 0xd7, 0x2a, 0x39, 0x7f, 0xcb, 0x15, 0xf1, 0x1f, 0x66, 0xe5, 0xbc, 0x77, 0x8b,
0x7f, 0xb9, 0x59, 0x55, 0x90, 0x5b, 0xc5, 0xf3, 0xfc, 0xf8, 0xc7, 0x54, 0x1d, 0xe5, 0xe6, 0x16, 0xbf, 0x6e, 0xe3, 0x9a,
0xf7, 0xcf, 0xaf, 0xe2, 0x79, 0xee, 0xf1, 0x68, 0xfc, 0xf3, 0xe7, 0x38, 0x52, 0x7c, 0xab, 0xda, 0x45, 0x71, 0x01, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x3f, 0x35, 0x49, 0x99, 0x12, 0x75, 0xa8, 0xb9, 0xd7, 0x73, 0xc7, 0xf2, 0x17,
0xd2, 0x2d, 0xd9, 0x33, 0xf2, 0x6a, 0xaa, 0x72, 0x7c, 0x80, 0x2c, 0xcd, 0x40, 0x95, 0x1a, 0x1c, 0x7f, 0x06, 0xdc, 0xd6,
0x06, 0xb5, 0x80, 0x06, 0xa7, 0x1a, 0x1a, 0x9c, 0xe6, 0xf2, 0xdc, 0xe8, 0x86, 0xbf, 0x90, 0xe5, 0xac, 0x90, 0x39, 0x23,
0x3d, 0xee, 0x26, 0x76, 0x45, 0x13, 0x7a, 0xaa, 0x9a, 0x74, 0xfd, 0x6b, 0x9d, 0x49, 0x34, 0x03, 0x1e, 0xd3, 0xe0, 0x34,
0x97, 0x06, 0xc7, 0xaa, 0x1d, 0x55, 0x77, 0x6a, 0x73, 0xe9, 0x9c, 0x4a, 0xae, 0x8b, 0x90, 0x6f, 0xdc, 0x7a, 0x05, 0xe6,
0xf5, 0x54, 0xd7, 0xfd, 0x16, 0xb6, 0x08, 0xa5, 0x5b, 0xe4, 0x0e, 0x1b, 0x69, 0xd1, 0x7e, 0x10, 0x56, 0xcd, 0xbe, 0x48,
0xfd, 0xa2, 0xdc, 0x71, 0x5b, 0x75, 0xf8, 0x8a, 0xc3, 0xd9, 0x2a, 0x33, 0x6b, 0x16, 0x73, 0xaf, 0xd9, 0xae, 0x97, 0x93,
0x5b, 0x07, 0x48, 0xb7, 0x14, 0xe9, 0x91, 0x52, 0xcc, 0x4a, 0x54, 0xdd, 0x5d, 0x05, 0x27, 0x5b, 0x3b, 0x54, 0x0c, 0x95,
0xe0, 0xfc, 0x7d, 0x29, 0x33, 0x6b, 0x16, 0x73, 0xaf, 0x59, 0x8c, 0xd5, 0x3f, 0xbf, 0x65, 0x84, 0xaa, 0x4a, 0xd9, 0x99,
0xb3, 0x7e, 0x89, 0x8b, 0x50, 0x37, 0xf4, 0x36, 0x77, 0xc4, 0x7f, 0x7f, 0xbd, 0xfc, 0x77, 0x86, 0x6b, 0xae, 0x23, 0xef,
0x0e, 0x8c, 0x7a, 0x6e, 0x44, 0x94, 0x93, 0x96, 0xc7, 0x99, 0xcf, 0x61, 0xed, 0xec, 0xf8, 0x97, 0x9d, 0xfb, 0xbf, 0x76,
0xf1, 0x1a, 0xb7, 0x6a, 0x30, 0xfc, 0xf7, 0xeb, 0x3c, 0xdf, 0xbb, 0x23, 0x2d, 0x76, 0x1d, 0xbe, 0xf3, 0xe2, 0x9f, 0xa9,
0x26, 0xb9, 0x56, 0x67, 0x32, 0x92, 0x94, 0x4e, 0x4f, 0x98, 0x91, 0x77, 0xa7, 0xe5, 0xc5, 0xff, 0xa7, 0xa8, 0x49, 0x50,
0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xcf, 0xd5, 0xff, 0xf8, 0x3c, 0x78, 0x9e, 0xec, 0xb3, 0x93, 0xe7,
0x40, 0x94, 0xad, 0xe2, 0x89, 0xa9, 0xa9, 0x96, 0x03, 0x95, 0xbd, 0xe6, 0xf5, 0x3f, 0x4d, 0xaa, 0x5b, 0x54, 0xed, 0xaa,
0x7a, 0x81, 0x22, 0x26, 0xa2, 0xf1, 0x51, 0x47, 0xad, 0xdc, 0xcf, 0x35, 0x2a, 0x1e, 0xdd, 0xdb, 0xd8, 0xd1, 0x66, 0xb5,
0x93, 0x9f, 0x58, 0x16, 0x63, 0xf6, 0x55, 0xee, 0x98, 0xf6, 0x48, 0x8d, 0x4f, 0x44, 0x5d, 0x91, 0xab, 0xe2, 0xd1, 0x2b,
0xda, 0xa4, 0xc2, 0xc0, 0xae, 0xbf, 0x58, 0x4e, 0x7f, 0x2e, 0xae, 0xc7, 0xdb, 0x6f, 0x54, 0xf2, 0x44, 0xb4, 0x32, 0xdd,
0x54, 0xf1, 0x74, 0x57, 0xc4, 0x22, 0x2d, 0x7b, 0xd9, 0xd4, 0x92, 0xa8, 0xa6, 0x3b, 0x37, 0xfe, 0x11, 0x85, 0xc5, 0x13,
0x7c, 0x76, 0x8a, 0xe1, 0x72, 0xf2, 0x8e, 0xb5, 0x60, 0xee, 0x8a, 0xff, 0x7b, 0xae, 0x98, 0xed, 0x4a, 0xf1, 0x6e, 0x51,
0x1e, 0x41, 0xc5, 0x4a, 0x4e, 0xfc, 0x9f, 0xbd, 0x2e, 0x79, 0x3e, 0x1b, 0xd7, 0x8c, 0x2c, 0xa6, 0x09, 0xbb, 0x22, 0x63,
0x3d, 0x12, 0xaf, 0x98, 0xbb, 0x35, 0x3e, 0x11, 0x9f, 0x8d, 0xab, 0xd4, 0x47, 0x51, 0x9d, 0xc5, 0x3d, 0x55, 0x9d, 0x62,
0x57, 0xcc, 0xdd, 0x1a, 0x9f, 0x27, 0xab, 0x78, 0xfc, 0x6a, 0x3a, 0xad, 0x58, 0x87, 0x77, 0x43, 0xc7, 0xb2, 0xb1, 0x3a,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xd6, 0x3f,
0xac, 0x03, 0xf1, 0x87, 0x1f, 0x1b, 0xff, 0x7f, 0x01 };
// Font glyphs rectangles data (on atlas)
static const Rectangle bluishFontRecs[189] = {
{ 4, 4, 5 , 10 },
{ 17, 4, 2 , 8 },
{ 27, 4, 4 , 3 },
{ 39, 4, 6 , 8 },
{ 53, 4, 5 , 10 },
{ 66, 4, 6 , 8 },
{ 80, 4, 5 , 10 },
{ 93, 4, 2 , 3 },
{ 103, 4, 3 , 8 },
{ 114, 4, 3 , 8 },
{ 125, 4, 6 , 6 },
{ 139, 4, 6 , 6 },
{ 153, 4, 2 , 3 },
{ 163, 4, 5 , 2 },
{ 176, 4, 2 , 2 },
{ 186, 4, 6 , 8 },
{ 200, 4, 5 , 8 },
{ 213, 4, 3 , 8 },
{ 224, 4, 5 , 8 },
{ 237, 4, 5 , 8 },
{ 4, 22, 5 , 8 },
{ 17, 22, 5 , 8 },
{ 30, 22, 5 , 8 },
{ 43, 22, 5 , 8 },
{ 56, 22, 5 , 8 },
{ 69, 22, 5 , 8 },
{ 82, 22, 2 , 8 },
{ 92, 22, 2 , 9 },
{ 102, 22, 4 , 6 },
{ 114, 22, 5 , 4 },
{ 127, 22, 4 , 6 },
{ 139, 22, 5 , 8 },
{ 152, 22, 6 , 8 },
{ 166, 22, 5 , 8 },
{ 179, 22, 5 , 8 },
{ 192, 22, 5 , 8 },
{ 205, 22, 5 , 8 },
{ 218, 22, 5 , 8 },
{ 231, 22, 5 , 8 },
{ 4, 40, 5 , 8 },
{ 17, 40, 5 , 8 },
{ 30, 40, 4 , 8 },
{ 42, 40, 5 , 8 },
{ 55, 40, 5 , 8 },
{ 68, 40, 5 , 8 },
{ 81, 40, 8 , 8 },
{ 97, 40, 5 , 8 },
{ 110, 40, 5 , 8 },
{ 123, 40, 5 , 8 },
{ 136, 40, 5 , 9 },
{ 149, 40, 5 , 8 },
{ 162, 40, 5 , 8 },
{ 175, 40, 6 , 8 },
{ 189, 40, 5 , 8 },
{ 202, 40, 5 , 8 },
{ 215, 40, 8 , 8 },
{ 231, 40, 5 , 8 },
{ 4, 58, 5 , 8 },
{ 17, 58, 5 , 8 },
{ 30, 58, 3 , 8 },
{ 41, 58, 6 , 8 },
{ 55, 58, 3 , 8 },
{ 66, 58, 6 , 4 },
{ 80, 58, 5 , 1 },
{ 93, 58, 2 , 3 },
{ 103, 58, 5 , 6 },
{ 116, 58, 5 , 8 },
{ 129, 58, 5 , 6 },
{ 142, 58, 5 , 8 },
{ 155, 58, 5 , 6 },
{ 168, 58, 5 , 8 },
{ 181, 58, 5 , 7 },
{ 194, 58, 5 , 8 },
{ 207, 58, 2 , 8 },
{ 217, 58, 3 , 9 },
{ 228, 58, 5 , 8 },
{ 241, 58, 2 , 8 },
{ 4, 76, 8 , 6 },
{ 20, 76, 5 , 6 },
{ 33, 76, 5 , 6 },
{ 46, 76, 5 , 7 },
{ 59, 76, 5 , 7 },
{ 72, 76, 5 , 6 },
{ 85, 76, 5 , 6 },
{ 98, 76, 5 , 8 },
{ 111, 76, 5 , 6 },
{ 124, 76, 5 , 6 },
{ 137, 76, 8 , 6 },
{ 153, 76, 5 , 6 },
{ 166, 76, 5 , 7 },
{ 179, 76, 5 , 6 },
{ 192, 76, 4 , 8 },
{ 204, 76, 2 , 10 },
{ 214, 76, 4 , 8 },
{ 226, 76, 6 , 4 },
{ 240, 76, 2 , 8 },
{ 4, 94, 5 , 8 },
{ 17, 94, 5 , 8 },
{ 30, 94, 0 , 0 },
{ 38, 94, 6 , 8 },
{ 52, 94, 5 , 10 },
{ 65, 94, 5 , 10 },
{ 78, 94, 5 , 9 },
{ 91, 94, 7 , 8 },
{ 106, 94, 4 , 6 },
{ 118, 94, 5 , 4 },
{ 131, 94, 5 , 3 },
{ 144, 94, 7 , 8 },
{ 159, 94, 5 , 2 },
{ 172, 94, 4 , 4 },
{ 184, 94, 6 , 8 },
{ 198, 94, 4 , 6 },
{ 210, 94, 4 , 6 },
{ 222, 94, 0 , 0 },
{ 230, 94, 5 , 9 },
{ 4, 112, 6 , 8 },
{ 18, 112, 2 , 2 },
{ 28, 112, 0 , 0 },
{ 36, 112, 3 , 6 },
{ 47, 112, 4 , 6 },
{ 59, 112, 5 , 4 },
{ 72, 112, 6 , 8 },
{ 86, 112, 6 , 6 },
{ 100, 112, 5 , 10 },
{ 113, 112, 5 , 8 },
{ 126, 112, 5 , 10 },
{ 139, 112, 5 , 10 },
{ 152, 112, 5 , 10 },
{ 165, 112, 5 , 10 },
{ 178, 112, 5 , 10 },
{ 191, 112, 5 , 10 },
{ 204, 112, 6 , 8 },
{ 218, 112, 5 , 9 },
{ 231, 112, 5 , 10 },
{ 4, 130, 5 , 10 },
{ 17, 130, 5 , 10 },
{ 30, 130, 5 , 10 },
{ 43, 130, 4 , 10 },
{ 55, 130, 4 , 10 },
{ 67, 130, 4 , 10 },
{ 79, 130, 4 , 10 },
{ 91, 130, 6 , 8 },
{ 105, 130, 5 , 10 },
{ 118, 130, 5 , 10 },
{ 131, 130, 5 , 10 },
{ 144, 130, 5 , 10 },
{ 157, 130, 5 , 10 },
{ 170, 130, 5 , 10 },
{ 183, 130, 4 , 4 },
{ 195, 130, 5 , 10 },
{ 208, 130, 5 , 10 },
{ 221, 130, 5 , 10 },
{ 234, 130, 5 , 10 },
{ 4, 148, 5 , 10 },
{ 17, 148, 5 , 10 },
{ 30, 148, 5 , 8 },
{ 43, 148, 5 , 8 },
{ 56, 148, 5 , 9 },
{ 69, 148, 5 , 9 },
{ 82, 148, 5 , 9 },
{ 95, 148, 5 , 9 },
{ 108, 148, 5 , 8 },
{ 121, 148, 5 , 10 },
{ 134, 148, 6 , 6 },
{ 148, 148, 5 , 7 },
{ 161, 148, 5 , 9 },
{ 174, 148, 5 , 9 },
{ 187, 148, 5 , 9 },
{ 200, 148, 5 , 8 },
{ 213, 148, 3 , 9 },
{ 224, 148, 3 , 9 },
{ 235, 148, 4 , 9 },
{ 4, 166, 4 , 8 },
{ 16, 166, 5 , 9 },
{ 29, 166, 5 , 9 },
{ 42, 166, 5 , 9 },
{ 55, 166, 5 , 9 },
{ 68, 166, 5 , 9 },
{ 81, 166, 5 , 9 },
{ 94, 166, 5 , 8 },
{ 107, 166, 4 , 6 },
{ 119, 166, 5 , 8 },
{ 132, 166, 5 , 9 },
{ 145, 166, 5 , 9 },
{ 158, 166, 5 , 9 },
{ 171, 166, 5 , 8 },
{ 184, 166, 5 , 10 },
{ 197, 166, 5 , 10 },
{ 210, 166, 5 , 9 },
};
// Font glyphs info data
// NOTE: No glyphs.image data provided
static const GlyphInfo bluishFontGlyphs[189] = {
{ 32, 0, 0, 5, { 0 }},
{ 33, 0, 1, 2, { 0 }},
{ 34, 0, 1, 4, { 0 }},
{ 35, 0, 1, 6, { 0 }},
{ 36, 0, 0, 5, { 0 }},
{ 37, 0, 1, 6, { 0 }},
{ 38, 0, 0, 5, { 0 }},
{ 39, 0, 1, 2, { 0 }},
{ 40, 0, 1, 3, { 0 }},
{ 41, 0, 1, 3, { 0 }},
{ 42, 0, 1, 6, { 0 }},
{ 43, 0, 2, 6, { 0 }},
{ 44, 0, 7, 2, { 0 }},
{ 45, 0, 4, 5, { 0 }},
{ 46, 0, 7, 2, { 0 }},
{ 47, 0, 1, 6, { 0 }},
{ 48, 0, 1, 5, { 0 }},
{ 49, 0, 1, 3, { 0 }},
{ 50, 0, 1, 5, { 0 }},
{ 51, 0, 1, 5, { 0 }},
{ 52, 0, 1, 5, { 0 }},
{ 53, 0, 1, 5, { 0 }},
{ 54, 0, 1, 5, { 0 }},
{ 55, 0, 1, 5, { 0 }},
{ 56, 0, 1, 5, { 0 }},
{ 57, 0, 1, 5, { 0 }},
{ 58, 0, 1, 2, { 0 }},
{ 59, 0, 1, 2, { 0 }},
{ 60, 0, 2, 4, { 0 }},
{ 61, 0, 3, 5, { 0 }},
{ 62, 0, 2, 4, { 0 }},
{ 63, 0, 1, 5, { 0 }},
{ 64, 0, 1, 6, { 0 }},
{ 65, 0, 1, 5, { 0 }},
{ 66, 0, 1, 5, { 0 }},
{ 67, 0, 1, 5, { 0 }},
{ 68, 0, 1, 5, { 0 }},
{ 69, 0, 1, 5, { 0 }},
{ 70, 0, 1, 5, { 0 }},
{ 71, 0, 1, 5, { 0 }},
{ 72, 0, 1, 5, { 0 }},
{ 73, 0, 1, 4, { 0 }},
{ 74, 0, 1, 5, { 0 }},
{ 75, 0, 1, 5, { 0 }},
{ 76, 0, 1, 5, { 0 }},
{ 77, 0, 1, 8, { 0 }},
{ 78, 0, 1, 5, { 0 }},
{ 79, 0, 1, 5, { 0 }},
{ 80, 0, 1, 5, { 0 }},
{ 81, 0, 1, 5, { 0 }},
{ 82, 0, 1, 5, { 0 }},
{ 83, 0, 1, 5, { 0 }},
{ 84, 0, 1, 6, { 0 }},
{ 85, 0, 1, 5, { 0 }},
{ 86, 0, 1, 5, { 0 }},
{ 87, 0, 1, 8, { 0 }},
{ 88, 0, 1, 5, { 0 }},
{ 89, 0, 1, 5, { 0 }},
{ 90, 0, 1, 5, { 0 }},
{ 91, 0, 1, 3, { 0 }},
{ 92, 0, 1, 6, { 0 }},
{ 93, 0, 1, 3, { 0 }},
{ 94, 0, 1, 6, { 0 }},
{ 95, 0, 9, 5, { 0 }},
{ 96, 0, 1, 2, { 0 }},
{ 97, 0, 3, 5, { 0 }},
{ 98, 0, 1, 5, { 0 }},
{ 99, 0, 3, 5, { 0 }},
{ 100, 0, 1, 5, { 0 }},
{ 101, 0, 3, 5, { 0 }},
{ 102, 0, 1, 5, { 0 }},
{ 103, 0, 3, 5, { 0 }},
{ 104, 0, 1, 5, { 0 }},
{ 105, 0, 1, 2, { 0 }},
{ 106, 0, 1, 3, { 0 }},
{ 107, 0, 1, 5, { 0 }},
{ 108, 0, 1, 2, { 0 }},
{ 109, 0, 3, 8, { 0 }},
{ 110, 0, 3, 5, { 0 }},
{ 111, 0, 3, 5, { 0 }},
{ 112, 0, 3, 5, { 0 }},
{ 113, 0, 3, 5, { 0 }},
{ 114, 0, 3, 5, { 0 }},
{ 115, 0, 3, 5, { 0 }},
{ 116, 0, 1, 5, { 0 }},
{ 117, 0, 3, 5, { 0 }},
{ 118, 0, 3, 5, { 0 }},
{ 119, 0, 3, 8, { 0 }},
{ 120, 0, 3, 5, { 0 }},
{ 121, 0, 3, 5, { 0 }},
{ 122, 0, 3, 5, { 0 }},
{ 123, 0, 1, 4, { 0 }},
{ 124, 0, 0, 2, { 0 }},
{ 125, 0, 1, 4, { 0 }},
{ 126, 0, 3, 6, { 0 }},
{ 161, 0, 1, 2, { 0 }},
{ 162, 0, 2, 5, { 0 }},
{ 163, 0, 1, 5, { 0 }},
{ 8364, 0, 0, 0, { 0 }},
{ 165, 0, 1, 6, { 0 }},
{ 352, 0, -1, 5, { 0 }},
{ 167, 0, 0, 5, { 0 }},
{ 353, 0, 0, 5, { 0 }},
{ 169, 0, 1, 7, { 0 }},
{ 170, 0, -1, 4, { 0 }},
{ 171, 0, 3, 5, { 0 }},
{ 172, 0, 4, 5, { 0 }},
{ 174, 0, 1, 7, { 0 }},
{ 175, 0, -1, 5, { 0 }},
{ 176, 0, -1, 4, { 0 }},
{ 177, 0, 1, 6, { 0 }},
{ 178, 0, -1, 4, { 0 }},
{ 179, 0, -1, 4, { 0 }},
{ 381, 0, 0, 0, { 0 }},
{ 181, 0, 1, 5, { 0 }},
{ 182, 0, 1, 6, { 0 }},
{ 183, 0, 4, 2, { 0 }},
{ 382, 0, 0, 0, { 0 }},
{ 185, 0, -1, 3, { 0 }},
{ 186, 0, -1, 4, { 0 }},
{ 187, 0, 3, 5, { 0 }},
{ 338, 0, 1, 6, { 0 }},
{ 339, 0, 3, 6, { 0 }},
{ 376, 0, -1, 5, { 0 }},
{ 191, 0, 1, 5, { 0 }},
{ 192, 0, -1, 5, { 0 }},
{ 193, 0, -1, 5, { 0 }},
{ 194, 0, -1, 5, { 0 }},
{ 195, 0, -1, 5, { 0 }},
{ 196, 0, -1, 5, { 0 }},
{ 197, 0, -1, 5, { 0 }},
{ 198, 0, 1, 6, { 0 }},
{ 199, 0, 1, 5, { 0 }},
{ 200, 0, -1, 5, { 0 }},
{ 201, 0, -1, 5, { 0 }},
{ 202, 0, -1, 5, { 0 }},
{ 203, 0, -1, 5, { 0 }},
{ 204, 0, -1, 4, { 0 }},
{ 205, 0, -1, 4, { 0 }},
{ 206, 0, -1, 4, { 0 }},
{ 207, 0, -1, 4, { 0 }},
{ 208, 0, 1, 6, { 0 }},
{ 209, 0, -1, 5, { 0 }},
{ 210, 0, -1, 5, { 0 }},
{ 211, 0, -1, 5, { 0 }},
{ 212, 0, -1, 5, { 0 }},
{ 213, 0, -1, 5, { 0 }},
{ 214, 0, -1, 5, { 0 }},
{ 215, 0, 3, 4, { 0 }},
{ 216, 0, 0, 5, { 0 }},
{ 217, 0, -1, 5, { 0 }},
{ 218, 0, -1, 5, { 0 }},
{ 219, 0, -1, 5, { 0 }},
{ 220, 0, -1, 5, { 0 }},
{ 221, 0, -1, 5, { 0 }},
{ 222, 0, 1, 5, { 0 }},
{ 223, 0, 1, 5, { 0 }},
{ 224, 0, 0, 5, { 0 }},
{ 225, 0, 0, 5, { 0 }},
{ 226, 0, 0, 5, { 0 }},
{ 227, 0, 0, 5, { 0 }},
{ 228, 0, 1, 5, { 0 }},
{ 229, 0, -1, 5, { 0 }},
{ 230, 0, 3, 6, { 0 }},
{ 231, 0, 3, 5, { 0 }},
{ 232, 0, 0, 5, { 0 }},
{ 233, 0, 0, 5, { 0 }},
{ 234, 0, 0, 5, { 0 }},
{ 235, 0, 1, 5, { 0 }},
{ 236, 0, 0, 3, { 0 }},
{ 237, 0, 0, 2, { 0 }},
{ 238, 0, 0, 3, { 0 }},
{ 239, 0, 1, 3, { 0 }},
{ 240, 0, 0, 5, { 0 }},
{ 241, 0, 0, 5, { 0 }},
{ 242, 0, 0, 5, { 0 }},
{ 243, 0, 0, 5, { 0 }},
{ 244, 0, 0, 5, { 0 }},
{ 245, 0, 0, 5, { 0 }},
{ 246, 0, 1, 5, { 0 }},
{ 247, 0, 2, 4, { 0 }},
{ 248, 0, 2, 5, { 0 }},
{ 249, 0, 0, 5, { 0 }},
{ 250, 0, 0, 5, { 0 }},
{ 251, 0, 0, 5, { 0 }},
{ 252, 0, 1, 5, { 0 }},
{ 253, 0, 0, 5, { 0 }},
{ 254, 0, 0, 5, { 0 }},
{ 255, 0, 1, 5, { 0 }},
};
// Style loading function: Bluish
static void GuiLoadStyleBluish(void)
{
// Load style properties provided
// NOTE: Default properties are propagated
for (int i = 0; i < BLUISH_STYLE_PROPS_COUNT; i++)
{
GuiSetStyle(bluishStyleProps[i].controlId, bluishStyleProps[i].propertyId, bluishStyleProps[i].propertyValue);
}
// Custom font loading
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
int bluishFontDataSize = 0;
unsigned char *data = DecompressData(bluishFontData, BLUISH_STYLE_FONT_ATLAS_COMP_SIZE, &bluishFontDataSize);
Image imFont = { data, 256, 256, 1, 2 };
Font font = { 0 };
font.baseSize = 10;
font.glyphCount = 189;
// Load texture from image
font.texture = LoadTextureFromImage(imFont);
UnloadImage(imFont); // Uncompressed image data can be unloaded from memory
// Copy char recs data from global fontRecs
// NOTE: Required to avoid issues if trying to free font
font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle));
memcpy(font.recs, bluishFontRecs, font.glyphCount*sizeof(Rectangle));
// Copy font char info data from global fontChars
// NOTE: Required to avoid issues if trying to free font
font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo));
memcpy(font.glyphs, bluishFontGlyphs, font.glyphCount*sizeof(GlyphInfo));
GuiSetFont(font);
// Setup a white rectangle on the font to be used on shapes drawing,
// it makes possible to draw shapes and text (full UI) in a single draw call
Rectangle fontWhiteRec = { 254, 254, 1, 1 };
SetShapesTexture(font.texture, fontWhiteRec);
//-----------------------------------------------------------------
// TODO: Custom user style setup: Set specific properties here (if required)
// i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

View File

@ -0,0 +1,24 @@
#
# rgs style text file (v4.0) - raygui style file generated using rGuiStyler
#
# Provided info:
# f fontGenSize charsetFileName fontFileName
# p <controlId> <propertyId> <propertyValue> Property description
#
# WARNING: This style uses a custom font, must be provided with style file
#
f 10 charset.txt homespun.ttf
p 00 00 0x5ca6a6ff DEFAULT_BORDER_COLOR_NORMAL
p 00 01 0xb4e8f3ff DEFAULT_BASE_COLOR_NORMAL
p 00 02 0x447e77ff DEFAULT_TEXT_COLOR_NORMAL
p 00 03 0x5f8792ff DEFAULT_BORDER_COLOR_FOCUSED
p 00 04 0xcdeff7ff DEFAULT_BASE_COLOR_FOCUSED
p 00 05 0x4c6c74ff DEFAULT_TEXT_COLOR_FOCUSED
p 00 06 0x3b5b5fff DEFAULT_BORDER_COLOR_PRESSED
p 00 07 0xeaffffff DEFAULT_BASE_COLOR_PRESSED
p 00 08 0x275057ff DEFAULT_TEXT_COLOR_PRESSED
p 00 09 0x96aaacff DEFAULT_BORDER_COLOR_DISABLED
p 00 10 0xc8d7d9ff DEFAULT_BASE_COLOR_DISABLED
p 00 11 0x8c9c9eff DEFAULT_TEXT_COLOR_DISABLED
p 00 18 0x84adb7ff LINE_COLOR
p 00 19 0xe8eef1ff BACKGROUND_COLOR

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

View File

@ -1,16 +1,27 @@
style: candy
-------------
## style: candy
Sweet, colorful, tasty! Enjoy this funfair ride and be careful with the witch of the candy house!
![candy style table](style_table.png)
![candy style table](style_candy.png)
screenshot
-----------
## style: provided files
Several options are provided to add the style to a `raygui` application, choose the one that better fits the project.
| file name | description |
| :-------- | :---------- |
| `style_candy.rgs` | Binary style file (raygui 4.0), font data compressed (recs, glyphs) |
| `style_candy.txt.rgs` | Text style file, no font data, requires external font provided |
| `style_candy.old.rgs` | Binary style file (raygui 3.x), font data uncompressed (recs, glyphs) |
| `style_candy.h` | Embeddable style as code file, self-contained, includes font data |
| `style_candy.png` | Style table image, contains `rGSf` chunk with binary `rgs` file data |
## screenshot
![candy style screen](screenshot.png)
about font
-----------
## about font
"V5 Eastergothic" font by vFive Digital (Roberto Christen).
100% free font, downloaded from dafont.com: [v5eastergothic](https://www.dafont.com/v5eastergothic.font)

View File

@ -1,346 +0,0 @@
//////////////////////////////////////////////////////////////////////////////////
// //
// StyleAsCode exporter v1.2 - Style data exported as a values array //
// //
// USAGE: On init call: GuiLoadStyleCandy(); //
// //
// more info and bugs-report: github.com/raysan5/raygui //
// feedback and support: ray[at]raylibtech.com //
// //
// Copyright (c) 2020-2023 raylib technologies (@raylibtech) //
// //
//////////////////////////////////////////////////////////////////////////////////
#define CANDY_STYLE_PROPS_COUNT 16
// Custom style name: candy
static const GuiStyleProp candyStyleProps[CANDY_STYLE_PROPS_COUNT] = {
{ 0, 0, 0xe58b68ff }, // DEFAULT_BORDER_COLOR_NORMAL
{ 0, 1, 0xfeda96ff }, // DEFAULT_BASE_COLOR_NORMAL
{ 0, 2, 0xe59b5fff }, // DEFAULT_TEXT_COLOR_NORMAL
{ 0, 3, 0xee813fff }, // DEFAULT_BORDER_COLOR_FOCUSED
{ 0, 4, 0xfcd85bff }, // DEFAULT_BASE_COLOR_FOCUSED
{ 0, 5, 0xfc6955ff }, // DEFAULT_TEXT_COLOR_FOCUSED
{ 0, 6, 0xb34848ff }, // DEFAULT_BORDER_COLOR_PRESSED
{ 0, 7, 0xeb7272ff }, // DEFAULT_BASE_COLOR_PRESSED
{ 0, 8, 0xbd4a4aff }, // DEFAULT_TEXT_COLOR_PRESSED
{ 0, 9, 0x94795dff }, // DEFAULT_BORDER_COLOR_DISABLED
{ 0, 10, 0xc2a37aff }, // DEFAULT_BASE_COLOR_DISABLED
{ 0, 11, 0x9c8369ff }, // DEFAULT_TEXT_COLOR_DISABLED
{ 0, 16, 0x0000000f }, // DEFAULT_TEXT_SIZE
{ 0, 17, 0x00000000 }, // DEFAULT_TEXT_SPACING
{ 0, 18, 0xd77575ff }, // DEFAULT_LINE_COLOR
{ 0, 19, 0xfff5e1ff }, // DEFAULT_BACKGROUND_COLOR
};
// WARNING: This style uses a custom font: (size: 15, spacing: 0)
#define CANDY_COMPRESSED_DATA_SIZE 1129
// Font image pixels data compressed (DEFLATE)
// NOTE: Original pixel data simplified to GRAYSCALE
static unsigned char candyFontData[CANDY_COMPRESSED_DATA_SIZE] = { 0xed,
0xdd, 0xe1, 0x6e, 0xab, 0x38, 0x10, 0x06, 0x50, 0xbf, 0xff, 0x4b, 0x7b, 0xb5, 0xd2, 0x4a, 0x55, 0xef, 0xde, 0x80, 0x3d,
0x9e, 0x31, 0x4e, 0x72, 0x7a, 0xfe, 0x95, 0x36, 0x09, 0x0c, 0x36, 0x10, 0x3e, 0x9b, 0xde, 0x00, 0x00, 0x7e, 0xf9, 0xf7,
0xe7, 0xff, 0xbf, 0x6b, 0x7f, 0xf9, 0xed, 0xcf, 0xdf, 0xf6, 0xbf, 0x2e, 0xbd, 0x5a, 0x12, 0xff, 0xcf, 0xeb, 0x4f, 0x32,
0xf6, 0x0a, 0xed, 0x62, 0xc9, 0xfd, 0x67, 0xfe, 0xf3, 0x77, 0x3d, 0xe5, 0xdd, 0x5f, 0xbd, 0xce, 0xdd, 0x27, 0xea, 0x97,
0xeb, 0x52, 0x59, 0xff, 0x3f, 0x7f, 0x32, 0xeb, 0x7f, 0xfd, 0x9a, 0x2b, 0x15, 0xfb, 0x59, 0x9b, 0x9e, 0x50, 0xff, 0xf9,
0xbd, 0xe8, 0x7a, 0x0d, 0x5e, 0xef, 0x63, 0x91, 0x36, 0x94, 0x55, 0xff, 0xbb, 0xbf, 0x9d, 0xaf, 0x62, 0xff, 0xaf, 0x02,
0xd1, 0xde, 0x61, 0xb4, 0x35, 0x5f, 0x7d, 0xae, 0xab, 0x4f, 0xfc, 0x7a, 0xcf, 0xc9, 0xd8, 0xc2, 0xb3, 0x6b, 0x7c, 0xbd,
0x2f, 0x9d, 0x5a, 0xff, 0xf5, 0xa3, 0xc3, 0xca, 0x16, 0xbd, 0x6a, 0x69, 0xb1, 0x3e, 0x2b, 0x6f, 0x0b, 0x67, 0xd5, 0x7f,
0x57, 0xff, 0xbf, 0x56, 0xff, 0x68, 0x0f, 0x39, 0xbe, 0x76, 0x79, 0xed, 0xbf, 0xbe, 0xfe, 0x57, 0xfb, 0x5c, 0x9f, 0xda,
0x92, 0xbd, 0xe4, 0x93, 0xee, 0xe9, 0xff, 0xc7, 0xfa, 0x85, 0x9a, 0xfe, 0xff, 0xee, 0xf8, 0xdf, 0xb6, 0xb7, 0xfe, 0x9f,
0x5a, 0xce, 0xd6, 0xff, 0x8c, 0x6b, 0x85, 0x1e, 0x38, 0x9f, 0xbe, 0x3b, 0xe3, 0xa9, 0x3c, 0xfe, 0xb7, 0xc7, 0xb6, 0x5c,
0x4f, 0xec, 0x49, 0x9f, 0x3e, 0xff, 0xbb, 0x3b, 0xff, 0x5f, 0x39, 0x3b, 0x98, 0x3b, 0xb2, 0xc5, 0xae, 0xf3, 0xd4, 0xff,
0xc9, 0xfe, 0x7f, 0xe4, 0x7f, 0xdb, 0x87, 0xd5, 0xbf, 0x0f, 0xb4, 0xa6, 0xf1, 0x25, 0x77, 0xe7, 0xb1, 0xa7, 0x7e, 0x9b,
0xb4, 0xef, 0x5d, 0x4e, 0xdb, 0x32, 0xe7, 0xd6, 0xe9, 0xbd, 0xeb, 0x3f, 0xff, 0xfd, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00,
0xc0, 0xe7, 0xde, 0x9d, 0x89, 0x66, 0x37, 0xe6, 0xef, 0x57, 0xc6, 0xff, 0xef, 0x3e, 0x49, 0x5a, 0x91, 0xe0, 0x8e, 0xa5,
0x13, 0x46, 0xd2, 0x85, 0xb9, 0xcb, 0xa2, 0x77, 0x81, 0xc7, 0xf2, 0x99, 0x99, 0xd9, 0x9d, 0xca, 0x65, 0x15, 0x79, 0xa9,
0xc8, 0xda, 0xaf, 0xe5, 0xbc, 0xb3, 0x97, 0xad, 0xde, 0x3d, 0x8f, 0xe5, 0x91, 0x57, 0xee, 0xd6, 0x56, 0xac, 0xe1, 0xc8,
0x5a, 0xf6, 0x94, 0xb1, 0x0b, 0xbf, 0x53, 0x9c, 0xef, 0x50, 0xff, 0x7e, 0x9b, 0x48, 0x9d, 0xeb, 0x71, 0xae, 0x93, 0xfd,
0x77, 0xad, 0xaa, 0x2e, 0xe9, 0x94, 0xd5, 0xfa, 0x47, 0xea, 0x7f, 0x3d, 0x66, 0xa6, 0x5d, 0xee, 0x6f, 0xf5, 0x69, 0xc9,
0xd5, 0xd6, 0x38, 0x72, 0x3c, 0x8d, 0xa6, 0xfe, 0xe7, 0x8f, 0x71, 0xfb, 0xfb, 0xff, 0xfb, 0xb1, 0x45, 0xbd, 0xec, 0xc8,
0xd9, 0x0a, 0x5a, 0x47, 0x0f, 0x8d, 0x92, 0x88, 0xef, 0x39, 0xf1, 0x36, 0xbe, 0x56, 0xff, 0x8a, 0x3e, 0x60, 0x36, 0xe1,
0x75, 0x52, 0xff, 0x1f, 0xdd, 0xe2, 0x6b, 0x9f, 0x26, 0xd6, 0xab, 0xf6, 0xe9, 0x6c, 0xf2, 0xd3, 0xd7, 0x54, 0x67, 0x9c,
0x39, 0x7f, 0x6b, 0xfd, 0x4f, 0xcd, 0x35, 0x9e, 0x75, 0xfe, 0x17, 0xbd, 0xfe, 0x8f, 0x5f, 0xc5, 0xde, 0x5f, 0x6d, 0xee,
0x1b, 0xe9, 0x76, 0x62, 0xfd, 0x77, 0x5e, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0x92, 0xff, 0x5e, 0x4b,
0x63, 0xcf, 0x65, 0x98, 0x7a, 0x49, 0x1e, 0x2a, 0x76, 0xbf, 0x7c, 0x6f, 0x76, 0x3b, 0x9a, 0x96, 0xcf, 0xc8, 0x03, 0x9c,
0x90, 0xd4, 0x5e, 0x4d, 0x04, 0x5f, 0xef, 0x4d, 0x7d, 0x3a, 0xa1, 0x78, 0x52, 0xb2, 0xbd, 0x3a, 0x2d, 0xf3, 0x1e, 0xf5,
0x8f, 0x26, 0xd0, 0xef, 0x6a, 0xdc, 0x8f, 0x1d, 0xbd, 0xf0, 0x2e, 0xf5, 0x6f, 0xc1, 0x3e, 0x6b, 0x36, 0x83, 0xda, 0x4a,
0xea, 0xbf, 0x7b, 0x59, 0x6e, 0x5a, 0x2a, 0x27, 0x0f, 0x16, 0x49, 0x69, 0xad, 0xb7, 0x9f, 0x33, 0xda, 0xff, 0x29, 0xf5,
0x6f, 0xc7, 0xf6, 0xff, 0xd9, 0xef, 0xfd, 0xc4, 0xf6, 0xce, 0x7e, 0xdd, 0x9d, 0xb9, 0xde, 0x13, 0xfa, 0x7f, 0xf5, 0x9f,
0xef, 0x73, 0x9e, 0xae, 0x7f, 0x7b, 0x39, 0xfa, 0x4c, 0xfd, 0xeb, 0xeb, 0xff, 0x7c, 0xfb, 0x1f, 0x4f, 0x4b, 0xc7, 0x46,
0x78, 0xe6, 0x5e, 0xff, 0xf7, 0xe0, 0xf3, 0x8d, 0xc6, 0x46, 0x20, 0x66, 0x5e, 0xff, 0x8f, 0x1c, 0xc1, 0x73, 0xbf, 0x6f,
0x88, 0xa6, 0xe5, 0xcd, 0x7d, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0x98, 0xfe, 0xae, 0xcd, 0xc9, 0xf4, 0xe1,
0xa4, 0x77, 0x9b, 0x4a, 0x86, 0xb7, 0xa1, 0x59, 0x44, 0xfb, 0xf4, 0xff, 0xe4, 0xdd, 0x07, 0x8f, 0xde, 0xf3, 0x6e, 0x0b,
0x29, 0xf2, 0x93, 0xea, 0xdf, 0x86, 0xe6, 0xc7, 0xbe, 0xaf, 0xff, 0xab, 0xa5, 0xd1, 0x19, 0xcf, 0x76, 0xcf, 0xbb, 0x9a,
0x97, 0x15, 0x8c, 0x3c, 0x21, 0x7e, 0xad, 0xfe, 0xf1, 0x6c, 0xc6, 0x5d, 0x32, 0x69, 0x6e, 0x0f, 0xd8, 0x33, 0x1f, 0x64,
0x3f, 0xa8, 0xfe, 0xb1, 0xc4, 0x4f, 0x7e, 0xfd, 0x5b, 0xfa, 0xd3, 0xfb, 0xcf, 0xac, 0xff, 0xc8, 0x58, 0x81, 0xbc, 0x3c,
0x50, 0x2c, 0xd5, 0x33, 0x52, 0xff, 0xb9, 0xed, 0x51, 0xd7, 0xfe, 0x7b, 0xa0, 0xce, 0x91, 0x25, 0x99, 0xe7, 0x41, 0xe7,
0x3e, 0xcd, 0x62, 0x66, 0x8b, 0xcf, 0xec, 0x01, 0xd5, 0x39, 0xb9, 0xd9, 0x33, 0x3d, 0xf5, 0x1f, 0x1b, 0x5b, 0xd3, 0x8e,
0xa8, 0x7f, 0xfc, 0xf9, 0x08, 0xb3, 0x75, 0xee, 0x0f, 0x8e, 0x83, 0xad, 0x68, 0x03, 0xf1, 0xeb, 0x8d, 0xa6, 0xfe, 0x8f,
0x5c, 0x23, 0xd7, 0xcc, 0xad, 0x1e, 0x1b, 0x91, 0x95, 0xf9, 0x84, 0x94, 0xb5, 0xd7, 0x8c, 0x3d, 0xc7, 0xa3, 0x4d, 0xef,
0x01, 0xea, 0xff, 0x7b, 0xc9, 0x7b, 0xcc, 0x90, 0xdf, 0x92, 0xae, 0xf4, 0xdb, 0xc3, 0x6b, 0xb4, 0xf2, 0x4d, 0x43, 0xfe,
0x13, 0x67, 0x7a, 0xe1, 0x13, 0x92, 0xf6, 0x6d, 0xcd, 0xba, 0xbf, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0xff, 0x8e,
0xfd, 0xee, 0x3e, 0xe5, 0x79, 0x9d, 0x2b, 0x6b, 0xc1, 0x19, 0xb1, 0xdb, 0x40, 0x72, 0xba, 0x07, 0xdf, 0x6f, 0x66, 0xc6,
0xb2, 0x76, 0xe4, 0xbc, 0x94, 0xfd, 0x98, 0xfa, 0x9f, 0x38, 0x03, 0x6b, 0x56, 0x1a, 0xeb, 0xd4, 0x79, 0x09, 0xab, 0xee,
0x94, 0x7e, 0x47, 0xfd, 0x67, 0xd7, 0x2e, 0xbf, 0xfe, 0x15, 0x79, 0xfb, 0xbc, 0xf6, 0x3f, 0x93, 0x57, 0x3b, 0xb5, 0xfe,
0x91, 0xf4, 0x5f, 0xdf, 0x58, 0xff, 0xb5, 0xf9, 0x3e, 0x5b, 0x71, 0xfd, 0xdf, 0xbf, 0xfd, 0x67, 0x6c, 0x8d, 0xf3, 0xda,
0x7f, 0xb4, 0xdf, 0x9f, 0xa9, 0x7f, 0xff, 0xd8, 0xf6, 0x9f, 0x7b, 0xfc, 0xaf, 0x9a, 0x97, 0xb6, 0xe2, 0xf8, 0x3f, 0x57,
0xff, 0xf9, 0x2d, 0x54, 0x35, 0xb2, 0xe0, 0xba, 0x8f, 0x8c, 0x3f, 0xb1, 0x62, 0x36, 0xe1, 0xda, 0xa6, 0xc7, 0x62, 0xfe,
0xde, 0x2e, 0xb1, 0xad, 0xf2, 0xdc, 0xf9, 0x7f, 0x66, 0xdf, 0x93, 0x7f, 0x26, 0x5a, 0xf1, 0x89, 0xce, 0xcb, 0x1e, 0x56,
0xaf, 0x9d, 0xfa, 0x9f, 0x59, 0xff, 0xaa, 0x11, 0xaf, 0xab, 0xf5, 0xdf, 0xbb, 0x8d, 0x76, 0xd7, 0xff, 0xb4, 0x3d, 0xa0,
0x6f, 0x1b, 0x0b, 0xc7, 0xb7, 0x7e, 0x27, 0x6c, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x67, 0x66, 0xc0, 0xc7, 0x73,
0x10, 0xee, 0x19, 0x7d, 0x5a, 0xf5, 0xdb, 0x74, 0x12, 0xc6, 0x7d, 0xa3, 0xcf, 0xba, 0xdb, 0x77, 0xe2, 0x2c, 0x6c, 0xa8,
0x3f, 0xea, 0x4f, 0x7d, 0xd6, 0xe3, 0xc4, 0x79, 0x78, 0xd1, 0xfe, 0x51, 0x7f, 0xd4, 0x9f, 0x73, 0xae, 0xff, 0xf9, 0xe6,
0xef, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0x37, 0xf7, 0x0f };
// Font characters rectangles data
static const Rectangle candyFontRecs[95] = {
{ 4, 4, 3 , 15 },
{ 15, 4, 2 , 9 },
{ 25, 4, 3 , 2 },
{ 36, 4, 8 , 9 },
{ 52, 4, 6 , 11 },
{ 66, 4, 7 , 9 },
{ 81, 4, 7 , 9 },
{ 96, 4, 1 , 2 },
{ 105, 4, 3 , 11 },
{ 116, 4, 3 , 11 },
{ 127, 4, 7 , 7 },
{ 142, 4, 6 , 5 },
{ 156, 4, 2 , 3 },
{ 166, 4, 5 , 1 },
{ 179, 4, 2 , 2 },
{ 189, 4, 5 , 10 },
{ 202, 4, 6 , 9 },
{ 216, 4, 4 , 9 },
{ 228, 4, 6 , 9 },
{ 4, 27, 6 , 9 },
{ 18, 27, 7 , 9 },
{ 33, 27, 6 , 9 },
{ 47, 27, 6 , 9 },
{ 61, 27, 6 , 9 },
{ 75, 27, 6 , 9 },
{ 89, 27, 6 , 9 },
{ 103, 27, 2 , 6 },
{ 113, 27, 2 , 7 },
{ 123, 27, 4 , 6 },
{ 135, 27, 5 , 3 },
{ 148, 27, 4 , 6 },
{ 160, 27, 6 , 9 },
{ 174, 27, 8 , 7 },
{ 190, 27, 6 , 9 },
{ 204, 27, 6 , 9 },
{ 218, 27, 6 , 9 },
{ 232, 27, 6 , 9 },
{ 4, 50, 6 , 9 },
{ 18, 50, 6 , 9 },
{ 32, 50, 6 , 9 },
{ 46, 50, 6 , 9 },
{ 60, 50, 2 , 9 },
{ 70, 50, 6 , 9 },
{ 84, 50, 6 , 9 },
{ 98, 50, 6 , 9 },
{ 112, 50, 8 , 9 },
{ 128, 50, 6 , 9 },
{ 142, 50, 6 , 9 },
{ 156, 50, 6 , 9 },
{ 170, 50, 6 , 9 },
{ 184, 50, 6 , 9 },
{ 198, 50, 6 , 9 },
{ 212, 50, 6 , 9 },
{ 226, 50, 6 , 9 },
{ 240, 50, 6 , 9 },
{ 4, 73, 8 , 9 },
{ 20, 73, 6 , 9 },
{ 34, 73, 6 , 9 },
{ 48, 73, 6 , 9 },
{ 62, 73, 3 , 11 },
{ 73, 73, 5 , 10 },
{ 86, 73, 3 , 11 },
{ 97, 73, 6 , 4 },
{ 111, 73, 6 , 1 },
{ 125, 73, 3 , 2 },
{ 136, 73, 6 , 7 },
{ 150, 73, 6 , 10 },
{ 164, 73, 6 , 7 },
{ 178, 73, 6 , 10 },
{ 192, 73, 6 , 7 },
{ 206, 73, 5 , 10 },
{ 219, 73, 7 , 10 },
{ 234, 73, 6 , 10 },
{ 4, 96, 2 , 10 },
{ 14, 96, 2 , 12 },
{ 24, 96, 6 , 10 },
{ 38, 96, 3 , 10 },
{ 49, 96, 8 , 7 },
{ 65, 96, 6 , 7 },
{ 79, 96, 6 , 7 },
{ 93, 96, 6 , 10 },
{ 107, 96, 6 , 10 },
{ 121, 96, 6 , 7 },
{ 135, 96, 6 , 7 },
{ 149, 96, 3 , 10 },
{ 160, 96, 6 , 7 },
{ 174, 96, 6 , 7 },
{ 188, 96, 8 , 7 },
{ 204, 96, 6 , 7 },
{ 218, 96, 6 , 10 },
{ 232, 96, 6 , 7 },
{ 4, 119, 4 , 11 },
{ 16, 119, 1 , 11 },
{ 25, 119, 4 , 11 },
{ 37, 119, 6 , 2 },
};
// Font characters info data
// NOTE: No chars.image data provided
static const GlyphInfo candyFontChars[95] = {
{ 32, 0, 12, 3, { 0 }},
{ 33, 0, 3, 3, { 0 }},
{ 34, 0, 2, 4, { 0 }},
{ 35, 0, 3, 9, { 0 }},
{ 36, 0, 2, 7, { 0 }},
{ 37, 0, 3, 8, { 0 }},
{ 38, 0, 3, 8, { 0 }},
{ 39, 0, 2, 2, { 0 }},
{ 40, 1, 2, 5, { 0 }},
{ 41, 1, 2, 5, { 0 }},
{ 42, 0, 4, 8, { 0 }},
{ 43, 0, 6, 7, { 0 }},
{ 44, 0, 10, 3, { 0 }},
{ 45, 0, 7, 6, { 0 }},
{ 46, 0, 10, 3, { 0 }},
{ 47, 1, 3, 7, { 0 }},
{ 48, 0, 3, 7, { 0 }},
{ 49, 0, 3, 5, { 0 }},
{ 50, 0, 3, 7, { 0 }},
{ 51, 0, 3, 7, { 0 }},
{ 52, 0, 3, 8, { 0 }},
{ 53, 0, 3, 7, { 0 }},
{ 54, 0, 3, 7, { 0 }},
{ 55, 0, 3, 7, { 0 }},
{ 56, 0, 3, 7, { 0 }},
{ 57, 0, 3, 7, { 0 }},
{ 58, 0, 6, 3, { 0 }},
{ 59, 0, 6, 3, { 0 }},
{ 60, 1, 5, 6, { 0 }},
{ 61, 1, 7, 7, { 0 }},
{ 62, 1, 5, 6, { 0 }},
{ 63, 0, 3, 7, { 0 }},
{ 64, 0, 4, 9, { 0 }},
{ 65, 0, 3, 7, { 0 }},
{ 66, 0, 3, 7, { 0 }},
{ 67, 0, 3, 7, { 0 }},
{ 68, 0, 3, 7, { 0 }},
{ 69, 0, 3, 7, { 0 }},
{ 70, 0, 3, 7, { 0 }},
{ 71, 0, 3, 7, { 0 }},
{ 72, 0, 3, 7, { 0 }},
{ 73, 0, 3, 3, { 0 }},
{ 74, 0, 3, 7, { 0 }},
{ 75, 0, 3, 7, { 0 }},
{ 76, 0, 3, 7, { 0 }},
{ 77, 0, 3, 9, { 0 }},
{ 78, 0, 3, 7, { 0 }},
{ 79, 0, 3, 7, { 0 }},
{ 80, 0, 3, 7, { 0 }},
{ 81, 0, 3, 7, { 0 }},
{ 82, 0, 3, 7, { 0 }},
{ 83, 0, 3, 7, { 0 }},
{ 84, 0, 3, 7, { 0 }},
{ 85, 0, 3, 7, { 0 }},
{ 86, 0, 3, 7, { 0 }},
{ 87, 0, 3, 9, { 0 }},
{ 88, 0, 3, 7, { 0 }},
{ 89, 0, 3, 7, { 0 }},
{ 90, 0, 3, 7, { 0 }},
{ 91, 1, 2, 5, { 0 }},
{ 92, 1, 3, 7, { 0 }},
{ 93, 1, 2, 5, { 0 }},
{ 94, 0, 3, 7, { 0 }},
{ 95, 0, 11, 7, { 0 }},
{ 96, 0, 0, 4, { 0 }},
{ 97, 0, 5, 7, { 0 }},
{ 98, 0, 2, 7, { 0 }},
{ 99, 0, 5, 7, { 0 }},
{ 100, 0, 2, 7, { 0 }},
{ 101, 0, 5, 7, { 0 }},
{ 102, 0, 2, 6, { 0 }},
{ 103, 0, 5, 7, { 0 }},
{ 104, 0, 2, 7, { 0 }},
{ 105, 0, 2, 3, { 0 }},
{ 106, 0, 2, 3, { 0 }},
{ 107, 0, 2, 7, { 0 }},
{ 108, 0, 2, 4, { 0 }},
{ 109, 0, 5, 9, { 0 }},
{ 110, 0, 5, 7, { 0 }},
{ 111, 0, 5, 7, { 0 }},
{ 112, 0, 5, 7, { 0 }},
{ 113, 0, 5, 7, { 0 }},
{ 114, 0, 5, 7, { 0 }},
{ 115, 0, 5, 7, { 0 }},
{ 116, 0, 2, 4, { 0 }},
{ 117, 0, 5, 7, { 0 }},
{ 118, 0, 5, 7, { 0 }},
{ 119, 0, 5, 9, { 0 }},
{ 120, 0, 5, 7, { 0 }},
{ 121, 0, 5, 7, { 0 }},
{ 122, 0, 5, 7, { 0 }},
{ 123, 1, 2, 6, { 0 }},
{ 124, 1, 2, 3, { 0 }},
{ 125, 1, 2, 6, { 0 }},
{ 126, 0, 0, 7, { 0 }},
};
// Style loading function: candy
static void GuiLoadStyleCandy(void)
{
// Load style properties provided
// NOTE: Default properties are propagated
for (int i = 0; i < CANDY_STYLE_PROPS_COUNT; i++)
{
GuiSetStyle(candyStyleProps[i].controlId, candyStyleProps[i].propertyId, candyStyleProps[i].propertyValue);
}
// Custom font loading
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
int candyFontDataSize = 0;
unsigned char *data = DecompressData(candyFontData, CANDY_COMPRESSED_DATA_SIZE, &candyFontDataSize);
Image imFont = { data, 256, 256, 1, 2 };
Font font = { 0 };
font.baseSize = 15;
font.glyphCount = 95;
// Load texture from image
font.texture = LoadTextureFromImage(imFont);
UnloadImage(imFont); // Uncompressed data can be unloaded from memory
// Copy char recs data from global fontRecs
// NOTE: Required to avoid issues if trying to free font
font.recs = (Rectangle *)malloc(font.glyphCount*sizeof(Rectangle));
memcpy(font.recs, candyFontRecs, font.glyphCount*sizeof(Rectangle));
// Copy font char info data from global fontChars
// NOTE: Required to avoid issues if trying to free font
font.glyphs = (GlyphInfo *)malloc(font.glyphCount*sizeof(GlyphInfo));
memcpy(font.glyphs, candyFontChars, font.glyphCount*sizeof(GlyphInfo));
GuiSetFont(font);
// Setup a white rectangle on the font to be used on shapes drawing,
// this way we make sure all gui can be drawn on a single pass because no texture change is required
// NOTE: Setting up this rectangle is a manual process (for the moment)
Rectangle whiteChar = { 129, 6, 3, 3 };
SetShapesTexture(font.texture, whiteChar);
//-----------------------------------------------------------------
// TODO: Custom user style setup: Set specific properties here (if required)
// i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT
}

Binary file not shown.

View File

@ -1,24 +0,0 @@
#
# rgs style text file (v3.1) - raygui style file generated using rGuiStyler
#
# Style properties:
# f <gen_font_size> <charmap_file> <font_file>
# p <control_id> <property_id> <property_value> <property_name>
#
f 15 0 v5easter.ttf
p 00 00 0xe58b68ff DEFAULT_BORDER_COLOR_NORMAL
p 00 01 0xfeda96ff DEFAULT_BASE_COLOR_NORMAL
p 00 02 0xe59b5fff DEFAULT_TEXT_COLOR_NORMAL
p 00 03 0xee813fff DEFAULT_BORDER_COLOR_FOCUSED
p 00 04 0xfcd85bff DEFAULT_BASE_COLOR_FOCUSED
p 00 05 0xfc6955ff DEFAULT_TEXT_COLOR_FOCUSED
p 00 06 0xb34848ff DEFAULT_BORDER_COLOR_PRESSED
p 00 07 0xeb7272ff DEFAULT_BASE_COLOR_PRESSED
p 00 08 0xbd4a4aff DEFAULT_TEXT_COLOR_PRESSED
p 00 09 0x94795dff DEFAULT_BORDER_COLOR_DISABLED
p 00 10 0xc2a37aff DEFAULT_BASE_COLOR_DISABLED
p 00 11 0x9c8369ff DEFAULT_TEXT_COLOR_DISABLED
p 00 16 0x0000000f TEXT_SIZE
p 00 17 0x00000000 TEXT_SPACING
p 00 18 0xd77575ff DEFAULT_LINE_COLOR
p 00 19 0xfff5e1ff DEFAULT_BACKGROUND_COLOR

1
styles/candy/charset.txt Normal file
View File

@ -0,0 +1 @@
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£€¥Š§š©ª«¬®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 132 KiB

582
styles/candy/style_candy.h Normal file
View File

@ -0,0 +1,582 @@
//////////////////////////////////////////////////////////////////////////////////
// //
// StyleAsCode exporter v2.0 - Style data exported as a values array //
// //
// USAGE: On init call: GuiLoadStyleCandy(); //
// //
// more info and bugs-report: github.com/raysan5/raygui //
// feedback and support: ray[at]raylibtech.com //
// //
// Copyright (c) 2020-2025 raylib technologies (@raylibtech) //
// //
//////////////////////////////////////////////////////////////////////////////////
#define CANDY_STYLE_PROPS_COUNT 17
// Custom style name: Candy
static const GuiStyleProp candyStyleProps[CANDY_STYLE_PROPS_COUNT] = {
{ 0, 0, (int)0xe58b68ff }, // DEFAULT_BORDER_COLOR_NORMAL
{ 0, 1, (int)0xfeda96ff }, // DEFAULT_BASE_COLOR_NORMAL
{ 0, 2, (int)0xe59b5fff }, // DEFAULT_TEXT_COLOR_NORMAL
{ 0, 3, (int)0xee813fff }, // DEFAULT_BORDER_COLOR_FOCUSED
{ 0, 4, (int)0xfcd85bff }, // DEFAULT_BASE_COLOR_FOCUSED
{ 0, 5, (int)0xfc6955ff }, // DEFAULT_TEXT_COLOR_FOCUSED
{ 0, 6, (int)0xb34848ff }, // DEFAULT_BORDER_COLOR_PRESSED
{ 0, 7, (int)0xeb7272ff }, // DEFAULT_BASE_COLOR_PRESSED
{ 0, 8, (int)0xbd4a4aff }, // DEFAULT_TEXT_COLOR_PRESSED
{ 0, 9, (int)0x94795dff }, // DEFAULT_BORDER_COLOR_DISABLED
{ 0, 10, (int)0xc2a37aff }, // DEFAULT_BASE_COLOR_DISABLED
{ 0, 11, (int)0x9c8369ff }, // DEFAULT_TEXT_COLOR_DISABLED
{ 0, 16, (int)0x0000000f }, // DEFAULT_TEXT_SIZE
{ 0, 17, (int)0x00000000 }, // DEFAULT_TEXT_SPACING
{ 0, 18, (int)0xd77575ff }, // DEFAULT_LINE_COLOR
{ 0, 19, (int)0xfff5e1ff }, // DEFAULT_BACKGROUND_COLOR
{ 0, 20, (int)0x00000016 }, // DEFAULT_TEXT_LINE_SPACING
};
// WARNING: This style uses a custom font: "v5easter.ttf" (size: 15, spacing: 0)
#define CANDY_STYLE_FONT_ATLAS_COMP_SIZE 2110
// Font atlas image pixels data: DEFLATE compressed
static unsigned char candyFontData[CANDY_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed,
0xdd, 0x5b, 0x76, 0xa4, 0x36, 0x10, 0x00, 0x50, 0xad, 0x2b, 0xfb, 0xdf, 0x97, 0x72, 0x92, 0x7c, 0xe4, 0xcc, 0x8c, 0x1b,
0x54, 0xa5, 0x12, 0x08, 0xfa, 0xfa, 0xfe, 0x19, 0xbb, 0x1b, 0x10, 0xa5, 0x07, 0xa0, 0x52, 0x6f, 0x00, 0x00, 0x00, 0xc0,
0x97, 0xfb, 0xe7, 0xe7, 0xcf, 0xdf, 0xb5, 0x1f, 0x7e, 0xfb, 0xff, 0xdf, 0xf6, 0x1f, 0xb7, 0x1e, 0x6d, 0xc9, 0xff, 0xe7,
0xf1, 0x9e, 0x8c, 0x7d, 0x42, 0x3b, 0xd8, 0x72, 0xbe, 0xcf, 0xbf, 0xff, 0xae, 0x97, 0x7c, 0xfb, 0xa7, 0xcf, 0x39, 0xdb,
0xa3, 0xcc, 0xb6, 0xa3, 0x4f, 0xed, 0x07, 0xc7, 0xd4, 0x06, 0xb6, 0xf4, 0xd4, 0xd1, 0xf5, 0xe9, 0x52, 0x8d, 0x95, 0xce,
0xf9, 0xf1, 0xb7, 0xf0, 0x31, 0xb6, 0x05, 0xdb, 0xfa, 0x64, 0x19, 0xaf, 0x8c, 0xff, 0xdf, 0x7f, 0x2a, 0xe3, 0xff, 0xf8,
0x33, 0x67, 0xae, 0x89, 0xff, 0x8f, 0xa6, 0x17, 0xc4, 0x7f, 0xbc, 0x16, 0x39, 0x3e, 0x82, 0xcf, 0x57, 0x71, 0x0b, 0xff,
0xcf, 0x79, 0xfd, 0x5a, 0xf9, 0xa9, 0x2b, 0xb7, 0x8d, 0x45, 0xed, 0xfc, 0x75, 0x7e, 0xb6, 0x37, 0x73, 0x65, 0x78, 0xe5,
0xb6, 0xda, 0xf8, 0x3f, 0xfb, 0xdb, 0x6c, 0xcd, 0x9e, 0xef, 0x1d, 0x8c, 0xb6, 0xe6, 0x3d, 0x74, 0xed, 0x9f, 0xb7, 0x62,
0x35, 0x67, 0x38, 0x7a, 0xc4, 0xc7, 0x75, 0xc9, 0xd9, 0xd6, 0xf9, 0x36, 0x37, 0x72, 0x6d, 0xdc, 0x71, 0x15, 0x9f, 0x97,
0x66, 0x45, 0xbb, 0xd4, 0x7f, 0x39, 0xdb, 0xe2, 0x7f, 0xf4, 0xaa, 0xed, 0x8b, 0x5b, 0xda, 0x16, 0x6e, 0x69, 0x73, 0x7d,
0x96, 0xba, 0x33, 0x5c, 0x15, 0xff, 0x7d, 0x22, 0xfa, 0x5b, 0xa2, 0xc7, 0x79, 0x5c, 0x6b, 0x9f, 0xed, 0x7f, 0xf6, 0x2a,
0xa9, 0xbd, 0x66, 0x67, 0xe3, 0xff, 0xb8, 0x3f, 0xdc, 0x0e, 0xeb, 0x9b, 0xeb, 0x7a, 0x5c, 0x3b, 0xc5, 0x7f, 0xb6, 0x87,
0x3c, 0x3e, 0xba, 0xa9, 0x6b, 0xff, 0xd7, 0xc7, 0xff, 0x59, 0x44, 0xf6, 0xe0, 0x48, 0xb5, 0xb6, 0x35, 0x1e, 0x19, 0x4f,
0x67, 0x6b, 0xf4, 0xf8, 0x18, 0xf7, 0xfa, 0xfe, 0xff, 0xf9, 0xb8, 0xb1, 0x2f, 0x1b, 0x39, 0xd5, 0x47, 0xd8, 0xbe, 0xfd,
0xff, 0xb1, 0x7e, 0xc1, 0x9a, 0xfe, 0xff, 0xd9, 0xf8, 0xbf, 0x5d, 0xde, 0xfa, 0x9f, 0x45, 0x56, 0xbe, 0xf4, 0x7b, 0xaa,
0x07, 0x34, 0x77, 0x57, 0x21, 0x57, 0x9e, 0x73, 0xf1, 0xbf, 0xa2, 0x0f, 0x10, 0x1d, 0xfd, 0xbd, 0xa3, 0xff, 0x9f, 0x39,
0x83, 0xd9, 0xfb, 0xcc, 0x55, 0x47, 0x16, 0xbf, 0xcf, 0x7f, 0xdf, 0x19, 0xab, 0xab, 0xe7, 0x67, 0xcf, 0x60, 0xfd, 0xa7,
0xe6, 0x7a, 0xd5, 0xd1, 0xab, 0xb8, 0xdf, 0xfa, 0x6c, 0xac, 0x3f, 0xe2, 0xce, 0xe9, 0x15, 0xed, 0xff, 0xd9, 0xfd, 0xff,
0x99, 0xbb, 0x03, 0xb1, 0x27, 0x1b, 0x7d, 0xc3, 0x6b, 0x45, 0xfc, 0x3f, 0xa5, 0x15, 0xab, 0xea, 0x55, 0xbb, 0xff, 0x97,
0x79, 0xa6, 0x5d, 0xd1, 0x9f, 0x7b, 0x4a, 0xfc, 0xf7, 0x81, 0xda, 0x74, 0x7c, 0x4b, 0xfe, 0x89, 0xfb, 0xaa, 0xb7, 0x0a,
0xce, 0x9e, 0x36, 0x5e, 0xf7, 0x14, 0x7b, 0xc7, 0xf8, 0x7f, 0xc6, 0xf3, 0xff, 0x3d, 0xce, 0xe5, 0xda, 0x91, 0xdc, 0x8e,
0xf1, 0x0f, 0xdf, 0xf1, 0x36, 0xe1, 0x75, 0x6f, 0x2d, 0x8a, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x9e, 0x3e, 0x3b, 0x27, 0x9f, 0x21, 0x32, 0x36, 0xe7, 0xa6, 0x2f, 0xc9, 0x8b, 0x94, 0x9b, 0x1b, 0x7d,
0x6d, 0x0e, 0xe7, 0x6c, 0xd6, 0xec, 0xb9, 0x79, 0xe1, 0x9f, 0xf3, 0x09, 0xcd, 0x7c, 0xee, 0xf1, 0x5c, 0xe4, 0xc8, 0xbc,
0xec, 0x6c, 0xae, 0xf3, 0x68, 0x4e, 0xa0, 0x4c, 0xee, 0xa4, 0xd9, 0xdc, 0xe9, 0xf1, 0x23, 0xce, 0xcc, 0x60, 0x9d, 0x9d,
0xf3, 0x76, 0x55, 0xc6, 0xe6, 0x6c, 0x9c, 0x8e, 0x65, 0xbd, 0xed, 0xe1, 0x4c, 0x75, 0xbb, 0xe5, 0x69, 0xa8, 0xce, 0x9a,
0xb1, 0x32, 0xfe, 0xdb, 0x50, 0x6e, 0xec, 0xb1, 0xf9, 0xce, 0xbd, 0x70, 0x46, 0xfb, 0x75, 0x39, 0xf7, 0xda, 0x74, 0x99,
0x44, 0x5b, 0xaa, 0xf7, 0xc7, 0x7f, 0xf6, 0xd8, 0xcf, 0xce, 0x6a, 0xdf, 0x36, 0x8b, 0xfd, 0x9d, 0xf1, 0x9f, 0xed, 0xdb,
0x1d, 0xb7, 0x7c, 0xf1, 0x8c, 0x07, 0xd7, 0x64, 0xb4, 0xe9, 0x1b, 0xc5, 0x7f, 0xfc, 0xdb, 0x56, 0xce, 0x61, 0x9f, 0x6b,
0x7b, 0x7b, 0x59, 0xfc, 0xe7, 0xfb, 0x3e, 0xbb, 0xb5, 0xf1, 0xb5, 0x59, 0x73, 0xd6, 0xc5, 0x7f, 0x2b, 0xcf, 0xca, 0xb4,
0x67, 0xfc, 0x8f, 0xb4, 0x0f, 0x99, 0xb1, 0x41, 0xfc, 0x3f, 0xb3, 0x35, 0x6e, 0xf4, 0xdb, 0x32, 0xed, 0xff, 0xf1, 0x51,
0x3e, 0xb9, 0xfd, 0xdf, 0x25, 0xfe, 0xdb, 0x56, 0xfd, 0xff, 0xd9, 0xab, 0x31, 0x16, 0xe7, 0xf7, 0xe5, 0x66, 0xdb, 0x7d,
0x25, 0xa3, 0xc8, 0x19, 0x9f, 0xcd, 0x8e, 0x9c, 0xbd, 0xef, 0x50, 0xb9, 0x62, 0xd3, 0xb3, 0xee, 0x71, 0xb5, 0xaf, 0x1c,
0xff, 0xe7, 0xef, 0xfb, 0x8a, 0xff, 0xd9, 0xfe, 0x74, 0xbb, 0x21, 0xfe, 0x57, 0x9d, 0xbb, 0x27, 0xc7, 0xff, 0x4c, 0xcf,
0xef, 0xaa, 0xf8, 0x6f, 0x1f, 0x57, 0xa1, 0x9a, 0x8d, 0xff, 0xfc, 0xda, 0x38, 0xd1, 0x38, 0xef, 0x37, 0x3e, 0xdf, 0x5a,
0x51, 0x07, 0xe6, 0x9f, 0x37, 0x34, 0xf1, 0xff, 0xa8, 0xf8, 0xbf, 0xbf, 0xfd, 0x1f, 0x5d, 0x5b, 0xf1, 0xbb, 0xe3, 0xbf,
0x4d, 0xdd, 0xe3, 0x5b, 0xf1, 0x7f, 0xbb, 0xf5, 0xff, 0xab, 0xeb, 0xce, 0x6b, 0xeb, 0xd3, 0x75, 0x7d, 0xdc, 0xdc, 0xfd,
0xa4, 0xdc, 0x6a, 0x06, 0xb9, 0xac, 0xd9, 0x6b, 0xae, 0xa9, 0x96, 0x5e, 0xc3, 0xab, 0x85, 0x6b, 0x00, 0xf1, 0xff, 0xeb,
0x96, 0x75, 0xab, 0x23, 0xc3, 0xea, 0x78, 0x7a, 0x56, 0xfc, 0xcf, 0xbd, 0x69, 0x50, 0xbf, 0xda, 0x60, 0xbf, 0xa1, 0xfd,
0x87, 0xb5, 0x4f, 0xd9, 0xeb, 0xfe, 0x9e, 0x8a, 0x3e, 0x3d, 0xf0, 0xbd, 0xfd, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xe0, 0x8d, 0x73, 0x05, 0x3e, 0xcf, 0xf2, 0x3c, 0xce, 0x82, 0xd1, 0x92, 0x59, 0xb0, 0xdb, 0x40,
0xe6, 0xe4, 0x9e, 0xfc, 0xbe, 0xc8, 0x2c, 0xe5, 0xdd, 0x72, 0x11, 0x44, 0xf3, 0x23, 0x46, 0x72, 0x63, 0xb7, 0x70, 0x9e,
0xaf, 0x6c, 0x16, 0x9b, 0x36, 0x99, 0x73, 0x34, 0x3f, 0xff, 0x2e, 0x3b, 0x83, 0x7a, 0x2c, 0xa3, 0xdb, 0xd8, 0xf7, 0xf4,
0xa1, 0x19, 0x7e, 0xb3, 0xa5, 0x50, 0x3f, 0x27, 0xb1, 0x5d, 0x9e, 0x75, 0xe3, 0xde, 0x6c, 0x4c, 0x4f, 0xca, 0xb7, 0x1d,
0xc9, 0xc3, 0x7b, 0x9e, 0xcf, 0x63, 0x3e, 0xfe, 0x47, 0x73, 0x0a, 0xf4, 0xc9, 0xac, 0x9f, 0xd1, 0xba, 0xe2, 0xf8, 0xbc,
0x1c, 0xcd, 0x4d, 0x8e, 0x45, 0x7f, 0x76, 0xfe, 0xcd, 0xf9, 0x3e, 0xac, 0x9b, 0x51, 0xfd, 0x1d, 0xf1, 0x1f, 0xaf, 0x41,
0x9f, 0x90, 0x6f, 0xbb, 0x15, 0xfc, 0xb6, 0x72, 0xe6, 0x7b, 0x36, 0xa7, 0x48, 0x36, 0xfe, 0x23, 0xb1, 0xf5, 0xb9, 0x96,
0x6b, 0x03, 0x19, 0xd4, 0xe6, 0xbf, 0x27, 0x13, 0xff, 0x3d, 0x9c, 0x6d, 0x25, 0xdb, 0xfe, 0xc7, 0x5a, 0x97, 0x3d, 0xe3,
0x3f, 0xd3, 0xe3, 0xec, 0x17, 0xc6, 0xff, 0x5c, 0x8e, 0xaf, 0x76, 0x79, 0xfc, 0xd7, 0xae, 0x53, 0x31, 0x36, 0x92, 0xa9,
0xe8, 0x69, 0xff, 0x34, 0x3a, 0x3c, 0x1a, 0x19, 0xd5, 0xc5, 0x7f, 0xff, 0xe1, 0x1b, 0x57, 0xb5, 0xff, 0x55, 0x19, 0x55,
0xfb, 0xc1, 0xfe, 0xbe, 0x21, 0xfe, 0xdb, 0x26, 0xfd, 0xff, 0xfa, 0xb5, 0xd4, 0xf6, 0x8c, 0xff, 0x78, 0x8f, 0x2b, 0xde,
0x7a, 0xc5, 0xfa, 0x0a, 0xe7, 0x23, 0x80, 0x5e, 0x50, 0x03, 0xf4, 0xdf, 0xd6, 0xa3, 0xaa, 0x1a, 0x85, 0xc7, 0x56, 0x12,
0xcb, 0xb5, 0xff, 0xfd, 0xb5, 0xed, 0x7f, 0xed, 0xf8, 0x7f, 0x55, 0x2e, 0xc2, 0xda, 0xf5, 0xb6, 0xaa, 0x72, 0x6d, 0xe6,
0xfa, 0x5a, 0xd9, 0xf6, 0xff, 0xac, 0x77, 0x30, 0x13, 0xff, 0x6d, 0x32, 0x2e, 0x63, 0xf5, 0x4c, 0x7f, 0x54, 0x06, 0x8e,
0x91, 0x35, 0xf2, 0xea, 0xae, 0xf4, 0xd1, 0x08, 0x8a, 0x6c, 0x9d, 0xcd, 0xaa, 0x36, 0xfe, 0xa4, 0x61, 0xa4, 0xa6, 0xfe,
0xfc, 0x94, 0x62, 0xe4, 0xac, 0x54, 0x8c, 0x01, 0x77, 0xed, 0xff, 0xdf, 0xd3, 0xfe, 0x8f, 0xb4, 0xfe, 0x35, 0x79, 0xc8,
0x7a, 0x79, 0xfe, 0x9d, 0x5e, 0xb8, 0x77, 0x75, 0x2d, 0xe4, 0x1d, 0x4f, 0x22, 0x57, 0xec, 0xd1, 0x7e, 0x59, 0xd2, 0x7a,
0xf2, 0xce, 0xf1, 0x5e, 0xfd, 0xff, 0xfc, 0xd8, 0x2a, 0x32, 0xaa, 0xaf, 0x7b, 0xfe, 0x57, 0xdd, 0x96, 0x3e, 0x2b, 0xfb,
0x96, 0xf8, 0xdf, 0xbb, 0x0c, 0xf6, 0x8a, 0xff, 0xd1, 0x55, 0xcc, 0x7b, 0xf9, 0x93, 0xf8, 0x67, 0xd4, 0xe0, 0xcf, 0x7d,
0xff, 0xe7, 0xfa, 0x95, 0x47, 0xef, 0x8e, 0xff, 0xdd, 0x6a, 0x80, 0xaa, 0x15, 0xaf, 0xdb, 0xe2, 0x37, 0x43, 0xee, 0x3f,
0x6b, 0x2b, 0x56, 0x08, 0x86, 0xb7, 0xbc, 0xbf, 0xd9, 0x5f, 0xdf, 0x6f, 0x7a, 0x62, 0x4f, 0x1b, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xd5, 0xfc, 0xbf, 0x3e, 0x39, 0x37, 0x30, 0x97, 0x59, 0xa8, 0x9d, 0xce,
0x30, 0xed, 0xe9, 0xbf, 0x89, 0x1c, 0x4b, 0x3e, 0x67, 0x45, 0x26, 0xe7, 0x76, 0x3b, 0xc9, 0x53, 0x53, 0x73, 0x6e, 0xae,
0x39, 0xce, 0xf3, 0xdc, 0x7a, 0xb1, 0xeb, 0x22, 0x72, 0xa6, 0xce, 0x73, 0xa6, 0x5c, 0x77, 0x1e, 0xb2, 0xe5, 0xdd, 0x4f,
0x66, 0x73, 0xf7, 0xc3, 0x4c, 0x35, 0x15, 0xb9, 0x54, 0xce, 0x3e, 0x3f, 0x9f, 0x79, 0xaf, 0x25, 0x32, 0xae, 0xf5, 0x3f,
0x72, 0x39, 0xf5, 0xd4, 0xdf, 0x44, 0x4b, 0x3d, 0xb7, 0x6d, 0x24, 0xa7, 0x63, 0x5d, 0x9e, 0xe8, 0xcc, 0xb9, 0x59, 0x7f,
0x9c, 0xf1, 0xeb, 0xa2, 0x17, 0x7d, 0xc3, 0x68, 0x1e, 0x92, 0xfd, 0xcb, 0xfb, 0x3c, 0x63, 0xec, 0x5c, 0x36, 0x85, 0xd5,
0xf1, 0x1f, 0xcb, 0xb9, 0x1a, 0xc9, 0x2b, 0x56, 0x19, 0xff, 0x7b, 0xf5, 0xc7, 0xf2, 0xab, 0x41, 0x54, 0x65, 0xd8, 0x7f,
0xc6, 0x2c, 0xdd, 0xfc, 0x4a, 0x04, 0xcf, 0x29, 0xef, 0xd5, 0xc7, 0x37, 0x52, 0x53, 0xce, 0xe5, 0x81, 0xb8, 0x2b, 0xfe,
0xeb, 0xfa, 0xff, 0xd9, 0xfe, 0x74, 0x66, 0x0d, 0xa4, 0xd9, 0xdc, 0x89, 0x33, 0x2b, 0x89, 0x5c, 0x7d, 0x2c, 0x73, 0xa3,
0x82, 0x91, 0x31, 0xeb, 0x0e, 0xe7, 0x61, 0xe6, 0x1c, 0xb5, 0xc9, 0x95, 0x16, 0xce, 0x23, 0xa0, 0x0f, 0x8c, 0x4f, 0xfa,
0x64, 0x0d, 0x13, 0x2d, 0xd1, 0xf3, 0x73, 0x55, 0x5b, 0x2f, 0xe6, 0x3e, 0x6f, 0xd7, 0x6d, 0x7d, 0x62, 0x1c, 0x73, 0xef,
0xca, 0x45, 0x35, 0xf1, 0x3f, 0xde, 0xab, 0xdd, 0xbd, 0x4c, 0xdb, 0xc0, 0x38, 0x79, 0xff, 0xf8, 0x8f, 0xc6, 0x61, 0x65,
0x1f, 0x77, 0x36, 0x9b, 0xf4, 0x3d, 0xdb, 0xe6, 0x57, 0x26, 0xd9, 0xfd, 0xda, 0xbe, 0x3b, 0xfe, 0xd7, 0xac, 0xfe, 0x52,
0x7d, 0x8e, 0xce, 0x46, 0x0d, 0x55, 0xed, 0xff, 0xd9, 0x08, 0xa4, 0x6f, 0x31, 0x2e, 0x1c, 0x8b, 0xed, 0xf8, 0xfd, 0xff,
0xb9, 0x6b, 0x65, 0xc5, 0xb6, 0xf9, 0xeb, 0x76, 0xdf, 0x18, 0xdf, 0x25, 0xfe, 0x9f, 0x50, 0x47, 0xce, 0xb4, 0xda, 0xd1,
0xf6, 0xbf, 0x5d, 0x18, 0xff, 0x35, 0x77, 0x2a, 0x7a, 0xe1, 0x8a, 0x76, 0x4f, 0xbf, 0x56, 0xe6, 0xef, 0xff, 0xad, 0x78,
0x02, 0xb2, 0x73, 0xfb, 0x2f, 0xfe, 0x9f, 0x16, 0xff, 0xd9, 0x67, 0xfb, 0x33, 0xfd, 0x91, 0x67, 0x8e, 0xff, 0x6b, 0xef,
0x43, 0x3d, 0xb5, 0xff, 0xff, 0xf4, 0x32, 0x9d, 0xeb, 0xb5, 0xcb, 0x90, 0xfc, 0x4d, 0x7d, 0x83, 0xd9, 0x3b, 0x9d, 0x6f,
0x8b, 0xff, 0x77, 0x97, 0x69, 0xf5, 0x0a, 0xe9, 0x7c, 0x4b, 0xfc, 0xb7, 0x0b, 0xdb, 0xc4, 0xf8, 0xfb, 0x86, 0xdf, 0x17,
0xff, 0xab, 0xde, 0x91, 0x10, 0xff, 0xcf, 0x8c, 0xff, 0xd5, 0x65, 0x7a, 0xed, 0x7b, 0x0e, 0x35, 0xef, 0xff, 0xad, 0x5a,
0xf5, 0x65, 0x87, 0xe7, 0xff, 0xcf, 0x7d, 0xf7, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8,
0xfb, 0x3d, 0xf7, 0xd8, 0x96, 0xe3, 0xb9, 0x48, 0xb1, 0xec, 0x7b, 0xbb, 0x67, 0x63, 0x6e, 0xb2, 0x6f, 0x87, 0x4a, 0x7f,
0xf4, 0x7c, 0xef, 0x54, 0xbe, 0x9f, 0x4b, 0xac, 0xdf, 0x5e, 0x66, 0xb1, 0x98, 0x8a, 0x1f, 0x67, 0xc5, 0xe7, 0xe4, 0xa3,
0xff, 0xca, 0xac, 0xd4, 0xb2, 0x6f, 0xaf, 0xce, 0xbe, 0x1d, 0x39, 0xdf, 0xfb, 0x94, 0x6f, 0x7c, 0xbe, 0xd5, 0xb5, 0x65,
0xb6, 0xd7, 0x6c, 0xbe, 0xaa, 0x19, 0x86, 0x7b, 0xcd, 0x54, 0xec, 0x13, 0x19, 0xd5, 0xbb, 0xec, 0xdb, 0x8f, 0xe8, 0xe7,
0x56, 0xac, 0x8c, 0xf1, 0x9e, 0x98, 0xba, 0x7b, 0x86, 0xeb, 0x73, 0xb2, 0x31, 0x8f, 0xf5, 0x61, 0x72, 0xab, 0x25, 0xbd,
0x27, 0xfb, 0xf6, 0x4f, 0xad, 0xdd, 0xb5, 0x33, 0x6a, 0xab, 0xca, 0xf7, 0x38, 0xc7, 0xee, 0xce, 0xd9, 0x1f, 0x9e, 0x17,
0xff, 0xbb, 0x64, 0xa5, 0x6a, 0x27, 0x25, 0x9e, 0xbf, 0xae, 0xbe, 0x29, 0xfb, 0xee, 0x3b, 0x32, 0xa8, 0xf4, 0xad, 0xae,
0xcd, 0x77, 0xc7, 0x7f, 0x26, 0x1e, 0x57, 0x6c, 0xab, 0xc9, 0x0c, 0xff, 0xed, 0xd9, 0x77, 0xdf, 0x13, 0xff, 0x4d, 0xfc,
0xdf, 0xde, 0xff, 0xbf, 0x6e, 0xdb, 0x7c, 0xdf, 0x60, 0xc5, 0xfd, 0xff, 0xe7, 0x65, 0xdf, 0x7d, 0x53, 0xfb, 0xbf, 0x4b,
0xc6, 0xc4, 0x68, 0x4c, 0xf5, 0x17, 0xc4, 0xff, 0x8e, 0xed, 0xa9, 0xec, 0x9b, 0xdf, 0x11, 0xff, 0x7d, 0xc3, 0xe3, 0xea,
0x45, 0x75, 0xd7, 0x35, 0xd7, 0x57, 0xf4, 0x2e, 0xcb, 0x2e, 0x71, 0x51, 0x7d, 0x6f, 0x70, 0xfc, 0x09, 0xfb, 0x1b, 0xb3,
0x6f, 0xbe, 0x35, 0xdb, 0xe6, 0xca, 0xfd, 0x6b, 0xe1, 0xb5, 0xf8, 0xf3, 0x4f, 0x68, 0x56, 0xd5, 0xa5, 0x15, 0x2b, 0x6f,
0xef, 0x94, 0x8d, 0x51, 0xf6, 0xcd, 0x15, 0xcf, 0xa2, 0x9e, 0x9c, 0x6d, 0xf3, 0x3c, 0x56, 0xe3, 0xdb, 0xd6, 0xc7, 0xf4,
0x55, 0x75, 0xe9, 0xfb, 0x72, 0x8f, 0xca, 0xa8, 0xca, 0x33, 0xde, 0xb7, 0xc9, 0xdd, 0xe7, 0xa8, 0xbd, 0xe6, 0x45, 0x0a,
0xdc, 0xf5, 0x6e, 0x90, 0xb6, 0x8a, 0xdd, 0xfc, 0xe5, 0x1c, 0xe8, 0x7f, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfa, 0xef, 0xc7,
0x79, 0x00, 0xf1, 0x0f, 0x7c, 0x5d, 0xfc, 0xff, 0x0d };
// Font glyphs rectangles data (on atlas)
static const Rectangle candyFontRecs[189] = {
{ 4, 4, 3 , 15 },
{ 15, 4, 2 , 9 },
{ 25, 4, 3 , 2 },
{ 36, 4, 8 , 9 },
{ 52, 4, 6 , 11 },
{ 66, 4, 7 , 9 },
{ 81, 4, 7 , 9 },
{ 96, 4, 1 , 2 },
{ 105, 4, 3 , 11 },
{ 116, 4, 3 , 11 },
{ 127, 4, 7 , 7 },
{ 142, 4, 6 , 5 },
{ 156, 4, 2 , 3 },
{ 166, 4, 5 , 1 },
{ 179, 4, 2 , 2 },
{ 189, 4, 5 , 10 },
{ 202, 4, 6 , 9 },
{ 216, 4, 4 , 9 },
{ 228, 4, 6 , 9 },
{ 242, 4, 6 , 9 },
{ 256, 4, 7 , 9 },
{ 271, 4, 6 , 9 },
{ 285, 4, 6 , 9 },
{ 299, 4, 6 , 9 },
{ 313, 4, 6 , 9 },
{ 327, 4, 6 , 9 },
{ 341, 4, 2 , 6 },
{ 351, 4, 2 , 7 },
{ 361, 4, 4 , 6 },
{ 373, 4, 5 , 3 },
{ 386, 4, 4 , 6 },
{ 398, 4, 6 , 9 },
{ 412, 4, 8 , 7 },
{ 428, 4, 6 , 9 },
{ 442, 4, 6 , 9 },
{ 456, 4, 6 , 9 },
{ 470, 4, 6 , 9 },
{ 484, 4, 6 , 9 },
{ 4, 27, 6 , 9 },
{ 18, 27, 6 , 9 },
{ 32, 27, 6 , 9 },
{ 46, 27, 2 , 9 },
{ 56, 27, 6 , 9 },
{ 70, 27, 6 , 9 },
{ 84, 27, 6 , 9 },
{ 98, 27, 8 , 9 },
{ 114, 27, 6 , 9 },
{ 128, 27, 6 , 9 },
{ 142, 27, 6 , 9 },
{ 156, 27, 6 , 9 },
{ 170, 27, 6 , 9 },
{ 184, 27, 6 , 9 },
{ 198, 27, 6 , 9 },
{ 212, 27, 6 , 9 },
{ 226, 27, 6 , 9 },
{ 240, 27, 8 , 9 },
{ 256, 27, 6 , 9 },
{ 270, 27, 6 , 9 },
{ 284, 27, 6 , 9 },
{ 298, 27, 3 , 11 },
{ 309, 27, 5 , 10 },
{ 322, 27, 3 , 11 },
{ 333, 27, 6 , 4 },
{ 347, 27, 6 , 1 },
{ 361, 27, 3 , 2 },
{ 372, 27, 6 , 7 },
{ 386, 27, 6 , 10 },
{ 400, 27, 6 , 7 },
{ 414, 27, 6 , 10 },
{ 428, 27, 6 , 7 },
{ 442, 27, 5 , 10 },
{ 455, 27, 7 , 10 },
{ 470, 27, 6 , 10 },
{ 484, 27, 2 , 10 },
{ 494, 27, 2 , 12 },
{ 4, 50, 6 , 10 },
{ 18, 50, 3 , 10 },
{ 29, 50, 8 , 7 },
{ 45, 50, 6 , 7 },
{ 59, 50, 6 , 7 },
{ 73, 50, 6 , 10 },
{ 87, 50, 6 , 10 },
{ 101, 50, 6 , 7 },
{ 115, 50, 6 , 7 },
{ 129, 50, 3 , 10 },
{ 140, 50, 6 , 7 },
{ 154, 50, 6 , 7 },
{ 168, 50, 8 , 7 },
{ 184, 50, 6 , 7 },
{ 198, 50, 6 , 10 },
{ 212, 50, 6 , 7 },
{ 226, 50, 4 , 11 },
{ 238, 50, 1 , 11 },
{ 247, 50, 4 , 11 },
{ 259, 50, 6 , 2 },
{ 273, 50, 2 , 10 },
{ 283, 50, 6 , 11 },
{ 297, 50, 8 , 9 },
{ 313, 50, 7 , 9 },
{ 328, 50, 6 , 9 },
{ 342, 50, 0 , 0 },
{ 350, 50, 6 , 11 },
{ 364, 50, 0 , 0 },
{ 372, 50, 8 , 8 },
{ 388, 50, 5 , 7 },
{ 401, 50, 7 , 6 },
{ 416, 50, 0 , 0 },
{ 424, 50, 8 , 8 },
{ 440, 50, 6 , 1 },
{ 454, 50, 4 , 5 },
{ 466, 50, 6 , 7 },
{ 480, 50, 3 , 5 },
{ 491, 50, 3 , 5 },
{ 502, 50, 0 , 0 },
{ 4, 73, 6 , 9 },
{ 18, 73, 6 , 9 },
{ 32, 73, 4 , 4 },
{ 44, 73, 0 , 0 },
{ 52, 73, 2 , 5 },
{ 62, 73, 4 , 7 },
{ 74, 73, 7 , 6 },
{ 89, 73, 10 , 9 },
{ 107, 73, 10 , 7 },
{ 125, 73, 0 , 0 },
{ 133, 73, 6 , 9 },
{ 147, 73, 6 , 12 },
{ 161, 73, 6 , 12 },
{ 175, 73, 6 , 12 },
{ 189, 73, 6 , 12 },
{ 203, 73, 6 , 11 },
{ 217, 73, 6 , 12 },
{ 231, 73, 10 , 9 },
{ 249, 73, 6 , 12 },
{ 263, 73, 6 , 12 },
{ 277, 73, 6 , 12 },
{ 291, 73, 6 , 12 },
{ 305, 73, 6 , 11 },
{ 319, 73, 3 , 12 },
{ 330, 73, 3 , 12 },
{ 341, 73, 4 , 12 },
{ 353, 73, 4 , 11 },
{ 365, 73, 8 , 9 },
{ 381, 73, 6 , 12 },
{ 395, 73, 6 , 12 },
{ 409, 73, 6 , 12 },
{ 423, 73, 6 , 12 },
{ 437, 73, 6 , 12 },
{ 451, 73, 6 , 11 },
{ 465, 73, 5 , 5 },
{ 478, 73, 9 , 10 },
{ 495, 73, 6 , 12 },
{ 4, 96, 6 , 12 },
{ 18, 96, 6 , 12 },
{ 32, 96, 6 , 11 },
{ 46, 96, 6 , 12 },
{ 60, 96, 0 , 0 },
{ 68, 96, 6 , 10 },
{ 82, 96, 6 , 10 },
{ 96, 96, 6 , 10 },
{ 110, 96, 6 , 10 },
{ 124, 96, 6 , 10 },
{ 138, 96, 6 , 9 },
{ 152, 96, 6 , 11 },
{ 166, 96, 10 , 7 },
{ 184, 96, 6 , 10 },
{ 198, 96, 6 , 10 },
{ 212, 96, 6 , 10 },
{ 226, 96, 6 , 10 },
{ 240, 96, 6 , 9 },
{ 254, 96, 3 , 10 },
{ 265, 96, 3 , 10 },
{ 276, 96, 4 , 10 },
{ 288, 96, 4 , 9 },
{ 300, 96, 0 , 0 },
{ 308, 96, 6 , 13 },
{ 322, 96, 6 , 10 },
{ 336, 96, 6 , 10 },
{ 350, 96, 6 , 10 },
{ 364, 96, 6 , 10 },
{ 378, 96, 6 , 9 },
{ 392, 96, 0 , 0 },
{ 400, 96, 8 , 8 },
{ 416, 96, 6 , 10 },
{ 430, 96, 6 , 10 },
{ 444, 96, 6 , 10 },
{ 458, 96, 6 , 9 },
{ 472, 96, 6 , 13 },
{ 486, 96, 0 , 0 },
{ 494, 96, 6 , 12 },
};
// Font glyphs info data
// NOTE: No glyphs.image data provided
static const GlyphInfo candyFontGlyphs[189] = {
{ 32, 0, 0, 3, { 0 }},
{ 33, 0, 3, 3, { 0 }},
{ 34, 0, 2, 4, { 0 }},
{ 35, 0, 3, 9, { 0 }},
{ 36, 0, 2, 7, { 0 }},
{ 37, 0, 3, 8, { 0 }},
{ 38, 0, 3, 8, { 0 }},
{ 39, 0, 2, 2, { 0 }},
{ 40, 1, 2, 5, { 0 }},
{ 41, 1, 2, 5, { 0 }},
{ 42, 0, 4, 8, { 0 }},
{ 43, 0, 6, 7, { 0 }},
{ 44, 0, 10, 3, { 0 }},
{ 45, 0, 7, 6, { 0 }},
{ 46, 0, 10, 3, { 0 }},
{ 47, 1, 3, 7, { 0 }},
{ 48, 0, 3, 7, { 0 }},
{ 49, 0, 3, 5, { 0 }},
{ 50, 0, 3, 7, { 0 }},
{ 51, 0, 3, 7, { 0 }},
{ 52, 0, 3, 8, { 0 }},
{ 53, 0, 3, 7, { 0 }},
{ 54, 0, 3, 7, { 0 }},
{ 55, 0, 3, 7, { 0 }},
{ 56, 0, 3, 7, { 0 }},
{ 57, 0, 3, 7, { 0 }},
{ 58, 0, 6, 3, { 0 }},
{ 59, 0, 6, 3, { 0 }},
{ 60, 1, 5, 6, { 0 }},
{ 61, 1, 7, 7, { 0 }},
{ 62, 1, 5, 6, { 0 }},
{ 63, 0, 3, 7, { 0 }},
{ 64, 0, 4, 9, { 0 }},
{ 65, 0, 3, 7, { 0 }},
{ 66, 0, 3, 7, { 0 }},
{ 67, 0, 3, 7, { 0 }},
{ 68, 0, 3, 7, { 0 }},
{ 69, 0, 3, 7, { 0 }},
{ 70, 0, 3, 7, { 0 }},
{ 71, 0, 3, 7, { 0 }},
{ 72, 0, 3, 7, { 0 }},
{ 73, 0, 3, 3, { 0 }},
{ 74, 0, 3, 7, { 0 }},
{ 75, 0, 3, 7, { 0 }},
{ 76, 0, 3, 7, { 0 }},
{ 77, 0, 3, 9, { 0 }},
{ 78, 0, 3, 7, { 0 }},
{ 79, 0, 3, 7, { 0 }},
{ 80, 0, 3, 7, { 0 }},
{ 81, 0, 3, 7, { 0 }},
{ 82, 0, 3, 7, { 0 }},
{ 83, 0, 3, 7, { 0 }},
{ 84, 0, 3, 7, { 0 }},
{ 85, 0, 3, 7, { 0 }},
{ 86, 0, 3, 7, { 0 }},
{ 87, 0, 3, 9, { 0 }},
{ 88, 0, 3, 7, { 0 }},
{ 89, 0, 3, 7, { 0 }},
{ 90, 0, 3, 7, { 0 }},
{ 91, 1, 2, 5, { 0 }},
{ 92, 1, 3, 7, { 0 }},
{ 93, 1, 2, 5, { 0 }},
{ 94, 0, 3, 7, { 0 }},
{ 95, 0, 11, 7, { 0 }},
{ 96, 0, 0, 4, { 0 }},
{ 97, 0, 5, 7, { 0 }},
{ 98, 0, 2, 7, { 0 }},
{ 99, 0, 5, 7, { 0 }},
{ 100, 0, 2, 7, { 0 }},
{ 101, 0, 5, 7, { 0 }},
{ 102, 0, 2, 6, { 0 }},
{ 103, 0, 5, 7, { 0 }},
{ 104, 0, 2, 7, { 0 }},
{ 105, 0, 2, 3, { 0 }},
{ 106, 0, 2, 3, { 0 }},
{ 107, 0, 2, 7, { 0 }},
{ 108, 0, 2, 4, { 0 }},
{ 109, 0, 5, 9, { 0 }},
{ 110, 0, 5, 7, { 0 }},
{ 111, 0, 5, 7, { 0 }},
{ 112, 0, 5, 7, { 0 }},
{ 113, 0, 5, 7, { 0 }},
{ 114, 0, 5, 7, { 0 }},
{ 115, 0, 5, 7, { 0 }},
{ 116, 0, 2, 4, { 0 }},
{ 117, 0, 5, 7, { 0 }},
{ 118, 0, 5, 7, { 0 }},
{ 119, 0, 5, 9, { 0 }},
{ 120, 0, 5, 7, { 0 }},
{ 121, 0, 5, 7, { 0 }},
{ 122, 0, 5, 7, { 0 }},
{ 123, 1, 2, 6, { 0 }},
{ 124, 1, 2, 3, { 0 }},
{ 125, 1, 2, 6, { 0 }},
{ 126, 0, 0, 7, { 0 }},
{ 161, 0, 3, 3, { 0 }},
{ 162, 0, 2, 7, { 0 }},
{ 163, 0, 3, 9, { 0 }},
{ 8364, 0, 3, 8, { 0 }},
{ 165, 0, 3, 7, { 0 }},
{ 352, 0, 0, 0, { 0 }},
{ 167, 0, 2, 7, { 0 }},
{ 353, 0, 0, 0, { 0 }},
{ 169, 0, 0, 9, { 0 }},
{ 170, 0, 0, 6, { 0 }},
{ 171, 1, 5, 9, { 0 }},
{ 172, 0, 0, 0, { 0 }},
{ 174, 0, 0, 9, { 0 }},
{ 175, 0, 0, 7, { 0 }},
{ 176, 0, 0, 5, { 0 }},
{ 177, 0, 4, 7, { 0 }},
{ 178, 0, 0, 4, { 0 }},
{ 179, 0, 0, 4, { 0 }},
{ 381, 0, 0, 0, { 0 }},
{ 181, 0, 5, 7, { 0 }},
{ 182, 0, 3, 7, { 0 }},
{ 183, 0, 6, 5, { 0 }},
{ 382, 0, 0, 0, { 0 }},
{ 185, 0, 0, 3, { 0 }},
{ 186, 0, 0, 5, { 0 }},
{ 187, 1, 5, 9, { 0 }},
{ 338, 0, 3, 11, { 0 }},
{ 339, 0, 5, 11, { 0 }},
{ 376, 0, 0, 0, { 0 }},
{ 191, 0, 4, 7, { 0 }},
{ 192, 0, 0, 7, { 0 }},
{ 193, 0, 0, 7, { 0 }},
{ 194, 0, 0, 7, { 0 }},
{ 195, 0, 0, 7, { 0 }},
{ 196, 0, 1, 7, { 0 }},
{ 197, 0, 0, 7, { 0 }},
{ 198, 0, 3, 11, { 0 }},
{ 199, 0, 3, 7, { 0 }},
{ 200, 0, 0, 7, { 0 }},
{ 201, 0, 0, 7, { 0 }},
{ 202, 0, 0, 7, { 0 }},
{ 203, 0, 1, 7, { 0 }},
{ 204, -1, 0, 3, { 0 }},
{ 205, 0, 0, 3, { 0 }},
{ 206, -1, 0, 3, { 0 }},
{ 207, -1, 1, 3, { 0 }},
{ 208, 0, 3, 9, { 0 }},
{ 209, 0, 0, 7, { 0 }},
{ 210, 0, 0, 7, { 0 }},
{ 211, 0, 0, 7, { 0 }},
{ 212, 0, 0, 7, { 0 }},
{ 213, 0, 0, 7, { 0 }},
{ 214, 0, 1, 7, { 0 }},
{ 215, 0, 7, 6, { 0 }},
{ 216, 0, 3, 10, { 0 }},
{ 217, 0, 0, 7, { 0 }},
{ 218, 0, 0, 7, { 0 }},
{ 219, 0, 0, 7, { 0 }},
{ 220, 0, 1, 7, { 0 }},
{ 221, 0, 0, 7, { 0 }},
{ 222, 0, 0, 0, { 0 }},
{ 223, 0, 3, 7, { 0 }},
{ 224, 0, 2, 7, { 0 }},
{ 225, 0, 2, 7, { 0 }},
{ 226, 0, 2, 7, { 0 }},
{ 227, 0, 2, 7, { 0 }},
{ 228, 0, 3, 7, { 0 }},
{ 229, 0, 1, 7, { 0 }},
{ 230, 0, 5, 11, { 0 }},
{ 231, 0, 5, 7, { 0 }},
{ 232, 0, 2, 7, { 0 }},
{ 233, 0, 2, 7, { 0 }},
{ 234, 0, 2, 7, { 0 }},
{ 235, 0, 3, 7, { 0 }},
{ 236, 0, 2, 4, { 0 }},
{ 237, 0, 2, 4, { 0 }},
{ 238, 0, 2, 4, { 0 }},
{ 239, 0, 3, 4, { 0 }},
{ 240, 0, 0, 0, { 0 }},
{ 241, 0, 2, 7, { 0 }},
{ 242, 0, 2, 7, { 0 }},
{ 243, 0, 2, 7, { 0 }},
{ 244, 0, 2, 7, { 0 }},
{ 245, 0, 2, 7, { 0 }},
{ 246, 0, 3, 7, { 0 }},
{ 247, 0, 0, 0, { 0 }},
{ 248, 0, 5, 9, { 0 }},
{ 249, 0, 2, 7, { 0 }},
{ 250, 0, 2, 7, { 0 }},
{ 251, 0, 2, 7, { 0 }},
{ 252, 0, 3, 7, { 0 }},
{ 253, 0, 2, 7, { 0 }},
{ 254, 0, 0, 0, { 0 }},
{ 255, 0, 3, 7, { 0 }},
};
// Style loading function: Candy
static void GuiLoadStyleCandy(void)
{
// Load style properties provided
// NOTE: Default properties are propagated
for (int i = 0; i < CANDY_STYLE_PROPS_COUNT; i++)
{
GuiSetStyle(candyStyleProps[i].controlId, candyStyleProps[i].propertyId, candyStyleProps[i].propertyValue);
}
// Custom font loading
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
int candyFontDataSize = 0;
unsigned char *data = DecompressData(candyFontData, CANDY_STYLE_FONT_ATLAS_COMP_SIZE, &candyFontDataSize);
Image imFont = { data, 512, 256, 1, 2 };
Font font = { 0 };
font.baseSize = 15;
font.glyphCount = 189;
// Load texture from image
font.texture = LoadTextureFromImage(imFont);
UnloadImage(imFont); // Uncompressed image data can be unloaded from memory
// Copy char recs data from global fontRecs
// NOTE: Required to avoid issues if trying to free font
font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle));
memcpy(font.recs, candyFontRecs, font.glyphCount*sizeof(Rectangle));
// Copy font char info data from global fontChars
// NOTE: Required to avoid issues if trying to free font
font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo));
memcpy(font.glyphs, candyFontGlyphs, font.glyphCount*sizeof(GlyphInfo));
GuiSetFont(font);
// Setup a white rectangle on the font to be used on shapes drawing,
// it makes possible to draw shapes and text (full UI) in a single draw call
Rectangle fontWhiteRec = { 510, 254, 1, 1 };
SetShapesTexture(font.texture, fontWhiteRec);
//-----------------------------------------------------------------
// TODO: Custom user style setup: Set specific properties here (if required)
// i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

View File

@ -0,0 +1,27 @@
#
# rgs style text file (v4.0) - raygui style file generated using rGuiStyler
#
# Provided info:
# f fontGenSize charsetFileName fontFileName
# p <controlId> <propertyId> <propertyValue> Property description
#
# WARNING: This style uses a custom font, must be provided with style file
#
f 15 charset.txt v5easter.ttf
p 00 00 0xe58b68ff DEFAULT_BORDER_COLOR_NORMAL
p 00 01 0xfeda96ff DEFAULT_BASE_COLOR_NORMAL
p 00 02 0xe59b5fff DEFAULT_TEXT_COLOR_NORMAL
p 00 03 0xee813fff DEFAULT_BORDER_COLOR_FOCUSED
p 00 04 0xfcd85bff DEFAULT_BASE_COLOR_FOCUSED
p 00 05 0xfc6955ff DEFAULT_TEXT_COLOR_FOCUSED
p 00 06 0xb34848ff DEFAULT_BORDER_COLOR_PRESSED
p 00 07 0xeb7272ff DEFAULT_BASE_COLOR_PRESSED
p 00 08 0xbd4a4aff DEFAULT_TEXT_COLOR_PRESSED
p 00 09 0x94795dff DEFAULT_BORDER_COLOR_DISABLED
p 00 10 0xc2a37aff DEFAULT_BASE_COLOR_DISABLED
p 00 11 0x9c8369ff DEFAULT_TEXT_COLOR_DISABLED
p 00 16 0x0000000f TEXT_SIZE
p 00 17 0x00000000 TEXT_SPACING
p 00 18 0xd77575ff LINE_COLOR
p 00 19 0xfff5e1ff BACKGROUND_COLOR
p 00 20 0x00000016 TEXT_LINE_SPACING

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

View File

@ -1,16 +1,27 @@
style: cherry
--------------
## style: cherry
Sweet with a touch of liquour, covered in chocolate, just give it a try! Not suitable for every palate, only the most demanding.
![cherry style table](style_table.png)
![cherry style table](style_cherry.png)
screenshot
-----------
## style: provided files
Several options are provided to add the style to a `raygui` application, choose the one that better fits the project.
| file name | description |
| :-------- | :---------- |
| `style_cherry.rgs` | Binary style file (raygui 4.0), font data compressed (recs, glyphs) |
| `style_cherry.txt.rgs` | Text style file, no font data, requires external font provided |
| `style_cherry.old.rgs` | Binary style file (raygui 3.x), font data uncompressed (recs, glyphs) |
| `style_cherry.h` | Embeddable style as code file, self-contained, includes font data |
| `style_cherry.png` | Style table image, contains `rGSf` chunk with binary `rgs` file data |
## screenshot
![cherry style screen](screenshot.png)
about font
-----------
## about font
"Westington" font by Hazel Abbiati.
100% free font, downloaded from dafont.com: [westington](https://www.dafont.com/westington.font)

Some files were not shown because too many files have changed in this diff Show More