|
| 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-2024 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 | +#ifndef CONFIG_H |
| 29 | +#define CONFIG_H |
| 30 | + |
| 31 | +//------------------------------------------------------------------------------------ |
| 32 | +// Module selection - Some modules could be avoided |
| 33 | +// Mandatory modules: rcore, rlgl, utils |
| 34 | +//------------------------------------------------------------------------------------ |
| 35 | +#define SUPPORT_MODULE_RSHAPES 1 |
| 36 | +#define SUPPORT_MODULE_RTEXTURES 1 |
| 37 | +#define SUPPORT_MODULE_RTEXT 1 // WARNING: It requires SUPPORT_MODULE_RTEXTURES to load sprite font textures |
| 38 | +#define SUPPORT_MODULE_RMODELS 1 |
| 39 | +#define SUPPORT_MODULE_RAUDIO 1 |
| 40 | + |
| 41 | +//------------------------------------------------------------------------------------ |
| 42 | +// Module: rcore - Configuration Flags |
| 43 | +//------------------------------------------------------------------------------------ |
| 44 | +// Camera module is included (rcamera.h) and multiple predefined cameras are available: free, 1st/3rd person, orbital |
| 45 | +#define SUPPORT_CAMERA_SYSTEM 1 |
| 46 | +// Gestures module is included (rgestures.h) to support gestures detection: tap, hold, swipe, drag |
| 47 | +#define SUPPORT_GESTURES_SYSTEM 1 |
| 48 | +// Include pseudo-random numbers generator (rprand.h), based on Xoshiro128** and SplitMix64 |
| 49 | +#define SUPPORT_RPRAND_GENERATOR 1 |
| 50 | +// Mouse gestures are directly mapped like touches and processed by gestures system |
| 51 | +#define SUPPORT_MOUSE_GESTURES 1 |
| 52 | +// Reconfigure standard input to receive key inputs, works with SSH connection. |
| 53 | +#define SUPPORT_SSH_KEYBOARD_RPI 1 |
| 54 | +// Setting a higher resolution can improve the accuracy of time-out intervals in wait functions. |
| 55 | +// However, it can also reduce overall system performance, because the thread scheduler switches tasks more often. |
| 56 | +#define SUPPORT_WINMM_HIGHRES_TIMER 1 |
| 57 | +// Use busy wait loop for timing sync, if not defined, a high-resolution timer is set up and used |
| 58 | +//#define SUPPORT_BUSY_WAIT_LOOP 1 |
| 59 | +// Use a partial-busy wait loop, in this case frame sleeps for most of the time, but then runs a busy loop at the end for accuracy |
| 60 | +#define SUPPORT_PARTIALBUSY_WAIT_LOOP 1 |
| 61 | +// Allow automatic screen capture of current screen pressing F12, defined in KeyCallback() |
| 62 | +#define SUPPORT_SCREEN_CAPTURE 1 |
| 63 | +// Allow automatic gif recording of current screen pressing CTRL+F12, defined in KeyCallback() |
| 64 | +#define SUPPORT_GIF_RECORDING 1 |
| 65 | +// Support CompressData() and DecompressData() functions |
| 66 | +#define SUPPORT_COMPRESSION_API 1 |
| 67 | +// Support automatic generated events, loading and recording of those events when required |
| 68 | +#define SUPPORT_AUTOMATION_EVENTS 1 |
| 69 | +// Support custom frame control, only for advanced users |
| 70 | +// By default EndDrawing() does this job: draws everything + SwapScreenBuffer() + manage frame timing + PollInputEvents() |
| 71 | +// Enabling this flag allows manual control of the frame processes, use at your own risk |
| 72 | +//#define SUPPORT_CUSTOM_FRAME_CONTROL 1 |
| 73 | + |
| 74 | +// rcore: Configuration values |
| 75 | +//------------------------------------------------------------------------------------ |
| 76 | +#define MAX_FILEPATH_CAPACITY 8192 // Maximum file paths capacity |
| 77 | +#define MAX_FILEPATH_LENGTH 4096 // Maximum length for filepaths (Linux PATH_MAX default value) |
| 78 | + |
| 79 | +#define MAX_KEYBOARD_KEYS 512 // Maximum number of keyboard keys supported |
| 80 | +#define MAX_MOUSE_BUTTONS 8 // Maximum number of mouse buttons supported |
| 81 | +#define MAX_GAMEPADS 4 // Maximum number of gamepads supported |
| 82 | +#define MAX_GAMEPAD_AXIS 8 // Maximum number of axis supported (per gamepad) |
| 83 | +#define MAX_GAMEPAD_BUTTONS 32 // Maximum number of buttons supported (per gamepad) |
| 84 | +#define MAX_GAMEPAD_VIBRATION_TIME 2.0f // Maximum vibration time in seconds |
| 85 | +#define MAX_TOUCH_POINTS 8 // Maximum number of touch points supported |
| 86 | +#define MAX_KEY_PRESSED_QUEUE 16 // Maximum number of keys in the key input queue |
| 87 | +#define MAX_CHAR_PRESSED_QUEUE 16 // Maximum number of characters in the char input queue |
| 88 | + |
| 89 | +#define MAX_DECOMPRESSION_SIZE 64 // Max size allocated for decompression in MB |
| 90 | + |
| 91 | +#define MAX_AUTOMATION_EVENTS 16384 // Maximum number of automation events to record |
| 92 | + |
| 93 | +//------------------------------------------------------------------------------------ |
| 94 | +// Module: rlgl - Configuration values |
| 95 | +//------------------------------------------------------------------------------------ |
| 96 | + |
| 97 | +// Enable OpenGL Debug Context (only available on OpenGL 4.3) |
| 98 | +//#define RLGL_ENABLE_OPENGL_DEBUG_CONTEXT 1 |
| 99 | + |
| 100 | +// Show OpenGL extensions and capabilities detailed logs on init |
| 101 | +//#define RLGL_SHOW_GL_DETAILS_INFO 1 |
| 102 | + |
| 103 | +//#define RL_DEFAULT_BATCH_BUFFER_ELEMENTS 4096 // Default internal render batch elements limits |
| 104 | +#define RL_DEFAULT_BATCH_BUFFERS 1 // Default number of batch buffers (multi-buffering) |
| 105 | +#define RL_DEFAULT_BATCH_DRAWCALLS 256 // Default number of batch draw calls (by state changes: mode, texture) |
| 106 | +#define RL_DEFAULT_BATCH_MAX_TEXTURE_UNITS 4 // Maximum number of textures units that can be activated on batch drawing (SetShaderValueTexture()) |
| 107 | + |
| 108 | +#define RL_MAX_MATRIX_STACK_SIZE 32 // Maximum size of internal Matrix stack |
| 109 | + |
| 110 | +#define RL_MAX_SHADER_LOCATIONS 32 // Maximum number of shader locations supported |
| 111 | + |
| 112 | +#define RL_CULL_DISTANCE_NEAR 0.01 // Default projection matrix near cull distance |
| 113 | +#define RL_CULL_DISTANCE_FAR 1000.0 // Default projection matrix far cull distance |
| 114 | + |
| 115 | +// Default shader vertex attribute locations |
| 116 | +#define RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION 0 |
| 117 | +#define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD 1 |
| 118 | +#define RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL 2 |
| 119 | +#define RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR 3 |
| 120 | +#define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT 4 |
| 121 | +#define RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 5 |
| 122 | + |
| 123 | +// Default shader vertex attribute names to set location points |
| 124 | +// NOTE: When a new shader is loaded, the following locations are tried to be set for convenience |
| 125 | +#define RL_DEFAULT_SHADER_ATTRIB_NAME_POSITION "vertexPosition" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION |
| 126 | +#define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD "vertexTexCoord" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD |
| 127 | +#define RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL "vertexNormal" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL |
| 128 | +#define RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR "vertexColor" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR |
| 129 | +#define RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT "vertexTangent" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT |
| 130 | +#define RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2 "vertexTexCoord2" // Bound by default to shader location: RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2 |
| 131 | + |
| 132 | +#define RL_DEFAULT_SHADER_UNIFORM_NAME_MVP "mvp" // model-view-projection matrix |
| 133 | +#define RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW "matView" // view matrix |
| 134 | +#define RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION "matProjection" // projection matrix |
| 135 | +#define RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL "matModel" // model matrix |
| 136 | +#define RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL "matNormal" // normal matrix (transpose(inverse(matModelView)) |
| 137 | +#define RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR "colDiffuse" // color diffuse (base tint color, multiplied by texture color) |
| 138 | +#define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0 "texture0" // texture0 (texture slot active 0) |
| 139 | +#define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1 "texture1" // texture1 (texture slot active 1) |
| 140 | +#define RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2 "texture2" // texture2 (texture slot active 2) |
| 141 | + |
| 142 | + |
| 143 | +//------------------------------------------------------------------------------------ |
| 144 | +// Module: rshapes - Configuration Flags |
| 145 | +//------------------------------------------------------------------------------------ |
| 146 | +// Use QUADS instead of TRIANGLES for drawing when possible |
| 147 | +// Some lines-based shapes could still use lines |
| 148 | +#define SUPPORT_QUADS_DRAW_MODE 1 |
| 149 | + |
| 150 | +// rshapes: Configuration values |
| 151 | +//------------------------------------------------------------------------------------ |
| 152 | +#define SPLINE_SEGMENT_DIVISIONS 24 // Spline segments subdivisions |
| 153 | + |
| 154 | + |
| 155 | +//------------------------------------------------------------------------------------ |
| 156 | +// Module: rtextures - Configuration Flags |
| 157 | +//------------------------------------------------------------------------------------ |
| 158 | +// Selecte desired fileformats to be supported for image data loading |
| 159 | +#define SUPPORT_FILEFORMAT_PNG 1 |
| 160 | +//#define SUPPORT_FILEFORMAT_BMP 1 |
| 161 | +//#define SUPPORT_FILEFORMAT_TGA 1 |
| 162 | +//#define SUPPORT_FILEFORMAT_JPG 1 |
| 163 | +#define SUPPORT_FILEFORMAT_GIF 1 |
| 164 | +#define SUPPORT_FILEFORMAT_QOI 1 |
| 165 | +//#define SUPPORT_FILEFORMAT_PSD 1 |
| 166 | +#define SUPPORT_FILEFORMAT_DDS 1 |
| 167 | +//#define SUPPORT_FILEFORMAT_HDR 1 |
| 168 | +//#define SUPPORT_FILEFORMAT_PIC 1 |
| 169 | +//#define SUPPORT_FILEFORMAT_KTX 1 |
| 170 | +//#define SUPPORT_FILEFORMAT_ASTC 1 |
| 171 | +//#define SUPPORT_FILEFORMAT_PKM 1 |
| 172 | +//#define SUPPORT_FILEFORMAT_PVR 1 |
| 173 | +//#define SUPPORT_FILEFORMAT_SVG 1 |
| 174 | + |
| 175 | +// Support image export functionality (.png, .bmp, .tga, .jpg, .qoi) |
| 176 | +#define SUPPORT_IMAGE_EXPORT 1 |
| 177 | +// Support procedural image generation functionality (gradient, spot, perlin-noise, cellular) |
| 178 | +#define SUPPORT_IMAGE_GENERATION 1 |
| 179 | +// Support multiple image editing functions to scale, adjust colors, flip, draw on images, crop... |
| 180 | +// If not defined, still some functions are supported: ImageFormat(), ImageCrop(), ImageToPOT() |
| 181 | +#define SUPPORT_IMAGE_MANIPULATION 1 |
| 182 | + |
| 183 | + |
| 184 | +//------------------------------------------------------------------------------------ |
| 185 | +// Module: rtext - Configuration Flags |
| 186 | +//------------------------------------------------------------------------------------ |
| 187 | +// Default font is loaded on window initialization to be available for the user to render simple text |
| 188 | +// NOTE: If enabled, uses external module functions to load default raylib font |
| 189 | +#define SUPPORT_DEFAULT_FONT 1 |
| 190 | +// Selected desired font fileformats to be supported for loading |
| 191 | +#define SUPPORT_FILEFORMAT_TTF 1 |
| 192 | +#define SUPPORT_FILEFORMAT_FNT 1 |
| 193 | +//#define SUPPORT_FILEFORMAT_BDF 1 |
| 194 | + |
| 195 | +// Support text management functions |
| 196 | +// If not defined, still some functions are supported: TextLength(), TextFormat() |
| 197 | +#define SUPPORT_TEXT_MANIPULATION 1 |
| 198 | + |
| 199 | +// On font atlas image generation [GenImageFontAtlas()], add a 3x3 pixels white rectangle |
| 200 | +// at the bottom-right corner of the atlas. It can be useful to for shapes drawing, to allow |
| 201 | +// drawing text and shapes with a single draw call [SetShapesTexture()]. |
| 202 | +#define SUPPORT_FONT_ATLAS_WHITE_REC 1 |
| 203 | + |
| 204 | +// rtext: Configuration values |
| 205 | +//------------------------------------------------------------------------------------ |
| 206 | +#define MAX_TEXT_BUFFER_LENGTH 1024 // Size of internal static buffers used on some functions: |
| 207 | + // TextFormat(), TextSubtext(), TextToUpper(), TextToLower(), TextToPascal(), TextSplit() |
| 208 | +#define MAX_TEXTSPLIT_COUNT 128 // Maximum number of substrings to split: TextSplit() |
| 209 | + |
| 210 | + |
| 211 | +//------------------------------------------------------------------------------------ |
| 212 | +// Module: rmodels - Configuration Flags |
| 213 | +//------------------------------------------------------------------------------------ |
| 214 | +// Selected desired model fileformats to be supported for loading |
| 215 | +#define SUPPORT_FILEFORMAT_OBJ 1 |
| 216 | +#define SUPPORT_FILEFORMAT_MTL 1 |
| 217 | +#define SUPPORT_FILEFORMAT_IQM 1 |
| 218 | +#define SUPPORT_FILEFORMAT_GLTF 1 |
| 219 | +#define SUPPORT_FILEFORMAT_VOX 1 |
| 220 | +#define SUPPORT_FILEFORMAT_M3D 1 |
| 221 | +// Support procedural mesh generation functions, uses external par_shapes.h library |
| 222 | +// NOTE: Some generated meshes DO NOT include generated texture coordinates |
| 223 | +#define SUPPORT_MESH_GENERATION 1 |
| 224 | + |
| 225 | +// rmodels: Configuration values |
| 226 | +//------------------------------------------------------------------------------------ |
| 227 | +#define MAX_MATERIAL_MAPS 12 // Maximum number of shader maps supported |
| 228 | +#define MAX_MESH_VERTEX_BUFFERS 7 // Maximum vertex buffers (VBO) per mesh |
| 229 | + |
| 230 | +//------------------------------------------------------------------------------------ |
| 231 | +// Module: raudio - Configuration Flags |
| 232 | +//------------------------------------------------------------------------------------ |
| 233 | +// Desired audio fileformats to be supported for loading |
| 234 | +#define SUPPORT_FILEFORMAT_WAV 1 |
| 235 | +#define SUPPORT_FILEFORMAT_OGG 1 |
| 236 | +#define SUPPORT_FILEFORMAT_MP3 1 |
| 237 | +#define SUPPORT_FILEFORMAT_QOA 1 |
| 238 | +//#define SUPPORT_FILEFORMAT_FLAC 1 |
| 239 | +#define SUPPORT_FILEFORMAT_XM 1 |
| 240 | +#define SUPPORT_FILEFORMAT_MOD 1 |
| 241 | + |
| 242 | +// raudio: Configuration values |
| 243 | +//------------------------------------------------------------------------------------ |
| 244 | +#define AUDIO_DEVICE_FORMAT ma_format_f32 // Device output format (miniaudio: float-32bit) |
| 245 | +#define AUDIO_DEVICE_CHANNELS 2 // Device output channels: stereo |
| 246 | +#define AUDIO_DEVICE_SAMPLE_RATE 0 // Device sample rate (device default) |
| 247 | + |
| 248 | +#define MAX_AUDIO_BUFFER_POOL_CHANNELS 16 // Maximum number of audio pool channels |
| 249 | + |
| 250 | +//------------------------------------------------------------------------------------ |
| 251 | +// Module: utils - Configuration Flags |
| 252 | +//------------------------------------------------------------------------------------ |
| 253 | +// Standard file io library (stdio.h) included |
| 254 | +#define SUPPORT_STANDARD_FILEIO 1 |
| 255 | +// Show TRACELOG() output messages |
| 256 | +// NOTE: By default LOG_DEBUG traces not shown |
| 257 | +#define SUPPORT_TRACELOG 1 |
| 258 | +//#define SUPPORT_TRACELOG_DEBUG 1 |
| 259 | + |
| 260 | +// utils: Configuration values |
| 261 | +//------------------------------------------------------------------------------------ |
| 262 | +#define MAX_TRACELOG_MSG_LENGTH 256 // Max length of one trace-log message |
| 263 | + |
| 264 | +#endif // CONFIG_H |
0 commit comments