Compare commits
465 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 25c8c65a6e | |||
| 268d8bfedd | |||
| d0e7a05f9a | |||
| db466282f8 | |||
| d5e9323ba9 | |||
| 9907803626 | |||
| d2b4c917a9 | |||
| 3f4c84b731 | |||
| 617dc15209 | |||
| ac342b9ce8 | |||
| aadd9bd3b3 | |||
| 72f61056bf | |||
| ec688eced3 | |||
| 38839e4aa1 | |||
| 405e71f524 | |||
| b1b46932fb | |||
| 854351a42a | |||
| 07a80c6828 | |||
| 5a1be66c8a | |||
| 84f2588a4f | |||
| c37013e10b | |||
| 44d8a6ac55 | |||
| ed545e4d7b | |||
| 7746bf39a0 | |||
| 7b823e0c53 | |||
| b9c28b4a3c | |||
| 7417b308af | |||
| 0fccdc61fb | |||
| d6c317f719 | |||
| 25ffd1fe0b | |||
| 1af7a875fc | |||
| e97226cd04 | |||
| 33f43fee2c | |||
| 6f9a8088f2 | |||
| 7f275f4f8c | |||
| 2955c676ce | |||
| 718b5830d3 | |||
| 8d9a4b537f | |||
| abf35d8895 | |||
| 12fc56e5e1 | |||
| 0938f9219c | |||
| 35df0d3d28 | |||
| bced15ec96 | |||
| 80b4d6ec06 | |||
| e569da6a87 | |||
| 3b8164216b | |||
| 1a786bc9b7 | |||
| d7eb8a7ec5 | |||
| df543bafad | |||
| 1ad1907dc1 | |||
| da377d736d | |||
| e830109d52 | |||
| 9bf3ef57a5 | |||
| 41417db52d | |||
| a589af0a67 | |||
| f09b9a546a | |||
| 3174613820 | |||
| 2b4d558d31 | |||
| 96278a4d08 | |||
| f8966405ac | |||
| 7567816d3e | |||
| 3d20f06bf2 | |||
| eca6b1a7ff | |||
| c8260e22de | |||
| 050249b2e5 | |||
| 36365199b1 | |||
| 1d5e69fc42 | |||
| 3e7defc05a | |||
| f62241d5d1 | |||
| 02cdb87fb2 | |||
| ccc9b55e82 | |||
| 848569ce33 | |||
| 89f9d94c6b | |||
| d54103a1c9 | |||
| b850edc733 | |||
| 670a5deb48 | |||
| df5ee2a420 | |||
| 0309c751b5 | |||
| 8041f9d3d7 | |||
| 9a3ba8ba1f | |||
| 7373f3677d | |||
| 6111ae9ac1 | |||
| 328f46649b | |||
| a234fab333 | |||
| c480013f73 | |||
| e7518232eb | |||
| 9a2605d461 | |||
| d6f3cdc15c | |||
| 8fef0f4fc0 | |||
| fa1c93cdcc | |||
| 1902a2b2e5 | |||
| 32ae0cf716 | |||
| 7f70abc5db | |||
| b6db462f72 | |||
| e6860d2e06 | |||
| c17e0cd5d9 | |||
| df65b05208 | |||
| 812408c828 | |||
| b9991686d5 | |||
| 83e6cae9e4 | |||
| de7d3de282 | |||
| 3c5b5121bc | |||
| 5e77b2ca6f | |||
| 37deba27a8 | |||
| d72e70b410 | |||
| 29a230929d | |||
| 935b8119e9 | |||
| 4f48e5a3c7 | |||
| 6650ad0ffa | |||
| 2648c771e7 | |||
| ce358972ef | |||
| ae38f05811 | |||
| 1af9a3960a | |||
| 6e4530330d | |||
| 135718ee04 | |||
| 78ad65365e | |||
| aa81c167f1 | |||
| 37992af28a | |||
| 9cf37c5e51 | |||
| 60e216283d | |||
| 7f46aa5929 | |||
| b54733ec12 | |||
| 7da92d224d | |||
| 1c7ceb6fda | |||
| 251f7fde3a | |||
| 80e802b18d | |||
| 6fc9337cd8 | |||
| 38a3d100e1 | |||
| 628f2e0290 | |||
| ab209bc5d1 | |||
| 8c14e61214 | |||
| 27caba8834 | |||
| 31b097ee3e | |||
| b0d7073551 | |||
| 731bae72d5 | |||
| 4ad311bd6f | |||
| c4d71e1c0b | |||
| d04c68b915 | |||
| 42aaec6640 | |||
| d05586ef0f | |||
| 2b45fea429 | |||
| 665520d7c9 | |||
| fcaab0e9ef | |||
| 926fdf91cc | |||
| 8de6bf1d63 | |||
| bb02c2059e | |||
| fdc0ea5249 | |||
| 6b2f812cc7 | |||
| f343f0057c | |||
| bb17983e22 | |||
| b2ff512c8e | |||
| 6b88e106e0 | |||
| 87fc5aa72c | |||
| e0d3c02892 | |||
| b80fa4016c | |||
| 8c89d8794f | |||
| 5d7bc6b70a | |||
| 1d9fd31074 | |||
| 5d1de95ba2 | |||
| abbf1b1198 | |||
| 19f781780e | |||
| 15a4151b66 | |||
| f218fd001a | |||
| 9f9b822338 | |||
| c02a5883e0 | |||
| 3cd28c0828 | |||
| cec2de3440 | |||
| 5b37ce0630 | |||
| 9e3c5009e4 | |||
| 42cc62e853 | |||
| 0ced5b1c0d | |||
| 32f16ceafd | |||
| 8f808dfe66 | |||
| b5e5271646 | |||
| 0aeac22701 | |||
| 78963b1817 | |||
| fa8272d605 | |||
| 9914eb8d94 | |||
| 64179558e4 | |||
| 85d6736be9 | |||
| bd4d2d860c | |||
| 3fedc2fac4 | |||
| 59cf0c7607 | |||
| c16a98365f | |||
| 03a3cce57b | |||
| ad8e056b0c | |||
| 6e4cd54baa | |||
| a8062229b0 | |||
| d4b9d1fb32 | |||
| abe8bba7fa | |||
| 1021907604 | |||
| 9dc0b58566 | |||
| 16e63f33ee | |||
| 3386e912d3 | |||
| 0562c4c93f | |||
| d981abebd8 | |||
| 98df231227 | |||
| ed4731ad9e | |||
| a3075fcaf4 | |||
| 5cb62810b9 | |||
| f4890960d8 | |||
| eac855b0dd | |||
| e4cc3ce450 | |||
| 3c0aaff191 | |||
| 5f22083d6c | |||
| 353b8a4b5b | |||
| 7837b9dc06 | |||
| 3e6f5fdf01 | |||
| c49cbc9849 | |||
| b37c0df561 | |||
| 680a4bca4b | |||
| a0cded315a | |||
| c8a2e7d442 | |||
| 4e2a878e71 | |||
| 9c826f213f | |||
| 7ef0ae713b | |||
| 38236a5513 | |||
| fc6742a5fe | |||
| 798da1b522 | |||
| 1b18e43768 | |||
| 47269f30ce | |||
| 5bcfa6ccdc | |||
| c29da799cc | |||
| 2f127b3e83 | |||
| 1f920bf264 | |||
| df117f84cb | |||
| 4232b2a0e7 | |||
| f9483a6a52 | |||
| 99299c3f06 | |||
| 161dc0ed84 | |||
| 6cff9e20d4 | |||
| 013f1a2772 | |||
| f534a9a265 | |||
| 694e770351 | |||
| 7b2e7a107b | |||
| 781123c647 | |||
| 9113b1e4c9 | |||
| 486bc9b5e3 | |||
| 9554ca8d63 | |||
| ffb4a7a851 | |||
| c991cbcaf8 | |||
| f13c5c3ec3 | |||
| 865bb29376 | |||
| c4e121d548 | |||
| baf3790cac | |||
| 4c5784f07d | |||
| 8b28248552 | |||
| ec3a7a414d | |||
| 1fdc76d8ad | |||
| 7137b8331d | |||
| 483b3a17ad | |||
| 4466262b50 | |||
| 6d79cdf2fd | |||
| f08ec1d08a | |||
| 453bf67c40 | |||
| 84246d75e8 | |||
| e30cb00f39 | |||
| 151c4c5dce | |||
| 6789281386 | |||
| 9e51cf9213 | |||
| 0476dab3cf | |||
| 4f933c1e81 | |||
| 0dd763f4a4 | |||
| 627e879018 | |||
| 9407bf1a1d | |||
| 7a2a57b868 | |||
| d0f8e9bb0a | |||
| 876dd2879a | |||
| 78cd3d650d | |||
| 803e3b92af | |||
| ce42af4858 | |||
| c8d8fb5a86 | |||
| d0815ce9f3 | |||
| 843ecc2258 | |||
| cdb9fc9bff | |||
| 690214dd0a | |||
| 6f1b6ad15f | |||
| ac231606d3 | |||
| b472287b0a | |||
| ebe196799a | |||
| 7c578ae94b | |||
| 90ef00a474 | |||
| 17f9d3c0f5 | |||
| f00fa5ff23 | |||
| 1f0dbc8aa1 | |||
| cc359132b6 | |||
| a76d9f96e6 | |||
| 0280f973e5 | |||
| 679cc2f17f | |||
| 52755a2913 | |||
| 638484742e | |||
| 4fb2f1a19c | |||
| 042df8f004 | |||
| 7a2964302a | |||
| e287ca4c47 | |||
| c7eb926853 | |||
| f023911302 | |||
| 9dbc340cb6 | |||
| c8417c606a | |||
| 318bc4a747 | |||
| 24fcac010e | |||
| eface74b13 | |||
| 5c50b082b3 | |||
| f9aa763661 | |||
| 37bc50cad3 | |||
| e12b1f93c3 | |||
| 771513ebe5 | |||
| de39a6064f | |||
| da356fffff | |||
| 7887356296 | |||
| a611c16e66 | |||
| 379ab63197 | |||
| 110553535b | |||
| 43209cf627 | |||
| 70e30d447f | |||
| 0f05fccf4c | |||
| 23121c5454 | |||
| ba575e9e76 | |||
| 733fa0fce0 | |||
| 38bda86911 | |||
| 0c264d5af3 | |||
| a778d8474a | |||
| 10ebad86ef | |||
| a609522c05 | |||
| acc19b74b3 | |||
| 65a82bfe54 | |||
| af51e4ccf7 | |||
| 61c6bd22f9 | |||
| 0d3dc299cd | |||
| ba2fdec93b | |||
| a5068756be | |||
| 22c0b5754a | |||
| e4db44518e | |||
| 4e1a1d2348 | |||
| 405f7ab7e8 | |||
| e86d0dc2bf | |||
| a456bcb763 | |||
| 31a38d34fc | |||
| a770a93fb2 | |||
| 1a9f0fbe9c | |||
| 283716857c | |||
| 2fa812484c | |||
| f822fb1468 | |||
| 8c70f3315a | |||
| 8993f07c94 | |||
| 7c63e389b8 | |||
| 0ed765cd8b | |||
| f1853f50e7 | |||
| b0dfa6dcbf | |||
| f7abbc055f | |||
| 46243ef6d2 | |||
| 2bb3e17c1e | |||
| 734d067335 | |||
| e81fd89b6d | |||
| c1af7c3edd | |||
| 469496d177 | |||
| 653ee23f58 | |||
| 181f41cee0 | |||
| d45a0f55f1 | |||
| 3e1162bb9a | |||
| fc43382050 | |||
| c1d906855b | |||
| d871bc0641 | |||
| 8197be08d8 | |||
| 424ad14d3c | |||
| c3dc43d4c5 | |||
| cf45f9bccf | |||
| 873c6a95b3 | |||
| 24e0dd6600 | |||
| 2083c6984a | |||
| 0907bee71b | |||
| 65e39bb4bc | |||
| bad9c8bb58 | |||
| d5856e5182 | |||
| 76c6184c49 | |||
| 6edd0865c0 | |||
| a4a6ff98b3 | |||
| 78f24a3868 | |||
| 045d4856f0 | |||
| d215533b5a | |||
| 806b216e20 | |||
| d77bd5f3ef | |||
| c2bee39e0b | |||
| d2752e9a47 | |||
| 6b216626ec | |||
| 13aac618ad | |||
| a11fb5f38d | |||
| ef99aafee9 | |||
| 3749de3ef8 | |||
| 0cbbb48410 | |||
| 3627bb960a | |||
| 28d7584fc1 | |||
| b4288f969c | |||
| 7dae5b06f7 | |||
| f5bd6c08f8 | |||
| 3b44da667b | |||
| 60605f01b6 | |||
| a380ef80c1 | |||
| 7eda4008e2 | |||
| b73eb56f3c | |||
| 07b30c30af | |||
| 95b225b90c | |||
| 6d2d6819fa | |||
| 4eda62925c | |||
| 3e61557f25 | |||
| 65bad19e26 | |||
| 4643d3769d | |||
| 8c33be58b2 | |||
| 8a38a8028e | |||
| 76d734bb30 | |||
| 4758b45676 | |||
| fa8b958a91 | |||
| feb1a6c874 | |||
| e689c710e4 | |||
| 0fdacc87f6 | |||
| 5191022a6b | |||
| 3e1d420e60 | |||
| 7f4794c31d | |||
| 6346ae2246 | |||
| b2974f3d28 | |||
| 18a32e61ab | |||
| 6cf73a3054 | |||
| 9d911f7104 | |||
| d3c810311c | |||
| d878d38e40 | |||
| 9d1e48bfe6 | |||
| 24de442135 | |||
| 6f80bfbbd1 | |||
| ffdeef8d17 | |||
| b8932dab26 | |||
| d297b5d7d9 | |||
| 1f088bf174 | |||
| fd349ca95c | |||
| 8d5f8f28a4 | |||
| efe2a42cee | |||
| 4fb2b73a15 | |||
| aa28f6c759 | |||
| e1e296583e | |||
| 962661b7ea | |||
| 4047b43b10 | |||
| 146068751c | |||
| fce438cd1c | |||
| 09d583687a | |||
| 9f589be0c2 | |||
| 40ceed83cc | |||
| 0843425e4e | |||
| f296f53a1c | |||
| 1beef1c0e0 | |||
| 9fd0f91dea | |||
| 1cc900bff9 | |||
| a2c5ffc272 | |||
| 58307af091 | |||
| 72eac06c29 | |||
| 416df0ad4e | |||
| b312ba5f78 | |||
| 48c355315b | |||
| e9833c1a4f | |||
| 2c96d4a157 | |||
| f164f744ac | |||
| 00fb56245d | |||
| 6469c92b69 | |||
| d3b2f49da3 | |||
| 5572d37fe0 | |||
| b888ce73ef | |||
| ffb1d9f9a8 |
28
.gitignore
vendored
@ -34,3 +34,31 @@
|
|||||||
|
|
||||||
# VSCode files
|
# VSCode files
|
||||||
.vscode/
|
.vscode/
|
||||||
|
|
||||||
|
|
||||||
|
# Ignore files build by Visual Studio
|
||||||
|
[Dd]ebug
|
||||||
|
[Rr]elease
|
||||||
|
*.vs
|
||||||
|
*.obj
|
||||||
|
*.pdb
|
||||||
|
*.aps
|
||||||
|
*.user
|
||||||
|
# *.vcproj
|
||||||
|
# *.vcxproj*
|
||||||
|
# *.sln
|
||||||
|
*.vspscc
|
||||||
|
*_i.c
|
||||||
|
*.i
|
||||||
|
*.icf
|
||||||
|
*_p.c
|
||||||
|
*.ncb
|
||||||
|
*.suo
|
||||||
|
*.tlb
|
||||||
|
*.tlh
|
||||||
|
*.bak
|
||||||
|
*.cache
|
||||||
|
*.ilk
|
||||||
|
*.log
|
||||||
|
|
||||||
|
build
|
||||||
2
LICENSE
@ -1,6 +1,6 @@
|
|||||||
zlib License
|
zlib License
|
||||||
|
|
||||||
Copyright (c) 2014-2019 Ramon Santamaria (@raysan5)
|
Copyright (c) 2014-2023 Ramon Santamaria (@raysan5)
|
||||||
|
|
||||||
This software is provided "as-is", without any express or implied warranty. In no event
|
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.
|
will the authors be held liable for any damages arising from the use of this software.
|
||||||
|
|||||||
115
README.md
@ -1,71 +1,122 @@
|
|||||||
<img align="left" src="logo/raygui_256x256.png" width=256>
|
<img align="left" src="logo/raygui_256x256.png" width=256>
|
||||||
|
|
||||||
**raygui** is a simple and easy-to-use immediate-mode-gui library.
|
**raygui is a simple and easy-to-use immediate-mode-gui library.**
|
||||||
|
|
||||||
raygui was initially inspired by [Unity IMGUI](https://docs.unity3d.com/Manual/GUIScriptingGuide.html) (immediate mode GUI API).
|
`raygui` was originally inspired by [Unity IMGUI](https://docs.unity3d.com/Manual/GUIScriptingGuide.html) (immediate mode GUI API).
|
||||||
|
|
||||||
raygui was originated 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, raylib default font...).
|
`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 is intended for **tools development**; it has already been used to develop the following tools: [rFXGen](https://github.com/raysan5/rfxgen), [rTexViewer](https://raylibtech.itch.io/rtexviewer), [rGuiStyler](https://raylibtech.itch.io/rguistyler) and [rGuiLayout](https://raylibtech.itch.io/rguilayout).
|
`raygui` is intended for **tools development**; it has already been used to develop [multiple published tools](https://raylibtech.itch.io).
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
## raygui provided controls
|
**WARNING: Latest `raygui` from master branch is always aligned with latest `raylib` from master branch. Make sure to use the appropiate versions.**
|
||||||
|
|
||||||
#### Container/separator controls
|
**WARNING: Master branch now contains raygui 4.0-dev, it 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
|
||||||
|
|
||||||
|
- **Immediate-mode gui, no retained data**
|
||||||
|
- **+25** controls provided (basic and advanced)
|
||||||
|
- Powerful **styling system** for colors, font and metrics
|
||||||
|
- Standalone usage mode supported (for other graphic libs)
|
||||||
|
- **Icons support**, embedding a complete 1-bit icons pack
|
||||||
|
- Multiple **tools** provided for raygui development
|
||||||
|
|
||||||
|
## raygui controls
|
||||||
|
|
||||||
|
### basic controls
|
||||||
```
|
```
|
||||||
WindowBox | GroupBox | Line | Panel
|
Label | Button | LabelButton | Toggle | ToggleGroup | ToggleSlider
|
||||||
|
CheckBox | ComboBox | DropdownBox | TextBox | ValueBox | Spinner
|
||||||
|
Slider | SliderBar | ProgressBar | StatusBar | DummyRec | Grid
|
||||||
```
|
```
|
||||||
#### Basic controls
|
### container/separator controls
|
||||||
```
|
```
|
||||||
Label | Button | LabelButton | ImageButton | Toggle | ToggleGroup | CheckBox
|
WindowBox | GroupBox | Line | Panel | ScrollPanel | TabBar
|
||||||
ComboBox | DropdownBox | TextBox | TextBoxMulti | ValueBox | Spinner | Slider
|
|
||||||
SliderBar | ProgressBar | StatusBar | ScrollBar | ScrollPanel | DummyRec | Grid
|
|
||||||
```
|
```
|
||||||
#### Advance controls
|
### advanced controls
|
||||||
```
|
```
|
||||||
ListView | ColorPicker | MessageBox | TextInputBox
|
ListView | ColorPicker | MessageBox | TextInputBox
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## raygui styles
|
## raygui styles
|
||||||
|
|
||||||
raygui comes with a [default](styles/default) style automatically loaded at runtime:
|
`raygui` comes with a [default](styles/default) style automatically loaded at runtime:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Some additional styles are also provided for convenience, just check [styles directory](styles) for details:
|
Some additional styles are also provided for convenience, just check [styles directory](styles) for details:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Custom styles can also be created very easily using [rGuiStyler](https://raylibtech.itch.io/rguistyler) tool.
|
Custom styles can also be created very easily using [rGuiStyler](https://raylibtech.itch.io/rguistyler) tool.
|
||||||
|
|
||||||
Styles can be loaded at runtime using raygui `GuiLoadStyle()` function. Simple and easy-to-use.
|
Styles can be loaded at runtime using raygui `GuiLoadStyle()` function. Simple and easy-to-use.
|
||||||
|
|
||||||

|
## raygui icons
|
||||||
|
|
||||||
*rGuiStyler v3.1 - raygui styles editor, useful to create custom styles*
|
`raygui` supports custom icons, by default, a predefined set of icons is provided inside `raygui` as an array of binary data; it contains **256 possible icons** defined as **16x16 pixels** each; each pixel is codified using **1-bit**. The total size of the array is `2048 bytes`.
|
||||||
|
|
||||||
## raygui icons: ricons
|
|
||||||
|
|
||||||
`raygui` includes a separate module with a set of custom handcrafter icons, ready to be used and integrated in a easy way with `raygui`. This module is called `ricons.h` and can be automatically included just defining `RAYGUI_SUPPORT_RICONS` before including `raygui`.
|
|
||||||
|
|
||||||
<img align="right" src="images/raygui_ricons.png">
|
<img align="right" src="images/raygui_ricons.png">
|
||||||
|
|
||||||
|
To use any of those icons just prefix the *#iconId#* number to **any text** written within `raygui` controls:
|
||||||
```c
|
```c
|
||||||
#define RAYGUI_IMPLEMENTATION
|
if (GuiButton(rec, "#05#Open Image")) { /* ACTION */ }
|
||||||
#define RAYGUI_SUPPORT_RICONS
|
|
||||||
#include "raygui.h"
|
|
||||||
```
|
```
|
||||||
To use any of those icons in your gui, just preprend *iconId* to any text written within `raygui` controls:
|
It's also possible to use the provided `GuiIconText()` function to prefix it automatically, using a clearer identifier (defined in `raygui.h`).
|
||||||
```c
|
|
||||||
if (GuiButton(rec, "#05#Open Image") { /* ACTION */ }
|
|
||||||
```
|
|
||||||
or use the provided `GuiIconText()` function to prepend it automatically, using a clearer identifier.
|
|
||||||
```c
|
```c
|
||||||
if (GuiButton(rec, GuiIconText(RICON_FILE_OPEN, "Open Image"))) { /* ACTION */ }
|
if (GuiButton(rec, GuiIconText(RICON_FILE_OPEN, "Open Image"))) { /* ACTION */ }
|
||||||
```
|
```
|
||||||
|
Provided set of icons can be reviewed and customized using [rGuiIcons](https://raylibtech.itch.io/rguiicons) tool.
|
||||||
|
|
||||||
license
|
## raygui support tools
|
||||||
-------
|
|
||||||
|
|
||||||
raygui is licensed under an unmodified zlib/libpng license, which is an OSI-certified, BSD-like license that allows static linking with closed source software. Check [LICENSE](LICENSE.md) for further details.
|
- [**rGuiStyler**](https://raylibtech.itch.io/rguistyler) - A simple and easy-to-use raygui styles editor.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
- [**rGuiIcons**](https://raylibtech.itch.io/rguiicons) - A simple and easy-to-use raygui icons editor.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
- [**rGuiLayout**](https://raylibtech.itch.io/rguilayout) - A simple and easy-to-use raygui layouts editor.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## building
|
||||||
|
|
||||||
|
`raygui` is intended to be used as a portable single-file header-only library, to be directly integrated into any C/C++ codebase but some users could require a shared/dynamic version of the library, for example, to create bindings:
|
||||||
|
|
||||||
|
- **Windows (MinGW, GCC)**
|
||||||
|
```
|
||||||
|
copy src/raygui.h src/raygui.c
|
||||||
|
gcc -o src/raygui.dll src/raygui.c -shared -DRAYGUI_IMPLEMENTATION -DBUILD_LIBTYPE_SHARED -static-libgcc -lopengl32 -lgdi32 -lwinmm -Wl,--out-implib,src/librayguidll.a
|
||||||
|
```
|
||||||
|
|
||||||
|
- **Windows (MSVC)**
|
||||||
|
```
|
||||||
|
copy src\raylib.h src\raylib.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
|
||||||
|
```
|
||||||
|
|
||||||
|
- **Linux (GCC)**
|
||||||
|
```
|
||||||
|
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
|
||||||
|
```
|
||||||
|
|
||||||
|
- **Mac (clang, homebrew installed raylib)**
|
||||||
|
```
|
||||||
|
cp src/raygui.h src/raygui.c
|
||||||
|
brew install raylib
|
||||||
|
gcc -o raygui.dynlib src/raygui.c -shared -fpic -DRAYGUI_IMPLEMENTATION -framework OpenGL -lm -lpthread -ldl $(pkg-config --libs --cflags raylib)
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## license
|
||||||
|
|
||||||
|
raygui is licensed under an unmodified zlib/libpng license, which is an OSI-certified, BSD-like license that allows static linking with closed source software. Check [LICENSE](LICENSE) for further details.
|
||||||
|
|||||||
@ -319,7 +319,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP)
|
|||||||
ifeq ($(PLATFORM_OS),OSX)
|
ifeq ($(PLATFORM_OS),OSX)
|
||||||
# Libraries for OSX 10.9 desktop compiling
|
# Libraries for OSX 10.9 desktop compiling
|
||||||
# NOTE: Required packages: libopenal-dev libegl1-mesa-dev
|
# NOTE: Required packages: libopenal-dev libegl1-mesa-dev
|
||||||
LDLIBS = -lraylib -framework OpenGL -framework OpenAL -framework Cocoa
|
LDLIBS = -lraylib -framework OpenGL -framework Cocoa -framework IOKit -framework CoreAudio -framework CoreVideo
|
||||||
endif
|
endif
|
||||||
ifeq ($(PLATFORM_OS),BSD)
|
ifeq ($(PLATFORM_OS),BSD)
|
||||||
# Libraries for FreeBSD, OpenBSD, NetBSD, DragonFly desktop compiling
|
# Libraries for FreeBSD, OpenBSD, NetBSD, DragonFly desktop compiling
|
||||||
@ -348,11 +348,15 @@ endif
|
|||||||
EXAMPLES = \
|
EXAMPLES = \
|
||||||
controls_test_suite/controls_test_suite \
|
controls_test_suite/controls_test_suite \
|
||||||
custom_file_dialog/custom_file_dialog \
|
custom_file_dialog/custom_file_dialog \
|
||||||
|
custom_input_box/custom_input_box\
|
||||||
image_exporter/image_exporter \
|
image_exporter/image_exporter \
|
||||||
image_raw_importer/image_raw_importer \
|
image_importer_raw/image_importer_raw \
|
||||||
|
property_list/property_list \
|
||||||
portable_window/portable_window \
|
portable_window/portable_window \
|
||||||
scroll_panel/gui_scroll_panel \
|
scroll_panel/scroll_panel \
|
||||||
text_box_selection/gui_text_box
|
style_selector/style_selector \
|
||||||
|
custom_sliders/custom_sliders \
|
||||||
|
animation_curve/animation_curve
|
||||||
|
|
||||||
CURRENT_MAKEFILE = $(lastword $(MAKEFILE_LIST))
|
CURRENT_MAKEFILE = $(lastword $(MAKEFILE_LIST))
|
||||||
|
|
||||||
@ -385,4 +389,4 @@ endif
|
|||||||
ifeq ($(PLATFORM),PLATFORM_WEB)
|
ifeq ($(PLATFORM),PLATFORM_WEB)
|
||||||
del *.o *.html *.js
|
del *.o *.html *.js
|
||||||
endif
|
endif
|
||||||
@echo Cleaning done
|
@echo Cleaning done
|
||||||
|
|||||||
477
examples/animation_curve/animation_curve.c
Normal file
@ -0,0 +1,477 @@
|
|||||||
|
/*******************************************************************************************
|
||||||
|
*
|
||||||
|
* Animation curves - An example demo for animation curves
|
||||||
|
*
|
||||||
|
* DEPENDENCIES:
|
||||||
|
* raylib 4.0 - Windowing/input management and drawing.
|
||||||
|
* raygui 3.0 - Immediate-mode GUI controls.
|
||||||
|
*
|
||||||
|
* COMPILATION (Windows - MinGW):
|
||||||
|
* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99
|
||||||
|
*
|
||||||
|
* LICENSE: zlib/libpng
|
||||||
|
*
|
||||||
|
* Copyright (c) 2023 Pierre Jaffuer (@smallcluster)
|
||||||
|
*
|
||||||
|
**********************************************************************************************/
|
||||||
|
|
||||||
|
#include "raylib.h"
|
||||||
|
|
||||||
|
#define RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT 24
|
||||||
|
#define RAYGUI_IMPLEMENTATION
|
||||||
|
#include "../../src/raygui.h"
|
||||||
|
|
||||||
|
// raygui embedded styles
|
||||||
|
#include "../../styles/cyber/cyber.h" // raygui style: cyber
|
||||||
|
#include "../../styles/jungle/jungle.h" // raygui style: jungle
|
||||||
|
#include "../../styles/lavanda/lavanda.h" // raygui style: lavanda
|
||||||
|
#include "../../styles/dark/dark.h" // raygui style: dark
|
||||||
|
#include "../../styles/bluish/bluish.h" // raygui style: bluish
|
||||||
|
#include "../../styles/terminal/terminal.h" // raygui style: terminal
|
||||||
|
|
||||||
|
#undef RAYGUI_IMPLEMENTATION // Avoid including raygui implementation again
|
||||||
|
|
||||||
|
#define GUI_CURVE_EDITOR_IMPLEMENTATION
|
||||||
|
#include "gui_curve_editor.h"
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------------
|
||||||
|
// Helper function
|
||||||
|
//------------------------------------------------------------------------------------
|
||||||
|
void LoadCurveDefaults(GuiCurveEditorState curves[]);
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------------
|
||||||
|
// Program main entry point
|
||||||
|
//------------------------------------------------------------------------------------
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
// Initialization
|
||||||
|
//---------------------------------------------------------------------------------------
|
||||||
|
const int screenWidth = 800;
|
||||||
|
const int screenHeight = 540;
|
||||||
|
|
||||||
|
InitWindow(screenWidth, screenHeight, "raygui - animation curves");
|
||||||
|
SetTargetFPS(60);
|
||||||
|
|
||||||
|
// Gui style
|
||||||
|
GuiLoadStyleDefault();
|
||||||
|
int visualStyleActive = 0;
|
||||||
|
int prevVisualStyleActive = 0;
|
||||||
|
|
||||||
|
float fontSize = GuiGetStyle(DEFAULT, TEXT_SIZE);
|
||||||
|
const float margin = 8;
|
||||||
|
|
||||||
|
// Gui states
|
||||||
|
Vector2 scrollOffset = (Vector2){ 0, 0 };
|
||||||
|
Rectangle contentRect = (Rectangle){ 0, 0, 0, 0 };
|
||||||
|
bool moveSlider = false;
|
||||||
|
bool sectionActive[5] = { 0 };
|
||||||
|
sectionActive[0] = true;
|
||||||
|
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 };
|
||||||
|
|
||||||
|
// Animation curves
|
||||||
|
// 0 -> Ball X position
|
||||||
|
// 1 -> Ball Y position
|
||||||
|
// 2 -> Ball Width
|
||||||
|
// 3 -> Ball Height
|
||||||
|
// 4 -> Ball rotation
|
||||||
|
GuiCurveEditorState curves[5] = { 0 };
|
||||||
|
LoadCurveDefaults(curves);
|
||||||
|
|
||||||
|
// Animation time
|
||||||
|
float time = 0.0f;
|
||||||
|
float animationTime = 4.0f;
|
||||||
|
|
||||||
|
//SetTargetFPS(60);
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Main game loop
|
||||||
|
while (!WindowShouldClose()) // Detect window close button or ESC key
|
||||||
|
{
|
||||||
|
// Update
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
if (playAnimation) time += GetFrameTime();
|
||||||
|
|
||||||
|
// Reset timer
|
||||||
|
if (time > animationTime) time = 0;
|
||||||
|
|
||||||
|
// Ball animation
|
||||||
|
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)
|
||||||
|
{
|
||||||
|
switch (visualStyleActive)
|
||||||
|
{
|
||||||
|
case 0: GuiLoadStyleDefault(); break;
|
||||||
|
case 1: GuiLoadStyleJungle(); break;
|
||||||
|
case 2: GuiLoadStyleLavanda(); break;
|
||||||
|
case 3: GuiLoadStyleDark(); break;
|
||||||
|
case 4: GuiLoadStyleBluish(); break;
|
||||||
|
case 5: GuiLoadStyleCyber(); break;
|
||||||
|
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)
|
||||||
|
{
|
||||||
|
settingsRect.x = GetMouseX();
|
||||||
|
|
||||||
|
// Minimum-Maximum size
|
||||||
|
if (settingsRect.x > (screenWidth - 4)) settingsRect.x = screenWidth - 4;
|
||||||
|
else if (settingsRect.x < 4) settingsRect.x = 4;
|
||||||
|
|
||||||
|
settingsRect.width = screenWidth - settingsRect.x;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Draw
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
BeginDrawing();
|
||||||
|
ClearBackground(GetColor( GuiGetStyle(DEFAULT, BACKGROUND_COLOR)));
|
||||||
|
|
||||||
|
// Scene
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
DrawRectangle(curves[0].start, curves[1].end, curves[0].end-curves[0].start, curves[1].start-curves[1].end, BLUE); // Sky
|
||||||
|
|
||||||
|
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);
|
||||||
|
|
||||||
|
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
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
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");
|
||||||
|
helpTextRect.height += fontSize+margin/2;
|
||||||
|
GuiLabel((Rectangle) {helpTextRect.x, helpTextRect.y+helpTextRect.height, helpTextRect.width, fontSize}, "- While moving a tangent, hold SHIFT to disable tangent symetry");
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Settings panel
|
||||||
|
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 };
|
||||||
|
|
||||||
|
// 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;
|
||||||
|
|
||||||
|
contentRect.height += 1.5*fontSize + margin;
|
||||||
|
|
||||||
|
// Animation Time slider
|
||||||
|
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"))
|
||||||
|
{
|
||||||
|
LoadCurveDefaults(curves);
|
||||||
|
animationTime = 4.0f;
|
||||||
|
time = 0.0f;
|
||||||
|
}
|
||||||
|
contentRect.height += 1.5f*fontSize + margin;
|
||||||
|
|
||||||
|
// Styles
|
||||||
|
GuiLabel((Rectangle){ contentRect.x, contentRect.y + contentRect.height + scrollOffset.y, contentRect.width, fontSize }, "Style:");
|
||||||
|
contentRect.height += fontSize;
|
||||||
|
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
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
for (int i = 0; i < 5; i++)
|
||||||
|
{
|
||||||
|
// Collapsing section
|
||||||
|
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.5f*fontSize + margin;
|
||||||
|
|
||||||
|
// Skip this section
|
||||||
|
if (!sectionActive[i]) continue;
|
||||||
|
|
||||||
|
// Draw curve control
|
||||||
|
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);
|
||||||
|
GuiCurveEditor(&curves[i], curveRect);
|
||||||
|
EndScissorMode();
|
||||||
|
|
||||||
|
// Resume clipping from setting rect
|
||||||
|
BeginScissorMode(settingsRect.x, settingsRect.y + RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT, settingsRect.width, settingsRect.height);
|
||||||
|
contentRect.height += fontSize*12 + margin;
|
||||||
|
|
||||||
|
// Draw selected point controls
|
||||||
|
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");
|
||||||
|
contentRect.height += fontSize;
|
||||||
|
|
||||||
|
if (!editValueBox[i][0]) gcvt(p->position.x, 6, 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, 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.5f*fontSize }, valTextBox[i][0], 20, editValueBox[i][0]))
|
||||||
|
{
|
||||||
|
editValueBox[i][0] = !editValueBox[i][0];
|
||||||
|
|
||||||
|
// Input ended
|
||||||
|
if (!editValueBox[i][0])
|
||||||
|
{
|
||||||
|
// Try to convert text to float and assign it to the point
|
||||||
|
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.0f, 1.5f*fontSize }, valTextBox[i][1], 20, editValueBox[i][1]))
|
||||||
|
{
|
||||||
|
editValueBox[i][1] = !editValueBox[i][1];
|
||||||
|
|
||||||
|
// Input ended
|
||||||
|
if (!editValueBox[i][1])
|
||||||
|
{
|
||||||
|
// Try to convert text to float and assign it to the point
|
||||||
|
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.5f*fontSize + margin;
|
||||||
|
|
||||||
|
// Tangents
|
||||||
|
GuiLabel((Rectangle){ contentRect.x, contentRect.y + contentRect.height + scrollOffset.y, contentRect.width, fontSize }, "Tangents");
|
||||||
|
contentRect.height += fontSize;
|
||||||
|
|
||||||
|
if (!editValueBox[i][2]) gcvt(p->tangents.x, 6, valTextBox[i][2]); // Transform left tangent to string
|
||||||
|
|
||||||
|
if (!editValueBox[i][3]) gcvt(p->tangents.y, 6, 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.5f*fontSize }, 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 = 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 }, 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 });
|
||||||
|
|
||||||
|
// 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)));
|
||||||
|
|
||||||
|
// 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, "")))
|
||||||
|
{
|
||||||
|
playAnimation = false;
|
||||||
|
time = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
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 });
|
||||||
|
|
||||||
|
EndDrawing();
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
}
|
||||||
|
|
||||||
|
CloseWindow(); // Close window and OpenGL context
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void LoadCurveDefaults(GuiCurveEditorState curves[])
|
||||||
|
{
|
||||||
|
// X pos
|
||||||
|
curves[0].start = 28;
|
||||||
|
curves[0].end = 506;
|
||||||
|
curves[0].numPoints = 4;
|
||||||
|
curves[0].selectedIndex = 0;
|
||||||
|
curves[0].editLeftTangent = false;
|
||||||
|
curves[0].editRightTangent = false;
|
||||||
|
curves[0].points[0].position =(Vector2) {0.000000, 0.000000}; curves[0].points[0].tangents = (Vector2) {0.000000, 1.515101}; curves[0].points[0].leftLinear = 1;curves[0].points[0].rightLinear = 1;
|
||||||
|
curves[0].points[1].position =(Vector2) {0.422414, 0.640000}; curves[0].points[1].tangents = (Vector2) {-2.824348, -4.494999};curves[0].points[1].leftLinear = 0;curves[0].points[1].rightLinear = 0;
|
||||||
|
curves[0].points[2].position =(Vector2) {0.732759, 0.210000}; curves[0].points[2].tangents = (Vector2) {0.000000, 2.956133}; curves[0].points[2].leftLinear = 0;curves[0].points[2].rightLinear = 1;
|
||||||
|
curves[0].points[3].position =(Vector2) {1.000000, 1.000000}; curves[0].points[3].tangents = (Vector2) {2.956133, 0.000000}; curves[0].points[3].leftLinear = 1;curves[0].points[3].rightLinear = 1;
|
||||||
|
|
||||||
|
// Y pos
|
||||||
|
curves[1].start = 405;
|
||||||
|
curves[1].end = 135;
|
||||||
|
curves[1].numPoints = 7;
|
||||||
|
curves[1].selectedIndex = 0;
|
||||||
|
curves[1].editLeftTangent = false;
|
||||||
|
curves[1].editRightTangent = false;
|
||||||
|
curves[1].points[0].position = (Vector2) {0.000000, 1.000000};curves[1].points[0].tangents = (Vector2) { 0.000000 , 0.000000};curves[1].points[0].leftLinear = 0;curves[1].points[0].rightLinear = 0;
|
||||||
|
curves[1].points[1].position = (Vector2) {0.140000, 0.000000};curves[1].points[1].tangents = (Vector2) {-10.000000 ,10.000000};curves[1].points[1].leftLinear = 0;curves[1].points[1].rightLinear = 0;
|
||||||
|
curves[1].points[2].position = (Vector2) {0.450000, 0.000000};curves[1].points[2].tangents = (Vector2) {-10.000000 ,10.000000};curves[1].points[2].leftLinear = 0;curves[1].points[2].rightLinear = 0;
|
||||||
|
curves[1].points[3].position = (Vector2) {0.670000, 0.000000};curves[1].points[3].tangents = (Vector2) {-10.000000 ,10.000000};curves[1].points[3].leftLinear = 0;curves[1].points[3].rightLinear = 0;
|
||||||
|
curves[1].points[4].position = (Vector2) {0.830000, 0.000000};curves[1].points[4].tangents = (Vector2) {-10.000000 ,10.000000};curves[1].points[4].leftLinear = 0;curves[1].points[4].rightLinear = 0;
|
||||||
|
curves[1].points[5].position = (Vector2) {0.940000, 0.000000};curves[1].points[5].tangents = (Vector2) {-10.000000 ,10.000000};curves[1].points[5].leftLinear = 0;curves[1].points[5].rightLinear = 0;
|
||||||
|
curves[1].points[6].position = (Vector2) {1.000000, 0.000000};curves[1].points[6].tangents = (Vector2) {-10.000000 , 0.000000};curves[1].points[6].leftLinear = 0;curves[1].points[6].rightLinear = 0;
|
||||||
|
|
||||||
|
// X size
|
||||||
|
curves[2].start = 1;
|
||||||
|
curves[2].end = 64;
|
||||||
|
curves[2].numPoints = 16;
|
||||||
|
curves[2].selectedIndex = 0;
|
||||||
|
curves[2].editLeftTangent = false;
|
||||||
|
curves[2].editRightTangent = false;
|
||||||
|
curves[2].points[0].position = (Vector2) {0.000000, 0.492063}; curves[2].points[0].tangents = (Vector2) {0,0}; curves[2].points[0].leftLinear = 0; curves[2].points[0].rightLinear = 0;
|
||||||
|
curves[2].points[1].position = (Vector2) {0.130000, 0.492063}; curves[2].points[1].tangents = (Vector2) {0,0}; curves[2].points[1].leftLinear = 0; curves[2].points[1].rightLinear = 0;
|
||||||
|
curves[2].points[2].position = (Vector2) {0.140000, 0.746032}; curves[2].points[2].tangents = (Vector2) {0,0}; curves[2].points[2].leftLinear = 0; curves[2].points[2].rightLinear = 0;
|
||||||
|
curves[2].points[3].position = (Vector2) {0.150000, 0.492063}; curves[2].points[3].tangents = (Vector2) {0,0}; curves[2].points[3].leftLinear = 0; curves[2].points[3].rightLinear = 0;
|
||||||
|
curves[2].points[4].position = (Vector2) {0.440000, 0.490000}; curves[2].points[4].tangents = (Vector2) {0,0}; curves[2].points[4].leftLinear = 0; curves[2].points[4].rightLinear = 0;
|
||||||
|
curves[2].points[5].position = (Vector2) {0.450000, 0.682540}; curves[2].points[5].tangents = (Vector2) {0,0}; curves[2].points[5].leftLinear = 0; curves[2].points[5].rightLinear = 0;
|
||||||
|
curves[2].points[6].position = (Vector2) {0.460000, 0.480000}; curves[2].points[6].tangents = (Vector2) {0,0}; curves[2].points[6].leftLinear = 0; curves[2].points[6].rightLinear = 0;
|
||||||
|
curves[2].points[7].position = (Vector2) {0.660000, 0.492063}; curves[2].points[7].tangents = (Vector2) {0,0}; curves[2].points[7].leftLinear = 0; curves[2].points[7].rightLinear = 0;
|
||||||
|
curves[2].points[8].position = (Vector2) {0.670000, 0.619048}; curves[2].points[8].tangents = (Vector2) {0,0}; curves[2].points[8].leftLinear = 0; curves[2].points[8].rightLinear = 0;
|
||||||
|
curves[2].points[9].position = (Vector2) {0.680000, 0.492063}; curves[2].points[9].tangents = (Vector2) {0,0}; curves[2].points[9].leftLinear = 0; curves[2].points[9].rightLinear = 0;
|
||||||
|
curves[2].points[10].position = (Vector2) {0.820000, 0.492063}; curves[2].points[10].tangents = (Vector2) {0,0}; curves[2].points[10].leftLinear = 0; curves[2].points[10].rightLinear = 0;
|
||||||
|
curves[2].points[11].position = (Vector2) {0.830000, 0.619048}; curves[2].points[11].tangents = (Vector2) {0,0}; curves[2].points[11].leftLinear = 0; curves[2].points[11].rightLinear = 0;
|
||||||
|
curves[2].points[12].position = (Vector2) {0.840000, 0.492063}; curves[2].points[12].tangents = (Vector2) {0,0}; curves[2].points[12].leftLinear = 0; curves[2].points[12].rightLinear = 0;
|
||||||
|
curves[2].points[13].position = (Vector2) {0.930000, 0.492063}; curves[2].points[13].tangents = (Vector2) {0,0}; curves[2].points[13].leftLinear = 0; curves[2].points[13].rightLinear = 0;
|
||||||
|
curves[2].points[14].position = (Vector2) {0.940000, 0.619048}; curves[2].points[14].tangents = (Vector2) {0,0}; curves[2].points[14].leftLinear = 0; curves[2].points[14].rightLinear = 0;
|
||||||
|
curves[2].points[15].position = (Vector2) {0.950000, 0.492063}; curves[2].points[15].tangents = (Vector2) {0,0}; curves[2].points[15].leftLinear = 0; curves[2].points[15].rightLinear = 0;
|
||||||
|
|
||||||
|
// Y Size
|
||||||
|
curves[3].start = 1;
|
||||||
|
curves[3].end = 64;
|
||||||
|
curves[3].numPoints = 16;
|
||||||
|
curves[3].selectedIndex = 0;
|
||||||
|
curves[3].editLeftTangent = false;
|
||||||
|
curves[3].editRightTangent = false;
|
||||||
|
curves[3].points[0].position = (Vector2) {0.000000, 0.492063};curves[3].points[0].tangents = (Vector2) {0,0};curves[3].points[0].leftLinear = 0;curves[3].points[0].rightLinear = 0;
|
||||||
|
curves[3].points[1].position = (Vector2) {0.130000, 0.492063};curves[3].points[1].tangents = (Vector2) {0,0};curves[3].points[1].leftLinear = 0;curves[3].points[1].rightLinear = 0;
|
||||||
|
curves[3].points[2].position = (Vector2) {0.140000, 0.238095};curves[3].points[2].tangents = (Vector2) {0,0};curves[3].points[2].leftLinear = 0;curves[3].points[2].rightLinear = 0;
|
||||||
|
curves[3].points[3].position = (Vector2) {0.150000, 0.492063};curves[3].points[3].tangents = (Vector2) {0,0};curves[3].points[3].leftLinear = 0;curves[3].points[3].rightLinear = 0;
|
||||||
|
curves[3].points[4].position = (Vector2) {0.440000, 0.492063};curves[3].points[4].tangents = (Vector2) {0,0};curves[3].points[4].leftLinear = 0;curves[3].points[4].rightLinear = 0;
|
||||||
|
curves[3].points[5].position = (Vector2) {0.450000, 0.301587};curves[3].points[5].tangents = (Vector2) {0,0};curves[3].points[5].leftLinear = 0;curves[3].points[5].rightLinear = 0;
|
||||||
|
curves[3].points[6].position = (Vector2) {0.460000, 0.492063};curves[3].points[6].tangents = (Vector2) {0,0};curves[3].points[6].leftLinear = 0;curves[3].points[6].rightLinear = 0;
|
||||||
|
curves[3].points[7].position = (Vector2) {0.660000, 0.492063};curves[3].points[7].tangents = (Vector2) {0,0};curves[3].points[7].leftLinear = 0;curves[3].points[7].rightLinear = 0;
|
||||||
|
curves[3].points[8].position = (Vector2) {0.670000, 0.365079};curves[3].points[8].tangents = (Vector2) {0,0};curves[3].points[8].leftLinear = 0;curves[3].points[8].rightLinear = 0;
|
||||||
|
curves[3].points[9].position = (Vector2) {0.680000, 0.492063};curves[3].points[9].tangents = (Vector2) {0,0};curves[3].points[9].leftLinear = 0;curves[3].points[9].rightLinear = 0;
|
||||||
|
curves[3].points[10].position = (Vector2) {0.820000, 0.492063};curves[3].points[10].tangents = (Vector2) {0,0};curves[3].points[10].leftLinear = 0;curves[3].points[10].rightLinear = 0;
|
||||||
|
curves[3].points[11].position = (Vector2) {0.830000, 0.365079};curves[3].points[11].tangents = (Vector2) {0,0};curves[3].points[11].leftLinear = 0;curves[3].points[11].rightLinear = 0;
|
||||||
|
curves[3].points[12].position = (Vector2) {0.840000, 0.492063};curves[3].points[12].tangents = (Vector2) {0,0};curves[3].points[12].leftLinear = 0;curves[3].points[12].rightLinear = 0;
|
||||||
|
curves[3].points[13].position = (Vector2) {0.930000, 0.492063};curves[3].points[13].tangents = (Vector2) {0,0};curves[3].points[13].leftLinear = 0;curves[3].points[13].rightLinear = 0;
|
||||||
|
curves[3].points[14].position = (Vector2) {0.940000, 0.365079};curves[3].points[14].tangents = (Vector2) {0,0};curves[3].points[14].leftLinear = 0;curves[3].points[14].rightLinear = 0;
|
||||||
|
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;
|
||||||
|
curves[4].selectedIndex = 0;
|
||||||
|
curves[4].editLeftTangent = false;
|
||||||
|
curves[4].editRightTangent = false;
|
||||||
|
curves[4].points[0].position = (Vector2) {0.140000, 0.500000};curves[4].points[0].tangents = (Vector2) {0,0};curves[4].points[0].leftLinear = 0;curves[4].points[0].rightLinear = 0;
|
||||||
|
curves[4].points[1].position = (Vector2) {0.450000, 0.500000};curves[4].points[1].tangents = (Vector2) {0,0};curves[4].points[1].leftLinear = 0;curves[4].points[1].rightLinear = 0;
|
||||||
|
curves[4].points[2].position = (Vector2) {0.670000, 0.500000};curves[4].points[2].tangents = (Vector2) {0,0};curves[4].points[2].leftLinear = 0;curves[4].points[2].rightLinear = 0;
|
||||||
|
curves[4].points[3].position = (Vector2) {0.830000, 0.500000};curves[4].points[3].tangents = (Vector2) {0,0};curves[4].points[3].leftLinear = 0;curves[4].points[3].rightLinear = 0;
|
||||||
|
curves[4].points[4].position = (Vector2) {0.940000, 0.500000};curves[4].points[4].tangents = (Vector2) {0,0};curves[4].points[4].leftLinear = 0;curves[4].points[4].rightLinear = 0;
|
||||||
|
curves[4].points[5].position = (Vector2) {1.000000, 0.500000};curves[4].points[5].tangents = (Vector2) {0,0};curves[4].points[5].leftLinear = 0;curves[4].points[5].rightLinear = 0;
|
||||||
|
curves[4].points[6].position = (Vector2) {0.000000, 0.472222};curves[4].points[6].tangents = (Vector2) {0,0};curves[4].points[6].leftLinear = 0;curves[4].points[6].rightLinear = 0;
|
||||||
|
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;
|
||||||
|
}
|
||||||
554
examples/animation_curve/gui_curve_editor.h
Normal file
@ -0,0 +1,554 @@
|
|||||||
|
/*******************************************************************************************
|
||||||
|
*
|
||||||
|
* 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 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
|
||||||
|
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 };
|
||||||
|
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];
|
||||||
|
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_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 };
|
||||||
|
Color controlBorderColor = { 0 };
|
||||||
|
|
||||||
|
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.0f, control.y - handleSize/2.0f, handleSize, handleSize };
|
||||||
|
|
||||||
|
Color controlColor = { 0 };
|
||||||
|
Color controlBorderColor = { 0 };
|
||||||
|
|
||||||
|
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 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 };
|
||||||
|
|
||||||
|
DrawLineBezierCubic(screenPos1, screenPos2, screenC1, screenC2, 1, curveColor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // GUI_CURVE_EDITOR_IMPLEMENTATION
|
||||||
|
|
||||||
@ -12,7 +12,6 @@
|
|||||||
* - GuiComboBox()
|
* - GuiComboBox()
|
||||||
* - GuiListView()
|
* - GuiListView()
|
||||||
* - GuiToggleGroup()
|
* - GuiToggleGroup()
|
||||||
* - GuiTextBoxMulti()
|
|
||||||
* - GuiColorPicker()
|
* - GuiColorPicker()
|
||||||
* - GuiSlider()
|
* - GuiSlider()
|
||||||
* - GuiSliderBar()
|
* - GuiSliderBar()
|
||||||
@ -22,25 +21,36 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* DEPENDENCIES:
|
* DEPENDENCIES:
|
||||||
* raylib 2.6-dev - Windowing/input management and drawing.
|
* raylib 4.5 - Windowing/input management and drawing
|
||||||
* raygui 2.6-dev - Immediate-mode GUI controls.
|
* raygui 3.5 - Immediate-mode GUI controls with custom styling and icons
|
||||||
*
|
*
|
||||||
* COMPILATION (Windows - MinGW):
|
* COMPILATION (Windows - MinGW):
|
||||||
* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99
|
* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99
|
||||||
*
|
*
|
||||||
* LICENSE: zlib/libpng
|
* LICENSE: zlib/libpng
|
||||||
*
|
*
|
||||||
* Copyright (c) 2019 raylib technologies (@raylibtech)
|
* Copyright (c) 2016-2023 Ramon Santamaria (@raysan5)
|
||||||
*
|
*
|
||||||
**********************************************************************************************/
|
**********************************************************************************************/
|
||||||
|
|
||||||
#include "raylib.h"
|
#include "raylib.h"
|
||||||
|
|
||||||
|
//#define RAYGUI_DEBUG_RECS_BOUNDS
|
||||||
|
//#define RAYGUI_DEBUG_TEXT_BOUNDS
|
||||||
|
|
||||||
#define RAYGUI_IMPLEMENTATION
|
#define RAYGUI_IMPLEMENTATION
|
||||||
#define RAYGUI_SUPPORT_RICONS
|
//#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 "../../src/raygui.h"
|
||||||
|
|
||||||
#undef RAYGUI_IMPLEMENTATION // Avoid including raygui implementation again
|
// 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
|
||||||
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------------
|
||||||
// Program main entry point
|
// Program main entry point
|
||||||
@ -49,9 +59,9 @@ int main()
|
|||||||
{
|
{
|
||||||
// Initialization
|
// Initialization
|
||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
int screenWidth = 690;
|
const int screenWidth = 960;
|
||||||
int screenHeight = 560;
|
const int screenHeight = 560;
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "raygui - controls test suite");
|
InitWindow(screenWidth, screenHeight, "raygui - controls test suite");
|
||||||
SetExitKey(0);
|
SetExitKey(0);
|
||||||
|
|
||||||
@ -59,19 +69,22 @@ int main()
|
|||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
int dropdownBox000Active = 0;
|
int dropdownBox000Active = 0;
|
||||||
bool dropDown000EditMode = false;
|
bool dropDown000EditMode = false;
|
||||||
|
|
||||||
int dropdownBox001Active = 0;
|
int dropdownBox001Active = 0;
|
||||||
bool dropDown001EditMode = false;
|
bool dropDown001EditMode = false;
|
||||||
|
|
||||||
int spinner001Value = 0;
|
int spinner001Value = 0;
|
||||||
bool spinnerEditMode = false;
|
bool spinnerEditMode = false;
|
||||||
|
|
||||||
int valueBox002Value = 0;
|
int valueBox002Value = 0;
|
||||||
bool valueBoxEditMode = false;
|
bool valueBoxEditMode = false;
|
||||||
|
|
||||||
char textBoxText[64] = "Text box";
|
char textBoxText[64] = "Text box";
|
||||||
bool textBoxEditMode = false;
|
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. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
|
||||||
|
bool textBoxMultiEditMode = false;
|
||||||
|
|
||||||
int listViewScrollIndex = 0;
|
int listViewScrollIndex = 0;
|
||||||
int listViewActive = -1;
|
int listViewActive = -1;
|
||||||
|
|
||||||
@ -80,36 +93,44 @@ int main()
|
|||||||
int listViewExFocus = -1;
|
int listViewExFocus = -1;
|
||||||
const char *listViewExList[8] = { "This", "is", "a", "list view", "with", "disable", "elements", "amazing!" };
|
const char *listViewExList[8] = { "This", "is", "a", "list view", "with", "disable", "elements", "amazing!" };
|
||||||
|
|
||||||
char multiTextBoxText[141] = "Multi text box";
|
char multiTextBoxText[256] = "Multi text box";
|
||||||
bool multiTextBoxEditMode = false;
|
bool multiTextBoxEditMode = false;
|
||||||
Color colorPickerValue = RED;
|
Color colorPickerValue = RED;
|
||||||
|
|
||||||
int sliderValue = 50;
|
float sliderValue = 50.0f;
|
||||||
int sliderBarValue = 60;
|
float sliderBarValue = 60;
|
||||||
float progressValue = 0.4f;
|
float progressValue = 0.1f;
|
||||||
|
|
||||||
bool forceSquaredChecked = false;
|
bool forceSquaredChecked = false;
|
||||||
|
|
||||||
float alphaValue = 0.5f;
|
float alphaValue = 0.5f;
|
||||||
|
|
||||||
int comboBoxActive = 1;
|
//int comboBoxActive = 1;
|
||||||
|
int visualStyleActive = 0;
|
||||||
|
int prevVisualStyleActive = 0;
|
||||||
|
|
||||||
int toggleGroupActive = 0;
|
int toggleGroupActive = 0;
|
||||||
|
int toggleSliderActive = 0;
|
||||||
|
|
||||||
Vector2 viewScroll = { 0, 0 };
|
Vector2 viewScroll = { 0, 0 };
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
|
|
||||||
// Custom GUI font loading
|
// Custom GUI font loading
|
||||||
//Font font = LoadFontEx("fonts/rainyhearts16.ttf", 12, 0, 0);
|
//Font font = LoadFontEx("fonts/rainyhearts16.ttf", 12, 0, 0);
|
||||||
//GuiSetFont(font);
|
//GuiSetFont(font);
|
||||||
|
|
||||||
bool exitWindow = false;
|
bool exitWindow = false;
|
||||||
bool showMessageBox = false;
|
bool showMessageBox = false;
|
||||||
|
|
||||||
char textInput[256] = { 0 };
|
char textInput[256] = { 0 };
|
||||||
bool showTextInputBox = false;
|
|
||||||
|
|
||||||
char textInputFileName[256] = { 0 };
|
char textInputFileName[256] = { 0 };
|
||||||
|
bool showTextInputBox = false;
|
||||||
|
|
||||||
|
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);
|
SetTargetFPS(60);
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
@ -120,19 +141,51 @@ int main()
|
|||||||
// Update
|
// Update
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
exitWindow = WindowShouldClose();
|
exitWindow = WindowShouldClose();
|
||||||
|
|
||||||
if (IsKeyPressed(KEY_ESCAPE)) showMessageBox = !showMessageBox;
|
if (IsKeyPressed(KEY_ESCAPE)) showMessageBox = !showMessageBox;
|
||||||
|
|
||||||
if (IsKeyDown(KEY_LEFT_CONTROL) && IsKeyPressed(KEY_S)) showTextInputBox = true;
|
if (IsKeyDown(KEY_LEFT_CONTROL) && IsKeyPressed(KEY_S)) showTextInputBox = true;
|
||||||
|
|
||||||
if (IsFileDropped())
|
if (IsFileDropped())
|
||||||
{
|
{
|
||||||
int dropsCount = 0;
|
FilePathList droppedFiles = LoadDroppedFiles();
|
||||||
char **droppedFiles = GetDroppedFiles(&dropsCount);
|
|
||||||
|
if ((droppedFiles.count > 0) && IsFileExtension(droppedFiles.paths[0], ".rgs")) GuiLoadStyle(droppedFiles.paths[0]);
|
||||||
if ((dropsCount > 0) && IsFileExtension(droppedFiles[0], ".rgs")) GuiLoadStyle(droppedFiles[0]);
|
|
||||||
|
UnloadDroppedFiles(droppedFiles); // Clear internal buffers
|
||||||
ClearDroppedFiles(); // 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;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
|
||||||
|
GuiSetStyle(LABEL, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT);
|
||||||
|
|
||||||
|
prevVisualStyleActive = visualStyleActive;
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -141,95 +194,117 @@ int main()
|
|||||||
BeginDrawing();
|
BeginDrawing();
|
||||||
|
|
||||||
ClearBackground(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)));
|
ClearBackground(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)));
|
||||||
|
|
||||||
// raygui: controls drawing
|
// raygui: controls drawing
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
|
// Check all possible events that require GuiLock
|
||||||
if (dropDown000EditMode || dropDown001EditMode) GuiLock();
|
if (dropDown000EditMode || dropDown001EditMode) GuiLock();
|
||||||
//GuiDisable();
|
|
||||||
|
|
||||||
// First GUI column
|
// First GUI column
|
||||||
//GuiSetStyle(CHECKBOX, TEXT_ALIGNMENT, GUI_TEXT_ALIGN_LEFT);
|
//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, GUI_TEXT_ALIGN_CENTER);
|
GuiSetStyle(TEXTBOX, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER);
|
||||||
//GuiSetStyle(VALUEBOX, TEXT_ALIGNMENT, GUI_TEXT_ALIGN_LEFT);
|
//GuiSetStyle(VALUEBOX, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT);
|
||||||
if (GuiSpinner((Rectangle){ 25, 135, 125, 30 }, NULL, &spinner001Value, 0, 100, spinnerEditMode)) spinnerEditMode = !spinnerEditMode;
|
if (GuiSpinner((Rectangle){ 25, 135, 125, 30 }, NULL, &spinner001Value, 0, 100, spinnerEditMode)) spinnerEditMode = !spinnerEditMode;
|
||||||
if (GuiValueBox((Rectangle){ 25, 175, 125, 30 }, NULL, &valueBox002Value, 0, 100, valueBoxEditMode)) valueBoxEditMode = !valueBoxEditMode;
|
if (GuiValueBox((Rectangle){ 25, 175, 125, 30 }, NULL, &valueBox002Value, 0, 100, valueBoxEditMode)) valueBoxEditMode = !valueBoxEditMode;
|
||||||
GuiSetStyle(TEXTBOX, TEXT_ALIGNMENT, GUI_TEXT_ALIGN_LEFT);
|
GuiSetStyle(TEXTBOX, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT);
|
||||||
if (GuiTextBox((Rectangle){ 25, 215, 125, 30 }, textBoxText, 64, textBoxEditMode)) textBoxEditMode = !textBoxEditMode;
|
if (GuiTextBox((Rectangle){ 25, 215, 125, 30 }, textBoxText, 64, textBoxEditMode)) textBoxEditMode = !textBoxEditMode;
|
||||||
|
|
||||||
GuiSetStyle(BUTTON, TEXT_ALIGNMENT, GUI_TEXT_ALIGN_CENTER);
|
|
||||||
|
|
||||||
if (GuiButton((Rectangle){ 25, 255, 125, 30 }, GuiIconText(RICON_FILE_SAVE, "Save File"))) showTextInputBox = true;
|
|
||||||
|
|
||||||
GuiGroupBox((Rectangle){ 25, 310, 125, 150 }, "STATES");
|
|
||||||
GuiLock();
|
|
||||||
GuiSetState(GUI_STATE_NORMAL); if (GuiButton((Rectangle){ 30, 320, 115, 30 }, "NORMAL")) { }
|
|
||||||
GuiSetState(GUI_STATE_FOCUSED); if (GuiButton((Rectangle){ 30, 355, 115, 30 }, "FOCUSED")) { }
|
|
||||||
GuiSetState(GUI_STATE_PRESSED); if (GuiButton((Rectangle){ 30, 390, 115, 30 }, "#15#PRESSED")) { }
|
|
||||||
GuiSetState(GUI_STATE_DISABLED); if (GuiButton((Rectangle){ 30, 425, 115, 30 }, "DISABLED")) { }
|
|
||||||
GuiSetState(GUI_STATE_NORMAL);
|
|
||||||
GuiUnlock();
|
|
||||||
|
|
||||||
comboBoxActive = GuiComboBox((Rectangle){ 25, 470, 125, 30 }, "ONE;TWO;THREE;FOUR", comboBoxActive);
|
|
||||||
|
|
||||||
// NOTE: GuiDropdownBox must draw after any other control that can be covered on unfolding
|
|
||||||
GuiSetStyle(DROPDOWNBOX, TEXT_ALIGNMENT, GUI_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, GUI_TEXT_ALIGN_CENTER);
|
GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER);
|
||||||
|
|
||||||
|
if (GuiButton((Rectangle){ 25, 255, 125, 30 }, GuiIconText(ICON_FILE_SAVE, "Save File"))) showTextInputBox = true;
|
||||||
|
|
||||||
|
GuiGroupBox((Rectangle){ 25, 310, 125, 150 }, "STATES");
|
||||||
|
//GuiLock();
|
||||||
|
GuiSetState(STATE_NORMAL); if (GuiButton((Rectangle){ 30, 320, 115, 30 }, "NORMAL")) { }
|
||||||
|
GuiSetState(STATE_FOCUSED); if (GuiButton((Rectangle){ 30, 355, 115, 30 }, "FOCUSED")) { }
|
||||||
|
GuiSetState(STATE_PRESSED); if (GuiButton((Rectangle){ 30, 390, 115, 30 }, "#15#PRESSED")) { }
|
||||||
|
GuiSetState(STATE_DISABLED); if (GuiButton((Rectangle){ 30, 425, 115, 30 }, "DISABLED")) { }
|
||||||
|
GuiSetState(STATE_NORMAL);
|
||||||
|
//GuiUnlock();
|
||||||
|
|
||||||
|
GuiComboBox((Rectangle){ 25, 480, 125, 30 }, "default;Jungle;Lavanda;Dark;Bluish;Cyber;Terminal", &visualStyleActive);
|
||||||
|
|
||||||
|
// NOTE: GuiDropdownBox must draw after any other control that can be covered on unfolding
|
||||||
|
GuiUnlock();
|
||||||
|
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;
|
if (GuiDropdownBox((Rectangle){ 25, 25, 125, 30 }, "ONE;TWO;THREE", &dropdownBox000Active, dropDown000EditMode)) dropDown000EditMode = !dropDown000EditMode;
|
||||||
|
|
||||||
// Second GUI column
|
// Second GUI column
|
||||||
listViewActive = GuiListView((Rectangle){ 165, 25, 140, 140 }, "Charmander;Bulbasaur;#18#Squirtel;Pikachu;Eevee;Pidgey", &listViewScrollIndex, listViewActive);
|
GuiListView((Rectangle){ 165, 25, 140, 124 }, "Charmander;Bulbasaur;#18#Squirtel;Pikachu;Eevee;Pidgey", &listViewScrollIndex, &listViewActive);
|
||||||
listViewExActive = GuiListViewEx((Rectangle){ 165, 180, 140, 200 }, listViewExList, 8, &listViewExFocus, &listViewExScrollIndex, listViewExActive);
|
GuiListViewEx((Rectangle){ 165, 162, 140, 184 }, listViewExList, 8, &listViewExScrollIndex, &listViewExActive, &listViewExFocus);
|
||||||
|
|
||||||
|
//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);
|
||||||
|
|
||||||
toggleGroupActive = GuiToggleGroup((Rectangle){ 165, 400, 140, 25 }, "#1#ONE\n#3#TWO\n#8#THREE\n#23#", toggleGroupActive);
|
|
||||||
|
|
||||||
// Third GUI column
|
// Third GUI column
|
||||||
if (GuiTextBoxMulti((Rectangle){ 320, 25, 225, 140 }, multiTextBoxText, 141, multiTextBoxEditMode)) multiTextBoxEditMode = !multiTextBoxEditMode;
|
GuiPanel((Rectangle){ 320, 25, 225, 140 }, "Panel Info");
|
||||||
colorPickerValue = GuiColorPicker((Rectangle){ 320, 185, 196, 192 }, colorPickerValue);
|
GuiColorPicker((Rectangle){ 320, 185, 196, 192 }, NULL, &colorPickerValue);
|
||||||
|
|
||||||
|
//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);
|
||||||
|
|
||||||
sliderValue = GuiSlider((Rectangle){ 355, 400, 165, 20 }, "TEST", TextFormat("%2.2f", (float)sliderValue), sliderValue, -50, 100);
|
GuiProgressBar((Rectangle){ 320, 460, 200, 20 }, NULL, TextFormat("%i%%", (int)(progressValue*100)), &progressValue, 0.0f, 1.0f);
|
||||||
sliderBarValue = GuiSliderBar((Rectangle){ 320, 430, 200, 20 }, NULL, TextFormat("%i", (int)sliderBarValue), sliderBarValue, 0, 100);
|
GuiEnable();
|
||||||
progressValue = GuiProgressBar((Rectangle){ 320, 460, 200, 20 }, NULL, NULL, progressValue, 0, 1);
|
|
||||||
|
|
||||||
// NOTE: View rectangle could be used to perform some scissor test
|
// NOTE: View rectangle could be used to perform some scissor test
|
||||||
Rectangle view = GuiScrollPanel((Rectangle){ 560, 25, 100, 160 }, (Rectangle){ 560, 25, 200, 400 }, &viewScroll);
|
Rectangle view = { 0 };
|
||||||
|
GuiScrollPanel((Rectangle){ 560, 25, 102, 354 }, NULL, (Rectangle){ 560, 25, 300, 1200 }, &viewScroll, &view);
|
||||||
GuiStatusBar((Rectangle){ 0, GetScreenHeight() - 20, GetScreenWidth(), 20 }, "This is a status bar");
|
|
||||||
|
Vector2 mouseCell = { 0 };
|
||||||
alphaValue = GuiColorBarAlpha((Rectangle){ 320, 490, 200, 30 }, alphaValue);
|
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");
|
||||||
|
GuiSetStyle(DEFAULT, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER);
|
||||||
|
//GuiSetStyle(STATUSBAR, TEXT_INDENTATION, 20);
|
||||||
|
|
||||||
if (showMessageBox)
|
if (showMessageBox)
|
||||||
{
|
{
|
||||||
DrawRectangle(0, 0, GetScreenWidth(), GetScreenHeight(), Fade(RAYWHITE, 0.8f));
|
DrawRectangle(0, 0, GetScreenWidth(), GetScreenHeight(), Fade(RAYWHITE, 0.8f));
|
||||||
int result = GuiMessageBox((Rectangle){ GetScreenWidth()/2 - 125, GetScreenHeight()/2 - 50, 250, 100 }, GuiIconText(RICON_EXIT, "Close Window"), "Do you really want to exit?", "Yes;No");
|
int result = GuiMessageBox((Rectangle){ (float)GetScreenWidth()/2 - 125, (float)GetScreenHeight()/2 - 50, 250, 100 }, GuiIconText(ICON_EXIT, "Close Window"), "Do you really want to exit?", "Yes;No");
|
||||||
|
|
||||||
if ((result == 0) || (result == 2)) showMessageBox = false;
|
if ((result == 0) || (result == 2)) showMessageBox = false;
|
||||||
else if (result == 1) exitWindow = true;
|
else if (result == 1) exitWindow = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (showTextInputBox)
|
if (showTextInputBox)
|
||||||
{
|
{
|
||||||
DrawRectangle(0, 0, GetScreenWidth(), GetScreenHeight(), Fade(RAYWHITE, 0.8f));
|
DrawRectangle(0, 0, GetScreenWidth(), GetScreenHeight(), Fade(RAYWHITE, 0.8f));
|
||||||
int result = GuiTextInputBox((Rectangle){ GetScreenWidth()/2 - 120, GetScreenHeight()/2 - 60, 240, 140 }, GuiIconText(RICON_FILE_SAVE, "Save file as..."), "Introduce a save file name", "Ok;Cancel", textInput);
|
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)
|
if (result == 1)
|
||||||
{
|
{
|
||||||
// TODO: Validate textInput value and save
|
// TODO: Validate textInput value and save
|
||||||
|
|
||||||
strcpy(textInputFileName, textInput);
|
TextCopy(textInputFileName, textInput);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((result == 0) || (result == 1) || (result == 2))
|
if ((result == 0) || (result == 1) || (result == 2))
|
||||||
{
|
{
|
||||||
showTextInputBox = false;
|
showTextInputBox = false;
|
||||||
strcpy(textInput, "\0");
|
TextCopy(textInput, "\0");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
GuiUnlock();
|
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
|
|
||||||
EndDrawing();
|
EndDrawing();
|
||||||
|
|||||||
@ -3,28 +3,26 @@
|
|||||||
* raygui - custom file dialog to load image
|
* raygui - custom file dialog to load image
|
||||||
*
|
*
|
||||||
* DEPENDENCIES:
|
* DEPENDENCIES:
|
||||||
* raylib 2.6-dev - Windowing/input management and drawing.
|
* raylib 4.0 - Windowing/input management and drawing.
|
||||||
* raygui 2.6-dev - Immediate-mode GUI controls.
|
* raygui 3.0 - Immediate-mode GUI controls.
|
||||||
*
|
*
|
||||||
* COMPILATION (Windows - MinGW):
|
* COMPILATION (Windows - MinGW):
|
||||||
* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99
|
* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99
|
||||||
*
|
*
|
||||||
* LICENSE: zlib/libpng
|
* LICENSE: zlib/libpng
|
||||||
*
|
*
|
||||||
* Copyright (c) 2019 raylib technologies (@raylibtech)
|
* Copyright (c) 2016-2023 Ramon Santamaria (@raysan5)
|
||||||
*
|
*
|
||||||
**********************************************************************************************/
|
**********************************************************************************************/
|
||||||
|
|
||||||
#include "raylib.h"
|
#include "raylib.h"
|
||||||
|
|
||||||
#define RAYGUI_IMPLEMENTATION
|
#define RAYGUI_IMPLEMENTATION
|
||||||
#define RAYGUI_SUPPORT_RICONS
|
|
||||||
#include "../../src/raygui.h"
|
#include "../../src/raygui.h"
|
||||||
|
|
||||||
#undef RAYGUI_IMPLEMENTATION // Avoid including raygui implementation again
|
#undef RAYGUI_IMPLEMENTATION // Avoid including raygui implementation again
|
||||||
|
#define GUI_WINDOW_FILE_DIALOG_IMPLEMENTATION
|
||||||
#define GUI_FILE_DIALOG_IMPLEMENTATION
|
#include "gui_window_file_dialog.h"
|
||||||
#include "gui_file_dialog.h"
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------------
|
||||||
// Program main entry point
|
// Program main entry point
|
||||||
@ -35,17 +33,17 @@ int main()
|
|||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
int screenWidth = 800;
|
int screenWidth = 800;
|
||||||
int screenHeight = 560;
|
int screenHeight = 560;
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "raygui - custom modal dialog");
|
InitWindow(screenWidth, screenHeight, "raygui - custom modal dialog");
|
||||||
SetExitKey(0);
|
SetExitKey(0);
|
||||||
|
|
||||||
// Custom file dialog
|
// Custom file dialog
|
||||||
GuiFileDialogState fileDialogState = InitGuiFileDialog();
|
GuiWindowFileDialogState fileDialogState = InitGuiWindowFileDialog(GetWorkingDirectory());
|
||||||
|
|
||||||
bool exitWindow = false;
|
bool exitWindow = false;
|
||||||
|
|
||||||
char fileNameToLoad[512] = { 0 };
|
char fileNameToLoad[512] = { 0 };
|
||||||
|
|
||||||
Texture texture = { 0 };
|
Texture texture = { 0 };
|
||||||
|
|
||||||
SetTargetFPS(60);
|
SetTargetFPS(60);
|
||||||
@ -57,17 +55,17 @@ int main()
|
|||||||
// Update
|
// Update
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
exitWindow = WindowShouldClose();
|
exitWindow = WindowShouldClose();
|
||||||
|
|
||||||
if (fileDialogState.SelectFilePressed)
|
if (fileDialogState.SelectFilePressed)
|
||||||
{
|
{
|
||||||
// Load image file (if supported extension)
|
// Load image file (if supported extension)
|
||||||
if (IsFileExtension(fileDialogState.fileNameText, ".png"))
|
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);
|
UnloadTexture(texture);
|
||||||
texture = LoadTexture(fileNameToLoad);
|
texture = LoadTexture(fileNameToLoad);
|
||||||
}
|
}
|
||||||
|
|
||||||
fileDialogState.SelectFilePressed = false;
|
fileDialogState.SelectFilePressed = false;
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
@ -77,23 +75,23 @@ int main()
|
|||||||
BeginDrawing();
|
BeginDrawing();
|
||||||
|
|
||||||
ClearBackground(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)));
|
ClearBackground(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)));
|
||||||
|
|
||||||
DrawTexture(texture, GetScreenWidth()/2 - texture.width/2, GetScreenHeight()/2 - texture.height/2 - 5, WHITE);
|
DrawTexture(texture, GetScreenWidth()/2 - texture.width/2, GetScreenHeight()/2 - texture.height/2 - 5, WHITE);
|
||||||
DrawRectangleLines(GetScreenWidth()/2 - texture.width/2, GetScreenHeight()/2 - texture.height/2 - 5, texture.width, texture.height, BLACK);
|
DrawRectangleLines(GetScreenWidth()/2 - texture.width/2, GetScreenHeight()/2 - texture.height/2 - 5, texture.width, texture.height, BLACK);
|
||||||
|
|
||||||
DrawText(fileNameToLoad, 208, GetScreenHeight() - 20, 10, GRAY);
|
DrawText(fileNameToLoad, 208, GetScreenHeight() - 20, 10, GRAY);
|
||||||
|
|
||||||
// raygui: controls drawing
|
// raygui: controls drawing
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
if (fileDialogState.fileDialogActive) GuiLock();
|
if (fileDialogState.windowActive) GuiLock();
|
||||||
|
|
||||||
|
if (GuiButton((Rectangle){ 20, 20, 140, 30 }, GuiIconText(ICON_FILE_OPEN, "Open Image"))) fileDialogState.windowActive = true;
|
||||||
|
|
||||||
if (GuiButton((Rectangle){ 20, 20, 140, 30 }, GuiIconText(RICON_FILE_OPEN, "Open Image"))) fileDialogState.fileDialogActive = true;
|
|
||||||
|
|
||||||
GuiUnlock();
|
GuiUnlock();
|
||||||
|
|
||||||
// GUI: Dialog Window
|
// GUI: Dialog Window
|
||||||
//--------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------
|
||||||
GuiFileDialog(&fileDialogState);
|
GuiWindowFileDialog(&fileDialogState);
|
||||||
//--------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
|
|||||||
@ -1,558 +0,0 @@
|
|||||||
/*******************************************************************************************
|
|
||||||
*
|
|
||||||
* FileDialog v1.0.0 - Modal file dialog to open/save files
|
|
||||||
*
|
|
||||||
* MODULE USAGE:
|
|
||||||
* #define GUI_FILE_DIALOG_IMPLEMENTATION
|
|
||||||
* #include "gui_file_dialog.h"
|
|
||||||
*
|
|
||||||
* INIT: GuiFileDialogState state = InitGuiFileDialog();
|
|
||||||
* DRAW: GuiFileDialog(&state);
|
|
||||||
*
|
|
||||||
* NOTE: This module depends on some raylib file system functions:
|
|
||||||
* - GetDirectoryFiles()
|
|
||||||
* - ClearDirectoryFiles()
|
|
||||||
* - GetWorkingDirectory()
|
|
||||||
* - DirectoryExists()
|
|
||||||
* - FileExists()
|
|
||||||
*
|
|
||||||
* LICENSE: Propietary License
|
|
||||||
*
|
|
||||||
* Copyright (c) 2019 raylib technologies (@raylibtech). All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Unauthorized copying of this file, via any medium is strictly prohibited
|
|
||||||
* This project is proprietary and confidential unless the owner allows
|
|
||||||
* usage in any other form by expresely written permission.
|
|
||||||
*
|
|
||||||
**********************************************************************************************/
|
|
||||||
|
|
||||||
#include "raylib.h"
|
|
||||||
|
|
||||||
// WARNING: raygui implementation is expected to be defined before including this header
|
|
||||||
#undef RAYGUI_IMPLEMENTATION
|
|
||||||
#include "../../src/raygui.h"
|
|
||||||
|
|
||||||
#ifndef GUI_FILE_DIALOG_H
|
|
||||||
#define GUI_FILE_DIALOG_H
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
Vector2 position;
|
|
||||||
|
|
||||||
bool fileDialogActive;
|
|
||||||
|
|
||||||
bool dirPathEditMode;
|
|
||||||
char dirPathText[256];
|
|
||||||
|
|
||||||
int filesListScrollIndex;
|
|
||||||
bool filesListEditMode;
|
|
||||||
int filesListActive;
|
|
||||||
|
|
||||||
bool fileNameEditMode;
|
|
||||||
char fileNameText[256];
|
|
||||||
bool SelectFilePressed;
|
|
||||||
bool CancelFilePressed;
|
|
||||||
int fileTypeActive;
|
|
||||||
|
|
||||||
// Custom state variables (depend on development software)
|
|
||||||
// NOTE: This variables should be added manually if required
|
|
||||||
char **dirFiles;
|
|
||||||
int dirFilesCount;
|
|
||||||
|
|
||||||
char filterExt[256];
|
|
||||||
|
|
||||||
char dirPathTextCopy[256];
|
|
||||||
char fileNameTextCopy[256];
|
|
||||||
|
|
||||||
int prevFilesListActive;
|
|
||||||
|
|
||||||
} GuiFileDialogState;
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" { // Prevents name mangling of functions
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
// Defines and Macros
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
//...
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
// Types and Structures Definition
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
// ...
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
// Global Variables Definition
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
//...
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
// Module Functions Declaration
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
GuiFileDialogState InitGuiFileDialog(void);
|
|
||||||
void GuiFileDialog(GuiFileDialogState *state);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // GUI_FILE_DIALOG_H
|
|
||||||
|
|
||||||
/***********************************************************************************
|
|
||||||
*
|
|
||||||
* GUI_FILE_DIALOG IMPLEMENTATION
|
|
||||||
*
|
|
||||||
************************************************************************************/
|
|
||||||
#if defined(GUI_FILE_DIALOG_IMPLEMENTATION)
|
|
||||||
|
|
||||||
#include "../../src/raygui.h"
|
|
||||||
|
|
||||||
#include <string.h> // Required for: strcpy()
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
// Defines and Macros
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
#define MAX_DIRECTORY_FILES 1024
|
|
||||||
#define MAX_DIR_PATH_LENGTH 1024
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
// Types and Structures Definition
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
#if defined(USE_CUSTOM_LISTVIEW_FILEINFO)
|
|
||||||
// Detailed file info type
|
|
||||||
typedef struct FileInfo {
|
|
||||||
const char *name;
|
|
||||||
int size;
|
|
||||||
int modTime;
|
|
||||||
int type;
|
|
||||||
int icon;
|
|
||||||
} FileInfo;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
// Global Variables Definition
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
char **dirFilesIcon = NULL;
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
// Internal Module Functions Definition
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
// Read all filenames from directory (supported file types)
|
|
||||||
static char **ReadDirectoryFiles(const char *dir, int *filesCount, char *filterExt);
|
|
||||||
|
|
||||||
#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)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
// Module Functions Definition
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
GuiFileDialogState InitGuiFileDialog(void)
|
|
||||||
{
|
|
||||||
GuiFileDialogState state = { 0 };
|
|
||||||
|
|
||||||
state.position = (Vector2){ GetScreenWidth()/2 - 480/2, GetScreenHeight()/2 - 305/2 };
|
|
||||||
|
|
||||||
state.fileDialogActive = false;
|
|
||||||
state.dirPathEditMode = false;
|
|
||||||
|
|
||||||
state.filesListActive = -1;
|
|
||||||
state.prevFilesListActive = state.filesListActive;
|
|
||||||
state.filesListScrollIndex = 0;
|
|
||||||
|
|
||||||
state.fileNameEditMode = false;
|
|
||||||
|
|
||||||
state.SelectFilePressed = false;
|
|
||||||
state.CancelFilePressed = false;
|
|
||||||
|
|
||||||
state.fileTypeActive = 0;
|
|
||||||
|
|
||||||
// Custom variables initialization
|
|
||||||
strcpy(state.dirPathText, GetWorkingDirectory());
|
|
||||||
strcpy(state.dirPathTextCopy, state.dirPathText);
|
|
||||||
|
|
||||||
strcpy(state.filterExt, "all");
|
|
||||||
|
|
||||||
state.dirFilesCount = 0;
|
|
||||||
state.dirFiles = NULL; // NOTE: Loaded lazily on window active
|
|
||||||
|
|
||||||
strcpy(state.fileNameText, "\0");
|
|
||||||
strcpy(state.fileNameTextCopy, state.fileNameText);
|
|
||||||
|
|
||||||
return state;
|
|
||||||
}
|
|
||||||
|
|
||||||
void GuiFileDialog(GuiFileDialogState *state)
|
|
||||||
{
|
|
||||||
if (state->fileDialogActive)
|
|
||||||
{
|
|
||||||
// Load dirFilesIcon and state->dirFiles lazily on windows open
|
|
||||||
// NOTE: they are automatically unloaded at fileDialog closing
|
|
||||||
//------------------------------------------------------------------------------------
|
|
||||||
if (dirFilesIcon == NULL)
|
|
||||||
{
|
|
||||||
dirFilesIcon = (char **)RL_MALLOC(MAX_DIRECTORY_FILES*sizeof(char *)); // Max files to read
|
|
||||||
for (int i = 0; i < MAX_DIRECTORY_FILES; i++) dirFilesIcon[i] = (char *)calloc(MAX_DIR_PATH_LENGTH, 1); // Max file name length
|
|
||||||
}
|
|
||||||
|
|
||||||
if (state->dirFiles == NULL) state->dirFiles = ReadDirectoryFiles(state->dirPathText, &state->dirFilesCount, state->filterExt);
|
|
||||||
//------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
DrawRectangle(0, 0, GetScreenWidth(), GetScreenHeight(), Fade(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)), 0.85f));
|
|
||||||
state->fileDialogActive = !GuiWindowBox((Rectangle){ state->position.x + 0, state->position.y + 0, 480, 310 }, "#198#Select File Dialog");
|
|
||||||
|
|
||||||
if (GuiButton((Rectangle){ state->position.x + 430, state->position.y + 35, 40, 25 }, "< .."))
|
|
||||||
{
|
|
||||||
// Move dir path one level up
|
|
||||||
strcpy(state->dirPathText, GetPrevDirectoryPath(state->dirPathText));
|
|
||||||
|
|
||||||
// RL_FREE previous dirFiles (reloaded by ReadDirectoryFiles())
|
|
||||||
for (int i = 0; i < state->dirFilesCount; i++) RL_FREE(state->dirFiles[i]);
|
|
||||||
RL_FREE(state->dirFiles);
|
|
||||||
|
|
||||||
// Read files in the new path
|
|
||||||
state->dirFiles = ReadDirectoryFiles(state->dirPathText, &state->dirFilesCount, state->filterExt);
|
|
||||||
|
|
||||||
state->filesListActive = -1;
|
|
||||||
strcpy(state->fileNameText, "\0");
|
|
||||||
strcpy(state->fileNameTextCopy, state->fileNameText);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (GuiTextBox((Rectangle){ state->position.x + 10, state->position.y + 35, 410, 25 }, state->dirPathText, 256, state->dirPathEditMode))
|
|
||||||
{
|
|
||||||
if (state->dirPathEditMode)
|
|
||||||
{
|
|
||||||
// Verify if a valid path has been introduced
|
|
||||||
if (DirectoryExists(state->dirPathText))
|
|
||||||
{
|
|
||||||
// RL_FREE previous dirFiles (reloaded by ReadDirectoryFiles())
|
|
||||||
for (int i = 0; i < state->dirFilesCount; i++) RL_FREE(state->dirFiles[i]);
|
|
||||||
RL_FREE(state->dirFiles);
|
|
||||||
|
|
||||||
// Read files in new path
|
|
||||||
state->dirFiles = ReadDirectoryFiles(state->dirPathText, &state->dirFilesCount, state->filterExt);
|
|
||||||
|
|
||||||
strcpy(state->dirPathTextCopy, state->dirPathText);
|
|
||||||
}
|
|
||||||
else strcpy(state->dirPathText, state->dirPathTextCopy);
|
|
||||||
}
|
|
||||||
|
|
||||||
state->dirPathEditMode = !state->dirPathEditMode;
|
|
||||||
}
|
|
||||||
|
|
||||||
int prevTextAlignment = GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT);
|
|
||||||
int prevElementsHeight = GuiGetStyle(LISTVIEW, ELEMENTS_HEIGHT);
|
|
||||||
GuiSetStyle(LISTVIEW, TEXT_ALIGNMENT, GUI_TEXT_ALIGN_LEFT);
|
|
||||||
GuiSetStyle(LISTVIEW, ELEMENTS_HEIGHT, 24);
|
|
||||||
|
|
||||||
// TODO: ListViewElements should be aligned left
|
|
||||||
state->filesListActive = GuiListViewEx((Rectangle){ state->position.x + 10, state->position.y + 70, 460, 164 }, dirFilesIcon, state->dirFilesCount, NULL, &state->filesListScrollIndex, state->filesListActive);
|
|
||||||
|
|
||||||
GuiSetStyle(LISTVIEW, TEXT_ALIGNMENT, prevTextAlignment);
|
|
||||||
GuiSetStyle(LISTVIEW, ELEMENTS_HEIGHT, prevElementsHeight);
|
|
||||||
|
|
||||||
if ((state->filesListActive >= 0) && (state->filesListActive != state->prevFilesListActive))
|
|
||||||
{
|
|
||||||
strcpy(state->fileNameText, state->dirFiles[state->filesListActive]);
|
|
||||||
|
|
||||||
if (DirectoryExists(TextFormat("%s\\%s", state->dirPathText, state->fileNameText)))
|
|
||||||
{
|
|
||||||
if (TextIsEqual(state->fileNameText, "..")) strcpy(state->dirPathText, GetPrevDirectoryPath(state->dirPathText));
|
|
||||||
else strcpy(state->dirPathText, TextFormat("%s\\%s", state->dirPathText, state->fileNameText));
|
|
||||||
|
|
||||||
strcpy(state->dirPathTextCopy, state->dirPathText);
|
|
||||||
|
|
||||||
// RL_FREE previous dirFiles (reloaded by ReadDirectoryFiles())
|
|
||||||
for (int i = 0; i < state->dirFilesCount; i++) RL_FREE(state->dirFiles[i]);
|
|
||||||
RL_FREE(state->dirFiles);
|
|
||||||
|
|
||||||
// Read files in new path
|
|
||||||
state->dirFiles = ReadDirectoryFiles(state->dirPathText, &state->dirFilesCount, state->filterExt);
|
|
||||||
|
|
||||||
strcpy(state->dirPathTextCopy, state->dirPathText);
|
|
||||||
|
|
||||||
state->filesListActive = -1;
|
|
||||||
strcpy(state->fileNameText, "\0");
|
|
||||||
strcpy(state->fileNameTextCopy, state->fileNameText);
|
|
||||||
}
|
|
||||||
|
|
||||||
state->prevFilesListActive = state->filesListActive;
|
|
||||||
}
|
|
||||||
|
|
||||||
GuiLabel((Rectangle){ state->position.x + 10, state->position.y + 245, 68, 25 }, "File name:");
|
|
||||||
|
|
||||||
if (GuiTextBox((Rectangle){ state->position.x + 75, state->position.y + 245, 275, 25 }, state->fileNameText, 128, state->fileNameEditMode))
|
|
||||||
{
|
|
||||||
if (state->fileNameText)
|
|
||||||
{
|
|
||||||
// Verify if a valid filename has been introduced
|
|
||||||
if (FileExists(TextFormat("%s/%s", state->dirPathText, state->fileNameText)))
|
|
||||||
{
|
|
||||||
// Select filename from list view
|
|
||||||
for (int i = 0; i < state->dirFilesCount; i++)
|
|
||||||
{
|
|
||||||
if (TextIsEqual(state->fileNameText, state->dirFiles[i]))
|
|
||||||
{
|
|
||||||
state->filesListActive = i;
|
|
||||||
strcpy(state->fileNameTextCopy, state->fileNameText);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
strcpy(state->fileNameText, state->fileNameTextCopy);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
state->fileNameEditMode = !state->fileNameEditMode;
|
|
||||||
}
|
|
||||||
|
|
||||||
state->fileTypeActive = GuiComboBox((Rectangle){ state->position.x + 75, state->position.y + 275, 275, 25 }, "All files", state->fileTypeActive);
|
|
||||||
GuiLabel((Rectangle){ state->position.x + 10, state->position.y + 275, 68, 25 }, "File filter:");
|
|
||||||
|
|
||||||
state->SelectFilePressed = GuiButton((Rectangle){ state->position.x + 360, state->position.y + 245, 110, 25 }, "Select");
|
|
||||||
|
|
||||||
if (state->SelectFilePressed) state->fileDialogActive = false;
|
|
||||||
|
|
||||||
if (GuiButton((Rectangle){ state->position.x + 360, state->position.y + 275, 110, 25 }, "Cancel")) state->fileDialogActive = false;
|
|
||||||
|
|
||||||
// File dialog has been closed!
|
|
||||||
if (!state->fileDialogActive)
|
|
||||||
{
|
|
||||||
// RL_FREE dirFiles memory
|
|
||||||
for (int i = 0; i < state->dirFilesCount; i++)
|
|
||||||
{
|
|
||||||
RL_FREE(state->dirFiles[i]);
|
|
||||||
RL_FREE(dirFilesIcon[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
RL_FREE(state->dirFiles);
|
|
||||||
RL_FREE(dirFilesIcon);
|
|
||||||
|
|
||||||
dirFilesIcon = NULL;
|
|
||||||
state->dirFiles = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Read all filenames from directory (supported file types)
|
|
||||||
static char **ReadDirectoryFiles(const char *dir, int *filesCount, char *filterExt)
|
|
||||||
{
|
|
||||||
int validFilesCount = 0;
|
|
||||||
char **validFiles = (char **)RL_MALLOC(MAX_DIRECTORY_FILES*sizeof(char *)); // Max files to read
|
|
||||||
for (int i = 0; i < MAX_DIRECTORY_FILES; i++) validFiles[i] = (char *)RL_MALLOC(MAX_DIR_PATH_LENGTH); // Max file name length
|
|
||||||
|
|
||||||
int filterExtCount = 0;
|
|
||||||
const char **extensions = GuiTextSplit(filterExt, &filterExtCount, NULL);
|
|
||||||
bool filterExtensions = true;
|
|
||||||
|
|
||||||
int dirFilesCount = 0;
|
|
||||||
char **files = GetDirectoryFiles(dir, &dirFilesCount);
|
|
||||||
|
|
||||||
if (TextIsEqual(extensions[0], "all")) filterExtensions = false;
|
|
||||||
|
|
||||||
for (int i = 0; (i < dirFilesCount) && (validFilesCount < MAX_DIRECTORY_FILES); i++)
|
|
||||||
{
|
|
||||||
if (TextIsEqual(files[i], ".")) continue;
|
|
||||||
|
|
||||||
if (!filterExtensions)
|
|
||||||
{
|
|
||||||
strcpy(validFiles[validFilesCount], files[i]);
|
|
||||||
|
|
||||||
// Only filter files by extensions, directories should be available
|
|
||||||
if (DirectoryExists(TextFormat("%s\\%s", dir, files[i]))) strcpy(dirFilesIcon[validFilesCount], TextFormat("#%i#%s", 1, files[i]));
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// TODO: Assign custom filetype icons depending on file extension (image, audio, text, video, models...)
|
|
||||||
|
|
||||||
if (IsFileExtension(files[i], ".png")) strcpy(dirFilesIcon[validFilesCount], TextFormat("#%i#%s", 12, files[i]));
|
|
||||||
else strcpy(dirFilesIcon[validFilesCount], TextFormat("#%i#%s", 10, files[i]));
|
|
||||||
}
|
|
||||||
|
|
||||||
validFilesCount++;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
for (int j = 0; j < filterExtCount; j++)
|
|
||||||
{
|
|
||||||
// Check file type extensions supported
|
|
||||||
// NOTE: We just store valid files list
|
|
||||||
if (IsFileExtension(files[i], extensions[j]))
|
|
||||||
{
|
|
||||||
// TODO: Assign custom filetype icons depending on file extension (image, audio, text, video, models...)
|
|
||||||
|
|
||||||
if (IsFileExtension(files[i], ".png")) strcpy(dirFilesIcon[validFilesCount], TextFormat("#%i#%s", 12, files[i]));
|
|
||||||
else strcpy(dirFilesIcon[validFilesCount], TextFormat("#%i#%s", 10, files[i]));
|
|
||||||
|
|
||||||
validFilesCount++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: Sort files and directories: dir by name + files by name
|
|
||||||
|
|
||||||
ClearDirectoryFiles();
|
|
||||||
|
|
||||||
*filesCount = validFilesCount;
|
|
||||||
return validFiles;
|
|
||||||
}
|
|
||||||
|
|
||||||
#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)
|
|
||||||
{
|
|
||||||
GuiControlState state = guiState;
|
|
||||||
int itemFocused = (focus == NULL)? -1 : *focus;
|
|
||||||
int itemSelected = active;
|
|
||||||
|
|
||||||
// Check if we need a scroll bar
|
|
||||||
bool useScrollBar = false;
|
|
||||||
if ((GuiGetStyle(LISTVIEW, ELEMENTS_HEIGHT) + GuiGetStyle(LISTVIEW, ELEMENTS_PADDING))*count > bounds.height) useScrollBar = true;
|
|
||||||
|
|
||||||
// Define base item rectangle [0]
|
|
||||||
Rectangle itemBounds = { 0 };
|
|
||||||
itemBounds.x = bounds.x + GuiGetStyle(LISTVIEW, ELEMENTS_PADDING);
|
|
||||||
itemBounds.y = bounds.y + GuiGetStyle(LISTVIEW, ELEMENTS_PADDING) + GuiGetStyle(DEFAULT, BORDER_WIDTH);
|
|
||||||
itemBounds.width = bounds.width - 2*GuiGetStyle(LISTVIEW, ELEMENTS_PADDING) - GuiGetStyle(DEFAULT, BORDER_WIDTH);
|
|
||||||
itemBounds.height = GuiGetStyle(LISTVIEW, ELEMENTS_HEIGHT);
|
|
||||||
if (useScrollBar) itemBounds.width -= GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH);
|
|
||||||
|
|
||||||
// Get items on the list
|
|
||||||
int visibleItems = bounds.height/(GuiGetStyle(LISTVIEW, ELEMENTS_HEIGHT) + GuiGetStyle(LISTVIEW, ELEMENTS_PADDING));
|
|
||||||
if (visibleItems > count) visibleItems = count;
|
|
||||||
|
|
||||||
int startIndex = (scrollIndex == NULL)? 0 : *scrollIndex;
|
|
||||||
if ((startIndex < 0) || (startIndex > (count - visibleItems))) startIndex = 0;
|
|
||||||
int endIndex = startIndex + visibleItems;
|
|
||||||
|
|
||||||
// Update control
|
|
||||||
//--------------------------------------------------------------------
|
|
||||||
if ((state != GUI_STATE_DISABLED) && !guiLocked)
|
|
||||||
{
|
|
||||||
Vector2 mousePoint = GetMousePosition();
|
|
||||||
|
|
||||||
// Check mouse inside list view
|
|
||||||
if (CheckCollisionPointRec(mousePoint, bounds))
|
|
||||||
{
|
|
||||||
state = GUI_STATE_FOCUSED;
|
|
||||||
|
|
||||||
// Check focused and selected item
|
|
||||||
for (int i = 0; i < visibleItems; i++)
|
|
||||||
{
|
|
||||||
if (CheckCollisionPointRec(mousePoint, itemBounds))
|
|
||||||
{
|
|
||||||
itemFocused = startIndex + i;
|
|
||||||
if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) itemSelected = startIndex + i;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update item rectangle y position for next item
|
|
||||||
itemBounds.y += (GuiGetStyle(LISTVIEW, ELEMENTS_HEIGHT) + GuiGetStyle(LISTVIEW, ELEMENTS_PADDING));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (useScrollBar)
|
|
||||||
{
|
|
||||||
int wheelMove = GetMouseWheelMove();
|
|
||||||
startIndex -= wheelMove;
|
|
||||||
|
|
||||||
if (startIndex < 0) startIndex = 0;
|
|
||||||
else if (startIndex > (count - visibleItems)) startIndex = count - visibleItems;
|
|
||||||
|
|
||||||
endIndex = startIndex + visibleItems;
|
|
||||||
if (endIndex > count) endIndex = count;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else itemFocused = -1;
|
|
||||||
|
|
||||||
// Reset item rectangle y to [0]
|
|
||||||
itemBounds.y = bounds.y + GuiGetStyle(LISTVIEW, ELEMENTS_PADDING) + GuiGetStyle(DEFAULT, BORDER_WIDTH);
|
|
||||||
}
|
|
||||||
//--------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Draw control
|
|
||||||
//--------------------------------------------------------------------
|
|
||||||
DrawRectangleRec(bounds, GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR))); // Draw background
|
|
||||||
DrawRectangleLinesEx(bounds, GuiGetStyle(DEFAULT, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER + state*3)), guiAlpha));
|
|
||||||
|
|
||||||
// TODO: Draw list view header with file sections: icon+name | size | type | modTime
|
|
||||||
|
|
||||||
// Draw visible items
|
|
||||||
for (int i = 0; i < visibleItems; i++)
|
|
||||||
{
|
|
||||||
if (state == GUI_STATE_DISABLED)
|
|
||||||
{
|
|
||||||
if ((startIndex + i) == itemSelected)
|
|
||||||
{
|
|
||||||
DrawRectangleRec(itemBounds, Fade(GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_DISABLED)), guiAlpha));
|
|
||||||
DrawRectangleLinesEx(itemBounds, GuiGetStyle(LISTVIEW, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_DISABLED)), guiAlpha));
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: Draw full file info line: icon+name | size | type | modTime
|
|
||||||
|
|
||||||
GuiDrawText(files[startIndex + i].name, GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_DISABLED)), guiAlpha));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if ((startIndex + i) == itemSelected)
|
|
||||||
{
|
|
||||||
// Draw item selected
|
|
||||||
DrawRectangleRec(itemBounds, Fade(GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_PRESSED)), guiAlpha));
|
|
||||||
DrawRectangleLinesEx(itemBounds, GuiGetStyle(LISTVIEW, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_PRESSED)), guiAlpha));
|
|
||||||
|
|
||||||
GuiDrawText(files[startIndex + i].name, GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_PRESSED)), guiAlpha));
|
|
||||||
}
|
|
||||||
else if ((startIndex + i) == itemFocused)
|
|
||||||
{
|
|
||||||
// Draw item focused
|
|
||||||
DrawRectangleRec(itemBounds, Fade(GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_FOCUSED)), guiAlpha));
|
|
||||||
DrawRectangleLinesEx(itemBounds, GuiGetStyle(LISTVIEW, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_FOCUSED)), guiAlpha));
|
|
||||||
|
|
||||||
GuiDrawText(files[startIndex + i].name, GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_FOCUSED)), guiAlpha));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Draw item normal
|
|
||||||
GuiDrawText(files[startIndex + i].name, GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_NORMAL)), guiAlpha));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update item rectangle y position for next item
|
|
||||||
itemBounds.y += (GuiGetStyle(LISTVIEW, ELEMENTS_HEIGHT) + GuiGetStyle(LISTVIEW, ELEMENTS_PADDING));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (useScrollBar)
|
|
||||||
{
|
|
||||||
Rectangle scrollBarBounds = {
|
|
||||||
bounds.x + bounds.width - GuiGetStyle(LISTVIEW, BORDER_WIDTH) - GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH),
|
|
||||||
bounds.y + GuiGetStyle(LISTVIEW, BORDER_WIDTH), (float)GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH),
|
|
||||||
bounds.height - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH)
|
|
||||||
};
|
|
||||||
|
|
||||||
// Calculate percentage of visible items and apply same percentage to scrollbar
|
|
||||||
float percentVisible = (float)(endIndex - startIndex)/count;
|
|
||||||
float sliderSize = bounds.height*percentVisible;
|
|
||||||
|
|
||||||
int prevSliderSize = GuiGetStyle(SCROLLBAR, SLIDER_SIZE); // Save default slider size
|
|
||||||
int prevScrollSpeed = GuiGetStyle(SCROLLBAR, SCROLL_SPEED); // Save default scroll speed
|
|
||||||
GuiSetStyle(SCROLLBAR, SLIDER_SIZE, sliderSize); // Change slider size
|
|
||||||
GuiSetStyle(SCROLLBAR, SCROLL_SPEED, count - visibleItems); // Change scroll speed
|
|
||||||
|
|
||||||
startIndex = GuiScrollBar(scrollBarBounds, startIndex, 0, count - visibleItems);
|
|
||||||
|
|
||||||
GuiSetStyle(SCROLLBAR, SCROLL_SPEED, prevScrollSpeed); // Reset scroll speed to default
|
|
||||||
GuiSetStyle(SCROLLBAR, SLIDER_SIZE, prevSliderSize); // Reset slider size to default
|
|
||||||
}
|
|
||||||
//--------------------------------------------------------------------
|
|
||||||
|
|
||||||
if (focus != NULL) *focus = itemFocused;
|
|
||||||
if (scrollIndex != NULL) *scrollIndex = startIndex;
|
|
||||||
|
|
||||||
return itemSelected;
|
|
||||||
}
|
|
||||||
#endif // USE_CUSTOM_LISTVIEW_FILEINFO
|
|
||||||
|
|
||||||
#endif // GUI_FILE_DIALOG_IMPLEMENTATION
|
|
||||||
625
examples/custom_file_dialog/gui_window_file_dialog.h
Normal file
@ -0,0 +1,625 @@
|
|||||||
|
/*******************************************************************************************
|
||||||
|
*
|
||||||
|
* Window File Dialog v1.2 - Modal file dialog to open/save files
|
||||||
|
*
|
||||||
|
* MODULE USAGE:
|
||||||
|
* #define GUI_WINDOW_FILE_DIALOG_IMPLEMENTATION
|
||||||
|
* #include "gui_window_file_dialog.h"
|
||||||
|
*
|
||||||
|
* INIT: GuiWindowFileDialogState state = GuiInitWindowFileDialog();
|
||||||
|
* DRAW: GuiWindowFileDialog(&state);
|
||||||
|
*
|
||||||
|
* NOTE: This module depends on some raylib file system functions:
|
||||||
|
* - LoadDirectoryFiles()
|
||||||
|
* - UnloadDirectoryFiles()
|
||||||
|
* - GetWorkingDirectory()
|
||||||
|
* - DirectoryExists()
|
||||||
|
* - FileExists()
|
||||||
|
*
|
||||||
|
* LICENSE: zlib/libpng
|
||||||
|
*
|
||||||
|
* Copyright (c) 2019-2023 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.
|
||||||
|
*
|
||||||
|
* 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_WINDOW_FILE_DIALOG_H
|
||||||
|
#define GUI_WINDOW_FILE_DIALOG_H
|
||||||
|
|
||||||
|
// Gui file dialog context data
|
||||||
|
typedef struct {
|
||||||
|
|
||||||
|
// Window management variables
|
||||||
|
bool windowActive;
|
||||||
|
Rectangle windowBounds;
|
||||||
|
Vector2 panOffset;
|
||||||
|
bool dragMode;
|
||||||
|
bool supportDrag;
|
||||||
|
|
||||||
|
// UI variables
|
||||||
|
bool dirPathEditMode;
|
||||||
|
char dirPathText[1024];
|
||||||
|
|
||||||
|
int filesListScrollIndex;
|
||||||
|
bool filesListEditMode;
|
||||||
|
int filesListActive;
|
||||||
|
|
||||||
|
bool fileNameEditMode;
|
||||||
|
char fileNameText[1024];
|
||||||
|
bool SelectFilePressed;
|
||||||
|
bool CancelFilePressed;
|
||||||
|
int fileTypeActive;
|
||||||
|
int itemFocused;
|
||||||
|
|
||||||
|
// Custom state variables
|
||||||
|
FilePathList dirFiles;
|
||||||
|
char filterExt[256];
|
||||||
|
char dirPathTextCopy[1024];
|
||||||
|
char fileNameTextCopy[1024];
|
||||||
|
|
||||||
|
int prevFilesListActive;
|
||||||
|
|
||||||
|
bool saveFileMode;
|
||||||
|
|
||||||
|
} GuiWindowFileDialogState;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" { // Prevents name mangling of functions
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
// Defines and Macros
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
//...
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
// Types and Structures Definition
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
// ...
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
// Global Variables Definition
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
//...
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
// Module Functions Declaration
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
GuiWindowFileDialogState InitGuiWindowFileDialog(const char *initPath);
|
||||||
|
void GuiWindowFileDialog(GuiWindowFileDialogState *state);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // GUI_WINDOW_FILE_DIALOG_H
|
||||||
|
|
||||||
|
/***********************************************************************************
|
||||||
|
*
|
||||||
|
* GUI_WINDOW_FILE_DIALOG IMPLEMENTATION
|
||||||
|
*
|
||||||
|
************************************************************************************/
|
||||||
|
#if defined(GUI_WINDOW_FILE_DIALOG_IMPLEMENTATION)
|
||||||
|
|
||||||
|
#include "../../src/raygui.h"
|
||||||
|
|
||||||
|
#include <string.h> // Required for: strcpy()
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
// Defines and Macros
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
#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
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
#if defined(USE_CUSTOM_LISTVIEW_FILEINFO)
|
||||||
|
// Detailed file info type
|
||||||
|
typedef struct FileInfo {
|
||||||
|
const char *name;
|
||||||
|
int size;
|
||||||
|
int modTime;
|
||||||
|
int type;
|
||||||
|
int icon;
|
||||||
|
} FileInfo;
|
||||||
|
#else
|
||||||
|
// Filename only
|
||||||
|
typedef char *FileInfo; // Files are just a path string
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
// Global Variables Definition
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
FileInfo *dirFilesIcon = NULL; // Path string + icon (for fancy drawing)
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
// Internal Module Functions Definition
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
// Read files in new path
|
||||||
|
static void ReloadDirectoryFiles(GuiWindowFileDialogState *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);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
// Module Functions Definition
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
GuiWindowFileDialogState InitGuiWindowFileDialog(const char *initPath)
|
||||||
|
{
|
||||||
|
GuiWindowFileDialogState state = { 0 };
|
||||||
|
|
||||||
|
// Init window data
|
||||||
|
state.windowBounds = (Rectangle){ GetScreenWidth()/2 - 440/2, GetScreenHeight()/2 - 310/2, 440, 310 };
|
||||||
|
state.windowActive = false;
|
||||||
|
state.supportDrag = true;
|
||||||
|
state.dragMode = false;
|
||||||
|
state.panOffset = (Vector2){ 0, 0 };
|
||||||
|
|
||||||
|
// Init path data
|
||||||
|
state.dirPathEditMode = false;
|
||||||
|
state.filesListActive = -1;
|
||||||
|
state.prevFilesListActive = state.filesListActive;
|
||||||
|
state.filesListScrollIndex = 0;
|
||||||
|
|
||||||
|
state.fileNameEditMode = false;
|
||||||
|
|
||||||
|
state.SelectFilePressed = false;
|
||||||
|
state.CancelFilePressed = false;
|
||||||
|
|
||||||
|
state.fileTypeActive = 0;
|
||||||
|
|
||||||
|
strcpy(state.fileNameText, "\0");
|
||||||
|
|
||||||
|
// Custom variables initialization
|
||||||
|
if (initPath && DirectoryExists(initPath))
|
||||||
|
{
|
||||||
|
strcpy(state.dirPathText, initPath);
|
||||||
|
}
|
||||||
|
else if (initPath && FileExists(initPath))
|
||||||
|
{
|
||||||
|
strcpy(state.dirPathText, GetDirectoryPath(initPath));
|
||||||
|
strcpy(state.fileNameText, GetFileName(initPath));
|
||||||
|
}
|
||||||
|
else strcpy(state.dirPathText, GetWorkingDirectory());
|
||||||
|
|
||||||
|
// TODO: Why we keep a copy?
|
||||||
|
strcpy(state.dirPathTextCopy, state.dirPathText);
|
||||||
|
strcpy(state.fileNameTextCopy, state.fileNameText);
|
||||||
|
|
||||||
|
state.filterExt[0] = '\0';
|
||||||
|
//strcpy(state.filterExt, "all");
|
||||||
|
|
||||||
|
state.dirFiles.count = 0;
|
||||||
|
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update and draw file dialog
|
||||||
|
void GuiWindowFileDialog(GuiWindowFileDialogState *state)
|
||||||
|
{
|
||||||
|
if (state->windowActive)
|
||||||
|
{
|
||||||
|
// Update window dragging
|
||||||
|
//----------------------------------------------------------------------------------------
|
||||||
|
if (state->supportDrag)
|
||||||
|
{
|
||||||
|
Vector2 mousePosition = GetMousePosition();
|
||||||
|
|
||||||
|
if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON))
|
||||||
|
{
|
||||||
|
// Window can be dragged from the top window bar
|
||||||
|
if (CheckCollisionPointRec(mousePosition, (Rectangle){ state->windowBounds.x, state->windowBounds.y, (float)state->windowBounds.width, RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT }))
|
||||||
|
{
|
||||||
|
state->dragMode = true;
|
||||||
|
state->panOffset.x = mousePosition.x - state->windowBounds.x;
|
||||||
|
state->panOffset.y = mousePosition.y - state->windowBounds.y;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (state->dragMode)
|
||||||
|
{
|
||||||
|
state->windowBounds.x = (mousePosition.x - state->panOffset.x);
|
||||||
|
state->windowBounds.y = (mousePosition.y - state->panOffset.y);
|
||||||
|
|
||||||
|
// Check screen limits to avoid moving out of screen
|
||||||
|
if (state->windowBounds.x < 0) state->windowBounds.x = 0;
|
||||||
|
else if (state->windowBounds.x > (GetScreenWidth() - state->windowBounds.width)) state->windowBounds.x = GetScreenWidth() - state->windowBounds.width;
|
||||||
|
|
||||||
|
if (state->windowBounds.y < 0) state->windowBounds.y = 0;
|
||||||
|
else if (state->windowBounds.y > (GetScreenHeight() - state->windowBounds.height)) state->windowBounds.y = GetScreenHeight() - state->windowBounds.height;
|
||||||
|
|
||||||
|
if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) state->dragMode = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Load dirFilesIcon and state->dirFiles lazily on windows open
|
||||||
|
// NOTE: They are automatically unloaded at fileDialog closing
|
||||||
|
//----------------------------------------------------------------------------------------
|
||||||
|
if (dirFilesIcon == NULL)
|
||||||
|
{
|
||||||
|
dirFilesIcon = (FileInfo *)RL_CALLOC(MAX_DIRECTORY_FILES, sizeof(FileInfo)); // Max files to read
|
||||||
|
for (int i = 0; i < MAX_DIRECTORY_FILES; i++) dirFilesIcon[i] = (char *)RL_CALLOC(MAX_ICON_PATH_LENGTH, 1); // Max file name length
|
||||||
|
}
|
||||||
|
|
||||||
|
// Load current directory files
|
||||||
|
if (state->dirFiles.paths == NULL) ReloadDirectoryFiles(state);
|
||||||
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Draw window and controls
|
||||||
|
//----------------------------------------------------------------------------------------
|
||||||
|
state->windowActive = !GuiWindowBox(state->windowBounds, "#198# Select File Dialog");
|
||||||
|
|
||||||
|
// Draw previous directory button + logic
|
||||||
|
if (GuiButton((Rectangle){ state->windowBounds.x + state->windowBounds.width - 48, state->windowBounds.y + 24 + 12, 40, 24 }, "< .."))
|
||||||
|
{
|
||||||
|
// Move dir path one level up
|
||||||
|
strcpy(state->dirPathText, GetPrevDirectoryPath(state->dirPathText));
|
||||||
|
|
||||||
|
// Reload directory files (frees previous list)
|
||||||
|
ReloadDirectoryFiles(state);
|
||||||
|
|
||||||
|
state->filesListActive = -1;
|
||||||
|
memset(state->fileNameText, 0, 1024);
|
||||||
|
memset(state->fileNameTextCopy, 0, 1024);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Draw current directory text box info + path editing logic
|
||||||
|
if (GuiTextBox((Rectangle){ state->windowBounds.x + 8, state->windowBounds.y + 24 + 12, state->windowBounds.width - 48 - 16, 24 }, state->dirPathText, 1024, state->dirPathEditMode))
|
||||||
|
{
|
||||||
|
if (state->dirPathEditMode)
|
||||||
|
{
|
||||||
|
// Verify if a valid path has been introduced
|
||||||
|
if (DirectoryExists(state->dirPathText))
|
||||||
|
{
|
||||||
|
// Reload directory files (frees previous list)
|
||||||
|
ReloadDirectoryFiles(state);
|
||||||
|
|
||||||
|
strcpy(state->dirPathTextCopy, state->dirPathText);
|
||||||
|
}
|
||||||
|
else strcpy(state->dirPathText, state->dirPathTextCopy);
|
||||||
|
}
|
||||||
|
|
||||||
|
state->dirPathEditMode = !state->dirPathEditMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
// List view elements are aligned left
|
||||||
|
int prevTextAlignment = GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT);
|
||||||
|
int prevElementsHeight = GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT);
|
||||||
|
GuiSetStyle(LISTVIEW, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT);
|
||||||
|
GuiSetStyle(LISTVIEW, LIST_ITEMS_HEIGHT, 24);
|
||||||
|
# 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
|
||||||
|
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);
|
||||||
|
|
||||||
|
// Check if a path has been selected, if it is a directory, move to that directory (and reload paths)
|
||||||
|
if ((state->filesListActive >= 0) && (state->filesListActive != state->prevFilesListActive))
|
||||||
|
//&& (IsMouseButtonPressed(MOUSE_LEFT_BUTTON) || IsKeyPressed(KEY_ENTER) || IsKeyPressed(KEY_DPAD_A)))
|
||||||
|
{
|
||||||
|
strcpy(state->fileNameText, GetFileName(state->dirFiles.paths[state->filesListActive]));
|
||||||
|
|
||||||
|
if (DirectoryExists(TextFormat("%s/%s", state->dirPathText, state->fileNameText)))
|
||||||
|
{
|
||||||
|
if (TextIsEqual(state->fileNameText, "..")) strcpy(state->dirPathText, GetPrevDirectoryPath(state->dirPathText));
|
||||||
|
else strcpy(state->dirPathText, TextFormat("%s/%s", (strcmp(state->dirPathText, "/") == 0)? "" : state->dirPathText, state->fileNameText));
|
||||||
|
|
||||||
|
strcpy(state->dirPathTextCopy, state->dirPathText);
|
||||||
|
|
||||||
|
// Reload directory files (frees previous list)
|
||||||
|
ReloadDirectoryFiles(state);
|
||||||
|
|
||||||
|
strcpy(state->dirPathTextCopy, state->dirPathText);
|
||||||
|
|
||||||
|
state->filesListActive = -1;
|
||||||
|
strcpy(state->fileNameText, "\0");
|
||||||
|
strcpy(state->fileNameTextCopy, state->fileNameText);
|
||||||
|
}
|
||||||
|
|
||||||
|
state->prevFilesListActive = state->filesListActive;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Draw bottom controls
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
GuiLabel((Rectangle){ state->windowBounds.x + 8, state->windowBounds.y + state->windowBounds.height - 68, 60, 24 }, "File name:");
|
||||||
|
if (GuiTextBox((Rectangle){ state->windowBounds.x + 72, state->windowBounds.y + state->windowBounds.height - 68, state->windowBounds.width - 184, 24 }, state->fileNameText, 128, state->fileNameEditMode))
|
||||||
|
{
|
||||||
|
if (*state->fileNameText)
|
||||||
|
{
|
||||||
|
// Verify if a valid filename has been introduced
|
||||||
|
if (FileExists(TextFormat("%s/%s", state->dirPathText, state->fileNameText)))
|
||||||
|
{
|
||||||
|
// Select filename from list view
|
||||||
|
for (int i = 0; i < state->dirFiles.count; i++)
|
||||||
|
{
|
||||||
|
if (TextIsEqual(state->fileNameText, state->dirFiles.paths[i]))
|
||||||
|
{
|
||||||
|
state->filesListActive = i;
|
||||||
|
strcpy(state->fileNameTextCopy, state->fileNameText);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (!state->saveFileMode)
|
||||||
|
{
|
||||||
|
strcpy(state->fileNameText, state->fileNameTextCopy);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
state->fileNameEditMode = !state->fileNameEditMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
GuiLabel((Rectangle){ state->windowBounds.x + 8, state->windowBounds.y + state->windowBounds.height - 24 - 12, 68, 24 }, "File filter:");
|
||||||
|
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");
|
||||||
|
|
||||||
|
if (GuiButton((Rectangle){ state->windowBounds.x + state->windowBounds.width - 96 - 8, state->windowBounds.y + state->windowBounds.height - 24 - 12, 96, 24 }, "Cancel")) state->windowActive = false;
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Exit on file selected
|
||||||
|
if (state->SelectFilePressed) state->windowActive = false;
|
||||||
|
|
||||||
|
// File dialog has been closed, free all memory before exit
|
||||||
|
if (!state->windowActive)
|
||||||
|
{
|
||||||
|
// Free dirFilesIcon memory
|
||||||
|
for (int i = 0; i < MAX_DIRECTORY_FILES; i++) RL_FREE(dirFilesIcon[i]);
|
||||||
|
|
||||||
|
RL_FREE(dirFilesIcon);
|
||||||
|
dirFilesIcon = NULL;
|
||||||
|
|
||||||
|
// Unload directory file paths
|
||||||
|
UnloadDirectoryFiles(state->dirFiles);
|
||||||
|
|
||||||
|
// Reset state variables
|
||||||
|
state->dirFiles.count = 0;
|
||||||
|
state->dirFiles.capacity = 0;
|
||||||
|
state->dirFiles.paths = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Compare two files from a directory
|
||||||
|
static inline int FileCompare(const char *d1, const char *d2, const char *dir)
|
||||||
|
{
|
||||||
|
const bool b1 = DirectoryExists(TextFormat("%s/%s", dir, d1));
|
||||||
|
const bool b2 = DirectoryExists(TextFormat("%s/%s", dir, d2));
|
||||||
|
|
||||||
|
if (b1 && !b2) return -1;
|
||||||
|
if (!b1 && b2) return 1;
|
||||||
|
|
||||||
|
if (!FileExists(TextFormat("%s/%s", dir, d1))) return 1;
|
||||||
|
if (!FileExists(TextFormat("%s/%s", dir, d2))) return -1;
|
||||||
|
|
||||||
|
return strcmp(d1, d2);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Read files in new path
|
||||||
|
static void ReloadDirectoryFiles(GuiWindowFileDialogState *state)
|
||||||
|
{
|
||||||
|
UnloadDirectoryFiles(state->dirFiles);
|
||||||
|
|
||||||
|
state->dirFiles = LoadDirectoryFilesEx(state->dirPathText, (state->filterExt[0] == '\0')? NULL : state->filterExt, false);
|
||||||
|
state->itemFocused = 0;
|
||||||
|
|
||||||
|
// Reset dirFilesIcon memory
|
||||||
|
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++)
|
||||||
|
{
|
||||||
|
if (IsPathFile(state->dirFiles.paths[i]))
|
||||||
|
{
|
||||||
|
// Path is a file, a file icon for convenience (for some recognized extensions)
|
||||||
|
if (IsFileExtension(state->dirFiles.paths[i], ".png;.bmp;.tga;.gif;.jpg;.jpeg;.psd;.hdr;.qoi;.dds;.pkm;.ktx;.pvr;.astc"))
|
||||||
|
{
|
||||||
|
strcpy(dirFilesIcon[i], TextFormat("#12#%s", GetFileName(state->dirFiles.paths[i])));
|
||||||
|
}
|
||||||
|
else if (IsFileExtension(state->dirFiles.paths[i], ".wav;.mp3;.ogg;.flac;.xm;.mod;.it;.wma;.aiff"))
|
||||||
|
{
|
||||||
|
strcpy(dirFilesIcon[i], TextFormat("#11#%s", GetFileName(state->dirFiles.paths[i])));
|
||||||
|
}
|
||||||
|
else if (IsFileExtension(state->dirFiles.paths[i], ".txt;.info;.md;.nfo;.xml;.json;.c;.cpp;.cs;.lua;.py;.glsl;.vs;.fs"))
|
||||||
|
{
|
||||||
|
strcpy(dirFilesIcon[i], TextFormat("#10#%s", GetFileName(state->dirFiles.paths[i])));
|
||||||
|
}
|
||||||
|
else if (IsFileExtension(state->dirFiles.paths[i], ".exe;.bin;.raw;.msi"))
|
||||||
|
{
|
||||||
|
strcpy(dirFilesIcon[i], TextFormat("#200#%s", GetFileName(state->dirFiles.paths[i])));
|
||||||
|
}
|
||||||
|
else strcpy(dirFilesIcon[i], TextFormat("#218#%s", GetFileName(state->dirFiles.paths[i])));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Path is a directory, add a directory icon
|
||||||
|
strcpy(dirFilesIcon[i], TextFormat("#1#%s", GetFileName(state->dirFiles.paths[i])));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#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)
|
||||||
|
{
|
||||||
|
int result = 0;
|
||||||
|
GuiState state = guiState;
|
||||||
|
int itemFocused = (focus == NULL)? -1 : *focus;
|
||||||
|
int itemSelected = *active;
|
||||||
|
|
||||||
|
// Check if we need a scroll bar
|
||||||
|
bool useScrollBar = false;
|
||||||
|
if ((GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) + GuiGetStyle(LISTVIEW, LIST_ITEMS_PADDING))*count > bounds.height) useScrollBar = true;
|
||||||
|
|
||||||
|
// Define base item rectangle [0]
|
||||||
|
Rectangle itemBounds = { 0 };
|
||||||
|
itemBounds.x = bounds.x + GuiGetStyle(LISTVIEW, LIST_ITEMS_PADDING);
|
||||||
|
itemBounds.y = bounds.y + GuiGetStyle(LISTVIEW, LIST_ITEMS_PADDING) + GuiGetStyle(DEFAULT, BORDER_WIDTH);
|
||||||
|
itemBounds.width = bounds.width - 2*GuiGetStyle(LISTVIEW, LIST_ITEMS_PADDING) - GuiGetStyle(DEFAULT, BORDER_WIDTH);
|
||||||
|
itemBounds.height = GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT);
|
||||||
|
if (useScrollBar) itemBounds.width -= GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH);
|
||||||
|
|
||||||
|
// Get items on the list
|
||||||
|
int visibleItems = bounds.height/(GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) + GuiGetStyle(LISTVIEW, LIST_ITEMS_PADDING));
|
||||||
|
if (visibleItems > count) visibleItems = count;
|
||||||
|
|
||||||
|
int startIndex = (scrollIndex == NULL)? 0 : *scrollIndex;
|
||||||
|
if ((startIndex < 0) || (startIndex > (count - visibleItems))) startIndex = 0;
|
||||||
|
int endIndex = startIndex + visibleItems;
|
||||||
|
|
||||||
|
// Update control
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
if ((state != GUI_STATE_DISABLED) && !guiLocked)
|
||||||
|
{
|
||||||
|
Vector2 mousePoint = GetMousePosition();
|
||||||
|
|
||||||
|
// Check mouse inside list view
|
||||||
|
if (CheckCollisionPointRec(mousePoint, bounds))
|
||||||
|
{
|
||||||
|
state = GUI_STATE_FOCUSED;
|
||||||
|
|
||||||
|
// Check focused and selected item
|
||||||
|
for (int i = 0; i < visibleItems; i++)
|
||||||
|
{
|
||||||
|
if (CheckCollisionPointRec(mousePoint, itemBounds))
|
||||||
|
{
|
||||||
|
itemFocused = startIndex + i;
|
||||||
|
if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) itemSelected = startIndex + i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update item rectangle y position for next item
|
||||||
|
itemBounds.y += (GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) + GuiGetStyle(LISTVIEW, LIST_ITEMS_PADDING));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (useScrollBar)
|
||||||
|
{
|
||||||
|
int wheelMove = GetMouseWheelMove();
|
||||||
|
startIndex -= wheelMove;
|
||||||
|
|
||||||
|
if (startIndex < 0) startIndex = 0;
|
||||||
|
else if (startIndex > (count - visibleItems)) startIndex = count - visibleItems;
|
||||||
|
|
||||||
|
endIndex = startIndex + visibleItems;
|
||||||
|
if (endIndex > count) endIndex = count;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else itemFocused = -1;
|
||||||
|
|
||||||
|
// Reset item rectangle y to [0]
|
||||||
|
itemBounds.y = bounds.y + GuiGetStyle(LISTVIEW, LIST_ITEMS_PADDING) + GuiGetStyle(DEFAULT, BORDER_WIDTH);
|
||||||
|
}
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Draw control
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
DrawRectangleRec(bounds, GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR))); // Draw background
|
||||||
|
DrawRectangleLinesEx(bounds, GuiGetStyle(DEFAULT, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER + state*3)), guiAlpha));
|
||||||
|
|
||||||
|
// TODO: Draw list view header with file sections: icon+name | size | type | modTime
|
||||||
|
|
||||||
|
// Draw visible items
|
||||||
|
for (int i = 0; i < visibleItems; i++)
|
||||||
|
{
|
||||||
|
if (state == GUI_STATE_DISABLED)
|
||||||
|
{
|
||||||
|
if ((startIndex + i) == itemSelected)
|
||||||
|
{
|
||||||
|
DrawRectangleRec(itemBounds, Fade(GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_DISABLED)), guiAlpha));
|
||||||
|
DrawRectangleLinesEx(itemBounds, GuiGetStyle(LISTVIEW, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_DISABLED)), guiAlpha));
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: Draw full file info line: icon+name | size | type | modTime
|
||||||
|
|
||||||
|
GuiDrawText(files[startIndex + i].name, GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_DISABLED)), guiAlpha));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ((startIndex + i) == itemSelected)
|
||||||
|
{
|
||||||
|
// Draw item selected
|
||||||
|
DrawRectangleRec(itemBounds, Fade(GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_PRESSED)), guiAlpha));
|
||||||
|
DrawRectangleLinesEx(itemBounds, GuiGetStyle(LISTVIEW, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_PRESSED)), guiAlpha));
|
||||||
|
|
||||||
|
GuiDrawText(files[startIndex + i].name, GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_PRESSED)), guiAlpha));
|
||||||
|
}
|
||||||
|
else if ((startIndex + i) == itemFocused)
|
||||||
|
{
|
||||||
|
// Draw item focused
|
||||||
|
DrawRectangleRec(itemBounds, Fade(GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_FOCUSED)), guiAlpha));
|
||||||
|
DrawRectangleLinesEx(itemBounds, GuiGetStyle(LISTVIEW, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_FOCUSED)), guiAlpha));
|
||||||
|
|
||||||
|
GuiDrawText(files[startIndex + i].name, GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_FOCUSED)), guiAlpha));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Draw item normal
|
||||||
|
GuiDrawText(files[startIndex + i].name, GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_NORMAL)), guiAlpha));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update item rectangle y position for next item
|
||||||
|
itemBounds.y += (GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) + GuiGetStyle(LISTVIEW, LIST_ITEMS_PADDING));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (useScrollBar)
|
||||||
|
{
|
||||||
|
Rectangle scrollBarBounds = {
|
||||||
|
bounds.x + bounds.width - GuiGetStyle(LISTVIEW, BORDER_WIDTH) - GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH),
|
||||||
|
bounds.y + GuiGetStyle(LISTVIEW, BORDER_WIDTH), (float)GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH),
|
||||||
|
bounds.height - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH)
|
||||||
|
};
|
||||||
|
|
||||||
|
// Calculate percentage of visible items and apply same percentage to scrollbar
|
||||||
|
float percentVisible = (float)(endIndex - startIndex)/count;
|
||||||
|
float sliderSize = bounds.height*percentVisible;
|
||||||
|
|
||||||
|
int prevSliderSize = GuiGetStyle(SCROLLBAR, SLIDER_WIDTH); // Save default slider size
|
||||||
|
int prevScrollSpeed = GuiGetStyle(SCROLLBAR, SCROLL_SPEED); // Save default scroll speed
|
||||||
|
GuiSetStyle(SCROLLBAR, SLIDER_WIDTH, sliderSize); // Change slider size
|
||||||
|
GuiSetStyle(SCROLLBAR, SCROLL_SPEED, count - visibleItems); // Change scroll speed
|
||||||
|
|
||||||
|
startIndex = GuiScrollBar(scrollBarBounds, startIndex, 0, count - visibleItems);
|
||||||
|
|
||||||
|
GuiSetStyle(SCROLLBAR, SCROLL_SPEED, prevScrollSpeed); // Reset scroll speed to default
|
||||||
|
GuiSetStyle(SCROLLBAR, SLIDER_WIDTH, prevSliderSize); // Reset slider size to default
|
||||||
|
}
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
|
||||||
|
if (focus != NULL) *focus = itemFocused;
|
||||||
|
if (scrollIndex != NULL) *scrollIndex = startIndex;
|
||||||
|
|
||||||
|
*active = itemSelected;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
#endif // USE_CUSTOM_LISTVIEW_FILEINFO
|
||||||
|
|
||||||
|
#endif // GUI_FILE_DIALOG_IMPLEMENTATION
|
||||||
260
examples/custom_input_box/custom_input_box.c
Normal file
@ -0,0 +1,260 @@
|
|||||||
|
/*******************************************************************************************
|
||||||
|
*
|
||||||
|
* 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 <raygui.h>
|
||||||
|
|
||||||
|
int guiFloatingPointIndex = 0; // Global variable shared by all GuiFLoatBox()
|
||||||
|
|
||||||
|
float TextToFloat(const char* text); // Helper function that converts text to float
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get float value from text
|
||||||
|
float TextToFloat(const char* text)
|
||||||
|
{
|
||||||
|
float value = 0.0f;
|
||||||
|
float floatingPoint = 0.0f;
|
||||||
|
int sign = 1;
|
||||||
|
|
||||||
|
// deal with the sign
|
||||||
|
if ((text[0] == '+') || (text[0] == '-'))
|
||||||
|
{
|
||||||
|
if (text[0] == '-') sign = -1;
|
||||||
|
text++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// convert text to float
|
||||||
|
for (int i = 0; (((text[i] >= '0') && (text[i] <= '9')) || text[i] == '.'); i++)
|
||||||
|
{
|
||||||
|
if (text[i] == '.')
|
||||||
|
{
|
||||||
|
if (floatingPoint > 0.0f) break;
|
||||||
|
|
||||||
|
floatingPoint = 10.0f;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (floatingPoint > 0.0f) // after encountering decimal separator
|
||||||
|
{
|
||||||
|
value += (float)(text[i] - '0') / floatingPoint;
|
||||||
|
floatingPoint *= 10.0f;
|
||||||
|
}
|
||||||
|
else // before decimal separator
|
||||||
|
value = value * 10.0f + (float)(text[i] - '0');
|
||||||
|
}
|
||||||
|
|
||||||
|
return value * sign;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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)GetTextWidth(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 - GuiGetStyle(DEFAULT, TEXT_SIZE) / 2;
|
||||||
|
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 && !guiSliderDragging)
|
||||||
|
{
|
||||||
|
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 (GetTextWidth(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 = TextToFloat(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 + GetTextWidth(textValue) / 2 + bounds.width / 2 + 1, bounds.y + 2 * 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;
|
||||||
|
}
|
||||||
470
examples/custom_sliders/custom_sliders.c
Normal file
@ -0,0 +1,470 @@
|
|||||||
|
/*******************************************************************************************
|
||||||
|
*
|
||||||
|
* raygui - custom sliders
|
||||||
|
*
|
||||||
|
* DEPENDENCIES:
|
||||||
|
* raylib 4.0 - Windowing/input management and drawing.
|
||||||
|
* raygui 3.0 - Immediate-mode GUI controls.
|
||||||
|
*
|
||||||
|
* COMPILATION (Windows - MinGW):
|
||||||
|
* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99
|
||||||
|
*
|
||||||
|
* LICENSE: zlib/libpng
|
||||||
|
*
|
||||||
|
* Copyright (c) 2016-2023 Ramon Santamaria (@raysan5)
|
||||||
|
*
|
||||||
|
**********************************************************************************************/
|
||||||
|
|
||||||
|
#include "raylib.h"
|
||||||
|
|
||||||
|
#define RAYGUI_IMPLEMENTATION
|
||||||
|
#include "../../src/raygui.h"
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
// Controls Functions Declaration
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
float GuiVerticalSlider(Rectangle bounds, const char *textTop, const char *textBottom, float value, float minValue, float maxValue);
|
||||||
|
float GuiVerticalSliderBar(Rectangle bounds, const char *textTop, const char *textBottom, float value, float minValue, float maxValue);
|
||||||
|
float GuiVerticalSliderPro(Rectangle bounds, const char *textTop, const char *textBottom, float value, float minValue, float maxValue, int sliderHeight);
|
||||||
|
|
||||||
|
bool GuiSliderOwning(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue, bool editMode);
|
||||||
|
bool GuiSliderBarOwning(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue, bool editMode);
|
||||||
|
bool GuiSliderProOwning(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue, int sliderWidth, bool editMode);
|
||||||
|
|
||||||
|
bool GuiVerticalSliderOwning(Rectangle bounds, const char *textTop, const char *textBottom, float *value, float minValue, float maxValue, bool editMode);
|
||||||
|
bool GuiVerticalSliderBarOwning(Rectangle bounds, const char *textTop, const char *textBottom, float *value, float minValue, float maxValue, bool editMode);
|
||||||
|
bool GuiVerticalSliderProOwning(Rectangle bounds, const char *textTop, const char *textBottom, float *value, float minValue, float maxValue, int sliderHeight, bool editMode);
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------------
|
||||||
|
// Program main entry point
|
||||||
|
//------------------------------------------------------------------------------------
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
// Initialization
|
||||||
|
//---------------------------------------------------------------------------------------
|
||||||
|
int screenWidth = 800;
|
||||||
|
int screenHeight = 450;
|
||||||
|
|
||||||
|
InitWindow(screenWidth, screenHeight, "raygui - custom sliders");
|
||||||
|
|
||||||
|
float value = 0.5f;
|
||||||
|
bool sliderEditMode = false;
|
||||||
|
bool vSliderEditMode = false;
|
||||||
|
bool vSliderBarEditMode = false;
|
||||||
|
|
||||||
|
SetTargetFPS(60);
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Main game loop
|
||||||
|
while (!WindowShouldClose()) // Detect window close button or ESC key
|
||||||
|
{
|
||||||
|
// Update
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
// TODO: Implement required update logic
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Draw
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
BeginDrawing();
|
||||||
|
|
||||||
|
ClearBackground(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)));
|
||||||
|
|
||||||
|
if (vSliderEditMode || vSliderBarEditMode) GuiLock();
|
||||||
|
else GuiUnlock();
|
||||||
|
|
||||||
|
// raygui: controls drawing
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
GuiGroupBox((Rectangle){ 66, 24, 276, 312 }, "STANDARD");
|
||||||
|
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);
|
||||||
|
|
||||||
|
GuiGroupBox((Rectangle){ 378, 24, 276, 312 }, "OWNING");
|
||||||
|
if (GuiSliderOwning((Rectangle){ 408, 48, 216, 16 }, NULL, TextFormat("%0.2f", value), &value, 0.0f, 1.0f, sliderEditMode)) sliderEditMode = !sliderEditMode;
|
||||||
|
if (GuiVerticalSliderOwning((Rectangle){ 432, 120, 24, 192 }, NULL, TextFormat("%0.2f", value), &value, 0.0f, 1.0f, vSliderEditMode)) vSliderEditMode = !vSliderEditMode;
|
||||||
|
if (GuiVerticalSliderBarOwning((Rectangle){ 576, 120, 24, 192 }, NULL, TextFormat("%0.2f", value), &value, 0.0f, 1.0f, vSliderBarEditMode)) vSliderBarEditMode = !vSliderBarEditMode;
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
EndDrawing();
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
}
|
||||||
|
|
||||||
|
// De-Initialization
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
CloseWindow(); // Close window and OpenGL context
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------------
|
||||||
|
// Controls Functions Definitions (local)
|
||||||
|
//------------------------------------------------------------------------------------
|
||||||
|
float GuiVerticalSliderPro(Rectangle bounds, const char *textTop, const char *textBottom, float value, float minValue, float maxValue, int sliderHeight)
|
||||||
|
{
|
||||||
|
GuiState state = (GuiState)GuiGetState();
|
||||||
|
|
||||||
|
int sliderValue = (int)(((value - minValue)/(maxValue - minValue)) * (bounds.height - 2 * GuiGetStyle(SLIDER, BORDER_WIDTH)));
|
||||||
|
|
||||||
|
Rectangle slider = {
|
||||||
|
bounds.x + GuiGetStyle(SLIDER, BORDER_WIDTH) + GuiGetStyle(SLIDER, SLIDER_PADDING),
|
||||||
|
bounds.y + bounds.height - sliderValue,
|
||||||
|
bounds.width - 2*GuiGetStyle(SLIDER, BORDER_WIDTH) - 2*GuiGetStyle(SLIDER, SLIDER_PADDING),
|
||||||
|
0.0f,
|
||||||
|
};
|
||||||
|
|
||||||
|
if (sliderHeight > 0) // Slider
|
||||||
|
{
|
||||||
|
slider.y -= sliderHeight/2;
|
||||||
|
slider.height = (float)sliderHeight;
|
||||||
|
}
|
||||||
|
else if (sliderHeight == 0) // SliderBar
|
||||||
|
{
|
||||||
|
slider.y -= GuiGetStyle(SLIDER, BORDER_WIDTH);
|
||||||
|
slider.height = (float)sliderValue;
|
||||||
|
}
|
||||||
|
// Update control
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
if ((state != STATE_DISABLED) && !guiLocked)
|
||||||
|
{
|
||||||
|
Vector2 mousePoint = GetMousePosition();
|
||||||
|
|
||||||
|
if (CheckCollisionPointRec(mousePoint, bounds))
|
||||||
|
{
|
||||||
|
if (IsMouseButtonDown(MOUSE_LEFT_BUTTON))
|
||||||
|
{
|
||||||
|
state = STATE_PRESSED;
|
||||||
|
|
||||||
|
// Get equivalent value and slider position from mousePoint.x
|
||||||
|
float normalizedValue = (bounds.y + bounds.height - mousePoint.y - (float)(sliderHeight / 2)) / (bounds.height - (float)sliderHeight);
|
||||||
|
value = (maxValue - minValue) * normalizedValue + minValue;
|
||||||
|
|
||||||
|
if (sliderHeight > 0) slider.y = mousePoint.y - slider.height / 2; // Slider
|
||||||
|
else if (sliderHeight == 0) // SliderBar
|
||||||
|
{
|
||||||
|
slider.y = mousePoint.y;
|
||||||
|
slider.height = bounds.y + bounds.height - slider.y - GuiGetStyle(SLIDER, BORDER_WIDTH);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else state = STATE_FOCUSED;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (value > maxValue) value = maxValue;
|
||||||
|
else if (value < minValue) value = minValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Bar limits check
|
||||||
|
if (sliderHeight > 0) // Slider
|
||||||
|
{
|
||||||
|
if (slider.y < (bounds.y + GuiGetStyle(SLIDER, BORDER_WIDTH))) slider.y = bounds.y + GuiGetStyle(SLIDER, BORDER_WIDTH);
|
||||||
|
else if ((slider.y + slider.height) >= (bounds.y + bounds.height)) slider.y = bounds.y + bounds.height - slider.height - GuiGetStyle(SLIDER, BORDER_WIDTH);
|
||||||
|
}
|
||||||
|
else if (sliderHeight == 0) // SliderBar
|
||||||
|
{
|
||||||
|
if (slider.y < (bounds.y + GuiGetStyle(SLIDER, BORDER_WIDTH)))
|
||||||
|
{
|
||||||
|
slider.y = bounds.y + GuiGetStyle(SLIDER, BORDER_WIDTH);
|
||||||
|
slider.height = bounds.height - 2*GuiGetStyle(SLIDER, BORDER_WIDTH);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
// Draw control
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
GuiDrawRectangle(bounds, GuiGetStyle(SLIDER, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(SLIDER, BORDER + (state*3))), guiAlpha), Fade(GetColor(GuiGetStyle(SLIDER, (state != STATE_DISABLED)? BASE_COLOR_NORMAL : BASE_COLOR_DISABLED)), guiAlpha));
|
||||||
|
|
||||||
|
// Draw slider internal bar (depends on state)
|
||||||
|
if ((state == STATE_NORMAL) || (state == STATE_PRESSED)) GuiDrawRectangle(slider, 0, BLANK, Fade(GetColor(GuiGetStyle(SLIDER, BASE_COLOR_PRESSED)), guiAlpha));
|
||||||
|
else if (state == STATE_FOCUSED) GuiDrawRectangle(slider, 0, BLANK, Fade(GetColor(GuiGetStyle(SLIDER, TEXT_COLOR_FOCUSED)), guiAlpha));
|
||||||
|
|
||||||
|
// Draw top/bottom text if provided
|
||||||
|
if (textTop != NULL)
|
||||||
|
{
|
||||||
|
Rectangle textBounds = { 0 };
|
||||||
|
textBounds.width = (float)GetTextWidth(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);
|
||||||
|
|
||||||
|
GuiDrawText(textTop, textBounds, TEXT_ALIGN_RIGHT, Fade(GetColor(GuiGetStyle(SLIDER, TEXT + (state*3))), guiAlpha));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (textBottom != NULL)
|
||||||
|
{
|
||||||
|
Rectangle textBounds = { 0 };
|
||||||
|
textBounds.width = (float)GetTextWidth(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);
|
||||||
|
|
||||||
|
GuiDrawText(textBottom, textBounds, TEXT_ALIGN_LEFT, Fade(GetColor(GuiGetStyle(SLIDER, TEXT + (state*3))), guiAlpha));
|
||||||
|
}
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
float GuiVerticalSlider(Rectangle bounds, const char *textTop, const char *textBottom, float value, float minValue, float maxValue)
|
||||||
|
{
|
||||||
|
return GuiVerticalSliderPro(bounds, textTop, textBottom, value, minValue, maxValue, GuiGetStyle(SLIDER, SLIDER_WIDTH));
|
||||||
|
}
|
||||||
|
|
||||||
|
float GuiVerticalSliderBar(Rectangle bounds, const char *textTop, const char *textBottom, float value, float minValue, float maxValue)
|
||||||
|
{
|
||||||
|
return GuiVerticalSliderPro(bounds, textTop, textBottom, value, minValue, maxValue, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool GuiSliderProOwning(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue, int sliderWidth, bool editMode)
|
||||||
|
{
|
||||||
|
GuiState state = (GuiState)GuiGetState();
|
||||||
|
|
||||||
|
float tempValue = *value;
|
||||||
|
bool pressed = false;
|
||||||
|
|
||||||
|
int sliderValue = (int)(((tempValue - minValue)/(maxValue - minValue))*(bounds.width - 2*GuiGetStyle(SLIDER, BORDER_WIDTH)));
|
||||||
|
|
||||||
|
Rectangle slider = {
|
||||||
|
bounds.x,
|
||||||
|
bounds.y + GuiGetStyle(SLIDER, BORDER_WIDTH) + GuiGetStyle(SLIDER, SLIDER_PADDING),
|
||||||
|
0,
|
||||||
|
bounds.height - 2*GuiGetStyle(SLIDER, BORDER_WIDTH) - 2*GuiGetStyle(SLIDER, SLIDER_PADDING)
|
||||||
|
};
|
||||||
|
|
||||||
|
if (sliderWidth > 0) // Slider
|
||||||
|
{
|
||||||
|
slider.x += (sliderValue - sliderWidth/2);
|
||||||
|
slider.width = (float)sliderWidth;
|
||||||
|
}
|
||||||
|
else if (sliderWidth == 0) // SliderBar
|
||||||
|
{
|
||||||
|
slider.x += GuiGetStyle(SLIDER, BORDER_WIDTH);
|
||||||
|
slider.width = (float)sliderValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update control
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
if ((state != STATE_DISABLED) && (editMode || !guiLocked))
|
||||||
|
{
|
||||||
|
Vector2 mousePoint = GetMousePosition();
|
||||||
|
|
||||||
|
if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON))
|
||||||
|
{
|
||||||
|
if (CheckCollisionPointRec(mousePoint, bounds))
|
||||||
|
{
|
||||||
|
pressed = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON) && editMode)
|
||||||
|
{
|
||||||
|
pressed = true;
|
||||||
|
}
|
||||||
|
if (editMode)
|
||||||
|
{
|
||||||
|
state = STATE_PRESSED;
|
||||||
|
tempValue = ((maxValue - minValue)*(mousePoint.x - (float)(bounds.x + sliderWidth/2)))/(float)(bounds.width - sliderWidth) + minValue;
|
||||||
|
|
||||||
|
if (sliderWidth > 0) slider.x = mousePoint.x - slider.width/2; // Slider
|
||||||
|
else if (sliderWidth == 0) slider.width = (float)sliderValue; // SliderBar
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (CheckCollisionPointRec(mousePoint, bounds))
|
||||||
|
{
|
||||||
|
state = STATE_FOCUSED;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (tempValue > maxValue) tempValue = maxValue;
|
||||||
|
else if (tempValue < minValue) tempValue = minValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Bar limits check
|
||||||
|
if (sliderWidth > 0) // Slider
|
||||||
|
{
|
||||||
|
if (slider.x <= (bounds.x + GuiGetStyle(SLIDER, BORDER_WIDTH))) slider.x = bounds.x + GuiGetStyle(SLIDER, BORDER_WIDTH);
|
||||||
|
else if ((slider.x + slider.width) >= (bounds.x + bounds.width)) slider.x = bounds.x + bounds.width - slider.width - GuiGetStyle(SLIDER, BORDER_WIDTH);
|
||||||
|
}
|
||||||
|
else if (sliderWidth == 0) // SliderBar
|
||||||
|
{
|
||||||
|
if (slider.width > bounds.width) slider.width = bounds.width - 2*GuiGetStyle(SLIDER, BORDER_WIDTH);
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
// Draw control
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
GuiDrawRectangle(bounds, GuiGetStyle(SLIDER, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(SLIDER, BORDER + (state*3))), guiAlpha), Fade(GetColor(GuiGetStyle(SLIDER, (state != STATE_DISABLED)? BASE_COLOR_NORMAL : BASE_COLOR_DISABLED)), guiAlpha));
|
||||||
|
|
||||||
|
// Draw slider internal bar (depends on state)
|
||||||
|
if ((state == STATE_NORMAL) || (state == STATE_PRESSED))
|
||||||
|
GuiDrawRectangle(slider, 0, BLANK, Fade(GetColor(GuiGetStyle(SLIDER, BASE_COLOR_PRESSED)), guiAlpha));
|
||||||
|
else if (state == STATE_FOCUSED)
|
||||||
|
GuiDrawRectangle(slider, 0, BLANK, Fade(GetColor(GuiGetStyle(SLIDER, TEXT_COLOR_FOCUSED)), guiAlpha));
|
||||||
|
|
||||||
|
// Draw left/right text if provided
|
||||||
|
if (textLeft != NULL)
|
||||||
|
{
|
||||||
|
Rectangle textBounds = { 0 };
|
||||||
|
textBounds.width = (float)GetTextWidth(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;
|
||||||
|
|
||||||
|
GuiDrawText(textLeft, textBounds, TEXT_ALIGN_RIGHT, Fade(GetColor(GuiGetStyle(SLIDER, TEXT + (state*3))), guiAlpha));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (textRight != NULL)
|
||||||
|
{
|
||||||
|
Rectangle textBounds = { 0 };
|
||||||
|
textBounds.width = (float)GetTextWidth(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;
|
||||||
|
|
||||||
|
GuiDrawText(textRight, textBounds, TEXT_ALIGN_LEFT, Fade(GetColor(GuiGetStyle(SLIDER, TEXT + (state*3))), guiAlpha));
|
||||||
|
}
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
|
||||||
|
*value = tempValue;
|
||||||
|
return pressed;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool GuiSliderOwning(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue, bool editMode)
|
||||||
|
{
|
||||||
|
return GuiSliderProOwning(bounds, textLeft, textRight, value, minValue, maxValue, GuiGetStyle(SLIDER, SLIDER_WIDTH), editMode);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool GuiSliderBarOwning(Rectangle bounds, const char *textLeft, const char *textRight, float *value, float minValue, float maxValue, bool editMode)
|
||||||
|
{
|
||||||
|
return GuiSliderProOwning(bounds, textLeft, textRight, value, minValue, maxValue, 0, editMode);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool GuiVerticalSliderProOwning(Rectangle bounds, const char *textTop, const char *textBottom, float *value, float minValue, float maxValue, int sliderHeight, bool editMode)
|
||||||
|
{
|
||||||
|
GuiState state = (GuiState)GuiGetState();
|
||||||
|
|
||||||
|
float tempValue = *value;
|
||||||
|
bool pressed = false;
|
||||||
|
|
||||||
|
int sliderValue = (int)(((tempValue - minValue)/(maxValue - minValue)) * (bounds.height - 2 * GuiGetStyle(SLIDER, BORDER_WIDTH)));
|
||||||
|
|
||||||
|
Rectangle slider = {
|
||||||
|
bounds.x + GuiGetStyle(SLIDER, BORDER_WIDTH) + GuiGetStyle(SLIDER, SLIDER_PADDING),
|
||||||
|
bounds.y + bounds.height - sliderValue,
|
||||||
|
bounds.width - 2*GuiGetStyle(SLIDER, BORDER_WIDTH) - 2*GuiGetStyle(SLIDER, SLIDER_PADDING),
|
||||||
|
0.0f,
|
||||||
|
};
|
||||||
|
|
||||||
|
if (sliderHeight > 0) // Slider
|
||||||
|
{
|
||||||
|
slider.y -= sliderHeight/2;
|
||||||
|
slider.height = (float)sliderHeight;
|
||||||
|
}
|
||||||
|
else if (sliderHeight == 0) // SliderBar
|
||||||
|
{
|
||||||
|
slider.y -= GuiGetStyle(SLIDER, BORDER_WIDTH);
|
||||||
|
slider.height = (float)sliderValue;
|
||||||
|
}
|
||||||
|
// Update control
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
if ((state != STATE_DISABLED) && (editMode || !guiLocked))
|
||||||
|
{
|
||||||
|
Vector2 mousePoint = GetMousePosition();
|
||||||
|
|
||||||
|
if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON))
|
||||||
|
{
|
||||||
|
if (CheckCollisionPointRec(mousePoint, bounds))
|
||||||
|
{
|
||||||
|
pressed = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON) && editMode)
|
||||||
|
{
|
||||||
|
pressed = true;
|
||||||
|
}
|
||||||
|
if (editMode)
|
||||||
|
{
|
||||||
|
state = STATE_PRESSED;
|
||||||
|
|
||||||
|
float normalizedValue = (bounds.y + bounds.height - mousePoint.y - (float)(sliderHeight / 2)) / (bounds.height - (float)sliderHeight);
|
||||||
|
tempValue = (maxValue - minValue) * normalizedValue + minValue;
|
||||||
|
|
||||||
|
if (sliderHeight > 0) slider.y = mousePoint.y - slider.height / 2; // Slider
|
||||||
|
else if (sliderHeight == 0) // SliderBar
|
||||||
|
{
|
||||||
|
slider.y = mousePoint.y;
|
||||||
|
slider.height = bounds.y + bounds.height - slider.y - GuiGetStyle(SLIDER, BORDER_WIDTH);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (CheckCollisionPointRec(mousePoint, bounds))
|
||||||
|
{
|
||||||
|
state = STATE_FOCUSED;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (tempValue > maxValue) tempValue = maxValue;
|
||||||
|
else if (tempValue < minValue) tempValue = minValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Bar limits check
|
||||||
|
if (sliderHeight > 0) // Slider
|
||||||
|
{
|
||||||
|
if (slider.y < (bounds.y + GuiGetStyle(SLIDER, BORDER_WIDTH))) slider.y = bounds.y + GuiGetStyle(SLIDER, BORDER_WIDTH);
|
||||||
|
else if ((slider.y + slider.height) >= (bounds.y + bounds.height)) slider.y = bounds.y + bounds.height - slider.height - GuiGetStyle(SLIDER, BORDER_WIDTH);
|
||||||
|
}
|
||||||
|
else if (sliderHeight == 0) // SliderBar
|
||||||
|
{
|
||||||
|
if (slider.y < (bounds.y + GuiGetStyle(SLIDER, BORDER_WIDTH)))
|
||||||
|
{
|
||||||
|
slider.y = bounds.y + GuiGetStyle(SLIDER, BORDER_WIDTH);
|
||||||
|
slider.height = bounds.height - 2*GuiGetStyle(SLIDER, BORDER_WIDTH);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
// Draw control
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
GuiDrawRectangle(bounds, GuiGetStyle(SLIDER, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(SLIDER, BORDER + (state*3))), guiAlpha), Fade(GetColor(GuiGetStyle(SLIDER, (state != STATE_DISABLED)? BASE_COLOR_NORMAL : BASE_COLOR_DISABLED)), guiAlpha));
|
||||||
|
|
||||||
|
// Draw slider internal bar (depends on state)
|
||||||
|
if ((state == STATE_NORMAL) || (state == STATE_PRESSED))
|
||||||
|
GuiDrawRectangle(slider, 0, BLANK, Fade(GetColor(GuiGetStyle(SLIDER, BASE_COLOR_PRESSED)), guiAlpha));
|
||||||
|
else if (state == STATE_FOCUSED)
|
||||||
|
GuiDrawRectangle(slider, 0, BLANK, Fade(GetColor(GuiGetStyle(SLIDER, TEXT_COLOR_FOCUSED)), guiAlpha));
|
||||||
|
|
||||||
|
// Draw top/bottom text if provided
|
||||||
|
if (textTop != NULL)
|
||||||
|
{
|
||||||
|
Rectangle textBounds = { 0 };
|
||||||
|
textBounds.width = (float)GetTextWidth(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);
|
||||||
|
|
||||||
|
GuiDrawText(textTop, textBounds, TEXT_ALIGN_RIGHT, Fade(GetColor(GuiGetStyle(SLIDER, TEXT + (state*3))), guiAlpha));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (textBottom != NULL)
|
||||||
|
{
|
||||||
|
Rectangle textBounds = { 0 };
|
||||||
|
textBounds.width = (float)GetTextWidth(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);
|
||||||
|
|
||||||
|
GuiDrawText(textBottom, textBounds, TEXT_ALIGN_LEFT, Fade(GetColor(GuiGetStyle(SLIDER, TEXT + (state*3))), guiAlpha));
|
||||||
|
}
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
|
||||||
|
*value = tempValue;
|
||||||
|
return pressed;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool GuiVerticalSliderOwning(Rectangle bounds, const char *textTop, const char *textBottom, float *value, float minValue, float maxValue, bool editMode)
|
||||||
|
{
|
||||||
|
return GuiVerticalSliderProOwning(bounds, textTop, textBottom, value, minValue, maxValue, GuiGetStyle(SLIDER, SLIDER_WIDTH), editMode);
|
||||||
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
@ -3,29 +3,27 @@
|
|||||||
* raygui - image exporter
|
* raygui - image exporter
|
||||||
*
|
*
|
||||||
* DEPENDENCIES:
|
* DEPENDENCIES:
|
||||||
* raylib 2.1 - Windowing/input management and drawing.
|
* raylib 4.0 - Windowing/input management and drawing.
|
||||||
* raygui 2.0 - Immediate-mode GUI controls.
|
* raygui 3.0 - Immediate-mode GUI controls.
|
||||||
*
|
*
|
||||||
* COMPILATION (Windows - MinGW):
|
* COMPILATION (Windows - MinGW):
|
||||||
* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99
|
* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99
|
||||||
*
|
*
|
||||||
* LICENSE: zlib/libpng
|
* LICENSE: zlib/libpng
|
||||||
*
|
*
|
||||||
* Copyright (c) 2019 raylib technologies (@raylibtech)
|
* Copyright (c) 2015-2023 Ramon Santamaria (@raysan5)
|
||||||
*
|
*
|
||||||
********************************************************************************************/
|
********************************************************************************************/
|
||||||
|
|
||||||
#include "raylib.h"
|
#include "raylib.h"
|
||||||
|
|
||||||
#define RAYGUI_IMPLEMENTATION
|
#define RAYGUI_IMPLEMENTATION
|
||||||
#define RAYGUI_SUPPORT_RICONS
|
|
||||||
#include "../../src/raygui.h"
|
#include "../../src/raygui.h"
|
||||||
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------------
|
||||||
// Program main entry point
|
// Program main entry point
|
||||||
//------------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------------
|
||||||
int main(int argc, char *argv[0])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
// Initialization
|
// Initialization
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
@ -46,7 +44,7 @@ int main(int argc, char *argv[0])
|
|||||||
const char *pixelFormatTextList[7] = { "GRAYSCALE", "GRAY ALPHA", "R5G6B5", "R8G8B8", "R5G5B5A1", "R4G4B4A4", "R8G8B8A8" };
|
const char *pixelFormatTextList[7] = { "GRAYSCALE", "GRAY ALPHA", "R5G6B5", "R8G8B8", "R5G5B5A1", "R4G4B4A4", "R8G8B8A8" };
|
||||||
|
|
||||||
bool textBoxEditMode = false;
|
bool textBoxEditMode = false;
|
||||||
char fileName[32] = "untitled";
|
char fileName[64] = "untitled";
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
||||||
Image image = { 0 };
|
Image image = { 0 };
|
||||||
@ -54,9 +52,9 @@ int main(int argc, char *argv[0])
|
|||||||
|
|
||||||
bool imageLoaded = false;
|
bool imageLoaded = false;
|
||||||
float imageScale = 1.0f;
|
float imageScale = 1.0f;
|
||||||
Rectangle imageRec = { 0.0f };
|
Rectangle imageRec = { 0 };
|
||||||
|
|
||||||
bool btnExport = false;
|
bool btnExportPressed = false;
|
||||||
|
|
||||||
SetTargetFPS(60);
|
SetTargetFPS(60);
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
@ -68,12 +66,11 @@ int main(int argc, char *argv[0])
|
|||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
if (IsFileDropped())
|
if (IsFileDropped())
|
||||||
{
|
{
|
||||||
int fileCount = 0;
|
FilePathList droppedFiles = LoadDroppedFiles();
|
||||||
char **droppedFiles = GetDroppedFiles(&fileCount);
|
|
||||||
|
|
||||||
if (fileCount == 1)
|
if (droppedFiles.count == 1)
|
||||||
{
|
{
|
||||||
Image imTemp = LoadImage(droppedFiles[0]);
|
Image imTemp = LoadImage(droppedFiles.paths[0]);
|
||||||
|
|
||||||
if (imTemp.data != NULL)
|
if (imTemp.data != NULL)
|
||||||
{
|
{
|
||||||
@ -91,10 +88,10 @@ int main(int argc, char *argv[0])
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ClearDroppedFiles();
|
UnloadDroppedFiles(droppedFiles);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (btnExport)
|
if (btnExportPressed)
|
||||||
{
|
{
|
||||||
if (imageLoaded)
|
if (imageLoaded)
|
||||||
{
|
{
|
||||||
@ -102,17 +99,17 @@ int main(int argc, char *argv[0])
|
|||||||
|
|
||||||
if (fileFormatActive == 0) // PNG
|
if (fileFormatActive == 0) // PNG
|
||||||
{
|
{
|
||||||
if ((GetExtension(fileName) == NULL) || (!IsFileExtension(fileName, ".png"))) strcat(fileName, ".png\0"); // No extension provided
|
if ((GetFileExtension(fileName) == NULL) || (!IsFileExtension(fileName, ".png"))) strcat(fileName, ".png\0"); // No extension provided
|
||||||
ExportImage(image, fileName);
|
ExportImage(image, fileName);
|
||||||
}
|
}
|
||||||
else if (fileFormatActive == 1) // RAW
|
else if (fileFormatActive == 1) // RAW
|
||||||
{
|
{
|
||||||
if ((GetExtension(fileName) == NULL) || (!IsFileExtension(fileName, ".raw"))) strcat(fileName, ".raw\0"); // No extension provided
|
if ((GetFileExtension(fileName) == NULL) || (!IsFileExtension(fileName, ".raw"))) strcat(fileName, ".raw\0"); // No extension provided
|
||||||
|
|
||||||
int dataSize = GetPixelDataSize(image.width, image.height, image.format);
|
int dataSize = GetPixelDataSize(image.width, image.height, image.format);
|
||||||
|
|
||||||
FILE *rawFile = fopen(fileName, "wb");
|
FILE *rawFile = fopen(fileName, "wb");
|
||||||
fwrite(image.data, dataSize, 1, rawFile);
|
fwrite(image.data, 1, dataSize, rawFile);
|
||||||
fclose(rawFile);
|
fclose(rawFile);
|
||||||
}
|
}
|
||||||
else if (fileFormatActive == 2) // CODE
|
else if (fileFormatActive == 2) // CODE
|
||||||
@ -147,7 +144,7 @@ int main(int argc, char *argv[0])
|
|||||||
DrawTextureEx(texture, (Vector2){ screenWidth/2 - (float)texture.width*imageScale/2, screenHeight/2 - (float)texture.height*imageScale/2 }, 0.0f, imageScale, WHITE);
|
DrawTextureEx(texture, (Vector2){ screenWidth/2 - (float)texture.width*imageScale/2, screenHeight/2 - (float)texture.height*imageScale/2 }, 0.0f, imageScale, WHITE);
|
||||||
|
|
||||||
DrawRectangleLinesEx(imageRec, 1, CheckCollisionPointRec(GetMousePosition(), imageRec) ? RED : DARKGRAY);
|
DrawRectangleLinesEx(imageRec, 1, CheckCollisionPointRec(GetMousePosition(), imageRec) ? RED : DARKGRAY);
|
||||||
DrawText(FormatText("SCALE: %.2f%%", imageScale*100.0f), 20, screenHeight - 40, 20, GetColor(GuiGetStyle(DEFAULT, LINE_COLOR)));
|
DrawText(TextFormat("SCALE: %.2f%%", imageScale*100.0f), 20, screenHeight - 40, 20, GetColor(GuiGetStyle(DEFAULT, LINE_COLOR)));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -166,17 +163,17 @@ int main(int argc, char *argv[0])
|
|||||||
windowBoxActive = !GuiWindowBox((Rectangle){ windowBoxRec.x, windowBoxRec.y, 220, 190 }, "Image Export Options");
|
windowBoxActive = !GuiWindowBox((Rectangle){ windowBoxRec.x, windowBoxRec.y, 220, 190 }, "Image Export Options");
|
||||||
|
|
||||||
GuiLabel((Rectangle){ windowBoxRec.x + 10, windowBoxRec.y + 35, 60, 25 }, "File format:");
|
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:");
|
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:");
|
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;
|
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();
|
EndDrawing();
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 6.4 KiB |
@ -3,22 +3,21 @@
|
|||||||
* raygui - image raw importer
|
* raygui - image raw importer
|
||||||
*
|
*
|
||||||
* DEPENDENCIES:
|
* DEPENDENCIES:
|
||||||
* raylib 2.1 - Windowing/input management and drawing.
|
* raylib 4.0 - Windowing/input management and drawing.
|
||||||
* raygui 2.0 - Immediate-mode GUI controls.
|
* raygui 3.0 - Immediate-mode GUI controls.
|
||||||
*
|
*
|
||||||
* COMPILATION (Windows - MinGW):
|
* COMPILATION (Windows - MinGW):
|
||||||
* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99
|
* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99
|
||||||
*
|
*
|
||||||
* LICENSE: zlib/libpng
|
* LICENSE: zlib/libpng
|
||||||
*
|
*
|
||||||
* Copyright (c) 2019 raylib technologies (@raylibtech)
|
* Copyright (c) 2015-2023 Ramon Santamaria (@raysan5)
|
||||||
*
|
*
|
||||||
**********************************************************************************************/
|
**********************************************************************************************/
|
||||||
|
|
||||||
#include "raylib.h"
|
#include "raylib.h"
|
||||||
|
|
||||||
#define RAYGUI_IMPLEMENTATION
|
#define RAYGUI_IMPLEMENTATION
|
||||||
#define RAYGUI_SUPPORT_RICONS
|
|
||||||
#include "../../src/raygui.h"
|
#include "../../src/raygui.h"
|
||||||
|
|
||||||
#include <string.h> // Required for: strcpy()
|
#include <string.h> // Required for: strcpy()
|
||||||
@ -83,21 +82,20 @@ int main()
|
|||||||
// Check if a file is dropped
|
// Check if a file is dropped
|
||||||
if (IsFileDropped())
|
if (IsFileDropped())
|
||||||
{
|
{
|
||||||
int fileCount = 0;
|
FilePathList droppedFiles = LoadDroppedFiles();
|
||||||
char **droppedFiles = GetDroppedFiles(&fileCount);
|
|
||||||
|
|
||||||
// Check file extensions for drag-and-drop
|
// Check file extensions for drag-and-drop
|
||||||
if ((fileCount == 1) && IsFileExtension(droppedFiles[0], ".raw"))
|
if ((droppedFiles.count == 1) && IsFileExtension(droppedFiles.paths[0], ".raw"))
|
||||||
{
|
{
|
||||||
FILE *imageFile = fopen(droppedFiles[0], "rb");
|
FILE *imageFile = fopen(droppedFiles.paths[0], "rb");
|
||||||
fseek(imageFile, 0L, SEEK_END);
|
fseek(imageFile, 0L, SEEK_END);
|
||||||
dataSize = ftell(imageFile);
|
dataSize = ftell(imageFile);
|
||||||
fclose(imageFile);
|
fclose(imageFile);
|
||||||
|
|
||||||
// NOTE: Returned string is just a pointer to droppedFiles[0],
|
// NOTE: Returned string is just a pointer to droppedFiles[0],
|
||||||
// we need to make a copy of that data somewhere else: fileName
|
// we need to make a copy of that data somewhere else: fileName
|
||||||
strcpy(fileNamePath, droppedFiles[0]);
|
strcpy(fileNamePath, droppedFiles.paths[0]);
|
||||||
strcpy(fileName, GetFileName(droppedFiles[0]));
|
strcpy(fileName, GetFileName(droppedFiles.paths[0]));
|
||||||
|
|
||||||
// Try to guess possible raw values
|
// Try to guess possible raw values
|
||||||
// Let's assume image is square, RGBA, 8 bit per channel
|
// Let's assume image is square, RGBA, 8 bit per channel
|
||||||
@ -109,7 +107,7 @@ int main()
|
|||||||
importWindowActive = true;
|
importWindowActive = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
ClearDroppedFiles();
|
UnloadDroppedFiles(droppedFiles);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if load button has been pressed
|
// Check if load button has been pressed
|
||||||
@ -128,17 +126,17 @@ int main()
|
|||||||
// Select correct format depending on channels and bpp
|
// Select correct format depending on channels and bpp
|
||||||
if (bpp == 8)
|
if (bpp == 8)
|
||||||
{
|
{
|
||||||
if (channels == 1) format = UNCOMPRESSED_GRAYSCALE;
|
if (channels == 1) format = PIXELFORMAT_UNCOMPRESSED_GRAYSCALE;
|
||||||
else if (channels == 2) format = UNCOMPRESSED_GRAY_ALPHA;
|
else if (channels == 2) format = PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA;
|
||||||
else if (channels == 3) format = UNCOMPRESSED_R8G8B8;
|
else if (channels == 3) format = PIXELFORMAT_UNCOMPRESSED_R8G8B8;
|
||||||
else if (channels == 4) format = UNCOMPRESSED_R8G8B8A8;
|
else if (channels == 4) format = PIXELFORMAT_UNCOMPRESSED_R8G8B8A8;
|
||||||
}
|
}
|
||||||
else if (bpp == 32)
|
else if (bpp == 32)
|
||||||
{
|
{
|
||||||
if (channels == 1) format = UNCOMPRESSED_R32;
|
if (channels == 1) format = PIXELFORMAT_UNCOMPRESSED_R32;
|
||||||
else if (channels == 2) TraceLog(LOG_WARNING, "Channel bit-depth not supported!");
|
else if (channels == 2) TraceLog(LOG_WARNING, "Channel bit-depth not supported!");
|
||||||
else if (channels == 3) format = UNCOMPRESSED_R32G32B32;
|
else if (channels == 3) format = PIXELFORMAT_UNCOMPRESSED_R32G32B32;
|
||||||
else if (channels == 4) format = UNCOMPRESSED_R32G32B32A32;
|
else if (channels == 4) format = PIXELFORMAT_UNCOMPRESSED_R32G32B32A32;
|
||||||
}
|
}
|
||||||
else if (bpp == 16) TraceLog(LOG_WARNING, "Channel bit-depth not supported!");
|
else if (bpp == 16) TraceLog(LOG_WARNING, "Channel bit-depth not supported!");
|
||||||
}
|
}
|
||||||
@ -174,7 +172,7 @@ int main()
|
|||||||
if (texture.id != 0)
|
if (texture.id != 0)
|
||||||
{
|
{
|
||||||
DrawTextureEx(texture, (Vector2){ screenWidth/2 - texture.width*imageScale/2, screenHeight/2 - texture.height*imageScale/2 }, 0, imageScale, WHITE);
|
DrawTextureEx(texture, (Vector2){ screenWidth/2 - texture.width*imageScale/2, screenHeight/2 - texture.height*imageScale/2 }, 0, imageScale, WHITE);
|
||||||
DrawText(FormatText("SCALE x%.0f", imageScale), 20, screenHeight - 40, 20, GetColor(GuiGetStyle(DEFAULT, LINE_COLOR)));
|
DrawText(TextFormat("SCALE x%.0f", imageScale), 20, screenHeight - 40, 20, GetColor(GuiGetStyle(DEFAULT, LINE_COLOR)));
|
||||||
}
|
}
|
||||||
else DrawText("drag & drop RAW image file", 320, 180, 10, GetColor(GuiGetStyle(DEFAULT, LINE_COLOR)));
|
else DrawText("drag & drop RAW image file", 320, 180, 10, GetColor(GuiGetStyle(DEFAULT, LINE_COLOR)));
|
||||||
|
|
||||||
@ -187,28 +185,28 @@ int main()
|
|||||||
GuiLabel((Rectangle){ windowOffset.x + 10, windowOffset.y + 30, 65, 20 }, "Import file:");
|
GuiLabel((Rectangle){ windowOffset.x + 10, windowOffset.y + 30, 65, 20 }, "Import file:");
|
||||||
GuiLabel((Rectangle){ windowOffset.x + 85, windowOffset.y + 30, 75, 20 }, fileName);
|
GuiLabel((Rectangle){ windowOffset.x + 85, windowOffset.y + 30, 75, 20 }, fileName);
|
||||||
GuiLabel((Rectangle){ windowOffset.x + 10, windowOffset.y + 50, 65, 20 }, "File size:");
|
GuiLabel((Rectangle){ windowOffset.x + 10, windowOffset.y + 50, 65, 20 }, "File size:");
|
||||||
GuiLabel((Rectangle){ windowOffset.x + 85, windowOffset.y + 50, 75, 20 }, FormatText("%i bytes", dataSize));
|
GuiLabel((Rectangle){ windowOffset.x + 85, windowOffset.y + 50, 75, 20 }, TextFormat("%i bytes", dataSize));
|
||||||
GuiGroupBox((Rectangle){ windowOffset.x + 10, windowOffset.y + 85, 180, 80 }, "Resolution");
|
GuiGroupBox((Rectangle){ windowOffset.x + 10, windowOffset.y + 85, 180, 80 }, "Resolution");
|
||||||
GuiLabel((Rectangle){ windowOffset.x + 20, windowOffset.y + 100, 33, 25 }, "Width:");
|
GuiLabel((Rectangle){ windowOffset.x + 20, windowOffset.y + 100, 33, 25 }, "Width:");
|
||||||
if (GuiValueBox((Rectangle){ windowOffset.x + 60, windowOffset.y + 100, 80, 25 }, &widthValue, 0, 8192, widthEditMode)) widthEditMode = !widthEditMode;
|
if (GuiValueBox((Rectangle){ windowOffset.x + 60, windowOffset.y + 100, 80, 25 }, NULL, &widthValue, 0, 8192, widthEditMode)) widthEditMode = !widthEditMode;
|
||||||
GuiLabel((Rectangle){ windowOffset.x + 145, windowOffset.y + 100, 30, 25 }, "pixels");
|
GuiLabel((Rectangle){ windowOffset.x + 145, windowOffset.y + 100, 30, 25 }, "pixels");
|
||||||
GuiLabel((Rectangle){ windowOffset.x + 20, windowOffset.y + 130, 33, 25 }, "Height:");
|
GuiLabel((Rectangle){ windowOffset.x + 20, windowOffset.y + 130, 33, 25 }, "Height:");
|
||||||
if (GuiValueBox((Rectangle){ windowOffset.x + 60, windowOffset.y + 130, 80, 25 }, &heightValue, 0, 8192, heightEditMode)) heightEditMode = !heightEditMode;
|
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");
|
GuiLabel((Rectangle){ windowOffset.x + 145, windowOffset.y + 130, 30, 25 }, "pixels");
|
||||||
GuiGroupBox((Rectangle){ windowOffset.x + 10, windowOffset.y + 180, 180, 160 }, "Pixel Format");
|
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);
|
GuiLine((Rectangle){ windowOffset.x + 20, windowOffset.y + 220, 160, 20 }, NULL);
|
||||||
|
|
||||||
if (pixelFormatActive != 0) GuiDisable();
|
if (pixelFormatActive != 0) GuiDisable();
|
||||||
GuiLabel((Rectangle){ windowOffset.x + 20, windowOffset.y + 235, 50, 20 }, "Channels:");
|
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:");
|
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();
|
GuiEnable();
|
||||||
|
|
||||||
GuiGroupBox((Rectangle){ windowOffset.x + 10, windowOffset.y + 355, 180, 50 }, "Header");
|
GuiGroupBox((Rectangle){ windowOffset.x + 10, windowOffset.y + 355, 180, 50 }, "Header");
|
||||||
GuiLabel((Rectangle){ windowOffset.x + 25, windowOffset.y + 370, 27, 25 }, "Size:");
|
GuiLabel((Rectangle){ windowOffset.x + 25, windowOffset.y + 370, 27, 25 }, "Size:");
|
||||||
if (GuiValueBox((Rectangle){ windowOffset.x + 55, windowOffset.y + 370, 85, 25 }, &headerSizeValue, 0, 10000, headerSizeEditMode)) headerSizeEditMode = !headerSizeEditMode;
|
if (GuiValueBox((Rectangle){ windowOffset.x + 55, windowOffset.y + 370, 85, 25 }, NULL, &headerSizeValue, 0, 10000, headerSizeEditMode)) headerSizeEditMode = !headerSizeEditMode;
|
||||||
GuiLabel((Rectangle){ windowOffset.x + 145, windowOffset.y + 370, 30, 25 }, "bytes");
|
GuiLabel((Rectangle){ windowOffset.x + 145, windowOffset.y + 370, 30, 25 }, "bytes");
|
||||||
|
|
||||||
btnLoadPressed = GuiButton((Rectangle){ windowOffset.x + 10, windowOffset.y + 420, 180, 30 }, "Import RAW");
|
btnLoadPressed = GuiButton((Rectangle){ windowOffset.x + 10, windowOffset.y + 420, 180, 30 }, "Import RAW");
|
||||||
@ -3,15 +3,15 @@
|
|||||||
* raygui - portable window
|
* raygui - portable window
|
||||||
*
|
*
|
||||||
* DEPENDENCIES:
|
* DEPENDENCIES:
|
||||||
* raylib 2.1 - Windowing/input management and drawing.
|
* raylib 4.0 - Windowing/input management and drawing.
|
||||||
* raygui 2.0 - Immediate-mode GUI controls.
|
* raygui 3.0 - Immediate-mode GUI controls.
|
||||||
*
|
*
|
||||||
* COMPILATION (Windows - MinGW):
|
* COMPILATION (Windows - MinGW):
|
||||||
* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99
|
* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99
|
||||||
*
|
*
|
||||||
* LICENSE: zlib/libpng
|
* LICENSE: zlib/libpng
|
||||||
*
|
*
|
||||||
* Copyright (c) 2019 raylib technologies (@raylibtech)
|
* Copyright (c) 2016-2023 Ramon Santamaria (@raysan5)
|
||||||
*
|
*
|
||||||
**********************************************************************************************/
|
**********************************************************************************************/
|
||||||
|
|
||||||
@ -27,8 +27,8 @@ int main()
|
|||||||
{
|
{
|
||||||
// Initialization
|
// Initialization
|
||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
int screenWidth = 800;
|
const int screenWidth = 800;
|
||||||
int screenHeight = 600;
|
const int screenHeight = 600;
|
||||||
|
|
||||||
SetConfigFlags(FLAG_WINDOW_UNDECORATED);
|
SetConfigFlags(FLAG_WINDOW_UNDECORATED);
|
||||||
InitWindow(screenWidth, screenHeight, "raygui - portable window");
|
InitWindow(screenWidth, screenHeight, "raygui - portable window");
|
||||||
@ -53,7 +53,7 @@ int main()
|
|||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
mousePosition = GetMousePosition();
|
mousePosition = GetMousePosition();
|
||||||
|
|
||||||
if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON))
|
if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON) && !dragWindow)
|
||||||
{
|
{
|
||||||
if (CheckCollisionPointRec(mousePosition, (Rectangle){ 0, 0, screenWidth, 20 }))
|
if (CheckCollisionPointRec(mousePosition, (Rectangle){ 0, 0, screenWidth, 20 }))
|
||||||
{
|
{
|
||||||
@ -66,10 +66,10 @@ int main()
|
|||||||
{
|
{
|
||||||
windowPosition.x += (mousePosition.x - panOffset.x);
|
windowPosition.x += (mousePosition.x - panOffset.x);
|
||||||
windowPosition.y += (mousePosition.y - panOffset.y);
|
windowPosition.y += (mousePosition.y - panOffset.y);
|
||||||
|
|
||||||
|
SetWindowPosition((int)windowPosition.x, (int)windowPosition.y);
|
||||||
|
|
||||||
if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) dragWindow = false;
|
if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) dragWindow = false;
|
||||||
|
|
||||||
SetWindowPosition(windowPosition.x, windowPosition.y);
|
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -79,9 +79,10 @@ int main()
|
|||||||
|
|
||||||
ClearBackground(RAYWHITE);
|
ClearBackground(RAYWHITE);
|
||||||
|
|
||||||
exitWindow = GuiWindowBox((Rectangle){ 0, 0, screenWidth, screenHeight }, "PORTABLE WINDOW");
|
exitWindow = GuiWindowBox((Rectangle){ 0, 0, screenWidth, screenHeight }, "#198# PORTABLE WINDOW");
|
||||||
|
|
||||||
DrawText(FormatText("Mouse Position: [ %.0f, %.0f ]", mousePosition.x, mousePosition.y), 10, 40, 10, DARKGRAY);
|
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();
|
EndDrawing();
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
|
|||||||
867
examples/property_list/dm_property_list.h
Normal file
@ -0,0 +1,867 @@
|
|||||||
|
/*******************************************************************************************
|
||||||
|
*
|
||||||
|
* PropertyListControl v1.0.1 - A custom control that displays a set of properties as a list
|
||||||
|
*
|
||||||
|
* UPDATES: last updated - 10 march 2020 (v1.0.1)
|
||||||
|
* v1.0.1 - Made it work with latest raygui version
|
||||||
|
* - Added `GuiDMSaveProperties()` for saving properties to a text file
|
||||||
|
* - A `GuiDMLoadProperties()` is planed but not implemented yet
|
||||||
|
* - Added a section property that can work as a way to group multiple properties
|
||||||
|
* - Fixed issue with section not having the correct height
|
||||||
|
* v1.0.0 - Initial release
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* MODULE USAGE:
|
||||||
|
* #define GUI_PROPERTY_LIST_IMPLEMENTATION
|
||||||
|
* #include "dm_property_list.h"
|
||||||
|
*
|
||||||
|
* INIT: GuiDMProperty props[] = { // initialize a set of properties first
|
||||||
|
PCOLOR(),
|
||||||
|
PINT(),
|
||||||
|
PFLOAT(),
|
||||||
|
...
|
||||||
|
};
|
||||||
|
* DRAW: GuiDMPropertyList(bounds, props, sizeof(props)/sizeof(props[0]), ...);
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* NOTE: This module also contains 2 extra controls used internally by the property list
|
||||||
|
* - GuiDMValueBox() - a value box that supports displaying float values
|
||||||
|
* - GuiDMSpinner() - a `better` GuiSpinner()
|
||||||
|
*
|
||||||
|
* LICENSE: zlib/libpng
|
||||||
|
*
|
||||||
|
* Copyright (c) 2020 Vlad Adrian (@Demizdor - https://github.com/Demizdor).
|
||||||
|
*
|
||||||
|
**********************************************************************************************/
|
||||||
|
|
||||||
|
#include "raylib.h"
|
||||||
|
|
||||||
|
// WARNING: raygui implementation is expected to be defined before including this header
|
||||||
|
#undef RAYGUI_IMPLEMENTATION
|
||||||
|
#include "../../src/raygui.h"
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef GUI_PROPERTY_LIST_H
|
||||||
|
#define GUI_PROPERTY_LIST_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" { // Prevents name mangling of functions
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
// Defines and Macros
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// A bunch of usefull macros for modifying the flags of each property
|
||||||
|
|
||||||
|
// Set flag `F` of property `P`. `P` must be a pointer!
|
||||||
|
#define PROP_SET_FLAG(P, F) ((P)->flags |= (F))
|
||||||
|
// Clear flag `F` of property `P`. `P` must be a pointer!
|
||||||
|
#define PROP_CLEAR_FLAG(P, F) ((P)->flags &= ~(F))
|
||||||
|
// Toggles flag `F` of property `P`. `P` must be a pointer!
|
||||||
|
#define PROP_TOGGLE_FLAG(P, F) ((P)->flags ^= (F))
|
||||||
|
// Checks if flag `F` of property `P` is set . `P` must be a pointer!
|
||||||
|
#define PROP_CHECK_FLAG(P, F) ((P)->flags & (F))
|
||||||
|
|
||||||
|
// Some usefull macros for creating properties
|
||||||
|
|
||||||
|
// Create a bool property with name `N`, flags `F` and value `V`
|
||||||
|
#define PBOOL(N, F, V) RAYGUI_CLITERAL(GuiDMProperty){N, GUI_PROP_BOOL, F, .value.vbool = V}
|
||||||
|
// Create a int property with name `N`, flags `F` and value `V`
|
||||||
|
#define PINT(N, F, V) RAYGUI_CLITERAL(GuiDMProperty){N, GUI_PROP_INT, F, .value.vint = {V,0,0,1}}
|
||||||
|
// Create a ranged int property within `MIN` and `MAX` with name `N`, flags `F` value `V`.
|
||||||
|
// Pressing the spinner buttons will increase/decrease the value by `S`.
|
||||||
|
#define PINT_RANGE(N, F, V, S, MIN, MAX) RAYGUI_CLITERAL(GuiDMProperty){N, GUI_PROP_INT, F, .value.vint = {V,MIN,MAX,S}}
|
||||||
|
// Create a float property with name `N`, flags `F` and value `V`
|
||||||
|
#define PFLOAT(N, F, V) RAYGUI_CLITERAL(GuiDMProperty){N, GUI_PROP_FLOAT, F, .value.vfloat = {V,0.f,0.f,1.0f,3}}
|
||||||
|
// Create a ranged float property within `MIN` and `MAX` with name `N`, flags `F` value `V` with `P` decimal digits to show.
|
||||||
|
// Pressing the spinner buttons will increase/decrease the value by `S`.
|
||||||
|
#define PFLOAT_RANGE(N, F, V, S, P, MIN, MAX) RAYGUI_CLITERAL(GuiDMProperty){N, GUI_PROP_FLOAT, F, .value.vfloat = {V,MIN,MAX,S,P}}
|
||||||
|
// Create a text property with name `N`, flags `F` value `V` and max text size `S`
|
||||||
|
#define PTEXT(N, F, V, S) RAYGUI_CLITERAL(GuiDMProperty){N, GUI_PROP_TEXT, F, .value.vtext = {V, S} }
|
||||||
|
// Create a text property with name `N`, flags `F` value `V` and max text size `S`
|
||||||
|
#define PSELECT(N, F, V, A) RAYGUI_CLITERAL(GuiDMProperty){N, GUI_PROP_SELECT, F, .value.vselect = {V, A} }
|
||||||
|
// Create a 2D vector property with name `N`, flags `F` and the `X`, `Y` coordinates
|
||||||
|
#define PVEC2(N, F, X, Y) RAYGUI_CLITERAL(GuiDMProperty){N, GUI_PROP_VECTOR2, F, .value.v2 = {X, Y} }
|
||||||
|
// Create a 3D vector property with name `N`, flags `F` and the `X`, `Y`, `Z` coordinates
|
||||||
|
#define PVEC3(N, F, X, Y, Z) RAYGUI_CLITERAL(GuiDMProperty){N, GUI_PROP_VECTOR3, F, .value.v3 = {X, Y, Z} }
|
||||||
|
// Create a 4D vector property with name `N`, flags `F` and the `X`, `Y`, `Z`, `W` coordinates
|
||||||
|
#define PVEC4(N, F, X, Y, Z, W) RAYGUI_CLITERAL(GuiDMProperty){N, GUI_PROP_VECTOR4, F, .value.v4 = {X, Y, Z, W} }
|
||||||
|
// Create a rectangle property with name `N`, flags `F`, `X`, `Y` coordinates and `W` and `H` size
|
||||||
|
#define PRECT(N, F, X, Y, W, H) RAYGUI_CLITERAL(GuiDMProperty){N, GUI_PROP_RECT, F, .value.vrect = {X, Y, W, H} }
|
||||||
|
// Create a 3D vector property with name `N`, flags `F` and the `R`, `G`, `B`, `A` channel values
|
||||||
|
#define PCOLOR(N, F, R, G, B, A) RAYGUI_CLITERAL(GuiDMProperty){N, GUI_PROP_COLOR, F, .value.vcolor = {R, G, B, A} }
|
||||||
|
// Create a collapsable section named `N` with `F` flags and the next `C` properties as children.
|
||||||
|
// !! A section cannot hold another section as a child !!
|
||||||
|
#define PSECTION(N, F, C) RAYGUI_CLITERAL(GuiDMProperty){N, GUI_PROP_SECTION, F, .value.vsection = (C)}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
// Types and Structures Definition
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
enum GuiDMPropertyTypes {
|
||||||
|
GUI_PROP_BOOL = 0,
|
||||||
|
GUI_PROP_INT,
|
||||||
|
GUI_PROP_FLOAT,
|
||||||
|
GUI_PROP_TEXT,
|
||||||
|
GUI_PROP_SELECT,
|
||||||
|
GUI_PROP_VECTOR2,
|
||||||
|
GUI_PROP_VECTOR3,
|
||||||
|
GUI_PROP_VECTOR4,
|
||||||
|
GUI_PROP_RECT,
|
||||||
|
GUI_PROP_COLOR,
|
||||||
|
GUI_PROP_SECTION,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum GuiDMPropertyFlags {
|
||||||
|
GUI_PFLAG_COLLAPSED = 1 << 0, // is the property expanded or collapsed?
|
||||||
|
GUI_PFLAG_DISABLED = 1 << 1, // is this property disabled or enabled?
|
||||||
|
};
|
||||||
|
|
||||||
|
// Data structure for each property
|
||||||
|
typedef struct {
|
||||||
|
char* name;
|
||||||
|
short type;
|
||||||
|
short flags;
|
||||||
|
union {
|
||||||
|
bool vbool;
|
||||||
|
struct { int val; int min; int max; int step; } vint;
|
||||||
|
struct { float val; float min; float max; float step; int precision; } vfloat;
|
||||||
|
struct { char* val; int size; } vtext;
|
||||||
|
struct { char* val; int active; } vselect;
|
||||||
|
int vsection;
|
||||||
|
Vector2 v2;
|
||||||
|
Vector3 v3;
|
||||||
|
Vector4 v4;
|
||||||
|
Rectangle vrect;
|
||||||
|
Color vcolor;
|
||||||
|
} value;
|
||||||
|
} GuiDMProperty;
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
// Global Variables Definition
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
//...
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
// Module Functions Declaration
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// A more advanced `GuiValueBox()` supporting float/int values with specified `precision`, cursor movements, cut/copy/paste and
|
||||||
|
// other keybord shortcuts. Needed by `GuiDMSpinner()` !!
|
||||||
|
// `precision` should be between 1-7 for float values and 0 for int values (maybe 15 for doubles but that was not tested)
|
||||||
|
// WARNING: The bounds should be set big enough else the text will overflow and things will break
|
||||||
|
// WARNING: Sometimes the last decimal value could differ, this is probably due to rounding
|
||||||
|
double GuiDMValueBox(Rectangle bounds, double value, double minValue, double maxValue, int precision, bool editMode);
|
||||||
|
|
||||||
|
// A more advanced `GuiSpinner()` using `GuiDMValueBox()` for displaying the values.
|
||||||
|
// This was needed because `GuiSpinner()` can't display float values and editing values is somewhat hard.
|
||||||
|
// This is by no means perfect but should be more user friendly than the default control provided by raygui.
|
||||||
|
double GuiDMSpinner(Rectangle bounds, double value, double minValue, double maxValue, double step, int precision, bool editMode);
|
||||||
|
|
||||||
|
// Works just like `GuiListViewEx()` but with an array of properties instead of text.
|
||||||
|
void GuiDMPropertyList(Rectangle bounds, GuiDMProperty* props, int count, int* focus, int* scrollIndex);
|
||||||
|
|
||||||
|
// Handy function to save properties to a file. Returns false on failure or true otherwise.
|
||||||
|
bool GuiDMSaveProperties(const char* file, GuiDMProperty* props, int count);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // GUI_PROPERTY_LIST_H
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************************
|
||||||
|
*
|
||||||
|
* GUI_PROPERTY_LIST_IMPLEMENTATION
|
||||||
|
*
|
||||||
|
************************************************************************************/
|
||||||
|
#if defined(GUI_PROPERTY_LIST_IMPLEMENTATION)
|
||||||
|
|
||||||
|
#include "../../src/raygui.h"
|
||||||
|
|
||||||
|
#include <stdlib.h> // for calloc()
|
||||||
|
#include <string.h> // for memmove(), strlen()
|
||||||
|
#include <stdio.h> // for sscanf(), snprintf()
|
||||||
|
|
||||||
|
#ifndef __cplusplus
|
||||||
|
#if __STDC_VERSION__ >= 199901L
|
||||||
|
#include <stdbool.h> // for bool if >= C99
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
double GuiDMValueBox(Rectangle bounds, double value, double minValue, double maxValue, int precision, bool editMode) {
|
||||||
|
// FIXME: Hope all those `memmove()` functions are correctly used so we won't leak memory or overflow the buffer !!!
|
||||||
|
static int framesCounter = 0; // Required for blinking cursor
|
||||||
|
static int cursor = 0; // Required for tracking the cursor position (only for a single active valuebox)
|
||||||
|
|
||||||
|
enum {cursorTimer = 6, maxChars = 31, textPadding = 2};
|
||||||
|
|
||||||
|
GuiState state = GuiGetState();
|
||||||
|
|
||||||
|
// Make sure value is in range
|
||||||
|
if(maxValue != minValue){
|
||||||
|
if(value < minValue) value = minValue;
|
||||||
|
if(value > maxValue) value = maxValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
char textValue[maxChars + 1] = "\0";
|
||||||
|
snprintf(textValue, maxChars, "%.*f", precision, value); // NOTE: use `snprintf` here so we don't overflow the buffer
|
||||||
|
int len = strlen(textValue);
|
||||||
|
|
||||||
|
bool valueHasChanged = false;
|
||||||
|
|
||||||
|
// Update control
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
if ((state != STATE_DISABLED) && !guiLocked)
|
||||||
|
{
|
||||||
|
if (editMode)
|
||||||
|
{
|
||||||
|
// Make sure cursor position is correct
|
||||||
|
if(cursor > len) cursor = len;
|
||||||
|
if(cursor < 0) cursor = 0;
|
||||||
|
|
||||||
|
state = STATE_PRESSED;
|
||||||
|
framesCounter++;
|
||||||
|
|
||||||
|
if(IsKeyPressed(KEY_RIGHT) || (IsKeyDown(KEY_RIGHT) && (framesCounter%cursorTimer == 0))) {
|
||||||
|
// MOVE CURSOR TO RIGHT
|
||||||
|
++cursor;
|
||||||
|
framesCounter = 0;
|
||||||
|
} else if(IsKeyPressed(KEY_LEFT) || (IsKeyDown(KEY_LEFT) && (framesCounter%cursorTimer == 0))) {
|
||||||
|
// MOVE CURSOR TO LEFT
|
||||||
|
--cursor;
|
||||||
|
framesCounter = 0;
|
||||||
|
} else if (IsKeyPressed(KEY_BACKSPACE) || (IsKeyDown(KEY_BACKSPACE) && (framesCounter%cursorTimer) == 0)) {
|
||||||
|
// HANDLE BACKSPACE
|
||||||
|
if(cursor > 0) {
|
||||||
|
if(textValue[cursor-1] != '.') {
|
||||||
|
if(cursor < len )
|
||||||
|
memmove(&textValue[cursor-1], &textValue[cursor], len-cursor);
|
||||||
|
textValue[len - 1] = '\0';
|
||||||
|
valueHasChanged = true;
|
||||||
|
}
|
||||||
|
--cursor;
|
||||||
|
}
|
||||||
|
framesCounter = 0;
|
||||||
|
} else if (IsKeyPressed(KEY_DELETE) || (IsKeyDown(KEY_DELETE) && (framesCounter%cursorTimer) == 0)) {
|
||||||
|
// HANDLE DEL
|
||||||
|
if(len > 0 && cursor < len && textValue[cursor] != '.') {
|
||||||
|
memmove(&textValue[cursor], &textValue[cursor+1], len-cursor);
|
||||||
|
textValue[len] = '\0';
|
||||||
|
len -= 1;
|
||||||
|
valueHasChanged = true;
|
||||||
|
}
|
||||||
|
} else if (IsKeyPressed(KEY_HOME)) {
|
||||||
|
// MOVE CURSOR TO START
|
||||||
|
cursor = 0;
|
||||||
|
} else if (IsKeyPressed(KEY_END)) {
|
||||||
|
// MOVE CURSOR TO END
|
||||||
|
cursor = len;
|
||||||
|
} else if (IsKeyDown(KEY_LEFT_CONTROL) && IsKeyPressed(KEY_C)) {
|
||||||
|
// COPY
|
||||||
|
SetClipboardText(textValue);
|
||||||
|
} else if (IsKeyDown(KEY_LEFT_CONTROL) && IsKeyPressed(KEY_X)) {
|
||||||
|
// CUT
|
||||||
|
SetClipboardText(textValue);
|
||||||
|
textValue[0] = '\0';
|
||||||
|
cursor = len = 0;
|
||||||
|
value = 0.0; // set it to 0 and pretend the value didn't change
|
||||||
|
} else if (IsKeyDown(KEY_LEFT_CONTROL) && IsKeyPressed(KEY_V)) {
|
||||||
|
// PASTE
|
||||||
|
const char* clip = GetClipboardText();
|
||||||
|
int clipLen = strlen(clip);
|
||||||
|
clipLen = clipLen > maxChars ? maxChars : clipLen;
|
||||||
|
memcpy(textValue, clip, clipLen);
|
||||||
|
len = clipLen;
|
||||||
|
textValue[len] = '\0';
|
||||||
|
valueHasChanged = true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// HANDLE KEY PRESS
|
||||||
|
int key = GetKeyPressed();
|
||||||
|
if( ((len < maxChars) && (key >= 48) && (key <= 57)) || (key == 46) || (key == 45) ) // only allow 0..9, minus(-) and dot(.)
|
||||||
|
{
|
||||||
|
if(precision != 0 && cursor < len) { // when we have decimals we can't insert at the end
|
||||||
|
memmove(&textValue[cursor], &textValue[cursor-1], len+1-cursor);
|
||||||
|
textValue[len+1] = '\0';
|
||||||
|
textValue[cursor] = (char)key;
|
||||||
|
cursor++;
|
||||||
|
valueHasChanged = true;
|
||||||
|
}
|
||||||
|
else if(precision == 0) {
|
||||||
|
if(cursor < len) memmove(&textValue[cursor], &textValue[cursor-1], len+1-cursor);
|
||||||
|
len += 1;
|
||||||
|
textValue[len+1] = '\0';
|
||||||
|
textValue[cursor] = (char)key;
|
||||||
|
cursor++;
|
||||||
|
valueHasChanged = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Make sure cursor position is correct
|
||||||
|
if(cursor > len) cursor = len;
|
||||||
|
if(cursor < 0) cursor = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (CheckCollisionPointRec(GetMousePosition(), bounds))
|
||||||
|
{
|
||||||
|
state = STATE_FOCUSED;
|
||||||
|
if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) framesCounter = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Draw control
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
DrawRectangleLinesEx(bounds, GuiGetStyle(VALUEBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(VALUEBOX, BORDER + (state*3))), guiAlpha));
|
||||||
|
|
||||||
|
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);
|
||||||
|
if(textWidth > textBounds.width) textBounds.width = textWidth;
|
||||||
|
|
||||||
|
if (state == STATE_PRESSED)
|
||||||
|
{
|
||||||
|
DrawRectangle(bounds.x + GuiGetStyle(VALUEBOX, BORDER_WIDTH), bounds.y + GuiGetStyle(VALUEBOX, BORDER_WIDTH), bounds.width - 2*GuiGetStyle(VALUEBOX, BORDER_WIDTH), bounds.height - 2*GuiGetStyle(VALUEBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(VALUEBOX, BASE_COLOR_PRESSED)), guiAlpha));
|
||||||
|
|
||||||
|
// Draw blinking cursor
|
||||||
|
// NOTE: ValueBox internal text is always centered
|
||||||
|
if (editMode && ((framesCounter/20)%2 == 0)) {
|
||||||
|
// Measure text until the cursor
|
||||||
|
int textWidthCursor = -2;
|
||||||
|
if(cursor > 0) {
|
||||||
|
char c = textValue[cursor];
|
||||||
|
textValue[cursor] = '\0';
|
||||||
|
textWidthCursor = GetTextWidth(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));
|
||||||
|
DrawRectangle(bounds.x + textWidthCursor + (int)((bounds.width - textWidth - textPadding)/2.0f) + 2, bounds.y + 2*GuiGetStyle(VALUEBOX, BORDER_WIDTH), 1, bounds.height - 4*GuiGetStyle(VALUEBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(VALUEBOX, BORDER_COLOR_PRESSED)), guiAlpha));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (state == STATE_DISABLED)
|
||||||
|
{
|
||||||
|
DrawRectangle(bounds.x + GuiGetStyle(VALUEBOX, BORDER_WIDTH), bounds.y + GuiGetStyle(VALUEBOX, BORDER_WIDTH), bounds.width - 2*GuiGetStyle(VALUEBOX, BORDER_WIDTH), bounds.height - 2*GuiGetStyle(VALUEBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(VALUEBOX, BASE_COLOR_DISABLED)), guiAlpha));
|
||||||
|
}
|
||||||
|
|
||||||
|
GuiDrawText(textValue, textBounds, TEXT_ALIGN_CENTER, Fade(GetColor(GuiGetStyle(VALUEBOX, TEXT + (state*3))), guiAlpha));
|
||||||
|
|
||||||
|
value = valueHasChanged ? strtod(textValue, NULL) : value;
|
||||||
|
|
||||||
|
// Make sure value is in range
|
||||||
|
if(maxValue != minValue){
|
||||||
|
if(value < minValue) value = minValue;
|
||||||
|
if(value > maxValue) value = maxValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
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 };
|
||||||
|
|
||||||
|
// Update control
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
if ((state != STATE_DISABLED) && !guiLocked)
|
||||||
|
{
|
||||||
|
Vector2 mousePoint = GetMousePosition();
|
||||||
|
|
||||||
|
// Check spinner state
|
||||||
|
if (CheckCollisionPointRec(mousePoint, bounds))
|
||||||
|
{
|
||||||
|
if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) state = STATE_PRESSED;
|
||||||
|
else state = STATE_FOCUSED;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
// Draw control
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
// Draw value selector custom buttons
|
||||||
|
// 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, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER);
|
||||||
|
|
||||||
|
#if defined(RAYGUI_SUPPORT_RICONS)
|
||||||
|
if (GuiButton(leftButtonBound, GuiIconText(RICON_ARROW_LEFT_FILL, NULL))) value -= step;
|
||||||
|
if (GuiButton(rightButtonBound, GuiIconText(RICON_ARROW_RIGHT_FILL, NULL))) value += step;
|
||||||
|
#else
|
||||||
|
if (GuiButton(leftButtonBound, "<")) value -= step;
|
||||||
|
if (GuiButton(rightButtonBound, ">")) value += step;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
GuiSetStyle(BUTTON, TEXT_ALIGNMENT, tempTextAlign);
|
||||||
|
GuiSetStyle(BUTTON, BORDER_WIDTH, tempBorderWidth);
|
||||||
|
|
||||||
|
value = GuiDMValueBox(spinner, value, minValue, maxValue, precision, editMode);
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void GuiDMPropertyList(Rectangle bounds, GuiDMProperty* props, int count, int* focus, int* scrollIndex) {
|
||||||
|
#ifdef RAYGUI_SUPPORT_RICONS
|
||||||
|
#define PROPERTY_COLLAPSED_ICON "#120#"
|
||||||
|
#define PROPERTY_EXPANDED_ICON "#121#"
|
||||||
|
#else
|
||||||
|
#define PROPERTY_COLLAPSED_ICON "+"
|
||||||
|
#define PROPERTY_EXPANDED_ICON "-"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define PROPERTY_PADDING 6
|
||||||
|
#define PROPERTY_ICON_SIZE 16
|
||||||
|
#define PROPERTY_DECIMAL_DIGITS 3 //how many digits to show (used only for the vector properties)
|
||||||
|
|
||||||
|
// NOTE: Using ListView style for everything !!
|
||||||
|
GuiState state = GuiGetState();
|
||||||
|
int propFocused = (focus == NULL)? -1 : *focus;
|
||||||
|
int scroll = *scrollIndex > 0 ? 0 : *scrollIndex; // NOTE: scroll should always be negative or 0
|
||||||
|
|
||||||
|
// Each property occupies a certain number of slots, highly synchronized with the properties enum (GUI_PROP_BOOL ... GUI_PROP_SECTION)
|
||||||
|
// NOTE: If you add a custom property type make sure to add the number of slots it occupies here !!
|
||||||
|
const int propSlots[] = {1,1,1,2,1,3,4,5,5,5,1};
|
||||||
|
|
||||||
|
Rectangle absoluteBounds = {0}; // total bounds for all of the properties (unclipped)
|
||||||
|
// We need to loop over all the properties to get total height so we can see if we need a scrollbar or not
|
||||||
|
for(int p=0; p<count; ++p) {
|
||||||
|
// Calculate height of this property (properties can occupy 1 or more slots)
|
||||||
|
int height = GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT);
|
||||||
|
if(props[p].type < (sizeof(propSlots)/sizeof(propSlots[0]))) {
|
||||||
|
if(!PROP_CHECK_FLAG(&props[p], GUI_PFLAG_COLLAPSED)) height = propSlots[props[p].type]*GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT);
|
||||||
|
if(props[p].type == GUI_PROP_SECTION && (PROP_CHECK_FLAG(&props[p], GUI_PFLAG_COLLAPSED))) p += props[p].value.vsection; // skip slots for collapsed section
|
||||||
|
}
|
||||||
|
absoluteBounds.height += height+1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if we need a scrollbar and adjust bounds when necesary
|
||||||
|
bool useScrollBar = absoluteBounds.height > bounds.height - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH) ? true : false;
|
||||||
|
if(!useScrollBar && scroll != 0) scroll = 0; // make sure scroll is 0 when there's no scrollbar
|
||||||
|
|
||||||
|
Rectangle scrollBarBounds = {bounds.x + GuiGetStyle(LISTVIEW, BORDER_WIDTH), bounds.y + GuiGetStyle(LISTVIEW, BORDER_WIDTH),
|
||||||
|
GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH), bounds.height - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH)};
|
||||||
|
|
||||||
|
absoluteBounds.x = bounds.x + GuiGetStyle(LISTVIEW, LIST_ITEMS_SPACING) + GuiGetStyle(DEFAULT, BORDER_WIDTH);
|
||||||
|
absoluteBounds.y = bounds.y + GuiGetStyle(LISTVIEW, LIST_ITEMS_SPACING) + GuiGetStyle(DEFAULT, BORDER_WIDTH) + scroll;
|
||||||
|
absoluteBounds.width = bounds.width - 2*(GuiGetStyle(LISTVIEW, LIST_ITEMS_SPACING) + GuiGetStyle(DEFAULT, BORDER_WIDTH));
|
||||||
|
|
||||||
|
if(useScrollBar) {
|
||||||
|
if(GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE)
|
||||||
|
absoluteBounds.x += GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH); // scrollbar is on the LEFT, adjust bounds
|
||||||
|
else
|
||||||
|
scrollBarBounds.x = bounds.x + bounds.width - GuiGetStyle(LISTVIEW, BORDER_WIDTH) - GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH); // scrollbar is on the RIGHT
|
||||||
|
absoluteBounds.width -= GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH); // adjust width to fit the scrollbar
|
||||||
|
}
|
||||||
|
|
||||||
|
int maxScroll = absoluteBounds.height + 2*(GuiGetStyle(LISTVIEW, LIST_ITEMS_SPACING) + GuiGetStyle(DEFAULT, BORDER_WIDTH))-bounds.height;
|
||||||
|
|
||||||
|
// Update control
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
Vector2 mousePos = GetMousePosition();
|
||||||
|
// NOTE: most of the update code is actually done in the draw control section
|
||||||
|
if ((state != STATE_DISABLED) && !guiLocked) {
|
||||||
|
if(!CheckCollisionPointRec(mousePos, bounds)) {
|
||||||
|
propFocused = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (useScrollBar)
|
||||||
|
{
|
||||||
|
int wheelMove = GetMouseWheelMove();
|
||||||
|
scroll += wheelMove*count;
|
||||||
|
if(-scroll > maxScroll) scroll = -maxScroll;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
// Draw control
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
DrawRectangleRec(bounds, Fade(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)), guiAlpha) ); // Draw background
|
||||||
|
DrawRectangleLinesEx(bounds, GuiGetStyle(DEFAULT, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER + state*3)), guiAlpha)); // Draw border
|
||||||
|
|
||||||
|
BeginScissorMode(absoluteBounds.x, bounds.y + GuiGetStyle(DEFAULT, BORDER_WIDTH), absoluteBounds.width, bounds.height - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH));
|
||||||
|
int currentHeight = 0;
|
||||||
|
for(int p=0; p<count; ++p)
|
||||||
|
{
|
||||||
|
int height = GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT);
|
||||||
|
if(props[p].type < (sizeof(propSlots)/sizeof(propSlots[0])) && !PROP_CHECK_FLAG(&props[p], GUI_PFLAG_COLLAPSED) )
|
||||||
|
height = propSlots[props[p].type]*GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT); // get property height based on how many slots it occupies
|
||||||
|
|
||||||
|
// Even with scissor mode on, draw only properties that we can see (comment out both BeginScissorMode() / EndScissorMode() to see this)
|
||||||
|
if(absoluteBounds.y + currentHeight + height >= bounds.y && absoluteBounds.y + currentHeight <= bounds.y + bounds.height)
|
||||||
|
{
|
||||||
|
Rectangle propBounds = {absoluteBounds.x, absoluteBounds.y + currentHeight, absoluteBounds.width, height};
|
||||||
|
Color textColor = Fade(GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_NORMAL)), guiAlpha);
|
||||||
|
int propState = STATE_NORMAL;
|
||||||
|
|
||||||
|
// Get the state of this property and do some initial drawing
|
||||||
|
if(PROP_CHECK_FLAG(&props[p], GUI_PFLAG_DISABLED)) {
|
||||||
|
propState = STATE_DISABLED;
|
||||||
|
propBounds.height += 1;
|
||||||
|
DrawRectangleRec(propBounds, Fade(GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_DISABLED)), guiAlpha));
|
||||||
|
propBounds.height -= 1;
|
||||||
|
textColor = Fade(GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_DISABLED)), guiAlpha);
|
||||||
|
} else {
|
||||||
|
if(CheckCollisionPointRec(mousePos, propBounds) && !guiLocked) {
|
||||||
|
if(IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) {
|
||||||
|
propState = STATE_PRESSED;
|
||||||
|
//DrawRectangleRec(propRect, Fade(GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_PRESSED)), guiAlpha));
|
||||||
|
textColor = Fade(GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_PRESSED)), guiAlpha);
|
||||||
|
} else {
|
||||||
|
propState = STATE_FOCUSED;
|
||||||
|
propFocused = p;
|
||||||
|
//DrawRectangleRec(propRect, Fade(GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_FOCUSED)), guiAlpha));
|
||||||
|
textColor = Fade(GetColor(GuiGetStyle(LISTVIEW, TEXT_COLOR_FOCUSED)), guiAlpha);
|
||||||
|
}
|
||||||
|
} else propState = STATE_NORMAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(propState == STATE_DISABLED) GuiSetState(propState);
|
||||||
|
switch(props[p].type)
|
||||||
|
{
|
||||||
|
case GUI_PROP_BOOL: {
|
||||||
|
// 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);
|
||||||
|
if(propState == STATE_PRESSED) props[p].value.vbool = !props[p].value.vbool; // toggle the property value when clicked
|
||||||
|
|
||||||
|
// 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);
|
||||||
|
if(!locked) GuiUnlock(); // only unlock when needed
|
||||||
|
} break;
|
||||||
|
|
||||||
|
case GUI_PROP_INT:
|
||||||
|
// 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.vint.val = GuiDMSpinner((Rectangle){propBounds.x+propBounds.width/2, propBounds.y + 1, propBounds.width/2, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) - 2},
|
||||||
|
props[p].value.vint.val, props[p].value.vint.min, props[p].value.vint.max, props[p].value.vint.step, 0, (propState == STATE_FOCUSED) );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GUI_PROP_FLOAT:
|
||||||
|
// 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.vfloat.val = GuiDMSpinner((Rectangle){propBounds.x+propBounds.width/2, propBounds.y + 1, propBounds.width/2, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) - 2},
|
||||||
|
props[p].value.vfloat.val, props[p].value.vfloat.min, props[p].value.vfloat.max, props[p].value.vfloat.step, props[p].value.vfloat.precision, (propState == STATE_FOCUSED) );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GUI_PROP_TEXT: {
|
||||||
|
Rectangle titleBounds = { propBounds.x, propBounds.y, propBounds.width, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) };
|
||||||
|
// Collapse/Expand property on click
|
||||||
|
if((propState == STATE_PRESSED) && CheckCollisionPointRec(mousePos, titleBounds))
|
||||||
|
PROP_TOGGLE_FLAG(&props[p], GUI_PFLAG_COLLAPSED);
|
||||||
|
|
||||||
|
// draw property name
|
||||||
|
GuiDrawText(PROP_CHECK_FLAG(&props[p], GUI_PFLAG_COLLAPSED) ? PROPERTY_COLLAPSED_ICON : PROPERTY_EXPANDED_ICON, titleBounds, TEXT_ALIGN_LEFT, textColor);
|
||||||
|
GuiDrawText(props[p].name, (Rectangle){propBounds.x+PROPERTY_ICON_SIZE+PROPERTY_PADDING, propBounds.y, propBounds.width-PROPERTY_ICON_SIZE-PROPERTY_PADDING, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)}, TEXT_ALIGN_LEFT, textColor);
|
||||||
|
GuiDrawText(TextFormat("%i/%i", strlen(props[p].value.vtext.val), props[p].value.vtext.size), (Rectangle){propBounds.x+propBounds.width/2, propBounds.y + 1, propBounds.width/2, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) - 2}, TEXT_ALIGN_LEFT, textColor);
|
||||||
|
|
||||||
|
// draw property value
|
||||||
|
if(!PROP_CHECK_FLAG(&props[p], GUI_PFLAG_COLLAPSED))
|
||||||
|
GuiTextBox((Rectangle){propBounds.x, propBounds.y + GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)+1, propBounds.width, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)-2}, props[p].value.vtext.val, props[p].value.vtext.size, (propState == STATE_FOCUSED));
|
||||||
|
} break;
|
||||||
|
|
||||||
|
case GUI_PROP_SELECT: {
|
||||||
|
// TODO: Create a custom dropdownbox control instead of using the raygui combobox
|
||||||
|
// 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
|
||||||
|
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: {
|
||||||
|
Rectangle titleBounds = { propBounds.x, propBounds.y, propBounds.width, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) };
|
||||||
|
// Collapse/Expand property on click
|
||||||
|
if((propState == STATE_PRESSED) && CheckCollisionPointRec(mousePos, titleBounds))
|
||||||
|
PROP_TOGGLE_FLAG(&props[p], GUI_PFLAG_COLLAPSED);
|
||||||
|
|
||||||
|
const char* fmt = "";
|
||||||
|
if(props[p].type == GUI_PROP_VECTOR2) fmt = TextFormat("[%.0f, %.0f]", props[p].value.v2.x, props[p].value.v2.y);
|
||||||
|
else if(props[p].type == GUI_PROP_VECTOR3) fmt = TextFormat("[%.0f, %.0f, %.0f]", props[p].value.v3.x, props[p].value.v3.y, props[p].value.v3.z);
|
||||||
|
else fmt = TextFormat("[%.0f, %.0f, %.0f, %.0f]", props[p].value.v4.x, props[p].value.v4.y, props[p].value.v4.z, props[p].value.v4.w);
|
||||||
|
|
||||||
|
// draw property name
|
||||||
|
GuiDrawText(PROP_CHECK_FLAG(&props[p], GUI_PFLAG_COLLAPSED) ? PROPERTY_COLLAPSED_ICON : PROPERTY_EXPANDED_ICON, titleBounds, TEXT_ALIGN_LEFT, textColor);
|
||||||
|
GuiDrawText(props[p].name, (Rectangle){propBounds.x+PROPERTY_ICON_SIZE+PROPERTY_PADDING, propBounds.y, propBounds.width-PROPERTY_ICON_SIZE-PROPERTY_PADDING, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)}, TEXT_ALIGN_LEFT, textColor);
|
||||||
|
GuiDrawText(fmt, (Rectangle){propBounds.x+propBounds.width/2, propBounds.y + 1, propBounds.width/2, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) - 2}, TEXT_ALIGN_LEFT, textColor);
|
||||||
|
|
||||||
|
// 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 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) );
|
||||||
|
slotBounds.y += GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT);
|
||||||
|
lblBounds.y = valBounds.y = slotBounds.y;
|
||||||
|
GuiDrawText("Y", lblBounds, TEXT_ALIGN_LEFT, textColor);
|
||||||
|
props[p].value.v2.y = GuiDMSpinner(valBounds, props[p].value.v2.y, 0.0, 0.0, 1.0, PROPERTY_DECIMAL_DIGITS, (propState == STATE_FOCUSED) && CheckCollisionPointRec(mousePos, slotBounds) );
|
||||||
|
slotBounds.y += GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT);
|
||||||
|
lblBounds.y = valBounds.y = slotBounds.y;
|
||||||
|
if(props[p].type >= GUI_PROP_VECTOR3) {
|
||||||
|
GuiDrawText("Z", lblBounds, TEXT_ALIGN_LEFT, textColor);
|
||||||
|
props[p].value.v3.z = GuiDMSpinner(valBounds, props[p].value.v3.z, 0.0, 0.0, 1.0, PROPERTY_DECIMAL_DIGITS, (propState == STATE_FOCUSED) && CheckCollisionPointRec(mousePos, slotBounds) );
|
||||||
|
slotBounds.y += GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT);
|
||||||
|
lblBounds.y = valBounds.y = slotBounds.y;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(props[p].type >= GUI_PROP_VECTOR4) {
|
||||||
|
GuiDrawText("W", lblBounds, TEXT_ALIGN_LEFT, textColor);
|
||||||
|
props[p].value.v4.w = GuiDMSpinner(valBounds, props[p].value.v4.w, 0.0, 0.0, 1.0, PROPERTY_DECIMAL_DIGITS, (propState == STATE_FOCUSED) && CheckCollisionPointRec(mousePos, slotBounds) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} break;
|
||||||
|
|
||||||
|
case GUI_PROP_RECT:{
|
||||||
|
Rectangle titleBounds = { propBounds.x, propBounds.y, propBounds.width, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) };
|
||||||
|
// Collapse/Expand property on click
|
||||||
|
if((propState == STATE_PRESSED) && CheckCollisionPointRec(mousePos, titleBounds))
|
||||||
|
PROP_TOGGLE_FLAG(&props[p], GUI_PFLAG_COLLAPSED);
|
||||||
|
|
||||||
|
// draw property name
|
||||||
|
GuiDrawText(PROP_CHECK_FLAG(&props[p], GUI_PFLAG_COLLAPSED) ? PROPERTY_COLLAPSED_ICON : PROPERTY_EXPANDED_ICON, titleBounds, TEXT_ALIGN_LEFT, textColor);
|
||||||
|
GuiDrawText(props[p].name, (Rectangle){propBounds.x+PROPERTY_ICON_SIZE+PROPERTY_PADDING, propBounds.y, propBounds.width-PROPERTY_ICON_SIZE-PROPERTY_PADDING, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)}, TEXT_ALIGN_LEFT, textColor);
|
||||||
|
GuiDrawText(TextFormat("[%.0f, %.0f, %.0f, %.0f]", props[p].value.vrect.x, props[p].value.vrect.y, props[p].value.vrect.width, props[p].value.vrect.height),
|
||||||
|
(Rectangle){propBounds.x+propBounds.width/2, propBounds.y + 1, propBounds.width/2, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) - 2}, TEXT_ALIGN_LEFT, textColor);
|
||||||
|
|
||||||
|
// 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 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) );
|
||||||
|
slotBounds.y += GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT);
|
||||||
|
lblBounds.y = valBounds.y = slotBounds.y;
|
||||||
|
GuiDrawText("Y", lblBounds, TEXT_ALIGN_LEFT, textColor);
|
||||||
|
props[p].value.vrect.y = GuiDMSpinner(valBounds, props[p].value.vrect.y, 0.0, 0.0, 1.0, 0, (propState == STATE_FOCUSED) && CheckCollisionPointRec(mousePos, slotBounds) );
|
||||||
|
slotBounds.y += GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT);
|
||||||
|
lblBounds.y = valBounds.y = slotBounds.y;
|
||||||
|
GuiDrawText("Width", lblBounds, TEXT_ALIGN_LEFT, textColor);
|
||||||
|
props[p].value.vrect.width = GuiDMSpinner(valBounds, props[p].value.vrect.width, 0.0, 0.0, 1.0, 0, (propState == STATE_FOCUSED) && CheckCollisionPointRec(mousePos, slotBounds) );
|
||||||
|
slotBounds.y += GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT);
|
||||||
|
lblBounds.y = valBounds.y = slotBounds.y;
|
||||||
|
GuiDrawText("Height", lblBounds, TEXT_ALIGN_LEFT, textColor);
|
||||||
|
props[p].value.vrect.height = GuiDMSpinner(valBounds, props[p].value.vrect.height, 0.0, 0.0, 1.0, 0, (propState == STATE_FOCUSED) && CheckCollisionPointRec(mousePos, slotBounds) );
|
||||||
|
}
|
||||||
|
} break;
|
||||||
|
|
||||||
|
|
||||||
|
case GUI_PROP_COLOR: {
|
||||||
|
Rectangle titleBounds = { propBounds.x, propBounds.y, propBounds.width, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) };
|
||||||
|
// Collapse/Expand property on click
|
||||||
|
if((propState == STATE_PRESSED) && CheckCollisionPointRec(mousePos, titleBounds))
|
||||||
|
PROP_TOGGLE_FLAG(&props[p], GUI_PFLAG_COLLAPSED);
|
||||||
|
|
||||||
|
// draw property name
|
||||||
|
GuiDrawText(PROP_CHECK_FLAG(&props[p], GUI_PFLAG_COLLAPSED) ? PROPERTY_COLLAPSED_ICON : PROPERTY_EXPANDED_ICON, titleBounds, TEXT_ALIGN_LEFT, textColor);
|
||||||
|
GuiDrawText(props[p].name, (Rectangle){propBounds.x+PROPERTY_ICON_SIZE+PROPERTY_PADDING, propBounds.y+1, propBounds.width-PROPERTY_ICON_SIZE-PROPERTY_PADDING, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)-2}, TEXT_ALIGN_LEFT, textColor);
|
||||||
|
DrawLineEx( (Vector2){propBounds.x+propBounds.width/2, propBounds.y + GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) - 5}, (Vector2){propBounds.x+propBounds.width, propBounds.y + GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) - 5}, 6.0f, props[p].value.vcolor);
|
||||||
|
const char* fmt = TextFormat("#%02X%02X%02X%02X", props[p].value.vcolor.r, props[p].value.vcolor.g, props[p].value.vcolor.b, props[p].value.vcolor.a);
|
||||||
|
char clip[10] = "\0";
|
||||||
|
memcpy(clip, fmt, 10*sizeof(char)); // copy to temporary buffer since we can't be sure when TextFormat() will be called again and our text will be overwritten
|
||||||
|
GuiDrawText(fmt, (Rectangle){propBounds.x+propBounds.width/2, propBounds.y + 1, propBounds.width/2, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) - 2}, TEXT_ALIGN_LEFT, textColor);
|
||||||
|
|
||||||
|
// 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 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
|
||||||
|
// save current scrollbar style
|
||||||
|
int tmpSliderPadding = GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING);
|
||||||
|
int tmpPadding = GuiGetStyle(SCROLLBAR, SCROLL_PADDING);
|
||||||
|
int tmpBorder = GuiGetStyle(SCROLLBAR, BORDER_WIDTH);
|
||||||
|
int tmpSliderSize = GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE);
|
||||||
|
int tmpArrows = GuiGetStyle(SCROLLBAR, ARROWS_VISIBLE);
|
||||||
|
Color tmpBG1 = GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_DISABLED));
|
||||||
|
// set a custom scrollbar style
|
||||||
|
GuiSetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING, 3);
|
||||||
|
GuiSetStyle(SCROLLBAR, SCROLL_PADDING, 10);
|
||||||
|
GuiSetStyle(SCROLLBAR, BORDER_WIDTH, 0);
|
||||||
|
GuiSetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE, 6);
|
||||||
|
GuiSetStyle(SCROLLBAR, ARROWS_VISIBLE, 0);
|
||||||
|
GuiSetStyle(DEFAULT, BORDER_COLOR_DISABLED, GuiGetStyle(DEFAULT, BACKGROUND_COLOR)); // disable scrollbar background
|
||||||
|
|
||||||
|
GuiDrawText("R", lblBounds, TEXT_ALIGN_LEFT, textColor);
|
||||||
|
props[p].value.vcolor.r = GuiDMValueBox(valBounds, props[p].value.vcolor.r, 0.0, 255.0, 0, (propState == STATE_FOCUSED) && CheckCollisionPointRec(mousePos, slotBounds) );
|
||||||
|
if(sbarBounds.width > GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)-2)
|
||||||
|
props[p].value.vcolor.r = GuiScrollBar(sbarBounds, props[p].value.vcolor.r, 0, 255);
|
||||||
|
slotBounds.y += GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT);
|
||||||
|
lblBounds.y = valBounds.y = sbarBounds.y = slotBounds.y;
|
||||||
|
|
||||||
|
GuiDrawText("G", lblBounds, TEXT_ALIGN_LEFT, textColor);
|
||||||
|
props[p].value.vcolor.g = GuiDMValueBox(valBounds, props[p].value.vcolor.g, 0.0, 255.0, 0, (propState == STATE_FOCUSED) && CheckCollisionPointRec(mousePos, slotBounds) );
|
||||||
|
if(sbarBounds.width > GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)-2)
|
||||||
|
props[p].value.vcolor.g = GuiScrollBar(sbarBounds, props[p].value.vcolor.g, 0, 255);
|
||||||
|
slotBounds.y += GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT);
|
||||||
|
lblBounds.y = valBounds.y = sbarBounds.y = slotBounds.y;
|
||||||
|
|
||||||
|
GuiDrawText("B", lblBounds, TEXT_ALIGN_LEFT, textColor);
|
||||||
|
props[p].value.vcolor.b = GuiDMValueBox(valBounds, props[p].value.vcolor.b, 0.0, 255.0, 0, (propState == STATE_FOCUSED) && CheckCollisionPointRec(mousePos, slotBounds) );
|
||||||
|
if(sbarBounds.width > GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)-2)
|
||||||
|
props[p].value.vcolor.b = GuiScrollBar(sbarBounds, props[p].value.vcolor.b, 0, 255);
|
||||||
|
slotBounds.y += GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT);
|
||||||
|
lblBounds.y = valBounds.y = sbarBounds.y = slotBounds.y;
|
||||||
|
|
||||||
|
GuiDrawText("A", lblBounds, TEXT_ALIGN_LEFT, textColor);
|
||||||
|
props[p].value.vcolor.a = GuiDMValueBox(valBounds, props[p].value.vcolor.a, 0.0, 255.0, 0, (propState == STATE_FOCUSED) && CheckCollisionPointRec(mousePos, slotBounds) );
|
||||||
|
if(sbarBounds.width > GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)-2)
|
||||||
|
props[p].value.vcolor.a = GuiScrollBar(sbarBounds, props[p].value.vcolor.a, 0, 255);
|
||||||
|
|
||||||
|
// load saved scrollbar style
|
||||||
|
GuiSetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING, tmpSliderPadding);
|
||||||
|
GuiSetStyle(SCROLLBAR, SCROLL_PADDING, tmpPadding);
|
||||||
|
GuiSetStyle(SCROLLBAR, BORDER_WIDTH, tmpBorder);
|
||||||
|
GuiSetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE, tmpSliderSize);
|
||||||
|
GuiSetStyle(SCROLLBAR, ARROWS_VISIBLE, tmpArrows);
|
||||||
|
GuiSetStyle(DEFAULT, BORDER_COLOR_DISABLED, ColorToInt(tmpBG1));
|
||||||
|
}
|
||||||
|
|
||||||
|
// support COPY/PASTE (need to do this here since GuiDMValueBox() also has COPY/PASTE so we need to overwrite it)
|
||||||
|
if((propState == STATE_FOCUSED)) {
|
||||||
|
if(IsKeyDown(KEY_LEFT_CONTROL) && IsKeyPressed(KEY_C))
|
||||||
|
SetClipboardText(clip);
|
||||||
|
else if(IsKeyDown(KEY_LEFT_CONTROL) && IsKeyPressed(KEY_V)){
|
||||||
|
unsigned int a = props[p].value.vcolor.a, r = props[p].value.vcolor.r, g=props[p].value.vcolor.g, b=props[p].value.vcolor.b;
|
||||||
|
sscanf(GetClipboardText(), "#%02X%02X%02X%02X", &r, &g, &b, &a);
|
||||||
|
props[p].value.vcolor.r=r; props[p].value.vcolor.g=g; props[p].value.vcolor.b=b; props[p].value.vcolor.a=a;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} break;
|
||||||
|
|
||||||
|
case GUI_PROP_SECTION: {
|
||||||
|
Rectangle titleBounds = { propBounds.x, propBounds.y, propBounds.width, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) };
|
||||||
|
// Collapse/Expand section on click
|
||||||
|
if( (propState == STATE_PRESSED) && CheckCollisionPointRec(mousePos, titleBounds) )
|
||||||
|
PROP_TOGGLE_FLAG(&props[p], GUI_PFLAG_COLLAPSED);
|
||||||
|
|
||||||
|
if(!PROP_CHECK_FLAG(&props[p], GUI_PFLAG_COLLAPSED)) {
|
||||||
|
GuiDrawText(PROPERTY_EXPANDED_ICON, titleBounds, TEXT_ALIGN_LEFT, textColor);
|
||||||
|
GuiDrawText(props[p].name, (Rectangle){propBounds.x+PROPERTY_ICON_SIZE+PROPERTY_PADDING, propBounds.y, propBounds.width-PROPERTY_ICON_SIZE-PROPERTY_PADDING, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)}, TEXT_ALIGN_CENTER, textColor);
|
||||||
|
} else {
|
||||||
|
GuiDrawText(PROPERTY_COLLAPSED_ICON, titleBounds, TEXT_ALIGN_LEFT, textColor);
|
||||||
|
GuiDrawText(TextFormat("%s [%i]", props[p].name, props[p].value.vsection), (Rectangle){propBounds.x+PROPERTY_ICON_SIZE+PROPERTY_PADDING, propBounds.y, propBounds.width-PROPERTY_ICON_SIZE-PROPERTY_PADDING, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)}, TEXT_ALIGN_CENTER, textColor);
|
||||||
|
}
|
||||||
|
} break;
|
||||||
|
|
||||||
|
|
||||||
|
// NOTE: Add your custom property here !!
|
||||||
|
default: {
|
||||||
|
// 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 type
|
||||||
|
GuiDrawText(TextFormat("TYPE %i", props[p].type), (Rectangle){propBounds.x+propBounds.width/2, propBounds.y + 1, propBounds.width/2, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) - 2}, TEXT_ALIGN_LEFT, textColor);
|
||||||
|
} break;
|
||||||
|
|
||||||
|
} // end of switch()
|
||||||
|
|
||||||
|
GuiSetState(state);
|
||||||
|
}
|
||||||
|
|
||||||
|
currentHeight += height + 1;
|
||||||
|
|
||||||
|
// Skip collapsed section. Don't put this code inside the switch !!
|
||||||
|
if(props[p].type == GUI_PROP_SECTION && (PROP_CHECK_FLAG(&props[p], GUI_PFLAG_COLLAPSED))) p += props[p].value.vsection;
|
||||||
|
} // end for
|
||||||
|
EndScissorMode();
|
||||||
|
|
||||||
|
if(useScrollBar) {
|
||||||
|
scroll = -GuiScrollBar(scrollBarBounds, -scroll, 0, maxScroll);
|
||||||
|
*scrollIndex = scroll;
|
||||||
|
}
|
||||||
|
//--------------------------------------------------------------------
|
||||||
|
|
||||||
|
if(focus != NULL) *focus = propFocused;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool GuiDMSaveProperties(const char* file, GuiDMProperty* props, int count) {
|
||||||
|
if(file == NULL || props == NULL) return false;
|
||||||
|
if(count == 0) return true;
|
||||||
|
|
||||||
|
FILE* f = fopen(file, "w");
|
||||||
|
if(f == NULL) return false;
|
||||||
|
|
||||||
|
// write header
|
||||||
|
fprintf(f, "#\n# Property types:\n"
|
||||||
|
"# b <name> <flags> <value> // Bool\n"
|
||||||
|
"# i <name> <flags> <value> <min> <max> <step> // Int\n"
|
||||||
|
"# f <name> <flags> <value> <min> <max> <step> <precision> // Float\n"
|
||||||
|
"# t <name> <flags> <value> <edit_length> // Text\n"
|
||||||
|
"# l <name> <flags> <value> <active> // Select\n"
|
||||||
|
"# g <name> <flags> <value> // Section (Group)\n"
|
||||||
|
"# v2 <name> <flags> <x> <y> // Vector 2D\n"
|
||||||
|
"# v3 <name> <flags> <x> <y> <z> // Vector 3D\n"
|
||||||
|
"# v4 <name> <flags> <x> <y> <z> <w> // Vector 4D\n"
|
||||||
|
"# r <name> <flags> <x> <y> <width> <height> // Rectangle\n"
|
||||||
|
"# c <name> <flags> <r> <g> <b> <a> // Color\n"
|
||||||
|
"#\n\n");
|
||||||
|
for(int p=0; p<count; ++p)
|
||||||
|
{
|
||||||
|
switch(props[p].type) {
|
||||||
|
case GUI_PROP_BOOL: fprintf(f, "b %s %i %i\n", props[p].name, (int)props[p].flags, (int)props[p].value.vbool);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GUI_PROP_INT: fprintf(f, "i %s %i %i %i %i %i\n", props[p].name, (int)props[p].flags, props[p].value.vint.val, props[p].value.vint.min,
|
||||||
|
props[p].value.vint.max, props[p].value.vint.step);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GUI_PROP_FLOAT: fprintf(f, "f %s %i %f %f %f %f %i\n", props[p].name, (int)props[p].flags, props[p].value.vfloat.val, props[p].value.vfloat.min,
|
||||||
|
props[p].value.vfloat.max, props[p].value.vfloat.step, props[p].value.vfloat.precision);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GUI_PROP_TEXT: fprintf(f, "t %s %i %s %i\n", props[p].name, (int)props[p].flags, props[p].value.vtext.val, props[p].value.vtext.size);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GUI_PROP_SELECT: fprintf(f, "l %s %i %s %i\n", props[p].name, (int)props[p].flags, props[p].value.vselect.val, props[p].value.vselect.active);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GUI_PROP_SECTION: fprintf(f, "g %s %i %i\n", props[p].name, (int)props[p].flags, props[p].value.vsection);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GUI_PROP_VECTOR2: fprintf(f, "v2 %s %i %f %f\n", props[p].name, (int)props[p].flags, props[p].value.v2.x, props[p].value.v2.y);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GUI_PROP_VECTOR3: fprintf(f, "v3 %s %i %f %f %f\n", props[p].name, (int)props[p].flags, props[p].value.v3.x, props[p].value.v3.y, props[p].value.v3.z);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GUI_PROP_VECTOR4: fprintf(f, "v4 %s %i %f %f %f %f\n", props[p].name, (int)props[p].flags, props[p].value.v4.x, props[p].value.v4.y,
|
||||||
|
props[p].value.v4.z, props[p].value.v4.w);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GUI_PROP_RECT: fprintf(f, "r %s %i %i %i %i %i\n", props[p].name, (int)props[p].flags, (int)props[p].value.vrect.x, (int)props[p].value.vrect.y,
|
||||||
|
(int)props[p].value.vrect.width, (int)props[p].value.vrect.height);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GUI_PROP_COLOR: fprintf(f, "c %s %i %i %i %i %i\n", props[p].name, (int)props[p].flags, props[p].value.vcolor.r, props[p].value.vcolor.g,
|
||||||
|
props[p].value.vcolor.b, props[p].value.vcolor.a);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose(f);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // GUI_PROPERTY_LIST_IMPLEMENTATION
|
||||||
101
examples/property_list/property_list.c
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
/*******************************************************************************************
|
||||||
|
*
|
||||||
|
* raygui - custom property list control
|
||||||
|
*
|
||||||
|
* DEPENDENCIES:
|
||||||
|
* raylib 4.0 - Windowing/input management and drawing.
|
||||||
|
* raygui 3.0 - Immediate-mode GUI controls.
|
||||||
|
*
|
||||||
|
* COMPILATION (Windows - MinGW):
|
||||||
|
* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99
|
||||||
|
*
|
||||||
|
* LICENSE: zlib/libpng
|
||||||
|
*
|
||||||
|
* Copyright (c) 2020-2023 Vlad Adrian (@Demizdor) and Ramon Santamaria (@raysan5)
|
||||||
|
*
|
||||||
|
**********************************************************************************************/
|
||||||
|
|
||||||
|
#include "raylib.h"
|
||||||
|
|
||||||
|
#define RAYGUI_IMPLEMENTATION
|
||||||
|
#include "../../src/raygui.h"
|
||||||
|
|
||||||
|
#undef RAYGUI_IMPLEMENTATION // Avoid including raygui implementation again
|
||||||
|
|
||||||
|
#define GUI_PROPERTY_LIST_IMPLEMENTATION
|
||||||
|
#include "dm_property_list.h"
|
||||||
|
|
||||||
|
#define SIZEOF(A) (sizeof(A)/sizeof(A[0]))
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------------
|
||||||
|
// Program main entry point
|
||||||
|
//------------------------------------------------------------------------------------
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
// Initialization
|
||||||
|
//---------------------------------------------------------------------------------------
|
||||||
|
const int screenWidth = 800;
|
||||||
|
const int screenHeight = 450;
|
||||||
|
|
||||||
|
InitWindow(screenWidth, screenHeight, "raygui - property list");
|
||||||
|
|
||||||
|
GuiDMProperty prop[] = {
|
||||||
|
PBOOL("Bool", 0, true),
|
||||||
|
PSECTION("#102#SECTION", 0, 2),
|
||||||
|
PINT("Int", 0, 123),
|
||||||
|
PFLOAT("Float", 0, 0.99f),
|
||||||
|
PTEXT("Text", 0, (char*)&(char[30]){"Hello!"}, 30),
|
||||||
|
PSELECT("Select", 0, "ONE;TWO;THREE;FOUR", 0),
|
||||||
|
PINT_RANGE("Int Range", 0, 32, 1, 0, 100),
|
||||||
|
PRECT("Rect", 0, 0, 0, 100, 200),
|
||||||
|
PVEC2("Vec2", 0, 20, 20),
|
||||||
|
PVEC3("Vec3", 0, 12, 13, 14),
|
||||||
|
PVEC4("Vec4", 0, 12, 13, 14, 15),
|
||||||
|
PCOLOR("Color", 0, 0, 255, 0, 255),
|
||||||
|
};
|
||||||
|
|
||||||
|
int focus = 0, scroll = 0; // Needed by GuiDMPropertyList()
|
||||||
|
|
||||||
|
GuiLoadStyleDefault();
|
||||||
|
|
||||||
|
// Tweak the default raygui style a bit
|
||||||
|
GuiSetStyle(LISTVIEW, LIST_ITEMS_HEIGHT, 24);
|
||||||
|
GuiSetStyle(LISTVIEW, SCROLLBAR_WIDTH, 12);
|
||||||
|
|
||||||
|
Vector2 gridMouseCell = { 0 };
|
||||||
|
|
||||||
|
SetTargetFPS(60);
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Main game loop
|
||||||
|
while (!WindowShouldClose()) // Detect window close button or ESC key
|
||||||
|
{
|
||||||
|
// Draw
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
BeginDrawing();
|
||||||
|
|
||||||
|
ClearBackground(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)));
|
||||||
|
|
||||||
|
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);
|
||||||
|
|
||||||
|
if (prop[0].value.vbool >= 1)
|
||||||
|
{
|
||||||
|
DrawText(TextFormat("FOCUS:%i | SCROLL:%i | FPS:%i", focus, scroll, GetFPS()), prop[8].value.v2.x, prop[8].value.v2.y, 20, prop[11].value.vcolor);
|
||||||
|
}
|
||||||
|
|
||||||
|
EndDrawing();
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
}
|
||||||
|
|
||||||
|
// De-Initialization
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
GuiDMSaveProperties("test.props", prop, SIZEOF(prop)); // Save properties to `test.props` file at exit
|
||||||
|
|
||||||
|
CloseWindow(); // Close window and OpenGL context
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
27
examples/property_list/test.props
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
#
|
||||||
|
# Property types:
|
||||||
|
# b <name> <flags> <value> // Bool
|
||||||
|
# i <name> <flags> <value> <min> <max> <step> // Int
|
||||||
|
# f <name> <flags> <value> <min> <max> <step> <precision> // Float
|
||||||
|
# t <name> <flags> <value> <edit_length> // Text
|
||||||
|
# l <name> <flags> <value> <active> // Select
|
||||||
|
# g <name> <flags> <value> // Section (Group)
|
||||||
|
# v2 <name> <flags> <x> <y> // Vector 2D
|
||||||
|
# v3 <name> <flags> <x> <y> <z> // Vector 3D
|
||||||
|
# v4 <name> <flags> <x> <y> <z> <w> // Vector 4D
|
||||||
|
# r <name> <flags> <x> <y> <width> <height> // Rectangle
|
||||||
|
# c <name> <flags> <r> <g> <b> <a> // Color
|
||||||
|
#
|
||||||
|
|
||||||
|
b Bool 0 1
|
||||||
|
g #102#SECTION 0 2
|
||||||
|
i Int 0 123 0 0 1
|
||||||
|
f Float 0 0.990000 0.000000 0.000000 1.000000 3
|
||||||
|
t Text 1 Hello! 30
|
||||||
|
l Select 0 ONE;TWO;THREE;FOUR 3
|
||||||
|
i Int Range 0 32 0 100 1
|
||||||
|
r Rect 1 0 0 100 200
|
||||||
|
v2 Vec2 1 20.000000 20.000000
|
||||||
|
v3 Vec3 1 12.000000 13.000000 14.000000
|
||||||
|
v4 Vec4 1 12.000000 13.000000 14.000000 15.000000
|
||||||
|
c Color 1 94 68 197 160
|
||||||
BIN
examples/raygui.ico
Normal file
|
After Width: | Height: | Size: 139 KiB |
27
examples/raygui.rc
Normal 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
|
||||||
@ -6,18 +6,18 @@
|
|||||||
* - GuiScrollPanel()
|
* - GuiScrollPanel()
|
||||||
*
|
*
|
||||||
* DEPENDENCIES:
|
* DEPENDENCIES:
|
||||||
* raylib 2.4 - Windowing/input management and drawing.
|
* raylib 4.0 - Windowing/input management and drawing.
|
||||||
* raygui 2.0 - Immediate-mode GUI controls.
|
* raygui 3.0 - Immediate-mode GUI controls.
|
||||||
*
|
*
|
||||||
* COMPILATION (Windows - MinGW):
|
* COMPILATION (Windows - MinGW):
|
||||||
* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99
|
* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99
|
||||||
*
|
*
|
||||||
* COMPILATION (Linux - gcc):
|
* COMPILATION (Linux - gcc):
|
||||||
* gcc -o $(NAME_PART) $(FILE_NAME) -I../../src -lraylib -std=c99
|
* gcc -o $(NAME_PART) $(FILE_NAME) -I../../src -lraylib -lGL -lm -lpthread -ldl -lrt -lX11 -std=c99
|
||||||
*
|
*
|
||||||
* LICENSE: zlib/libpng
|
* LICENSE: zlib/libpng
|
||||||
*
|
*
|
||||||
* Copyright (c) 2019 Vlad Adrian (@Demizdor) and Ramon Santamaria (@raysan5)
|
* Copyright (c) 2019-2023 Vlad Adrian (@Demizdor) and Ramon Santamaria (@raysan5)
|
||||||
*
|
*
|
||||||
**********************************************************************************************/
|
**********************************************************************************************/
|
||||||
|
|
||||||
@ -40,16 +40,17 @@ int main()
|
|||||||
const int screenHeight = 450;
|
const int screenHeight = 450;
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "raygui - GuiScrollPanel()");
|
InitWindow(screenWidth, screenHeight, "raygui - GuiScrollPanel()");
|
||||||
|
|
||||||
Rectangle panelRec = { 20, 40, 200, 150 };
|
Rectangle panelRec = { 20, 40, 200, 150 };
|
||||||
Rectangle panelContentRec = {0, 0, 340, 340 };
|
Rectangle panelContentRec = {0, 0, 340, 340 };
|
||||||
|
Rectangle panelView = { 0 };
|
||||||
Vector2 panelScroll = { 99, -20 };
|
Vector2 panelScroll = { 99, -20 };
|
||||||
|
|
||||||
bool showContentArea = true;
|
bool showContentArea = true;
|
||||||
|
|
||||||
SetTargetFPS(60);
|
SetTargetFPS(60);
|
||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
|
|
||||||
// Main game loop
|
// Main game loop
|
||||||
while (!WindowShouldClose()) // Detect window close button or ESC key
|
while (!WindowShouldClose()) // Detect window close button or ESC key
|
||||||
{
|
{
|
||||||
@ -61,26 +62,26 @@ int main()
|
|||||||
// Draw
|
// Draw
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
BeginDrawing();
|
BeginDrawing();
|
||||||
|
|
||||||
ClearBackground(RAYWHITE);
|
ClearBackground(RAYWHITE);
|
||||||
|
|
||||||
DrawText(TextFormat("[%f, %f]", panelScroll.x, panelScroll.y), 4, 4, 20, RED);
|
DrawText(TextFormat("[%f, %f]", panelScroll.x, panelScroll.y), 4, 4, 20, RED);
|
||||||
|
|
||||||
Rectangle view = GuiScrollPanel(panelRec, panelContentRec, &panelScroll);
|
GuiScrollPanel(panelRec, NULL, panelContentRec, &panelScroll, &panelView);
|
||||||
|
|
||||||
BeginScissorMode(view.x, view.y, view.width, view.height);
|
BeginScissorMode(panelView.x, panelView.y, panelView.width, panelView.height);
|
||||||
GuiGrid((Rectangle){panelRec.x + panelScroll.x, panelRec.y + panelScroll.y, panelContentRec.width, panelContentRec.height}, 16, 3);
|
GuiGrid((Rectangle){panelRec.x + panelScroll.x, panelRec.y + panelScroll.y, panelContentRec.width, panelContentRec.height}, NULL, 16, 3, NULL);
|
||||||
EndScissorMode();
|
EndScissorMode();
|
||||||
|
|
||||||
if (showContentArea) DrawRectangle(panelRec.x + panelScroll.x, panelRec.y + panelScroll.y, panelContentRec.width, panelContentRec.height, Fade(RED, 0.1));
|
if (showContentArea) DrawRectangle(panelRec.x + panelScroll.x, panelRec.y + panelScroll.y, panelContentRec.width, panelContentRec.height, Fade(RED, 0.1));
|
||||||
|
|
||||||
DrawStyleEditControls();
|
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", panelContentRec.width, 1, 600, true);
|
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", panelContentRec.height, 1, 400, true);
|
GuiSliderBar((Rectangle){ 590, 410, 145, 15 }, "HEIGHT", TextFormat("%i", (int)panelContentRec.height), &panelContentRec.height, 1, 400);
|
||||||
|
|
||||||
EndDrawing();
|
EndDrawing();
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
}
|
}
|
||||||
@ -99,52 +100,54 @@ static void DrawStyleEditControls(void)
|
|||||||
// ScrollPanel style controls
|
// ScrollPanel style controls
|
||||||
//----------------------------------------------------------
|
//----------------------------------------------------------
|
||||||
GuiGroupBox((Rectangle){ 550, 170, 220, 205 }, "SCROLLBAR STYLE");
|
GuiGroupBox((Rectangle){ 550, 170, 220, 205 }, "SCROLLBAR STYLE");
|
||||||
|
|
||||||
int style = GuiGetStyle(SCROLLBAR, BORDER_WIDTH);
|
int style = GuiGetStyle(SCROLLBAR, BORDER_WIDTH);
|
||||||
GuiLabel((Rectangle){ 555, 195, 110, 10 }, "BORDER_WIDTH");
|
GuiLabel((Rectangle){ 555, 195, 110, 10 }, "BORDER_WIDTH");
|
||||||
GuiSpinner((Rectangle){ 670, 190, 90, 20 }, &style, 0, 6, false);
|
GuiSpinner((Rectangle){ 670, 190, 90, 20 }, NULL, &style, 0, 6, false);
|
||||||
GuiSetStyle(SCROLLBAR, BORDER_WIDTH, style);
|
GuiSetStyle(SCROLLBAR, BORDER_WIDTH, style);
|
||||||
|
|
||||||
style = GuiGetStyle(SCROLLBAR, ARROWS_SIZE);
|
style = GuiGetStyle(SCROLLBAR, ARROWS_SIZE);
|
||||||
GuiLabel((Rectangle){ 555, 220, 110, 10 }, "ARROWS_SIZE");
|
GuiLabel((Rectangle){ 555, 220, 110, 10 }, "ARROWS_SIZE");
|
||||||
GuiSpinner((Rectangle){ 670, 215, 90, 20 }, &style, 4, 14, false);
|
GuiSpinner((Rectangle){ 670, 215, 90, 20 }, NULL, &style, 4, 14, false);
|
||||||
GuiSetStyle(SCROLLBAR, ARROWS_SIZE, style);
|
GuiSetStyle(SCROLLBAR, ARROWS_SIZE, style);
|
||||||
|
|
||||||
style = GuiGetStyle(SCROLLBAR, INNER_PADDING);
|
style = GuiGetStyle(SCROLLBAR, SLIDER_PADDING);
|
||||||
GuiLabel((Rectangle){ 555, 245, 110, 10 }, "INNER_PADDING");
|
GuiLabel((Rectangle){ 555, 245, 110, 10 }, "SLIDER_PADDING");
|
||||||
GuiSpinner((Rectangle){ 670, 240, 90, 20 }, &style, 0, 14, false);
|
GuiSpinner((Rectangle){ 670, 240, 90, 20 }, NULL, &style, 0, 14, false);
|
||||||
GuiSetStyle(SCROLLBAR, INNER_PADDING, style);
|
GuiSetStyle(SCROLLBAR, SLIDER_PADDING, style);
|
||||||
|
|
||||||
style = GuiCheckBox((Rectangle){ 565, 280, 20, 20 }, "ARROWS_VISIBLE", GuiGetStyle(SCROLLBAR, ARROWS_VISIBLE));
|
bool scrollBarArrows = GuiGetStyle(SCROLLBAR, ARROWS_VISIBLE);
|
||||||
GuiSetStyle(SCROLLBAR, ARROWS_VISIBLE, style);
|
GuiCheckBox((Rectangle){ 565, 280, 20, 20 }, "ARROWS_VISIBLE", &scrollBarArrows);
|
||||||
|
GuiSetStyle(SCROLLBAR, ARROWS_VISIBLE, scrollBarArrows);
|
||||||
|
|
||||||
style = GuiGetStyle(SCROLLBAR, SLIDER_PADDING);
|
style = GuiGetStyle(SCROLLBAR, SLIDER_PADDING);
|
||||||
GuiLabel((Rectangle){ 555, 325, 110, 10 }, "SLIDER_PADDING");
|
GuiLabel((Rectangle){ 555, 325, 110, 10 }, "SLIDER_PADDING");
|
||||||
GuiSpinner((Rectangle){ 670, 320, 90, 20 }, &style, 0, 14, false);
|
GuiSpinner((Rectangle){ 670, 320, 90, 20 }, NULL, &style, 0, 14, false);
|
||||||
GuiSetStyle(SCROLLBAR, SLIDER_PADDING, style);
|
GuiSetStyle(SCROLLBAR, SLIDER_PADDING, style);
|
||||||
|
|
||||||
style = GuiGetStyle(SCROLLBAR, SLIDER_SIZE);
|
style = GuiGetStyle(SCROLLBAR, SLIDER_WIDTH);
|
||||||
GuiLabel((Rectangle){ 555, 350, 110, 10 }, "SLIDER_SIZE");
|
GuiLabel((Rectangle){ 555, 350, 110, 10 }, "SLIDER_WIDTH");
|
||||||
GuiSpinner((Rectangle){ 670, 345, 90, 20 }, &style, 2, 100, false);
|
GuiSpinner((Rectangle){ 670, 345, 90, 20 }, NULL, &style, 2, 100, false);
|
||||||
GuiSetStyle(SCROLLBAR, SLIDER_SIZE, style);
|
GuiSetStyle(SCROLLBAR, SLIDER_WIDTH, style);
|
||||||
|
|
||||||
const char *text = GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE? "SCROLLBAR: LEFT" : "SCROLLBAR: RIGHT";
|
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));
|
bool toggleScrollBarSide = GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE);
|
||||||
GuiSetStyle(LISTVIEW, SCROLLBAR_SIDE, style);
|
GuiToggle((Rectangle){ 560, 110, 200, 35 }, text, &toggleScrollBarSide);
|
||||||
|
GuiSetStyle(LISTVIEW, SCROLLBAR_SIDE, toggleScrollBarSide);
|
||||||
//----------------------------------------------------------
|
//----------------------------------------------------------
|
||||||
|
|
||||||
// ScrollBar style controls
|
// ScrollBar style controls
|
||||||
//----------------------------------------------------------
|
//----------------------------------------------------------
|
||||||
GuiGroupBox((Rectangle){ 550, 20, 220, 135 }, "SCROLLPANEL STYLE");
|
GuiGroupBox((Rectangle){ 550, 20, 220, 135 }, "SCROLLPANEL STYLE");
|
||||||
|
|
||||||
style = GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH);
|
style = GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH);
|
||||||
GuiLabel((Rectangle){ 555, 35, 110, 10 }, "SCROLLBAR_WIDTH");
|
GuiLabel((Rectangle){ 555, 35, 110, 10 }, "SCROLLBAR_WIDTH");
|
||||||
GuiSpinner((Rectangle){ 670, 30, 90, 20 }, &style, 6, 30, false);
|
GuiSpinner((Rectangle){ 670, 30, 90, 20 }, NULL, &style, 6, 30, false);
|
||||||
GuiSetStyle(LISTVIEW, SCROLLBAR_WIDTH, style);
|
GuiSetStyle(LISTVIEW, SCROLLBAR_WIDTH, style);
|
||||||
|
|
||||||
style = GuiGetStyle(DEFAULT, BORDER_WIDTH);
|
style = GuiGetStyle(DEFAULT, BORDER_WIDTH);
|
||||||
GuiLabel((Rectangle){ 555, 60, 110, 10 }, "BORDER_WIDTH");
|
GuiLabel((Rectangle){ 555, 60, 110, 10 }, "BORDER_WIDTH");
|
||||||
GuiSpinner((Rectangle){ 670, 55, 90, 20 }, &style, 0, 20, false);
|
GuiSpinner((Rectangle){ 670, 55, 90, 20 }, NULL, &style, 0, 20, false);
|
||||||
GuiSetStyle(DEFAULT, BORDER_WIDTH, style);
|
GuiSetStyle(DEFAULT, BORDER_WIDTH, style);
|
||||||
//----------------------------------------------------------
|
//----------------------------------------------------------
|
||||||
}
|
}
|
||||||
181
examples/standalone/raygui_custom_backend.h
Normal file
@ -0,0 +1,181 @@
|
|||||||
|
/*******************************************************************************************
|
||||||
|
*
|
||||||
|
* raygui - Standalone mode custom backend
|
||||||
|
*
|
||||||
|
* Just edit this file to include your custom implementation to your graphic API
|
||||||
|
*
|
||||||
|
* LICENSE: <your_license>
|
||||||
|
*
|
||||||
|
* Copyright (c) <year> <developer_name>
|
||||||
|
*
|
||||||
|
**********************************************************************************************/
|
||||||
|
|
||||||
|
//#include "my_cool_graphic_api.h"
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
// Defines and Macros
|
||||||
|
// TODO: Define input keys required by raygui
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
#define KEY_RIGHT 262
|
||||||
|
#define KEY_LEFT 263
|
||||||
|
#define KEY_DOWN 264
|
||||||
|
#define KEY_UP 265
|
||||||
|
#define KEY_BACKSPACE 259
|
||||||
|
#define KEY_ENTER 257
|
||||||
|
#define MOUSE_LEFT_BUTTON 0
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
// Types and Structures Definition
|
||||||
|
// TODO: Define required structures, maybe Font/Texture2D should be defined here?
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
// ...
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
// Global Variables Definition
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
// ...
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
// Module Functions Definition
|
||||||
|
// TODO: Define all raygui required functions (previously provided by raylib)
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------
|
||||||
|
// Input required functions
|
||||||
|
//-------------------------------------------------------------------------------
|
||||||
|
static Vector2 GetMousePosition(void)
|
||||||
|
{
|
||||||
|
Vector2 position = { 0 };
|
||||||
|
|
||||||
|
// TODO: Mouse position
|
||||||
|
|
||||||
|
return position;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int GetMouseWheelMove(void)
|
||||||
|
{
|
||||||
|
// TODO: Mouse wheel movement variation, reseted every frame
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool IsMouseButtonDown(int button)
|
||||||
|
{
|
||||||
|
// TODO: Return true while mouse button [0..2] is being down
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool IsMouseButtonPressed(int button)
|
||||||
|
{
|
||||||
|
// TODO: Return true when mouse button [0..2] has been pressed: up->down
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool IsMouseButtonReleased(int button)
|
||||||
|
{
|
||||||
|
// TODO: Return true when mouse button [0..2] has been released: down->up
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool IsKeyDown(int key)
|
||||||
|
{
|
||||||
|
// TODO: Return true while key is being down
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool IsKeyPressed(int key)
|
||||||
|
{
|
||||||
|
// TODO: Return true when key has been pressed: up->down
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// USED IN: GuiTextBox(), GuiValueBox()
|
||||||
|
static int GetKeyPressed(void)
|
||||||
|
{
|
||||||
|
// TODO: Return last key pressed (up->down) in the frame
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------
|
||||||
|
// Drawing required functions
|
||||||
|
//-------------------------------------------------------------------------------
|
||||||
|
static void DrawRectangle(int x, int y, int width, int height, Color color)
|
||||||
|
{
|
||||||
|
// TODO: Draw rectangle on the screen
|
||||||
|
}
|
||||||
|
|
||||||
|
// USED IN: GuiColorPicker()
|
||||||
|
static void DrawRectangleGradientEx(Rectangle rec, Color col1, Color col2, Color col3, Color col4)
|
||||||
|
{
|
||||||
|
// TODO: Draw rectangle with gradients (4 vertex colors) on the screen
|
||||||
|
}
|
||||||
|
|
||||||
|
// USED IN: GuiDropdownBox(), GuiScrollBar()
|
||||||
|
static void DrawTriangle(Vector2 v1, Vector2 v2, Vector2 v3, Color color)
|
||||||
|
{
|
||||||
|
// TODO: Draw triangle on the screen, required for arrows
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------
|
||||||
|
// Text required functions
|
||||||
|
//-------------------------------------------------------------------------------
|
||||||
|
// USED IN: GuiLoadStyleDefault()
|
||||||
|
static Font GetFontDefault(void)
|
||||||
|
{
|
||||||
|
Font font = { 0 };
|
||||||
|
|
||||||
|
// TODO: Return default rendering Font for the UI
|
||||||
|
|
||||||
|
return font;
|
||||||
|
}
|
||||||
|
|
||||||
|
// USED IN: GetTextWidth()
|
||||||
|
static Vector2 MeasureTextEx(Font font, const char *text, float fontSize, float spacing)
|
||||||
|
{
|
||||||
|
Vector2 size = { 0 };
|
||||||
|
|
||||||
|
// TODO: Return text size (width, height) on screen depending on the Font, text, fontSize and spacing
|
||||||
|
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
|
||||||
|
// USED IN: GuiDrawText()
|
||||||
|
static void DrawTextEx(Font font, const char *text, Vector2 position, float fontSize, float spacing, Color tint)
|
||||||
|
{
|
||||||
|
// TODO: Draw text on the screen
|
||||||
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------
|
||||||
|
// GuiLoadStyle() required functions
|
||||||
|
//-------------------------------------------------------------------------------
|
||||||
|
static Font LoadFontEx(const char *fileName, int fontSize, int *fontChars, int glyphCount)
|
||||||
|
{
|
||||||
|
Font font = { 0 };
|
||||||
|
|
||||||
|
// TODO: Load a new font from a file
|
||||||
|
|
||||||
|
return font;
|
||||||
|
}
|
||||||
|
|
||||||
|
static char *LoadText(const char *fileName)
|
||||||
|
{
|
||||||
|
// TODO: Load text file data, used by GuiLoadStyle() to load characters list required on Font generation,
|
||||||
|
// this is a .rgs feature, probably this function is not required in most cases
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static const char *GetDirectoryPath(const char *filePath)
|
||||||
|
{
|
||||||
|
// TODO: Get directory path for .rgs file, required to look for a possible .ttf/.otf font file referenced,
|
||||||
|
// this is a .rgs feature, probably this function is not required in most cases
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
36
examples/standalone/raygui_standalone.c
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
/*******************************************************************************************
|
||||||
|
*
|
||||||
|
* raygui - Standalone mode usage template
|
||||||
|
*
|
||||||
|
* DEPENDENCIES:
|
||||||
|
* raygui 2.6 - Immediate-mode GUI controls.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* LICENSE: zlib/libpng
|
||||||
|
*
|
||||||
|
* Copyright (c) 2020 Ramon Santamaria (@raysan5)
|
||||||
|
*
|
||||||
|
**********************************************************************************************/
|
||||||
|
|
||||||
|
#define RAYGUI_IMPLEMENTATION
|
||||||
|
#define RAYGUI_STANDALONE
|
||||||
|
#include "../../src/raygui.h"
|
||||||
|
|
||||||
|
#include "custom_backend.h"
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------------
|
||||||
|
// Program main entry point
|
||||||
|
//------------------------------------------------------------------------------------
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
// TODO: Initialize your systems (window, graphics, inputs)
|
||||||
|
|
||||||
|
// TODO: Create your game loop
|
||||||
|
{
|
||||||
|
// TODO: Use raygui API
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: De-initialize all resources
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
136
examples/style_selector/style_selector.c
Normal file
@ -0,0 +1,136 @@
|
|||||||
|
/*******************************************************************************************
|
||||||
|
*
|
||||||
|
* raygui - style selector
|
||||||
|
*
|
||||||
|
* DEPENDENCIES:
|
||||||
|
* raylib 4.5 - Windowing/input management and drawing
|
||||||
|
* raygui 3.5 - Immediate-mode GUI controls with custom styling and icons
|
||||||
|
*
|
||||||
|
* COMPILATION (Windows - MinGW):
|
||||||
|
* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99
|
||||||
|
*
|
||||||
|
* LICENSE: zlib/libpng
|
||||||
|
*
|
||||||
|
* Copyright (c) 2016-2023 Ramon Santamaria (@raysan5)
|
||||||
|
*
|
||||||
|
**********************************************************************************************/
|
||||||
|
|
||||||
|
#include "raylib.h"
|
||||||
|
|
||||||
|
#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"
|
||||||
|
|
||||||
|
// 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 <string.h> // Required for: strcpy()
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------------
|
||||||
|
// Program main entry point
|
||||||
|
//------------------------------------------------------------------------------------
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
// Initialization
|
||||||
|
//---------------------------------------------------------------------------------------
|
||||||
|
const int screenWidth = 690;
|
||||||
|
const int screenHeight = 560;
|
||||||
|
|
||||||
|
InitWindow(screenWidth, screenHeight, "raygui - controls test suite");
|
||||||
|
SetExitKey(0);
|
||||||
|
|
||||||
|
// Custom GUI font loading
|
||||||
|
//Font font = LoadFontEx("fonts/custom_font.ttf", 12, 0, 0);
|
||||||
|
//GuiSetFont(font);
|
||||||
|
|
||||||
|
bool exitWindow = false;
|
||||||
|
bool showMessageBox = false;
|
||||||
|
|
||||||
|
char textInput[256] = { 0 };
|
||||||
|
bool showTextInputBox = false;
|
||||||
|
|
||||||
|
char textInputFileName[256] = { 0 };
|
||||||
|
|
||||||
|
// Load default style
|
||||||
|
GuiLoadStyleBluish();
|
||||||
|
int visualStyleActive = 4;
|
||||||
|
int prevVisualStyleActive = 4;
|
||||||
|
|
||||||
|
SetTargetFPS(60);
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Main game loop
|
||||||
|
while (!exitWindow) // Detect window close button or ESC key
|
||||||
|
{
|
||||||
|
// Update
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
exitWindow = WindowShouldClose();
|
||||||
|
|
||||||
|
if (IsKeyPressed(KEY_ESCAPE)) showMessageBox = !showMessageBox;
|
||||||
|
|
||||||
|
if (IsKeyDown(KEY_LEFT_CONTROL) && IsKeyPressed(KEY_S)) showTextInputBox = true;
|
||||||
|
|
||||||
|
if (IsFileDropped())
|
||||||
|
{
|
||||||
|
FilePathList droppedFiles = LoadDroppedFiles();
|
||||||
|
|
||||||
|
if ((droppedFiles.count > 0) && IsFileExtension(droppedFiles.paths[0], ".rgs")) GuiLoadStyle(droppedFiles.paths[0]);
|
||||||
|
|
||||||
|
UnloadDroppedFiles(droppedFiles); // Clear internal buffers
|
||||||
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
|
||||||
|
GuiSetStyle(LABEL, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT);
|
||||||
|
|
||||||
|
prevVisualStyleActive = visualStyleActive;
|
||||||
|
}
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Draw
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
BeginDrawing();
|
||||||
|
|
||||||
|
ClearBackground(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)));
|
||||||
|
|
||||||
|
// Visuals options
|
||||||
|
GuiLabel((Rectangle){ 10, 10, 60, 24 }, "Style:");
|
||||||
|
GuiComboBox((Rectangle){ 60,10, 120, 24 }, "default;Jungle;Lavanda;Dark;Bluish;Cyber;Terminal", &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);
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
EndDrawing();
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
}
|
||||||
|
|
||||||
|
// De-Initialization
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
CloseWindow(); // Close window and OpenGL context
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
354
examples/styles/style_bluish.h
Normal file
@ -0,0 +1,354 @@
|
|||||||
|
//////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// //
|
||||||
|
// 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);
|
||||||
|
}
|
||||||
340
examples/styles/style_cyber.h
Normal file
@ -0,0 +1,340 @@
|
|||||||
|
//////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// //
|
||||||
|
// 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);
|
||||||
|
}
|
||||||
347
examples/styles/style_dark.h
Normal file
@ -0,0 +1,347 @@
|
|||||||
|
//////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// //
|
||||||
|
// 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
|
||||||
|
}
|
||||||
578
examples/styles/style_jungle.h
Normal 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-2023 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
|
||||||
|
}
|
||||||
607
examples/styles/style_lavanda.h
Normal 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-2023 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
|
||||||
|
}
|
||||||
333
examples/styles/style_terminal.h
Normal file
@ -0,0 +1,333 @@
|
|||||||
|
//////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// //
|
||||||
|
// 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);
|
||||||
|
}
|
||||||
@ -1,314 +0,0 @@
|
|||||||
/*******************************************************************************************
|
|
||||||
*
|
|
||||||
* raygui - Controls test
|
|
||||||
*
|
|
||||||
* TEST CONTROLS:
|
|
||||||
* - GuiScrollPanel()
|
|
||||||
*
|
|
||||||
* DEPENDENCIES:
|
|
||||||
* raylib 2.5 - Windowing/input management and drawing.
|
|
||||||
* raygui 2.0 - Immediate-mode GUI controls.
|
|
||||||
*
|
|
||||||
* COMPILATION (Windows - MinGW):
|
|
||||||
* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99
|
|
||||||
*
|
|
||||||
* COMPILATION (Linux - gcc):
|
|
||||||
* gcc -o $(NAME_PART) $(FILE_NAME) -I../../src -lraylib -std=c99
|
|
||||||
*
|
|
||||||
* LICENSE: zlib/libpng
|
|
||||||
*
|
|
||||||
* Copyright (c) 2019 Vlad Adrian (@Demizdor) and Ramon Santamaria (@raysan5)
|
|
||||||
*
|
|
||||||
**********************************************************************************************/
|
|
||||||
|
|
||||||
#include "raylib.h"
|
|
||||||
|
|
||||||
#define RAYGUI_IMPLEMENTATION
|
|
||||||
#define RAYGUI_SUPPORT_RICONS
|
|
||||||
#define RAYGUI_TEXTBOX_EXTENDED
|
|
||||||
#include "../../src/raygui.h"
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <limits.h>
|
|
||||||
|
|
||||||
// -----------------
|
|
||||||
// DEFINES
|
|
||||||
// -----------------
|
|
||||||
#define SIZEOF(A) (sizeof(A)/sizeof(A[0])) // Get number of elements in array `A`. Total size of `A` should be known at compile time.
|
|
||||||
#define SCREEN_WIDTH 800
|
|
||||||
#define SCREEN_HEIGHT 450
|
|
||||||
#define TEXTBOX_MAX_HEIGHT 55
|
|
||||||
|
|
||||||
// -----------------
|
|
||||||
// GLOBAL VARIABLES
|
|
||||||
// -----------------
|
|
||||||
char text0[92] = "Lorem ipsum dolor sit amet, \xE7\x8C\xBF\xE3\x82\x82\xE6\x9C\xA8\xE3\x81\x8B\xE3\x82\x89\xE8\x90\xBD\xE3\x81\xA1\xE3\x82\x8B consectetur adipiscing elit"; // including some hiragana/kanji
|
|
||||||
char text1[128] = "Here's another, much bigger textbox." "\xf4\xa1\xa1\xff" " TIP: try COPY/PASTE ;)"; // including some invalid UTF8
|
|
||||||
int spinnerValue = 0, boxValue = 0;
|
|
||||||
int textboxActive = 0; // Keeps traks of the active textbox
|
|
||||||
|
|
||||||
struct {
|
|
||||||
Rectangle bounds;
|
|
||||||
int maxWidth;
|
|
||||||
} textbox[] = { // Params for each of the 4 textboxes
|
|
||||||
{ .bounds = (Rectangle){20,60,160,25}, .maxWidth = 160 },
|
|
||||||
{ .bounds = (Rectangle){220,60,300,25}, .maxWidth = 300 },
|
|
||||||
{ .bounds = (Rectangle){565,60,95,25}, .maxWidth = 95 },
|
|
||||||
{ .bounds = (Rectangle){680,60,100,25}, .maxWidth = 100 }
|
|
||||||
};
|
|
||||||
|
|
||||||
int fontSize = 10, fontSpacing = 1, padding = 0, border = 0;
|
|
||||||
Font font = {0};
|
|
||||||
Color colorBG = {0}, colorFG = {0}, *colorSelected = NULL;
|
|
||||||
|
|
||||||
bool showMenu = false;
|
|
||||||
Rectangle menuRect = {0};
|
|
||||||
Texture2D pattern = {0};
|
|
||||||
|
|
||||||
// -----------------
|
|
||||||
// FUNCTIONS
|
|
||||||
// -----------------
|
|
||||||
|
|
||||||
// Draw a color button, if clicked return true.
|
|
||||||
bool ColorButton(Rectangle bounds, Color color)
|
|
||||||
{
|
|
||||||
Rectangle body = {bounds.x + 2, bounds.y + 2, bounds.width - 4, bounds.height - 4};
|
|
||||||
bool pressed = false;
|
|
||||||
|
|
||||||
// Update control
|
|
||||||
Vector2 mouse = GetMousePosition();
|
|
||||||
if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON) && CheckCollisionPointRec(mouse, bounds)) pressed = true;
|
|
||||||
|
|
||||||
// Draw control
|
|
||||||
DrawTexture(pattern, body.x, body.y, WHITE);
|
|
||||||
DrawRectangleRec(body, color);
|
|
||||||
DrawRectangleLinesEx(bounds, 1, BLACK);
|
|
||||||
|
|
||||||
return pressed;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Handles GUI logic
|
|
||||||
void UpdateGUI()
|
|
||||||
{
|
|
||||||
// Check all of the 4 textboxes to get the active textbox
|
|
||||||
for (int i = 0; i < SIZEOF(textbox); i++)
|
|
||||||
{
|
|
||||||
if (GuiTextBoxIsActive(textbox[i].bounds))
|
|
||||||
{
|
|
||||||
textboxActive = i;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Show/Hide the textbox menu
|
|
||||||
Vector2 mouse = GetMousePosition();
|
|
||||||
if ((textboxActive < 2) && !showMenu && CheckCollisionPointRec(mouse, textbox[textboxActive].bounds) && IsMouseButtonPressed(MOUSE_RIGHT_BUTTON))
|
|
||||||
{
|
|
||||||
showMenu = true;
|
|
||||||
menuRect = (Rectangle){mouse.x, mouse.y, 80, 110};
|
|
||||||
}
|
|
||||||
|
|
||||||
// Menu hidding logic
|
|
||||||
if (showMenu && IsMouseButtonPressed(MOUSE_LEFT_BUTTON) && !CheckCollisionPointRec(mouse, menuRect)) showMenu = false;
|
|
||||||
|
|
||||||
// Fonts drag & drop logic
|
|
||||||
if (IsFileDropped())
|
|
||||||
{
|
|
||||||
int count = 0;
|
|
||||||
char **files = GetDroppedFiles(&count);
|
|
||||||
|
|
||||||
if (IsFileExtension(files[0], ".ttf") ||
|
|
||||||
IsFileExtension(files[0], ".otf") ||
|
|
||||||
IsFileExtension(files[0], ".fnt"))
|
|
||||||
{
|
|
||||||
Font fnt = LoadFont(files[0]);
|
|
||||||
|
|
||||||
if (fnt.texture.id != 0)
|
|
||||||
{
|
|
||||||
// Font was loaded, only change font on success
|
|
||||||
GuiFont(fnt);
|
|
||||||
fontSize = fnt.baseSize;
|
|
||||||
|
|
||||||
// Remove old font
|
|
||||||
if (font.texture.id != 0) UnloadFont(font);
|
|
||||||
font = fnt;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ClearDroppedFiles();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Handles GUI drawing
|
|
||||||
void DrawGUI()
|
|
||||||
{
|
|
||||||
// DRAW TEXTBOXES TO TEST
|
|
||||||
// Set custom style for textboxes
|
|
||||||
if (font.texture.id != 0) GuiFont(font); // Use our custom font if valid
|
|
||||||
GuiSetStyle(DEFAULT, TEXT_SIZE, fontSize);
|
|
||||||
GuiSetStyle(DEFAULT, TEXT_SPACING, fontSpacing);
|
|
||||||
GuiSetStyle(TEXTBOX, INNER_PADDING, padding);
|
|
||||||
GuiSetStyle(TEXTBOX, BORDER_WIDTH, border);
|
|
||||||
GuiSetStyle(TEXTBOX, COLOR_SELECTED_BG, ColorToInt(colorBG));
|
|
||||||
GuiSetStyle(TEXTBOX, COLOR_SELECTED_FG, ColorToInt(colorFG));
|
|
||||||
|
|
||||||
// Draw textboxes
|
|
||||||
GuiTextBox(textbox[0].bounds, text0, SIZEOF(text0) - 1, true);
|
|
||||||
GuiTextBox(textbox[1].bounds, text1, SIZEOF(text1) - 1, true);
|
|
||||||
GuiSpinner(textbox[2].bounds, &spinnerValue, INT_MIN, INT_MAX, true);
|
|
||||||
GuiValueBox(textbox[3].bounds, &boxValue, INT_MIN, INT_MAX, true);
|
|
||||||
|
|
||||||
// RESET STYLE TO DEFAULT
|
|
||||||
GuiLoadStyleDefault();
|
|
||||||
GuiFont(GetFontDefault());
|
|
||||||
GuiSetStyle(TEXTBOX, TEXT_ALIGNMENT, GUI_TEXT_ALIGN_CENTER);
|
|
||||||
|
|
||||||
// DRAW HEX VIEW
|
|
||||||
// Convert text to hex representation and draw it on screen
|
|
||||||
char hex[(((textboxActive == 1) ? SIZEOF(text1) : SIZEOF(text0)) +1)*3 + 1];
|
|
||||||
char* text = (textboxActive == 1) ? text1 : text0;
|
|
||||||
int maxSize = (textboxActive == 1) ? SIZEOF(text1) : SIZEOF(text0);
|
|
||||||
for (int i=0, j=0; i < maxSize; ++i, j+=3)
|
|
||||||
{
|
|
||||||
sprintf(&hex[j], "%02Xh ", (char)text[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
int startIdx = 0, endIdx = 0;
|
|
||||||
if (textboxActive < 2)
|
|
||||||
{
|
|
||||||
Vector2 sel = GuiTextBoxGetSelection();
|
|
||||||
startIdx = GuiTextBoxGetByteIndex(text, 0, 0, sel.x);
|
|
||||||
endIdx = GuiTextBoxGetByteIndex(text, 0, 0, sel.x + sel.y);
|
|
||||||
}
|
|
||||||
int len = endIdx - startIdx;
|
|
||||||
DrawTextRecEx(guiFont, hex, (Rectangle){20,95,760,205}, 20, 1, true, BLACK, startIdx*3, len*3, colorFG, colorBG);
|
|
||||||
|
|
||||||
// DISPLAY A MENU ON RIGHT CLICKING A TEXTBOX
|
|
||||||
// draw the menu and handle clicked item
|
|
||||||
if (showMenu)
|
|
||||||
{
|
|
||||||
GuiSetStyle(LISTVIEW, ELEMENTS_HEIGHT, 24); // make items look a little bigger
|
|
||||||
const char *menuItems[] = { "#17# Cut", "#16# Copy", "#18# Paste", "#101# SelectAll" };
|
|
||||||
int enabledItems[] = { textboxActive < 2 ? 1 : 0, textboxActive < 2 ? 1 : 0, GetClipboardText() != NULL, 1 };
|
|
||||||
int active = -1, focus = 0, scroll = 0;
|
|
||||||
|
|
||||||
GuiSetStyle(DEFAULT, TEXT_ALIGNMENT, GUI_TEXT_ALIGN_LEFT); // Fixes visual glitch with other alignments
|
|
||||||
active = GuiListViewEx(menuRect, menuItems, SIZEOF(menuItems), &focus, &scroll, active);
|
|
||||||
|
|
||||||
if (active != -1)
|
|
||||||
{
|
|
||||||
showMenu = false;
|
|
||||||
char *text = (textboxActive == 1) ? text1 : text0;
|
|
||||||
switch(active)
|
|
||||||
{
|
|
||||||
case 0: GuiTextBoxCut(text); break;
|
|
||||||
case 1: GuiTextBoxCopy(text); break;
|
|
||||||
case 2: GuiTextBoxPaste(text, (textboxActive == 1) ? SIZEOF(text1) : SIZEOF(text0)); break;
|
|
||||||
case 3: GuiTextBoxSelectAll(text); break;
|
|
||||||
default: break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// DRAW THE GUI FOR CHANGING THE TEXTBOXES
|
|
||||||
// UI for changing the font size and spacing of all textboxes
|
|
||||||
GuiLine((Rectangle){25,280,750,10}, NULL);
|
|
||||||
GuiGroupBox((Rectangle){20,320,190,100}, GuiIconText(RICON_GEAR, "FONT"));
|
|
||||||
GuiLabel((Rectangle){30,340,60,20}, "Size");
|
|
||||||
GuiSpinner((Rectangle){95,340,100,20},&fontSize, 10, 40, true);
|
|
||||||
GuiLabel((Rectangle){30,380,60,20}, "Spacing");
|
|
||||||
GuiSpinner((Rectangle){95,380,100,20},&fontSpacing, 1, 10, true);
|
|
||||||
|
|
||||||
// UI for changing the style of all textboxes
|
|
||||||
GuiGroupBox((Rectangle){225,320,190,100}, GuiIconText(RICON_COLOR_BUCKET, "STYLE"));
|
|
||||||
GuiLabel((Rectangle){240,340,60,20}, "Padding");
|
|
||||||
GuiSpinner((Rectangle){305,340,100,20},&padding, 2, 30, true);
|
|
||||||
GuiLabel((Rectangle){240,380,60,20}, "Border");
|
|
||||||
GuiSpinner((Rectangle){305,380,100,20},&border, 0, 8, true);
|
|
||||||
|
|
||||||
// UI for changing the width/height of the active textbox
|
|
||||||
bool changed = false;
|
|
||||||
int width = textbox[textboxActive].bounds.width, height = textbox[textboxActive].bounds.height;
|
|
||||||
GuiGroupBox((Rectangle){430,320,175,100}, GuiIconText(RICON_CURSOR_SCALE, "SCALE"));
|
|
||||||
GuiLabel((Rectangle){435,340,55,20}, "Width");
|
|
||||||
if (GuiSpinner((Rectangle){495,340,100,20}, &width, 30, textbox[textboxActive].maxWidth, true)) changed = true;
|
|
||||||
GuiLabel((Rectangle){435,380,55,20}, "Height");
|
|
||||||
if (GuiSpinner((Rectangle){495,380,100,20}, &height, 12, TEXTBOX_MAX_HEIGHT, true)) changed = true;
|
|
||||||
GuiSetStyle(LABEL, TEXT_ALIGNMENT, GUI_TEXT_ALIGN_CENTER);
|
|
||||||
GuiLabel((Rectangle){30,290,740,10}, GuiIconText(RICON_TEXT_T, " DRAG A FONT FILE (*.TTF, *.FNT) ANYWHERE TO CHANGE THE DEFAULT FONT!"));
|
|
||||||
GuiSetStyle(LABEL, TEXT_ALIGNMENT, GUI_TEXT_ALIGN_LEFT);
|
|
||||||
textbox[textboxActive].bounds.y = 85 - height;
|
|
||||||
textbox[textboxActive].bounds.height = height;
|
|
||||||
textbox[textboxActive].bounds.width = width;
|
|
||||||
if (changed) GuiTextBoxSetActive(textbox[textboxActive].bounds);
|
|
||||||
|
|
||||||
// UI for selecting the selected text background and foreground color
|
|
||||||
if (ColorButton((Rectangle){625,320,30,30}, colorFG)) colorSelected = &colorFG;
|
|
||||||
if (ColorButton((Rectangle){625,389,30,30}, colorBG)) colorSelected = &colorBG;
|
|
||||||
*colorSelected = GuiColorPicker((Rectangle){660,320,90,85}, *colorSelected);
|
|
||||||
float alpha = colorSelected->a;
|
|
||||||
GuiSetStyle(SLIDER, TEXT_ALIGNMENT, GUI_TEXT_ALIGN_LEFT); // Slider for the selected color alpha value
|
|
||||||
colorSelected->a = GuiSlider((Rectangle){664,420,100,20}, GuiIconText(RICON_CROP_ALPHA, "Alpha"), alpha, 0.f, 255.f, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------------
|
|
||||||
// Program main entry point
|
|
||||||
//------------------------------------------------------------------------------------
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
// Initialization
|
|
||||||
//---------------------------------------------------------------------------------------
|
|
||||||
const int screenWidth = 800;
|
|
||||||
const int screenHeight = 450;
|
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "raygui - GuiTextBoxEx()");
|
|
||||||
|
|
||||||
// Generate a checked pattern used by the color buttons
|
|
||||||
Image timg = GenImageChecked(26, 26, 5, 5, RAYWHITE, DARKGRAY);
|
|
||||||
pattern = LoadTextureFromImage(timg);
|
|
||||||
UnloadImage(timg);
|
|
||||||
|
|
||||||
// Load initial style
|
|
||||||
GuiLoadStyleDefault();
|
|
||||||
//font = LoadFont("resources/notoCJK.fnt");
|
|
||||||
//GuiFont(font);
|
|
||||||
|
|
||||||
fontSize = GuiGetStyle(DEFAULT, TEXT_SIZE);
|
|
||||||
fontSpacing = GuiGetStyle(DEFAULT, TEXT_SPACING);
|
|
||||||
padding = GuiGetStyle(TEXTBOX, INNER_PADDING);
|
|
||||||
border = GuiGetStyle(TEXTBOX, BORDER_WIDTH);
|
|
||||||
colorFG = GetColor(GuiGetStyle(TEXTBOX, COLOR_SELECTED_FG));
|
|
||||||
colorBG = GetColor(GuiGetStyle(TEXTBOX, COLOR_SELECTED_BG));
|
|
||||||
colorSelected = &colorFG;
|
|
||||||
|
|
||||||
SetTargetFPS(60);
|
|
||||||
//---------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Main game loop
|
|
||||||
while (!WindowShouldClose()) // Detect window close button or ESC key
|
|
||||||
{
|
|
||||||
// Update
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
// TODO: Implement required update logic
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Draw
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
BeginDrawing();
|
|
||||||
|
|
||||||
ClearBackground(RAYWHITE);
|
|
||||||
|
|
||||||
UpdateGUI();
|
|
||||||
DrawGUI();
|
|
||||||
|
|
||||||
EndDrawing();
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
}
|
|
||||||
|
|
||||||
// De-Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
CloseWindow(); // Close window and OpenGL context
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
547
icons/raygui_icons.h
Normal file
@ -0,0 +1,547 @@
|
|||||||
|
//////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// //
|
||||||
|
// raygui Icons exporter v1.1 - Icons data exported as a values array //
|
||||||
|
// //
|
||||||
|
// more info and bugs-report: github.com/raysan5/raygui //
|
||||||
|
// feedback and support: ray[at]raylibtech.com //
|
||||||
|
// //
|
||||||
|
// Copyright (c) 2019-2022 raylib technologies (@raylibtech) //
|
||||||
|
// //
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
// Defines and Macros
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
#define RAYGUI_ICON_SIZE 16 // Size of icons (squared)
|
||||||
|
#define RAYGUI_ICON_MAX_ICONS 256 // Maximum number of icons
|
||||||
|
#define RAYGUI_ICON_MAX_NAME_LENGTH 32 // Maximum length of icon name id
|
||||||
|
|
||||||
|
// Icons data is defined by bit array (every bit represents one pixel)
|
||||||
|
// Those arrays are stored as unsigned int data arrays, so every array
|
||||||
|
// element defines 32 pixels (bits) of information
|
||||||
|
// Number of elemens depend on RAYGUI_ICON_SIZE (by default 16x16 pixels)
|
||||||
|
#define RAYGUI_ICON_DATA_ELEMENTS (RAYGUI_ICON_SIZE*RAYGUI_ICON_SIZE/32)
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
// Icons enumeration
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
typedef enum {
|
||||||
|
ICON_NONE = 0,
|
||||||
|
ICON_FOLDER_FILE_OPEN = 1,
|
||||||
|
ICON_FILE_SAVE_CLASSIC = 2,
|
||||||
|
ICON_FOLDER_OPEN = 3,
|
||||||
|
ICON_FOLDER_SAVE = 4,
|
||||||
|
ICON_FILE_OPEN = 5,
|
||||||
|
ICON_FILE_SAVE = 6,
|
||||||
|
ICON_FILE_EXPORT = 7,
|
||||||
|
ICON_FILE_ADD = 8,
|
||||||
|
ICON_FILE_DELETE = 9,
|
||||||
|
ICON_FILETYPE_TEXT = 10,
|
||||||
|
ICON_FILETYPE_AUDIO = 11,
|
||||||
|
ICON_FILETYPE_IMAGE = 12,
|
||||||
|
ICON_FILETYPE_PLAY = 13,
|
||||||
|
ICON_FILETYPE_VIDEO = 14,
|
||||||
|
ICON_FILETYPE_INFO = 15,
|
||||||
|
ICON_FILE_COPY = 16,
|
||||||
|
ICON_FILE_CUT = 17,
|
||||||
|
ICON_FILE_PASTE = 18,
|
||||||
|
ICON_CURSOR_HAND = 19,
|
||||||
|
ICON_CURSOR_POINTER = 20,
|
||||||
|
ICON_CURSOR_CLASSIC = 21,
|
||||||
|
ICON_PENCIL = 22,
|
||||||
|
ICON_PENCIL_BIG = 23,
|
||||||
|
ICON_BRUSH_CLASSIC = 24,
|
||||||
|
ICON_BRUSH_PAINTER = 25,
|
||||||
|
ICON_WATER_DROP = 26,
|
||||||
|
ICON_COLOR_PICKER = 27,
|
||||||
|
ICON_RUBBER = 28,
|
||||||
|
ICON_COLOR_BUCKET = 29,
|
||||||
|
ICON_TEXT_T = 30,
|
||||||
|
ICON_TEXT_A = 31,
|
||||||
|
ICON_SCALE = 32,
|
||||||
|
ICON_RESIZE = 33,
|
||||||
|
ICON_FILTER_POINT = 34,
|
||||||
|
ICON_FILTER_BILINEAR = 35,
|
||||||
|
ICON_CROP = 36,
|
||||||
|
ICON_CROP_ALPHA = 37,
|
||||||
|
ICON_SQUARE_TOGGLE = 38,
|
||||||
|
ICON_SYMMETRY = 39,
|
||||||
|
ICON_SYMMETRY_HORIZONTAL = 40,
|
||||||
|
ICON_SYMMETRY_VERTICAL = 41,
|
||||||
|
ICON_LENS = 42,
|
||||||
|
ICON_LENS_BIG = 43,
|
||||||
|
ICON_EYE_ON = 44,
|
||||||
|
ICON_EYE_OFF = 45,
|
||||||
|
ICON_FILTER_TOP = 46,
|
||||||
|
ICON_FILTER = 47,
|
||||||
|
ICON_TARGET_POINT = 48,
|
||||||
|
ICON_TARGET_SMALL = 49,
|
||||||
|
ICON_TARGET_BIG = 50,
|
||||||
|
ICON_TARGET_MOVE = 51,
|
||||||
|
ICON_CURSOR_MOVE = 52,
|
||||||
|
ICON_CURSOR_SCALE = 53,
|
||||||
|
ICON_CURSOR_SCALE_RIGHT = 54,
|
||||||
|
ICON_CURSOR_SCALE_LEFT = 55,
|
||||||
|
ICON_UNDO = 56,
|
||||||
|
ICON_REDO = 57,
|
||||||
|
ICON_REREDO = 58,
|
||||||
|
ICON_MUTATE = 59,
|
||||||
|
ICON_ROTATE = 60,
|
||||||
|
ICON_REPEAT = 61,
|
||||||
|
ICON_SHUFFLE = 62,
|
||||||
|
ICON_EMPTYBOX = 63,
|
||||||
|
ICON_TARGET = 64,
|
||||||
|
ICON_TARGET_SMALL_FILL = 65,
|
||||||
|
ICON_TARGET_BIG_FILL = 66,
|
||||||
|
ICON_TARGET_MOVE_FILL = 67,
|
||||||
|
ICON_CURSOR_MOVE_FILL = 68,
|
||||||
|
ICON_CURSOR_SCALE_FILL = 69,
|
||||||
|
ICON_CURSOR_SCALE_RIGHT_FILL = 70,
|
||||||
|
ICON_CURSOR_SCALE_LEFT_FILL = 71,
|
||||||
|
ICON_UNDO_FILL = 72,
|
||||||
|
ICON_REDO_FILL = 73,
|
||||||
|
ICON_REREDO_FILL = 74,
|
||||||
|
ICON_MUTATE_FILL = 75,
|
||||||
|
ICON_ROTATE_FILL = 76,
|
||||||
|
ICON_REPEAT_FILL = 77,
|
||||||
|
ICON_SHUFFLE_FILL = 78,
|
||||||
|
ICON_EMPTYBOX_SMALL = 79,
|
||||||
|
ICON_BOX = 80,
|
||||||
|
ICON_BOX_TOP = 81,
|
||||||
|
ICON_BOX_TOP_RIGHT = 82,
|
||||||
|
ICON_BOX_RIGHT = 83,
|
||||||
|
ICON_BOX_BOTTOM_RIGHT = 84,
|
||||||
|
ICON_BOX_BOTTOM = 85,
|
||||||
|
ICON_BOX_BOTTOM_LEFT = 86,
|
||||||
|
ICON_BOX_LEFT = 87,
|
||||||
|
ICON_BOX_TOP_LEFT = 88,
|
||||||
|
ICON_BOX_CENTER = 89,
|
||||||
|
ICON_BOX_CIRCLE_MASK = 90,
|
||||||
|
ICON_POT = 91,
|
||||||
|
ICON_ALPHA_MULTIPLY = 92,
|
||||||
|
ICON_ALPHA_CLEAR = 93,
|
||||||
|
ICON_DITHERING = 94,
|
||||||
|
ICON_MIPMAPS = 95,
|
||||||
|
ICON_BOX_GRID = 96,
|
||||||
|
ICON_GRID = 97,
|
||||||
|
ICON_BOX_CORNERS_SMALL = 98,
|
||||||
|
ICON_BOX_CORNERS_BIG = 99,
|
||||||
|
ICON_FOUR_BOXES = 100,
|
||||||
|
ICON_GRID_FILL = 101,
|
||||||
|
ICON_BOX_MULTISIZE = 102,
|
||||||
|
ICON_ZOOM_SMALL = 103,
|
||||||
|
ICON_ZOOM_MEDIUM = 104,
|
||||||
|
ICON_ZOOM_BIG = 105,
|
||||||
|
ICON_ZOOM_ALL = 106,
|
||||||
|
ICON_ZOOM_CENTER = 107,
|
||||||
|
ICON_BOX_DOTS_SMALL = 108,
|
||||||
|
ICON_BOX_DOTS_BIG = 109,
|
||||||
|
ICON_BOX_CONCENTRIC = 110,
|
||||||
|
ICON_BOX_GRID_BIG = 111,
|
||||||
|
ICON_OK_TICK = 112,
|
||||||
|
ICON_CROSS = 113,
|
||||||
|
ICON_ARROW_LEFT = 114,
|
||||||
|
ICON_ARROW_RIGHT = 115,
|
||||||
|
ICON_ARROW_DOWN = 116,
|
||||||
|
ICON_ARROW_UP = 117,
|
||||||
|
ICON_ARROW_LEFT_FILL = 118,
|
||||||
|
ICON_ARROW_RIGHT_FILL = 119,
|
||||||
|
ICON_ARROW_DOWN_FILL = 120,
|
||||||
|
ICON_ARROW_UP_FILL = 121,
|
||||||
|
ICON_AUDIO = 122,
|
||||||
|
ICON_FX = 123,
|
||||||
|
ICON_WAVE = 124,
|
||||||
|
ICON_WAVE_SINUS = 125,
|
||||||
|
ICON_WAVE_SQUARE = 126,
|
||||||
|
ICON_WAVE_TRIANGULAR = 127,
|
||||||
|
ICON_CROSS_SMALL = 128,
|
||||||
|
ICON_PLAYER_PREVIOUS = 129,
|
||||||
|
ICON_PLAYER_PLAY_BACK = 130,
|
||||||
|
ICON_PLAYER_PLAY = 131,
|
||||||
|
ICON_PLAYER_PAUSE = 132,
|
||||||
|
ICON_PLAYER_STOP = 133,
|
||||||
|
ICON_PLAYER_NEXT = 134,
|
||||||
|
ICON_PLAYER_RECORD = 135,
|
||||||
|
ICON_MAGNET = 136,
|
||||||
|
ICON_LOCK_CLOSE = 137,
|
||||||
|
ICON_LOCK_OPEN = 138,
|
||||||
|
ICON_CLOCK = 139,
|
||||||
|
ICON_TOOLS = 140,
|
||||||
|
ICON_GEAR = 141,
|
||||||
|
ICON_GEAR_BIG = 142,
|
||||||
|
ICON_BIN = 143,
|
||||||
|
ICON_HAND_POINTER = 144,
|
||||||
|
ICON_LASER = 145,
|
||||||
|
ICON_COIN = 146,
|
||||||
|
ICON_EXPLOSION = 147,
|
||||||
|
ICON_1UP = 148,
|
||||||
|
ICON_PLAYER = 149,
|
||||||
|
ICON_PLAYER_JUMP = 150,
|
||||||
|
ICON_KEY = 151,
|
||||||
|
ICON_DEMON = 152,
|
||||||
|
ICON_TEXT_POPUP = 153,
|
||||||
|
ICON_GEAR_EX = 154,
|
||||||
|
ICON_CRACK = 155,
|
||||||
|
ICON_CRACK_POINTS = 156,
|
||||||
|
ICON_STAR = 157,
|
||||||
|
ICON_DOOR = 158,
|
||||||
|
ICON_EXIT = 159,
|
||||||
|
ICON_MODE_2D = 160,
|
||||||
|
ICON_MODE_3D = 161,
|
||||||
|
ICON_CUBE = 162,
|
||||||
|
ICON_CUBE_FACE_TOP = 163,
|
||||||
|
ICON_CUBE_FACE_LEFT = 164,
|
||||||
|
ICON_CUBE_FACE_FRONT = 165,
|
||||||
|
ICON_CUBE_FACE_BOTTOM = 166,
|
||||||
|
ICON_CUBE_FACE_RIGHT = 167,
|
||||||
|
ICON_CUBE_FACE_BACK = 168,
|
||||||
|
ICON_CAMERA = 169,
|
||||||
|
ICON_SPECIAL = 170,
|
||||||
|
ICON_LINK_NET = 171,
|
||||||
|
ICON_LINK_BOXES = 172,
|
||||||
|
ICON_LINK_MULTI = 173,
|
||||||
|
ICON_LINK = 174,
|
||||||
|
ICON_LINK_BROKE = 175,
|
||||||
|
ICON_TEXT_NOTES = 176,
|
||||||
|
ICON_NOTEBOOK = 177,
|
||||||
|
ICON_SUITCASE = 178,
|
||||||
|
ICON_SUITCASE_ZIP = 179,
|
||||||
|
ICON_MAILBOX = 180,
|
||||||
|
ICON_MONITOR = 181,
|
||||||
|
ICON_PRINTER = 182,
|
||||||
|
ICON_PHOTO_CAMERA = 183,
|
||||||
|
ICON_PHOTO_CAMERA_FLASH = 184,
|
||||||
|
ICON_HOUSE = 185,
|
||||||
|
ICON_HEART = 186,
|
||||||
|
ICON_CORNER = 187,
|
||||||
|
ICON_VERTICAL_BARS = 188,
|
||||||
|
ICON_VERTICAL_BARS_FILL = 189,
|
||||||
|
ICON_LIFE_BARS = 190,
|
||||||
|
ICON_INFO = 191,
|
||||||
|
ICON_CROSSLINE = 192,
|
||||||
|
ICON_HELP = 193,
|
||||||
|
ICON_FILETYPE_ALPHA = 194,
|
||||||
|
ICON_FILETYPE_HOME = 195,
|
||||||
|
ICON_LAYERS_VISIBLE = 196,
|
||||||
|
ICON_LAYERS = 197,
|
||||||
|
ICON_WINDOW = 198,
|
||||||
|
ICON_HIDPI = 199,
|
||||||
|
ICON_FILETYPE_BINARY = 200,
|
||||||
|
ICON_HEX = 201,
|
||||||
|
ICON_SHIELD = 202,
|
||||||
|
ICON_FILE_NEW = 203,
|
||||||
|
ICON_FOLDER_ADD = 204,
|
||||||
|
ICON_ALARM = 205,
|
||||||
|
ICON_CPU = 206,
|
||||||
|
ICON_ROM = 207,
|
||||||
|
ICON_STEP_OVER = 208,
|
||||||
|
ICON_STEP_INTO = 209,
|
||||||
|
ICON_STEP_OUT = 210,
|
||||||
|
ICON_RESTART = 211,
|
||||||
|
ICON_BREAKPOINT_ON = 212,
|
||||||
|
ICON_BREAKPOINT_OFF = 213,
|
||||||
|
ICON_BURGER_MENU = 214,
|
||||||
|
ICON_CASE_SENSITIVE = 215,
|
||||||
|
ICON_REG_EXP = 216,
|
||||||
|
ICON_217 = 217,
|
||||||
|
ICON_218 = 218,
|
||||||
|
ICON_219 = 219,
|
||||||
|
ICON_220 = 220,
|
||||||
|
ICON_221 = 221,
|
||||||
|
ICON_222 = 222,
|
||||||
|
ICON_223 = 223,
|
||||||
|
ICON_224 = 224,
|
||||||
|
ICON_225 = 225,
|
||||||
|
ICON_226 = 226,
|
||||||
|
ICON_227 = 227,
|
||||||
|
ICON_228 = 228,
|
||||||
|
ICON_229 = 229,
|
||||||
|
ICON_230 = 230,
|
||||||
|
ICON_231 = 231,
|
||||||
|
ICON_232 = 232,
|
||||||
|
ICON_233 = 233,
|
||||||
|
ICON_234 = 234,
|
||||||
|
ICON_235 = 235,
|
||||||
|
ICON_236 = 236,
|
||||||
|
ICON_237 = 237,
|
||||||
|
ICON_238 = 238,
|
||||||
|
ICON_239 = 239,
|
||||||
|
ICON_240 = 240,
|
||||||
|
ICON_241 = 241,
|
||||||
|
ICON_242 = 242,
|
||||||
|
ICON_243 = 243,
|
||||||
|
ICON_244 = 244,
|
||||||
|
ICON_245 = 245,
|
||||||
|
ICON_246 = 246,
|
||||||
|
ICON_247 = 247,
|
||||||
|
ICON_248 = 248,
|
||||||
|
ICON_249 = 249,
|
||||||
|
ICON_250 = 250,
|
||||||
|
ICON_251 = 251,
|
||||||
|
ICON_252 = 252,
|
||||||
|
ICON_253 = 253,
|
||||||
|
ICON_254 = 254,
|
||||||
|
ICON_255 = 255,
|
||||||
|
} guiIconName;
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
// Icons data
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
static unsigned int guiIcons[RAYGUI_ICON_MAX_ICONS*RAYGUI_ICON_DATA_ELEMENTS] = {
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_NONE
|
||||||
|
0x3ff80000, 0x2f082008, 0x2042207e, 0x40027fc2, 0x40024002, 0x40024002, 0x40024002, 0x00007ffe, // ICON_FOLDER_FILE_OPEN
|
||||||
|
0x3ffe0000, 0x44226422, 0x400247e2, 0x5ffa4002, 0x57ea500a, 0x500a500a, 0x40025ffa, 0x00007ffe, // ICON_FILE_SAVE_CLASSIC
|
||||||
|
0x00000000, 0x0042007e, 0x40027fc2, 0x40024002, 0x41024002, 0x44424282, 0x793e4102, 0x00000100, // ICON_FOLDER_OPEN
|
||||||
|
0x00000000, 0x0042007e, 0x40027fc2, 0x40024002, 0x41024102, 0x44424102, 0x793e4282, 0x00000000, // ICON_FOLDER_SAVE
|
||||||
|
0x3ff00000, 0x201c2010, 0x20042004, 0x21042004, 0x24442284, 0x21042104, 0x20042104, 0x00003ffc, // ICON_FILE_OPEN
|
||||||
|
0x3ff00000, 0x201c2010, 0x20042004, 0x21042004, 0x21042104, 0x22842444, 0x20042104, 0x00003ffc, // ICON_FILE_SAVE
|
||||||
|
0x3ff00000, 0x201c2010, 0x00042004, 0x20041004, 0x20844784, 0x00841384, 0x20042784, 0x00003ffc, // ICON_FILE_EXPORT
|
||||||
|
0x3ff00000, 0x201c2010, 0x20042004, 0x20042004, 0x22042204, 0x22042f84, 0x20042204, 0x00003ffc, // ICON_FILE_ADD
|
||||||
|
0x3ff00000, 0x201c2010, 0x20042004, 0x20042004, 0x25042884, 0x25042204, 0x20042884, 0x00003ffc, // ICON_FILE_DELETE
|
||||||
|
0x3ff00000, 0x201c2010, 0x20042004, 0x20042ff4, 0x20042ff4, 0x20042ff4, 0x20042004, 0x00003ffc, // ICON_FILETYPE_TEXT
|
||||||
|
0x3ff00000, 0x201c2010, 0x27042004, 0x244424c4, 0x26442444, 0x20642664, 0x20042004, 0x00003ffc, // ICON_FILETYPE_AUDIO
|
||||||
|
0x3ff00000, 0x201c2010, 0x26042604, 0x20042004, 0x35442884, 0x2414222c, 0x20042004, 0x00003ffc, // ICON_FILETYPE_IMAGE
|
||||||
|
0x3ff00000, 0x201c2010, 0x20c42004, 0x22442144, 0x22442444, 0x20c42144, 0x20042004, 0x00003ffc, // ICON_FILETYPE_PLAY
|
||||||
|
0x3ff00000, 0x3ffc2ff0, 0x3f3c2ff4, 0x3dbc2eb4, 0x3dbc2bb4, 0x3f3c2eb4, 0x3ffc2ff4, 0x00002ff4, // ICON_FILETYPE_VIDEO
|
||||||
|
0x3ff00000, 0x201c2010, 0x21842184, 0x21842004, 0x21842184, 0x21842184, 0x20042184, 0x00003ffc, // ICON_FILETYPE_INFO
|
||||||
|
0x0ff00000, 0x381c0810, 0x28042804, 0x28042804, 0x28042804, 0x28042804, 0x20102ffc, 0x00003ff0, // ICON_FILE_COPY
|
||||||
|
0x00000000, 0x701c0000, 0x079c1e14, 0x55a000f0, 0x079c00f0, 0x701c1e14, 0x00000000, 0x00000000, // ICON_FILE_CUT
|
||||||
|
0x01c00000, 0x13e41bec, 0x3f841004, 0x204420c4, 0x20442044, 0x20442044, 0x207c2044, 0x00003fc0, // ICON_FILE_PASTE
|
||||||
|
0x00000000, 0x3aa00fe0, 0x2abc2aa0, 0x2aa42aa4, 0x20042aa4, 0x20042004, 0x3ffc2004, 0x00000000, // ICON_CURSOR_HAND
|
||||||
|
0x00000000, 0x003c000c, 0x030800c8, 0x30100c10, 0x10202020, 0x04400840, 0x01800280, 0x00000000, // ICON_CURSOR_POINTER
|
||||||
|
0x00000000, 0x00180000, 0x01f00078, 0x03e007f0, 0x07c003e0, 0x04000e40, 0x00000000, 0x00000000, // ICON_CURSOR_CLASSIC
|
||||||
|
0x00000000, 0x04000000, 0x11000a00, 0x04400a80, 0x01100220, 0x00580088, 0x00000038, 0x00000000, // ICON_PENCIL
|
||||||
|
0x04000000, 0x15000a00, 0x50402880, 0x14102820, 0x05040a08, 0x015c028c, 0x007c00bc, 0x00000000, // ICON_PENCIL_BIG
|
||||||
|
0x01c00000, 0x01400140, 0x01400140, 0x0ff80140, 0x0ff80808, 0x0aa80808, 0x0aa80aa8, 0x00000ff8, // ICON_BRUSH_CLASSIC
|
||||||
|
0x1ffc0000, 0x5ffc7ffe, 0x40004000, 0x00807f80, 0x01c001c0, 0x01c001c0, 0x01c001c0, 0x00000080, // ICON_BRUSH_PAINTER
|
||||||
|
0x00000000, 0x00800000, 0x01c00080, 0x03e001c0, 0x07f003e0, 0x036006f0, 0x000001c0, 0x00000000, // ICON_WATER_DROP
|
||||||
|
0x00000000, 0x3e003800, 0x1f803f80, 0x0c201e40, 0x02080c10, 0x00840104, 0x00380044, 0x00000000, // ICON_COLOR_PICKER
|
||||||
|
0x00000000, 0x07800300, 0x1fe00fc0, 0x3f883fd0, 0x0e021f04, 0x02040402, 0x00f00108, 0x00000000, // ICON_RUBBER
|
||||||
|
0x00c00000, 0x02800140, 0x08200440, 0x20081010, 0x2ffe3004, 0x03f807fc, 0x00e001f0, 0x00000040, // ICON_COLOR_BUCKET
|
||||||
|
0x00000000, 0x21843ffc, 0x01800180, 0x01800180, 0x01800180, 0x01800180, 0x03c00180, 0x00000000, // ICON_TEXT_T
|
||||||
|
0x00800000, 0x01400180, 0x06200340, 0x0c100620, 0x1ff80c10, 0x380c1808, 0x70067004, 0x0000f80f, // ICON_TEXT_A
|
||||||
|
0x78000000, 0x50004000, 0x00004800, 0x03c003c0, 0x03c003c0, 0x00100000, 0x0002000a, 0x0000000e, // ICON_SCALE
|
||||||
|
0x75560000, 0x5e004002, 0x54001002, 0x41001202, 0x408200fe, 0x40820082, 0x40820082, 0x00006afe, // ICON_RESIZE
|
||||||
|
0x00000000, 0x3f003f00, 0x3f003f00, 0x3f003f00, 0x00400080, 0x001c0020, 0x001c001c, 0x00000000, // ICON_FILTER_POINT
|
||||||
|
0x6d800000, 0x00004080, 0x40804080, 0x40800000, 0x00406d80, 0x001c0020, 0x001c001c, 0x00000000, // ICON_FILTER_BILINEAR
|
||||||
|
0x40080000, 0x1ffe2008, 0x14081008, 0x11081208, 0x10481088, 0x10081028, 0x10047ff8, 0x00001002, // ICON_CROP
|
||||||
|
0x00100000, 0x3ffc0010, 0x2ab03550, 0x22b02550, 0x20b02150, 0x20302050, 0x2000fff0, 0x00002000, // ICON_CROP_ALPHA
|
||||||
|
0x40000000, 0x1ff82000, 0x04082808, 0x01082208, 0x00482088, 0x00182028, 0x35542008, 0x00000002, // ICON_SQUARE_TOGGLE
|
||||||
|
0x00000000, 0x02800280, 0x06c006c0, 0x0ea00ee0, 0x1e901eb0, 0x3e883e98, 0x7efc7e8c, 0x00000000, // ICON_SYMMETRY
|
||||||
|
0x01000000, 0x05600100, 0x1d480d50, 0x7d423d44, 0x3d447d42, 0x0d501d48, 0x01000560, 0x00000100, // ICON_SYMMETRY_HORIZONTAL
|
||||||
|
0x01800000, 0x04200240, 0x10080810, 0x00001ff8, 0x00007ffe, 0x0ff01ff8, 0x03c007e0, 0x00000180, // ICON_SYMMETRY_VERTICAL
|
||||||
|
0x00000000, 0x010800f0, 0x02040204, 0x02040204, 0x07f00308, 0x1c000e00, 0x30003800, 0x00000000, // ICON_LENS
|
||||||
|
0x00000000, 0x061803f0, 0x08240c0c, 0x08040814, 0x0c0c0804, 0x23f01618, 0x18002400, 0x00000000, // ICON_LENS_BIG
|
||||||
|
0x00000000, 0x00000000, 0x1c7007c0, 0x638e3398, 0x1c703398, 0x000007c0, 0x00000000, 0x00000000, // ICON_EYE_ON
|
||||||
|
0x00000000, 0x10002000, 0x04700fc0, 0x610e3218, 0x1c703098, 0x001007a0, 0x00000008, 0x00000000, // ICON_EYE_OFF
|
||||||
|
0x00000000, 0x00007ffc, 0x40047ffc, 0x10102008, 0x04400820, 0x02800280, 0x02800280, 0x00000100, // ICON_FILTER_TOP
|
||||||
|
0x00000000, 0x40027ffe, 0x10082004, 0x04200810, 0x02400240, 0x02400240, 0x01400240, 0x000000c0, // ICON_FILTER
|
||||||
|
0x00800000, 0x00800080, 0x00000080, 0x3c9e0000, 0x00000000, 0x00800080, 0x00800080, 0x00000000, // ICON_TARGET_POINT
|
||||||
|
0x00800000, 0x00800080, 0x00800080, 0x3f7e01c0, 0x008001c0, 0x00800080, 0x00800080, 0x00000000, // ICON_TARGET_SMALL
|
||||||
|
0x00800000, 0x00800080, 0x03e00080, 0x3e3e0220, 0x03e00220, 0x00800080, 0x00800080, 0x00000000, // ICON_TARGET_BIG
|
||||||
|
0x01000000, 0x04400280, 0x01000100, 0x43842008, 0x43849ab2, 0x01002008, 0x04400100, 0x01000280, // ICON_TARGET_MOVE
|
||||||
|
0x01000000, 0x04400280, 0x01000100, 0x41042108, 0x41049ff2, 0x01002108, 0x04400100, 0x01000280, // ICON_CURSOR_MOVE
|
||||||
|
0x781e0000, 0x500a4002, 0x04204812, 0x00000240, 0x02400000, 0x48120420, 0x4002500a, 0x0000781e, // ICON_CURSOR_SCALE
|
||||||
|
0x00000000, 0x20003c00, 0x24002800, 0x01000200, 0x00400080, 0x00140024, 0x003c0004, 0x00000000, // ICON_CURSOR_SCALE_RIGHT
|
||||||
|
0x00000000, 0x0004003c, 0x00240014, 0x00800040, 0x02000100, 0x28002400, 0x3c002000, 0x00000000, // ICON_CURSOR_SCALE_LEFT
|
||||||
|
0x00000000, 0x00100020, 0x10101fc8, 0x10001020, 0x10001000, 0x10001000, 0x00001fc0, 0x00000000, // ICON_UNDO
|
||||||
|
0x00000000, 0x08000400, 0x080813f8, 0x00080408, 0x00080008, 0x00080008, 0x000003f8, 0x00000000, // ICON_REDO
|
||||||
|
0x00000000, 0x3ffc0000, 0x20042004, 0x20002000, 0x20402000, 0x3f902020, 0x00400020, 0x00000000, // ICON_REREDO
|
||||||
|
0x00000000, 0x3ffc0000, 0x20042004, 0x27fc2004, 0x20202000, 0x3fc82010, 0x00200010, 0x00000000, // ICON_MUTATE
|
||||||
|
0x00000000, 0x0ff00000, 0x10081818, 0x11801008, 0x10001180, 0x18101020, 0x00100fc8, 0x00000020, // ICON_ROTATE
|
||||||
|
0x00000000, 0x04000200, 0x240429fc, 0x20042204, 0x20442004, 0x3f942024, 0x00400020, 0x00000000, // ICON_REPEAT
|
||||||
|
0x00000000, 0x20001000, 0x22104c0e, 0x00801120, 0x11200040, 0x4c0e2210, 0x10002000, 0x00000000, // ICON_SHUFFLE
|
||||||
|
0x7ffe0000, 0x50024002, 0x44024802, 0x41024202, 0x40424082, 0x40124022, 0x4002400a, 0x00007ffe, // ICON_EMPTYBOX
|
||||||
|
0x00800000, 0x03e00080, 0x08080490, 0x3c9e0808, 0x08080808, 0x03e00490, 0x00800080, 0x00000000, // ICON_TARGET
|
||||||
|
0x00800000, 0x00800080, 0x00800080, 0x3ffe01c0, 0x008001c0, 0x00800080, 0x00800080, 0x00000000, // ICON_TARGET_SMALL_FILL
|
||||||
|
0x00800000, 0x00800080, 0x03e00080, 0x3ffe03e0, 0x03e003e0, 0x00800080, 0x00800080, 0x00000000, // ICON_TARGET_BIG_FILL
|
||||||
|
0x01000000, 0x07c00380, 0x01000100, 0x638c2008, 0x638cfbbe, 0x01002008, 0x07c00100, 0x01000380, // ICON_TARGET_MOVE_FILL
|
||||||
|
0x01000000, 0x07c00380, 0x01000100, 0x610c2108, 0x610cfffe, 0x01002108, 0x07c00100, 0x01000380, // ICON_CURSOR_MOVE_FILL
|
||||||
|
0x781e0000, 0x6006700e, 0x04204812, 0x00000240, 0x02400000, 0x48120420, 0x700e6006, 0x0000781e, // ICON_CURSOR_SCALE_FILL
|
||||||
|
0x00000000, 0x38003c00, 0x24003000, 0x01000200, 0x00400080, 0x000c0024, 0x003c001c, 0x00000000, // ICON_CURSOR_SCALE_RIGHT_FILL
|
||||||
|
0x00000000, 0x001c003c, 0x0024000c, 0x00800040, 0x02000100, 0x30002400, 0x3c003800, 0x00000000, // ICON_CURSOR_SCALE_LEFT_FILL
|
||||||
|
0x00000000, 0x00300020, 0x10301ff8, 0x10001020, 0x10001000, 0x10001000, 0x00001fc0, 0x00000000, // ICON_UNDO_FILL
|
||||||
|
0x00000000, 0x0c000400, 0x0c081ff8, 0x00080408, 0x00080008, 0x00080008, 0x000003f8, 0x00000000, // ICON_REDO_FILL
|
||||||
|
0x00000000, 0x3ffc0000, 0x20042004, 0x20002000, 0x20402000, 0x3ff02060, 0x00400060, 0x00000000, // ICON_REREDO_FILL
|
||||||
|
0x00000000, 0x3ffc0000, 0x20042004, 0x27fc2004, 0x20202000, 0x3ff82030, 0x00200030, 0x00000000, // ICON_MUTATE_FILL
|
||||||
|
0x00000000, 0x0ff00000, 0x10081818, 0x11801008, 0x10001180, 0x18301020, 0x00300ff8, 0x00000020, // ICON_ROTATE_FILL
|
||||||
|
0x00000000, 0x06000200, 0x26042ffc, 0x20042204, 0x20442004, 0x3ff42064, 0x00400060, 0x00000000, // ICON_REPEAT_FILL
|
||||||
|
0x00000000, 0x30001000, 0x32107c0e, 0x00801120, 0x11200040, 0x7c0e3210, 0x10003000, 0x00000000, // ICON_SHUFFLE_FILL
|
||||||
|
0x00000000, 0x30043ffc, 0x24042804, 0x21042204, 0x20442084, 0x20142024, 0x3ffc200c, 0x00000000, // ICON_EMPTYBOX_SMALL
|
||||||
|
0x00000000, 0x20043ffc, 0x20042004, 0x20042004, 0x20042004, 0x20042004, 0x3ffc2004, 0x00000000, // ICON_BOX
|
||||||
|
0x00000000, 0x23c43ffc, 0x23c423c4, 0x200423c4, 0x20042004, 0x20042004, 0x3ffc2004, 0x00000000, // ICON_BOX_TOP
|
||||||
|
0x00000000, 0x3e043ffc, 0x3e043e04, 0x20043e04, 0x20042004, 0x20042004, 0x3ffc2004, 0x00000000, // ICON_BOX_TOP_RIGHT
|
||||||
|
0x00000000, 0x20043ffc, 0x20042004, 0x3e043e04, 0x3e043e04, 0x20042004, 0x3ffc2004, 0x00000000, // ICON_BOX_RIGHT
|
||||||
|
0x00000000, 0x20043ffc, 0x20042004, 0x20042004, 0x3e042004, 0x3e043e04, 0x3ffc3e04, 0x00000000, // ICON_BOX_BOTTOM_RIGHT
|
||||||
|
0x00000000, 0x20043ffc, 0x20042004, 0x20042004, 0x23c42004, 0x23c423c4, 0x3ffc23c4, 0x00000000, // ICON_BOX_BOTTOM
|
||||||
|
0x00000000, 0x20043ffc, 0x20042004, 0x20042004, 0x207c2004, 0x207c207c, 0x3ffc207c, 0x00000000, // ICON_BOX_BOTTOM_LEFT
|
||||||
|
0x00000000, 0x20043ffc, 0x20042004, 0x207c207c, 0x207c207c, 0x20042004, 0x3ffc2004, 0x00000000, // ICON_BOX_LEFT
|
||||||
|
0x00000000, 0x207c3ffc, 0x207c207c, 0x2004207c, 0x20042004, 0x20042004, 0x3ffc2004, 0x00000000, // ICON_BOX_TOP_LEFT
|
||||||
|
0x00000000, 0x20043ffc, 0x20042004, 0x23c423c4, 0x23c423c4, 0x20042004, 0x3ffc2004, 0x00000000, // ICON_BOX_CENTER
|
||||||
|
0x7ffe0000, 0x40024002, 0x47e24182, 0x4ff247e2, 0x47e24ff2, 0x418247e2, 0x40024002, 0x00007ffe, // ICON_BOX_CIRCLE_MASK
|
||||||
|
0x7fff0000, 0x40014001, 0x40014001, 0x49555ddd, 0x4945495d, 0x400149c5, 0x40014001, 0x00007fff, // ICON_POT
|
||||||
|
0x7ffe0000, 0x53327332, 0x44ce4cce, 0x41324332, 0x404e40ce, 0x48125432, 0x4006540e, 0x00007ffe, // ICON_ALPHA_MULTIPLY
|
||||||
|
0x7ffe0000, 0x53327332, 0x44ce4cce, 0x41324332, 0x5c4e40ce, 0x44124432, 0x40065c0e, 0x00007ffe, // ICON_ALPHA_CLEAR
|
||||||
|
0x7ffe0000, 0x42fe417e, 0x42fe417e, 0x42fe417e, 0x42fe417e, 0x42fe417e, 0x42fe417e, 0x00007ffe, // ICON_DITHERING
|
||||||
|
0x07fe0000, 0x1ffa0002, 0x7fea000a, 0x402a402a, 0x5b2a512a, 0x5128552a, 0x40205128, 0x00007fe0, // ICON_MIPMAPS
|
||||||
|
0x00000000, 0x1ff80000, 0x12481248, 0x12481ff8, 0x1ff81248, 0x12481248, 0x00001ff8, 0x00000000, // ICON_BOX_GRID
|
||||||
|
0x12480000, 0x7ffe1248, 0x12481248, 0x12487ffe, 0x7ffe1248, 0x12481248, 0x12487ffe, 0x00001248, // ICON_GRID
|
||||||
|
0x00000000, 0x1c380000, 0x1c3817e8, 0x08100810, 0x08100810, 0x17e81c38, 0x00001c38, 0x00000000, // ICON_BOX_CORNERS_SMALL
|
||||||
|
0x700e0000, 0x700e5ffa, 0x20042004, 0x20042004, 0x20042004, 0x20042004, 0x5ffa700e, 0x0000700e, // ICON_BOX_CORNERS_BIG
|
||||||
|
0x3f7e0000, 0x21422142, 0x21422142, 0x00003f7e, 0x21423f7e, 0x21422142, 0x3f7e2142, 0x00000000, // ICON_FOUR_BOXES
|
||||||
|
0x00000000, 0x3bb80000, 0x3bb83bb8, 0x3bb80000, 0x3bb83bb8, 0x3bb80000, 0x3bb83bb8, 0x00000000, // ICON_GRID_FILL
|
||||||
|
0x7ffe0000, 0x7ffe7ffe, 0x77fe7000, 0x77fe77fe, 0x777e7700, 0x777e777e, 0x777e777e, 0x0000777e, // ICON_BOX_MULTISIZE
|
||||||
|
0x781e0000, 0x40024002, 0x00004002, 0x01800000, 0x00000180, 0x40020000, 0x40024002, 0x0000781e, // ICON_ZOOM_SMALL
|
||||||
|
0x781e0000, 0x40024002, 0x00004002, 0x03c003c0, 0x03c003c0, 0x40020000, 0x40024002, 0x0000781e, // ICON_ZOOM_MEDIUM
|
||||||
|
0x781e0000, 0x40024002, 0x07e04002, 0x07e007e0, 0x07e007e0, 0x400207e0, 0x40024002, 0x0000781e, // ICON_ZOOM_BIG
|
||||||
|
0x781e0000, 0x5ffa4002, 0x1ff85ffa, 0x1ff81ff8, 0x1ff81ff8, 0x5ffa1ff8, 0x40025ffa, 0x0000781e, // ICON_ZOOM_ALL
|
||||||
|
0x00000000, 0x2004381c, 0x00002004, 0x00000000, 0x00000000, 0x20040000, 0x381c2004, 0x00000000, // ICON_ZOOM_CENTER
|
||||||
|
0x00000000, 0x1db80000, 0x10081008, 0x10080000, 0x00001008, 0x10081008, 0x00001db8, 0x00000000, // ICON_BOX_DOTS_SMALL
|
||||||
|
0x35560000, 0x00002002, 0x00002002, 0x00002002, 0x00002002, 0x00002002, 0x35562002, 0x00000000, // ICON_BOX_DOTS_BIG
|
||||||
|
0x7ffe0000, 0x40024002, 0x48124ff2, 0x49924812, 0x48124992, 0x4ff24812, 0x40024002, 0x00007ffe, // ICON_BOX_CONCENTRIC
|
||||||
|
0x00000000, 0x10841ffc, 0x10841084, 0x1ffc1084, 0x10841084, 0x10841084, 0x00001ffc, 0x00000000, // ICON_BOX_GRID_BIG
|
||||||
|
0x00000000, 0x00000000, 0x10000000, 0x04000800, 0x01040200, 0x00500088, 0x00000020, 0x00000000, // ICON_OK_TICK
|
||||||
|
0x00000000, 0x10080000, 0x04200810, 0x01800240, 0x02400180, 0x08100420, 0x00001008, 0x00000000, // ICON_CROSS
|
||||||
|
0x00000000, 0x02000000, 0x00800100, 0x00200040, 0x00200010, 0x00800040, 0x02000100, 0x00000000, // ICON_ARROW_LEFT
|
||||||
|
0x00000000, 0x00400000, 0x01000080, 0x04000200, 0x04000800, 0x01000200, 0x00400080, 0x00000000, // ICON_ARROW_RIGHT
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x08081004, 0x02200410, 0x00800140, 0x00000000, 0x00000000, // ICON_ARROW_DOWN
|
||||||
|
0x00000000, 0x00000000, 0x01400080, 0x04100220, 0x10040808, 0x00000000, 0x00000000, 0x00000000, // ICON_ARROW_UP
|
||||||
|
0x00000000, 0x02000000, 0x03800300, 0x03e003c0, 0x03e003f0, 0x038003c0, 0x02000300, 0x00000000, // ICON_ARROW_LEFT_FILL
|
||||||
|
0x00000000, 0x00400000, 0x01c000c0, 0x07c003c0, 0x07c00fc0, 0x01c003c0, 0x004000c0, 0x00000000, // ICON_ARROW_RIGHT_FILL
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x0ff81ffc, 0x03e007f0, 0x008001c0, 0x00000000, 0x00000000, // ICON_ARROW_DOWN_FILL
|
||||||
|
0x00000000, 0x00000000, 0x01c00080, 0x07f003e0, 0x1ffc0ff8, 0x00000000, 0x00000000, 0x00000000, // ICON_ARROW_UP_FILL
|
||||||
|
0x00000000, 0x18a008c0, 0x32881290, 0x24822686, 0x26862482, 0x12903288, 0x08c018a0, 0x00000000, // ICON_AUDIO
|
||||||
|
0x00000000, 0x04800780, 0x004000c0, 0x662000f0, 0x08103c30, 0x130a0e18, 0x0000318e, 0x00000000, // ICON_FX
|
||||||
|
0x00000000, 0x00800000, 0x08880888, 0x2aaa0a8a, 0x0a8a2aaa, 0x08880888, 0x00000080, 0x00000000, // ICON_WAVE
|
||||||
|
0x00000000, 0x00600000, 0x01080090, 0x02040108, 0x42044204, 0x24022402, 0x00001800, 0x00000000, // ICON_WAVE_SINUS
|
||||||
|
0x00000000, 0x07f80000, 0x04080408, 0x04080408, 0x04080408, 0x7c0e0408, 0x00000000, 0x00000000, // ICON_WAVE_SQUARE
|
||||||
|
0x00000000, 0x00000000, 0x00a00040, 0x22084110, 0x08021404, 0x00000000, 0x00000000, 0x00000000, // ICON_WAVE_TRIANGULAR
|
||||||
|
0x00000000, 0x00000000, 0x04200000, 0x01800240, 0x02400180, 0x00000420, 0x00000000, 0x00000000, // ICON_CROSS_SMALL
|
||||||
|
0x00000000, 0x18380000, 0x12281428, 0x10a81128, 0x112810a8, 0x14281228, 0x00001838, 0x00000000, // ICON_PLAYER_PREVIOUS
|
||||||
|
0x00000000, 0x18000000, 0x11801600, 0x10181060, 0x10601018, 0x16001180, 0x00001800, 0x00000000, // ICON_PLAYER_PLAY_BACK
|
||||||
|
0x00000000, 0x00180000, 0x01880068, 0x18080608, 0x06081808, 0x00680188, 0x00000018, 0x00000000, // ICON_PLAYER_PLAY
|
||||||
|
0x00000000, 0x1e780000, 0x12481248, 0x12481248, 0x12481248, 0x12481248, 0x00001e78, 0x00000000, // ICON_PLAYER_PAUSE
|
||||||
|
0x00000000, 0x1ff80000, 0x10081008, 0x10081008, 0x10081008, 0x10081008, 0x00001ff8, 0x00000000, // ICON_PLAYER_STOP
|
||||||
|
0x00000000, 0x1c180000, 0x14481428, 0x15081488, 0x14881508, 0x14281448, 0x00001c18, 0x00000000, // ICON_PLAYER_NEXT
|
||||||
|
0x00000000, 0x03c00000, 0x08100420, 0x10081008, 0x10081008, 0x04200810, 0x000003c0, 0x00000000, // ICON_PLAYER_RECORD
|
||||||
|
0x00000000, 0x0c3007e0, 0x13c81818, 0x14281668, 0x14281428, 0x1c381c38, 0x08102244, 0x00000000, // ICON_MAGNET
|
||||||
|
0x07c00000, 0x08200820, 0x3ff80820, 0x23882008, 0x21082388, 0x20082108, 0x1ff02008, 0x00000000, // ICON_LOCK_CLOSE
|
||||||
|
0x07c00000, 0x08000800, 0x3ff80800, 0x23882008, 0x21082388, 0x20082108, 0x1ff02008, 0x00000000, // ICON_LOCK_OPEN
|
||||||
|
0x01c00000, 0x0c180770, 0x3086188c, 0x60832082, 0x60034781, 0x30062002, 0x0c18180c, 0x01c00770, // ICON_CLOCK
|
||||||
|
0x0a200000, 0x1b201b20, 0x04200e20, 0x04200420, 0x04700420, 0x0e700e70, 0x0e700e70, 0x04200e70, // ICON_TOOLS
|
||||||
|
0x01800000, 0x3bdc318c, 0x0ff01ff8, 0x7c3e1e78, 0x1e787c3e, 0x1ff80ff0, 0x318c3bdc, 0x00000180, // ICON_GEAR
|
||||||
|
0x01800000, 0x3ffc318c, 0x1c381ff8, 0x781e1818, 0x1818781e, 0x1ff81c38, 0x318c3ffc, 0x00000180, // ICON_GEAR_BIG
|
||||||
|
0x00000000, 0x08080ff8, 0x08081ffc, 0x0aa80aa8, 0x0aa80aa8, 0x0aa80aa8, 0x08080aa8, 0x00000ff8, // ICON_BIN
|
||||||
|
0x00000000, 0x00000000, 0x20043ffc, 0x08043f84, 0x04040f84, 0x04040784, 0x000007fc, 0x00000000, // ICON_HAND_POINTER
|
||||||
|
0x00000000, 0x24400400, 0x00001480, 0x6efe0e00, 0x00000e00, 0x24401480, 0x00000400, 0x00000000, // ICON_LASER
|
||||||
|
0x00000000, 0x03c00000, 0x08300460, 0x11181118, 0x11181118, 0x04600830, 0x000003c0, 0x00000000, // ICON_COIN
|
||||||
|
0x00000000, 0x10880080, 0x06c00810, 0x366c07e0, 0x07e00240, 0x00001768, 0x04200240, 0x00000000, // ICON_EXPLOSION
|
||||||
|
0x00000000, 0x3d280000, 0x2528252c, 0x3d282528, 0x05280528, 0x05e80528, 0x00000000, 0x00000000, // ICON_1UP
|
||||||
|
0x01800000, 0x03c003c0, 0x018003c0, 0x0ff007e0, 0x0bd00bd0, 0x0a500bd0, 0x02400240, 0x02400240, // ICON_PLAYER
|
||||||
|
0x01800000, 0x03c003c0, 0x118013c0, 0x03c81ff8, 0x07c003c8, 0x04400440, 0x0c080478, 0x00000000, // ICON_PLAYER_JUMP
|
||||||
|
0x3ff80000, 0x30183ff8, 0x30183018, 0x3ff83ff8, 0x03000300, 0x03c003c0, 0x03e00300, 0x000003e0, // ICON_KEY
|
||||||
|
0x3ff80000, 0x3ff83ff8, 0x33983ff8, 0x3ff83398, 0x3ff83ff8, 0x00000540, 0x0fe00aa0, 0x00000fe0, // ICON_DEMON
|
||||||
|
0x00000000, 0x0ff00000, 0x20041008, 0x25442004, 0x10082004, 0x06000bf0, 0x00000300, 0x00000000, // ICON_TEXT_POPUP
|
||||||
|
0x00000000, 0x11440000, 0x07f00be8, 0x1c1c0e38, 0x1c1c0c18, 0x07f00e38, 0x11440be8, 0x00000000, // ICON_GEAR_EX
|
||||||
|
0x00000000, 0x20080000, 0x0c601010, 0x07c00fe0, 0x07c007c0, 0x0c600fe0, 0x20081010, 0x00000000, // ICON_CRACK
|
||||||
|
0x00000000, 0x20080000, 0x0c601010, 0x04400fe0, 0x04405554, 0x0c600fe0, 0x20081010, 0x00000000, // ICON_CRACK_POINTS
|
||||||
|
0x00000000, 0x00800080, 0x01c001c0, 0x1ffc3ffe, 0x03e007f0, 0x07f003e0, 0x0c180770, 0x00000808, // ICON_STAR
|
||||||
|
0x0ff00000, 0x08180810, 0x08100818, 0x0a100810, 0x08180810, 0x08100818, 0x08100810, 0x00001ff8, // ICON_DOOR
|
||||||
|
0x0ff00000, 0x08100810, 0x08100810, 0x10100010, 0x4f902010, 0x10102010, 0x08100010, 0x00000ff0, // ICON_EXIT
|
||||||
|
0x00040000, 0x001f000e, 0x0ef40004, 0x12f41284, 0x0ef41214, 0x10040004, 0x7ffc3004, 0x10003000, // ICON_MODE_2D
|
||||||
|
0x78040000, 0x501f600e, 0x0ef44004, 0x12f41284, 0x0ef41284, 0x10140004, 0x7ffc300c, 0x10003000, // ICON_MODE_3D
|
||||||
|
0x7fe00000, 0x50286030, 0x47fe4804, 0x44224402, 0x44224422, 0x241275e2, 0x0c06140a, 0x000007fe, // ICON_CUBE
|
||||||
|
0x7fe00000, 0x5ff87ff0, 0x47fe4ffc, 0x44224402, 0x44224422, 0x241275e2, 0x0c06140a, 0x000007fe, // ICON_CUBE_FACE_TOP
|
||||||
|
0x7fe00000, 0x50386030, 0x47fe483c, 0x443e443e, 0x443e443e, 0x241e75fe, 0x0c06140e, 0x000007fe, // ICON_CUBE_FACE_LEFT
|
||||||
|
0x7fe00000, 0x50286030, 0x47fe4804, 0x47fe47fe, 0x47fe47fe, 0x27fe77fe, 0x0ffe17fe, 0x000007fe, // ICON_CUBE_FACE_FRONT
|
||||||
|
0x7fe00000, 0x50286030, 0x47fe4804, 0x44224402, 0x44224422, 0x3ff27fe2, 0x0ffe1ffa, 0x000007fe, // ICON_CUBE_FACE_BOTTOM
|
||||||
|
0x7fe00000, 0x70286030, 0x7ffe7804, 0x7c227c02, 0x7c227c22, 0x3c127de2, 0x0c061c0a, 0x000007fe, // ICON_CUBE_FACE_RIGHT
|
||||||
|
0x7fe00000, 0x7fe87ff0, 0x7ffe7fe4, 0x7fe27fe2, 0x7fe27fe2, 0x24127fe2, 0x0c06140a, 0x000007fe, // ICON_CUBE_FACE_BACK
|
||||||
|
0x00000000, 0x2a0233fe, 0x22022602, 0x22022202, 0x2a022602, 0x00a033fe, 0x02080110, 0x00000000, // ICON_CAMERA
|
||||||
|
0x00000000, 0x200c3ffc, 0x000c000c, 0x3ffc000c, 0x30003000, 0x30003000, 0x3ffc3004, 0x00000000, // ICON_SPECIAL
|
||||||
|
0x00000000, 0x0022003e, 0x012201e2, 0x0100013e, 0x01000100, 0x79000100, 0x4f004900, 0x00007800, // ICON_LINK_NET
|
||||||
|
0x00000000, 0x44007c00, 0x45004600, 0x00627cbe, 0x00620022, 0x45007cbe, 0x44004600, 0x00007c00, // ICON_LINK_BOXES
|
||||||
|
0x00000000, 0x0044007c, 0x0010007c, 0x3f100010, 0x3f1021f0, 0x3f100010, 0x3f0021f0, 0x00000000, // ICON_LINK_MULTI
|
||||||
|
0x00000000, 0x0044007c, 0x00440044, 0x0010007c, 0x00100010, 0x44107c10, 0x440047f0, 0x00007c00, // ICON_LINK
|
||||||
|
0x00000000, 0x0044007c, 0x00440044, 0x0000007c, 0x00000010, 0x44007c10, 0x44004550, 0x00007c00, // ICON_LINK_BROKE
|
||||||
|
0x02a00000, 0x22a43ffc, 0x20042004, 0x20042ff4, 0x20042ff4, 0x20042ff4, 0x20042004, 0x00003ffc, // ICON_TEXT_NOTES
|
||||||
|
0x3ffc0000, 0x20042004, 0x245e27c4, 0x27c42444, 0x2004201e, 0x201e2004, 0x20042004, 0x00003ffc, // ICON_NOTEBOOK
|
||||||
|
0x00000000, 0x07e00000, 0x04200420, 0x24243ffc, 0x24242424, 0x24242424, 0x3ffc2424, 0x00000000, // ICON_SUITCASE
|
||||||
|
0x00000000, 0x0fe00000, 0x08200820, 0x40047ffc, 0x7ffc5554, 0x40045554, 0x7ffc4004, 0x00000000, // ICON_SUITCASE_ZIP
|
||||||
|
0x00000000, 0x20043ffc, 0x3ffc2004, 0x13c81008, 0x100813c8, 0x10081008, 0x1ff81008, 0x00000000, // ICON_MAILBOX
|
||||||
|
0x00000000, 0x40027ffe, 0x5ffa5ffa, 0x5ffa5ffa, 0x40025ffa, 0x03c07ffe, 0x1ff81ff8, 0x00000000, // ICON_MONITOR
|
||||||
|
0x0ff00000, 0x6bfe7ffe, 0x7ffe7ffe, 0x68167ffe, 0x08106816, 0x08100810, 0x0ff00810, 0x00000000, // ICON_PRINTER
|
||||||
|
0x3ff80000, 0xfffe2008, 0x870a8002, 0x904a888a, 0x904a904a, 0x870a888a, 0xfffe8002, 0x00000000, // ICON_PHOTO_CAMERA
|
||||||
|
0x0fc00000, 0xfcfe0cd8, 0x8002fffe, 0x84428382, 0x84428442, 0x80028382, 0xfffe8002, 0x00000000, // ICON_PHOTO_CAMERA_FLASH
|
||||||
|
0x00000000, 0x02400180, 0x08100420, 0x20041008, 0x23c42004, 0x22442244, 0x3ffc2244, 0x00000000, // ICON_HOUSE
|
||||||
|
0x00000000, 0x1c700000, 0x3ff83ef8, 0x3ff83ff8, 0x0fe01ff0, 0x038007c0, 0x00000100, 0x00000000, // ICON_HEART
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80000000, 0xe000c000, // ICON_CORNER
|
||||||
|
0x00000000, 0x14001c00, 0x15c01400, 0x15401540, 0x155c1540, 0x15541554, 0x1ddc1554, 0x00000000, // ICON_VERTICAL_BARS
|
||||||
|
0x00000000, 0x03000300, 0x1b001b00, 0x1b601b60, 0x1b6c1b60, 0x1b6c1b6c, 0x1b6c1b6c, 0x00000000, // ICON_VERTICAL_BARS_FILL
|
||||||
|
0x00000000, 0x00000000, 0x403e7ffe, 0x7ffe403e, 0x7ffe0000, 0x43fe43fe, 0x00007ffe, 0x00000000, // ICON_LIFE_BARS
|
||||||
|
0x7ffc0000, 0x43844004, 0x43844284, 0x43844004, 0x42844284, 0x42844284, 0x40044384, 0x00007ffc, // ICON_INFO
|
||||||
|
0x40008000, 0x10002000, 0x04000800, 0x01000200, 0x00400080, 0x00100020, 0x00040008, 0x00010002, // ICON_CROSSLINE
|
||||||
|
0x00000000, 0x1ff01ff0, 0x18301830, 0x1f001830, 0x03001f00, 0x00000300, 0x03000300, 0x00000000, // ICON_HELP
|
||||||
|
0x3ff00000, 0x2abc3550, 0x2aac3554, 0x2aac3554, 0x2aac3554, 0x2aac3554, 0x2aac3554, 0x00003ffc, // ICON_FILETYPE_ALPHA
|
||||||
|
0x3ff00000, 0x201c2010, 0x22442184, 0x28142424, 0x29942814, 0x2ff42994, 0x20042004, 0x00003ffc, // ICON_FILETYPE_HOME
|
||||||
|
0x07fe0000, 0x04020402, 0x7fe20402, 0x44224422, 0x44224422, 0x402047fe, 0x40204020, 0x00007fe0, // ICON_LAYERS_VISIBLE
|
||||||
|
0x07fe0000, 0x04020402, 0x7c020402, 0x44024402, 0x44024402, 0x402047fe, 0x40204020, 0x00007fe0, // ICON_LAYERS
|
||||||
|
0x00000000, 0x40027ffe, 0x7ffe4002, 0x40024002, 0x40024002, 0x40024002, 0x7ffe4002, 0x00000000, // ICON_WINDOW
|
||||||
|
0x09100000, 0x09f00910, 0x09100910, 0x00000910, 0x24a2779e, 0x27a224a2, 0x709e20a2, 0x00000000, // ICON_HIDPI
|
||||||
|
0x3ff00000, 0x201c2010, 0x2a842e84, 0x2e842a84, 0x2ba42004, 0x2aa42aa4, 0x20042ba4, 0x00003ffc, // ICON_FILETYPE_BINARY
|
||||||
|
0x00000000, 0x00000000, 0x00120012, 0x4a5e4bd2, 0x485233d2, 0x00004bd2, 0x00000000, 0x00000000, // ICON_HEX
|
||||||
|
0x01800000, 0x381c0660, 0x23c42004, 0x23c42044, 0x13c82204, 0x08101008, 0x02400420, 0x00000180, // ICON_SHIELD
|
||||||
|
0x007e0000, 0x20023fc2, 0x40227fe2, 0x400a403a, 0x400a400a, 0x400a400a, 0x4008400e, 0x00007ff8, // ICON_FILE_NEW
|
||||||
|
0x00000000, 0x0042007e, 0x40027fc2, 0x44024002, 0x5f024402, 0x44024402, 0x7ffe4002, 0x00000000, // ICON_FOLDER_ADD
|
||||||
|
0x44220000, 0x12482244, 0xf3cf0000, 0x14280420, 0x48122424, 0x08100810, 0x1ff81008, 0x03c00420, // ICON_ALARM
|
||||||
|
0x0aa00000, 0x1ff80aa0, 0x1068700e, 0x1008706e, 0x1008700e, 0x1008700e, 0x0aa01ff8, 0x00000aa0, // ICON_CPU
|
||||||
|
0x07e00000, 0x04201db8, 0x04a01c38, 0x04a01d38, 0x04a01d38, 0x04a01d38, 0x04201d38, 0x000007e0, // ICON_ROM
|
||||||
|
0x00000000, 0x03c00000, 0x3c382ff0, 0x3c04380c, 0x01800000, 0x03c003c0, 0x00000180, 0x00000000, // ICON_STEP_OVER
|
||||||
|
0x01800000, 0x01800180, 0x01800180, 0x03c007e0, 0x00000180, 0x01800000, 0x03c003c0, 0x00000180, // ICON_STEP_INTO
|
||||||
|
0x01800000, 0x07e003c0, 0x01800180, 0x01800180, 0x00000180, 0x01800000, 0x03c003c0, 0x00000180, // ICON_STEP_OUT
|
||||||
|
0x00000000, 0x0ff003c0, 0x181c1c34, 0x303c301c, 0x30003000, 0x1c301800, 0x03c00ff0, 0x00000000, // ICON_RESTART
|
||||||
|
0x00000000, 0x00000000, 0x07e003c0, 0x0ff00ff0, 0x0ff00ff0, 0x03c007e0, 0x00000000, 0x00000000, // ICON_BREAKPOINT_ON
|
||||||
|
0x00000000, 0x00000000, 0x042003c0, 0x08100810, 0x08100810, 0x03c00420, 0x00000000, 0x00000000, // ICON_BREAKPOINT_OFF
|
||||||
|
0x00000000, 0x00000000, 0x1ff81ff8, 0x1ff80000, 0x00001ff8, 0x1ff81ff8, 0x00000000, 0x00000000, // ICON_BURGER_MENU
|
||||||
|
0x00000000, 0x00000000, 0x00880070, 0x0c880088, 0x1e8810f8, 0x3e881288, 0x00000000, 0x00000000, // ICON_CASE_SENSITIVE
|
||||||
|
0x00000000, 0x02000000, 0x07000a80, 0x07001fc0, 0x02000a80, 0x00300030, 0x00000000, 0x00000000, // ICON_REG_EXP
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_217
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_218
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_219
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_220
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_221
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_222
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_223
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_224
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_225
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_226
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_227
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_228
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_229
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_230
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_231
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_232
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_233
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_234
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_235
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_236
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_237
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_238
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_239
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_240
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_241
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_242
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_243
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_244
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_245
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_246
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_247
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_248
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_249
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_250
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_251
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_252
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_253
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_254
|
||||||
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // ICON_255
|
||||||
|
};
|
||||||
BIN
icons/raygui_icons.png
Normal file
|
After Width: | Height: | Size: 9.5 KiB |
BIN
icons/raygui_icons.rgi
Normal file
BIN
images/rguiicons_v100.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
images/rguilayout_v220.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 466 B After Width: | Height: | Size: 401 B |
|
Before Width: | Height: | Size: 189 B After Width: | Height: | Size: 124 B |
|
Before Width: | Height: | Size: 206 B After Width: | Height: | Size: 141 B |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 966 B |
|
Before Width: | Height: | Size: 235 B After Width: | Height: | Size: 170 B |
|
Before Width: | Height: | Size: 256 B After Width: | Height: | Size: 191 B |
BIN
logo/raygui_512x512.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 293 B After Width: | Height: | Size: 228 B |
|
Before Width: | Height: | Size: 365 B After Width: | Height: | Size: 300 B |
75
projects/CMake/CMakeLists.txt
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.11)
|
||||||
|
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
|
||||||
|
|
||||||
|
project(raygui C)
|
||||||
|
|
||||||
|
# Config options
|
||||||
|
option(BUILD_RAYGUI_EXAMPLES "Build the examples." OFF)
|
||||||
|
|
||||||
|
# Force building examples if building in the root as standalone.
|
||||||
|
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
|
||||||
|
set(BUILD_RAYGUI_EXAMPLES TRUE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Directory Variables
|
||||||
|
set(RAYGUI_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../..)
|
||||||
|
set(RAYGUI_SRC ${RAYGUI_ROOT}/src)
|
||||||
|
set(RAYGUI_EXAMPLES ${RAYGUI_ROOT}/examples)
|
||||||
|
|
||||||
|
# raygui
|
||||||
|
add_library(raygui INTERFACE)
|
||||||
|
file(GLOB sources ${RAYGUI_SRC}/*.h)
|
||||||
|
set(RAYGUI_HEADERS ${sources})
|
||||||
|
install(FILES
|
||||||
|
${RAYGUI_HEADERS} DESTINATION include
|
||||||
|
)
|
||||||
|
target_include_directories(raygui INTERFACE ${RAYGUI_SRC})
|
||||||
|
|
||||||
|
# Examples
|
||||||
|
if(${BUILD_RAYGUI_EXAMPLES})
|
||||||
|
find_package(Raylib)
|
||||||
|
|
||||||
|
# Get the sources together
|
||||||
|
set(example_dirs
|
||||||
|
controls_test_suite
|
||||||
|
custom_file_dialog
|
||||||
|
custom_sliders
|
||||||
|
image_exporter
|
||||||
|
image_importer_raw
|
||||||
|
portable_window
|
||||||
|
property_list
|
||||||
|
scroll_panel
|
||||||
|
style_selector
|
||||||
|
)
|
||||||
|
|
||||||
|
set(example_sources)
|
||||||
|
set(example_resources)
|
||||||
|
|
||||||
|
foreach(example_dir ${example_dirs})
|
||||||
|
# Get the .c files
|
||||||
|
file(GLOB sources ${RAYGUI_EXAMPLES}/${example_dir}/*.c)
|
||||||
|
list(APPEND example_sources ${sources})
|
||||||
|
|
||||||
|
# Any any resources
|
||||||
|
file(GLOB resources ${RAYGUI_EXAMPLES}/${example_dir}/resources/*)
|
||||||
|
list(APPEND example_resources ${resources})
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
# Do each example
|
||||||
|
foreach(example_source ${example_sources})
|
||||||
|
# Create the basename for the example
|
||||||
|
get_filename_component(example_name ${example_source} NAME)
|
||||||
|
string(REPLACE ".c" "${OUTPUT_EXT}" example_name ${example_name})
|
||||||
|
|
||||||
|
# Setup the example
|
||||||
|
add_executable(${example_name} ${example_source})
|
||||||
|
|
||||||
|
target_link_libraries(${example_name} PUBLIC raylib raygui)
|
||||||
|
|
||||||
|
string(REGEX MATCH ".*/.*/" resources_dir ${example_source})
|
||||||
|
string(APPEND resources_dir "resources")
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
# Copy all of the resource files to the destination
|
||||||
|
file(COPY ${example_resources} DESTINATION "resources/")
|
||||||
|
endif()
|
||||||
13
projects/CMake/README.md
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# raygui CMake Definitions
|
||||||
|
|
||||||
|
This provides CMake definition files for raygui.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
```
|
||||||
|
cd projects/CMake
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake ..
|
||||||
|
make
|
||||||
|
```
|
||||||
17
projects/CMake/cmake/FindRaylib.cmake
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
find_package(raylib 4.5.0 QUIET CONFIG)
|
||||||
|
if (NOT raylib_FOUND)
|
||||||
|
include(FetchContent)
|
||||||
|
FetchContent_Declare(
|
||||||
|
raylib
|
||||||
|
GIT_REPOSITORY https://github.com/raysan5/raylib.git
|
||||||
|
GIT_TAG 4.5.0
|
||||||
|
)
|
||||||
|
FetchContent_GetProperties(raylib)
|
||||||
|
if (NOT raylib_POPULATED) # Have we downloaded raylib yet?
|
||||||
|
set(FETCHCONTENT_QUIET NO)
|
||||||
|
FetchContent_Populate(raylib)
|
||||||
|
set(BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) # don't build the supplied examples
|
||||||
|
set(BUILD_GAMES OFF CACHE BOOL "" FORCE) # or games
|
||||||
|
add_subdirectory(${raylib_SOURCE_DIR} ${raylib_BINARY_DIR})
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
363
projects/VS2022/examples/animation_curve.vcxproj
Normal file
@ -0,0 +1,363 @@
|
|||||||
|
<?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>{50A98C3D-C898-4830-A00B-3F78DC2E742B}</ProjectGuid>
|
||||||
|
<Keyword>Win32Proj</Keyword>
|
||||||
|
<RootNamespace>style_selector</RootNamespace>
|
||||||
|
<ProjectName>animation_curve</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\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">
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
||||||
360
projects/VS2022/examples/controls_test_suite.vcxproj
Normal file
@ -0,0 +1,360 @@
|
|||||||
|
<?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>{0981CA98-E4A5-4DF1-987F-A41D09131EFC}</ProjectGuid>
|
||||||
|
<Keyword>Win32Proj</Keyword>
|
||||||
|
<RootNamespace>controls_test_suite</RootNamespace>
|
||||||
|
<ProjectName>controls_test_suite</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\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>
|
||||||
|
</Project>
|
||||||
363
projects/VS2022/examples/custom_file_dialog.vcxproj
Normal file
@ -0,0 +1,363 @@
|
|||||||
|
<?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>{E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}</ProjectGuid>
|
||||||
|
<Keyword>Win32Proj</Keyword>
|
||||||
|
<RootNamespace>custom_file_dialog</RootNamespace>
|
||||||
|
<ProjectName>custom_file_dialog</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\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>
|
||||||
|
</Project>
|
||||||
360
projects/VS2022/examples/image_exporter.vcxproj
Normal file
@ -0,0 +1,360 @@
|
|||||||
|
<?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>{67B2B88C-EA52-403F-A596-5107008C71F2}</ProjectGuid>
|
||||||
|
<Keyword>Win32Proj</Keyword>
|
||||||
|
<RootNamespace>image_exporter</RootNamespace>
|
||||||
|
<ProjectName>image_exporter</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\image_exporter\image_exporter.c" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ResourceCompile Include="..\..\..\examples\raygui.rc" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
||||||
360
projects/VS2022/examples/image_importer_raw.vcxproj
Normal file
@ -0,0 +1,360 @@
|
|||||||
|
<?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>{6628D753-270D-418D-A87F-6E2E63B9E3D0}</ProjectGuid>
|
||||||
|
<Keyword>Win32Proj</Keyword>
|
||||||
|
<RootNamespace>image_importer_raw</RootNamespace>
|
||||||
|
<ProjectName>image_importer_raw</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\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>
|
||||||
|
</Project>
|
||||||
360
projects/VS2022/examples/portable_window.vcxproj
Normal file
@ -0,0 +1,360 @@
|
|||||||
|
<?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>{FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}</ProjectGuid>
|
||||||
|
<Keyword>Win32Proj</Keyword>
|
||||||
|
<RootNamespace>portable_window</RootNamespace>
|
||||||
|
<ProjectName>portable_window</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\portable_window\portable_window.c" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ResourceCompile Include="..\..\..\examples\raygui.rc" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
||||||
360
projects/VS2022/examples/property_list.vcxproj
Normal file
@ -0,0 +1,360 @@
|
|||||||
|
<?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>{D28301C9-C293-4F41-9F58-F2609F33134E}</ProjectGuid>
|
||||||
|
<Keyword>Win32Proj</Keyword>
|
||||||
|
<RootNamespace>property_list</RootNamespace>
|
||||||
|
<ProjectName>property_list</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\property_list\property_list.c" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ResourceCompile Include="..\..\..\examples\raygui.rc" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
||||||
360
projects/VS2022/examples/scroll_panel.vcxproj
Normal file
@ -0,0 +1,360 @@
|
|||||||
|
<?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>{56EE93DF-A3AF-4856-A4EC-E27358C6DA87}</ProjectGuid>
|
||||||
|
<Keyword>Win32Proj</Keyword>
|
||||||
|
<RootNamespace>scroll_panel</RootNamespace>
|
||||||
|
<ProjectName>scroll_panel</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\scroll_panel\scroll_panel.c" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ResourceCompile Include="..\..\..\examples\raygui.rc" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
||||||
360
projects/VS2022/examples/style_selector.vcxproj
Normal file
@ -0,0 +1,360 @@
|
|||||||
|
<?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>{BCF5E746-FDBF-4CAC-9B95-44FE9A498430}</ProjectGuid>
|
||||||
|
<Keyword>Win32Proj</Keyword>
|
||||||
|
<RootNamespace>style_selector</RootNamespace>
|
||||||
|
<ProjectName>style_selector</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\style_selector\style_selector.c" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ResourceCompile Include="..\..\..\examples\raygui.rc" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
||||||
27
projects/VS2022/examples/test.props
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
#
|
||||||
|
# Property types:
|
||||||
|
# b <name> <flags> <value> // Bool
|
||||||
|
# i <name> <flags> <value> <min> <max> <step> // Int
|
||||||
|
# f <name> <flags> <value> <min> <max> <step> <precision> // Float
|
||||||
|
# t <name> <flags> <value> <edit_length> // Text
|
||||||
|
# l <name> <flags> <value> <active> // Select
|
||||||
|
# g <name> <flags> <value> // Section (Group)
|
||||||
|
# v2 <name> <flags> <x> <y> // Vector 2D
|
||||||
|
# v3 <name> <flags> <x> <y> <z> // Vector 3D
|
||||||
|
# v4 <name> <flags> <x> <y> <z> <w> // Vector 4D
|
||||||
|
# r <name> <flags> <x> <y> <width> <height> // Rectangle
|
||||||
|
# c <name> <flags> <r> <g> <b> <a> // Color
|
||||||
|
#
|
||||||
|
|
||||||
|
b Bool 0 1
|
||||||
|
g #102#SECTION 0 2
|
||||||
|
i Int 0 123 0 0 1
|
||||||
|
f Float 0 0.990000 0.000000 0.000000 1.000000 3
|
||||||
|
t Text 0 Hello! 30
|
||||||
|
l Select 0 ONE;TWO;THREE;FOUR 0
|
||||||
|
i Int Range 0 32 0 100 1
|
||||||
|
r Rect 0 0 0 100 200
|
||||||
|
v2 Vec2 0 20.000000 20.000000
|
||||||
|
v3 Vec3 0 12.000000 13.000000 14.000000
|
||||||
|
v4 Vec4 0 12.000000 13.000000 14.000000 15.000000
|
||||||
|
c Color 0 0 255 0 255
|
||||||
218
projects/VS2022/raygui.sln
Normal file
@ -0,0 +1,218 @@
|
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Version 17
|
||||||
|
VisualStudioVersion = 17.0.31912.275
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "controls_test_suite", "examples\controls_test_suite.vcxproj", "{0981CA98-E4A5-4DF1-987F-A41D09131EFC}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "raylib", "raylib\raylib.vcxproj", "{E89D61AC-55DE-4482-AFD4-DF7242EBC859}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "custom_file_dialog", "examples\custom_file_dialog.vcxproj", "{E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "image_exporter", "examples\image_exporter.vcxproj", "{67B2B88C-EA52-403F-A596-5107008C71F2}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "image_importer_raw", "examples\image_importer_raw.vcxproj", "{6628D753-270D-418D-A87F-6E2E63B9E3D0}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "portable_window", "examples\portable_window.vcxproj", "{FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "property_list", "examples\property_list.vcxproj", "{D28301C9-C293-4F41-9F58-F2609F33134E}"
|
||||||
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "scroll_panel", "examples\scroll_panel.vcxproj", "{56EE93DF-A3AF-4856-A4EC-E27358C6DA87}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "examples", "examples", "{5DC256E9-D698-4D07-8AD7-DFDAE9125DE3}"
|
||||||
|
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
|
||||||
|
Debug.DLL|x86 = Debug.DLL|x86
|
||||||
|
Debug|x64 = Debug|x64
|
||||||
|
Debug|x86 = Debug|x86
|
||||||
|
Release.DLL|x64 = Release.DLL|x64
|
||||||
|
Release.DLL|x86 = Release.DLL|x86
|
||||||
|
Release|x64 = Release|x64
|
||||||
|
Release|x86 = Release|x86
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64
|
||||||
|
{0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Debug.DLL|x64.Build.0 = Debug.DLL|x64
|
||||||
|
{0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32
|
||||||
|
{0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32
|
||||||
|
{0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Debug|x86.ActiveCfg = Debug|Win32
|
||||||
|
{0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Debug|x86.Build.0 = Debug|Win32
|
||||||
|
{0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Release.DLL|x64.ActiveCfg = Release.DLL|x64
|
||||||
|
{0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Release.DLL|x64.Build.0 = Release.DLL|x64
|
||||||
|
{0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32
|
||||||
|
{0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Release.DLL|x86.Build.0 = Release.DLL|Win32
|
||||||
|
{0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Release|x64.Build.0 = Release|x64
|
||||||
|
{0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Release|x86.ActiveCfg = Release|Win32
|
||||||
|
{0981CA98-E4A5-4DF1-987F-A41D09131EFC}.Release|x86.Build.0 = Release|Win32
|
||||||
|
{E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64
|
||||||
|
{E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Debug.DLL|x64.Build.0 = Debug.DLL|x64
|
||||||
|
{E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32
|
||||||
|
{E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32
|
||||||
|
{E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Debug|x86.ActiveCfg = Debug|Win32
|
||||||
|
{E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Debug|x86.Build.0 = Debug|Win32
|
||||||
|
{E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Release.DLL|x64.ActiveCfg = Release.DLL|x64
|
||||||
|
{E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Release.DLL|x64.Build.0 = Release.DLL|x64
|
||||||
|
{E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32
|
||||||
|
{E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Release.DLL|x86.Build.0 = Release.DLL|Win32
|
||||||
|
{E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Release|x64.Build.0 = Release|x64
|
||||||
|
{E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Release|x86.ActiveCfg = Release|Win32
|
||||||
|
{E89D61AC-55DE-4482-AFD4-DF7242EBC859}.Release|x86.Build.0 = Release|Win32
|
||||||
|
{E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64
|
||||||
|
{E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}.Debug.DLL|x64.Build.0 = Debug.DLL|x64
|
||||||
|
{E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32
|
||||||
|
{E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32
|
||||||
|
{E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}.Debug|x86.ActiveCfg = Debug|Win32
|
||||||
|
{E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}.Debug|x86.Build.0 = Debug|Win32
|
||||||
|
{E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}.Release.DLL|x64.ActiveCfg = Release.DLL|x64
|
||||||
|
{E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}.Release.DLL|x64.Build.0 = Release.DLL|x64
|
||||||
|
{E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32
|
||||||
|
{E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}.Release.DLL|x86.Build.0 = Release.DLL|Win32
|
||||||
|
{E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}.Release|x64.Build.0 = Release|x64
|
||||||
|
{E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}.Release|x86.ActiveCfg = Release|Win32
|
||||||
|
{E1CF5310-BCF6-4063-861D-EDFF65D9FE2A}.Release|x86.Build.0 = Release|Win32
|
||||||
|
{67B2B88C-EA52-403F-A596-5107008C71F2}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64
|
||||||
|
{67B2B88C-EA52-403F-A596-5107008C71F2}.Debug.DLL|x64.Build.0 = Debug.DLL|x64
|
||||||
|
{67B2B88C-EA52-403F-A596-5107008C71F2}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32
|
||||||
|
{67B2B88C-EA52-403F-A596-5107008C71F2}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32
|
||||||
|
{67B2B88C-EA52-403F-A596-5107008C71F2}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{67B2B88C-EA52-403F-A596-5107008C71F2}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{67B2B88C-EA52-403F-A596-5107008C71F2}.Debug|x86.ActiveCfg = Debug|Win32
|
||||||
|
{67B2B88C-EA52-403F-A596-5107008C71F2}.Debug|x86.Build.0 = Debug|Win32
|
||||||
|
{67B2B88C-EA52-403F-A596-5107008C71F2}.Release.DLL|x64.ActiveCfg = Release.DLL|x64
|
||||||
|
{67B2B88C-EA52-403F-A596-5107008C71F2}.Release.DLL|x64.Build.0 = Release.DLL|x64
|
||||||
|
{67B2B88C-EA52-403F-A596-5107008C71F2}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32
|
||||||
|
{67B2B88C-EA52-403F-A596-5107008C71F2}.Release.DLL|x86.Build.0 = Release.DLL|Win32
|
||||||
|
{67B2B88C-EA52-403F-A596-5107008C71F2}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{67B2B88C-EA52-403F-A596-5107008C71F2}.Release|x64.Build.0 = Release|x64
|
||||||
|
{67B2B88C-EA52-403F-A596-5107008C71F2}.Release|x86.ActiveCfg = Release|Win32
|
||||||
|
{67B2B88C-EA52-403F-A596-5107008C71F2}.Release|x86.Build.0 = Release|Win32
|
||||||
|
{6628D753-270D-418D-A87F-6E2E63B9E3D0}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64
|
||||||
|
{6628D753-270D-418D-A87F-6E2E63B9E3D0}.Debug.DLL|x64.Build.0 = Debug.DLL|x64
|
||||||
|
{6628D753-270D-418D-A87F-6E2E63B9E3D0}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32
|
||||||
|
{6628D753-270D-418D-A87F-6E2E63B9E3D0}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32
|
||||||
|
{6628D753-270D-418D-A87F-6E2E63B9E3D0}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{6628D753-270D-418D-A87F-6E2E63B9E3D0}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{6628D753-270D-418D-A87F-6E2E63B9E3D0}.Debug|x86.ActiveCfg = Debug|Win32
|
||||||
|
{6628D753-270D-418D-A87F-6E2E63B9E3D0}.Debug|x86.Build.0 = Debug|Win32
|
||||||
|
{6628D753-270D-418D-A87F-6E2E63B9E3D0}.Release.DLL|x64.ActiveCfg = Release.DLL|x64
|
||||||
|
{6628D753-270D-418D-A87F-6E2E63B9E3D0}.Release.DLL|x64.Build.0 = Release.DLL|x64
|
||||||
|
{6628D753-270D-418D-A87F-6E2E63B9E3D0}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32
|
||||||
|
{6628D753-270D-418D-A87F-6E2E63B9E3D0}.Release.DLL|x86.Build.0 = Release.DLL|Win32
|
||||||
|
{6628D753-270D-418D-A87F-6E2E63B9E3D0}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{6628D753-270D-418D-A87F-6E2E63B9E3D0}.Release|x64.Build.0 = Release|x64
|
||||||
|
{6628D753-270D-418D-A87F-6E2E63B9E3D0}.Release|x86.ActiveCfg = Release|Win32
|
||||||
|
{6628D753-270D-418D-A87F-6E2E63B9E3D0}.Release|x86.Build.0 = Release|Win32
|
||||||
|
{FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64
|
||||||
|
{FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}.Debug.DLL|x64.Build.0 = Debug.DLL|x64
|
||||||
|
{FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32
|
||||||
|
{FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32
|
||||||
|
{FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}.Debug|x86.ActiveCfg = Debug|Win32
|
||||||
|
{FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}.Debug|x86.Build.0 = Debug|Win32
|
||||||
|
{FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}.Release.DLL|x64.ActiveCfg = Release.DLL|x64
|
||||||
|
{FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}.Release.DLL|x64.Build.0 = Release.DLL|x64
|
||||||
|
{FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32
|
||||||
|
{FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}.Release.DLL|x86.Build.0 = Release.DLL|Win32
|
||||||
|
{FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}.Release|x64.Build.0 = Release|x64
|
||||||
|
{FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}.Release|x86.ActiveCfg = Release|Win32
|
||||||
|
{FFDA97F5-4BAF-410A-AE87-0C8E3CB8C0D8}.Release|x86.Build.0 = Release|Win32
|
||||||
|
{D28301C9-C293-4F41-9F58-F2609F33134E}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64
|
||||||
|
{D28301C9-C293-4F41-9F58-F2609F33134E}.Debug.DLL|x64.Build.0 = Debug.DLL|x64
|
||||||
|
{D28301C9-C293-4F41-9F58-F2609F33134E}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32
|
||||||
|
{D28301C9-C293-4F41-9F58-F2609F33134E}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32
|
||||||
|
{D28301C9-C293-4F41-9F58-F2609F33134E}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{D28301C9-C293-4F41-9F58-F2609F33134E}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{D28301C9-C293-4F41-9F58-F2609F33134E}.Debug|x86.ActiveCfg = Debug|Win32
|
||||||
|
{D28301C9-C293-4F41-9F58-F2609F33134E}.Debug|x86.Build.0 = Debug|Win32
|
||||||
|
{D28301C9-C293-4F41-9F58-F2609F33134E}.Release.DLL|x64.ActiveCfg = Release.DLL|x64
|
||||||
|
{D28301C9-C293-4F41-9F58-F2609F33134E}.Release.DLL|x64.Build.0 = Release.DLL|x64
|
||||||
|
{D28301C9-C293-4F41-9F58-F2609F33134E}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32
|
||||||
|
{D28301C9-C293-4F41-9F58-F2609F33134E}.Release.DLL|x86.Build.0 = Release.DLL|Win32
|
||||||
|
{D28301C9-C293-4F41-9F58-F2609F33134E}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{D28301C9-C293-4F41-9F58-F2609F33134E}.Release|x64.Build.0 = Release|x64
|
||||||
|
{D28301C9-C293-4F41-9F58-F2609F33134E}.Release|x86.ActiveCfg = Release|Win32
|
||||||
|
{D28301C9-C293-4F41-9F58-F2609F33134E}.Release|x86.Build.0 = Release|Win32
|
||||||
|
{56EE93DF-A3AF-4856-A4EC-E27358C6DA87}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64
|
||||||
|
{56EE93DF-A3AF-4856-A4EC-E27358C6DA87}.Debug.DLL|x64.Build.0 = Debug.DLL|x64
|
||||||
|
{56EE93DF-A3AF-4856-A4EC-E27358C6DA87}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32
|
||||||
|
{56EE93DF-A3AF-4856-A4EC-E27358C6DA87}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32
|
||||||
|
{56EE93DF-A3AF-4856-A4EC-E27358C6DA87}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{56EE93DF-A3AF-4856-A4EC-E27358C6DA87}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{56EE93DF-A3AF-4856-A4EC-E27358C6DA87}.Debug|x86.ActiveCfg = Debug|Win32
|
||||||
|
{56EE93DF-A3AF-4856-A4EC-E27358C6DA87}.Debug|x86.Build.0 = Debug|Win32
|
||||||
|
{56EE93DF-A3AF-4856-A4EC-E27358C6DA87}.Release.DLL|x64.ActiveCfg = Release.DLL|x64
|
||||||
|
{56EE93DF-A3AF-4856-A4EC-E27358C6DA87}.Release.DLL|x64.Build.0 = Release.DLL|x64
|
||||||
|
{56EE93DF-A3AF-4856-A4EC-E27358C6DA87}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32
|
||||||
|
{56EE93DF-A3AF-4856-A4EC-E27358C6DA87}.Release.DLL|x86.Build.0 = Release.DLL|Win32
|
||||||
|
{56EE93DF-A3AF-4856-A4EC-E27358C6DA87}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{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
|
||||||
|
{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
|
||||||
|
{BCF5E746-FDBF-4CAC-9B95-44FE9A498430}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32
|
||||||
|
{BCF5E746-FDBF-4CAC-9B95-44FE9A498430}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{BCF5E746-FDBF-4CAC-9B95-44FE9A498430}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{BCF5E746-FDBF-4CAC-9B95-44FE9A498430}.Debug|x86.ActiveCfg = Debug|Win32
|
||||||
|
{BCF5E746-FDBF-4CAC-9B95-44FE9A498430}.Debug|x86.Build.0 = Debug|Win32
|
||||||
|
{BCF5E746-FDBF-4CAC-9B95-44FE9A498430}.Release.DLL|x64.ActiveCfg = Release.DLL|x64
|
||||||
|
{BCF5E746-FDBF-4CAC-9B95-44FE9A498430}.Release.DLL|x64.Build.0 = Release.DLL|x64
|
||||||
|
{BCF5E746-FDBF-4CAC-9B95-44FE9A498430}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32
|
||||||
|
{BCF5E746-FDBF-4CAC-9B95-44FE9A498430}.Release.DLL|x86.Build.0 = Release.DLL|Win32
|
||||||
|
{BCF5E746-FDBF-4CAC-9B95-44FE9A498430}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{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
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(NestedProjects) = preSolution
|
||||||
|
{0981CA98-E4A5-4DF1-987F-A41D09131EFC} = {5DC256E9-D698-4D07-8AD7-DFDAE9125DE3}
|
||||||
|
{E1CF5310-BCF6-4063-861D-EDFF65D9FE2A} = {5DC256E9-D698-4D07-8AD7-DFDAE9125DE3}
|
||||||
|
{67B2B88C-EA52-403F-A596-5107008C71F2} = {5DC256E9-D698-4D07-8AD7-DFDAE9125DE3}
|
||||||
|
{6628D753-270D-418D-A87F-6E2E63B9E3D0} = {5DC256E9-D698-4D07-8AD7-DFDAE9125DE3}
|
||||||
|
{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}
|
||||||
|
{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}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
||||||
342
projects/VS2022/raylib/raylib.vcxproj
Normal file
@ -0,0 +1,342 @@
|
|||||||
|
<?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>{E89D61AC-55DE-4482-AFD4-DF7242EBC859}</ProjectGuid>
|
||||||
|
<Keyword>Win32Proj</Keyword>
|
||||||
|
<RootNamespace>raylib</RootNamespace>
|
||||||
|
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug.DLL|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug.DLL|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
|
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release.DLL|Win32'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||||
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release.DLL|x64'" Label="Configuration">
|
||||||
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||||
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
|
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||||
|
<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)'=='Release|Win32'">
|
||||||
|
<OutDir>$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\</OutDir>
|
||||||
|
<IntDir>$(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\</IntDir>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||||
|
<OutDir>$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\</OutDir>
|
||||||
|
<IntDir>$(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\</IntDir>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release.DLL|Win32'">
|
||||||
|
<OutDir>$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\</OutDir>
|
||||||
|
<IntDir>$(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\</IntDir>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<OutDir>$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\</OutDir>
|
||||||
|
<IntDir>$(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\</IntDir>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug.DLL|Win32'">
|
||||||
|
<OutDir>$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\</OutDir>
|
||||||
|
<IntDir>$(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\</IntDir>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<IntDir>$(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\</IntDir>
|
||||||
|
<OutDir>$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\</OutDir>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug.DLL|x64'">
|
||||||
|
<IntDir>$(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\</IntDir>
|
||||||
|
<OutDir>$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\</OutDir>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release.DLL|x64'">
|
||||||
|
<IntDir>$(SolutionDir)\build\$(ProjectName)\obj\$(Platform)\$(Configuration)\</IntDir>
|
||||||
|
<OutDir>$(SolutionDir)\build\$(ProjectName)\bin\$(Platform)\$(Configuration)\</OutDir>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions);GRAPHICS_API_OPENGL_33;PLATFORM_DESKTOP</PreprocessorDefinitions>
|
||||||
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\..\raylib\src\external\glfw\include</AdditionalIncludeDirectories>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
</Link>
|
||||||
|
<Lib>
|
||||||
|
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
|
</Lib>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions);GRAPHICS_API_OPENGL_33;PLATFORM_DESKTOP</PreprocessorDefinitions>
|
||||||
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\..\raylib\src\external\glfw\include</AdditionalIncludeDirectories>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
</Link>
|
||||||
|
<Lib>
|
||||||
|
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
|
</Lib>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug.DLL|Win32'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions);GRAPHICS_API_OPENGL_33;PLATFORM_DESKTOP;BUILD_LIBTYPE_SHARED</PreprocessorDefinitions>
|
||||||
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\..\raylib\src\external\glfw\include</AdditionalIncludeDirectories>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<AdditionalDependencies>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>
|
||||||
|
<Lib>
|
||||||
|
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
|
</Lib>
|
||||||
|
</ItemDefinitionGroup>
|
||||||
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug.DLL|x64'">
|
||||||
|
<ClCompile>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<Optimization>Disabled</Optimization>
|
||||||
|
<PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions);GRAPHICS_API_OPENGL_33;PLATFORM_DESKTOP;BUILD_LIBTYPE_SHARED</PreprocessorDefinitions>
|
||||||
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\..\raylib\src\external\glfw\include</AdditionalIncludeDirectories>
|
||||||
|
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<AdditionalDependencies>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>
|
||||||
|
<Lib>
|
||||||
|
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||||
|
</Lib>
|
||||||
|
</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;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions);GRAPHICS_API_OPENGL_33;PLATFORM_DESKTOP</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\..\raylib\src\external\glfw\include</AdditionalIncludeDirectories>
|
||||||
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
</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_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions);GRAPHICS_API_OPENGL_33;PLATFORM_DESKTOP</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\..\raylib\src\external\glfw\include</AdditionalIncludeDirectories>
|
||||||
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
<DebugInformationFormat />
|
||||||
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
</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;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions);GRAPHICS_API_OPENGL_33;PLATFORM_DESKTOP;BUILD_LIBTYPE_SHARED</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\..\raylib\src\external\glfw\include</AdditionalIncludeDirectories>
|
||||||
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<AdditionalDependencies>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)'=='Release.DLL|x64'">
|
||||||
|
<ClCompile>
|
||||||
|
<WarningLevel>Level3</WarningLevel>
|
||||||
|
<PrecompiledHeader>
|
||||||
|
</PrecompiledHeader>
|
||||||
|
<Optimization>MaxSpeed</Optimization>
|
||||||
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||||
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||||
|
<PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions);GRAPHICS_API_OPENGL_33;PLATFORM_DESKTOP;BUILD_LIBTYPE_SHARED</PreprocessorDefinitions>
|
||||||
|
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\..\raylib\src\external\glfw\include</AdditionalIncludeDirectories>
|
||||||
|
<CompileAs>CompileAsC</CompileAs>
|
||||||
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
|
<DebugInformationFormat />
|
||||||
|
</ClCompile>
|
||||||
|
<Link>
|
||||||
|
<SubSystem>Windows</SubSystem>
|
||||||
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||||
|
<OptimizeReferences>true</OptimizeReferences>
|
||||||
|
<AdditionalDependencies>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>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClCompile Include="$(ProjectDir)..\..\..\..\raylib\src\raudio.c" />
|
||||||
|
<ClCompile Include="$(ProjectDir)..\..\..\..\raylib\src\rcore.c" />
|
||||||
|
<ClCompile Include="$(ProjectDir)..\..\..\..\raylib\src\rmodels.c" />
|
||||||
|
<ClCompile Include="$(ProjectDir)..\..\..\..\raylib\src\rglfw.c" />
|
||||||
|
<ClCompile Include="$(ProjectDir)..\..\..\..\raylib\src\rshapes.c" />
|
||||||
|
<ClCompile Include="$(ProjectDir)..\..\..\..\raylib\src\rtext.c" />
|
||||||
|
<ClCompile Include="$(ProjectDir)..\..\..\..\raylib\src\rtextures.c" />
|
||||||
|
<ClCompile Include="$(ProjectDir)..\..\..\..\raylib\src\utils.c" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="$(ProjectDir)..\..\..\..\raylib\src\external\cgltf.h" />
|
||||||
|
<ClInclude Include="$(ProjectDir)..\..\..\..\raylib\src\rcamera.h" />
|
||||||
|
<ClInclude Include="$(ProjectDir)..\..\..\..\raylib\src\config.h" />
|
||||||
|
<ClInclude Include="$(ProjectDir)..\..\..\..\raylib\src\external\glad.h" />
|
||||||
|
<ClInclude Include="$(ProjectDir)..\..\..\..\raylib\src\external\jar_mod.h" />
|
||||||
|
<ClInclude Include="$(ProjectDir)..\..\..\..\raylib\src\external\jar_xm.h" />
|
||||||
|
<ClInclude Include="$(ProjectDir)..\..\..\..\raylib\src\external\miniaudio.h" />
|
||||||
|
<ClInclude Include="$(ProjectDir)..\..\..\..\raylib\src\external\stb_image.h" />
|
||||||
|
<ClInclude Include="$(ProjectDir)..\..\..\..\raylib\src\external\stb_image_resize.h" />
|
||||||
|
<ClInclude Include="$(ProjectDir)..\..\..\..\raylib\src\external\stb_image_write.h" />
|
||||||
|
<ClInclude Include="$(ProjectDir)..\..\..\..\raylib\src\external\stb_rect_pack.h" />
|
||||||
|
<ClInclude Include="$(ProjectDir)..\..\..\..\raylib\src\external\stb_truetype.h" />
|
||||||
|
<ClInclude Include="$(ProjectDir)..\..\..\..\raylib\src\external\stb_vorbis.h" />
|
||||||
|
<ClInclude Include="$(ProjectDir)..\..\..\..\raylib\src\rgestures.h" />
|
||||||
|
<ClInclude Include="$(ProjectDir)..\..\..\..\raylib\src\raylib.h" />
|
||||||
|
<ClInclude Include="$(ProjectDir)..\..\..\..\raylib\src\raymath.h" />
|
||||||
|
<ClInclude Include="$(ProjectDir)..\..\..\..\raylib\src\rlgl.h" />
|
||||||
|
<ClInclude Include="$(ProjectDir)..\..\..\..\raylib\src\utils.h" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ResourceCompile Include="..\..\..\..\raylib\src\raylib.dll.rc" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
|
<ImportGroup Label="ExtensionTargets">
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
||||||
6472
src/raygui.h
493
src/ricons.h
@ -1,493 +0,0 @@
|
|||||||
/**********************************************************************************************
|
|
||||||
*
|
|
||||||
* rIcons - Icons pack intended for tools development with raygui
|
|
||||||
*
|
|
||||||
* CONFIGURATION:
|
|
||||||
*
|
|
||||||
* #define RICONS_IMPLEMENTATION
|
|
||||||
* Generates the implementation of the library into the included file.
|
|
||||||
* If not defined, the library is in header only mode and can be included in other headers
|
|
||||||
* or source files without problems. But only ONE file should hold the implementation.
|
|
||||||
*
|
|
||||||
* #define RICONS_STANDALONE
|
|
||||||
* Avoid raylib.h header inclusion in this file. Icon drawing function must be provided by
|
|
||||||
* the user (check library implementation for further details).
|
|
||||||
*
|
|
||||||
* LICENSE: zlib/libpng
|
|
||||||
*
|
|
||||||
* Copyright (c) 2019 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.
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
**********************************************************************************************/
|
|
||||||
|
|
||||||
#ifndef RICONS_H
|
|
||||||
#define RICONS_H
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
// Defines and Macros
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
#define RICONS_COUNT 199 // Number of icons included
|
|
||||||
#define RICONS_SIZE 16 // Size of icons (squared)
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
// Icons enumeration
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
typedef enum {
|
|
||||||
RICON_NONE = 0,
|
|
||||||
RICON_FOLDER_FILE_OPEN,
|
|
||||||
RICON_FILE_SAVE_CLASSIC,
|
|
||||||
RICON_FOLDER_OPEN,
|
|
||||||
RICON_FOLDER_SAVE,
|
|
||||||
RICON_FILE_OPEN,
|
|
||||||
RICON_FILE_SAVE,
|
|
||||||
RICON_FILE_EXPORT,
|
|
||||||
RICON_FILE_NEW,
|
|
||||||
RICON_FILE_DELETE,
|
|
||||||
RICON_FILETYPE_TEXT,
|
|
||||||
RICON_FILETYPE_AUDIO,
|
|
||||||
RICON_FILETYPE_IMAGE,
|
|
||||||
RICON_FILETYPE_PLAY,
|
|
||||||
RICON_FILETYPE_VIDEO,
|
|
||||||
RICON_FILETYPE_INFO,
|
|
||||||
RICON_FILE_COPY,
|
|
||||||
RICON_FILE_CUT,
|
|
||||||
RICON_FILE_PASTE,
|
|
||||||
RICON_CURSOR_HAND,
|
|
||||||
RICON_CURSOR_POINTER,
|
|
||||||
RICON_CURSOR_CLASSIC,
|
|
||||||
RICON_PENCIL,
|
|
||||||
RICON_PENCIL_BIG,
|
|
||||||
RICON_BRUSH_CLASSIC,
|
|
||||||
RICON_BRUSH_PAINTER,
|
|
||||||
RICON_WATER_DROP,
|
|
||||||
RICON_COLOR_PICKER,
|
|
||||||
RICON_RUBBER,
|
|
||||||
RICON_COLOR_BUCKET,
|
|
||||||
RICON_TEXT_T,
|
|
||||||
RICON_TEXT_A,
|
|
||||||
RICON_SCALE,
|
|
||||||
RICON_RESIZE,
|
|
||||||
RICON_FILTER_POINT,
|
|
||||||
RICON_FILTER_BILINEAR,
|
|
||||||
RICON_CROP,
|
|
||||||
RICON_CROP_ALPHA,
|
|
||||||
RICON_SQUARE_TOGGLE,
|
|
||||||
RICON_SIMMETRY,
|
|
||||||
RICON_SIMMETRY_HORIZONTAL,
|
|
||||||
RICON_SIMMETRY_VERTICAL,
|
|
||||||
RICON_LENS,
|
|
||||||
RICON_LENS_BIG,
|
|
||||||
RICON_EYE_ON,
|
|
||||||
RICON_EYE_OFF,
|
|
||||||
RICON_FILTER_TOP,
|
|
||||||
RICON_FILTER,
|
|
||||||
RICON_TARGET_POINT,
|
|
||||||
RICON_TARGET_SMALL,
|
|
||||||
RICON_TARGET_BIG,
|
|
||||||
RICON_TARGET_MOVE,
|
|
||||||
RICON_CURSOR_MOVE,
|
|
||||||
RICON_CURSOR_SCALE,
|
|
||||||
RICON_CURSOR_SCALE_RIGHT,
|
|
||||||
RICON_CURSOR_SCALE_LEFT,
|
|
||||||
RICON_UNDO,
|
|
||||||
RICON_REDO,
|
|
||||||
RICON_REREDO,
|
|
||||||
RICON_MUTATE,
|
|
||||||
RICON_ROTATE,
|
|
||||||
RICON_REPEAT,
|
|
||||||
RICON_SHUFFLE,
|
|
||||||
RICON_EMPTYBOX,
|
|
||||||
RICON_TARGET,
|
|
||||||
RICON_TARGET_SMALL_FILL,
|
|
||||||
RICON_TARGET_BIG_FILL,
|
|
||||||
RICON_TARGET_MOVE_FILL,
|
|
||||||
RICON_CURSOR_MOVE_FILL,
|
|
||||||
RICON_CURSOR_SCALE_FILL,
|
|
||||||
RICON_CURSOR_SCALE_RIGHT_FILL,
|
|
||||||
RICON_CURSOR_SCALE_LEFT_FILL,
|
|
||||||
RICON_UNDO_FILL,
|
|
||||||
RICON_REDO_FILL,
|
|
||||||
RICON_REREDO_FILL,
|
|
||||||
RICON_MUTATE_FILL,
|
|
||||||
RICON_ROTATE_FILL,
|
|
||||||
RICON_REPEAT_FILL,
|
|
||||||
RICON_SHUFFLE_FILL,
|
|
||||||
RICON_EMPTYBOX_SMALL,
|
|
||||||
RICON_BOX,
|
|
||||||
RICON_BOX_TOP,
|
|
||||||
RICON_BOX_TOP_RIGHT,
|
|
||||||
RICON_BOX_RIGHT,
|
|
||||||
RICON_BOX_BOTTOM_RIGHT,
|
|
||||||
RICON_BOX_BOTTOM,
|
|
||||||
RICON_BOX_BOTTOM_LEFT,
|
|
||||||
RICON_BOX_LEFT,
|
|
||||||
RICON_BOX_TOP_LEFT,
|
|
||||||
RICON_BOX_CENTER,
|
|
||||||
RICON_BOX_CIRCLE_MASK,
|
|
||||||
RICON_POT,
|
|
||||||
RICON_ALPHA_MULTIPLY,
|
|
||||||
RICON_ALPHA_CLEAR,
|
|
||||||
RICON_DITHERING,
|
|
||||||
RICON_MIPMAPS,
|
|
||||||
RICON_BOX_GRID,
|
|
||||||
RICON_GRID,
|
|
||||||
RICON_BOX_CORNERS_SMALL,
|
|
||||||
RICON_BOX_CORNERS_BIG,
|
|
||||||
RICON_FOUR_BOXES,
|
|
||||||
RICON_GRID_FILL,
|
|
||||||
RICON_BOX_MULTISIZE,
|
|
||||||
RICON_ZOOM_SMALL,
|
|
||||||
RICON_ZOOM_MEDIUM,
|
|
||||||
RICON_ZOOM_BIG,
|
|
||||||
RICON_ZOOM_ALL,
|
|
||||||
RICON_ZOOM_CENTER,
|
|
||||||
RICON_BOX_DOTS_SMALL,
|
|
||||||
RICON_BOX_DOTS_BIG,
|
|
||||||
RICON_BOX_CONCENTRIC,
|
|
||||||
RICON_BOX_GRID_BIG,
|
|
||||||
RICON_OK_TICK,
|
|
||||||
RICON_CROSS,
|
|
||||||
RICON_ARROW_LEFT,
|
|
||||||
RICON_ARROW_RIGHT,
|
|
||||||
RICON_ARROW_BOTTOM,
|
|
||||||
RICON_ARROW_TOP,
|
|
||||||
RICON_ARROW_LEFT_FILL,
|
|
||||||
RICON_ARROW_RIGHT_FILL,
|
|
||||||
RICON_ARROW_BOTTOM_FILL,
|
|
||||||
RICON_ARROW_TOP_FILL,
|
|
||||||
RICON_AUDIO,
|
|
||||||
RICON_FX,
|
|
||||||
RICON_WAVE,
|
|
||||||
RICON_WAVE_SINUS,
|
|
||||||
RICON_WAVE_SQUARE,
|
|
||||||
RICON_WAVE_TRIANGULAR,
|
|
||||||
RICON_CROSS_SMALL,
|
|
||||||
RICON_PLAYER_PREVIOUS,
|
|
||||||
RICON_PLAYER_PLAY_BACK,
|
|
||||||
RICON_PLAYER_PLAY,
|
|
||||||
RICON_PLAYER_PAUSE,
|
|
||||||
RICON_PLAYER_STOP,
|
|
||||||
RICON_PLAYER_NEXT,
|
|
||||||
RICON_PLAYER_RECORD,
|
|
||||||
RICON_MAGNET,
|
|
||||||
RICON_LOCK_CLOSE,
|
|
||||||
RICON_LOCK_OPEN,
|
|
||||||
RICON_CLOCK,
|
|
||||||
RICON_TOOLS,
|
|
||||||
RICON_GEAR,
|
|
||||||
RICON_GEAR_BIG,
|
|
||||||
RICON_BIN,
|
|
||||||
RICON_HAND_POINTER,
|
|
||||||
RICON_LASER,
|
|
||||||
RICON_COIN,
|
|
||||||
RICON_EXPLOSION,
|
|
||||||
RICON_1UP,
|
|
||||||
RICON_PLAYER,
|
|
||||||
RICON_PLAYER_JUMP,
|
|
||||||
RICON_KEY,
|
|
||||||
RICON_DEMON,
|
|
||||||
RICON_TEXT_POPUP,
|
|
||||||
RICON_GEAR_EX,
|
|
||||||
RICON_CRACK,
|
|
||||||
RICON_CRACK_POINTS,
|
|
||||||
RICON_STAR,
|
|
||||||
RICON_DOOR,
|
|
||||||
RICON_EXIT,
|
|
||||||
RICON_MODE_2D,
|
|
||||||
RICON_MODE_3D,
|
|
||||||
RICON_CUBE,
|
|
||||||
RICON_CUBE_FACE_TOP,
|
|
||||||
RICON_CUBE_FACE_LEFT,
|
|
||||||
RICON_CUBE_FACE_FRONT,
|
|
||||||
RICON_CUBE_FACE_BOTTOM,
|
|
||||||
RICON_CUBE_FACE_RIGHT,
|
|
||||||
RICON_CUBE_FACE_BACK,
|
|
||||||
RICON_CAMERA,
|
|
||||||
RICON_SPECIAL,
|
|
||||||
RICON_LINK_NET,
|
|
||||||
RICON_LINK_BOXES,
|
|
||||||
RICON_LINK_MULTI,
|
|
||||||
RICON_LINK,
|
|
||||||
RICON_LINK_BROKE,
|
|
||||||
RICON_TEXT_NOTES,
|
|
||||||
RICON_NOTEBOOK,
|
|
||||||
RICON_SUITCASE,
|
|
||||||
RICON_SUITCASE_ZIP,
|
|
||||||
RICON_MAILBOX,
|
|
||||||
RICON_MONITOR,
|
|
||||||
RICON_PRINTER,
|
|
||||||
RICON_PHOTO_CAMERA,
|
|
||||||
RICON_PHOTO_CAMERA_FLASH,
|
|
||||||
RICON_HOUSE,
|
|
||||||
RICON_HEART,
|
|
||||||
RICON_CORNER,
|
|
||||||
RICON_VERTICAL_BARS,
|
|
||||||
RICON_VERTICAL_BARS_FILL,
|
|
||||||
RICON_LIFE_BARS,
|
|
||||||
RICON_INFO,
|
|
||||||
RICON_CROSSLINE,
|
|
||||||
RICON_HELP,
|
|
||||||
RICON_FILETYPE_ALPHA,
|
|
||||||
RICON_FILETYPE_HOME,
|
|
||||||
RICON_LAYERS_VISIBLE,
|
|
||||||
RICON_LAYERS,
|
|
||||||
RICON_WINDOW
|
|
||||||
} rIconDescription;
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
// Module Functions Declaration
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
void DrawIcon(int iconId, Vector2 position, int pixelSize, Color color);
|
|
||||||
|
|
||||||
#endif // RICONS_H
|
|
||||||
|
|
||||||
/***********************************************************************************
|
|
||||||
*
|
|
||||||
* RICONS IMPLEMENTATION
|
|
||||||
*
|
|
||||||
************************************************************************************/
|
|
||||||
|
|
||||||
#if defined(RICONS_IMPLEMENTATION)
|
|
||||||
|
|
||||||
#if !defined(RICONS_STANDALONE)
|
|
||||||
#include "raylib.h" // Required for: Icons drawing function: DrawRectangle()
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static const unsigned int RICONS[RICONS_COUNT*8] = {
|
|
||||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // RICON_NONE
|
|
||||||
0x3ff80000, 0x2f082008, 0x2042207e, 0x40027fc2, 0x40024002, 0x40024002, 0x40024002, 0x00007ffe, // RICON_FOLDER_FILE_OPEN
|
|
||||||
0x3ffe0000, 0x44226422, 0x400247e2, 0x5ffa4002, 0x57ea500a, 0x500a500a, 0x40025ffa, 0x00007ffe, // RICON_FILE_SAVE_CLASSIC
|
|
||||||
0x00000000, 0x0042007e, 0x40027fc2, 0x40024002, 0x41024002, 0x44424282, 0x793e4102, 0x00000100, // RICON_FOLDER_OPEN
|
|
||||||
0x00000000, 0x0042007e, 0x40027fc2, 0x40024002, 0x41024102, 0x44424102, 0x793e4282, 0x00000000, // RICON_FOLDER_SAVE
|
|
||||||
0x3ff00000, 0x201c2010, 0x20042004, 0x21042004, 0x24442284, 0x21042104, 0x20042104, 0x00003ffc, // RICON_FILE_OPEN
|
|
||||||
0x3ff00000, 0x201c2010, 0x20042004, 0x21042004, 0x21042104, 0x22842444, 0x20042104, 0x00003ffc, // RICON_FILE_SAVE
|
|
||||||
0x3ff00000, 0x201c2010, 0x00042004, 0x20041004, 0x20844784, 0x00841384, 0x20042784, 0x00003ffc, // RICON_FILE_EXPORT
|
|
||||||
0x3ff00000, 0x201c2010, 0x20042004, 0x20042004, 0x22042204, 0x22042f84, 0x20042204, 0x00003ffc, // RICON_FILE_NEW
|
|
||||||
0x3ff00000, 0x201c2010, 0x20042004, 0x20042004, 0x25042884, 0x25042204, 0x20042884, 0x00003ffc, // RICON_FILE_DELETE
|
|
||||||
0x3ff00000, 0x201c2010, 0x20042004, 0x20042ff4, 0x20042ff4, 0x20042ff4, 0x20042004, 0x00003ffc, // RICON_FILETYPE_TEXT
|
|
||||||
0x3ff00000, 0x201c2010, 0x27042004, 0x244424c4, 0x26442444, 0x20642664, 0x20042004, 0x00003ffc, // RICON_FILETYPE_AUDIO
|
|
||||||
0x3ff00000, 0x201c2010, 0x26042604, 0x20042004, 0x35442884, 0x2414222c, 0x20042004, 0x00003ffc, // RICON_FILETYPE_IMAGE
|
|
||||||
0x3ff00000, 0x201c2010, 0x20c42004, 0x22442144, 0x22442444, 0x20c42144, 0x20042004, 0x00003ffc, // RICON_FILETYPE_PLAY
|
|
||||||
0x3ff00000, 0x3ffc2ff0, 0x3f3c2ff4, 0x3dbc2eb4, 0x3dbc2bb4, 0x3f3c2eb4, 0x3ffc2ff4, 0x00002ff4, // RICON_FILETYPE_VIDEO
|
|
||||||
0x3ff00000, 0x201c2010, 0x21842184, 0x21842004, 0x21842184, 0x21842184, 0x20042184, 0x00003ffc, // RICON_FILETYPE_INFO
|
|
||||||
0x0ff00000, 0x381c0810, 0x28042804, 0x28042804, 0x28042804, 0x28042804, 0x20102ffc, 0x00003ff0, // RICON_FILE_COPY
|
|
||||||
0x00000000, 0x701c0000, 0x079c1e14, 0x55a000f0, 0x079c00f0, 0x701c1e14, 0x00000000, 0x00000000, // RICON_FILE_CUT
|
|
||||||
0x01c00000, 0x13e41bec, 0x3f841004, 0x204420c4, 0x20442044, 0x20442044, 0x207c2044, 0x00003fc0, // RICON_FILE_PASTE
|
|
||||||
0x00000000, 0x3aa00fe0, 0x2abc2aa0, 0x2aa42aa4, 0x20042aa4, 0x20042004, 0x3ffc2004, 0x00000000, // RICON_CURSOR_HAND
|
|
||||||
0x00000000, 0x003c000c, 0x030800c8, 0x30100c10, 0x10202020, 0x04400840, 0x01800280, 0x00000000, // RICON_CURSOR_POINTER
|
|
||||||
0x00000000, 0x00180000, 0x01f00078, 0x03e007f0, 0x07c003e0, 0x04000e40, 0x00000000, 0x00000000, // RICON_CURSOR_CLASSIC
|
|
||||||
0x00000000, 0x04000000, 0x11000a00, 0x04400a80, 0x01100220, 0x00580088, 0x00000038, 0x00000000, // RICON_PENCIL
|
|
||||||
0x04000000, 0x15000a00, 0x50402880, 0x14102820, 0x05040a08, 0x015c028c, 0x007c00bc, 0x00000000, // RICON_PENCIL_BIG
|
|
||||||
0x01c00000, 0x01400140, 0x01400140, 0x0ff80140, 0x0ff80808, 0x0aa80808, 0x0aa80aa8, 0x00000ff8, // RICON_BRUSH_CLASSIC
|
|
||||||
0x1ffc0000, 0x5ffc7ffe, 0x40004000, 0x00807f80, 0x01c001c0, 0x01c001c0, 0x01c001c0, 0x00000080, // RICON_BRUSH_PAINTER
|
|
||||||
0x00000000, 0x00800000, 0x01c00080, 0x03e001c0, 0x07f003e0, 0x036006f0, 0x000001c0, 0x00000000, // RICON_WATER_DROP
|
|
||||||
0x00000000, 0x3e003800, 0x1f803f80, 0x0c201e40, 0x02080c10, 0x00840104, 0x00380044, 0x00000000, // RICON_COLOR_PICKER
|
|
||||||
0x00000000, 0x07800300, 0x1fe00fc0, 0x3f883fd0, 0x0e021f04, 0x02040402, 0x00f00108, 0x00000000, // RICON_RUBBER
|
|
||||||
0x00c00000, 0x02800140, 0x08200440, 0x20081010, 0x2ffe3004, 0x03f807fc, 0x00e001f0, 0x00000040, // RICON_COLOR_BUCKET
|
|
||||||
0x00000000, 0x21843ffc, 0x01800180, 0x01800180, 0x01800180, 0x01800180, 0x03c00180, 0x00000000, // RICON_TEXT_T
|
|
||||||
0x00800000, 0x01400180, 0x06200340, 0x0c100620, 0x1ff80c10, 0x380c1808, 0x70067004, 0x0000f80f, // RICON_TEXT_A
|
|
||||||
0x78000000, 0x50004000, 0x00004800, 0x03c003c0, 0x03c003c0, 0x00100000, 0x0002000a, 0x0000000e, // RICON_SCALE
|
|
||||||
0x75560000, 0x5e004002, 0x54001002, 0x41001202, 0x408200fe, 0x40820082, 0x40820082, 0x00006afe, // RICON_RESIZE
|
|
||||||
0x00000000, 0x3f003f00, 0x3f003f00, 0x3f003f00, 0x00400080, 0x001c0020, 0x001c001c, 0x00000000, // RICON_FILTER_POINT
|
|
||||||
0x6d800000, 0x00004080, 0x40804080, 0x40800000, 0x00406d80, 0x001c0020, 0x001c001c, 0x00000000, // RICON_FILTER_BILINEAR
|
|
||||||
0x40080000, 0x1ffe2008, 0x14081008, 0x11081208, 0x10481088, 0x10081028, 0x10047ff8, 0x00001002, // RICON_CROP
|
|
||||||
0x00100000, 0x3ffc0010, 0x2ab03550, 0x22b02550, 0x20b02150, 0x20302050, 0x2000fff0, 0x00002000, // RICON_CROP_ALPHA
|
|
||||||
0x40000000, 0x1ff82000, 0x04082808, 0x01082208, 0x00482088, 0x00182028, 0x35542008, 0x00000002, // RICON_SQUARE_TOGGLE
|
|
||||||
0x00000000, 0x02800280, 0x06c006c0, 0x0ea00ee0, 0x1e901eb0, 0x3e883e98, 0x7efc7e8c, 0x00000000, // RICON_SIMMETRY
|
|
||||||
0x01000000, 0x05600100, 0x1d480d50, 0x7d423d44, 0x3d447d42, 0x0d501d48, 0x01000560, 0x00000100, // RICON_SIMMETRY_HORIZONTAL
|
|
||||||
0x01800000, 0x04200240, 0x10080810, 0x00001ff8, 0x00007ffe, 0x0ff01ff8, 0x03c007e0, 0x00000180, // RICON_SIMMETRY_VERTICAL
|
|
||||||
0x00000000, 0x010800f0, 0x02040204, 0x02040204, 0x07f00308, 0x1c000e00, 0x30003800, 0x00000000, // RICON_LENS
|
|
||||||
0x00000000, 0x061803f0, 0x08240c0c, 0x08040814, 0x0c0c0804, 0x23f01618, 0x18002400, 0x00000000, // RICON_LENS_BIG
|
|
||||||
0x00000000, 0x00000000, 0x1c7007c0, 0x638e3398, 0x1c703398, 0x000007c0, 0x00000000, 0x00000000, // RICON_EYE_ON
|
|
||||||
0x00000000, 0x10002000, 0x04700fc0, 0x610e3218, 0x1c703098, 0x001007a0, 0x00000008, 0x00000000, // RICON_EYE_OFF
|
|
||||||
0x00000000, 0x00007ffc, 0x40047ffc, 0x10102008, 0x04400820, 0x02800280, 0x02800280, 0x00000100, // RICON_FILTER_TOP
|
|
||||||
0x00000000, 0x40027ffe, 0x10082004, 0x04200810, 0x02400240, 0x02400240, 0x01400240, 0x000000c0, // RICON_FILTER
|
|
||||||
0x00800000, 0x00800080, 0x00000080, 0x3c9e0000, 0x00000000, 0x00800080, 0x00800080, 0x00000000, // RICON_TARGET_POINT
|
|
||||||
0x00800000, 0x00800080, 0x00800080, 0x3f7e01c0, 0x008001c0, 0x00800080, 0x00800080, 0x00000000, // RICON_TARGET_SMALL
|
|
||||||
0x00800000, 0x00800080, 0x03e00080, 0x3e3e0220, 0x03e00220, 0x00800080, 0x00800080, 0x00000000, // RICON_TARGET_BIG
|
|
||||||
0x01000000, 0x04400280, 0x01000100, 0x43842008, 0x43849ab2, 0x01002008, 0x04400100, 0x01000280, // RICON_TARGET_MOVE
|
|
||||||
0x01000000, 0x04400280, 0x01000100, 0x41042108, 0x41049ff2, 0x01002108, 0x04400100, 0x01000280, // RICON_CURSOR_MOVE
|
|
||||||
0x781e0000, 0x500a4002, 0x04204812, 0x00000240, 0x02400000, 0x48120420, 0x4002500a, 0x0000781e, // RICON_CURSOR_SCALE
|
|
||||||
0x00000000, 0x20003c00, 0x24002800, 0x01000200, 0x00400080, 0x00140024, 0x003c0004, 0x00000000, // RICON_CURSOR_SCALE_RIGHT
|
|
||||||
0x00000000, 0x0004003c, 0x00240014, 0x00800040, 0x02000100, 0x28002400, 0x3c002000, 0x00000000, // RICON_CURSOR_SCALE_LEFT
|
|
||||||
0x00000000, 0x00100020, 0x10101fc8, 0x10001020, 0x10001000, 0x10001000, 0x00001fc0, 0x00000000, // RICON_UNDO
|
|
||||||
0x00000000, 0x08000400, 0x080813f8, 0x00080408, 0x00080008, 0x00080008, 0x000003f8, 0x00000000, // RICON_REDO
|
|
||||||
0x00000000, 0x3ffc0000, 0x20042004, 0x20002000, 0x20402000, 0x3f902020, 0x00400020, 0x00000000, // RICON_REREDO
|
|
||||||
0x00000000, 0x3ffc0000, 0x20042004, 0x27fc2004, 0x20202000, 0x3fc82010, 0x00200010, 0x00000000, // RICON_MUTATE
|
|
||||||
0x00000000, 0x0ff00000, 0x10081818, 0x11801008, 0x10001180, 0x18101020, 0x00100fc8, 0x00000020, // RICON_ROTATE
|
|
||||||
0x00000000, 0x04000200, 0x240429fc, 0x20042204, 0x20442004, 0x3f942024, 0x00400020, 0x00000000, // RICON_REPEAT
|
|
||||||
0x00000000, 0x20001000, 0x22104c0e, 0x00801120, 0x11200040, 0x4c0e2210, 0x10002000, 0x00000000, // RICON_SHUFFLE
|
|
||||||
0x7ffe0000, 0x50024002, 0x44024802, 0x41024202, 0x40424082, 0x40124022, 0x4002400a, 0x00007ffe, // RICON_EMPTYBOX
|
|
||||||
0x00800000, 0x03e00080, 0x08080490, 0x3c9e0808, 0x08080808, 0x03e00490, 0x00800080, 0x00000000, // RICON_TARGET
|
|
||||||
0x00800000, 0x00800080, 0x00800080, 0x3ffe01c0, 0x008001c0, 0x00800080, 0x00800080, 0x00000000, // RICON_TARGET_SMALL_FILL
|
|
||||||
0x00800000, 0x00800080, 0x03e00080, 0x3ffe03e0, 0x03e003e0, 0x00800080, 0x00800080, 0x00000000, // RICON_TARGET_BIG_FILL
|
|
||||||
0x01000000, 0x07c00380, 0x01000100, 0x638c2008, 0x638cfbbe, 0x01002008, 0x07c00100, 0x01000380, // RICON_TARGET_MOVE_FILL
|
|
||||||
0x01000000, 0x07c00380, 0x01000100, 0x610c2108, 0x610cfffe, 0x01002108, 0x07c00100, 0x01000380, // RICON_CURSOR_MOVE_FILL
|
|
||||||
0x781e0000, 0x6006700e, 0x04204812, 0x00000240, 0x02400000, 0x48120420, 0x700e6006, 0x0000781e, // RICON_CURSOR_SCALE_FILL
|
|
||||||
0x00000000, 0x38003c00, 0x24003000, 0x01000200, 0x00400080, 0x000c0024, 0x003c001c, 0x00000000, // RICON_CURSOR_SCALE_RIGHT
|
|
||||||
0x00000000, 0x001c003c, 0x0024000c, 0x00800040, 0x02000100, 0x30002400, 0x3c003800, 0x00000000, // RICON_CURSOR_SCALE_LEFT
|
|
||||||
0x00000000, 0x00300020, 0x10301ff8, 0x10001020, 0x10001000, 0x10001000, 0x00001fc0, 0x00000000, // RICON_UNDO_FILL
|
|
||||||
0x00000000, 0x0c000400, 0x0c081ff8, 0x00080408, 0x00080008, 0x00080008, 0x000003f8, 0x00000000, // RICON_REDO_FILL
|
|
||||||
0x00000000, 0x3ffc0000, 0x20042004, 0x20002000, 0x20402000, 0x3ff02060, 0x00400060, 0x00000000, // RICON_REREDO_FILL
|
|
||||||
0x00000000, 0x3ffc0000, 0x20042004, 0x27fc2004, 0x20202000, 0x3ff82030, 0x00200030, 0x00000000, // RICON_MUTATE_FILL
|
|
||||||
0x00000000, 0x0ff00000, 0x10081818, 0x11801008, 0x10001180, 0x18301020, 0x00300ff8, 0x00000020, // RICON_ROTATE_FILL
|
|
||||||
0x00000000, 0x06000200, 0x26042ffc, 0x20042204, 0x20442004, 0x3ff42064, 0x00400060, 0x00000000, // RICON_REPEAT_FILL
|
|
||||||
0x00000000, 0x30001000, 0x32107c0e, 0x00801120, 0x11200040, 0x7c0e3210, 0x10003000, 0x00000000, // RICON_SHUFFLE_FILL
|
|
||||||
0x00000000, 0x30043ffc, 0x24042804, 0x21042204, 0x20442084, 0x20142024, 0x3ffc200c, 0x00000000, // RICON_EMPTYBOX_SMALL
|
|
||||||
0x00000000, 0x20043ffc, 0x20042004, 0x20042004, 0x20042004, 0x20042004, 0x3ffc2004, 0x00000000, // RICON_BOX
|
|
||||||
0x00000000, 0x23c43ffc, 0x23c423c4, 0x200423c4, 0x20042004, 0x20042004, 0x3ffc2004, 0x00000000, // RICON_BOX_TOP
|
|
||||||
0x00000000, 0x3e043ffc, 0x3e043e04, 0x20043e04, 0x20042004, 0x20042004, 0x3ffc2004, 0x00000000, // RICON_BOX_TOP_RIGHT
|
|
||||||
0x00000000, 0x20043ffc, 0x20042004, 0x3e043e04, 0x3e043e04, 0x20042004, 0x3ffc2004, 0x00000000, // RICON_BOX_RIGHT
|
|
||||||
0x00000000, 0x20043ffc, 0x20042004, 0x20042004, 0x3e042004, 0x3e043e04, 0x3ffc3e04, 0x00000000, // RICON_BOX_BOTTOM_RIGHT
|
|
||||||
0x00000000, 0x20043ffc, 0x20042004, 0x20042004, 0x23c42004, 0x23c423c4, 0x3ffc23c4, 0x00000000, // RICON_BOX_BOTTOM
|
|
||||||
0x00000000, 0x20043ffc, 0x20042004, 0x20042004, 0x207c2004, 0x207c207c, 0x3ffc207c, 0x00000000, // RICON_BOX_BOTTOM_LEFT
|
|
||||||
0x00000000, 0x20043ffc, 0x20042004, 0x207c207c, 0x207c207c, 0x20042004, 0x3ffc2004, 0x00000000, // RICON_BOX_LEFT
|
|
||||||
0x00000000, 0x207c3ffc, 0x207c207c, 0x2004207c, 0x20042004, 0x20042004, 0x3ffc2004, 0x00000000, // RICON_BOX_TOP_LEFT
|
|
||||||
0x00000000, 0x20043ffc, 0x20042004, 0x23c423c4, 0x23c423c4, 0x20042004, 0x3ffc2004, 0x00000000, // RICON_BOX_CIRCLE_MASK
|
|
||||||
0x7ffe0000, 0x40024002, 0x47e24182, 0x4ff247e2, 0x47e24ff2, 0x418247e2, 0x40024002, 0x00007ffe, // RICON_BOX_CENTER
|
|
||||||
0x7fff0000, 0x40014001, 0x40014001, 0x49555ddd, 0x4945495d, 0x400149c5, 0x40014001, 0x00007fff, // RICON_POT
|
|
||||||
0x7ffe0000, 0x53327332, 0x44ce4cce, 0x41324332, 0x404e40ce, 0x48125432, 0x4006540e, 0x00007ffe, // RICON_ALPHA_MULTIPLY
|
|
||||||
0x7ffe0000, 0x53327332, 0x44ce4cce, 0x41324332, 0x5c4e40ce, 0x44124432, 0x40065c0e, 0x00007ffe, // RICON_ALPHA_CLEAR
|
|
||||||
0x7ffe0000, 0x42fe417e, 0x42fe417e, 0x42fe417e, 0x42fe417e, 0x42fe417e, 0x42fe417e, 0x00007ffe, // RICON_DITHERING
|
|
||||||
0x07fe0000, 0x1ffa0002, 0x7fea000a, 0x402a402a, 0x5b2a512a, 0x5128552a, 0x40205128, 0x00007fe0, // RICON_MIPMAPS
|
|
||||||
0x00000000, 0x1ff80000, 0x12481248, 0x12481ff8, 0x1ff81248, 0x12481248, 0x00001ff8, 0x00000000, // RICON_BOX_GRID
|
|
||||||
0x12480000, 0x7ffe1248, 0x12481248, 0x12487ffe, 0x7ffe1248, 0x12481248, 0x12487ffe, 0x00001248, // RICON_GRID
|
|
||||||
0x00000000, 0x1c380000, 0x1c3817e8, 0x08100810, 0x08100810, 0x17e81c38, 0x00001c38, 0x00000000, // RICON_BOX_CORNERS_SMALL
|
|
||||||
0x700e0000, 0x700e5ffa, 0x20042004, 0x20042004, 0x20042004, 0x20042004, 0x5ffa700e, 0x0000700e, // RICON_BOX_CORNERS_BIG
|
|
||||||
0x3f7e0000, 0x21422142, 0x21422142, 0x00003f7e, 0x21423f7e, 0x21422142, 0x3f7e2142, 0x00000000, // RICON_FOUR_BOXES
|
|
||||||
0x00000000, 0x3bb80000, 0x3bb83bb8, 0x3bb80000, 0x3bb83bb8, 0x3bb80000, 0x3bb83bb8, 0x00000000, // RICON_GRID_FILL
|
|
||||||
0x7ffe0000, 0x7ffe7ffe, 0x77fe7000, 0x77fe77fe, 0x777e7700, 0x777e777e, 0x777e777e, 0x0000777e, // RICON_BOX_MULTISIZE
|
|
||||||
0x781e0000, 0x40024002, 0x00004002, 0x01800000, 0x00000180, 0x40020000, 0x40024002, 0x0000781e, // RICON_ZOOM_SMALL
|
|
||||||
0x781e0000, 0x40024002, 0x00004002, 0x03c003c0, 0x03c003c0, 0x40020000, 0x40024002, 0x0000781e, // RICON_ZOOM_MEDIUM
|
|
||||||
0x781e0000, 0x40024002, 0x07e04002, 0x07e007e0, 0x07e007e0, 0x400207e0, 0x40024002, 0x0000781e, // RICON_ZOOM_BIG
|
|
||||||
0x781e0000, 0x5ffa4002, 0x1ff85ffa, 0x1ff81ff8, 0x1ff81ff8, 0x5ffa1ff8, 0x40025ffa, 0x0000781e, // RICON_ZOOM_ALL
|
|
||||||
0x00000000, 0x2004381c, 0x00002004, 0x00000000, 0x00000000, 0x20040000, 0x381c2004, 0x00000000, // RICON_ZOOM_CENTER
|
|
||||||
0x00000000, 0x1db80000, 0x10081008, 0x10080000, 0x00001008, 0x10081008, 0x00001db8, 0x00000000, // RICON_BOX_DOTS_SMALL
|
|
||||||
0x35560000, 0x00002002, 0x00002002, 0x00002002, 0x00002002, 0x00002002, 0x35562002, 0x00000000, // RICON_BOX_DOTS_BIG
|
|
||||||
0x7ffe0000, 0x40024002, 0x48124ff2, 0x49924812, 0x48124992, 0x4ff24812, 0x40024002, 0x00007ffe, // RICON_BOX_CONCENTRIC
|
|
||||||
0x00000000, 0x10841ffc, 0x10841084, 0x1ffc1084, 0x10841084, 0x10841084, 0x00001ffc, 0x00000000, // RICON_BOX_GRID_BIG
|
|
||||||
0x00000000, 0x00000000, 0x10000000, 0x04000800, 0x01040200, 0x00500088, 0x00000020, 0x00000000, // RICON_OK_TICK
|
|
||||||
0x00000000, 0x10080000, 0x04200810, 0x01800240, 0x02400180, 0x08100420, 0x00001008, 0x00000000, // RICON_CROSS
|
|
||||||
0x00000000, 0x02000000, 0x00800100, 0x00200040, 0x00200010, 0x00800040, 0x02000100, 0x00000000, // RICON_ARROW_LEFT
|
|
||||||
0x00000000, 0x00400000, 0x01000080, 0x04000200, 0x04000800, 0x01000200, 0x00400080, 0x00000000, // RICON_ARROW_RIGHT
|
|
||||||
0x00000000, 0x00000000, 0x00000000, 0x08081004, 0x02200410, 0x00800140, 0x00000000, 0x00000000, // RICON_ARROW_BOTTOM
|
|
||||||
0x00000000, 0x00000000, 0x01400080, 0x04100220, 0x10040808, 0x00000000, 0x00000000, 0x00000000, // RICON_ARROW_TOP
|
|
||||||
0x00000000, 0x02000000, 0x03800300, 0x03e003c0, 0x03e003f0, 0x038003c0, 0x02000300, 0x00000000, // RICON_ARROW_LEFT_FILL
|
|
||||||
0x00000000, 0x00400000, 0x01c000c0, 0x07c003c0, 0x07c00fc0, 0x01c003c0, 0x004000c0, 0x00000000, // RICON_ARROW_RIGHT_FILL
|
|
||||||
0x00000000, 0x00000000, 0x00000000, 0x0ff81ffc, 0x03e007f0, 0x008001c0, 0x00000000, 0x00000000, // RICON_ARROW_BOTTOM_FILL
|
|
||||||
0x00000000, 0x00000000, 0x01c00080, 0x07f003e0, 0x1ffc0ff8, 0x00000000, 0x00000000, 0x00000000, // RICON_ARROW_TOP_FILL
|
|
||||||
0x00000000, 0x18a008c0, 0x32881290, 0x24822686, 0x26862482, 0x12903288, 0x08c018a0, 0x00000000, // RICON_AUDIO
|
|
||||||
0x00000000, 0x04800780, 0x004000c0, 0x662000f0, 0x08103c30, 0x130a0e18, 0x0000318e, 0x00000000, // RICON_FX
|
|
||||||
0x00000000, 0x00800000, 0x08880888, 0x2aaa0a8a, 0x0a8a2aaa, 0x08880888, 0x00000080, 0x00000000, // RICON_WAVE
|
|
||||||
0x00000000, 0x00600000, 0x01080090, 0x02040108, 0x42044204, 0x24022402, 0x00001800, 0x00000000, // RICON_WAVE_SINUS
|
|
||||||
0x00000000, 0x07f80000, 0x04080408, 0x04080408, 0x04080408, 0x7c0e0408, 0x00000000, 0x00000000, // RICON_WAVE_SQUARE
|
|
||||||
0x00000000, 0x00000000, 0x00a00040, 0x22084110, 0x08021404, 0x00000000, 0x00000000, 0x00000000, // RICON_WAVE_TRIANGULAR
|
|
||||||
0x00000000, 0x00000000, 0x04200000, 0x01800240, 0x02400180, 0x00000420, 0x00000000, 0x00000000, // RICON_CROSS_SMALL
|
|
||||||
0x00000000, 0x18380000, 0x12281428, 0x10a81128, 0x112810a8, 0x14281228, 0x00001838, 0x00000000, // RICON_PLAYER_PREVIOUS
|
|
||||||
0x00000000, 0x18000000, 0x11801600, 0x10181060, 0x10601018, 0x16001180, 0x00001800, 0x00000000, // RICON_PLAYER_PLAY_BACK
|
|
||||||
0x00000000, 0x00180000, 0x01880068, 0x18080608, 0x06081808, 0x00680188, 0x00000018, 0x00000000, // RICON_PLAYER_PLAY
|
|
||||||
0x00000000, 0x1e780000, 0x12481248, 0x12481248, 0x12481248, 0x12481248, 0x00001e78, 0x00000000, // RICON_PLAYER_PAUSE
|
|
||||||
0x00000000, 0x1ff80000, 0x10081008, 0x10081008, 0x10081008, 0x10081008, 0x00001ff8, 0x00000000, // RICON_PLAYER_STOP
|
|
||||||
0x00000000, 0x1c180000, 0x14481428, 0x15081488, 0x14881508, 0x14281448, 0x00001c18, 0x00000000, // RICON_PLAYER_NEXT
|
|
||||||
0x00000000, 0x03c00000, 0x08100420, 0x10081008, 0x10081008, 0x04200810, 0x000003c0, 0x00000000, // RICON_PLAYER_RECORD
|
|
||||||
0x00000000, 0x0c3007e0, 0x13c81818, 0x14281668, 0x14281428, 0x1c381c38, 0x08102244, 0x00000000, // RICON_MAGNET
|
|
||||||
0x07c00000, 0x08200820, 0x3ff80820, 0x23882008, 0x21082388, 0x20082108, 0x1ff02008, 0x00000000, // RICON_LOCK_CLOSE
|
|
||||||
0x07c00000, 0x08000800, 0x3ff80800, 0x23882008, 0x21082388, 0x20082108, 0x1ff02008, 0x00000000, // RICON_LOCK_OPEN
|
|
||||||
0x01c00000, 0x0c180770, 0x3086188c, 0x60832082, 0x60034781, 0x30062002, 0x0c18180c, 0x01c00770, // RICON_CLOCK
|
|
||||||
0x0a200000, 0x1b201b20, 0x04200e20, 0x04200420, 0x04700420, 0x0e700e70, 0x0e700e70, 0x04200e70, // RICON_TOOLS
|
|
||||||
0x01800000, 0x3bdc318c, 0x0ff01ff8, 0x7c3e1e78, 0x1e787c3e, 0x1ff80ff0, 0x318c3bdc, 0x00000180, // RICON_GEAR
|
|
||||||
0x01800000, 0x3ffc318c, 0x1c381ff8, 0x781e1818, 0x1818781e, 0x1ff81c38, 0x318c3ffc, 0x00000180, // RICON_GEAR_BIG
|
|
||||||
0x00000000, 0x08080ff8, 0x08081ffc, 0x0aa80aa8, 0x0aa80aa8, 0x0aa80aa8, 0x08080aa8, 0x00000ff8, // RICON_BIN
|
|
||||||
0x00000000, 0x00000000, 0x20043ffc, 0x08043f84, 0x04040f84, 0x04040784, 0x000007fc, 0x00000000, // RICON_HAND_POINTER
|
|
||||||
0x00000000, 0x24400400, 0x00001480, 0x6efe0e00, 0x00000e00, 0x24401480, 0x00000400, 0x00000000, // RICON_LASER
|
|
||||||
0x00000000, 0x03c00000, 0x08300460, 0x11181118, 0x11181118, 0x04600830, 0x000003c0, 0x00000000, // RICON_COIN
|
|
||||||
0x00000000, 0x10880080, 0x06c00810, 0x366c07e0, 0x07e00240, 0x00001768, 0x04200240, 0x00000000, // RICON_EXPLOSION
|
|
||||||
0x00000000, 0x3d280000, 0x2528252c, 0x3d282528, 0x05280528, 0x05e80528, 0x00000000, 0x00000000, // RICON_1UP
|
|
||||||
0x01800000, 0x03c003c0, 0x018003c0, 0x0ff007e0, 0x0bd00bd0, 0x0a500bd0, 0x02400240, 0x02400240, // RICON_PLAYER
|
|
||||||
0x01800000, 0x03c003c0, 0x118013c0, 0x03c81ff8, 0x07c003c8, 0x04400440, 0x0c080478, 0x00000000, // RICON_PLAYER_JUMP
|
|
||||||
0x3ff80000, 0x30183ff8, 0x30183018, 0x3ff83ff8, 0x03000300, 0x03c003c0, 0x03e00300, 0x000003e0, // RICON_KEY
|
|
||||||
0x3ff80000, 0x3ff83ff8, 0x33983ff8, 0x3ff83398, 0x3ff83ff8, 0x00000540, 0x0fe00aa0, 0x00000fe0, // RICON_DEMON
|
|
||||||
0x00000000, 0x0ff00000, 0x20041008, 0x25442004, 0x10082004, 0x06000bf0, 0x00000300, 0x00000000, // RICON_TEXT_POPUP
|
|
||||||
0x00000000, 0x11440000, 0x07f00be8, 0x1c1c0e38, 0x1c1c0c18, 0x07f00e38, 0x11440be8, 0x00000000, // RICON_GEAR_EX
|
|
||||||
0x00000000, 0x20080000, 0x0c601010, 0x07c00fe0, 0x07c007c0, 0x0c600fe0, 0x20081010, 0x00000000, // RICON_CRACK
|
|
||||||
0x00000000, 0x20080000, 0x0c601010, 0x04400fe0, 0x04405554, 0x0c600fe0, 0x20081010, 0x00000000, // RICON_CRACK_POINTS
|
|
||||||
0x00000000, 0x00800080, 0x01c001c0, 0x1ffc3ffe, 0x03e007f0, 0x07f003e0, 0x0c180770, 0x00000808, // RICON_STAR
|
|
||||||
0x0ff00000, 0x08180810, 0x08100818, 0x0a100810, 0x08180810, 0x08100818, 0x08100810, 0x00001ff8, // RICON_DOOR
|
|
||||||
0x0ff00000, 0x08100810, 0x08100810, 0x10100010, 0x4f902010, 0x10102010, 0x08100010, 0x00000ff0, // RICON_EXIT
|
|
||||||
0x00040000, 0x001f000e, 0x0ef40004, 0x12f41284, 0x0ef41214, 0x10040004, 0x7ffc3004, 0x10003000, // RICON_MODE_2D
|
|
||||||
0x78040000, 0x501f600e, 0x0ef44004, 0x12f41284, 0x0ef41284, 0x10140004, 0x7ffc300c, 0x10003000, // RICON_MODE_3D
|
|
||||||
0x7fe00000, 0x50286030, 0x47fe4804, 0x44224402, 0x44224422, 0x241275e2, 0x0c06140a, 0x000007fe, // RICON_CUBE
|
|
||||||
0x7fe00000, 0x5ff87ff0, 0x47fe4ffc, 0x44224402, 0x44224422, 0x241275e2, 0x0c06140a, 0x000007fe, // RICON_CUBE_FACE_TOP
|
|
||||||
0x7fe00000, 0x50386030, 0x47fe483c, 0x443e443e, 0x443e443e, 0x241e75fe, 0x0c06140e, 0x000007fe, // RICON_CUBE_FACE_LEFT
|
|
||||||
0x7fe00000, 0x50286030, 0x47fe4804, 0x47fe47fe, 0x47fe47fe, 0x27fe77fe, 0x0ffe17fe, 0x000007fe, // RICON_CUBE_FACE_FRONT
|
|
||||||
0x7fe00000, 0x50286030, 0x47fe4804, 0x44224402, 0x44224422, 0x3ff27fe2, 0x0ffe1ffa, 0x000007fe, // RICON_CUBE_FACE_BOTTOM
|
|
||||||
0x7fe00000, 0x70286030, 0x7ffe7804, 0x7c227c02, 0x7c227c22, 0x3c127de2, 0x0c061c0a, 0x000007fe, // RICON_CUBE_FACE_RIGHT
|
|
||||||
0x7fe00000, 0x7fe87ff0, 0x7ffe7fe4, 0x7fe27fe2, 0x7fe27fe2, 0x24127fe2, 0x0c06140a, 0x000007fe, // RICON_CUBE_FACE_BACK
|
|
||||||
0x00000000, 0x2a0233fe, 0x22022602, 0x22022202, 0x2a022602, 0x00a033fe, 0x02080110, 0x00000000, // RICON_CAMERA
|
|
||||||
0x00000000, 0x200c3ffc, 0x000c000c, 0x3ffc000c, 0x30003000, 0x30003000, 0x3ffc3004, 0x00000000, // RICON_SPECIAL
|
|
||||||
0x00000000, 0x0022003e, 0x012201e2, 0x0100013e, 0x01000100, 0x79000100, 0x4f004900, 0x00007800, // RICON_LINK_NET
|
|
||||||
0x00000000, 0x44007c00, 0x45004600, 0x00627cbe, 0x00620022, 0x45007cbe, 0x44004600, 0x00007c00, // RICON_LINK_BOXES
|
|
||||||
0x00000000, 0x0044007c, 0x0010007c, 0x3f100010, 0x3f1021f0, 0x3f100010, 0x3f0021f0, 0x00000000, // RICON_LINK_MULTI
|
|
||||||
0x00000000, 0x0044007c, 0x00440044, 0x0010007c, 0x00100010, 0x44107c10, 0x440047f0, 0x00007c00, // RICON_LINK
|
|
||||||
0x00000000, 0x0044007c, 0x00440044, 0x0000007c, 0x00000010, 0x44007c10, 0x44004550, 0x00007c00, // RICON_LINK_BROKE
|
|
||||||
0x02a00000, 0x22a43ffc, 0x20042004, 0x20042ff4, 0x20042ff4, 0x20042ff4, 0x20042004, 0x00003ffc, // RICON_TEXT_NOTES
|
|
||||||
0x3ffc0000, 0x20042004, 0x245e27c4, 0x27c42444, 0x2004201e, 0x201e2004, 0x20042004, 0x00003ffc, // RICON_NOTEBOOK
|
|
||||||
0x00000000, 0x07e00000, 0x04200420, 0x24243ffc, 0x24242424, 0x24242424, 0x3ffc2424, 0x00000000, // RICON_SUITCASE
|
|
||||||
0x00000000, 0x0fe00000, 0x08200820, 0x40047ffc, 0x7ffc5554, 0x40045554, 0x7ffc4004, 0x00000000, // RICON_SUITCASE_ZIP
|
|
||||||
0x00000000, 0x20043ffc, 0x3ffc2004, 0x13c81008, 0x100813c8, 0x10081008, 0x1ff81008, 0x00000000, // RICON_MAILBOX
|
|
||||||
0x00000000, 0x40027ffe, 0x5ffa5ffa, 0x5ffa5ffa, 0x40025ffa, 0x03c07ffe, 0x1ff81ff8, 0x00000000, // RICON_MONITOR
|
|
||||||
0x0ff00000, 0x6bfe7ffe, 0x7ffe7ffe, 0x68167ffe, 0x08106816, 0x08100810, 0x0ff00810, 0x00000000, // RICON_PRINTER
|
|
||||||
0x3ff80000, 0xfffe2008, 0x870a8002, 0x904a888a, 0x904a904a, 0x870a888a, 0xfffe8002, 0x00000000, // RICON_PHOTO_CAMERA
|
|
||||||
0x0fc00000, 0xfcfe0cd8, 0x8002fffe, 0x84428382, 0x84428442, 0x80028382, 0xfffe8002, 0x00000000, // RICON_PHOTO_CAMERA_FLASH
|
|
||||||
0x00000000, 0x02400180, 0x08100420, 0x20041008, 0x23c42004, 0x22442244, 0x3ffc2244, 0x00000000, // RICON_HOUSE
|
|
||||||
0x00000000, 0x1c700000, 0x3ff83ef8, 0x3ff83ff8, 0x0fe01ff0, 0x038007c0, 0x00000100, 0x00000000, // RICON_HEART
|
|
||||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80000000, 0xe000c000, // RICON_CORNER
|
|
||||||
0x00000000, 0x14001c00, 0x15c01400, 0x15401540, 0x155c1540, 0x15541554, 0x1ddc1554, 0x00000000, // RICON_VERTICAL_BARS
|
|
||||||
0x00000000, 0x03000300, 0x1b001b00, 0x1b601b60, 0x1b6c1b60, 0x1b6c1b6c, 0x1b6c1b6c, 0x00000000, // RICON_VERTICAL_BARS_FILL
|
|
||||||
0x00000000, 0x00000000, 0x403e7ffe, 0x7ffe403e, 0x7ffe0000, 0x43fe43fe, 0x00007ffe, 0x00000000, // RICON_LIFE_BARS
|
|
||||||
0x7ffc0000, 0x43844004, 0x43844284, 0x43844004, 0x42844284, 0x42844284, 0x40044384, 0x00007ffc, // RICON_INFO
|
|
||||||
0x40008000, 0x10002000, 0x04000800, 0x01000200, 0x00400080, 0x00100020, 0x00040008, 0x00010002, // RICON_CROSSLINE
|
|
||||||
0x00000000, 0x1ff01ff0, 0x18301830, 0x1f001830, 0x03001f00, 0x00000300, 0x03000300, 0x00000000, // RICON_HELP
|
|
||||||
0x3ff00000, 0x2abc3550, 0x2aac3554, 0x2aac3554, 0x2aac3554, 0x2aac3554, 0x2aac3554, 0x00003ffc, // RICON_FILETYPE_ALPHA
|
|
||||||
0x3ff00000, 0x201c2010, 0x22442184, 0x28142424, 0x29942814, 0x2ff42994, 0x20042004, 0x00003ffc, // RICON_FILETYPE_HOME
|
|
||||||
0x07fe0000, 0x04020402, 0x7fe20402, 0x44224422, 0x44224422, 0x402047fe, 0x40204020, 0x00007fe0, // RICON_LAYERS_VISIBLE
|
|
||||||
0x07fe0000, 0x04020402, 0x7c020402, 0x44024402, 0x44024402, 0x402047fe, 0x40204020, 0x00007fe0, // RICON_LAYERS
|
|
||||||
0x00000000, 0x40027ffe, 0x7ffe4002, 0x40024002, 0x40024002, 0x40024002, 0x7ffe4002, 0x00000000, // RICON_WINDOW
|
|
||||||
};
|
|
||||||
|
|
||||||
// Draw selected icon using rectangles pixel-by-pixel
|
|
||||||
void DrawIcon(int iconId, Vector2 position, int pixelSize, Color color)
|
|
||||||
{
|
|
||||||
#define BIT_CHECK(a,b) ((a) & (1<<(b)))
|
|
||||||
|
|
||||||
for (int i = 0, y = 0; i < RICONS_SIZE*RICONS_SIZE/32; i++)
|
|
||||||
{
|
|
||||||
for (int k = 0; k < 32; k++)
|
|
||||||
{
|
|
||||||
if (BIT_CHECK(RICONS[8*iconId + i], k))
|
|
||||||
{
|
|
||||||
#if !defined(RICONS_STANDALONE)
|
|
||||||
DrawRectangle(position.x + (k%RICONS_SIZE)*pixelSize, position.y + y*pixelSize, pixelSize, pixelSize, color);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((k == 15) || (k == 31)) y++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // RICONS_IMPLEMENTATION
|
|
||||||
@ -1,36 +1,50 @@
|
|||||||
## raygui styles
|
# raygui styles
|
||||||
|
|
||||||
`raygui` comes with **8 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 **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`.
|
||||||
|
|
||||||
To use those styles with your `raygui` development, just need to call `GuiLoadStyle()` function at initialization, passing the `.rgs` file to load. Note that most of those styles depend on custom fonts that must be available together with the `.rgs` file.
|
## styles usage
|
||||||
|
|
||||||
|
To use those styles with your `raygui` development, you need to call `GuiLoadStyle()` function at initialization, passing the `.rgs` file to load. Note that `.rgs` is by default a binary file containing the style required font data (glyphs data + glyph atlas image data).
|
||||||
|
|
||||||
|
Styles can also be embedded in the code if desired, `.h` files are provided with every style containing all the required style data, including the font data. To embed those fonts just add the `.h` to your project and call the required function as specified in the header info.
|
||||||
|
|
||||||
Here it is a quick overview of those styles, you can navigate to each directory for additional information.
|
Here it is a quick overview of those styles, you can navigate to each directory for additional information.
|
||||||
|
|
||||||
#### style: [default](default)
|
#### 1. style: [default](default)
|
||||||

|

|
||||||
|
|
||||||
#### style: [ashes](ashes)
|
#### 2. style: [dark](dark)
|
||||||

|

|
||||||
|
|
||||||
#### style: [bluish](bluish)
|
#### 3. style: [bluish](bluish)
|
||||||

|

|
||||||
|
|
||||||
#### style: [candy](candy)
|
#### 4. style: [candy](candy)
|
||||||

|

|
||||||
|
|
||||||
#### style: [cherry](cherry)
|
#### 5. style: [cherry](cherry)
|
||||||

|

|
||||||
|
|
||||||
#### style: [cyber](cyber)
|
#### 6. style: [cyber](cyber)
|
||||||

|

|
||||||
|
|
||||||
#### style: [jungle](jungle)
|
#### 7. style: [jungle](jungle)
|
||||||

|

|
||||||
|
|
||||||
#### style: [lavanda](lavanda)
|
#### 8. style: [lavanda](lavanda)
|
||||||

|

|
||||||
|
|
||||||
#### style: [terminal](terminal)
|
#### 9. style: [terminal](terminal)
|
||||||

|

|
||||||
|
|
||||||
*NOTE: Those styles require latest raylib 2.6-dev and latest raygui 2.6-dev.*
|
#### 10. style: [sunny](sunny)
|
||||||
|

|
||||||
|
|
||||||
|
#### 11. style: [ashes](ashes)
|
||||||
|

|
||||||
|
|
||||||
|
#### 12. enefete: [enefete](enefete)
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
*NOTE: Those styles require raylib 4.5+ and raygui 4.0*
|
||||||
|
|||||||
@ -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.
|
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.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
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
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
about font
|
## about font
|
||||||
-----------
|
|
||||||
"V5 Loxica Lixera" font by vFive Digital (Roberto Christen).
|
"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)
|
100% free font, downloaded from dafont.com: [v5loxica-lixera](https://www.dafont.com/v5loxica-lixera.font)
|
||||||
|
|||||||
@ -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
@ -0,0 +1 @@
|
|||||||
|
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£€¥Š§š©ª«¬®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
|
||||||
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 45 KiB |
578
styles/ashes/style_ashes.h
Normal 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-2023 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
|
||||||
|
}
|
||||||
BIN
styles/ashes/style_ashes.old.rgs
Normal file
BIN
styles/ashes/style_ashes.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
styles/ashes/style_ashes.rgs
Normal file
26
styles/ashes/style_ashes.txt.rgs
Normal 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
|
||||||
|
Before Width: | Height: | Size: 23 KiB |
@ -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.
|
Like a breeze, a slight touch of color cover the clear sky, a spacious and relaxing feeling.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
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
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
about font
|
## about font
|
||||||
-----------
|
|
||||||
"Homespun BRK" font by AEnigma (Brian Kent).
|
"Homespun BRK" font by AEnigma (Brian Kent).
|
||||||
|
|
||||||
100% free font, downloaded from dafont.com: [homespun-brk](https://www.dafont.com/homespun-brk.font)
|
100% free font, downloaded from dafont.com: [homespun-brk](https://www.dafont.com/homespun-brk.font)
|
||||||
|
|||||||
@ -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
|
|
||||||
1
styles/bluish/charset.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£€¥Š§š©ª«¬®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
|
||||||
|
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 62 KiB |
619
styles/bluish/style_bluish.h
Normal 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-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: "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
|
||||||
|
}
|
||||||
BIN
styles/bluish/style_bluish.old.rgs
Normal file
BIN
styles/bluish/style_bluish.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
styles/bluish/style_bluish.rgs
Normal file
24
styles/bluish/style_bluish.txt.rgs
Normal 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
|
||||||
|
Before Width: | Height: | Size: 27 KiB |
@ -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!
|
Sweet, colorful, tasty! Enjoy this funfair ride and be careful with the witch of the candy house!
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
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
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
about font
|
## about font
|
||||||
-----------
|
|
||||||
"V5 Eastergothic" font by vFive Digital (Roberto Christen).
|
"V5 Eastergothic" font by vFive Digital (Roberto Christen).
|
||||||
|
|
||||||
100% free font, downloaded from dafont.com: [v5eastergothic](https://www.dafont.com/v5eastergothic.font)
|
100% free font, downloaded from dafont.com: [v5eastergothic](https://www.dafont.com/v5eastergothic.font)
|
||||||
|
|||||||
@ -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
|
|
||||||