github.com/Konstantin8105/c4go@v0.0.0-20240505174241-768bb1c65a51/tests/raylib/config.h (about)

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