Gitignore zig crap
@ -1,402 +0,0 @@
|
||||
#**************************************************************************************************
|
||||
#
|
||||
# raylib makefile for Desktop platform and HTML5
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
#**************************************************************************************************
|
||||
|
||||
.PHONY: all clean
|
||||
|
||||
# Define required raylib variables
|
||||
RAYLIB_PATH ?= ../../raylib
|
||||
RAYGUI_PATH ?= ../src
|
||||
|
||||
# Define default options
|
||||
|
||||
# One of PLATFORM_DESKTOP, PLATFORM_RPI, PLATFORM_ANDROID, PLATFORM_WEB
|
||||
PLATFORM ?= PLATFORM_DESKTOP
|
||||
|
||||
# Locations of your newly installed library and associated headers. See ../src/Makefile
|
||||
# On Linux, if you have installed raylib but cannot compile the examples, check that
|
||||
# the *_INSTALL_PATH values here are the same as those in src/Makefile or point to known locations.
|
||||
# To enable system-wide compile-time and runtime linking to libraylib.so, run ../src/$ sudo make install RAYLIB_LIBTYPE_SHARED.
|
||||
# To enable compile-time linking to a special version of libraylib.so, change these variables here.
|
||||
# To enable runtime linking to a special version of libraylib.so, see EXAMPLE_RUNTIME_PATH below.
|
||||
# If there is a libraylib in both EXAMPLE_RUNTIME_PATH and RAYLIB_INSTALL_PATH, at runtime,
|
||||
# the library at EXAMPLE_RUNTIME_PATH, if present, will take precedence over the one at RAYLIB_INSTALL_PATH.
|
||||
# RAYLIB_INSTALL_PATH should be the desired full path to libraylib. No relative paths.
|
||||
DESTDIR ?= /usr/local
|
||||
RAYLIB_INSTALL_PATH ?= $(DESTDIR)/lib
|
||||
# RAYLIB_H_INSTALL_PATH locates the installed raylib header and associated source files.
|
||||
RAYLIB_H_INSTALL_PATH ?= $(DESTDIR)/include
|
||||
|
||||
# Library type used for raylib: STATIC (.a) or SHARED (.so/.dll)
|
||||
RAYLIB_LIBTYPE ?= STATIC
|
||||
|
||||
# Build mode for project: DEBUG or RELEASE
|
||||
BUILD_MODE ?= RELEASE
|
||||
|
||||
# Use external GLFW library instead of rglfw module
|
||||
# TODO: Review usage on Linux. Target version of choice. Switch on -lglfw or -lglfw3
|
||||
USE_EXTERNAL_GLFW ?= FALSE
|
||||
|
||||
# Use Wayland display server protocol on Linux desktop
|
||||
# by default it uses X11 windowing system
|
||||
USE_WAYLAND_DISPLAY ?= FALSE
|
||||
|
||||
# Determine PLATFORM_OS in case PLATFORM_DESKTOP selected
|
||||
ifeq ($(PLATFORM),PLATFORM_DESKTOP)
|
||||
# No uname.exe on MinGW!, but OS=Windows_NT on Windows!
|
||||
# ifeq ($(UNAME),Msys) -> Windows
|
||||
ifeq ($(OS),Windows_NT)
|
||||
PLATFORM_OS=WINDOWS
|
||||
else
|
||||
UNAMEOS=$(shell uname)
|
||||
ifeq ($(UNAMEOS),Linux)
|
||||
PLATFORM_OS=LINUX
|
||||
endif
|
||||
ifeq ($(UNAMEOS),FreeBSD)
|
||||
PLATFORM_OS=BSD
|
||||
endif
|
||||
ifeq ($(UNAMEOS),OpenBSD)
|
||||
PLATFORM_OS=BSD
|
||||
endif
|
||||
ifeq ($(UNAMEOS),NetBSD)
|
||||
PLATFORM_OS=BSD
|
||||
endif
|
||||
ifeq ($(UNAMEOS),DragonFly)
|
||||
PLATFORM_OS=BSD
|
||||
endif
|
||||
ifeq ($(UNAMEOS),Darwin)
|
||||
PLATFORM_OS=OSX
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
ifeq ($(PLATFORM),PLATFORM_RPI)
|
||||
UNAMEOS=$(shell uname)
|
||||
ifeq ($(UNAMEOS),Linux)
|
||||
PLATFORM_OS=LINUX
|
||||
endif
|
||||
endif
|
||||
|
||||
# RAYLIB_PATH adjustment for different platforms.
|
||||
# If using GNU make, we can get the full path to the top of the tree. Windows? BSD?
|
||||
# Required for ldconfig or other tools that do not perform path expansion.
|
||||
ifeq ($(PLATFORM),PLATFORM_DESKTOP)
|
||||
ifeq ($(PLATFORM_OS),LINUX)
|
||||
RAYLIB_PREFIX ?= ..
|
||||
RAYLIB_PATH = $(realpath $(RAYLIB_PREFIX))
|
||||
endif
|
||||
endif
|
||||
# Default path for raylib on Raspberry Pi, if installed in different path, update it!
|
||||
# This is not currently used by src/Makefile. Not sure of its origin or usage. Refer to wiki.
|
||||
# TODO: update install: target in src/Makefile for RPI, consider relation to LINUX.
|
||||
ifeq ($(PLATFORM),PLATFORM_RPI)
|
||||
RAYLIB_PATH ?= /home/pi/raylib
|
||||
endif
|
||||
|
||||
ifeq ($(PLATFORM),PLATFORM_WEB)
|
||||
# Emscripten required variables
|
||||
EMSDK_PATH ?= C:/raylib/emsdk
|
||||
EMSCRIPTEN_VERSION ?= 1.38.32
|
||||
CLANG_VERSION = e$(EMSCRIPTEN_VERSION)_64bit
|
||||
PYTHON_VERSION = 2.7.13.1_64bit\python-2.7.13.amd64
|
||||
NODE_VERSION = 8.9.1_64bit
|
||||
export PATH = $(EMSDK_PATH);$(EMSDK_PATH)\clang\$(CLANG_VERSION);$(EMSDK_PATH)\node\$(NODE_VERSION)\bin;$(EMSDK_PATH)\python\$(PYTHON_VERSION);$(EMSDK_PATH)\emscripten\$(EMSCRIPTEN_VERSION);C:\raylib\MinGW\bin:$$(PATH)
|
||||
EMSCRIPTEN = $(EMSDK_PATH)\emscripten\$(EMSCRIPTEN_VERSION)
|
||||
endif
|
||||
|
||||
# Define raylib release directory for compiled library.
|
||||
# RAYLIB_RELEASE_PATH points to provided binaries or your freshly built version
|
||||
RAYLIB_RELEASE_PATH ?= $(RAYLIB_PATH)/src
|
||||
|
||||
# EXAMPLE_RUNTIME_PATH embeds a custom runtime location of libraylib.so or other desired libraries
|
||||
# into each example binary compiled with RAYLIB_LIBTYPE=SHARED. It defaults to RAYLIB_RELEASE_PATH
|
||||
# so that these examples link at runtime with your version of libraylib.so in ../release/libs/linux
|
||||
# without formal installation from ../src/Makefile. It aids portability and is useful if you have
|
||||
# multiple versions of raylib, have raylib installed to a non-standard location, or want to
|
||||
# bundle libraylib.so with your game. Change it to your liking.
|
||||
# NOTE: If, at runtime, there is a libraylib.so at both EXAMPLE_RUNTIME_PATH and RAYLIB_INSTALL_PATH,
|
||||
# The library at EXAMPLE_RUNTIME_PATH, if present, will take precedence over RAYLIB_INSTALL_PATH,
|
||||
# Implemented for LINUX below with CFLAGS += -Wl,-rpath,$(EXAMPLE_RUNTIME_PATH)
|
||||
# To see the result, run readelf -d core/core_basic_window; looking at the RPATH or RUNPATH attribute.
|
||||
# To see which libraries a built example is linking to, ldd core/core_basic_window;
|
||||
# Look for libraylib.so.1 => $(RAYLIB_INSTALL_PATH)/libraylib.so.1 or similar listing.
|
||||
EXAMPLE_RUNTIME_PATH ?= $(RAYLIB_RELEASE_PATH)
|
||||
|
||||
# Define default C compiler: gcc
|
||||
# NOTE: define g++ compiler if using C++
|
||||
CC = gcc
|
||||
|
||||
ifeq ($(PLATFORM),PLATFORM_DESKTOP)
|
||||
ifeq ($(PLATFORM_OS),OSX)
|
||||
# OSX default compiler
|
||||
CC = clang
|
||||
endif
|
||||
ifeq ($(PLATFORM_OS),BSD)
|
||||
# FreeBSD, OpenBSD, NetBSD, DragonFly default compiler
|
||||
CC = clang
|
||||
endif
|
||||
endif
|
||||
ifeq ($(PLATFORM),PLATFORM_RPI)
|
||||
ifeq ($(USE_RPI_CROSS_COMPILER),TRUE)
|
||||
# Define RPI cross-compiler
|
||||
#CC = armv6j-hardfloat-linux-gnueabi-gcc
|
||||
CC = $(RPI_TOOLCHAIN)/bin/arm-linux-gnueabihf-gcc
|
||||
endif
|
||||
endif
|
||||
ifeq ($(PLATFORM),PLATFORM_WEB)
|
||||
# HTML5 emscripten compiler
|
||||
# WARNING: To compile to HTML5, code must be redesigned
|
||||
# to use emscripten.h and emscripten_set_main_loop()
|
||||
CC = emcc
|
||||
endif
|
||||
|
||||
# Define default make program: Mingw32-make
|
||||
MAKE = mingw32-make
|
||||
|
||||
ifeq ($(PLATFORM),PLATFORM_DESKTOP)
|
||||
ifeq ($(PLATFORM_OS),LINUX)
|
||||
MAKE = make
|
||||
endif
|
||||
endif
|
||||
|
||||
# Define compiler flags:
|
||||
# -O1 defines optimization level
|
||||
# -g include debug information on compilation
|
||||
# -s strip unnecessary data from build
|
||||
# -Wall turns on most, but not all, compiler warnings
|
||||
# -std=c99 defines C language mode (standard C from 1999 revision)
|
||||
# -std=gnu99 defines C language mode (GNU C from 1999 revision)
|
||||
# -Wno-missing-braces ignore invalid warning (GCC bug 53119)
|
||||
# -D_DEFAULT_SOURCE use with -std=c99 on Linux and PLATFORM_WEB, required for timespec
|
||||
CFLAGS += -Wall -std=c99 -D_DEFAULT_SOURCE -Wno-missing-braces
|
||||
|
||||
ifeq ($(BUILD_MODE),DEBUG)
|
||||
CFLAGS += -g
|
||||
endif
|
||||
ifeq ($(RAYLIB_BUILD_MODE),RELEASE)
|
||||
CFLAGS += -O1 -s
|
||||
endif
|
||||
|
||||
# Additional flags for compiler (if desired)
|
||||
#CFLAGS += -Wextra -Wmissing-prototypes -Wstrict-prototypes
|
||||
ifeq ($(PLATFORM),PLATFORM_DESKTOP)
|
||||
ifeq ($(PLATFORM_OS),WINDOWS)
|
||||
# resource file contains windows executable icon and properties
|
||||
# -Wl,--subsystem,windows hides the console window
|
||||
CFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data -Wl,--subsystem,windows
|
||||
endif
|
||||
ifeq ($(PLATFORM_OS),LINUX)
|
||||
ifeq ($(RAYLIB_LIBTYPE),STATIC)
|
||||
CFLAGS += -D_DEFAULT_SOURCE
|
||||
endif
|
||||
ifeq ($(RAYLIB_LIBTYPE),SHARED)
|
||||
# Explicitly enable runtime link to libraylib.so
|
||||
CFLAGS += -Wl,-rpath,$(EXAMPLE_RUNTIME_PATH)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
ifeq ($(PLATFORM),PLATFORM_RPI)
|
||||
CFLAGS += -std=gnu99
|
||||
endif
|
||||
ifeq ($(PLATFORM),PLATFORM_WEB)
|
||||
# -Os # size optimization
|
||||
# -O2 # optimization level 2, if used, also set --memory-init-file 0
|
||||
# -sUSE_GLFW=3 # Use glfw3 library (context/input management)
|
||||
# -sALLOW_MEMORY_GROWTH=1 # to allow memory resizing -> WARNING: Audio buffers could FAIL!
|
||||
# -sTOTAL_MEMORY=16777216 # to specify heap memory size (default = 16MB) (67108864 = 64MB)
|
||||
# -sUSE_PTHREADS=1 # multithreading support
|
||||
# -sWASM=0 # disable Web Assembly, emitted by default
|
||||
# -sASYNCIFY # lets synchronous C/C++ code interact with asynchronous JS
|
||||
# -sFORCE_FILESYSTEM=1 # force filesystem to load/save files data
|
||||
# -sASSERTIONS=1 # enable runtime checks for common memory allocation errors (-O1 and above turn it off)
|
||||
# -sMINIFY_HTML=0 # minify generated html from shell.html
|
||||
# --profiling # include information for code profiling
|
||||
# --memory-init-file 0 # to avoid an external memory initialization code file (.mem)
|
||||
# --preload-file resources # specify a resources folder for data compilation
|
||||
# --source-map-base # allow debugging in browser with source map
|
||||
# --shell-file shell.html # define a custom shell .html and output extension
|
||||
CFLAGS += -Os -sUSE_GLFW=3 -sFORCE_FILESYSTEM=1 -sASYNCIFY --preload-file $(dir $<)resources@resources -sMINIFY_HTML=0
|
||||
ifeq ($(BUILD_MODE), DEBUG)
|
||||
CFLAGS += -sASSERTIONS=1 --profiling
|
||||
endif
|
||||
# NOTE: Simple raylib examples are compiled to be interpreter by emterpreter, that way,
|
||||
# we can compile same code for ALL platforms with no change required, but, working on bigger
|
||||
# projects, code needs to be refactored to avoid a blocking while() loop, moving Update and Draw
|
||||
# logic to a self contained function: UpdateDrawFrame(), check core_basic_window_web.c for reference.
|
||||
|
||||
# Define a custom shell .html and output extension
|
||||
CFLAGS += --shell-file $(RAYLIB_PATH)/src/shell.html
|
||||
EXT = .html
|
||||
endif
|
||||
|
||||
# Define include paths for required headers
|
||||
# NOTE: Several external required libraries (stb and others)
|
||||
INCLUDE_PATHS = -I. -I$(RAYLIB_PATH)/src -I$(RAYLIB_PATH)/src/external -I$(RAYGUI_PATH)
|
||||
|
||||
# Define additional directories containing required header files
|
||||
ifeq ($(PLATFORM),PLATFORM_RPI)
|
||||
# RPI required libraries
|
||||
INCLUDE_PATHS += -I/opt/vc/include
|
||||
INCLUDE_PATHS += -I/opt/vc/include/interface/vmcs_host/linux
|
||||
INCLUDE_PATHS += -I/opt/vc/include/interface/vcos/pthreads
|
||||
endif
|
||||
ifeq ($(PLATFORM),PLATFORM_DESKTOP)
|
||||
ifeq ($(PLATFORM_OS),BSD)
|
||||
# Consider -L$(RAYLIB_H_INSTALL_PATH)
|
||||
INCLUDE_PATHS += -I/usr/local/include
|
||||
endif
|
||||
ifeq ($(PLATFORM_OS),LINUX)
|
||||
# Reset everything.
|
||||
# Precedence: immediately local, installed version, raysan5 provided libs -I$(RAYLIB_H_INSTALL_PATH) -I$(RAYLIB_PATH)/release/include
|
||||
INCLUDE_PATHS = -I$(RAYLIB_H_INSTALL_PATH) -isystem. -isystem$(RAYLIB_PATH)/src -isystem$(RAYLIB_PATH)/release/include -isystem$(RAYLIB_PATH)/src/external
|
||||
endif
|
||||
endif
|
||||
|
||||
# Define library paths containing required libs.
|
||||
LDFLAGS = -L. -L$(RAYLIB_RELEASE_PATH) -L$(RAYLIB_PATH)/src
|
||||
|
||||
ifeq ($(PLATFORM),PLATFORM_DESKTOP)
|
||||
ifeq ($(PLATFORM_OS),BSD)
|
||||
# Consider -L$(RAYLIB_INSTALL_PATH)
|
||||
LDFLAGS += -L. -Lsrc -L/usr/local/lib
|
||||
ifeq ($(shell uname),OpenBSD)
|
||||
LDFLAGS += -L/usr/X11R6/lib
|
||||
endif
|
||||
endif
|
||||
ifeq ($(PLATFORM_OS),LINUX)
|
||||
# Reset everything.
|
||||
# Precedence: immediately local, installed version, raysan5 provided libs
|
||||
LDFLAGS = -L. -L$(RAYLIB_INSTALL_PATH) -L$(RAYLIB_RELEASE_PATH)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(PLATFORM),PLATFORM_RPI)
|
||||
LDFLAGS += -L/opt/vc/lib
|
||||
endif
|
||||
|
||||
# Define any libraries required on linking
|
||||
# if you want to link libraries (libname.so or libname.a), use the -lname
|
||||
ifeq ($(PLATFORM),PLATFORM_DESKTOP)
|
||||
ifeq ($(PLATFORM_OS),WINDOWS)
|
||||
# Libraries for Windows desktop compilation
|
||||
# NOTE: WinMM library required to set high-res timer resolution
|
||||
LDLIBS = -lraylib -lopengl32 -lgdi32 -lwinmm
|
||||
# Required for physac examples
|
||||
LDLIBS += -static -lpthread
|
||||
endif
|
||||
ifeq ($(PLATFORM_OS),LINUX)
|
||||
# Libraries for Debian GNU/Linux desktop compiling
|
||||
# NOTE: Required packages: libegl1-mesa-dev
|
||||
LDLIBS = -lraylib -lGL -lm -lpthread -ldl -lrt
|
||||
|
||||
# On X11 requires also below libraries
|
||||
LDLIBS += -lX11
|
||||
# NOTE: It seems additional libraries are not required any more, latest GLFW just dlopen them
|
||||
#LDLIBS += -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor
|
||||
|
||||
# On Wayland windowing system, additional libraries requires
|
||||
ifeq ($(USE_WAYLAND_DISPLAY),TRUE)
|
||||
LDLIBS += -lwayland-client -lwayland-cursor -lwayland-egl -lxkbcommon
|
||||
endif
|
||||
# Explicit link to libc
|
||||
ifeq ($(RAYLIB_LIBTYPE),SHARED)
|
||||
LDLIBS += -lc
|
||||
endif
|
||||
endif
|
||||
ifeq ($(PLATFORM_OS),OSX)
|
||||
# Libraries for OSX 10.9 desktop compiling
|
||||
# NOTE: Required packages: libopenal-dev libegl1-mesa-dev
|
||||
LDLIBS = -lraylib -framework OpenGL -framework Cocoa -framework IOKit -framework CoreAudio -framework CoreVideo
|
||||
endif
|
||||
ifeq ($(PLATFORM_OS),BSD)
|
||||
# Libraries for FreeBSD, OpenBSD, NetBSD, DragonFly desktop compiling
|
||||
# NOTE: Required packages: mesa-libs
|
||||
LDLIBS = -lraylib -lGL -lpthread -lm
|
||||
|
||||
# On XWindow requires also below libraries
|
||||
LDLIBS += -lX11 -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor
|
||||
endif
|
||||
ifeq ($(USE_EXTERNAL_GLFW),TRUE)
|
||||
# NOTE: It could require additional packages installed: libglfw3-dev
|
||||
LDLIBS += -lglfw
|
||||
endif
|
||||
endif
|
||||
ifeq ($(PLATFORM),PLATFORM_RPI)
|
||||
# Libraries for Raspberry Pi compiling
|
||||
# NOTE: Required packages: libasound2-dev (ALSA)
|
||||
LDLIBS = -lraylib -lGLESv2 -lEGL -lpthread -lrt -lm -ldrm -lgbm -ldl
|
||||
endif
|
||||
ifeq ($(PLATFORM),PLATFORM_WEB)
|
||||
# Libraries for web (HTML5) compiling
|
||||
LDLIBS = $(RAYLIB_RELEASE_PATH)/libraylib.bc
|
||||
endif
|
||||
|
||||
# Define all source files required
|
||||
EXAMPLES = \
|
||||
controls_test_suite/controls_test_suite \
|
||||
custom_file_dialog/custom_file_dialog \
|
||||
custom_input_box/custom_input_box\
|
||||
image_exporter/image_exporter \
|
||||
image_importer_raw/image_importer_raw \
|
||||
property_list/property_list \
|
||||
portable_window/portable_window \
|
||||
scroll_panel/scroll_panel \
|
||||
style_selector/style_selector \
|
||||
custom_sliders/custom_sliders \
|
||||
animation_curve/animation_curve \
|
||||
floating_window/floating_window \
|
||||
|
||||
CURRENT_MAKEFILE = $(lastword $(MAKEFILE_LIST))
|
||||
|
||||
# Default target entry
|
||||
all: $(EXAMPLES)
|
||||
|
||||
# Generic compilation pattern
|
||||
# NOTE: Examples must be ready for Android compilation!
|
||||
%: %.c
|
||||
$(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
|
||||
|
||||
# Clean everything
|
||||
clean:
|
||||
ifeq ($(PLATFORM),PLATFORM_DESKTOP)
|
||||
ifeq ($(PLATFORM_OS),WINDOWS)
|
||||
del *.o *.exe /s
|
||||
endif
|
||||
ifeq ($(PLATFORM_OS),LINUX)
|
||||
rm -f $(EXAMPLES)
|
||||
endif
|
||||
ifeq ($(PLATFORM_OS),OSX)
|
||||
find . -type f -perm +ugo+x -delete
|
||||
rm -f *.o
|
||||
endif
|
||||
ifeq ($(shell uname),OpenBSD)
|
||||
find . -type f -perm 0755 -delete
|
||||
rm -f *.o
|
||||
endif
|
||||
endif
|
||||
ifeq ($(PLATFORM),PLATFORM_RPI)
|
||||
find . -type f -executable -delete
|
||||
rm -fv *.o
|
||||
endif
|
||||
ifeq ($(PLATFORM),PLATFORM_WEB)
|
||||
del *.o *.html *.js
|
||||
endif
|
||||
@echo Cleaning done
|
||||
@ -1,477 +0,0 @@
|
||||
/*******************************************************************************************
|
||||
*
|
||||
* 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/style_cyber.h" // raygui style: cyber
|
||||
#include "../styles/style_jungle.h" // raygui style: jungle
|
||||
#include "../styles/style_lavanda.h" // raygui style: lavanda
|
||||
#include "../styles/style_dark.h" // raygui style: dark
|
||||
#include "../styles/style_bluish.h" // raygui style: bluish
|
||||
#include "../styles/style_terminal.h" // raygui style: terminal
|
||||
|
||||
#undef RAYGUI_IMPLEMENTATION // Avoid including raygui implementation again
|
||||
|
||||
#define GUI_CURVE_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, (char *)valTextBox[i][0]); // Transform x position to string
|
||||
|
||||
if (!editValueBox[i][1]) gcvt(curves[i].start + (curves[i].end-curves[i].start)*p->position.y, 6, (char *)valTextBox[i][1]); // Transform y position to string
|
||||
|
||||
// X pos
|
||||
if (GuiTextBox((Rectangle){ contentRect.x, contentRect.y + contentRect.height + scrollOffset.y, contentRect.width/2-margin, 1.5f*fontSize }, (char *)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 }, (char *)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, (char *)valTextBox[i][2]); // Transform left tangent to string
|
||||
|
||||
if (!editValueBox[i][3]) gcvt(p->tangents.y, 6, (char *)valTextBox[i][3]); // Transform right tangent to string
|
||||
|
||||
// Left tan
|
||||
if (GuiTextBox((Rectangle){ contentRect.x, contentRect.y + contentRect.height + scrollOffset.y, contentRect.width/2 - margin, 1.5f*fontSize }, (char *)valTextBox[i][2], 20, editValueBox[i][2]))
|
||||
{
|
||||
editValueBox[i][2] = !editValueBox[i][2];
|
||||
|
||||
// Input ended
|
||||
if (!editValueBox[i][2])
|
||||
{
|
||||
// Try to convert text to float and assign it to the point
|
||||
char *endPtr = NULL;
|
||||
double value = strtod((char *)valTextBox[i][2], &endPtr);
|
||||
if (endPtr != (char *)valTextBox[i][2]) p->tangents.x = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Right tan
|
||||
if (GuiTextBox((Rectangle){ contentRect.x + contentRect.width/2.0f, contentRect.y + contentRect.height + scrollOffset.y, contentRect.width/2.0f, 1.5f*fontSize }, (char *)valTextBox[i][3], 20, editValueBox[i][3]))
|
||||
{
|
||||
editValueBox[i][3] = !editValueBox[i][3];
|
||||
|
||||
// Input ended
|
||||
if (!editValueBox[i][3])
|
||||
{
|
||||
// Try to convert text to float and assign it to the point
|
||||
char *endPtr = NULL;
|
||||
double value = strtod((char *)valTextBox[i][3], &endPtr);
|
||||
if (endPtr != (char *)valTextBox[i][3]) p->tangents.y = value;
|
||||
}
|
||||
}
|
||||
|
||||
contentRect.height += 1.5*fontSize + margin;
|
||||
}
|
||||
|
||||
contentRect.height += margin;
|
||||
|
||||
EndScissorMode();
|
||||
|
||||
// Settings panel shadow
|
||||
DrawRectangleGradientH(settingsRect.x - 12, 0, 12, settingsRect.height, BLANK, (Color){ 0, 0, 0, 100 });
|
||||
|
||||
// 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;
|
||||
}
|
||||
@ -1,543 +0,0 @@
|
||||
/*******************************************************************************************
|
||||
*
|
||||
* CurveEdit v1.0 - A cubic Hermite editor for making animation curves
|
||||
*
|
||||
* MODULE USAGE:
|
||||
* #define GUI_CURVE_EDITOR_IMPLEMENTATION
|
||||
* #include "gui_curve_edit.h"
|
||||
*
|
||||
* INIT: GuiCurveEditState state = InitCurveEdit();
|
||||
* EVALUATE: float y = EvalGuiCurve(&state, t); // 0 <= t <= 1
|
||||
* DRAW: BeginScissorMode(bounds.x,bounds.y,bounds.width,bounds.height);
|
||||
* GuiCurveEdit(&state, bounds, pointSize);
|
||||
* EndScissorMode();
|
||||
*
|
||||
* NOTE: See 'Module Structures Declaration' section for more informations.
|
||||
*
|
||||
* NOTE: This module uses functions of the stdlib:
|
||||
* - qsort
|
||||
*
|
||||
* NOTE: Built-in interactions:
|
||||
* - Left click to move/add point or move tangents
|
||||
* - While moving a tangent, hold (left/right) SHIFT to disable tangent symetry
|
||||
* - Right click to remove a point
|
||||
*
|
||||
*
|
||||
* LICENSE: zlib/libpng
|
||||
*
|
||||
* Copyright (c) 2023 Pierre Jaffuer (@smallcluster)
|
||||
*
|
||||
* This software is provided "as-is", without any express or implied warranty. In no event
|
||||
* will the authors be held liable for any damages arising from the use of this software.
|
||||
*
|
||||
* Permission is granted to anyone to use this software for any purpose, including commercial
|
||||
* applications, and to alter it and redistribute it freely, subject to the following restrictions:
|
||||
*
|
||||
* 1. The origin of this software must not be misrepresented; you must not claim that you
|
||||
* wrote the original software. If you use this software in a product, an acknowledgment
|
||||
* in the product documentation would be appreciated but is not required.
|
||||
*
|
||||
* 2. Altered source versions must be plainly marked as such, and must not be misrepresented
|
||||
* as being the original software.
|
||||
*
|
||||
* 3. This notice may not be removed or altered from any source distribution.
|
||||
*
|
||||
**********************************************************************************************/
|
||||
|
||||
#include "raylib.h"
|
||||
|
||||
#ifndef GUI_CURVE_EDITOR_H
|
||||
#define GUI_CURVE_EDITOR_H
|
||||
|
||||
|
||||
#ifndef GUI_CURVE_EDITOR_MAX_POINTS
|
||||
#define GUI_CURVE_EDITOR_MAX_POINTS 30
|
||||
#endif
|
||||
|
||||
//----------------------------------------------------------------------------------
|
||||
// Module Structures Declaration
|
||||
//----------------------------------------------------------------------------------
|
||||
|
||||
typedef struct {
|
||||
Vector2 position; // In normalized space [0.0f, 1.0f]
|
||||
Vector2 tangents; // The derivatives (left/right) of the 1D curve
|
||||
|
||||
// Let the curve editor calculate tangents to linearize part of the curve
|
||||
bool leftLinear;
|
||||
bool rightLinear;
|
||||
} GuiCurveEditorPoint;
|
||||
|
||||
typedef struct {
|
||||
float start; // Value at y = 0
|
||||
float end; // Value at y = 1
|
||||
|
||||
// Always valid (unless you manualy change state's point array). Make sure to set it to -1 before init
|
||||
int selectedIndex;
|
||||
|
||||
// Unsorted array with at least one point (constant curve)
|
||||
GuiCurveEditorPoint points[GUI_CURVE_EDITOR_MAX_POINTS];
|
||||
int numPoints;
|
||||
|
||||
// Private variables
|
||||
bool editLeftTangent;
|
||||
bool editRightTangent;
|
||||
Vector2 mouseOffset;
|
||||
} GuiCurveEditorState;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" { // Prevents name mangling of functions
|
||||
#endif
|
||||
|
||||
//----------------------------------------------------------------------------------
|
||||
// Module Functions Declaration
|
||||
//----------------------------------------------------------------------------------
|
||||
GuiCurveEditorState InitGuiCurveEditor(); // Initialize curve editor state
|
||||
void GuiCurveEditor(GuiCurveEditorState *state, Rectangle bounds); // Draw and update curve control
|
||||
|
||||
// 1D Interpolation
|
||||
// Returns the y value (in [start, end]) of the curve at x = t
|
||||
// t must be normalized [0.f, 1.f]
|
||||
float GuiCurveEval(GuiCurveEditorState *state, float t);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // GUI_CURVE_EDITOR_H
|
||||
|
||||
/***********************************************************************************
|
||||
*
|
||||
* GUI_CURVE_EDITOR IMPLEMENTATION
|
||||
*
|
||||
************************************************************************************/
|
||||
#if defined(GUI_CURVE_EDITOR_IMPLEMENTATION)
|
||||
|
||||
#include "../../src/raygui.h" // Change this to fit your project
|
||||
|
||||
#include "stdlib.h" // Required for qsort
|
||||
|
||||
//----------------------------------------------------------------------------------
|
||||
// Module Functions Definition
|
||||
//----------------------------------------------------------------------------------
|
||||
GuiCurveEditorState InitGuiCurveEditor()
|
||||
{
|
||||
GuiCurveEditorState state = { 0 };
|
||||
|
||||
state.start = 0;
|
||||
state.end = 1;
|
||||
state.selectedIndex = 0;
|
||||
state.editLeftTangent = false;
|
||||
state.editRightTangent = false;
|
||||
state.mouseOffset = (Vector2){ 0.0f, 0.0f };
|
||||
|
||||
// At least one point (AVG by default)
|
||||
state.numPoints = 1;
|
||||
state.points[0].position = (Vector2){ 0.5f, 0.5f };
|
||||
state.points[0].tangents = (Vector2){ 0.0f, 0.0f };
|
||||
state.points[0].leftLinear = false;
|
||||
state.points[0].rightLinear = false;
|
||||
|
||||
return state;
|
||||
}
|
||||
|
||||
static int CompareGuiCurveEditPointPtr(const void *a, const void *b)
|
||||
{
|
||||
float fa = (*(GuiCurveEditorPoint**)a)->position.x;
|
||||
float fb = (*(GuiCurveEditorPoint**)b)->position.x;
|
||||
|
||||
return ((fa > fb) - (fa < fb));
|
||||
}
|
||||
|
||||
float GuiCurveEval(GuiCurveEditorState *state, float t)
|
||||
{
|
||||
// Sort points
|
||||
GuiCurveEditorPoint* sortedPoints[GUI_CURVE_EDITOR_MAX_POINTS];
|
||||
|
||||
for (int i=0; i < state->numPoints; i++) sortedPoints[i] = &state->points[i];
|
||||
|
||||
qsort(sortedPoints, state->numPoints, sizeof(GuiCurveEditorPoint*), CompareGuiCurveEditPointPtr);
|
||||
|
||||
if (state->numPoints == 0) return state->start;
|
||||
|
||||
// Constants part on edges
|
||||
if (t <= sortedPoints[0]->position.x) return state->start + (state->end-state->start)*sortedPoints[0]->position.y;
|
||||
if (t >= sortedPoints[state->numPoints-1]->position.x) return state->start + (state->end-state->start)*sortedPoints[state->numPoints-1]->position.y;
|
||||
|
||||
// Find curve portion
|
||||
for (int i=0; i < state->numPoints-1; i++)
|
||||
{
|
||||
const GuiCurveEditorPoint *p1 = sortedPoints[i];
|
||||
const GuiCurveEditorPoint *p2 = sortedPoints[i+1];
|
||||
|
||||
// Skip this range
|
||||
if (!((t >= p1->position.x) && (t < p2->position.x)) || (p1->position.x == p2->position.x)) continue;
|
||||
|
||||
float scale = (p2->position.x-p1->position.x);
|
||||
float T = (t-p1->position.x)/scale;
|
||||
float startTangent = scale*p1->tangents.y;
|
||||
float endTangent = scale*p2->tangents.x;
|
||||
float T2 = T*T;
|
||||
float T3 = T*T*T;
|
||||
|
||||
return (state->start + (state->end-state->start)*((2*T3 - 3*T2 + 1)*p1->position.y + (T3 - 2*T2 + T)*startTangent + (3*T2 - 2*T3)*p2->position.y + (T3 - T2)*endTangent));
|
||||
}
|
||||
|
||||
return state->start;
|
||||
}
|
||||
|
||||
void GuiCurveEditor(GuiCurveEditorState *state, Rectangle bounds)
|
||||
{
|
||||
// CONST
|
||||
//----------------------------------------------------------------------------------
|
||||
const float pointSize = 10.0f;
|
||||
const float fontSize = GuiGetStyle(DEFAULT, TEXT_SIZE);
|
||||
const float handleLength = pointSize*2.5f;
|
||||
const float handleSize = pointSize/1.5f;
|
||||
|
||||
const Rectangle innerBounds = (Rectangle){ bounds.x + fontSize, bounds.y + fontSize, bounds.width - 2*fontSize, bounds.height - 2*fontSize };
|
||||
const Vector2 mouse = GetMousePosition();
|
||||
const Vector2 mouseLocal = (Vector2){ (mouse.x - innerBounds.x)/innerBounds.width, (innerBounds.y + innerBounds.height-mouse.y)/innerBounds.height};
|
||||
//----------------------------------------------------------------------------------
|
||||
|
||||
// UPDATE STATE
|
||||
//----------------------------------------------------------------------------------
|
||||
// Find first point under mouse (-1 if not found)
|
||||
int hoveredPointIndex = -1;
|
||||
for (int i = 0; i < state->numPoints; i++)
|
||||
{
|
||||
const GuiCurveEditorPoint *p = &state->points[i];
|
||||
const Vector2 screenPos = (Vector2){ p->position.x*innerBounds.width + innerBounds.x, innerBounds.y + innerBounds.height-p->position.y*innerBounds.height };
|
||||
const Rectangle pointRect = (Rectangle){ screenPos.x - pointSize/2.0f, screenPos.y - pointSize/2.0f, pointSize, pointSize };
|
||||
|
||||
if (CheckCollisionPointRec(mouse, pointRect))
|
||||
{
|
||||
hoveredPointIndex = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Unselect tangents
|
||||
if (IsMouseButtonReleased(MOUSE_BUTTON_LEFT))
|
||||
{
|
||||
state->editLeftTangent = false;
|
||||
state->editRightTangent = false;
|
||||
}
|
||||
|
||||
// Select a tangent if possible
|
||||
if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT) && (state->selectedIndex != -1) && CheckCollisionPointRec(mouse, bounds))
|
||||
{
|
||||
const GuiCurveEditorPoint* p = &state->points[state->selectedIndex];
|
||||
const Vector2 screenPos = (Vector2){ p->position.x*innerBounds.width+innerBounds.x, innerBounds.y+innerBounds.height-p->position.y*innerBounds.height };
|
||||
|
||||
// Left control
|
||||
Vector2 target = (Vector2){ (p->position.x-1)*innerBounds.width + innerBounds.x, innerBounds.y + innerBounds.height - (p->position.y-p->tangents.x)*innerBounds.height };
|
||||
Vector2 dir = (Vector2){ target.x-screenPos.x, target.y-screenPos.y };
|
||||
float d = sqrt(dir.x*dir.x + dir.y*dir.y);
|
||||
Vector2 control = (Vector2){ screenPos.x + dir.x/d*handleLength, screenPos.y + dir.y/d*handleLength };
|
||||
Rectangle controlRect = (Rectangle){ control.x - handleSize/2.0f, control.y - handleSize/2.0f, handleSize, handleSize };
|
||||
|
||||
// Edit left tangent
|
||||
if (CheckCollisionPointRec(mouse, controlRect)) state->editLeftTangent = true;
|
||||
|
||||
// Right control
|
||||
target = (Vector2){ (p->position.x + 1)*innerBounds.width + innerBounds.x, innerBounds.y + innerBounds.height - (p->position.y + p->tangents.y)*innerBounds.height };
|
||||
dir = (Vector2){ target.x-screenPos.x, target.y-screenPos.y };
|
||||
d = sqrt(dir.x*dir.x + dir.y*dir.y);
|
||||
control = (Vector2){ screenPos.x + dir.x/d*handleLength, screenPos.y + dir.y/d*handleLength };
|
||||
controlRect = (Rectangle){ control.x - handleSize/2.0f, control.y - handleSize/2.0f, handleSize, handleSize };
|
||||
|
||||
// Edit right tangent
|
||||
if (CheckCollisionPointRec(mouse, controlRect)) state->editRightTangent = true;
|
||||
}
|
||||
|
||||
// Move tangents
|
||||
if (IsMouseButtonDown(MOUSE_BUTTON_LEFT) && state->editRightTangent)
|
||||
{
|
||||
// editRightTangent == true implies selectedIndex != -1
|
||||
GuiCurveEditorPoint *p = &state->points[state->selectedIndex];
|
||||
const Vector2 dir = (Vector2){ mouseLocal.x - p->position.x, mouseLocal.y - p->position.y};
|
||||
|
||||
// Calculate right tangent slope
|
||||
p->tangents.y = (dir.x < 0.001f)? dir.y/0.001f : dir.y/dir.x;
|
||||
p->rightLinear = false; // Stop right linearization update
|
||||
|
||||
// Tangents are symetric by default unless SHIFT is pressed
|
||||
if (!(IsKeyDown(KEY_LEFT_SHIFT) || IsKeyDown(KEY_RIGHT_SHIFT)))
|
||||
{
|
||||
p->tangents.x = p->tangents.y;
|
||||
p->leftLinear = false; // Stop left linearization update
|
||||
}
|
||||
|
||||
}
|
||||
else if (IsMouseButtonDown(MOUSE_BUTTON_LEFT) && state->editLeftTangent)
|
||||
{
|
||||
// editLeftTangent == true implies selectedIndex != -1
|
||||
GuiCurveEditorPoint *p = &state->points[state->selectedIndex];
|
||||
const Vector2 dir = (Vector2){ mouseLocal.x - p->position.x, mouseLocal.y - p->position.y };
|
||||
|
||||
// Calculate left tangent slope
|
||||
p->tangents.x = (dir.x > -0.001f)? dir.y/(-0.001f) : dir.y/dir.x;
|
||||
p->leftLinear = false; // Stop left linearization update
|
||||
|
||||
// Tangents are symetric by default unless SHIFT is pressed
|
||||
if (!(IsKeyDown(KEY_LEFT_SHIFT) || IsKeyDown(KEY_RIGHT_SHIFT)))
|
||||
{
|
||||
p->tangents.y = p->tangents.x;
|
||||
p->rightLinear = false; // Stop right linearization update
|
||||
}
|
||||
}
|
||||
// Select a point
|
||||
else if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT) && (hoveredPointIndex != -1) && CheckCollisionPointRec(mouse, bounds))
|
||||
{
|
||||
state->selectedIndex = hoveredPointIndex;
|
||||
const GuiCurveEditorPoint *p = &state->points[state->selectedIndex];
|
||||
state->mouseOffset = (Vector2){ p->position.x - mouseLocal.x, p->position.y - mouseLocal.y };
|
||||
}
|
||||
// Remove a point (check against bounds)
|
||||
else if (IsMouseButtonPressed(MOUSE_BUTTON_RIGHT) && (hoveredPointIndex != -1) && CheckCollisionPointRec(mouse, bounds) && (state->numPoints > 1))
|
||||
{
|
||||
// Deselect everything
|
||||
state->selectedIndex = 0; // select first point by default
|
||||
state->editLeftTangent = false;
|
||||
state->editRightTangent = false;
|
||||
|
||||
// Remove point
|
||||
state->numPoints -= 1;
|
||||
for (int i = hoveredPointIndex; i < state->numPoints; i++) state->points[i] = state->points[i+1];
|
||||
}
|
||||
// Add a point (check against innerBounds)
|
||||
else if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT) && CheckCollisionPointRec(mouse, innerBounds) && (state->numPoints < GUI_CURVE_EDITOR_MAX_POINTS))
|
||||
{
|
||||
state->editLeftTangent = false;
|
||||
state->editRightTangent = false;
|
||||
|
||||
// Create new point
|
||||
GuiCurveEditorPoint p;
|
||||
p.tangents = (Vector2){ 0.0f, 0.0f };
|
||||
p.position = mouseLocal;
|
||||
p.leftLinear = false;
|
||||
p.rightLinear = false;
|
||||
|
||||
// Append point
|
||||
state->points[state->numPoints] = p;
|
||||
state->selectedIndex = state->numPoints; // select new point
|
||||
state->numPoints += 1;
|
||||
|
||||
// Point is add on mouse pos
|
||||
state->mouseOffset = (Vector2){ 0, 0 };
|
||||
}
|
||||
// Move selected point
|
||||
else if ((state->selectedIndex != -1) && IsMouseButtonDown(MOUSE_BUTTON_LEFT) && CheckCollisionPointRec(mouse, bounds))
|
||||
{
|
||||
GuiCurveEditorPoint *p = &state->points[state->selectedIndex];
|
||||
|
||||
// use mouse offset on click to prevent point teleporting to mouse
|
||||
const Vector2 newLocalPos = (Vector2){ mouseLocal.x + state->mouseOffset.x, mouseLocal.y + state->mouseOffset.y };
|
||||
|
||||
// Clamp to innerbounds
|
||||
p->position.x = (newLocalPos.x < 0)? 0 : ((newLocalPos.x > 1)? 1 : newLocalPos.x);
|
||||
p->position.y = (newLocalPos.y < 0)? 0 : ((newLocalPos.y > 1)? 1 : newLocalPos.y);
|
||||
}
|
||||
|
||||
// Sort points
|
||||
GuiCurveEditorPoint *sortedPoints[GUI_CURVE_EDITOR_MAX_POINTS] = { 0 };
|
||||
for (int i = 0; i < state->numPoints; i++) sortedPoints[i] = &state->points[i];
|
||||
qsort(sortedPoints, state->numPoints, sizeof(GuiCurveEditorPoint*), CompareGuiCurveEditPointPtr);
|
||||
|
||||
// Update linear tangents
|
||||
for (int i = 0; i < state->numPoints; i++)
|
||||
{
|
||||
GuiCurveEditorPoint *p = sortedPoints[i];
|
||||
|
||||
// Left tangent
|
||||
if ((i > 0) && p->leftLinear)
|
||||
{
|
||||
const GuiCurveEditorPoint *p2 = sortedPoints[i - 1];
|
||||
Vector2 dir = (Vector2){ p2->position.x - p->position.x, p2->position.y - p->position.y };
|
||||
p->tangents.x = (dir.x == 0)? 0 : dir.y/dir.x;
|
||||
}
|
||||
|
||||
// Right tangent
|
||||
if ((i < state->numPoints - 1) && p->rightLinear)
|
||||
{
|
||||
const GuiCurveEditorPoint *p2 = sortedPoints[i + 1];
|
||||
Vector2 dir = (Vector2){ p2->position.x - p->position.x, p2->position.y - p->position.y };
|
||||
p->tangents.y = (dir.x == 0)? 0 : dir.y/dir.x;
|
||||
}
|
||||
}
|
||||
//----------------------------------------------------------------------------------
|
||||
|
||||
// DRAWING
|
||||
//----------------------------------------------------------------------------------
|
||||
DrawRectangle(bounds.x, bounds.y, bounds.width, bounds.height, GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)));
|
||||
|
||||
// Draw grid
|
||||
// H lines
|
||||
const Color lineColor = GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_NORMAL));
|
||||
DrawLine(bounds.x, innerBounds.y, bounds.x+bounds.width, innerBounds.y, lineColor); // end
|
||||
DrawLine(bounds.x, innerBounds.y+innerBounds.height/2, bounds.x+bounds.width, innerBounds.y+innerBounds.height/2, lineColor); // avg
|
||||
DrawLine(bounds.x, innerBounds.y+innerBounds.height, bounds.x+bounds.width, innerBounds.y+innerBounds.height, lineColor); // start
|
||||
|
||||
// V lines
|
||||
DrawLine(innerBounds.x, bounds.y, innerBounds.x, bounds.y+bounds.height, lineColor); // 0
|
||||
DrawLine(innerBounds.x + innerBounds.width/4, bounds.y, innerBounds.x + innerBounds.width/4, bounds.y + bounds.height, lineColor); // 0.25
|
||||
DrawLine(innerBounds.x + innerBounds.width/2, bounds.y, innerBounds.x + innerBounds.width/2, bounds.y + bounds.height, lineColor); // 0.5
|
||||
DrawLine(innerBounds.x + 3*innerBounds.width/4, bounds.y, innerBounds.x + 3*innerBounds.width/4, bounds.y + bounds.height, lineColor); // 0.75
|
||||
DrawLine(innerBounds.x + innerBounds.width, bounds.y, innerBounds.x + innerBounds.width, bounds.y + bounds.height, lineColor); // 1
|
||||
|
||||
Font font = GuiGetFont();
|
||||
// V labels
|
||||
DrawTextEx(font, "0", (Vector2){ innerBounds.x, bounds.y + bounds.height-fontSize}, fontSize, GuiGetStyle(DEFAULT, TEXT_SPACING), lineColor);
|
||||
DrawTextEx(font, "0.25", (Vector2){ innerBounds.x + innerBounds.width/4.0f, bounds.y + bounds.height - fontSize}, fontSize, GuiGetStyle(DEFAULT, TEXT_SPACING), lineColor);
|
||||
DrawTextEx(font, "0.5", (Vector2){ innerBounds.x + innerBounds.width/2.0f, bounds.y + bounds.height - fontSize}, fontSize, GuiGetStyle(DEFAULT, TEXT_SPACING), lineColor);
|
||||
DrawTextEx(font, "0.75", (Vector2){ innerBounds.x + 3.0f*innerBounds.width/4.0f, bounds.y + bounds.height-fontSize}, fontSize, GuiGetStyle(DEFAULT, TEXT_SPACING), lineColor);
|
||||
DrawTextEx(font, "1", (Vector2){ innerBounds.x + innerBounds.width, bounds.y+bounds.height - fontSize}, fontSize, GuiGetStyle(DEFAULT, TEXT_SPACING), lineColor);
|
||||
|
||||
// H labels
|
||||
DrawTextEx(font, TextFormat("%.2f", state->start), (Vector2){ innerBounds.x, innerBounds.y - fontSize+innerBounds.height }, fontSize, GuiGetStyle(DEFAULT, TEXT_SPACING), lineColor);
|
||||
DrawTextEx(font, TextFormat("%.2f", state->start + (state->end-state->start)/2.f), (Vector2){ innerBounds.x, innerBounds.y - fontSize + innerBounds.height/2.0f }, fontSize, GuiGetStyle(DEFAULT, TEXT_SPACING), lineColor);
|
||||
DrawTextEx(font, TextFormat("%.2f", state->end), (Vector2){ innerBounds.x, innerBounds.y }, fontSize, GuiGetStyle(DEFAULT, TEXT_SPACING), lineColor);
|
||||
|
||||
// Draw contours
|
||||
if (CheckCollisionPointRec(mouse, bounds)) DrawRectangleLines(bounds.x, bounds.y, bounds.width, bounds.height, GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_FOCUSED)));
|
||||
else DrawRectangleLines(bounds.x, bounds.y, bounds.width, bounds.height, GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_NORMAL)));
|
||||
|
||||
// Draw points
|
||||
for (int i = 0; i < state->numPoints; i++)
|
||||
{
|
||||
const GuiCurveEditorPoint *p = sortedPoints[i];
|
||||
|
||||
const Vector2 screenPos = (Vector2){ p->position.x*innerBounds.width + innerBounds.x, innerBounds.y + innerBounds.height - p->position.y*innerBounds.height };
|
||||
const Rectangle pointRect = (Rectangle){ screenPos.x - pointSize/2.0f, screenPos.y - pointSize/2.0f, pointSize, pointSize };
|
||||
|
||||
Color pointColor = { 0 };
|
||||
Color pointBorderColor = { 0 };
|
||||
|
||||
// Draw point
|
||||
if (&state->points[state->selectedIndex] == p)
|
||||
{
|
||||
// Draw left handle
|
||||
if (i > 0)
|
||||
{
|
||||
const Vector2 target = (Vector2){ (p->position.x - 1)*innerBounds.width + innerBounds.x, innerBounds.y + innerBounds.height - (p->position.y - p->tangents.x)*innerBounds.height };
|
||||
const Vector2 dir = (Vector2){ target.x - screenPos.x, target.y - screenPos.y };
|
||||
const float d = sqrt(dir.x*dir.x + dir.y*dir.y);
|
||||
const Vector2 control = (Vector2){ screenPos.x + dir.x/d*handleLength, screenPos.y + dir.y/d*handleLength };
|
||||
const Rectangle controlRect = (Rectangle){ control.x - handleSize/2.0f, control.y - handleSize/2.0f, handleSize, handleSize };
|
||||
|
||||
Color controlColor = { 0 };
|
||||
|
||||
if (state->editLeftTangent)
|
||||
{
|
||||
controlColor = GetColor(GuiGetStyle(DEFAULT, BASE_COLOR_PRESSED));
|
||||
}
|
||||
else if (CheckCollisionPointRec(mouse, controlRect))
|
||||
{
|
||||
controlColor = GetColor(GuiGetStyle(DEFAULT, BASE_COLOR_FOCUSED));
|
||||
}
|
||||
else
|
||||
{
|
||||
controlColor = GetColor(GuiGetStyle(BUTTON, BASE_COLOR_NORMAL));
|
||||
}
|
||||
|
||||
DrawLine(screenPos.x,screenPos.y, control.x, control.y, controlColor);
|
||||
DrawRectangle(controlRect.x, controlRect.y, controlRect.width, controlRect.height, controlColor);
|
||||
DrawRectangleLines(controlRect.x, controlRect.y, controlRect.width, controlRect.height, controlColor);
|
||||
}
|
||||
|
||||
// Draw right handle
|
||||
if (i < state->numPoints - 1)
|
||||
{
|
||||
const Vector2 target = (Vector2){ (p->position.x + 1)*innerBounds.width + innerBounds.x, innerBounds.y + innerBounds.height - (p->position.y + p->tangents.y)*innerBounds.height };
|
||||
const Vector2 dir = (Vector2){ target.x - screenPos.x, target.y - screenPos.y };
|
||||
const float d = sqrt(dir.x*dir.x + dir.y*dir.y);
|
||||
const Vector2 control = (Vector2){ screenPos.x + dir.x/d*handleLength, screenPos.y + dir.y/d*handleLength };
|
||||
const Rectangle controlRect = (Rectangle){ control.x - handleSize/2.0f, control.y - handleSize/2.0f, handleSize, handleSize };
|
||||
|
||||
Color controlColor = { 0 };
|
||||
|
||||
if (state->editRightTangent)
|
||||
{
|
||||
controlColor = GetColor(GuiGetStyle(DEFAULT, BASE_COLOR_PRESSED));
|
||||
}
|
||||
else if (CheckCollisionPointRec(mouse, controlRect))
|
||||
{
|
||||
controlColor = GetColor(GuiGetStyle(DEFAULT, BASE_COLOR_FOCUSED));
|
||||
}
|
||||
else
|
||||
{
|
||||
controlColor = GetColor(GuiGetStyle(BUTTON, BASE_COLOR_NORMAL));
|
||||
}
|
||||
|
||||
DrawLine(screenPos.x,screenPos.y, control.x, control.y, controlColor);
|
||||
DrawRectangle(controlRect.x, controlRect.y, controlRect.width, controlRect.height, controlColor);
|
||||
DrawRectangleLines(controlRect.x, controlRect.y, controlRect.width, controlRect.height, controlColor);
|
||||
}
|
||||
|
||||
pointColor = GetColor(GuiGetStyle(DEFAULT, BASE_COLOR_PRESSED));
|
||||
pointBorderColor = GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_NORMAL));
|
||||
|
||||
}
|
||||
else if (&state->points[hoveredPointIndex] == p)
|
||||
{
|
||||
pointColor = GetColor(GuiGetStyle(DEFAULT, BASE_COLOR_FOCUSED));
|
||||
pointBorderColor = GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_NORMAL));
|
||||
}
|
||||
else
|
||||
{
|
||||
pointColor = GetColor(GuiGetStyle(BUTTON, BASE_COLOR_NORMAL));
|
||||
pointBorderColor = GetColor(GuiGetStyle(BUTTON, BORDER_COLOR_NORMAL));
|
||||
}
|
||||
|
||||
DrawRectangle(pointRect.x, pointRect.y, pointRect.width, pointRect.height, pointColor);
|
||||
DrawRectangleLines(pointRect.x, pointRect.y, pointRect.width, pointRect.height, pointBorderColor);
|
||||
}
|
||||
|
||||
// Draw curve
|
||||
Color curveColor = GetColor(GuiGetStyle(LABEL, TEXT_COLOR_FOCUSED));
|
||||
|
||||
if (state->numPoints == 1)
|
||||
{
|
||||
const GuiCurveEditorPoint *p = sortedPoints[0];
|
||||
const Vector2 screenPos = (Vector2){ p->position.x*innerBounds.width + innerBounds.x, innerBounds.y + innerBounds.height - p->position.y*innerBounds.height };
|
||||
DrawLine(innerBounds.x, screenPos.y, innerBounds.x+innerBounds.width, screenPos.y, curveColor);
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i = 0; i < state->numPoints - 1; i++)
|
||||
{
|
||||
const GuiCurveEditorPoint *p1 = sortedPoints[i];
|
||||
const GuiCurveEditorPoint *p2 = sortedPoints[i + 1];
|
||||
const Vector2 screenPos1 = (Vector2){ p1->position.x*innerBounds.width + innerBounds.x, innerBounds.y + innerBounds.height - p1->position.y*innerBounds.height };
|
||||
const Vector2 screenPos2 = (Vector2){ p2->position.x*innerBounds.width + innerBounds.x, innerBounds.y + innerBounds.height - p2->position.y*innerBounds.height };
|
||||
|
||||
// Constant on edge
|
||||
if ((screenPos1.x > innerBounds.x) && (i == 0))
|
||||
{
|
||||
DrawLine(innerBounds.x, screenPos1.y, screenPos1.x, screenPos1.y, curveColor);
|
||||
}
|
||||
if ((screenPos2.x < innerBounds.x + innerBounds.width) && (i == (state->numPoints - 2)))
|
||||
{
|
||||
DrawLine(screenPos2.x, screenPos2.y, innerBounds.x+innerBounds.width, screenPos2.y, curveColor);
|
||||
}
|
||||
|
||||
// Draw cubic Hermite curve
|
||||
const float scale = (p2->position.x - p1->position.x)/3.0f;
|
||||
const Vector2 offset1 = (Vector2){ scale, scale*p1->tangents.y };
|
||||
// negative endTangent => top part => need to invert value to calculate offset
|
||||
const Vector2 offset2 = (Vector2){ -scale, -scale*p2->tangents.x };
|
||||
|
||||
const Vector2 c1 = (Vector2){ p1->position.x + offset1.x, p1->position.y + offset1.y };
|
||||
const Vector2 c2 = (Vector2){ p2->position.x + offset2.x, p2->position.y + offset2.y };
|
||||
|
||||
const Vector2 screenC1 = (Vector2){ c1.x*innerBounds.width + innerBounds.x, innerBounds.y + innerBounds.height - c1.y*innerBounds.height };
|
||||
const Vector2 screenC2 = (Vector2){ c2.x*innerBounds.width + innerBounds.x, innerBounds.y + innerBounds.height - c2.y*innerBounds.height };
|
||||
|
||||
DrawSplineSegmentBezierCubic(screenPos1, screenC1, screenC2, screenPos2, 1, curveColor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif // GUI_CURVE_EDITOR_IMPLEMENTATION
|
||||
|
||||
@ -1,339 +0,0 @@
|
||||
/*******************************************************************************************
|
||||
*
|
||||
* raygui - controls test suite
|
||||
*
|
||||
* TEST CONTROLS:
|
||||
* - GuiDropdownBox()
|
||||
* - GuiCheckBox()
|
||||
* - GuiSpinner()
|
||||
* - GuiValueBox()
|
||||
* - GuiTextBox()
|
||||
* - GuiButton()
|
||||
* - GuiComboBox()
|
||||
* - GuiListView()
|
||||
* - GuiToggleGroup()
|
||||
* - GuiColorPicker()
|
||||
* - GuiSlider()
|
||||
* - GuiSliderBar()
|
||||
* - GuiProgressBar()
|
||||
* - GuiColorBarAlpha()
|
||||
* - GuiScrollPanel()
|
||||
*
|
||||
*
|
||||
* 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-2024 Ramon Santamaria (@raysan5)
|
||||
*
|
||||
**********************************************************************************************/
|
||||
|
||||
#include "raylib.h"
|
||||
|
||||
//#define RAYGUI_DEBUG_RECS_BOUNDS
|
||||
//#define RAYGUI_DEBUG_TEXT_BOUNDS
|
||||
|
||||
#define RAYGUI_IMPLEMENTATION
|
||||
//#define RAYGUI_CUSTOM_ICONS // It requires providing gui_icons.h in the same directory
|
||||
//#include "gui_icons.h" // External icons data provided, it can be generated with rGuiIcons tool
|
||||
#include "../../src/raygui.h"
|
||||
|
||||
// raygui embedded styles
|
||||
#include "../styles/style_cyber.h" // raygui style: cyber
|
||||
#include "../styles/style_jungle.h" // raygui style: jungle
|
||||
#include "../styles/style_lavanda.h" // raygui style: lavanda
|
||||
#include "../styles/style_dark.h" // raygui style: dark
|
||||
#include "../styles/style_bluish.h" // raygui style: bluish
|
||||
#include "../styles/style_terminal.h" // raygui style: terminal
|
||||
#include "../styles/style_candy.h" // raygui style: candy
|
||||
#include "../styles/style_cherry.h" // raygui style: cherry
|
||||
#include "../styles/style_ashes.h" // raygui style: ashes
|
||||
#include "../styles/style_enefete.h" // raygui style: enefete
|
||||
#include "../styles/style_sunny.h" // raygui style: sunny
|
||||
#include "../styles/style_amber.h" // raygui style: amber
|
||||
#include "../styles/style_genesis.h" // raygui style: genesis
|
||||
|
||||
//------------------------------------------------------------------------------------
|
||||
// Program main entry point
|
||||
//------------------------------------------------------------------------------------
|
||||
int main()
|
||||
{
|
||||
// Initialization
|
||||
//---------------------------------------------------------------------------------------
|
||||
const int screenWidth = 960;
|
||||
const int screenHeight = 560;
|
||||
|
||||
InitWindow(screenWidth, screenHeight, "raygui - controls test suite");
|
||||
SetExitKey(0);
|
||||
|
||||
// GUI controls initialization
|
||||
//----------------------------------------------------------------------------------
|
||||
int dropdownBox000Active = 0;
|
||||
bool dropDown000EditMode = false;
|
||||
|
||||
int dropdownBox001Active = 0;
|
||||
bool dropDown001EditMode = false;
|
||||
|
||||
int spinner001Value = 0;
|
||||
bool spinnerEditMode = false;
|
||||
|
||||
int valueBox002Value = 0;
|
||||
bool valueBoxEditMode = false;
|
||||
|
||||
char textBoxText[64] = "Text box";
|
||||
bool textBoxEditMode = false;
|
||||
|
||||
char textBoxMultiText[1024] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n\nDuis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n\nThisisastringlongerthanexpectedwithoutspacestotestcharbreaksforthosecases,checkingifworkingasexpected.\n\nExcepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
|
||||
bool textBoxMultiEditMode = false;
|
||||
|
||||
int listViewScrollIndex = 0;
|
||||
int listViewActive = -1;
|
||||
|
||||
int listViewExScrollIndex = 0;
|
||||
int listViewExActive = 2;
|
||||
int listViewExFocus = -1;
|
||||
char *listViewExList[8] = { "This", "is", "a", "list view", "with", "disable", "elements", "amazing!" };
|
||||
|
||||
Color colorPickerValue = RED;
|
||||
|
||||
float sliderValue = 50.0f;
|
||||
float sliderBarValue = 60;
|
||||
float progressValue = 0.1f;
|
||||
|
||||
bool forceSquaredChecked = false;
|
||||
|
||||
float alphaValue = 0.5f;
|
||||
|
||||
//int comboBoxActive = 1;
|
||||
int visualStyleActive = 0;
|
||||
int prevVisualStyleActive = 0;
|
||||
|
||||
int toggleGroupActive = 0;
|
||||
int toggleSliderActive = 0;
|
||||
|
||||
Vector2 viewScroll = { 0, 0 };
|
||||
//----------------------------------------------------------------------------------
|
||||
|
||||
// Custom GUI font loading
|
||||
//Font font = LoadFontEx("fonts/rainyhearts16.ttf", 12, 0, 0);
|
||||
//GuiSetFont(font);
|
||||
|
||||
bool exitWindow = false;
|
||||
bool showMessageBox = false;
|
||||
|
||||
char textInput[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);
|
||||
//--------------------------------------------------------------------------------------
|
||||
|
||||
// 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
|
||||
}
|
||||
|
||||
//alpha -= 0.002f;
|
||||
if (alpha < 0.0f) alpha = 0.0f;
|
||||
if (IsKeyPressed(KEY_SPACE)) alpha = 1.0f;
|
||||
|
||||
GuiSetAlpha(alpha);
|
||||
|
||||
//progressValue += 0.002f;
|
||||
if (IsKeyPressed(KEY_LEFT)) progressValue -= 0.1f;
|
||||
else if (IsKeyPressed(KEY_RIGHT)) progressValue += 0.1f;
|
||||
if (progressValue > 1.0f) progressValue = 1.0f;
|
||||
else if (progressValue < 0.0f) progressValue = 0.0f;
|
||||
|
||||
if (visualStyleActive != prevVisualStyleActive)
|
||||
{
|
||||
GuiLoadStyleDefault();
|
||||
|
||||
switch (visualStyleActive)
|
||||
{
|
||||
case 0: break; // Default style
|
||||
case 1: GuiLoadStyleJungle(); break;
|
||||
case 2: GuiLoadStyleLavanda(); break;
|
||||
case 3: GuiLoadStyleDark(); break;
|
||||
case 4: GuiLoadStyleBluish(); break;
|
||||
case 5: GuiLoadStyleCyber(); break;
|
||||
case 6: GuiLoadStyleTerminal(); break;
|
||||
case 7: GuiLoadStyleCandy(); break;
|
||||
case 8: GuiLoadStyleCherry(); break;
|
||||
case 9: GuiLoadStyleAshes(); break;
|
||||
case 10: GuiLoadStyleEnefete(); break;
|
||||
case 11: GuiLoadStyleSunny(); break;
|
||||
case 12: GuiLoadStyleAmber(); break;
|
||||
case 13: GuiLoadStyleGenesis(); break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
GuiSetStyle(LABEL, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT);
|
||||
|
||||
prevVisualStyleActive = visualStyleActive;
|
||||
}
|
||||
//----------------------------------------------------------------------------------
|
||||
|
||||
// Draw
|
||||
//----------------------------------------------------------------------------------
|
||||
BeginDrawing();
|
||||
|
||||
ClearBackground(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)));
|
||||
|
||||
// raygui: controls drawing
|
||||
//----------------------------------------------------------------------------------
|
||||
// Check all possible events that require GuiLock
|
||||
if (dropDown000EditMode || dropDown001EditMode) GuiLock();
|
||||
if (showTextInputBox) GuiLock();
|
||||
|
||||
// First GUI column
|
||||
//GuiSetStyle(CHECKBOX, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT);
|
||||
GuiCheckBox((Rectangle){ 25, 108, 15, 15 }, "FORCE CHECK!", &forceSquaredChecked);
|
||||
|
||||
GuiSetStyle(TEXTBOX, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER);
|
||||
//GuiSetStyle(VALUEBOX, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT);
|
||||
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;
|
||||
GuiSetStyle(TEXTBOX, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT);
|
||||
if (GuiTextBox((Rectangle){ 25, 215, 125, 30 }, textBoxText, 64, textBoxEditMode)) textBoxEditMode = !textBoxEditMode;
|
||||
|
||||
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;Candy;Cherry;Ashes;Enefete;Sunny;Amber;Genesis", &visualStyleActive);
|
||||
|
||||
// NOTE: GuiDropdownBox must draw after any other control that can be covered on unfolding
|
||||
if (dropDown000EditMode || dropDown001EditMode) GuiUnlock();
|
||||
if (showTextInputBox) GuiLock(); // Stay locked
|
||||
|
||||
GuiSetStyle(DROPDOWNBOX, TEXT_PADDING, 4);
|
||||
GuiSetStyle(DROPDOWNBOX, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT);
|
||||
if (GuiDropdownBox((Rectangle){ 25, 65, 125, 30 }, "#01#ONE;#02#TWO;#03#THREE;#04#FOUR", &dropdownBox001Active, dropDown001EditMode)) dropDown001EditMode = !dropDown001EditMode;
|
||||
GuiSetStyle(DROPDOWNBOX, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER);
|
||||
GuiSetStyle(DROPDOWNBOX, TEXT_PADDING, 0);
|
||||
|
||||
if (GuiDropdownBox((Rectangle){ 25, 25, 125, 30 }, "ONE;TWO;THREE", &dropdownBox000Active, dropDown000EditMode)) dropDown000EditMode = !dropDown000EditMode;
|
||||
|
||||
// Second GUI column
|
||||
//GuiSetStyle(LISTVIEW, LIST_ITEMS_BORDER_NORMAL, 1);
|
||||
GuiListView((Rectangle){ 165, 25, 140, 124 }, "Charmander;Bulbasaur;#18#Squirtel;Pikachu;Eevee;Pidgey", &listViewScrollIndex, &listViewActive);
|
||||
GuiListViewEx((Rectangle){ 165, 162, 140, 184 }, listViewExList, 8, &listViewExScrollIndex, &listViewExActive, &listViewExFocus);
|
||||
GuiSetStyle(LISTVIEW, LIST_ITEMS_BORDER_NORMAL, 0);
|
||||
|
||||
//GuiToggle((Rectangle){ 165, 400, 140, 25 }, "#1#ONE", &toggleGroupActive);
|
||||
GuiToggleGroup((Rectangle){ 165, 360, 140, 24 }, "#1#ONE\n#3#TWO\n#8#THREE\n#23#", &toggleGroupActive);
|
||||
//GuiDisable();
|
||||
GuiSetStyle(SLIDER, SLIDER_PADDING, 2);
|
||||
GuiToggleSlider((Rectangle){ 165, 480, 140, 30 }, "ON;OFF", &toggleSliderActive);
|
||||
GuiSetStyle(SLIDER, SLIDER_PADDING, 0);
|
||||
|
||||
// Third GUI column
|
||||
GuiPanel((Rectangle){ 320, 25, 225, 140 }, "Panel Info");
|
||||
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);
|
||||
|
||||
GuiProgressBar((Rectangle){ 320, 460, 200, 20 }, NULL, TextFormat("%i%%", (int)(progressValue*100)), &progressValue, 0.0f, 1.0f);
|
||||
GuiEnable();
|
||||
|
||||
// NOTE: View rectangle could be used to perform some scissor test
|
||||
Rectangle view = { 0 };
|
||||
GuiScrollPanel((Rectangle){ 560, 25, 102, 354 }, NULL, (Rectangle){ 560, 25, 300, 1200 }, &viewScroll, &view);
|
||||
|
||||
Vector2 mouseCell = { 0 };
|
||||
GuiGrid((Rectangle) { 560, 25 + 180 + 195, 100, 120 }, NULL, 20, 3, &mouseCell);
|
||||
|
||||
GuiColorBarAlpha((Rectangle){ 320, 490, 200, 30 }, NULL, &alphaValue);
|
||||
|
||||
GuiSetStyle(DEFAULT, TEXT_ALIGNMENT_VERTICAL, TEXT_ALIGN_TOP); // WARNING: Word-wrap does not work as expected in case of no-top alignment
|
||||
GuiSetStyle(DEFAULT, TEXT_WRAP_MODE, TEXT_WRAP_WORD); // WARNING: If wrap mode enabled, text editing is not supported
|
||||
if (GuiTextBox((Rectangle){ 678, 25, 258, 492 }, textBoxMultiText, 1024, textBoxMultiEditMode)) textBoxMultiEditMode = !textBoxMultiEditMode;
|
||||
GuiSetStyle(DEFAULT, TEXT_WRAP_MODE, TEXT_WRAP_NONE);
|
||||
GuiSetStyle(DEFAULT, TEXT_ALIGNMENT_VERTICAL, TEXT_ALIGN_MIDDLE);
|
||||
|
||||
GuiSetStyle(DEFAULT, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT);
|
||||
GuiStatusBar((Rectangle){ 0, (float)GetScreenHeight() - 20, (float)GetScreenWidth(), 20 }, "This is a status bar");
|
||||
GuiSetStyle(DEFAULT, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER);
|
||||
//GuiSetStyle(STATUSBAR, TEXT_INDENTATION, 20);
|
||||
|
||||
if (showMessageBox)
|
||||
{
|
||||
DrawRectangle(0, 0, GetScreenWidth(), GetScreenHeight(), Fade(RAYWHITE, 0.8f));
|
||||
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;
|
||||
else if (result == 1) exitWindow = true;
|
||||
}
|
||||
|
||||
if (showTextInputBox)
|
||||
{
|
||||
GuiUnlock();
|
||||
|
||||
DrawRectangle(0, 0, GetScreenWidth(), GetScreenHeight(), Fade(RAYWHITE, 0.8f));
|
||||
int result = GuiTextInputBox((Rectangle){ (float)GetScreenWidth()/2 - 120, (float)GetScreenHeight()/2 - 60, 240, 140 }, GuiIconText(ICON_FILE_SAVE, "Save file as..."), "Introduce output file name:", "Ok;Cancel", textInput, 255, NULL);
|
||||
|
||||
if (result == 1)
|
||||
{
|
||||
// TODO: Validate textInput value and save
|
||||
|
||||
TextCopy(textInputFileName, textInput);
|
||||
}
|
||||
|
||||
if ((result == 0) || (result == 1) || (result == 2))
|
||||
{
|
||||
showTextInputBox = false;
|
||||
TextCopy(textInput, "\0");
|
||||
}
|
||||
}
|
||||
//----------------------------------------------------------------------------------
|
||||
|
||||
EndDrawing();
|
||||
//----------------------------------------------------------------------------------
|
||||
}
|
||||
|
||||
// De-Initialization
|
||||
//--------------------------------------------------------------------------------------
|
||||
CloseWindow(); // Close window and OpenGL context
|
||||
//--------------------------------------------------------------------------------------
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Before Width: | Height: | Size: 56 KiB |
@ -1,71 +0,0 @@
|
||||
/*******************************************************************************************
|
||||
*
|
||||
* raygui - controls test suite
|
||||
*
|
||||
* COMPILATION (Windows - MinGW):
|
||||
* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99
|
||||
*
|
||||
* LICENSE: zlib/libpng
|
||||
*
|
||||
* Copyright (c) 2016-2024 Ramon Santamaria (@raysan5)
|
||||
*
|
||||
**********************************************************************************************/
|
||||
|
||||
#include "raylib.h"
|
||||
|
||||
#define RAYGUI_IMPLEMENTATION
|
||||
#include "../../src/raygui.h"
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
//------------------------------------------------------------------------------------
|
||||
// Program main entry point
|
||||
//------------------------------------------------------------------------------------
|
||||
int main()
|
||||
{
|
||||
// Initialization
|
||||
//---------------------------------------------------------------------------------------
|
||||
const int screenWidth = 800;
|
||||
const int screenHeight = 450;
|
||||
|
||||
InitWindow(screenWidth, screenHeight, "raygui - controls test suite");
|
||||
|
||||
float valueBoxValue = 0.0f;
|
||||
bool valueBoxEditMode = false;
|
||||
char valueBoxTextValue[32] = { 0 };
|
||||
|
||||
SetTargetFPS(60);
|
||||
//--------------------------------------------------------------------------------------
|
||||
|
||||
// Main game loop
|
||||
while (!WindowShouldClose()) // Detect window close button or ESC key
|
||||
{
|
||||
// Update
|
||||
//----------------------------------------------------------------------------------
|
||||
|
||||
//----------------------------------------------------------------------------------
|
||||
|
||||
// Draw
|
||||
//----------------------------------------------------------------------------------
|
||||
BeginDrawing();
|
||||
|
||||
ClearBackground(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)));
|
||||
|
||||
if (GuiValueBoxFloat((Rectangle){ 25, 175, 125, 30 }, NULL, valueBoxTextValue, &valueBoxValue, valueBoxEditMode))
|
||||
{
|
||||
valueBoxEditMode = !valueBoxEditMode;
|
||||
|
||||
printf("Value: %2.2f\n", valueBoxValue);
|
||||
}
|
||||
|
||||
EndDrawing();
|
||||
//----------------------------------------------------------------------------------
|
||||
}
|
||||
|
||||
// De-Initialization
|
||||
//--------------------------------------------------------------------------------------
|
||||
CloseWindow(); // Close window and OpenGL context
|
||||
//--------------------------------------------------------------------------------------
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Before Width: | Height: | Size: 379 KiB |
@ -1,112 +0,0 @@
|
||||
/*******************************************************************************************
|
||||
*
|
||||
* raygui - custom file dialog to load image
|
||||
*
|
||||
* 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-2024 Ramon Santamaria (@raysan5)
|
||||
*
|
||||
**********************************************************************************************/
|
||||
|
||||
#include "raylib.h"
|
||||
|
||||
#define RAYGUI_IMPLEMENTATION
|
||||
#include "../../src/raygui.h"
|
||||
|
||||
#undef RAYGUI_IMPLEMENTATION // Avoid including raygui implementation again
|
||||
|
||||
#define GUI_WINDOW_FILE_DIALOG_IMPLEMENTATION
|
||||
#include "gui_window_file_dialog.h"
|
||||
|
||||
//------------------------------------------------------------------------------------
|
||||
// Program main entry point
|
||||
//------------------------------------------------------------------------------------
|
||||
int main()
|
||||
{
|
||||
// Initialization
|
||||
//---------------------------------------------------------------------------------------
|
||||
int screenWidth = 800;
|
||||
int screenHeight = 560;
|
||||
|
||||
InitWindow(screenWidth, screenHeight, "raygui - custom modal dialog");
|
||||
SetExitKey(0);
|
||||
|
||||
// Custom file dialog
|
||||
GuiWindowFileDialogState fileDialogState = InitGuiWindowFileDialog(GetWorkingDirectory());
|
||||
|
||||
bool exitWindow = false;
|
||||
|
||||
char fileNameToLoad[512] = { 0 };
|
||||
|
||||
Texture texture = { 0 };
|
||||
|
||||
SetTargetFPS(60);
|
||||
//--------------------------------------------------------------------------------------
|
||||
|
||||
// Main game loop
|
||||
while (!exitWindow) // Detect window close button or ESC key
|
||||
{
|
||||
// Update
|
||||
//----------------------------------------------------------------------------------
|
||||
exitWindow = WindowShouldClose();
|
||||
|
||||
if (fileDialogState.SelectFilePressed)
|
||||
{
|
||||
// Load image file (if supported extension)
|
||||
if (IsFileExtension(fileDialogState.fileNameText, ".png"))
|
||||
{
|
||||
strcpy(fileNameToLoad, TextFormat("%s" PATH_SEPERATOR "%s", fileDialogState.dirPathText, fileDialogState.fileNameText));
|
||||
UnloadTexture(texture);
|
||||
texture = LoadTexture(fileNameToLoad);
|
||||
}
|
||||
|
||||
fileDialogState.SelectFilePressed = false;
|
||||
}
|
||||
//----------------------------------------------------------------------------------
|
||||
|
||||
// Draw
|
||||
//----------------------------------------------------------------------------------
|
||||
BeginDrawing();
|
||||
|
||||
ClearBackground(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)));
|
||||
|
||||
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);
|
||||
|
||||
DrawText(fileNameToLoad, 208, GetScreenHeight() - 20, 10, GRAY);
|
||||
|
||||
// raygui: controls drawing
|
||||
//----------------------------------------------------------------------------------
|
||||
if (fileDialogState.windowActive) GuiLock();
|
||||
|
||||
if (GuiButton((Rectangle){ 20, 20, 140, 30 }, GuiIconText(ICON_FILE_OPEN, "Open Image"))) fileDialogState.windowActive = true;
|
||||
|
||||
GuiUnlock();
|
||||
|
||||
// GUI: Dialog Window
|
||||
//--------------------------------------------------------------------------------
|
||||
GuiWindowFileDialog(&fileDialogState);
|
||||
//--------------------------------------------------------------------------------
|
||||
|
||||
//----------------------------------------------------------------------------------
|
||||
|
||||
EndDrawing();
|
||||
//----------------------------------------------------------------------------------
|
||||
}
|
||||
|
||||
// De-Initialization
|
||||
//--------------------------------------------------------------------------------------
|
||||
UnloadTexture(texture); // Unload texture
|
||||
|
||||
CloseWindow(); // Close window and OpenGL context
|
||||
//--------------------------------------------------------------------------------------
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -1,624 +0,0 @@
|
||||
/*******************************************************************************************
|
||||
*
|
||||
* 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-2024 Ramon Santamaria (@raysan5)
|
||||
*
|
||||
* This software is provided "as-is", without any express or implied warranty. In no event
|
||||
* will the authors be held liable for any damages arising from the use of this software.
|
||||
*
|
||||
* 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 (unsigned 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.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 (unsigned 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
|
||||
@ -1,223 +0,0 @@
|
||||
/*******************************************************************************************
|
||||
*
|
||||
* raygui - basic calculator app with custom input box for float values
|
||||
*
|
||||
* DEPENDENCIES:
|
||||
* raylib 4.5 - Windowing/input management and drawing.
|
||||
* raygui 3.5 - Immediate-mode GUI controls.
|
||||
*
|
||||
* COMPILATION (Windows - MinGW):
|
||||
* gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99
|
||||
*
|
||||
**********************************************************************************************/
|
||||
|
||||
#include "raylib.h"
|
||||
|
||||
#define RAYGUI_IMPLEMENTATION
|
||||
#include "../../src/raygui.h"
|
||||
|
||||
int guiFloatingPointIndex = 0; // Global variable shared by all GuiFloatBox()
|
||||
|
||||
int GuiFloatBox(Rectangle bounds, const char* text, float* value, int minValue, int maxValue, bool editMode); // Custom input box that works with float values. Basicly GuiValueBox(), but with some changes
|
||||
|
||||
int main()
|
||||
{
|
||||
InitWindow(250, 100, "Basic calculator");
|
||||
|
||||
// General variables
|
||||
SetTargetFPS(60);
|
||||
|
||||
float variableA = 0.0f;
|
||||
float variableB = 0.0f;
|
||||
float result = 0.0f;
|
||||
char operation[2];
|
||||
operation[0] = '+';
|
||||
operation[1] = '\0';
|
||||
|
||||
bool variableAMode = false;
|
||||
bool variableBMode = false;
|
||||
//--------------------------------------------------------------------------------------
|
||||
|
||||
// Main game loop
|
||||
while (!WindowShouldClose())
|
||||
{
|
||||
// Draw
|
||||
//----------------------------------------------------------------------------------
|
||||
BeginDrawing();
|
||||
|
||||
ClearBackground(RAYWHITE);
|
||||
|
||||
if (GuiFloatBox((Rectangle){ 10, 10, 100, 20 }, NULL, &variableA, -1000000.0, 1000000.0, variableAMode)) variableAMode = !variableAMode;
|
||||
if (GuiFloatBox((Rectangle){ 140, 10, 100, 20 }, NULL, &variableB, -1000000.0, 1000000.0, variableBMode)) variableBMode = !variableBMode;
|
||||
|
||||
if (GuiButton((Rectangle){ 10, 70, 50, 20 }, "+"))
|
||||
{
|
||||
result = variableA + variableB;
|
||||
operation[0] = '+';
|
||||
}
|
||||
if (GuiButton((Rectangle){ 70, 70, 50, 20 }, "-"))
|
||||
{
|
||||
result = variableA - variableB;
|
||||
operation[0] = '-';
|
||||
}
|
||||
if (GuiButton((Rectangle){ 130, 70, 50, 20 }, "*"))
|
||||
{
|
||||
result = variableA * variableB;
|
||||
operation[0] = '*';
|
||||
}
|
||||
if (GuiButton((Rectangle){ 190, 70, 50, 20 }, "/"))
|
||||
{
|
||||
result = variableA / variableB;
|
||||
operation[0] = '/';
|
||||
}
|
||||
|
||||
DrawText(operation, 123, 15, 10, DARKGRAY);
|
||||
|
||||
GuiFloatBox((Rectangle){ 55, 40, 135, 20 }, "= ", &result, -2000000.0, 2000000.0, false);
|
||||
|
||||
EndDrawing();
|
||||
//----------------------------------------------------------------------------------
|
||||
}
|
||||
|
||||
CloseWindow();
|
||||
}
|
||||
|
||||
// Float Box control, updates input text with numbers
|
||||
int GuiFloatBox(Rectangle bounds, const char* text, float* value, int minValue, int maxValue, bool editMode)
|
||||
{
|
||||
#if !defined(RAYGUI_VALUEBOX_MAX_CHARS)
|
||||
#define RAYGUI_VALUEBOX_MAX_CHARS 32
|
||||
#endif
|
||||
|
||||
int result = 0;
|
||||
GuiState state = guiState;
|
||||
|
||||
char textValue[RAYGUI_VALUEBOX_MAX_CHARS + 1] = "\0";
|
||||
|
||||
Rectangle textBounds = { 0 };
|
||||
if (text != NULL)
|
||||
{
|
||||
textBounds.width = (float)GuiGetTextWidth(text) + 2;
|
||||
textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE);
|
||||
textBounds.x = bounds.x + bounds.width + GuiGetStyle(VALUEBOX, TEXT_PADDING);
|
||||
textBounds.y = bounds.y + bounds.height / 2.0f - GuiGetStyle(DEFAULT, TEXT_SIZE) / 2.0f;
|
||||
if (GuiGetStyle(VALUEBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_LEFT) textBounds.x = bounds.x - textBounds.width - GuiGetStyle(VALUEBOX, TEXT_PADDING);
|
||||
}
|
||||
|
||||
// Update control
|
||||
//--------------------------------------------------------------------
|
||||
if ((state != STATE_DISABLED) && !guiLocked && !guiControlExclusiveMode)
|
||||
{
|
||||
Vector2 mousePoint = GetMousePosition();
|
||||
|
||||
if (*value >= 0) sprintf(textValue, "+%.3f", *value);
|
||||
else sprintf(textValue, "%.3f", *value);
|
||||
|
||||
bool valueHasChanged = false;
|
||||
|
||||
int keyCount = (int)strlen(textValue) - guiFloatingPointIndex;
|
||||
|
||||
if (editMode)
|
||||
{
|
||||
state = STATE_PRESSED;
|
||||
|
||||
// Only allow keys in range [48..57]
|
||||
if (keyCount < RAYGUI_VALUEBOX_MAX_CHARS)
|
||||
{
|
||||
if (GuiGetTextWidth(textValue) < bounds.width)
|
||||
{
|
||||
int key = GetCharPressed();
|
||||
if ((key >= 48) && (key <= 57) && guiFloatingPointIndex)
|
||||
{
|
||||
if (guiFloatingPointIndex && guiFloatingPointIndex != 4) guiFloatingPointIndex--;
|
||||
|
||||
textValue[keyCount] = (char)key;
|
||||
textValue[++keyCount] = '\0';
|
||||
valueHasChanged = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Delete text
|
||||
if (keyCount > 0)
|
||||
{
|
||||
if (IsKeyPressed(KEY_BACKSPACE))
|
||||
{
|
||||
if (guiFloatingPointIndex < 4) guiFloatingPointIndex++;
|
||||
|
||||
keyCount--;
|
||||
textValue[keyCount] = '\0';
|
||||
valueHasChanged = true;
|
||||
}
|
||||
}
|
||||
|
||||
// Change sign
|
||||
if (IsKeyPressed(KEY_MINUS))
|
||||
{
|
||||
if (textValue[0] == '+') textValue[0] = '-';
|
||||
else if (textValue[0] == '-') textValue[0] = '+';
|
||||
valueHasChanged = true;
|
||||
}
|
||||
|
||||
// Add decimal separator
|
||||
if ((IsKeyPressed(KEY_COMMA) || IsKeyPressed(KEY_PERIOD)) && guiFloatingPointIndex == 4)
|
||||
{
|
||||
guiFloatingPointIndex--;
|
||||
valueHasChanged = true;
|
||||
}
|
||||
|
||||
if (valueHasChanged)
|
||||
{
|
||||
*value = atof(textValue);
|
||||
}
|
||||
|
||||
if (IsKeyPressed(KEY_ENTER) || (!CheckCollisionPointRec(mousePoint, bounds) && IsMouseButtonPressed(MOUSE_LEFT_BUTTON)))
|
||||
{
|
||||
guiFloatingPointIndex = 0;
|
||||
result = 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (*value > maxValue) *value = maxValue;
|
||||
else if (*value < minValue) *value = minValue;
|
||||
|
||||
if (CheckCollisionPointRec(mousePoint, bounds))
|
||||
{
|
||||
state = STATE_FOCUSED;
|
||||
if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) result = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
// Draw control
|
||||
//--------------------------------------------------------------------
|
||||
Color baseColor = BLANK;
|
||||
sprintf(textValue, "%.3f", *value);
|
||||
|
||||
if (state == STATE_PRESSED)
|
||||
{
|
||||
baseColor = GetColor(GuiGetStyle(VALUEBOX, BASE_COLOR_PRESSED));
|
||||
textValue[(int)strlen(textValue) - guiFloatingPointIndex] = '\0';
|
||||
}
|
||||
else if (state == STATE_DISABLED) baseColor = GetColor(GuiGetStyle(VALUEBOX, BASE_COLOR_DISABLED));
|
||||
|
||||
// WARNING: BLANK color does not work properly with Fade()
|
||||
GuiDrawRectangle(bounds, GuiGetStyle(VALUEBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(VALUEBOX, BORDER + (state * 3))), guiAlpha), baseColor);
|
||||
GuiDrawText(textValue, GetTextBounds(VALUEBOX, bounds), TEXT_ALIGN_CENTER, Fade(GetColor(GuiGetStyle(VALUEBOX, TEXT + (state * 3))), guiAlpha));
|
||||
|
||||
// Draw cursor
|
||||
if (editMode)
|
||||
{
|
||||
// NOTE: ValueBox internal text is always centered
|
||||
Rectangle cursor = { bounds.x + GuiGetTextWidth(textValue) / 2.0f + bounds.width / 2.0f + 1, bounds.y + 2.0f * GuiGetStyle(VALUEBOX, BORDER_WIDTH), 4, bounds.height - 4 * GuiGetStyle(VALUEBOX, BORDER_WIDTH) };
|
||||
GuiDrawRectangle(cursor, 0, BLANK, Fade(GetColor(GuiGetStyle(VALUEBOX, BORDER_COLOR_PRESSED)), guiAlpha));
|
||||
}
|
||||
|
||||
// Draw text label if provided
|
||||
GuiDrawText(text, textBounds, (GuiGetStyle(VALUEBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_RIGHT) ? TEXT_ALIGN_LEFT : TEXT_ALIGN_RIGHT, Fade(GetColor(GuiGetStyle(LABEL, TEXT + (state * 3))), guiAlpha));
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
return result;
|
||||
}
|
||||
@ -1,470 +0,0 @@
|
||||
/*******************************************************************************************
|
||||
*
|
||||
* 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-2024 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)GuiGetTextWidth(textTop);
|
||||
textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE);
|
||||
textBounds.x = bounds.x + bounds.width/2 - textBounds.width/2;
|
||||
textBounds.y = bounds.y - textBounds.height - GuiGetStyle(SLIDER, TEXT_PADDING);
|
||||
|
||||
GuiDrawText(textTop, textBounds, TEXT_ALIGN_RIGHT, Fade(GetColor(GuiGetStyle(SLIDER, TEXT + (state*3))), guiAlpha));
|
||||
}
|
||||
|
||||
if (textBottom != NULL)
|
||||
{
|
||||
Rectangle textBounds = { 0 };
|
||||
textBounds.width = (float)GuiGetTextWidth(textBottom);
|
||||
textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE);
|
||||
textBounds.x = bounds.x + bounds.width/2 - textBounds.width/2;
|
||||
textBounds.y = bounds.y + bounds.height + GuiGetStyle(SLIDER, TEXT_PADDING);
|
||||
|
||||
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)GuiGetTextWidth(textLeft);
|
||||
textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE);
|
||||
textBounds.x = bounds.x - textBounds.width - GuiGetStyle(SLIDER, TEXT_PADDING);
|
||||
textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2;
|
||||
|
||||
GuiDrawText(textLeft, textBounds, TEXT_ALIGN_RIGHT, Fade(GetColor(GuiGetStyle(SLIDER, TEXT + (state*3))), guiAlpha));
|
||||
}
|
||||
|
||||
if (textRight != NULL)
|
||||
{
|
||||
Rectangle textBounds = { 0 };
|
||||
textBounds.width = (float)GuiGetTextWidth(textRight);
|
||||
textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE);
|
||||
textBounds.x = bounds.x + bounds.width + GuiGetStyle(SLIDER, TEXT_PADDING);
|
||||
textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2;
|
||||
|
||||
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)GuiGetTextWidth(textTop);
|
||||
textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE);
|
||||
textBounds.x = bounds.x + bounds.width/2 - textBounds.width/2;
|
||||
textBounds.y = bounds.y - textBounds.height - GuiGetStyle(SLIDER, TEXT_PADDING);
|
||||
|
||||
GuiDrawText(textTop, textBounds, TEXT_ALIGN_RIGHT, Fade(GetColor(GuiGetStyle(SLIDER, TEXT + (state*3))), guiAlpha));
|
||||
}
|
||||
|
||||
if (textBottom != NULL)
|
||||
{
|
||||
Rectangle textBounds = { 0 };
|
||||
textBounds.width = (float)GuiGetTextWidth(textBottom);
|
||||
textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE);
|
||||
textBounds.x = bounds.x + bounds.width/2 - textBounds.width/2;
|
||||
textBounds.y = bounds.y + bounds.height + GuiGetStyle(SLIDER, TEXT_PADDING);
|
||||
|
||||
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);
|
||||
}
|
||||
@ -1,148 +0,0 @@
|
||||
#include "raylib.h"
|
||||
|
||||
#define RAYGUI_IMPLEMENTATION
|
||||
#include "../../src/raygui.h"
|
||||
|
||||
#include "../../styles/dark/style_dark.h"
|
||||
|
||||
static Vector2 window_position = { 10, 10 };
|
||||
static Vector2 window_size = { 200, 400 };
|
||||
static bool minimized = false;
|
||||
static bool moving = false;
|
||||
static bool resizing = false;
|
||||
static Vector2 scroll;
|
||||
|
||||
static Vector2 window2_position = { 250, 10 };
|
||||
static Vector2 window2_size = { 200, 400 };
|
||||
static bool minimized2 = false;
|
||||
static bool moving2 = false;
|
||||
static bool resizing2 = false;
|
||||
static Vector2 scroll2;
|
||||
|
||||
void GuiWindowFloating(Vector2 *position, Vector2 *size, bool *minimized, bool *moving, bool *resizing, void (*draw_content)(Vector2, Vector2), Vector2 content_size, Vector2 *scroll, const char* title) {
|
||||
#if !defined(RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT)
|
||||
#define RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT 24
|
||||
#endif
|
||||
|
||||
#if !defined(RAYGUI_WINDOW_CLOSEBUTTON_SIZE)
|
||||
#define RAYGUI_WINDOW_CLOSEBUTTON_SIZE 18
|
||||
#endif
|
||||
|
||||
int close_title_size_delta_half = (RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT - RAYGUI_WINDOW_CLOSEBUTTON_SIZE) / 2;
|
||||
|
||||
// window movement and resize input and collision check
|
||||
if(IsMouseButtonPressed(MOUSE_LEFT_BUTTON) && !*moving && !*resizing) {
|
||||
Vector2 mouse_position = GetMousePosition();
|
||||
|
||||
Rectangle title_collision_rect = { position->x, position->y, size->x - (RAYGUI_WINDOW_CLOSEBUTTON_SIZE + close_title_size_delta_half), RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT };
|
||||
Rectangle resize_collision_rect = { position->x + size->x - 20, position->y + size->y - 20, 20, 20 };
|
||||
|
||||
if(CheckCollisionPointRec(mouse_position, title_collision_rect)) {
|
||||
*moving = true;
|
||||
} else if(!*minimized && CheckCollisionPointRec(mouse_position, resize_collision_rect)) {
|
||||
*resizing = true;
|
||||
}
|
||||
}
|
||||
|
||||
// window movement and resize update
|
||||
if(*moving) {
|
||||
Vector2 mouse_delta = GetMouseDelta();
|
||||
position->x += mouse_delta.x;
|
||||
position->y += mouse_delta.y;
|
||||
|
||||
if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) {
|
||||
*moving = false;
|
||||
|
||||
// clamp window position keep it inside the application area
|
||||
if(position->x < 0) position->x = 0;
|
||||
else if(position->x > GetScreenWidth() - size->x) position->x = GetScreenWidth() - size->x;
|
||||
if(position->y < 0) position->y = 0;
|
||||
else if(position->y > GetScreenHeight()) position->y = GetScreenHeight() - RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT;
|
||||
}
|
||||
|
||||
} else if(*resizing) {
|
||||
Vector2 mouse = GetMousePosition();
|
||||
if (mouse.x > position->x)
|
||||
size->x = mouse.x - position->x;
|
||||
if (mouse.y > position->y)
|
||||
size->y = mouse.y - position->y;
|
||||
|
||||
// clamp window size to an arbitrary minimum value and the window size as the maximum
|
||||
if(size->x < 100) size->x = 100;
|
||||
else if(size->x > GetScreenWidth()) size->x = GetScreenWidth();
|
||||
if(size->y < 100) size->y = 100;
|
||||
else if(size->y > GetScreenHeight()) size->y = GetScreenHeight();
|
||||
|
||||
if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) {
|
||||
*resizing = false;
|
||||
}
|
||||
}
|
||||
|
||||
// window and content drawing with scissor and scroll area
|
||||
if(*minimized) {
|
||||
GuiStatusBar((Rectangle){ position->x, position->y, size->x, RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT }, title);
|
||||
|
||||
if (GuiButton((Rectangle){ position->x + size->x - RAYGUI_WINDOW_CLOSEBUTTON_SIZE - close_title_size_delta_half,
|
||||
position->y + close_title_size_delta_half,
|
||||
RAYGUI_WINDOW_CLOSEBUTTON_SIZE,
|
||||
RAYGUI_WINDOW_CLOSEBUTTON_SIZE },
|
||||
"#120#")) {
|
||||
*minimized = false;
|
||||
}
|
||||
|
||||
} else {
|
||||
*minimized = GuiWindowBox((Rectangle) { position->x, position->y, size->x, size->y }, title);
|
||||
|
||||
// scissor and draw content within a scroll panel
|
||||
if(draw_content != NULL) {
|
||||
Rectangle scissor = { 0 };
|
||||
GuiScrollPanel((Rectangle) { position->x, position->y + RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT, size->x, size->y - RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT },
|
||||
NULL,
|
||||
(Rectangle) { position->x, position->y, content_size.x, content_size.y },
|
||||
scroll,
|
||||
&scissor);
|
||||
|
||||
bool require_scissor = size->x < content_size.x || size->y < content_size.y;
|
||||
|
||||
if(require_scissor) {
|
||||
BeginScissorMode(scissor.x, scissor.y, scissor.width, scissor.height);
|
||||
}
|
||||
|
||||
draw_content(*position, *scroll);
|
||||
|
||||
if(require_scissor) {
|
||||
EndScissorMode();
|
||||
}
|
||||
}
|
||||
|
||||
// draw the resize button/icon
|
||||
GuiDrawIcon(71, position->x + size->x - 20, position->y + size->y - 20, 1, WHITE);
|
||||
}
|
||||
}
|
||||
|
||||
static void DrawContent(Vector2 position, Vector2 scroll) {
|
||||
GuiButton((Rectangle) { position.x + 20 + scroll.x, position.y + 50 + scroll.y, 100, 25 }, "Button 1");
|
||||
GuiButton((Rectangle) { position.x + 20 + scroll.x, position.y + 100 + scroll.y, 100, 25 }, "Button 2");
|
||||
GuiButton((Rectangle) { position.x + 20 + scroll.x, position.y + 150 + scroll.y, 100, 25 }, "Button 3");
|
||||
GuiLabel((Rectangle) { position.x + 20 + scroll.x, position.y + 200 + scroll.y, 250, 25 }, "A Label");
|
||||
GuiLabel((Rectangle) { position.x + 20 + scroll.x, position.y + 250 + scroll.y, 250, 25 }, "Another Label");
|
||||
GuiLabel((Rectangle) { position.x + 20 + scroll.x, position.y + 300 + scroll.y, 250, 25 }, "Yet Another Label");
|
||||
}
|
||||
|
||||
int main(void) {
|
||||
InitWindow(960, 560, "raygui - floating window example");
|
||||
SetTargetFPS(60);
|
||||
GuiLoadStyleDark();
|
||||
|
||||
while(!WindowShouldClose()) {
|
||||
BeginDrawing();
|
||||
ClearBackground(DARKGREEN);
|
||||
GuiWindowFloating(&window_position, &window_size, &minimized, &moving, &resizing, &DrawContent, (Vector2) { 140, 320 }, &scroll, "Movable & Scalable Window");
|
||||
GuiWindowFloating(&window2_position, &window2_size, &minimized2, &moving2, &resizing2, &DrawContent, (Vector2) { 140, 320 }, &scroll2, "Another window");
|
||||
EndDrawing();
|
||||
}
|
||||
|
||||
CloseWindow();
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -1,192 +0,0 @@
|
||||
/*******************************************************************************************
|
||||
*
|
||||
* raygui - image exporter
|
||||
*
|
||||
* 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) 2015-2024 Ramon Santamaria (@raysan5)
|
||||
*
|
||||
********************************************************************************************/
|
||||
|
||||
#include "raylib.h"
|
||||
|
||||
#define RAYGUI_IMPLEMENTATION
|
||||
#include "../../src/raygui.h"
|
||||
|
||||
//------------------------------------------------------------------------------------
|
||||
// Program main entry point
|
||||
//------------------------------------------------------------------------------------
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
// Initialization
|
||||
//--------------------------------------------------------------------------------------
|
||||
const int screenWidth = 800;
|
||||
const int screenHeight = 450;
|
||||
|
||||
InitWindow(screenWidth, screenHeight, "raygui - image exporter");
|
||||
|
||||
// GUI controls initialization
|
||||
//----------------------------------------------------------------------------------
|
||||
Rectangle windowBoxRec = { screenWidth/2 - 110, screenHeight/2 - 100, 220, 190 };
|
||||
bool windowBoxActive = false;
|
||||
|
||||
int fileFormatActive = 0;
|
||||
const char *fileFormatTextList[3] = { "IMAGE (.png)", "DATA (.raw)", "CODE (.h)" };
|
||||
|
||||
int pixelFormatActive = 0;
|
||||
const char *pixelFormatTextList[7] = { "GRAYSCALE", "GRAY ALPHA", "R5G6B5", "R8G8B8", "R5G5B5A1", "R4G4B4A4", "R8G8B8A8" };
|
||||
|
||||
bool textBoxEditMode = false;
|
||||
char fileName[64] = "untitled";
|
||||
//--------------------------------------------------------------------------------------
|
||||
|
||||
Image image = { 0 };
|
||||
Texture2D texture = { 0 };
|
||||
|
||||
bool imageLoaded = false;
|
||||
float imageScale = 1.0f;
|
||||
Rectangle imageRec = { 0 };
|
||||
|
||||
bool btnExportPressed = false;
|
||||
|
||||
SetTargetFPS(60);
|
||||
//--------------------------------------------------------------------------------------
|
||||
|
||||
// Main game loop
|
||||
while (!WindowShouldClose()) // Detect window close button or ESC key
|
||||
{
|
||||
// Update
|
||||
//----------------------------------------------------------------------------------
|
||||
if (IsFileDropped())
|
||||
{
|
||||
FilePathList droppedFiles = LoadDroppedFiles();
|
||||
|
||||
if (droppedFiles.count == 1)
|
||||
{
|
||||
Image imTemp = LoadImage(droppedFiles.paths[0]);
|
||||
|
||||
if (imTemp.data != NULL)
|
||||
{
|
||||
UnloadImage(image);
|
||||
image = imTemp;
|
||||
|
||||
UnloadTexture(texture);
|
||||
texture = LoadTextureFromImage(image);
|
||||
|
||||
imageLoaded = true;
|
||||
pixelFormatActive = image.format - 1;
|
||||
|
||||
if (texture.height > texture.width) imageScale = (float)(screenHeight - 100)/(float)texture.height;
|
||||
else imageScale = (float)(screenWidth - 100)/(float)texture.width;
|
||||
}
|
||||
}
|
||||
|
||||
UnloadDroppedFiles(droppedFiles);
|
||||
}
|
||||
|
||||
if (btnExportPressed)
|
||||
{
|
||||
if (imageLoaded)
|
||||
{
|
||||
ImageFormat(&image, pixelFormatActive + 1);
|
||||
|
||||
if (fileFormatActive == 0) // PNG
|
||||
{
|
||||
if ((GetFileExtension(fileName) == NULL) || (!IsFileExtension(fileName, ".png"))) strcat(fileName, ".png\0"); // No extension provided
|
||||
ExportImage(image, fileName);
|
||||
}
|
||||
else if (fileFormatActive == 1) // RAW
|
||||
{
|
||||
if ((GetFileExtension(fileName) == NULL) || (!IsFileExtension(fileName, ".raw"))) strcat(fileName, ".raw\0"); // No extension provided
|
||||
|
||||
int dataSize = GetPixelDataSize(image.width, image.height, image.format);
|
||||
|
||||
FILE *rawFile = fopen(fileName, "wb");
|
||||
fwrite(image.data, 1, dataSize, rawFile);
|
||||
fclose(rawFile);
|
||||
}
|
||||
else if (fileFormatActive == 2) // CODE
|
||||
{
|
||||
ExportImageAsCode(image, fileName);
|
||||
}
|
||||
}
|
||||
|
||||
windowBoxActive = false;
|
||||
}
|
||||
|
||||
if (imageLoaded)
|
||||
{
|
||||
imageScale += (float)GetMouseWheelMove()*0.05f; // Image scale control
|
||||
if (imageScale <= 0.1f) imageScale = 0.1f;
|
||||
else if (imageScale >= 5) imageScale = 5;
|
||||
|
||||
imageRec = (Rectangle){ screenWidth/2 - (float)image.width*imageScale/2,
|
||||
screenHeight/2 - (float)image.height*imageScale/2,
|
||||
(float)image.width*imageScale, (float)image.height*imageScale };
|
||||
}
|
||||
//----------------------------------------------------------------------------------
|
||||
|
||||
// Draw
|
||||
//----------------------------------------------------------------------------------
|
||||
BeginDrawing();
|
||||
|
||||
ClearBackground(RAYWHITE);
|
||||
|
||||
if (texture.id > 0)
|
||||
{
|
||||
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);
|
||||
DrawText(TextFormat("SCALE: %.2f%%", imageScale*100.0f), 20, screenHeight - 40, 20, GetColor(GuiGetStyle(DEFAULT, LINE_COLOR)));
|
||||
}
|
||||
else
|
||||
{
|
||||
DrawText("DRAG & DROP YOUR IMAGE!", 350, 200, 10, DARKGRAY);
|
||||
GuiDisable();
|
||||
}
|
||||
|
||||
if (GuiButton((Rectangle){ screenWidth - 170, screenHeight - 50, 150, 30 }, "Image Export")) windowBoxActive = true;
|
||||
GuiEnable();
|
||||
|
||||
// Draw window box: windowBoxName
|
||||
//-----------------------------------------------------------------------------
|
||||
if (windowBoxActive)
|
||||
{
|
||||
DrawRectangle(0, 0, screenWidth, screenHeight, Fade(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)), 0.7f));
|
||||
windowBoxActive = !GuiWindowBox((Rectangle){ windowBoxRec.x, windowBoxRec.y, 220, 190 }, "Image Export Options");
|
||||
|
||||
GuiLabel((Rectangle){ windowBoxRec.x + 10, windowBoxRec.y + 35, 60, 25 }, "File format:");
|
||||
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:");
|
||||
GuiComboBox((Rectangle){ windowBoxRec.x + 80, windowBoxRec.y + 70, 130, 25 }, TextJoin(pixelFormatTextList, 7, ";"), &pixelFormatActive);
|
||||
GuiLabel((Rectangle){ windowBoxRec.x + 10, windowBoxRec.y + 105, 50, 25 }, "File name:");
|
||||
if (GuiTextBox((Rectangle){ windowBoxRec.x + 80, windowBoxRec.y + 105, 130, 25 }, fileName, 64, textBoxEditMode)) textBoxEditMode = !textBoxEditMode;
|
||||
|
||||
btnExportPressed = GuiButton((Rectangle){ windowBoxRec.x + 10, windowBoxRec.y + 145, 200, 30 }, "Export Image");
|
||||
}
|
||||
else btnExportPressed = false;
|
||||
|
||||
if (btnExportPressed) DrawText("Image exported!", 20, screenHeight - 20, 20, RED);
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
EndDrawing();
|
||||
//----------------------------------------------------------------------------------
|
||||
}
|
||||
|
||||
// De-Initialization
|
||||
//--------------------------------------------------------------------------------------
|
||||
UnloadImage(image);
|
||||
UnloadTexture(texture);
|
||||
|
||||
CloseWindow(); // Close window and OpenGL context
|
||||
//--------------------------------------------------------------------------------------
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Before Width: | Height: | Size: 379 KiB |
|
Before Width: | Height: | Size: 218 KiB |
|
Before Width: | Height: | Size: 288 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 6.4 KiB |
@ -1,228 +0,0 @@
|
||||
/*******************************************************************************************
|
||||
*
|
||||
* raygui - image raw importer
|
||||
*
|
||||
* 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) 2015-2024 Ramon Santamaria (@raysan5)
|
||||
*
|
||||
**********************************************************************************************/
|
||||
|
||||
#include "raylib.h"
|
||||
|
||||
#define RAYGUI_IMPLEMENTATION
|
||||
#include "../../src/raygui.h"
|
||||
|
||||
#include <string.h> // Required for: strcpy()
|
||||
#include <stdlib.h> // Required for: atoi()
|
||||
#include <math.h> // Required for: round()
|
||||
|
||||
//------------------------------------------------------------------------------------
|
||||
// Program main entry point
|
||||
//------------------------------------------------------------------------------------
|
||||
int main()
|
||||
{
|
||||
// Initialization
|
||||
//---------------------------------------------------------------------------------------
|
||||
const int screenWidth = 800;
|
||||
const int screenHeight = 600;
|
||||
|
||||
InitWindow(screenWidth, screenHeight, "raygui - image raw importer");
|
||||
|
||||
Texture2D texture = { 0 };
|
||||
|
||||
// GUI controls initialization
|
||||
//----------------------------------------------------------------------------------
|
||||
Vector2 windowOffset = { screenWidth/2 - 200/2, screenHeight/2 - 465/2 };
|
||||
|
||||
bool importWindowActive = false;
|
||||
|
||||
int widthValue = 0;
|
||||
bool widthEditMode = false;
|
||||
int heightValue = 0;
|
||||
bool heightEditMode = false;
|
||||
|
||||
int pixelFormatActive = 0;
|
||||
const char *pixelFormatTextList[8] = { "CUSTOM", "GRAYSCALE", "GRAY ALPHA", "R5G6B5", "R8G8B8", "R5G5B5A1", "R4G4B4A4", "R8G8B8A8" };
|
||||
|
||||
int channelsActive = 3;
|
||||
const char *channelsTextList[4] = { "1", "2", "3", "4" };
|
||||
int bitDepthActive = 0;
|
||||
const char *bitDepthTextList[3] = { "8", "16", "32" };
|
||||
|
||||
int headerSizeValue = 0;
|
||||
bool headerSizeEditMode = false;
|
||||
//----------------------------------------------------------------------------------
|
||||
|
||||
// Image file info
|
||||
int dataSize = 0;
|
||||
char fileNamePath[256] = "\0";
|
||||
char fileName[64] = "\0";
|
||||
|
||||
bool btnLoadPressed = false;
|
||||
|
||||
bool imageLoaded = false;
|
||||
float imageScale = 1.0f;
|
||||
|
||||
SetTargetFPS(60);
|
||||
//--------------------------------------------------------------------------------------
|
||||
|
||||
// Main game loop
|
||||
while (!WindowShouldClose()) // Detect window close button or ESC key
|
||||
{
|
||||
// Update
|
||||
//----------------------------------------------------------------------------------
|
||||
// Check if a file is dropped
|
||||
if (IsFileDropped())
|
||||
{
|
||||
FilePathList droppedFiles = LoadDroppedFiles();
|
||||
|
||||
// Check file extensions for drag-and-drop
|
||||
if ((droppedFiles.count == 1) && IsFileExtension(droppedFiles.paths[0], ".raw"))
|
||||
{
|
||||
FILE *imageFile = fopen(droppedFiles.paths[0], "rb");
|
||||
fseek(imageFile, 0L, SEEK_END);
|
||||
dataSize = ftell(imageFile);
|
||||
fclose(imageFile);
|
||||
|
||||
// NOTE: Returned string is just a pointer to droppedFiles[0],
|
||||
// we need to make a copy of that data somewhere else: fileName
|
||||
strcpy(fileNamePath, droppedFiles.paths[0]);
|
||||
strcpy(fileName, GetFileName(droppedFiles.paths[0]));
|
||||
|
||||
// Try to guess possible raw values
|
||||
// Let's assume image is square, RGBA, 8 bit per channel
|
||||
widthValue = round(sqrt(dataSize/4));
|
||||
heightValue = widthValue;
|
||||
headerSizeValue = dataSize - widthValue*heightValue*4;
|
||||
if (headerSizeValue < 0) headerSizeValue = 0;
|
||||
|
||||
importWindowActive = true;
|
||||
}
|
||||
|
||||
UnloadDroppedFiles(droppedFiles);
|
||||
}
|
||||
|
||||
// Check if load button has been pressed
|
||||
if (btnLoadPressed)
|
||||
{
|
||||
// Depending on channels and bit depth, select correct pixel format
|
||||
if ((widthValue != 0) && (heightValue != 0))
|
||||
{
|
||||
int format = -1;
|
||||
|
||||
if (pixelFormatActive == 0)
|
||||
{
|
||||
int channels = atoi(channelsTextList[channelsActive]);
|
||||
int bpp = atoi(bitDepthTextList[bitDepthActive]);
|
||||
|
||||
// Select correct format depending on channels and bpp
|
||||
if (bpp == 8)
|
||||
{
|
||||
if (channels == 1) format = PIXELFORMAT_UNCOMPRESSED_GRAYSCALE;
|
||||
else if (channels == 2) format = PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA;
|
||||
else if (channels == 3) format = PIXELFORMAT_UNCOMPRESSED_R8G8B8;
|
||||
else if (channels == 4) format = PIXELFORMAT_UNCOMPRESSED_R8G8B8A8;
|
||||
}
|
||||
else if (bpp == 32)
|
||||
{
|
||||
if (channels == 1) format = PIXELFORMAT_UNCOMPRESSED_R32;
|
||||
else if (channels == 2) TraceLog(LOG_WARNING, "Channel bit-depth not supported!");
|
||||
else if (channels == 3) format = PIXELFORMAT_UNCOMPRESSED_R32G32B32;
|
||||
else if (channels == 4) format = PIXELFORMAT_UNCOMPRESSED_R32G32B32A32;
|
||||
}
|
||||
else if (bpp == 16) TraceLog(LOG_WARNING, "Channel bit-depth not supported!");
|
||||
}
|
||||
else format = pixelFormatActive;
|
||||
|
||||
if (format != -1)
|
||||
{
|
||||
Image image = LoadImageRaw(fileNamePath, widthValue, heightValue, format, headerSizeValue);
|
||||
texture = LoadTextureFromImage(image);
|
||||
UnloadImage(image);
|
||||
|
||||
importWindowActive = false;
|
||||
btnLoadPressed = false;
|
||||
|
||||
if (texture.id > 0)
|
||||
{
|
||||
imageLoaded = true;
|
||||
imageScale = (float)(screenHeight - 100)/texture.height;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (imageLoaded) imageScale += (float)GetMouseWheelMove(); // Image scale control
|
||||
//----------------------------------------------------------------------------------
|
||||
|
||||
// Draw
|
||||
//----------------------------------------------------------------------------------
|
||||
BeginDrawing();
|
||||
|
||||
ClearBackground(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)));
|
||||
|
||||
if (texture.id != 0)
|
||||
{
|
||||
DrawTextureEx(texture, (Vector2){ screenWidth/2 - texture.width*imageScale/2, screenHeight/2 - texture.height*imageScale/2 }, 0, imageScale, WHITE);
|
||||
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)));
|
||||
|
||||
// raygui: controls drawing
|
||||
//----------------------------------------------------------------------------------
|
||||
if (importWindowActive)
|
||||
{
|
||||
importWindowActive = !GuiWindowBox((Rectangle){ windowOffset.x + 0, windowOffset.y + 0, 200, 465 }, "Image RAW Import Options");
|
||||
|
||||
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 + 10, windowOffset.y + 50, 65, 20 }, "File size:");
|
||||
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");
|
||||
GuiLabel((Rectangle){ windowOffset.x + 20, windowOffset.y + 100, 33, 25 }, "Width:");
|
||||
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 + 20, windowOffset.y + 130, 33, 25 }, "Height:");
|
||||
if (GuiValueBox((Rectangle){ windowOffset.x + 60, windowOffset.y + 130, 80, 25 }, NULL, &heightValue, 0, 8192, heightEditMode)) heightEditMode = !heightEditMode;
|
||||
GuiLabel((Rectangle){ windowOffset.x + 145, windowOffset.y + 130, 30, 25 }, "pixels");
|
||||
GuiGroupBox((Rectangle){ windowOffset.x + 10, windowOffset.y + 180, 180, 160 }, "Pixel Format");
|
||||
GuiComboBox((Rectangle){ windowOffset.x + 20, windowOffset.y + 195, 160, 25 }, TextJoin(pixelFormatTextList, 8, ";"), &pixelFormatActive);
|
||||
GuiLine((Rectangle){ windowOffset.x + 20, windowOffset.y + 220, 160, 20 }, NULL);
|
||||
|
||||
if (pixelFormatActive != 0) GuiDisable();
|
||||
GuiLabel((Rectangle){ windowOffset.x + 20, windowOffset.y + 235, 50, 20 }, "Channels:");
|
||||
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:");
|
||||
GuiToggleGroup((Rectangle){ windowOffset.x + 20, windowOffset.y + 305, 160/3, 25 }, TextJoin(bitDepthTextList, 3, ";"), &bitDepthActive);
|
||||
GuiEnable();
|
||||
|
||||
GuiGroupBox((Rectangle){ windowOffset.x + 10, windowOffset.y + 355, 180, 50 }, "Header");
|
||||
GuiLabel((Rectangle){ windowOffset.x + 25, windowOffset.y + 370, 27, 25 }, "Size:");
|
||||
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");
|
||||
|
||||
btnLoadPressed = GuiButton((Rectangle){ windowOffset.x + 10, windowOffset.y + 420, 180, 30 }, "Import RAW");
|
||||
}
|
||||
//----------------------------------------------------------------------------------
|
||||
|
||||
EndDrawing();
|
||||
//----------------------------------------------------------------------------------
|
||||
}
|
||||
|
||||
// De-Initialization
|
||||
//--------------------------------------------------------------------------------------
|
||||
if (texture.id != 0) UnloadTexture(texture);
|
||||
|
||||
CloseWindow(); // Close window and OpenGL context
|
||||
//--------------------------------------------------------------------------------------
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -1,98 +0,0 @@
|
||||
/*******************************************************************************************
|
||||
*
|
||||
* raygui - portable window
|
||||
*
|
||||
* 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-2024 Ramon Santamaria (@raysan5)
|
||||
*
|
||||
**********************************************************************************************/
|
||||
|
||||
#include "raylib.h"
|
||||
|
||||
#define RAYGUI_IMPLEMENTATION
|
||||
#include "../../src/raygui.h"
|
||||
|
||||
//------------------------------------------------------------------------------------
|
||||
// Program main entry point
|
||||
//------------------------------------------------------------------------------------
|
||||
int main()
|
||||
{
|
||||
// Initialization
|
||||
//---------------------------------------------------------------------------------------
|
||||
const int screenWidth = 800;
|
||||
const int screenHeight = 600;
|
||||
|
||||
SetConfigFlags(FLAG_WINDOW_UNDECORATED);
|
||||
InitWindow(screenWidth, screenHeight, "raygui - portable window");
|
||||
|
||||
// General variables
|
||||
Vector2 mousePosition = { 0 };
|
||||
Vector2 windowPosition = { 500, 200 };
|
||||
Vector2 panOffset = mousePosition;
|
||||
bool dragWindow = false;
|
||||
|
||||
SetWindowPosition(windowPosition.x, windowPosition.y);
|
||||
|
||||
bool exitWindow = false;
|
||||
|
||||
SetTargetFPS(60);
|
||||
//--------------------------------------------------------------------------------------
|
||||
|
||||
// Main game loop
|
||||
while (!exitWindow && !WindowShouldClose()) // Detect window close button or ESC key
|
||||
{
|
||||
// Update
|
||||
//----------------------------------------------------------------------------------
|
||||
mousePosition = GetMousePosition();
|
||||
|
||||
if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON) && !dragWindow)
|
||||
{
|
||||
if (CheckCollisionPointRec(mousePosition, (Rectangle){ 0, 0, screenWidth, 20 }))
|
||||
{
|
||||
windowPosition = GetWindowPosition();
|
||||
dragWindow = true;
|
||||
panOffset = mousePosition;
|
||||
}
|
||||
}
|
||||
|
||||
if (dragWindow)
|
||||
{
|
||||
windowPosition.x += (mousePosition.x - panOffset.x);
|
||||
windowPosition.y += (mousePosition.y - panOffset.y);
|
||||
|
||||
SetWindowPosition((int)windowPosition.x, (int)windowPosition.y);
|
||||
|
||||
if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) dragWindow = false;
|
||||
}
|
||||
//----------------------------------------------------------------------------------
|
||||
|
||||
// Draw
|
||||
//----------------------------------------------------------------------------------
|
||||
BeginDrawing();
|
||||
|
||||
ClearBackground(RAYWHITE);
|
||||
|
||||
exitWindow = GuiWindowBox((Rectangle){ 0, 0, screenWidth, screenHeight }, "#198# PORTABLE WINDOW");
|
||||
|
||||
DrawText(TextFormat("Mouse Position: [ %.0f, %.0f ]", mousePosition.x, mousePosition.y), 10, 40, 10, DARKGRAY);
|
||||
DrawText(TextFormat("Window Position: [ %.0f, %.0f ]", windowPosition.x, windowPosition.y), 10, 60, 10, DARKGRAY);
|
||||
|
||||
EndDrawing();
|
||||
//----------------------------------------------------------------------------------
|
||||
}
|
||||
|
||||
// De-Initialization
|
||||
//--------------------------------------------------------------------------------------
|
||||
CloseWindow(); // Close window and OpenGL context
|
||||
//--------------------------------------------------------------------------------------
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -1,868 +0,0 @@
|
||||
/*******************************************************************************************
|
||||
*
|
||||
* 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 = GuiGetTextWidth(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 = GuiGetTextWidth(textValue);
|
||||
textValue[cursor] = c;
|
||||
}
|
||||
//DrawRectangle(bounds.x + textWidthCursor + textPadding + 2, bounds.y + 2*GuiGetStyle(VALUEBOX, BORDER_WIDTH), 1, bounds.height - 4*GuiGetStyle(VALUEBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(VALUEBOX, BORDER_COLOR_PRESSED)), guiAlpha));
|
||||
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(VALUEBOX, SPINNER_BUTTON_WIDTH) + GuiGetStyle(VALUEBOX, SPINNER_BUTTON_SPACING), bounds.y,
|
||||
bounds.width - 2*(GuiGetStyle(VALUEBOX, SPINNER_BUTTON_WIDTH) + GuiGetStyle(VALUEBOX, SPINNER_BUTTON_SPACING)), bounds.height };
|
||||
Rectangle leftButtonBound = { (float)bounds.x, (float)bounds.y, (float)GuiGetStyle(VALUEBOX, SPINNER_BUTTON_WIDTH), (float)bounds.height };
|
||||
Rectangle rightButtonBound = { (float)bounds.x + bounds.width - GuiGetStyle(VALUEBOX, SPINNER_BUTTON_WIDTH),
|
||||
(float)bounds.y, (float)GuiGetStyle(VALUEBOX, SPINNER_BUTTON_WIDTH), (float)bounds.height };
|
||||
|
||||
// Update control
|
||||
//--------------------------------------------------------------------
|
||||
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(VALUEBOX, 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, GuiGetTextWidth("A"), slotBounds.height};
|
||||
Rectangle valBounds = { lblBounds.x+lblBounds.width+PROPERTY_PADDING, slotBounds.y, propBounds.width-lblBounds.width-2*PROPERTY_PADDING, slotBounds.height};
|
||||
GuiDrawText("X", lblBounds, TEXT_ALIGN_LEFT, textColor);
|
||||
props[p].value.v2.x = GuiDMSpinner(valBounds, props[p].value.v2.x, 0.0, 0.0, 1.0, PROPERTY_DECIMAL_DIGITS, (propState == STATE_FOCUSED) && CheckCollisionPointRec(mousePos, slotBounds) );
|
||||
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, GuiGetTextWidth("Height"), slotBounds.height};
|
||||
Rectangle valBounds = { lblBounds.x+lblBounds.width+PROPERTY_PADDING, slotBounds.y, propBounds.width-lblBounds.width-2*PROPERTY_PADDING, slotBounds.height};
|
||||
GuiDrawText("X", lblBounds, TEXT_ALIGN_LEFT, textColor);
|
||||
props[p].value.vrect.x = GuiDMSpinner(valBounds, props[p].value.vrect.x, 0.0, 0.0, 1.0, 0, (propState == STATE_FOCUSED) && CheckCollisionPointRec(mousePos, slotBounds) );
|
||||
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, GuiGetTextWidth("A"), slotBounds.height};
|
||||
Rectangle valBounds = { lblBounds.x+lblBounds.width+PROPERTY_PADDING, slotBounds.y, GuiGetTextWidth("000000"), slotBounds.height};
|
||||
Rectangle sbarBounds = { valBounds.x + valBounds.width + PROPERTY_PADDING, slotBounds.y, slotBounds.width - 3*PROPERTY_PADDING - lblBounds.width - valBounds.width, slotBounds.height };
|
||||
|
||||
if(sbarBounds.width <= GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)-2) valBounds.width = propBounds.width-lblBounds.width-2*PROPERTY_PADDING; // hide slider when no space
|
||||
// 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
|
||||
@ -1,101 +0,0 @@
|
||||
/*******************************************************************************************
|
||||
*
|
||||
* 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-2024 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;
|
||||
}
|
||||
|
||||
@ -1,27 +0,0 @@
|
||||
#
|
||||
# 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
|
||||
|
Before Width: | Height: | Size: 139 KiB |
@ -1,27 +0,0 @@
|
||||
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
|
||||
@ -1,153 +0,0 @@
|
||||
/*******************************************************************************************
|
||||
*
|
||||
* raygui - Controls test
|
||||
*
|
||||
* TEST CONTROLS:
|
||||
* - GuiScrollPanel()
|
||||
*
|
||||
* 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
|
||||
*
|
||||
* COMPILATION (Linux - gcc):
|
||||
* gcc -o $(NAME_PART) $(FILE_NAME) -I../../src -lraylib -lGL -lm -lpthread -ldl -lrt -lX11 -std=c99
|
||||
*
|
||||
* LICENSE: zlib/libpng
|
||||
*
|
||||
* Copyright (c) 2019-2024 Vlad Adrian (@Demizdor) and Ramon Santamaria (@raysan5)
|
||||
*
|
||||
**********************************************************************************************/
|
||||
|
||||
#include "raylib.h"
|
||||
|
||||
#define RAYGUI_IMPLEMENTATION
|
||||
#include "../../src/raygui.h"
|
||||
|
||||
|
||||
static void DrawStyleEditControls(void); // Draw and process scroll bar style edition controls
|
||||
|
||||
//------------------------------------------------------------------------------------
|
||||
// Program main entry point
|
||||
//------------------------------------------------------------------------------------
|
||||
int main()
|
||||
{
|
||||
// Initialization
|
||||
//---------------------------------------------------------------------------------------
|
||||
const int screenWidth = 800;
|
||||
const int screenHeight = 450;
|
||||
|
||||
InitWindow(screenWidth, screenHeight, "raygui - GuiScrollPanel()");
|
||||
|
||||
Rectangle panelRec = { 20, 40, 200, 150 };
|
||||
Rectangle panelContentRec = {0, 0, 340, 340 };
|
||||
Rectangle panelView = { 0 };
|
||||
Vector2 panelScroll = { 99, -20 };
|
||||
|
||||
bool showContentArea = true;
|
||||
|
||||
SetTargetFPS(60);
|
||||
//---------------------------------------------------------------------------------------
|
||||
|
||||
// Main game loop
|
||||
while (!WindowShouldClose()) // Detect window close button or ESC key
|
||||
{
|
||||
// Update
|
||||
//----------------------------------------------------------------------------------
|
||||
// TODO: Implement required update logic
|
||||
//----------------------------------------------------------------------------------
|
||||
|
||||
// Draw
|
||||
//----------------------------------------------------------------------------------
|
||||
BeginDrawing();
|
||||
|
||||
ClearBackground(RAYWHITE);
|
||||
|
||||
DrawText(TextFormat("[%f, %f]", panelScroll.x, panelScroll.y), 4, 4, 20, RED);
|
||||
|
||||
GuiScrollPanel(panelRec, NULL, panelContentRec, &panelScroll, &panelView);
|
||||
|
||||
BeginScissorMode(panelView.x, panelView.y, panelView.width, panelView.height);
|
||||
GuiGrid((Rectangle){panelRec.x + panelScroll.x, panelRec.y + panelScroll.y, panelContentRec.width, panelContentRec.height}, NULL, 16, 3, NULL);
|
||||
EndScissorMode();
|
||||
|
||||
if (showContentArea) DrawRectangle(panelRec.x + panelScroll.x, panelRec.y + panelScroll.y, panelContentRec.width, panelContentRec.height, Fade(RED, 0.1));
|
||||
|
||||
DrawStyleEditControls();
|
||||
|
||||
GuiCheckBox((Rectangle){ 565, 80, 20, 20 }, "SHOW CONTENT AREA", &showContentArea);
|
||||
|
||||
GuiSliderBar((Rectangle){ 590, 385, 145, 15}, "WIDTH", TextFormat("%i", (int)panelContentRec.width), &panelContentRec.width, 1, 600);
|
||||
GuiSliderBar((Rectangle){ 590, 410, 145, 15 }, "HEIGHT", TextFormat("%i", (int)panelContentRec.height), &panelContentRec.height, 1, 400);
|
||||
|
||||
EndDrawing();
|
||||
//----------------------------------------------------------------------------------
|
||||
}
|
||||
|
||||
// De-Initialization
|
||||
//--------------------------------------------------------------------------------------
|
||||
CloseWindow(); // Close window and OpenGL context
|
||||
//--------------------------------------------------------------------------------------
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Draw and process scroll bar style edition controls
|
||||
static void DrawStyleEditControls(void)
|
||||
{
|
||||
// ScrollPanel style controls
|
||||
//----------------------------------------------------------
|
||||
GuiGroupBox((Rectangle){ 550, 170, 220, 205 }, "SCROLLBAR STYLE");
|
||||
|
||||
int style = GuiGetStyle(SCROLLBAR, BORDER_WIDTH);
|
||||
GuiLabel((Rectangle){ 555, 195, 110, 10 }, "BORDER_WIDTH");
|
||||
GuiSpinner((Rectangle){ 670, 190, 90, 20 }, NULL, &style, 0, 6, false);
|
||||
GuiSetStyle(SCROLLBAR, BORDER_WIDTH, style);
|
||||
|
||||
style = GuiGetStyle(SCROLLBAR, ARROWS_SIZE);
|
||||
GuiLabel((Rectangle){ 555, 220, 110, 10 }, "ARROWS_SIZE");
|
||||
GuiSpinner((Rectangle){ 670, 215, 90, 20 }, NULL, &style, 4, 14, false);
|
||||
GuiSetStyle(SCROLLBAR, ARROWS_SIZE, style);
|
||||
|
||||
style = GuiGetStyle(SCROLLBAR, SLIDER_PADDING);
|
||||
GuiLabel((Rectangle){ 555, 245, 110, 10 }, "SLIDER_PADDING");
|
||||
GuiSpinner((Rectangle){ 670, 240, 90, 20 }, NULL, &style, 0, 14, false);
|
||||
GuiSetStyle(SCROLLBAR, SLIDER_PADDING, style);
|
||||
|
||||
bool scrollBarArrows = GuiGetStyle(SCROLLBAR, ARROWS_VISIBLE);
|
||||
GuiCheckBox((Rectangle){ 565, 280, 20, 20 }, "ARROWS_VISIBLE", &scrollBarArrows);
|
||||
GuiSetStyle(SCROLLBAR, ARROWS_VISIBLE, scrollBarArrows);
|
||||
|
||||
style = GuiGetStyle(SCROLLBAR, SLIDER_PADDING);
|
||||
GuiLabel((Rectangle){ 555, 325, 110, 10 }, "SLIDER_PADDING");
|
||||
GuiSpinner((Rectangle){ 670, 320, 90, 20 }, NULL, &style, 0, 14, false);
|
||||
GuiSetStyle(SCROLLBAR, SLIDER_PADDING, style);
|
||||
|
||||
style = GuiGetStyle(SCROLLBAR, SLIDER_WIDTH);
|
||||
GuiLabel((Rectangle){ 555, 350, 110, 10 }, "SLIDER_WIDTH");
|
||||
GuiSpinner((Rectangle){ 670, 345, 90, 20 }, NULL, &style, 2, 100, false);
|
||||
GuiSetStyle(SCROLLBAR, SLIDER_WIDTH, style);
|
||||
|
||||
const char *text = GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE? "SCROLLBAR: LEFT" : "SCROLLBAR: RIGHT";
|
||||
bool toggleScrollBarSide = GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE);
|
||||
GuiToggle((Rectangle){ 560, 110, 200, 35 }, text, &toggleScrollBarSide);
|
||||
GuiSetStyle(LISTVIEW, SCROLLBAR_SIDE, toggleScrollBarSide);
|
||||
//----------------------------------------------------------
|
||||
|
||||
// ScrollBar style controls
|
||||
//----------------------------------------------------------
|
||||
GuiGroupBox((Rectangle){ 550, 20, 220, 135 }, "SCROLLPANEL STYLE");
|
||||
|
||||
style = GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH);
|
||||
GuiLabel((Rectangle){ 555, 35, 110, 10 }, "SCROLLBAR_WIDTH");
|
||||
GuiSpinner((Rectangle){ 670, 30, 90, 20 }, NULL, &style, 6, 30, false);
|
||||
GuiSetStyle(LISTVIEW, SCROLLBAR_WIDTH, style);
|
||||
|
||||
style = GuiGetStyle(DEFAULT, BORDER_WIDTH);
|
||||
GuiLabel((Rectangle){ 555, 60, 110, 10 }, "BORDER_WIDTH");
|
||||
GuiSpinner((Rectangle){ 670, 55, 90, 20 }, NULL, &style, 0, 20, false);
|
||||
GuiSetStyle(DEFAULT, BORDER_WIDTH, style);
|
||||
//----------------------------------------------------------
|
||||
}
|
||||
@ -1,181 +0,0 @@
|
||||
/*******************************************************************************************
|
||||
*
|
||||
* 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;
|
||||
}
|
||||
|
||||
@ -1,36 +0,0 @@
|
||||
/*******************************************************************************************
|
||||
*
|
||||
* 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;
|
||||
}
|
||||
@ -1,145 +0,0 @@
|
||||
/*******************************************************************************************
|
||||
*
|
||||
* 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-2024 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
|
||||
// NOTE: Included in the same order as selector
|
||||
#define MAX_GUI_STYLES_AVAILABLE 12 // NOTE: Included light style
|
||||
#include "../styles/style_jungle.h" // raygui style: jungle
|
||||
#include "../styles/style_candy.h" // raygui style: candy
|
||||
#include "../styles/style_lavanda.h" // raygui style: lavanda
|
||||
#include "../styles/style_cyber.h" // raygui style: cyber
|
||||
#include "../styles/style_terminal.h" // raygui style: terminal
|
||||
#include "../styles/style_ashes.h" // raygui style: ashes
|
||||
#include "../styles/style_bluish.h" // raygui style: bluish
|
||||
#include "../styles/style_dark.h" // raygui style: dark
|
||||
#include "../styles/style_cherry.h" // raygui style: cherry
|
||||
#include "../styles/style_sunny.h" // raygui style: sunny
|
||||
#include "../styles/style_enefete.h" // raygui style: enefete
|
||||
|
||||
#include <string.h> // Required for: strcpy()
|
||||
|
||||
//------------------------------------------------------------------------------------
|
||||
// Program main entry point
|
||||
//------------------------------------------------------------------------------------
|
||||
int main()
|
||||
{
|
||||
// Initialization
|
||||
//---------------------------------------------------------------------------------------
|
||||
const int screenWidth = 800;
|
||||
const int screenHeight = 480;
|
||||
|
||||
InitWindow(screenWidth, screenHeight, "raygui - styles selector");
|
||||
SetExitKey(0);
|
||||
|
||||
// Custom GUI font loading
|
||||
//Font font = LoadFontEx("fonts/custom_font.ttf", 12, 0, 0);
|
||||
//GuiSetFont(font);
|
||||
|
||||
bool exitWindow = false;
|
||||
bool showMessageBox = false;
|
||||
|
||||
// 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 (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)
|
||||
{
|
||||
// Reset to default internal style
|
||||
// NOTE: Required to unload any previously loaded font texture
|
||||
GuiLoadStyleDefault();
|
||||
|
||||
switch (visualStyleActive)
|
||||
{
|
||||
case 1: GuiLoadStyleJungle(); break;
|
||||
case 2: GuiLoadStyleCandy(); break;
|
||||
case 3: GuiLoadStyleLavanda(); break;
|
||||
case 4: GuiLoadStyleCyber(); break;
|
||||
case 5: GuiLoadStyleTerminal(); break;
|
||||
case 6: GuiLoadStyleAshes(); break;
|
||||
case 7: GuiLoadStyleBluish(); break;
|
||||
case 8: GuiLoadStyleDark(); break;
|
||||
case 9: GuiLoadStyleCherry(); break;
|
||||
case 10: GuiLoadStyleSunny(); break;
|
||||
case 11: GuiLoadStyleEnefete(); break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
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;Candy;Lavanda;Cyber;Terminal;Ashes;Bluish;Dark;Cherry;Sunny;Enefete", &visualStyleActive);
|
||||
|
||||
DrawRectangle(10, 44, GuiGetFont().texture.width, GuiGetFont().texture.height, BLACK);
|
||||
DrawTexture(GuiGetFont().texture, 10, 44, WHITE);
|
||||
DrawRectangleLines(10, 44, GuiGetFont().texture.width, GuiGetFont().texture.height,
|
||||
GetColor(GuiGetStyle(DEFAULT, LINE_COLOR)));
|
||||
|
||||
//GuiSetIconScale(2);
|
||||
//GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_RIGHT);
|
||||
//GuiButton((Rectangle){ 25, 255, 300, 30 }, GuiIconText(ICON_FILE_SAVE, "Save File"));
|
||||
//GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER);
|
||||
//----------------------------------------------------------------------------------
|
||||
|
||||
EndDrawing();
|
||||
//----------------------------------------------------------------------------------
|
||||
}
|
||||
|
||||
// De-Initialization
|
||||
//--------------------------------------------------------------------------------------
|
||||
CloseWindow(); // Close window and OpenGL context
|
||||
//--------------------------------------------------------------------------------------
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -1,608 +0,0 @@
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// StyleAsCode exporter v2.0 - Style data exported as a values array //
|
||||
// //
|
||||
// USAGE: On init call: GuiLoadStyleAmber(); //
|
||||
// //
|
||||
// more info and bugs-report: github.com/raysan5/raygui //
|
||||
// feedback and support: ray[at]raylibtech.com //
|
||||
// //
|
||||
// Copyright (c) 2020-2025 raylib technologies (@raylibtech) //
|
||||
// //
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#define AMBER_STYLE_PROPS_COUNT 18
|
||||
|
||||
// Custom style name: Amber
|
||||
static const GuiStyleProp amberStyleProps[AMBER_STYLE_PROPS_COUNT] = {
|
||||
{ 0, 0, (int)0x898988ff }, // DEFAULT_BORDER_COLOR_NORMAL
|
||||
{ 0, 1, (int)0x292929ff }, // DEFAULT_BASE_COLOR_NORMAL
|
||||
{ 0, 2, (int)0xd4d4d4ff }, // DEFAULT_TEXT_COLOR_NORMAL
|
||||
{ 0, 3, (int)0xeb891dff }, // DEFAULT_BORDER_COLOR_FOCUSED
|
||||
{ 0, 4, (int)0x292929ff }, // DEFAULT_BASE_COLOR_FOCUSED
|
||||
{ 0, 5, (int)0xffffffff }, // DEFAULT_TEXT_COLOR_FOCUSED
|
||||
{ 0, 6, (int)0xf1cf9dff }, // DEFAULT_BORDER_COLOR_PRESSED
|
||||
{ 0, 7, (int)0xf39333ff }, // DEFAULT_BASE_COLOR_PRESSED
|
||||
{ 0, 8, (int)0x191410ff }, // DEFAULT_TEXT_COLOR_PRESSED
|
||||
{ 0, 9, (int)0x6a6a6aff }, // DEFAULT_BORDER_COLOR_DISABLED
|
||||
{ 0, 10, (int)0x818181ff }, // DEFAULT_BASE_COLOR_DISABLED
|
||||
{ 0, 11, (int)0x606060ff }, // DEFAULT_TEXT_COLOR_DISABLED
|
||||
{ 0, 16, (int)0x00000010 }, // DEFAULT_TEXT_SIZE
|
||||
{ 0, 18, (int)0xef922aff }, // DEFAULT_LINE_COLOR
|
||||
{ 0, 19, (int)0x333333ff }, // DEFAULT_BACKGROUND_COLOR
|
||||
{ 0, 20, (int)0x00000008 }, // DEFAULT_TEXT_LINE_SPACING
|
||||
{ 1, 8, (int)0xe7e0d4ff }, // LABEL_TEXT_COLOR_PRESSED
|
||||
{ 4, 8, (int)0xf1cf9dff }, // SLIDER_TEXT_COLOR_PRESSED
|
||||
};
|
||||
|
||||
// WARNING: This style uses a custom font: "hello-world.ttf" (size: 16, spacing: 1)
|
||||
|
||||
#define AMBER_STYLE_FONT_ATLAS_COMP_SIZE 2605
|
||||
|
||||
// Font atlas image pixels data: DEFLATE compressed
|
||||
static unsigned char amberFontData[AMBER_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed,
|
||||
0xdd, 0x8b, 0x8e, 0x9c, 0xb8, 0x12, 0x00, 0x50, 0xf8, 0xff, 0x7f, 0x76, 0x5d, 0xe9, 0x66, 0xb3, 0xd2, 0xee, 0x8e, 0x6d,
|
||||
0xaa, 0x30, 0x8f, 0xee, 0x9c, 0x1c, 0x45, 0x91, 0x9a, 0x34, 0x18, 0xdb, 0x85, 0x0d, 0x33, 0x94, 0x63, 0x03, 0x00, 0x00,
|
||||
0x00, 0x88, 0x2d, 0x5a, 0xe7, 0xb3, 0xcc, 0xe7, 0x5b, 0xf7, 0xf3, 0xf6, 0xd7, 0xe7, 0x6d, 0xb0, 0xed, 0xe8, 0xbe, 0xfa,
|
||||
0x65, 0xda, 0x92, 0xfb, 0x89, 0xee, 0x37, 0xe2, 0x87, 0x4f, 0x7e, 0xff, 0xc9, 0xec, 0xa7, 0x77, 0xbe, 0xf9, 0xda, 0xcb,
|
||||
0x6e, 0x19, 0x1f, 0xbd, 0x25, 0x4b, 0x56, 0xff, 0xce, 0xd1, 0x7a, 0xcf, 0xd4, 0xe1, 0xef, 0x3f, 0x2d, 0xb1, 0x97, 0x71,
|
||||
0x79, 0x7e, 0xde, 0xdb, 0x36, 0x39, 0xeb, 0xdc, 0x79, 0xb7, 0xe9, 0x96, 0xda, 0xb7, 0xd6, 0xc4, 0x7f, 0xaf, 0x4d, 0x32,
|
||||
0x9f, 0x6f, 0xdd, 0x7a, 0xfc, 0x15, 0x37, 0xbd, 0xb8, 0xdd, 0x13, 0xfd, 0xa4, 0x17, 0x23, 0xfb, 0x20, 0xca, 0x23, 0xb5,
|
||||
0xff, 0x71, 0x2f, 0x5a, 0x71, 0x4d, 0xed, 0x95, 0xf6, 0xe7, 0xab, 0x4b, 0xff, 0x1b, 0x6d, 0x78, 0xe6, 0xb5, 0x6b, 0x55,
|
||||
0xbf, 0x1e, 0xf7, 0x1f, 0xbe, 0x5b, 0x2b, 0xdb, 0xf1, 0x72, 0x45, 0xba, 0x2d, 0x62, 0xd8, 0x6b, 0xf6, 0xee, 0x35, 0x23,
|
||||
0x77, 0x76, 0x51, 0x38, 0xef, 0x98, 0x6c, 0xd9, 0x52, 0xa3, 0x5a, 0x5b, 0x3c, 0xfe, 0xaf, 0x88, 0xff, 0xf8, 0x7f, 0x2d,
|
||||
0xee, 0xa9, 0xf1, 0x36, 0x92, 0x65, 0xca, 0x47, 0xed, 0xde, 0x39, 0x6e, 0x7f, 0x3c, 0xbf, 0xba, 0x4e, 0x7b, 0xdb, 0xf6,
|
||||
0x42, 0x6d, 0xf4, 0xb6, 0xb4, 0xee, 0x79, 0x6f, 0xe5, 0xab, 0x5e, 0x24, 0xce, 0x26, 0x4e, 0x5f, 0x4b, 0x63, 0xd0, 0xd2,
|
||||
0xe3, 0xb6, 0x8b, 0x74, 0x49, 0xa3, 0xf0, 0x9d, 0xf1, 0x96, 0x6d, 0xe9, 0x77, 0xae, 0x1b, 0xa3, 0xf2, 0xfb, 0x1b, 0xcf,
|
||||
0xbe, 0xa2, 0x18, 0x0f, 0xe7, 0xcb, 0xb9, 0xa7, 0xaf, 0x89, 0x71, 0xf1, 0x3d, 0x55, 0x36, 0xfe, 0xb7, 0x85, 0xf1, 0x1f,
|
||||
0xe9, 0xfa, 0xbe, 0x2f, 0xfe, 0x9f, 0x18, 0xff, 0xb7, 0x49, 0xfc, 0x6f, 0xe2, 0x3f, 0xf5, 0x7f, 0x73, 0xf7, 0x05, 0xe3,
|
||||
0x71, 0x3b, 0x12, 0xf3, 0x99, 0x58, 0x18, 0xcf, 0x71, 0x7b, 0xf4, 0x8f, 0x7a, 0x5b, 0x65, 0x26, 0xd8, 0xbf, 0xdf, 0xea,
|
||||
0xc7, 0xd9, 0xe8, 0x1e, 0x2d, 0xd2, 0x33, 0xce, 0xd1, 0xdd, 0x55, 0xe6, 0x79, 0x49, 0x2c, 0xeb, 0x99, 0x5b, 0x29, 0xfe,
|
||||
0x23, 0xf5, 0xcc, 0x27, 0x26, 0x35, 0x9f, 0x8d, 0xff, 0x18, 0x5c, 0xff, 0x46, 0xfd, 0x28, 0x2e, 0xbd, 0xff, 0xcf, 0xc6,
|
||||
0xff, 0x36, 0x99, 0x95, 0x6d, 0xa9, 0x9e, 0x5a, 0x29, 0x65, 0x7b, 0xd1, 0x13, 0xd5, 0x95, 0xf1, 0x1f, 0xc9, 0xb3, 0x8e,
|
||||
0x03, 0x4f, 0xc3, 0x7a, 0xc7, 0xa8, 0xdc, 0xbd, 0xb5, 0x93, 0xfd, 0x2a, 0x1e, 0x6c, 0x93, 0x33, 0x23, 0x76, 0x7b, 0x7c,
|
||||
0xfc, 0x8f, 0xc7, 0xe6, 0xff, 0x91, 0x9e, 0x1b, 0x5c, 0x1f, 0xff, 0xf1, 0xf2, 0xe8, 0xaf, 0xcd, 0xff, 0xa3, 0x38, 0x2f,
|
||||
0x8f, 0x45, 0x73, 0xf9, 0xea, 0xdd, 0xcc, 0xbb, 0x5a, 0x64, 0x9b, 0x3e, 0x4f, 0xf8, 0xc4, 0xf9, 0x7f, 0x3c, 0x54, 0x8f,
|
||||
0x51, 0xb8, 0x37, 0x10, 0xff, 0x95, 0xf8, 0xaf, 0xcd, 0x69, 0x67, 0x4f, 0x37, 0x63, 0xe9, 0x95, 0xe9, 0xb3, 0xe3, 0xbf,
|
||||
0x1e, 0xb1, 0xe2, 0xff, 0xe8, 0xdc, 0x36, 0x86, 0xcf, 0x65, 0x63, 0x49, 0x1b, 0x7e, 0xc6, 0x58, 0xb3, 0x2e, 0xfe, 0xe3,
|
||||
0xc4, 0x5d, 0xc3, 0x9f, 0x18, 0xff, 0xdb, 0x8d, 0xf1, 0x1f, 0x5f, 0x3b, 0xff, 0xaf, 0xdc, 0xff, 0xc7, 0xf0, 0x27, 0xd2,
|
||||
0xb1, 0x68, 0x06, 0xf0, 0xfe, 0xd1, 0xbf, 0xf2, 0xb4, 0x67, 0xfc, 0x9b, 0x47, 0x91, 0xfe, 0xb9, 0x40, 0xe5, 0x69, 0xd3,
|
||||
0x6c, 0xee, 0xbc, 0xa5, 0xcb, 0xf6, 0xe9, 0xe3, 0x7f, 0xfe, 0xbc, 0x63, 0xba, 0x25, 0x0a, 0xfd, 0xe8, 0x6d, 0xd7, 0xd7,
|
||||
0x78, 0x7c, 0x64, 0x05, 0xbe, 0x97, 0xf8, 0x07, 0x57, 0x00, 0xd1, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xc0, 0x77, 0x6a, 0xff, 0xfa, 0xf7, 0x9f, 0xdb, 0xda, 0x8f, 0xd9, 0x8c, 0x5b, 0x77, 0x4b, 0x6f, 0x5f, 0xad,
|
||||
0x70, 0xfc, 0x7c, 0xc9, 0x56, 0xe7, 0x60, 0xdf, 0x06, 0x67, 0x5a, 0xaf, 0x83, 0xeb, 0xb7, 0x8c, 0x4b, 0x9d, 0x69, 0x9b,
|
||||
0x7e, 0xbd, 0x6c, 0xa9, 0x77, 0x92, 0x73, 0x79, 0x02, 0xdb, 0xe4, 0x0d, 0xd7, 0xec, 0xba, 0x0e, 0xb3, 0x1c, 0x86, 0x99,
|
||||
0xcc, 0x87, 0xed, 0x50, 0x34, 0xcd, 0x3f, 0xcf, 0x96, 0x67, 0x1b, 0x66, 0xc5, 0x8c, 0x72, 0xde, 0xbf, 0x5a, 0xee, 0xe9,
|
||||
0x3d, 0x99, 0xf9, 0x69, 0xf4, 0x3e, 0x7a, 0x4b, 0x67, 0x67, 0xbe, 0x2b, 0x07, 0xfb, 0xa8, 0x3e, 0xf7, 0x74, 0xf6, 0x8b,
|
||||
0xca, 0x96, 0xbd, 0xbb, 0xae, 0xca, 0x2c, 0xd7, 0xc3, 0x7e, 0xb8, 0x15, 0x46, 0x39, 0x92, 0xf7, 0x6e, 0x1e, 0xf1, 0x5c,
|
||||
0x5f, 0x5b, 0x95, 0xfb, 0x3e, 0xa6, 0x25, 0x8e, 0xe4, 0x77, 0xda, 0xf0, 0x38, 0x71, 0xd9, 0x3b, 0x65, 0x91, 0xac, 0xad,
|
||||
0xed, 0xef, 0x1c, 0x1b, 0xb9, 0xba, 0x3c, 0x13, 0xff, 0x95, 0xfc, 0xd2, 0x5b, 0x3a, 0x03, 0xea, 0xde, 0xc9, 0x4b, 0xff,
|
||||
0xfb, 0x7a, 0x76, 0x57, 0xa6, 0x95, 0x6c, 0x5b, 0xdf, 0x11, 0xff, 0xf3, 0xdc, 0x69, 0x91, 0x1a, 0x07, 0xf3, 0x7d, 0xf1,
|
||||
0x89, 0xdc, 0x0d, 0x77, 0xe5, 0x23, 0x3f, 0xd3, 0x8a, 0x57, 0xc6, 0x7f, 0x3e, 0x4f, 0x6c, 0x3d, 0xf3, 0xcf, 0xfa, 0xf8,
|
||||
0xcf, 0xe7, 0xab, 0x8a, 0x6e, 0x3e, 0x15, 0xf1, 0x5f, 0x8d, 0xff, 0xf8, 0x80, 0xf8, 0x5f, 0x99, 0x49, 0x7b, 0xb6, 0xb7,
|
||||
0x48, 0x65, 0x3e, 0x9f, 0x65, 0xf9, 0x69, 0x83, 0xb9, 0xec, 0xb1, 0xbb, 0x8f, 0x38, 0x30, 0xff, 0xb8, 0x27, 0xfe, 0x67,
|
||||
0x99, 0x7b, 0x73, 0xfd, 0xab, 0xba, 0x9f, 0x55, 0x6b, 0x30, 0xcc, 0x7a, 0x4e, 0xb6, 0x45, 0x23, 0xb9, 0x52, 0xe0, 0xea,
|
||||
0xf8, 0x1f, 0x47, 0x6d, 0xad, 0x6c, 0xdb, 0xd2, 0x11, 0xf7, 0xec, 0x08, 0x18, 0x4b, 0xef, 0x0c, 0xee, 0xb9, 0x8a, 0xef,
|
||||
0xa7, 0x57, 0x8f, 0x8b, 0xe1, 0x1d, 0xe6, 0xba, 0xbe, 0x75, 0xef, 0xf8, 0x1f, 0x8b, 0xf3, 0xa9, 0xc7, 0x8d, 0x99, 0x56,
|
||||
0xf3, 0xab, 0x5c, 0x64, 0xeb, 0xb3, 0x92, 0x23, 0x35, 0x9f, 0x55, 0xf9, 0x5b, 0xe2, 0xff, 0xfa, 0x2d, 0xeb, 0x23, 0x2d,
|
||||
0x17, 0xff, 0x71, 0xc3, 0xdc, 0xf2, 0x13, 0xe6, 0xff, 0xdb, 0x30, 0x5f, 0xfd, 0x5d, 0xf1, 0x5f, 0x6d, 0x8d, 0x6b, 0xe3,
|
||||
0x3f, 0x0a, 0xf3, 0xf6, 0x95, 0xf3, 0xfc, 0x67, 0xe6, 0xff, 0xe3, 0x31, 0x26, 0xd2, 0xf5, 0x5e, 0xcd, 0x61, 0x7a, 0x65,
|
||||
0xfc, 0xc7, 0x2d, 0xf7, 0x96, 0xf7, 0xc7, 0xff, 0xda, 0xb8, 0x5c, 0x1b, 0xff, 0x2b, 0xd7, 0xab, 0x10, 0xff, 0xf7, 0xcf,
|
||||
0x0c, 0xd6, 0x7e, 0xa7, 0x72, 0x77, 0xf0, 0xe4, 0xf8, 0x7f, 0x7f, 0x5d, 0x3f, 0x1f, 0xff, 0x2b, 0xe7, 0xff, 0xf1, 0x70,
|
||||
0xfc, 0x57, 0xd6, 0xff, 0xba, 0x67, 0x96, 0x2f, 0xfe, 0x9f, 0x88, 0xff, 0x37, 0xd4, 0x7a, 0x7e, 0xde, 0x34, 0x7f, 0x5a,
|
||||
0x98, 0x5b, 0x35, 0xb1, 0xf6, 0x54, 0x3c, 0x8a, 0x2b, 0x87, 0x47, 0xa1, 0xd4, 0x95, 0x99, 0xe3, 0xb6, 0xe4, 0x5e, 0xbe,
|
||||
0x76, 0x35, 0xa9, 0x64, 0x8e, 0xaf, 0xae, 0x33, 0x76, 0xe7, 0x7d, 0xc1, 0x35, 0xdf, 0xca, 0xb5, 0x62, 0x4c, 0xeb, 0x7e,
|
||||
0xc5, 0x75, 0x64, 0x7b, 0x61, 0x16, 0x7f, 0x3e, 0x5d, 0xdc, 0xf4, 0x1d, 0xd4, 0x22, 0xe2, 0x1f, 0xb5, 0xc8, 0x9b, 0x7a,
|
||||
0x61, 0x24, 0xef, 0xa9, 0xcd, 0x42, 0xd7, 0xd4, 0xba, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x56, 0xfd, 0x7e, 0x72, 0x36, 0xa7, 0xf8, 0x28, 0x6f, 0x62, 0x7e, 0x7f, 0xb3, 0x2c, 0x68, 0xed, 0xc1, 0x2d, 0xa3,
|
||||
0x5a, 0x68, 0x07, 0xcf, 0xa6, 0x25, 0xf3, 0xbc, 0xf5, 0xeb, 0xa4, 0x9f, 0x5f, 0xbe, 0x25, 0xb7, 0xb5, 0xc9, 0x1e, 0x8f,
|
||||
0xee, 0xfd, 0x78, 0x1b, 0xf7, 0xb3, 0xa8, 0xe5, 0xea, 0xbd, 0x9f, 0x99, 0xbf, 0x25, 0x57, 0x2c, 0x98, 0xd5, 0xe8, 0x96,
|
||||
0x68, 0xc9, 0x23, 0xbd, 0x69, 0xb4, 0xd6, 0xc4, 0xd1, 0x76, 0x38, 0x7a, 0x0e, 0x71, 0xf0, 0xad, 0xa3, 0x59, 0xae, 0xc5,
|
||||
0xd1, 0x96, 0x4c, 0x56, 0xa3, 0x33, 0xb9, 0x27, 0x56, 0xe6, 0xd2, 0x5d, 0x95, 0x4b, 0x3f, 0x97, 0xbb, 0x71, 0x1f, 0xb6,
|
||||
0x51, 0x9c, 0xbc, 0x52, 0xb7, 0xc1, 0x31, 0x5a, 0x21, 0xef, 0xc3, 0xf1, 0xbd, 0x1f, 0x6f, 0xe3, 0x3d, 0x9d, 0xdd, 0x64,
|
||||
0x65, 0xfe, 0xfd, 0x96, 0xce, 0xd8, 0xb9, 0x27, 0x57, 0xc4, 0x38, 0x9e, 0x4f, 0x62, 0x4f, 0x67, 0xae, 0x98, 0xf5, 0xc3,
|
||||
0xfd, 0xc4, 0x15, 0xe0, 0xce, 0xfc, 0x3b, 0x6f, 0x88, 0xff, 0x55, 0xb9, 0xb4, 0xaf, 0xce, 0xca, 0xd3, 0xba, 0xa5, 0x6f,
|
||||
0x17, 0xd7, 0x6d, 0x3d, 0xe2, 0x62, 0x98, 0x01, 0x23, 0xca, 0x63, 0xd4, 0xd1, 0x63, 0x8c, 0x22, 0x67, 0xb4, 0x62, 0xd1,
|
||||
0xf1, 0xeb, 0x66, 0x2c, 0x88, 0xff, 0x33, 0x6f, 0x03, 0x1f, 0x1f, 0x5b, 0x8e, 0xd6, 0xef, 0x7d, 0x19, 0xf3, 0xc7, 0x39,
|
||||
0xd8, 0x73, 0x59, 0xd8, 0x57, 0x67, 0xcc, 0x59, 0x17, 0xe7, 0xab, 0xf2, 0xe8, 0xe4, 0xa2, 0x25, 0xd2, 0xf3, 0xf1, 0x4c,
|
||||
0xfc, 0xc7, 0xe1, 0xd9, 0x7f, 0x36, 0x9f, 0x4d, 0x3e, 0x1a, 0x62, 0xf1, 0x1b, 0xb5, 0xfd, 0xf2, 0xb6, 0x8b, 0xc6, 0xff,
|
||||
0xd5, 0xf1, 0xbf, 0x9d, 0x88, 0xfe, 0x7b, 0x57, 0xcc, 0xd8, 0x8a, 0xeb, 0x52, 0x5c, 0x9d, 0x4b, 0x33, 0x0a, 0x65, 0x7b,
|
||||
0x2e, 0xfe, 0xb3, 0x2b, 0x18, 0x8c, 0x8e, 0xd0, 0x0e, 0x97, 0xa4, 0x5d, 0x14, 0x9b, 0x51, 0xec, 0xd5, 0xf1, 0x48, 0x66,
|
||||
0x8e, 0x73, 0xe3, 0xff, 0x76, 0x3a, 0xfe, 0xd7, 0xd7, 0xab, 0xf8, 0xaf, 0xcf, 0x67, 0xee, 0x8d, 0xff, 0xad, 0xb0, 0x4e,
|
||||
0x4b, 0x14, 0x66, 0x5d, 0xf5, 0x2b, 0xc0, 0x5d, 0xfd, 0xfa, 0xed, 0xcf, 0xd3, 0x67, 0xfd, 0xe0, 0x5d, 0xe7, 0x30, 0xeb,
|
||||
0x21, 0x99, 0x7e, 0x15, 0x93, 0xa3, 0xe4, 0xef, 0x8d, 0x2b, 0x7d, 0x7e, 0x2b, 0x66, 0x88, 0xaf, 0xe4, 0x2d, 0x3d, 0x7f,
|
||||
0xbf, 0x70, 0xfe, 0x2a, 0x52, 0x5d, 0xbf, 0x2b, 0x4e, 0xf7, 0x91, 0x4c, 0x7b, 0xad, 0xed, 0xaf, 0xef, 0xbd, 0x0e, 0xcc,
|
||||
0xb3, 0xc6, 0x7e, 0x46, 0x3e, 0xa0, 0xb8, 0xed, 0x5a, 0xfc, 0x96, 0xfa, 0x88, 0x45, 0x77, 0x8e, 0x57, 0x8d, 0xff, 0x6b,
|
||||
0x9f, 0xad, 0x66, 0xe3, 0xe8, 0xfb, 0xb2, 0x58, 0xc5, 0x25, 0xd7, 0x92, 0x58, 0x7a, 0xbf, 0x23, 0xfe, 0xc5, 0xff, 0x15,
|
||||
0xf1, 0x7f, 0xfc, 0x18, 0xf1, 0xb5, 0xf1, 0xff, 0x44, 0x2f, 0x12, 0xff, 0x67, 0xe6, 0x97, 0x6f, 0x9a, 0x51, 0x5e, 0x1b,
|
||||
0xff, 0xeb, 0xc6, 0xb1, 0xca, 0x7d, 0xd7, 0x9b, 0x5a, 0x47, 0xfc, 0xf3, 0x49, 0xed, 0xfc, 0x9e, 0x75, 0x34, 0x00, 0xf1,
|
||||
0x0f, 0x5c, 0x33, 0xef, 0x3e, 0xf6, 0x93, 0x7b, 0xd1, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xc0, 0x59, 0xad, 0x9b, 0x59, 0x3c, 0xba, 0x59, 0xcc, 0xff, 0xf9, 0xef, 0xcf, 0x5b, 0x9f, 0x3d, 0x9f, 0x2d, 0x55, 0xb6,
|
||||
0x36, 0xcc, 0xf8, 0xde, 0x1e, 0x2e, 0xf5, 0x95, 0x47, 0x68, 0xb7, 0x9d, 0xe1, 0xda, 0x5a, 0xe9, 0xbd, 0x47, 0xdb, 0x6e,
|
||||
0xa8, 0xc9, 0x5a, 0x7b, 0xb5, 0xe1, 0xb6, 0x96, 0xee, 0xb3, 0xb5, 0x2d, 0xff, 0xfd, 0x9f, 0xfb, 0xb0, 0x86, 0xf7, 0x64,
|
||||
0x5e, 0xde, 0xda, 0x9b, 0xd1, 0xb5, 0x6c, 0x5a, 0x3f, 0x6f, 0xdb, 0xff, 0xfa, 0xdb, 0xdb, 0x96, 0xa9, 0x83, 0x71, 0xee,
|
||||
0xfb, 0x95, 0xe7, 0x33, 0x2a, 0xf5, 0x9a, 0x0c, 0xc4, 0x3f, 0x1f, 0x21, 0x06, 0x67, 0x18, 0xa5, 0x6c, 0x66, 0x77, 0xb5,
|
||||
0x65, 0x6f, 0x4d, 0x86, 0xbd, 0xb0, 0xda, 0xca, 0x1d, 0xed, 0x15, 0xa5, 0xf5, 0x1b, 0xb6, 0x49, 0xdf, 0xcc, 0xf5, 0xe7,
|
||||
0x4c, 0xdd, 0x8f, 0xf2, 0xcd, 0x8e, 0xce, 0xb3, 0x7f, 0xe4, 0xfe, 0x99, 0xec, 0xc9, 0x33, 0xf9, 0xf5, 0xf9, 0x9e, 0xbc,
|
||||
0x96, 0xb6, 0xc1, 0x3c, 0xa7, 0xf2, 0xd6, 0xee, 0xca, 0xf3, 0x19, 0x8d, 0xc3, 0xfd, 0x3a, 0xc8, 0x1f, 0xe3, 0x78, 0x5b,
|
||||
0x8e, 0xea, 0xf8, 0xf9, 0xb6, 0x1c, 0xf5, 0xcc, 0x48, 0x47, 0x52, 0xbe, 0xcc, 0xfd, 0xbe, 0xde, 0xdb, 0xdb, 0x6c, 0x3d,
|
||||
0x9d, 0x67, 0xde, 0x11, 0x9f, 0xc5, 0x7f, 0xa4, 0xe3, 0x7f, 0xbc, 0x0a, 0xcc, 0xf1, 0x4f, 0x47, 0x57, 0xd9, 0x7d, 0x30,
|
||||
0x96, 0xf7, 0x6a, 0xb9, 0x0d, 0xeb, 0xbf, 0xf6, 0xd6, 0xfe, 0xaa, 0xf3, 0xa9, 0x1c, 0x67, 0x4f, 0xd7, 0x59, 0x2e, 0x2b,
|
||||
0xea, 0x3e, 0x3c, 0x93, 0x67, 0xdb, 0x72, 0xd4, 0x9b, 0xdb, 0x20, 0x4b, 0xff, 0xea, 0xf6, 0x8a, 0xc4, 0xde, 0xaa, 0x6b,
|
||||
0xd6, 0x8c, 0xd6, 0xe0, 0xcb, 0x6e, 0xe9, 0x45, 0x79, 0x65, 0xf6, 0x97, 0x9d, 0x13, 0xe7, 0xc7, 0xe5, 0xea, 0x58, 0xbe,
|
||||
0xa5, 0xb3, 0x96, 0xcf, 0x56, 0xc9, 0xc8, 0x8c, 0xd8, 0x95, 0x2d, 0x51, 0xb8, 0x37, 0x6c, 0xe9, 0x27, 0x16, 0xa3, 0x9c,
|
||||
0xe2, 0x91, 0x1c, 0xe3, 0x9e, 0x6d, 0xcb, 0xd9, 0x68, 0x96, 0x39, 0x9b, 0xca, 0x96, 0xd1, 0xac, 0xa9, 0xff, 0x9d, 0xfc,
|
||||
0xca, 0x98, 0x67, 0x56, 0xe7, 0x6b, 0x97, 0xcd, 0xff, 0xe7, 0x39, 0xb6, 0xd7, 0x8c, 0xcb, 0xd5, 0xb1, 0x7c, 0x2b, 0xac,
|
||||
0x5a, 0x10, 0x97, 0xdf, 0x31, 0x56, 0x57, 0x47, 0xdb, 0xbb, 0xf7, 0xc6, 0xb9, 0xcf, 0xab, 0x6b, 0x1f, 0xc4, 0x0b, 0xdb,
|
||||
0x32, 0x1f, 0xff, 0xd7, 0xac, 0x73, 0xb1, 0x76, 0x6d, 0xbc, 0x76, 0x5b, 0x9f, 0x3a, 0x3e, 0xca, 0xaf, 0x5e, 0xe5, 0xee,
|
||||
0xfa, 0x5a, 0xae, 0xe5, 0xf2, 0x7f, 0x3a, 0xfe, 0x63, 0xe1, 0x8a, 0x02, 0xab, 0xe2, 0xbf, 0xbd, 0x24, 0x62, 0xfe, 0x94,
|
||||
0xf8, 0xcf, 0xad, 0xc2, 0x11, 0xa5, 0x95, 0x3b, 0x32, 0x31, 0x9e, 0x7f, 0x96, 0xff, 0x9e, 0x5a, 0xfe, 0x9e, 0xf1, 0xff,
|
||||
0xb9, 0xf8, 0x8f, 0x0f, 0x8c, 0xff, 0xf7, 0x96, 0xf9, 0xf9, 0xb1, 0xf1, 0xd9, 0xf8, 0xaf, 0x8c, 0xcb, 0xf5, 0x75, 0x79,
|
||||
0xd6, 0xc6, 0x7f, 0x24, 0x46, 0xec, 0xf5, 0x99, 0xb8, 0x9f, 0x8a, 0xff, 0xf7, 0x8e, 0xa5, 0xb3, 0xba, 0x7a, 0xb2, 0x64,
|
||||
0xb3, 0x55, 0xe6, 0xdf, 0x15, 0xff, 0xd5, 0x15, 0x55, 0x23, 0x39, 0x93, 0x7d, 0xff, 0xf8, 0x1f, 0xa9, 0x35, 0xf7, 0xbe,
|
||||
0x67, 0xfc, 0x8f, 0xc9, 0xda, 0xbc, 0x9f, 0x37, 0xff, 0x8f, 0x47, 0x63, 0x2c, 0x4a, 0x2b, 0xc9, 0x66, 0x57, 0xda, 0x5b,
|
||||
0x35, 0xff, 0xbf, 0xf3, 0xe7, 0x8c, 0x9f, 0x36, 0x9b, 0x3c, 0xf7, 0xa4, 0xe3, 0x33, 0xe2, 0x7f, 0x3e, 0x92, 0x7e, 0x5e,
|
||||
0x8b, 0x3d, 0x3d, 0xc6, 0xca, 0xf6, 0xfc, 0x4d, 0xf1, 0xbf, 0xdd, 0x32, 0xfe, 0x57, 0x57, 0x3a, 0xcd, 0xfe, 0xfe, 0xd9,
|
||||
0x27, 0xc5, 0xff, 0xca, 0x95, 0x87, 0xee, 0x2c, 0x99, 0xf8, 0x7f, 0xdb, 0x3d, 0xce, 0x8a, 0x92, 0xdf, 0xf5, 0x13, 0x99,
|
||||
0xbb, 0xc7, 0xf9, 0xf7, 0x5e, 0xb1, 0xdf, 0xdb, 0xff, 0xaa, 0xbf, 0xe7, 0x2e, 0xfe, 0x3f, 0x2f, 0xfe, 0xb3, 0x23, 0x76,
|
||||
0x65, 0xcb, 0xfc, 0x48, 0xe7, 0x3f, 0x5f, 0xd7, 0x62, 0xeb, 0x9f, 0x7e, 0xde, 0x71, 0xb7, 0x7a, 0x5f, 0xc9, 0xc4, 0x3f,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xad, 0x36, 0xcc, 0xe4, 0x9f, 0xcd, 0x4a, 0x3e, 0xca, 0x0c,
|
||||
0x18, 0xb7, 0xe4, 0x38, 0xaf, 0xe6, 0xff, 0x3f, 0xfe, 0x79, 0xbe, 0xc6, 0x2a, 0x65, 0x5a, 0x7b, 0xee, 0x6d, 0xd2, 0x66,
|
||||
0x3f, 0x7f, 0xde, 0x0a, 0xab, 0x3c, 0xdc, 0xd1, 0x62, 0xad, 0xd4, 0x9f, 0xf9, 0xa9, 0xb6, 0xf6, 0x85, 0xb5, 0x35, 0x5b,
|
||||
0x33, 0xe0, 0x99, 0x1c, 0xe7, 0xb3, 0xe3, 0xb4, 0x45, 0xc7, 0x18, 0x67, 0xb8, 0xce, 0x95, 0xa9, 0x72, 0xee, 0xeb, 0xdb,
|
||||
0xb2, 0x5f, 0x8a, 0x7b, 0x5a, 0xac, 0xf9, 0x0d, 0xfb, 0x47, 0xdf, 0xd9, 0xa9, 0x64, 0x18, 0x8e, 0x64, 0xf6, 0xa3, 0xfb,
|
||||
0x4a, 0xbd, 0xee, 0x08, 0xfd, 0xab, 0xd8, 0xfe, 0xd2, 0xb1, 0x67, 0x9c, 0x7b, 0x76, 0x94, 0x15, 0xb1, 0xdd, 0xf4, 0x66,
|
||||
0x58, 0x4b, 0xbf, 0xcb, 0xd3, 0x16, 0xed, 0x4d, 0x94, 0xaf, 0xca, 0x3d, 0xbc, 0x4d, 0xf3, 0x72, 0xad, 0xba, 0xce, 0xe4,
|
||||
0x4b, 0xbd, 0x0d, 0xf6, 0x95, 0xfb, 0x7c, 0x4b, 0xe6, 0x6a, 0x89, 0xc5, 0x59, 0xdc, 0xd7, 0xd6, 0xca, 0x36, 0xb9, 0x8e,
|
||||
0x47, 0x22, 0xc6, 0xce, 0x6c, 0xc9, 0x1f, 0xe7, 0x6d, 0x6b, 0x69, 0x7c, 0xee, 0x7b, 0xb9, 0xfb, 0xa2, 0xdc, 0xc3, 0xf5,
|
||||
0x4c, 0x9a, 0xab, 0x72, 0x9c, 0xd7, 0x32, 0xb3, 0xac, 0xcb, 0xa4, 0xb7, 0x77, 0xfb, 0xf1, 0xda, 0x33, 0xbc, 0xbe, 0x56,
|
||||
0x3e, 0x21, 0x97, 0xee, 0x1b, 0xdf, 0x0c, 0xff, 0xec, 0xf7, 0xf3, 0x8f, 0x8c, 0x67, 0xdb, 0x74, 0xce, 0xf8, 0x64, 0xfb,
|
||||
0x5f, 0x9f, 0x49, 0x67, 0xfb, 0xc8, 0x0c, 0x87, 0x5b, 0x39, 0x03, 0x98, 0xf8, 0xff, 0xf6, 0xf9, 0x7f, 0xdc, 0x90, 0x17,
|
||||
0x69, 0x76, 0x2d, 0x59, 0x9b, 0xff, 0x77, 0x13, 0xff, 0x27, 0xa3, 0xe2, 0xf9, 0x5c, 0x9a, 0xf3, 0xab, 0xfc, 0x26, 0xfe,
|
||||
0x17, 0x8d, 0xfb, 0xdf, 0x96, 0x49, 0xd3, 0xf8, 0x7f, 0x5d, 0x54, 0x7c, 0xea, 0x5a, 0x1a, 0x6c, 0x85, 0xb1, 0x7c, 0x65,
|
||||
0x86, 0xe1, 0xb8, 0xe1, 0x0a, 0x54, 0xc9, 0xcc, 0x98, 0xff, 0xfc, 0xd3, 0xa2, 0x7c, 0x65, 0x8e, 0xad, 0x6b, 0xca, 0xb6,
|
||||
0x26, 0xfe, 0xdf, 0x99, 0xfd, 0xfa, 0x13, 0xe7, 0xff, 0xf7, 0x3c, 0x63, 0xd8, 0x6e, 0xce, 0xcc, 0x16, 0x4b, 0x3e, 0xdf,
|
||||
0x92, 0x77, 0x38, 0x2b, 0xef, 0x97, 0x9e, 0xcf, 0xa4, 0x77, 0x5f, 0x56, 0xfa, 0xda, 0x5d, 0x9e, 0xf1, 0x1f, 0xbe, 0xfb,
|
||||
0xd9, 0xb4, 0xf8, 0x07, 0xf1, 0x6f, 0xf6, 0x0f, 0xee, 0x4c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xc7, 0xaf, 0x3f, 0xea, 0x01, 0xc4, 0x3f, 0xf0, 0xc7,
|
||||
0xc5, 0xff, 0xff, 0x00 };
|
||||
|
||||
// Font glyphs rectangles data (on atlas)
|
||||
static const Rectangle amberFontRecs[189] = {
|
||||
{ 4, 4, 5 , 16 },
|
||||
{ 17, 4, 2 , 10 },
|
||||
{ 27, 4, 4 , 4 },
|
||||
{ 39, 4, 5 , 10 },
|
||||
{ 52, 4, 5 , 11 },
|
||||
{ 65, 4, 5 , 10 },
|
||||
{ 78, 4, 5 , 10 },
|
||||
{ 91, 4, 2 , 4 },
|
||||
{ 101, 4, 4 , 13 },
|
||||
{ 113, 4, 5 , 13 },
|
||||
{ 126, 4, 4 , 4 },
|
||||
{ 138, 4, 5 , 6 },
|
||||
{ 151, 4, 3 , 2 },
|
||||
{ 162, 4, 5 , 2 },
|
||||
{ 175, 4, 2 , 1 },
|
||||
{ 185, 4, 5 , 10 },
|
||||
{ 198, 4, 5 , 10 },
|
||||
{ 211, 4, 4 , 10 },
|
||||
{ 223, 4, 5 , 10 },
|
||||
{ 236, 4, 5 , 10 },
|
||||
{ 249, 4, 5 , 10 },
|
||||
{ 262, 4, 5 , 10 },
|
||||
{ 275, 4, 5 , 10 },
|
||||
{ 288, 4, 5 , 10 },
|
||||
{ 301, 4, 5 , 10 },
|
||||
{ 314, 4, 5 , 10 },
|
||||
{ 327, 4, 2 , 6 },
|
||||
{ 337, 4, 2 , 6 },
|
||||
{ 347, 4, 5 , 6 },
|
||||
{ 360, 4, 5 , 4 },
|
||||
{ 373, 4, 5 , 6 },
|
||||
{ 386, 4, 5 , 10 },
|
||||
{ 399, 4, 5 , 7 },
|
||||
{ 412, 4, 5 , 10 },
|
||||
{ 425, 4, 5 , 10 },
|
||||
{ 438, 4, 5 , 10 },
|
||||
{ 451, 4, 5 , 10 },
|
||||
{ 464, 4, 5 , 10 },
|
||||
{ 477, 4, 5 , 10 },
|
||||
{ 490, 4, 5 , 10 },
|
||||
{ 4, 28, 5 , 10 },
|
||||
{ 17, 28, 4 , 10 },
|
||||
{ 29, 28, 5 , 10 },
|
||||
{ 42, 28, 5 , 10 },
|
||||
{ 55, 28, 5 , 10 },
|
||||
{ 68, 28, 5 , 10 },
|
||||
{ 81, 28, 5 , 10 },
|
||||
{ 94, 28, 5 , 10 },
|
||||
{ 107, 28, 5 , 10 },
|
||||
{ 120, 28, 5 , 10 },
|
||||
{ 133, 28, 5 , 10 },
|
||||
{ 146, 28, 5 , 10 },
|
||||
{ 159, 28, 5 , 10 },
|
||||
{ 172, 28, 5 , 10 },
|
||||
{ 185, 28, 5 , 10 },
|
||||
{ 198, 28, 5 , 10 },
|
||||
{ 211, 28, 5 , 10 },
|
||||
{ 224, 28, 5 , 10 },
|
||||
{ 237, 28, 5 , 10 },
|
||||
{ 250, 28, 3 , 13 },
|
||||
{ 261, 28, 5 , 10 },
|
||||
{ 274, 28, 3 , 13 },
|
||||
{ 285, 28, 4 , 3 },
|
||||
{ 297, 28, 5 , 1 },
|
||||
{ 310, 28, 3 , 3 },
|
||||
{ 321, 28, 5 , 7 },
|
||||
{ 334, 28, 5 , 10 },
|
||||
{ 347, 28, 5 , 7 },
|
||||
{ 360, 28, 5 , 10 },
|
||||
{ 373, 28, 5 , 7 },
|
||||
{ 386, 28, 5 , 10 },
|
||||
{ 399, 28, 5 , 10 },
|
||||
{ 412, 28, 5 , 10 },
|
||||
{ 425, 28, 4 , 10 },
|
||||
{ 437, 28, 3 , 13 },
|
||||
{ 448, 28, 5 , 10 },
|
||||
{ 461, 28, 5 , 10 },
|
||||
{ 474, 28, 5 , 7 },
|
||||
{ 487, 28, 5 , 7 },
|
||||
{ 4, 52, 5 , 7 },
|
||||
{ 17, 52, 5 , 10 },
|
||||
{ 30, 52, 5 , 10 },
|
||||
{ 43, 52, 5 , 7 },
|
||||
{ 56, 52, 5 , 7 },
|
||||
{ 69, 52, 5 , 10 },
|
||||
{ 82, 52, 5 , 7 },
|
||||
{ 95, 52, 5 , 7 },
|
||||
{ 108, 52, 5 , 7 },
|
||||
{ 121, 52, 5 , 7 },
|
||||
{ 134, 52, 5 , 10 },
|
||||
{ 147, 52, 5 , 7 },
|
||||
{ 160, 52, 4 , 13 },
|
||||
{ 172, 52, 2 , 13 },
|
||||
{ 182, 52, 4 , 13 },
|
||||
{ 194, 52, 5 , 4 },
|
||||
{ 207, 52, 2 , 9 },
|
||||
{ 217, 52, 5 , 7 },
|
||||
{ 230, 52, 5 , 10 },
|
||||
{ 243, 52, 5 , 10 },
|
||||
{ 256, 52, 5 , 10 },
|
||||
{ 269, 52, 0 , 0 },
|
||||
{ 277, 52, 5 , 10 },
|
||||
{ 290, 52, 0 , 0 },
|
||||
{ 298, 52, 5 , 7 },
|
||||
{ 311, 52, 3 , 5 },
|
||||
{ 322, 52, 5 , 5 },
|
||||
{ 335, 52, 5 , 3 },
|
||||
{ 348, 52, 5 , 7 },
|
||||
{ 361, 52, 5 , 2 },
|
||||
{ 374, 52, 4 , 4 },
|
||||
{ 386, 52, 5 , 8 },
|
||||
{ 399, 52, 3 , 5 },
|
||||
{ 410, 52, 3 , 6 },
|
||||
{ 421, 52, 0 , 0 },
|
||||
{ 429, 52, 5 , 10 },
|
||||
{ 442, 52, 5 , 10 },
|
||||
{ 455, 52, 2 , 3 },
|
||||
{ 465, 52, 0 , 0 },
|
||||
{ 473, 52, 3 , 5 },
|
||||
{ 484, 52, 4 , 4 },
|
||||
{ 496, 52, 5 , 5 },
|
||||
{ 4, 76, 5 , 10 },
|
||||
{ 17, 76, 5 , 7 },
|
||||
{ 30, 76, 5 , 10 },
|
||||
{ 43, 76, 5 , 10 },
|
||||
{ 56, 76, 5 , 14 },
|
||||
{ 69, 76, 5 , 14 },
|
||||
{ 82, 76, 5 , 14 },
|
||||
{ 95, 76, 5 , 14 },
|
||||
{ 108, 76, 5 , 12 },
|
||||
{ 121, 76, 5 , 12 },
|
||||
{ 134, 76, 5 , 10 },
|
||||
{ 147, 76, 5 , 13 },
|
||||
{ 160, 76, 5 , 14 },
|
||||
{ 173, 76, 5 , 14 },
|
||||
{ 186, 76, 5 , 14 },
|
||||
{ 199, 76, 5 , 12 },
|
||||
{ 212, 76, 4 , 14 },
|
||||
{ 224, 76, 4 , 14 },
|
||||
{ 236, 76, 4 , 14 },
|
||||
{ 248, 76, 4 , 12 },
|
||||
{ 260, 76, 5 , 10 },
|
||||
{ 273, 76, 5 , 14 },
|
||||
{ 286, 76, 5 , 14 },
|
||||
{ 299, 76, 5 , 14 },
|
||||
{ 312, 76, 5 , 14 },
|
||||
{ 325, 76, 5 , 14 },
|
||||
{ 338, 76, 5 , 12 },
|
||||
{ 351, 76, 4 , 3 },
|
||||
{ 363, 76, 5 , 10 },
|
||||
{ 376, 76, 5 , 14 },
|
||||
{ 389, 76, 5 , 14 },
|
||||
{ 402, 76, 5 , 14 },
|
||||
{ 415, 76, 5 , 12 },
|
||||
{ 428, 76, 5 , 14 },
|
||||
{ 441, 76, 5 , 10 },
|
||||
{ 454, 76, 5 , 10 },
|
||||
{ 467, 76, 5 , 10 },
|
||||
{ 480, 76, 5 , 10 },
|
||||
{ 493, 76, 5 , 10 },
|
||||
{ 4, 100, 5 , 10 },
|
||||
{ 17, 100, 5 , 9 },
|
||||
{ 30, 100, 5 , 9 },
|
||||
{ 43, 100, 5 , 7 },
|
||||
{ 56, 100, 5 , 10 },
|
||||
{ 69, 100, 5 , 10 },
|
||||
{ 82, 100, 5 , 10 },
|
||||
{ 95, 100, 5 , 10 },
|
||||
{ 108, 100, 5 , 9 },
|
||||
{ 121, 100, 4 , 10 },
|
||||
{ 133, 100, 4 , 10 },
|
||||
{ 145, 100, 4 , 10 },
|
||||
{ 157, 100, 4 , 9 },
|
||||
{ 169, 100, 5 , 10 },
|
||||
{ 182, 100, 5 , 10 },
|
||||
{ 195, 100, 5 , 10 },
|
||||
{ 208, 100, 5 , 10 },
|
||||
{ 221, 100, 5 , 10 },
|
||||
{ 234, 100, 5 , 10 },
|
||||
{ 247, 100, 5 , 9 },
|
||||
{ 260, 100, 5 , 6 },
|
||||
{ 273, 100, 5 , 7 },
|
||||
{ 286, 100, 5 , 10 },
|
||||
{ 299, 100, 5 , 10 },
|
||||
{ 312, 100, 5 , 10 },
|
||||
{ 325, 100, 5 , 9 },
|
||||
{ 338, 100, 5 , 13 },
|
||||
{ 351, 100, 5 , 10 },
|
||||
{ 364, 100, 5 , 12 },
|
||||
};
|
||||
|
||||
// Font glyphs info data
|
||||
// NOTE: No glyphs.image data provided
|
||||
static const GlyphInfo amberFontGlyphs[189] = {
|
||||
{ 32, 0, 0, 5, { 0 }},
|
||||
{ 33, 1, 3, 5, { 0 }},
|
||||
{ 34, 0, 3, 5, { 0 }},
|
||||
{ 35, 0, 3, 5, { 0 }},
|
||||
{ 36, 0, 3, 5, { 0 }},
|
||||
{ 37, 0, 3, 5, { 0 }},
|
||||
{ 38, 0, 3, 5, { 0 }},
|
||||
{ 39, 1, 4, 5, { 0 }},
|
||||
{ 40, 0, 3, 5, { 0 }},
|
||||
{ 41, 0, 3, 5, { 0 }},
|
||||
{ 42, 0, 3, 5, { 0 }},
|
||||
{ 43, 0, 7, 5, { 0 }},
|
||||
{ 44, 0, 12, 5, { 0 }},
|
||||
{ 45, 0, 9, 5, { 0 }},
|
||||
{ 46, 1, 12, 5, { 0 }},
|
||||
{ 47, 0, 3, 5, { 0 }},
|
||||
{ 48, 0, 3, 5, { 0 }},
|
||||
{ 49, 0, 3, 5, { 0 }},
|
||||
{ 50, 0, 3, 5, { 0 }},
|
||||
{ 51, 0, 3, 5, { 0 }},
|
||||
{ 52, 0, 3, 5, { 0 }},
|
||||
{ 53, 0, 3, 5, { 0 }},
|
||||
{ 54, 0, 3, 5, { 0 }},
|
||||
{ 55, 0, 3, 5, { 0 }},
|
||||
{ 56, 0, 3, 5, { 0 }},
|
||||
{ 57, 0, 3, 5, { 0 }},
|
||||
{ 58, 0, 7, 5, { 0 }},
|
||||
{ 59, 0, 7, 5, { 0 }},
|
||||
{ 60, 0, 7, 5, { 0 }},
|
||||
{ 61, 0, 8, 5, { 0 }},
|
||||
{ 62, 0, 7, 5, { 0 }},
|
||||
{ 63, 0, 3, 5, { 0 }},
|
||||
{ 64, 0, 6, 5, { 0 }},
|
||||
{ 65, 0, 3, 5, { 0 }},
|
||||
{ 66, 0, 3, 5, { 0 }},
|
||||
{ 67, 0, 3, 5, { 0 }},
|
||||
{ 68, 0, 3, 5, { 0 }},
|
||||
{ 69, 0, 3, 5, { 0 }},
|
||||
{ 70, 0, 3, 5, { 0 }},
|
||||
{ 71, 0, 3, 5, { 0 }},
|
||||
{ 72, 0, 3, 5, { 0 }},
|
||||
{ 73, 0, 3, 5, { 0 }},
|
||||
{ 74, 0, 3, 5, { 0 }},
|
||||
{ 75, 0, 3, 5, { 0 }},
|
||||
{ 76, 0, 3, 5, { 0 }},
|
||||
{ 77, 0, 3, 5, { 0 }},
|
||||
{ 78, 0, 3, 5, { 0 }},
|
||||
{ 79, 0, 3, 5, { 0 }},
|
||||
{ 80, 0, 3, 5, { 0 }},
|
||||
{ 81, 0, 3, 5, { 0 }},
|
||||
{ 82, 0, 3, 5, { 0 }},
|
||||
{ 83, 0, 3, 5, { 0 }},
|
||||
{ 84, 0, 3, 5, { 0 }},
|
||||
{ 85, 0, 3, 5, { 0 }},
|
||||
{ 86, 0, 3, 5, { 0 }},
|
||||
{ 87, 0, 3, 5, { 0 }},
|
||||
{ 88, 0, 3, 5, { 0 }},
|
||||
{ 89, 0, 3, 5, { 0 }},
|
||||
{ 90, 0, 3, 5, { 0 }},
|
||||
{ 91, 0, 3, 5, { 0 }},
|
||||
{ 92, 0, 3, 5, { 0 }},
|
||||
{ 93, 0, 3, 5, { 0 }},
|
||||
{ 94, 0, 3, 5, { 0 }},
|
||||
{ 95, 0, 12, 5, { 0 }},
|
||||
{ 96, 1, 4, 5, { 0 }},
|
||||
{ 97, 0, 6, 5, { 0 }},
|
||||
{ 98, 0, 3, 5, { 0 }},
|
||||
{ 99, 0, 6, 5, { 0 }},
|
||||
{ 100, 0, 3, 5, { 0 }},
|
||||
{ 101, 0, 6, 5, { 0 }},
|
||||
{ 102, 0, 3, 5, { 0 }},
|
||||
{ 103, 0, 6, 5, { 0 }},
|
||||
{ 104, 0, 3, 5, { 0 }},
|
||||
{ 105, 0, 3, 5, { 0 }},
|
||||
{ 106, 0, 3, 5, { 0 }},
|
||||
{ 107, 0, 3, 5, { 0 }},
|
||||
{ 108, 0, 3, 5, { 0 }},
|
||||
{ 109, 0, 6, 5, { 0 }},
|
||||
{ 110, 0, 6, 5, { 0 }},
|
||||
{ 111, 0, 6, 5, { 0 }},
|
||||
{ 112, 0, 6, 5, { 0 }},
|
||||
{ 113, 0, 6, 5, { 0 }},
|
||||
{ 114, 0, 6, 5, { 0 }},
|
||||
{ 115, 0, 6, 5, { 0 }},
|
||||
{ 116, 0, 3, 5, { 0 }},
|
||||
{ 117, 0, 6, 5, { 0 }},
|
||||
{ 118, 0, 6, 5, { 0 }},
|
||||
{ 119, 0, 6, 5, { 0 }},
|
||||
{ 120, 0, 6, 5, { 0 }},
|
||||
{ 121, 0, 6, 5, { 0 }},
|
||||
{ 122, 0, 6, 5, { 0 }},
|
||||
{ 123, 0, 3, 5, { 0 }},
|
||||
{ 124, 1, 3, 5, { 0 }},
|
||||
{ 125, 0, 3, 5, { 0 }},
|
||||
{ 126, 0, 8, 5, { 0 }},
|
||||
{ 161, 1, 4, 5, { 0 }},
|
||||
{ 162, 0, 6, 5, { 0 }},
|
||||
{ 163, 0, 3, 5, { 0 }},
|
||||
{ 8364, 0, 3, 5, { 0 }},
|
||||
{ 165, 0, 3, 5, { 0 }},
|
||||
{ 352, 0, 0, 0, { 0 }},
|
||||
{ 167, 0, 3, 5, { 0 }},
|
||||
{ 353, 0, 0, 0, { 0 }},
|
||||
{ 169, 0, 6, 5, { 0 }},
|
||||
{ 170, 2, 3, 5, { 0 }},
|
||||
{ 171, 0, 8, 5, { 0 }},
|
||||
{ 172, 0, 6, 5, { 0 }},
|
||||
{ 174, 0, 6, 5, { 0 }},
|
||||
{ 175, 0, 3, 5, { 0 }},
|
||||
{ 176, 1, 3, 5, { 0 }},
|
||||
{ 177, 0, 5, 5, { 0 }},
|
||||
{ 178, 2, 3, 5, { 0 }},
|
||||
{ 179, 2, 3, 5, { 0 }},
|
||||
{ 381, 0, 0, 0, { 0 }},
|
||||
{ 181, 0, 6, 5, { 0 }},
|
||||
{ 182, 0, 3, 5, { 0 }},
|
||||
{ 183, 1, 6, 5, { 0 }},
|
||||
{ 382, 0, 0, 0, { 0 }},
|
||||
{ 185, 0, 3, 5, { 0 }},
|
||||
{ 186, 0, 3, 5, { 0 }},
|
||||
{ 187, 0, 8, 5, { 0 }},
|
||||
{ 338, 0, 3, 5, { 0 }},
|
||||
{ 339, 0, 6, 5, { 0 }},
|
||||
{ 376, 0, 3, 5, { 0 }},
|
||||
{ 191, 0, 3, 5, { 0 }},
|
||||
{ 192, 0, -1, 5, { 0 }},
|
||||
{ 193, 0, -1, 5, { 0 }},
|
||||
{ 194, 0, -1, 5, { 0 }},
|
||||
{ 195, 0, -1, 5, { 0 }},
|
||||
{ 196, 0, 1, 5, { 0 }},
|
||||
{ 197, 0, 1, 5, { 0 }},
|
||||
{ 198, 0, 3, 5, { 0 }},
|
||||
{ 199, 0, 3, 5, { 0 }},
|
||||
{ 200, 0, -1, 5, { 0 }},
|
||||
{ 201, 0, -1, 5, { 0 }},
|
||||
{ 202, 0, -1, 5, { 0 }},
|
||||
{ 203, 0, 1, 5, { 0 }},
|
||||
{ 204, 0, -1, 5, { 0 }},
|
||||
{ 205, 0, -1, 5, { 0 }},
|
||||
{ 206, 0, -1, 5, { 0 }},
|
||||
{ 207, 0, 1, 5, { 0 }},
|
||||
{ 208, 0, 3, 5, { 0 }},
|
||||
{ 209, 0, -1, 5, { 0 }},
|
||||
{ 210, 0, -1, 5, { 0 }},
|
||||
{ 211, 0, -1, 5, { 0 }},
|
||||
{ 212, 0, -1, 5, { 0 }},
|
||||
{ 213, 0, -1, 5, { 0 }},
|
||||
{ 214, 0, 1, 5, { 0 }},
|
||||
{ 215, 0, 10, 5, { 0 }},
|
||||
{ 216, 0, 3, 5, { 0 }},
|
||||
{ 217, 0, -1, 5, { 0 }},
|
||||
{ 218, 0, -1, 5, { 0 }},
|
||||
{ 219, 0, -1, 5, { 0 }},
|
||||
{ 220, 0, 1, 5, { 0 }},
|
||||
{ 221, 0, -1, 5, { 0 }},
|
||||
{ 222, 0, 3, 5, { 0 }},
|
||||
{ 223, 0, 3, 5, { 0 }},
|
||||
{ 224, 0, 3, 5, { 0 }},
|
||||
{ 225, 0, 3, 5, { 0 }},
|
||||
{ 226, 0, 3, 5, { 0 }},
|
||||
{ 227, 0, 3, 5, { 0 }},
|
||||
{ 228, 0, 4, 5, { 0 }},
|
||||
{ 229, 0, 4, 5, { 0 }},
|
||||
{ 230, 0, 6, 5, { 0 }},
|
||||
{ 231, 0, 6, 5, { 0 }},
|
||||
{ 232, 0, 3, 5, { 0 }},
|
||||
{ 233, 0, 3, 5, { 0 }},
|
||||
{ 234, 0, 3, 5, { 0 }},
|
||||
{ 235, 0, 4, 5, { 0 }},
|
||||
{ 236, 0, 3, 5, { 0 }},
|
||||
{ 237, 0, 3, 5, { 0 }},
|
||||
{ 238, 0, 3, 5, { 0 }},
|
||||
{ 239, 0, 4, 5, { 0 }},
|
||||
{ 240, 0, 3, 5, { 0 }},
|
||||
{ 241, 0, 3, 5, { 0 }},
|
||||
{ 242, 0, 3, 5, { 0 }},
|
||||
{ 243, 0, 3, 5, { 0 }},
|
||||
{ 244, 0, 3, 5, { 0 }},
|
||||
{ 245, 0, 3, 5, { 0 }},
|
||||
{ 246, 0, 4, 5, { 0 }},
|
||||
{ 247, 0, 7, 5, { 0 }},
|
||||
{ 248, 0, 6, 5, { 0 }},
|
||||
{ 249, 0, 3, 5, { 0 }},
|
||||
{ 250, 0, 3, 5, { 0 }},
|
||||
{ 251, 0, 3, 5, { 0 }},
|
||||
{ 252, 0, 4, 5, { 0 }},
|
||||
{ 253, 0, 3, 5, { 0 }},
|
||||
{ 254, 0, 3, 5, { 0 }},
|
||||
{ 255, 0, 4, 5, { 0 }},
|
||||
};
|
||||
|
||||
// Style loading function: Amber
|
||||
static void GuiLoadStyleAmber(void)
|
||||
{
|
||||
// Load style properties provided
|
||||
// NOTE: Default properties are propagated
|
||||
for (int i = 0; i < AMBER_STYLE_PROPS_COUNT; i++)
|
||||
{
|
||||
GuiSetStyle(amberStyleProps[i].controlId, amberStyleProps[i].propertyId, amberStyleProps[i].propertyValue);
|
||||
}
|
||||
|
||||
// Custom font loading
|
||||
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
|
||||
int amberFontDataSize = 0;
|
||||
unsigned char *data = DecompressData(amberFontData, AMBER_STYLE_FONT_ATLAS_COMP_SIZE, &amberFontDataSize);
|
||||
Image imFont = { data, 512, 256, 1, 2 };
|
||||
|
||||
Font font = { 0 };
|
||||
font.baseSize = 16;
|
||||
font.glyphCount = 189;
|
||||
|
||||
// Load texture from image
|
||||
font.texture = LoadTextureFromImage(imFont);
|
||||
UnloadImage(imFont); // Uncompressed image data can be unloaded from memory
|
||||
|
||||
// Copy char recs data from global fontRecs
|
||||
// NOTE: Required to avoid issues if trying to free font
|
||||
font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle));
|
||||
memcpy(font.recs, amberFontRecs, font.glyphCount*sizeof(Rectangle));
|
||||
|
||||
// Copy font char info data from global fontChars
|
||||
// NOTE: Required to avoid issues if trying to free font
|
||||
font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo));
|
||||
memcpy(font.glyphs, amberFontGlyphs, font.glyphCount*sizeof(GlyphInfo));
|
||||
|
||||
GuiSetFont(font);
|
||||
|
||||
// Setup a white rectangle on the font to be used on shapes drawing,
|
||||
// it makes possible to draw shapes and text (full UI) in a single draw call
|
||||
Rectangle fontWhiteRec = { 510, 254, 1, 1 };
|
||||
SetShapesTexture(font.texture, fontWhiteRec);
|
||||
|
||||
//-----------------------------------------------------------------
|
||||
|
||||
// TODO: Custom user style setup: Set specific properties here (if required)
|
||||
// i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT
|
||||
}
|
||||
@ -1,565 +0,0 @@
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// StyleAsCode exporter v2.0 - Style data exported as a values array //
|
||||
// //
|
||||
// USAGE: On init call: GuiLoadStyleAshes(); //
|
||||
// //
|
||||
// more info and bugs-report: github.com/raysan5/raygui //
|
||||
// feedback and support: ray[at]raylibtech.com //
|
||||
// //
|
||||
// Copyright (c) 2020-2025 raylib technologies (@raylibtech) //
|
||||
// //
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#define ASHES_STYLE_PROPS_COUNT 16
|
||||
|
||||
// Custom style name: Ashes
|
||||
static const GuiStyleProp ashesStyleProps[ASHES_STYLE_PROPS_COUNT] = {
|
||||
{ 0, 0, (int)0xf0f0f0ff }, // DEFAULT_BORDER_COLOR_NORMAL
|
||||
{ 0, 1, (int)0x868686ff }, // DEFAULT_BASE_COLOR_NORMAL
|
||||
{ 0, 2, (int)0xe6e6e6ff }, // DEFAULT_TEXT_COLOR_NORMAL
|
||||
{ 0, 3, (int)0x929999ff }, // DEFAULT_BORDER_COLOR_FOCUSED
|
||||
{ 0, 4, (int)0xeaeaeaff }, // DEFAULT_BASE_COLOR_FOCUSED
|
||||
{ 0, 5, (int)0x98a1a8ff }, // DEFAULT_TEXT_COLOR_FOCUSED
|
||||
{ 0, 6, (int)0x3f3f3fff }, // DEFAULT_BORDER_COLOR_PRESSED
|
||||
{ 0, 7, (int)0xf6f6f6ff }, // DEFAULT_BASE_COLOR_PRESSED
|
||||
{ 0, 8, (int)0x414141ff }, // DEFAULT_TEXT_COLOR_PRESSED
|
||||
{ 0, 9, (int)0x8b8b8bff }, // DEFAULT_BORDER_COLOR_DISABLED
|
||||
{ 0, 10, (int)0x777777ff }, // DEFAULT_BASE_COLOR_DISABLED
|
||||
{ 0, 11, (int)0x959595ff }, // DEFAULT_TEXT_COLOR_DISABLED
|
||||
{ 0, 16, (int)0x00000010 }, // DEFAULT_TEXT_SIZE
|
||||
{ 0, 18, (int)0x9dadb1ff }, // DEFAULT_LINE_COLOR
|
||||
{ 0, 19, (int)0x6b6b6bff }, // DEFAULT_BACKGROUND_COLOR
|
||||
{ 0, 20, (int)0x00000008 }, // DEFAULT_TEXT_LINE_SPACING
|
||||
};
|
||||
|
||||
// WARNING: This style uses a custom font: "v5loxical.ttf" (size: 16, spacing: 1)
|
||||
|
||||
#define ASHES_STYLE_FONT_ATLAS_COMP_SIZE 1800
|
||||
|
||||
// Font atlas image pixels data: DEFLATE compressed
|
||||
static unsigned char ashesFontData[ASHES_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed,
|
||||
0x9d, 0x51, 0xb6, 0xa4, 0x36, 0x0c, 0x44, 0xbd, 0xff, 0x4d, 0x57, 0xbe, 0x72, 0x32, 0xc9, 0x49, 0x83, 0x25, 0x97, 0xb0,
|
||||
0x0c, 0x77, 0xee, 0x5f, 0xbf, 0x1e, 0x1a, 0x5c, 0xc8, 0x06, 0xbb, 0x24, 0x6b, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x07, 0xfd,
|
||||
0xef, 0x27, 0xfa, 0xf9, 0x4d, 0x4d, 0x1f, 0xe7, 0xdf, 0x9f, 0xeb, 0xc7, 0x5f, 0x63, 0xc7, 0xd3, 0xf4, 0xef, 0x66, 0xfe,
|
||||
0xa2, 0xff, 0x3d, 0x3f, 0x2d, 0xff, 0xaa, 0xa6, 0xaf, 0xe6, 0xea, 0xbb, 0x57, 0xbf, 0xa9, 0xa6, 0xfa, 0xeb, 0xe2, 0x78,
|
||||
0xd7, 0x47, 0xd4, 0xc2, 0x3d, 0x31, 0xf7, 0xbb, 0xf3, 0x9a, 0xae, 0xb7, 0xe7, 0xaf, 0x7b, 0x6b, 0xfe, 0xbb, 0xf7, 0x6d,
|
||||
0x5c, 0xab, 0xff, 0x9f, 0xff, 0xc6, 0x8f, 0xbf, 0xe6, 0x34, 0xae, 0x89, 0xf4, 0xeb, 0x33, 0x95, 0x49, 0xed, 0xf9, 0xbb,
|
||||
0x56, 0x4b, 0xfd, 0x50, 0xe6, 0xe8, 0xf9, 0x33, 0x1e, 0x41, 0xb5, 0x74, 0x73, 0x17, 0x2a, 0x7c, 0xc4, 0xd5, 0xfe, 0x3c,
|
||||
0x13, 0xff, 0x5d, 0xf4, 0xcf, 0xdd, 0xcd, 0x6a, 0xa0, 0x7f, 0x46, 0x39, 0x19, 0xce, 0x54, 0xa6, 0xf1, 0xbf, 0x42, 0xfd,
|
||||
0xa8, 0xfe, 0x32, 0xb6, 0x80, 0x53, 0xff, 0x6c, 0xff, 0x9f, 0xe9, 0xff, 0x46, 0x13, 0x3d, 0x9f, 0xd7, 0x5f, 0x8f, 0xb7,
|
||||
0x80, 0x23, 0xfe, 0xc7, 0x6d, 0x6f, 0xab, 0x9b, 0xa7, 0x1a, 0xbd, 0x40, 0x7f, 0xc7, 0xfd, 0x9f, 0x1d, 0x29, 0xfb, 0x8e,
|
||||
0xff, 0x9a, 0xe8, 0xeb, 0xf4, 0x8a, 0xf8, 0x8f, 0x8f, 0x72, 0xf3, 0xef, 0x9b, 0x77, 0x23, 0xa5, 0xb6, 0x5f, 0x7b, 0xee,
|
||||
0x09, 0xe4, 0xef, 0xff, 0x77, 0x7e, 0xfc, 0x77, 0x19, 0x83, 0x76, 0x9d, 0xb7, 0xb6, 0xc6, 0x17, 0xfa, 0x7f, 0xe1, 0xfa,
|
||||
0x45, 0xcb, 0x73, 0x97, 0xa1, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xca, 0x59,
|
||||
0x10, 0x77, 0x22, 0x68, 0xd9, 0xe3, 0xe6, 0xf1, 0xdf, 0x2b, 0xdc, 0x02, 0x19, 0xdf, 0xfd, 0xaf, 0xf3, 0x8a, 0x7d, 0x7f,
|
||||
0x84, 0x3d, 0x75, 0x4a, 0xae, 0x83, 0x29, 0xed, 0xea, 0x5a, 0x77, 0xa8, 0x57, 0xac, 0x20, 0xe7, 0xbd, 0x76, 0x11, 0x8f,
|
||||
0xae, 0x4c, 0x3e, 0x2d, 0x99, 0x73, 0x54, 0xdc, 0xfa, 0x8f, 0xed, 0xfa, 0xab, 0xd4, 0x0f, 0xa2, 0x1b, 0xbf, 0xd9, 0x17,
|
||||
0xf4, 0xcf, 0x3a, 0x77, 0x23, 0xfd, 0xbc, 0xec, 0xde, 0xc9, 0xf8, 0xf9, 0xdd, 0xe7, 0x03, 0x7c, 0x51, 0xff, 0x11, 0x8e,
|
||||
0xdb, 0x78, 0x0f, 0x3b, 0x3b, 0x52, 0x6b, 0x63, 0xfc, 0x5f, 0x8d, 0xdb, 0x0a, 0x44, 0x4d, 0x54, 0x9d, 0xd8, 0xef, 0xfe,
|
||||
0x73, 0xae, 0xeb, 0x4f, 0x44, 0x4f, 0xe9, 0x3f, 0x16, 0x7d, 0x9c, 0xb2, 0xf5, 0x18, 0xd9, 0x71, 0xae, 0x5f, 0xfc, 0xbb,
|
||||
0x9f, 0xff, 0xea, 0xf4, 0x97, 0xc1, 0x8d, 0xa5, 0x52, 0x2f, 0x68, 0x26, 0x47, 0xe5, 0x3d, 0xfa, 0x67, 0xde, 0x70, 0x3c,
|
||||
0xc7, 0x39, 0xc1, 0x87, 0xfa, 0x05, 0xfd, 0x01, 0xfd, 0xf1, 0xa1, 0x67, 0x9e, 0xdb, 0xea, 0xe6, 0x7f, 0x14, 0xee, 0xaf,
|
||||
0xd1, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0xeb, 0xdb, 0xd9, 0x2a,
|
||||
0xe0, 0x8e, 0xef, 0x67, 0x7f, 0x41, 0x36, 0xc7, 0xa7, 0xcf, 0x3f, 0xfa, 0x7b, 0xfd, 0xd8, 0x91, 0xeb, 0x50, 0xa7, 0xff,
|
||||
0xb0, 0xbb, 0x68, 0xe3, 0x9e, 0xb4, 0x78, 0x7d, 0xfc, 0xd1, 0x4c, 0xff, 0x11, 0x68, 0x77, 0x15, 0xe6, 0x4c, 0xa0, 0x7f,
|
||||
0x7f, 0xfd, 0x7d, 0x95, 0x2f, 0xdf, 0xae, 0xff, 0x38, 0x4a, 0xff, 0xb5, 0x1d, 0x01, 0x5c, 0xfa, 0xe7, 0xfd, 0xed, 0xae,
|
||||
0x51, 0x70, 0x3d, 0xc7, 0x60, 0xa4, 0x77, 0x12, 0x72, 0xe9, 0x3f, 0x12, 0x79, 0x7f, 0x0e, 0x6f, 0xfc, 0x1b, 0xe2, 0x7f,
|
||||
0x18, 0xe2, 0x7f, 0x34, 0xed, 0xff, 0x87, 0xc9, 0x0f, 0x8a, 0xfe, 0xdf, 0xd6, 0xdf, 0x53, 0xfb, 0xf8, 0xbd, 0xfa, 0x77,
|
||||
0x7d, 0xfe, 0x43, 0xff, 0x13, 0xf5, 0x97, 0xed, 0xca, 0x7d, 0xfa, 0xaf, 0x66, 0x4d, 0x7a, 0x9e, 0xb4, 0x94, 0x7e, 0x6e,
|
||||
0x57, 0x38, 0x57, 0x2b, 0x9e, 0x7d, 0xea, 0xc8, 0x14, 0xbc, 0xab, 0x10, 0x11, 0x9b, 0x4d, 0x8a, 0x56, 0xd7, 0xa8, 0xd3,
|
||||
0xff, 0xcc, 0x8a, 0x25, 0xcc, 0xd0, 0x56, 0x64, 0xbb, 0xc0, 0x3b, 0xee, 0xf9, 0x2f, 0x46, 0x08, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0xad, 0x84, 0xc7, 0x56, 0x23, 0x5d, 0x6b, 0xb9, 0xc3, 0xb2, 0xbb, 0x80,
|
||||
0x0c, 0xeb, 0xeb, 0x6b, 0xff, 0x5f, 0x7f, 0xac, 0x0c, 0xbb, 0x72, 0x1c, 0x1c, 0x9f, 0xcf, 0x3a, 0x1b, 0x32, 0xeb, 0x8b,
|
||||
0x55, 0x8e, 0x06, 0x25, 0x7c, 0xd1, 0x15, 0xeb, 0xe2, 0x0a, 0xaf, 0xc1, 0xef, 0xf2, 0x44, 0x2b, 0x78, 0x45, 0xb2, 0xac,
|
||||
0x51, 0x3a, 0x9c, 0xc4, 0x5a, 0x76, 0x0a, 0xc7, 0x7d, 0xc2, 0x2a, 0xb8, 0x0f, 0xcf, 0xd0, 0xdf, 0x3b, 0x86, 0x54, 0x45,
|
||||
0xae, 0x37, 0xfe, 0xb5, 0xa0, 0x7f, 0x74, 0x37, 0x1b, 0xf4, 0xf7, 0xe8, 0x1f, 0x7b, 0x12, 0xa9, 0xd3, 0x9f, 0xf8, 0xdf,
|
||||
0x17, 0xff, 0xab, 0x1e, 0x3e, 0xf4, 0xff, 0x86, 0xfe, 0x32, 0xd5, 0xe1, 0x46, 0xff, 0x75, 0x8f, 0x5a, 0xcc, 0x01, 0xeb,
|
||||
0x72, 0x0a, 0xf7, 0x89, 0xff, 0x61, 0xf3, 0x44, 0xfb, 0x2a, 0x88, 0x77, 0xe8, 0x17, 0x1c, 0xdf, 0xee, 0x3d, 0xfe, 0x3f,
|
||||
0xe9, 0x00, 0xee, 0xec, 0xf7, 0xac, 0xf4, 0xae, 0x76, 0xd1, 0xbf, 0x5e, 0x81, 0x73, 0xf5, 0x3f, 0x37, 0x47, 0xa0, 0x53,
|
||||
0xab, 0xa2, 0x7f, 0xff, 0xac, 0x0b, 0xa0, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8,
|
||||
0x3c, 0xd3, 0x9d, 0xf3, 0x4f, 0xc8, 0xe4, 0x82, 0x88, 0xfa, 0x00, 0xc7, 0x74, 0x8d, 0x7c, 0xa5, 0x9c, 0xc7, 0xab, 0xbe,
|
||||
0x93, 0xbb, 0x56, 0x96, 0x71, 0x45, 0x42, 0x97, 0xad, 0x54, 0xeb, 0xcf, 0xda, 0x55, 0x1f, 0x3d, 0x53, 0xe3, 0x71, 0x25,
|
||||
0x0b, 0xc2, 0xed, 0x3b, 0x90, 0xcd, 0x19, 0xa3, 0xe0, 0xfa, 0xa5, 0xcb, 0x87, 0x9f, 0xd3, 0x3f, 0xee, 0x1a, 0xab, 0xfb,
|
||||
0xd4, 0x91, 0x8b, 0x94, 0xcd, 0x1b, 0x91, 0x6d, 0x2d, 0x5a, 0x97, 0xf9, 0x4f, 0xbb, 0xfa, 0xff, 0xea, 0xfa, 0xf8, 0x4f,
|
||||
0xea, 0x1f, 0xf7, 0x00, 0x5d, 0x8f, 0x5a, 0x6b, 0x3a, 0x5d, 0x1d, 0x4f, 0xcb, 0x57, 0xd9, 0x4f, 0x7f, 0x5f, 0x8d, 0x6f,
|
||||
0x6f, 0xcb, 0xdc, 0xab, 0xbc, 0x16, 0xd9, 0x91, 0xfe, 0x5f, 0xe1, 0xfe, 0xdf, 0x93, 0x59, 0x51, 0xef, 0x82, 0x7e, 0x7e,
|
||||
0x7f, 0x04, 0x19, 0x7a, 0xf9, 0xbb, 0x2c, 0x58, 0xa1, 0x7f, 0x59, 0x1e, 0x48, 0x07, 0xfd, 0xaf, 0x9f, 0xc7, 0x65, 0x75,
|
||||
0x24, 0xd5, 0x8e, 0xff, 0xf9, 0x7a, 0xda, 0xae, 0x3a, 0xe3, 0x8e, 0x7d, 0x53, 0x6a, 0xfa, 0xff, 0xda, 0xf8, 0x1f, 0x45,
|
||||
0xcf, 0xff, 0x9d, 0xbd, 0x8f, 0x2e, 0x27, 0xf8, 0xb3, 0xcf, 0x7f, 0x9e, 0xf7, 0x99, 0x7c, 0x66, 0x44, 0xec, 0xfd, 0xbf,
|
||||
0xb3, 0x03, 0xb2, 0xa7, 0xfe, 0xf1, 0x3d, 0x25, 0x73, 0xfd, 0xe6, 0xb7, 0x1d, 0xa9, 0xeb, 0x7b, 0x58, 0x56, 0xf6, 0x6d,
|
||||
0x78, 0x83, 0x4f, 0xbd, 0x63, 0xde, 0x97, 0x19, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x10, 0xf3, 0xc8, 0xac, 0xae, 0x38, 0x2b, 0x51, 0x01, 0xdc, 0xb7, 0x6e, 0x73, 0xe7, 0x2f, 0xd1, 0x42, 0x2d, 0xb7, 0x4c,
|
||||
0x1d, 0xe8, 0x2b, 0x77, 0x8c, 0x82, 0xde, 0x19, 0xdf, 0xba, 0x94, 0x16, 0xd5, 0xcf, 0xfa, 0xaa, 0x64, 0x73, 0xd1, 0x64,
|
||||
0xdc, 0x6d, 0x0a, 0xd6, 0x88, 0x9f, 0xcb, 0x36, 0xf1, 0xf9, 0x42, 0xee, 0xbd, 0xf3, 0x75, 0xeb, 0xa6, 0x0a, 0xc6, 0x81,
|
||||
0x42, 0x8e, 0xb3, 0xdf, 0x6d, 0xb5, 0x1e, 0x95, 0xeb, 0xfa, 0xe7, 0xe3, 0x5f, 0xb6, 0xba, 0xf6, 0x59, 0xfd, 0x73, 0x11,
|
||||
0xb2, 0x1e, 0xff, 0x4a, 0x65, 0xd0, 0x54, 0x79, 0x76, 0x56, 0xf5, 0x1f, 0x66, 0xfd, 0x9f, 0x8b, 0x7f, 0x6d, 0x18, 0xff,
|
||||
0xff, 0x1c, 0xa1, 0x64, 0xfb, 0xdd, 0x35, 0x9f, 0xe4, 0x1e, 0xfd, 0xb3, 0xde, 0x3f, 0xdd, 0xb8, 0x63, 0xf5, 0xa8, 0xb7,
|
||||
0x25, 0xdb, 0x83, 0xa8, 0xa1, 0x2f, 0xe6, 0x2e, 0xef, 0xac, 0x87, 0xc3, 0x71, 0xfd, 0x09, 0x7c, 0xa5, 0x87, 0x5c, 0xbd,
|
||||
0x6b, 0x9c, 0xfa, 0xbb, 0xbc, 0xab, 0xb3, 0xb1, 0x87, 0xfe, 0xde, 0xf7, 0xc7, 0x7e, 0xf1, 0x7f, 0xed, 0xbb, 0xed, 0xad,
|
||||
0x7f, 0xec, 0xfd, 0x4f, 0x9b, 0x5b, 0xb9, 0xa3, 0x3f, 0x59, 0xa9, 0x27, 0xd0, 0x3e, 0xfa, 0xef, 0x3a, 0xd6, 0xdb, 0xe7,
|
||||
0xb6, 0xba, 0xe8, 0x7f, 0x37, 0xff, 0x73, 0x5a, 0xc6, 0xc6, 0x49, 0xfa, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x71, 0x8d, 0x74, 0x76, 0x95, 0x51, 0x41, 0x27, 0xf1, 0x75, 0xa5, 0xb4, 0xeb, 0x7c,
|
||||
0x82, 0xaa, 0xab, 0x58, 0xdd, 0x1f, 0x3e, 0x5a, 0x1b, 0x55, 0x41, 0xb7, 0xa3, 0x4b, 0xab, 0xbc, 0x13, 0x53, 0x26, 0xef,
|
||||
0xab, 0xaf, 0xf2, 0xbf, 0xfb, 0x2a, 0x66, 0x75, 0x55, 0xc0, 0xd5, 0xee, 0x69, 0x4b, 0xd7, 0x55, 0xf6, 0xf1, 0x66, 0x0d,
|
||||
0xa3, 0xfe, 0xa7, 0xf6, 0xbc, 0xfb, 0x3d, 0x48, 0x6a, 0xf4, 0x79, 0x56, 0xff, 0xf8, 0x78, 0xb1, 0x3a, 0xbe, 0xac, 0xef,
|
||||
0x38, 0xa2, 0xcb, 0x2c, 0x98, 0xca, 0xb6, 0xf7, 0xf7, 0xcf, 0xbe, 0xcf, 0x65, 0xcb, 0x19, 0x74, 0xd6, 0x05, 0xf7, 0xeb,
|
||||
0xbf, 0xaf, 0x8d, 0x7b, 0xeb, 0xbf, 0x53, 0x67, 0xf4, 0x47, 0xff, 0xaf, 0xe9, 0x1f, 0xab, 0xb4, 0x5f, 0xff, 0x79, 0x4e,
|
||||
0xb7, 0xda, 0xd1, 0x9f, 0xf8, 0x27, 0xfe, 0xd1, 0xff, 0xc9, 0xcf, 0x63, 0x11, 0x7a, 0xaa, 0xfe, 0x2a, 0x9d, 0x33, 0x39,
|
||||
0x51, 0x7f, 0x5f, 0xde, 0x6d, 0x7f, 0xfd, 0x77, 0x69, 0x72, 0xb6, 0xfe, 0xe3, 0x35, 0xf1, 0x8f, 0xfe, 0xbe, 0x7a, 0x05,
|
||||
0xe7, 0xcd, 0xff, 0xe4, 0xb3, 0xd6, 0x9d, 0xf3, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0,
|
||||
0x5e, 0xff, 0xbf, 0xc2, 0xf3, 0xf6, 0x19, 0x27, 0x7a, 0xa5, 0x3f, 0x7f, 0x7e, 0x96, 0x5d, 0xa9, 0x19, 0xfa, 0xbd, 0x79,
|
||||
0x10, 0xb3, 0xd7, 0x91, 0x5d, 0x4d, 0x89, 0xd7, 0xac, 0x8e, 0xfa, 0x70, 0xea, 0xfd, 0xf9, 0x91, 0xbd, 0x0a, 0x1c, 0xfb,
|
||||
0x0e, 0x54, 0xe7, 0x41, 0x64, 0xf2, 0x51, 0x9e, 0xf2, 0x92, 0x5f, 0x57, 0x54, 0xed, 0xbc, 0xe2, 0x94, 0xe9, 0x3f, 0xb4,
|
||||
0xd1, 0x7f, 0x1f, 0xd5, 0x3f, 0xb7, 0x03, 0x80, 0xc2, 0x3d, 0xa5, 0xc2, 0xeb, 0x96, 0x3d, 0x56, 0x93, 0xcf, 0xa9, 0x91,
|
||||
0xaa, 0x54, 0xfc, 0xfb, 0x22, 0x22, 0x33, 0xfe, 0x9f, 0xa1, 0xbf, 0x8e, 0xca, 0x83, 0x89, 0xfa, 0xdd, 0x54, 0xac, 0x7f,
|
||||
0xd6, 0xb7, 0x70, 0x46, 0xfc, 0xf7, 0xf1, 0x9d, 0xe6, 0x47, 0x2a, 0xa1, 0xff, 0xad, 0xbe, 0xda, 0xe2, 0x20, 0x8a, 0x3b,
|
||||
0x5a, 0xd1, 0x3f, 0xf2, 0x16, 0xb5, 0xa2, 0x7f, 0x3f, 0x1f, 0x5c, 0xf6, 0xfd, 0xef, 0x9b, 0xfa, 0xaf, 0xc6, 0xff, 0x69,
|
||||
0x3e, 0xc8, 0xd8, 0x5e, 0x8b, 0x4f, 0xe9, 0xaf, 0x03, 0xf4, 0x57, 0xab, 0x11, 0xca, 0xe9, 0x83, 0xd5, 0x03, 0xcf, 0xff,
|
||||
0xf1, 0x99, 0xc4, 0x8e, 0xf1, 0x7f, 0xbe, 0xfe, 0x4f, 0xec, 0x90, 0xe8, 0xd9, 0xcf, 0xed, 0x0c, 0xfd, 0xbb, 0xbd, 0xff,
|
||||
0x79, 0xe7, 0x92, 0x9c, 0xf3, 0x3f, 0x67, 0x55, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xf8, 0x72, 0x0e, 0xc0, 0xaa, 0x03, 0x5f, 0xcb, 0x2b, 0x55, 0x0a, 0x38, 0xf8, 0xd5, 0xc8, 0xbf, 0x3f, 0x26, 0x6b, 0x2c,
|
||||
0x57, 0x9c, 0xad, 0xa7, 0x5a, 0x7a, 0x55, 0x85, 0xfc, 0x61, 0xa9, 0x92, 0x1f, 0x73, 0x1f, 0x3f, 0xed, 0xdf, 0x5f, 0x5b,
|
||||
0x11, 0xdf, 0x9d, 0x0f, 0x51, 0xe1, 0x25, 0x7e, 0x3e, 0x1f, 0x61, 0xa7, 0x7f, 0xff, 0xae, 0x5a, 0xb9, 0x36, 0x65, 0x1b,
|
||||
0xb0, 0x1a, 0xda, 0x3d, 0xdb, 0xa4, 0x53, 0xfe, 0x9f, 0x67, 0xa5, 0x7d, 0x35, 0x4f, 0x49, 0x8b, 0x3d, 0xea, 0x2e, 0x87,
|
||||
0x81, 0x8e, 0xf5, 0x43, 0x7b, 0x8f, 0xfc, 0x8c, 0xfe, 0xe7, 0xf8, 0xb4, 0xd0, 0x1f, 0xfd, 0xd1, 0xff, 0xcb, 0xfa, 0xeb,
|
||||
0x00, 0xfd, 0x3d, 0xfb, 0x36, 0xa0, 0x7f, 0x27, 0x3f, 0x74, 0x34, 0xfe, 0x87, 0x25, 0xc3, 0x1c, 0xfd, 0xbb, 0xf8, 0xa1,
|
||||
0xd1, 0xbf, 0x4f, 0x9e, 0x46, 0x6f, 0xfd, 0xcf, 0x7b, 0xff, 0x1b, 0xc5, 0xb5, 0xd1, 0xdf, 0xe3, 0x87, 0x67, 0x0e, 0x88,
|
||||
0xf9, 0x27, 0x40, 0x7f, 0xf8, 0xa2, 0xf6, 0xa8, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0x7a, 0x16,
|
||||
0x01, 0xfd, 0x01, 0x00, 0x80, 0xfe, 0x1f, 0xd0, 0x1f, 0xd0, 0x1f, 0xd0, 0x1f, 0xd0, 0x1f, 0xd0, 0x1f, 0xd0, 0x1f, 0xb2,
|
||||
0x15, 0x0d, 0x68, 0x07, 0x7a, 0x01, 0x40, 0x7f, 0xc0, 0x39, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xbb, 0x01, 0xfd, 0x61, 0xab, 0xfe, 0x7f, 0x01 };
|
||||
|
||||
// Font glyphs rectangles data (on atlas)
|
||||
static const Rectangle ashesFontRecs[189] = {
|
||||
{ 4, 4, 4 , 16 },
|
||||
{ 16, 4, 1 , 10 },
|
||||
{ 25, 4, 3 , 3 },
|
||||
{ 36, 4, 6 , 8 },
|
||||
{ 50, 4, 5 , 11 },
|
||||
{ 63, 4, 7 , 8 },
|
||||
{ 78, 4, 6 , 9 },
|
||||
{ 92, 4, 1 , 3 },
|
||||
{ 101, 4, 3 , 12 },
|
||||
{ 112, 4, 3 , 12 },
|
||||
{ 123, 4, 5 , 5 },
|
||||
{ 136, 4, 5 , 5 },
|
||||
{ 149, 4, 2 , 2 },
|
||||
{ 159, 4, 4 , 1 },
|
||||
{ 171, 4, 1 , 1 },
|
||||
{ 180, 4, 5 , 10 },
|
||||
{ 193, 4, 4 , 8 },
|
||||
{ 205, 4, 2 , 8 },
|
||||
{ 215, 4, 4 , 8 },
|
||||
{ 227, 4, 4 , 8 },
|
||||
{ 239, 4, 6 , 8 },
|
||||
{ 4, 28, 4 , 8 },
|
||||
{ 16, 28, 4 , 8 },
|
||||
{ 28, 28, 4 , 8 },
|
||||
{ 40, 28, 4 , 8 },
|
||||
{ 52, 28, 4 , 8 },
|
||||
{ 64, 28, 1 , 5 },
|
||||
{ 73, 28, 2 , 6 },
|
||||
{ 83, 28, 4 , 7 },
|
||||
{ 95, 28, 4 , 4 },
|
||||
{ 107, 28, 4 , 7 },
|
||||
{ 119, 28, 4 , 10 },
|
||||
{ 131, 28, 8 , 7 },
|
||||
{ 147, 28, 4 , 10 },
|
||||
{ 159, 28, 4 , 10 },
|
||||
{ 171, 28, 4 , 10 },
|
||||
{ 183, 28, 4 , 10 },
|
||||
{ 195, 28, 4 , 10 },
|
||||
{ 207, 28, 5 , 10 },
|
||||
{ 220, 28, 4 , 10 },
|
||||
{ 232, 28, 4 , 10 },
|
||||
{ 244, 28, 1 , 10 },
|
||||
{ 4, 52, 3 , 10 },
|
||||
{ 15, 52, 4 , 10 },
|
||||
{ 27, 52, 4 , 10 },
|
||||
{ 39, 52, 7 , 10 },
|
||||
{ 54, 52, 4 , 10 },
|
||||
{ 66, 52, 4 , 10 },
|
||||
{ 78, 52, 4 , 10 },
|
||||
{ 90, 52, 5 , 11 },
|
||||
{ 103, 52, 4 , 10 },
|
||||
{ 115, 52, 4 , 10 },
|
||||
{ 127, 52, 5 , 10 },
|
||||
{ 140, 52, 4 , 10 },
|
||||
{ 152, 52, 4 , 10 },
|
||||
{ 164, 52, 7 , 10 },
|
||||
{ 179, 52, 4 , 10 },
|
||||
{ 191, 52, 4 , 10 },
|
||||
{ 203, 52, 4 , 10 },
|
||||
{ 215, 52, 2 , 12 },
|
||||
{ 225, 52, 5 , 10 },
|
||||
{ 238, 52, 2 , 12 },
|
||||
{ 4, 76, 5 , 3 },
|
||||
{ 17, 76, 5 , 1 },
|
||||
{ 30, 76, 2 , 2 },
|
||||
{ 40, 76, 4 , 8 },
|
||||
{ 52, 76, 4 , 10 },
|
||||
{ 64, 76, 3 , 8 },
|
||||
{ 75, 76, 4 , 10 },
|
||||
{ 87, 76, 4 , 8 },
|
||||
{ 99, 76, 3 , 10 },
|
||||
{ 110, 76, 5 , 11 },
|
||||
{ 123, 76, 4 , 10 },
|
||||
{ 135, 76, 1 , 10 },
|
||||
{ 144, 76, 3 , 13 },
|
||||
{ 155, 76, 4 , 10 },
|
||||
{ 167, 76, 2 , 10 },
|
||||
{ 177, 76, 7 , 8 },
|
||||
{ 192, 76, 4 , 8 },
|
||||
{ 204, 76, 4 , 8 },
|
||||
{ 216, 76, 4 , 11 },
|
||||
{ 228, 76, 4 , 11 },
|
||||
{ 240, 76, 3 , 8 },
|
||||
{ 4, 100, 4 , 8 },
|
||||
{ 16, 100, 3 , 10 },
|
||||
{ 27, 100, 4 , 8 },
|
||||
{ 39, 100, 5 , 8 },
|
||||
{ 52, 100, 7 , 8 },
|
||||
{ 67, 100, 4 , 8 },
|
||||
{ 79, 100, 4 , 11 },
|
||||
{ 91, 100, 4 , 8 },
|
||||
{ 103, 100, 4 , 12 },
|
||||
{ 115, 100, 1 , 10 },
|
||||
{ 124, 100, 4 , 12 },
|
||||
{ 136, 100, 4 , 2 },
|
||||
{ 148, 100, 1 , 10 },
|
||||
{ 157, 100, 4 , 12 },
|
||||
{ 169, 100, 5 , 10 },
|
||||
{ 182, 100, 5 , 10 },
|
||||
{ 195, 100, 5 , 10 },
|
||||
{ 208, 100, 0 , 0 },
|
||||
{ 216, 100, 4 , 10 },
|
||||
{ 228, 100, 0 , 0 },
|
||||
{ 236, 100, 7 , 9 },
|
||||
{ 4, 124, 3 , 7 },
|
||||
{ 15, 124, 6 , 5 },
|
||||
{ 29, 124, 0 , 0 },
|
||||
{ 37, 124, 7 , 9 },
|
||||
{ 52, 124, 4 , 1 },
|
||||
{ 64, 124, 3 , 5 },
|
||||
{ 75, 124, 5 , 7 },
|
||||
{ 88, 124, 3 , 5 },
|
||||
{ 99, 124, 0 , 0 },
|
||||
{ 107, 124, 0 , 0 },
|
||||
{ 115, 124, 4 , 11 },
|
||||
{ 127, 124, 6 , 10 },
|
||||
{ 141, 124, 3 , 3 },
|
||||
{ 152, 124, 0 , 0 },
|
||||
{ 160, 124, 2 , 5 },
|
||||
{ 170, 124, 3 , 5 },
|
||||
{ 181, 124, 6 , 5 },
|
||||
{ 195, 124, 7 , 10 },
|
||||
{ 210, 124, 7 , 8 },
|
||||
{ 225, 124, 0 , 0 },
|
||||
{ 233, 124, 4 , 10 },
|
||||
{ 4, 148, 4 , 13 },
|
||||
{ 16, 148, 4 , 13 },
|
||||
{ 28, 148, 4 , 13 },
|
||||
{ 40, 148, 4 , 13 },
|
||||
{ 52, 148, 4 , 13 },
|
||||
{ 64, 148, 4 , 13 },
|
||||
{ 76, 148, 7 , 10 },
|
||||
{ 91, 148, 4 , 13 },
|
||||
{ 103, 148, 4 , 13 },
|
||||
{ 115, 148, 4 , 13 },
|
||||
{ 127, 148, 4 , 13 },
|
||||
{ 139, 148, 4 , 13 },
|
||||
{ 151, 148, 2 , 13 },
|
||||
{ 161, 148, 2 , 13 },
|
||||
{ 171, 148, 3 , 13 },
|
||||
{ 182, 148, 3 , 13 },
|
||||
{ 193, 148, 5 , 10 },
|
||||
{ 206, 148, 4 , 13 },
|
||||
{ 218, 148, 4 , 13 },
|
||||
{ 230, 148, 4 , 13 },
|
||||
{ 242, 148, 4 , 13 },
|
||||
{ 4, 172, 4 , 13 },
|
||||
{ 16, 172, 4 , 13 },
|
||||
{ 28, 172, 5 , 5 },
|
||||
{ 41, 172, 6 , 12 },
|
||||
{ 55, 172, 4 , 13 },
|
||||
{ 67, 172, 4 , 13 },
|
||||
{ 79, 172, 4 , 13 },
|
||||
{ 91, 172, 4 , 13 },
|
||||
{ 103, 172, 4 , 13 },
|
||||
{ 115, 172, 0 , 0 },
|
||||
{ 123, 172, 5 , 12 },
|
||||
{ 136, 172, 4 , 12 },
|
||||
{ 148, 172, 4 , 12 },
|
||||
{ 160, 172, 4 , 12 },
|
||||
{ 172, 172, 4 , 12 },
|
||||
{ 184, 172, 4 , 12 },
|
||||
{ 196, 172, 4 , 12 },
|
||||
{ 208, 172, 7 , 8 },
|
||||
{ 223, 172, 3 , 11 },
|
||||
{ 234, 172, 4 , 12 },
|
||||
{ 4, 196, 4 , 12 },
|
||||
{ 16, 196, 4 , 12 },
|
||||
{ 28, 196, 4 , 12 },
|
||||
{ 40, 196, 3 , 12 },
|
||||
{ 51, 196, 3 , 12 },
|
||||
{ 62, 196, 3 , 12 },
|
||||
{ 73, 196, 3 , 12 },
|
||||
{ 84, 196, 0 , 0 },
|
||||
{ 92, 196, 4 , 12 },
|
||||
{ 104, 196, 4 , 12 },
|
||||
{ 116, 196, 4 , 12 },
|
||||
{ 128, 196, 4 , 12 },
|
||||
{ 140, 196, 4 , 12 },
|
||||
{ 152, 196, 4 , 12 },
|
||||
{ 164, 196, 5 , 5 },
|
||||
{ 177, 196, 6 , 10 },
|
||||
{ 191, 196, 4 , 12 },
|
||||
{ 203, 196, 4 , 12 },
|
||||
{ 215, 196, 4 , 12 },
|
||||
{ 227, 196, 4 , 12 },
|
||||
{ 239, 196, 4 , 15 },
|
||||
{ 4, 220, 0 , 0 },
|
||||
{ 12, 220, 4 , 15 },
|
||||
};
|
||||
|
||||
// Font glyphs info data
|
||||
// NOTE: No glyphs.image data provided
|
||||
static const GlyphInfo ashesFontGlyphs[189] = {
|
||||
{ 32, 0, 0, 4, { 0 }},
|
||||
{ 33, 0, 3, 4, { 0 }},
|
||||
{ 34, 0, 1, 5, { 0 }},
|
||||
{ 35, 0, 4, 8, { 0 }},
|
||||
{ 36, 0, 2, 7, { 0 }},
|
||||
{ 37, 0, 5, 9, { 0 }},
|
||||
{ 38, 0, 4, 8, { 0 }},
|
||||
{ 39, 0, 1, 3, { 0 }},
|
||||
{ 40, 0, 2, 5, { 0 }},
|
||||
{ 41, 0, 2, 5, { 0 }},
|
||||
{ 42, 0, 3, 7, { 0 }},
|
||||
{ 43, 0, 6, 7, { 0 }},
|
||||
{ 44, 0, 12, 4, { 0 }},
|
||||
{ 45, 0, 9, 5, { 0 }},
|
||||
{ 46, 0, 12, 3, { 0 }},
|
||||
{ 47, 0, 3, 7, { 0 }},
|
||||
{ 48, 0, 5, 6, { 0 }},
|
||||
{ 49, 0, 5, 4, { 0 }},
|
||||
{ 50, 0, 5, 6, { 0 }},
|
||||
{ 51, 0, 5, 6, { 0 }},
|
||||
{ 52, 0, 5, 8, { 0 }},
|
||||
{ 53, 0, 5, 6, { 0 }},
|
||||
{ 54, 0, 5, 6, { 0 }},
|
||||
{ 55, 0, 5, 6, { 0 }},
|
||||
{ 56, 0, 5, 6, { 0 }},
|
||||
{ 57, 0, 5, 6, { 0 }},
|
||||
{ 58, 0, 8, 3, { 0 }},
|
||||
{ 59, 0, 8, 4, { 0 }},
|
||||
{ 60, 0, 5, 6, { 0 }},
|
||||
{ 61, 0, 7, 7, { 0 }},
|
||||
{ 62, 0, 5, 6, { 0 }},
|
||||
{ 63, 1, 3, 7, { 0 }},
|
||||
{ 64, 0, 5, 10, { 0 }},
|
||||
{ 65, 0, 3, 6, { 0 }},
|
||||
{ 66, 0, 3, 6, { 0 }},
|
||||
{ 67, 0, 3, 6, { 0 }},
|
||||
{ 68, 0, 3, 6, { 0 }},
|
||||
{ 69, 0, 3, 6, { 0 }},
|
||||
{ 70, 0, 3, 6, { 0 }},
|
||||
{ 71, 0, 3, 6, { 0 }},
|
||||
{ 72, 0, 3, 6, { 0 }},
|
||||
{ 73, 0, 3, 3, { 0 }},
|
||||
{ 74, 0, 3, 5, { 0 }},
|
||||
{ 75, 0, 3, 6, { 0 }},
|
||||
{ 76, 0, 3, 6, { 0 }},
|
||||
{ 77, 0, 3, 9, { 0 }},
|
||||
{ 78, 0, 3, 6, { 0 }},
|
||||
{ 79, 0, 3, 6, { 0 }},
|
||||
{ 80, 0, 3, 6, { 0 }},
|
||||
{ 81, 0, 3, 7, { 0 }},
|
||||
{ 82, 0, 3, 6, { 0 }},
|
||||
{ 83, 0, 3, 6, { 0 }},
|
||||
{ 84, 0, 3, 6, { 0 }},
|
||||
{ 85, 0, 3, 6, { 0 }},
|
||||
{ 86, 0, 3, 6, { 0 }},
|
||||
{ 87, 0, 3, 9, { 0 }},
|
||||
{ 88, 0, 3, 6, { 0 }},
|
||||
{ 89, 0, 3, 6, { 0 }},
|
||||
{ 90, 0, 3, 6, { 0 }},
|
||||
{ 91, 0, 2, 4, { 0 }},
|
||||
{ 92, 0, 3, 7, { 0 }},
|
||||
{ 93, 0, 2, 4, { 0 }},
|
||||
{ 94, 0, 3, 7, { 0 }},
|
||||
{ 95, 0, 12, 7, { 0 }},
|
||||
{ 96, 0, 1, 4, { 0 }},
|
||||
{ 97, 0, 5, 6, { 0 }},
|
||||
{ 98, 0, 3, 6, { 0 }},
|
||||
{ 99, 0, 5, 5, { 0 }},
|
||||
{ 100, 0, 3, 6, { 0 }},
|
||||
{ 101, 0, 5, 6, { 0 }},
|
||||
{ 102, 0, 3, 5, { 0 }},
|
||||
{ 103, 0, 5, 6, { 0 }},
|
||||
{ 104, 0, 3, 6, { 0 }},
|
||||
{ 105, 0, 3, 3, { 0 }},
|
||||
{ 106, 0, 3, 5, { 0 }},
|
||||
{ 107, 0, 3, 6, { 0 }},
|
||||
{ 108, 0, 3, 4, { 0 }},
|
||||
{ 109, 0, 5, 9, { 0 }},
|
||||
{ 110, 0, 5, 6, { 0 }},
|
||||
{ 111, 0, 5, 6, { 0 }},
|
||||
{ 112, 0, 5, 6, { 0 }},
|
||||
{ 113, 0, 5, 6, { 0 }},
|
||||
{ 114, 0, 5, 5, { 0 }},
|
||||
{ 115, 0, 5, 6, { 0 }},
|
||||
{ 116, 0, 3, 5, { 0 }},
|
||||
{ 117, 0, 5, 6, { 0 }},
|
||||
{ 118, 0, 5, 7, { 0 }},
|
||||
{ 119, 0, 5, 9, { 0 }},
|
||||
{ 120, 0, 5, 6, { 0 }},
|
||||
{ 121, 0, 5, 6, { 0 }},
|
||||
{ 122, 0, 5, 6, { 0 }},
|
||||
{ 123, 0, 2, 6, { 0 }},
|
||||
{ 124, 0, 3, 3, { 0 }},
|
||||
{ 125, 0, 2, 6, { 0 }},
|
||||
{ 126, 0, 1, 6, { 0 }},
|
||||
{ 161, 0, 4, 4, { 0 }},
|
||||
{ 162, 0, 3, 6, { 0 }},
|
||||
{ 163, 0, 3, 7, { 0 }},
|
||||
{ 8364, 0, 3, 7, { 0 }},
|
||||
{ 165, 0, 3, 7, { 0 }},
|
||||
{ 352, 0, 0, 0, { 0 }},
|
||||
{ 167, 0, 3, 6, { 0 }},
|
||||
{ 353, 0, 0, 0, { 0 }},
|
||||
{ 169, 0, 1, 9, { 0 }},
|
||||
{ 170, 0, 1, 5, { 0 }},
|
||||
{ 171, 0, 6, 8, { 0 }},
|
||||
{ 172, 0, 0, 0, { 0 }},
|
||||
{ 174, 0, 1, 9, { 0 }},
|
||||
{ 175, 0, 0, 6, { 0 }},
|
||||
{ 176, 0, 1, 5, { 0 }},
|
||||
{ 177, 0, 5, 7, { 0 }},
|
||||
{ 178, 0, 1, 5, { 0 }},
|
||||
{ 179, 0, 0, 0, { 0 }},
|
||||
{ 381, 0, 0, 0, { 0 }},
|
||||
{ 181, 0, 5, 6, { 0 }},
|
||||
{ 182, 0, 3, 8, { 0 }},
|
||||
{ 183, 0, 7, 5, { 0 }},
|
||||
{ 382, 0, 0, 0, { 0 }},
|
||||
{ 185, 0, 1, 4, { 0 }},
|
||||
{ 186, 0, 1, 5, { 0 }},
|
||||
{ 187, 0, 6, 8, { 0 }},
|
||||
{ 338, 0, 3, 9, { 0 }},
|
||||
{ 339, 0, 5, 9, { 0 }},
|
||||
{ 376, 0, 0, 0, { 0 }},
|
||||
{ 191, 0, 4, 6, { 0 }},
|
||||
{ 192, 0, 0, 6, { 0 }},
|
||||
{ 193, 0, 0, 6, { 0 }},
|
||||
{ 194, 0, 0, 6, { 0 }},
|
||||
{ 195, 0, 0, 6, { 0 }},
|
||||
{ 196, 0, 0, 6, { 0 }},
|
||||
{ 197, 0, 0, 6, { 0 }},
|
||||
{ 198, 0, 3, 9, { 0 }},
|
||||
{ 199, 0, 3, 6, { 0 }},
|
||||
{ 200, 0, 0, 6, { 0 }},
|
||||
{ 201, 0, 0, 6, { 0 }},
|
||||
{ 202, 0, 0, 6, { 0 }},
|
||||
{ 203, 0, 0, 6, { 0 }},
|
||||
{ 204, 0, 0, 4, { 0 }},
|
||||
{ 205, 0, 0, 4, { 0 }},
|
||||
{ 206, 0, 0, 5, { 0 }},
|
||||
{ 207, 0, 0, 5, { 0 }},
|
||||
{ 208, 0, 3, 7, { 0 }},
|
||||
{ 209, 0, 0, 6, { 0 }},
|
||||
{ 210, 0, 0, 6, { 0 }},
|
||||
{ 211, 0, 0, 6, { 0 }},
|
||||
{ 212, 0, 0, 6, { 0 }},
|
||||
{ 213, 0, 0, 6, { 0 }},
|
||||
{ 214, 0, 0, 6, { 0 }},
|
||||
{ 215, 0, 7, 7, { 0 }},
|
||||
{ 216, 0, 2, 8, { 0 }},
|
||||
{ 217, 0, 0, 6, { 0 }},
|
||||
{ 218, 0, 0, 6, { 0 }},
|
||||
{ 219, 0, 0, 6, { 0 }},
|
||||
{ 220, 0, 0, 6, { 0 }},
|
||||
{ 221, 0, 0, 6, { 0 }},
|
||||
{ 222, 0, 0, 0, { 0 }},
|
||||
{ 223, 0, 3, 7, { 0 }},
|
||||
{ 224, 0, 1, 6, { 0 }},
|
||||
{ 225, 0, 1, 6, { 0 }},
|
||||
{ 226, 0, 1, 6, { 0 }},
|
||||
{ 227, 0, 1, 6, { 0 }},
|
||||
{ 228, 0, 1, 6, { 0 }},
|
||||
{ 229, 0, 1, 6, { 0 }},
|
||||
{ 230, 0, 5, 9, { 0 }},
|
||||
{ 231, 0, 5, 5, { 0 }},
|
||||
{ 232, 0, 1, 6, { 0 }},
|
||||
{ 233, 0, 1, 6, { 0 }},
|
||||
{ 234, 0, 1, 6, { 0 }},
|
||||
{ 235, 0, 1, 6, { 0 }},
|
||||
{ 236, 0, 1, 5, { 0 }},
|
||||
{ 237, 0, 1, 5, { 0 }},
|
||||
{ 238, 0, 1, 5, { 0 }},
|
||||
{ 239, 0, 1, 5, { 0 }},
|
||||
{ 240, 0, 0, 0, { 0 }},
|
||||
{ 241, 0, 1, 6, { 0 }},
|
||||
{ 242, 0, 1, 6, { 0 }},
|
||||
{ 243, 0, 1, 6, { 0 }},
|
||||
{ 244, 0, 1, 6, { 0 }},
|
||||
{ 245, 0, 1, 6, { 0 }},
|
||||
{ 246, 0, 1, 6, { 0 }},
|
||||
{ 247, 0, 7, 7, { 0 }},
|
||||
{ 248, 0, 4, 8, { 0 }},
|
||||
{ 249, 0, 1, 6, { 0 }},
|
||||
{ 250, 0, 1, 6, { 0 }},
|
||||
{ 251, 0, 1, 6, { 0 }},
|
||||
{ 252, 0, 1, 6, { 0 }},
|
||||
{ 253, 0, 1, 6, { 0 }},
|
||||
{ 254, 0, 0, 0, { 0 }},
|
||||
{ 255, 0, 1, 6, { 0 }},
|
||||
};
|
||||
|
||||
// Style loading function: Ashes
|
||||
static void GuiLoadStyleAshes(void)
|
||||
{
|
||||
// Load style properties provided
|
||||
// NOTE: Default properties are propagated
|
||||
for (int i = 0; i < ASHES_STYLE_PROPS_COUNT; i++)
|
||||
{
|
||||
GuiSetStyle(ashesStyleProps[i].controlId, ashesStyleProps[i].propertyId, ashesStyleProps[i].propertyValue);
|
||||
}
|
||||
|
||||
// Custom font loading
|
||||
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
|
||||
int ashesFontDataSize = 0;
|
||||
unsigned char *data = DecompressData(ashesFontData, ASHES_STYLE_FONT_ATLAS_COMP_SIZE, &ashesFontDataSize);
|
||||
Image imFont = { data, 256, 256, 1, 2 };
|
||||
|
||||
Font font = { 0 };
|
||||
font.baseSize = 16;
|
||||
font.glyphCount = 189;
|
||||
|
||||
// Load texture from image
|
||||
font.texture = LoadTextureFromImage(imFont);
|
||||
UnloadImage(imFont); // Uncompressed image data can be unloaded from memory
|
||||
|
||||
// Copy char recs data from global fontRecs
|
||||
// NOTE: Required to avoid issues if trying to free font
|
||||
font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle));
|
||||
memcpy(font.recs, ashesFontRecs, font.glyphCount*sizeof(Rectangle));
|
||||
|
||||
// Copy font char info data from global fontChars
|
||||
// NOTE: Required to avoid issues if trying to free font
|
||||
font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo));
|
||||
memcpy(font.glyphs, ashesFontGlyphs, font.glyphCount*sizeof(GlyphInfo));
|
||||
|
||||
GuiSetFont(font);
|
||||
|
||||
// Setup a white rectangle on the font to be used on shapes drawing,
|
||||
// it makes possible to draw shapes and text (full UI) in a single draw call
|
||||
Rectangle fontWhiteRec = { 254, 254, 1, 1 };
|
||||
SetShapesTexture(font.texture, fontWhiteRec);
|
||||
|
||||
//-----------------------------------------------------------------
|
||||
|
||||
// TODO: Custom user style setup: Set specific properties here (if required)
|
||||
// i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT
|
||||
}
|
||||
@ -1,610 +0,0 @@
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// StyleAsCode exporter v2.0 - Style data exported as a values array //
|
||||
// //
|
||||
// USAGE: On init call: GuiLoadStyleBluish(); //
|
||||
// //
|
||||
// more info and bugs-report: github.com/raysan5/raygui //
|
||||
// feedback and support: ray[at]raylibtech.com //
|
||||
// //
|
||||
// Copyright (c) 2020-2025 raylib technologies (@raylibtech) //
|
||||
// //
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#define BLUISH_STYLE_PROPS_COUNT 14
|
||||
|
||||
// Custom style name: Bluish
|
||||
static const GuiStyleProp bluishStyleProps[BLUISH_STYLE_PROPS_COUNT] = {
|
||||
{ 0, 0, (int)0x5ca6a6ff }, // DEFAULT_BORDER_COLOR_NORMAL
|
||||
{ 0, 1, (int)0xb4e8f3ff }, // DEFAULT_BASE_COLOR_NORMAL
|
||||
{ 0, 2, (int)0x447e77ff }, // DEFAULT_TEXT_COLOR_NORMAL
|
||||
{ 0, 3, (int)0x5f8792ff }, // DEFAULT_BORDER_COLOR_FOCUSED
|
||||
{ 0, 4, (int)0xcdeff7ff }, // DEFAULT_BASE_COLOR_FOCUSED
|
||||
{ 0, 5, (int)0x4c6c74ff }, // DEFAULT_TEXT_COLOR_FOCUSED
|
||||
{ 0, 6, (int)0x3b5b5fff }, // DEFAULT_BORDER_COLOR_PRESSED
|
||||
{ 0, 7, (int)0xeaffffff }, // DEFAULT_BASE_COLOR_PRESSED
|
||||
{ 0, 8, (int)0x275057ff }, // DEFAULT_TEXT_COLOR_PRESSED
|
||||
{ 0, 9, (int)0x96aaacff }, // DEFAULT_BORDER_COLOR_DISABLED
|
||||
{ 0, 10, (int)0xc8d7d9ff }, // DEFAULT_BASE_COLOR_DISABLED
|
||||
{ 0, 11, (int)0x8c9c9eff }, // DEFAULT_TEXT_COLOR_DISABLED
|
||||
{ 0, 18, (int)0x84adb7ff }, // DEFAULT_LINE_COLOR
|
||||
{ 0, 19, (int)0xe8eef1ff }, // DEFAULT_BACKGROUND_COLOR
|
||||
};
|
||||
|
||||
// WARNING: This style uses a custom font: "homespun.ttf" (size: 10, spacing: 1)
|
||||
|
||||
#define BLUISH_STYLE_FONT_ATLAS_COMP_SIZE 2730
|
||||
|
||||
// Font atlas image pixels data: DEFLATE compressed
|
||||
static unsigned char bluishFontData[BLUISH_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed,
|
||||
0x9d, 0xdb, 0x92, 0xdb, 0x38, 0x0c, 0x44, 0x45, 0xee, 0xff, 0xff, 0xf1, 0x90, 0xdc, 0xca, 0xc8, 0x33, 0xa9, 0x4d, 0xd4,
|
||||
0x10, 0x01, 0x41, 0x17, 0xef, 0x9c, 0x9c, 0x4a, 0x1e, 0x44, 0x8b, 0x26, 0x09, 0x4a, 0x76, 0x84, 0x76, 0x63, 0x2c, 0x00,
|
||||
0x00, 0x00, 0x00, 0x7f, 0x51, 0xc5, 0xb1, 0x2a, 0x5f, 0x5d, 0x1d, 0x3d, 0xad, 0xc7, 0xab, 0xd1, 0xee, 0xeb, 0xad, 0x3a,
|
||||
0x7a, 0xb0, 0x5a, 0xec, 0xb6, 0x3f, 0x29, 0x2f, 0x32, 0x56, 0xb6, 0x7e, 0xaf, 0xc7, 0xf6, 0x2a, 0x79, 0x5e, 0x5f, 0x5d,
|
||||
0xb3, 0xd8, 0x66, 0x88, 0x63, 0x7d, 0x73, 0xbe, 0x63, 0x14, 0xd1, 0x52, 0xc7, 0x10, 0xe3, 0x19, 0x9f, 0x67, 0x6d, 0xf7,
|
||||
0x68, 0x9d, 0xb5, 0xf5, 0x1e, 0x6d, 0xa3, 0x8f, 0x26, 0x77, 0xc5, 0xaf, 0x77, 0x54, 0x2b, 0xd4, 0x45, 0x3c, 0xc7, 0xe6,
|
||||
0x6b, 0x57, 0xca, 0xd4, 0xab, 0xad, 0x77, 0x18, 0xa3, 0x8d, 0xf6, 0x5a, 0x8f, 0x3f, 0x67, 0x31, 0x5c, 0xaf, 0xd7, 0x2d,
|
||||
0xc7, 0xe3, 0xdf, 0x3f, 0xc7, 0x53, 0x36, 0xae, 0x83, 0x5f, 0xd1, 0xea, 0x22, 0x5e, 0x6a, 0x3c, 0xeb, 0xca, 0x95, 0xcd,
|
||||
0x1e, 0xad, 0xb3, 0x96, 0xe9, 0xd5, 0xde, 0x3e, 0x7f, 0x1d, 0xe9, 0xf6, 0x3c, 0xca, 0x67, 0xdb, 0xd6, 0xda, 0xb5, 0xa4,
|
||||
0xfb, 0xaa, 0x9a, 0xef, 0x62, 0x5e, 0x5b, 0xdb, 0xab, 0xd0, 0x5d, 0x2d, 0xc7, 0xe3, 0xaf, 0x77, 0xf4, 0x78, 0xfd, 0x55,
|
||||
0x33, 0x6b, 0x62, 0x3c, 0x45, 0xb4, 0xd8, 0x67, 0x1d, 0x89, 0x7f, 0x79, 0x8d, 0xb4, 0x8a, 0xeb, 0x79, 0x88, 0x2b, 0xfa,
|
||||
0xcc, 0xe8, 0xfb, 0xe3, 0x5f, 0x5e, 0x7b, 0xb5, 0x88, 0x4f, 0xa5, 0x6b, 0xe3, 0x5f, 0x5e, 0xf7, 0xff, 0x2a, 0x46, 0x5f,
|
||||
0x64, 0xf4, 0xf5, 0xdd, 0xd6, 0xf3, 0xb9, 0xea, 0xbb, 0xfe, 0xd7, 0x75, 0x56, 0x7b, 0xeb, 0xbc, 0xd8, 0xdb, 0xf3, 0xf5,
|
||||
0xc5, 0x7f, 0xc8, 0x4f, 0x9e, 0xaf, 0x5d, 0x7c, 0x74, 0x16, 0x3d, 0xe9, 0xfa, 0xef, 0x72, 0x3c, 0xe5, 0x75, 0xff, 0xdf,
|
||||
0x9e, 0xb3, 0xe7, 0x2a, 0xf4, 0xc4, 0x7f, 0x2f, 0xc6, 0x67, 0x5e, 0xfb, 0xba, 0x6f, 0x7f, 0xfc, 0xd7, 0x1e, 0xb7, 0xde,
|
||||
0xe5, 0xec, 0x5d, 0xbc, 0xb8, 0xbe, 0xff, 0x15, 0xe3, 0x3b, 0xcf, 0xd7, 0xde, 0xf1, 0xcc, 0x2f, 0x2b, 0xce, 0xd7, 0x33,
|
||||
0x76, 0x67, 0xe0, 0x89, 0x7f, 0x91, 0xab, 0x5a, 0x2e, 0xff, 0xfc, 0xb7, 0xe2, 0x6f, 0x8d, 0xd4, 0x8a, 0xbf, 0x6f, 0x16,
|
||||
0xc3, 0xf9, 0x1d, 0xfc, 0x79, 0xf1, 0x1f, 0xdf, 0xff, 0x1f, 0x9a, 0x9b, 0x9b, 0x7a, 0xbd, 0xd5, 0xd3, 0x3d, 0xb3, 0x8e,
|
||||
0x8c, 0xe7, 0x69, 0xb3, 0x80, 0x23, 0x7c, 0x04, 0xe2, 0xf8, 0x41, 0xec, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xd2, 0x54, 0x3e, 0x59, 0x0a, 0x93, 0xec, 0x96, 0x63, 0xaa, 0x20, 0xad, 0xce, 0xb1, 0x14, 0x49, 0xf6, 0x28, 0xaf, 0x5a,
|
||||
0x8f, 0xe5, 0x22, 0xcd, 0xcf, 0x08, 0x28, 0x52, 0xae, 0x6a, 0x69, 0xd3, 0x2a, 0x8c, 0xed, 0x6c, 0xae, 0x56, 0xe7, 0x74,
|
||||
0xb1, 0x56, 0x7b, 0xa3, 0xbc, 0x6e, 0x3d, 0x6a, 0x60, 0x74, 0x91, 0xa7, 0xe5, 0x63, 0x27, 0x3b, 0xd7, 0x5c, 0x2d, 0x7d,
|
||||
0x37, 0xd7, 0xe7, 0x53, 0xbe, 0x1c, 0xcb, 0xab, 0x5a, 0xea, 0x3c, 0xa5, 0xff, 0xb0, 0x46, 0xa9, 0x74, 0x15, 0x23, 0x3c,
|
||||
0xeb, 0x96, 0x7a, 0x4e, 0x0b, 0xc5, 0x5f, 0xcf, 0x4a, 0xe7, 0xe6, 0x6d, 0xd5, 0xa3, 0xee, 0xcd, 0xd7, 0x32, 0xaf, 0x3e,
|
||||
0x50, 0x31, 0xd6, 0x1a, 0x09, 0xaf, 0x76, 0x66, 0x18, 0xba, 0x8a, 0xbd, 0xb9, 0x35, 0x57, 0x6e, 0x72, 0xec, 0xac, 0xe1,
|
||||
0x71, 0xb5, 0xcc, 0x9c, 0x3a, 0xa3, 0x1b, 0xf3, 0xb5, 0x15, 0x26, 0xdd, 0x75, 0x4e, 0x4f, 0xd0, 0xab, 0x78, 0x77, 0x8f,
|
||||
0xa5, 0xc3, 0xe9, 0x46, 0xfc, 0xab, 0x73, 0x6e, 0x6b, 0x4b, 0x75, 0xe5, 0x82, 0xc7, 0xce, 0x1a, 0x1e, 0x57, 0xcb, 0xcc,
|
||||
0xad, 0x5f, 0x09, 0xdf, 0xb1, 0xb3, 0xce, 0x39, 0x6f, 0x07, 0x0c, 0x77, 0x3f, 0xe3, 0x7b, 0xa7, 0x66, 0xde, 0xff, 0x4b,
|
||||
0xe0, 0x13, 0xb9, 0x1c, 0xd6, 0x6a, 0xcc, 0xdf, 0xb1, 0x63, 0x0a, 0x93, 0xac, 0x73, 0x9e, 0xa5, 0xdd, 0x28, 0xc1, 0x3b,
|
||||
0xf6, 0x35, 0x2d, 0x67, 0xc4, 0x3f, 0xaa, 0x30, 0xe9, 0x69, 0xe7, 0x2c, 0x97, 0x6b, 0x7a, 0x86, 0xbc, 0xfe, 0xad, 0xf5,
|
||||
0xc8, 0x5c, 0x43, 0x4b, 0x07, 0x64, 0x8f, 0xe0, 0x27, 0xd0, 0x78, 0x66, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0xe0, 0xd0, 0xff, 0xd8, 0xea, 0x1b, 0x9f, 0x42, 0xc5, 0x56, 0xed, 0x78, 0x3d, 0x7a, 0xea, 0xe5, 0xaa, 0x9b, 0xec,
|
||||
0x96, 0xc8, 0x5a, 0xec, 0xb5, 0xf8, 0xce, 0xdc, 0x7f, 0xde, 0xad, 0x35, 0x25, 0xea, 0xa9, 0x76, 0xfb, 0x3c, 0x2b, 0x27,
|
||||
0xfb, 0x37, 0x76, 0x47, 0xb6, 0xfe, 0x5b, 0x1f, 0xa8, 0x4f, 0xb2, 0x94, 0x4b, 0x5f, 0x23, 0xcf, 0xcc, 0x16, 0xae, 0x2d,
|
||||
0x6d, 0x73, 0x2d, 0xa2, 0x39, 0xb4, 0x88, 0x0e, 0xc5, 0xce, 0x86, 0xe5, 0xc5, 0x3f, 0x3a, 0xe7, 0x6b, 0x5b, 0xbc, 0x3e,
|
||||
0x22, 0xcf, 0x8b, 0xbf, 0xa5, 0xf2, 0xc9, 0x8a, 0xff, 0x31, 0x1d, 0x4c, 0x5e, 0xfc, 0x23, 0x1a, 0x2e, 0x3d, 0x76, 0x4b,
|
||||
0x07, 0x75, 0x65, 0xfc, 0xb5, 0x8f, 0xd6, 0x4c, 0xfc, 0xfd, 0x2a, 0x1f, 0x7f, 0xfc, 0x8f, 0xe9, 0x60, 0xf2, 0xe2, 0x1f,
|
||||
0xd1, 0x70, 0x74, 0xc3, 0x2d, 0xaa, 0xbb, 0xbd, 0x47, 0xc6, 0x8e, 0xc6, 0xb0, 0x05, 0xe2, 0x5f, 0xe4, 0x18, 0x8f, 0xea,
|
||||
0x3f, 0x3d, 0xd7, 0x7f, 0x39, 0x4d, 0x07, 0x93, 0x7b, 0xff, 0xcf, 0x5a, 0x87, 0xb2, 0xa3, 0x3e, 0x2c, 0x01, 0xb5, 0x48,
|
||||
0x4f, 0x5e, 0x8b, 0x39, 0xbd, 0x43, 0x4e, 0xfc, 0x23, 0x7d, 0xcd, 0x9d, 0xe3, 0x8d, 0x7f, 0x09, 0xc4, 0x3f, 0x73, 0xec,
|
||||
0x76, 0xfc, 0x8b, 0xa1, 0x16, 0xd9, 0x3f, 0x27, 0x3b, 0xfe, 0x51, 0x55, 0x4b, 0x49, 0xec, 0x6b, 0x24, 0xc7, 0xdf, 0xaf,
|
||||
0x93, 0xc9, 0x1d, 0xbb, 0x1d, 0xff, 0xf8, 0xe8, 0xd6, 0x3f, 0xf5, 0x04, 0x0d, 0x3d, 0xe0, 0x38, 0x03, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x2c, 0x46, 0x45, 0x2a, 0x5b, 0x65, 0x34, 0xaf, 0x16, 0xfa, 0x52, 0x50, 0x6c,
|
||||
0xeb, 0x27, 0x72, 0x9c, 0x7e, 0xf6, 0x6b, 0x77, 0x79, 0xdf, 0x47, 0xad, 0x56, 0x64, 0x6c, 0x67, 0xd7, 0x38, 0x9b, 0x53,
|
||||
0xf9, 0x58, 0xba, 0x17, 0xdf, 0x6f, 0x50, 0x95, 0x37, 0x4d, 0x15, 0x4e, 0x37, 0xde, 0xdf, 0xee, 0x5b, 0x5e, 0x15, 0xba,
|
||||
0x9f, 0x4c, 0x17, 0x8b, 0x21, 0xf7, 0xeb, 0x08, 0x8c, 0xad, 0x89, 0xa3, 0xaa, 0x8f, 0x1a, 0xfe, 0xa5, 0x74, 0xdc, 0xcb,
|
||||
0x61, 0xd6, 0x53, 0x49, 0x67, 0x0c, 0xd7, 0x5c, 0xb7, 0x77, 0x07, 0x74, 0x79, 0x8d, 0x6d, 0x8f, 0xb5, 0x4a, 0x7d, 0xcb,
|
||||
0x22, 0xab, 0x99, 0xf9, 0xbd, 0x6a, 0x86, 0xa8, 0x1a, 0x66, 0xe7, 0x8f, 0xd4, 0xd8, 0x54, 0xb5, 0xa4, 0x45, 0xf4, 0xd1,
|
||||
0xc2, 0xbf, 0x09, 0x1f, 0x3b, 0x75, 0xa4, 0x3c, 0x3d, 0x5b, 0x3b, 0xc0, 0xaa, 0xe4, 0xd6, 0x12, 0x6a, 0x95, 0xf8, 0xbd,
|
||||
0x6a, 0x2c, 0xe5, 0x81, 0xdd, 0x9b, 0xd7, 0x9b, 0x45, 0xef, 0x19, 0xdf, 0x9d, 0x21, 0xcb, 0x61, 0x66, 0xee, 0xce, 0x59,
|
||||
0x8c, 0x19, 0x2d, 0xee, 0x1d, 0x70, 0x6e, 0x25, 0x8f, 0xf3, 0x94, 0x07, 0xb3, 0xb3, 0xc8, 0xce, 0x2c, 0xcf, 0xc7, 0x7f,
|
||||
0x39, 0xe4, 0x09, 0x52, 0xc2, 0x5a, 0x19, 0xdf, 0x0e, 0x38, 0x3b, 0xfe, 0x67, 0x29, 0x0f, 0xb2, 0x1c, 0x38, 0xfa, 0x43,
|
||||
0xe3, 0xbf, 0xe7, 0x36, 0xe3, 0x8f, 0xa5, 0x5f, 0x31, 0xba, 0xdc, 0x72, 0x67, 0xc8, 0x3e, 0x67, 0x71, 0xff, 0x4f, 0xe6,
|
||||
0x19, 0xf1, 0x8f, 0x39, 0xd4, 0x14, 0xb7, 0x97, 0xd0, 0x5d, 0xf1, 0xf7, 0xd7, 0x91, 0x8a, 0x9d, 0x93, 0xaf, 0xbd, 0xbc,
|
||||
0x22, 0xfe, 0xf0, 0x3e, 0xce, 0x47, 0x0d, 0x7d, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x29, 0xff,
|
||||
0xc1, 0xa3, 0x5e, 0xb9, 0xbf, 0xa5, 0xee, 0x64, 0xb5, 0x4a, 0xb8, 0xa5, 0xa4, 0xf5, 0x69, 0x69, 0x8c, 0x8e, 0xd6, 0x3c,
|
||||
0xfb, 0xea, 0xbb, 0x84, 0xd5, 0x3f, 0xbf, 0x73, 0xd0, 0xeb, 0xbf, 0x35, 0x29, 0xb3, 0x9e, 0xdf, 0x72, 0xfe, 0xaf, 0xf9,
|
||||
0xcf, 0xf0, 0x1b, 0xb0, 0x1c, 0x22, 0xea, 0xb4, 0xb6, 0xa2, 0xc9, 0x9c, 0x6a, 0x97, 0x9e, 0x01, 0x2d, 0x90, 0x83, 0xb8,
|
||||
0xdf, 0x65, 0xa7, 0x39, 0xeb, 0x50, 0xd5, 0x0b, 0x3d, 0x36, 0xfa, 0x8e, 0x1e, 0xc6, 0xa7, 0xa1, 0xd1, 0x1e, 0x0a, 0x8b,
|
||||
0xeb, 0xb5, 0xaa, 0x26, 0x51, 0x79, 0xcb, 0xf8, 0x2f, 0x4e, 0x6d, 0x5f, 0x9f, 0xf0, 0xcb, 0xc8, 0xf2, 0xd8, 0x28, 0x01,
|
||||
0x85, 0x4f, 0x31, 0xea, 0x8f, 0xf9, 0xe2, 0xaf, 0xaa, 0xd5, 0xf9, 0xef, 0x8d, 0x57, 0xb8, 0x6c, 0xe4, 0x57, 0xb0, 0xc9,
|
||||
0x73, 0xf3, 0xc8, 0xf7, 0xd8, 0xb0, 0x32, 0xe5, 0x5a, 0x57, 0xe9, 0x8b, 0xbf, 0xd7, 0xdb, 0xe1, 0x8a, 0xf8, 0x47, 0x6b,
|
||||
0xdb, 0xe4, 0x3a, 0x73, 0x94, 0x87, 0x78, 0x6c, 0x78, 0x1d, 0x42, 0x8e, 0xdf, 0xff, 0xb3, 0xf5, 0x08, 0x79, 0x99, 0xea,
|
||||
0x6b, 0x7c, 0x36, 0x22, 0x3a, 0x9d, 0xb3, 0x32, 0xf3, 0xfe, 0xec, 0xbc, 0x47, 0x5b, 0xd9, 0xdf, 0x2a, 0xfe, 0x4f, 0xd6,
|
||||
0xf6, 0x3c, 0x89, 0x33, 0x6b, 0x9e, 0xa1, 0xfe, 0x79, 0xd7, 0x3d, 0xcd, 0x1a, 0xfc, 0x6c, 0x95, 0x17, 0x6b, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe7, 0x38, 0x00, 0x2d, 0xd2, 0xd3, 0x66, 0xbe, 0x87, 0x9a, 0xe6, 0x2f, 0xb4, 0x77,
|
||||
0x4e, 0x75, 0xd6, 0x25, 0x2b, 0x6e, 0x7d, 0xce, 0xb1, 0xda, 0x63, 0xbe, 0x95, 0x8e, 0xf4, 0x35, 0xb7, 0x5e, 0x33, 0xfa,
|
||||
0x2f, 0x4b, 0x45, 0xd1, 0xa6, 0x9e, 0xae, 0x0f, 0xe3, 0x79, 0x76, 0xfb, 0x9c, 0xc3, 0x87, 0xb3, 0x7a, 0x96, 0x7d, 0x8e,
|
||||
0xaa, 0x08, 0xa6, 0xfa, 0x2b, 0x9f, 0x2a, 0x89, 0xe6, 0xd2, 0xe7, 0xec, 0xbf, 0x93, 0xfa, 0x4d, 0x77, 0x73, 0x57, 0x04,
|
||||
0xb0, 0xab, 0x88, 0x95, 0xc3, 0x1e, 0x3e, 0x31, 0xe7, 0x94, 0x35, 0xbf, 0xd6, 0xa6, 0xde, 0xbf, 0x1a, 0x2e, 0x32, 0x4d,
|
||||
0xea, 0x5f, 0xb4, 0xf7, 0x8b, 0x75, 0x4e, 0x79, 0x65, 0xfd, 0xea, 0xe6, 0xf5, 0xb2, 0xad, 0xc2, 0x2a, 0xa6, 0x37, 0x8d,
|
||||
0xd6, 0x09, 0x95, 0x5d, 0x5f, 0xa3, 0xad, 0xb5, 0xe8, 0xc2, 0x53, 0xa8, 0x8b, 0x2b, 0x4d, 0x8d, 0x5b, 0x1d, 0xcf, 0x8d,
|
||||
0xbf, 0x76, 0x41, 0x1a, 0x93, 0x33, 0xff, 0xad, 0x20, 0x2c, 0x8e, 0x3b, 0xa5, 0xe5, 0x7e, 0x54, 0x0c, 0xcf, 0xa6, 0x2e,
|
||||
0xe3, 0xa9, 0xaf, 0xbd, 0x2e, 0x77, 0xa7, 0xb5, 0x2e, 0x7d, 0x77, 0xe7, 0xa8, 0x5c, 0x70, 0x71, 0xad, 0x91, 0xaa, 0x14,
|
||||
0x78, 0xcd, 0xf5, 0xaf, 0x34, 0x14, 0x7d, 0x5a, 0x75, 0x62, 0xed, 0xed, 0x3d, 0xc7, 0x24, 0xbf, 0xe2, 0x73, 0x8d, 0xc7,
|
||||
0x76, 0xfc, 0x6b, 0x9a, 0x1a, 0x60, 0x7c, 0xaf, 0x68, 0x0f, 0x7e, 0xb2, 0xce, 0xdf, 0xff, 0xd5, 0x27, 0x70, 0x99, 0xdc,
|
||||
0xb5, 0xc7, 0xe2, 0x5f, 0x4c, 0xcf, 0x96, 0x72, 0xf0, 0xfa, 0xb7, 0xd4, 0x9b, 0xb6, 0xcb, 0x9a, 0xff, 0xfa, 0xef, 0x52,
|
||||
0x6d, 0xf7, 0xec, 0xf8, 0xab, 0x71, 0xcf, 0xce, 0xe7, 0x58, 0xfc, 0x6d, 0x85, 0xd2, 0x6c, 0xaf, 0xf6, 0xdc, 0x86, 0xeb,
|
||||
0xbb, 0x97, 0xf5, 0xad, 0xac, 0x7c, 0xbf, 0xa6, 0x5e, 0xe0, 0x1b, 0x74, 0xc5, 0x3b, 0xdd, 0xad, 0x83, 0xfa, 0x70, 0xd7,
|
||||
0xa9, 0xd2, 0xca, 0x39, 0x6f, 0x8d, 0xbc, 0xa8, 0x9e, 0x6e, 0x4c, 0x7f, 0x37, 0x39, 0xaa, 0x2d, 0xca, 0x7a, 0xa7, 0x71,
|
||||
0xa2, 0x5a, 0xe9, 0xc9, 0x3a, 0xa8, 0x98, 0xcb, 0xde, 0x7b, 0xeb, 0xba, 0xd0, 0x8c, 0xcc, 0xc4, 0x32, 0xa6, 0x9a, 0x04,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0xfa, 0xc7, 0xaa, 0x5c, 0x35, 0x77, 0xfe, 0xbc, 0x72, 0xa5, 0xc8,
|
||||
0x5e, 0xeb, 0x44, 0x05, 0xad, 0xe2, 0xd6, 0xbe, 0x54, 0xb7, 0xe6, 0xc9, 0x56, 0xe9, 0xe8, 0xe3, 0x79, 0xda, 0xa7, 0x88,
|
||||
0xea, 0x68, 0x09, 0x3f, 0xa3, 0x5e, 0xff, 0x34, 0xb3, 0x3e, 0x8f, 0xfd, 0xec, 0x71, 0x38, 0x54, 0x30, 0x5d, 0xd6, 0x7b,
|
||||
0x5a, 0xcf, 0x68, 0x32, 0x1f, 0x3c, 0x44, 0x46, 0xa8, 0x99, 0x39, 0x8c, 0x26, 0x8f, 0xff, 0x23, 0xa3, 0xfc, 0x21, 0xdd,
|
||||
0x7a, 0xb6, 0xcf, 0x1a, 0x9f, 0xc7, 0xbb, 0x6b, 0x6c, 0xc3, 0xac, 0xad, 0x36, 0x8c, 0x36, 0xa5, 0x08, 0xd0, 0x33, 0x9a,
|
||||
0x89, 0x7f, 0x39, 0x90, 0x37, 0x1d, 0x32, 0x4f, 0xbf, 0xad, 0xc4, 0xd2, 0x1e, 0x3a, 0x76, 0x9b, 0xd2, 0xc8, 0x2c, 0xa6,
|
||||
0x43, 0x96, 0xde, 0xb7, 0xde, 0x1d, 0xa3, 0x62, 0xd9, 0xa4, 0x5e, 0xc9, 0xd6, 0xbe, 0x54, 0x43, 0xe1, 0x60, 0xf9, 0x0c,
|
||||
0x79, 0x47, 0xfe, 0xa4, 0xf8, 0x77, 0xd3, 0xf7, 0x40, 0x6b, 0x48, 0xf6, 0x7c, 0x6e, 0xb4, 0xe2, 0xaa, 0x84, 0xee, 0xbe,
|
||||
0x39, 0x2d, 0xf6, 0x55, 0xde, 0x64, 0x86, 0xdb, 0x5a, 0x07, 0xfb, 0x53, 0x3c, 0xa2, 0x49, 0xe8, 0xa7, 0xc4, 0xbf, 0x06,
|
||||
0xf5, 0x56, 0x3e, 0xcf, 0x26, 0x3b, 0x8b, 0xa8, 0xfd, 0x9a, 0xae, 0x72, 0xae, 0x5b, 0x02, 0xb9, 0x4f, 0x4b, 0x4b, 0xb3,
|
||||
0x98, 0x15, 0xeb, 0xa2, 0x31, 0xec, 0x87, 0xe2, 0x7f, 0x44, 0xb9, 0xf2, 0xf7, 0x1d, 0xa3, 0x38, 0x73, 0xe7, 0x96, 0x8a,
|
||||
0x48, 0xaf, 0x56, 0xa4, 0xbe, 0xe3, 0x55, 0x2d, 0xd6, 0x3a, 0xd8, 0xfd, 0x1d, 0xd1, 0x25, 0xdd, 0xed, 0xa2, 0xf3, 0x75,
|
||||
0x8d, 0x77, 0xb7, 0x8b, 0x8e, 0xad, 0x15, 0xea, 0xb7, 0x3b, 0x57, 0xfa, 0xef, 0x19, 0x5d, 0x46, 0x59, 0x5f, 0x05, 0xfd,
|
||||
0xe0, 0x15, 0x7c, 0x7f, 0xfc, 0x63, 0xaa, 0x8f, 0x12, 0x50, 0x91, 0x5c, 0xeb, 0x69, 0xe8, 0x6f, 0xe9, 0xc6, 0x3a, 0x58,
|
||||
0xae, 0x51, 0x3f, 0x51, 0x49, 0x11, 0xaf, 0xd5, 0xf7, 0xcc, 0xf8, 0xef, 0x69, 0xf5, 0x2c, 0x2f, 0xd1, 0xfb, 0x9d, 0xd0,
|
||||
0x9e, 0xa4, 0x2f, 0xfa, 0x3f, 0xc6, 0xff, 0x1d, 0x15, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x64, 0x07,
|
||||
0x20, 0x5b, 0x6b, 0x52, 0x53, 0x74, 0x35, 0xfa, 0x68, 0x75, 0x7a, 0x12, 0x55, 0xf3, 0xac, 0x7b, 0xf5, 0x3e, 0xc5, 0x7c,
|
||||
0x3a, 0x7b, 0xfe, 0x98, 0xed, 0xe8, 0x7b, 0x15, 0x2f, 0x96, 0x16, 0xa2, 0xba, 0xde, 0xa5, 0x1a, 0xef, 0xf0, 0x21, 0x9e,
|
||||
0x74, 0xfa, 0x75, 0x38, 0xf7, 0xeb, 0x7d, 0x94, 0xa2, 0xa3, 0x1a, 0x1e, 0x2f, 0x99, 0x63, 0xb6, 0x15, 0x5c, 0x5e, 0xc5,
|
||||
0x8b, 0xa5, 0x36, 0xf0, 0xa9, 0x53, 0x9a, 0x68, 0xd1, 0xfd, 0xeb, 0x27, 0xdd, 0xcd, 0xf0, 0x0d, 0xba, 0x5b, 0xef, 0xa3,
|
||||
0x6b, 0x4e, 0x29, 0x1d, 0x48, 0x95, 0x3b, 0x60, 0x75, 0xb2, 0xaa, 0xae, 0x31, 0x2f, 0x01, 0xe5, 0x48, 0x44, 0xd7, 0xe2,
|
||||
0x75, 0x32, 0x53, 0xc7, 0x57, 0x0d, 0x9c, 0xf6, 0x24, 0xf2, 0x39, 0x0d, 0xdd, 0xaf, 0xf7, 0xe9, 0xa6, 0xcb, 0x54, 0x56,
|
||||
0xee, 0x20, 0xe2, 0x03, 0xb7, 0xe7, 0xcf, 0xe3, 0xab, 0xd5, 0xa7, 0x3c, 0x83, 0xbc, 0xc7, 0x17, 0xe9, 0xe3, 0x34, 0x8c,
|
||||
0xec, 0xf8, 0x13, 0x72, 0xf7, 0xbe, 0xac, 0xce, 0xaa, 0x7a, 0x18, 0x37, 0x66, 0x95, 0xb4, 0x72, 0x24, 0xd2, 0xb2, 0xec,
|
||||
0x54, 0x57, 0xcb, 0x3a, 0xfe, 0xdc, 0xdc, 0xbd, 0x37, 0xfe, 0xe3, 0xf6, 0xf8, 0xdb, 0x2a, 0x39, 0x5f, 0x0b, 0xf1, 0xf7,
|
||||
0xc6, 0xbf, 0x27, 0xde, 0xff, 0x63, 0xf1, 0xd7, 0x2a, 0x39, 0x7f, 0xcb, 0x15, 0xf1, 0x1f, 0x66, 0xe5, 0xbc, 0x77, 0x8b,
|
||||
0x7f, 0xb9, 0x59, 0x55, 0x90, 0x5b, 0xc5, 0xf3, 0xfc, 0xf8, 0xc7, 0x54, 0x1d, 0xe5, 0xe6, 0x16, 0xbf, 0x6e, 0xe3, 0x9a,
|
||||
0xf7, 0xcf, 0xaf, 0xe2, 0x79, 0xee, 0xf1, 0x68, 0xfc, 0xf3, 0xe7, 0x38, 0x52, 0x7c, 0xab, 0xda, 0x45, 0x71, 0x01, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x3f, 0x35, 0x49, 0x99, 0x12, 0x75, 0xa8, 0xb9, 0xd7, 0x73, 0xc7, 0xf2, 0x17,
|
||||
0xd2, 0x2d, 0xd9, 0x33, 0xf2, 0x6a, 0xaa, 0x72, 0x7c, 0x80, 0x2c, 0xcd, 0x40, 0x95, 0x1a, 0x1c, 0x7f, 0x06, 0xdc, 0xd6,
|
||||
0x06, 0xb5, 0x80, 0x06, 0xa7, 0x1a, 0x1a, 0x9c, 0xe6, 0xf2, 0xdc, 0xe8, 0x86, 0xbf, 0x90, 0xe5, 0xac, 0x90, 0x39, 0x23,
|
||||
0x3d, 0xee, 0x26, 0x76, 0x45, 0x13, 0x7a, 0xaa, 0x9a, 0x74, 0xfd, 0x6b, 0x9d, 0x49, 0x34, 0x03, 0x1e, 0xd3, 0xe0, 0x34,
|
||||
0x97, 0x06, 0xc7, 0xaa, 0x1d, 0x55, 0x77, 0x6a, 0x73, 0xe9, 0x9c, 0x4a, 0xae, 0x8b, 0x90, 0x6f, 0xdc, 0x7a, 0x05, 0xe6,
|
||||
0xf5, 0x54, 0xd7, 0xfd, 0x16, 0xb6, 0x08, 0xa5, 0x5b, 0xe4, 0x0e, 0x1b, 0x69, 0xd1, 0x7e, 0x10, 0x56, 0xcd, 0xbe, 0x48,
|
||||
0xfd, 0xa2, 0xdc, 0x71, 0x5b, 0x75, 0xf8, 0x8a, 0xc3, 0xd9, 0x2a, 0x33, 0x6b, 0x16, 0x73, 0xaf, 0xd9, 0xae, 0x97, 0x93,
|
||||
0x5b, 0x07, 0x48, 0xb7, 0x14, 0xe9, 0x91, 0x52, 0xcc, 0x4a, 0x54, 0xdd, 0x5d, 0x05, 0x27, 0x5b, 0x3b, 0x54, 0x0c, 0x95,
|
||||
0xe0, 0xfc, 0x7d, 0x29, 0x33, 0x6b, 0x16, 0x73, 0xaf, 0x59, 0x8c, 0xd5, 0x3f, 0xbf, 0x65, 0x84, 0xaa, 0x4a, 0xd9, 0x99,
|
||||
0xb3, 0x7e, 0x89, 0x8b, 0x50, 0x37, 0xf4, 0x36, 0x77, 0xc4, 0x7f, 0x7f, 0xbd, 0xfc, 0x77, 0x86, 0x6b, 0xae, 0x23, 0xef,
|
||||
0x0e, 0x8c, 0x7a, 0x6e, 0x44, 0x94, 0x93, 0x96, 0xc7, 0x99, 0xcf, 0x61, 0xed, 0xec, 0xf8, 0x97, 0x9d, 0xfb, 0xbf, 0x76,
|
||||
0xf1, 0x1a, 0xb7, 0x6a, 0x30, 0xfc, 0xf7, 0xeb, 0x3c, 0xdf, 0xbb, 0x23, 0x2d, 0x76, 0x1d, 0xbe, 0xf3, 0xe2, 0x9f, 0xa9,
|
||||
0x26, 0xb9, 0x56, 0x67, 0x32, 0x92, 0x94, 0x4e, 0x4f, 0x98, 0x91, 0x77, 0xa7, 0xe5, 0xc5, 0xff, 0xa7, 0xa8, 0x49, 0x50,
|
||||
0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xcf, 0xd5, 0xff, 0xf8, 0x3c, 0x78, 0x9e, 0xec, 0xb3, 0x93, 0xe7,
|
||||
0x40, 0x94, 0xad, 0xe2, 0x89, 0xa9, 0xa9, 0x96, 0x03, 0x95, 0xbd, 0xe6, 0xf5, 0x3f, 0x4d, 0xaa, 0x5b, 0x54, 0xed, 0xaa,
|
||||
0x7a, 0x81, 0x22, 0x26, 0xa2, 0xf1, 0x51, 0x47, 0xad, 0xdc, 0xcf, 0x35, 0x2a, 0x1e, 0xdd, 0xdb, 0xd8, 0xd1, 0x66, 0xb5,
|
||||
0x93, 0x9f, 0x58, 0x16, 0x63, 0xf6, 0x55, 0xee, 0x98, 0xf6, 0x48, 0x8d, 0x4f, 0x44, 0x5d, 0x91, 0xab, 0xe2, 0xd1, 0x2b,
|
||||
0xda, 0xa4, 0xc2, 0xc0, 0xae, 0xbf, 0x58, 0x4e, 0x7f, 0x2e, 0xae, 0xc7, 0xdb, 0x6f, 0x54, 0xf2, 0x44, 0xb4, 0x32, 0xdd,
|
||||
0x54, 0xf1, 0x74, 0x57, 0xc4, 0x22, 0x2d, 0x7b, 0xd9, 0xd4, 0x92, 0xa8, 0xa6, 0x3b, 0x37, 0xfe, 0x11, 0x85, 0xc5, 0x13,
|
||||
0x7c, 0x76, 0x8a, 0xe1, 0x72, 0xf2, 0x8e, 0xb5, 0x60, 0xee, 0x8a, 0xff, 0x7b, 0xae, 0x98, 0xed, 0x4a, 0xf1, 0x6e, 0x51,
|
||||
0x1e, 0x41, 0xc5, 0x4a, 0x4e, 0xfc, 0x9f, 0xbd, 0x2e, 0x79, 0x3e, 0x1b, 0xd7, 0x8c, 0x2c, 0xa6, 0x09, 0xbb, 0x22, 0x63,
|
||||
0x3d, 0x12, 0xaf, 0x98, 0xbb, 0x35, 0x3e, 0x11, 0x9f, 0x8d, 0xab, 0xd4, 0x47, 0x51, 0x9d, 0xc5, 0x3d, 0x55, 0x9d, 0x62,
|
||||
0x57, 0xcc, 0xdd, 0x1a, 0x9f, 0x27, 0xab, 0x78, 0xfc, 0x6a, 0x3a, 0xad, 0x58, 0x87, 0x77, 0x43, 0xc7, 0xb2, 0xb1, 0x3a,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xd6, 0x3f,
|
||||
0xac, 0x03, 0xf1, 0x87, 0x1f, 0x1b, 0xff, 0x7f, 0x01 };
|
||||
|
||||
// Font glyphs rectangles data (on atlas)
|
||||
static const Rectangle bluishFontRecs[189] = {
|
||||
{ 4, 4, 5 , 10 },
|
||||
{ 17, 4, 2 , 8 },
|
||||
{ 27, 4, 4 , 3 },
|
||||
{ 39, 4, 6 , 8 },
|
||||
{ 53, 4, 5 , 10 },
|
||||
{ 66, 4, 6 , 8 },
|
||||
{ 80, 4, 5 , 10 },
|
||||
{ 93, 4, 2 , 3 },
|
||||
{ 103, 4, 3 , 8 },
|
||||
{ 114, 4, 3 , 8 },
|
||||
{ 125, 4, 6 , 6 },
|
||||
{ 139, 4, 6 , 6 },
|
||||
{ 153, 4, 2 , 3 },
|
||||
{ 163, 4, 5 , 2 },
|
||||
{ 176, 4, 2 , 2 },
|
||||
{ 186, 4, 6 , 8 },
|
||||
{ 200, 4, 5 , 8 },
|
||||
{ 213, 4, 3 , 8 },
|
||||
{ 224, 4, 5 , 8 },
|
||||
{ 237, 4, 5 , 8 },
|
||||
{ 4, 22, 5 , 8 },
|
||||
{ 17, 22, 5 , 8 },
|
||||
{ 30, 22, 5 , 8 },
|
||||
{ 43, 22, 5 , 8 },
|
||||
{ 56, 22, 5 , 8 },
|
||||
{ 69, 22, 5 , 8 },
|
||||
{ 82, 22, 2 , 8 },
|
||||
{ 92, 22, 2 , 9 },
|
||||
{ 102, 22, 4 , 6 },
|
||||
{ 114, 22, 5 , 4 },
|
||||
{ 127, 22, 4 , 6 },
|
||||
{ 139, 22, 5 , 8 },
|
||||
{ 152, 22, 6 , 8 },
|
||||
{ 166, 22, 5 , 8 },
|
||||
{ 179, 22, 5 , 8 },
|
||||
{ 192, 22, 5 , 8 },
|
||||
{ 205, 22, 5 , 8 },
|
||||
{ 218, 22, 5 , 8 },
|
||||
{ 231, 22, 5 , 8 },
|
||||
{ 4, 40, 5 , 8 },
|
||||
{ 17, 40, 5 , 8 },
|
||||
{ 30, 40, 4 , 8 },
|
||||
{ 42, 40, 5 , 8 },
|
||||
{ 55, 40, 5 , 8 },
|
||||
{ 68, 40, 5 , 8 },
|
||||
{ 81, 40, 8 , 8 },
|
||||
{ 97, 40, 5 , 8 },
|
||||
{ 110, 40, 5 , 8 },
|
||||
{ 123, 40, 5 , 8 },
|
||||
{ 136, 40, 5 , 9 },
|
||||
{ 149, 40, 5 , 8 },
|
||||
{ 162, 40, 5 , 8 },
|
||||
{ 175, 40, 6 , 8 },
|
||||
{ 189, 40, 5 , 8 },
|
||||
{ 202, 40, 5 , 8 },
|
||||
{ 215, 40, 8 , 8 },
|
||||
{ 231, 40, 5 , 8 },
|
||||
{ 4, 58, 5 , 8 },
|
||||
{ 17, 58, 5 , 8 },
|
||||
{ 30, 58, 3 , 8 },
|
||||
{ 41, 58, 6 , 8 },
|
||||
{ 55, 58, 3 , 8 },
|
||||
{ 66, 58, 6 , 4 },
|
||||
{ 80, 58, 5 , 1 },
|
||||
{ 93, 58, 2 , 3 },
|
||||
{ 103, 58, 5 , 6 },
|
||||
{ 116, 58, 5 , 8 },
|
||||
{ 129, 58, 5 , 6 },
|
||||
{ 142, 58, 5 , 8 },
|
||||
{ 155, 58, 5 , 6 },
|
||||
{ 168, 58, 5 , 8 },
|
||||
{ 181, 58, 5 , 7 },
|
||||
{ 194, 58, 5 , 8 },
|
||||
{ 207, 58, 2 , 8 },
|
||||
{ 217, 58, 3 , 9 },
|
||||
{ 228, 58, 5 , 8 },
|
||||
{ 241, 58, 2 , 8 },
|
||||
{ 4, 76, 8 , 6 },
|
||||
{ 20, 76, 5 , 6 },
|
||||
{ 33, 76, 5 , 6 },
|
||||
{ 46, 76, 5 , 7 },
|
||||
{ 59, 76, 5 , 7 },
|
||||
{ 72, 76, 5 , 6 },
|
||||
{ 85, 76, 5 , 6 },
|
||||
{ 98, 76, 5 , 8 },
|
||||
{ 111, 76, 5 , 6 },
|
||||
{ 124, 76, 5 , 6 },
|
||||
{ 137, 76, 8 , 6 },
|
||||
{ 153, 76, 5 , 6 },
|
||||
{ 166, 76, 5 , 7 },
|
||||
{ 179, 76, 5 , 6 },
|
||||
{ 192, 76, 4 , 8 },
|
||||
{ 204, 76, 2 , 10 },
|
||||
{ 214, 76, 4 , 8 },
|
||||
{ 226, 76, 6 , 4 },
|
||||
{ 240, 76, 2 , 8 },
|
||||
{ 4, 94, 5 , 8 },
|
||||
{ 17, 94, 5 , 8 },
|
||||
{ 30, 94, 0 , 0 },
|
||||
{ 38, 94, 6 , 8 },
|
||||
{ 52, 94, 5 , 10 },
|
||||
{ 65, 94, 5 , 10 },
|
||||
{ 78, 94, 5 , 9 },
|
||||
{ 91, 94, 7 , 8 },
|
||||
{ 106, 94, 4 , 6 },
|
||||
{ 118, 94, 5 , 4 },
|
||||
{ 131, 94, 5 , 3 },
|
||||
{ 144, 94, 7 , 8 },
|
||||
{ 159, 94, 5 , 2 },
|
||||
{ 172, 94, 4 , 4 },
|
||||
{ 184, 94, 6 , 8 },
|
||||
{ 198, 94, 4 , 6 },
|
||||
{ 210, 94, 4 , 6 },
|
||||
{ 222, 94, 0 , 0 },
|
||||
{ 230, 94, 5 , 9 },
|
||||
{ 4, 112, 6 , 8 },
|
||||
{ 18, 112, 2 , 2 },
|
||||
{ 28, 112, 0 , 0 },
|
||||
{ 36, 112, 3 , 6 },
|
||||
{ 47, 112, 4 , 6 },
|
||||
{ 59, 112, 5 , 4 },
|
||||
{ 72, 112, 6 , 8 },
|
||||
{ 86, 112, 6 , 6 },
|
||||
{ 100, 112, 5 , 10 },
|
||||
{ 113, 112, 5 , 8 },
|
||||
{ 126, 112, 5 , 10 },
|
||||
{ 139, 112, 5 , 10 },
|
||||
{ 152, 112, 5 , 10 },
|
||||
{ 165, 112, 5 , 10 },
|
||||
{ 178, 112, 5 , 10 },
|
||||
{ 191, 112, 5 , 10 },
|
||||
{ 204, 112, 6 , 8 },
|
||||
{ 218, 112, 5 , 9 },
|
||||
{ 231, 112, 5 , 10 },
|
||||
{ 4, 130, 5 , 10 },
|
||||
{ 17, 130, 5 , 10 },
|
||||
{ 30, 130, 5 , 10 },
|
||||
{ 43, 130, 4 , 10 },
|
||||
{ 55, 130, 4 , 10 },
|
||||
{ 67, 130, 4 , 10 },
|
||||
{ 79, 130, 4 , 10 },
|
||||
{ 91, 130, 6 , 8 },
|
||||
{ 105, 130, 5 , 10 },
|
||||
{ 118, 130, 5 , 10 },
|
||||
{ 131, 130, 5 , 10 },
|
||||
{ 144, 130, 5 , 10 },
|
||||
{ 157, 130, 5 , 10 },
|
||||
{ 170, 130, 5 , 10 },
|
||||
{ 183, 130, 4 , 4 },
|
||||
{ 195, 130, 5 , 10 },
|
||||
{ 208, 130, 5 , 10 },
|
||||
{ 221, 130, 5 , 10 },
|
||||
{ 234, 130, 5 , 10 },
|
||||
{ 4, 148, 5 , 10 },
|
||||
{ 17, 148, 5 , 10 },
|
||||
{ 30, 148, 5 , 8 },
|
||||
{ 43, 148, 5 , 8 },
|
||||
{ 56, 148, 5 , 9 },
|
||||
{ 69, 148, 5 , 9 },
|
||||
{ 82, 148, 5 , 9 },
|
||||
{ 95, 148, 5 , 9 },
|
||||
{ 108, 148, 5 , 8 },
|
||||
{ 121, 148, 5 , 10 },
|
||||
{ 134, 148, 6 , 6 },
|
||||
{ 148, 148, 5 , 7 },
|
||||
{ 161, 148, 5 , 9 },
|
||||
{ 174, 148, 5 , 9 },
|
||||
{ 187, 148, 5 , 9 },
|
||||
{ 200, 148, 5 , 8 },
|
||||
{ 213, 148, 3 , 9 },
|
||||
{ 224, 148, 3 , 9 },
|
||||
{ 235, 148, 4 , 9 },
|
||||
{ 4, 166, 4 , 8 },
|
||||
{ 16, 166, 5 , 9 },
|
||||
{ 29, 166, 5 , 9 },
|
||||
{ 42, 166, 5 , 9 },
|
||||
{ 55, 166, 5 , 9 },
|
||||
{ 68, 166, 5 , 9 },
|
||||
{ 81, 166, 5 , 9 },
|
||||
{ 94, 166, 5 , 8 },
|
||||
{ 107, 166, 4 , 6 },
|
||||
{ 119, 166, 5 , 8 },
|
||||
{ 132, 166, 5 , 9 },
|
||||
{ 145, 166, 5 , 9 },
|
||||
{ 158, 166, 5 , 9 },
|
||||
{ 171, 166, 5 , 8 },
|
||||
{ 184, 166, 5 , 10 },
|
||||
{ 197, 166, 5 , 10 },
|
||||
{ 210, 166, 5 , 9 },
|
||||
};
|
||||
|
||||
// Font glyphs info data
|
||||
// NOTE: No glyphs.image data provided
|
||||
static const GlyphInfo bluishFontGlyphs[189] = {
|
||||
{ 32, 0, 0, 5, { 0 }},
|
||||
{ 33, 0, 1, 2, { 0 }},
|
||||
{ 34, 0, 1, 4, { 0 }},
|
||||
{ 35, 0, 1, 6, { 0 }},
|
||||
{ 36, 0, 0, 5, { 0 }},
|
||||
{ 37, 0, 1, 6, { 0 }},
|
||||
{ 38, 0, 0, 5, { 0 }},
|
||||
{ 39, 0, 1, 2, { 0 }},
|
||||
{ 40, 0, 1, 3, { 0 }},
|
||||
{ 41, 0, 1, 3, { 0 }},
|
||||
{ 42, 0, 1, 6, { 0 }},
|
||||
{ 43, 0, 2, 6, { 0 }},
|
||||
{ 44, 0, 7, 2, { 0 }},
|
||||
{ 45, 0, 4, 5, { 0 }},
|
||||
{ 46, 0, 7, 2, { 0 }},
|
||||
{ 47, 0, 1, 6, { 0 }},
|
||||
{ 48, 0, 1, 5, { 0 }},
|
||||
{ 49, 0, 1, 3, { 0 }},
|
||||
{ 50, 0, 1, 5, { 0 }},
|
||||
{ 51, 0, 1, 5, { 0 }},
|
||||
{ 52, 0, 1, 5, { 0 }},
|
||||
{ 53, 0, 1, 5, { 0 }},
|
||||
{ 54, 0, 1, 5, { 0 }},
|
||||
{ 55, 0, 1, 5, { 0 }},
|
||||
{ 56, 0, 1, 5, { 0 }},
|
||||
{ 57, 0, 1, 5, { 0 }},
|
||||
{ 58, 0, 1, 2, { 0 }},
|
||||
{ 59, 0, 1, 2, { 0 }},
|
||||
{ 60, 0, 2, 4, { 0 }},
|
||||
{ 61, 0, 3, 5, { 0 }},
|
||||
{ 62, 0, 2, 4, { 0 }},
|
||||
{ 63, 0, 1, 5, { 0 }},
|
||||
{ 64, 0, 1, 6, { 0 }},
|
||||
{ 65, 0, 1, 5, { 0 }},
|
||||
{ 66, 0, 1, 5, { 0 }},
|
||||
{ 67, 0, 1, 5, { 0 }},
|
||||
{ 68, 0, 1, 5, { 0 }},
|
||||
{ 69, 0, 1, 5, { 0 }},
|
||||
{ 70, 0, 1, 5, { 0 }},
|
||||
{ 71, 0, 1, 5, { 0 }},
|
||||
{ 72, 0, 1, 5, { 0 }},
|
||||
{ 73, 0, 1, 4, { 0 }},
|
||||
{ 74, 0, 1, 5, { 0 }},
|
||||
{ 75, 0, 1, 5, { 0 }},
|
||||
{ 76, 0, 1, 5, { 0 }},
|
||||
{ 77, 0, 1, 8, { 0 }},
|
||||
{ 78, 0, 1, 5, { 0 }},
|
||||
{ 79, 0, 1, 5, { 0 }},
|
||||
{ 80, 0, 1, 5, { 0 }},
|
||||
{ 81, 0, 1, 5, { 0 }},
|
||||
{ 82, 0, 1, 5, { 0 }},
|
||||
{ 83, 0, 1, 5, { 0 }},
|
||||
{ 84, 0, 1, 6, { 0 }},
|
||||
{ 85, 0, 1, 5, { 0 }},
|
||||
{ 86, 0, 1, 5, { 0 }},
|
||||
{ 87, 0, 1, 8, { 0 }},
|
||||
{ 88, 0, 1, 5, { 0 }},
|
||||
{ 89, 0, 1, 5, { 0 }},
|
||||
{ 90, 0, 1, 5, { 0 }},
|
||||
{ 91, 0, 1, 3, { 0 }},
|
||||
{ 92, 0, 1, 6, { 0 }},
|
||||
{ 93, 0, 1, 3, { 0 }},
|
||||
{ 94, 0, 1, 6, { 0 }},
|
||||
{ 95, 0, 9, 5, { 0 }},
|
||||
{ 96, 0, 1, 2, { 0 }},
|
||||
{ 97, 0, 3, 5, { 0 }},
|
||||
{ 98, 0, 1, 5, { 0 }},
|
||||
{ 99, 0, 3, 5, { 0 }},
|
||||
{ 100, 0, 1, 5, { 0 }},
|
||||
{ 101, 0, 3, 5, { 0 }},
|
||||
{ 102, 0, 1, 5, { 0 }},
|
||||
{ 103, 0, 3, 5, { 0 }},
|
||||
{ 104, 0, 1, 5, { 0 }},
|
||||
{ 105, 0, 1, 2, { 0 }},
|
||||
{ 106, 0, 1, 3, { 0 }},
|
||||
{ 107, 0, 1, 5, { 0 }},
|
||||
{ 108, 0, 1, 2, { 0 }},
|
||||
{ 109, 0, 3, 8, { 0 }},
|
||||
{ 110, 0, 3, 5, { 0 }},
|
||||
{ 111, 0, 3, 5, { 0 }},
|
||||
{ 112, 0, 3, 5, { 0 }},
|
||||
{ 113, 0, 3, 5, { 0 }},
|
||||
{ 114, 0, 3, 5, { 0 }},
|
||||
{ 115, 0, 3, 5, { 0 }},
|
||||
{ 116, 0, 1, 5, { 0 }},
|
||||
{ 117, 0, 3, 5, { 0 }},
|
||||
{ 118, 0, 3, 5, { 0 }},
|
||||
{ 119, 0, 3, 8, { 0 }},
|
||||
{ 120, 0, 3, 5, { 0 }},
|
||||
{ 121, 0, 3, 5, { 0 }},
|
||||
{ 122, 0, 3, 5, { 0 }},
|
||||
{ 123, 0, 1, 4, { 0 }},
|
||||
{ 124, 0, 0, 2, { 0 }},
|
||||
{ 125, 0, 1, 4, { 0 }},
|
||||
{ 126, 0, 3, 6, { 0 }},
|
||||
{ 161, 0, 1, 2, { 0 }},
|
||||
{ 162, 0, 2, 5, { 0 }},
|
||||
{ 163, 0, 1, 5, { 0 }},
|
||||
{ 8364, 0, 0, 0, { 0 }},
|
||||
{ 165, 0, 1, 6, { 0 }},
|
||||
{ 352, 0, -1, 5, { 0 }},
|
||||
{ 167, 0, 0, 5, { 0 }},
|
||||
{ 353, 0, 0, 5, { 0 }},
|
||||
{ 169, 0, 1, 7, { 0 }},
|
||||
{ 170, 0, -1, 4, { 0 }},
|
||||
{ 171, 0, 3, 5, { 0 }},
|
||||
{ 172, 0, 4, 5, { 0 }},
|
||||
{ 174, 0, 1, 7, { 0 }},
|
||||
{ 175, 0, -1, 5, { 0 }},
|
||||
{ 176, 0, -1, 4, { 0 }},
|
||||
{ 177, 0, 1, 6, { 0 }},
|
||||
{ 178, 0, -1, 4, { 0 }},
|
||||
{ 179, 0, -1, 4, { 0 }},
|
||||
{ 381, 0, 0, 0, { 0 }},
|
||||
{ 181, 0, 1, 5, { 0 }},
|
||||
{ 182, 0, 1, 6, { 0 }},
|
||||
{ 183, 0, 4, 2, { 0 }},
|
||||
{ 382, 0, 0, 0, { 0 }},
|
||||
{ 185, 0, -1, 3, { 0 }},
|
||||
{ 186, 0, -1, 4, { 0 }},
|
||||
{ 187, 0, 3, 5, { 0 }},
|
||||
{ 338, 0, 1, 6, { 0 }},
|
||||
{ 339, 0, 3, 6, { 0 }},
|
||||
{ 376, 0, -1, 5, { 0 }},
|
||||
{ 191, 0, 1, 5, { 0 }},
|
||||
{ 192, 0, -1, 5, { 0 }},
|
||||
{ 193, 0, -1, 5, { 0 }},
|
||||
{ 194, 0, -1, 5, { 0 }},
|
||||
{ 195, 0, -1, 5, { 0 }},
|
||||
{ 196, 0, -1, 5, { 0 }},
|
||||
{ 197, 0, -1, 5, { 0 }},
|
||||
{ 198, 0, 1, 6, { 0 }},
|
||||
{ 199, 0, 1, 5, { 0 }},
|
||||
{ 200, 0, -1, 5, { 0 }},
|
||||
{ 201, 0, -1, 5, { 0 }},
|
||||
{ 202, 0, -1, 5, { 0 }},
|
||||
{ 203, 0, -1, 5, { 0 }},
|
||||
{ 204, 0, -1, 4, { 0 }},
|
||||
{ 205, 0, -1, 4, { 0 }},
|
||||
{ 206, 0, -1, 4, { 0 }},
|
||||
{ 207, 0, -1, 4, { 0 }},
|
||||
{ 208, 0, 1, 6, { 0 }},
|
||||
{ 209, 0, -1, 5, { 0 }},
|
||||
{ 210, 0, -1, 5, { 0 }},
|
||||
{ 211, 0, -1, 5, { 0 }},
|
||||
{ 212, 0, -1, 5, { 0 }},
|
||||
{ 213, 0, -1, 5, { 0 }},
|
||||
{ 214, 0, -1, 5, { 0 }},
|
||||
{ 215, 0, 3, 4, { 0 }},
|
||||
{ 216, 0, 0, 5, { 0 }},
|
||||
{ 217, 0, -1, 5, { 0 }},
|
||||
{ 218, 0, -1, 5, { 0 }},
|
||||
{ 219, 0, -1, 5, { 0 }},
|
||||
{ 220, 0, -1, 5, { 0 }},
|
||||
{ 221, 0, -1, 5, { 0 }},
|
||||
{ 222, 0, 1, 5, { 0 }},
|
||||
{ 223, 0, 1, 5, { 0 }},
|
||||
{ 224, 0, 0, 5, { 0 }},
|
||||
{ 225, 0, 0, 5, { 0 }},
|
||||
{ 226, 0, 0, 5, { 0 }},
|
||||
{ 227, 0, 0, 5, { 0 }},
|
||||
{ 228, 0, 1, 5, { 0 }},
|
||||
{ 229, 0, -1, 5, { 0 }},
|
||||
{ 230, 0, 3, 6, { 0 }},
|
||||
{ 231, 0, 3, 5, { 0 }},
|
||||
{ 232, 0, 0, 5, { 0 }},
|
||||
{ 233, 0, 0, 5, { 0 }},
|
||||
{ 234, 0, 0, 5, { 0 }},
|
||||
{ 235, 0, 1, 5, { 0 }},
|
||||
{ 236, 0, 0, 3, { 0 }},
|
||||
{ 237, 0, 0, 2, { 0 }},
|
||||
{ 238, 0, 0, 3, { 0 }},
|
||||
{ 239, 0, 1, 3, { 0 }},
|
||||
{ 240, 0, 0, 5, { 0 }},
|
||||
{ 241, 0, 0, 5, { 0 }},
|
||||
{ 242, 0, 0, 5, { 0 }},
|
||||
{ 243, 0, 0, 5, { 0 }},
|
||||
{ 244, 0, 0, 5, { 0 }},
|
||||
{ 245, 0, 0, 5, { 0 }},
|
||||
{ 246, 0, 1, 5, { 0 }},
|
||||
{ 247, 0, 2, 4, { 0 }},
|
||||
{ 248, 0, 2, 5, { 0 }},
|
||||
{ 249, 0, 0, 5, { 0 }},
|
||||
{ 250, 0, 0, 5, { 0 }},
|
||||
{ 251, 0, 0, 5, { 0 }},
|
||||
{ 252, 0, 1, 5, { 0 }},
|
||||
{ 253, 0, 0, 5, { 0 }},
|
||||
{ 254, 0, 0, 5, { 0 }},
|
||||
{ 255, 0, 1, 5, { 0 }},
|
||||
};
|
||||
|
||||
// Style loading function: Bluish
|
||||
static void GuiLoadStyleBluish(void)
|
||||
{
|
||||
// Load style properties provided
|
||||
// NOTE: Default properties are propagated
|
||||
for (int i = 0; i < BLUISH_STYLE_PROPS_COUNT; i++)
|
||||
{
|
||||
GuiSetStyle(bluishStyleProps[i].controlId, bluishStyleProps[i].propertyId, bluishStyleProps[i].propertyValue);
|
||||
}
|
||||
|
||||
// Custom font loading
|
||||
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
|
||||
int bluishFontDataSize = 0;
|
||||
unsigned char *data = DecompressData(bluishFontData, BLUISH_STYLE_FONT_ATLAS_COMP_SIZE, &bluishFontDataSize);
|
||||
Image imFont = { data, 256, 256, 1, 2 };
|
||||
|
||||
Font font = { 0 };
|
||||
font.baseSize = 10;
|
||||
font.glyphCount = 189;
|
||||
|
||||
// Load texture from image
|
||||
font.texture = LoadTextureFromImage(imFont);
|
||||
UnloadImage(imFont); // Uncompressed image data can be unloaded from memory
|
||||
|
||||
// Copy char recs data from global fontRecs
|
||||
// NOTE: Required to avoid issues if trying to free font
|
||||
font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle));
|
||||
memcpy(font.recs, bluishFontRecs, font.glyphCount*sizeof(Rectangle));
|
||||
|
||||
// Copy font char info data from global fontChars
|
||||
// NOTE: Required to avoid issues if trying to free font
|
||||
font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo));
|
||||
memcpy(font.glyphs, bluishFontGlyphs, font.glyphCount*sizeof(GlyphInfo));
|
||||
|
||||
GuiSetFont(font);
|
||||
|
||||
// Setup a white rectangle on the font to be used on shapes drawing,
|
||||
// it makes possible to draw shapes and text (full UI) in a single draw call
|
||||
Rectangle fontWhiteRec = { 254, 254, 1, 1 };
|
||||
SetShapesTexture(font.texture, fontWhiteRec);
|
||||
|
||||
//-----------------------------------------------------------------
|
||||
|
||||
// TODO: Custom user style setup: Set specific properties here (if required)
|
||||
// i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT
|
||||
}
|
||||
@ -1,582 +0,0 @@
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// StyleAsCode exporter v2.0 - Style data exported as a values array //
|
||||
// //
|
||||
// USAGE: On init call: GuiLoadStyleCandy(); //
|
||||
// //
|
||||
// more info and bugs-report: github.com/raysan5/raygui //
|
||||
// feedback and support: ray[at]raylibtech.com //
|
||||
// //
|
||||
// Copyright (c) 2020-2025 raylib technologies (@raylibtech) //
|
||||
// //
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#define CANDY_STYLE_PROPS_COUNT 17
|
||||
|
||||
// Custom style name: Candy
|
||||
static const GuiStyleProp candyStyleProps[CANDY_STYLE_PROPS_COUNT] = {
|
||||
{ 0, 0, (int)0xe58b68ff }, // DEFAULT_BORDER_COLOR_NORMAL
|
||||
{ 0, 1, (int)0xfeda96ff }, // DEFAULT_BASE_COLOR_NORMAL
|
||||
{ 0, 2, (int)0xe59b5fff }, // DEFAULT_TEXT_COLOR_NORMAL
|
||||
{ 0, 3, (int)0xee813fff }, // DEFAULT_BORDER_COLOR_FOCUSED
|
||||
{ 0, 4, (int)0xfcd85bff }, // DEFAULT_BASE_COLOR_FOCUSED
|
||||
{ 0, 5, (int)0xfc6955ff }, // DEFAULT_TEXT_COLOR_FOCUSED
|
||||
{ 0, 6, (int)0xb34848ff }, // DEFAULT_BORDER_COLOR_PRESSED
|
||||
{ 0, 7, (int)0xeb7272ff }, // DEFAULT_BASE_COLOR_PRESSED
|
||||
{ 0, 8, (int)0xbd4a4aff }, // DEFAULT_TEXT_COLOR_PRESSED
|
||||
{ 0, 9, (int)0x94795dff }, // DEFAULT_BORDER_COLOR_DISABLED
|
||||
{ 0, 10, (int)0xc2a37aff }, // DEFAULT_BASE_COLOR_DISABLED
|
||||
{ 0, 11, (int)0x9c8369ff }, // DEFAULT_TEXT_COLOR_DISABLED
|
||||
{ 0, 16, (int)0x0000000f }, // DEFAULT_TEXT_SIZE
|
||||
{ 0, 17, (int)0x00000000 }, // DEFAULT_TEXT_SPACING
|
||||
{ 0, 18, (int)0xd77575ff }, // DEFAULT_LINE_COLOR
|
||||
{ 0, 19, (int)0xfff5e1ff }, // DEFAULT_BACKGROUND_COLOR
|
||||
{ 0, 20, (int)0x00000007 }, // DEFAULT_TEXT_LINE_SPACING
|
||||
};
|
||||
|
||||
// WARNING: This style uses a custom font: "v5easter.ttf" (size: 15, spacing: 0)
|
||||
|
||||
#define CANDY_STYLE_FONT_ATLAS_COMP_SIZE 2110
|
||||
|
||||
// Font atlas image pixels data: DEFLATE compressed
|
||||
static unsigned char candyFontData[CANDY_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed,
|
||||
0xdd, 0x5b, 0x76, 0xa4, 0x36, 0x10, 0x00, 0x50, 0xad, 0x2b, 0xfb, 0xdf, 0x97, 0x72, 0x92, 0x7c, 0xe4, 0xcc, 0x8c, 0x1b,
|
||||
0x54, 0xa5, 0x12, 0x08, 0xfa, 0xfa, 0xfe, 0x19, 0xbb, 0x1b, 0x10, 0xa5, 0x07, 0xa0, 0x52, 0x6f, 0x00, 0x00, 0x00, 0xc0,
|
||||
0x97, 0xfb, 0xe7, 0xe7, 0xcf, 0xdf, 0xb5, 0x1f, 0x7e, 0xfb, 0xff, 0xdf, 0xf6, 0x1f, 0xb7, 0x1e, 0x6d, 0xc9, 0xff, 0xe7,
|
||||
0xf1, 0x9e, 0x8c, 0x7d, 0x42, 0x3b, 0xd8, 0x72, 0xbe, 0xcf, 0xbf, 0xff, 0xae, 0x97, 0x7c, 0xfb, 0xa7, 0xcf, 0x39, 0xdb,
|
||||
0xa3, 0xcc, 0xb6, 0xa3, 0x4f, 0xed, 0x07, 0xc7, 0xd4, 0x06, 0xb6, 0xf4, 0xd4, 0xd1, 0xf5, 0xe9, 0x52, 0x8d, 0x95, 0xce,
|
||||
0xf9, 0xf1, 0xb7, 0xf0, 0x31, 0xb6, 0x05, 0xdb, 0xfa, 0x64, 0x19, 0xaf, 0x8c, 0xff, 0xdf, 0x7f, 0x2a, 0xe3, 0xff, 0xf8,
|
||||
0x33, 0x67, 0xae, 0x89, 0xff, 0x8f, 0xa6, 0x17, 0xc4, 0x7f, 0xbc, 0x16, 0x39, 0x3e, 0x82, 0xcf, 0x57, 0x71, 0x0b, 0xff,
|
||||
0xcf, 0x79, 0xfd, 0x5a, 0xf9, 0xa9, 0x2b, 0xb7, 0x8d, 0x45, 0xed, 0xfc, 0x75, 0x7e, 0xb6, 0x37, 0x73, 0x65, 0x78, 0xe5,
|
||||
0xb6, 0xda, 0xf8, 0x3f, 0xfb, 0xdb, 0x6c, 0xcd, 0x9e, 0xef, 0x1d, 0x8c, 0xb6, 0xe6, 0x3d, 0x74, 0xed, 0x9f, 0xb7, 0x62,
|
||||
0x35, 0x67, 0x38, 0x7a, 0xc4, 0xc7, 0x75, 0xc9, 0xd9, 0xd6, 0xf9, 0x36, 0x37, 0x72, 0x6d, 0xdc, 0x71, 0x15, 0x9f, 0x97,
|
||||
0x66, 0x45, 0xbb, 0xd4, 0x7f, 0x39, 0xdb, 0xe2, 0x7f, 0xf4, 0xaa, 0xed, 0x8b, 0x5b, 0xda, 0x16, 0x6e, 0x69, 0x73, 0x7d,
|
||||
0x96, 0xba, 0x33, 0x5c, 0x15, 0xff, 0x7d, 0x22, 0xfa, 0x5b, 0xa2, 0xc7, 0x79, 0x5c, 0x6b, 0x9f, 0xed, 0x7f, 0xf6, 0x2a,
|
||||
0xa9, 0xbd, 0x66, 0x67, 0xe3, 0xff, 0xb8, 0x3f, 0xdc, 0x0e, 0xeb, 0x9b, 0xeb, 0x7a, 0x5c, 0x3b, 0xc5, 0x7f, 0xb6, 0x87,
|
||||
0x3c, 0x3e, 0xba, 0xa9, 0x6b, 0xff, 0xd7, 0xc7, 0xff, 0x59, 0x44, 0xf6, 0xe0, 0x48, 0xb5, 0xb6, 0x35, 0x1e, 0x19, 0x4f,
|
||||
0x67, 0x6b, 0xf4, 0xf8, 0x18, 0xf7, 0xfa, 0xfe, 0xff, 0xf9, 0xb8, 0xb1, 0x2f, 0x1b, 0x39, 0xd5, 0x47, 0xd8, 0xbe, 0xfd,
|
||||
0xff, 0xb1, 0x7e, 0xc1, 0x9a, 0xfe, 0xff, 0xd9, 0xf8, 0xbf, 0x5d, 0xde, 0xfa, 0x9f, 0x45, 0x56, 0xbe, 0xf4, 0x7b, 0xaa,
|
||||
0x07, 0x34, 0x77, 0x57, 0x21, 0x57, 0x9e, 0x73, 0xf1, 0xbf, 0xa2, 0x0f, 0x10, 0x1d, 0xfd, 0xbd, 0xa3, 0xff, 0x9f, 0x39,
|
||||
0x83, 0xd9, 0xfb, 0xcc, 0x55, 0x47, 0x16, 0xbf, 0xcf, 0x7f, 0xdf, 0x19, 0xab, 0xab, 0xe7, 0x67, 0xcf, 0x60, 0xfd, 0xa7,
|
||||
0xe6, 0x7a, 0xd5, 0xd1, 0xab, 0xb8, 0xdf, 0xfa, 0x6c, 0xac, 0x3f, 0xe2, 0xce, 0xe9, 0x15, 0xed, 0xff, 0xd9, 0xfd, 0xff,
|
||||
0x99, 0xbb, 0x03, 0xb1, 0x27, 0x1b, 0x7d, 0xc3, 0x6b, 0x45, 0xfc, 0x3f, 0xa5, 0x15, 0xab, 0xea, 0x55, 0xbb, 0xff, 0x97,
|
||||
0x79, 0xa6, 0x5d, 0xd1, 0x9f, 0x7b, 0x4a, 0xfc, 0xf7, 0x81, 0xda, 0x74, 0x7c, 0x4b, 0xfe, 0x89, 0xfb, 0xaa, 0xb7, 0x0a,
|
||||
0xce, 0x9e, 0x36, 0x5e, 0xf7, 0x14, 0x7b, 0xc7, 0xf8, 0x7f, 0xc6, 0xf3, 0xff, 0x3d, 0xce, 0xe5, 0xda, 0x91, 0xdc, 0x8e,
|
||||
0xf1, 0x0f, 0xdf, 0xf1, 0x36, 0xe1, 0x75, 0x6f, 0x2d, 0x8a, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x9e, 0x3e, 0x3b, 0x27, 0x9f, 0x21, 0x32, 0x36, 0xe7, 0xa6, 0x2f, 0xc9, 0x8b, 0x94, 0x9b, 0x1b, 0x7d,
|
||||
0x6d, 0x0e, 0xe7, 0x6c, 0xd6, 0xec, 0xb9, 0x79, 0xe1, 0x9f, 0xf3, 0x09, 0xcd, 0x7c, 0xee, 0xf1, 0x5c, 0xe4, 0xc8, 0xbc,
|
||||
0xec, 0x6c, 0xae, 0xf3, 0x68, 0x4e, 0xa0, 0x4c, 0xee, 0xa4, 0xd9, 0xdc, 0xe9, 0xf1, 0x23, 0xce, 0xcc, 0x60, 0x9d, 0x9d,
|
||||
0xf3, 0x76, 0x55, 0xc6, 0xe6, 0x6c, 0x9c, 0x8e, 0x65, 0xbd, 0xed, 0xe1, 0x4c, 0x75, 0xbb, 0xe5, 0x69, 0xa8, 0xce, 0x9a,
|
||||
0xb1, 0x32, 0xfe, 0xdb, 0x50, 0x6e, 0xec, 0xb1, 0xf9, 0xce, 0xbd, 0x70, 0x46, 0xfb, 0x75, 0x39, 0xf7, 0xda, 0x74, 0x99,
|
||||
0x44, 0x5b, 0xaa, 0xf7, 0xc7, 0x7f, 0xf6, 0xd8, 0xcf, 0xce, 0x6a, 0xdf, 0x36, 0x8b, 0xfd, 0x9d, 0xf1, 0x9f, 0xed, 0xdb,
|
||||
0x1d, 0xb7, 0x7c, 0xf1, 0x8c, 0x07, 0xd7, 0x64, 0xb4, 0xe9, 0x1b, 0xc5, 0x7f, 0xfc, 0xdb, 0x56, 0xce, 0x61, 0x9f, 0x6b,
|
||||
0x7b, 0x7b, 0x59, 0xfc, 0xe7, 0xfb, 0x3e, 0xbb, 0xb5, 0xf1, 0xb5, 0x59, 0x73, 0xd6, 0xc5, 0x7f, 0x2b, 0xcf, 0xca, 0xb4,
|
||||
0x67, 0xfc, 0x8f, 0xb4, 0x0f, 0x99, 0xb1, 0x41, 0xfc, 0x3f, 0xb3, 0x35, 0x6e, 0xf4, 0xdb, 0x32, 0xed, 0xff, 0xf1, 0x51,
|
||||
0x3e, 0xb9, 0xfd, 0xdf, 0x25, 0xfe, 0xdb, 0x56, 0xfd, 0xff, 0xd9, 0xab, 0x31, 0x16, 0xe7, 0xf7, 0xe5, 0x66, 0xdb, 0x7d,
|
||||
0x25, 0xa3, 0xc8, 0x19, 0x9f, 0xcd, 0x8e, 0x9c, 0xbd, 0xef, 0x50, 0xb9, 0x62, 0xd3, 0xb3, 0xee, 0x71, 0xb5, 0xaf, 0x1c,
|
||||
0xff, 0xe7, 0xef, 0xfb, 0x8a, 0xff, 0xd9, 0xfe, 0x74, 0xbb, 0x21, 0xfe, 0x57, 0x9d, 0xbb, 0x27, 0xc7, 0xff, 0x4c, 0xcf,
|
||||
0xef, 0xaa, 0xf8, 0x6f, 0x1f, 0x57, 0xa1, 0x9a, 0x8d, 0xff, 0xfc, 0xda, 0x38, 0xd1, 0x38, 0xef, 0x37, 0x3e, 0xdf, 0x5a,
|
||||
0x51, 0x07, 0xe6, 0x9f, 0x37, 0x34, 0xf1, 0xff, 0xa8, 0xf8, 0xbf, 0xbf, 0xfd, 0x1f, 0x5d, 0x5b, 0xf1, 0xbb, 0xe3, 0xbf,
|
||||
0x4d, 0xdd, 0xe3, 0x5b, 0xf1, 0x7f, 0xbb, 0xf5, 0xff, 0xab, 0xeb, 0xce, 0x6b, 0xeb, 0xd3, 0x75, 0x7d, 0xdc, 0xdc, 0xfd,
|
||||
0xa4, 0xdc, 0x6a, 0x06, 0xb9, 0xac, 0xd9, 0x6b, 0xae, 0xa9, 0x96, 0x5e, 0xc3, 0xab, 0x85, 0x6b, 0x00, 0xf1, 0xff, 0xeb,
|
||||
0x96, 0x75, 0xab, 0x23, 0xc3, 0xea, 0x78, 0x7a, 0x56, 0xfc, 0xcf, 0xbd, 0x69, 0x50, 0xbf, 0xda, 0x60, 0xbf, 0xa1, 0xfd,
|
||||
0x87, 0xb5, 0x4f, 0xd9, 0xeb, 0xfe, 0x9e, 0x8a, 0x3e, 0x3d, 0xf0, 0xbd, 0xfd, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xe0, 0x8d, 0x73, 0x05, 0x3e, 0xcf, 0xf2, 0x3c, 0xce, 0x82, 0xd1, 0x92, 0x59, 0xb0, 0xdb, 0x40,
|
||||
0xe6, 0xe4, 0x9e, 0xfc, 0xbe, 0xc8, 0x2c, 0xe5, 0xdd, 0x72, 0x11, 0x44, 0xf3, 0x23, 0x46, 0x72, 0x63, 0xb7, 0x70, 0x9e,
|
||||
0xaf, 0x6c, 0x16, 0x9b, 0x36, 0x99, 0x73, 0x34, 0x3f, 0xff, 0x2e, 0x3b, 0x83, 0x7a, 0x2c, 0xa3, 0xdb, 0xd8, 0xf7, 0xf4,
|
||||
0xa1, 0x19, 0x7e, 0xb3, 0xa5, 0x50, 0x3f, 0x27, 0xb1, 0x5d, 0x9e, 0x75, 0xe3, 0xde, 0x6c, 0x4c, 0x4f, 0xca, 0xb7, 0x1d,
|
||||
0xc9, 0xc3, 0x7b, 0x9e, 0xcf, 0x63, 0x3e, 0xfe, 0x47, 0x73, 0x0a, 0xf4, 0xc9, 0xac, 0x9f, 0xd1, 0xba, 0xe2, 0xf8, 0xbc,
|
||||
0x1c, 0xcd, 0x4d, 0x8e, 0x45, 0x7f, 0x76, 0xfe, 0xcd, 0xf9, 0x3e, 0xac, 0x9b, 0x51, 0xfd, 0x1d, 0xf1, 0x1f, 0xaf, 0x41,
|
||||
0x9f, 0x90, 0x6f, 0xbb, 0x15, 0xfc, 0xb6, 0x72, 0xe6, 0x7b, 0x36, 0xa7, 0x48, 0x36, 0xfe, 0x23, 0xb1, 0xf5, 0xb9, 0x96,
|
||||
0x6b, 0x03, 0x19, 0xd4, 0xe6, 0xbf, 0x27, 0x13, 0xff, 0x3d, 0x9c, 0x6d, 0x25, 0xdb, 0xfe, 0xc7, 0x5a, 0x97, 0x3d, 0xe3,
|
||||
0x3f, 0xd3, 0xe3, 0xec, 0x17, 0xc6, 0xff, 0x5c, 0x8e, 0xaf, 0x76, 0x79, 0xfc, 0xd7, 0xae, 0x53, 0x31, 0x36, 0x92, 0xa9,
|
||||
0xe8, 0x69, 0xff, 0x34, 0x3a, 0x3c, 0x1a, 0x19, 0xd5, 0xc5, 0x7f, 0xff, 0xe1, 0x1b, 0x57, 0xb5, 0xff, 0x55, 0x19, 0x55,
|
||||
0xfb, 0xc1, 0xfe, 0xbe, 0x21, 0xfe, 0xdb, 0x26, 0xfd, 0xff, 0xfa, 0xb5, 0xd4, 0xf6, 0x8c, 0xff, 0x78, 0x8f, 0x2b, 0xde,
|
||||
0x7a, 0xc5, 0xfa, 0x0a, 0xe7, 0x23, 0x80, 0x5e, 0x50, 0x03, 0xf4, 0xdf, 0xd6, 0xa3, 0xaa, 0x1a, 0x85, 0xc7, 0x56, 0x12,
|
||||
0xcb, 0xb5, 0xff, 0xfd, 0xb5, 0xed, 0x7f, 0xed, 0xf8, 0x7f, 0x55, 0x2e, 0xc2, 0xda, 0xf5, 0xb6, 0xaa, 0x72, 0x6d, 0xe6,
|
||||
0xfa, 0x5a, 0xd9, 0xf6, 0xff, 0xac, 0x77, 0x30, 0x13, 0xff, 0x6d, 0x32, 0x2e, 0x63, 0xf5, 0x4c, 0x7f, 0x54, 0x06, 0x8e,
|
||||
0x91, 0x35, 0xf2, 0xea, 0xae, 0xf4, 0xd1, 0x08, 0x8a, 0x6c, 0x9d, 0xcd, 0xaa, 0x36, 0xfe, 0xa4, 0x61, 0xa4, 0xa6, 0xfe,
|
||||
0xfc, 0x94, 0x62, 0xe4, 0xac, 0x54, 0x8c, 0x01, 0x77, 0xed, 0xff, 0xdf, 0xd3, 0xfe, 0x8f, 0xb4, 0xfe, 0x35, 0x79, 0xc8,
|
||||
0x7a, 0x79, 0xfe, 0x9d, 0x5e, 0xb8, 0x77, 0x75, 0x2d, 0xe4, 0x1d, 0x4f, 0x22, 0x57, 0xec, 0xd1, 0x7e, 0x59, 0xd2, 0x7a,
|
||||
0xf2, 0xce, 0xf1, 0x5e, 0xfd, 0xff, 0xfc, 0xd8, 0x2a, 0x32, 0xaa, 0xaf, 0x7b, 0xfe, 0x57, 0xdd, 0x96, 0x3e, 0x2b, 0xfb,
|
||||
0x96, 0xf8, 0xdf, 0xbb, 0x0c, 0xf6, 0x8a, 0xff, 0xd1, 0x55, 0xcc, 0x7b, 0xf9, 0x93, 0xf8, 0x67, 0xd4, 0xe0, 0xcf, 0x7d,
|
||||
0xff, 0xe7, 0xfa, 0x95, 0x47, 0xef, 0x8e, 0xff, 0xdd, 0x6a, 0x80, 0xaa, 0x15, 0xaf, 0xdb, 0xe2, 0x37, 0x43, 0xee, 0x3f,
|
||||
0x6b, 0x2b, 0x56, 0x08, 0x86, 0xb7, 0xbc, 0xbf, 0xd9, 0x5f, 0xdf, 0x6f, 0x7a, 0x62, 0x4f, 0x1b, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xd5, 0xfc, 0xbf, 0x3e, 0x39, 0x37, 0x30, 0x97, 0x59, 0xa8, 0x9d, 0xce,
|
||||
0x30, 0xed, 0xe9, 0xbf, 0x89, 0x1c, 0x4b, 0x3e, 0x67, 0x45, 0x26, 0xe7, 0x76, 0x3b, 0xc9, 0x53, 0x53, 0x73, 0x6e, 0xae,
|
||||
0x39, 0xce, 0xf3, 0xdc, 0x7a, 0xb1, 0xeb, 0x22, 0x72, 0xa6, 0xce, 0x73, 0xa6, 0x5c, 0x77, 0x1e, 0xb2, 0xe5, 0xdd, 0x4f,
|
||||
0x66, 0x73, 0xf7, 0xc3, 0x4c, 0x35, 0x15, 0xb9, 0x54, 0xce, 0x3e, 0x3f, 0x9f, 0x79, 0xaf, 0x25, 0x32, 0xae, 0xf5, 0x3f,
|
||||
0x72, 0x39, 0xf5, 0xd4, 0xdf, 0x44, 0x4b, 0x3d, 0xb7, 0x6d, 0x24, 0xa7, 0x63, 0x5d, 0x9e, 0xe8, 0xcc, 0xb9, 0x59, 0x7f,
|
||||
0x9c, 0xf1, 0xeb, 0xa2, 0x17, 0x7d, 0xc3, 0x68, 0x1e, 0x92, 0xfd, 0xcb, 0xfb, 0x3c, 0x63, 0xec, 0x5c, 0x36, 0x85, 0xd5,
|
||||
0xf1, 0x1f, 0xcb, 0xb9, 0x1a, 0xc9, 0x2b, 0x56, 0x19, 0xff, 0x7b, 0xf5, 0xc7, 0xf2, 0xab, 0x41, 0x54, 0x65, 0xd8, 0x7f,
|
||||
0xc6, 0x2c, 0xdd, 0xfc, 0x4a, 0x04, 0xcf, 0x29, 0xef, 0xd5, 0xc7, 0x37, 0x52, 0x53, 0xce, 0xe5, 0x81, 0xb8, 0x2b, 0xfe,
|
||||
0xeb, 0xfa, 0xff, 0xd9, 0xfe, 0x74, 0x66, 0x0d, 0xa4, 0xd9, 0xdc, 0x89, 0x33, 0x2b, 0x89, 0x5c, 0x7d, 0x2c, 0x73, 0xa3,
|
||||
0x82, 0x91, 0x31, 0xeb, 0x0e, 0xe7, 0x61, 0xe6, 0x1c, 0xb5, 0xc9, 0x95, 0x16, 0xce, 0x23, 0xa0, 0x0f, 0x8c, 0x4f, 0xfa,
|
||||
0x64, 0x0d, 0x13, 0x2d, 0xd1, 0xf3, 0x73, 0x55, 0x5b, 0x2f, 0xe6, 0x3e, 0x6f, 0xd7, 0x6d, 0x7d, 0x62, 0x1c, 0x73, 0xef,
|
||||
0xca, 0x45, 0x35, 0xf1, 0x3f, 0xde, 0xab, 0xdd, 0xbd, 0x4c, 0xdb, 0xc0, 0x38, 0x79, 0xff, 0xf8, 0x8f, 0xc6, 0x61, 0x65,
|
||||
0x1f, 0x77, 0x36, 0x9b, 0xf4, 0x3d, 0xdb, 0xe6, 0x57, 0x26, 0xd9, 0xfd, 0xda, 0xbe, 0x3b, 0xfe, 0xd7, 0xac, 0xfe, 0x52,
|
||||
0x7d, 0x8e, 0xce, 0x46, 0x0d, 0x55, 0xed, 0xff, 0xd9, 0x08, 0xa4, 0x6f, 0x31, 0x2e, 0x1c, 0x8b, 0xed, 0xf8, 0xfd, 0xff,
|
||||
0xb9, 0x6b, 0x65, 0xc5, 0xb6, 0xf9, 0xeb, 0x76, 0xdf, 0x18, 0xdf, 0x25, 0xfe, 0x9f, 0x50, 0x47, 0xce, 0xb4, 0xda, 0xd1,
|
||||
0xf6, 0xbf, 0x5d, 0x18, 0xff, 0x35, 0x77, 0x2a, 0x7a, 0xe1, 0x8a, 0x76, 0x4f, 0xbf, 0x56, 0xe6, 0xef, 0xff, 0xad, 0x78,
|
||||
0x02, 0xb2, 0x73, 0xfb, 0x2f, 0xfe, 0x9f, 0x16, 0xff, 0xd9, 0x67, 0xfb, 0x33, 0xfd, 0x91, 0x67, 0x8e, 0xff, 0x6b, 0xef,
|
||||
0x43, 0x3d, 0xb5, 0xff, 0xff, 0xf4, 0x32, 0x9d, 0xeb, 0xb5, 0xcb, 0x90, 0xfc, 0x4d, 0x7d, 0x83, 0xd9, 0x3b, 0x9d, 0x6f,
|
||||
0x8b, 0xff, 0x77, 0x97, 0x69, 0xf5, 0x0a, 0xe9, 0x7c, 0x4b, 0xfc, 0xb7, 0x0b, 0xdb, 0xc4, 0xf8, 0xfb, 0x86, 0xdf, 0x17,
|
||||
0xff, 0xab, 0xde, 0x91, 0x10, 0xff, 0xcf, 0x8c, 0xff, 0xd5, 0x65, 0x7a, 0xed, 0x7b, 0x0e, 0x35, 0xef, 0xff, 0xad, 0x5a,
|
||||
0xf5, 0x65, 0x87, 0xe7, 0xff, 0xcf, 0x7d, 0xf7, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8,
|
||||
0xfb, 0x3d, 0xf7, 0xd8, 0x96, 0xe3, 0xb9, 0x48, 0xb1, 0xec, 0x7b, 0xbb, 0x67, 0x63, 0x6e, 0xb2, 0x6f, 0x87, 0x4a, 0x7f,
|
||||
0xf4, 0x7c, 0xef, 0x54, 0xbe, 0x9f, 0x4b, 0xac, 0xdf, 0x5e, 0x66, 0xb1, 0x98, 0x8a, 0x1f, 0x67, 0xc5, 0xe7, 0xe4, 0xa3,
|
||||
0xff, 0xca, 0xac, 0xd4, 0xb2, 0x6f, 0xaf, 0xce, 0xbe, 0x1d, 0x39, 0xdf, 0xfb, 0x94, 0x6f, 0x7c, 0xbe, 0xd5, 0xb5, 0x65,
|
||||
0xb6, 0xd7, 0x6c, 0xbe, 0xaa, 0x19, 0x86, 0x7b, 0xcd, 0x54, 0xec, 0x13, 0x19, 0xd5, 0xbb, 0xec, 0xdb, 0x8f, 0xe8, 0xe7,
|
||||
0x56, 0xac, 0x8c, 0xf1, 0x9e, 0x98, 0xba, 0x7b, 0x86, 0xeb, 0x73, 0xb2, 0x31, 0x8f, 0xf5, 0x61, 0x72, 0xab, 0x25, 0xbd,
|
||||
0x27, 0xfb, 0xf6, 0x4f, 0xad, 0xdd, 0xb5, 0x33, 0x6a, 0xab, 0xca, 0xf7, 0x38, 0xc7, 0xee, 0xce, 0xd9, 0x1f, 0x9e, 0x17,
|
||||
0xff, 0xbb, 0x64, 0xa5, 0x6a, 0x27, 0x25, 0x9e, 0xbf, 0xae, 0xbe, 0x29, 0xfb, 0xee, 0x3b, 0x32, 0xa8, 0xf4, 0xad, 0xae,
|
||||
0xcd, 0x77, 0xc7, 0x7f, 0x26, 0x1e, 0x57, 0x6c, 0xab, 0xc9, 0x0c, 0xff, 0xed, 0xd9, 0x77, 0xdf, 0x13, 0xff, 0x4d, 0xfc,
|
||||
0xdf, 0xde, 0xff, 0xbf, 0x6e, 0xdb, 0x7c, 0xdf, 0x60, 0xc5, 0xfd, 0xff, 0xe7, 0x65, 0xdf, 0x7d, 0x53, 0xfb, 0xbf, 0x4b,
|
||||
0xc6, 0xc4, 0x68, 0x4c, 0xf5, 0x17, 0xc4, 0xff, 0x8e, 0xed, 0xa9, 0xec, 0x9b, 0xdf, 0x11, 0xff, 0x7d, 0xc3, 0xe3, 0xea,
|
||||
0x45, 0x75, 0xd7, 0x35, 0xd7, 0x57, 0xf4, 0x2e, 0xcb, 0x2e, 0x71, 0x51, 0x7d, 0x6f, 0x70, 0xfc, 0x09, 0xfb, 0x1b, 0xb3,
|
||||
0x6f, 0xbe, 0x35, 0xdb, 0xe6, 0xca, 0xfd, 0x6b, 0xe1, 0xb5, 0xf8, 0xf3, 0x4f, 0x68, 0x56, 0xd5, 0xa5, 0x15, 0x2b, 0x6f,
|
||||
0xef, 0x94, 0x8d, 0x51, 0xf6, 0xcd, 0x15, 0xcf, 0xa2, 0x9e, 0x9c, 0x6d, 0xf3, 0x3c, 0x56, 0xe3, 0xdb, 0xd6, 0xc7, 0xf4,
|
||||
0x55, 0x75, 0xe9, 0xfb, 0x72, 0x8f, 0xca, 0xa8, 0xca, 0x33, 0xde, 0xb7, 0xc9, 0xdd, 0xe7, 0xa8, 0xbd, 0xe6, 0x45, 0x0a,
|
||||
0xdc, 0xf5, 0x6e, 0x90, 0xb6, 0x8a, 0xdd, 0xfc, 0xe5, 0x1c, 0xe8, 0x7f, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfa, 0xef, 0xc7,
|
||||
0x79, 0x00, 0xf1, 0x0f, 0x7c, 0x5d, 0xfc, 0xff, 0x0d };
|
||||
|
||||
// Font glyphs rectangles data (on atlas)
|
||||
static const Rectangle candyFontRecs[189] = {
|
||||
{ 4, 4, 3 , 15 },
|
||||
{ 15, 4, 2 , 9 },
|
||||
{ 25, 4, 3 , 2 },
|
||||
{ 36, 4, 8 , 9 },
|
||||
{ 52, 4, 6 , 11 },
|
||||
{ 66, 4, 7 , 9 },
|
||||
{ 81, 4, 7 , 9 },
|
||||
{ 96, 4, 1 , 2 },
|
||||
{ 105, 4, 3 , 11 },
|
||||
{ 116, 4, 3 , 11 },
|
||||
{ 127, 4, 7 , 7 },
|
||||
{ 142, 4, 6 , 5 },
|
||||
{ 156, 4, 2 , 3 },
|
||||
{ 166, 4, 5 , 1 },
|
||||
{ 179, 4, 2 , 2 },
|
||||
{ 189, 4, 5 , 10 },
|
||||
{ 202, 4, 6 , 9 },
|
||||
{ 216, 4, 4 , 9 },
|
||||
{ 228, 4, 6 , 9 },
|
||||
{ 242, 4, 6 , 9 },
|
||||
{ 256, 4, 7 , 9 },
|
||||
{ 271, 4, 6 , 9 },
|
||||
{ 285, 4, 6 , 9 },
|
||||
{ 299, 4, 6 , 9 },
|
||||
{ 313, 4, 6 , 9 },
|
||||
{ 327, 4, 6 , 9 },
|
||||
{ 341, 4, 2 , 6 },
|
||||
{ 351, 4, 2 , 7 },
|
||||
{ 361, 4, 4 , 6 },
|
||||
{ 373, 4, 5 , 3 },
|
||||
{ 386, 4, 4 , 6 },
|
||||
{ 398, 4, 6 , 9 },
|
||||
{ 412, 4, 8 , 7 },
|
||||
{ 428, 4, 6 , 9 },
|
||||
{ 442, 4, 6 , 9 },
|
||||
{ 456, 4, 6 , 9 },
|
||||
{ 470, 4, 6 , 9 },
|
||||
{ 484, 4, 6 , 9 },
|
||||
{ 4, 27, 6 , 9 },
|
||||
{ 18, 27, 6 , 9 },
|
||||
{ 32, 27, 6 , 9 },
|
||||
{ 46, 27, 2 , 9 },
|
||||
{ 56, 27, 6 , 9 },
|
||||
{ 70, 27, 6 , 9 },
|
||||
{ 84, 27, 6 , 9 },
|
||||
{ 98, 27, 8 , 9 },
|
||||
{ 114, 27, 6 , 9 },
|
||||
{ 128, 27, 6 , 9 },
|
||||
{ 142, 27, 6 , 9 },
|
||||
{ 156, 27, 6 , 9 },
|
||||
{ 170, 27, 6 , 9 },
|
||||
{ 184, 27, 6 , 9 },
|
||||
{ 198, 27, 6 , 9 },
|
||||
{ 212, 27, 6 , 9 },
|
||||
{ 226, 27, 6 , 9 },
|
||||
{ 240, 27, 8 , 9 },
|
||||
{ 256, 27, 6 , 9 },
|
||||
{ 270, 27, 6 , 9 },
|
||||
{ 284, 27, 6 , 9 },
|
||||
{ 298, 27, 3 , 11 },
|
||||
{ 309, 27, 5 , 10 },
|
||||
{ 322, 27, 3 , 11 },
|
||||
{ 333, 27, 6 , 4 },
|
||||
{ 347, 27, 6 , 1 },
|
||||
{ 361, 27, 3 , 2 },
|
||||
{ 372, 27, 6 , 7 },
|
||||
{ 386, 27, 6 , 10 },
|
||||
{ 400, 27, 6 , 7 },
|
||||
{ 414, 27, 6 , 10 },
|
||||
{ 428, 27, 6 , 7 },
|
||||
{ 442, 27, 5 , 10 },
|
||||
{ 455, 27, 7 , 10 },
|
||||
{ 470, 27, 6 , 10 },
|
||||
{ 484, 27, 2 , 10 },
|
||||
{ 494, 27, 2 , 12 },
|
||||
{ 4, 50, 6 , 10 },
|
||||
{ 18, 50, 3 , 10 },
|
||||
{ 29, 50, 8 , 7 },
|
||||
{ 45, 50, 6 , 7 },
|
||||
{ 59, 50, 6 , 7 },
|
||||
{ 73, 50, 6 , 10 },
|
||||
{ 87, 50, 6 , 10 },
|
||||
{ 101, 50, 6 , 7 },
|
||||
{ 115, 50, 6 , 7 },
|
||||
{ 129, 50, 3 , 10 },
|
||||
{ 140, 50, 6 , 7 },
|
||||
{ 154, 50, 6 , 7 },
|
||||
{ 168, 50, 8 , 7 },
|
||||
{ 184, 50, 6 , 7 },
|
||||
{ 198, 50, 6 , 10 },
|
||||
{ 212, 50, 6 , 7 },
|
||||
{ 226, 50, 4 , 11 },
|
||||
{ 238, 50, 1 , 11 },
|
||||
{ 247, 50, 4 , 11 },
|
||||
{ 259, 50, 6 , 2 },
|
||||
{ 273, 50, 2 , 10 },
|
||||
{ 283, 50, 6 , 11 },
|
||||
{ 297, 50, 8 , 9 },
|
||||
{ 313, 50, 7 , 9 },
|
||||
{ 328, 50, 6 , 9 },
|
||||
{ 342, 50, 0 , 0 },
|
||||
{ 350, 50, 6 , 11 },
|
||||
{ 364, 50, 0 , 0 },
|
||||
{ 372, 50, 8 , 8 },
|
||||
{ 388, 50, 5 , 7 },
|
||||
{ 401, 50, 7 , 6 },
|
||||
{ 416, 50, 0 , 0 },
|
||||
{ 424, 50, 8 , 8 },
|
||||
{ 440, 50, 6 , 1 },
|
||||
{ 454, 50, 4 , 5 },
|
||||
{ 466, 50, 6 , 7 },
|
||||
{ 480, 50, 3 , 5 },
|
||||
{ 491, 50, 3 , 5 },
|
||||
{ 502, 50, 0 , 0 },
|
||||
{ 4, 73, 6 , 9 },
|
||||
{ 18, 73, 6 , 9 },
|
||||
{ 32, 73, 4 , 4 },
|
||||
{ 44, 73, 0 , 0 },
|
||||
{ 52, 73, 2 , 5 },
|
||||
{ 62, 73, 4 , 7 },
|
||||
{ 74, 73, 7 , 6 },
|
||||
{ 89, 73, 10 , 9 },
|
||||
{ 107, 73, 10 , 7 },
|
||||
{ 125, 73, 0 , 0 },
|
||||
{ 133, 73, 6 , 9 },
|
||||
{ 147, 73, 6 , 12 },
|
||||
{ 161, 73, 6 , 12 },
|
||||
{ 175, 73, 6 , 12 },
|
||||
{ 189, 73, 6 , 12 },
|
||||
{ 203, 73, 6 , 11 },
|
||||
{ 217, 73, 6 , 12 },
|
||||
{ 231, 73, 10 , 9 },
|
||||
{ 249, 73, 6 , 12 },
|
||||
{ 263, 73, 6 , 12 },
|
||||
{ 277, 73, 6 , 12 },
|
||||
{ 291, 73, 6 , 12 },
|
||||
{ 305, 73, 6 , 11 },
|
||||
{ 319, 73, 3 , 12 },
|
||||
{ 330, 73, 3 , 12 },
|
||||
{ 341, 73, 4 , 12 },
|
||||
{ 353, 73, 4 , 11 },
|
||||
{ 365, 73, 8 , 9 },
|
||||
{ 381, 73, 6 , 12 },
|
||||
{ 395, 73, 6 , 12 },
|
||||
{ 409, 73, 6 , 12 },
|
||||
{ 423, 73, 6 , 12 },
|
||||
{ 437, 73, 6 , 12 },
|
||||
{ 451, 73, 6 , 11 },
|
||||
{ 465, 73, 5 , 5 },
|
||||
{ 478, 73, 9 , 10 },
|
||||
{ 495, 73, 6 , 12 },
|
||||
{ 4, 96, 6 , 12 },
|
||||
{ 18, 96, 6 , 12 },
|
||||
{ 32, 96, 6 , 11 },
|
||||
{ 46, 96, 6 , 12 },
|
||||
{ 60, 96, 0 , 0 },
|
||||
{ 68, 96, 6 , 10 },
|
||||
{ 82, 96, 6 , 10 },
|
||||
{ 96, 96, 6 , 10 },
|
||||
{ 110, 96, 6 , 10 },
|
||||
{ 124, 96, 6 , 10 },
|
||||
{ 138, 96, 6 , 9 },
|
||||
{ 152, 96, 6 , 11 },
|
||||
{ 166, 96, 10 , 7 },
|
||||
{ 184, 96, 6 , 10 },
|
||||
{ 198, 96, 6 , 10 },
|
||||
{ 212, 96, 6 , 10 },
|
||||
{ 226, 96, 6 , 10 },
|
||||
{ 240, 96, 6 , 9 },
|
||||
{ 254, 96, 3 , 10 },
|
||||
{ 265, 96, 3 , 10 },
|
||||
{ 276, 96, 4 , 10 },
|
||||
{ 288, 96, 4 , 9 },
|
||||
{ 300, 96, 0 , 0 },
|
||||
{ 308, 96, 6 , 13 },
|
||||
{ 322, 96, 6 , 10 },
|
||||
{ 336, 96, 6 , 10 },
|
||||
{ 350, 96, 6 , 10 },
|
||||
{ 364, 96, 6 , 10 },
|
||||
{ 378, 96, 6 , 9 },
|
||||
{ 392, 96, 0 , 0 },
|
||||
{ 400, 96, 8 , 8 },
|
||||
{ 416, 96, 6 , 10 },
|
||||
{ 430, 96, 6 , 10 },
|
||||
{ 444, 96, 6 , 10 },
|
||||
{ 458, 96, 6 , 9 },
|
||||
{ 472, 96, 6 , 13 },
|
||||
{ 486, 96, 0 , 0 },
|
||||
{ 494, 96, 6 , 12 },
|
||||
};
|
||||
|
||||
// Font glyphs info data
|
||||
// NOTE: No glyphs.image data provided
|
||||
static const GlyphInfo candyFontGlyphs[189] = {
|
||||
{ 32, 0, 0, 3, { 0 }},
|
||||
{ 33, 0, 3, 3, { 0 }},
|
||||
{ 34, 0, 2, 4, { 0 }},
|
||||
{ 35, 0, 3, 9, { 0 }},
|
||||
{ 36, 0, 2, 7, { 0 }},
|
||||
{ 37, 0, 3, 8, { 0 }},
|
||||
{ 38, 0, 3, 8, { 0 }},
|
||||
{ 39, 0, 2, 2, { 0 }},
|
||||
{ 40, 1, 2, 5, { 0 }},
|
||||
{ 41, 1, 2, 5, { 0 }},
|
||||
{ 42, 0, 4, 8, { 0 }},
|
||||
{ 43, 0, 6, 7, { 0 }},
|
||||
{ 44, 0, 10, 3, { 0 }},
|
||||
{ 45, 0, 7, 6, { 0 }},
|
||||
{ 46, 0, 10, 3, { 0 }},
|
||||
{ 47, 1, 3, 7, { 0 }},
|
||||
{ 48, 0, 3, 7, { 0 }},
|
||||
{ 49, 0, 3, 5, { 0 }},
|
||||
{ 50, 0, 3, 7, { 0 }},
|
||||
{ 51, 0, 3, 7, { 0 }},
|
||||
{ 52, 0, 3, 8, { 0 }},
|
||||
{ 53, 0, 3, 7, { 0 }},
|
||||
{ 54, 0, 3, 7, { 0 }},
|
||||
{ 55, 0, 3, 7, { 0 }},
|
||||
{ 56, 0, 3, 7, { 0 }},
|
||||
{ 57, 0, 3, 7, { 0 }},
|
||||
{ 58, 0, 6, 3, { 0 }},
|
||||
{ 59, 0, 6, 3, { 0 }},
|
||||
{ 60, 1, 5, 6, { 0 }},
|
||||
{ 61, 1, 7, 7, { 0 }},
|
||||
{ 62, 1, 5, 6, { 0 }},
|
||||
{ 63, 0, 3, 7, { 0 }},
|
||||
{ 64, 0, 4, 9, { 0 }},
|
||||
{ 65, 0, 3, 7, { 0 }},
|
||||
{ 66, 0, 3, 7, { 0 }},
|
||||
{ 67, 0, 3, 7, { 0 }},
|
||||
{ 68, 0, 3, 7, { 0 }},
|
||||
{ 69, 0, 3, 7, { 0 }},
|
||||
{ 70, 0, 3, 7, { 0 }},
|
||||
{ 71, 0, 3, 7, { 0 }},
|
||||
{ 72, 0, 3, 7, { 0 }},
|
||||
{ 73, 0, 3, 3, { 0 }},
|
||||
{ 74, 0, 3, 7, { 0 }},
|
||||
{ 75, 0, 3, 7, { 0 }},
|
||||
{ 76, 0, 3, 7, { 0 }},
|
||||
{ 77, 0, 3, 9, { 0 }},
|
||||
{ 78, 0, 3, 7, { 0 }},
|
||||
{ 79, 0, 3, 7, { 0 }},
|
||||
{ 80, 0, 3, 7, { 0 }},
|
||||
{ 81, 0, 3, 7, { 0 }},
|
||||
{ 82, 0, 3, 7, { 0 }},
|
||||
{ 83, 0, 3, 7, { 0 }},
|
||||
{ 84, 0, 3, 7, { 0 }},
|
||||
{ 85, 0, 3, 7, { 0 }},
|
||||
{ 86, 0, 3, 7, { 0 }},
|
||||
{ 87, 0, 3, 9, { 0 }},
|
||||
{ 88, 0, 3, 7, { 0 }},
|
||||
{ 89, 0, 3, 7, { 0 }},
|
||||
{ 90, 0, 3, 7, { 0 }},
|
||||
{ 91, 1, 2, 5, { 0 }},
|
||||
{ 92, 1, 3, 7, { 0 }},
|
||||
{ 93, 1, 2, 5, { 0 }},
|
||||
{ 94, 0, 3, 7, { 0 }},
|
||||
{ 95, 0, 11, 7, { 0 }},
|
||||
{ 96, 0, 0, 4, { 0 }},
|
||||
{ 97, 0, 5, 7, { 0 }},
|
||||
{ 98, 0, 2, 7, { 0 }},
|
||||
{ 99, 0, 5, 7, { 0 }},
|
||||
{ 100, 0, 2, 7, { 0 }},
|
||||
{ 101, 0, 5, 7, { 0 }},
|
||||
{ 102, 0, 2, 6, { 0 }},
|
||||
{ 103, 0, 5, 7, { 0 }},
|
||||
{ 104, 0, 2, 7, { 0 }},
|
||||
{ 105, 0, 2, 3, { 0 }},
|
||||
{ 106, 0, 2, 3, { 0 }},
|
||||
{ 107, 0, 2, 7, { 0 }},
|
||||
{ 108, 0, 2, 4, { 0 }},
|
||||
{ 109, 0, 5, 9, { 0 }},
|
||||
{ 110, 0, 5, 7, { 0 }},
|
||||
{ 111, 0, 5, 7, { 0 }},
|
||||
{ 112, 0, 5, 7, { 0 }},
|
||||
{ 113, 0, 5, 7, { 0 }},
|
||||
{ 114, 0, 5, 7, { 0 }},
|
||||
{ 115, 0, 5, 7, { 0 }},
|
||||
{ 116, 0, 2, 4, { 0 }},
|
||||
{ 117, 0, 5, 7, { 0 }},
|
||||
{ 118, 0, 5, 7, { 0 }},
|
||||
{ 119, 0, 5, 9, { 0 }},
|
||||
{ 120, 0, 5, 7, { 0 }},
|
||||
{ 121, 0, 5, 7, { 0 }},
|
||||
{ 122, 0, 5, 7, { 0 }},
|
||||
{ 123, 1, 2, 6, { 0 }},
|
||||
{ 124, 1, 2, 3, { 0 }},
|
||||
{ 125, 1, 2, 6, { 0 }},
|
||||
{ 126, 0, 0, 7, { 0 }},
|
||||
{ 161, 0, 3, 3, { 0 }},
|
||||
{ 162, 0, 2, 7, { 0 }},
|
||||
{ 163, 0, 3, 9, { 0 }},
|
||||
{ 8364, 0, 3, 8, { 0 }},
|
||||
{ 165, 0, 3, 7, { 0 }},
|
||||
{ 352, 0, 0, 0, { 0 }},
|
||||
{ 167, 0, 2, 7, { 0 }},
|
||||
{ 353, 0, 0, 0, { 0 }},
|
||||
{ 169, 0, 0, 9, { 0 }},
|
||||
{ 170, 0, 0, 6, { 0 }},
|
||||
{ 171, 1, 5, 9, { 0 }},
|
||||
{ 172, 0, 0, 0, { 0 }},
|
||||
{ 174, 0, 0, 9, { 0 }},
|
||||
{ 175, 0, 0, 7, { 0 }},
|
||||
{ 176, 0, 0, 5, { 0 }},
|
||||
{ 177, 0, 4, 7, { 0 }},
|
||||
{ 178, 0, 0, 4, { 0 }},
|
||||
{ 179, 0, 0, 4, { 0 }},
|
||||
{ 381, 0, 0, 0, { 0 }},
|
||||
{ 181, 0, 5, 7, { 0 }},
|
||||
{ 182, 0, 3, 7, { 0 }},
|
||||
{ 183, 0, 6, 5, { 0 }},
|
||||
{ 382, 0, 0, 0, { 0 }},
|
||||
{ 185, 0, 0, 3, { 0 }},
|
||||
{ 186, 0, 0, 5, { 0 }},
|
||||
{ 187, 1, 5, 9, { 0 }},
|
||||
{ 338, 0, 3, 11, { 0 }},
|
||||
{ 339, 0, 5, 11, { 0 }},
|
||||
{ 376, 0, 0, 0, { 0 }},
|
||||
{ 191, 0, 4, 7, { 0 }},
|
||||
{ 192, 0, 0, 7, { 0 }},
|
||||
{ 193, 0, 0, 7, { 0 }},
|
||||
{ 194, 0, 0, 7, { 0 }},
|
||||
{ 195, 0, 0, 7, { 0 }},
|
||||
{ 196, 0, 1, 7, { 0 }},
|
||||
{ 197, 0, 0, 7, { 0 }},
|
||||
{ 198, 0, 3, 11, { 0 }},
|
||||
{ 199, 0, 3, 7, { 0 }},
|
||||
{ 200, 0, 0, 7, { 0 }},
|
||||
{ 201, 0, 0, 7, { 0 }},
|
||||
{ 202, 0, 0, 7, { 0 }},
|
||||
{ 203, 0, 1, 7, { 0 }},
|
||||
{ 204, -1, 0, 3, { 0 }},
|
||||
{ 205, 0, 0, 3, { 0 }},
|
||||
{ 206, -1, 0, 3, { 0 }},
|
||||
{ 207, -1, 1, 3, { 0 }},
|
||||
{ 208, 0, 3, 9, { 0 }},
|
||||
{ 209, 0, 0, 7, { 0 }},
|
||||
{ 210, 0, 0, 7, { 0 }},
|
||||
{ 211, 0, 0, 7, { 0 }},
|
||||
{ 212, 0, 0, 7, { 0 }},
|
||||
{ 213, 0, 0, 7, { 0 }},
|
||||
{ 214, 0, 1, 7, { 0 }},
|
||||
{ 215, 0, 7, 6, { 0 }},
|
||||
{ 216, 0, 3, 10, { 0 }},
|
||||
{ 217, 0, 0, 7, { 0 }},
|
||||
{ 218, 0, 0, 7, { 0 }},
|
||||
{ 219, 0, 0, 7, { 0 }},
|
||||
{ 220, 0, 1, 7, { 0 }},
|
||||
{ 221, 0, 0, 7, { 0 }},
|
||||
{ 222, 0, 0, 0, { 0 }},
|
||||
{ 223, 0, 3, 7, { 0 }},
|
||||
{ 224, 0, 2, 7, { 0 }},
|
||||
{ 225, 0, 2, 7, { 0 }},
|
||||
{ 226, 0, 2, 7, { 0 }},
|
||||
{ 227, 0, 2, 7, { 0 }},
|
||||
{ 228, 0, 3, 7, { 0 }},
|
||||
{ 229, 0, 1, 7, { 0 }},
|
||||
{ 230, 0, 5, 11, { 0 }},
|
||||
{ 231, 0, 5, 7, { 0 }},
|
||||
{ 232, 0, 2, 7, { 0 }},
|
||||
{ 233, 0, 2, 7, { 0 }},
|
||||
{ 234, 0, 2, 7, { 0 }},
|
||||
{ 235, 0, 3, 7, { 0 }},
|
||||
{ 236, 0, 2, 4, { 0 }},
|
||||
{ 237, 0, 2, 4, { 0 }},
|
||||
{ 238, 0, 2, 4, { 0 }},
|
||||
{ 239, 0, 3, 4, { 0 }},
|
||||
{ 240, 0, 0, 0, { 0 }},
|
||||
{ 241, 0, 2, 7, { 0 }},
|
||||
{ 242, 0, 2, 7, { 0 }},
|
||||
{ 243, 0, 2, 7, { 0 }},
|
||||
{ 244, 0, 2, 7, { 0 }},
|
||||
{ 245, 0, 2, 7, { 0 }},
|
||||
{ 246, 0, 3, 7, { 0 }},
|
||||
{ 247, 0, 0, 0, { 0 }},
|
||||
{ 248, 0, 5, 9, { 0 }},
|
||||
{ 249, 0, 2, 7, { 0 }},
|
||||
{ 250, 0, 2, 7, { 0 }},
|
||||
{ 251, 0, 2, 7, { 0 }},
|
||||
{ 252, 0, 3, 7, { 0 }},
|
||||
{ 253, 0, 2, 7, { 0 }},
|
||||
{ 254, 0, 0, 0, { 0 }},
|
||||
{ 255, 0, 3, 7, { 0 }},
|
||||
};
|
||||
|
||||
// Style loading function: Candy
|
||||
static void GuiLoadStyleCandy(void)
|
||||
{
|
||||
// Load style properties provided
|
||||
// NOTE: Default properties are propagated
|
||||
for (int i = 0; i < CANDY_STYLE_PROPS_COUNT; i++)
|
||||
{
|
||||
GuiSetStyle(candyStyleProps[i].controlId, candyStyleProps[i].propertyId, candyStyleProps[i].propertyValue);
|
||||
}
|
||||
|
||||
// Custom font loading
|
||||
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
|
||||
int candyFontDataSize = 0;
|
||||
unsigned char *data = DecompressData(candyFontData, CANDY_STYLE_FONT_ATLAS_COMP_SIZE, &candyFontDataSize);
|
||||
Image imFont = { data, 512, 256, 1, 2 };
|
||||
|
||||
Font font = { 0 };
|
||||
font.baseSize = 15;
|
||||
font.glyphCount = 189;
|
||||
|
||||
// Load texture from image
|
||||
font.texture = LoadTextureFromImage(imFont);
|
||||
UnloadImage(imFont); // Uncompressed image data can be unloaded from memory
|
||||
|
||||
// Copy char recs data from global fontRecs
|
||||
// NOTE: Required to avoid issues if trying to free font
|
||||
font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle));
|
||||
memcpy(font.recs, candyFontRecs, font.glyphCount*sizeof(Rectangle));
|
||||
|
||||
// Copy font char info data from global fontChars
|
||||
// NOTE: Required to avoid issues if trying to free font
|
||||
font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo));
|
||||
memcpy(font.glyphs, candyFontGlyphs, font.glyphCount*sizeof(GlyphInfo));
|
||||
|
||||
GuiSetFont(font);
|
||||
|
||||
// Setup a white rectangle on the font to be used on shapes drawing,
|
||||
// it makes possible to draw shapes and text (full UI) in a single draw call
|
||||
Rectangle fontWhiteRec = { 510, 254, 1, 1 };
|
||||
SetShapesTexture(font.texture, fontWhiteRec);
|
||||
|
||||
//-----------------------------------------------------------------
|
||||
|
||||
// TODO: Custom user style setup: Set specific properties here (if required)
|
||||
// i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT
|
||||
}
|
||||
@ -1,617 +0,0 @@
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// StyleAsCode exporter v2.0 - Style data exported as a values array //
|
||||
// //
|
||||
// USAGE: On init call: GuiLoadStyleCherry(); //
|
||||
// //
|
||||
// more info and bugs-report: github.com/raysan5/raygui //
|
||||
// feedback and support: ray[at]raylibtech.com //
|
||||
// //
|
||||
// Copyright (c) 2020-2025 raylib technologies (@raylibtech) //
|
||||
// //
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#define CHERRY_STYLE_PROPS_COUNT 17
|
||||
|
||||
// Custom style name: Cherry
|
||||
static const GuiStyleProp cherryStyleProps[CHERRY_STYLE_PROPS_COUNT] = {
|
||||
{ 0, 0, (int)0xda5757ff }, // DEFAULT_BORDER_COLOR_NORMAL
|
||||
{ 0, 1, (int)0x753233ff }, // DEFAULT_BASE_COLOR_NORMAL
|
||||
{ 0, 2, (int)0xe17373ff }, // DEFAULT_TEXT_COLOR_NORMAL
|
||||
{ 0, 3, (int)0xfaaa97ff }, // DEFAULT_BORDER_COLOR_FOCUSED
|
||||
{ 0, 4, (int)0xe06262ff }, // DEFAULT_BASE_COLOR_FOCUSED
|
||||
{ 0, 5, (int)0xfdb4aaff }, // DEFAULT_TEXT_COLOR_FOCUSED
|
||||
{ 0, 6, (int)0xe03c46ff }, // DEFAULT_BORDER_COLOR_PRESSED
|
||||
{ 0, 7, (int)0x5b1e20ff }, // DEFAULT_BASE_COLOR_PRESSED
|
||||
{ 0, 8, (int)0xc2474fff }, // DEFAULT_TEXT_COLOR_PRESSED
|
||||
{ 0, 9, (int)0xa19292ff }, // DEFAULT_BORDER_COLOR_DISABLED
|
||||
{ 0, 10, (int)0x706060ff }, // DEFAULT_BASE_COLOR_DISABLED
|
||||
{ 0, 11, (int)0x9e8585ff }, // DEFAULT_TEXT_COLOR_DISABLED
|
||||
{ 0, 16, (int)0x0000000f }, // DEFAULT_TEXT_SIZE
|
||||
{ 0, 17, (int)0x00000000 }, // DEFAULT_TEXT_SPACING
|
||||
{ 0, 18, (int)0xfb8170ff }, // DEFAULT_LINE_COLOR
|
||||
{ 0, 19, (int)0x3a1720ff }, // DEFAULT_BACKGROUND_COLOR
|
||||
{ 0, 20, (int)0x00000007 }, // DEFAULT_TEXT_LINE_SPACING
|
||||
};
|
||||
|
||||
// WARNING: This style uses a custom font: "Westington.ttf" (size: 15, spacing: 0)
|
||||
|
||||
#define CHERRY_STYLE_FONT_ATLAS_COMP_SIZE 2821
|
||||
|
||||
// Font atlas image pixels data: DEFLATE compressed
|
||||
static unsigned char cherryFontData[CHERRY_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed,
|
||||
0xdd, 0x59, 0x92, 0xdc, 0xba, 0x11, 0x05, 0x50, 0xee, 0x7f, 0xd3, 0xd7, 0xe1, 0x70, 0x84, 0xed, 0x27, 0xa9, 0x09, 0x20,
|
||||
0x91, 0x20, 0xab, 0x5b, 0x47, 0xe7, 0xaf, 0xa1, 0x1a, 0x38, 0x24, 0x26, 0x16, 0x12, 0xb9, 0x00, 0x00, 0x00, 0x00, 0xf2,
|
||||
0xef, 0x7f, 0x5f, 0xfd, 0xf5, 0xcf, 0x65, 0xff, 0xff, 0xaa, 0xdc, 0xbe, 0x73, 0xfd, 0xb3, 0xb3, 0xf8, 0xae, 0x59, 0xf8,
|
||||
0x7f, 0xf9, 0xf2, 0xbb, 0x64, 0xfa, 0x33, 0xd7, 0x8f, 0x7b, 0xfd, 0x58, 0xef, 0xce, 0xfd, 0xfa, 0x31, 0x5c, 0x37, 0x9f,
|
||||
0xbf, 0xf6, 0xdd, 0x2a, 0xaf, 0xb9, 0x2f, 0x59, 0xbf, 0x7b, 0x3a, 0xae, 0xc8, 0xdc, 0x35, 0xb8, 0x3f, 0xa7, 0xd7, 0xf0,
|
||||
0x95, 0xeb, 0xef, 0x9c, 0xe1, 0x59, 0x1c, 0x7f, 0xab, 0xb5, 0x1a, 0xe0, 0xeb, 0xbf, 0x8e, 0xee, 0xa6, 0x14, 0xee, 0xab,
|
||||
0xff, 0xbd, 0x22, 0x8b, 0x65, 0xa3, 0xd7, 0xec, 0xdd, 0x57, 0x59, 0xa8, 0xa5, 0x2a, 0x57, 0x21, 0x8b, 0xe7, 0x61, 0xf5,
|
||||
0xdc, 0xa5, 0x54, 0xff, 0x8c, 0xbe, 0x6d, 0x5a, 0x8e, 0xe7, 0xae, 0x24, 0xd3, 0x7f, 0x1d, 0xbf, 0xa2, 0xf2, 0x6e, 0x33,
|
||||
0xf7, 0xd5, 0xdd, 0xab, 0xfb, 0xdf, 0x39, 0x53, 0xf7, 0xef, 0xd9, 0xf8, 0x1f, 0xd5, 0x97, 0xf7, 0xe7, 0xfb, 0xee, 0x28,
|
||||
0xf2, 0xdf, 0xde, 0x45, 0xed, 0xbe, 0xdb, 0x89, 0xf4, 0xdc, 0xdc, 0x9d, 0x29, 0x9e, 0x8d, 0xfa, 0xff, 0xbb, 0x8f, 0x97,
|
||||
0x14, 0x7b, 0x5e, 0x59, 0xb8, 0x4f, 0xb3, 0x54, 0xeb, 0xcd, 0xf4, 0x26, 0x2a, 0x35, 0xdd, 0x6e, 0x2f, 0x6a, 0xbf, 0xa7,
|
||||
0xfb, 0xf5, 0x35, 0xb8, 0x3b, 0xdf, 0x99, 0x3c, 0x82, 0x94, 0xe2, 0xff, 0x5a, 0xac, 0xb1, 0x9f, 0x8a, 0xff, 0x71, 0xac,
|
||||
0x8c, 0xe2, 0x29, 0xc3, 0x2b, 0x9c, 0x96, 0xef, 0x9f, 0x52, 0x8d, 0x76, 0x6a, 0x9c, 0x55, 0xbf, 0x7f, 0x66, 0xcf, 0x5e,
|
||||
0x06, 0xa3, 0xb9, 0xee, 0x5e, 0xe8, 0x7c, 0xaf, 0x2f, 0xc5, 0xda, 0x75, 0xa5, 0x8f, 0x9f, 0xad, 0xde, 0xfa, 0x28, 0x7e,
|
||||
0xb3, 0x5c, 0x17, 0x67, 0xa2, 0x3f, 0x74, 0xa2, 0x4f, 0xf2, 0x09, 0xf1, 0x9f, 0xc2, 0x08, 0xae, 0x5a, 0xc7, 0xa7, 0xa9,
|
||||
0x6d, 0xce, 0xa1, 0xfa, 0xb5, 0x3b, 0xfe, 0xd7, 0xcb, 0xc6, 0x91, 0x91, 0xd6, 0x71, 0x58, 0x4a, 0x23, 0xe9, 0x7a, 0x1b,
|
||||
0xbe, 0xfb, 0xda, 0xbb, 0xb9, 0xa2, 0x4c, 0xd4, 0x9e, 0x59, 0x9e, 0x01, 0xd8, 0x89, 0xff, 0xfe, 0xf1, 0x7f, 0x4a, 0xaf,
|
||||
0x98, 0xab, 0x8d, 0x6b, 0x35, 0x71, 0x16, 0xbe, 0x59, 0x9a, 0x6a, 0xb6, 0x1c, 0x9d, 0x65, 0xbd, 0x1a, 0xe3, 0xbf, 0x36,
|
||||
0x72, 0x4a, 0xdb, 0xdc, 0x44, 0x7d, 0xec, 0x96, 0xa6, 0xfb, 0x35, 0xad, 0xaf, 0xb8, 0x8f, 0xff, 0xbb, 0xf6, 0x7f, 0xbf,
|
||||
0xff, 0xff, 0x7e, 0xfb, 0xdf, 0x3d, 0xfa, 0x9f, 0x9f, 0xc5, 0x18, 0x9f, 0xd3, 0xe7, 0xe2, 0xff, 0x64, 0xdf, 0xbf, 0x36,
|
||||
0x96, 0x4f, 0x71, 0x9e, 0x32, 0x4d, 0x23, 0xf6, 0x94, 0x47, 0xe7, 0x69, 0x99, 0xd5, 0xe9, 0xab, 0xab, 0x53, 0xfe, 0x8c,
|
||||
0xfa, 0x3c, 0xf6, 0x4f, 0x1d, 0xff, 0x67, 0xe9, 0xd9, 0xc0, 0xb8, 0x6f, 0x75, 0x77, 0x66, 0xd2, 0x3e, 0xff, 0xf7, 0xde,
|
||||
0x53, 0xd6, 0xb5, 0x5a, 0x27, 0x85, 0x31, 0x76, 0x65, 0xd6, 0xbc, 0xfa, 0x34, 0xb1, 0xf3, 0xd9, 0xe4, 0xfb, 0xd7, 0xa9,
|
||||
0x3a, 0xd7, 0x98, 0x72, 0xed, 0x9e, 0x89, 0x67, 0x3f, 0xeb, 0xb3, 0x0a, 0x4f, 0xf5, 0xa6, 0x66, 0xe6, 0x62, 0xae, 0xe2,
|
||||
0xbc, 0x69, 0x0a, 0x3d, 0x9c, 0x4f, 0x8f, 0xff, 0x4f, 0xaa, 0x89, 0x3e, 0xf1, 0xf7, 0x27, 0x69, 0x1e, 0xe9, 0x77, 0x45,
|
||||
0x40, 0x26, 0x46, 0xe2, 0x57, 0xa1, 0x9e, 0xfe, 0x0e, 0xcf, 0xff, 0xc7, 0xf1, 0x5f, 0x1d, 0xff, 0x67, 0xea, 0xf7, 0x18,
|
||||
0x6b, 0xcf, 0x01, 0xf2, 0xe1, 0xad, 0xbf, 0x1a, 0xa0, 0x67, 0x4e, 0xfe, 0xe9, 0xfa, 0x39, 0x87, 0xc7, 0x85, 0x7f, 0xe3,
|
||||
0x75, 0x05, 0xf7, 0x0f, 0x20, 0xfa, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0x5e, 0x37,
|
||||
0xb8, 0xbe, 0x16, 0xb1, 0x3b, 0x4b, 0x6b, 0xe5, 0xfd, 0x7e, 0x2f, 0x1d, 0xbd, 0x47, 0xf5, 0x68, 0x2b, 0xb9, 0xa0, 0x33,
|
||||
0xf5, 0xdd, 0xb3, 0xbc, 0xa2, 0x73, 0x74, 0x34, 0xf9, 0xc7, 0x1a, 0xd5, 0x99, 0x73, 0xba, 0x73, 0x5d, 0xc6, 0x99, 0x77,
|
||||
0x57, 0xf2, 0xfb, 0xae, 0xad, 0x06, 0x5e, 0x5d, 0x21, 0xd0, 0x99, 0xed, 0x60, 0xf6, 0xfa, 0x56, 0xee, 0xa8, 0x95, 0x4f,
|
||||
0xdb, 0x59, 0x8b, 0x78, 0x9f, 0x81, 0xf9, 0x1a, 0x66, 0x88, 0xee, 0xca, 0x51, 0x97, 0x8d, 0x35, 0xfb, 0xbf, 0xdf, 0xc9,
|
||||
0x95, 0x55, 0xdb, 0xe3, 0x7b, 0xaa, 0x92, 0x77, 0xa9, 0x9a, 0xb3, 0x39, 0x2d, 0x9f, 0x3b, 0xf3, 0xcd, 0xe6, 0x32, 0xfa,
|
||||
0xd4, 0x33, 0xb6, 0x5f, 0x8b, 0xfb, 0x30, 0xac, 0xad, 0xe5, 0xce, 0xf2, 0x5a, 0xf8, 0xb4, 0xe5, 0x8b, 0x48, 0xf1, 0x3d,
|
||||
0x6b, 0xf7, 0xda, 0x99, 0xec, 0x3f, 0xd5, 0x2c, 0x59, 0x67, 0xe2, 0x3f, 0xe5, 0xef, 0x92, 0xdb, 0x7b, 0xe2, 0x1a, 0x66,
|
||||
0x28, 0xaa, 0x66, 0x5e, 0xca, 0x46, 0xbd, 0x96, 0x8d, 0xb5, 0xee, 0x5d, 0xf1, 0xbf, 0x13, 0xe1, 0xb3, 0xf9, 0x7b, 0xd3,
|
||||
0xb2, 0xba, 0x7f, 0x25, 0x1b, 0x7a, 0xb5, 0x1f, 0xdc, 0x19, 0x21, 0x77, 0xc7, 0x9e, 0x8d, 0x33, 0x73, 0x26, 0xfe, 0xf3,
|
||||
0x01, 0xf1, 0xbf, 0x53, 0x17, 0x7d, 0xcf, 0xf8, 0x4f, 0x43, 0xed, 0x9c, 0xd2, 0x15, 0xfa, 0x3d, 0x76, 0x2b, 0x7b, 0x59,
|
||||
0x5c, 0xe5, 0x8c, 0xce, 0x69, 0x6e, 0x8f, 0x3a, 0xd6, 0x14, 0x3f, 0x19, 0xff, 0xeb, 0xf5, 0xcd, 0xa9, 0xf8, 0xbf, 0xdb,
|
||||
0xad, 0x23, 0xa5, 0xdd, 0x9e, 0xfa, 0xf6, 0xc1, 0x5a, 0xa9, 0x8b, 0x32, 0x9d, 0x5b, 0xb4, 0x12, 0xff, 0x19, 0xee, 0xa0,
|
||||
0x51, 0xd9, 0xb7, 0xa0, 0x9a, 0x0d, 0xb9, 0x23, 0xfe, 0xe7, 0xf3, 0x9b, 0x67, 0xb2, 0xee, 0xed, 0x88, 0xf3, 0x77, 0xe2,
|
||||
0x7f, 0x74, 0x05, 0x53, 0xcc, 0xd6, 0xb7, 0x9e, 0xe5, 0x7b, 0xfc, 0x69, 0xbd, 0x59, 0xd4, 0x67, 0xf6, 0x9a, 0xc9, 0x37,
|
||||
0x68, 0xff, 0xcf, 0xc7, 0x7f, 0xe5, 0x5d, 0x67, 0xe7, 0x66, 0xf2, 0x5a, 0xfc, 0x67, 0xbb, 0x85, 0x4f, 0xf3, 0xe8, 0xf2,
|
||||
0x8d, 0xbc, 0x5f, 0x33, 0xf3, 0x05, 0xb5, 0x18, 0x4f, 0xeb, 0x78, 0xa3, 0xf6, 0x69, 0x27, 0x7a, 0x98, 0xeb, 0xf1, 0x9f,
|
||||
0xa3, 0xe3, 0xff, 0x95, 0x4f, 0xa8, 0xf7, 0xff, 0xef, 0x3e, 0xbb, 0x77, 0xfe, 0xaf, 0x6b, 0xee, 0x69, 0xa6, 0xed, 0x4e,
|
||||
0x43, 0x2f, 0xe2, 0x7c, 0xcd, 0x90, 0xd7, 0x9e, 0x91, 0x55, 0x3e, 0xff, 0x44, 0x44, 0x56, 0x63, 0xab, 0x1a, 0xff, 0xbd,
|
||||
0xf3, 0xff, 0x1d, 0xf3, 0xcc, 0x73, 0x47, 0x9f, 0x42, 0xa4, 0xa6, 0x38, 0xbe, 0xca, 0xd6, 0x0c, 0x79, 0x36, 0xe2, 0x3f,
|
||||
0x0d, 0xf1, 0x7f, 0xf7, 0xfc, 0x6e, 0x37, 0xfe, 0x33, 0x78, 0xbe, 0x91, 0x6f, 0x13, 0xff, 0x29, 0xc5, 0x7f, 0x9a, 0x23,
|
||||
0x32, 0xe5, 0xd8, 0xba, 0x96, 0x9f, 0x4f, 0x9e, 0x79, 0xfe, 0x3f, 0x7e, 0xca, 0xba, 0xf3, 0x24, 0x79, 0xf6, 0x3b, 0xd5,
|
||||
0x7f, 0xed, 0x30, 0x3a, 0x4b, 0x59, 0x8e, 0xb0, 0x94, 0x72, 0xf3, 0xcf, 0x8f, 0xf9, 0xb2, 0xd9, 0x4a, 0x8d, 0x6b, 0x88,
|
||||
0x6a, 0x4e, 0xea, 0xd5, 0x7d, 0xd5, 0xf3, 0xfa, 0xbe, 0x36, 0xcf, 0xbc, 0x72, 0x67, 0xaf, 0x06, 0x39, 0x89, 0xf9, 0x19,
|
||||
0xbf, 0x49, 0x73, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7a, 0xd6, 0x60,
|
||||
0xa6, 0x94, 0xd5, 0x6b, 0xf6, 0x7f, 0x55, 0x73, 0x90, 0xe5, 0x36, 0xcb, 0xf4, 0xda, 0x5a, 0xdf, 0x0c, 0x8f, 0xb1, 0x63,
|
||||
0xa5, 0xf4, 0xd9, 0x2c, 0xdc, 0xf3, 0xe7, 0xb6, 0x76, 0xf5, 0xb3, 0x98, 0xcf, 0x32, 0xed, 0x2b, 0xd3, 0xc7, 0xeb, 0xad,
|
||||
0xef, 0xd7, 0xd0, 0xd7, 0x5f, 0x77, 0x15, 0x56, 0x38, 0xaf, 0x5e, 0xad, 0x99, 0x5c, 0xf1, 0x6f, 0xd4, 0x15, 0xd7, 0x44,
|
||||
0x86, 0xbb, 0x9d, 0x1c, 0xfa, 0x77, 0xe7, 0xfe, 0xeb, 0xfb, 0xf5, 0xee, 0x7b, 0xf5, 0xe5, 0x2d, 0xbc, 0xb6, 0x33, 0xe8,
|
||||
0x5e, 0x8f, 0x64, 0xe1, 0xce, 0xe2, 0x7d, 0x38, 0xfb, 0x3f, 0x47, 0x59, 0x04, 0x53, 0xc8, 0xf4, 0x71, 0xee, 0x78, 0x67,
|
||||
0xf2, 0x3f, 0x8d, 0xf2, 0x3c, 0xfe, 0xf9, 0xef, 0x2b, 0xf7, 0x53, 0x2d, 0x67, 0x72, 0x06, 0xb9, 0x24, 0x7b, 0xd7, 0x5a,
|
||||
0xe7, 0xf6, 0x5e, 0x5d, 0xef, 0x47, 0x9c, 0xb9, 0xa2, 0xf5, 0xf8, 0x5f, 0x6f, 0x77, 0x4e, 0xc5, 0xff, 0x7e, 0x16, 0xde,
|
||||
0x9d, 0x1c, 0x3d, 0xfb, 0x7f, 0xbf, 0x6f, 0xfd, 0xaf, 0xe5, 0xde, 0xd9, 0xb5, 0x95, 0xeb, 0x76, 0x9c, 0x09, 0x67, 0x9c,
|
||||
0x61, 0x6a, 0xf5, 0x38, 0xae, 0xc5, 0xfc, 0xce, 0x9f, 0x13, 0xff, 0x57, 0x29, 0xfe, 0xaf, 0x0f, 0x8a, 0xff, 0xbb, 0x76,
|
||||
0xe7, 0x2a, 0xee, 0x27, 0x72, 0xd7, 0x33, 0xbb, 0x1a, 0xdb, 0x9c, 0xdf, 0x6b, 0xd5, 0x94, 0xfa, 0xc3, 0x29, 0x67, 0x4f,
|
||||
0x7c, 0x2b, 0x07, 0xd7, 0x78, 0x77, 0x93, 0x71, 0xdf, 0xbf, 0x56, 0x53, 0xd6, 0x32, 0x31, 0xdd, 0x8f, 0x28, 0xb2, 0xb4,
|
||||
0x3b, 0x41, 0x3d, 0x2f, 0x58, 0x0e, 0x64, 0x47, 0x59, 0xad, 0xe9, 0x53, 0xe8, 0xff, 0x5f, 0x5b, 0xfb, 0x48, 0x54, 0xf3,
|
||||
0x1e, 0xd7, 0x72, 0xac, 0xa7, 0xd0, 0xee, 0xcc, 0xc4, 0xdf, 0x5e, 0x16, 0xde, 0x4c, 0x8e, 0xb2, 0xae, 0xc5, 0x3a, 0xf2,
|
||||
0x6a, 0xab, 0x31, 0xd6, 0x7a, 0x98, 0xd9, 0x1a, 0x6d, 0xcd, 0xd4, 0x0d, 0x59, 0xdc, 0xab, 0xa1, 0xde, 0x5e, 0x54, 0xf2,
|
||||
0xc9, 0xd5, 0x6b, 0x80, 0xbc, 0x36, 0xff, 0x77, 0x15, 0x32, 0xd5, 0xaf, 0xe5, 0xe6, 0xab, 0xcc, 0xbd, 0x55, 0x8e, 0xaf,
|
||||
0x96, 0x73, 0x6f, 0x26, 0x6b, 0x7b, 0x4f, 0xfe, 0xe2, 0xd5, 0xf3, 0x73, 0x4d, 0xcd, 0x6a, 0xe5, 0xa5, 0xf6, 0x7f, 0x3d,
|
||||
0x02, 0xe6, 0x76, 0xa5, 0xdc, 0xe9, 0xd5, 0x54, 0x33, 0x76, 0xf7, 0xf7, 0x7e, 0xde, 0x9f, 0xff, 0x5f, 0xcb, 0xe0, 0xfd,
|
||||
0x59, 0xd9, 0x59, 0xd3, 0xf0, 0x3f, 0xfa, 0x3e, 0xeb, 0xed, 0x67, 0x38, 0x39, 0x5a, 0xfb, 0xf7, 0xc6, 0x7f, 0x8a, 0xe3,
|
||||
0xc9, 0xd9, 0x7a, 0x38, 0x4b, 0x39, 0x87, 0xc7, 0xf3, 0x5b, 0xe7, 0xc6, 0x3f, 0x9f, 0x78, 0x3f, 0xed, 0xe4, 0xb2, 0x7f,
|
||||
0xf6, 0x7b, 0xe6, 0xb1, 0x1e, 0xd3, 0x89, 0xd9, 0x97, 0xe7, 0xce, 0xc4, 0xda, 0x31, 0xa5, 0xf1, 0x8e, 0xad, 0xcd, 0xff,
|
||||
0x65, 0x63, 0x8e, 0x6f, 0x77, 0xbf, 0xde, 0x14, 0x66, 0x15, 0xff, 0x86, 0x5f, 0x0a, 0x7c, 0x3d, 0x03, 0x91, 0xbf, 0x22,
|
||||
0xf7, 0xf0, 0x4f, 0x3c, 0xc6, 0x8e, 0xe7, 0xff, 0xd5, 0x7e, 0x53, 0x6d, 0xe7, 0x80, 0xb9, 0x79, 0x9f, 0xca, 0xfc, 0x6e,
|
||||
0x75, 0xcc, 0x08, 0x54, 0x9e, 0x31, 0x57, 0x76, 0x0e, 0xe8, 0x18, 0xc1, 0x65, 0xf9, 0xf9, 0x3f, 0xf0, 0x53, 0x6a, 0xa2,
|
||||
0xda, 0xbc, 0x22, 0xf0, 0xfd, 0x47, 0x3b, 0x22, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8,
|
||||
0x9e, 0xbf, 0x88, 0x5e, 0x5f, 0xeb, 0xba, 0x9e, 0xeb, 0xb0, 0x9e, 0x71, 0x65, 0x76, 0x7d, 0xea, 0x55, 0xca, 0x1a, 0xb9,
|
||||
0x97, 0x9b, 0x66, 0x2e, 0x5b, 0x73, 0x3d, 0x5b, 0x5d, 0x35, 0x43, 0xd6, 0x5e, 0xe9, 0xf8, 0x95, 0xf5, 0x57, 0x5f, 0xd3,
|
||||
0xe7, 0x2d, 0xaf, 0x1c, 0x77, 0x16, 0x73, 0x18, 0xac, 0xdc, 0x53, 0xfd, 0xc7, 0xba, 0x77, 0x2e, 0xae, 0x62, 0x46, 0x9f,
|
||||
0x4a, 0xb6, 0xe3, 0x4a, 0xbc, 0xde, 0xe5, 0x3b, 0xcd, 0xe2, 0x67, 0x65, 0x39, 0xa7, 0xf3, 0xa8, 0x16, 0xc9, 0x60, 0xc5,
|
||||
0x68, 0x26, 0xd6, 0x9c, 0xee, 0xe5, 0x1b, 0xa8, 0x96, 0x8d, 0xaf, 0x7a, 0x3d, 0xcf, 0x49, 0x16, 0xeb, 0x8f, 0xb5, 0x1c,
|
||||
0x7d, 0x27, 0x8f, 0x7b, 0x7d, 0x0d, 0x73, 0x96, 0x73, 0x64, 0x5d, 0x8b, 0xad, 0x4d, 0x26, 0xda, 0x87, 0xea, 0xb9, 0x98,
|
||||
0x6d, 0x01, 0x57, 0xdb, 0xcd, 0xd5, 0x9a, 0xa4, 0x1a, 0xff, 0xd5, 0xcf, 0x3a, 0x13, 0xff, 0x77, 0xc7, 0x96, 0xdb, 0x9c,
|
||||
0x13, 0xd9, 0xcc, 0x6f, 0xf8, 0x6c, 0xaf, 0xb0, 0xa7, 0xfd, 0x4d, 0x71, 0x8d, 0xfe, 0xf9, 0x75, 0x81, 0xa7, 0x56, 0x07,
|
||||
0xd6, 0x73, 0x47, 0xbf, 0x71, 0x0f, 0xa4, 0x2d, 0x6b, 0xe4, 0x5c, 0x3e, 0xd6, 0xf5, 0xf8, 0x5f, 0x1d, 0x2f, 0xac, 0xe6,
|
||||
0x33, 0xcc, 0x44, 0xeb, 0x34, 0xdb, 0xfe, 0x67, 0xeb, 0xea, 0x3f, 0xdf, 0xff, 0xbf, 0x36, 0xda, 0xd0, 0xb9, 0xd1, 0xc1,
|
||||
0x6c, 0x1e, 0x8e, 0xd5, 0xbb, 0xa9, 0x5e, 0x3a, 0xce, 0x0d, 0xbc, 0xf7, 0xd7, 0xf1, 0xfd, 0x77, 0xf7, 0x4e, 0x95, 0x91,
|
||||
0x52, 0xb6, 0x33, 0x36, 0x65, 0xf9, 0x6c, 0xdc, 0x1f, 0xf5, 0x7a, 0xce, 0xe5, 0xd5, 0xf8, 0x1f, 0xd5, 0x26, 0x6b, 0x23,
|
||||
0xb8, 0x71, 0xfb, 0x3f, 0x93, 0x6b, 0x72, 0x6f, 0xb7, 0x8a, 0x1c, 0x89, 0xc3, 0x7a, 0xe9, 0xce, 0x4e, 0x27, 0x7f, 0xaa,
|
||||
0x13, 0x53, 0xae, 0x99, 0x72, 0xac, 0xf4, 0xc4, 0xf8, 0x7f, 0x9c, 0x71, 0x24, 0x85, 0x7c, 0x25, 0x3b, 0xa3, 0xa8, 0xdd,
|
||||
0xf6, 0xa5, 0xe3, 0xdd, 0xb2, 0xb5, 0x97, 0xc3, 0xb9, 0x6f, 0xdd, 0x31, 0xfe, 0x3f, 0x3b, 0xff, 0xb7, 0xbf, 0xe3, 0x58,
|
||||
0xcf, 0x6e, 0x45, 0xab, 0xb5, 0xd9, 0xaf, 0xe7, 0x22, 0x1f, 0xd2, 0xab, 0xa9, 0xd5, 0x0e, 0xfb, 0x7f, 0x1d, 0xcf, 0x59,
|
||||
0xe7, 0xa5, 0xf8, 0xef, 0x1d, 0x09, 0xe5, 0xc0, 0xfc, 0xe4, 0xf3, 0xd1, 0xbf, 0x32, 0xfe, 0xef, 0x98, 0x31, 0xab, 0xee,
|
||||
0x38, 0x72, 0xb6, 0xb4, 0xb2, 0xe3, 0xea, 0xfc, 0x3d, 0xf9, 0x44, 0x0b, 0xdf, 0xb5, 0x4f, 0xc2, 0x4f, 0x8d, 0xff, 0x37,
|
||||
0xf7, 0x18, 0xd9, 0x89, 0xff, 0xf3, 0x59, 0x9a, 0xf3, 0x87, 0x79, 0xbd, 0xdd, 0x4f, 0x1c, 0xed, 0x11, 0x9b, 0xf6, 0x38,
|
||||
0xdc, 0x8f, 0xe1, 0x9d, 0xd2, 0xb9, 0x7d, 0x78, 0x6a, 0x51, 0xba, 0x53, 0xfa, 0x56, 0xfb, 0x3f, 0x33, 0x0b, 0xf5, 0x74,
|
||||
0xfc, 0x77, 0xce, 0x86, 0xe6, 0x50, 0xeb, 0xb8, 0x3e, 0x9a, 0xe8, 0x9f, 0x1b, 0xed, 0xf8, 0xc4, 0x6a, 0xcb, 0xf0, 0x4e,
|
||||
0xff, 0xbf, 0xfe, 0xfb, 0x8b, 0x7f, 0xce, 0x66, 0xa5, 0x38, 0xab, 0xf5, 0x93, 0xc6, 0xff, 0xd7, 0xd4, 0xae, 0x51, 0x79,
|
||||
0x69, 0xfc, 0xff, 0x19, 0xaf, 0xff, 0x7b, 0x7f, 0x81, 0x75, 0x1d, 0x6e, 0x87, 0x9f, 0x2e, 0x3d, 0xdf, 0x63, 0xdc, 0x2b,
|
||||
0xcd, 0x2b, 0xed, 0xff, 0xdc, 0x48, 0xf4, 0xbd, 0xf8, 0xef, 0xea, 0x2f, 0xab, 0x09, 0x3a, 0xe7, 0x59, 0xde, 0x6d, 0xc3,
|
||||
0x6b, 0xbb, 0x38, 0xee, 0xfd, 0xda, 0x66, 0x76, 0x74, 0x50, 0x2b, 0xcd, 0xe1, 0xf1, 0xff, 0xee, 0x55, 0xae, 0x1c, 0xcf,
|
||||
0xa7, 0xc4, 0xbf, 0xbc, 0xea, 0xa7, 0xea, 0x8c, 0x4a, 0x1c, 0x3e, 0x15, 0xc3, 0xcf, 0xdf, 0x4d, 0x7b, 0xcf, 0xff, 0xd7,
|
||||
0xeb, 0xe8, 0xb5, 0xe7, 0xff, 0x3b, 0x2d, 0xc3, 0xd3, 0xcf, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x80, 0xef, 0xb7, 0xfe, 0x6c, 0x9c, 0x99, 0xa6, 0x9e, 0xd5, 0x7b, 0x37, 0x2b, 0xc0, 0xde, 0x11, 0xa5, 0xb4, 0xf6,
|
||||
0x6c, 0x36, 0xb7, 0x75, 0xf7, 0xfa, 0xb4, 0x7a, 0x7e, 0xf0, 0x6c, 0xac, 0x3a, 0xac, 0xff, 0xba, 0xfc, 0xd4, 0x71, 0x9e,
|
||||
0xca, 0xc2, 0x55, 0xb9, 0x1f, 0x9e, 0xbb, 0x96, 0x69, 0xbf, 0xc2, 0xb3, 0xef, 0x51, 0xcd, 0x05, 0x9d, 0xa5, 0x1c, 0x10,
|
||||
0xab, 0x71, 0x96, 0xcd, 0x0c, 0xf5, 0xf5, 0xb5, 0x67, 0xb3, 0xb5, 0x4e, 0x6f, 0xe6, 0xea, 0x6c, 0xe4, 0x87, 0xae, 0x9f,
|
||||
0xa3, 0x9d, 0xd5, 0xa5, 0xdd, 0xc7, 0xb9, 0x7e, 0xc5, 0x3a, 0x72, 0x73, 0x67, 0xe3, 0xcc, 0x67, 0xf9, 0xcc, 0x64, 0x50,
|
||||
0x3b, 0xe5, 0x91, 0x75, 0xa5, 0xbd, 0x99, 0x0b, 0x56, 0x57, 0x34, 0x3e, 0xb7, 0xd6, 0xb6, 0xbe, 0x0a, 0x6c, 0x37, 0xbf,
|
||||
0xd5, 0x73, 0xfd, 0xb7, 0x6a, 0x5f, 0xe4, 0xd7, 0xa3, 0xcc, 0x07, 0xe4, 0x74, 0x38, 0xbb, 0x9a, 0xed, 0xcc, 0x5e, 0x23,
|
||||
0xe7, 0xbf, 0xe1, 0xde, 0xde, 0x21, 0x3b, 0x6b, 0x08, 0x53, 0xec, 0x51, 0x8d, 0x32, 0x1a, 0xdc, 0xc7, 0xe7, 0x6e, 0xf9,
|
||||
0x5c, 0x0e, 0xb8, 0x6b, 0x22, 0x33, 0x6d, 0x0a, 0xd9, 0x2f, 0x32, 0x58, 0xd7, 0xde, 0x5d, 0x56, 0xbb, 0x47, 0x67, 0xf2,
|
||||
0x96, 0xe7, 0xc0, 0x1d, 0x75, 0xbd, 0x98, 0x9b, 0xeb, 0x5a, 0x6e, 0x93, 0x53, 0x6c, 0x7b, 0x3b, 0x4b, 0x3a, 0xea, 0xe7,
|
||||
0x6a, 0x2f, 0x6f, 0xa6, 0x6c, 0x3d, 0xa3, 0xe1, 0x4c, 0xcf, 0xf2, 0x99, 0xf2, 0xf5, 0x5c, 0xe6, 0xb3, 0xd9, 0x6f, 0xf2,
|
||||
0x58, 0x59, 0xca, 0x77, 0xdb, 0x35, 0x91, 0x87, 0xff, 0xd4, 0x5d, 0xf3, 0x7c, 0x36, 0x8b, 0x4a, 0x0d, 0x5a, 0xcb, 0x91,
|
||||
0xf8, 0x5c, 0xc9, 0x6c, 0xae, 0x83, 0x13, 0x57, 0xeb, 0x2a, 0xde, 0x39, 0x9f, 0x11, 0xff, 0xb9, 0xbd, 0xe6, 0xd7, 0x56,
|
||||
0xdd, 0xd6, 0xdd, 0x2e, 0xce, 0xb4, 0x99, 0xf5, 0x7a, 0xa3, 0xfa, 0xb9, 0xb5, 0xac, 0x34, 0x73, 0xd9, 0x79, 0xae, 0xe9,
|
||||
0x91, 0x7e, 0x65, 0x8f, 0xca, 0x95, 0x4f, 0xad, 0xb4, 0x03, 0x4f, 0x95, 0x54, 0x46, 0x30, 0x4f, 0xc5, 0xff, 0x67, 0xb4,
|
||||
0xef, 0xb5, 0xdd, 0x0d, 0xc7, 0xe3, 0xff, 0x94, 0x7b, 0x45, 0xfd, 0x65, 0x29, 0xcf, 0xde, 0x74, 0xcc, 0x0b, 0xa5, 0xb5,
|
||||
0xec, 0x6a, 0x9a, 0x9f, 0xaf, 0xec, 0x66, 0xf7, 0xb9, 0xf1, 0x5f, 0xdd, 0x3b, 0xe6, 0xad, 0xf8, 0xcf, 0xc7, 0xb7, 0xff,
|
||||
0xeb, 0xbb, 0x9b, 0xfe, 0xf9, 0x19, 0x55, 0x4a, 0x3d, 0x8b, 0xce, 0xb2, 0xab, 0xb8, 0xef, 0xda, 0x6e, 0xaf, 0xf9, 0xc4,
|
||||
0xf8, 0x66, 0x36, 0x27, 0xf0, 0x93, 0xf1, 0x5f, 0xb9, 0x2a, 0xbd, 0x25, 0xbb, 0x33, 0x43, 0x6f, 0xb4, 0xff, 0xf3, 0xcf,
|
||||
0x0d, 0xde, 0x8a, 0xff, 0xea, 0xf3, 0xff, 0x99, 0xbd, 0x3c, 0x4f, 0xb4, 0x8c, 0x95, 0x96, 0xfc, 0xec, 0x3e, 0x09, 0x27,
|
||||
0xc6, 0x39, 0xa7, 0xdb, 0xff, 0xca, 0x78, 0xe4, 0x1a, 0xee, 0xfc, 0x7e, 0xba, 0xe4, 0xda, 0x9e, 0xf9, 0xfd, 0xb4, 0x19,
|
||||
0x99, 0xa7, 0xc6, 0xf7, 0x9f, 0xb5, 0xdf, 0xea, 0xf5, 0xda, 0xf3, 0xb4, 0x9f, 0x70, 0xac, 0x1d, 0x33, 0x00, 0xcf, 0x3f,
|
||||
0x73, 0xfc, 0xb4, 0x73, 0x57, 0xdd, 0x89, 0xe5, 0xb9, 0xef, 0xd3, 0x51, 0x3e, 0xf3, 0xbd, 0xe5, 0x4c, 0xe5, 0x6f, 0xfa,
|
||||
0xf5, 0xef, 0x67, 0xe5, 0x10, 0x1e, 0xff, 0x86, 0x76, 0xaf, 0xfc, 0xb9, 0xdf, 0x4d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xa9, 0xdf, 0xde, 0xd7, 0xd7, 0xbd, 0x57, 0xd7, 0x7c, 0xf7, 0x67, 0xe2, 0x8e, 0x35,
|
||||
0x3c, 0xd0, 0xb6, 0x16, 0x34, 0x93, 0xb9, 0xe0, 0xba, 0x63, 0x31, 0x5b, 0x99, 0x4d, 0x80, 0xf9, 0x36, 0xff, 0x8d, 0x75,
|
||||
0x7e, 0xd5, 0xcf, 0xcd, 0x30, 0xf3, 0x82, 0x55, 0x7c, 0x30, 0x1f, 0xff, 0x19, 0xe6, 0x32, 0xea, 0x2e, 0xbd, 0x26, 0xb2,
|
||||
0x0b, 0x5c, 0x85, 0xfc, 0x55, 0xd1, 0x47, 0x80, 0xa5, 0xf8, 0x9f, 0xc9, 0xc8, 0xfd, 0x49, 0xa5, 0x29, 0xef, 0x3e, 0x06,
|
||||
0xfc, 0x79, 0x94, 0xfd, 0xbd, 0xe2, 0x7f, 0x27, 0x7f, 0x3d, 0xf0, 0x7e, 0xfc, 0xa7, 0x58, 0x5a, 0xcf, 0x15, 0x0b, 0xfc,
|
||||
0xda, 0xfb, 0x9f, 0x99, 0xfd, 0x4f, 0x7b, 0xe9, 0xd5, 0xb0, 0xc7, 0x44, 0xf5, 0xa9, 0x24, 0xd0, 0xf1, 0x7c, 0x70, 0xa7,
|
||||
0xb4, 0xfe, 0x9b, 0x84, 0x99, 0xe7, 0x19, 0xae, 0x1c, 0x7c, 0xff, 0xe7, 0x92, 0xb5, 0xfa, 0xca, 0x19, 0x84, 0xef, 0xdf,
|
||||
0xef, 0x70, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x79, 0xff, 0xf9, 0xe7, 0x3c, 0x80, 0xf8, 0x07, 0xfe, 0xba, 0xf8, 0xff, 0x17 };
|
||||
|
||||
// Font glyphs rectangles data (on atlas)
|
||||
static const Rectangle cherryFontRecs[189] = {
|
||||
{ 4, 4, 5 , 15 },
|
||||
{ 17, 4, 3 , 10 },
|
||||
{ 28, 4, 5 , 2 },
|
||||
{ 41, 4, 10 , 10 },
|
||||
{ 59, 4, 7 , 11 },
|
||||
{ 74, 4, 7 , 10 },
|
||||
{ 89, 4, 8 , 10 },
|
||||
{ 105, 4, 1 , 2 },
|
||||
{ 114, 4, 3 , 10 },
|
||||
{ 125, 4, 3 , 10 },
|
||||
{ 136, 4, 3 , 3 },
|
||||
{ 147, 4, 7 , 7 },
|
||||
{ 162, 4, 2 , 2 },
|
||||
{ 172, 4, 6 , 3 },
|
||||
{ 186, 4, 1 , 1 },
|
||||
{ 195, 4, 4 , 10 },
|
||||
{ 207, 4, 5 , 8 },
|
||||
{ 220, 4, 5 , 8 },
|
||||
{ 233, 4, 5 , 8 },
|
||||
{ 246, 4, 5 , 8 },
|
||||
{ 259, 4, 5 , 8 },
|
||||
{ 272, 4, 5 , 8 },
|
||||
{ 285, 4, 5 , 8 },
|
||||
{ 298, 4, 5 , 8 },
|
||||
{ 311, 4, 5 , 8 },
|
||||
{ 324, 4, 5 , 8 },
|
||||
{ 337, 4, 3 , 10 },
|
||||
{ 348, 4, 3 , 12 },
|
||||
{ 359, 4, 6 , 7 },
|
||||
{ 373, 4, 6 , 4 },
|
||||
{ 387, 4, 6 , 7 },
|
||||
{ 401, 4, 5 , 10 },
|
||||
{ 414, 4, 8 , 10 },
|
||||
{ 430, 4, 7 , 9 },
|
||||
{ 445, 4, 7 , 9 },
|
||||
{ 460, 4, 6 , 9 },
|
||||
{ 474, 4, 6 , 9 },
|
||||
{ 488, 4, 7 , 9 },
|
||||
{ 4, 27, 6 , 9 },
|
||||
{ 18, 27, 6 , 9 },
|
||||
{ 32, 27, 7 , 9 },
|
||||
{ 47, 27, 3 , 9 },
|
||||
{ 58, 27, 6 , 9 },
|
||||
{ 72, 27, 7 , 9 },
|
||||
{ 87, 27, 7 , 9 },
|
||||
{ 102, 27, 11 , 9 },
|
||||
{ 121, 27, 8 , 9 },
|
||||
{ 137, 27, 6 , 9 },
|
||||
{ 151, 27, 6 , 9 },
|
||||
{ 165, 27, 7 , 9 },
|
||||
{ 180, 27, 7 , 9 },
|
||||
{ 195, 27, 6 , 9 },
|
||||
{ 209, 27, 7 , 9 },
|
||||
{ 224, 27, 8 , 9 },
|
||||
{ 240, 27, 9 , 9 },
|
||||
{ 257, 27, 11 , 9 },
|
||||
{ 276, 27, 7 , 9 },
|
||||
{ 291, 27, 7 , 9 },
|
||||
{ 306, 27, 7 , 9 },
|
||||
{ 321, 27, 3 , 9 },
|
||||
{ 332, 27, 4 , 10 },
|
||||
{ 344, 27, 3 , 9 },
|
||||
{ 355, 27, 3 , 3 },
|
||||
{ 366, 27, 7 , 2 },
|
||||
{ 381, 27, 2 , 2 },
|
||||
{ 391, 27, 6 , 6 },
|
||||
{ 405, 27, 6 , 9 },
|
||||
{ 419, 27, 6 , 6 },
|
||||
{ 433, 27, 6 , 9 },
|
||||
{ 447, 27, 6 , 6 },
|
||||
{ 461, 27, 5 , 9 },
|
||||
{ 474, 27, 5 , 9 },
|
||||
{ 487, 27, 7 , 9 },
|
||||
{ 4, 50, 3 , 7 },
|
||||
{ 15, 50, 3 , 8 },
|
||||
{ 26, 50, 6 , 9 },
|
||||
{ 40, 50, 4 , 9 },
|
||||
{ 52, 50, 11 , 6 },
|
||||
{ 71, 50, 7 , 6 },
|
||||
{ 86, 50, 5 , 6 },
|
||||
{ 99, 50, 6 , 8 },
|
||||
{ 113, 50, 6 , 8 },
|
||||
{ 127, 50, 5 , 6 },
|
||||
{ 140, 50, 5 , 6 },
|
||||
{ 153, 50, 5 , 9 },
|
||||
{ 166, 50, 7 , 6 },
|
||||
{ 181, 50, 7 , 6 },
|
||||
{ 196, 50, 11 , 6 },
|
||||
{ 215, 50, 7 , 6 },
|
||||
{ 230, 50, 7 , 8 },
|
||||
{ 245, 50, 6 , 6 },
|
||||
{ 259, 50, 5 , 9 },
|
||||
{ 272, 50, 1 , 9 },
|
||||
{ 281, 50, 5 , 9 },
|
||||
{ 294, 50, 7 , 3 },
|
||||
{ 309, 50, 3 , 10 },
|
||||
{ 320, 50, 7 , 10 },
|
||||
{ 335, 50, 7 , 10 },
|
||||
{ 350, 50, 6 , 9 },
|
||||
{ 364, 50, 7 , 9 },
|
||||
{ 379, 50, 6 , 12 },
|
||||
{ 393, 50, 7 , 11 },
|
||||
{ 408, 50, 5 , 9 },
|
||||
{ 421, 50, 5 , 5 },
|
||||
{ 434, 50, 4 , 5 },
|
||||
{ 446, 50, 6 , 7 },
|
||||
{ 460, 50, 6 , 3 },
|
||||
{ 474, 50, 5 , 5 },
|
||||
{ 487, 50, 6 , 1 },
|
||||
{ 4, 73, 3 , 3 },
|
||||
{ 15, 73, 7 , 10 },
|
||||
{ 30, 73, 3 , 5 },
|
||||
{ 41, 73, 3 , 5 },
|
||||
{ 52, 73, 7 , 12 },
|
||||
{ 67, 73, 6 , 8 },
|
||||
{ 81, 73, 7 , 9 },
|
||||
{ 96, 73, 2 , 3 },
|
||||
{ 106, 73, 6 , 9 },
|
||||
{ 120, 73, 3 , 5 },
|
||||
{ 131, 73, 3 , 5 },
|
||||
{ 142, 73, 6 , 7 },
|
||||
{ 156, 73, 13 , 9 },
|
||||
{ 177, 73, 10 , 6 },
|
||||
{ 195, 73, 7 , 11 },
|
||||
{ 210, 73, 5 , 10 },
|
||||
{ 223, 73, 7 , 12 },
|
||||
{ 238, 73, 7 , 12 },
|
||||
{ 253, 73, 7 , 12 },
|
||||
{ 268, 73, 7 , 12 },
|
||||
{ 283, 73, 7 , 11 },
|
||||
{ 298, 73, 7 , 11 },
|
||||
{ 313, 73, 12 , 9 },
|
||||
{ 333, 73, 6 , 11 },
|
||||
{ 347, 73, 7 , 12 },
|
||||
{ 362, 73, 7 , 12 },
|
||||
{ 377, 73, 7 , 12 },
|
||||
{ 392, 73, 7 , 11 },
|
||||
{ 407, 73, 3 , 12 },
|
||||
{ 418, 73, 3 , 12 },
|
||||
{ 429, 73, 3 , 12 },
|
||||
{ 440, 73, 3 , 11 },
|
||||
{ 451, 73, 7 , 9 },
|
||||
{ 466, 73, 8 , 12 },
|
||||
{ 482, 73, 6 , 12 },
|
||||
{ 496, 73, 6 , 12 },
|
||||
{ 4, 96, 6 , 12 },
|
||||
{ 18, 96, 6 , 12 },
|
||||
{ 32, 96, 6 , 11 },
|
||||
{ 46, 96, 5 , 5 },
|
||||
{ 59, 96, 8 , 9 },
|
||||
{ 75, 96, 8 , 12 },
|
||||
{ 91, 96, 8 , 12 },
|
||||
{ 107, 96, 8 , 12 },
|
||||
{ 123, 96, 8 , 11 },
|
||||
{ 139, 96, 7 , 12 },
|
||||
{ 154, 96, 7 , 9 },
|
||||
{ 169, 96, 8 , 9 },
|
||||
{ 185, 96, 6 , 9 },
|
||||
{ 199, 96, 6 , 9 },
|
||||
{ 213, 96, 6 , 9 },
|
||||
{ 227, 96, 6 , 9 },
|
||||
{ 241, 96, 6 , 8 },
|
||||
{ 255, 96, 6 , 10 },
|
||||
{ 269, 96, 10 , 6 },
|
||||
{ 287, 96, 6 , 8 },
|
||||
{ 301, 96, 6 , 9 },
|
||||
{ 315, 96, 6 , 9 },
|
||||
{ 329, 96, 6 , 9 },
|
||||
{ 343, 96, 6 , 8 },
|
||||
{ 357, 96, 3 , 10 },
|
||||
{ 368, 96, 3 , 10 },
|
||||
{ 379, 96, 3 , 10 },
|
||||
{ 390, 96, 3 , 9 },
|
||||
{ 401, 96, 6 , 10 },
|
||||
{ 415, 96, 7 , 9 },
|
||||
{ 430, 96, 5 , 9 },
|
||||
{ 443, 96, 5 , 9 },
|
||||
{ 456, 96, 5 , 9 },
|
||||
{ 469, 96, 5 , 9 },
|
||||
{ 482, 96, 5 , 8 },
|
||||
{ 495, 96, 7 , 9 },
|
||||
{ 4, 119, 8 , 8 },
|
||||
{ 20, 119, 7 , 9 },
|
||||
{ 35, 119, 7 , 9 },
|
||||
{ 50, 119, 7 , 9 },
|
||||
{ 65, 119, 7 , 8 },
|
||||
{ 80, 119, 7 , 11 },
|
||||
{ 95, 119, 5 , 8 },
|
||||
{ 108, 119, 7 , 10 },
|
||||
};
|
||||
|
||||
// Font glyphs info data
|
||||
// NOTE: No glyphs.image data provided
|
||||
static const GlyphInfo cherryFontGlyphs[189] = {
|
||||
{ 32, 0, 0, 5, { 0 }},
|
||||
{ 33, 0, 2, 4, { 0 }},
|
||||
{ 34, 0, 2, 6, { 0 }},
|
||||
{ 35, 0, 2, 11, { 0 }},
|
||||
{ 36, 0, 2, 8, { 0 }},
|
||||
{ 37, 0, 2, 8, { 0 }},
|
||||
{ 38, 0, 2, 9, { 0 }},
|
||||
{ 39, 0, 2, 2, { 0 }},
|
||||
{ 40, 0, 2, 4, { 0 }},
|
||||
{ 41, 0, 2, 4, { 0 }},
|
||||
{ 42, 0, 2, 4, { 0 }},
|
||||
{ 43, 0, 4, 8, { 0 }},
|
||||
{ 44, 0, 11, 3, { 0 }},
|
||||
{ 45, 0, 6, 7, { 0 }},
|
||||
{ 46, 0, 11, 2, { 0 }},
|
||||
{ 47, 0, 2, 5, { 0 }},
|
||||
{ 48, 0, 4, 6, { 0 }},
|
||||
{ 49, 0, 4, 6, { 0 }},
|
||||
{ 50, 0, 4, 6, { 0 }},
|
||||
{ 51, 0, 4, 6, { 0 }},
|
||||
{ 52, 0, 4, 6, { 0 }},
|
||||
{ 53, 0, 4, 6, { 0 }},
|
||||
{ 54, 0, 4, 6, { 0 }},
|
||||
{ 55, 0, 4, 6, { 0 }},
|
||||
{ 56, 0, 4, 6, { 0 }},
|
||||
{ 57, 0, 4, 6, { 0 }},
|
||||
{ 58, 0, 2, 4, { 0 }},
|
||||
{ 59, 0, 2, 4, { 0 }},
|
||||
{ 60, 0, 4, 7, { 0 }},
|
||||
{ 61, 0, 5, 7, { 0 }},
|
||||
{ 62, 0, 4, 7, { 0 }},
|
||||
{ 63, 0, 2, 6, { 0 }},
|
||||
{ 64, 0, 2, 9, { 0 }},
|
||||
{ 65, 0, 3, 8, { 0 }},
|
||||
{ 66, 0, 3, 8, { 0 }},
|
||||
{ 67, 0, 3, 7, { 0 }},
|
||||
{ 68, 0, 3, 7, { 0 }},
|
||||
{ 69, 0, 3, 8, { 0 }},
|
||||
{ 70, 0, 3, 7, { 0 }},
|
||||
{ 71, 0, 3, 7, { 0 }},
|
||||
{ 72, 0, 3, 8, { 0 }},
|
||||
{ 73, 0, 3, 4, { 0 }},
|
||||
{ 74, 0, 3, 7, { 0 }},
|
||||
{ 75, 0, 3, 8, { 0 }},
|
||||
{ 76, 0, 3, 8, { 0 }},
|
||||
{ 77, 0, 3, 12, { 0 }},
|
||||
{ 78, 0, 3, 9, { 0 }},
|
||||
{ 79, 0, 3, 7, { 0 }},
|
||||
{ 80, 0, 3, 7, { 0 }},
|
||||
{ 81, 0, 3, 8, { 0 }},
|
||||
{ 82, 0, 3, 8, { 0 }},
|
||||
{ 83, 0, 3, 7, { 0 }},
|
||||
{ 84, 0, 3, 8, { 0 }},
|
||||
{ 85, 0, 3, 9, { 0 }},
|
||||
{ 86, 0, 3, 10, { 0 }},
|
||||
{ 87, 0, 3, 12, { 0 }},
|
||||
{ 88, 0, 3, 8, { 0 }},
|
||||
{ 89, 0, 3, 8, { 0 }},
|
||||
{ 90, 0, 3, 8, { 0 }},
|
||||
{ 91, 0, 3, 4, { 0 }},
|
||||
{ 92, 0, 2, 5, { 0 }},
|
||||
{ 93, 0, 3, 4, { 0 }},
|
||||
{ 94, 0, 3, 4, { 0 }},
|
||||
{ 95, 0, 10, 8, { 0 }},
|
||||
{ 96, 0, 2, 3, { 0 }},
|
||||
{ 97, 0, 6, 7, { 0 }},
|
||||
{ 98, 0, 3, 7, { 0 }},
|
||||
{ 99, 0, 6, 7, { 0 }},
|
||||
{ 100, 0, 3, 7, { 0 }},
|
||||
{ 101, 0, 6, 7, { 0 }},
|
||||
{ 102, 0, 3, 6, { 0 }},
|
||||
{ 103, 0, 5, 6, { 0 }},
|
||||
{ 104, 0, 3, 8, { 0 }},
|
||||
{ 105, 0, 5, 4, { 0 }},
|
||||
{ 106, 0, 5, 4, { 0 }},
|
||||
{ 107, 0, 3, 7, { 0 }},
|
||||
{ 108, 0, 3, 5, { 0 }},
|
||||
{ 109, 0, 6, 12, { 0 }},
|
||||
{ 110, 0, 6, 8, { 0 }},
|
||||
{ 111, 0, 6, 6, { 0 }},
|
||||
{ 112, 0, 6, 7, { 0 }},
|
||||
{ 113, 0, 6, 7, { 0 }},
|
||||
{ 114, 0, 6, 6, { 0 }},
|
||||
{ 115, 0, 6, 6, { 0 }},
|
||||
{ 116, 0, 3, 6, { 0 }},
|
||||
{ 117, 0, 6, 8, { 0 }},
|
||||
{ 118, 0, 6, 8, { 0 }},
|
||||
{ 119, 0, 6, 12, { 0 }},
|
||||
{ 120, 0, 6, 8, { 0 }},
|
||||
{ 121, 0, 6, 8, { 0 }},
|
||||
{ 122, 0, 6, 7, { 0 }},
|
||||
{ 123, 0, 3, 6, { 0 }},
|
||||
{ 124, 0, 3, 2, { 0 }},
|
||||
{ 125, 0, 3, 6, { 0 }},
|
||||
{ 126, 0, 6, 8, { 0 }},
|
||||
{ 161, 0, 4, 4, { 0 }},
|
||||
{ 162, 0, 4, 8, { 0 }},
|
||||
{ 163, 0, 2, 8, { 0 }},
|
||||
{ 8364, 0, 3, 7, { 0 }},
|
||||
{ 165, 0, 3, 8, { 0 }},
|
||||
{ 352, 0, 0, 7, { 0 }},
|
||||
{ 167, 0, 2, 8, { 0 }},
|
||||
{ 353, 0, 3, 6, { 0 }},
|
||||
{ 169, 0, 1, 6, { 0 }},
|
||||
{ 170, 0, 2, 5, { 0 }},
|
||||
{ 171, 0, 5, 7, { 0 }},
|
||||
{ 172, 0, 6, 7, { 0 }},
|
||||
{ 174, 0, 1, 6, { 0 }},
|
||||
{ 175, 0, 2, 7, { 0 }},
|
||||
{ 176, 0, 2, 4, { 0 }},
|
||||
{ 177, 0, 3, 8, { 0 }},
|
||||
{ 178, 0, 2, 4, { 0 }},
|
||||
{ 179, 0, 2, 4, { 0 }},
|
||||
{ 381, 0, 0, 8, { 0 }},
|
||||
{ 181, 0, 6, 7, { 0 }},
|
||||
{ 182, 0, 3, 8, { 0 }},
|
||||
{ 183, 0, 6, 3, { 0 }},
|
||||
{ 382, 0, 3, 7, { 0 }},
|
||||
{ 185, 0, 2, 4, { 0 }},
|
||||
{ 186, 0, 2, 4, { 0 }},
|
||||
{ 187, 0, 5, 7, { 0 }},
|
||||
{ 338, 0, 3, 14, { 0 }},
|
||||
{ 339, 0, 6, 11, { 0 }},
|
||||
{ 376, 0, 1, 8, { 0 }},
|
||||
{ 191, 0, 4, 6, { 0 }},
|
||||
{ 192, 0, 0, 8, { 0 }},
|
||||
{ 193, 0, 0, 8, { 0 }},
|
||||
{ 194, 0, 0, 8, { 0 }},
|
||||
{ 195, 0, 0, 8, { 0 }},
|
||||
{ 196, 0, 1, 8, { 0 }},
|
||||
{ 197, 0, 1, 8, { 0 }},
|
||||
{ 198, 0, 3, 13, { 0 }},
|
||||
{ 199, 0, 3, 7, { 0 }},
|
||||
{ 200, 0, 0, 8, { 0 }},
|
||||
{ 201, 0, 0, 8, { 0 }},
|
||||
{ 202, 0, 0, 8, { 0 }},
|
||||
{ 203, 0, 1, 8, { 0 }},
|
||||
{ 204, 0, 0, 4, { 0 }},
|
||||
{ 205, 0, 0, 4, { 0 }},
|
||||
{ 206, 0, 0, 4, { 0 }},
|
||||
{ 207, 0, 1, 4, { 0 }},
|
||||
{ 208, 0, 3, 8, { 0 }},
|
||||
{ 209, 0, 0, 9, { 0 }},
|
||||
{ 210, 0, 0, 7, { 0 }},
|
||||
{ 211, 0, 0, 7, { 0 }},
|
||||
{ 212, 0, 0, 7, { 0 }},
|
||||
{ 213, 0, 0, 7, { 0 }},
|
||||
{ 214, 0, 1, 7, { 0 }},
|
||||
{ 215, 1, 5, 7, { 0 }},
|
||||
{ 216, 0, 3, 9, { 0 }},
|
||||
{ 217, 0, 0, 9, { 0 }},
|
||||
{ 218, 0, 0, 9, { 0 }},
|
||||
{ 219, 0, 0, 9, { 0 }},
|
||||
{ 220, 0, 1, 9, { 0 }},
|
||||
{ 221, 0, 0, 8, { 0 }},
|
||||
{ 222, 0, 2, 8, { 0 }},
|
||||
{ 223, 0, 3, 9, { 0 }},
|
||||
{ 224, 0, 3, 7, { 0 }},
|
||||
{ 225, 0, 3, 7, { 0 }},
|
||||
{ 226, 0, 3, 7, { 0 }},
|
||||
{ 227, 0, 3, 7, { 0 }},
|
||||
{ 228, 0, 4, 7, { 0 }},
|
||||
{ 229, 0, 2, 7, { 0 }},
|
||||
{ 230, 0, 6, 11, { 0 }},
|
||||
{ 231, 0, 6, 7, { 0 }},
|
||||
{ 232, 0, 3, 7, { 0 }},
|
||||
{ 233, 0, 3, 7, { 0 }},
|
||||
{ 234, 0, 3, 7, { 0 }},
|
||||
{ 235, 0, 4, 7, { 0 }},
|
||||
{ 236, 0, 2, 4, { 0 }},
|
||||
{ 237, 0, 2, 4, { 0 }},
|
||||
{ 238, 0, 2, 4, { 0 }},
|
||||
{ 239, 0, 3, 4, { 0 }},
|
||||
{ 240, 0, 2, 7, { 0 }},
|
||||
{ 241, 0, 3, 8, { 0 }},
|
||||
{ 242, 0, 3, 6, { 0 }},
|
||||
{ 243, 0, 3, 6, { 0 }},
|
||||
{ 244, 0, 3, 6, { 0 }},
|
||||
{ 245, 0, 3, 6, { 0 }},
|
||||
{ 246, 0, 4, 6, { 0 }},
|
||||
{ 247, 0, 3, 8, { 0 }},
|
||||
{ 248, 0, 4, 9, { 0 }},
|
||||
{ 249, 0, 3, 8, { 0 }},
|
||||
{ 250, 0, 3, 8, { 0 }},
|
||||
{ 251, 0, 3, 8, { 0 }},
|
||||
{ 252, 0, 4, 8, { 0 }},
|
||||
{ 253, 0, 3, 8, { 0 }},
|
||||
{ 254, 0, 4, 6, { 0 }},
|
||||
{ 255, 0, 4, 8, { 0 }},
|
||||
};
|
||||
|
||||
// Style loading function: Cherry
|
||||
static void GuiLoadStyleCherry(void)
|
||||
{
|
||||
// Load style properties provided
|
||||
// NOTE: Default properties are propagated
|
||||
for (int i = 0; i < CHERRY_STYLE_PROPS_COUNT; i++)
|
||||
{
|
||||
GuiSetStyle(cherryStyleProps[i].controlId, cherryStyleProps[i].propertyId, cherryStyleProps[i].propertyValue);
|
||||
}
|
||||
|
||||
// Custom font loading
|
||||
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
|
||||
int cherryFontDataSize = 0;
|
||||
unsigned char *data = DecompressData(cherryFontData, CHERRY_STYLE_FONT_ATLAS_COMP_SIZE, &cherryFontDataSize);
|
||||
Image imFont = { data, 512, 256, 1, 2 };
|
||||
|
||||
Font font = { 0 };
|
||||
font.baseSize = 15;
|
||||
font.glyphCount = 189;
|
||||
|
||||
// Load texture from image
|
||||
font.texture = LoadTextureFromImage(imFont);
|
||||
UnloadImage(imFont); // Uncompressed image data can be unloaded from memory
|
||||
|
||||
// Copy char recs data from global fontRecs
|
||||
// NOTE: Required to avoid issues if trying to free font
|
||||
font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle));
|
||||
memcpy(font.recs, cherryFontRecs, font.glyphCount*sizeof(Rectangle));
|
||||
|
||||
// Copy font char info data from global fontChars
|
||||
// NOTE: Required to avoid issues if trying to free font
|
||||
font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo));
|
||||
memcpy(font.glyphs, cherryFontGlyphs, font.glyphCount*sizeof(GlyphInfo));
|
||||
|
||||
GuiSetFont(font);
|
||||
|
||||
// Setup a white rectangle on the font to be used on shapes drawing,
|
||||
// it makes possible to draw shapes and text (full UI) in a single draw call
|
||||
Rectangle fontWhiteRec = { 510, 254, 1, 1 };
|
||||
SetShapesTexture(font.texture, fontWhiteRec);
|
||||
|
||||
//-----------------------------------------------------------------
|
||||
|
||||
// TODO: Custom user style setup: Set specific properties here (if required)
|
||||
// i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT
|
||||
}
|
||||
@ -1,592 +0,0 @@
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// StyleAsCode exporter v2.0 - Style data exported as a values array //
|
||||
// //
|
||||
// USAGE: On init call: GuiLoadStyleCyber(); //
|
||||
// //
|
||||
// more info and bugs-report: github.com/raysan5/raygui //
|
||||
// feedback and support: ray[at]raylibtech.com //
|
||||
// //
|
||||
// Copyright (c) 2020-2025 raylib technologies (@raylibtech) //
|
||||
// //
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#define CYBER_STYLE_PROPS_COUNT 17
|
||||
|
||||
// Custom style name: Cyber
|
||||
static const GuiStyleProp cyberStyleProps[CYBER_STYLE_PROPS_COUNT] = {
|
||||
{ 0, 0, (int)0x2f7486ff }, // DEFAULT_BORDER_COLOR_NORMAL
|
||||
{ 0, 1, (int)0x024658ff }, // DEFAULT_BASE_COLOR_NORMAL
|
||||
{ 0, 2, (int)0x51bfd3ff }, // DEFAULT_TEXT_COLOR_NORMAL
|
||||
{ 0, 3, (int)0x82cde0ff }, // DEFAULT_BORDER_COLOR_FOCUSED
|
||||
{ 0, 4, (int)0x3299b4ff }, // DEFAULT_BASE_COLOR_FOCUSED
|
||||
{ 0, 5, (int)0xb6e1eaff }, // DEFAULT_TEXT_COLOR_FOCUSED
|
||||
{ 0, 6, (int)0xeb7630ff }, // DEFAULT_BORDER_COLOR_PRESSED
|
||||
{ 0, 7, (int)0xffbc51ff }, // DEFAULT_BASE_COLOR_PRESSED
|
||||
{ 0, 8, (int)0xd86f36ff }, // DEFAULT_TEXT_COLOR_PRESSED
|
||||
{ 0, 9, (int)0x134b5aff }, // DEFAULT_BORDER_COLOR_DISABLED
|
||||
{ 0, 10, (int)0x02313dff }, // DEFAULT_BASE_COLOR_DISABLED
|
||||
{ 0, 11, (int)0x17505fff }, // DEFAULT_TEXT_COLOR_DISABLED
|
||||
{ 0, 16, (int)0x0000000e }, // DEFAULT_TEXT_SIZE
|
||||
{ 0, 17, (int)0x00000000 }, // DEFAULT_TEXT_SPACING
|
||||
{ 0, 18, (int)0x81c0d0ff }, // DEFAULT_LINE_COLOR
|
||||
{ 0, 19, (int)0x00222bff }, // DEFAULT_BACKGROUND_COLOR
|
||||
{ 0, 20, (int)0x00000007 }, // DEFAULT_TEXT_LINE_SPACING
|
||||
};
|
||||
|
||||
// WARNING: This style uses a custom font: "Kyrou7Wide.ttf" (size: 14, spacing: 0)
|
||||
|
||||
#define CYBER_STYLE_FONT_ATLAS_COMP_SIZE 2306
|
||||
|
||||
// Font atlas image pixels data: DEFLATE compressed
|
||||
static unsigned char cyberFontData[CYBER_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed,
|
||||
0xdd, 0xdd, 0x72, 0xe3, 0x36, 0x12, 0x06, 0x50, 0x96, 0x6b, 0xdf, 0xff, 0x85, 0x1d, 0xec, 0xb7, 0xb5, 0x93, 0x4c, 0xe2,
|
||||
0xa9, 0x8c, 0x88, 0x7f, 0x8a, 0x92, 0xcf, 0x9c, 0xaa, 0xb9, 0x30, 0x2d, 0x89, 0x04, 0xd1, 0x40, 0x93, 0x34, 0x5a, 0x39,
|
||||
0x00, 0x00, 0x00, 0x00, 0x16, 0xcb, 0xc5, 0x9f, 0x96, 0xe6, 0x9f, 0xae, 0x3b, 0xa2, 0x9f, 0xff, 0x9e, 0x7b, 0xec, 0xfa,
|
||||
0x57, 0x7f, 0xbb, 0xe7, 0xe1, 0xb9, 0xd3, 0x9e, 0x5f, 0x7f, 0x92, 0xd3, 0xdf, 0xcd, 0x50, 0xeb, 0xa6, 0x7a, 0xc6, 0xce,
|
||||
0xcf, 0x4c, 0x5f, 0xbc, 0x3d, 0xde, 0x87, 0x74, 0xbf, 0x62, 0xe7, 0xc8, 0xf8, 0xf3, 0x5f, 0xe9, 0xea, 0xef, 0xe7, 0xbd,
|
||||
0xb8, 0xad, 0x97, 0xa7, 0xb2, 0x47, 0x69, 0xf8, 0x8d, 0xda, 0xeb, 0x8f, 0x89, 0xbd, 0x2f, 0x97, 0xce, 0x45, 0xa9, 0x8e,
|
||||
0x19, 0xc7, 0x86, 0xa3, 0xc9, 0xe4, 0xb9, 0xcc, 0xf4, 0x88, 0xd6, 0x1e, 0xff, 0xb5, 0x7e, 0x91, 0x7f, 0xfd, 0x7f, 0x0c,
|
||||
0x45, 0x5a, 0x36, 0xc6, 0xff, 0xd1, 0x35, 0xbe, 0xec, 0xcf, 0x8b, 0xd2, 0x10, 0xe9, 0xfd, 0xaf, 0x69, 0x3d, 0xda, 0xb1,
|
||||
0x11, 0x2f, 0xcd, 0xbf, 0x9b, 0xa1, 0x23, 0x5e, 0x75, 0x46, 0x7a, 0x47, 0xce, 0x5a, 0x6b, 0xec, 0x38, 0x9a, 0xaf, 0x3f,
|
||||
0xfb, 0x9c, 0x7c, 0x7d, 0xd9, 0x3e, 0x46, 0x96, 0x86, 0x96, 0x2a, 0xc3, 0x9f, 0x98, 0x81, 0x6c, 0x6e, 0xd5, 0xd9, 0xdf,
|
||||
0x9d, 0x17, 0x66, 0x38, 0x96, 0x32, 0x75, 0xf6, 0xce, 0x3f, 0x77, 0x74, 0xfe, 0xde, 0x3b, 0xe2, 0xf5, 0xe7, 0xfa, 0x59,
|
||||
0x34, 0x9a, 0x8f, 0x8d, 0x66, 0x3f, 0x5b, 0x2a, 0x1b, 0xe2, 0x77, 0xdd, 0x58, 0xbc, 0x32, 0x47, 0x9a, 0xc9, 0x3b, 0xcf,
|
||||
0xb6, 0x7d, 0xfe, 0xd0, 0xbe, 0x57, 0xaf, 0x32, 0xff, 0x67, 0xe2, 0xfc, 0x65, 0xa8, 0x9d, 0x6b, 0x39, 0x65, 0xeb, 0x11,
|
||||
0x9f, 0x7f, 0x7a, 0x19, 0x38, 0xe6, 0x8f, 0x94, 0xbf, 0x1d, 0x4b, 0x72, 0xda, 0x2c, 0x3c, 0x97, 0xe9, 0xbe, 0x56, 0xfa,
|
||||
0x33, 0x6e, 0xc7, 0x73, 0xe6, 0xe4, 0xbf, 0x3f, 0x94, 0xcd, 0xb9, 0xd8, 0x15, 0xf1, 0xff, 0xcf, 0x28, 0x96, 0x89, 0x88,
|
||||
0xcd, 0xe4, 0x0c, 0xb3, 0xf6, 0xfa, 0x7f, 0x5e, 0x99, 0x3a, 0x7f, 0x59, 0x7e, 0x55, 0xfb, 0x4f, 0xf4, 0x66, 0x28, 0x7f,
|
||||
0xc8, 0xb2, 0x51, 0xb6, 0x6c, 0xbc, 0x97, 0x9c, 0x4d, 0x59, 0xda, 0xa3, 0xf9, 0xff, 0xba, 0x6c, 0x67, 0xcf, 0xd5, 0x52,
|
||||
0xcf, 0xbd, 0xd3, 0xd1, 0xeb, 0xff, 0x34, 0x8e, 0x2e, 0xfb, 0xe2, 0xff, 0x7a, 0x7f, 0x4c, 0x9e, 0xbf, 0x5c, 0x7c, 0x7d,
|
||||
0xbe, 0xe6, 0x0a, 0x7d, 0x3c, 0xe3, 0xd9, 0x7b, 0xfd, 0x7f, 0xd5, 0x88, 0xb1, 0x23, 0xff, 0xcf, 0x8b, 0xe7, 0xff, 0x3d,
|
||||
0xf7, 0xff, 0xf3, 0x26, 0xf1, 0x9f, 0xe9, 0x27, 0x52, 0x59, 0x7e, 0x7f, 0xbe, 0x2d, 0xdb, 0x9d, 0x7b, 0xbe, 0x90, 0xa9,
|
||||
0x23, 0x5e, 0x75, 0x2f, 0x26, 0x8b, 0x7e, 0x37, 0x8d, 0xb3, 0xe2, 0xd8, 0xfd, 0xdd, 0xe7, 0xde, 0xff, 0xf7, 0xfc, 0x1f,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x9e, 0xd5, 0x9d, 0xb9, 0xe0, 0x75,
|
||||
0x23, 0xab, 0x68, 0x67, 0x56, 0xdd, 0xce, 0xac, 0xd9, 0x1d, 0x7d, 0x65, 0xbd, 0x0e, 0xd1, 0xf8, 0x3a, 0xe3, 0xf6, 0x55,
|
||||
0xce, 0x7d, 0xeb, 0x86, 0xe7, 0xaa, 0xa3, 0xa4, 0xba, 0x8e, 0xbe, 0xad, 0x1e, 0x41, 0xbd, 0x76, 0x6b, 0xad, 0x92, 0xd5,
|
||||
0xfe, 0xda, 0xaf, 0x3b, 0x6b, 0x53, 0x66, 0xb8, 0x05, 0x7b, 0x56, 0xbf, 0xa7, 0xab, 0x3e, 0xc1, 0xe8, 0x3a, 0xf4, 0xeb,
|
||||
0xaa, 0x02, 0xce, 0xaf, 0x90, 0x3f, 0x7f, 0xe7, 0xb2, 0xfd, 0x28, 0xda, 0xf7, 0x38, 0x0b, 0xce, 0xd9, 0x8e, 0xf8, 0xcf,
|
||||
0x69, 0x45, 0x80, 0x5c, 0x58, 0xdb, 0x75, 0x5f, 0x25, 0xdc, 0x7d, 0x95, 0x76, 0xea, 0xf1, 0xdf, 0x5e, 0xb3, 0x39, 0x8b,
|
||||
0xa3, 0x35, 0xc3, 0xd1, 0xb3, 0x6a, 0x04, 0x18, 0x19, 0xb7, 0x56, 0xc4, 0xff, 0x68, 0xee, 0xf0, 0xda, 0xf1, 0x3f, 0x5a,
|
||||
0x4f, 0x2c, 0x27, 0xe7, 0x3d, 0x8d, 0x7d, 0xfb, 0x0e, 0xdb, 0x8f, 0x9b, 0xc6, 0x7f, 0x3d, 0xa6, 0x32, 0x5d, 0xa5, 0x78,
|
||||
0x5d, 0x7f, 0x5a, 0xa7, 0x34, 0x45, 0xe9, 0x58, 0x4d, 0xcf, 0x32, 0x3c, 0xb2, 0xec, 0xca, 0xff, 0x53, 0xb9, 0xf2, 0x48,
|
||||
0x53, 0x2e, 0xbb, 0x76, 0x8c, 0x6d, 0x1d, 0xb5, 0x1e, 0x57, 0x14, 0xab, 0xd5, 0x2b, 0x7c, 0xfe, 0xfc, 0x3e, 0x57, 0x4f,
|
||||
0xf9, 0x9a, 0xf8, 0x9f, 0x8f, 0xc4, 0x3c, 0x65, 0xce, 0x5a, 0x73, 0x6f, 0x22, 0x83, 0xf3, 0xd6, 0x9e, 0xd7, 0x5e, 0x31,
|
||||
0xff, 0xe7, 0xa5, 0xe6, 0xff, 0x96, 0xeb, 0xff, 0x2c, 0xb8, 0x7a, 0x1d, 0x6b, 0xb5, 0xd2, 0x7c, 0x2e, 0x77, 0xe4, 0xff,
|
||||
0x2d, 0x33, 0xfb, 0xfc, 0xfc, 0x3f, 0xb3, 0x35, 0xcd, 0xb3, 0xf0, 0xf5, 0xf1, 0xdf, 0x76, 0x4c, 0xb9, 0xf4, 0xb5, 0xaf,
|
||||
0x17, 0xff, 0xb9, 0xc5, 0xfd, 0xbf, 0x6c, 0xac, 0xcd, 0x9c, 0x25, 0xa3, 0xdb, 0x9e, 0xf8, 0x6f, 0xab, 0x87, 0x3e, 0x73,
|
||||
0xfd, 0x3f, 0x17, 0xe1, 0xf5, 0x08, 0xf8, 0x43, 0xfc, 0x2f, 0xca, 0xff, 0x57, 0xbd, 0xba, 0xff, 0x5e, 0xc9, 0xcc, 0x0c,
|
||||
0xda, 0x7e, 0x4c, 0x59, 0x9e, 0x7f, 0xcf, 0xd6, 0xf6, 0xdd, 0x9d, 0xff, 0xaf, 0x7a, 0xfd, 0x31, 0x7c, 0xde, 0xeb, 0x5b,
|
||||
0xe6, 0x7a, 0xe5, 0xf1, 0x84, 0x6f, 0x73, 0xd8, 0xfd, 0x7c, 0xcf, 0x77, 0x94, 0xbe, 0xdf, 0x53, 0x6c, 0x6d, 0x70, 0xef,
|
||||
0xe7, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x5e, 0x65, 0x75, 0xbf,
|
||||
0x15, 0x53, 0x69, 0x58, 0x1f, 0xda, 0x52, 0x3f, 0xf3, 0xbc, 0xfa, 0xe6, 0xa3, 0x1a, 0x12, 0xa5, 0xa9, 0xf6, 0xe6, 0xaa,
|
||||
0xd6, 0x6c, 0xad, 0x83, 0x30, 0x5b, 0xa7, 0x73, 0xe4, 0xdd, 0x5b, 0x5a, 0xb9, 0xbe, 0xe6, 0x31, 0x95, 0x75, 0xc0, 0xc7,
|
||||
0xc2, 0x1e, 0x58, 0x5f, 0xf3, 0x9c, 0x89, 0x9a, 0x0b, 0x33, 0x55, 0x04, 0xb3, 0x71, 0x85, 0x69, 0x86, 0x5a, 0xa5, 0xbd,
|
||||
0x02, 0x47, 0xeb, 0xd6, 0x2c, 0xaa, 0xf2, 0xb0, 0xbb, 0x5f, 0xaf, 0xd8, 0xda, 0x5f, 0x47, 0xe1, 0x19, 0xf1, 0x7f, 0xde,
|
||||
0x43, 0xb2, 0xf8, 0x6c, 0xf7, 0xfd, 0xb4, 0x16, 0xfb, 0x8f, 0x6b, 0x2b, 0x7f, 0x34, 0xf6, 0x9b, 0x9e, 0xed, 0x99, 0x3e,
|
||||
0xcb, 0x99, 0xac, 0x84, 0x50, 0x3a, 0xe7, 0x9b, 0xf6, 0xe8, 0x9f, 0xeb, 0x79, 0xfb, 0x56, 0xc0, 0xbf, 0x53, 0xfc, 0x1f,
|
||||
0x83, 0x15, 0x0b, 0x77, 0xc7, 0xff, 0xd1, 0xb4, 0x4f, 0x59, 0x76, 0x44, 0xeb, 0xaa, 0x6f, 0x7f, 0x74, 0xe7, 0x58, 0x6b,
|
||||
0x6a, 0x59, 0xe5, 0xc2, 0x5a, 0x0f, 0xe9, 0xe8, 0x5d, 0xa3, 0x23, 0x40, 0x06, 0xe7, 0xff, 0xfe, 0x96, 0x5e, 0x95, 0x63,
|
||||
0xbc, 0x66, 0xfc, 0x8f, 0xb5, 0x66, 0x26, 0xce, 0xf0, 0xde, 0xf9, 0x7f, 0x65, 0xe5, 0xee, 0x91, 0xe8, 0x28, 0x0f, 0xde,
|
||||
0xa5, 0x0c, 0xcf, 0xce, 0xe3, 0x57, 0x07, 0x47, 0xd3, 0x77, 0x32, 0x94, 0xee, 0xd7, 0xe5, 0x97, 0xf8, 0xcc, 0x96, 0x6b,
|
||||
0xf4, 0x9c, 0xb4, 0xf0, 0x68, 0x35, 0xd2, 0xde, 0xf8, 0xcf, 0xa5, 0xf3, 0xff, 0xd1, 0xf8, 0xed, 0x19, 0xc7, 0xd0, 0xf9,
|
||||
0x3a, 0x06, 0xdf, 0x75, 0xfc, 0x95, 0xa9, 0xf6, 0xd8, 0x3d, 0xf5, 0x68, 0x57, 0x7e, 0x43, 0x47, 0x16, 0xf4, 0xdb, 0x54,
|
||||
0x3e, 0x21, 0x83, 0x39, 0x78, 0x6f, 0xe6, 0xdf, 0x33, 0xce, 0xa6, 0xe3, 0xce, 0x40, 0x4e, 0xc6, 0xc0, 0x6c, 0xca, 0xc1,
|
||||
0x57, 0xce, 0x83, 0x59, 0x9a, 0xaf, 0xed, 0xbb, 0xbb, 0xb8, 0x33, 0xa3, 0xbb, 0xe6, 0xdd, 0x9e, 0xd5, 0x26, 0x57, 0xce,
|
||||
0xff, 0xe9, 0xce, 0x76, 0x67, 0xe6, 0xff, 0x4c, 0xd7, 0xc9, 0xac, 0xe5, 0x7e, 0xc7, 0xed, 0xe6, 0xff, 0xb6, 0xd8, 0xcc,
|
||||
0xe5, 0xf9, 0xbf, 0xf8, 0xbf, 0xfa, 0x49, 0xcb, 0xf1, 0x12, 0xf1, 0xbf, 0xf7, 0xfa, 0x7f, 0xcd, 0x08, 0x32, 0x3a, 0xcb,
|
||||
0x1e, 0x9b, 0x9f, 0x11, 0x8c, 0xbf, 0x6a, 0x5f, 0xfc, 0x1f, 0xdf, 0xaa, 0x5a, 0xe3, 0xbb, 0xd5, 0xa6, 0x7c, 0x46, 0xfc,
|
||||
0xb7, 0xe4, 0xff, 0x19, 0xbc, 0xff, 0xdf, 0xfe, 0x0d, 0x5b, 0xe9, 0xca, 0x59, 0xda, 0xf3, 0x8e, 0xf7, 0xec, 0x11, 0xbc,
|
||||
0xf3, 0x88, 0x36, 0xf7, 0xfc, 0xff, 0x6e, 0x63, 0xf0, 0xdc, 0x77, 0xaa, 0x7c, 0xe7, 0xfe, 0xaf, 0xee, 0x32, 0xfe, 0x5a,
|
||||
0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xd9, 0xeb, 0x16, 0x72, 0xe9, 0x7a, 0xf9,
|
||||
0xd1, 0xba, 0x75, 0xfd, 0x2b, 0x56, 0xb3, 0xa8, 0x65, 0xb2, 0xe8, 0x6c, 0x95, 0x86, 0xd5, 0xf9, 0x99, 0x6c, 0xf7, 0x4c,
|
||||
0xff, 0x4e, 0x1a, 0x56, 0x84, 0x65, 0xe8, 0x0c, 0xdf, 0x6f, 0xdd, 0xea, 0xcc, 0xaa, 0xc1, 0x2c, 0x6d, 0xdd, 0x95, 0xe7,
|
||||
0x3b, 0xd5, 0x6a, 0xd8, 0x5f, 0x95, 0xc1, 0xea, 0x2b, 0x19, 0x5a, 0x31, 0x99, 0xe1, 0xda, 0x04, 0xbd, 0xe3, 0x5d, 0x3a,
|
||||
0xdb, 0xac, 0xf7, 0x5c, 0x7f, 0x6d, 0xe3, 0xd6, 0x2a, 0x33, 0x5f, 0xb7, 0x97, 0xc1, 0x33, 0xfe, 0x91, 0xcf, 0xa9, 0x7e,
|
||||
0x9f, 0xe1, 0x11, 0xfa, 0x58, 0x52, 0xd7, 0xbb, 0xa5, 0x1a, 0x47, 0x69, 0x58, 0x43, 0x9f, 0xe9, 0xda, 0x60, 0x19, 0x6e,
|
||||
0x87, 0x95, 0x3d, 0x6f, 0xee, 0xd3, 0x6a, 0x6b, 0xb5, 0x33, 0x31, 0x83, 0x66, 0xb0, 0xfe, 0x5d, 0x26, 0x2b, 0x43, 0xe4,
|
||||
0x64, 0x8d, 0x77, 0xb6, 0xad, 0x6f, 0x4f, 0x67, 0xf4, 0xb7, 0x1f, 0x6f, 0x9a, 0xdb, 0xb4, 0xad, 0x5e, 0xf5, 0xc7, 0xed,
|
||||
0xb3, 0xd2, 0x32, 0x34, 0xdb, 0x8c, 0xb5, 0xe9, 0xd5, 0xf9, 0xc6, 0xdd, 0x6b, 0x7b, 0xd4, 0xab, 0x8f, 0xed, 0xbf, 0x36,
|
||||
0x18, 0xa9, 0xc5, 0xb2, 0x2e, 0xfe, 0xd3, 0x5d, 0x51, 0xaa, 0x4c, 0x5d, 0x75, 0xf4, 0xc5, 0x7f, 0xdb, 0xfb, 0x66, 0x68,
|
||||
0xfe, 0xaf, 0xc5, 0xdf, 0xde, 0xed, 0xb3, 0xd5, 0xf6, 0x47, 0xe3, 0xbf, 0xbf, 0x0f, 0x64, 0x43, 0x8d, 0xd4, 0x5a, 0x56,
|
||||
0x32, 0xb2, 0x65, 0xfe, 0x1a, 0x7b, 0x5f, 0xfc, 0x9f, 0xb5, 0xde, 0x6c, 0xbe, 0xb1, 0x6a, 0xfe, 0xcf, 0x74, 0xfe, 0xdf,
|
||||
0xda, 0x57, 0xd3, 0xfc, 0xfd, 0x42, 0x2d, 0x39, 0x55, 0x1e, 0xc6, 0x7e, 0xc9, 0x67, 0xf5, 0x9b, 0x32, 0x8e, 0xc1, 0x6f,
|
||||
0xc3, 0xd8, 0xbd, 0xbd, 0x67, 0xdc, 0x5e, 0x53, 0xb9, 0xf3, 0xfa, 0xad, 0x2b, 0xc6, 0xbe, 0x7b, 0xc4, 0x7f, 0x36, 0x65,
|
||||
0x3a, 0x99, 0x6a, 0xd7, 0x74, 0xed, 0xfb, 0x35, 0x77, 0x97, 0x72, 0x59, 0x55, 0xd1, 0xff, 0xc7, 0xfe, 0xc7, 0x70, 0x4e,
|
||||
0xbc, 0x7f, 0x7b, 0xeb, 0x38, 0x58, 0x2e, 0x98, 0xff, 0x77, 0xde, 0x01, 0x1d, 0xaf, 0x0a, 0x7f, 0x4d, 0xfc, 0x3f, 0xeb,
|
||||
0xda, 0xe8, 0xd8, 0x32, 0x36, 0xf6, 0xc6, 0x7f, 0x2e, 0x3e, 0x8e, 0xeb, 0xe2, 0xbf, 0x9c, 0x5e, 0x03, 0xa4, 0x23, 0xaf,
|
||||
0xdd, 0xb3, 0x7d, 0xe5, 0xf8, 0x32, 0xfb, 0xbd, 0x3f, 0xcf, 0xc9, 0xff, 0x9f, 0x1f, 0xff, 0x77, 0xbe, 0x43, 0x91, 0x37,
|
||||
0xba, 0x43, 0x93, 0x5f, 0xee, 0xb2, 0x5c, 0xf3, 0x3c, 0xf6, 0x3f, 0x29, 0x3f, 0x7c, 0x3e, 0xf8, 0x1e, 0xad, 0x7b, 0xe7,
|
||||
0xff, 0xbd, 0xf1, 0x3f, 0x73, 0xff, 0xff, 0xfb, 0xe6, 0xff, 0x77, 0xfe, 0x9b, 0x05, 0x7f, 0xb7, 0xb1, 0xb3, 0x9d, 0xee,
|
||||
0x1f, 0xdf, 0xeb, 0x47, 0xe6, 0xf2, 0xe0, 0x7a, 0xe8, 0xfb, 0xe6, 0xff, 0xf7, 0xff, 0x8b, 0x25, 0xd5, 0x56, 0xaf, 0xb8,
|
||||
0x26, 0xb9, 0xe3, 0xfd, 0xbd, 0xd5, 0xfd, 0xbd, 0x9c, 0xdc, 0x0b, 0xdd, 0x95, 0xff, 0x1f, 0x37, 0xbf, 0xff, 0x0f, 0xaf,
|
||||
0x39, 0x3e, 0x01, 0xe2, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x7d, 0xff, 0x9a, 0x32, 0xc3,
|
||||
0xeb, 0x26, 0xf2, 0xa3, 0x96, 0xcc, 0xc7, 0xc4, 0x6a, 0xa4, 0x7d, 0x55, 0x64, 0xcf, 0x6b, 0x60, 0x7d, 0x4e, 0xfc, 0xfd,
|
||||
0xe8, 0xde, 0xe3, 0xca, 0xa2, 0xf5, 0xa3, 0xcf, 0x38, 0xb2, 0x0c, 0x9e, 0xab, 0xb9, 0xcf, 0xfc, 0x77, 0x55, 0xa4, 0x63,
|
||||
0xf9, 0x5a, 0xdf, 0xe3, 0xaf, 0xba, 0x49, 0xab, 0xcf, 0x48, 0xcf, 0xca, 0xc3, 0x7b, 0x55, 0x28, 0x2c, 0x3f, 0xda, 0x23,
|
||||
0xa7, 0x75, 0x24, 0xef, 0x5c, 0x45, 0xb6, 0x0c, 0x55, 0x97, 0xd9, 0x7f, 0x5c, 0x73, 0xf1, 0x90, 0x4a, 0x5d, 0xcf, 0xe7,
|
||||
0x54, 0xbb, 0xad, 0x9d, 0xab, 0xf3, 0x5a, 0xd8, 0xa5, 0x71, 0xbd, 0xfc, 0x79, 0x55, 0xe4, 0x4c, 0x8e, 0x7e, 0xf5, 0xe8,
|
||||
0xcf, 0xd0, 0xd1, 0xfd, 0xee, 0x8c, 0xa5, 0xf9, 0x13, 0xb2, 0xa8, 0x3a, 0xd7, 0x79, 0x6b, 0x94, 0x17, 0x5e, 0x29, 0x5c,
|
||||
0xba, 0xe2, 0x3f, 0x5f, 0x32, 0x84, 0xbc, 0xe0, 0xea, 0x96, 0xd6, 0xf1, 0xf8, 0xb5, 0x56, 0xce, 0xa4, 0x79, 0x45, 0xf8,
|
||||
0x4c, 0xc5, 0x1d, 0xeb, 0xa9, 0xda, 0x7b, 0x62, 0xbd, 0x9f, 0xde, 0xbb, 0x8a, 0xec, 0x67, 0xe5, 0xb8, 0xf2, 0xb2, 0xd5,
|
||||
0x6f, 0xda, 0x5a, 0x25, 0x03, 0xd9, 0xc1, 0xb3, 0xb6, 0x9e, 0x67, 0x71, 0xbf, 0x9b, 0xff, 0xc7, 0x32, 0x9b, 0x67, 0x1d,
|
||||
0x7b, 0xeb, 0xbe, 0x66, 0xcb, 0x95, 0x60, 0x4b, 0x4f, 0xc8, 0x69, 0xb6, 0xf5, 0x8a, 0x71, 0xd2, 0x92, 0x89, 0xde, 0x73,
|
||||
0xbf, 0xd3, 0xd8, 0x1b, 0x72, 0x92, 0x87, 0xdf, 0xb5, 0xee, 0xed, 0xcc, 0xa8, 0x94, 0x86, 0x2b, 0xfc, 0x96, 0xec, 0xa0,
|
||||
0x5c, 0xba, 0xf5, 0xae, 0xf1, 0xdf, 0x32, 0xff, 0xe7, 0x4d, 0xe3, 0xbf, 0xdc, 0x7c, 0xbf, 0xc7, 0xbf, 0xff, 0xac, 0x75,
|
||||
0xfe, 0xbf, 0xd7, 0xd6, 0x95, 0x19, 0xfc, 0xe3, 0xfb, 0x6d, 0xfb, 0x2a, 0x7d, 0xf6, 0xdf, 0x77, 0x7c, 0x8d, 0xf8, 0xbf,
|
||||
0xf3, 0x3c, 0x39, 0x1e, 0xff, 0x9f, 0x2f, 0xb0, 0xdf, 0x19, 0xba, 0xa3, 0x53, 0x8b, 0xff, 0x72, 0xcb, 0xad, 0x2b, 0x2b,
|
||||
0x5b, 0x8d, 0x3e, 0xab, 0xda, 0x59, 0xe9, 0xf3, 0xbe, 0xf1, 0xdf, 0x92, 0x2f, 0xbd, 0xea, 0x75, 0xf2, 0x31, 0x1d, 0x41,
|
||||
0x77, 0x8d, 0xff, 0xfa, 0x93, 0x87, 0xf1, 0x27, 0x64, 0xcf, 0xd8, 0x5a, 0x2e, 0xba, 0x83, 0xf7, 0xbc, 0x63, 0x7f, 0x5e,
|
||||
0xfc, 0xcf, 0x54, 0x28, 0x3c, 0xbf, 0xef, 0x72, 0x87, 0xeb, 0xe4, 0x1d, 0xf5, 0x10, 0xef, 0xb1, 0xdf, 0xd9, 0x34, 0x17,
|
||||
0xdd, 0xfb, 0x49, 0x8e, 0x3b, 0xf8, 0xf7, 0x7c, 0x6a, 0x30, 0xd6, 0x8f, 0x77, 0x6f, 0x7f, 0x56, 0x6f, 0xbc, 0x62, 0xbf,
|
||||
0x45, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x77, 0x5a, 0xc9, 0x93, 0xca, 0x2a,
|
||||
0xe0, 0xa3, 0xab, 0x76, 0xd1, 0xaf, 0x46, 0x6b, 0xa6, 0x66, 0x41, 0x95, 0xcc, 0x47, 0x6b, 0x6f, 0xca, 0xe5, 0x47, 0x73,
|
||||
0x4c, 0xbe, 0x33, 0x5c, 0xb5, 0x9a, 0xef, 0x77, 0xeb, 0xc5, 0x47, 0xfb, 0xfc, 0x68, 0xcd, 0xd4, 0xb9, 0x7a, 0xb1, 0xb5,
|
||||
0x95, 0xd2, 0x9f, 0x83, 0xe3, 0xd9, 0xae, 0x0a, 0xb0, 0x67, 0xef, 0x5c, 0xaf, 0xe7, 0x6b, 0x3d, 0x20, 0xf3, 0xd1, 0xff,
|
||||
0x1d, 0x7a, 0x50, 0xb6, 0xe5, 0x15, 0x3b, 0xf7, 0xf9, 0x43, 0x0f, 0xe5, 0x49, 0x39, 0x40, 0xdb, 0x5a, 0xf6, 0x72, 0xab,
|
||||
0xad, 0x8f, 0xf7, 0x39, 0x8d, 0x95, 0xfd, 0xee, 0xb5, 0x75, 0xa6, 0x9e, 0x2f, 0xb4, 0x5c, 0x11, 0xd7, 0xab, 0xa2, 0xbe,
|
||||
0xce, 0xd6, 0x96, 0xa3, 0x3d, 0xde, 0xe4, 0x58, 0xc5, 0x3f, 0xab, 0xe6, 0xfc, 0x77, 0xea, 0xf5, 0x99, 0x6a, 0x0b, 0xf1,
|
||||
0x8f, 0xf8, 0xff, 0x6e, 0xbd, 0x5e, 0xfc, 0xf3, 0x7d, 0xf3, 0xff, 0x32, 0x55, 0x2f, 0xfe, 0xb8, 0xd5, 0xd6, 0xf9, 0x6b,
|
||||
0xa1, 0xfb, 0x6c, 0xbd, 0x6b, 0x15, 0x44, 0xe0, 0x8a, 0x3b, 0xb0, 0x73, 0x4f, 0x70, 0x81, 0xd7, 0xc8, 0xc1, 0x46, 0xe2,
|
||||
0xda, 0xec, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x8b, 0x3f, 0xff, 0x69, 0x07, 0x10, 0xff, 0xc0,
|
||||
0xb7, 0x8b, 0xff, 0xff, 0x01 };
|
||||
|
||||
// Font glyphs rectangles data (on atlas)
|
||||
static const Rectangle cyberFontRecs[189] = {
|
||||
{ 4, 4, 4 , 14 },
|
||||
{ 16, 4, 1 , 8 },
|
||||
{ 25, 4, 4 , 3 },
|
||||
{ 37, 4, 8 , 8 },
|
||||
{ 53, 4, 8 , 9 },
|
||||
{ 69, 4, 8 , 8 },
|
||||
{ 85, 4, 8 , 8 },
|
||||
{ 101, 4, 1 , 3 },
|
||||
{ 110, 4, 4 , 9 },
|
||||
{ 122, 4, 4 , 9 },
|
||||
{ 134, 4, 5 , 6 },
|
||||
{ 147, 4, 5 , 6 },
|
||||
{ 160, 4, 2 , 2 },
|
||||
{ 170, 4, 4 , 1 },
|
||||
{ 182, 4, 1 , 1 },
|
||||
{ 191, 4, 8 , 8 },
|
||||
{ 207, 4, 8 , 8 },
|
||||
{ 223, 4, 2 , 8 },
|
||||
{ 233, 4, 8 , 8 },
|
||||
{ 249, 4, 8 , 8 },
|
||||
{ 265, 4, 8 , 8 },
|
||||
{ 281, 4, 8 , 8 },
|
||||
{ 297, 4, 8 , 8 },
|
||||
{ 313, 4, 7 , 8 },
|
||||
{ 328, 4, 8 , 8 },
|
||||
{ 344, 4, 8 , 8 },
|
||||
{ 360, 4, 1 , 4 },
|
||||
{ 369, 4, 2 , 5 },
|
||||
{ 379, 4, 4 , 8 },
|
||||
{ 391, 4, 5 , 3 },
|
||||
{ 404, 4, 4 , 8 },
|
||||
{ 416, 4, 7 , 8 },
|
||||
{ 431, 4, 8 , 8 },
|
||||
{ 447, 4, 8 , 8 },
|
||||
{ 463, 4, 8 , 8 },
|
||||
{ 479, 4, 8 , 8 },
|
||||
{ 495, 4, 8 , 8 },
|
||||
{ 4, 26, 7 , 8 },
|
||||
{ 19, 26, 7 , 8 },
|
||||
{ 34, 26, 8 , 8 },
|
||||
{ 50, 26, 8 , 8 },
|
||||
{ 66, 26, 5 , 8 },
|
||||
{ 79, 26, 7 , 8 },
|
||||
{ 94, 26, 8 , 8 },
|
||||
{ 110, 26, 7 , 8 },
|
||||
{ 125, 26, 8 , 8 },
|
||||
{ 141, 26, 8 , 8 },
|
||||
{ 157, 26, 8 , 8 },
|
||||
{ 173, 26, 8 , 8 },
|
||||
{ 189, 26, 8 , 9 },
|
||||
{ 205, 26, 8 , 8 },
|
||||
{ 221, 26, 8 , 8 },
|
||||
{ 237, 26, 8 , 8 },
|
||||
{ 253, 26, 8 , 8 },
|
||||
{ 269, 26, 8 , 8 },
|
||||
{ 285, 26, 9 , 8 },
|
||||
{ 302, 26, 8 , 8 },
|
||||
{ 318, 26, 8 , 8 },
|
||||
{ 334, 26, 8 , 8 },
|
||||
{ 350, 26, 4 , 9 },
|
||||
{ 362, 26, 8 , 8 },
|
||||
{ 378, 26, 4 , 9 },
|
||||
{ 390, 26, 4 , 3 },
|
||||
{ 402, 26, 7 , 1 },
|
||||
{ 417, 26, 2 , 3 },
|
||||
{ 427, 26, 7 , 5 },
|
||||
{ 442, 26, 7 , 8 },
|
||||
{ 457, 26, 7 , 5 },
|
||||
{ 472, 26, 7 , 8 },
|
||||
{ 487, 26, 7 , 5 },
|
||||
{ 4, 48, 4 , 8 },
|
||||
{ 16, 48, 7 , 7 },
|
||||
{ 31, 48, 7 , 8 },
|
||||
{ 46, 48, 1 , 8 },
|
||||
{ 55, 48, 3 , 10 },
|
||||
{ 66, 48, 7 , 8 },
|
||||
{ 81, 48, 4 , 8 },
|
||||
{ 93, 48, 9 , 5 },
|
||||
{ 110, 48, 7 , 5 },
|
||||
{ 125, 48, 7 , 5 },
|
||||
{ 140, 48, 7 , 7 },
|
||||
{ 155, 48, 7 , 7 },
|
||||
{ 170, 48, 5 , 5 },
|
||||
{ 183, 48, 7 , 5 },
|
||||
{ 198, 48, 5 , 8 },
|
||||
{ 211, 48, 7 , 5 },
|
||||
{ 226, 48, 7 , 5 },
|
||||
{ 241, 48, 9 , 5 },
|
||||
{ 258, 48, 7 , 5 },
|
||||
{ 273, 48, 7 , 7 },
|
||||
{ 288, 48, 7 , 5 },
|
||||
{ 303, 48, 4 , 9 },
|
||||
{ 315, 48, 1 , 9 },
|
||||
{ 324, 48, 4 , 9 },
|
||||
{ 336, 48, 8 , 2 },
|
||||
{ 352, 48, 1 , 8 },
|
||||
{ 361, 48, 7 , 8 },
|
||||
{ 376, 48, 7 , 8 },
|
||||
{ 391, 48, 8 , 9 },
|
||||
{ 407, 48, 8 , 9 },
|
||||
{ 423, 48, 8 , 10 },
|
||||
{ 439, 48, 4 , 9 },
|
||||
{ 451, 48, 7 , 8 },
|
||||
{ 466, 48, 8 , 8 },
|
||||
{ 482, 48, 7 , 6 },
|
||||
{ 497, 48, 5 , 3 },
|
||||
{ 4, 70, 5 , 3 },
|
||||
{ 17, 70, 8 , 8 },
|
||||
{ 33, 70, 0 , 0 },
|
||||
{ 41, 70, 4 , 3 },
|
||||
{ 53, 70, 8 , 6 },
|
||||
{ 69, 70, 4 , 5 },
|
||||
{ 81, 70, 4 , 5 },
|
||||
{ 93, 70, 8 , 10 },
|
||||
{ 109, 70, 7 , 7 },
|
||||
{ 124, 70, 5 , 7 },
|
||||
{ 137, 70, 1 , 1 },
|
||||
{ 146, 70, 7 , 8 },
|
||||
{ 161, 70, 2 , 5 },
|
||||
{ 171, 70, 4 , 5 },
|
||||
{ 183, 70, 5 , 3 },
|
||||
{ 196, 70, 14 , 8 },
|
||||
{ 218, 70, 13 , 5 },
|
||||
{ 239, 70, 8 , 9 },
|
||||
{ 255, 70, 7 , 8 },
|
||||
{ 270, 70, 8 , 10 },
|
||||
{ 286, 70, 8 , 10 },
|
||||
{ 302, 70, 8 , 10 },
|
||||
{ 318, 70, 8 , 10 },
|
||||
{ 334, 70, 8 , 9 },
|
||||
{ 350, 70, 8 , 12 },
|
||||
{ 366, 70, 14 , 8 },
|
||||
{ 388, 70, 8 , 10 },
|
||||
{ 404, 70, 7 , 10 },
|
||||
{ 419, 70, 7 , 10 },
|
||||
{ 434, 70, 7 , 10 },
|
||||
{ 449, 70, 7 , 9 },
|
||||
{ 464, 70, 5 , 10 },
|
||||
{ 477, 70, 5 , 10 },
|
||||
{ 490, 70, 5 , 10 },
|
||||
{ 4, 92, 5 , 9 },
|
||||
{ 17, 92, 8 , 8 },
|
||||
{ 33, 92, 8 , 10 },
|
||||
{ 49, 92, 8 , 10 },
|
||||
{ 65, 92, 8 , 10 },
|
||||
{ 81, 92, 8 , 10 },
|
||||
{ 97, 92, 8 , 10 },
|
||||
{ 113, 92, 8 , 9 },
|
||||
{ 129, 92, 4 , 4 },
|
||||
{ 141, 92, 8 , 8 },
|
||||
{ 157, 92, 8 , 10 },
|
||||
{ 173, 92, 8 , 10 },
|
||||
{ 189, 92, 8 , 10 },
|
||||
{ 205, 92, 8 , 9 },
|
||||
{ 221, 92, 8 , 10 },
|
||||
{ 237, 92, 7 , 9 },
|
||||
{ 252, 92, 7 , 9 },
|
||||
{ 267, 92, 7 , 8 },
|
||||
{ 282, 92, 7 , 8 },
|
||||
{ 297, 92, 7 , 8 },
|
||||
{ 312, 92, 7 , 8 },
|
||||
{ 327, 92, 7 , 8 },
|
||||
{ 342, 92, 7 , 9 },
|
||||
{ 357, 92, 13 , 5 },
|
||||
{ 378, 92, 7 , 7 },
|
||||
{ 393, 92, 7 , 8 },
|
||||
{ 408, 92, 7 , 8 },
|
||||
{ 423, 92, 7 , 8 },
|
||||
{ 438, 92, 7 , 8 },
|
||||
{ 453, 92, 3 , 8 },
|
||||
{ 464, 92, 2 , 8 },
|
||||
{ 474, 92, 3 , 8 },
|
||||
{ 485, 92, 3 , 8 },
|
||||
{ 4, 114, 8 , 8 },
|
||||
{ 20, 114, 7 , 8 },
|
||||
{ 35, 114, 7 , 8 },
|
||||
{ 50, 114, 7 , 8 },
|
||||
{ 65, 114, 7 , 8 },
|
||||
{ 80, 114, 7 , 8 },
|
||||
{ 95, 114, 7 , 8 },
|
||||
{ 110, 114, 5 , 6 },
|
||||
{ 123, 114, 7 , 5 },
|
||||
{ 138, 114, 7 , 8 },
|
||||
{ 153, 114, 7 , 8 },
|
||||
{ 168, 114, 7 , 8 },
|
||||
{ 183, 114, 7 , 8 },
|
||||
{ 198, 114, 7 , 10 },
|
||||
{ 213, 114, 7 , 10 },
|
||||
{ 228, 114, 7 , 10 },
|
||||
};
|
||||
|
||||
// Font glyphs info data
|
||||
// NOTE: No glyphs.image data provided
|
||||
static const GlyphInfo cyberFontGlyphs[189] = {
|
||||
{ 32, 0, 0, 4, { 0 }},
|
||||
{ 33, 0, 3, 2, { 0 }},
|
||||
{ 34, 0, 3, 4, { 0 }},
|
||||
{ 35, 0, 3, 8, { 0 }},
|
||||
{ 36, 0, 3, 8, { 0 }},
|
||||
{ 37, 0, 3, 8, { 0 }},
|
||||
{ 38, 0, 3, 8, { 0 }},
|
||||
{ 39, 0, 3, 2, { 0 }},
|
||||
{ 40, 0, 3, 4, { 0 }},
|
||||
{ 41, 0, 3, 4, { 0 }},
|
||||
{ 42, 0, 4, 6, { 0 }},
|
||||
{ 43, 0, 4, 6, { 0 }},
|
||||
{ 44, 0, 10, 3, { 0 }},
|
||||
{ 45, 0, 7, 5, { 0 }},
|
||||
{ 46, 0, 10, 2, { 0 }},
|
||||
{ 47, 0, 3, 8, { 0 }},
|
||||
{ 48, 0, 3, 8, { 0 }},
|
||||
{ 49, 0, 3, 3, { 0 }},
|
||||
{ 50, 0, 3, 8, { 0 }},
|
||||
{ 51, 0, 3, 8, { 0 }},
|
||||
{ 52, 0, 3, 8, { 0 }},
|
||||
{ 53, 0, 3, 8, { 0 }},
|
||||
{ 54, 0, 3, 8, { 0 }},
|
||||
{ 55, 0, 3, 7, { 0 }},
|
||||
{ 56, 0, 3, 8, { 0 }},
|
||||
{ 57, 0, 3, 8, { 0 }},
|
||||
{ 58, 0, 6, 2, { 0 }},
|
||||
{ 59, 0, 6, 3, { 0 }},
|
||||
{ 60, 0, 3, 5, { 0 }},
|
||||
{ 61, 0, 6, 6, { 0 }},
|
||||
{ 62, 0, 3, 5, { 0 }},
|
||||
{ 63, 0, 3, 7, { 0 }},
|
||||
{ 64, 0, 3, 8, { 0 }},
|
||||
{ 65, 0, 3, 8, { 0 }},
|
||||
{ 66, 0, 3, 8, { 0 }},
|
||||
{ 67, 0, 3, 8, { 0 }},
|
||||
{ 68, 0, 3, 8, { 0 }},
|
||||
{ 69, 0, 3, 7, { 0 }},
|
||||
{ 70, 0, 3, 7, { 0 }},
|
||||
{ 71, 0, 3, 8, { 0 }},
|
||||
{ 72, 0, 3, 8, { 0 }},
|
||||
{ 73, 0, 3, 6, { 0 }},
|
||||
{ 74, 0, 3, 7, { 0 }},
|
||||
{ 75, 0, 3, 8, { 0 }},
|
||||
{ 76, 0, 3, 7, { 0 }},
|
||||
{ 77, 0, 3, 9, { 0 }},
|
||||
{ 78, 0, 3, 8, { 0 }},
|
||||
{ 79, 0, 3, 8, { 0 }},
|
||||
{ 80, 0, 3, 8, { 0 }},
|
||||
{ 81, 0, 3, 8, { 0 }},
|
||||
{ 82, 0, 3, 8, { 0 }},
|
||||
{ 83, 0, 3, 8, { 0 }},
|
||||
{ 84, 0, 3, 8, { 0 }},
|
||||
{ 85, 0, 3, 8, { 0 }},
|
||||
{ 86, 0, 3, 8, { 0 }},
|
||||
{ 87, 0, 3, 10, { 0 }},
|
||||
{ 88, 0, 3, 8, { 0 }},
|
||||
{ 89, 0, 3, 8, { 0 }},
|
||||
{ 90, 0, 3, 8, { 0 }},
|
||||
{ 91, 0, 3, 4, { 0 }},
|
||||
{ 92, 0, 3, 8, { 0 }},
|
||||
{ 93, 0, 3, 4, { 0 }},
|
||||
{ 94, 0, 3, 4, { 0 }},
|
||||
{ 95, 0, 11, 7, { 0 }},
|
||||
{ 96, 0, 3, 3, { 0 }},
|
||||
{ 97, 0, 6, 7, { 0 }},
|
||||
{ 98, 0, 3, 7, { 0 }},
|
||||
{ 99, 0, 6, 7, { 0 }},
|
||||
{ 100, 0, 3, 7, { 0 }},
|
||||
{ 101, 0, 6, 7, { 0 }},
|
||||
{ 102, 0, 3, 5, { 0 }},
|
||||
{ 103, 0, 6, 7, { 0 }},
|
||||
{ 104, 0, 3, 7, { 0 }},
|
||||
{ 105, 0, 3, 2, { 0 }},
|
||||
{ 106, -2, 3, 2, { 0 }},
|
||||
{ 107, 0, 3, 7, { 0 }},
|
||||
{ 108, 0, 3, 4, { 0 }},
|
||||
{ 109, 0, 6, 10, { 0 }},
|
||||
{ 110, 0, 6, 7, { 0 }},
|
||||
{ 111, 0, 6, 7, { 0 }},
|
||||
{ 112, 0, 6, 7, { 0 }},
|
||||
{ 113, 0, 6, 7, { 0 }},
|
||||
{ 114, 0, 6, 6, { 0 }},
|
||||
{ 115, 0, 6, 7, { 0 }},
|
||||
{ 116, 0, 3, 6, { 0 }},
|
||||
{ 117, 0, 6, 7, { 0 }},
|
||||
{ 118, 0, 6, 7, { 0 }},
|
||||
{ 119, 0, 6, 10, { 0 }},
|
||||
{ 120, 0, 6, 7, { 0 }},
|
||||
{ 121, 0, 6, 7, { 0 }},
|
||||
{ 122, 0, 6, 7, { 0 }},
|
||||
{ 123, 0, 3, 5, { 0 }},
|
||||
{ 124, 0, 3, 2, { 0 }},
|
||||
{ 125, 0, 3, 5, { 0 }},
|
||||
{ 126, 0, 6, 8, { 0 }},
|
||||
{ 161, 0, 3, 2, { 0 }},
|
||||
{ 162, 0, 4, 7, { 0 }},
|
||||
{ 163, 0, 3, 7, { 0 }},
|
||||
{ 8364, 0, 3, 9, { 0 }},
|
||||
{ 165, 0, 3, 8, { 0 }},
|
||||
{ 352, 0, 1, 8, { 0 }},
|
||||
{ 167, 0, 4, 5, { 0 }},
|
||||
{ 353, 0, 3, 7, { 0 }},
|
||||
{ 169, 0, 3, 9, { 0 }},
|
||||
{ 170, 0, 3, 7, { 0 }},
|
||||
{ 171, 0, 6, 6, { 0 }},
|
||||
{ 172, 0, 7, 6, { 0 }},
|
||||
{ 174, 0, 3, 9, { 0 }},
|
||||
{ 175, 0, 0, 0, { 0 }},
|
||||
{ 176, 0, 3, 4, { 0 }},
|
||||
{ 177, 0, 6, 8, { 0 }},
|
||||
{ 178, 0, 3, 4, { 0 }},
|
||||
{ 179, 0, 3, 4, { 0 }},
|
||||
{ 381, 0, 1, 8, { 0 }},
|
||||
{ 181, 0, 6, 7, { 0 }},
|
||||
{ 182, 0, 4, 6, { 0 }},
|
||||
{ 183, 0, 7, 2, { 0 }},
|
||||
{ 382, 0, 3, 7, { 0 }},
|
||||
{ 185, 0, 3, 4, { 0 }},
|
||||
{ 186, 0, 3, 5, { 0 }},
|
||||
{ 187, 0, 6, 6, { 0 }},
|
||||
{ 338, 0, 3, 14, { 0 }},
|
||||
{ 339, 0, 6, 13, { 0 }},
|
||||
{ 376, 0, 2, 8, { 0 }},
|
||||
{ 191, 0, 3, 7, { 0 }},
|
||||
{ 192, 0, 1, 8, { 0 }},
|
||||
{ 193, 0, 1, 8, { 0 }},
|
||||
{ 194, 0, 1, 8, { 0 }},
|
||||
{ 195, 0, 1, 8, { 0 }},
|
||||
{ 196, 0, 2, 8, { 0 }},
|
||||
{ 197, 0, -1, 8, { 0 }},
|
||||
{ 198, 0, 3, 14, { 0 }},
|
||||
{ 199, 0, 3, 8, { 0 }},
|
||||
{ 200, 0, 1, 7, { 0 }},
|
||||
{ 201, 0, 1, 7, { 0 }},
|
||||
{ 202, 0, 1, 7, { 0 }},
|
||||
{ 203, 0, 2, 7, { 0 }},
|
||||
{ 204, 0, 1, 6, { 0 }},
|
||||
{ 205, 0, 1, 6, { 0 }},
|
||||
{ 206, 0, 1, 6, { 0 }},
|
||||
{ 207, 0, 2, 6, { 0 }},
|
||||
{ 208, 0, 3, 9, { 0 }},
|
||||
{ 209, 0, 1, 8, { 0 }},
|
||||
{ 210, 0, 1, 8, { 0 }},
|
||||
{ 211, 0, 1, 8, { 0 }},
|
||||
{ 212, 0, 1, 8, { 0 }},
|
||||
{ 213, 0, 1, 8, { 0 }},
|
||||
{ 214, 0, 2, 8, { 0 }},
|
||||
{ 215, 1, 6, 6, { 0 }},
|
||||
{ 216, 0, 3, 8, { 0 }},
|
||||
{ 217, 0, 1, 8, { 0 }},
|
||||
{ 218, 0, 1, 8, { 0 }},
|
||||
{ 219, 0, 1, 8, { 0 }},
|
||||
{ 220, 0, 2, 8, { 0 }},
|
||||
{ 221, 0, 1, 8, { 0 }},
|
||||
{ 222, 0, 3, 7, { 0 }},
|
||||
{ 223, 0, 3, 7, { 0 }},
|
||||
{ 224, 0, 3, 7, { 0 }},
|
||||
{ 225, 0, 3, 7, { 0 }},
|
||||
{ 226, 0, 3, 7, { 0 }},
|
||||
{ 227, 0, 3, 7, { 0 }},
|
||||
{ 228, 0, 3, 7, { 0 }},
|
||||
{ 229, 0, 2, 7, { 0 }},
|
||||
{ 230, 0, 6, 13, { 0 }},
|
||||
{ 231, 0, 6, 7, { 0 }},
|
||||
{ 232, 0, 3, 7, { 0 }},
|
||||
{ 233, 0, 3, 7, { 0 }},
|
||||
{ 234, 0, 3, 7, { 0 }},
|
||||
{ 235, 0, 3, 7, { 0 }},
|
||||
{ 236, -1, 3, 2, { 0 }},
|
||||
{ 237, 0, 3, 2, { 0 }},
|
||||
{ 238, -1, 3, 2, { 0 }},
|
||||
{ 239, -1, 3, 2, { 0 }},
|
||||
{ 240, 0, 3, 8, { 0 }},
|
||||
{ 241, 0, 3, 7, { 0 }},
|
||||
{ 242, 0, 3, 7, { 0 }},
|
||||
{ 243, 0, 3, 7, { 0 }},
|
||||
{ 244, 0, 3, 7, { 0 }},
|
||||
{ 245, 0, 3, 7, { 0 }},
|
||||
{ 246, 0, 3, 7, { 0 }},
|
||||
{ 247, 0, 4, 6, { 0 }},
|
||||
{ 248, 0, 6, 7, { 0 }},
|
||||
{ 249, 0, 3, 7, { 0 }},
|
||||
{ 250, 0, 3, 7, { 0 }},
|
||||
{ 251, 0, 3, 7, { 0 }},
|
||||
{ 252, 0, 3, 7, { 0 }},
|
||||
{ 253, 0, 3, 7, { 0 }},
|
||||
{ 254, 0, 3, 7, { 0 }},
|
||||
{ 255, 0, 3, 7, { 0 }},
|
||||
};
|
||||
|
||||
// Style loading function: Cyber
|
||||
static void GuiLoadStyleCyber(void)
|
||||
{
|
||||
// Load style properties provided
|
||||
// NOTE: Default properties are propagated
|
||||
for (int i = 0; i < CYBER_STYLE_PROPS_COUNT; i++)
|
||||
{
|
||||
GuiSetStyle(cyberStyleProps[i].controlId, cyberStyleProps[i].propertyId, cyberStyleProps[i].propertyValue);
|
||||
}
|
||||
|
||||
// Custom font loading
|
||||
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
|
||||
int cyberFontDataSize = 0;
|
||||
unsigned char *data = DecompressData(cyberFontData, CYBER_STYLE_FONT_ATLAS_COMP_SIZE, &cyberFontDataSize);
|
||||
Image imFont = { data, 512, 256, 1, 2 };
|
||||
|
||||
Font font = { 0 };
|
||||
font.baseSize = 14;
|
||||
font.glyphCount = 189;
|
||||
|
||||
// Load texture from image
|
||||
font.texture = LoadTextureFromImage(imFont);
|
||||
UnloadImage(imFont); // Uncompressed image data can be unloaded from memory
|
||||
|
||||
// Copy char recs data from global fontRecs
|
||||
// NOTE: Required to avoid issues if trying to free font
|
||||
font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle));
|
||||
memcpy(font.recs, cyberFontRecs, font.glyphCount*sizeof(Rectangle));
|
||||
|
||||
// Copy font char info data from global fontChars
|
||||
// NOTE: Required to avoid issues if trying to free font
|
||||
font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo));
|
||||
memcpy(font.glyphs, cyberFontGlyphs, font.glyphCount*sizeof(GlyphInfo));
|
||||
|
||||
GuiSetFont(font);
|
||||
|
||||
// Setup a white rectangle on the font to be used on shapes drawing,
|
||||
// it makes possible to draw shapes and text (full UI) in a single draw call
|
||||
Rectangle fontWhiteRec = { 510, 254, 1, 1 };
|
||||
SetShapesTexture(font.texture, fontWhiteRec);
|
||||
|
||||
//-----------------------------------------------------------------
|
||||
|
||||
// TODO: Custom user style setup: Set specific properties here (if required)
|
||||
// i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT
|
||||
}
|
||||
@ -1,589 +0,0 @@
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// StyleAsCode exporter v2.0 - Style data exported as a values array //
|
||||
// //
|
||||
// USAGE: On init call: GuiLoadStyleDark(); //
|
||||
// //
|
||||
// more info and bugs-report: github.com/raysan5/raygui //
|
||||
// feedback and support: ray[at]raylibtech.com //
|
||||
// //
|
||||
// Copyright (c) 2020-2025 raylib technologies (@raylibtech) //
|
||||
// //
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#define DARK_STYLE_PROPS_COUNT 23
|
||||
|
||||
// Custom style name: Dark
|
||||
static const GuiStyleProp darkStyleProps[DARK_STYLE_PROPS_COUNT] = {
|
||||
{ 0, 0, (int)0x878787ff }, // DEFAULT_BORDER_COLOR_NORMAL
|
||||
{ 0, 1, (int)0x2c2c2cff }, // DEFAULT_BASE_COLOR_NORMAL
|
||||
{ 0, 2, (int)0xc3c3c3ff }, // DEFAULT_TEXT_COLOR_NORMAL
|
||||
{ 0, 3, (int)0xe1e1e1ff }, // DEFAULT_BORDER_COLOR_FOCUSED
|
||||
{ 0, 4, (int)0x848484ff }, // DEFAULT_BASE_COLOR_FOCUSED
|
||||
{ 0, 5, (int)0x181818ff }, // DEFAULT_TEXT_COLOR_FOCUSED
|
||||
{ 0, 6, (int)0x000000ff }, // DEFAULT_BORDER_COLOR_PRESSED
|
||||
{ 0, 7, (int)0xefefefff }, // DEFAULT_BASE_COLOR_PRESSED
|
||||
{ 0, 8, (int)0x202020ff }, // DEFAULT_TEXT_COLOR_PRESSED
|
||||
{ 0, 9, (int)0x6a6a6aff }, // DEFAULT_BORDER_COLOR_DISABLED
|
||||
{ 0, 10, (int)0x818181ff }, // DEFAULT_BASE_COLOR_DISABLED
|
||||
{ 0, 11, (int)0x606060ff }, // DEFAULT_TEXT_COLOR_DISABLED
|
||||
{ 0, 16, (int)0x00000010 }, // DEFAULT_TEXT_SIZE
|
||||
{ 0, 17, (int)0x00000000 }, // DEFAULT_TEXT_SPACING
|
||||
{ 0, 18, (int)0x9d9d9dff }, // DEFAULT_LINE_COLOR
|
||||
{ 0, 19, (int)0x3c3c3cff }, // DEFAULT_BACKGROUND_COLOR
|
||||
{ 0, 20, (int)0x00000008 }, // DEFAULT_TEXT_LINE_SPACING
|
||||
{ 1, 5, (int)0xf7f7f7ff }, // LABEL_TEXT_COLOR_FOCUSED
|
||||
{ 1, 8, (int)0x898989ff }, // LABEL_TEXT_COLOR_PRESSED
|
||||
{ 4, 5, (int)0xb0b0b0ff }, // SLIDER_TEXT_COLOR_FOCUSED
|
||||
{ 5, 5, (int)0x848484ff }, // PROGRESSBAR_TEXT_COLOR_FOCUSED
|
||||
{ 9, 5, (int)0xf5f5f5ff }, // TEXTBOX_TEXT_COLOR_FOCUSED
|
||||
{ 10, 5, (int)0xf6f6f6ff }, // VALUEBOX_TEXT_COLOR_FOCUSED
|
||||
};
|
||||
|
||||
// WARNING: This style uses a custom font: "PixelOperator.ttf" (size: 16, spacing: 0)
|
||||
|
||||
#define DARK_STYLE_FONT_ATLAS_COMP_SIZE 2138
|
||||
|
||||
// Font atlas image pixels data: DEFLATE compressed
|
||||
static unsigned char darkFontData[DARK_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed,
|
||||
0xdd, 0xdb, 0x92, 0xa5, 0xba, 0x0d, 0x00, 0x50, 0xff, 0xff, 0x4f, 0x2b, 0x0f, 0xa9, 0x54, 0x32, 0x95, 0xd3, 0x80, 0x64,
|
||||
0xd9, 0x98, 0x9e, 0x35, 0xeb, 0xad, 0x77, 0x4f, 0xc3, 0x36, 0x96, 0x6f, 0x80, 0x1c, 0x03, 0x00, 0x00, 0x00, 0xf8, 0xeb,
|
||||
0xc5, 0x3f, 0xfe, 0x24, 0x7e, 0xfc, 0xcd, 0x78, 0xfc, 0x77, 0xae, 0x7f, 0xfe, 0x9f, 0x4f, 0xe3, 0xe2, 0x58, 0xcf, 0xce,
|
||||
0x35, 0x7b, 0xdc, 0x48, 0x94, 0xc4, 0x3f, 0x9f, 0x5f, 0x3c, 0xfe, 0xbb, 0x3f, 0x7d, 0xbf, 0xfc, 0xef, 0x5f, 0xfd, 0xa5,
|
||||
0xeb, 0xb3, 0x8f, 0x54, 0xb9, 0xe7, 0xff, 0x4f, 0xee, 0x2a, 0xc6, 0x92, 0xb2, 0xbf, 0x3f, 0xbb, 0xfc, 0xb9, 0x77, 0xfe,
|
||||
0x9f, 0xb8, 0xf8, 0x3e, 0x95, 0xab, 0xf4, 0x24, 0xb6, 0x4e, 0x88, 0xff, 0x78, 0x14, 0x89, 0xd1, 0x5a, 0x73, 0xfe, 0x7b,
|
||||
0xd4, 0x68, 0x6c, 0xa9, 0xaa, 0x25, 0x79, 0x15, 0xe9, 0xf9, 0xf2, 0xb8, 0xaa, 0xfd, 0xf9, 0x16, 0x30, 0x5a, 0xbe, 0xcb,
|
||||
0x7c, 0x6d, 0x8c, 0xe9, 0xdf, 0x7e, 0x56, 0x93, 0x7a, 0xbe, 0xd5, 0xcc, 0x27, 0xa3, 0xe5, 0x2a, 0xbd, 0x11, 0xff, 0x51,
|
||||
0x6e, 0xa9, 0x22, 0x19, 0xd1, 0x1d, 0x25, 0x58, 0x69, 0x87, 0xc7, 0xc6, 0xf8, 0x8f, 0xd6, 0xb1, 0x4b, 0xb4, 0xd5, 0xb9,
|
||||
0x37, 0xe2, 0xff, 0xba, 0xd7, 0x1e, 0x2d, 0xf5, 0x26, 0x6e, 0xca, 0xa8, 0x37, 0x96, 0xd7, 0x8e, 0x53, 0x57, 0xc7, 0xff,
|
||||
0xf5, 0x6f, 0x66, 0xfb, 0xdb, 0x48, 0xf6, 0xdd, 0x1d, 0xe5, 0x54, 0xeb, 0xff, 0xfb, 0xcb, 0x31, 0x7e, 0xec, 0x9b, 0xab,
|
||||
0xe3, 0x90, 0x4c, 0x09, 0x47, 0x72, 0x76, 0x35, 0xdb, 0xc3, 0xbe, 0xd9, 0xff, 0x3f, 0x1b, 0x0b, 0x8a, 0xff, 0xb5, 0xf1,
|
||||
0x5f, 0xf9, 0x26, 0xf1, 0xf0, 0x0c, 0x2a, 0x7d, 0xe2, 0x38, 0x20, 0xfe, 0xb3, 0xed, 0xd0, 0x75, 0x59, 0x75, 0x8d, 0xe5,
|
||||
0xb3, 0xeb, 0x12, 0xcf, 0x66, 0xd8, 0xfb, 0x6a, 0x61, 0x7e, 0x6c, 0x94, 0x8f, 0xff, 0x7c, 0xeb, 0x79, 0xf7, 0xd7, 0xb2,
|
||||
0xa5, 0xfa, 0xf3, 0xcc, 0x6e, 0xbe, 0xc4, 0xf7, 0xc5, 0x7f, 0x14, 0xfa, 0x94, 0xf7, 0xe3, 0xb9, 0x27, 0xfe, 0xa3, 0xb0,
|
||||
0x72, 0x31, 0xda, 0x56, 0xf9, 0x6a, 0xeb, 0x12, 0x7d, 0x6b, 0x06, 0xef, 0x5f, 0x81, 0xfb, 0xf8, 0xbf, 0x9b, 0x0f, 0xbe,
|
||||
0xdf, 0xff, 0xc7, 0x11, 0xfd, 0x7f, 0x94, 0xd7, 0x86, 0x47, 0xa1, 0xf5, 0xfd, 0x5a, 0xfc, 0x47, 0x21, 0x66, 0xa2, 0x65,
|
||||
0x5e, 0x3e, 0x96, 0xac, 0xe5, 0xf5, 0xae, 0x19, 0xee, 0xb9, 0x5a, 0x77, 0xbd, 0x68, 0xd7, 0xac, 0xe6, 0x77, 0xc5, 0xff,
|
||||
0x68, 0xe8, 0xff, 0x9f, 0x8d, 0x01, 0x66, 0xbf, 0x47, 0x7c, 0xac, 0xf7, 0xef, 0x8c, 0xff, 0x5d, 0x2b, 0xf6, 0xeb, 0x6b,
|
||||
0x63, 0x1c, 0x71, 0x65, 0xac, 0xff, 0x77, 0x8e, 0xff, 0xeb, 0x6b, 0x00, 0xb9, 0x79, 0x4c, 0x1c, 0x1a, 0xfd, 0x95, 0x39,
|
||||
0x73, 0xd7, 0x1d, 0xfb, 0xde, 0xa7, 0x09, 0xa2, 0xf0, 0xac, 0x46, 0xcf, 0x2a, 0xce, 0xea, 0x6b, 0x90, 0xef, 0xff, 0x77,
|
||||
0xdd, 0xff, 0xbf, 0x1f, 0x73, 0x9f, 0xd1, 0xff, 0x8f, 0xdb, 0xde, 0xfd, 0x94, 0xf3, 0x01, 0xf6, 0xb6, 0x00, 0x21, 0xfa,
|
||||
0xc1, 0x73, 0xc4, 0x80, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x9f, 0xcf,
|
||||
0xef, 0xcf, 0x63, 0x90, 0xcf, 0x84, 0xbd, 0x3e, 0x03, 0xfb, 0x4c, 0x4e, 0xe0, 0x6a, 0x09, 0x75, 0xfd, 0xc5, 0xeb, 0xdc,
|
||||
0xf1, 0x99, 0x4c, 0x0b, 0xcf, 0x6b, 0x46, 0xa4, 0x77, 0x3f, 0xe8, 0xcc, 0x28, 0x50, 0xc9, 0x69, 0x30, 0x92, 0x75, 0xa2,
|
||||
0x37, 0x97, 0x52, 0xee, 0xec, 0xf7, 0xd4, 0xf8, 0x2f, 0xc4, 0xff, 0xfb, 0x9f, 0x8c, 0x42, 0xfe, 0x9e, 0x9d, 0xf1, 0x9f,
|
||||
0xad, 0x7b, 0xb5, 0xfc, 0xb8, 0x73, 0x7d, 0xc9, 0xee, 0x8c, 0x62, 0xd1, 0x78, 0x0d, 0xf7, 0xf5, 0xab, 0x7f, 0xe6, 0xd0,
|
||||
0xd9, 0x51, 0xaf, 0x67, 0xe2, 0x3f, 0x9b, 0xfb, 0x34, 0x2e, 0x5a, 0xe1, 0x73, 0xe2, 0x7f, 0x6c, 0x89, 0xff, 0xf8, 0x48,
|
||||
0xfc, 0x77, 0x67, 0x92, 0xe9, 0xca, 0x42, 0x5e, 0xc9, 0x7c, 0x93, 0xbf, 0x86, 0xf5, 0x0c, 0xbf, 0xd5, 0x1a, 0xf7, 0x9d,
|
||||
0xf8, 0xaf, 0xd4, 0xad, 0xeb, 0x3c, 0xab, 0xe2, 0xff, 0xbe, 0x6c, 0x2b, 0xbd, 0xc9, 0xfc, 0xcf, 0x7b, 0x22, 0x7f, 0x4f,
|
||||
0x1e, 0xdd, 0xbb, 0x7d, 0xb4, 0xd6, 0xd6, 0x95, 0xd9, 0xbe, 0xf2, 0x2b, 0xf1, 0x1f, 0xc5, 0xbf, 0x12, 0x37, 0x2d, 0x4a,
|
||||
0x6f, 0x06, 0xf6, 0x9e, 0xac, 0x6d, 0x7b, 0xe3, 0xbf, 0x7b, 0xdf, 0x9f, 0x33, 0xe2, 0xff, 0xfd, 0x3c, 0xba, 0xab, 0xe6,
|
||||
0x70, 0xbd, 0x7d, 0xe5, 0xef, 0xee, 0xff, 0xef, 0x5b, 0xc9, 0x1d, 0xf5, 0x63, 0xa6, 0xa7, 0x7f, 0xb3, 0xff, 0x7f, 0xef,
|
||||
0xe7, 0xef, 0xc6, 0x7f, 0x57, 0x6d, 0x8f, 0x8d, 0x23, 0x93, 0x6a, 0x5f, 0xb9, 0x73, 0x95, 0x6c, 0xf7, 0xfc, 0x7f, 0xd5,
|
||||
0x37, 0x1b, 0xe9, 0xd1, 0x44, 0x1c, 0x1b, 0xff, 0x33, 0xab, 0x90, 0xeb, 0xc6, 0x0b, 0xef, 0x8c, 0xff, 0x6b, 0xfb, 0xdb,
|
||||
0x56, 0x76, 0x05, 0x3c, 0xad, 0xff, 0xdf, 0x75, 0x97, 0x6c, 0x6c, 0x8e, 0xc9, 0xbd, 0xc7, 0xea, 0xdc, 0xa5, 0x2e, 0x9f,
|
||||
0xbf, 0x3f, 0x9a, 0x47, 0x78, 0x5f, 0x8f, 0xff, 0xfa, 0x2a, 0xff, 0x68, 0x5a, 0x95, 0x7c, 0x6f, 0xfc, 0xbf, 0x7b, 0xa7,
|
||||
0x93, 0xca, 0x51, 0x7a, 0xda, 0xdf, 0x67, 0x77, 0x85, 0x7b, 0x7b, 0x81, 0x9f, 0xef, 0x36, 0x44, 0x53, 0xcf, 0xd1, 0x95,
|
||||
0xbf, 0xff, 0xcf, 0x73, 0xcb, 0xef, 0x78, 0x96, 0xbf, 0x13, 0x1f, 0xc9, 0xfd, 0xf4, 0xdf, 0x88, 0xff, 0xca, 0x91, 0x2b,
|
||||
0xff, 0x2b, 0x7b, 0x0d, 0x3b, 0xe3, 0xff, 0xbd, 0x16, 0x40, 0xde, 0x4d, 0x38, 0x71, 0x14, 0x03, 0xfc, 0x9e, 0x16, 0xc0,
|
||||
0x0e, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xee, 0x37, 0xb1, 0x7f, 0xce,
|
||||
0xcd, 0x55, 0xc9, 0x1a, 0x9f, 0x7f, 0x4f, 0x7a, 0x67, 0xc6, 0xfc, 0x71, 0x93, 0x85, 0xec, 0xfa, 0xb7, 0xfe, 0xfc, 0xa4,
|
||||
0x23, 0x1f, 0x6f, 0x34, 0xbe, 0xb5, 0x9e, 0xc9, 0xe5, 0x1d, 0x85, 0x6c, 0x03, 0x57, 0x6f, 0xc6, 0xe6, 0xae, 0x41, 0xee,
|
||||
0x18, 0xd1, 0x9e, 0xcf, 0x2c, 0xd2, 0xd9, 0x63, 0xfe, 0xf7, 0x9c, 0x9f, 0x67, 0xfa, 0x8d, 0xf2, 0x9b, 0xc6, 0x77, 0xb9,
|
||||
0xcc, 0xf2, 0xf9, 0x11, 0x2a, 0x39, 0xf3, 0xf2, 0x79, 0x36, 0x4f, 0xcf, 0x98, 0x3f, 0x9f, 0x79, 0x27, 0x6e, 0xea, 0xe4,
|
||||
0xf3, 0x5a, 0xfa, 0x24, 0x73, 0x44, 0x4f, 0x06, 0xa1, 0xda, 0x37, 0x8e, 0xe9, 0xda, 0x5a, 0xb9, 0xde, 0x99, 0x23, 0xc4,
|
||||
0xf4, 0xfb, 0xfc, 0x95, 0xfa, 0x1e, 0x93, 0xd7, 0xbd, 0xfe, 0x8d, 0x67, 0xb2, 0x10, 0x44, 0xa9, 0xa7, 0xeb, 0x2c, 0xc1,
|
||||
0xeb, 0x4f, 0xf2, 0x19, 0x33, 0xe3, 0x61, 0x7c, 0x75, 0xff, 0x74, 0x24, 0xdb, 0x9b, 0x4a, 0xbe, 0xba, 0x99, 0x5d, 0x33,
|
||||
0xe6, 0xc6, 0x88, 0xe3, 0x22, 0xbb, 0x52, 0x3e, 0xfa, 0x7f, 0xee, 0x6f, 0x62, 0x32, 0xfe, 0xa3, 0x98, 0x59, 0xa8, 0x1e,
|
||||
0x23, 0xd9, 0xf8, 0x9f, 0xbf, 0x0a, 0xbb, 0xe2, 0xbf, 0x92, 0xf5, 0xe0, 0xfd, 0x8c, 0xd9, 0xb5, 0x9e, 0x70, 0x6f, 0xfc,
|
||||
0xc7, 0x83, 0xf6, 0x6b, 0xa4, 0xe7, 0x2f, 0xa3, 0x90, 0xe1, 0xfc, 0xf9, 0xec, 0x22, 0x5a, 0xfb, 0xff, 0x71, 0x59, 0x26,
|
||||
0xf1, 0xc2, 0xf8, 0xbf, 0xb6, 0xdf, 0x5b, 0x2e, 0xfe, 0x67, 0x5a, 0xa7, 0xfd, 0xfd, 0x7f, 0xad, 0x5f, 0x3b, 0xb9, 0xff,
|
||||
0x7f, 0x27, 0x63, 0x76, 0x14, 0xe6, 0xd9, 0x95, 0xe3, 0xc6, 0xe4, 0xc8, 0xe0, 0xd9, 0x5c, 0x30, 0x1a, 0xe6, 0xab, 0x1d,
|
||||
0xf1, 0xdf, 0x3f, 0xc2, 0xae, 0xcc, 0xad, 0x6a, 0xfd, 0x7f, 0xb4, 0xce, 0xff, 0x23, 0xdd, 0xce, 0xcf, 0xc5, 0x7f, 0xe7,
|
||||
0x6e, 0x4b, 0x2b, 0x32, 0xe6, 0xe6, 0x77, 0x76, 0x7c, 0xab, 0xff, 0x1f, 0xa5, 0xfe, 0xbf, 0xd6, 0x7b, 0xcd, 0xd4, 0xca,
|
||||
0xd8, 0x90, 0xeb, 0x2e, 0x37, 0xfe, 0x5f, 0x3d, 0xca, 0xce, 0xcf, 0x28, 0x63, 0x53, 0xfb, 0xd4, 0x3d, 0xf7, 0xab, 0x45,
|
||||
0x4b, 0xa4, 0xc7, 0xd7, 0x3b, 0x33, 0xe6, 0x56, 0xd6, 0x9e, 0xcf, 0x8f, 0xff, 0xce, 0x3d, 0x4c, 0x2a, 0x77, 0x17, 0xa2,
|
||||
0xa1, 0x6f, 0x5e, 0xdd, 0xff, 0xcf, 0xce, 0xff, 0x2b, 0xb9, 0xf4, 0xf7, 0xac, 0xff, 0x8d, 0xa5, 0x6b, 0x3f, 0xd1, 0x7a,
|
||||
0x3f, 0x71, 0x1c, 0xd0, 0x7e, 0x77, 0x66, 0x89, 0x7f, 0x63, 0xfe, 0xdf, 0x95, 0x81, 0x7d, 0x94, 0xef, 0x09, 0xd5, 0xd7,
|
||||
0xff, 0x67, 0x6b, 0x60, 0x1c, 0xd3, 0xf7, 0x8f, 0xc7, 0x7b, 0xe8, 0xc4, 0x4b, 0xd1, 0x7f, 0x5a, 0xfc, 0x9f, 0xf2, 0x44,
|
||||
0x43, 0x47, 0xbb, 0x15, 0x2d, 0xad, 0x5b, 0x65, 0xdf, 0x96, 0xce, 0x71, 0xd4, 0xfc, 0xfc, 0x7f, 0xcd, 0xba, 0xfa, 0x1b,
|
||||
0xc7, 0x98, 0xb9, 0x23, 0x3b, 0x1f, 0xff, 0xb1, 0xbc, 0xe4, 0xe4, 0x23, 0xfe, 0x4e, 0x2b, 0x75, 0xde, 0xf1, 0xfe, 0xe6,
|
||||
0xda, 0x13, 0x1b, 0x9f, 0xb5, 0x13, 0xa1, 0xc4, 0xd1, 0xf3, 0x21, 0xd7, 0x03, 0xfe, 0xe6, 0xf9, 0xd0, 0xdf, 0xfa, 0x1c,
|
||||
0xbc, 0x92, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4e, 0x7d, 0x3b, 0xa4, 0x92, 0x59,
|
||||
0x72, 0x34, 0xbf, 0x8b, 0x9e, 0xcf, 0xad, 0x5f, 0x3d, 0xbb, 0xbb, 0xf7, 0xa5, 0x6b, 0xf9, 0x79, 0x6b, 0xe5, 0x34, 0x97,
|
||||
0x8f, 0x28, 0x97, 0x53, 0xed, 0x7e, 0xff, 0x83, 0x38, 0xf2, 0x6a, 0xde, 0x65, 0x75, 0x8d, 0x42, 0x3e, 0xd5, 0xce, 0xeb,
|
||||
0x35, 0x4a, 0x65, 0xb7, 0xab, 0x96, 0x3d, 0x7f, 0x3b, 0x34, 0x36, 0xbc, 0x4f, 0x59, 0x8b, 0x85, 0x5a, 0x6e, 0xc3, 0xb9,
|
||||
0xdc, 0x61, 0xb1, 0xf8, 0x9b, 0xe5, 0xca, 0x6f, 0x7e, 0x3f, 0x89, 0xfb, 0x6c, 0xab, 0xf1, 0xb9, 0xab, 0x59, 0xcd, 0xf8,
|
||||
0xde, 0x7d, 0xbd, 0xea, 0xb5, 0xe5, 0x84, 0x5a, 0xb6, 0x7e, 0x67, 0x89, 0x37, 0xde, 0x6e, 0xad, 0x66, 0xc4, 0x8d, 0xcf,
|
||||
0xbf, 0x73, 0x1a, 0x1f, 0xcd, 0x05, 0x50, 0xcb, 0x13, 0xb9, 0xeb, 0x5b, 0x55, 0x8e, 0x14, 0xa5, 0x3d, 0x9b, 0xc6, 0xf6,
|
||||
0xec, 0x10, 0xf9, 0xec, 0xe7, 0xa3, 0x94, 0xef, 0xb3, 0xfb, 0x93, 0xca, 0x15, 0xa9, 0xc7, 0xff, 0x55, 0x39, 0x55, 0x3e,
|
||||
0x99, 0xed, 0xff, 0xc7, 0xf2, 0x7d, 0x18, 0x4e, 0xb9, 0x9a, 0x77, 0xfd, 0x7f, 0xb4, 0xed, 0x98, 0xb4, 0xf7, 0x93, 0x1d,
|
||||
0xe5, 0xda, 0x11, 0x0b, 0xbb, 0xf6, 0xfb, 0x8b, 0x74, 0xad, 0x18, 0xe9, 0x1c, 0x7b, 0xf5, 0xd9, 0xd7, 0xae, 0x4f, 0x56,
|
||||
0xc4, 0x7f, 0x5c, 0xcc, 0x93, 0xbb, 0x77, 0x1d, 0xeb, 0xbe, 0x9a, 0x4f, 0x5a, 0x86, 0x2f, 0xc6, 0xff, 0x8e, 0xf8, 0x99,
|
||||
0x9d, 0xff, 0x47, 0x79, 0x37, 0x9d, 0x33, 0x6b, 0x4c, 0x3c, 0xcc, 0xe8, 0xfc, 0xdb, 0xe2, 0x7f, 0x6f, 0x19, 0x77, 0xb7,
|
||||
0xe6, 0xd7, 0x23, 0xec, 0xf1, 0xd1, 0xf8, 0x9f, 0xdd, 0xef, 0x6d, 0x7e, 0xee, 0x7a, 0xbf, 0xfe, 0xdf, 0xb9, 0xb2, 0x71,
|
||||
0x46, 0xfc, 0x9f, 0x12, 0xe5, 0xb9, 0x32, 0x5f, 0x1b, 0xff, 0xef, 0xc7, 0x50, 0x57, 0x1f, 0xf6, 0xde, 0xb9, 0x47, 0xdb,
|
||||
0xfc, 0xff, 0x7e, 0x97, 0xe4, 0xdc, 0xdd, 0x9d, 0xbd, 0xab, 0x49, 0x3b, 0x4b, 0xbd, 0x73, 0xcf, 0xe1, 0xa7, 0x63, 0x87,
|
||||
0xee, 0xf9, 0xee, 0x19, 0xfd, 0x7f, 0x88, 0xff, 0x05, 0x6b, 0xe1, 0x27, 0xf4, 0x92, 0xab, 0xee, 0xe5, 0xe5, 0xb3, 0xd8,
|
||||
0xf7, 0x7e, 0x32, 0x5b, 0x52, 0xf9, 0xfb, 0xff, 0x5f, 0x1f, 0xff, 0x3f, 0xd9, 0xe1, 0xe7, 0x5b, 0xf1, 0x1f, 0xc5, 0x15,
|
||||
0xc5, 0x33, 0xe2, 0x3f, 0x36, 0x8e, 0x6a, 0x57, 0xdc, 0xcb, 0x3f, 0x79, 0xfc, 0xdf, 0xbf, 0x13, 0xd4, 0xd7, 0xe3, 0xff,
|
||||
0x0b, 0x63, 0xe8, 0x35, 0x4f, 0xa1, 0xbc, 0x17, 0xff, 0x73, 0x77, 0x86, 0x4f, 0x1e, 0xff, 0x9f, 0x1e, 0xff, 0xb3, 0x57,
|
||||
0x25, 0x36, 0xcd, 0xff, 0x9f, 0x8e, 0x34, 0x7e, 0x7f, 0xfc, 0x8f, 0xad, 0x7b, 0xf7, 0xd7, 0xe7, 0x9b, 0xe3, 0xd0, 0x67,
|
||||
0x61, 0xce, 0x79, 0x8a, 0xe3, 0xfd, 0x99, 0xcd, 0xfc, 0xae, 0xa8, 0xeb, 0xef, 0xff, 0x8f, 0x65, 0xfd, 0x7f, 0xef, 0x93,
|
||||
0x2d, 0xbb, 0xee, 0xff, 0xef, 0x7d, 0xa2, 0xa8, 0xfb, 0x0c, 0xc5, 0xff, 0x37, 0xda, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xe2, 0x73, 0xf2, 0x2b, 0x72, 0xeb, 0xf7, 0xe7, 0xc3, 0x38, 0x3d, 0xb7, 0xfe,
|
||||
0xdd, 0xfb, 0x33, 0xe3, 0xd8, 0xdc, 0xfa, 0xe3, 0x51, 0x8e, 0xa2, 0xef, 0xe5, 0xd6, 0xf7, 0xee, 0xc7, 0xd3, 0xb7, 0x64,
|
||||
0xd6, 0xe5, 0xd6, 0xef, 0x7b, 0x87, 0xfa, 0xf4, 0xdc, 0xfa, 0xe3, 0x26, 0x13, 0xd1, 0xc9, 0xb9, 0xf5, 0xeb, 0x6f, 0x51,
|
||||
0x9d, 0x9a, 0x5b, 0x9f, 0xb5, 0xef, 0x4e, 0x3e, 0x6d, 0xfb, 0xe3, 0xc5, 0x6b, 0xf6, 0x46, 0x36, 0x84, 0x93, 0x6b, 0x64,
|
||||
0x3e, 0x5b, 0xd3, 0x8a, 0x16, 0xa5, 0xf3, 0x7d, 0xcd, 0xb3, 0x73, 0xeb, 0x7f, 0x3d, 0xc6, 0xeb, 0xd9, 0x58, 0xa3, 0x9c,
|
||||
0xf3, 0xbe, 0xef, 0x5d, 0xed, 0x48, 0x8d, 0x1b, 0xd7, 0xe6, 0xd6, 0xba, 0x6e, 0x47, 0xcf, 0xdd, 0x29, 0xe1, 0xdb, 0xb9,
|
||||
0xb5, 0xc5, 0x7f, 0x4f, 0xab, 0x1b, 0x4d, 0x51, 0xf7, 0xf4, 0x93, 0x7d, 0x59, 0x83, 0xfa, 0xe2, 0x3f, 0xda, 0x3f, 0xdb,
|
||||
0x9b, 0x5b, 0xab, 0xba, 0x9e, 0x20, 0xfe, 0x7f, 0x57, 0x3b, 0x90, 0x99, 0xd1, 0x3e, 0x29, 0xf7, 0x37, 0x6b, 0xc0, 0xce,
|
||||
0xdc, 0x5a, 0x5f, 0x8f, 0xff, 0x4a, 0xff, 0x20, 0xfe, 0x7f, 0xcf, 0xf8, 0xbf, 0xaf, 0x2f, 0xaf, 0xaf, 0xff, 0x7f, 0x79,
|
||||
0x6f, 0xad, 0xdf, 0x19, 0xff, 0x67, 0xe4, 0xd6, 0x15, 0xff, 0xef, 0x8c, 0xff, 0x6b, 0xfb, 0x13, 0xac, 0x58, 0xcd, 0xed,
|
||||
0x9d, 0x4d, 0x88, 0xff, 0xd5, 0x75, 0xe7, 0xa4, 0x9d, 0x21, 0xc4, 0x78, 0x7d, 0xfe, 0x5f, 0xdb, 0x13, 0xb4, 0xda, 0x02,
|
||||
0xec, 0xcb, 0xd5, 0xfa, 0x46, 0x6e, 0x7d, 0xb9, 0x75, 0x67, 0xae, 0xd7, 0xf5, 0xe8, 0xef, 0x9b, 0xf7, 0x63, 0x4e, 0x1f,
|
||||
0xff, 0xf7, 0xde, 0xab, 0xf9, 0xff, 0x35, 0xa5, 0xd5, 0x2b, 0xde, 0xab, 0xc6, 0xff, 0x2b, 0xda, 0xd8, 0x37, 0x4b, 0x63,
|
||||
0xcd, 0xbd, 0xa3, 0xfe, 0x33, 0x8c, 0xa6, 0xd1, 0x1f, 0xef, 0xb4, 0x1a, 0xb0, 0x66, 0x9c, 0xf1, 0x7e, 0x4b, 0x08, 0x7c,
|
||||
0xed, 0x49, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x93, 0xfc, 0xfb, 0x9f, 0x72, 0x00, 0xf1, 0x0f, 0xfc, 0x75, 0xf1, 0xff, 0x2f };
|
||||
|
||||
// Font glyphs rectangles data (on atlas)
|
||||
static const Rectangle darkFontRecs[189] = {
|
||||
{ 4, 4, 4 , 16 },
|
||||
{ 16, 4, 1 , 9 },
|
||||
{ 25, 4, 3 , 3 },
|
||||
{ 36, 4, 6 , 9 },
|
||||
{ 50, 4, 5 , 13 },
|
||||
{ 63, 4, 7 , 9 },
|
||||
{ 78, 4, 5 , 9 },
|
||||
{ 91, 4, 1 , 3 },
|
||||
{ 100, 4, 3 , 9 },
|
||||
{ 111, 4, 3 , 9 },
|
||||
{ 122, 4, 5 , 5 },
|
||||
{ 135, 4, 5 , 5 },
|
||||
{ 148, 4, 2 , 3 },
|
||||
{ 158, 4, 4 , 1 },
|
||||
{ 170, 4, 1 , 1 },
|
||||
{ 179, 4, 3 , 9 },
|
||||
{ 190, 4, 5 , 9 },
|
||||
{ 203, 4, 3 , 9 },
|
||||
{ 214, 4, 5 , 9 },
|
||||
{ 227, 4, 5 , 9 },
|
||||
{ 240, 4, 5 , 9 },
|
||||
{ 253, 4, 5 , 9 },
|
||||
{ 266, 4, 5 , 9 },
|
||||
{ 279, 4, 5 , 9 },
|
||||
{ 292, 4, 5 , 9 },
|
||||
{ 305, 4, 5 , 9 },
|
||||
{ 318, 4, 1 , 7 },
|
||||
{ 327, 4, 2 , 9 },
|
||||
{ 337, 4, 3 , 5 },
|
||||
{ 348, 4, 4 , 3 },
|
||||
{ 360, 4, 3 , 5 },
|
||||
{ 371, 4, 5 , 9 },
|
||||
{ 384, 4, 7 , 9 },
|
||||
{ 399, 4, 5 , 9 },
|
||||
{ 412, 4, 5 , 9 },
|
||||
{ 425, 4, 5 , 9 },
|
||||
{ 438, 4, 5 , 9 },
|
||||
{ 451, 4, 5 , 9 },
|
||||
{ 464, 4, 5 , 9 },
|
||||
{ 477, 4, 5 , 9 },
|
||||
{ 490, 4, 5 , 9 },
|
||||
{ 4, 28, 1 , 9 },
|
||||
{ 13, 28, 5 , 9 },
|
||||
{ 26, 28, 5 , 9 },
|
||||
{ 39, 28, 5 , 9 },
|
||||
{ 52, 28, 7 , 9 },
|
||||
{ 67, 28, 5 , 9 },
|
||||
{ 80, 28, 5 , 9 },
|
||||
{ 93, 28, 5 , 9 },
|
||||
{ 106, 28, 5 , 9 },
|
||||
{ 119, 28, 5 , 9 },
|
||||
{ 132, 28, 5 , 9 },
|
||||
{ 145, 28, 5 , 9 },
|
||||
{ 158, 28, 5 , 9 },
|
||||
{ 171, 28, 5 , 9 },
|
||||
{ 184, 28, 7 , 9 },
|
||||
{ 199, 28, 5 , 9 },
|
||||
{ 212, 28, 5 , 9 },
|
||||
{ 225, 28, 5 , 9 },
|
||||
{ 238, 28, 3 , 9 },
|
||||
{ 249, 28, 3 , 9 },
|
||||
{ 260, 28, 3 , 9 },
|
||||
{ 271, 28, 5 , 3 },
|
||||
{ 284, 28, 5 , 1 },
|
||||
{ 297, 28, 2 , 2 },
|
||||
{ 307, 28, 5 , 7 },
|
||||
{ 320, 28, 5 , 9 },
|
||||
{ 333, 28, 5 , 7 },
|
||||
{ 346, 28, 5 , 9 },
|
||||
{ 359, 28, 5 , 7 },
|
||||
{ 372, 28, 4 , 9 },
|
||||
{ 384, 28, 5 , 9 },
|
||||
{ 397, 28, 5 , 9 },
|
||||
{ 410, 28, 1 , 9 },
|
||||
{ 419, 28, 5 , 11 },
|
||||
{ 432, 28, 5 , 9 },
|
||||
{ 445, 28, 2 , 9 },
|
||||
{ 455, 28, 7 , 7 },
|
||||
{ 470, 28, 5 , 7 },
|
||||
{ 483, 28, 5 , 7 },
|
||||
{ 496, 28, 5 , 9 },
|
||||
{ 4, 52, 5 , 9 },
|
||||
{ 17, 52, 5 , 7 },
|
||||
{ 30, 52, 5 , 7 },
|
||||
{ 43, 52, 4 , 8 },
|
||||
{ 55, 52, 5 , 7 },
|
||||
{ 68, 52, 5 , 7 },
|
||||
{ 81, 52, 7 , 7 },
|
||||
{ 96, 52, 5 , 7 },
|
||||
{ 109, 52, 5 , 9 },
|
||||
{ 122, 52, 5 , 7 },
|
||||
{ 135, 52, 4 , 9 },
|
||||
{ 147, 52, 1 , 9 },
|
||||
{ 156, 52, 4 , 9 },
|
||||
{ 168, 52, 6 , 2 },
|
||||
{ 182, 52, 1 , 9 },
|
||||
{ 191, 52, 5 , 11 },
|
||||
{ 204, 52, 6 , 9 },
|
||||
{ 218, 52, 6 , 9 },
|
||||
{ 232, 52, 5 , 9 },
|
||||
{ 245, 52, 5 , 12 },
|
||||
{ 258, 52, 0 , 0 },
|
||||
{ 266, 52, 5 , 10 },
|
||||
{ 279, 52, 7 , 9 },
|
||||
{ 294, 52, 0 , 0 },
|
||||
{ 302, 52, 6 , 5 },
|
||||
{ 316, 52, 5 , 3 },
|
||||
{ 329, 52, 7 , 9 },
|
||||
{ 344, 52, 0 , 0 },
|
||||
{ 352, 52, 4 , 4 },
|
||||
{ 364, 52, 5 , 7 },
|
||||
{ 377, 52, 0 , 0 },
|
||||
{ 385, 52, 0 , 0 },
|
||||
{ 393, 52, 5 , 12 },
|
||||
{ 406, 52, 5 , 9 },
|
||||
{ 419, 52, 7 , 9 },
|
||||
{ 434, 52, 1 , 1 },
|
||||
{ 443, 52, 5 , 10 },
|
||||
{ 456, 52, 0 , 0 },
|
||||
{ 464, 52, 0 , 0 },
|
||||
{ 472, 52, 6 , 5 },
|
||||
{ 486, 52, 9 , 9 },
|
||||
{ 4, 76, 9 , 7 },
|
||||
{ 21, 76, 5 , 11 },
|
||||
{ 34, 76, 5 , 9 },
|
||||
{ 47, 76, 5 , 12 },
|
||||
{ 60, 76, 5 , 12 },
|
||||
{ 73, 76, 5 , 12 },
|
||||
{ 86, 76, 6 , 12 },
|
||||
{ 100, 76, 5 , 11 },
|
||||
{ 113, 76, 5 , 13 },
|
||||
{ 126, 76, 9 , 9 },
|
||||
{ 143, 76, 5 , 12 },
|
||||
{ 156, 76, 5 , 12 },
|
||||
{ 169, 76, 5 , 12 },
|
||||
{ 182, 76, 5 , 12 },
|
||||
{ 195, 76, 5 , 11 },
|
||||
{ 208, 76, 2 , 12 },
|
||||
{ 218, 76, 2 , 12 },
|
||||
{ 228, 76, 3 , 12 },
|
||||
{ 239, 76, 3 , 11 },
|
||||
{ 250, 76, 6 , 9 },
|
||||
{ 264, 76, 6 , 12 },
|
||||
{ 278, 76, 5 , 12 },
|
||||
{ 291, 76, 5 , 12 },
|
||||
{ 304, 76, 5 , 12 },
|
||||
{ 317, 76, 6 , 12 },
|
||||
{ 331, 76, 5 , 11 },
|
||||
{ 344, 76, 5 , 5 },
|
||||
{ 357, 76, 7 , 9 },
|
||||
{ 372, 76, 5 , 12 },
|
||||
{ 385, 76, 5 , 12 },
|
||||
{ 398, 76, 5 , 12 },
|
||||
{ 411, 76, 5 , 11 },
|
||||
{ 424, 76, 5 , 12 },
|
||||
{ 437, 76, 5 , 9 },
|
||||
{ 450, 76, 5 , 9 },
|
||||
{ 463, 76, 5 , 10 },
|
||||
{ 476, 76, 5 , 10 },
|
||||
{ 489, 76, 5 , 10 },
|
||||
{ 4, 100, 6 , 10 },
|
||||
{ 18, 100, 5 , 9 },
|
||||
{ 31, 100, 5 , 11 },
|
||||
{ 44, 100, 9 , 7 },
|
||||
{ 61, 100, 5 , 10 },
|
||||
{ 74, 100, 5 , 10 },
|
||||
{ 87, 100, 5 , 10 },
|
||||
{ 100, 100, 5 , 10 },
|
||||
{ 113, 100, 5 , 9 },
|
||||
{ 126, 100, 2 , 10 },
|
||||
{ 136, 100, 2 , 10 },
|
||||
{ 146, 100, 3 , 10 },
|
||||
{ 157, 100, 3 , 9 },
|
||||
{ 168, 100, 6 , 9 },
|
||||
{ 182, 100, 6 , 10 },
|
||||
{ 196, 100, 5 , 10 },
|
||||
{ 209, 100, 5 , 10 },
|
||||
{ 222, 100, 5 , 10 },
|
||||
{ 235, 100, 6 , 10 },
|
||||
{ 249, 100, 5 , 9 },
|
||||
{ 262, 100, 5 , 5 },
|
||||
{ 275, 100, 7 , 7 },
|
||||
{ 290, 100, 5 , 10 },
|
||||
{ 303, 100, 5 , 10 },
|
||||
{ 316, 100, 5 , 10 },
|
||||
{ 329, 100, 5 , 9 },
|
||||
{ 342, 100, 5 , 12 },
|
||||
{ 355, 100, 5 , 11 },
|
||||
{ 368, 100, 5 , 11 },
|
||||
};
|
||||
|
||||
// Font glyphs info data
|
||||
// NOTE: No glyphs.image data provided
|
||||
static const GlyphInfo darkFontGlyphs[189] = {
|
||||
{ 32, 0, 0, 4, { 0 }},
|
||||
{ 33, 2, 4, 5, { 0 }},
|
||||
{ 34, 2, 4, 7, { 0 }},
|
||||
{ 35, 1, 4, 8, { 0 }},
|
||||
{ 36, 1, 2, 7, { 0 }},
|
||||
{ 37, 1, 4, 9, { 0 }},
|
||||
{ 38, 1, 4, 7, { 0 }},
|
||||
{ 39, 2, 4, 5, { 0 }},
|
||||
{ 40, 3, 4, 7, { 0 }},
|
||||
{ 41, 1, 4, 7, { 0 }},
|
||||
{ 42, 1, 4, 7, { 0 }},
|
||||
{ 43, 1, 6, 7, { 0 }},
|
||||
{ 44, 1, 12, 5, { 0 }},
|
||||
{ 45, 1, 8, 6, { 0 }},
|
||||
{ 46, 2, 12, 5, { 0 }},
|
||||
{ 47, 1, 4, 5, { 0 }},
|
||||
{ 48, 1, 4, 7, { 0 }},
|
||||
{ 49, 2, 4, 7, { 0 }},
|
||||
{ 50, 1, 4, 7, { 0 }},
|
||||
{ 51, 1, 4, 7, { 0 }},
|
||||
{ 52, 1, 4, 7, { 0 }},
|
||||
{ 53, 1, 4, 7, { 0 }},
|
||||
{ 54, 1, 4, 7, { 0 }},
|
||||
{ 55, 1, 4, 7, { 0 }},
|
||||
{ 56, 1, 4, 7, { 0 }},
|
||||
{ 57, 1, 4, 7, { 0 }},
|
||||
{ 58, 2, 6, 5, { 0 }},
|
||||
{ 59, 1, 6, 5, { 0 }},
|
||||
{ 60, 1, 6, 5, { 0 }},
|
||||
{ 61, 1, 7, 6, { 0 }},
|
||||
{ 62, 1, 6, 5, { 0 }},
|
||||
{ 63, 1, 4, 7, { 0 }},
|
||||
{ 64, 1, 4, 9, { 0 }},
|
||||
{ 65, 1, 4, 7, { 0 }},
|
||||
{ 66, 1, 4, 7, { 0 }},
|
||||
{ 67, 1, 4, 7, { 0 }},
|
||||
{ 68, 1, 4, 7, { 0 }},
|
||||
{ 69, 1, 4, 7, { 0 }},
|
||||
{ 70, 1, 4, 7, { 0 }},
|
||||
{ 71, 1, 4, 7, { 0 }},
|
||||
{ 72, 1, 4, 7, { 0 }},
|
||||
{ 73, 2, 4, 5, { 0 }},
|
||||
{ 74, 1, 4, 7, { 0 }},
|
||||
{ 75, 1, 4, 7, { 0 }},
|
||||
{ 76, 1, 4, 7, { 0 }},
|
||||
{ 77, 1, 4, 9, { 0 }},
|
||||
{ 78, 1, 4, 7, { 0 }},
|
||||
{ 79, 1, 4, 7, { 0 }},
|
||||
{ 80, 1, 4, 7, { 0 }},
|
||||
{ 81, 1, 4, 7, { 0 }},
|
||||
{ 82, 1, 4, 7, { 0 }},
|
||||
{ 83, 1, 4, 7, { 0 }},
|
||||
{ 84, 1, 4, 7, { 0 }},
|
||||
{ 85, 1, 4, 7, { 0 }},
|
||||
{ 86, 1, 4, 7, { 0 }},
|
||||
{ 87, 1, 4, 9, { 0 }},
|
||||
{ 88, 1, 4, 7, { 0 }},
|
||||
{ 89, 1, 4, 7, { 0 }},
|
||||
{ 90, 1, 4, 7, { 0 }},
|
||||
{ 91, 3, 4, 7, { 0 }},
|
||||
{ 92, 1, 4, 5, { 0 }},
|
||||
{ 93, 1, 4, 7, { 0 }},
|
||||
{ 94, 1, 4, 7, { 0 }},
|
||||
{ 95, 0, 14, 5, { 0 }},
|
||||
{ 96, 1, 4, 5, { 0 }},
|
||||
{ 97, 1, 6, 7, { 0 }},
|
||||
{ 98, 1, 4, 7, { 0 }},
|
||||
{ 99, 1, 6, 7, { 0 }},
|
||||
{ 100, 1, 4, 7, { 0 }},
|
||||
{ 101, 1, 6, 7, { 0 }},
|
||||
{ 102, 1, 4, 6, { 0 }},
|
||||
{ 103, 1, 6, 7, { 0 }},
|
||||
{ 104, 1, 4, 7, { 0 }},
|
||||
{ 105, 2, 4, 5, { 0 }},
|
||||
{ 106, 1, 4, 7, { 0 }},
|
||||
{ 107, 1, 4, 7, { 0 }},
|
||||
{ 108, 2, 4, 5, { 0 }},
|
||||
{ 109, 1, 6, 9, { 0 }},
|
||||
{ 110, 1, 6, 7, { 0 }},
|
||||
{ 111, 1, 6, 7, { 0 }},
|
||||
{ 112, 1, 6, 7, { 0 }},
|
||||
{ 113, 1, 6, 7, { 0 }},
|
||||
{ 114, 1, 6, 7, { 0 }},
|
||||
{ 115, 1, 6, 7, { 0 }},
|
||||
{ 116, 1, 5, 6, { 0 }},
|
||||
{ 117, 1, 6, 7, { 0 }},
|
||||
{ 118, 1, 6, 7, { 0 }},
|
||||
{ 119, 1, 6, 9, { 0 }},
|
||||
{ 120, 1, 6, 7, { 0 }},
|
||||
{ 121, 1, 6, 7, { 0 }},
|
||||
{ 122, 1, 6, 7, { 0 }},
|
||||
{ 123, 2, 4, 7, { 0 }},
|
||||
{ 124, 2, 4, 5, { 0 }},
|
||||
{ 125, 1, 4, 7, { 0 }},
|
||||
{ 126, 1, 4, 8, { 0 }},
|
||||
{ 161, 2, 6, 5, { 0 }},
|
||||
{ 162, 1, 4, 7, { 0 }},
|
||||
{ 163, 1, 4, 8, { 0 }},
|
||||
{ 8364, 1, 4, 8, { 0 }},
|
||||
{ 165, 1, 4, 7, { 0 }},
|
||||
{ 352, 1, 1, 7, { 0 }},
|
||||
{ 167, 0, 0, 0, { 0 }},
|
||||
{ 353, 1, 3, 7, { 0 }},
|
||||
{ 169, 1, 4, 9, { 0 }},
|
||||
{ 170, 0, 0, 0, { 0 }},
|
||||
{ 171, 1, 6, 8, { 0 }},
|
||||
{ 172, 1, 8, 7, { 0 }},
|
||||
{ 174, 1, 4, 9, { 0 }},
|
||||
{ 175, 0, 0, 0, { 0 }},
|
||||
{ 176, 1, 4, 6, { 0 }},
|
||||
{ 177, 1, 6, 7, { 0 }},
|
||||
{ 178, 0, 0, 0, { 0 }},
|
||||
{ 179, 0, 0, 0, { 0 }},
|
||||
{ 381, 1, 1, 7, { 0 }},
|
||||
{ 181, 1, 6, 7, { 0 }},
|
||||
{ 182, 1, 4, 9, { 0 }},
|
||||
{ 183, 2, 8, 5, { 0 }},
|
||||
{ 382, 1, 3, 7, { 0 }},
|
||||
{ 185, 0, 0, 0, { 0 }},
|
||||
{ 186, 0, 0, 0, { 0 }},
|
||||
{ 187, 1, 6, 8, { 0 }},
|
||||
{ 338, 1, 4, 11, { 0 }},
|
||||
{ 339, 1, 6, 11, { 0 }},
|
||||
{ 376, 1, 2, 7, { 0 }},
|
||||
{ 191, 1, 6, 7, { 0 }},
|
||||
{ 192, 1, 1, 7, { 0 }},
|
||||
{ 193, 1, 1, 7, { 0 }},
|
||||
{ 194, 1, 1, 7, { 0 }},
|
||||
{ 195, 1, 1, 7, { 0 }},
|
||||
{ 196, 1, 2, 7, { 0 }},
|
||||
{ 197, 1, 0, 7, { 0 }},
|
||||
{ 198, 1, 4, 11, { 0 }},
|
||||
{ 199, 1, 4, 7, { 0 }},
|
||||
{ 200, 1, 1, 7, { 0 }},
|
||||
{ 201, 1, 1, 7, { 0 }},
|
||||
{ 202, 1, 1, 7, { 0 }},
|
||||
{ 203, 1, 2, 7, { 0 }},
|
||||
{ 204, 1, 1, 5, { 0 }},
|
||||
{ 205, 2, 1, 5, { 0 }},
|
||||
{ 206, 1, 1, 5, { 0 }},
|
||||
{ 207, 1, 2, 5, { 0 }},
|
||||
{ 208, 0, 4, 7, { 0 }},
|
||||
{ 209, 1, 1, 7, { 0 }},
|
||||
{ 210, 1, 1, 7, { 0 }},
|
||||
{ 211, 1, 1, 7, { 0 }},
|
||||
{ 212, 1, 1, 7, { 0 }},
|
||||
{ 213, 1, 1, 7, { 0 }},
|
||||
{ 214, 1, 2, 7, { 0 }},
|
||||
{ 215, 1, 6, 7, { 0 }},
|
||||
{ 216, 0, 4, 7, { 0 }},
|
||||
{ 217, 1, 1, 7, { 0 }},
|
||||
{ 218, 1, 1, 7, { 0 }},
|
||||
{ 219, 1, 1, 7, { 0 }},
|
||||
{ 220, 1, 2, 7, { 0 }},
|
||||
{ 221, 1, 1, 7, { 0 }},
|
||||
{ 222, 1, 4, 7, { 0 }},
|
||||
{ 223, 1, 4, 7, { 0 }},
|
||||
{ 224, 1, 3, 7, { 0 }},
|
||||
{ 225, 1, 3, 7, { 0 }},
|
||||
{ 226, 1, 3, 7, { 0 }},
|
||||
{ 227, 1, 3, 7, { 0 }},
|
||||
{ 228, 1, 4, 7, { 0 }},
|
||||
{ 229, 1, 2, 7, { 0 }},
|
||||
{ 230, 1, 6, 11, { 0 }},
|
||||
{ 231, 1, 6, 7, { 0 }},
|
||||
{ 232, 1, 3, 7, { 0 }},
|
||||
{ 233, 1, 3, 7, { 0 }},
|
||||
{ 234, 1, 3, 7, { 0 }},
|
||||
{ 235, 1, 4, 7, { 0 }},
|
||||
{ 236, 1, 3, 5, { 0 }},
|
||||
{ 237, 2, 3, 5, { 0 }},
|
||||
{ 238, 1, 3, 5, { 0 }},
|
||||
{ 239, 1, 4, 5, { 0 }},
|
||||
{ 240, 1, 4, 7, { 0 }},
|
||||
{ 241, 1, 3, 7, { 0 }},
|
||||
{ 242, 1, 3, 7, { 0 }},
|
||||
{ 243, 1, 3, 7, { 0 }},
|
||||
{ 244, 1, 3, 7, { 0 }},
|
||||
{ 245, 1, 3, 7, { 0 }},
|
||||
{ 246, 1, 4, 7, { 0 }},
|
||||
{ 247, 1, 6, 7, { 0 }},
|
||||
{ 248, 0, 6, 7, { 0 }},
|
||||
{ 249, 1, 3, 7, { 0 }},
|
||||
{ 250, 1, 3, 7, { 0 }},
|
||||
{ 251, 1, 3, 7, { 0 }},
|
||||
{ 252, 1, 4, 7, { 0 }},
|
||||
{ 253, 1, 3, 7, { 0 }},
|
||||
{ 254, 1, 4, 7, { 0 }},
|
||||
{ 255, 1, 4, 7, { 0 }},
|
||||
};
|
||||
|
||||
// Style loading function: Dark
|
||||
static void GuiLoadStyleDark(void)
|
||||
{
|
||||
// Load style properties provided
|
||||
// NOTE: Default properties are propagated
|
||||
for (int i = 0; i < DARK_STYLE_PROPS_COUNT; i++)
|
||||
{
|
||||
GuiSetStyle(darkStyleProps[i].controlId, darkStyleProps[i].propertyId, darkStyleProps[i].propertyValue);
|
||||
}
|
||||
|
||||
// Custom font loading
|
||||
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
|
||||
int darkFontDataSize = 0;
|
||||
unsigned char *data = DecompressData(darkFontData, DARK_STYLE_FONT_ATLAS_COMP_SIZE, &darkFontDataSize);
|
||||
Image imFont = { data, 512, 256, 1, 2 };
|
||||
|
||||
Font font = { 0 };
|
||||
font.baseSize = 16;
|
||||
font.glyphCount = 189;
|
||||
|
||||
// Load texture from image
|
||||
font.texture = LoadTextureFromImage(imFont);
|
||||
UnloadImage(imFont); // Uncompressed image data can be unloaded from memory
|
||||
|
||||
// Copy char recs data from global fontRecs
|
||||
// NOTE: Required to avoid issues if trying to free font
|
||||
font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle));
|
||||
memcpy(font.recs, darkFontRecs, font.glyphCount*sizeof(Rectangle));
|
||||
|
||||
// Copy font char info data from global fontChars
|
||||
// NOTE: Required to avoid issues if trying to free font
|
||||
font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo));
|
||||
memcpy(font.glyphs, darkFontGlyphs, font.glyphCount*sizeof(GlyphInfo));
|
||||
|
||||
GuiSetFont(font);
|
||||
|
||||
// Setup a white rectangle on the font to be used on shapes drawing,
|
||||
// it makes possible to draw shapes and text (full UI) in a single draw call
|
||||
Rectangle fontWhiteRec = { 510, 254, 1, 1 };
|
||||
SetShapesTexture(font.texture, fontWhiteRec);
|
||||
|
||||
//-----------------------------------------------------------------
|
||||
|
||||
// TODO: Custom user style setup: Set specific properties here (if required)
|
||||
// i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT
|
||||
}
|
||||
@ -1,598 +0,0 @@
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// StyleAsCode exporter v2.0 - Style data exported as a values array //
|
||||
// //
|
||||
// USAGE: On init call: GuiLoadStyleEnefete(); //
|
||||
// //
|
||||
// more info and bugs-report: github.com/raysan5/raygui //
|
||||
// feedback and support: ray[at]raylibtech.com //
|
||||
// //
|
||||
// Copyright (c) 2020-2025 raylib technologies (@raylibtech) //
|
||||
// //
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#define ENEFETE_STYLE_PROPS_COUNT 17
|
||||
|
||||
// Custom style name: Enefete
|
||||
static const GuiStyleProp enefeteStyleProps[ENEFETE_STYLE_PROPS_COUNT] = {
|
||||
{ 0, 0, (int)0x1980d5ff }, // DEFAULT_BORDER_COLOR_NORMAL
|
||||
{ 0, 1, (int)0x4df3ebff }, // DEFAULT_BASE_COLOR_NORMAL
|
||||
{ 0, 2, (int)0x103e60ff }, // DEFAULT_TEXT_COLOR_NORMAL
|
||||
{ 0, 3, (int)0xe7e2f7ff }, // DEFAULT_BORDER_COLOR_FOCUSED
|
||||
{ 0, 4, (int)0x23d4ddff }, // DEFAULT_BASE_COLOR_FOCUSED
|
||||
{ 0, 5, (int)0xf1f1f1ff }, // DEFAULT_TEXT_COLOR_FOCUSED
|
||||
{ 0, 6, (int)0x6413a6ff }, // DEFAULT_BORDER_COLOR_PRESSED
|
||||
{ 0, 7, (int)0xea66d9ff }, // DEFAULT_BASE_COLOR_PRESSED
|
||||
{ 0, 8, (int)0x9f00bbff }, // DEFAULT_TEXT_COLOR_PRESSED
|
||||
{ 0, 9, (int)0x4b909eff }, // DEFAULT_BORDER_COLOR_DISABLED
|
||||
{ 0, 10, (int)0x73c7d0ff }, // DEFAULT_BASE_COLOR_DISABLED
|
||||
{ 0, 11, (int)0x448894ff }, // DEFAULT_TEXT_COLOR_DISABLED
|
||||
{ 0, 16, (int)0x00000010 }, // DEFAULT_TEXT_SIZE
|
||||
{ 0, 17, (int)0x00000000 }, // DEFAULT_TEXT_SPACING
|
||||
{ 0, 18, (int)0x1d3f6cff }, // DEFAULT_LINE_COLOR
|
||||
{ 0, 19, (int)0x29c9e5ff }, // DEFAULT_BACKGROUND_COLOR
|
||||
{ 0, 20, (int)0x00000008 }, // DEFAULT_TEXT_LINE_SPACING
|
||||
};
|
||||
|
||||
// WARNING: This style uses a custom font: "GMSN.ttf" (size: 16, spacing: 0)
|
||||
|
||||
#define ENEFETE_STYLE_FONT_ATLAS_COMP_SIZE 2434
|
||||
|
||||
// Font atlas image pixels data: DEFLATE compressed
|
||||
static unsigned char enefeteFontData[ENEFETE_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed,
|
||||
0xdd, 0x5b, 0x6e, 0xe4, 0x36, 0x10, 0x05, 0x50, 0xee, 0x7f, 0xa1, 0xd9, 0x06, 0x83, 0x20, 0x18, 0x24, 0xe3, 0xb1, 0x45,
|
||||
0xb2, 0xaa, 0xa8, 0x57, 0x9f, 0x1c, 0xe4, 0xc7, 0x1a, 0xb7, 0xd5, 0x94, 0xae, 0x44, 0x3d, 0x58, 0xec, 0x0d, 0x00, 0x00,
|
||||
0x00, 0xf8, 0x78, 0xff, 0xfc, 0xf7, 0xfd, 0xcf, 0xbe, 0x5b, 0x72, 0xbc, 0xec, 0xd7, 0xbf, 0x18, 0x2d, 0xe9, 0x3f, 0xae,
|
||||
0x49, 0x3f, 0x58, 0x36, 0xf7, 0xb7, 0x62, 0xeb, 0xd5, 0x97, 0xda, 0xa6, 0x1f, 0xb4, 0x5a, 0x4b, 0xff, 0xbc, 0x1d, 0xb6,
|
||||
0x7d, 0x0f, 0xb4, 0x5e, 0x3b, 0x5c, 0xe7, 0x9f, 0x7f, 0x73, 0xbc, 0xa4, 0x72, 0x3d, 0x57, 0xda, 0xb4, 0x72, 0xfb, 0xac,
|
||||
0xb4, 0x60, 0x5b, 0x5e, 0x7a, 0xdc, 0x52, 0x6d, 0xaa, 0x1d, 0xc7, 0x9f, 0xdc, 0x6f, 0x92, 0xff, 0xe3, 0x6f, 0xf3, 0x2b,
|
||||
0x83, 0x47, 0x5b, 0x7f, 0x7e, 0xdf, 0x68, 0xd3, 0xc7, 0x84, 0xff, 0xfe, 0x76, 0x5d, 0x42, 0xb3, 0x9f, 0xd2, 0x87, 0x47,
|
||||
0xc2, 0x95, 0x16, 0x3a, 0x6e, 0xbd, 0x16, 0xca, 0xc4, 0xe8, 0x33, 0x23, 0xeb, 0x32, 0xb3, 0x6c, 0x6e, 0xfd, 0x62, 0xfb,
|
||||
0xfc, 0xf8, 0xf3, 0x8e, 0xf7, 0xb4, 0xa3, 0x2d, 0x3c, 0xda, 0x73, 0x8f, 0xbf, 0xdf, 0xfa, 0x56, 0xcd, 0xa4, 0x7e, 0x4f,
|
||||
0xfe, 0xfb, 0xff, 0x72, 0xd6, 0x83, 0x19, 0xcc, 0x9f, 0x1b, 0xd6, 0xcf, 0x0a, 0xc7, 0xc7, 0xac, 0x7d, 0x2d, 0x7c, 0xd4,
|
||||
0x4e, 0x3d, 0xb0, 0x0f, 0xaf, 0x6f, 0xb3, 0xe8, 0xdf, 0xd9, 0x91, 0xff, 0x8a, 0x14, 0xb7, 0x89, 0x33, 0x62, 0xa4, 0x4f,
|
||||
0x71, 0xdc, 0xe3, 0xcc, 0x27, 0x7c, 0xb4, 0x2e, 0x91, 0xfe, 0x4c, 0xbe, 0x2d, 0x57, 0xfb, 0x1c, 0xfb, 0xf2, 0x5f, 0x71,
|
||||
0xbe, 0x5d, 0x3f, 0x97, 0xec, 0x6b, 0xdf, 0x99, 0xf3, 0xf5, 0xfd, 0xf3, 0xbf, 0xfe, 0xdd, 0x2a, 0xf2, 0x5f, 0xb3, 0x55,
|
||||
0xd6, 0xf3, 0xdf, 0xe5, 0x7f, 0xfa, 0xfc, 0xff, 0x73, 0xab, 0xf7, 0xe0, 0xf5, 0x57, 0xfe, 0xaa, 0xbd, 0xaa, 0x9f, 0x7f,
|
||||
0x6d, 0xfe, 0x47, 0xd7, 0x83, 0x6d, 0x39, 0xff, 0xb1, 0xab, 0xcf, 0xc8, 0xd5, 0x46, 0x55, 0xff, 0x7f, 0x6f, 0xef, 0xe1,
|
||||
0xf8, 0xea, 0x31, 0x92, 0xf0, 0xb5, 0x7b, 0x1e, 0x35, 0x9f, 0x7c, 0x45, 0xfe, 0xdb, 0xc4, 0xda, 0xf4, 0xe1, 0xf5, 0xff,
|
||||
0xec, 0x11, 0x7e, 0x2d, 0xff, 0x75, 0xe7, 0x8e, 0x2b, 0xf3, 0xdf, 0x83, 0x77, 0xc4, 0xaa, 0xaf, 0xe3, 0xe3, 0xdf, 0x6d,
|
||||
0xed, 0xfe, 0xdc, 0x79, 0xd7, 0xff, 0xa3, 0x7e, 0x60, 0x26, 0xff, 0x9f, 0xd2, 0xff, 0x9f, 0xe9, 0x69, 0x8f, 0x5a, 0x71,
|
||||
0xfe, 0x78, 0x76, 0xc5, 0xd9, 0xfc, 0xda, 0xfc, 0xf7, 0xa9, 0x7b, 0xd8, 0xf7, 0xce, 0x7f, 0x5b, 0xbe, 0xca, 0xab, 0xdc,
|
||||
0x77, 0xa3, 0x7b, 0xd4, 0x68, 0xcf, 0x9d, 0x39, 0xaa, 0xdd, 0x33, 0xff, 0xb1, 0xfd, 0xb9, 0x0f, 0x7b, 0xf9, 0x3d, 0x91,
|
||||
0xff, 0xf6, 0x9a, 0xfc, 0xf7, 0xe0, 0xdd, 0x8e, 0x9f, 0xfb, 0x7b, 0xb1, 0xfb, 0x71, 0x91, 0x9e, 0x7c, 0xa6, 0x8f, 0x52,
|
||||
0x95, 0xff, 0x7b, 0x6c, 0x49, 0xe7, 0xff, 0x8a, 0xfb, 0xff, 0xed, 0xb0, 0x87, 0xff, 0x59, 0xf9, 0x3f, 0x7e, 0xfe, 0xd7,
|
||||
0x6e, 0xff, 0xac, 0x2e, 0x9a, 0xff, 0x9a, 0xfb, 0xff, 0xe7, 0x1f, 0xad, 0x67, 0xae, 0x5c, 0x73, 0xf9, 0xbf, 0xd3, 0xf3,
|
||||
0xbf, 0xbd, 0xf9, 0x1f, 0x3d, 0xf5, 0x7e, 0x53, 0xff, 0xbf, 0xf2, 0x3e, 0x7e, 0xfc, 0x9d, 0x9b, 0x7d, 0xef, 0x14, 0xb5,
|
||||
0xd0, 0x9b, 0x5c, 0xf7, 0x4c, 0x7f, 0xf4, 0x39, 0x50, 0xee, 0x2e, 0xdd, 0xd5, 0xef, 0xff, 0xd4, 0xb7, 0xe0, 0x79, 0xeb,
|
||||
0xd3, 0x6f, 0xdc, 0x67, 0xe4, 0x5d, 0x6f, 0xc9, 0xda, 0xbb, 0xce, 0x7c, 0x3e, 0x1b, 0xff, 0x5b, 0xb6, 0x0f, 0x3b, 0xcf,
|
||||
0x6c, 0x5a, 0xe2, 0x19, 0xf7, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xc9, 0xe3,
|
||||
0x17, 0x22, 0x63, 0x0d, 0xa3, 0x75, 0x08, 0x6a, 0xeb, 0x21, 0xf4, 0x2f, 0x75, 0x58, 0x57, 0x3f, 0x7b, 0x76, 0xac, 0x65,
|
||||
0x66, 0x9c, 0x66, 0xed, 0xef, 0x56, 0x55, 0x96, 0xa8, 0x1d, 0x79, 0x3e, 0xae, 0x77, 0xb3, 0x5a, 0xad, 0x39, 0x56, 0x05,
|
||||
0x6d, 0xbd, 0xa6, 0x79, 0xa6, 0x0e, 0x5f, 0xf5, 0xd8, 0xea, 0x9a, 0xfa, 0x68, 0xf3, 0x63, 0xde, 0x6b, 0x2a, 0x8d, 0xd4,
|
||||
0xe5, 0x7f, 0x7d, 0x3b, 0xf4, 0x2f, 0xeb, 0xd1, 0x2f, 0xa8, 0xc4, 0x50, 0xbf, 0x74, 0xee, 0xe7, 0x77, 0xca, 0xff, 0xec,
|
||||
0x31, 0x38, 0xbb, 0xf7, 0xc6, 0x47, 0xdc, 0x8d, 0xaa, 0x4f, 0x5c, 0x5f, 0x5b, 0xa5, 0x15, 0xd5, 0x47, 0xad, 0xcf, 0x7f,
|
||||
0x3b, 0xe9, 0xfc, 0x1f, 0xcd, 0x7f, 0x1f, 0xce, 0x66, 0x73, 0xdf, 0xfc, 0xaf, 0xd7, 0x9d, 0xc8, 0xfe, 0xd5, 0xdc, 0x4c,
|
||||
0x0e, 0xf1, 0x5a, 0xe3, 0xf9, 0xfc, 0xe7, 0x2a, 0x05, 0x9d, 0x7b, 0x6e, 0xbd, 0x3e, 0xff, 0xd1, 0x16, 0xb9, 0x2a, 0xff,
|
||||
0xf1, 0xbd, 0xa4, 0x0f, 0xab, 0x59, 0xdf, 0x31, 0xff, 0xfd, 0xe3, 0xf3, 0x5f, 0x5f, 0xcb, 0x37, 0x9a, 0x80, 0x48, 0x1d,
|
||||
0xf4, 0x99, 0xeb, 0xea, 0xd5, 0x2b, 0xbb, 0xf8, 0x75, 0x57, 0xf4, 0xfc, 0x3f, 0xfa, 0xfd, 0x99, 0x6f, 0x72, 0x75, 0xfe,
|
||||
0xdb, 0x30, 0xe1, 0x3d, 0x91, 0xd2, 0xf8, 0x1d, 0x90, 0x4c, 0xcd, 0xab, 0x6b, 0xf2, 0xdf, 0x42, 0x33, 0x06, 0xc6, 0xcf,
|
||||
0xf3, 0x77, 0xcf, 0x7f, 0xf5, 0xb5, 0x41, 0xf4, 0x8e, 0x41, 0xf5, 0x3a, 0xde, 0xef, 0xfa, 0xbf, 0x17, 0xf4, 0x12, 0x77,
|
||||
0xe4, 0x3f, 0xdb, 0x3e, 0xd1, 0x34, 0xc5, 0xf2, 0x3f, 0x7f, 0x76, 0x8f, 0xcd, 0x26, 0x10, 0x5b, 0xf6, 0xde, 0xfc, 0xd7,
|
||||
0xd6, 0x4f, 0x5d, 0xbf, 0x57, 0xfc, 0xa6, 0xfc, 0x47, 0xaf, 0xff, 0xe7, 0xaf, 0xb8, 0xee, 0x95, 0xff, 0x36, 0x31, 0x3f,
|
||||
0xcf, 0xd9, 0xf9, 0x1f, 0x55, 0x5b, 0x7d, 0x5b, 0xfe, 0xa3, 0xd9, 0x8a, 0xce, 0x67, 0xd4, 0xc2, 0x67, 0xba, 0xb7, 0x9f,
|
||||
0xff, 0xdb, 0x4b, 0xf3, 0x1f, 0x9f, 0x5f, 0xe6, 0x59, 0xf9, 0xaf, 0xee, 0x35, 0x5c, 0x5f, 0x57, 0x2f, 0x7a, 0xb7, 0x31,
|
||||
0x7e, 0x97, 0xf2, 0xdd, 0xfd, 0xff, 0xbe, 0xa1, 0x17, 0x9e, 0x7d, 0xfe, 0x7f, 0x55, 0xfe, 0x77, 0x3d, 0xff, 0x6b, 0xd3,
|
||||
0x73, 0xfe, 0xed, 0x5a, 0x2b, 0xf9, 0xaf, 0xce, 0x7f, 0xe5, 0xdc, 0x89, 0x6b, 0xff, 0xa2, 0xfa, 0xfd, 0x9f, 0xfa, 0x3b,
|
||||
0x69, 0xfb, 0xdf, 0xff, 0xd9, 0xd3, 0x3e, 0x6d, 0x6a, 0xc6, 0xb4, 0xf5, 0xbf, 0xda, 0x26, 0x67, 0x35, 0x8e, 0xad, 0x73,
|
||||
0xfd, 0xdb, 0x37, 0x77, 0xcf, 0x7f, 0xec, 0x6d, 0x83, 0xe8, 0x6f, 0xc6, 0x7f, 0xe3, 0x3e, 0x73, 0x81, 0x7d, 0xe6, 0x5b,
|
||||
0x94, 0x5a, 0xa1, 0xba, 0x85, 0xb4, 0x2a, 0x8e, 0x00, 0xef, 0x7a, 0xcf, 0x7c, 0xd7, 0xbf, 0x07, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xbc, 0xd1, 0x2b, 0xb3, 0x35, 0xb7, 0xff, 0xfc, 0x69, 0x0f, 0x8d, 0x77,
|
||||
0xed, 0xc9, 0xdf, 0xeb, 0xcb, 0x75, 0x30, 0xd6, 0xc6, 0x9d, 0x56, 0xd4, 0x60, 0xa8, 0xae, 0x23, 0x35, 0x6e, 0x97, 0xd9,
|
||||
0x2d, 0x3d, 0x1e, 0x49, 0xbc, 0xba, 0x87, 0x44, 0xc6, 0xf5, 0x64, 0x2a, 0xea, 0x64, 0xe6, 0x12, 0x88, 0x57, 0x42, 0x6c,
|
||||
0x8b, 0x9f, 0x1a, 0xdb, 0x6a, 0x91, 0xf1, 0xe1, 0x3b, 0xf3, 0x1f, 0xab, 0x2d, 0x79, 0x45, 0xa5, 0xb5, 0xf8, 0xde, 0x54,
|
||||
0xbb, 0x86, 0xf5, 0xad, 0x32, 0xb7, 0xb6, 0xb9, 0x9f, 0x67, 0xc6, 0xf4, 0xe7, 0x6a, 0x0f, 0xac, 0xb6, 0x44, 0x9f, 0xaa,
|
||||
0x96, 0xb2, 0xfa, 0x9b, 0x3f, 0xff, 0xde, 0xf1, 0xb2, 0x3e, 0x55, 0x39, 0x62, 0xed, 0x53, 0xbf, 0xff, 0xb7, 0xfb, 0x2a,
|
||||
0x27, 0xbc, 0x23, 0xff, 0x2d, 0x70, 0x94, 0x3d, 0x37, 0xff, 0xf1, 0xe3, 0x54, 0x2b, 0xac, 0xd2, 0xb3, 0x3e, 0x37, 0x46,
|
||||
0x64, 0xe4, 0x6e, 0xbe, 0x46, 0xd0, 0x19, 0x15, 0x35, 0xfe, 0xcc, 0xd7, 0xca, 0x56, 0x9b, 0x4b, 0xff, 0xf7, 0xc7, 0xb8,
|
||||
0x76, 0xd0, 0xdb, 0x9a, 0xcd, 0x7f, 0x0f, 0xd4, 0x1e, 0xa9, 0xa9, 0xc8, 0xf7, 0x9c, 0xfc, 0xcf, 0x5c, 0x6d, 0x9c, 0x97,
|
||||
0xff, 0xf1, 0xcf, 0xeb, 0xaa, 0x6a, 0x57, 0xd6, 0xda, 0x19, 0xd5, 0x5a, 0x6e, 0xa1, 0x2d, 0xd2, 0x83, 0xc7, 0x95, 0x5e,
|
||||
0x5c, 0xcf, 0xbc, 0x7f, 0xf9, 0x7f, 0xf6, 0x4c, 0x3d, 0x9b, 0xff, 0xd5, 0xbf, 0x78, 0x4d, 0xff, 0x7f, 0x65, 0x7f, 0x79,
|
||||
0x52, 0xfe, 0xdb, 0x54, 0x2d, 0xb2, 0x7b, 0x9f, 0xff, 0x2b, 0x6b, 0x6a, 0xd5, 0xe7, 0x3f, 0x96, 0xf0, 0xc8, 0xfe, 0x3e,
|
||||
0x3f, 0xe3, 0xc1, 0xda, 0x76, 0x1b, 0xf7, 0xf2, 0x7b, 0xa2, 0xff, 0x9f, 0xcf, 0x7f, 0x5d, 0x9f, 0x67, 0xed, 0xea, 0xf9,
|
||||
0x8a, 0xfc, 0xf7, 0x44, 0x65, 0xf4, 0xfd, 0xd7, 0xff, 0xa3, 0x7e, 0x62, 0xb4, 0x55, 0xea, 0xe7, 0xa6, 0xaa, 0xac, 0xb6,
|
||||
0xbd, 0x9a, 0xff, 0xcc, 0xf9, 0x3f, 0x7a, 0x1f, 0x22, 0xd3, 0x43, 0x5c, 0xbb, 0x1e, 0xcf, 0x1f, 0x01, 0xd6, 0xfa, 0xff,
|
||||
0x67, 0xdc, 0xff, 0xef, 0xa7, 0x5d, 0xff, 0xb7, 0xd4, 0x2c, 0x46, 0x95, 0xfd, 0xff, 0x96, 0xe8, 0x65, 0x66, 0x8e, 0x36,
|
||||
0x91, 0xd6, 0x5e, 0x6f, 0xb3, 0x2b, 0xcf, 0xff, 0xb9, 0xd9, 0xe6, 0xda, 0xb6, 0x7a, 0xa7, 0x91, 0xfe, 0xff, 0x9e, 0x14,
|
||||
0x56, 0xfc, 0xc5, 0xca, 0xeb, 0xff, 0xeb, 0xe7, 0x66, 0xc8, 0xe4, 0xff, 0xac, 0xde, 0xd3, 0xfe, 0x6f, 0x5e, 0x5b, 0x47,
|
||||
0xfa, 0x0e, 0xd7, 0xff, 0x91, 0xfb, 0xff, 0xd1, 0x9a, 0xc7, 0xe3, 0xb3, 0x71, 0xff, 0xf1, 0x0a, 0xff, 0xcc, 0xb3, 0xf1,
|
||||
0xf9, 0x47, 0x9c, 0xda, 0xeb, 0x7f, 0xf9, 0xdf, 0xf3, 0xdd, 0x2b, 0x6b, 0xe7, 0xee, 0xce, 0xff, 0x5c, 0xcf, 0x2a, 0x36,
|
||||
0x23, 0x62, 0x6e, 0xc6, 0xe4, 0xe8, 0x35, 0x5d, 0x3b, 0x75, 0x4f, 0x6f, 0x17, 0xf4, 0xfe, 0xab, 0x67, 0xe4, 0x79, 0xe7,
|
||||
0xfb, 0x50, 0xef, 0xf8, 0x06, 0x67, 0x1c, 0xcf, 0x7b, 0x61, 0xcf, 0x34, 0x7f, 0xff, 0x2f, 0x7e, 0xb4, 0x6a, 0x17, 0xd4,
|
||||
0x20, 0x3e, 0xfb, 0x2f, 0xc6, 0x9f, 0x56, 0x20, 0xff, 0x6b, 0xf9, 0xdf, 0xdf, 0x4b, 0xaa, 0x7a, 0x87, 0xe1, 0xd3, 0xf6,
|
||||
0x14, 0x2d, 0xf3, 0x29, 0xdb, 0x75, 0xfd, 0x4e, 0xef, 0x5b, 0x5a, 0xc2, 0x3e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x6b, 0xf4, 0x4f, 0xac, 0x9a, 0xc2, 0x6c, 0x2d, 0xab, 0xbe, 0x30, 0x3a, 0xb3, 0x0d,
|
||||
0xeb, 0x33, 0x67, 0x3f, 0xe7, 0xeb, 0xcc, 0x05, 0x7d, 0xf0, 0x2f, 0x5a, 0x60, 0x4d, 0x7b, 0x78, 0xac, 0xf1, 0xfa, 0x3c,
|
||||
0x0c, 0x5f, 0xd7, 0xb8, 0x25, 0x5a, 0x64, 0x3c, 0x92, 0x77, 0x7d, 0xc6, 0x86, 0xbd, 0xdf, 0xb9, 0xa6, 0x22, 0x7a, 0xa4,
|
||||
0xb6, 0xdf, 0x6c, 0x85, 0x92, 0xb3, 0x5b, 0x25, 0x33, 0x62, 0xbb, 0x05, 0x8e, 0x0d, 0xa3, 0x7a, 0x42, 0x2b, 0xb5, 0xba,
|
||||
0xd6, 0x8e, 0x4f, 0x73, 0x55, 0xf8, 0xd6, 0xc7, 0xa5, 0xcf, 0xd5, 0xf0, 0x6c, 0x1b, 0xeb, 0x5e, 0xaf, 0xef, 0xed, 0xf1,
|
||||
0xa4, 0xe4, 0x96, 0xce, 0x8d, 0xc7, 0xdf, 0xf1, 0x9d, 0xe3, 0x35, 0x6b, 0xe7, 0x3f, 0x27, 0x73, 0xf6, 0x1b, 0xa7, 0x74,
|
||||
0x4f, 0xab, 0xc4, 0xd2, 0x9f, 0xa9, 0x08, 0xb3, 0x9e, 0xff, 0x9a, 0xf5, 0x1e, 0xcf, 0x89, 0x10, 0x9b, 0x65, 0x63, 0xa6,
|
||||
0x86, 0xf7, 0xfb, 0xaa, 0x07, 0xe4, 0xf3, 0xff, 0xa9, 0x35, 0x17, 0x9e, 0xd4, 0x02, 0x7d, 0x31, 0x61, 0x33, 0xbd, 0xf8,
|
||||
0x9a, 0xfc, 0x8f, 0xe7, 0x4a, 0x3a, 0x3f, 0xff, 0x3d, 0xf4, 0x09, 0xf1, 0x9e, 0xdb, 0x1d, 0x97, 0xe6, 0xf2, 0x3f, 0xde,
|
||||
0x83, 0xf6, 0x2c, 0xad, 0x9a, 0x29, 0x29, 0x57, 0x87, 0xbc, 0x05, 0xaf, 0x1e, 0x32, 0x4b, 0x23, 0xb5, 0x11, 0x7a, 0xe8,
|
||||
0x6a, 0x64, 0xcf, 0xf9, 0x3f, 0x7f, 0xfd, 0x3f, 0xdf, 0x6f, 0x8b, 0xdf, 0x3f, 0xc8, 0xec, 0x4b, 0x3b, 0xfa, 0xe1, 0x67,
|
||||
0x2c, 0x8d, 0xd4, 0x86, 0xbb, 0x6a, 0xe9, 0xee, 0xfc, 0xf7, 0xdf, 0xe6, 0x4a, 0x3c, 0x4a, 0xd4, 0xfa, 0xd1, 0x21, 0x77,
|
||||
0x64, 0xd9, 0xdb, 0xd7, 0x59, 0xbd, 0xff, 0xb7, 0xba, 0x96, 0x75, 0x73, 0x99, 0x45, 0xab, 0x52, 0x7e, 0xfd, 0xfd, 0xba,
|
||||
0xf3, 0xff, 0xbe, 0xad, 0xbe, 0x77, 0x69, 0xe6, 0xee, 0xde, 0x5b, 0xf3, 0x3f, 0xd7, 0x6e, 0xef, 0xc8, 0xff, 0xb8, 0x7e,
|
||||
0x6b, 0x2f, 0xba, 0x4f, 0x71, 0xc6, 0x37, 0x9a, 0xad, 0xc0, 0x9f, 0x9b, 0x63, 0xf6, 0x4d, 0xf9, 0x6f, 0x45, 0xfd, 0xff,
|
||||
0x33, 0x97, 0xde, 0xa3, 0xff, 0xdf, 0x5f, 0x90, 0xff, 0xec, 0x73, 0x9d, 0x8a, 0x19, 0x8e, 0xcf, 0xce, 0x7f, 0xf6, 0x98,
|
||||
0x78, 0xaf, 0x6b, 0xe1, 0xec, 0xd2, 0x6c, 0xfe, 0x3f, 0xf5, 0xfc, 0xff, 0x86, 0xfc, 0xe7, 0x9f, 0x65, 0xaf, 0xdc, 0xff,
|
||||
0x3b, 0xef, 0x1d, 0x88, 0xbe, 0x31, 0xff, 0xed, 0x43, 0xcf, 0xff, 0x35, 0xf3, 0xca, 0x3f, 0x2d, 0xff, 0x33, 0x77, 0x99,
|
||||
0x9e, 0x9a, 0xff, 0x8a, 0x8c, 0x54, 0xdd, 0xff, 0xaf, 0x7f, 0x0b, 0x6a, 0x67, 0x75, 0xfa, 0xe7, 0x25, 0x7c, 0x9c, 0xff,
|
||||
0xc8, 0xfb, 0x3f, 0xef, 0xce, 0xff, 0xdc, 0xbb, 0x31, 0xcf, 0xce, 0x7f, 0x4f, 0xce, 0x4a, 0xf3, 0xce, 0xe7, 0xc3, 0xb1,
|
||||
0x39, 0xa6, 0x9f, 0x97, 0xff, 0xfc, 0x3b, 0x65, 0x6f, 0x7d, 0xfe, 0x97, 0x7b, 0x3b, 0xe0, 0x9a, 0xe7, 0x7f, 0x77, 0x7a,
|
||||
0xaf, 0x84, 0xb7, 0xbf, 0x55, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x66, 0xec,
|
||||
0xeb, 0xea, 0x88, 0x9d, 0xb9, 0x71, 0x62, 0xd7, 0x54, 0xbe, 0x8f, 0xd4, 0x29, 0x98, 0x59, 0x9f, 0x78, 0xf5, 0x83, 0x48,
|
||||
0xad, 0xfd, 0xa3, 0x6d, 0x13, 0xad, 0x38, 0x9e, 0xa9, 0x64, 0xb4, 0xeb, 0x3b, 0xae, 0xd7, 0x84, 0x9f, 0xff, 0x0b, 0x73,
|
||||
0x95, 0x1f, 0x63, 0xb9, 0xb8, 0xfb, 0xb6, 0x9e, 0x1b, 0xa5, 0xb9, 0xb3, 0x4e, 0x7c, 0x4f, 0xd6, 0x34, 0xaf, 0x5f, 0xab,
|
||||
0x6c, 0x95, 0xfe, 0xd8, 0x3a, 0x47, 0x5a, 0xb8, 0x27, 0xe6, 0x61, 0x69, 0x13, 0x7b, 0x52, 0x75, 0x75, 0x9f, 0xcc, 0xbc,
|
||||
0x1c, 0xf3, 0x47, 0xe4, 0xca, 0x8a, 0xfd, 0x2d, 0x51, 0xad, 0xff, 0x2e, 0xdb, 0xfa, 0xda, 0xf1, 0xb4, 0xe3, 0x75, 0x7e,
|
||||
0xce, 0x78, 0xdf, 0xb9, 0xd1, 0xe3, 0xcf, 0xf8, 0x36, 0x33, 0xc7, 0xb2, 0xf5, 0xea, 0x3c, 0xef, 0xac, 0xd9, 0xf0, 0xd9,
|
||||
0x63, 0x95, 0xb3, 0x95, 0x05, 0x46, 0xc7, 0xba, 0xe7, 0x54, 0xaf, 0xca, 0xd5, 0xbd, 0x9a, 0x69, 0xc5, 0xb3, 0x96, 0x1d,
|
||||
0xf9, 0x2b, 0x30, 0x0f, 0xdb, 0x95, 0xdf, 0x71, 0x7f, 0xc5, 0x8e, 0xe3, 0x5a, 0x22, 0xf7, 0xde, 0xd6, 0xd9, 0x1a, 0x59,
|
||||
0xd9, 0x4a, 0x30, 0xd1, 0xf3, 0xff, 0x53, 0xf3, 0x3f, 0x9a, 0x8b, 0xe0, 0xe7, 0x59, 0xc9, 0xce, 0x5b, 0x56, 0x31, 0x93,
|
||||
0xc1, 0xea, 0x15, 0xd0, 0x8e, 0x65, 0x57, 0x56, 0xec, 0x3a, 0xfb, 0xbb, 0xc6, 0xdb, 0xa8, 0xaa, 0x9f, 0x18, 0x9d, 0xb3,
|
||||
0x64, 0xb4, 0xec, 0xd3, 0xce, 0xff, 0xfd, 0xf2, 0x65, 0xf3, 0x47, 0xb1, 0xbb, 0xef, 0xdb, 0xfb, 0x67, 0xec, 0x78, 0x42,
|
||||
0xc6, 0x33, 0xb3, 0x4b, 0xed, 0xcc, 0xff, 0x3d, 0xeb, 0x1d, 0xf7, 0xd4, 0xb9, 0x31, 0x5b, 0xab, 0xef, 0x3e, 0xb9, 0xc9,
|
||||
0xcc, 0x64, 0x1c, 0x9b, 0xbf, 0xb9, 0x7a, 0x99, 0xfc, 0xdf, 0x3b, 0xff, 0x73, 0xf7, 0x56, 0xee, 0x57, 0xbd, 0x32, 0x3b,
|
||||
0x4b, 0xef, 0xfb, 0xfb, 0x8b, 0x7d, 0xc3, 0xd3, 0x9a, 0xba, 0xe7, 0x89, 0xf2, 0x7f, 0x97, 0xfe, 0xbf, 0xfc, 0xbf, 0x6f,
|
||||
0x7f, 0xe9, 0xa9, 0x4a, 0xe6, 0xfa, 0xff, 0xf2, 0xff, 0xe6, 0xfc, 0xf7, 0x47, 0x5c, 0xff, 0xef, 0xda, 0x5f, 0xde, 0x76,
|
||||
0xff, 0x3f, 0xfa, 0xb4, 0xf7, 0x29, 0xcf, 0x7a, 0xce, 0x78, 0xfe, 0xb7, 0xe7, 0x93, 0x77, 0x56, 0x43, 0x7f, 0xff, 0xf3,
|
||||
0xde, 0xa7, 0xd4, 0x83, 0xe7, 0xed, 0xfb, 0xa1, 0x36, 0x00, 0xf9, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x76, 0xbe, 0xa9, 0x7f, 0x66, 0xc5, 0xf7, 0xc8, 0xa8, 0xcf, 0xb9, 0xcf, 0x04, 0x62, 0x23, 0x75, 0xce,
|
||||
0xac, 0xf8, 0x9e, 0x1f, 0x9d, 0x6f, 0x5b, 0xc2, 0xfb, 0xc6, 0x8a, 0xcb, 0x36, 0xec, 0x49, 0x55, 0x7f, 0x48, 0x15, 0xa4,
|
||||
0x77, 0xcc, 0xcd, 0x01, 0xf2, 0xff, 0x94, 0x0a, 0x69, 0x20, 0xff, 0xf2, 0x0f, 0xf2, 0x2f, 0xff, 0x20, 0xff, 0xf2, 0x0f,
|
||||
0x6f, 0xbf, 0xff, 0x7f, 0xa7, 0x99, 0x6b, 0xf6, 0xd5, 0x29, 0x06, 0xcf, 0xfe, 0x63, 0x47, 0x87, 0xea, 0x65, 0x6d, 0x78,
|
||||
0xdc, 0xf0, 0x8c, 0x10, 0xce, 0xca, 0xff, 0x35, 0xcf, 0xf8, 0x57, 0xf3, 0xaf, 0xff, 0x0f, 0x6f, 0xba, 0x1a, 0x89, 0xbc,
|
||||
0xff, 0x27, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x70, 0x95, 0x7f, 0xff, 0xd3, 0x0e, 0x20, 0xff, 0xc0, 0xc7, 0xe5, 0xff, 0x6f };
|
||||
|
||||
// Font glyphs rectangles data (on atlas)
|
||||
static const Rectangle enefeteFontRecs[189] = {
|
||||
{ 4, 4, 4 , 16 },
|
||||
{ 16, 4, 2 , 10 },
|
||||
{ 26, 4, 5 , 3 },
|
||||
{ 39, 4, 7 , 10 },
|
||||
{ 54, 4, 7 , 13 },
|
||||
{ 69, 4, 7 , 10 },
|
||||
{ 84, 4, 7 , 10 },
|
||||
{ 99, 4, 2 , 3 },
|
||||
{ 109, 4, 3 , 12 },
|
||||
{ 120, 4, 3 , 12 },
|
||||
{ 131, 4, 5 , 6 },
|
||||
{ 144, 4, 6 , 5 },
|
||||
{ 158, 4, 2 , 4 },
|
||||
{ 168, 4, 5 , 1 },
|
||||
{ 181, 4, 2 , 2 },
|
||||
{ 191, 4, 4 , 10 },
|
||||
{ 203, 4, 6 , 10 },
|
||||
{ 217, 4, 4 , 10 },
|
||||
{ 229, 4, 6 , 10 },
|
||||
{ 243, 4, 6 , 10 },
|
||||
{ 257, 4, 6 , 10 },
|
||||
{ 271, 4, 6 , 10 },
|
||||
{ 285, 4, 6 , 10 },
|
||||
{ 299, 4, 6 , 10 },
|
||||
{ 313, 4, 6 , 10 },
|
||||
{ 327, 4, 6 , 10 },
|
||||
{ 341, 4, 2 , 6 },
|
||||
{ 351, 4, 2 , 8 },
|
||||
{ 361, 4, 7 , 7 },
|
||||
{ 376, 4, 5 , 3 },
|
||||
{ 389, 4, 7 , 7 },
|
||||
{ 404, 4, 6 , 10 },
|
||||
{ 418, 4, 7 , 12 },
|
||||
{ 433, 4, 7 , 10 },
|
||||
{ 448, 4, 7 , 10 },
|
||||
{ 463, 4, 7 , 10 },
|
||||
{ 478, 4, 7 , 10 },
|
||||
{ 493, 4, 7 , 10 },
|
||||
{ 4, 28, 7 , 10 },
|
||||
{ 19, 28, 7 , 10 },
|
||||
{ 34, 28, 7 , 10 },
|
||||
{ 49, 28, 2 , 10 },
|
||||
{ 59, 28, 5 , 10 },
|
||||
{ 72, 28, 7 , 10 },
|
||||
{ 87, 28, 6 , 10 },
|
||||
{ 101, 28, 9 , 10 },
|
||||
{ 118, 28, 7 , 10 },
|
||||
{ 133, 28, 7 , 10 },
|
||||
{ 148, 28, 7 , 10 },
|
||||
{ 163, 28, 7 , 12 },
|
||||
{ 178, 28, 7 , 10 },
|
||||
{ 193, 28, 7 , 10 },
|
||||
{ 208, 28, 6 , 10 },
|
||||
{ 222, 28, 7 , 10 },
|
||||
{ 237, 28, 7 , 10 },
|
||||
{ 252, 28, 8 , 10 },
|
||||
{ 268, 28, 7 , 10 },
|
||||
{ 283, 28, 6 , 10 },
|
||||
{ 297, 28, 7 , 10 },
|
||||
{ 312, 28, 4 , 12 },
|
||||
{ 324, 28, 4 , 10 },
|
||||
{ 336, 28, 4 , 12 },
|
||||
{ 348, 28, 6 , 3 },
|
||||
{ 362, 28, 7 , 1 },
|
||||
{ 377, 28, 4 , 3 },
|
||||
{ 389, 28, 6 , 7 },
|
||||
{ 403, 28, 6 , 10 },
|
||||
{ 417, 28, 6 , 7 },
|
||||
{ 431, 28, 6 , 10 },
|
||||
{ 445, 28, 6 , 7 },
|
||||
{ 459, 28, 4 , 10 },
|
||||
{ 471, 28, 6 , 9 },
|
||||
{ 485, 28, 6 , 10 },
|
||||
{ 499, 28, 2 , 10 },
|
||||
{ 4, 52, 5 , 12 },
|
||||
{ 17, 52, 6 , 10 },
|
||||
{ 31, 52, 3 , 10 },
|
||||
{ 42, 52, 8 , 7 },
|
||||
{ 58, 52, 6 , 7 },
|
||||
{ 72, 52, 6 , 7 },
|
||||
{ 86, 52, 6 , 9 },
|
||||
{ 100, 52, 6 , 9 },
|
||||
{ 114, 52, 5 , 7 },
|
||||
{ 127, 52, 6 , 7 },
|
||||
{ 141, 52, 4 , 10 },
|
||||
{ 153, 52, 6 , 7 },
|
||||
{ 167, 52, 6 , 7 },
|
||||
{ 181, 52, 8 , 7 },
|
||||
{ 197, 52, 6 , 7 },
|
||||
{ 211, 52, 6 , 9 },
|
||||
{ 225, 52, 6 , 7 },
|
||||
{ 239, 52, 5 , 12 },
|
||||
{ 252, 52, 2 , 12 },
|
||||
{ 262, 52, 5 , 12 },
|
||||
{ 275, 52, 7 , 3 },
|
||||
{ 290, 52, 2 , 9 },
|
||||
{ 300, 52, 6 , 11 },
|
||||
{ 314, 52, 7 , 10 },
|
||||
{ 329, 52, 7 , 9 },
|
||||
{ 344, 52, 6 , 10 },
|
||||
{ 358, 52, 7 , 11 },
|
||||
{ 373, 52, 6 , 12 },
|
||||
{ 387, 52, 6 , 10 },
|
||||
{ 401, 52, 7 , 10 },
|
||||
{ 416, 52, 5 , 5 },
|
||||
{ 429, 52, 7 , 6 },
|
||||
{ 444, 52, 6 , 3 },
|
||||
{ 458, 52, 7 , 10 },
|
||||
{ 473, 52, 0 , 0 },
|
||||
{ 481, 52, 4 , 4 },
|
||||
{ 493, 52, 6 , 7 },
|
||||
{ 4, 76, 4 , 5 },
|
||||
{ 16, 76, 4 , 5 },
|
||||
{ 28, 76, 7 , 11 },
|
||||
{ 43, 76, 6 , 9 },
|
||||
{ 57, 76, 7 , 12 },
|
||||
{ 72, 76, 2 , 2 },
|
||||
{ 82, 76, 6 , 10 },
|
||||
{ 96, 76, 3 , 5 },
|
||||
{ 107, 76, 4 , 5 },
|
||||
{ 119, 76, 7 , 6 },
|
||||
{ 134, 76, 9 , 10 },
|
||||
{ 151, 76, 8 , 7 },
|
||||
{ 167, 76, 6 , 11 },
|
||||
{ 181, 76, 6 , 11 },
|
||||
{ 195, 76, 7 , 11 },
|
||||
{ 210, 76, 7 , 11 },
|
||||
{ 225, 76, 7 , 11 },
|
||||
{ 240, 76, 7 , 11 },
|
||||
{ 255, 76, 7 , 11 },
|
||||
{ 270, 76, 7 , 11 },
|
||||
{ 285, 76, 9 , 10 },
|
||||
{ 302, 76, 7 , 12 },
|
||||
{ 317, 76, 7 , 11 },
|
||||
{ 332, 76, 7 , 11 },
|
||||
{ 347, 76, 7 , 11 },
|
||||
{ 362, 76, 7 , 11 },
|
||||
{ 377, 76, 3 , 11 },
|
||||
{ 388, 76, 3 , 11 },
|
||||
{ 399, 76, 5 , 11 },
|
||||
{ 412, 76, 5 , 11 },
|
||||
{ 425, 76, 8 , 10 },
|
||||
{ 441, 76, 7 , 11 },
|
||||
{ 456, 76, 7 , 11 },
|
||||
{ 471, 76, 7 , 11 },
|
||||
{ 486, 76, 7 , 11 },
|
||||
{ 4, 100, 7 , 11 },
|
||||
{ 19, 100, 7 , 11 },
|
||||
{ 34, 100, 7 , 7 },
|
||||
{ 49, 100, 7 , 13 },
|
||||
{ 64, 100, 7 , 11 },
|
||||
{ 79, 100, 7 , 11 },
|
||||
{ 94, 100, 7 , 11 },
|
||||
{ 109, 100, 7 , 11 },
|
||||
{ 124, 100, 6 , 11 },
|
||||
{ 138, 100, 7 , 10 },
|
||||
{ 153, 100, 7 , 10 },
|
||||
{ 168, 100, 6 , 10 },
|
||||
{ 182, 100, 6 , 10 },
|
||||
{ 196, 100, 6 , 10 },
|
||||
{ 210, 100, 6 , 10 },
|
||||
{ 224, 100, 6 , 10 },
|
||||
{ 238, 100, 6 , 11 },
|
||||
{ 252, 100, 8 , 7 },
|
||||
{ 268, 100, 6 , 9 },
|
||||
{ 282, 100, 6 , 10 },
|
||||
{ 296, 100, 6 , 10 },
|
||||
{ 310, 100, 6 , 10 },
|
||||
{ 324, 100, 6 , 10 },
|
||||
{ 338, 100, 3 , 10 },
|
||||
{ 349, 100, 3 , 10 },
|
||||
{ 360, 100, 5 , 10 },
|
||||
{ 373, 100, 5 , 10 },
|
||||
{ 386, 100, 6 , 10 },
|
||||
{ 400, 100, 6 , 10 },
|
||||
{ 414, 100, 6 , 10 },
|
||||
{ 428, 100, 6 , 10 },
|
||||
{ 442, 100, 6 , 10 },
|
||||
{ 456, 100, 6 , 10 },
|
||||
{ 470, 100, 6 , 10 },
|
||||
{ 484, 100, 6 , 7 },
|
||||
{ 4, 124, 7 , 11 },
|
||||
{ 19, 124, 6 , 10 },
|
||||
{ 33, 124, 6 , 10 },
|
||||
{ 47, 124, 6 , 10 },
|
||||
{ 61, 124, 6 , 10 },
|
||||
{ 75, 124, 6 , 12 },
|
||||
{ 89, 124, 6 , 12 },
|
||||
{ 103, 124, 6 , 12 },
|
||||
};
|
||||
|
||||
// Font glyphs info data
|
||||
// NOTE: No glyphs.image data provided
|
||||
static const GlyphInfo enefeteFontGlyphs[189] = {
|
||||
{ 32, 0, 0, 4, { 0 }},
|
||||
{ 33, 0, 2, 3, { 0 }},
|
||||
{ 34, 0, 2, 6, { 0 }},
|
||||
{ 35, 0, 2, 8, { 0 }},
|
||||
{ 36, 0, 1, 8, { 0 }},
|
||||
{ 37, 0, 2, 8, { 0 }},
|
||||
{ 38, 0, 2, 8, { 0 }},
|
||||
{ 39, 0, 2, 3, { 0 }},
|
||||
{ 40, 0, 2, 4, { 0 }},
|
||||
{ 41, 0, 2, 4, { 0 }},
|
||||
{ 42, 0, 4, 6, { 0 }},
|
||||
{ 43, 0, 6, 7, { 0 }},
|
||||
{ 44, 0, 10, 3, { 0 }},
|
||||
{ 45, 0, 8, 6, { 0 }},
|
||||
{ 46, 0, 10, 3, { 0 }},
|
||||
{ 47, 0, 2, 5, { 0 }},
|
||||
{ 48, 0, 2, 7, { 0 }},
|
||||
{ 49, 0, 2, 7, { 0 }},
|
||||
{ 50, 0, 2, 7, { 0 }},
|
||||
{ 51, 0, 2, 7, { 0 }},
|
||||
{ 52, 0, 2, 7, { 0 }},
|
||||
{ 53, 0, 2, 7, { 0 }},
|
||||
{ 54, 0, 2, 7, { 0 }},
|
||||
{ 55, 0, 2, 7, { 0 }},
|
||||
{ 56, 0, 2, 7, { 0 }},
|
||||
{ 57, 0, 2, 7, { 0 }},
|
||||
{ 58, 0, 4, 3, { 0 }},
|
||||
{ 59, 0, 4, 3, { 0 }},
|
||||
{ 60, 0, 4, 8, { 0 }},
|
||||
{ 61, 0, 6, 6, { 0 }},
|
||||
{ 62, 0, 4, 8, { 0 }},
|
||||
{ 63, 0, 2, 7, { 0 }},
|
||||
{ 64, 0, 2, 8, { 0 }},
|
||||
{ 65, 0, 2, 8, { 0 }},
|
||||
{ 66, 0, 2, 8, { 0 }},
|
||||
{ 67, 0, 2, 8, { 0 }},
|
||||
{ 68, 0, 2, 8, { 0 }},
|
||||
{ 69, 0, 2, 8, { 0 }},
|
||||
{ 70, 0, 2, 8, { 0 }},
|
||||
{ 71, 0, 2, 8, { 0 }},
|
||||
{ 72, 0, 2, 8, { 0 }},
|
||||
{ 73, 0, 2, 3, { 0 }},
|
||||
{ 74, 0, 2, 6, { 0 }},
|
||||
{ 75, 0, 2, 8, { 0 }},
|
||||
{ 76, 0, 2, 7, { 0 }},
|
||||
{ 77, 0, 2, 10, { 0 }},
|
||||
{ 78, 0, 2, 8, { 0 }},
|
||||
{ 79, 0, 2, 8, { 0 }},
|
||||
{ 80, 0, 2, 8, { 0 }},
|
||||
{ 81, 0, 2, 8, { 0 }},
|
||||
{ 82, 0, 2, 8, { 0 }},
|
||||
{ 83, 0, 2, 8, { 0 }},
|
||||
{ 84, 0, 2, 7, { 0 }},
|
||||
{ 85, 0, 2, 8, { 0 }},
|
||||
{ 86, 0, 2, 8, { 0 }},
|
||||
{ 87, 0, 2, 9, { 0 }},
|
||||
{ 88, 0, 2, 8, { 0 }},
|
||||
{ 89, 0, 2, 7, { 0 }},
|
||||
{ 90, 0, 2, 8, { 0 }},
|
||||
{ 91, 0, 2, 5, { 0 }},
|
||||
{ 92, 0, 2, 5, { 0 }},
|
||||
{ 93, 0, 2, 5, { 0 }},
|
||||
{ 94, 0, 2, 7, { 0 }},
|
||||
{ 95, 0, 14, 8, { 0 }},
|
||||
{ 96, 0, 2, 5, { 0 }},
|
||||
{ 97, 0, 5, 7, { 0 }},
|
||||
{ 98, 0, 2, 7, { 0 }},
|
||||
{ 99, 0, 5, 7, { 0 }},
|
||||
{ 100, 0, 2, 7, { 0 }},
|
||||
{ 101, 0, 5, 7, { 0 }},
|
||||
{ 102, 0, 2, 5, { 0 }},
|
||||
{ 103, 0, 5, 7, { 0 }},
|
||||
{ 104, 0, 2, 7, { 0 }},
|
||||
{ 105, 0, 2, 3, { 0 }},
|
||||
{ 106, 0, 2, 6, { 0 }},
|
||||
{ 107, 0, 2, 7, { 0 }},
|
||||
{ 108, 0, 2, 4, { 0 }},
|
||||
{ 109, 0, 5, 9, { 0 }},
|
||||
{ 110, 0, 5, 7, { 0 }},
|
||||
{ 111, 0, 5, 7, { 0 }},
|
||||
{ 112, 0, 5, 7, { 0 }},
|
||||
{ 113, 0, 5, 7, { 0 }},
|
||||
{ 114, 0, 5, 6, { 0 }},
|
||||
{ 115, 0, 5, 7, { 0 }},
|
||||
{ 116, 0, 2, 5, { 0 }},
|
||||
{ 117, 0, 5, 7, { 0 }},
|
||||
{ 118, 0, 5, 7, { 0 }},
|
||||
{ 119, 0, 5, 9, { 0 }},
|
||||
{ 120, 0, 5, 7, { 0 }},
|
||||
{ 121, 0, 5, 7, { 0 }},
|
||||
{ 122, 0, 5, 7, { 0 }},
|
||||
{ 123, 0, 2, 6, { 0 }},
|
||||
{ 124, 0, 2, 3, { 0 }},
|
||||
{ 125, 0, 2, 6, { 0 }},
|
||||
{ 126, 0, 6, 8, { 0 }},
|
||||
{ 161, 0, 5, 3, { 0 }},
|
||||
{ 162, 0, 3, 7, { 0 }},
|
||||
{ 163, 0, 2, 8, { 0 }},
|
||||
{ 8364, 0, 3, 8, { 0 }},
|
||||
{ 165, 0, 2, 7, { 0 }},
|
||||
{ 352, 0, 1, 8, { 0 }},
|
||||
{ 167, 0, 2, 7, { 0 }},
|
||||
{ 353, 0, 2, 7, { 0 }},
|
||||
{ 169, 0, 2, 8, { 0 }},
|
||||
{ 170, 0, 2, 6, { 0 }},
|
||||
{ 171, 0, 6, 8, { 0 }},
|
||||
{ 172, 0, 7, 7, { 0 }},
|
||||
{ 174, 0, 2, 8, { 0 }},
|
||||
{ 175, 0, 0, 0, { 0 }},
|
||||
{ 176, 0, 2, 5, { 0 }},
|
||||
{ 177, 0, 4, 7, { 0 }},
|
||||
{ 178, 0, 2, 5, { 0 }},
|
||||
{ 179, 0, 2, 5, { 0 }},
|
||||
{ 381, 0, 1, 8, { 0 }},
|
||||
{ 181, 0, 5, 7, { 0 }},
|
||||
{ 182, 0, 2, 8, { 0 }},
|
||||
{ 183, 0, 6, 3, { 0 }},
|
||||
{ 382, 0, 2, 7, { 0 }},
|
||||
{ 185, 0, 2, 4, { 0 }},
|
||||
{ 186, 0, 2, 5, { 0 }},
|
||||
{ 187, 0, 6, 8, { 0 }},
|
||||
{ 338, 0, 2, 10, { 0 }},
|
||||
{ 339, 0, 5, 9, { 0 }},
|
||||
{ 376, 0, 1, 7, { 0 }},
|
||||
{ 191, 0, 3, 7, { 0 }},
|
||||
{ 192, 0, 1, 8, { 0 }},
|
||||
{ 193, 0, 1, 8, { 0 }},
|
||||
{ 194, 0, 1, 8, { 0 }},
|
||||
{ 195, 0, 1, 8, { 0 }},
|
||||
{ 196, 0, 1, 8, { 0 }},
|
||||
{ 197, 0, 1, 8, { 0 }},
|
||||
{ 198, 0, 2, 10, { 0 }},
|
||||
{ 199, 0, 2, 8, { 0 }},
|
||||
{ 200, 0, 1, 8, { 0 }},
|
||||
{ 201, 0, 1, 8, { 0 }},
|
||||
{ 202, 0, 1, 8, { 0 }},
|
||||
{ 203, 0, 1, 8, { 0 }},
|
||||
{ 204, 0, 1, 4, { 0 }},
|
||||
{ 205, 0, 1, 4, { 0 }},
|
||||
{ 206, 0, 1, 6, { 0 }},
|
||||
{ 207, 0, 1, 6, { 0 }},
|
||||
{ 208, 0, 2, 9, { 0 }},
|
||||
{ 209, 0, 1, 8, { 0 }},
|
||||
{ 210, 0, 1, 8, { 0 }},
|
||||
{ 211, 0, 1, 8, { 0 }},
|
||||
{ 212, 0, 1, 8, { 0 }},
|
||||
{ 213, 0, 1, 8, { 0 }},
|
||||
{ 214, 0, 1, 8, { 0 }},
|
||||
{ 215, 0, 5, 8, { 0 }},
|
||||
{ 216, 0, 1, 8, { 0 }},
|
||||
{ 217, 0, 1, 8, { 0 }},
|
||||
{ 218, 0, 1, 8, { 0 }},
|
||||
{ 219, 0, 1, 8, { 0 }},
|
||||
{ 220, 0, 1, 8, { 0 }},
|
||||
{ 221, 0, 1, 7, { 0 }},
|
||||
{ 222, 0, 2, 8, { 0 }},
|
||||
{ 223, 0, 2, 8, { 0 }},
|
||||
{ 224, 0, 2, 7, { 0 }},
|
||||
{ 225, 0, 2, 7, { 0 }},
|
||||
{ 226, 0, 2, 7, { 0 }},
|
||||
{ 227, 0, 2, 7, { 0 }},
|
||||
{ 228, 0, 2, 7, { 0 }},
|
||||
{ 229, 0, 1, 7, { 0 }},
|
||||
{ 230, 0, 5, 9, { 0 }},
|
||||
{ 231, 0, 5, 7, { 0 }},
|
||||
{ 232, 0, 2, 7, { 0 }},
|
||||
{ 233, 0, 2, 7, { 0 }},
|
||||
{ 234, 0, 2, 7, { 0 }},
|
||||
{ 235, 0, 2, 7, { 0 }},
|
||||
{ 236, 0, 2, 4, { 0 }},
|
||||
{ 237, 0, 2, 4, { 0 }},
|
||||
{ 238, 0, 2, 6, { 0 }},
|
||||
{ 239, 0, 2, 6, { 0 }},
|
||||
{ 240, 0, 2, 7, { 0 }},
|
||||
{ 241, 0, 2, 7, { 0 }},
|
||||
{ 242, 0, 2, 7, { 0 }},
|
||||
{ 243, 0, 2, 7, { 0 }},
|
||||
{ 244, 0, 2, 7, { 0 }},
|
||||
{ 245, 0, 2, 7, { 0 }},
|
||||
{ 246, 0, 2, 7, { 0 }},
|
||||
{ 247, 0, 4, 7, { 0 }},
|
||||
{ 248, 0, 3, 8, { 0 }},
|
||||
{ 249, 0, 2, 7, { 0 }},
|
||||
{ 250, 0, 2, 7, { 0 }},
|
||||
{ 251, 0, 2, 7, { 0 }},
|
||||
{ 252, 0, 2, 7, { 0 }},
|
||||
{ 253, 0, 2, 7, { 0 }},
|
||||
{ 254, 0, 2, 7, { 0 }},
|
||||
{ 255, 0, 2, 7, { 0 }},
|
||||
};
|
||||
|
||||
// Style loading function: Enefete
|
||||
static void GuiLoadStyleEnefete(void)
|
||||
{
|
||||
// Load style properties provided
|
||||
// NOTE: Default properties are propagated
|
||||
for (int i = 0; i < ENEFETE_STYLE_PROPS_COUNT; i++)
|
||||
{
|
||||
GuiSetStyle(enefeteStyleProps[i].controlId, enefeteStyleProps[i].propertyId, enefeteStyleProps[i].propertyValue);
|
||||
}
|
||||
|
||||
// Custom font loading
|
||||
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
|
||||
int enefeteFontDataSize = 0;
|
||||
unsigned char *data = DecompressData(enefeteFontData, ENEFETE_STYLE_FONT_ATLAS_COMP_SIZE, &enefeteFontDataSize);
|
||||
Image imFont = { data, 512, 256, 1, 2 };
|
||||
|
||||
Font font = { 0 };
|
||||
font.baseSize = 16;
|
||||
font.glyphCount = 189;
|
||||
|
||||
// Load texture from image
|
||||
font.texture = LoadTextureFromImage(imFont);
|
||||
UnloadImage(imFont); // Uncompressed image data can be unloaded from memory
|
||||
|
||||
// Copy char recs data from global fontRecs
|
||||
// NOTE: Required to avoid issues if trying to free font
|
||||
font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle));
|
||||
memcpy(font.recs, enefeteFontRecs, font.glyphCount*sizeof(Rectangle));
|
||||
|
||||
// Copy font char info data from global fontChars
|
||||
// NOTE: Required to avoid issues if trying to free font
|
||||
font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo));
|
||||
memcpy(font.glyphs, enefeteFontGlyphs, font.glyphCount*sizeof(GlyphInfo));
|
||||
|
||||
GuiSetFont(font);
|
||||
|
||||
// Setup a white rectangle on the font to be used on shapes drawing,
|
||||
// it makes possible to draw shapes and text (full UI) in a single draw call
|
||||
Rectangle fontWhiteRec = { 510, 254, 1, 1 };
|
||||
SetShapesTexture(font.texture, fontWhiteRec);
|
||||
|
||||
//-----------------------------------------------------------------
|
||||
|
||||
// TODO: Custom user style setup: Set specific properties here (if required)
|
||||
// i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT
|
||||
}
|
||||
@ -1,589 +0,0 @@
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// StyleAsCode exporter v2.0 - Style data exported as a values array //
|
||||
// //
|
||||
// USAGE: On init call: GuiLoadStyleGenesis(); //
|
||||
// //
|
||||
// more info and bugs-report: github.com/raysan5/raygui //
|
||||
// feedback and support: ray[at]raylibtech.com //
|
||||
// //
|
||||
// Copyright (c) 2020-2025 raylib technologies (@raylibtech) //
|
||||
// //
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#define GENESIS_STYLE_PROPS_COUNT 23
|
||||
|
||||
// Custom style name: Genesis
|
||||
static const GuiStyleProp genesisStyleProps[GENESIS_STYLE_PROPS_COUNT] = {
|
||||
{ 0, 0, (int)0x667384ff }, // DEFAULT_BORDER_COLOR_NORMAL
|
||||
{ 0, 1, (int)0x181b1eff }, // DEFAULT_BASE_COLOR_NORMAL
|
||||
{ 0, 2, (int)0xc2c8d0ff }, // DEFAULT_TEXT_COLOR_NORMAL
|
||||
{ 0, 3, (int)0xd3dbdfff }, // DEFAULT_BORDER_COLOR_FOCUSED
|
||||
{ 0, 4, (int)0xa7afb0ff }, // DEFAULT_BASE_COLOR_FOCUSED
|
||||
{ 0, 5, (int)0x020202ff }, // DEFAULT_TEXT_COLOR_FOCUSED
|
||||
{ 0, 6, (int)0x181b1eff }, // DEFAULT_BORDER_COLOR_PRESSED
|
||||
{ 0, 7, (int)0xac3c3cff }, // DEFAULT_BASE_COLOR_PRESSED
|
||||
{ 0, 8, (int)0xdededeff }, // DEFAULT_TEXT_COLOR_PRESSED
|
||||
{ 0, 9, (int)0x3e4550ff }, // DEFAULT_BORDER_COLOR_DISABLED
|
||||
{ 0, 10, (int)0x2e353dff }, // DEFAULT_BASE_COLOR_DISABLED
|
||||
{ 0, 11, (int)0x484f57ff }, // DEFAULT_TEXT_COLOR_DISABLED
|
||||
{ 0, 16, (int)0x00000010 }, // DEFAULT_TEXT_SIZE
|
||||
{ 0, 17, (int)0x00000000 }, // DEFAULT_TEXT_SPACING
|
||||
{ 0, 18, (int)0x96a3b4ff }, // DEFAULT_LINE_COLOR
|
||||
{ 0, 19, (int)0x292c33ff }, // DEFAULT_BACKGROUND_COLOR
|
||||
{ 0, 20, (int)0x00000008 }, // DEFAULT_TEXT_LINE_SPACING
|
||||
{ 1, 5, (int)0x97a9aeff }, // LABEL_TEXT_COLOR_FOCUSED
|
||||
{ 4, 5, (int)0xa69a9aff }, // SLIDER_TEXT_COLOR_FOCUSED
|
||||
{ 4, 6, (int)0xc3ccd5ff }, // SLIDER_BORDER_COLOR_PRESSED
|
||||
{ 6, 6, (int)0xa7aeb5ff }, // CHECKBOX_BORDER_COLOR_PRESSED
|
||||
{ 9, 5, (int)0xa9a5a5ff }, // TEXTBOX_TEXT_COLOR_FOCUSED
|
||||
{ 10, 5, (int)0xc9c7c7ff }, // VALUEBOX_TEXT_COLOR_FOCUSED
|
||||
};
|
||||
|
||||
// WARNING: This style uses a custom font: "PixelOperator.ttf" (size: 16, spacing: 0)
|
||||
|
||||
#define GENESIS_STYLE_FONT_ATLAS_COMP_SIZE 2138
|
||||
|
||||
// Font atlas image pixels data: DEFLATE compressed
|
||||
static unsigned char genesisFontData[GENESIS_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed,
|
||||
0xdd, 0xdb, 0x92, 0xa5, 0xba, 0x0d, 0x00, 0x50, 0xff, 0xff, 0x4f, 0x2b, 0x0f, 0xa9, 0x54, 0x32, 0x95, 0xd3, 0x80, 0x64,
|
||||
0xd9, 0x98, 0x9e, 0x35, 0xeb, 0xad, 0x77, 0x4f, 0xc3, 0x36, 0x96, 0x6f, 0x80, 0x1c, 0x03, 0x00, 0x00, 0x00, 0xf8, 0xeb,
|
||||
0xc5, 0x3f, 0xfe, 0x24, 0x7e, 0xfc, 0xcd, 0x78, 0xfc, 0x77, 0xae, 0x7f, 0xfe, 0x9f, 0x4f, 0xe3, 0xe2, 0x58, 0xcf, 0xce,
|
||||
0x35, 0x7b, 0xdc, 0x48, 0x94, 0xc4, 0x3f, 0x9f, 0x5f, 0x3c, 0xfe, 0xbb, 0x3f, 0x7d, 0xbf, 0xfc, 0xef, 0x5f, 0xfd, 0xa5,
|
||||
0xeb, 0xb3, 0x8f, 0x54, 0xb9, 0xe7, 0xff, 0x4f, 0xee, 0x2a, 0xc6, 0x92, 0xb2, 0xbf, 0x3f, 0xbb, 0xfc, 0xb9, 0x77, 0xfe,
|
||||
0x9f, 0xb8, 0xf8, 0x3e, 0x95, 0xab, 0xf4, 0x24, 0xb6, 0x4e, 0x88, 0xff, 0x78, 0x14, 0x89, 0xd1, 0x5a, 0x73, 0xfe, 0x7b,
|
||||
0xd4, 0x68, 0x6c, 0xa9, 0xaa, 0x25, 0x79, 0x15, 0xe9, 0xf9, 0xf2, 0xb8, 0xaa, 0xfd, 0xf9, 0x16, 0x30, 0x5a, 0xbe, 0xcb,
|
||||
0x7c, 0x6d, 0x8c, 0xe9, 0xdf, 0x7e, 0x56, 0x93, 0x7a, 0xbe, 0xd5, 0xcc, 0x27, 0xa3, 0xe5, 0x2a, 0xbd, 0x11, 0xff, 0x51,
|
||||
0x6e, 0xa9, 0x22, 0x19, 0xd1, 0x1d, 0x25, 0x58, 0x69, 0x87, 0xc7, 0xc6, 0xf8, 0x8f, 0xd6, 0xb1, 0x4b, 0xb4, 0xd5, 0xb9,
|
||||
0x37, 0xe2, 0xff, 0xba, 0xd7, 0x1e, 0x2d, 0xf5, 0x26, 0x6e, 0xca, 0xa8, 0x37, 0x96, 0xd7, 0x8e, 0x53, 0x57, 0xc7, 0xff,
|
||||
0xf5, 0x6f, 0x66, 0xfb, 0xdb, 0x48, 0xf6, 0xdd, 0x1d, 0xe5, 0x54, 0xeb, 0xff, 0xfb, 0xcb, 0x31, 0x7e, 0xec, 0x9b, 0xab,
|
||||
0xe3, 0x90, 0x4c, 0x09, 0x47, 0x72, 0x76, 0x35, 0xdb, 0xc3, 0xbe, 0xd9, 0xff, 0x3f, 0x1b, 0x0b, 0x8a, 0xff, 0xb5, 0xf1,
|
||||
0x5f, 0xf9, 0x26, 0xf1, 0xf0, 0x0c, 0x2a, 0x7d, 0xe2, 0x38, 0x20, 0xfe, 0xb3, 0xed, 0xd0, 0x75, 0x59, 0x75, 0x8d, 0xe5,
|
||||
0xb3, 0xeb, 0x12, 0xcf, 0x66, 0xd8, 0xfb, 0x6a, 0x61, 0x7e, 0x6c, 0x94, 0x8f, 0xff, 0x7c, 0xeb, 0x79, 0xf7, 0xd7, 0xb2,
|
||||
0xa5, 0xfa, 0xf3, 0xcc, 0x6e, 0xbe, 0xc4, 0xf7, 0xc5, 0x7f, 0x14, 0xfa, 0x94, 0xf7, 0xe3, 0xb9, 0x27, 0xfe, 0xa3, 0xb0,
|
||||
0x72, 0x31, 0xda, 0x56, 0xf9, 0x6a, 0xeb, 0x12, 0x7d, 0x6b, 0x06, 0xef, 0x5f, 0x81, 0xfb, 0xf8, 0xbf, 0x9b, 0x0f, 0xbe,
|
||||
0xdf, 0xff, 0xc7, 0x11, 0xfd, 0x7f, 0x94, 0xd7, 0x86, 0x47, 0xa1, 0xf5, 0xfd, 0x5a, 0xfc, 0x47, 0x21, 0x66, 0xa2, 0x65,
|
||||
0x5e, 0x3e, 0x96, 0xac, 0xe5, 0xf5, 0xae, 0x19, 0xee, 0xb9, 0x5a, 0x77, 0xbd, 0x68, 0xd7, 0xac, 0xe6, 0x77, 0xc5, 0xff,
|
||||
0x68, 0xe8, 0xff, 0x9f, 0x8d, 0x01, 0x66, 0xbf, 0x47, 0x7c, 0xac, 0xf7, 0xef, 0x8c, 0xff, 0x5d, 0x2b, 0xf6, 0xeb, 0x6b,
|
||||
0x63, 0x1c, 0x71, 0x65, 0xac, 0xff, 0x77, 0x8e, 0xff, 0xeb, 0x6b, 0x00, 0xb9, 0x79, 0x4c, 0x1c, 0x1a, 0xfd, 0x95, 0x39,
|
||||
0x73, 0xd7, 0x1d, 0xfb, 0xde, 0xa7, 0x09, 0xa2, 0xf0, 0xac, 0x46, 0xcf, 0x2a, 0xce, 0xea, 0x6b, 0x90, 0xef, 0xff, 0x77,
|
||||
0xdd, 0xff, 0xbf, 0x1f, 0x73, 0x9f, 0xd1, 0xff, 0x8f, 0xdb, 0xde, 0xfd, 0x94, 0xf3, 0x01, 0xf6, 0xb6, 0x00, 0x21, 0xfa,
|
||||
0xc1, 0x73, 0xc4, 0x80, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x9f, 0xcf,
|
||||
0xef, 0xcf, 0x63, 0x90, 0xcf, 0x84, 0xbd, 0x3e, 0x03, 0xfb, 0x4c, 0x4e, 0xe0, 0x6a, 0x09, 0x75, 0xfd, 0xc5, 0xeb, 0xdc,
|
||||
0xf1, 0x99, 0x4c, 0x0b, 0xcf, 0x6b, 0x46, 0xa4, 0x77, 0x3f, 0xe8, 0xcc, 0x28, 0x50, 0xc9, 0x69, 0x30, 0x92, 0x75, 0xa2,
|
||||
0x37, 0x97, 0x52, 0xee, 0xec, 0xf7, 0xd4, 0xf8, 0x2f, 0xc4, 0xff, 0xfb, 0x9f, 0x8c, 0x42, 0xfe, 0x9e, 0x9d, 0xf1, 0x9f,
|
||||
0xad, 0x7b, 0xb5, 0xfc, 0xb8, 0x73, 0x7d, 0xc9, 0xee, 0x8c, 0x62, 0xd1, 0x78, 0x0d, 0xf7, 0xf5, 0xab, 0x7f, 0xe6, 0xd0,
|
||||
0xd9, 0x51, 0xaf, 0x67, 0xe2, 0x3f, 0x9b, 0xfb, 0x34, 0x2e, 0x5a, 0xe1, 0x73, 0xe2, 0x7f, 0x6c, 0x89, 0xff, 0xf8, 0x48,
|
||||
0xfc, 0x77, 0x67, 0x92, 0xe9, 0xca, 0x42, 0x5e, 0xc9, 0x7c, 0x93, 0xbf, 0x86, 0xf5, 0x0c, 0xbf, 0xd5, 0x1a, 0xf7, 0x9d,
|
||||
0xf8, 0xaf, 0xd4, 0xad, 0xeb, 0x3c, 0xab, 0xe2, 0xff, 0xbe, 0x6c, 0x2b, 0xbd, 0xc9, 0xfc, 0xcf, 0x7b, 0x22, 0x7f, 0x4f,
|
||||
0x1e, 0xdd, 0xbb, 0x7d, 0xb4, 0xd6, 0xd6, 0x95, 0xd9, 0xbe, 0xf2, 0x2b, 0xf1, 0x1f, 0xc5, 0xbf, 0x12, 0x37, 0x2d, 0x4a,
|
||||
0x6f, 0x06, 0xf6, 0x9e, 0xac, 0x6d, 0x7b, 0xe3, 0xbf, 0x7b, 0xdf, 0x9f, 0x33, 0xe2, 0xff, 0xfd, 0x3c, 0xba, 0xab, 0xe6,
|
||||
0x70, 0xbd, 0x7d, 0xe5, 0xef, 0xee, 0xff, 0xef, 0x5b, 0xc9, 0x1d, 0xf5, 0x63, 0xa6, 0xa7, 0x7f, 0xb3, 0xff, 0x7f, 0xef,
|
||||
0xe7, 0xef, 0xc6, 0x7f, 0x57, 0x6d, 0x8f, 0x8d, 0x23, 0x93, 0x6a, 0x5f, 0xb9, 0x73, 0x95, 0x6c, 0xf7, 0xfc, 0x7f, 0xd5,
|
||||
0x37, 0x1b, 0xe9, 0xd1, 0x44, 0x1c, 0x1b, 0xff, 0x33, 0xab, 0x90, 0xeb, 0xc6, 0x0b, 0xef, 0x8c, 0xff, 0x6b, 0xfb, 0xdb,
|
||||
0x56, 0x76, 0x05, 0x3c, 0xad, 0xff, 0xdf, 0x75, 0x97, 0x6c, 0x6c, 0x8e, 0xc9, 0xbd, 0xc7, 0xea, 0xdc, 0xa5, 0x2e, 0x9f,
|
||||
0xbf, 0x3f, 0x9a, 0x47, 0x78, 0x5f, 0x8f, 0xff, 0xfa, 0x2a, 0xff, 0x68, 0x5a, 0x95, 0x7c, 0x6f, 0xfc, 0xbf, 0x7b, 0xa7,
|
||||
0x93, 0xca, 0x51, 0x7a, 0xda, 0xdf, 0x67, 0x77, 0x85, 0x7b, 0x7b, 0x81, 0x9f, 0xef, 0x36, 0x44, 0x53, 0xcf, 0xd1, 0x95,
|
||||
0xbf, 0xff, 0xcf, 0x73, 0xcb, 0xef, 0x78, 0x96, 0xbf, 0x13, 0x1f, 0xc9, 0xfd, 0xf4, 0xdf, 0x88, 0xff, 0xca, 0x91, 0x2b,
|
||||
0xff, 0x2b, 0x7b, 0x0d, 0x3b, 0xe3, 0xff, 0xbd, 0x16, 0x40, 0xde, 0x4d, 0x38, 0x71, 0x14, 0x03, 0xfc, 0x9e, 0x16, 0xc0,
|
||||
0x0e, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xee, 0x37, 0xb1, 0x7f, 0xce,
|
||||
0xcd, 0x55, 0xc9, 0x1a, 0x9f, 0x7f, 0x4f, 0x7a, 0x67, 0xc6, 0xfc, 0x71, 0x93, 0x85, 0xec, 0xfa, 0xb7, 0xfe, 0xfc, 0xa4,
|
||||
0x23, 0x1f, 0x6f, 0x34, 0xbe, 0xb5, 0x9e, 0xc9, 0xe5, 0x1d, 0x85, 0x6c, 0x03, 0x57, 0x6f, 0xc6, 0xe6, 0xae, 0x41, 0xee,
|
||||
0x18, 0xd1, 0x9e, 0xcf, 0x2c, 0xd2, 0xd9, 0x63, 0xfe, 0xf7, 0x9c, 0x9f, 0x67, 0xfa, 0x8d, 0xf2, 0x9b, 0xc6, 0x77, 0xb9,
|
||||
0xcc, 0xf2, 0xf9, 0x11, 0x2a, 0x39, 0xf3, 0xf2, 0x79, 0x36, 0x4f, 0xcf, 0x98, 0x3f, 0x9f, 0x79, 0x27, 0x6e, 0xea, 0xe4,
|
||||
0xf3, 0x5a, 0xfa, 0x24, 0x73, 0x44, 0x4f, 0x06, 0xa1, 0xda, 0x37, 0x8e, 0xe9, 0xda, 0x5a, 0xb9, 0xde, 0x99, 0x23, 0xc4,
|
||||
0xf4, 0xfb, 0xfc, 0x95, 0xfa, 0x1e, 0x93, 0xd7, 0xbd, 0xfe, 0x8d, 0x67, 0xb2, 0x10, 0x44, 0xa9, 0xa7, 0xeb, 0x2c, 0xc1,
|
||||
0xeb, 0x4f, 0xf2, 0x19, 0x33, 0xe3, 0x61, 0x7c, 0x75, 0xff, 0x74, 0x24, 0xdb, 0x9b, 0x4a, 0xbe, 0xba, 0x99, 0x5d, 0x33,
|
||||
0xe6, 0xc6, 0x88, 0xe3, 0x22, 0xbb, 0x52, 0x3e, 0xfa, 0x7f, 0xee, 0x6f, 0x62, 0x32, 0xfe, 0xa3, 0x98, 0x59, 0xa8, 0x1e,
|
||||
0x23, 0xd9, 0xf8, 0x9f, 0xbf, 0x0a, 0xbb, 0xe2, 0xbf, 0x92, 0xf5, 0xe0, 0xfd, 0x8c, 0xd9, 0xb5, 0x9e, 0x70, 0x6f, 0xfc,
|
||||
0xc7, 0x83, 0xf6, 0x6b, 0xa4, 0xe7, 0x2f, 0xa3, 0x90, 0xe1, 0xfc, 0xf9, 0xec, 0x22, 0x5a, 0xfb, 0xff, 0x71, 0x59, 0x26,
|
||||
0xf1, 0xc2, 0xf8, 0xbf, 0xb6, 0xdf, 0x5b, 0x2e, 0xfe, 0x67, 0x5a, 0xa7, 0xfd, 0xfd, 0x7f, 0xad, 0x5f, 0x3b, 0xb9, 0xff,
|
||||
0x7f, 0x27, 0x63, 0x76, 0x14, 0xe6, 0xd9, 0x95, 0xe3, 0xc6, 0xe4, 0xc8, 0xe0, 0xd9, 0x5c, 0x30, 0x1a, 0xe6, 0xab, 0x1d,
|
||||
0xf1, 0xdf, 0x3f, 0xc2, 0xae, 0xcc, 0xad, 0x6a, 0xfd, 0x7f, 0xb4, 0xce, 0xff, 0x23, 0xdd, 0xce, 0xcf, 0xc5, 0x7f, 0xe7,
|
||||
0x6e, 0x4b, 0x2b, 0x32, 0xe6, 0xe6, 0x77, 0x76, 0x7c, 0xab, 0xff, 0x1f, 0xa5, 0xfe, 0xbf, 0xd6, 0x7b, 0xcd, 0xd4, 0xca,
|
||||
0xd8, 0x90, 0xeb, 0x2e, 0x37, 0xfe, 0x5f, 0x3d, 0xca, 0xce, 0xcf, 0x28, 0x63, 0x53, 0xfb, 0xd4, 0x3d, 0xf7, 0xab, 0x45,
|
||||
0x4b, 0xa4, 0xc7, 0xd7, 0x3b, 0x33, 0xe6, 0x56, 0xd6, 0x9e, 0xcf, 0x8f, 0xff, 0xce, 0x3d, 0x4c, 0x2a, 0x77, 0x17, 0xa2,
|
||||
0xa1, 0x6f, 0x5e, 0xdd, 0xff, 0xcf, 0xce, 0xff, 0x2b, 0xb9, 0xf4, 0xf7, 0xac, 0xff, 0x8d, 0xa5, 0x6b, 0x3f, 0xd1, 0x7a,
|
||||
0x3f, 0x71, 0x1c, 0xd0, 0x7e, 0x77, 0x66, 0x89, 0x7f, 0x63, 0xfe, 0xdf, 0x95, 0x81, 0x7d, 0x94, 0xef, 0x09, 0xd5, 0xd7,
|
||||
0xff, 0x67, 0x6b, 0x60, 0x1c, 0xd3, 0xf7, 0x8f, 0xc7, 0x7b, 0xe8, 0xc4, 0x4b, 0xd1, 0x7f, 0x5a, 0xfc, 0x9f, 0xf2, 0x44,
|
||||
0x43, 0x47, 0xbb, 0x15, 0x2d, 0xad, 0x5b, 0x65, 0xdf, 0x96, 0xce, 0x71, 0xd4, 0xfc, 0xfc, 0x7f, 0xcd, 0xba, 0xfa, 0x1b,
|
||||
0xc7, 0x98, 0xb9, 0x23, 0x3b, 0x1f, 0xff, 0xb1, 0xbc, 0xe4, 0xe4, 0x23, 0xfe, 0x4e, 0x2b, 0x75, 0xde, 0xf1, 0xfe, 0xe6,
|
||||
0xda, 0x13, 0x1b, 0x9f, 0xb5, 0x13, 0xa1, 0xc4, 0xd1, 0xf3, 0x21, 0xd7, 0x03, 0xfe, 0xe6, 0xf9, 0xd0, 0xdf, 0xfa, 0x1c,
|
||||
0xbc, 0x92, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4e, 0x7d, 0x3b, 0xa4, 0x92, 0x59,
|
||||
0x72, 0x34, 0xbf, 0x8b, 0x9e, 0xcf, 0xad, 0x5f, 0x3d, 0xbb, 0xbb, 0xf7, 0xa5, 0x6b, 0xf9, 0x79, 0x6b, 0xe5, 0x34, 0x97,
|
||||
0x8f, 0x28, 0x97, 0x53, 0xed, 0x7e, 0xff, 0x83, 0x38, 0xf2, 0x6a, 0xde, 0x65, 0x75, 0x8d, 0x42, 0x3e, 0xd5, 0xce, 0xeb,
|
||||
0x35, 0x4a, 0x65, 0xb7, 0xab, 0x96, 0x3d, 0x7f, 0x3b, 0x34, 0x36, 0xbc, 0x4f, 0x59, 0x8b, 0x85, 0x5a, 0x6e, 0xc3, 0xb9,
|
||||
0xdc, 0x61, 0xb1, 0xf8, 0x9b, 0xe5, 0xca, 0x6f, 0x7e, 0x3f, 0x89, 0xfb, 0x6c, 0xab, 0xf1, 0xb9, 0xab, 0x59, 0xcd, 0xf8,
|
||||
0xde, 0x7d, 0xbd, 0xea, 0xb5, 0xe5, 0x84, 0x5a, 0xb6, 0x7e, 0x67, 0x89, 0x37, 0xde, 0x6e, 0xad, 0x66, 0xc4, 0x8d, 0xcf,
|
||||
0xbf, 0x73, 0x1a, 0x1f, 0xcd, 0x05, 0x50, 0xcb, 0x13, 0xb9, 0xeb, 0x5b, 0x55, 0x8e, 0x14, 0xa5, 0x3d, 0x9b, 0xc6, 0xf6,
|
||||
0xec, 0x10, 0xf9, 0xec, 0xe7, 0xa3, 0x94, 0xef, 0xb3, 0xfb, 0x93, 0xca, 0x15, 0xa9, 0xc7, 0xff, 0x55, 0x39, 0x55, 0x3e,
|
||||
0x99, 0xed, 0xff, 0xc7, 0xf2, 0x7d, 0x18, 0x4e, 0xb9, 0x9a, 0x77, 0xfd, 0x7f, 0xb4, 0xed, 0x98, 0xb4, 0xf7, 0x93, 0x1d,
|
||||
0xe5, 0xda, 0x11, 0x0b, 0xbb, 0xf6, 0xfb, 0x8b, 0x74, 0xad, 0x18, 0xe9, 0x1c, 0x7b, 0xf5, 0xd9, 0xd7, 0xae, 0x4f, 0x56,
|
||||
0xc4, 0x7f, 0x5c, 0xcc, 0x93, 0xbb, 0x77, 0x1d, 0xeb, 0xbe, 0x9a, 0x4f, 0x5a, 0x86, 0x2f, 0xc6, 0xff, 0x8e, 0xf8, 0x99,
|
||||
0x9d, 0xff, 0x47, 0x79, 0x37, 0x9d, 0x33, 0x6b, 0x4c, 0x3c, 0xcc, 0xe8, 0xfc, 0xdb, 0xe2, 0x7f, 0x6f, 0x19, 0x77, 0xb7,
|
||||
0xe6, 0xd7, 0x23, 0xec, 0xf1, 0xd1, 0xf8, 0x9f, 0xdd, 0xef, 0x6d, 0x7e, 0xee, 0x7a, 0xbf, 0xfe, 0xdf, 0xb9, 0xb2, 0x71,
|
||||
0x46, 0xfc, 0x9f, 0x12, 0xe5, 0xb9, 0x32, 0x5f, 0x1b, 0xff, 0xef, 0xc7, 0x50, 0x57, 0x1f, 0xf6, 0xde, 0xb9, 0x47, 0xdb,
|
||||
0xfc, 0xff, 0x7e, 0x97, 0xe4, 0xdc, 0xdd, 0x9d, 0xbd, 0xab, 0x49, 0x3b, 0x4b, 0xbd, 0x73, 0xcf, 0xe1, 0xa7, 0x63, 0x87,
|
||||
0xee, 0xf9, 0xee, 0x19, 0xfd, 0x7f, 0x88, 0xff, 0x05, 0x6b, 0xe1, 0x27, 0xf4, 0x92, 0xab, 0xee, 0xe5, 0xe5, 0xb3, 0xd8,
|
||||
0xf7, 0x7e, 0x32, 0x5b, 0x52, 0xf9, 0xfb, 0xff, 0x5f, 0x1f, 0xff, 0x3f, 0xd9, 0xe1, 0xe7, 0x5b, 0xf1, 0x1f, 0xc5, 0x15,
|
||||
0xc5, 0x33, 0xe2, 0x3f, 0x36, 0x8e, 0x6a, 0x57, 0xdc, 0xcb, 0x3f, 0x79, 0xfc, 0xdf, 0xbf, 0x13, 0xd4, 0xd7, 0xe3, 0xff,
|
||||
0x0b, 0x63, 0xe8, 0x35, 0x4f, 0xa1, 0xbc, 0x17, 0xff, 0x73, 0x77, 0x86, 0x4f, 0x1e, 0xff, 0x9f, 0x1e, 0xff, 0xb3, 0x57,
|
||||
0x25, 0x36, 0xcd, 0xff, 0x9f, 0x8e, 0x34, 0x7e, 0x7f, 0xfc, 0x8f, 0xad, 0x7b, 0xf7, 0xd7, 0xe7, 0x9b, 0xe3, 0xd0, 0x67,
|
||||
0x61, 0xce, 0x79, 0x8a, 0xe3, 0xfd, 0x99, 0xcd, 0xfc, 0xae, 0xa8, 0xeb, 0xef, 0xff, 0x8f, 0x65, 0xfd, 0x7f, 0xef, 0x93,
|
||||
0x2d, 0xbb, 0xee, 0xff, 0xef, 0x7d, 0xa2, 0xa8, 0xfb, 0x0c, 0xc5, 0xff, 0x37, 0xda, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xe2, 0x73, 0xf2, 0x2b, 0x72, 0xeb, 0xf7, 0xe7, 0xc3, 0x38, 0x3d, 0xb7, 0xfe,
|
||||
0xdd, 0xfb, 0x33, 0xe3, 0xd8, 0xdc, 0xfa, 0xe3, 0x51, 0x8e, 0xa2, 0xef, 0xe5, 0xd6, 0xf7, 0xee, 0xc7, 0xd3, 0xb7, 0x64,
|
||||
0xd6, 0xe5, 0xd6, 0xef, 0x7b, 0x87, 0xfa, 0xf4, 0xdc, 0xfa, 0xe3, 0x26, 0x13, 0xd1, 0xc9, 0xb9, 0xf5, 0xeb, 0x6f, 0x51,
|
||||
0x9d, 0x9a, 0x5b, 0x9f, 0xb5, 0xef, 0x4e, 0x3e, 0x6d, 0xfb, 0xe3, 0xc5, 0x6b, 0xf6, 0x46, 0x36, 0x84, 0x93, 0x6b, 0x64,
|
||||
0x3e, 0x5b, 0xd3, 0x8a, 0x16, 0xa5, 0xf3, 0x7d, 0xcd, 0xb3, 0x73, 0xeb, 0x7f, 0x3d, 0xc6, 0xeb, 0xd9, 0x58, 0xa3, 0x9c,
|
||||
0xf3, 0xbe, 0xef, 0x5d, 0xed, 0x48, 0x8d, 0x1b, 0xd7, 0xe6, 0xd6, 0xba, 0x6e, 0x47, 0xcf, 0xdd, 0x29, 0xe1, 0xdb, 0xb9,
|
||||
0xb5, 0xc5, 0x7f, 0x4f, 0xab, 0x1b, 0x4d, 0x51, 0xf7, 0xf4, 0x93, 0x7d, 0x59, 0x83, 0xfa, 0xe2, 0x3f, 0xda, 0x3f, 0xdb,
|
||||
0x9b, 0x5b, 0xab, 0xba, 0x9e, 0x20, 0xfe, 0x7f, 0x57, 0x3b, 0x90, 0x99, 0xd1, 0x3e, 0x29, 0xf7, 0x37, 0x6b, 0xc0, 0xce,
|
||||
0xdc, 0x5a, 0x5f, 0x8f, 0xff, 0x4a, 0xff, 0x20, 0xfe, 0x7f, 0xcf, 0xf8, 0xbf, 0xaf, 0x2f, 0xaf, 0xaf, 0xff, 0x7f, 0x79,
|
||||
0x6f, 0xad, 0xdf, 0x19, 0xff, 0x67, 0xe4, 0xd6, 0x15, 0xff, 0xef, 0x8c, 0xff, 0x6b, 0xfb, 0x13, 0xac, 0x58, 0xcd, 0xed,
|
||||
0x9d, 0x4d, 0x88, 0xff, 0xd5, 0x75, 0xe7, 0xa4, 0x9d, 0x21, 0xc4, 0x78, 0x7d, 0xfe, 0x5f, 0xdb, 0x13, 0xb4, 0xda, 0x02,
|
||||
0xec, 0xcb, 0xd5, 0xfa, 0x46, 0x6e, 0x7d, 0xb9, 0x75, 0x67, 0xae, 0xd7, 0xf5, 0xe8, 0xef, 0x9b, 0xf7, 0x63, 0x4e, 0x1f,
|
||||
0xff, 0xf7, 0xde, 0xab, 0xf9, 0xff, 0x35, 0xa5, 0xd5, 0x2b, 0xde, 0xab, 0xc6, 0xff, 0x2b, 0xda, 0xd8, 0x37, 0x4b, 0x63,
|
||||
0xcd, 0xbd, 0xa3, 0xfe, 0x33, 0x8c, 0xa6, 0xd1, 0x1f, 0xef, 0xb4, 0x1a, 0xb0, 0x66, 0x9c, 0xf1, 0x7e, 0x4b, 0x08, 0x7c,
|
||||
0xed, 0x49, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x93, 0xfc, 0xfb, 0x9f, 0x72, 0x00, 0xf1, 0x0f, 0xfc, 0x75, 0xf1, 0xff, 0x2f };
|
||||
|
||||
// Font glyphs rectangles data (on atlas)
|
||||
static const Rectangle genesisFontRecs[189] = {
|
||||
{ 4, 4, 4 , 16 },
|
||||
{ 16, 4, 1 , 9 },
|
||||
{ 25, 4, 3 , 3 },
|
||||
{ 36, 4, 6 , 9 },
|
||||
{ 50, 4, 5 , 13 },
|
||||
{ 63, 4, 7 , 9 },
|
||||
{ 78, 4, 5 , 9 },
|
||||
{ 91, 4, 1 , 3 },
|
||||
{ 100, 4, 3 , 9 },
|
||||
{ 111, 4, 3 , 9 },
|
||||
{ 122, 4, 5 , 5 },
|
||||
{ 135, 4, 5 , 5 },
|
||||
{ 148, 4, 2 , 3 },
|
||||
{ 158, 4, 4 , 1 },
|
||||
{ 170, 4, 1 , 1 },
|
||||
{ 179, 4, 3 , 9 },
|
||||
{ 190, 4, 5 , 9 },
|
||||
{ 203, 4, 3 , 9 },
|
||||
{ 214, 4, 5 , 9 },
|
||||
{ 227, 4, 5 , 9 },
|
||||
{ 240, 4, 5 , 9 },
|
||||
{ 253, 4, 5 , 9 },
|
||||
{ 266, 4, 5 , 9 },
|
||||
{ 279, 4, 5 , 9 },
|
||||
{ 292, 4, 5 , 9 },
|
||||
{ 305, 4, 5 , 9 },
|
||||
{ 318, 4, 1 , 7 },
|
||||
{ 327, 4, 2 , 9 },
|
||||
{ 337, 4, 3 , 5 },
|
||||
{ 348, 4, 4 , 3 },
|
||||
{ 360, 4, 3 , 5 },
|
||||
{ 371, 4, 5 , 9 },
|
||||
{ 384, 4, 7 , 9 },
|
||||
{ 399, 4, 5 , 9 },
|
||||
{ 412, 4, 5 , 9 },
|
||||
{ 425, 4, 5 , 9 },
|
||||
{ 438, 4, 5 , 9 },
|
||||
{ 451, 4, 5 , 9 },
|
||||
{ 464, 4, 5 , 9 },
|
||||
{ 477, 4, 5 , 9 },
|
||||
{ 490, 4, 5 , 9 },
|
||||
{ 4, 28, 1 , 9 },
|
||||
{ 13, 28, 5 , 9 },
|
||||
{ 26, 28, 5 , 9 },
|
||||
{ 39, 28, 5 , 9 },
|
||||
{ 52, 28, 7 , 9 },
|
||||
{ 67, 28, 5 , 9 },
|
||||
{ 80, 28, 5 , 9 },
|
||||
{ 93, 28, 5 , 9 },
|
||||
{ 106, 28, 5 , 9 },
|
||||
{ 119, 28, 5 , 9 },
|
||||
{ 132, 28, 5 , 9 },
|
||||
{ 145, 28, 5 , 9 },
|
||||
{ 158, 28, 5 , 9 },
|
||||
{ 171, 28, 5 , 9 },
|
||||
{ 184, 28, 7 , 9 },
|
||||
{ 199, 28, 5 , 9 },
|
||||
{ 212, 28, 5 , 9 },
|
||||
{ 225, 28, 5 , 9 },
|
||||
{ 238, 28, 3 , 9 },
|
||||
{ 249, 28, 3 , 9 },
|
||||
{ 260, 28, 3 , 9 },
|
||||
{ 271, 28, 5 , 3 },
|
||||
{ 284, 28, 5 , 1 },
|
||||
{ 297, 28, 2 , 2 },
|
||||
{ 307, 28, 5 , 7 },
|
||||
{ 320, 28, 5 , 9 },
|
||||
{ 333, 28, 5 , 7 },
|
||||
{ 346, 28, 5 , 9 },
|
||||
{ 359, 28, 5 , 7 },
|
||||
{ 372, 28, 4 , 9 },
|
||||
{ 384, 28, 5 , 9 },
|
||||
{ 397, 28, 5 , 9 },
|
||||
{ 410, 28, 1 , 9 },
|
||||
{ 419, 28, 5 , 11 },
|
||||
{ 432, 28, 5 , 9 },
|
||||
{ 445, 28, 2 , 9 },
|
||||
{ 455, 28, 7 , 7 },
|
||||
{ 470, 28, 5 , 7 },
|
||||
{ 483, 28, 5 , 7 },
|
||||
{ 496, 28, 5 , 9 },
|
||||
{ 4, 52, 5 , 9 },
|
||||
{ 17, 52, 5 , 7 },
|
||||
{ 30, 52, 5 , 7 },
|
||||
{ 43, 52, 4 , 8 },
|
||||
{ 55, 52, 5 , 7 },
|
||||
{ 68, 52, 5 , 7 },
|
||||
{ 81, 52, 7 , 7 },
|
||||
{ 96, 52, 5 , 7 },
|
||||
{ 109, 52, 5 , 9 },
|
||||
{ 122, 52, 5 , 7 },
|
||||
{ 135, 52, 4 , 9 },
|
||||
{ 147, 52, 1 , 9 },
|
||||
{ 156, 52, 4 , 9 },
|
||||
{ 168, 52, 6 , 2 },
|
||||
{ 182, 52, 1 , 9 },
|
||||
{ 191, 52, 5 , 11 },
|
||||
{ 204, 52, 6 , 9 },
|
||||
{ 218, 52, 6 , 9 },
|
||||
{ 232, 52, 5 , 9 },
|
||||
{ 245, 52, 5 , 12 },
|
||||
{ 258, 52, 0 , 0 },
|
||||
{ 266, 52, 5 , 10 },
|
||||
{ 279, 52, 7 , 9 },
|
||||
{ 294, 52, 0 , 0 },
|
||||
{ 302, 52, 6 , 5 },
|
||||
{ 316, 52, 5 , 3 },
|
||||
{ 329, 52, 7 , 9 },
|
||||
{ 344, 52, 0 , 0 },
|
||||
{ 352, 52, 4 , 4 },
|
||||
{ 364, 52, 5 , 7 },
|
||||
{ 377, 52, 0 , 0 },
|
||||
{ 385, 52, 0 , 0 },
|
||||
{ 393, 52, 5 , 12 },
|
||||
{ 406, 52, 5 , 9 },
|
||||
{ 419, 52, 7 , 9 },
|
||||
{ 434, 52, 1 , 1 },
|
||||
{ 443, 52, 5 , 10 },
|
||||
{ 456, 52, 0 , 0 },
|
||||
{ 464, 52, 0 , 0 },
|
||||
{ 472, 52, 6 , 5 },
|
||||
{ 486, 52, 9 , 9 },
|
||||
{ 4, 76, 9 , 7 },
|
||||
{ 21, 76, 5 , 11 },
|
||||
{ 34, 76, 5 , 9 },
|
||||
{ 47, 76, 5 , 12 },
|
||||
{ 60, 76, 5 , 12 },
|
||||
{ 73, 76, 5 , 12 },
|
||||
{ 86, 76, 6 , 12 },
|
||||
{ 100, 76, 5 , 11 },
|
||||
{ 113, 76, 5 , 13 },
|
||||
{ 126, 76, 9 , 9 },
|
||||
{ 143, 76, 5 , 12 },
|
||||
{ 156, 76, 5 , 12 },
|
||||
{ 169, 76, 5 , 12 },
|
||||
{ 182, 76, 5 , 12 },
|
||||
{ 195, 76, 5 , 11 },
|
||||
{ 208, 76, 2 , 12 },
|
||||
{ 218, 76, 2 , 12 },
|
||||
{ 228, 76, 3 , 12 },
|
||||
{ 239, 76, 3 , 11 },
|
||||
{ 250, 76, 6 , 9 },
|
||||
{ 264, 76, 6 , 12 },
|
||||
{ 278, 76, 5 , 12 },
|
||||
{ 291, 76, 5 , 12 },
|
||||
{ 304, 76, 5 , 12 },
|
||||
{ 317, 76, 6 , 12 },
|
||||
{ 331, 76, 5 , 11 },
|
||||
{ 344, 76, 5 , 5 },
|
||||
{ 357, 76, 7 , 9 },
|
||||
{ 372, 76, 5 , 12 },
|
||||
{ 385, 76, 5 , 12 },
|
||||
{ 398, 76, 5 , 12 },
|
||||
{ 411, 76, 5 , 11 },
|
||||
{ 424, 76, 5 , 12 },
|
||||
{ 437, 76, 5 , 9 },
|
||||
{ 450, 76, 5 , 9 },
|
||||
{ 463, 76, 5 , 10 },
|
||||
{ 476, 76, 5 , 10 },
|
||||
{ 489, 76, 5 , 10 },
|
||||
{ 4, 100, 6 , 10 },
|
||||
{ 18, 100, 5 , 9 },
|
||||
{ 31, 100, 5 , 11 },
|
||||
{ 44, 100, 9 , 7 },
|
||||
{ 61, 100, 5 , 10 },
|
||||
{ 74, 100, 5 , 10 },
|
||||
{ 87, 100, 5 , 10 },
|
||||
{ 100, 100, 5 , 10 },
|
||||
{ 113, 100, 5 , 9 },
|
||||
{ 126, 100, 2 , 10 },
|
||||
{ 136, 100, 2 , 10 },
|
||||
{ 146, 100, 3 , 10 },
|
||||
{ 157, 100, 3 , 9 },
|
||||
{ 168, 100, 6 , 9 },
|
||||
{ 182, 100, 6 , 10 },
|
||||
{ 196, 100, 5 , 10 },
|
||||
{ 209, 100, 5 , 10 },
|
||||
{ 222, 100, 5 , 10 },
|
||||
{ 235, 100, 6 , 10 },
|
||||
{ 249, 100, 5 , 9 },
|
||||
{ 262, 100, 5 , 5 },
|
||||
{ 275, 100, 7 , 7 },
|
||||
{ 290, 100, 5 , 10 },
|
||||
{ 303, 100, 5 , 10 },
|
||||
{ 316, 100, 5 , 10 },
|
||||
{ 329, 100, 5 , 9 },
|
||||
{ 342, 100, 5 , 12 },
|
||||
{ 355, 100, 5 , 11 },
|
||||
{ 368, 100, 5 , 11 },
|
||||
};
|
||||
|
||||
// Font glyphs info data
|
||||
// NOTE: No glyphs.image data provided
|
||||
static const GlyphInfo genesisFontGlyphs[189] = {
|
||||
{ 32, 0, 0, 4, { 0 }},
|
||||
{ 33, 2, 4, 5, { 0 }},
|
||||
{ 34, 2, 4, 7, { 0 }},
|
||||
{ 35, 1, 4, 8, { 0 }},
|
||||
{ 36, 1, 2, 7, { 0 }},
|
||||
{ 37, 1, 4, 9, { 0 }},
|
||||
{ 38, 1, 4, 7, { 0 }},
|
||||
{ 39, 2, 4, 5, { 0 }},
|
||||
{ 40, 3, 4, 7, { 0 }},
|
||||
{ 41, 1, 4, 7, { 0 }},
|
||||
{ 42, 1, 4, 7, { 0 }},
|
||||
{ 43, 1, 6, 7, { 0 }},
|
||||
{ 44, 1, 12, 5, { 0 }},
|
||||
{ 45, 1, 8, 6, { 0 }},
|
||||
{ 46, 2, 12, 5, { 0 }},
|
||||
{ 47, 1, 4, 5, { 0 }},
|
||||
{ 48, 1, 4, 7, { 0 }},
|
||||
{ 49, 2, 4, 7, { 0 }},
|
||||
{ 50, 1, 4, 7, { 0 }},
|
||||
{ 51, 1, 4, 7, { 0 }},
|
||||
{ 52, 1, 4, 7, { 0 }},
|
||||
{ 53, 1, 4, 7, { 0 }},
|
||||
{ 54, 1, 4, 7, { 0 }},
|
||||
{ 55, 1, 4, 7, { 0 }},
|
||||
{ 56, 1, 4, 7, { 0 }},
|
||||
{ 57, 1, 4, 7, { 0 }},
|
||||
{ 58, 2, 6, 5, { 0 }},
|
||||
{ 59, 1, 6, 5, { 0 }},
|
||||
{ 60, 1, 6, 5, { 0 }},
|
||||
{ 61, 1, 7, 6, { 0 }},
|
||||
{ 62, 1, 6, 5, { 0 }},
|
||||
{ 63, 1, 4, 7, { 0 }},
|
||||
{ 64, 1, 4, 9, { 0 }},
|
||||
{ 65, 1, 4, 7, { 0 }},
|
||||
{ 66, 1, 4, 7, { 0 }},
|
||||
{ 67, 1, 4, 7, { 0 }},
|
||||
{ 68, 1, 4, 7, { 0 }},
|
||||
{ 69, 1, 4, 7, { 0 }},
|
||||
{ 70, 1, 4, 7, { 0 }},
|
||||
{ 71, 1, 4, 7, { 0 }},
|
||||
{ 72, 1, 4, 7, { 0 }},
|
||||
{ 73, 2, 4, 5, { 0 }},
|
||||
{ 74, 1, 4, 7, { 0 }},
|
||||
{ 75, 1, 4, 7, { 0 }},
|
||||
{ 76, 1, 4, 7, { 0 }},
|
||||
{ 77, 1, 4, 9, { 0 }},
|
||||
{ 78, 1, 4, 7, { 0 }},
|
||||
{ 79, 1, 4, 7, { 0 }},
|
||||
{ 80, 1, 4, 7, { 0 }},
|
||||
{ 81, 1, 4, 7, { 0 }},
|
||||
{ 82, 1, 4, 7, { 0 }},
|
||||
{ 83, 1, 4, 7, { 0 }},
|
||||
{ 84, 1, 4, 7, { 0 }},
|
||||
{ 85, 1, 4, 7, { 0 }},
|
||||
{ 86, 1, 4, 7, { 0 }},
|
||||
{ 87, 1, 4, 9, { 0 }},
|
||||
{ 88, 1, 4, 7, { 0 }},
|
||||
{ 89, 1, 4, 7, { 0 }},
|
||||
{ 90, 1, 4, 7, { 0 }},
|
||||
{ 91, 3, 4, 7, { 0 }},
|
||||
{ 92, 1, 4, 5, { 0 }},
|
||||
{ 93, 1, 4, 7, { 0 }},
|
||||
{ 94, 1, 4, 7, { 0 }},
|
||||
{ 95, 0, 14, 5, { 0 }},
|
||||
{ 96, 1, 4, 5, { 0 }},
|
||||
{ 97, 1, 6, 7, { 0 }},
|
||||
{ 98, 1, 4, 7, { 0 }},
|
||||
{ 99, 1, 6, 7, { 0 }},
|
||||
{ 100, 1, 4, 7, { 0 }},
|
||||
{ 101, 1, 6, 7, { 0 }},
|
||||
{ 102, 1, 4, 6, { 0 }},
|
||||
{ 103, 1, 6, 7, { 0 }},
|
||||
{ 104, 1, 4, 7, { 0 }},
|
||||
{ 105, 2, 4, 5, { 0 }},
|
||||
{ 106, 1, 4, 7, { 0 }},
|
||||
{ 107, 1, 4, 7, { 0 }},
|
||||
{ 108, 2, 4, 5, { 0 }},
|
||||
{ 109, 1, 6, 9, { 0 }},
|
||||
{ 110, 1, 6, 7, { 0 }},
|
||||
{ 111, 1, 6, 7, { 0 }},
|
||||
{ 112, 1, 6, 7, { 0 }},
|
||||
{ 113, 1, 6, 7, { 0 }},
|
||||
{ 114, 1, 6, 7, { 0 }},
|
||||
{ 115, 1, 6, 7, { 0 }},
|
||||
{ 116, 1, 5, 6, { 0 }},
|
||||
{ 117, 1, 6, 7, { 0 }},
|
||||
{ 118, 1, 6, 7, { 0 }},
|
||||
{ 119, 1, 6, 9, { 0 }},
|
||||
{ 120, 1, 6, 7, { 0 }},
|
||||
{ 121, 1, 6, 7, { 0 }},
|
||||
{ 122, 1, 6, 7, { 0 }},
|
||||
{ 123, 2, 4, 7, { 0 }},
|
||||
{ 124, 2, 4, 5, { 0 }},
|
||||
{ 125, 1, 4, 7, { 0 }},
|
||||
{ 126, 1, 4, 8, { 0 }},
|
||||
{ 161, 2, 6, 5, { 0 }},
|
||||
{ 162, 1, 4, 7, { 0 }},
|
||||
{ 163, 1, 4, 8, { 0 }},
|
||||
{ 8364, 1, 4, 8, { 0 }},
|
||||
{ 165, 1, 4, 7, { 0 }},
|
||||
{ 352, 1, 1, 7, { 0 }},
|
||||
{ 167, 0, 0, 0, { 0 }},
|
||||
{ 353, 1, 3, 7, { 0 }},
|
||||
{ 169, 1, 4, 9, { 0 }},
|
||||
{ 170, 0, 0, 0, { 0 }},
|
||||
{ 171, 1, 6, 8, { 0 }},
|
||||
{ 172, 1, 8, 7, { 0 }},
|
||||
{ 174, 1, 4, 9, { 0 }},
|
||||
{ 175, 0, 0, 0, { 0 }},
|
||||
{ 176, 1, 4, 6, { 0 }},
|
||||
{ 177, 1, 6, 7, { 0 }},
|
||||
{ 178, 0, 0, 0, { 0 }},
|
||||
{ 179, 0, 0, 0, { 0 }},
|
||||
{ 381, 1, 1, 7, { 0 }},
|
||||
{ 181, 1, 6, 7, { 0 }},
|
||||
{ 182, 1, 4, 9, { 0 }},
|
||||
{ 183, 2, 8, 5, { 0 }},
|
||||
{ 382, 1, 3, 7, { 0 }},
|
||||
{ 185, 0, 0, 0, { 0 }},
|
||||
{ 186, 0, 0, 0, { 0 }},
|
||||
{ 187, 1, 6, 8, { 0 }},
|
||||
{ 338, 1, 4, 11, { 0 }},
|
||||
{ 339, 1, 6, 11, { 0 }},
|
||||
{ 376, 1, 2, 7, { 0 }},
|
||||
{ 191, 1, 6, 7, { 0 }},
|
||||
{ 192, 1, 1, 7, { 0 }},
|
||||
{ 193, 1, 1, 7, { 0 }},
|
||||
{ 194, 1, 1, 7, { 0 }},
|
||||
{ 195, 1, 1, 7, { 0 }},
|
||||
{ 196, 1, 2, 7, { 0 }},
|
||||
{ 197, 1, 0, 7, { 0 }},
|
||||
{ 198, 1, 4, 11, { 0 }},
|
||||
{ 199, 1, 4, 7, { 0 }},
|
||||
{ 200, 1, 1, 7, { 0 }},
|
||||
{ 201, 1, 1, 7, { 0 }},
|
||||
{ 202, 1, 1, 7, { 0 }},
|
||||
{ 203, 1, 2, 7, { 0 }},
|
||||
{ 204, 1, 1, 5, { 0 }},
|
||||
{ 205, 2, 1, 5, { 0 }},
|
||||
{ 206, 1, 1, 5, { 0 }},
|
||||
{ 207, 1, 2, 5, { 0 }},
|
||||
{ 208, 0, 4, 7, { 0 }},
|
||||
{ 209, 1, 1, 7, { 0 }},
|
||||
{ 210, 1, 1, 7, { 0 }},
|
||||
{ 211, 1, 1, 7, { 0 }},
|
||||
{ 212, 1, 1, 7, { 0 }},
|
||||
{ 213, 1, 1, 7, { 0 }},
|
||||
{ 214, 1, 2, 7, { 0 }},
|
||||
{ 215, 1, 6, 7, { 0 }},
|
||||
{ 216, 0, 4, 7, { 0 }},
|
||||
{ 217, 1, 1, 7, { 0 }},
|
||||
{ 218, 1, 1, 7, { 0 }},
|
||||
{ 219, 1, 1, 7, { 0 }},
|
||||
{ 220, 1, 2, 7, { 0 }},
|
||||
{ 221, 1, 1, 7, { 0 }},
|
||||
{ 222, 1, 4, 7, { 0 }},
|
||||
{ 223, 1, 4, 7, { 0 }},
|
||||
{ 224, 1, 3, 7, { 0 }},
|
||||
{ 225, 1, 3, 7, { 0 }},
|
||||
{ 226, 1, 3, 7, { 0 }},
|
||||
{ 227, 1, 3, 7, { 0 }},
|
||||
{ 228, 1, 4, 7, { 0 }},
|
||||
{ 229, 1, 2, 7, { 0 }},
|
||||
{ 230, 1, 6, 11, { 0 }},
|
||||
{ 231, 1, 6, 7, { 0 }},
|
||||
{ 232, 1, 3, 7, { 0 }},
|
||||
{ 233, 1, 3, 7, { 0 }},
|
||||
{ 234, 1, 3, 7, { 0 }},
|
||||
{ 235, 1, 4, 7, { 0 }},
|
||||
{ 236, 1, 3, 5, { 0 }},
|
||||
{ 237, 2, 3, 5, { 0 }},
|
||||
{ 238, 1, 3, 5, { 0 }},
|
||||
{ 239, 1, 4, 5, { 0 }},
|
||||
{ 240, 1, 4, 7, { 0 }},
|
||||
{ 241, 1, 3, 7, { 0 }},
|
||||
{ 242, 1, 3, 7, { 0 }},
|
||||
{ 243, 1, 3, 7, { 0 }},
|
||||
{ 244, 1, 3, 7, { 0 }},
|
||||
{ 245, 1, 3, 7, { 0 }},
|
||||
{ 246, 1, 4, 7, { 0 }},
|
||||
{ 247, 1, 6, 7, { 0 }},
|
||||
{ 248, 0, 6, 7, { 0 }},
|
||||
{ 249, 1, 3, 7, { 0 }},
|
||||
{ 250, 1, 3, 7, { 0 }},
|
||||
{ 251, 1, 3, 7, { 0 }},
|
||||
{ 252, 1, 4, 7, { 0 }},
|
||||
{ 253, 1, 3, 7, { 0 }},
|
||||
{ 254, 1, 4, 7, { 0 }},
|
||||
{ 255, 1, 4, 7, { 0 }},
|
||||
};
|
||||
|
||||
// Style loading function: Genesis
|
||||
static void GuiLoadStyleGenesis(void)
|
||||
{
|
||||
// Load style properties provided
|
||||
// NOTE: Default properties are propagated
|
||||
for (int i = 0; i < GENESIS_STYLE_PROPS_COUNT; i++)
|
||||
{
|
||||
GuiSetStyle(genesisStyleProps[i].controlId, genesisStyleProps[i].propertyId, genesisStyleProps[i].propertyValue);
|
||||
}
|
||||
|
||||
// Custom font loading
|
||||
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
|
||||
int genesisFontDataSize = 0;
|
||||
unsigned char *data = DecompressData(genesisFontData, GENESIS_STYLE_FONT_ATLAS_COMP_SIZE, &genesisFontDataSize);
|
||||
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, genesisFontRecs, 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, genesisFontGlyphs, 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
|
||||
}
|
||||
@ -1,579 +0,0 @@
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// 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-2025 raylib technologies (@raylibtech) //
|
||||
// //
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#define JUNGLE_STYLE_PROPS_COUNT 17
|
||||
|
||||
// Custom style name: Jungle
|
||||
static const GuiStyleProp jungleStyleProps[JUNGLE_STYLE_PROPS_COUNT] = {
|
||||
{ 0, 0, (int)0x60827dff }, // DEFAULT_BORDER_COLOR_NORMAL
|
||||
{ 0, 1, (int)0x2c3334ff }, // DEFAULT_BASE_COLOR_NORMAL
|
||||
{ 0, 2, (int)0x82a29fff }, // DEFAULT_TEXT_COLOR_NORMAL
|
||||
{ 0, 3, (int)0x5f9aa8ff }, // DEFAULT_BORDER_COLOR_FOCUSED
|
||||
{ 0, 4, (int)0x334e57ff }, // DEFAULT_BASE_COLOR_FOCUSED
|
||||
{ 0, 5, (int)0x6aa9b8ff }, // DEFAULT_TEXT_COLOR_FOCUSED
|
||||
{ 0, 6, (int)0xa9cb8dff }, // DEFAULT_BORDER_COLOR_PRESSED
|
||||
{ 0, 7, (int)0x3b6357ff }, // DEFAULT_BASE_COLOR_PRESSED
|
||||
{ 0, 8, (int)0x97af81ff }, // DEFAULT_TEXT_COLOR_PRESSED
|
||||
{ 0, 9, (int)0x5b6462ff }, // DEFAULT_BORDER_COLOR_DISABLED
|
||||
{ 0, 10, (int)0x2c3334ff }, // DEFAULT_BASE_COLOR_DISABLED
|
||||
{ 0, 11, (int)0x666b69ff }, // DEFAULT_TEXT_COLOR_DISABLED
|
||||
{ 0, 16, (int)0x0000000c }, // DEFAULT_TEXT_SIZE
|
||||
{ 0, 17, (int)0x00000000 }, // DEFAULT_TEXT_SPACING
|
||||
{ 0, 18, (int)0x638465ff }, // DEFAULT_LINE_COLOR
|
||||
{ 0, 19, (int)0x2b3a3aff }, // DEFAULT_BACKGROUND_COLOR
|
||||
{ 0, 20, (int)0x00000006 }, // DEFAULT_TEXT_LINE_SPACING
|
||||
};
|
||||
|
||||
// WARNING: This style uses a custom font: "PixelIntv.otf" (size: 12, spacing: 0)
|
||||
|
||||
#define JUNGLE_STYLE_FONT_ATLAS_COMP_SIZE 2059
|
||||
|
||||
// Font atlas image pixels data: DEFLATE compressed
|
||||
static unsigned char jungleFontData[JUNGLE_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed,
|
||||
0x9d, 0xbd, 0x8e, 0x1d, 0x35, 0x18, 0x86, 0x8d, 0x39, 0x1d, 0x25, 0xa2, 0x00, 0x09, 0x91, 0x06, 0x89, 0x86, 0x86, 0x28,
|
||||
0x12, 0x74, 0x7b, 0x01, 0xd4, 0x08, 0x51, 0x20, 0x2a, 0x1a, 0xe0, 0x1e, 0xc8, 0x95, 0xa5, 0xa1, 0xe7, 0x06, 0xb8, 0x0b,
|
||||
0x2e, 0xe0, 0x8b, 0x36, 0x9b, 0xdd, 0xec, 0xee, 0x99, 0xb1, 0xfd, 0xfd, 0xd8, 0x9e, 0x9f, 0x67, 0x1f, 0x25, 0x52, 0xc6,
|
||||
0x67, 0x66, 0x6c, 0xbf, 0xb6, 0x67, 0x36, 0xdf, 0x7b, 0x3e, 0x4b, 0x02, 0x00, 0x00, 0x00, 0xb8, 0xe2, 0xf6, 0x67, 0xf9,
|
||||
0xd8, 0x52, 0x49, 0x7a, 0x5f, 0xd2, 0x7e, 0xad, 0xfb, 0xe3, 0x77, 0x25, 0x79, 0xf5, 0x13, 0xcb, 0x57, 0xcc, 0x2b, 0x75,
|
||||
0x58, 0xab, 0xf5, 0x7a, 0xcd, 0x92, 0xaa, 0x64, 0xfd, 0xfa, 0xeb, 0xfd, 0x95, 0x14, 0x6d, 0x78, 0xfa, 0x93, 0x14, 0x6d,
|
||||
0x29, 0x9f, 0xd7, 0x5b, 0xff, 0x72, 0x1f, 0xac, 0x97, 0xdd, 0xfd, 0xb9, 0xed, 0x89, 0xac, 0xb8, 0xe6, 0xfa, 0xe7, 0x93,
|
||||
0x6a, 0x04, 0xea, 0x47, 0x86, 0xae, 0x77, 0x4b, 0x9f, 0xae, 0xb5, 0x41, 0x94, 0x35, 0xb8, 0x3f, 0xde, 0x53, 0xff, 0xf4,
|
||||
0x70, 0x8f, 0xf6, 0xf9, 0x5f, 0x53, 0x45, 0xe4, 0xb2, 0xd8, 0x13, 0xa9, 0xa8, 0x4d, 0x36, 0xdc, 0x29, 0x62, 0x34, 0xa7,
|
||||
0xa0, 0xde, 0xcd, 0xc5, 0x36, 0x88, 0x41, 0x7f, 0xdb, 0x08, 0x8d, 0xba, 0x8e, 0x6d, 0xfe, 0xdf, 0x72, 0x79, 0x37, 0x02,
|
||||
0xca, 0x57, 0xf5, 0xd7, 0x38, 0x6a, 0xfe, 0xa7, 0xae, 0xea, 0x7b, 0xf4, 0x1f, 0xb1, 0xfe, 0x97, 0x3f, 0x5f, 0xee, 0xb3,
|
||||
0xe5, 0xeb, 0xe5, 0xf7, 0xf3, 0x5f, 0xff, 0xf4, 0x8c, 0xd0, 0x5f, 0xff, 0xfc, 0xef, 0xab, 0x7e, 0xc4, 0xfa, 0xbf, 0xc5,
|
||||
0xf7, 0xc8, 0xda, 0x73, 0x7c, 0x79, 0xec, 0x48, 0xf7, 0xf9, 0x3f, 0x83, 0x92, 0xfa, 0xb5, 0xf7, 0x3f, 0x71, 0xac, 0xb3,
|
||||
0xbd, 0xe7, 0xbf, 0xe5, 0x5a, 0xf7, 0x3d, 0x21, 0x86, 0xf9, 0xb9, 0x57, 0xfd, 0x4b, 0xea, 0x43, 0xc4, 0x5a, 0xa3, 0x79,
|
||||
0xca, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x33, 0x62, 0x52, 0x8e, 0xbf, 0x47,
|
||||
0x46, 0x22, 0x7b, 0x95, 0xb5, 0xbb, 0x0d, 0x34, 0xce, 0x95, 0x6c, 0xe8, 0xb1, 0x59, 0xfd, 0xd2, 0xcb, 0xed, 0x97, 0xd4,
|
||||
0xde, 0x8c, 0x96, 0xda, 0x58, 0xef, 0xe7, 0xd1, 0x3f, 0x2b, 0x63, 0xaf, 0x65, 0x87, 0xde, 0x9a, 0x9f, 0x71, 0x3d, 0x72,
|
||||
0xed, 0x6d, 0x9f, 0xb6, 0x4c, 0xb7, 0x02, 0xa4, 0x21, 0xf3, 0xbf, 0xcd, 0xc3, 0xd4, 0xc7, 0xdd, 0xb8, 0xec, 0x33, 0x2b,
|
||||
0xd5, 0xf5, 0xa2, 0x76, 0x14, 0x7e, 0x88, 0x36, 0xf7, 0x1d, 0xdf, 0xd1, 0xae, 0x4f, 0xab, 0xa3, 0xc4, 0x32, 0x26, 0x2d,
|
||||
0x0e, 0xd6, 0x88, 0xf5, 0x3f, 0x66, 0xfe, 0x97, 0xc6, 0xa9, 0x3c, 0xfb, 0x13, 0xb3, 0x8e, 0xcf, 0xd2, 0xbf, 0xc7, 0x5a,
|
||||
0x9d, 0x1a, 0x56, 0x05, 0x6b, 0x5d, 0x6c, 0xcf, 0x7f, 0x8b, 0x53, 0xa7, 0xe4, 0x56, 0xb2, 0xbf, 0x4f, 0xcd, 0x98, 0xff,
|
||||
0x9e, 0x39, 0x6e, 0x5b, 0xff, 0xcb, 0xfa, 0xc7, 0xb9, 0xdb, 0x64, 0xca, 0xdb, 0x74, 0xcb, 0x1c, 0xdb, 0xd6, 0xf3, 0x1f,
|
||||
0x22, 0xfd, 0x8c, 0xf3, 0x7e, 0x9f, 0x42, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xe8, 0xeb, 0xc7, 0x1b, 0xe5, 0x29, 0x91, 0xc6, 0x2c, 0x3e, 0xeb, 0x7e, 0xad, 0x51, 0x6e, 0xbd, 0xf1, 0xfd, 0x1d, 0xed,
|
||||
0xfb, 0x88, 0x88, 0x49, 0x5b, 0x32, 0x98, 0xf9, 0xbd, 0x88, 0xb2, 0x09, 0x47, 0x5e, 0x8f, 0x7e, 0x9b, 0xa9, 0xbf, 0xa5,
|
||||
0x3e, 0x76, 0xfd, 0xc5, 0x98, 0x61, 0xb0, 0x96, 0x19, 0x66, 0x5b, 0xfa, 0x5b, 0x5c, 0x07, 0x1e, 0xfd, 0xeb, 0x6b, 0x55,
|
||||
0x2a, 0xe8, 0xa1, 0x5f, 0xe3, 0xad, 0xfa, 0x8b, 0x31, 0xef, 0x63, 0x9f, 0xa7, 0x58, 0x1f, 0xfd, 0x2d, 0xfd, 0x76, 0x94,
|
||||
0xf5, 0xbf, 0x7e, 0xcd, 0x6c, 0x5c, 0xff, 0xa5, 0xba, 0xaa, 0x48, 0xb8, 0x1b, 0x55, 0x3f, 0xa7, 0x5a, 0xfb, 0xe7, 0xbc,
|
||||
0xfa, 0xa7, 0x2e, 0xfa, 0xf7, 0xb9, 0xe3, 0x7e, 0x9e, 0xff, 0x96, 0xec, 0xd5, 0x33, 0x7c, 0x6e, 0x3e, 0x6f, 0x78, 0xad,
|
||||
0x74, 0x44, 0xcf, 0xf4, 0x5b, 0xff, 0x71, 0x01, 0xee, 0xc7, 0x25, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x30, 0x22, 0x46, 0x61, 0x8f, 0x9d, 0xf5, 0x88, 0x00, 0x5e, 0x1f, 0xcf, 0x0d, 0x31, 0xcc, 0xe7, 0xc7,
|
||||
0xf3, 0x8a, 0x63, 0x44, 0x94, 0x39, 0xff, 0x6c, 0xfb, 0xf1, 0xb6, 0xe6, 0x41, 0xb3, 0x3b, 0x08, 0x23, 0xe2, 0x80, 0xe3,
|
||||
0xf5, 0x4f, 0x4d, 0xf1, 0xd8, 0x6b, 0x25, 0xb3, 0xc1, 0x33, 0x94, 0x95, 0x19, 0x9f, 0x4a, 0x19, 0xa2, 0xf4, 0x6e, 0xa6,
|
||||
0x7a, 0x2f, 0x58, 0x72, 0xdd, 0xd5, 0xae, 0x66, 0xdb, 0xa1, 0xb8, 0xe4, 0x8e, 0xa9, 0x79, 0x59, 0xf4, 0x2d, 0xcf, 0xea,
|
||||
0xb6, 0xe5, 0x86, 0x35, 0xa0, 0xbf, 0x47, 0x3a, 0xa9, 0xe7, 0xa3, 0xcf, 0x77, 0xd7, 0x5f, 0xff, 0xd4, 0xe0, 0xf1, 0x8b,
|
||||
0x76, 0xa4, 0x48, 0x65, 0xf7, 0x5b, 0xcb, 0x08, 0xe8, 0xad, 0x7f, 0xad, 0xad, 0x76, 0x97, 0x50, 0x0a, 0x1d, 0x37, 0xd1,
|
||||
0xfa, 0xb7, 0x8c, 0xd3, 0xe8, 0x11, 0x6c, 0x19, 0x01, 0x63, 0xe6, 0xbf, 0xa8, 0xf5, 0x2f, 0xaf, 0x0d, 0xf1, 0xbd, 0x67,
|
||||
0x71, 0x01, 0xd9, 0x56, 0x14, 0xaf, 0x5b, 0xcd, 0xa2, 0x62, 0x36, 0xad, 0x1c, 0x23, 0xde, 0xa0, 0x6d, 0x7b, 0x55, 0x47,
|
||||
0x3b, 0x36, 0x6d, 0x3d, 0x31, 0x5e, 0x7f, 0x31, 0xef, 0xf8, 0x9d, 0x37, 0xb7, 0xfb, 0xb5, 0x6d, 0xd6, 0xd9, 0x1d, 0x7b,
|
||||
0xf1, 0xf3, 0x7f, 0x7b, 0xdf, 0x46, 0x1b, 0x71, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xc0, 0x39, 0x73, 0x14, 0xe8, 0x33, 0xd5, 0xd4, 0xcf, 0xb0, 0xee, 0x9d, 0x35, 0x72, 0xef, 0xdc, 0x5e, 0xfb, 0xdb, 0xd9,
|
||||
0xf3, 0x82, 0x49, 0x97, 0x1d, 0xe0, 0xe2, 0xe3, 0x66, 0xbe, 0x2c, 0x66, 0xb5, 0x1e, 0xb2, 0x66, 0xdc, 0xd2, 0x7a, 0x30,
|
||||
0x3c, 0xbe, 0x1e, 0xab, 0xe7, 0x23, 0xde, 0x87, 0x17, 0xe3, 0x6d, 0xb3, 0xcd, 0x7f, 0x9b, 0x2f, 0x64, 0x6b, 0xfa, 0xa7,
|
||||
0x41, 0xfe, 0x3c, 0x8f, 0xfe, 0xde, 0xdd, 0x9f, 0xed, 0x8e, 0x2c, 0x7d, 0xaf, 0x1e, 0x41, 0xff, 0x36, 0xf7, 0xae, 0xc5,
|
||||
0x47, 0x18, 0xed, 0xc3, 0x9b, 0xa5, 0xbf, 0x98, 0xf6, 0xce, 0xf5, 0xe8, 0xef, 0xf3, 0xcb, 0x8f, 0x9b, 0xff, 0xf6, 0x3b,
|
||||
0xa6, 0x2e, 0x3b, 0xa3, 0x7b, 0x67, 0xab, 0x2e, 0x53, 0xe3, 0x0c, 0xa7, 0x56, 0xbc, 0x5f, 0xae, 0x97, 0xb3, 0x6b, 0xae,
|
||||
0x7b, 0x31, 0xca, 0xbf, 0xea, 0xcd, 0xfe, 0x3d, 0x43, 0x7f, 0xbc, 0x63, 0xc7, 0x1e, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x8b, 0xe3, 0xc4, 0xed, 0x47, 0xa5, 0xcd, 0xea, 0x26, 0x8b, 0x19, 0x3d,
|
||||
0xac, 0xb9, 0x63, 0xb4, 0xde, 0x0a, 0x4d, 0xec, 0x5c, 0x13, 0xbb, 0xcc, 0x8f, 0x3e, 0x7b, 0xed, 0x83, 0xf8, 0x5e, 0x5e,
|
||||
0x3c, 0xf0, 0x52, 0x3e, 0x5b, 0xcd, 0x72, 0xb2, 0xd4, 0x33, 0xb5, 0x73, 0xcb, 0x77, 0xb6, 0x38, 0x00, 0x74, 0xb9, 0xda,
|
||||
0x74, 0x47, 0xb3, 0xb2, 0x9e, 0x16, 0xd7, 0x85, 0x2f, 0x43, 0x9f, 0xf5, 0xb3, 0xf9, 0x89, 0x92, 0x4f, 0x79, 0xf5, 0xa4,
|
||||
0x77, 0x5f, 0x2e, 0xf6, 0x78, 0x5e, 0xc9, 0x75, 0x54, 0x3b, 0xb7, 0x7c, 0x67, 0xad, 0xfe, 0x59, 0x9d, 0xab, 0x4d, 0xaf,
|
||||
0x4e, 0x8c, 0xaf, 0xd0, 0x96, 0x15, 0xc7, 0xa2, 0x7f, 0x5b, 0xfd, 0x1f, 0xaf, 0xac, 0xcf, 0x4b, 0x5f, 0x14, 0xfe, 0x75,
|
||||
0x77, 0xf6, 0xe5, 0xe1, 0x6f, 0xfd, 0xb9, 0xa5, 0x3b, 0xeb, 0x9d, 0x3c, 0x36, 0x17, 0x97, 0x77, 0x04, 0x44, 0x66, 0x53,
|
||||
0x4c, 0xae, 0x0c, 0xad, 0x36, 0xc7, 0x83, 0x3c, 0xd9, 0x5b, 0x5e, 0xab, 0x61, 0x69, 0xfe, 0xb7, 0xe9, 0xbf, 0x76, 0xe7,
|
||||
0x64, 0xf4, 0xc7, 0xc9, 0x46, 0xe6, 0x7f, 0x8f, 0xac, 0x78, 0xa2, 0x9a, 0x27, 0xad, 0x6b, 0x85, 0x67, 0xfe, 0x97, 0x9e,
|
||||
0xff, 0xf1, 0xfa, 0x5b, 0x5d, 0x70, 0xa3, 0xf5, 0x4f, 0x66, 0x9f, 0xaa, 0xf5, 0xad, 0xd1, 0xbe, 0x02, 0x94, 0x9f, 0xc2,
|
||||
0x75, 0xfd, 0xd7, 0xa9, 0xeb, 0x6f, 0x79, 0xfe, 0xcb, 0x4e, 0xf4, 0x4f, 0x0e, 0x67, 0x6d, 0x94, 0x1f, 0xd5, 0xff, 0xfe,
|
||||
0xdf, 0x53, 0x7f, 0xfd, 0xfb, 0x7f, 0xac, 0xb3, 0xd2, 0x96, 0xd5, 0x71, 0x4f, 0xdf, 0x94, 0xf3, 0xb7, 0xe6, 0xd7, 0x47,
|
||||
0xbf, 0xc3, 0xbd, 0x92, 0x1f, 0x86, 0x9d, 0x0b, 0x31, 0x8e, 0x57, 0x3c, 0xaf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xb0, 0x75, 0xea, 0x5e, 0xb4, 0xcf, 0x17, 0xe3, 0x48, 0xb5, 0xf3, 0xbc, 0xe5, 0x5a, 0x97, 0xda, 0xd7,
|
||||
0xf2, 0xad, 0x7c, 0x79, 0x75, 0xf4, 0x8d, 0xbc, 0x91, 0xdf, 0xdc, 0x7d, 0x50, 0x2b, 0xbf, 0x8b, 0xb4, 0x2d, 0xc7, 0xdb,
|
||||
0x96, 0x7e, 0x2c, 0x9f, 0xd1, 0xc7, 0xb5, 0xdb, 0xa2, 0x7f, 0x35, 0x3f, 0xd9, 0x8f, 0x72, 0x23, 0x7f, 0x1a, 0xce, 0xf3,
|
||||
0x96, 0x6b, 0xf4, 0xff, 0x42, 0xfe, 0x93, 0x7f, 0xe5, 0xb5, 0x7c, 0xb5, 0x78, 0xd6, 0xdf, 0xee, 0x3e, 0xf0, 0xf8, 0xf5,
|
||||
0x34, 0x3b, 0x21, 0xc7, 0x45, 0x18, 0xdb, 0xa3, 0xff, 0xb5, 0x78, 0xf2, 0x2f, 0xf2, 0x91, 0xfc, 0xb4, 0xe0, 0x44, 0xab,
|
||||
0x9d, 0xe7, 0x2d, 0xd7, 0xe8, 0xff, 0x97, 0x88, 0xfc, 0x23, 0xbf, 0xcb, 0xc7, 0x57, 0x25, 0x37, 0x72, 0xd3, 0x70, 0x6d,
|
||||
0x7f, 0x5d, 0x2f, 0xef, 0xea, 0x75, 0x71, 0xee, 0x84, 0x1d, 0x39, 0xff, 0xa3, 0xfc, 0x04, 0x9f, 0xca, 0xcf, 0xf2, 0x5d,
|
||||
0x87, 0x3e, 0x8b, 0xd4, 0xff, 0x1b, 0xf9, 0x7f, 0x45, 0xff, 0x98, 0x3e, 0xf0, 0xf8, 0xf5, 0xae, 0xb5, 0x8d, 0x71, 0x16,
|
||||
0x48, 0x63, 0x26, 0x5d, 0x6f, 0xdb, 0x7b, 0xf5, 0x99, 0x45, 0xff, 0xf5, 0x36, 0x7d, 0x22, 0xaf, 0x27, 0xea, 0x5f, 0x7b,
|
||||
0xfe, 0x27, 0x45, 0xce, 0x58, 0x8d, 0x1b, 0x35, 0xc2, 0xa9, 0xb2, 0x27, 0xfd, 0x4b, 0xe5, 0x7f, 0x4c, 0xd4, 0x7f, 0x8c,
|
||||
0x6b, 0xa8, 0xfd, 0xba, 0xe8, 0xbf, 0x2d, 0xfd, 0x2d, 0xef, 0xf6, 0x9e, 0xf5, 0x50, 0x73, 0x2f, 0xab, 0x9f, 0xac, 0x76,
|
||||
0x9e, 0xb7, 0x5c, 0x8b, 0x47, 0xff, 0xd1, 0x75, 0xdd, 0x8f, 0x53, 0x11, 0xce, 0xed, 0x54, 0x05, 0xf4, 0x07, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3d, 0x93, 0x2b, 0xb9, 0xdf, 0x72, 0xa1, 0xc4, 0xe2, 0x67, 0x68, 0xdb, 0x01,
|
||||
0x58, 0x8c, 0x39, 0x09, 0x73, 0x68, 0x3b, 0xeb, 0x6d, 0x19, 0x77, 0xbf, 0x52, 0xcb, 0x4b, 0x7a, 0xd4, 0xff, 0xbf, 0x38,
|
||||
0x17, 0x4a, 0xb2, 0x3a, 0x77, 0x9f, 0x6f, 0x07, 0x58, 0x9f, 0xb7, 0x21, 0x9b, 0x3c, 0x91, 0xa5, 0x76, 0x6e, 0xe7, 0x7e,
|
||||
0xe5, 0xb2, 0x3c, 0x24, 0xe7, 0xcb, 0xec, 0xb8, 0xc5, 0x99, 0x63, 0x1a, 0x52, 0x75, 0x41, 0x8f, 0xf3, 0x11, 0xf4, 0x2e,
|
||||
0xb3, 0xe6, 0xf9, 0xdc, 0x62, 0x5b, 0x22, 0xcb, 0xd6, 0xe7, 0xbf, 0x6d, 0x7e, 0xd8, 0xd7, 0x9b, 0xb1, 0x65, 0x1a, 0xdf,
|
||||
0xdb, 0xa8, 0xb2, 0xd1, 0xf7, 0x8c, 0xf2, 0x7c, 0x1d, 0x41, 0x7f, 0x4b, 0x86, 0xd0, 0xa3, 0xeb, 0x2f, 0xc1, 0x99, 0xf3,
|
||||
0x66, 0xae, 0x6f, 0xbe, 0x6b, 0xa7, 0x21, 0x65, 0x33, 0xf4, 0x6f, 0xd9, 0x23, 0x7e, 0xaf, 0xf3, 0x5f, 0x5b, 0xe7, 0xb3,
|
||||
0xcd, 0xff, 0xb6, 0xef, 0x47, 0x1c, 0x5d, 0x7f, 0x41, 0xff, 0x40, 0xcf, 0xd7, 0x1e, 0xe7, 0xff, 0x59, 0xdf, 0xff, 0xdb,
|
||||
0xc6, 0x21, 0x9e, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0xe7, 0x61, 0xb3, 0x7a, 0x03, 0xdb,
|
||||
0xbc, 0x6f, 0xdb, 0xf0, 0xfd, 0x65, 0xd3, 0x6e, 0x62, 0xe5, 0x36, 0xd8, 0xbc, 0x64, 0x7e, 0xdf, 0x57, 0xbc, 0x87, 0xcd,
|
||||
0xda, 0xaf, 0xf6, 0x1c, 0x59, 0xa3, 0x7d, 0x7f, 0xa5, 0x5d, 0x71, 0xad, 0xbb, 0x4d, 0xdb, 0xc6, 0xf0, 0x7a, 0x1b, 0xf6,
|
||||
0xec, 0x01, 0x5c, 0x3a, 0x9e, 0x77, 0xb0, 0xfb, 0xd6, 0xac, 0xd8, 0xd7, 0x11, 0x62, 0x66, 0xa9, 0x5a, 0x92, 0x37, 0xef,
|
||||
0x53, 0xaa, 0x97, 0x8d, 0xf5, 0xa7, 0x1c, 0xc5, 0xff, 0x75, 0xf4, 0xb2, 0xf1, 0x8e, 0x81, 0x7d, 0xc5, 0xff, 0xf7, 0xa4,
|
||||
0xb1, 0xcd, 0xbf, 0xcb, 0xfc, 0xf7, 0x3c, 0xa7, 0xb6, 0x36, 0x36, 0xb4, 0x1e, 0xad, 0xda, 0xb3, 0xc1, 0x52, 0x76, 0x16,
|
||||
0xff, 0xcf, 0x96, 0xe6, 0xf8, 0x96, 0xde, 0xc3, 0xd0, 0xbf, 0x5f, 0x3d, 0x8f, 0xf2, 0x3d, 0xa4, 0xbd, 0xf8, 0xdb, 0xb6,
|
||||
0xd4, 0x86, 0xb3, 0x7f, 0x0f, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xc1, 0x98, 0x3c, 0x7e,
|
||||
0x5b, 0x77, 0xf3, 0x8d, 0xbd, 0x9f, 0x3d, 0x8b, 0x5f, 0x0e, 0xd8, 0xf1, 0x37, 0xca, 0xab, 0xd7, 0xe2, 0x75, 0xb4, 0x46,
|
||||
0x57, 0x8e, 0x9c, 0xc5, 0x2f, 0x15, 0x47, 0x46, 0xd9, 0xcd, 0x69, 0x1b, 0xa7, 0x33, 0x63, 0x4a, 0xa2, 0x8e, 0x92, 0x1f,
|
||||
0xdf, 0x6d, 0x1d, 0x1f, 0x01, 0x8b, 0xa8, 0x4d, 0x6c, 0x99, 0xcf, 0xcb, 0x34, 0xc3, 0x75, 0xa8, 0xcd, 0x36, 0x63, 0x2d,
|
||||
0x6b, 0x73, 0x01, 0xce, 0x71, 0x01, 0xc4, 0x94, 0xf9, 0x9e, 0xff, 0x5b, 0x8b, 0xe6, 0xf7, 0xc9, 0xe2, 0xa6, 0x2f, 0xed,
|
||||
0xe3, 0xaa, 0x98, 0xe5, 0x3b, 0x4b, 0xa6, 0xdd, 0xab, 0x67, 0x44, 0xf3, 0x8f, 0xaf, 0xff, 0x2c, 0xdf, 0xd9, 0x39, 0xb3,
|
||||
0x78, 0xb5, 0x8c, 0xc4, 0x19, 0xf3, 0x7f, 0xbe, 0x8f, 0x67, 0x7b, 0x8e, 0xa4, 0xf1, 0xbd, 0x53, 0xd6, 0x7f, 0xbc, 0x1a,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x67, 0x07, 0x60, 0xb4, 0x37, 0xd0, 0xe2, 0x7d,
|
||||
0x89, 0xce, 0x80, 0xe7, 0xc9, 0xe2, 0x27, 0x06, 0x5f, 0xdb, 0x3e, 0xfd, 0x48, 0x3d, 0xf6, 0xf8, 0x5d, 0xef, 0xbb, 0x1c,
|
||||
0xee, 0xfb, 0x8c, 0xcf, 0xe2, 0x97, 0x4e, 0xa4, 0xff, 0x48, 0x4f, 0x59, 0x29, 0x8b, 0xdb, 0x5e, 0xda, 0x70, 0x1e, 0x37,
|
||||
0x62, 0x7c, 0xc4, 0xd9, 0x93, 0x1d, 0xaf, 0x47, 0x99, 0xe5, 0xcc, 0x1e, 0xbb, 0x30, 0xcf, 0xd5, 0xbf, 0x8f, 0xa3, 0xce,
|
||||
0x32, 0xda, 0x46, 0xea, 0x3f, 0xcf, 0xfb, 0x74, 0x06, 0xfd, 0xad, 0x35, 0x41, 0x7f, 0xf4, 0xdf, 0x8a, 0xfe, 0x72, 0x12,
|
||||
0xfd, 0xb7, 0xe1, 0xff, 0x9b, 0x97, 0x6d, 0x58, 0xcc, 0xdf, 0x50, 0xe0, 0x5d, 0xff, 0x38, 0x2b, 0xa0, 0xf6, 0x1b, 0x4a,
|
||||
0xe8, 0x7f, 0xdc, 0xdf, 0x53, 0xf9, 0xdd, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x90, 0xb9, 0x10, 0xfd, 0xd1, 0xff, 0xe4, 0xfa, 0xbf, 0x05 };
|
||||
|
||||
// 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, 0 , 0 },
|
||||
{ 153, 104, 6 , 9 },
|
||||
{ 167, 104, 0 , 0 },
|
||||
{ 175, 104, 7 , 7 },
|
||||
{ 190, 104, 8 , 8 },
|
||||
{ 206, 104, 6 , 5 },
|
||||
{ 220, 104, 8 , 8 },
|
||||
{ 236, 104, 7 , 7 },
|
||||
{ 4, 124, 8 , 8 },
|
||||
{ 20, 124, 4 , 4 },
|
||||
{ 32, 124, 8 , 8 },
|
||||
{ 48, 124, 8 , 8 },
|
||||
{ 64, 124, 8 , 8 },
|
||||
{ 80, 124, 0 , 0 },
|
||||
{ 88, 124, 6 , 7 },
|
||||
{ 102, 124, 5 , 8 },
|
||||
{ 115, 124, 3 , 3 },
|
||||
{ 126, 124, 0 , 0 },
|
||||
{ 134, 124, 8 , 8 },
|
||||
{ 150, 124, 8 , 8 },
|
||||
{ 166, 124, 6 , 5 },
|
||||
{ 180, 124, 10 , 7 },
|
||||
{ 198, 124, 10 , 5 },
|
||||
{ 216, 124, 0 , 0 },
|
||||
{ 224, 124, 6 , 7 },
|
||||
{ 238, 124, 6 , 10 },
|
||||
{ 4, 144, 6 , 10 },
|
||||
{ 18, 144, 6 , 10 },
|
||||
{ 32, 144, 6 , 10 },
|
||||
{ 46, 144, 6 , 10 },
|
||||
{ 60, 144, 6 , 10 },
|
||||
{ 74, 144, 10 , 7 },
|
||||
{ 92, 144, 6 , 9 },
|
||||
{ 106, 144, 6 , 10 },
|
||||
{ 120, 144, 6 , 10 },
|
||||
{ 134, 144, 6 , 10 },
|
||||
{ 148, 144, 6 , 10 },
|
||||
{ 162, 144, 6 , 10 },
|
||||
{ 176, 144, 6 , 10 },
|
||||
{ 190, 144, 6 , 10 },
|
||||
{ 204, 144, 6 , 10 },
|
||||
{ 218, 144, 6 , 7 },
|
||||
{ 232, 144, 6 , 10 },
|
||||
{ 4, 164, 6 , 10 },
|
||||
{ 18, 164, 6 , 10 },
|
||||
{ 32, 164, 6 , 10 },
|
||||
{ 46, 164, 6 , 10 },
|
||||
{ 60, 164, 6 , 10 },
|
||||
{ 74, 164, 6 , 5 },
|
||||
{ 88, 164, 6 , 7 },
|
||||
{ 102, 164, 6 , 10 },
|
||||
{ 116, 164, 6 , 10 },
|
||||
{ 130, 164, 6 , 10 },
|
||||
{ 144, 164, 6 , 10 },
|
||||
{ 158, 164, 6 , 10 },
|
||||
{ 172, 164, 6 , 7 },
|
||||
{ 186, 164, 6 , 7 },
|
||||
{ 200, 164, 6 , 8 },
|
||||
{ 214, 164, 6 , 8 },
|
||||
{ 228, 164, 6 , 8 },
|
||||
{ 4, 184, 6 , 8 },
|
||||
{ 18, 184, 6 , 8 },
|
||||
{ 32, 184, 6 , 8 },
|
||||
{ 46, 184, 9 , 5 },
|
||||
{ 63, 184, 6 , 7 },
|
||||
{ 77, 184, 6 , 8 },
|
||||
{ 91, 184, 6 , 8 },
|
||||
{ 105, 184, 6 , 8 },
|
||||
{ 119, 184, 6 , 8 },
|
||||
{ 133, 184, 6 , 8 },
|
||||
{ 147, 184, 6 , 8 },
|
||||
{ 161, 184, 6 , 8 },
|
||||
{ 175, 184, 6 , 8 },
|
||||
{ 189, 184, 6 , 7 },
|
||||
{ 203, 184, 6 , 8 },
|
||||
{ 217, 184, 6 , 8 },
|
||||
{ 231, 184, 6 , 8 },
|
||||
{ 4, 204, 6 , 8 },
|
||||
{ 18, 204, 6 , 8 },
|
||||
{ 32, 204, 6 , 8 },
|
||||
{ 46, 204, 5 , 5 },
|
||||
{ 59, 204, 6 , 5 },
|
||||
{ 73, 204, 6 , 8 },
|
||||
{ 87, 204, 6 , 8 },
|
||||
{ 101, 204, 6 , 8 },
|
||||
{ 115, 204, 6 , 8 },
|
||||
{ 129, 204, 6 , 10 },
|
||||
{ 143, 204, 6 , 9 },
|
||||
{ 157, 204, 6 , 10 },
|
||||
};
|
||||
|
||||
// Font glyphs info data
|
||||
// NOTE: No glyphs.image data provided
|
||||
static const GlyphInfo jungleFontGlyphs[189] = {
|
||||
{ 32, 0, 0, 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, 0, 0, { 0 }},
|
||||
{ 167, 0, 1, 7, { 0 }},
|
||||
{ 353, 0, 0, 0, { 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, 0, 0, { 0 }},
|
||||
{ 181, 0, 4, 7, { 0 }},
|
||||
{ 182, 0, 1, 4, { 0 }},
|
||||
{ 183, 0, 4, 4, { 0 }},
|
||||
{ 382, 0, 0, 0, { 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, 0, 0, { 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
|
||||
}
|
||||
@ -1,607 +0,0 @@
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// 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-2025 raylib technologies (@raylibtech) //
|
||||
// //
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#define LAVANDA_STYLE_PROPS_COUNT 16
|
||||
|
||||
// Custom style name: Lavanda
|
||||
static const GuiStyleProp lavandaStyleProps[LAVANDA_STYLE_PROPS_COUNT] = {
|
||||
{ 0, 0, (int)0xab9bd3ff }, // DEFAULT_BORDER_COLOR_NORMAL
|
||||
{ 0, 1, (int)0x3e4350ff }, // DEFAULT_BASE_COLOR_NORMAL
|
||||
{ 0, 2, (int)0xdadaf4ff }, // DEFAULT_TEXT_COLOR_NORMAL
|
||||
{ 0, 3, (int)0xee84a0ff }, // DEFAULT_BORDER_COLOR_FOCUSED
|
||||
{ 0, 4, (int)0xf4b7c7ff }, // DEFAULT_BASE_COLOR_FOCUSED
|
||||
{ 0, 5, (int)0xb7657bff }, // DEFAULT_TEXT_COLOR_FOCUSED
|
||||
{ 0, 6, (int)0xd5c8dbff }, // DEFAULT_BORDER_COLOR_PRESSED
|
||||
{ 0, 7, (int)0x966ec0ff }, // DEFAULT_BASE_COLOR_PRESSED
|
||||
{ 0, 8, (int)0xd7ccf7ff }, // DEFAULT_TEXT_COLOR_PRESSED
|
||||
{ 0, 9, (int)0x8fa2bdff }, // DEFAULT_BORDER_COLOR_DISABLED
|
||||
{ 0, 10, (int)0x6b798dff }, // DEFAULT_BASE_COLOR_DISABLED
|
||||
{ 0, 11, (int)0x8292a9ff }, // DEFAULT_TEXT_COLOR_DISABLED
|
||||
{ 0, 16, (int)0x00000010 }, // DEFAULT_TEXT_SIZE
|
||||
{ 0, 18, (int)0x84adb7ff }, // DEFAULT_LINE_COLOR
|
||||
{ 0, 19, (int)0x5b5b81ff }, // DEFAULT_BACKGROUND_COLOR
|
||||
{ 0, 20, (int)0x00000008 }, // 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, 0, 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
|
||||
}
|
||||
@ -1,572 +0,0 @@
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// StyleAsCode exporter v2.0 - Style data exported as a values array //
|
||||
// //
|
||||
// USAGE: On init call: GuiLoadStyleRLTech(); //
|
||||
// //
|
||||
// more info and bugs-report: github.com/raysan5/raygui //
|
||||
// feedback and support: ray[at]raylibtech.com //
|
||||
// //
|
||||
// Copyright (c) 2020-2025 raylib technologies (@raylibtech) //
|
||||
// //
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#define RLTECH_STYLE_PROPS_COUNT 15
|
||||
|
||||
// Custom style name: RLTech
|
||||
static const GuiStyleProp rltechStyleProps[RLTECH_STYLE_PROPS_COUNT] = {
|
||||
{ 0, 0, (int)0x000000ff }, // DEFAULT_BORDER_COLOR_NORMAL
|
||||
{ 0, 1, (int)0xf5f5f5ff }, // DEFAULT_BASE_COLOR_NORMAL
|
||||
{ 0, 2, (int)0x000000ff }, // DEFAULT_TEXT_COLOR_NORMAL
|
||||
{ 0, 3, (int)0xe10000ff }, // DEFAULT_BORDER_COLOR_FOCUSED
|
||||
{ 0, 4, (int)0xffffffff }, // DEFAULT_BASE_COLOR_FOCUSED
|
||||
{ 0, 5, (int)0xed0000ff }, // DEFAULT_TEXT_COLOR_FOCUSED
|
||||
{ 0, 6, (int)0xed0000ff }, // DEFAULT_BORDER_COLOR_PRESSED
|
||||
{ 0, 7, (int)0x0f0f0fff }, // DEFAULT_BASE_COLOR_PRESSED
|
||||
{ 0, 8, (int)0xff2323ff }, // DEFAULT_TEXT_COLOR_PRESSED
|
||||
{ 0, 9, (int)0xcacacaff }, // DEFAULT_BORDER_COLOR_DISABLED
|
||||
{ 0, 10, (int)0xe3e3e3ff }, // DEFAULT_BASE_COLOR_DISABLED
|
||||
{ 0, 11, (int)0xb3b3b3ff }, // DEFAULT_TEXT_COLOR_DISABLED
|
||||
{ 0, 16, (int)0x00000010 }, // DEFAULT_TEXT_SIZE
|
||||
{ 0, 18, (int)0x352c2cff }, // DEFAULT_LINE_COLOR
|
||||
{ 0, 20, (int)0x00000008 }, // DEFAULT_TEXT_LINE_SPACING
|
||||
};
|
||||
|
||||
// WARNING: This style uses a custom font: "2a03.ttf" (size: 16, spacing: 1)
|
||||
|
||||
#define RLTECH_STYLE_FONT_ATLAS_COMP_SIZE 1950
|
||||
|
||||
// Font atlas image pixels data: DEFLATE compressed
|
||||
static unsigned char rltechFontData[RLTECH_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed,
|
||||
0xdd, 0xcb, 0x76, 0xc3, 0x2a, 0x12, 0x05, 0x50, 0xfe, 0xff, 0xa7, 0xab, 0x07, 0x77, 0xd0, 0x8f, 0xd5, 0xb1, 0xa0, 0x28,
|
||||
0x10, 0xd8, 0x3b, 0x7b, 0x16, 0xc7, 0xb6, 0x1e, 0x1c, 0x03, 0x8a, 0x29, 0x45, 0x03, 0x00, 0x00, 0x00, 0x88, 0xf8, 0xbf,
|
||||
0xbf, 0x89, 0x3f, 0xfe, 0x32, 0xba, 0x5f, 0xe5, 0x9f, 0xdf, 0xc6, 0x87, 0x67, 0xfd, 0xfb, 0xa7, 0xef, 0xf5, 0xa2, 0xf3,
|
||||
0x5d, 0xff, 0xfe, 0xfd, 0xdf, 0x5b, 0xd2, 0xbf, 0x6d, 0x15, 0xaf, 0x30, 0xfa, 0xd7, 0x9f, 0xb7, 0xa4, 0xea, 0xd5, 0x6a,
|
||||
0x1f, 0xd9, 0x77, 0xe4, 0x9f, 0xb7, 0x6e, 0xe7, 0xb1, 0x68, 0x9b, 0x8e, 0x6c, 0x0c, 0xb4, 0xfa, 0xb5, 0xf9, 0xff, 0xbc,
|
||||
0xad, 0xf1, 0x78, 0xee, 0x67, 0xb2, 0x9e, 0x7d, 0xcf, 0x8a, 0x23, 0xd7, 0xb7, 0xbd, 0x31, 0xf9, 0xd7, 0x77, 0x3e, 0x92,
|
||||
0x3d, 0x6a, 0xe3, 0x7f, 0xdf, 0x9b, 0x87, 0xda, 0x3d, 0x6e, 0xa5, 0xcf, 0x69, 0x8b, 0xdf, 0xa7, 0x22, 0xff, 0xcf, 0x29,
|
||||
0x1f, 0xef, 0xff, 0x33, 0x79, 0xea, 0x69, 0x11, 0xa3, 0x9f, 0xc3, 0xed, 0xf5, 0xfc, 0x67, 0x1e, 0xa9, 0x6d, 0x71, 0x6d,
|
||||
0x7b, 0xfe, 0xc7, 0x47, 0x85, 0xe3, 0xc7, 0x27, 0x3e, 0xb4, 0x41, 0xf9, 0x1f, 0x7b, 0x56, 0x66, 0x5e, 0x90, 0x1b, 0xa5,
|
||||
0xcf, 0x8d, 0xdc, 0x5b, 0xf2, 0x33, 0xa7, 0x32, 0xfd, 0xf2, 0xbf, 0xab, 0xff, 0xef, 0xe9, 0x31, 0xe4, 0x7f, 0xfe, 0x1c,
|
||||
0x64, 0xe6, 0x2a, 0x4f, 0xf9, 0x1f, 0xe9, 0x91, 0x6b, 0xc6, 0xf3, 0xa7, 0xe6, 0x3f, 0x3a, 0xe6, 0x8f, 0x6b, 0xe7, 0x95,
|
||||
0xad, 0xf4, 0x6a, 0xc2, 0x8a, 0x4f, 0x80, 0x78, 0x68, 0x9b, 0xe3, 0xfd, 0x7f, 0x66, 0x2e, 0x9f, 0xc9, 0xe5, 0xe8, 0x99,
|
||||
0xfd, 0xcf, 0x6d, 0x9f, 0xbd, 0x3e, 0xb2, 0xbe, 0xff, 0xcf, 0x5d, 0x1b, 0x1c, 0xed, 0x3d, 0x76, 0xf6, 0xe7, 0x6f, 0xe4,
|
||||
0x7f, 0xa6, 0xf5, 0xd7, 0xcc, 0x4a, 0x56, 0x3c, 0x67, 0xcf, 0x99, 0x8a, 0x87, 0x36, 0x79, 0x6f, 0xff, 0x1f, 0x17, 0x8c,
|
||||
0xff, 0xdb, 0xe3, 0x88, 0x7b, 0xf4, 0x4a, 0xe6, 0x5d, 0xf9, 0x5f, 0x77, 0x75, 0xf3, 0xde, 0xfc, 0xb7, 0x63, 0xf2, 0x3f,
|
||||
0x73, 0x25, 0xfd, 0x17, 0xf2, 0x5f, 0x71, 0xf4, 0x9f, 0xae, 0xd8, 0x44, 0xc1, 0xec, 0xf1, 0x37, 0xf2, 0xbf, 0x3a, 0xb1,
|
||||
0xbb, 0x5f, 0xed, 0xbc, 0xf3, 0x22, 0xff, 0x2b, 0x12, 0x14, 0x0f, 0xa3, 0x86, 0xf9, 0xd9, 0xe3, 0x7d, 0xf9, 0x1f, 0x99,
|
||||
0x45, 0x9e, 0x33, 0x63, 0xdf, 0x3b, 0xff, 0xdf, 0x73, 0x06, 0xce, 0xfd, 0xfe, 0x44, 0xe6, 0x6a, 0xdb, 0x69, 0xfd, 0xff,
|
||||
0x09, 0xbd, 0x2c, 0x20, 0xff, 0x80, 0xfc, 0x03, 0xbf, 0xb0, 0x52, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x7e, 0xe9, 0x3b, 0xf4, 0xb9, 0xd5, 0xc9, 0x77, 0xd6, 0xa6, 0x5f, 0x51, 0x11, 0xa6, 0xba, 0xb2, 0xf6,
|
||||
0xe7, 0xad, 0x1f, 0x59, 0x01, 0xdf, 0xb7, 0x6a, 0x2a, 0x06, 0xd7, 0xa9, 0xd7, 0xae, 0x6a, 0xcf, 0x54, 0x1f, 0x68, 0xa5,
|
||||
0xeb, 0xed, 0x67, 0x56, 0x9b, 0x44, 0x2a, 0x21, 0x2b, 0xaa, 0x37, 0xee, 0xca, 0x7f, 0x4f, 0xfb, 0x6d, 0x47, 0xd4, 0xa6,
|
||||
0xcf, 0xac, 0x26, 0x7c, 0x3f, 0xff, 0xa3, 0xad, 0x70, 0xbc, 0x2e, 0x76, 0xc5, 0xea, 0xcb, 0xf6, 0x6a, 0xf5, 0xe1, 0xfc,
|
||||
0x59, 0xac, 0x5c, 0x81, 0xba, 0xb7, 0x57, 0x98, 0xdd, 0x8f, 0xbf, 0x5e, 0x73, 0xae, 0xd6, 0xe9, 0x48, 0x15, 0x6e, 0xf9,
|
||||
0x7f, 0x3b, 0xff, 0xeb, 0x47, 0x94, 0xbb, 0xea, 0xdd, 0xc4, 0xf0, 0x1d, 0x41, 0x66, 0xee, 0x57, 0x14, 0x13, 0x7f, 0x7b,
|
||||
0x76, 0xfe, 0xb3, 0x6d, 0x2a, 0x1e, 0x3f, 0x55, 0xe4, 0xbf, 0x3d, 0xdc, 0x39, 0xa1, 0x0d, 0x56, 0x4e, 0xce, 0x56, 0x59,
|
||||
0xae, 0xcf, 0x7d, 0x65, 0x85, 0xaa, 0x48, 0x8e, 0xff, 0xab, 0xcf, 0x62, 0x55, 0x4f, 0x79, 0x53, 0xfe, 0xf3, 0x77, 0xd1,
|
||||
0xdb, 0x37, 0xe7, 0x7d, 0x7a, 0xce, 0xe8, 0x5c, 0x73, 0x6f, 0xfe, 0x2b, 0xef, 0x75, 0x73, 0x4e, 0xfe, 0x57, 0xce, 0x28,
|
||||
0xfb, 0xb6, 0x7f, 0x7f, 0xfe, 0xe3, 0x2b, 0xc7, 0xff, 0x71, 0x48, 0xfe, 0x2b, 0xdb, 0x5a, 0x4b, 0xe5, 0x71, 0x6f, 0xff,
|
||||
0xdf, 0x5e, 0xfc, 0xbd, 0xfc, 0x8f, 0xe7, 0x3f, 0xcc, 0xff, 0x5f, 0xcb, 0x7f, 0x5c, 0x9b, 0xff, 0x98, 0xd8, 0x92, 0xf9,
|
||||
0x47, 0xce, 0x1a, 0xff, 0x57, 0x3e, 0x27, 0x73, 0x47, 0xe0, 0x3b, 0xfa, 0xff, 0x6f, 0xb8, 0xfe, 0x5f, 0xff, 0x7e, 0x99,
|
||||
0x19, 0x74, 0x55, 0xfe, 0xfb, 0xe7, 0xf0, 0xbf, 0x92, 0xff, 0xcc, 0xc8, 0xa0, 0xf6, 0x39, 0xe3, 0xd7, 0x78, 0xf6, 0xcd,
|
||||
0xff, 0x77, 0x5d, 0x6b, 0x3d, 0xe3, 0xd3, 0x3a, 0x16, 0x5d, 0x83, 0xfd, 0xdf, 0x2b, 0xbd, 0x55, 0xfd, 0x46, 0xed, 0x7c,
|
||||
0x3c, 0xff, 0x5d, 0x88, 0x99, 0x3e, 0xec, 0xe4, 0xfc, 0x8f, 0xf7, 0x52, 0xb9, 0x9e, 0xed, 0x8d, 0xfc, 0xbf, 0x59, 0x87,
|
||||
0x52, 0xbd, 0x4b, 0x42, 0x9b, 0x59, 0xf2, 0x59, 0x72, 0xc3, 0x71, 0x93, 0x7f, 0xe4, 0x5f, 0xd6, 0xd0, 0x2e, 0xb5, 0x63,
|
||||
0xf9, 0xe7, 0x17, 0xdb, 0x65, 0xff, 0xc8, 0xf6, 0x84, 0x7b, 0xf3, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x50, 0xb5, 0xfe, 0x3f, 0x53, 0x6d, 0xe4, 0xf4, 0xfa, 0xb9, 0xa3, 0x2b, 0xf9, 0xfb, 0xd7, 0x74, 0x47, 0x41,
|
||||
0x55, 0xde, 0xe7, 0xaa, 0x85, 0x23, 0x35, 0x04, 0x62, 0xb8, 0x42, 0x7f, 0xcf, 0x73, 0x3e, 0xb7, 0x89, 0xbf, 0xf7, 0x36,
|
||||
0xd7, 0xc2, 0x9e, 0x1f, 0xef, 0x5f, 0xdb, 0x10, 0x43, 0xc7, 0x3c, 0x73, 0x8c, 0x3e, 0x9d, 0x8b, 0xb1, 0x7b, 0x28, 0xfc,
|
||||
0xfd, 0x2a, 0x63, 0x2d, 0x23, 0x3a, 0x57, 0x33, 0x55, 0x55, 0x6b, 0xbf, 0xb7, 0x7e, 0xf6, 0xfc, 0xef, 0x62, 0x7a, 0x15,
|
||||
0xfa, 0xf8, 0x31, 0xaf, 0xad, 0x21, 0xd4, 0xfb, 0x9c, 0xf1, 0xba, 0xc4, 0x63, 0x6d, 0x26, 0x26, 0x56, 0xdc, 0x45, 0x6a,
|
||||
0xbf, 0x63, 0xe2, 0x68, 0xf4, 0xf6, 0x3a, 0x23, 0x7b, 0x32, 0x5a, 0x51, 0x30, 0x77, 0xe4, 0xab, 0xf3, 0x9f, 0xa9, 0xbc,
|
||||
0x9e, 0xcf, 0x7f, 0x6d, 0xfd, 0xec, 0xb9, 0xfc, 0x8f, 0xb5, 0xed, 0x7c, 0x65, 0xe5, 0xf1, 0x4f, 0xba, 0x36, 0x38, 0x06,
|
||||
0xfa, 0x94, 0xaa, 0x4f, 0xf5, 0x96, 0xf2, 0xbd, 0x50, 0x0c, 0xbf, 0xdb, 0xf8, 0xda, 0xc6, 0x48, 0xf5, 0xf3, 0x51, 0x54,
|
||||
0xab, 0x2c, 0xb7, 0x27, 0xb3, 0xf9, 0x1f, 0xf9, 0xec, 0xad, 0xba, 0x5b, 0xd3, 0x29, 0xf5, 0xb3, 0x73, 0xa3, 0xef, 0x53,
|
||||
0xf3, 0xbf, 0xef, 0x6e, 0x66, 0x9f, 0x9e, 0x13, 0xcb, 0x7a, 0xa1, 0xbf, 0xdf, 0x2d, 0x0a, 0x57, 0xdc, 0xd7, 0x8c, 0x86,
|
||||
0x66, 0xee, 0x48, 0xb2, 0x62, 0x84, 0xb8, 0xbf, 0xff, 0x1f, 0xcf, 0xc6, 0x49, 0xfd, 0xff, 0x9a, 0x39, 0x41, 0x45, 0xfe,
|
||||
0x73, 0x33, 0x83, 0xf9, 0x2a, 0xed, 0xbd, 0xcf, 0x89, 0x8e, 0x54, 0xb4, 0x92, 0x4f, 0x80, 0xf8, 0xaf, 0xde, 0x77, 0x75,
|
||||
0xfe, 0xc7, 0xaf, 0x68, 0xe4, 0xae, 0x3a, 0x55, 0x54, 0x31, 0x3d, 0x61, 0xfe, 0x5f, 0x99, 0xff, 0x35, 0xf5, 0x73, 0xeb,
|
||||
0xaa, 0xc6, 0xaf, 0xc8, 0xff, 0x78, 0xca, 0x67, 0x7a, 0xf9, 0x3d, 0xf9, 0xaf, 0xbe, 0x2a, 0xbd, 0xa2, 0xff, 0xaf, 0xdf,
|
||||
0xc6, 0xb1, 0xeb, 0x7f, 0xb3, 0x2d, 0x67, 0xf7, 0xf5, 0xff, 0xca, 0xf1, 0xff, 0xde, 0xfa, 0xb9, 0x75, 0x79, 0x99, 0xad,
|
||||
0x9d, 0x5b, 0x73, 0xaf, 0x9e, 0xea, 0xfe, 0x3f, 0x77, 0x74, 0x32, 0xf3, 0xff, 0x53, 0xf2, 0x1f, 0x0b, 0xb6, 0x70, 0xbc,
|
||||
0x95, 0xc7, 0x82, 0xf4, 0xd7, 0xec, 0xd7, 0xda, 0x31, 0xd6, 0x39, 0x9f, 0xd1, 0xed, 0xf5, 0xfe, 0x3f, 0xf7, 0xd7, 0x95,
|
||||
0x23, 0x83, 0xcc, 0xbb, 0xc5, 0xd6, 0xb3, 0x1c, 0x07, 0xb7, 0xa9, 0x99, 0x2b, 0x09, 0x71, 0x6c, 0x8a, 0xa2, 0x74, 0x3c,
|
||||
0x21, 0xff, 0xad, 0xf8, 0xba, 0xfc, 0xf8, 0xf8, 0xa9, 0x25, 0xbf, 0x03, 0xd1, 0xba, 0xee, 0x5b, 0xbf, 0x6b, 0x54, 0x7a,
|
||||
0x62, 0xa5, 0xc2, 0xdc, 0x1d, 0xd5, 0x46, 0xae, 0xff, 0x9d, 0x9e, 0x94, 0x7b, 0xbf, 0xd5, 0xb4, 0x3b, 0xff, 0x77, 0x7d,
|
||||
0x06, 0x9e, 0x9a, 0xb8, 0x3b, 0x8e, 0x67, 0xbc, 0xda, 0x7a, 0x59, 0x33, 0xa7, 0xfb, 0xa5, 0xfc, 0xe3, 0x78, 0x3a, 0xb3,
|
||||
0xdf, 0x91, 0x7f, 0xbd, 0x88, 0xe3, 0x4a, 0xd5, 0xff, 0x74, 0x7c, 0xfe, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x70, 0xc6, 0x6a, 0x86, 0xde, 0x5a, 0xec, 0xa3, 0xd5, 0xaf, 0xf3, 0xab, 0xa5, 0xc7, 0x7e, 0x1f, 0xc3,
|
||||
0x95, 0xb9, 0x9f, 0xd6, 0xda, 0x57, 0xde, 0x01, 0x21, 0xbf, 0x5f, 0x99, 0x3a, 0x6b, 0x3d, 0xbf, 0x1b, 0xaf, 0x32, 0x10,
|
||||
0xa9, 0xf5, 0x50, 0xeb, 0xcf, 0x64, 0xee, 0x6e, 0x0f, 0x7b, 0xce, 0x53, 0x66, 0x15, 0x59, 0xfd, 0x56, 0x3f, 0x3f, 0xa3,
|
||||
0xbf, 0x5a, 0x5c, 0xbc, 0xb8, 0x92, 0xfa, 0x73, 0xcb, 0x88, 0xc4, 0xfb, 0xc7, 0xd4, 0x31, 0x59, 0xbd, 0x5f, 0xb3, 0x6b,
|
||||
0x95, 0xb2, 0x55, 0xa7, 0x62, 0xf0, 0x08, 0xdf, 0x79, 0x26, 0xf7, 0x9c, 0xa7, 0x7c, 0x0d, 0xb9, 0xd8, 0x50, 0x7f, 0xa0,
|
||||
0x22, 0xff, 0x31, 0xb9, 0x9f, 0xef, 0xac, 0xd6, 0x8c, 0xd4, 0x3d, 0x75, 0xf6, 0xee, 0xd3, 0xba, 0xb5, 0xa6, 0x91, 0x6c,
|
||||
0x0d, 0xa7, 0xae, 0xbb, 0x7d, 0x77, 0x7f, 0x6a, 0xef, 0xc2, 0xb0, 0xf3, 0x2c, 0x8c, 0xe4, 0x3f, 0xb7, 0xbd, 0x51, 0x98,
|
||||
0xcb, 0xda, 0x5a, 0xf7, 0xb9, 0xcf, 0xb3, 0xb6, 0xa0, 0xb6, 0xe6, 0x78, 0x0d, 0xd6, 0xb6, 0xa4, 0x82, 0x69, 0xed, 0x1d,
|
||||
0xd5, 0x76, 0x9d, 0xc9, 0xa7, 0xfe, 0x7f, 0x7d, 0xbb, 0xd8, 0xf7, 0x48, 0xbe, 0xda, 0x63, 0x5f, 0xba, 0x2b, 0x46, 0x08,
|
||||
0xcf, 0x33, 0xec, 0x5b, 0x8e, 0x72, 0xdd, 0x7d, 0xba, 0xaa, 0x1f, 0x59, 0x91, 0xff, 0xa7, 0xfa, 0xbe, 0x37, 0xe6, 0xe5,
|
||||
0xe9, 0xbe, 0x8c, 0xe7, 0x6e, 0x75, 0x94, 0xb7, 0x98, 0x56, 0x9c, 0xee, 0xfe, 0x7d, 0xbc, 0x2d, 0xff, 0xa7, 0xa4, 0xfc,
|
||||
0xac, 0xfe, 0xff, 0xd4, 0x24, 0x7d, 0x1e, 0x63, 0xdf, 0xf9, 0xa9, 0xb5, 0xa2, 0xc5, 0x64, 0xd3, 0x9d, 0xbf, 0x1a, 0x7e,
|
||||
0x42, 0xfe, 0xf7, 0xce, 0xff, 0xab, 0x1f, 0x99, 0xbb, 0x57, 0x71, 0xf5, 0xf8, 0xff, 0xcc, 0x91, 0x74, 0xbb, 0xb4, 0x97,
|
||||
0xd9, 0x73, 0x5f, 0x8b, 0xfa, 0x2b, 0x17, 0x35, 0xed, 0xe9, 0xbb, 0xe7, 0xff, 0x55, 0x8f, 0xdc, 0x30, 0xff, 0x97, 0xff,
|
||||
0x99, 0x94, 0xb7, 0xd7, 0x8e, 0x4e, 0xef, 0x7f, 0xf7, 0x67, 0xf2, 0xbf, 0x27, 0x97, 0xab, 0x1e, 0x59, 0x31, 0xe2, 0x39,
|
||||
0x7b, 0xfc, 0x7f, 0xe3, 0xf9, 0xaa, 0xbd, 0xc6, 0x5e, 0xbf, 0x6d, 0x99, 0xff, 0xe3, 0xd5, 0x6d, 0xf5, 0xae, 0xff, 0xce,
|
||||
0x54, 0x8d, 0x3b, 0x4e, 0x6e, 0x4f, 0x6b, 0xfe, 0x3b, 0x7b, 0x4e, 0xfe, 0xbf, 0xf9, 0x7c, 0x9d, 0x96, 0xff, 0xb6, 0xe9,
|
||||
0xbf, 0x4b, 0xf2, 0xbf, 0xa2, 0x3d, 0xc5, 0xd6, 0xf9, 0x7f, 0xc8, 0x7f, 0x71, 0x0b, 0xdf, 0xb9, 0x6d, 0xb1, 0x38, 0x4b,
|
||||
0x77, 0x7e, 0xef, 0xf8, 0xdc, 0xbe, 0x61, 0xff, 0xf7, 0x8d, 0x6a, 0xee, 0x56, 0xb4, 0xf2, 0xfb, 0x57, 0xef, 0x5f, 0xc9,
|
||||
0xb9, 0xf5, 0x3c, 0xa9, 0x18, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xac, 0x5b, 0xbb,
|
||||
0xa7, 0xa6, 0x7e, 0x2b, 0xaa, 0xa9, 0x3f, 0xfe, 0x48, 0xed, 0xfe, 0x46, 0xa2, 0x3a, 0x78, 0x14, 0xac, 0x48, 0x5c, 0x71,
|
||||
0x96, 0xc6, 0xce, 0x4a, 0xdf, 0xab, 0xfd, 0x7a, 0xfa, 0xd7, 0x57, 0x62, 0xef, 0x5f, 0xc3, 0x57, 0xb5, 0x7a, 0xf6, 0x94,
|
||||
0x9a, 0xfa, 0x2d, 0x75, 0x7c, 0xdf, 0xae, 0xa8, 0x3f, 0x7e, 0xfe, 0xda, 0x05, 0x15, 0xf5, 0x79, 0x6b, 0xed, 0xe4, 0x6c,
|
||||
0xfe, 0x77, 0x6c, 0xfd, 0xba, 0x71, 0xd4, 0x6d, 0x15, 0xf5, 0x9f, 0xea, 0xe6, 0xc4, 0xa1, 0x15, 0xf5, 0x2b, 0x5f, 0x4d,
|
||||
0x96, 0xa3, 0xb0, 0x0a, 0x71, 0xcf, 0xf8, 0x7f, 0xcf, 0x5a, 0xed, 0x18, 0x1a, 0x41, 0x56, 0xd5, 0xd4, 0x78, 0xb3, 0x02,
|
||||
0x62, 0xe5, 0x7d, 0x26, 0xce, 0xae, 0xa8, 0x7d, 0xc2, 0x1d, 0x35, 0xbe, 0xeb, 0x1a, 0x40, 0x2b, 0xcb, 0xff, 0xfc, 0xab,
|
||||
0xad, 0xaf, 0x15, 0xb2, 0xae, 0xa6, 0xfe, 0x7d, 0x15, 0xf5, 0x3e, 0xdd, 0x05, 0xf0, 0xfb, 0x2a, 0x6a, 0xcb, 0xff, 0xea,
|
||||
0x9e, 0xeb, 0x9c, 0xfc, 0xef, 0xac, 0xa9, 0xa5, 0xa2, 0xae, 0xfc, 0x7f, 0xdb, 0xf8, 0xbf, 0xe2, 0x9e, 0x3a, 0xef, 0x8f,
|
||||
0x7a, 0x9b, 0xfc, 0xa7, 0xf2, 0x7f, 0x77, 0x45, 0x67, 0x89, 0x3f, 0xf9, 0x38, 0x7f, 0x5f, 0x4d, 0xdd, 0xdf, 0x49, 0x85,
|
||||
0xfc, 0xff, 0x4e, 0xfe, 0xd7, 0x54, 0x6f, 0xfc, 0xc6, 0x9a, 0xba, 0x67, 0xf7, 0x97, 0x37, 0x56, 0xd4, 0x7d, 0x7f, 0x4f,
|
||||
0x5d, 0xff, 0xbf, 0x61, 0x8e, 0x72, 0x7a, 0x4d, 0x5d, 0x15, 0x75, 0x73, 0xdb, 0xb6, 0xe6, 0x3f, 0x56, 0xc0, 0xdd, 0x57,
|
||||
0xac, 0x63, 0xe2, 0x2a, 0x37, 0xf0, 0xad, 0xf9, 0x37, 0xfe, 0x87, 0xef, 0x9f, 0xb1, 0x3a, 0x3a, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x37, 0xf8, 0xe7, 0xc7,
|
||||
0x71, 0x00, 0xf9, 0x07, 0x7e, 0x2e, 0xff, 0xff, 0x02 };
|
||||
|
||||
// Font glyphs rectangles data (on atlas)
|
||||
static const Rectangle rltechFontRecs[189] = {
|
||||
{ 4, 4, 5 , 16 },
|
||||
{ 17, 4, 1 , 9 },
|
||||
{ 26, 4, 3 , 3 },
|
||||
{ 37, 4, 5 , 7 },
|
||||
{ 50, 4, 5 , 9 },
|
||||
{ 63, 4, 7 , 9 },
|
||||
{ 78, 4, 6 , 9 },
|
||||
{ 92, 4, 1 , 3 },
|
||||
{ 101, 4, 2 , 13 },
|
||||
{ 111, 4, 2 , 13 },
|
||||
{ 121, 4, 5 , 5 },
|
||||
{ 134, 4, 5 , 5 },
|
||||
{ 147, 4, 1 , 2 },
|
||||
{ 156, 4, 5 , 1 },
|
||||
{ 169, 4, 1 , 1 },
|
||||
{ 178, 4, 3 , 9 },
|
||||
{ 189, 4, 5 , 9 },
|
||||
{ 202, 4, 2 , 9 },
|
||||
{ 212, 4, 5 , 9 },
|
||||
{ 225, 4, 5 , 9 },
|
||||
{ 238, 4, 5 , 9 },
|
||||
{ 251, 4, 5 , 9 },
|
||||
{ 264, 4, 5 , 9 },
|
||||
{ 277, 4, 5 , 9 },
|
||||
{ 290, 4, 5 , 9 },
|
||||
{ 303, 4, 5 , 9 },
|
||||
{ 316, 4, 1 , 6 },
|
||||
{ 325, 4, 1 , 7 },
|
||||
{ 334, 4, 3 , 5 },
|
||||
{ 345, 4, 5 , 3 },
|
||||
{ 358, 4, 3 , 5 },
|
||||
{ 369, 4, 5 , 9 },
|
||||
{ 382, 4, 8 , 9 },
|
||||
{ 398, 4, 5 , 9 },
|
||||
{ 411, 4, 5 , 9 },
|
||||
{ 424, 4, 5 , 9 },
|
||||
{ 437, 4, 5 , 9 },
|
||||
{ 450, 4, 5 , 9 },
|
||||
{ 463, 4, 5 , 9 },
|
||||
{ 476, 4, 5 , 9 },
|
||||
{ 489, 4, 5 , 9 },
|
||||
{ 502, 4, 1 , 9 },
|
||||
{ 4, 28, 5 , 9 },
|
||||
{ 17, 28, 5 , 9 },
|
||||
{ 30, 28, 5 , 9 },
|
||||
{ 43, 28, 9 , 9 },
|
||||
{ 60, 28, 5 , 9 },
|
||||
{ 73, 28, 5 , 9 },
|
||||
{ 86, 28, 5 , 9 },
|
||||
{ 99, 28, 5 , 9 },
|
||||
{ 112, 28, 5 , 9 },
|
||||
{ 125, 28, 5 , 9 },
|
||||
{ 138, 28, 5 , 9 },
|
||||
{ 151, 28, 5 , 9 },
|
||||
{ 164, 28, 5 , 9 },
|
||||
{ 177, 28, 9 , 9 },
|
||||
{ 194, 28, 5 , 9 },
|
||||
{ 207, 28, 5 , 9 },
|
||||
{ 220, 28, 5 , 9 },
|
||||
{ 233, 28, 3 , 13 },
|
||||
{ 244, 28, 3 , 9 },
|
||||
{ 255, 28, 3 , 13 },
|
||||
{ 266, 28, 3 , 2 },
|
||||
{ 277, 28, 6 , 1 },
|
||||
{ 291, 28, 2 , 2 },
|
||||
{ 301, 28, 5 , 7 },
|
||||
{ 314, 28, 5 , 9 },
|
||||
{ 327, 28, 5 , 7 },
|
||||
{ 340, 28, 5 , 9 },
|
||||
{ 353, 28, 5 , 7 },
|
||||
{ 366, 28, 4 , 9 },
|
||||
{ 378, 28, 5 , 10 },
|
||||
{ 391, 28, 5 , 9 },
|
||||
{ 404, 28, 1 , 9 },
|
||||
{ 413, 28, 1 , 12 },
|
||||
{ 422, 28, 5 , 9 },
|
||||
{ 435, 28, 1 , 9 },
|
||||
{ 444, 28, 9 , 7 },
|
||||
{ 461, 28, 5 , 7 },
|
||||
{ 474, 28, 5 , 7 },
|
||||
{ 487, 28, 5 , 10 },
|
||||
{ 4, 52, 5 , 10 },
|
||||
{ 17, 52, 5 , 7 },
|
||||
{ 30, 52, 5 , 7 },
|
||||
{ 43, 52, 4 , 9 },
|
||||
{ 55, 52, 5 , 7 },
|
||||
{ 68, 52, 5 , 7 },
|
||||
{ 81, 52, 9 , 7 },
|
||||
{ 98, 52, 5 , 7 },
|
||||
{ 111, 52, 5 , 10 },
|
||||
{ 124, 52, 5 , 7 },
|
||||
{ 137, 52, 3 , 13 },
|
||||
{ 148, 52, 1 , 13 },
|
||||
{ 157, 52, 3 , 13 },
|
||||
{ 168, 52, 4 , 2 },
|
||||
{ 180, 52, 1 , 9 },
|
||||
{ 189, 52, 5 , 7 },
|
||||
{ 202, 52, 5 , 9 },
|
||||
{ 215, 52, 5 , 9 },
|
||||
{ 228, 52, 5 , 9 },
|
||||
{ 241, 52, 5 , 12 },
|
||||
{ 254, 52, 5 , 9 },
|
||||
{ 267, 52, 5 , 10 },
|
||||
{ 280, 52, 8 , 9 },
|
||||
{ 296, 52, 4 , 7 },
|
||||
{ 308, 52, 6 , 5 },
|
||||
{ 322, 52, 5 , 3 },
|
||||
{ 335, 52, 8 , 9 },
|
||||
{ 351, 52, 6 , 1 },
|
||||
{ 365, 52, 3 , 3 },
|
||||
{ 376, 52, 5 , 7 },
|
||||
{ 389, 52, 4 , 5 },
|
||||
{ 401, 52, 4 , 5 },
|
||||
{ 413, 52, 5 , 12 },
|
||||
{ 426, 52, 5 , 10 },
|
||||
{ 439, 52, 6 , 9 },
|
||||
{ 453, 52, 1 , 1 },
|
||||
{ 462, 52, 5 , 10 },
|
||||
{ 475, 52, 2 , 5 },
|
||||
{ 485, 52, 4 , 7 },
|
||||
{ 497, 52, 6 , 5 },
|
||||
{ 4, 76, 9 , 9 },
|
||||
{ 21, 76, 9 , 7 },
|
||||
{ 38, 76, 5 , 11 },
|
||||
{ 51, 76, 5 , 9 },
|
||||
{ 64, 76, 5 , 12 },
|
||||
{ 77, 76, 5 , 12 },
|
||||
{ 90, 76, 5 , 12 },
|
||||
{ 103, 76, 5 , 12 },
|
||||
{ 116, 76, 5 , 11 },
|
||||
{ 129, 76, 5 , 11 },
|
||||
{ 142, 76, 9 , 9 },
|
||||
{ 159, 76, 5 , 11 },
|
||||
{ 172, 76, 5 , 12 },
|
||||
{ 185, 76, 5 , 12 },
|
||||
{ 198, 76, 5 , 12 },
|
||||
{ 211, 76, 5 , 11 },
|
||||
{ 224, 76, 2 , 12 },
|
||||
{ 234, 76, 2 , 12 },
|
||||
{ 244, 76, 3 , 12 },
|
||||
{ 255, 76, 3 , 11 },
|
||||
{ 266, 76, 6 , 9 },
|
||||
{ 280, 76, 5 , 12 },
|
||||
{ 293, 76, 5 , 12 },
|
||||
{ 306, 76, 5 , 12 },
|
||||
{ 319, 76, 5 , 12 },
|
||||
{ 332, 76, 5 , 12 },
|
||||
{ 345, 76, 5 , 11 },
|
||||
{ 358, 76, 5 , 5 },
|
||||
{ 371, 76, 5 , 9 },
|
||||
{ 384, 76, 5 , 12 },
|
||||
{ 397, 76, 5 , 12 },
|
||||
{ 410, 76, 5 , 12 },
|
||||
{ 423, 76, 5 , 11 },
|
||||
{ 436, 76, 5 , 12 },
|
||||
{ 449, 76, 5 , 9 },
|
||||
{ 462, 76, 5 , 11 },
|
||||
{ 475, 76, 5 , 10 },
|
||||
{ 488, 76, 5 , 10 },
|
||||
{ 4, 100, 5 , 10 },
|
||||
{ 17, 100, 5 , 10 },
|
||||
{ 30, 100, 5 , 9 },
|
||||
{ 43, 100, 5 , 9 },
|
||||
{ 56, 100, 9 , 7 },
|
||||
{ 73, 100, 5 , 9 },
|
||||
{ 86, 100, 5 , 10 },
|
||||
{ 99, 100, 5 , 10 },
|
||||
{ 112, 100, 5 , 10 },
|
||||
{ 125, 100, 5 , 9 },
|
||||
{ 138, 100, 2 , 10 },
|
||||
{ 148, 100, 2 , 10 },
|
||||
{ 158, 100, 3 , 10 },
|
||||
{ 169, 100, 3 , 9 },
|
||||
{ 180, 100, 5 , 9 },
|
||||
{ 193, 100, 5 , 10 },
|
||||
{ 206, 100, 5 , 10 },
|
||||
{ 219, 100, 5 , 10 },
|
||||
{ 232, 100, 5 , 10 },
|
||||
{ 245, 100, 5 , 10 },
|
||||
{ 258, 100, 5 , 9 },
|
||||
{ 271, 100, 5 , 5 },
|
||||
{ 284, 100, 5 , 7 },
|
||||
{ 297, 100, 5 , 10 },
|
||||
{ 310, 100, 5 , 10 },
|
||||
{ 323, 100, 5 , 10 },
|
||||
{ 336, 100, 5 , 9 },
|
||||
{ 349, 100, 5 , 13 },
|
||||
{ 362, 100, 5 , 13 },
|
||||
{ 375, 100, 5 , 12 },
|
||||
};
|
||||
|
||||
// Font glyphs info data
|
||||
// NOTE: No glyphs.image data provided
|
||||
static const GlyphInfo rltechFontGlyphs[189] = {
|
||||
{ 32, 0, 0, 5, { 0 }},
|
||||
{ 33, 0, 3, 2, { 0 }},
|
||||
{ 34, 0, 3, 4, { 0 }},
|
||||
{ 35, 0, 3, 6, { 0 }},
|
||||
{ 36, 0, 3, 6, { 0 }},
|
||||
{ 37, 0, 3, 8, { 0 }},
|
||||
{ 38, 0, 3, 7, { 0 }},
|
||||
{ 39, 0, 3, 2, { 0 }},
|
||||
{ 40, 0, 1, 2, { 0 }},
|
||||
{ 41, -1, 1, 2, { 0 }},
|
||||
{ 42, 0, 3, 6, { 0 }},
|
||||
{ 43, 0, 5, 6, { 0 }},
|
||||
{ 44, 0, 10, 2, { 0 }},
|
||||
{ 45, 0, 8, 6, { 0 }},
|
||||
{ 46, 0, 11, 2, { 0 }},
|
||||
{ 47, 0, 3, 4, { 0 }},
|
||||
{ 48, 0, 3, 6, { 0 }},
|
||||
{ 49, 0, 3, 3, { 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, 4, 2, { 0 }},
|
||||
{ 59, 0, 4, 2, { 0 }},
|
||||
{ 60, 0, 5, 4, { 0 }},
|
||||
{ 61, 0, 6, 6, { 0 }},
|
||||
{ 62, 0, 5, 4, { 0 }},
|
||||
{ 63, 0, 3, 6, { 0 }},
|
||||
{ 64, 0, 3, 9, { 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, 2, { 0 }},
|
||||
{ 74, 0, 3, 6, { 0 }},
|
||||
{ 75, 0, 3, 6, { 0 }},
|
||||
{ 76, 0, 3, 6, { 0 }},
|
||||
{ 77, 0, 3, 10, { 0 }},
|
||||
{ 78, 0, 3, 6, { 0 }},
|
||||
{ 79, 0, 3, 6, { 0 }},
|
||||
{ 80, 0, 3, 6, { 0 }},
|
||||
{ 81, 0, 3, 6, { 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, 10, { 0 }},
|
||||
{ 88, 0, 3, 6, { 0 }},
|
||||
{ 89, 0, 3, 6, { 0 }},
|
||||
{ 90, 0, 3, 6, { 0 }},
|
||||
{ 91, 0, 1, 2, { 0 }},
|
||||
{ 92, 0, 3, 4, { 0 }},
|
||||
{ 93, -2, 1, 2, { 0 }},
|
||||
{ 94, 0, 3, 4, { 0 }},
|
||||
{ 95, 0, 12, 7, { 0 }},
|
||||
{ 96, 0, 3, 3, { 0 }},
|
||||
{ 97, 0, 5, 6, { 0 }},
|
||||
{ 98, 0, 3, 6, { 0 }},
|
||||
{ 99, 0, 5, 6, { 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, 2, { 0 }},
|
||||
{ 106, 0, 3, 2, { 0 }},
|
||||
{ 107, 0, 3, 6, { 0 }},
|
||||
{ 108, 0, 3, 2, { 0 }},
|
||||
{ 109, 0, 5, 10, { 0 }},
|
||||
{ 110, 0, 5, 6, { 0 }},
|
||||
{ 111, 0, 5, 6, { 0 }},
|
||||
{ 112, 0, 5, 6, { 0 }},
|
||||
{ 113, 0, 5, 6, { 0 }},
|
||||
{ 114, 0, 5, 6, { 0 }},
|
||||
{ 115, 0, 5, 6, { 0 }},
|
||||
{ 116, 0, 3, 5, { 0 }},
|
||||
{ 117, 0, 5, 6, { 0 }},
|
||||
{ 118, 0, 5, 6, { 0 }},
|
||||
{ 119, 0, 5, 10, { 0 }},
|
||||
{ 120, 0, 5, 6, { 0 }},
|
||||
{ 121, 0, 5, 6, { 0 }},
|
||||
{ 122, 0, 5, 6, { 0 }},
|
||||
{ 123, 0, 1, 3, { 0 }},
|
||||
{ 124, 0, 1, 2, { 0 }},
|
||||
{ 125, -1, 1, 3, { 0 }},
|
||||
{ 126, 0, 3, 5, { 0 }},
|
||||
{ 161, 0, 6, 2, { 0 }},
|
||||
{ 162, 0, 4, 6, { 0 }},
|
||||
{ 163, 0, 3, 6, { 0 }},
|
||||
{ 8364, 0, 3, 6, { 0 }},
|
||||
{ 165, 0, 3, 6, { 0 }},
|
||||
{ 352, 0, 0, 6, { 0 }},
|
||||
{ 167, 0, 3, 6, { 0 }},
|
||||
{ 353, 0, 2, 6, { 0 }},
|
||||
{ 169, 0, 3, 9, { 0 }},
|
||||
{ 170, 0, 3, 5, { 0 }},
|
||||
{ 171, 0, 5, 7, { 0 }},
|
||||
{ 172, 0, 6, 6, { 0 }},
|
||||
{ 174, 0, 3, 9, { 0 }},
|
||||
{ 175, 0, 2, 7, { 0 }},
|
||||
{ 176, 0, 3, 4, { 0 }},
|
||||
{ 177, 0, 4, 6, { 0 }},
|
||||
{ 178, 0, 3, 5, { 0 }},
|
||||
{ 179, 0, 3, 5, { 0 }},
|
||||
{ 381, 0, 0, 6, { 0 }},
|
||||
{ 181, 0, 5, 6, { 0 }},
|
||||
{ 182, 0, 3, 7, { 0 }},
|
||||
{ 183, 0, 7, 2, { 0 }},
|
||||
{ 382, 0, 2, 6, { 0 }},
|
||||
{ 185, 0, 3, 3, { 0 }},
|
||||
{ 186, 0, 3, 5, { 0 }},
|
||||
{ 187, 0, 5, 7, { 0 }},
|
||||
{ 338, 0, 3, 10, { 0 }},
|
||||
{ 339, 0, 5, 10, { 0 }},
|
||||
{ 376, 0, 1, 6, { 0 }},
|
||||
{ 191, 0, 6, 6, { 0 }},
|
||||
{ 192, 0, 0, 6, { 0 }},
|
||||
{ 193, 0, 0, 6, { 0 }},
|
||||
{ 194, 0, 0, 6, { 0 }},
|
||||
{ 195, 0, 0, 6, { 0 }},
|
||||
{ 196, 0, 1, 6, { 0 }},
|
||||
{ 197, 0, 1, 6, { 0 }},
|
||||
{ 198, 0, 3, 10, { 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, 2, { 0 }},
|
||||
{ 206, -1, 0, 2, { 0 }},
|
||||
{ 207, -1, 1, 2, { 0 }},
|
||||
{ 208, -1, 3, 6, { 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, 1, 6, { 0 }},
|
||||
{ 215, 0, 5, 6, { 0 }},
|
||||
{ 216, 0, 3, 6, { 0 }},
|
||||
{ 217, 0, 0, 6, { 0 }},
|
||||
{ 218, 0, 0, 6, { 0 }},
|
||||
{ 219, 0, 0, 6, { 0 }},
|
||||
{ 220, 0, 1, 6, { 0 }},
|
||||
{ 221, 0, 0, 6, { 0 }},
|
||||
{ 222, 0, 3, 6, { 0 }},
|
||||
{ 223, 0, 3, 6, { 0 }},
|
||||
{ 224, 0, 2, 6, { 0 }},
|
||||
{ 225, 0, 2, 6, { 0 }},
|
||||
{ 226, 0, 2, 6, { 0 }},
|
||||
{ 227, 0, 2, 6, { 0 }},
|
||||
{ 228, 0, 3, 6, { 0 }},
|
||||
{ 229, 0, 3, 6, { 0 }},
|
||||
{ 230, 0, 5, 10, { 0 }},
|
||||
{ 231, 0, 5, 6, { 0 }},
|
||||
{ 232, 0, 2, 6, { 0 }},
|
||||
{ 233, 0, 2, 6, { 0 }},
|
||||
{ 234, 0, 2, 6, { 0 }},
|
||||
{ 235, 0, 3, 6, { 0 }},
|
||||
{ 236, -1, 2, 2, { 0 }},
|
||||
{ 237, 0, 2, 2, { 0 }},
|
||||
{ 238, -1, 2, 2, { 0 }},
|
||||
{ 239, -1, 3, 2, { 0 }},
|
||||
{ 240, 0, 3, 6, { 0 }},
|
||||
{ 241, 0, 2, 6, { 0 }},
|
||||
{ 242, 0, 2, 6, { 0 }},
|
||||
{ 243, 0, 2, 6, { 0 }},
|
||||
{ 244, 0, 2, 6, { 0 }},
|
||||
{ 245, 0, 2, 6, { 0 }},
|
||||
{ 246, 0, 3, 6, { 0 }},
|
||||
{ 247, 0, 5, 6, { 0 }},
|
||||
{ 248, 0, 5, 6, { 0 }},
|
||||
{ 249, 0, 2, 6, { 0 }},
|
||||
{ 250, 0, 2, 6, { 0 }},
|
||||
{ 251, 0, 2, 6, { 0 }},
|
||||
{ 252, 0, 3, 6, { 0 }},
|
||||
{ 253, 0, 2, 6, { 0 }},
|
||||
{ 254, 0, 2, 6, { 0 }},
|
||||
{ 255, 0, 3, 6, { 0 }},
|
||||
};
|
||||
|
||||
// Style loading function: RLTech
|
||||
static void GuiLoadStyleRLTech(void)
|
||||
{
|
||||
// Load style properties provided
|
||||
// NOTE: Default properties are propagated
|
||||
for (int i = 0; i < RLTECH_STYLE_PROPS_COUNT; i++)
|
||||
{
|
||||
GuiSetStyle(rltechStyleProps[i].controlId, rltechStyleProps[i].propertyId, rltechStyleProps[i].propertyValue);
|
||||
}
|
||||
|
||||
// Custom font loading
|
||||
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
|
||||
int rltechFontDataSize = 0;
|
||||
unsigned char *data = DecompressData(rltechFontData, RLTECH_STYLE_FONT_ATLAS_COMP_SIZE, &rltechFontDataSize);
|
||||
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, rltechFontRecs, 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, rltechFontGlyphs, 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
|
||||
}
|
||||
@ -1,614 +0,0 @@
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// StyleAsCode exporter v2.0 - Style data exported as a values array //
|
||||
// //
|
||||
// USAGE: On init call: GuiLoadStyleSunny(); //
|
||||
// //
|
||||
// more info and bugs-report: github.com/raysan5/raygui //
|
||||
// feedback and support: ray[at]raylibtech.com //
|
||||
// //
|
||||
// Copyright (c) 2020-2025 raylib technologies (@raylibtech) //
|
||||
// //
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#define SUNNY_STYLE_PROPS_COUNT 33
|
||||
|
||||
// Custom style name: Sunny
|
||||
static const GuiStyleProp sunnyStyleProps[SUNNY_STYLE_PROPS_COUNT] = {
|
||||
{ 0, 0, (int)0x9c760aff }, // DEFAULT_BORDER_COLOR_NORMAL
|
||||
{ 0, 1, (int)0x594006ff }, // DEFAULT_BASE_COLOR_NORMAL
|
||||
{ 0, 2, (int)0xf6d519ff }, // DEFAULT_TEXT_COLOR_NORMAL
|
||||
{ 0, 3, (int)0xf6ee89ff }, // DEFAULT_BORDER_COLOR_FOCUSED
|
||||
{ 0, 4, (int)0xf5f3d1ff }, // DEFAULT_BASE_COLOR_FOCUSED
|
||||
{ 0, 5, (int)0xf4cd19ff }, // DEFAULT_TEXT_COLOR_FOCUSED
|
||||
{ 0, 6, (int)0xf7e580ff }, // DEFAULT_BORDER_COLOR_PRESSED
|
||||
{ 0, 7, (int)0xf7f2c1ff }, // DEFAULT_BASE_COLOR_PRESSED
|
||||
{ 0, 8, (int)0x52470aff }, // DEFAULT_TEXT_COLOR_PRESSED
|
||||
{ 0, 9, (int)0xc0be92ff }, // DEFAULT_BORDER_COLOR_DISABLED
|
||||
{ 0, 10, (int)0xd3d3a1ff }, // DEFAULT_BASE_COLOR_DISABLED
|
||||
{ 0, 11, (int)0xbcbc89ff }, // DEFAULT_TEXT_COLOR_DISABLED
|
||||
{ 0, 16, (int)0x00000010 }, // DEFAULT_TEXT_SIZE
|
||||
{ 0, 17, (int)0x00000000 }, // DEFAULT_TEXT_SPACING
|
||||
{ 0, 18, (int)0x725706ff }, // DEFAULT_LINE_COLOR
|
||||
{ 0, 19, (int)0xf0be4bff }, // DEFAULT_BACKGROUND_COLOR
|
||||
{ 0, 20, (int)0x00000008 }, // DEFAULT_TEXT_LINE_SPACING
|
||||
{ 1, 2, (int)0x504506ff }, // LABEL_TEXT_COLOR_NORMAL
|
||||
{ 1, 5, (int)0xfdeb9bff }, // LABEL_TEXT_COLOR_FOCUSED
|
||||
{ 1, 8, (int)0xf5e8a4ff }, // LABEL_TEXT_COLOR_PRESSED
|
||||
{ 2, 2, (int)0xebc21fff }, // BUTTON_TEXT_COLOR_NORMAL
|
||||
{ 3, 2, (int)0xebc21fff }, // TOGGLE_TEXT_COLOR_NORMAL
|
||||
{ 4, 2, (int)0x81700fff }, // SLIDER_TEXT_COLOR_NORMAL
|
||||
{ 4, 5, (int)0xf4e49aff }, // SLIDER_TEXT_COLOR_FOCUSED
|
||||
{ 7, 2, (int)0xebc21fff }, // COMBOBOX_TEXT_COLOR_NORMAL
|
||||
{ 8, 2, (int)0xefd87bff }, // DROPDOWNBOX_TEXT_COLOR_NORMAL
|
||||
{ 8, 5, (int)0xd4b219ff }, // DROPDOWNBOX_TEXT_COLOR_FOCUSED
|
||||
{ 9, 2, (int)0x7a680bff }, // TEXTBOX_TEXT_COLOR_NORMAL
|
||||
{ 9, 5, (int)0xad931fff }, // TEXTBOX_TEXT_COLOR_FOCUSED
|
||||
{ 10, 2, (int)0x62570eff }, // VALUEBOX_TEXT_COLOR_NORMAL
|
||||
{ 10, 5, (int)0xf2df88ff }, // VALUEBOX_TEXT_COLOR_FOCUSED
|
||||
{ 12, 2, (int)0xf4e798ff }, // LISTVIEW_TEXT_COLOR_NORMAL
|
||||
{ 15, 2, (int)0xebc21fff }, // STATUSBAR_TEXT_COLOR_NORMAL
|
||||
};
|
||||
|
||||
// WARNING: This style uses a custom font: "GMSN.ttf" (size: 16, spacing: 0)
|
||||
|
||||
#define SUNNY_STYLE_FONT_ATLAS_COMP_SIZE 2434
|
||||
|
||||
// Font atlas image pixels data: DEFLATE compressed
|
||||
static unsigned char sunnyFontData[SUNNY_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed,
|
||||
0xdd, 0x5b, 0x6e, 0xe4, 0x36, 0x10, 0x05, 0x50, 0xee, 0x7f, 0xa1, 0xd9, 0x06, 0x83, 0x20, 0x18, 0x24, 0xe3, 0xb1, 0x45,
|
||||
0xb2, 0xaa, 0xa8, 0x57, 0x9f, 0x1c, 0xe4, 0xc7, 0x1a, 0xb7, 0xd5, 0x94, 0xae, 0x44, 0x3d, 0x58, 0xec, 0x0d, 0x00, 0x00,
|
||||
0x00, 0xf8, 0x78, 0xff, 0xfc, 0xf7, 0xfd, 0xcf, 0xbe, 0x5b, 0x72, 0xbc, 0xec, 0xd7, 0xbf, 0x18, 0x2d, 0xe9, 0x3f, 0xae,
|
||||
0x49, 0x3f, 0x58, 0x36, 0xf7, 0xb7, 0x62, 0xeb, 0xd5, 0x97, 0xda, 0xa6, 0x1f, 0xb4, 0x5a, 0x4b, 0xff, 0xbc, 0x1d, 0xb6,
|
||||
0x7d, 0x0f, 0xb4, 0x5e, 0x3b, 0x5c, 0xe7, 0x9f, 0x7f, 0x73, 0xbc, 0xa4, 0x72, 0x3d, 0x57, 0xda, 0xb4, 0x72, 0xfb, 0xac,
|
||||
0xb4, 0x60, 0x5b, 0x5e, 0x7a, 0xdc, 0x52, 0x6d, 0xaa, 0x1d, 0xc7, 0x9f, 0xdc, 0x6f, 0x92, 0xff, 0xe3, 0x6f, 0xf3, 0x2b,
|
||||
0x83, 0x47, 0x5b, 0x7f, 0x7e, 0xdf, 0x68, 0xd3, 0xc7, 0x84, 0xff, 0xfe, 0x76, 0x5d, 0x42, 0xb3, 0x9f, 0xd2, 0x87, 0x47,
|
||||
0xc2, 0x95, 0x16, 0x3a, 0x6e, 0xbd, 0x16, 0xca, 0xc4, 0xe8, 0x33, 0x23, 0xeb, 0x32, 0xb3, 0x6c, 0x6e, 0xfd, 0x62, 0xfb,
|
||||
0xfc, 0xf8, 0xf3, 0x8e, 0xf7, 0xb4, 0xa3, 0x2d, 0x3c, 0xda, 0x73, 0x8f, 0xbf, 0xdf, 0xfa, 0x56, 0xcd, 0xa4, 0x7e, 0x4f,
|
||||
0xfe, 0xfb, 0xff, 0x72, 0xd6, 0x83, 0x19, 0xcc, 0x9f, 0x1b, 0xd6, 0xcf, 0x0a, 0xc7, 0xc7, 0xac, 0x7d, 0x2d, 0x7c, 0xd4,
|
||||
0x4e, 0x3d, 0xb0, 0x0f, 0xaf, 0x6f, 0xb3, 0xe8, 0xdf, 0xd9, 0x91, 0xff, 0x8a, 0x14, 0xb7, 0x89, 0x33, 0x62, 0xa4, 0x4f,
|
||||
0x71, 0xdc, 0xe3, 0xcc, 0x27, 0x7c, 0xb4, 0x2e, 0x91, 0xfe, 0x4c, 0xbe, 0x2d, 0x57, 0xfb, 0x1c, 0xfb, 0xf2, 0x5f, 0x71,
|
||||
0xbe, 0x5d, 0x3f, 0x97, 0xec, 0x6b, 0xdf, 0x99, 0xf3, 0xf5, 0xfd, 0xf3, 0xbf, 0xfe, 0xdd, 0x2a, 0xf2, 0x5f, 0xb3, 0x55,
|
||||
0xd6, 0xf3, 0xdf, 0xe5, 0x7f, 0xfa, 0xfc, 0xff, 0x73, 0xab, 0xf7, 0xe0, 0xf5, 0x57, 0xfe, 0xaa, 0xbd, 0xaa, 0x9f, 0x7f,
|
||||
0x6d, 0xfe, 0x47, 0xd7, 0x83, 0x6d, 0x39, 0xff, 0xb1, 0xab, 0xcf, 0xc8, 0xd5, 0x46, 0x55, 0xff, 0x7f, 0x6f, 0xef, 0xe1,
|
||||
0xf8, 0xea, 0x31, 0x92, 0xf0, 0xb5, 0x7b, 0x1e, 0x35, 0x9f, 0x7c, 0x45, 0xfe, 0xdb, 0xc4, 0xda, 0xf4, 0xe1, 0xf5, 0xff,
|
||||
0xec, 0x11, 0x7e, 0x2d, 0xff, 0x75, 0xe7, 0x8e, 0x2b, 0xf3, 0xdf, 0x83, 0x77, 0xc4, 0xaa, 0xaf, 0xe3, 0xe3, 0xdf, 0x6d,
|
||||
0xed, 0xfe, 0xdc, 0x79, 0xd7, 0xff, 0xa3, 0x7e, 0x60, 0x26, 0xff, 0x9f, 0xd2, 0xff, 0x9f, 0xe9, 0x69, 0x8f, 0x5a, 0x71,
|
||||
0xfe, 0x78, 0x76, 0xc5, 0xd9, 0xfc, 0xda, 0xfc, 0xf7, 0xa9, 0x7b, 0xd8, 0xf7, 0xce, 0x7f, 0x5b, 0xbe, 0xca, 0xab, 0xdc,
|
||||
0x77, 0xa3, 0x7b, 0xd4, 0x68, 0xcf, 0x9d, 0x39, 0xaa, 0xdd, 0x33, 0xff, 0xb1, 0xfd, 0xb9, 0x0f, 0x7b, 0xf9, 0x3d, 0x91,
|
||||
0xff, 0xf6, 0x9a, 0xfc, 0xf7, 0xe0, 0xdd, 0x8e, 0x9f, 0xfb, 0x7b, 0xb1, 0xfb, 0x71, 0x91, 0x9e, 0x7c, 0xa6, 0x8f, 0x52,
|
||||
0x95, 0xff, 0x7b, 0x6c, 0x49, 0xe7, 0xff, 0x8a, 0xfb, 0xff, 0xed, 0xb0, 0x87, 0xff, 0x59, 0xf9, 0x3f, 0x7e, 0xfe, 0xd7,
|
||||
0x6e, 0xff, 0xac, 0x2e, 0x9a, 0xff, 0x9a, 0xfb, 0xff, 0xe7, 0x1f, 0xad, 0x67, 0xae, 0x5c, 0x73, 0xf9, 0xbf, 0xd3, 0xf3,
|
||||
0xbf, 0xbd, 0xf9, 0x1f, 0x3d, 0xf5, 0x7e, 0x53, 0xff, 0xbf, 0xf2, 0x3e, 0x7e, 0xfc, 0x9d, 0x9b, 0x7d, 0xef, 0x14, 0xb5,
|
||||
0xd0, 0x9b, 0x5c, 0xf7, 0x4c, 0x7f, 0xf4, 0x39, 0x50, 0xee, 0x2e, 0xdd, 0xd5, 0xef, 0xff, 0xd4, 0xb7, 0xe0, 0x79, 0xeb,
|
||||
0xd3, 0x6f, 0xdc, 0x67, 0xe4, 0x5d, 0x6f, 0xc9, 0xda, 0xbb, 0xce, 0x7c, 0x3e, 0x1b, 0xff, 0x5b, 0xb6, 0x0f, 0x3b, 0xcf,
|
||||
0x6c, 0x5a, 0xe2, 0x19, 0xf7, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xc9, 0xe3,
|
||||
0x17, 0x22, 0x63, 0x0d, 0xa3, 0x75, 0x08, 0x6a, 0xeb, 0x21, 0xf4, 0x2f, 0x75, 0x58, 0x57, 0x3f, 0x7b, 0x76, 0xac, 0x65,
|
||||
0x66, 0x9c, 0x66, 0xed, 0xef, 0x56, 0x55, 0x96, 0xa8, 0x1d, 0x79, 0x3e, 0xae, 0x77, 0xb3, 0x5a, 0xad, 0x39, 0x56, 0x05,
|
||||
0x6d, 0xbd, 0xa6, 0x79, 0xa6, 0x0e, 0x5f, 0xf5, 0xd8, 0xea, 0x9a, 0xfa, 0x68, 0xf3, 0x63, 0xde, 0x6b, 0x2a, 0x8d, 0xd4,
|
||||
0xe5, 0x7f, 0x7d, 0x3b, 0xf4, 0x2f, 0xeb, 0xd1, 0x2f, 0xa8, 0xc4, 0x50, 0xbf, 0x74, 0xee, 0xe7, 0x77, 0xca, 0xff, 0xec,
|
||||
0x31, 0x38, 0xbb, 0xf7, 0xc6, 0x47, 0xdc, 0x8d, 0xaa, 0x4f, 0x5c, 0x5f, 0x5b, 0xa5, 0x15, 0xd5, 0x47, 0xad, 0xcf, 0x7f,
|
||||
0x3b, 0xe9, 0xfc, 0x1f, 0xcd, 0x7f, 0x1f, 0xce, 0x66, 0x73, 0xdf, 0xfc, 0xaf, 0xd7, 0x9d, 0xc8, 0xfe, 0xd5, 0xdc, 0x4c,
|
||||
0x0e, 0xf1, 0x5a, 0xe3, 0xf9, 0xfc, 0xe7, 0x2a, 0x05, 0x9d, 0x7b, 0x6e, 0xbd, 0x3e, 0xff, 0xd1, 0x16, 0xb9, 0x2a, 0xff,
|
||||
0xf1, 0xbd, 0xa4, 0x0f, 0xab, 0x59, 0xdf, 0x31, 0xff, 0xfd, 0xe3, 0xf3, 0x5f, 0x5f, 0xcb, 0x37, 0x9a, 0x80, 0x48, 0x1d,
|
||||
0xf4, 0x99, 0xeb, 0xea, 0xd5, 0x2b, 0xbb, 0xf8, 0x75, 0x57, 0xf4, 0xfc, 0x3f, 0xfa, 0xfd, 0x99, 0x6f, 0x72, 0x75, 0xfe,
|
||||
0xdb, 0x30, 0xe1, 0x3d, 0x91, 0xd2, 0xf8, 0x1d, 0x90, 0x4c, 0xcd, 0xab, 0x6b, 0xf2, 0xdf, 0x42, 0x33, 0x06, 0xc6, 0xcf,
|
||||
0xf3, 0x77, 0xcf, 0x7f, 0xf5, 0xb5, 0x41, 0xf4, 0x8e, 0x41, 0xf5, 0x3a, 0xde, 0xef, 0xfa, 0xbf, 0x17, 0xf4, 0x12, 0x77,
|
||||
0xe4, 0x3f, 0xdb, 0x3e, 0xd1, 0x34, 0xc5, 0xf2, 0x3f, 0x7f, 0x76, 0x8f, 0xcd, 0x26, 0x10, 0x5b, 0xf6, 0xde, 0xfc, 0xd7,
|
||||
0xd6, 0x4f, 0x5d, 0xbf, 0x57, 0xfc, 0xa6, 0xfc, 0x47, 0xaf, 0xff, 0xe7, 0xaf, 0xb8, 0xee, 0x95, 0xff, 0x36, 0x31, 0x3f,
|
||||
0xcf, 0xd9, 0xf9, 0x1f, 0x55, 0x5b, 0x7d, 0x5b, 0xfe, 0xa3, 0xd9, 0x8a, 0xce, 0x67, 0xd4, 0xc2, 0x67, 0xba, 0xb7, 0x9f,
|
||||
0xff, 0xdb, 0x4b, 0xf3, 0x1f, 0x9f, 0x5f, 0xe6, 0x59, 0xf9, 0xaf, 0xee, 0x35, 0x5c, 0x5f, 0x57, 0x2f, 0x7a, 0xb7, 0x31,
|
||||
0x7e, 0x97, 0xf2, 0xdd, 0xfd, 0xff, 0xbe, 0xa1, 0x17, 0x9e, 0x7d, 0xfe, 0x7f, 0x55, 0xfe, 0x77, 0x3d, 0xff, 0x6b, 0xd3,
|
||||
0x73, 0xfe, 0xed, 0x5a, 0x2b, 0xf9, 0xaf, 0xce, 0x7f, 0xe5, 0xdc, 0x89, 0x6b, 0xff, 0xa2, 0xfa, 0xfd, 0x9f, 0xfa, 0x3b,
|
||||
0x69, 0xfb, 0xdf, 0xff, 0xd9, 0xd3, 0x3e, 0x6d, 0x6a, 0xc6, 0xb4, 0xf5, 0xbf, 0xda, 0x26, 0x67, 0x35, 0x8e, 0xad, 0x73,
|
||||
0xfd, 0xdb, 0x37, 0x77, 0xcf, 0x7f, 0xec, 0x6d, 0x83, 0xe8, 0x6f, 0xc6, 0x7f, 0xe3, 0x3e, 0x73, 0x81, 0x7d, 0xe6, 0x5b,
|
||||
0x94, 0x5a, 0xa1, 0xba, 0x85, 0xb4, 0x2a, 0x8e, 0x00, 0xef, 0x7a, 0xcf, 0x7c, 0xd7, 0xbf, 0x07, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xbc, 0xd1, 0x2b, 0xb3, 0x35, 0xb7, 0xff, 0xfc, 0x69, 0x0f, 0x8d, 0x77,
|
||||
0xed, 0xc9, 0xdf, 0xeb, 0xcb, 0x75, 0x30, 0xd6, 0xc6, 0x9d, 0x56, 0xd4, 0x60, 0xa8, 0xae, 0x23, 0x35, 0x6e, 0x97, 0xd9,
|
||||
0x2d, 0x3d, 0x1e, 0x49, 0xbc, 0xba, 0x87, 0x44, 0xc6, 0xf5, 0x64, 0x2a, 0xea, 0x64, 0xe6, 0x12, 0x88, 0x57, 0x42, 0x6c,
|
||||
0x8b, 0x9f, 0x1a, 0xdb, 0x6a, 0x91, 0xf1, 0xe1, 0x3b, 0xf3, 0x1f, 0xab, 0x2d, 0x79, 0x45, 0xa5, 0xb5, 0xf8, 0xde, 0x54,
|
||||
0xbb, 0x86, 0xf5, 0xad, 0x32, 0xb7, 0xb6, 0xb9, 0x9f, 0x67, 0xc6, 0xf4, 0xe7, 0x6a, 0x0f, 0xac, 0xb6, 0x44, 0x9f, 0xaa,
|
||||
0x96, 0xb2, 0xfa, 0x9b, 0x3f, 0xff, 0xde, 0xf1, 0xb2, 0x3e, 0x55, 0x39, 0x62, 0xed, 0x53, 0xbf, 0xff, 0xb7, 0xfb, 0x2a,
|
||||
0x27, 0xbc, 0x23, 0xff, 0x2d, 0x70, 0x94, 0x3d, 0x37, 0xff, 0xf1, 0xe3, 0x54, 0x2b, 0xac, 0xd2, 0xb3, 0x3e, 0x37, 0x46,
|
||||
0x64, 0xe4, 0x6e, 0xbe, 0x46, 0xd0, 0x19, 0x15, 0x35, 0xfe, 0xcc, 0xd7, 0xca, 0x56, 0x9b, 0x4b, 0xff, 0xf7, 0xc7, 0xb8,
|
||||
0x76, 0xd0, 0xdb, 0x9a, 0xcd, 0x7f, 0x0f, 0xd4, 0x1e, 0xa9, 0xa9, 0xc8, 0xf7, 0x9c, 0xfc, 0xcf, 0x5c, 0x6d, 0x9c, 0x97,
|
||||
0xff, 0xf1, 0xcf, 0xeb, 0xaa, 0x6a, 0x57, 0xd6, 0xda, 0x19, 0xd5, 0x5a, 0x6e, 0xa1, 0x2d, 0xd2, 0x83, 0xc7, 0x95, 0x5e,
|
||||
0x5c, 0xcf, 0xbc, 0x7f, 0xf9, 0x7f, 0xf6, 0x4c, 0x3d, 0x9b, 0xff, 0xd5, 0xbf, 0x78, 0x4d, 0xff, 0x7f, 0x65, 0x7f, 0x79,
|
||||
0x52, 0xfe, 0xdb, 0x54, 0x2d, 0xb2, 0x7b, 0x9f, 0xff, 0x2b, 0x6b, 0x6a, 0xd5, 0xe7, 0x3f, 0x96, 0xf0, 0xc8, 0xfe, 0x3e,
|
||||
0x3f, 0xe3, 0xc1, 0xda, 0x76, 0x1b, 0xf7, 0xf2, 0x7b, 0xa2, 0xff, 0x9f, 0xcf, 0x7f, 0x5d, 0x9f, 0x67, 0xed, 0xea, 0xf9,
|
||||
0x8a, 0xfc, 0xf7, 0x44, 0x65, 0xf4, 0xfd, 0xd7, 0xff, 0xa3, 0x7e, 0x62, 0xb4, 0x55, 0xea, 0xe7, 0xa6, 0xaa, 0xac, 0xb6,
|
||||
0xbd, 0x9a, 0xff, 0xcc, 0xf9, 0x3f, 0x7a, 0x1f, 0x22, 0xd3, 0x43, 0x5c, 0xbb, 0x1e, 0xcf, 0x1f, 0x01, 0xd6, 0xfa, 0xff,
|
||||
0x67, 0xdc, 0xff, 0xef, 0xa7, 0x5d, 0xff, 0xb7, 0xd4, 0x2c, 0x46, 0x95, 0xfd, 0xff, 0x96, 0xe8, 0x65, 0x66, 0x8e, 0x36,
|
||||
0x91, 0xd6, 0x5e, 0x6f, 0xb3, 0x2b, 0xcf, 0xff, 0xb9, 0xd9, 0xe6, 0xda, 0xb6, 0x7a, 0xa7, 0x91, 0xfe, 0xff, 0x9e, 0x14,
|
||||
0x56, 0xfc, 0xc5, 0xca, 0xeb, 0xff, 0xeb, 0xe7, 0x66, 0xc8, 0xe4, 0xff, 0xac, 0xde, 0xd3, 0xfe, 0x6f, 0x5e, 0x5b, 0x47,
|
||||
0xfa, 0x0e, 0xd7, 0xff, 0x91, 0xfb, 0xff, 0xd1, 0x9a, 0xc7, 0xe3, 0xb3, 0x71, 0xff, 0xf1, 0x0a, 0xff, 0xcc, 0xb3, 0xf1,
|
||||
0xf9, 0x47, 0x9c, 0xda, 0xeb, 0x7f, 0xf9, 0xdf, 0xf3, 0xdd, 0x2b, 0x6b, 0xe7, 0xee, 0xce, 0xff, 0x5c, 0xcf, 0x2a, 0x36,
|
||||
0x23, 0x62, 0x6e, 0xc6, 0xe4, 0xe8, 0x35, 0x5d, 0x3b, 0x75, 0x4f, 0x6f, 0x17, 0xf4, 0xfe, 0xab, 0x67, 0xe4, 0x79, 0xe7,
|
||||
0xfb, 0x50, 0xef, 0xf8, 0x06, 0x67, 0x1c, 0xcf, 0x7b, 0x61, 0xcf, 0x34, 0x7f, 0xff, 0x2f, 0x7e, 0xb4, 0x6a, 0x17, 0xd4,
|
||||
0x20, 0x3e, 0xfb, 0x2f, 0xc6, 0x9f, 0x56, 0x20, 0xff, 0x6b, 0xf9, 0xdf, 0xdf, 0x4b, 0xaa, 0x7a, 0x87, 0xe1, 0xd3, 0xf6,
|
||||
0x14, 0x2d, 0xf3, 0x29, 0xdb, 0x75, 0xfd, 0x4e, 0xef, 0x5b, 0x5a, 0xc2, 0x3e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x6b, 0xf4, 0x4f, 0xac, 0x9a, 0xc2, 0x6c, 0x2d, 0xab, 0xbe, 0x30, 0x3a, 0xb3, 0x0d,
|
||||
0xeb, 0x33, 0x67, 0x3f, 0xe7, 0xeb, 0xcc, 0x05, 0x7d, 0xf0, 0x2f, 0x5a, 0x60, 0x4d, 0x7b, 0x78, 0xac, 0xf1, 0xfa, 0x3c,
|
||||
0x0c, 0x5f, 0xd7, 0xb8, 0x25, 0x5a, 0x64, 0x3c, 0x92, 0x77, 0x7d, 0xc6, 0x86, 0xbd, 0xdf, 0xb9, 0xa6, 0x22, 0x7a, 0xa4,
|
||||
0xb6, 0xdf, 0x6c, 0x85, 0x92, 0xb3, 0x5b, 0x25, 0x33, 0x62, 0xbb, 0x05, 0x8e, 0x0d, 0xa3, 0x7a, 0x42, 0x2b, 0xb5, 0xba,
|
||||
0xd6, 0x8e, 0x4f, 0x73, 0x55, 0xf8, 0xd6, 0xc7, 0xa5, 0xcf, 0xd5, 0xf0, 0x6c, 0x1b, 0xeb, 0x5e, 0xaf, 0xef, 0xed, 0xf1,
|
||||
0xa4, 0xe4, 0x96, 0xce, 0x8d, 0xc7, 0xdf, 0xf1, 0x9d, 0xe3, 0x35, 0x6b, 0xe7, 0x3f, 0x27, 0x73, 0xf6, 0x1b, 0xa7, 0x74,
|
||||
0x4f, 0xab, 0xc4, 0xd2, 0x9f, 0xa9, 0x08, 0xb3, 0x9e, 0xff, 0x9a, 0xf5, 0x1e, 0xcf, 0x89, 0x10, 0x9b, 0x65, 0x63, 0xa6,
|
||||
0x86, 0xf7, 0xfb, 0xaa, 0x07, 0xe4, 0xf3, 0xff, 0xa9, 0x35, 0x17, 0x9e, 0xd4, 0x02, 0x7d, 0x31, 0x61, 0x33, 0xbd, 0xf8,
|
||||
0x9a, 0xfc, 0x8f, 0xe7, 0x4a, 0x3a, 0x3f, 0xff, 0x3d, 0xf4, 0x09, 0xf1, 0x9e, 0xdb, 0x1d, 0x97, 0xe6, 0xf2, 0x3f, 0xde,
|
||||
0x83, 0xf6, 0x2c, 0xad, 0x9a, 0x29, 0x29, 0x57, 0x87, 0xbc, 0x05, 0xaf, 0x1e, 0x32, 0x4b, 0x23, 0xb5, 0x11, 0x7a, 0xe8,
|
||||
0x6a, 0x64, 0xcf, 0xf9, 0x3f, 0x7f, 0xfd, 0x3f, 0xdf, 0x6f, 0x8b, 0xdf, 0x3f, 0xc8, 0xec, 0x4b, 0x3b, 0xfa, 0xe1, 0x67,
|
||||
0x2c, 0x8d, 0xd4, 0x86, 0xbb, 0x6a, 0xe9, 0xee, 0xfc, 0xf7, 0xdf, 0xe6, 0x4a, 0x3c, 0x4a, 0xd4, 0xfa, 0xd1, 0x21, 0x77,
|
||||
0x64, 0xd9, 0xdb, 0xd7, 0x59, 0xbd, 0xff, 0xb7, 0xba, 0x96, 0x75, 0x73, 0x99, 0x45, 0xab, 0x52, 0x7e, 0xfd, 0xfd, 0xba,
|
||||
0xf3, 0xff, 0xbe, 0xad, 0xbe, 0x77, 0x69, 0xe6, 0xee, 0xde, 0x5b, 0xf3, 0x3f, 0xd7, 0x6e, 0xef, 0xc8, 0xff, 0xb8, 0x7e,
|
||||
0x6b, 0x2f, 0xba, 0x4f, 0x71, 0xc6, 0x37, 0x9a, 0xad, 0xc0, 0x9f, 0x9b, 0x63, 0xf6, 0x4d, 0xf9, 0x6f, 0x45, 0xfd, 0xff,
|
||||
0x33, 0x97, 0xde, 0xa3, 0xff, 0xdf, 0x5f, 0x90, 0xff, 0xec, 0x73, 0x9d, 0x8a, 0x19, 0x8e, 0xcf, 0xce, 0x7f, 0xf6, 0x98,
|
||||
0x78, 0xaf, 0x6b, 0xe1, 0xec, 0xd2, 0x6c, 0xfe, 0x3f, 0xf5, 0xfc, 0xff, 0x86, 0xfc, 0xe7, 0x9f, 0x65, 0xaf, 0xdc, 0xff,
|
||||
0x3b, 0xef, 0x1d, 0x88, 0xbe, 0x31, 0xff, 0xed, 0x43, 0xcf, 0xff, 0x35, 0xf3, 0xca, 0x3f, 0x2d, 0xff, 0x33, 0x77, 0x99,
|
||||
0x9e, 0x9a, 0xff, 0x8a, 0x8c, 0x54, 0xdd, 0xff, 0xaf, 0x7f, 0x0b, 0x6a, 0x67, 0x75, 0xfa, 0xe7, 0x25, 0x7c, 0x9c, 0xff,
|
||||
0xc8, 0xfb, 0x3f, 0xef, 0xce, 0xff, 0xdc, 0xbb, 0x31, 0xcf, 0xce, 0x7f, 0x4f, 0xce, 0x4a, 0xf3, 0xce, 0xe7, 0xc3, 0xb1,
|
||||
0x39, 0xa6, 0x9f, 0x97, 0xff, 0xfc, 0x3b, 0x65, 0x6f, 0x7d, 0xfe, 0x97, 0x7b, 0x3b, 0xe0, 0x9a, 0xe7, 0x7f, 0x77, 0x7a,
|
||||
0xaf, 0x84, 0xb7, 0xbf, 0x55, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x66, 0xec,
|
||||
0xeb, 0xea, 0x88, 0x9d, 0xb9, 0x71, 0x62, 0xd7, 0x54, 0xbe, 0x8f, 0xd4, 0x29, 0x98, 0x59, 0x9f, 0x78, 0xf5, 0x83, 0x48,
|
||||
0xad, 0xfd, 0xa3, 0x6d, 0x13, 0xad, 0x38, 0x9e, 0xa9, 0x64, 0xb4, 0xeb, 0x3b, 0xae, 0xd7, 0x84, 0x9f, 0xff, 0x0b, 0x73,
|
||||
0x95, 0x1f, 0x63, 0xb9, 0xb8, 0xfb, 0xb6, 0x9e, 0x1b, 0xa5, 0xb9, 0xb3, 0x4e, 0x7c, 0x4f, 0xd6, 0x34, 0xaf, 0x5f, 0xab,
|
||||
0x6c, 0x95, 0xfe, 0xd8, 0x3a, 0x47, 0x5a, 0xb8, 0x27, 0xe6, 0x61, 0x69, 0x13, 0x7b, 0x52, 0x75, 0x75, 0x9f, 0xcc, 0xbc,
|
||||
0x1c, 0xf3, 0x47, 0xe4, 0xca, 0x8a, 0xfd, 0x2d, 0x51, 0xad, 0xff, 0x2e, 0xdb, 0xfa, 0xda, 0xf1, 0xb4, 0xe3, 0x75, 0x7e,
|
||||
0xce, 0x78, 0xdf, 0xb9, 0xd1, 0xe3, 0xcf, 0xf8, 0x36, 0x33, 0xc7, 0xb2, 0xf5, 0xea, 0x3c, 0xef, 0xac, 0xd9, 0xf0, 0xd9,
|
||||
0x63, 0x95, 0xb3, 0x95, 0x05, 0x46, 0xc7, 0xba, 0xe7, 0x54, 0xaf, 0xca, 0xd5, 0xbd, 0x9a, 0x69, 0xc5, 0xb3, 0x96, 0x1d,
|
||||
0xf9, 0x2b, 0x30, 0x0f, 0xdb, 0x95, 0xdf, 0x71, 0x7f, 0xc5, 0x8e, 0xe3, 0x5a, 0x22, 0xf7, 0xde, 0xd6, 0xd9, 0x1a, 0x59,
|
||||
0xd9, 0x4a, 0x30, 0xd1, 0xf3, 0xff, 0x53, 0xf3, 0x3f, 0x9a, 0x8b, 0xe0, 0xe7, 0x59, 0xc9, 0xce, 0x5b, 0x56, 0x31, 0x93,
|
||||
0xc1, 0xea, 0x15, 0xd0, 0x8e, 0x65, 0x57, 0x56, 0xec, 0x3a, 0xfb, 0xbb, 0xc6, 0xdb, 0xa8, 0xaa, 0x9f, 0x18, 0x9d, 0xb3,
|
||||
0x64, 0xb4, 0xec, 0xd3, 0xce, 0xff, 0xfd, 0xf2, 0x65, 0xf3, 0x47, 0xb1, 0xbb, 0xef, 0xdb, 0xfb, 0x67, 0xec, 0x78, 0x42,
|
||||
0xc6, 0x33, 0xb3, 0x4b, 0xed, 0xcc, 0xff, 0x3d, 0xeb, 0x1d, 0xf7, 0xd4, 0xb9, 0x31, 0x5b, 0xab, 0xef, 0x3e, 0xb9, 0xc9,
|
||||
0xcc, 0x64, 0x1c, 0x9b, 0xbf, 0xb9, 0x7a, 0x99, 0xfc, 0xdf, 0x3b, 0xff, 0x73, 0xf7, 0x56, 0xee, 0x57, 0xbd, 0x32, 0x3b,
|
||||
0x4b, 0xef, 0xfb, 0xfb, 0x8b, 0x7d, 0xc3, 0xd3, 0x9a, 0xba, 0xe7, 0x89, 0xf2, 0x7f, 0x97, 0xfe, 0xbf, 0xfc, 0xbf, 0x6f,
|
||||
0x7f, 0xe9, 0xa9, 0x4a, 0xe6, 0xfa, 0xff, 0xf2, 0xff, 0xe6, 0xfc, 0xf7, 0x47, 0x5c, 0xff, 0xef, 0xda, 0x5f, 0xde, 0x76,
|
||||
0xff, 0x3f, 0xfa, 0xb4, 0xf7, 0x29, 0xcf, 0x7a, 0xce, 0x78, 0xfe, 0xb7, 0xe7, 0x93, 0x77, 0x56, 0x43, 0x7f, 0xff, 0xf3,
|
||||
0xde, 0xa7, 0xd4, 0x83, 0xe7, 0xed, 0xfb, 0xa1, 0x36, 0x00, 0xf9, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x76, 0xbe, 0xa9, 0x7f, 0x66, 0xc5, 0xf7, 0xc8, 0xa8, 0xcf, 0xb9, 0xcf, 0x04, 0x62, 0x23, 0x75, 0xce,
|
||||
0xac, 0xf8, 0x9e, 0x1f, 0x9d, 0x6f, 0x5b, 0xc2, 0xfb, 0xc6, 0x8a, 0xcb, 0x36, 0xec, 0x49, 0x55, 0x7f, 0x48, 0x15, 0xa4,
|
||||
0x77, 0xcc, 0xcd, 0x01, 0xf2, 0xff, 0x94, 0x0a, 0x69, 0x20, 0xff, 0xf2, 0x0f, 0xf2, 0x2f, 0xff, 0x20, 0xff, 0xf2, 0x0f,
|
||||
0x6f, 0xbf, 0xff, 0x7f, 0xa7, 0x99, 0x6b, 0xf6, 0xd5, 0x29, 0x06, 0xcf, 0xfe, 0x63, 0x47, 0x87, 0xea, 0x65, 0x6d, 0x78,
|
||||
0xdc, 0xf0, 0x8c, 0x10, 0xce, 0xca, 0xff, 0x35, 0xcf, 0xf8, 0x57, 0xf3, 0xaf, 0xff, 0x0f, 0x6f, 0xba, 0x1a, 0x89, 0xbc,
|
||||
0xff, 0x27, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x70, 0x95, 0x7f, 0xff, 0xd3, 0x0e, 0x20, 0xff, 0xc0, 0xc7, 0xe5, 0xff, 0x6f };
|
||||
|
||||
// Font glyphs rectangles data (on atlas)
|
||||
static const Rectangle sunnyFontRecs[189] = {
|
||||
{ 4, 4, 4 , 16 },
|
||||
{ 16, 4, 2 , 10 },
|
||||
{ 26, 4, 5 , 3 },
|
||||
{ 39, 4, 7 , 10 },
|
||||
{ 54, 4, 7 , 13 },
|
||||
{ 69, 4, 7 , 10 },
|
||||
{ 84, 4, 7 , 10 },
|
||||
{ 99, 4, 2 , 3 },
|
||||
{ 109, 4, 3 , 12 },
|
||||
{ 120, 4, 3 , 12 },
|
||||
{ 131, 4, 5 , 6 },
|
||||
{ 144, 4, 6 , 5 },
|
||||
{ 158, 4, 2 , 4 },
|
||||
{ 168, 4, 5 , 1 },
|
||||
{ 181, 4, 2 , 2 },
|
||||
{ 191, 4, 4 , 10 },
|
||||
{ 203, 4, 6 , 10 },
|
||||
{ 217, 4, 4 , 10 },
|
||||
{ 229, 4, 6 , 10 },
|
||||
{ 243, 4, 6 , 10 },
|
||||
{ 257, 4, 6 , 10 },
|
||||
{ 271, 4, 6 , 10 },
|
||||
{ 285, 4, 6 , 10 },
|
||||
{ 299, 4, 6 , 10 },
|
||||
{ 313, 4, 6 , 10 },
|
||||
{ 327, 4, 6 , 10 },
|
||||
{ 341, 4, 2 , 6 },
|
||||
{ 351, 4, 2 , 8 },
|
||||
{ 361, 4, 7 , 7 },
|
||||
{ 376, 4, 5 , 3 },
|
||||
{ 389, 4, 7 , 7 },
|
||||
{ 404, 4, 6 , 10 },
|
||||
{ 418, 4, 7 , 12 },
|
||||
{ 433, 4, 7 , 10 },
|
||||
{ 448, 4, 7 , 10 },
|
||||
{ 463, 4, 7 , 10 },
|
||||
{ 478, 4, 7 , 10 },
|
||||
{ 493, 4, 7 , 10 },
|
||||
{ 4, 28, 7 , 10 },
|
||||
{ 19, 28, 7 , 10 },
|
||||
{ 34, 28, 7 , 10 },
|
||||
{ 49, 28, 2 , 10 },
|
||||
{ 59, 28, 5 , 10 },
|
||||
{ 72, 28, 7 , 10 },
|
||||
{ 87, 28, 6 , 10 },
|
||||
{ 101, 28, 9 , 10 },
|
||||
{ 118, 28, 7 , 10 },
|
||||
{ 133, 28, 7 , 10 },
|
||||
{ 148, 28, 7 , 10 },
|
||||
{ 163, 28, 7 , 12 },
|
||||
{ 178, 28, 7 , 10 },
|
||||
{ 193, 28, 7 , 10 },
|
||||
{ 208, 28, 6 , 10 },
|
||||
{ 222, 28, 7 , 10 },
|
||||
{ 237, 28, 7 , 10 },
|
||||
{ 252, 28, 8 , 10 },
|
||||
{ 268, 28, 7 , 10 },
|
||||
{ 283, 28, 6 , 10 },
|
||||
{ 297, 28, 7 , 10 },
|
||||
{ 312, 28, 4 , 12 },
|
||||
{ 324, 28, 4 , 10 },
|
||||
{ 336, 28, 4 , 12 },
|
||||
{ 348, 28, 6 , 3 },
|
||||
{ 362, 28, 7 , 1 },
|
||||
{ 377, 28, 4 , 3 },
|
||||
{ 389, 28, 6 , 7 },
|
||||
{ 403, 28, 6 , 10 },
|
||||
{ 417, 28, 6 , 7 },
|
||||
{ 431, 28, 6 , 10 },
|
||||
{ 445, 28, 6 , 7 },
|
||||
{ 459, 28, 4 , 10 },
|
||||
{ 471, 28, 6 , 9 },
|
||||
{ 485, 28, 6 , 10 },
|
||||
{ 499, 28, 2 , 10 },
|
||||
{ 4, 52, 5 , 12 },
|
||||
{ 17, 52, 6 , 10 },
|
||||
{ 31, 52, 3 , 10 },
|
||||
{ 42, 52, 8 , 7 },
|
||||
{ 58, 52, 6 , 7 },
|
||||
{ 72, 52, 6 , 7 },
|
||||
{ 86, 52, 6 , 9 },
|
||||
{ 100, 52, 6 , 9 },
|
||||
{ 114, 52, 5 , 7 },
|
||||
{ 127, 52, 6 , 7 },
|
||||
{ 141, 52, 4 , 10 },
|
||||
{ 153, 52, 6 , 7 },
|
||||
{ 167, 52, 6 , 7 },
|
||||
{ 181, 52, 8 , 7 },
|
||||
{ 197, 52, 6 , 7 },
|
||||
{ 211, 52, 6 , 9 },
|
||||
{ 225, 52, 6 , 7 },
|
||||
{ 239, 52, 5 , 12 },
|
||||
{ 252, 52, 2 , 12 },
|
||||
{ 262, 52, 5 , 12 },
|
||||
{ 275, 52, 7 , 3 },
|
||||
{ 290, 52, 2 , 9 },
|
||||
{ 300, 52, 6 , 11 },
|
||||
{ 314, 52, 7 , 10 },
|
||||
{ 329, 52, 7 , 9 },
|
||||
{ 344, 52, 6 , 10 },
|
||||
{ 358, 52, 7 , 11 },
|
||||
{ 373, 52, 6 , 12 },
|
||||
{ 387, 52, 6 , 10 },
|
||||
{ 401, 52, 7 , 10 },
|
||||
{ 416, 52, 5 , 5 },
|
||||
{ 429, 52, 7 , 6 },
|
||||
{ 444, 52, 6 , 3 },
|
||||
{ 458, 52, 7 , 10 },
|
||||
{ 473, 52, 0 , 0 },
|
||||
{ 481, 52, 4 , 4 },
|
||||
{ 493, 52, 6 , 7 },
|
||||
{ 4, 76, 4 , 5 },
|
||||
{ 16, 76, 4 , 5 },
|
||||
{ 28, 76, 7 , 11 },
|
||||
{ 43, 76, 6 , 9 },
|
||||
{ 57, 76, 7 , 12 },
|
||||
{ 72, 76, 2 , 2 },
|
||||
{ 82, 76, 6 , 10 },
|
||||
{ 96, 76, 3 , 5 },
|
||||
{ 107, 76, 4 , 5 },
|
||||
{ 119, 76, 7 , 6 },
|
||||
{ 134, 76, 9 , 10 },
|
||||
{ 151, 76, 8 , 7 },
|
||||
{ 167, 76, 6 , 11 },
|
||||
{ 181, 76, 6 , 11 },
|
||||
{ 195, 76, 7 , 11 },
|
||||
{ 210, 76, 7 , 11 },
|
||||
{ 225, 76, 7 , 11 },
|
||||
{ 240, 76, 7 , 11 },
|
||||
{ 255, 76, 7 , 11 },
|
||||
{ 270, 76, 7 , 11 },
|
||||
{ 285, 76, 9 , 10 },
|
||||
{ 302, 76, 7 , 12 },
|
||||
{ 317, 76, 7 , 11 },
|
||||
{ 332, 76, 7 , 11 },
|
||||
{ 347, 76, 7 , 11 },
|
||||
{ 362, 76, 7 , 11 },
|
||||
{ 377, 76, 3 , 11 },
|
||||
{ 388, 76, 3 , 11 },
|
||||
{ 399, 76, 5 , 11 },
|
||||
{ 412, 76, 5 , 11 },
|
||||
{ 425, 76, 8 , 10 },
|
||||
{ 441, 76, 7 , 11 },
|
||||
{ 456, 76, 7 , 11 },
|
||||
{ 471, 76, 7 , 11 },
|
||||
{ 486, 76, 7 , 11 },
|
||||
{ 4, 100, 7 , 11 },
|
||||
{ 19, 100, 7 , 11 },
|
||||
{ 34, 100, 7 , 7 },
|
||||
{ 49, 100, 7 , 13 },
|
||||
{ 64, 100, 7 , 11 },
|
||||
{ 79, 100, 7 , 11 },
|
||||
{ 94, 100, 7 , 11 },
|
||||
{ 109, 100, 7 , 11 },
|
||||
{ 124, 100, 6 , 11 },
|
||||
{ 138, 100, 7 , 10 },
|
||||
{ 153, 100, 7 , 10 },
|
||||
{ 168, 100, 6 , 10 },
|
||||
{ 182, 100, 6 , 10 },
|
||||
{ 196, 100, 6 , 10 },
|
||||
{ 210, 100, 6 , 10 },
|
||||
{ 224, 100, 6 , 10 },
|
||||
{ 238, 100, 6 , 11 },
|
||||
{ 252, 100, 8 , 7 },
|
||||
{ 268, 100, 6 , 9 },
|
||||
{ 282, 100, 6 , 10 },
|
||||
{ 296, 100, 6 , 10 },
|
||||
{ 310, 100, 6 , 10 },
|
||||
{ 324, 100, 6 , 10 },
|
||||
{ 338, 100, 3 , 10 },
|
||||
{ 349, 100, 3 , 10 },
|
||||
{ 360, 100, 5 , 10 },
|
||||
{ 373, 100, 5 , 10 },
|
||||
{ 386, 100, 6 , 10 },
|
||||
{ 400, 100, 6 , 10 },
|
||||
{ 414, 100, 6 , 10 },
|
||||
{ 428, 100, 6 , 10 },
|
||||
{ 442, 100, 6 , 10 },
|
||||
{ 456, 100, 6 , 10 },
|
||||
{ 470, 100, 6 , 10 },
|
||||
{ 484, 100, 6 , 7 },
|
||||
{ 4, 124, 7 , 11 },
|
||||
{ 19, 124, 6 , 10 },
|
||||
{ 33, 124, 6 , 10 },
|
||||
{ 47, 124, 6 , 10 },
|
||||
{ 61, 124, 6 , 10 },
|
||||
{ 75, 124, 6 , 12 },
|
||||
{ 89, 124, 6 , 12 },
|
||||
{ 103, 124, 6 , 12 },
|
||||
};
|
||||
|
||||
// Font glyphs info data
|
||||
// NOTE: No glyphs.image data provided
|
||||
static const GlyphInfo sunnyFontGlyphs[189] = {
|
||||
{ 32, 0, 0, 4, { 0 }},
|
||||
{ 33, 0, 2, 3, { 0 }},
|
||||
{ 34, 0, 2, 6, { 0 }},
|
||||
{ 35, 0, 2, 8, { 0 }},
|
||||
{ 36, 0, 1, 8, { 0 }},
|
||||
{ 37, 0, 2, 8, { 0 }},
|
||||
{ 38, 0, 2, 8, { 0 }},
|
||||
{ 39, 0, 2, 3, { 0 }},
|
||||
{ 40, 0, 2, 4, { 0 }},
|
||||
{ 41, 0, 2, 4, { 0 }},
|
||||
{ 42, 0, 4, 6, { 0 }},
|
||||
{ 43, 0, 6, 7, { 0 }},
|
||||
{ 44, 0, 10, 3, { 0 }},
|
||||
{ 45, 0, 8, 6, { 0 }},
|
||||
{ 46, 0, 10, 3, { 0 }},
|
||||
{ 47, 0, 2, 5, { 0 }},
|
||||
{ 48, 0, 2, 7, { 0 }},
|
||||
{ 49, 0, 2, 7, { 0 }},
|
||||
{ 50, 0, 2, 7, { 0 }},
|
||||
{ 51, 0, 2, 7, { 0 }},
|
||||
{ 52, 0, 2, 7, { 0 }},
|
||||
{ 53, 0, 2, 7, { 0 }},
|
||||
{ 54, 0, 2, 7, { 0 }},
|
||||
{ 55, 0, 2, 7, { 0 }},
|
||||
{ 56, 0, 2, 7, { 0 }},
|
||||
{ 57, 0, 2, 7, { 0 }},
|
||||
{ 58, 0, 4, 3, { 0 }},
|
||||
{ 59, 0, 4, 3, { 0 }},
|
||||
{ 60, 0, 4, 8, { 0 }},
|
||||
{ 61, 0, 6, 6, { 0 }},
|
||||
{ 62, 0, 4, 8, { 0 }},
|
||||
{ 63, 0, 2, 7, { 0 }},
|
||||
{ 64, 0, 2, 8, { 0 }},
|
||||
{ 65, 0, 2, 8, { 0 }},
|
||||
{ 66, 0, 2, 8, { 0 }},
|
||||
{ 67, 0, 2, 8, { 0 }},
|
||||
{ 68, 0, 2, 8, { 0 }},
|
||||
{ 69, 0, 2, 8, { 0 }},
|
||||
{ 70, 0, 2, 8, { 0 }},
|
||||
{ 71, 0, 2, 8, { 0 }},
|
||||
{ 72, 0, 2, 8, { 0 }},
|
||||
{ 73, 0, 2, 3, { 0 }},
|
||||
{ 74, 0, 2, 6, { 0 }},
|
||||
{ 75, 0, 2, 8, { 0 }},
|
||||
{ 76, 0, 2, 7, { 0 }},
|
||||
{ 77, 0, 2, 10, { 0 }},
|
||||
{ 78, 0, 2, 8, { 0 }},
|
||||
{ 79, 0, 2, 8, { 0 }},
|
||||
{ 80, 0, 2, 8, { 0 }},
|
||||
{ 81, 0, 2, 8, { 0 }},
|
||||
{ 82, 0, 2, 8, { 0 }},
|
||||
{ 83, 0, 2, 8, { 0 }},
|
||||
{ 84, 0, 2, 7, { 0 }},
|
||||
{ 85, 0, 2, 8, { 0 }},
|
||||
{ 86, 0, 2, 8, { 0 }},
|
||||
{ 87, 0, 2, 9, { 0 }},
|
||||
{ 88, 0, 2, 8, { 0 }},
|
||||
{ 89, 0, 2, 7, { 0 }},
|
||||
{ 90, 0, 2, 8, { 0 }},
|
||||
{ 91, 0, 2, 5, { 0 }},
|
||||
{ 92, 0, 2, 5, { 0 }},
|
||||
{ 93, 0, 2, 5, { 0 }},
|
||||
{ 94, 0, 2, 7, { 0 }},
|
||||
{ 95, 0, 14, 8, { 0 }},
|
||||
{ 96, 0, 2, 5, { 0 }},
|
||||
{ 97, 0, 5, 7, { 0 }},
|
||||
{ 98, 0, 2, 7, { 0 }},
|
||||
{ 99, 0, 5, 7, { 0 }},
|
||||
{ 100, 0, 2, 7, { 0 }},
|
||||
{ 101, 0, 5, 7, { 0 }},
|
||||
{ 102, 0, 2, 5, { 0 }},
|
||||
{ 103, 0, 5, 7, { 0 }},
|
||||
{ 104, 0, 2, 7, { 0 }},
|
||||
{ 105, 0, 2, 3, { 0 }},
|
||||
{ 106, 0, 2, 6, { 0 }},
|
||||
{ 107, 0, 2, 7, { 0 }},
|
||||
{ 108, 0, 2, 4, { 0 }},
|
||||
{ 109, 0, 5, 9, { 0 }},
|
||||
{ 110, 0, 5, 7, { 0 }},
|
||||
{ 111, 0, 5, 7, { 0 }},
|
||||
{ 112, 0, 5, 7, { 0 }},
|
||||
{ 113, 0, 5, 7, { 0 }},
|
||||
{ 114, 0, 5, 6, { 0 }},
|
||||
{ 115, 0, 5, 7, { 0 }},
|
||||
{ 116, 0, 2, 5, { 0 }},
|
||||
{ 117, 0, 5, 7, { 0 }},
|
||||
{ 118, 0, 5, 7, { 0 }},
|
||||
{ 119, 0, 5, 9, { 0 }},
|
||||
{ 120, 0, 5, 7, { 0 }},
|
||||
{ 121, 0, 5, 7, { 0 }},
|
||||
{ 122, 0, 5, 7, { 0 }},
|
||||
{ 123, 0, 2, 6, { 0 }},
|
||||
{ 124, 0, 2, 3, { 0 }},
|
||||
{ 125, 0, 2, 6, { 0 }},
|
||||
{ 126, 0, 6, 8, { 0 }},
|
||||
{ 161, 0, 5, 3, { 0 }},
|
||||
{ 162, 0, 3, 7, { 0 }},
|
||||
{ 163, 0, 2, 8, { 0 }},
|
||||
{ 8364, 0, 3, 8, { 0 }},
|
||||
{ 165, 0, 2, 7, { 0 }},
|
||||
{ 352, 0, 1, 8, { 0 }},
|
||||
{ 167, 0, 2, 7, { 0 }},
|
||||
{ 353, 0, 2, 7, { 0 }},
|
||||
{ 169, 0, 2, 8, { 0 }},
|
||||
{ 170, 0, 2, 6, { 0 }},
|
||||
{ 171, 0, 6, 8, { 0 }},
|
||||
{ 172, 0, 7, 7, { 0 }},
|
||||
{ 174, 0, 2, 8, { 0 }},
|
||||
{ 175, 0, 0, 0, { 0 }},
|
||||
{ 176, 0, 2, 5, { 0 }},
|
||||
{ 177, 0, 4, 7, { 0 }},
|
||||
{ 178, 0, 2, 5, { 0 }},
|
||||
{ 179, 0, 2, 5, { 0 }},
|
||||
{ 381, 0, 1, 8, { 0 }},
|
||||
{ 181, 0, 5, 7, { 0 }},
|
||||
{ 182, 0, 2, 8, { 0 }},
|
||||
{ 183, 0, 6, 3, { 0 }},
|
||||
{ 382, 0, 2, 7, { 0 }},
|
||||
{ 185, 0, 2, 4, { 0 }},
|
||||
{ 186, 0, 2, 5, { 0 }},
|
||||
{ 187, 0, 6, 8, { 0 }},
|
||||
{ 338, 0, 2, 10, { 0 }},
|
||||
{ 339, 0, 5, 9, { 0 }},
|
||||
{ 376, 0, 1, 7, { 0 }},
|
||||
{ 191, 0, 3, 7, { 0 }},
|
||||
{ 192, 0, 1, 8, { 0 }},
|
||||
{ 193, 0, 1, 8, { 0 }},
|
||||
{ 194, 0, 1, 8, { 0 }},
|
||||
{ 195, 0, 1, 8, { 0 }},
|
||||
{ 196, 0, 1, 8, { 0 }},
|
||||
{ 197, 0, 1, 8, { 0 }},
|
||||
{ 198, 0, 2, 10, { 0 }},
|
||||
{ 199, 0, 2, 8, { 0 }},
|
||||
{ 200, 0, 1, 8, { 0 }},
|
||||
{ 201, 0, 1, 8, { 0 }},
|
||||
{ 202, 0, 1, 8, { 0 }},
|
||||
{ 203, 0, 1, 8, { 0 }},
|
||||
{ 204, 0, 1, 4, { 0 }},
|
||||
{ 205, 0, 1, 4, { 0 }},
|
||||
{ 206, 0, 1, 6, { 0 }},
|
||||
{ 207, 0, 1, 6, { 0 }},
|
||||
{ 208, 0, 2, 9, { 0 }},
|
||||
{ 209, 0, 1, 8, { 0 }},
|
||||
{ 210, 0, 1, 8, { 0 }},
|
||||
{ 211, 0, 1, 8, { 0 }},
|
||||
{ 212, 0, 1, 8, { 0 }},
|
||||
{ 213, 0, 1, 8, { 0 }},
|
||||
{ 214, 0, 1, 8, { 0 }},
|
||||
{ 215, 0, 5, 8, { 0 }},
|
||||
{ 216, 0, 1, 8, { 0 }},
|
||||
{ 217, 0, 1, 8, { 0 }},
|
||||
{ 218, 0, 1, 8, { 0 }},
|
||||
{ 219, 0, 1, 8, { 0 }},
|
||||
{ 220, 0, 1, 8, { 0 }},
|
||||
{ 221, 0, 1, 7, { 0 }},
|
||||
{ 222, 0, 2, 8, { 0 }},
|
||||
{ 223, 0, 2, 8, { 0 }},
|
||||
{ 224, 0, 2, 7, { 0 }},
|
||||
{ 225, 0, 2, 7, { 0 }},
|
||||
{ 226, 0, 2, 7, { 0 }},
|
||||
{ 227, 0, 2, 7, { 0 }},
|
||||
{ 228, 0, 2, 7, { 0 }},
|
||||
{ 229, 0, 1, 7, { 0 }},
|
||||
{ 230, 0, 5, 9, { 0 }},
|
||||
{ 231, 0, 5, 7, { 0 }},
|
||||
{ 232, 0, 2, 7, { 0 }},
|
||||
{ 233, 0, 2, 7, { 0 }},
|
||||
{ 234, 0, 2, 7, { 0 }},
|
||||
{ 235, 0, 2, 7, { 0 }},
|
||||
{ 236, 0, 2, 4, { 0 }},
|
||||
{ 237, 0, 2, 4, { 0 }},
|
||||
{ 238, 0, 2, 6, { 0 }},
|
||||
{ 239, 0, 2, 6, { 0 }},
|
||||
{ 240, 0, 2, 7, { 0 }},
|
||||
{ 241, 0, 2, 7, { 0 }},
|
||||
{ 242, 0, 2, 7, { 0 }},
|
||||
{ 243, 0, 2, 7, { 0 }},
|
||||
{ 244, 0, 2, 7, { 0 }},
|
||||
{ 245, 0, 2, 7, { 0 }},
|
||||
{ 246, 0, 2, 7, { 0 }},
|
||||
{ 247, 0, 4, 7, { 0 }},
|
||||
{ 248, 0, 3, 8, { 0 }},
|
||||
{ 249, 0, 2, 7, { 0 }},
|
||||
{ 250, 0, 2, 7, { 0 }},
|
||||
{ 251, 0, 2, 7, { 0 }},
|
||||
{ 252, 0, 2, 7, { 0 }},
|
||||
{ 253, 0, 2, 7, { 0 }},
|
||||
{ 254, 0, 2, 7, { 0 }},
|
||||
{ 255, 0, 2, 7, { 0 }},
|
||||
};
|
||||
|
||||
// Style loading function: Sunny
|
||||
static void GuiLoadStyleSunny(void)
|
||||
{
|
||||
// Load style properties provided
|
||||
// NOTE: Default properties are propagated
|
||||
for (int i = 0; i < SUNNY_STYLE_PROPS_COUNT; i++)
|
||||
{
|
||||
GuiSetStyle(sunnyStyleProps[i].controlId, sunnyStyleProps[i].propertyId, sunnyStyleProps[i].propertyValue);
|
||||
}
|
||||
|
||||
// Custom font loading
|
||||
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
|
||||
int sunnyFontDataSize = 0;
|
||||
unsigned char *data = DecompressData(sunnyFontData, SUNNY_STYLE_FONT_ATLAS_COMP_SIZE, &sunnyFontDataSize);
|
||||
Image imFont = { data, 512, 256, 1, 2 };
|
||||
|
||||
Font font = { 0 };
|
||||
font.baseSize = 16;
|
||||
font.glyphCount = 189;
|
||||
|
||||
// Load texture from image
|
||||
font.texture = LoadTextureFromImage(imFont);
|
||||
UnloadImage(imFont); // Uncompressed image data can be unloaded from memory
|
||||
|
||||
// Copy char recs data from global fontRecs
|
||||
// NOTE: Required to avoid issues if trying to free font
|
||||
font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle));
|
||||
memcpy(font.recs, sunnyFontRecs, font.glyphCount*sizeof(Rectangle));
|
||||
|
||||
// Copy font char info data from global fontChars
|
||||
// NOTE: Required to avoid issues if trying to free font
|
||||
font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo));
|
||||
memcpy(font.glyphs, sunnyFontGlyphs, font.glyphCount*sizeof(GlyphInfo));
|
||||
|
||||
GuiSetFont(font);
|
||||
|
||||
// Setup a white rectangle on the font to be used on shapes drawing,
|
||||
// it makes possible to draw shapes and text (full UI) in a single draw call
|
||||
Rectangle fontWhiteRec = { 510, 254, 1, 1 };
|
||||
SetShapesTexture(font.texture, fontWhiteRec);
|
||||
|
||||
//-----------------------------------------------------------------
|
||||
|
||||
// TODO: Custom user style setup: Set specific properties here (if required)
|
||||
// i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT
|
||||
}
|
||||
@ -1,569 +0,0 @@
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// StyleAsCode exporter v2.0 - Style data exported as a values array //
|
||||
// //
|
||||
// USAGE: On init call: GuiLoadStyleTerminal(); //
|
||||
// //
|
||||
// more info and bugs-report: github.com/raysan5/raygui //
|
||||
// feedback and support: ray[at]raylibtech.com //
|
||||
// //
|
||||
// Copyright (c) 2020-2025 raylib technologies (@raylibtech) //
|
||||
// //
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#define TERMINAL_STYLE_PROPS_COUNT 17
|
||||
|
||||
// Custom style name: Terminal
|
||||
static const GuiStyleProp terminalStyleProps[TERMINAL_STYLE_PROPS_COUNT] = {
|
||||
{ 0, 0, (int)0x1c8d00ff }, // DEFAULT_BORDER_COLOR_NORMAL
|
||||
{ 0, 1, (int)0x161313ff }, // DEFAULT_BASE_COLOR_NORMAL
|
||||
{ 0, 2, (int)0x38f620ff }, // DEFAULT_TEXT_COLOR_NORMAL
|
||||
{ 0, 3, (int)0xc3fbc6ff }, // DEFAULT_BORDER_COLOR_FOCUSED
|
||||
{ 0, 4, (int)0x43bf2eff }, // DEFAULT_BASE_COLOR_FOCUSED
|
||||
{ 0, 5, (int)0xdcfadcff }, // DEFAULT_TEXT_COLOR_FOCUSED
|
||||
{ 0, 6, (int)0x1f5b19ff }, // DEFAULT_BORDER_COLOR_PRESSED
|
||||
{ 0, 7, (int)0x43ff28ff }, // DEFAULT_BASE_COLOR_PRESSED
|
||||
{ 0, 8, (int)0x1e6f15ff }, // DEFAULT_TEXT_COLOR_PRESSED
|
||||
{ 0, 9, (int)0x223b22ff }, // DEFAULT_BORDER_COLOR_DISABLED
|
||||
{ 0, 10, (int)0x182c18ff }, // DEFAULT_BASE_COLOR_DISABLED
|
||||
{ 0, 11, (int)0x244125ff }, // DEFAULT_TEXT_COLOR_DISABLED
|
||||
{ 0, 16, (int)0x00000010 }, // DEFAULT_TEXT_SIZE
|
||||
{ 0, 17, (int)0x00000000 }, // DEFAULT_TEXT_SPACING
|
||||
{ 0, 18, (int)0xe6fce3ff }, // DEFAULT_LINE_COLOR
|
||||
{ 0, 19, (int)0x0c1505ff }, // DEFAULT_BACKGROUND_COLOR
|
||||
{ 0, 20, (int)0x00000008 }, // DEFAULT_TEXT_LINE_SPACING
|
||||
};
|
||||
|
||||
// WARNING: This style uses a custom font: "Mecha.ttf" (size: 16, spacing: 0)
|
||||
|
||||
#define TERMINAL_STYLE_FONT_ATLAS_COMP_SIZE 1860
|
||||
|
||||
// Font atlas image pixels data: DEFLATE compressed
|
||||
static unsigned char terminalFontData[TERMINAL_STYLE_FONT_ATLAS_COMP_SIZE] = { 0xed,
|
||||
0xdd, 0x41, 0x92, 0xa4, 0x36, 0x10, 0x05, 0x50, 0xee, 0x7f, 0xe9, 0xf4, 0x62, 0x62, 0x16, 0x76, 0xb8, 0x1b, 0x94, 0x4a,
|
||||
0x89, 0x04, 0x9e, 0x5f, 0x78, 0xd3, 0xd5, 0x53, 0x4d, 0x01, 0xbf, 0x24, 0x84, 0x94, 0xc4, 0x01, 0x00, 0x00, 0x00, 0x7c,
|
||||
0x5e, 0xfc, 0xef, 0x4f, 0xe2, 0xc7, 0xdf, 0x8c, 0xcb, 0xef, 0xf3, 0xe7, 0xa7, 0xf1, 0xe3, 0x5f, 0xf9, 0xfb, 0xdf, 0x95,
|
||||
0x77, 0xba, 0xfe, 0x5b, 0x31, 0xb4, 0x75, 0x73, 0x5b, 0x95, 0x7b, 0x9f, 0xd1, 0xdf, 0xfe, 0x7d, 0x7b, 0xaa, 0xde, 0xad,
|
||||
0xf6, 0x95, 0xb1, 0xb3, 0x23, 0xbf, 0xe7, 0xae, 0x6e, 0x61, 0x6c, 0xdf, 0x2b, 0xc7, 0xa6, 0x7d, 0x1c, 0x0d, 0xf2, 0x7f,
|
||||
0x7e, 0xcc, 0x46, 0xf2, 0x14, 0xe9, 0xf4, 0x8e, 0x7f, 0x3b, 0xad, 0xfc, 0x0e, 0x1d, 0xdd, 0xc6, 0xdc, 0x3e, 0x89, 0x92,
|
||||
0xf7, 0x9f, 0xf9, 0x3b, 0x51, 0xb6, 0xd7, 0x72, 0xff, 0x26, 0x86, 0xdb, 0x88, 0xf9, 0x4f, 0x78, 0xbe, 0x8f, 0x63, 0xd1,
|
||||
0x71, 0xef, 0x99, 0xff, 0xfc, 0x51, 0xcb, 0x9f, 0x29, 0x57, 0xb7, 0x3c, 0xd7, 0xa6, 0xaf, 0x3a, 0x27, 0xe5, 0xff, 0xec,
|
||||
0x9b, 0xfa, 0xe7, 0x16, 0xb4, 0xa2, 0xdd, 0x90, 0xff, 0x5c, 0x06, 0x62, 0x22, 0x47, 0xbb, 0xf2, 0x5f, 0xdb, 0xd6, 0xc8,
|
||||
0xff, 0x33, 0xda, 0xff, 0xb3, 0x6d, 0xff, 0xf7, 0x79, 0x2b, 0xff, 0xd9, 0xa3, 0x90, 0x6d, 0xff, 0x63, 0x7a, 0xfb, 0x3b,
|
||||
0xe7, 0x7f, 0x74, 0xdc, 0x43, 0xfe, 0xcf, 0xaf, 0xe8, 0x73, 0xbf, 0x7d, 0xb6, 0x27, 0xe4, 0x7f, 0x5d, 0xfe, 0x7f, 0xeb,
|
||||
0xb3, 0x9d, 0xf5, 0xf4, 0x76, 0xe4, 0xff, 0xd8, 0x9e, 0xff, 0xb3, 0xeb, 0xa8, 0xeb, 0xfb, 0x62, 0xc7, 0x08, 0xd4, 0x91,
|
||||
0x1c, 0xdb, 0x89, 0xc1, 0x0c, 0xdf, 0xd3, 0x0b, 0x3b, 0xcb, 0x7f, 0x66, 0x4f, 0x66, 0xf2, 0x7f, 0x76, 0x5c, 0x8e, 0x5f,
|
||||
0x7a, 0x30, 0xab, 0xf6, 0x7e, 0x45, 0xfe, 0x67, 0x46, 0xe4, 0x9e, 0x9d, 0xff, 0x38, 0xd9, 0x57, 0x31, 0x31, 0xbe, 0xb9,
|
||||
0xb3, 0xcf, 0x30, 0xd3, 0x4f, 0xeb, 0x7b, 0x1c, 0xde, 0xd3, 0xff, 0x8f, 0xd6, 0xed, 0xbf, 0xfc, 0xcf, 0x5d, 0xff, 0xbf,
|
||||
0x2d, 0xff, 0xb1, 0xfd, 0x58, 0xc5, 0x85, 0x33, 0x56, 0xfe, 0xe7, 0xf6, 0xf0, 0x79, 0x8f, 0x23, 0x16, 0x5d, 0xbf, 0x74,
|
||||
0xcd, 0x7f, 0xee, 0xd3, 0x7d, 0xb1, 0xfd, 0x8f, 0x1b, 0x8f, 0x8f, 0xfc, 0xaf, 0xd8, 0x9b, 0x23, 0x77, 0xd8, 0x66, 0xe7,
|
||||
0x2f, 0xc8, 0xbf, 0xfc, 0xcb, 0x7f, 0xef, 0xfe, 0x7f, 0x0c, 0x8e, 0xdc, 0xc6, 0xe3, 0xc7, 0xff, 0xe2, 0x52, 0x6f, 0x69,
|
||||
0x7e, 0xb6, 0xe0, 0x78, 0x9f, 0x2b, 0xf7, 0x6e, 0xf9, 0xd9, 0x75, 0x4f, 0xb9, 0xfe, 0xdf, 0x39, 0x93, 0xf2, 0x28, 0x99,
|
||||
0x87, 0xb2, 0x7e, 0xfe, 0xdf, 0x33, 0xe7, 0x28, 0x77, 0xcf, 0x3f, 0xb0, 0x7a, 0x95, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x65, 0x0d, 0x4d, 0x94, 0xad, 0x7b, 0x8c, 0x16, 0x95, 0xe7, 0xf7, 0xd4, 0x58,
|
||||
0xbf, 0xb6, 0x87, 0xaa, 0xde, 0x71, 0xec, 0x59, 0x02, 0x63, 0xeb, 0x30, 0x73, 0x2b, 0xff, 0x56, 0xaf, 0x6e, 0x9b, 0x59,
|
||||
0xdd, 0x58, 0xb3, 0x65, 0x15, 0xb5, 0x2d, 0xee, 0x49, 0xc7, 0xca, 0x75, 0xe2, 0x71, 0x69, 0x75, 0x70, 0x6d, 0x92, 0x56,
|
||||
0xaf, 0xd8, 0xce, 0xac, 0x7d, 0xdf, 0x99, 0xff, 0xb1, 0x33, 0x70, 0xfc, 0x73, 0x46, 0x62, 0x35, 0x55, 0x6d, 0x0d, 0x98,
|
||||
0x63, 0xe9, 0xb9, 0x19, 0x8b, 0xd6, 0x90, 0x8d, 0xef, 0x83, 0x3d, 0xe9, 0x90, 0xff, 0x2f, 0xe7, 0x3f, 0x57, 0x23, 0x7b,
|
||||
0xc7, 0xb3, 0x50, 0xe4, 0x5f, 0xfe, 0xe5, 0xff, 0xad, 0xf9, 0x8f, 0xe2, 0xfe, 0x77, 0xbe, 0x5a, 0x47, 0xcd, 0x95, 0x55,
|
||||
0x6d, 0x4a, 0xe4, 0x5f, 0xfe, 0x7f, 0xef, 0x6d, 0xc7, 0xc5, 0x56, 0x6c, 0xa4, 0xc5, 0xdb, 0x59, 0xb3, 0x64, 0x5f, 0x15,
|
||||
0xad, 0xd1, 0x6f, 0x93, 0x28, 0x4c, 0xf0, 0x57, 0xf2, 0x9f, 0xaf, 0x7b, 0xbe, 0x67, 0xdc, 0x2b, 0xb3, 0xe5, 0x99, 0xda,
|
||||
0x57, 0xf5, 0xf9, 0x3f, 0x7b, 0x1e, 0x42, 0xe6, 0xfb, 0xe9, 0x5b, 0xf9, 0x1f, 0xfd, 0x6c, 0xf2, 0x7f, 0x6c, 0x7e, 0xb6,
|
||||
0xcc, 0xfd, 0x35, 0x16, 0x23, 0xd9, 0xd2, 0x57, 0x6d, 0x75, 0xa4, 0x46, 0xdb, 0xaa, 0x7e, 0x9e, 0xab, 0xd2, 0xf8, 0xde,
|
||||
0xfc, 0x47, 0xc1, 0x7d, 0xae, 0xb9, 0x56, 0x52, 0xfe, 0xe5, 0xff, 0x98, 0xac, 0xc0, 0xdb, 0x3d, 0xff, 0x2b, 0xae, 0xbf,
|
||||
0x2b, 0x9f, 0xe6, 0xfa, 0xcc, 0xf6, 0xff, 0x59, 0xf7, 0xff, 0xbe, 0x92, 0xff, 0xb3, 0x63, 0x79, 0x77, 0xfe, 0x3b, 0xd5,
|
||||
0x4c, 0xcd, 0x8c, 0x30, 0xce, 0xfc, 0x9b, 0x8e, 0xf9, 0xdf, 0x35, 0x9f, 0x47, 0xfe, 0x77, 0xe5, 0xff, 0xe7, 0xa7, 0x8d,
|
||||
0xcb, 0x7f, 0xaf, 0xfc, 0xaf, 0xeb, 0xff, 0x3f, 0x3b, 0xff, 0xeb, 0x7a, 0x5f, 0xab, 0xfb, 0x73, 0xb5, 0x5b, 0x9e, 0x99,
|
||||
0x01, 0xf7, 0xdb, 0xfc, 0xbb, 0x48, 0x57, 0x6d, 0xaf, 0x98, 0x87, 0x37, 0x33, 0x3b, 0x68, 0xf7, 0x95, 0x41, 0xf5, 0xbf,
|
||||
0xa9, 0x1f, 0xb3, 0xe8, 0x9b, 0x7f, 0x78, 0x46, 0xfe, 0xbf, 0xb0, 0xaf, 0x71, 0x3c, 0xee, 0x69, 0x59, 0x57, 0xfe, 0x3e,
|
||||
0xce, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0xd3, 0x2a, 0xac, 0xaa, 0xba, 0x8d, 0x3b,
|
||||
0xab, 0x65, 0xe4, 0xd6, 0xf9, 0xc5, 0xe5, 0xba, 0x2e, 0x99, 0x55, 0xe4, 0x23, 0x6b, 0xf9, 0x6a, 0xd6, 0x34, 0xe6, 0xcf,
|
||||
0x81, 0x48, 0xad, 0x96, 0x3b, 0x3f, 0x53, 0x32, 0x35, 0xec, 0xd7, 0xcd, 0xb6, 0xff, 0xbd, 0x7e, 0x43, 0xbe, 0x92, 0xc8,
|
||||
0xaa, 0xf5, 0x05, 0x75, 0xf5, 0x9f, 0x8e, 0x82, 0xd5, 0x8a, 0xd9, 0x35, 0xf4, 0xf7, 0xe6, 0x7f, 0x74, 0xf5, 0xdb, 0xf5,
|
||||
0x9f, 0x55, 0xd4, 0x5b, 0x89, 0xc4, 0xca, 0xbc, 0xca, 0xfc, 0x57, 0x9c, 0xe3, 0x51, 0xf6, 0xbe, 0xb1, 0xb8, 0x4e, 0xc1,
|
||||
0x95, 0x56, 0xe2, 0xd9, 0x6b, 0xa2, 0xe2, 0xd5, 0xf9, 0xaf, 0xad, 0x96, 0x5b, 0xff, 0x9d, 0x90, 0xaf, 0x4f, 0x70, 0x5f,
|
||||
0xfe, 0xff, 0x6e, 0x57, 0x75, 0xfe, 0x33, 0xef, 0x5b, 0x53, 0xd9, 0x6a, 0x2e, 0xff, 0x3d, 0x56, 0xf6, 0xc5, 0xf2, 0x9e,
|
||||
0x47, 0x26, 0xff, 0x63, 0xfd, 0xb6, 0x15, 0xf9, 0xcf, 0x57, 0xe6, 0x39, 0x36, 0x65, 0xfd, 0x28, 0x4e, 0xf9, 0xfa, 0xfc,
|
||||
0xd7, 0x9f, 0x69, 0xf1, 0x9f, 0xff, 0xbb, 0xac, 0xb6, 0x7d, 0x4b, 0xfe, 0x73, 0xd5, 0x69, 0x66, 0xf3, 0x9f, 0xbd, 0xe2,
|
||||
0xbd, 0xbb, 0xfd, 0x5f, 0x73, 0x4d, 0xb0, 0x3e, 0xff, 0x91, 0xaa, 0x0c, 0xde, 0x27, 0xff, 0xb1, 0x20, 0xb9, 0xf2, 0x9f,
|
||||
0x6d, 0x03, 0xdf, 0x90, 0xff, 0xea, 0xe7, 0x7c, 0x74, 0xc8, 0x7f, 0x6e, 0xc4, 0x2b, 0x4a, 0x73, 0x1a, 0xed, 0xdb, 0xff,
|
||||
0x63, 0xdb, 0xf8, 0x5f, 0xff, 0xfc, 0x47, 0x49, 0xbf, 0xf0, 0xce, 0xfc, 0xd7, 0x57, 0xcb, 0xcd, 0x56, 0x0d, 0xbc, 0x3e,
|
||||
0xd6, 0xd7, 0xa7, 0xfd, 0xaf, 0xbf, 0x1e, 0x5e, 0xd1, 0xfe, 0x1f, 0x0b, 0xee, 0x52, 0xac, 0xbf, 0xaa, 0xee, 0x9f, 0xff,
|
||||
0xaa, 0xeb, 0xc2, 0xcc, 0x73, 0x93, 0x46, 0xef, 0xff, 0xc5, 0xe9, 0x59, 0x3c, 0x7a, 0xe7, 0x68, 0x3c, 0x4f, 0x31, 0xf8,
|
||||
0xf4, 0xa2, 0xfe, 0xd7, 0xff, 0x95, 0xed, 0xff, 0x9a, 0x51, 0xef, 0xae, 0xa3, 0xe9, 0xd7, 0x9e, 0x2f, 0xde, 0x63, 0x8b,
|
||||
0xf3, 0x4f, 0xdc, 0x8a, 0xed, 0x57, 0x56, 0x7d, 0x8e, 0xf1, 0xfc, 0x67, 0x5f, 0x93, 0xff, 0x8a, 0x8a, 0xd3, 0xf5, 0xed,
|
||||
0xe1, 0xf7, 0xe6, 0xbc, 0xcc, 0xdc, 0x75, 0xef, 0xb1, 0xb5, 0xd5, 0xe7, 0xc5, 0x3b, 0xf2, 0x5f, 0xf7, 0xd9, 0x63, 0xc9,
|
||||
0xb7, 0x4a, 0xa6, 0x96, 0x77, 0x2c, 0x9f, 0x0f, 0x23, 0xff, 0xcf, 0xcd, 0x7f, 0xdc, 0x70, 0xcf, 0xf0, 0x58, 0x3c, 0x1e,
|
||||
0xdd, 0x61, 0x0f, 0xef, 0xcd, 0x3f, 0xfd, 0xce, 0x88, 0xee, 0xf9, 0x5f, 0x3f, 0x2f, 0xf4, 0xcb, 0xed, 0x81, 0x2a, 0xf9,
|
||||
0x3c, 0xf1, 0x5a, 0x56, 0xfe, 0x73, 0xfd, 0x96, 0xd9, 0xf9, 0xff, 0x20, 0xff, 0xdf, 0xdd, 0xeb, 0xd0, 0x7f, 0x76, 0x03,
|
||||
0xf2, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xfb, 0x67, 0xbb, 0x45, 0x6a, 0x7d, 0x5b, 0x0c, 0x56,
|
||||
0x32, 0x88, 0x74, 0xa5, 0xf8, 0x6c, 0x7d, 0x8c, 0x18, 0x5c, 0xf7, 0x35, 0x5f, 0x37, 0xf8, 0xfa, 0xf3, 0x15, 0x66, 0xd6,
|
||||
0x0f, 0xae, 0x3f, 0x8e, 0x75, 0x15, 0xd6, 0xeb, 0x8f, 0x52, 0xe6, 0xef, 0x47, 0x79, 0xed, 0xb5, 0xfe, 0x99, 0x99, 0xdf,
|
||||
0xcf, 0x99, 0x95, 0xbe, 0xb5, 0x67, 0xd4, 0xb5, 0x63, 0x5b, 0xb7, 0xba, 0x33, 0x26, 0x92, 0x3e, 0x3e, 0x4f, 0xfb, 0xf7,
|
||||
0xaa, 0x9f, 0x5d, 0x8f, 0x63, 0x2e, 0x4b, 0x51, 0xba, 0x06, 0x37, 0xf7, 0xd7, 0x9f, 0xb6, 0xaf, 0xaf, 0x57, 0x01, 0xd8,
|
||||
0xdd, 0x5f, 0xc8, 0x3f, 0x35, 0x28, 0x6e, 0x9f, 0x8b, 0xbf, 0xae, 0xa2, 0x4e, 0x5d, 0xad, 0xe2, 0xbb, 0x8f, 0xe3, 0x71,
|
||||
0xfa, 0x0c, 0x93, 0x68, 0xb8, 0xbe, 0xe5, 0xac, 0xff, 0x18, 0x2d, 0xf7, 0x75, 0x5c, 0xee, 0x23, 0xe6, 0xf3, 0x9f, 0x7f,
|
||||
0x3e, 0x53, 0x14, 0x57, 0xe6, 0xcd, 0x57, 0xc7, 0xac, 0xde, 0xfa, 0x7c, 0xfb, 0x9f, 0xb9, 0x52, 0x88, 0xe5, 0x9f, 0xaa,
|
||||
0xf6, 0x3b, 0x39, 0x4e, 0x6a, 0xb9, 0xae, 0x3e, 0x2b, 0x56, 0xbc, 0x12, 0x1b, 0xce, 0xad, 0xdc, 0xf5, 0xde, 0xb5, 0x33,
|
||||
0x64, 0x26, 0xff, 0x7d, 0x8f, 0xcd, 0xd1, 0xe6, 0x95, 0xdd, 0xf9, 0x7f, 0xee, 0x2b, 0xef, 0xc9, 0x7f, 0x9f, 0xb3, 0xef,
|
||||
0xb7, 0xcf, 0x33, 0xfb, 0xac, 0xc2, 0x0e, 0x47, 0xe0, 0xac, 0x4e, 0xec, 0x5b, 0xf3, 0x1f, 0x3f, 0x8e, 0x0c, 0xf6, 0xff,
|
||||
0x4e, 0xfe, 0xb9, 0x5f, 0xf0, 0xb4, 0xfc, 0x57, 0xb6, 0xcb, 0x15, 0x6d, 0xf9, 0xde, 0x6b, 0x66, 0xed, 0xbf, 0xf6, 0xff,
|
||||
0xdb, 0xf9, 0xbf, 0xff, 0x2a, 0x6c, 0x6f, 0x66, 0xfa, 0xed, 0xb3, 0x3e, 0xf9, 0x1f, 0x19, 0xf3, 0x92, 0xff, 0xb7, 0xe7,
|
||||
0xff, 0x09, 0xdf, 0x4d, 0xb3, 0xf7, 0xff, 0xde, 0x31, 0xfe, 0x57, 0xf5, 0x8a, 0xf6, 0x7f, 0x6e, 0x8c, 0xfd, 0xee, 0x6d,
|
||||
0xcb, 0x1f, 0xf3, 0xb7, 0x1c, 0x85, 0xd1, 0x3e, 0x80, 0xfe, 0xbf, 0xfc, 0xbf, 0x27, 0xff, 0x47, 0x7a, 0xf6, 0xc1, 0xb3,
|
||||
0xae, 0x33, 0x46, 0x8e, 0xc7, 0x73, 0xf2, 0x5f, 0x79, 0xc7, 0xee, 0x29, 0xe3, 0x7f, 0x4f, 0xfb, 0x66, 0x78, 0x63, 0xfe,
|
||||
0xef, 0xbd, 0xd7, 0xda, 0x63, 0xe6, 0xef, 0x33, 0xfb, 0x32, 0x4f, 0xce, 0xff, 0xb3, 0xfb, 0x64, 0xc7, 0x6d, 0x57, 0x85,
|
||||
0x51, 0xb8, 0xa7, 0x79, 0x46, 0xfe, 0x63, 0x53, 0xfe, 0x47, 0xc6, 0x06, 0xde, 0x9d, 0xff, 0xf1, 0xd6, 0x2a, 0x6e, 0x1f,
|
||||
0x63, 0x96, 0xff, 0xbb, 0xf3, 0xbf, 0x7f, 0xeb, 0x77, 0xf5, 0xc4, 0x62, 0x49, 0xd2, 0xc7, 0x8f, 0xc9, 0x13, 0xfb, 0xa4,
|
||||
0x3b, 0xb7, 0x4d, 0xfe, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xef, 0xcc, 0x00, 0x1e, 0x7b, 0xb5,
|
||||
0x43, 0x05, 0xfd, 0x23, 0x5d, 0x6d, 0xbd, 0xee, 0xf3, 0x1e, 0x89, 0xaa, 0xee, 0x99, 0x6d, 0xe8, 0x5c, 0x41, 0xdf, 0xac,
|
||||
0xdb, 0xb7, 0x7e, 0x03, 0xf4, 0xae, 0xa0, 0x7f, 0x5e, 0xe5, 0x63, 0xfd, 0xe7, 0xad, 0x9c, 0x3f, 0xdf, 0xbb, 0x82, 0x7e,
|
||||
0xbf, 0xb5, 0xab, 0xf4, 0xfb, 0x26, 0xd9, 0x59, 0x41, 0x7f, 0xbc, 0xbf, 0x71, 0x6c, 0xdc, 0xae, 0x6c, 0x35, 0x83, 0xae,
|
||||
0x15, 0xf4, 0xbb, 0xaf, 0x05, 0xe3, 0xfe, 0xb5, 0x59, 0x63, 0xcf, 0xb4, 0xa8, 0xaa, 0xa0, 0xf1, 0xb4, 0x0a, 0xfa, 0x67,
|
||||
0x19, 0x7b, 0x52, 0x9d, 0x6c, 0xf9, 0xb7, 0xfe, 0xf7, 0xbe, 0xfc, 0xf7, 0xad, 0x93, 0x91, 0xad, 0x52, 0xd3, 0xbb, 0x82,
|
||||
0xa6, 0xfc, 0xcb, 0xbf, 0xfc, 0xaf, 0xaa, 0x91, 0x20, 0xff, 0x3c, 0x3d, 0xff, 0x3b, 0x2b, 0xe8, 0xa8, 0xa0, 0xb9, 0xbb,
|
||||
0x22, 0xd0, 0x21, 0xff, 0xae, 0xff, 0x1f, 0xf1, 0x04, 0x3d, 0xf9, 0x5f, 0xf3, 0x8a, 0xfc, 0x7f, 0xfd, 0xde, 0x9f, 0x0a,
|
||||
0xda, 0x2b, 0xf3, 0x1f, 0x4d, 0xc7, 0xff, 0xf6, 0xdf, 0xf1, 0xe1, 0x89, 0xf9, 0xd7, 0xff, 0xcf, 0xe7, 0xe2, 0xfe, 0x0a,
|
||||
0x9a, 0xf9, 0x34, 0xcb, 0xbf, 0xfe, 0x7f, 0xc5, 0xfc, 0x9f, 0x9a, 0xb6, 0x47, 0x05, 0xcd, 0xb9, 0x6d, 0x93, 0x7f, 0xd0,
|
||||
0x2b, 0xd4, 0xff, 0x07, 0xbd, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xf9, 0xf3, 0x9f, 0xfd, 0x00, 0xf2, 0x0f, 0x7c, 0x2e, 0xff, 0xff, 0x00 };
|
||||
|
||||
// Font glyphs rectangles data (on atlas)
|
||||
static const Rectangle terminalFontRecs[189] = {
|
||||
{ 4, 4, 4 , 16 },
|
||||
{ 16, 4, 1 , 11 },
|
||||
{ 25, 4, 3 , 3 },
|
||||
{ 36, 4, 6 , 11 },
|
||||
{ 50, 4, 5 , 11 },
|
||||
{ 63, 4, 5 , 11 },
|
||||
{ 76, 4, 5 , 11 },
|
||||
{ 89, 4, 1 , 2 },
|
||||
{ 98, 4, 2 , 13 },
|
||||
{ 108, 4, 2 , 13 },
|
||||
{ 118, 4, 3 , 3 },
|
||||
{ 129, 4, 5 , 5 },
|
||||
{ 142, 4, 1 , 3 },
|
||||
{ 151, 4, 5 , 1 },
|
||||
{ 164, 4, 1 , 1 },
|
||||
{ 173, 4, 6 , 12 },
|
||||
{ 187, 4, 5 , 11 },
|
||||
{ 200, 4, 2 , 11 },
|
||||
{ 210, 4, 5 , 11 },
|
||||
{ 223, 4, 5 , 11 },
|
||||
{ 236, 4, 5 , 11 },
|
||||
{ 249, 4, 5 , 11 },
|
||||
{ 262, 4, 5 , 11 },
|
||||
{ 275, 4, 5 , 11 },
|
||||
{ 288, 4, 5 , 11 },
|
||||
{ 301, 4, 5 , 11 },
|
||||
{ 314, 4, 1 , 8 },
|
||||
{ 323, 4, 1 , 10 },
|
||||
{ 332, 4, 4 , 5 },
|
||||
{ 344, 4, 5 , 3 },
|
||||
{ 357, 4, 4 , 5 },
|
||||
{ 369, 4, 5 , 11 },
|
||||
{ 382, 4, 11 , 11 },
|
||||
{ 401, 4, 5 , 11 },
|
||||
{ 414, 4, 5 , 11 },
|
||||
{ 427, 4, 5 , 11 },
|
||||
{ 440, 4, 5 , 11 },
|
||||
{ 453, 4, 5 , 11 },
|
||||
{ 466, 4, 5 , 11 },
|
||||
{ 479, 4, 5 , 11 },
|
||||
{ 492, 4, 5 , 11 },
|
||||
{ 4, 28, 1 , 11 },
|
||||
{ 13, 28, 5 , 11 },
|
||||
{ 26, 28, 5 , 11 },
|
||||
{ 39, 28, 5 , 11 },
|
||||
{ 52, 28, 7 , 11 },
|
||||
{ 67, 28, 5 , 11 },
|
||||
{ 80, 28, 5 , 11 },
|
||||
{ 93, 28, 5 , 11 },
|
||||
{ 106, 28, 5 , 13 },
|
||||
{ 119, 28, 5 , 11 },
|
||||
{ 132, 28, 5 , 11 },
|
||||
{ 145, 28, 5 , 11 },
|
||||
{ 158, 28, 5 , 11 },
|
||||
{ 171, 28, 5 , 11 },
|
||||
{ 184, 28, 7 , 11 },
|
||||
{ 199, 28, 5 , 11 },
|
||||
{ 212, 28, 5 , 11 },
|
||||
{ 225, 28, 5 , 11 },
|
||||
{ 238, 28, 2 , 13 },
|
||||
{ 248, 28, 6 , 12 },
|
||||
{ 262, 28, 2 , 13 },
|
||||
{ 272, 28, 5 , 4 },
|
||||
{ 285, 28, 5 , 1 },
|
||||
{ 298, 28, 2 , 2 },
|
||||
{ 308, 28, 5 , 8 },
|
||||
{ 321, 28, 5 , 11 },
|
||||
{ 334, 28, 5 , 8 },
|
||||
{ 347, 28, 5 , 11 },
|
||||
{ 360, 28, 5 , 8 },
|
||||
{ 373, 28, 4 , 11 },
|
||||
{ 385, 28, 5 , 10 },
|
||||
{ 398, 28, 5 , 11 },
|
||||
{ 411, 28, 1 , 11 },
|
||||
{ 420, 28, 1 , 13 },
|
||||
{ 429, 28, 5 , 11 },
|
||||
{ 442, 28, 1 , 11 },
|
||||
{ 451, 28, 7 , 8 },
|
||||
{ 466, 28, 5 , 8 },
|
||||
{ 479, 28, 5 , 8 },
|
||||
{ 492, 28, 5 , 10 },
|
||||
{ 4, 52, 5 , 10 },
|
||||
{ 17, 52, 4 , 8 },
|
||||
{ 29, 52, 5 , 8 },
|
||||
{ 42, 52, 3 , 11 },
|
||||
{ 53, 52, 5 , 8 },
|
||||
{ 66, 52, 5 , 8 },
|
||||
{ 79, 52, 7 , 8 },
|
||||
{ 94, 52, 5 , 8 },
|
||||
{ 107, 52, 5 , 10 },
|
||||
{ 120, 52, 5 , 8 },
|
||||
{ 133, 52, 3 , 13 },
|
||||
{ 144, 52, 1 , 15 },
|
||||
{ 153, 52, 3 , 13 },
|
||||
{ 164, 52, 5 , 3 },
|
||||
{ 177, 52, 1 , 11 },
|
||||
{ 186, 52, 5 , 11 },
|
||||
{ 199, 52, 5 , 10 },
|
||||
{ 212, 52, 5 , 10 },
|
||||
{ 225, 52, 5 , 10 },
|
||||
{ 238, 52, 0 , 0 },
|
||||
{ 246, 52, 0 , 0 },
|
||||
{ 254, 52, 0 , 0 },
|
||||
{ 262, 52, 7 , 8 },
|
||||
{ 277, 52, 0 , 0 },
|
||||
{ 285, 52, 0 , 0 },
|
||||
{ 293, 52, 5 , 3 },
|
||||
{ 306, 52, 7 , 8 },
|
||||
{ 321, 52, 5 , 1 },
|
||||
{ 334, 52, 3 , 3 },
|
||||
{ 345, 52, 5 , 7 },
|
||||
{ 358, 52, 0 , 0 },
|
||||
{ 366, 52, 0 , 0 },
|
||||
{ 374, 52, 0 , 0 },
|
||||
{ 382, 52, 5 , 10 },
|
||||
{ 395, 52, 7 , 11 },
|
||||
{ 410, 52, 1 , 1 },
|
||||
{ 419, 52, 0 , 0 },
|
||||
{ 427, 52, 0 , 0 },
|
||||
{ 435, 52, 0 , 0 },
|
||||
{ 443, 52, 0 , 0 },
|
||||
{ 451, 52, 0 , 0 },
|
||||
{ 459, 52, 0 , 0 },
|
||||
{ 467, 52, 5 , 13 },
|
||||
{ 480, 52, 5 , 11 },
|
||||
{ 493, 52, 5 , 14 },
|
||||
{ 4, 76, 5 , 14 },
|
||||
{ 17, 76, 5 , 14 },
|
||||
{ 30, 76, 5 , 14 },
|
||||
{ 43, 76, 5 , 13 },
|
||||
{ 56, 76, 5 , 13 },
|
||||
{ 69, 76, 9 , 11 },
|
||||
{ 86, 76, 5 , 13 },
|
||||
{ 99, 76, 5 , 14 },
|
||||
{ 112, 76, 5 , 14 },
|
||||
{ 125, 76, 5 , 14 },
|
||||
{ 138, 76, 5 , 13 },
|
||||
{ 151, 76, 2 , 14 },
|
||||
{ 161, 76, 2 , 14 },
|
||||
{ 171, 76, 3 , 14 },
|
||||
{ 182, 76, 3 , 13 },
|
||||
{ 193, 76, 5 , 11 },
|
||||
{ 206, 76, 5 , 14 },
|
||||
{ 219, 76, 5 , 14 },
|
||||
{ 232, 76, 5 , 14 },
|
||||
{ 245, 76, 5 , 14 },
|
||||
{ 258, 76, 5 , 14 },
|
||||
{ 271, 76, 5 , 13 },
|
||||
{ 284, 76, 5 , 5 },
|
||||
{ 297, 76, 5 , 13 },
|
||||
{ 310, 76, 5 , 14 },
|
||||
{ 323, 76, 5 , 14 },
|
||||
{ 336, 76, 5 , 14 },
|
||||
{ 349, 76, 5 , 13 },
|
||||
{ 362, 76, 5 , 14 },
|
||||
{ 375, 76, 5 , 11 },
|
||||
{ 388, 76, 5 , 11 },
|
||||
{ 401, 76, 5 , 11 },
|
||||
{ 414, 76, 5 , 11 },
|
||||
{ 427, 76, 5 , 11 },
|
||||
{ 440, 76, 5 , 11 },
|
||||
{ 453, 76, 5 , 10 },
|
||||
{ 466, 76, 5 , 10 },
|
||||
{ 479, 76, 9 , 8 },
|
||||
{ 496, 76, 5 , 10 },
|
||||
{ 4, 100, 5 , 11 },
|
||||
{ 17, 100, 5 , 11 },
|
||||
{ 30, 100, 5 , 11 },
|
||||
{ 43, 100, 5 , 10 },
|
||||
{ 56, 100, 2 , 11 },
|
||||
{ 66, 100, 2 , 11 },
|
||||
{ 76, 100, 3 , 11 },
|
||||
{ 87, 100, 3 , 10 },
|
||||
{ 98, 100, 5 , 11 },
|
||||
{ 111, 100, 5 , 11 },
|
||||
{ 124, 100, 5 , 11 },
|
||||
{ 137, 100, 5 , 11 },
|
||||
{ 150, 100, 5 , 11 },
|
||||
{ 163, 100, 5 , 11 },
|
||||
{ 176, 100, 5 , 10 },
|
||||
{ 189, 100, 5 , 5 },
|
||||
{ 202, 100, 5 , 10 },
|
||||
{ 215, 100, 5 , 11 },
|
||||
{ 228, 100, 5 , 11 },
|
||||
{ 241, 100, 5 , 11 },
|
||||
{ 254, 100, 5 , 10 },
|
||||
{ 267, 100, 5 , 13 },
|
||||
{ 280, 100, 4 , 8 },
|
||||
{ 292, 100, 5 , 12 },
|
||||
};
|
||||
|
||||
// Font glyphs info data
|
||||
// NOTE: No glyphs.image data provided
|
||||
static const GlyphInfo terminalFontGlyphs[189] = {
|
||||
{ 32, 0, 0, 4, { 0 }},
|
||||
{ 33, 1, 3, 3, { 0 }},
|
||||
{ 34, 1, 3, 5, { 0 }},
|
||||
{ 35, 1, 3, 8, { 0 }},
|
||||
{ 36, 1, 3, 7, { 0 }},
|
||||
{ 37, 1, 3, 7, { 0 }},
|
||||
{ 38, 1, 3, 7, { 0 }},
|
||||
{ 39, 1, 3, 3, { 0 }},
|
||||
{ 40, 1, 2, 4, { 0 }},
|
||||
{ 41, 1, 2, 4, { 0 }},
|
||||
{ 42, 1, 3, 5, { 0 }},
|
||||
{ 43, 1, 7, 7, { 0 }},
|
||||
{ 44, 1, 13, 3, { 0 }},
|
||||
{ 45, 1, 9, 7, { 0 }},
|
||||
{ 46, 1, 13, 3, { 0 }},
|
||||
{ 47, 1, 2, 8, { 0 }},
|
||||
{ 48, 1, 3, 7, { 0 }},
|
||||
{ 49, 1, 3, 4, { 0 }},
|
||||
{ 50, 1, 3, 7, { 0 }},
|
||||
{ 51, 1, 3, 7, { 0 }},
|
||||
{ 52, 1, 3, 7, { 0 }},
|
||||
{ 53, 1, 3, 7, { 0 }},
|
||||
{ 54, 1, 3, 7, { 0 }},
|
||||
{ 55, 1, 3, 7, { 0 }},
|
||||
{ 56, 1, 3, 7, { 0 }},
|
||||
{ 57, 1, 3, 7, { 0 }},
|
||||
{ 58, 1, 6, 3, { 0 }},
|
||||
{ 59, 1, 6, 3, { 0 }},
|
||||
{ 60, 1, 7, 6, { 0 }},
|
||||
{ 61, 1, 8, 7, { 0 }},
|
||||
{ 62, 1, 7, 6, { 0 }},
|
||||
{ 63, 1, 3, 7, { 0 }},
|
||||
{ 64, 2, 3, 15, { 0 }},
|
||||
{ 65, 1, 3, 7, { 0 }},
|
||||
{ 66, 1, 3, 7, { 0 }},
|
||||
{ 67, 1, 3, 7, { 0 }},
|
||||
{ 68, 1, 3, 7, { 0 }},
|
||||
{ 69, 1, 3, 7, { 0 }},
|
||||
{ 70, 1, 3, 7, { 0 }},
|
||||
{ 71, 1, 3, 7, { 0 }},
|
||||
{ 72, 1, 3, 7, { 0 }},
|
||||
{ 73, 1, 3, 3, { 0 }},
|
||||
{ 74, 1, 3, 7, { 0 }},
|
||||
{ 75, 1, 3, 7, { 0 }},
|
||||
{ 76, 1, 3, 7, { 0 }},
|
||||
{ 77, 1, 3, 9, { 0 }},
|
||||
{ 78, 1, 3, 7, { 0 }},
|
||||
{ 79, 1, 3, 7, { 0 }},
|
||||
{ 80, 1, 3, 7, { 0 }},
|
||||
{ 81, 1, 3, 7, { 0 }},
|
||||
{ 82, 1, 3, 7, { 0 }},
|
||||
{ 83, 1, 3, 7, { 0 }},
|
||||
{ 84, 1, 3, 7, { 0 }},
|
||||
{ 85, 1, 3, 7, { 0 }},
|
||||
{ 86, 1, 3, 7, { 0 }},
|
||||
{ 87, 1, 3, 9, { 0 }},
|
||||
{ 88, 1, 3, 7, { 0 }},
|
||||
{ 89, 1, 3, 7, { 0 }},
|
||||
{ 90, 1, 3, 7, { 0 }},
|
||||
{ 91, 1, 2, 4, { 0 }},
|
||||
{ 92, 1, 2, 8, { 0 }},
|
||||
{ 93, 1, 2, 4, { 0 }},
|
||||
{ 94, 1, 3, 7, { 0 }},
|
||||
{ 95, 1, 15, 7, { 0 }},
|
||||
{ 96, 1, 0, 4, { 0 }},
|
||||
{ 97, 1, 6, 7, { 0 }},
|
||||
{ 98, 1, 3, 7, { 0 }},
|
||||
{ 99, 1, 6, 7, { 0 }},
|
||||
{ 100, 1, 3, 7, { 0 }},
|
||||
{ 101, 1, 6, 7, { 0 }},
|
||||
{ 102, 1, 3, 6, { 0 }},
|
||||
{ 103, 1, 6, 7, { 0 }},
|
||||
{ 104, 1, 3, 7, { 0 }},
|
||||
{ 105, 1, 3, 3, { 0 }},
|
||||
{ 106, 1, 3, 3, { 0 }},
|
||||
{ 107, 1, 3, 7, { 0 }},
|
||||
{ 108, 1, 3, 3, { 0 }},
|
||||
{ 109, 1, 6, 9, { 0 }},
|
||||
{ 110, 1, 6, 7, { 0 }},
|
||||
{ 111, 1, 6, 7, { 0 }},
|
||||
{ 112, 1, 6, 7, { 0 }},
|
||||
{ 113, 1, 6, 7, { 0 }},
|
||||
{ 114, 1, 6, 6, { 0 }},
|
||||
{ 115, 1, 6, 7, { 0 }},
|
||||
{ 116, 1, 3, 5, { 0 }},
|
||||
{ 117, 1, 6, 7, { 0 }},
|
||||
{ 118, 1, 6, 7, { 0 }},
|
||||
{ 119, 1, 6, 9, { 0 }},
|
||||
{ 120, 1, 6, 7, { 0 }},
|
||||
{ 121, 1, 6, 7, { 0 }},
|
||||
{ 122, 1, 6, 7, { 0 }},
|
||||
{ 123, 1, 2, 5, { 0 }},
|
||||
{ 124, 1, 1, 3, { 0 }},
|
||||
{ 125, 1, 2, 5, { 0 }},
|
||||
{ 126, 1, 8, 7, { 0 }},
|
||||
{ 161, 1, 3, 3, { 0 }},
|
||||
{ 162, 1, 3, 7, { 0 }},
|
||||
{ 163, 1, 3, 7, { 0 }},
|
||||
{ 8364, 1, 3, 7, { 0 }},
|
||||
{ 165, 1, 3, 7, { 0 }},
|
||||
{ 352, 0, 0, 0, { 0 }},
|
||||
{ 167, 0, 0, 0, { 0 }},
|
||||
{ 353, 0, 0, 0, { 0 }},
|
||||
{ 169, 1, 3, 9, { 0 }},
|
||||
{ 170, 0, 0, 0, { 0 }},
|
||||
{ 171, 0, 0, 0, { 0 }},
|
||||
{ 172, 1, 8, 7, { 0 }},
|
||||
{ 174, 1, 3, 9, { 0 }},
|
||||
{ 175, 1, 1, 7, { 0 }},
|
||||
{ 176, 1, 0, 5, { 0 }},
|
||||
{ 177, 1, 7, 7, { 0 }},
|
||||
{ 178, 0, 0, 0, { 0 }},
|
||||
{ 179, 0, 0, 0, { 0 }},
|
||||
{ 381, 0, 0, 0, { 0 }},
|
||||
{ 181, 1, 6, 7, { 0 }},
|
||||
{ 182, 1, 3, 9, { 0 }},
|
||||
{ 183, 1, 8, 3, { 0 }},
|
||||
{ 382, 0, 0, 0, { 0 }},
|
||||
{ 185, 0, 0, 0, { 0 }},
|
||||
{ 186, 0, 0, 0, { 0 }},
|
||||
{ 187, 0, 0, 0, { 0 }},
|
||||
{ 338, 0, 0, 0, { 0 }},
|
||||
{ 339, 0, 0, 0, { 0 }},
|
||||
{ 376, 1, 1, 7, { 0 }},
|
||||
{ 191, 1, 3, 7, { 0 }},
|
||||
{ 192, 1, 0, 7, { 0 }},
|
||||
{ 193, 1, 0, 7, { 0 }},
|
||||
{ 194, 1, 0, 7, { 0 }},
|
||||
{ 195, 1, 0, 7, { 0 }},
|
||||
{ 196, 1, 1, 7, { 0 }},
|
||||
{ 197, 1, 1, 7, { 0 }},
|
||||
{ 198, 1, 3, 11, { 0 }},
|
||||
{ 199, 1, 3, 7, { 0 }},
|
||||
{ 200, 1, 0, 7, { 0 }},
|
||||
{ 201, 1, 0, 7, { 0 }},
|
||||
{ 202, 1, 0, 7, { 0 }},
|
||||
{ 203, 1, 1, 7, { 0 }},
|
||||
{ 204, 0, 0, 3, { 0 }},
|
||||
{ 205, 1, 0, 3, { 0 }},
|
||||
{ 206, 0, 0, 3, { 0 }},
|
||||
{ 207, 0, 1, 3, { 0 }},
|
||||
{ 208, 1, 3, 7, { 0 }},
|
||||
{ 209, 1, 0, 7, { 0 }},
|
||||
{ 210, 1, 0, 7, { 0 }},
|
||||
{ 211, 1, 0, 7, { 0 }},
|
||||
{ 212, 1, 0, 7, { 0 }},
|
||||
{ 213, 1, 0, 7, { 0 }},
|
||||
{ 214, 1, 1, 7, { 0 }},
|
||||
{ 215, 1, 7, 7, { 0 }},
|
||||
{ 216, 1, 2, 7, { 0 }},
|
||||
{ 217, 1, 0, 7, { 0 }},
|
||||
{ 218, 1, 0, 7, { 0 }},
|
||||
{ 219, 1, 0, 7, { 0 }},
|
||||
{ 220, 1, 1, 7, { 0 }},
|
||||
{ 221, 1, 0, 7, { 0 }},
|
||||
{ 222, 1, 3, 7, { 0 }},
|
||||
{ 223, 1, 3, 7, { 0 }},
|
||||
{ 224, 1, 3, 7, { 0 }},
|
||||
{ 225, 1, 3, 7, { 0 }},
|
||||
{ 226, 1, 3, 7, { 0 }},
|
||||
{ 227, 1, 3, 7, { 0 }},
|
||||
{ 228, 1, 4, 7, { 0 }},
|
||||
{ 229, 1, 4, 7, { 0 }},
|
||||
{ 230, 1, 6, 11, { 0 }},
|
||||
{ 231, 1, 6, 7, { 0 }},
|
||||
{ 232, 1, 3, 7, { 0 }},
|
||||
{ 233, 1, 3, 7, { 0 }},
|
||||
{ 234, 1, 3, 7, { 0 }},
|
||||
{ 235, 1, 4, 7, { 0 }},
|
||||
{ 236, 0, 3, 3, { 0 }},
|
||||
{ 237, 1, 3, 3, { 0 }},
|
||||
{ 238, 0, 3, 3, { 0 }},
|
||||
{ 239, 0, 4, 3, { 0 }},
|
||||
{ 240, 1, 3, 7, { 0 }},
|
||||
{ 241, 1, 3, 7, { 0 }},
|
||||
{ 242, 1, 3, 7, { 0 }},
|
||||
{ 243, 1, 3, 7, { 0 }},
|
||||
{ 244, 1, 3, 7, { 0 }},
|
||||
{ 245, 1, 3, 7, { 0 }},
|
||||
{ 246, 1, 4, 7, { 0 }},
|
||||
{ 247, 1, 7, 7, { 0 }},
|
||||
{ 248, 1, 5, 7, { 0 }},
|
||||
{ 249, 1, 3, 7, { 0 }},
|
||||
{ 250, 1, 3, 7, { 0 }},
|
||||
{ 251, 1, 3, 7, { 0 }},
|
||||
{ 252, 1, 4, 7, { 0 }},
|
||||
{ 253, 1, 3, 7, { 0 }},
|
||||
{ 254, 1, 6, 6, { 0 }},
|
||||
{ 255, 1, 4, 7, { 0 }},
|
||||
};
|
||||
|
||||
// Style loading function: Terminal
|
||||
static void GuiLoadStyleTerminal(void)
|
||||
{
|
||||
// Load style properties provided
|
||||
// NOTE: Default properties are propagated
|
||||
for (int i = 0; i < TERMINAL_STYLE_PROPS_COUNT; i++)
|
||||
{
|
||||
GuiSetStyle(terminalStyleProps[i].controlId, terminalStyleProps[i].propertyId, terminalStyleProps[i].propertyValue);
|
||||
}
|
||||
|
||||
// Custom font loading
|
||||
// NOTE: Compressed font image data (DEFLATE), it requires DecompressData() function
|
||||
int terminalFontDataSize = 0;
|
||||
unsigned char *data = DecompressData(terminalFontData, TERMINAL_STYLE_FONT_ATLAS_COMP_SIZE, &terminalFontDataSize);
|
||||
Image imFont = { data, 512, 256, 1, 2 };
|
||||
|
||||
Font font = { 0 };
|
||||
font.baseSize = 16;
|
||||
font.glyphCount = 189;
|
||||
|
||||
// Load texture from image
|
||||
font.texture = LoadTextureFromImage(imFont);
|
||||
UnloadImage(imFont); // Uncompressed image data can be unloaded from memory
|
||||
|
||||
// Copy char recs data from global fontRecs
|
||||
// NOTE: Required to avoid issues if trying to free font
|
||||
font.recs = (Rectangle *)RAYGUI_MALLOC(font.glyphCount*sizeof(Rectangle));
|
||||
memcpy(font.recs, terminalFontRecs, font.glyphCount*sizeof(Rectangle));
|
||||
|
||||
// Copy font char info data from global fontChars
|
||||
// NOTE: Required to avoid issues if trying to free font
|
||||
font.glyphs = (GlyphInfo *)RAYGUI_MALLOC(font.glyphCount*sizeof(GlyphInfo));
|
||||
memcpy(font.glyphs, terminalFontGlyphs, font.glyphCount*sizeof(GlyphInfo));
|
||||
|
||||
GuiSetFont(font);
|
||||
|
||||
// Setup a white rectangle on the font to be used on shapes drawing,
|
||||
// it makes possible to draw shapes and text (full UI) in a single draw call
|
||||
Rectangle fontWhiteRec = { 510, 254, 1, 1 };
|
||||
SetShapesTexture(font.texture, fontWhiteRec);
|
||||
|
||||
//-----------------------------------------------------------------
|
||||
|
||||
// TODO: Custom user style setup: Set specific properties here (if required)
|
||||
// i.e. Controls specific BORDER_WIDTH, TEXT_PADDING, TEXT_ALIGNMENT
|
||||
}
|
||||