1/**********************************************************************************************
2*
3* raylib configuration flags
4*
5* This file defines all the configuration flags for the different raylib modules
6*
7* LICENSE: zlib/libpng
8*
9* Copyright (c) 2018-2020 Ahmad Fatoum & Ramon Santamaria (@raysan5)
10*
11* This software is provided "as-is", without any express or implied warranty. In no event
12* will the authors be held liable for any damages arising from the use of this software.
13*
14* Permission is granted to anyone to use this software for any purpose, including commercial
15* applications, and to alter it and redistribute it freely, subject to the following restrictions:
16*
17* 1. The origin of this software must not be misrepresented; you must not claim that you
18* wrote the original software. If you use this software in a product, an acknowledgment
19* in the product documentation would be appreciated but is not required.
20*
21* 2. Altered source versions must be plainly marked as such, and must not be misrepresented
22* as being the original software.
23*
24* 3. This notice may not be removed or altered from any source distribution.
25*
26**********************************************************************************************/
27
28#define RAYLIB_VERSION "3.0"
29
30// Edit to control what features Makefile'd raylib is compiled with
31#if defined(RAYLIB_CMAKE)
32 // Edit CMakeOptions.txt for CMake instead
33 #include "cmake/config.h"
34#else
35
36//------------------------------------------------------------------------------------
37// Module: core - Configuration Flags
38//------------------------------------------------------------------------------------
39// Camera module is included (camera.h) and multiple predefined cameras are available: free, 1st/3rd person, orbital
40#define SUPPORT_CAMERA_SYSTEM 1
41// Gestures module is included (gestures.h) to support gestures detection: tap, hold, swipe, drag
42#define SUPPORT_GESTURES_SYSTEM 1
43// Mouse gestures are directly mapped like touches and processed by gestures system
44#define SUPPORT_MOUSE_GESTURES 1
45// Reconfigure standard input to receive key inputs, works with SSH connection.
46#define SUPPORT_SSH_KEYBOARD_RPI 1
47// Draw a mouse reference on screen (square cursor box)
48#define SUPPORT_MOUSE_CURSOR_RPI 1
49// Use busy wait loop for timing sync, if not defined, a high-resolution timer is setup and used
50//#define SUPPORT_BUSY_WAIT_LOOP 1
51// Use a half-busy wait loop, in this case frame sleeps for some time and runs a busy-wait-loop at the end
52#define SUPPORT_HALFBUSY_WAIT_LOOP
53// Wait for events passively (sleeping while no events) instead of polling them actively every frame
54//#define SUPPORT_EVENTS_WAITING 1
55// Allow automatic screen capture of current screen pressing F12, defined in KeyCallback()
56#define SUPPORT_SCREEN_CAPTURE 1
57// Allow automatic gif recording of current screen pressing CTRL+F12, defined in KeyCallback()
58//#define SUPPORT_GIF_RECORDING 1
59// Allow scale all the drawn content to match the high-DPI equivalent size (only PLATFORM_DESKTOP)
60//#define SUPPORT_HIGH_DPI 1
61// Support CompressData() and DecompressData() functions
62#define SUPPORT_COMPRESSION_API 1
63// Support saving binary data automatically to a generated storage.data file. This file is managed internally.
64#define SUPPORT_DATA_STORAGE 1
65
66//------------------------------------------------------------------------------------
67// Module: rlgl - Configuration Flags
68//------------------------------------------------------------------------------------
69// Support VR simulation functionality (stereo rendering)
70#define SUPPORT_VR_SIMULATOR 1
71
72//------------------------------------------------------------------------------------
73// Module: shapes - Configuration Flags
74//------------------------------------------------------------------------------------
75// Draw rectangle shapes using font texture white character instead of default white texture
76// Allows drawing rectangles and text with a single draw call, very useful for GUI systems!
77#define SUPPORT_FONT_TEXTURE 1
78// Use QUADS instead of TRIANGLES for drawing when possible
79// Some lines-based shapes could still use lines
80#define SUPPORT_QUADS_DRAW_MODE 1
81
82//------------------------------------------------------------------------------------
83// Module: textures - Configuration Flags
84//------------------------------------------------------------------------------------
85// Selecte desired fileformats to be supported for image data loading
86#define SUPPORT_FILEFORMAT_PNG 1
87#define SUPPORT_FILEFORMAT_BMP 1
88#define SUPPORT_FILEFORMAT_TGA 1
89//#define SUPPORT_FILEFORMAT_JPG 1
90#define SUPPORT_FILEFORMAT_GIF 1
91//#define SUPPORT_FILEFORMAT_PSD 1
92#define SUPPORT_FILEFORMAT_DDS 1
93#define SUPPORT_FILEFORMAT_HDR 1
94#define SUPPORT_FILEFORMAT_KTX 1
95#define SUPPORT_FILEFORMAT_ASTC 1
96//#define SUPPORT_FILEFORMAT_PKM 1
97//#define SUPPORT_FILEFORMAT_PVR 1
98
99// Support image export functionality (.png, .bmp, .tga, .jpg)
100#define SUPPORT_IMAGE_EXPORT 1
101// Support multiple image editing functions to scale, adjust colors, flip, draw on images, crop...
102// If not defined only three image editing functions supported: ImageFormat(), ImageAlphaMask(), ImageToPOT()
103#define SUPPORT_IMAGE_MANIPULATION 1
104// Support procedural image generation functionality (gradient, spot, perlin-noise, cellular)
105#define SUPPORT_IMAGE_GENERATION 1
106
107//------------------------------------------------------------------------------------
108// Module: text - Configuration Flags
109//------------------------------------------------------------------------------------
110// Default font is loaded on window initialization to be available for the user to render simple text
111// NOTE: If enabled, uses external module functions to load default raylib font
112#define SUPPORT_DEFAULT_FONT 1
113// Selected desired font fileformats to be supported for loading
114#define SUPPORT_FILEFORMAT_FNT 1
115#define SUPPORT_FILEFORMAT_TTF 1
116
117//------------------------------------------------------------------------------------
118// Module: models - Configuration Flags
119//------------------------------------------------------------------------------------
120// Selected desired model fileformats to be supported for loading
121#define SUPPORT_FILEFORMAT_OBJ 1
122#define SUPPORT_FILEFORMAT_MTL 1
123#define SUPPORT_FILEFORMAT_IQM 1
124#define SUPPORT_FILEFORMAT_GLTF 1
125// Support procedural mesh generation functions, uses external par_shapes.h library
126// NOTE: Some generated meshes DO NOT include generated texture coordinates
127#define SUPPORT_MESH_GENERATION 1
128
129//------------------------------------------------------------------------------------
130// Module: audio - Configuration Flags
131//------------------------------------------------------------------------------------
132// Desired audio fileformats to be supported for loading
133#define SUPPORT_FILEFORMAT_WAV 1
134#define SUPPORT_FILEFORMAT_OGG 1
135#define SUPPORT_FILEFORMAT_XM 1
136#define SUPPORT_FILEFORMAT_MOD 1
137//#define SUPPORT_FILEFORMAT_FLAC 1
138#define SUPPORT_FILEFORMAT_MP3 1
139
140//------------------------------------------------------------------------------------
141// Module: utils - Configuration Flags
142//------------------------------------------------------------------------------------
143// Show TRACELOG() output messages
144// NOTE: By default LOG_DEBUG traces not shown
145#define SUPPORT_TRACELOG 1
146//#define SUPPORT_TRACELOG_DEBUG 1
147
148#endif //defined(RAYLIB_CMAKE)
149