[build][Zig] Make more flags from `src/config.h` configurable
This PR does not depend on #4406.
Currently, only flags containing the word SUPPORT is override-able via -Dconfig. This was the case as there was no code to check for what value they were set to, and all SUPPORT flags have a value of 1. This is also not ideal because it'll cause unexpected behaviour if the convention of the current src/config.h changes.
With this PR, everything that isn't defined between #ifdef or #ifndef and #endif can be passed or configured. I didn't bother evaluating flags between those as they already seem to be meant to be configured and truly evaluating them would be very annoying.
List of flags that are now passed by default when passing -Dconfig:
-DSUPPORT_MODULE_RSHAPES=1 -DSUPPORT_MODULE_RTEXTURES=1 -DSUPPORT_MODULE_RTEXT=1 -DSUPPORT_MODULE_RMODELS=1 -DSUPPORT_MODULE_RAUDIO=1 -DSUPPORT_CAMERA_SYSTEM=1 -DSUPPORT_GESTURES_SYSTEM=1 -DSUPPORT_RPRAND_GENERATOR=1 -DSUPPORT_MOUSE_GESTURES=1 -DSUPPORT_SSH_KEYBOARD_RPI=1 -DSUPPORT_WINMM_HIGHRES_TIMER=1 -DSUPPORT_PARTIALBUSY_WAIT_LOOP=1 -DSUPPORT_SCREEN_CAPTURE=1 -DSUPPORT_GIF_RECORDING=1 -DSUPPORT_COMPRESSION_API=1 -DSUPPORT_AUTOMATION_EVENTS=1 -DMAX_FILEPATH_CAPACITY=8192 -DMAX_FILEPATH_LENGTH=4096 -DMAX_KEYBOARD_KEYS=512 -DMAX_MOUSE_BUTTONS=8 -DMAX_GAMEPADS=4 -DMAX_GAMEPAD_AXIS=8 -DMAX_GAMEPAD_BUTTONS=32 -DMAX_GAMEPAD_VIBRATION_TIME=2.0f -DMAX_TOUCH_POINTS=8 -DMAX_KEY_PRESSED_QUEUE=16 -DMAX_CHAR_PRESSED_QUEUE=16 -DMAX_DECOMPRESSION_SIZE=64 -DMAX_AUTOMATION_EVENTS=16384 -DRL_DEFAULT_BATCH_BUFFERS=1 -DRL_DEFAULT_BATCH_DRAWCALLS=256 -DRL_DEFAULT_BATCH_MAX_TEXTURE_UNITS=4 -DRL_MAX_MATRIX_STACK_SIZE=32 -DRL_MAX_SHADER_LOCATIONS=32 -DRL_CULL_DISTANCE_NEAR=0.01 -DRL_CULL_DISTANCE_FAR=1000.0 -DRL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION=0 -DRL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD=1 -DRL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL=2 -DRL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR=3 -DRL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT=4 -DRL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2=5 -DRL_DEFAULT_SHADER_ATTRIB_LOCATION_INDICES=6 -DRL_SUPPORT_MESH_GPU_SKINNING -DRL_DEFAULT_SHADER_ATTRIB_NAME_POSITION="vertexPosition" -DRL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD="vertexTexCoord" -DRL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL="vertexNormal" -DRL_DEFAULT_SHADER_ATTRIB_NAME_COLOR="vertexColor" -DRL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT="vertexTangent" -DRL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2="vertexTexCoord2" -DRL_DEFAULT_SHADER_UNIFORM_NAME_MVP="mvp" -DRL_DEFAULT_SHADER_UNIFORM_NAME_VIEW="matView" -DRL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION="matProjection" -DRL_DEFAULT_SHADER_UNIFORM_NAME_MODEL="matModel" -DRL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL="matNormal" -DRL_DEFAULT_SHADER_UNIFORM_NAME_COLOR="colDiffuse" -DRL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0="texture0" -DRL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1="texture1" -DRL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2="texture2" -DSUPPORT_QUADS_DRAW_MODE=1 -DSPLINE_SEGMENT_DIVISIONS=24 -DSUPPORT_FILEFORMAT_PNG=1 -DSUPPORT_FILEFORMAT_GIF=1 -DSUPPORT_FILEFORMAT_QOI=1 -DSUPPORT_FILEFORMAT_DDS=1 -DSUPPORT_IMAGE_EXPORT=1 -DSUPPORT_IMAGE_GENERATION=1 -DSUPPORT_IMAGE_MANIPULATION=1 -DSUPPORT_DEFAULT_FONT=1 -DSUPPORT_FILEFORMAT_TTF=1 -DSUPPORT_FILEFORMAT_FNT=1 -DSUPPORT_TEXT_MANIPULATION=1 -DSUPPORT_FONT_ATLAS_WHITE_REC=1 -DMAX_TEXT_BUFFER_LENGTH=1024 -DMAX_TEXTSPLIT_COUNT=128 -DSUPPORT_FILEFORMAT_OBJ=1 -DSUPPORT_FILEFORMAT_MTL=1 -DSUPPORT_FILEFORMAT_IQM=1 -DSUPPORT_FILEFORMAT_GLTF=1 -DSUPPORT_FILEFORMAT_VOX=1 -DSUPPORT_FILEFORMAT_M3D=1 -DSUPPORT_MESH_GENERATION=1 -DMAX_MATERIAL_MAPS=12 -DSUPPORT_FILEFORMAT_WAV=1 -DSUPPORT_FILEFORMAT_OGG=1 -DSUPPORT_FILEFORMAT_MP3=1 -DSUPPORT_FILEFORMAT_QOA=1 -DSUPPORT_FILEFORMAT_XM=1 -DSUPPORT_FILEFORMAT_MOD=1 -DAUDIO_DEVICE_FORMAT=ma_format_f32 -DAUDIO_DEVICE_CHANNELS=2 -DAUDIO_DEVICE_SAMPLE_RATE=0 -DMAX_AUDIO_BUFFER_POOL_CHANNELS=16 -DSUPPORT_STANDARD_FILEIO=1 -DSUPPORT_TRACELOG=1 -DMAX_TRACELOG_MSG_LENGTH=256
For my use case, I want it to scroll down the page less often, for example
I asks first 10 items in a 100,000 items table in the page, I don't want it to scroll all the way to the bottom and send the info to AI, only the first page is enough.. Otherwise, it's gonna cost a lot of money.