cfd20f4f06
Try to fix problems caused by (auto)save's screenshots Added code to allow falling back on stbi for when libpng/libjpeg are not compiled it, at eukara's request. Handle .exr image files as suggested by eukara, when the appropriate library is available. Fix mipmaps etc for half-float files. Enable support for stbi's special gif loader, loading gifs as an 2darray texture. Add code for threading the qcvm's tempstring recycling, disabled due to paranoia but does otherwise help xonotic perf (at the cost of extra ram). git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5548 fc73d0e0-1445-4013-8a0c-d673dee63da5
207 lines
7.6 KiB
C
207 lines
7.6 KiB
C
// The Wastes' config.h
|
|
// We support both GL and D3D9. If Vulkan matures yeahsurewhynot
|
|
// I want to get this mostly running on all systems.
|
|
// Possibly Xbox. Yes, the original one. Sue me.
|
|
|
|
//general rebranding
|
|
#define DISTRIBUTION "FCS"
|
|
#define DISTRIBUTIONLONG "eukara"
|
|
#define FULLENGINENAME "FreeCS"
|
|
#define ENGINEWEBSITE "https://icculus.org/~marco/freecs/"
|
|
#define BRANDING_ICON "freecs.ico"
|
|
|
|
//filesystem rebranding
|
|
#define GAME_SHORTNAME "freecs" //short alphanumeric description
|
|
#define GAME_FULLNAME FULLENGINENAME //full name of the game we're playing
|
|
#define GAME_BASEGAMES "logos","valve","cstrike","freecs" //comma-separate list of basegame strings to use
|
|
#define GAME_PROTOCOL "FTE-FCS" //so other games won't show up in the server browser
|
|
#define GAME_DEFAULTPORT 23000 //FIXME: change me!
|
|
//#define GAME_IDENTIFYINGFILES NULL //with multiple games, this string-list gives verification that the basedir is actually valid. if null, will just be assumed correct.
|
|
//#define GAME_DOWNLOADSURL NULL //url for the package manger to update from
|
|
//#define GAME_DEFAULTCMDS NULL //a string containing the things you want to
|
|
|
|
// All my fault -eukara
|
|
#define ENGINE_ROUTING
|
|
|
|
// What do we use
|
|
//#define D3D9QUAKE
|
|
//#define GLQUAKE
|
|
#undef D3D11QUAKE
|
|
#if defined(WIN32) && !defined(D3D8QUAKE)
|
|
#define D3D8QUAKE
|
|
#endif
|
|
#undef VKQUAKE
|
|
#undef HEADLESSQUAKE
|
|
#undef WAYLANDQUAKE
|
|
|
|
#define AVAIL_FREETYPE //for truetype font rendering
|
|
#define HAVE_PACKET
|
|
#define QUAKETC
|
|
#define AVAIL_OPENAL
|
|
#define AVAIL_ZLIB
|
|
#define AVAIL_OGGVORBIS
|
|
#define CL_MASTER
|
|
#define CSQC_DAT
|
|
#define MENU_DAT
|
|
#define PSET_SCRIPT
|
|
#define VOICECHAT
|
|
#undef RTLIGHTS
|
|
#ifndef MULTITHREAD
|
|
#define MULTITHREAD //misc basic multithreading - dsound, downloads, basic stuff that's unlikely to have race conditions.
|
|
#endif
|
|
#define LOADERTHREAD //worker threads for loading misc stuff. falls back on main thread if not supported.
|
|
//#define USEAREAGRID //world collision optimisation. REQUIRED for performance with xonotic. hopefully it helps a few other mods too.
|
|
|
|
#define NOBUILTINMENUS
|
|
#define NOLEGACY //just spike trying to kill off crappy crap...
|
|
#define AVAIL_DINPUT
|
|
#ifndef DEBUG
|
|
#define NOQCDESCRIPTIONS 2 //if 2, disables writing fteextensions.qc completely.
|
|
#endif
|
|
|
|
|
|
// Various package formats
|
|
#define PACKAGE_PK3
|
|
#define PACKAGE_Q1PAK
|
|
#undef PACKAGE_DOOMWAD
|
|
#define PACKAGE_TEXWAD // We need this for WAD3 support
|
|
|
|
// Map formats
|
|
#undef Q3BSPS
|
|
#define Q1BSPS // Half-Life Support
|
|
#undef Q2BSPS
|
|
#undef RFBSPS
|
|
#undef TERRAIN
|
|
#undef DOOMWADS
|
|
#undef MAP_PROC
|
|
|
|
// Model formats
|
|
#define INTERQUAKEMODELS
|
|
#define SPRMODELS
|
|
#undef SP2MODELS
|
|
#undef DSPMODELS
|
|
#undef MD1MODELS
|
|
#undef MD2MODELS
|
|
#undef MD3MODELS
|
|
#undef MD5MODELS
|
|
#undef ZYMOTICMODELS
|
|
#undef DPMMODELS
|
|
#undef PSKMODELS
|
|
#define HALFLIFEMODELS
|
|
|
|
// What do we NOT want to use
|
|
#undef AVAIL_WASAPI //windows advanced sound api
|
|
#undef AVAIL_DSOUND
|
|
#undef BOTLIB_STATIC //q3 botlib
|
|
#undef AVAIL_XZDEC //.xz decompression
|
|
#undef AVAIL_GZDEC //.gz decompression
|
|
#undef PACKAGE_DZIP //.dzip special-case archive support
|
|
#undef AVAIL_PNGLIB //.png image format support (read+screenshots)
|
|
#undef AVAIL_JPEGLIB //.jpeg image format support (read+screenshots)
|
|
#undef AVAIL_MP3_ACM //.mp3 support (in windows).
|
|
#undef IMAGEFMT_KTX
|
|
#undef IMAGEFMT_PKM
|
|
#define IMAGEFMT_PCX
|
|
#undef IMAGEFMT_DDS //.dds files embed mipmaps and texture compression. faster to load.
|
|
#undef IMAGEFMT_BLP //legacy crap
|
|
#define IMAGEFMT_BMP //legacy crap
|
|
////#undef IMAGEFMT_PCX //legacy crap
|
|
#undef DECOMPRESS_ETC2
|
|
#undef DECOMPRESS_RGTC
|
|
#undef DECOMPRESS_S3TC
|
|
#undef DECOMPRESS_BPTC //bc6+bc7
|
|
#undef NETPREPARSE //allows for running both nq+qw on the same server (if not, protocol used must match gamecode).
|
|
#undef USE_SQLITE //sql-database-as-file support
|
|
#undef QUAKESTATS //defines STAT_HEALTH etc. if omitted, you'll need to provide that functionality yourself.
|
|
#undef QUAKEHUD //support for drawing the vanilla hud.
|
|
#undef QWSKINS //disabling this means no qw .pcx skins nor enemy/team skin/colour forcing
|
|
#undef SVRANKING //legacy server-side ranking system.
|
|
#undef RAGDOLL //ragdoll support. requires RBE support.
|
|
#undef HUFFNETWORK //crappy network compression. probably needs reseeding.
|
|
#undef SVCHAT //ancient lame builtin to support NPC-style chat...
|
|
#undef VM_Q1 //q1qvm implementation, to support ktx.
|
|
#undef Q2SERVER //q2 server+gamecode.
|
|
#undef Q2CLIENT //q2 client. file formats enabled separately.
|
|
#undef Q3CLIENT //q3 client stuff.
|
|
#undef Q3SERVER //q3 server stuff.
|
|
#undef HEXEN2 //runs hexen2 gamecode, supports hexen2 file formats.
|
|
#undef NQPROT //act as an nq client/server, with nq gamecode.
|
|
////#undef WEBSERVER //sv_ftp + sv_http cvars.
|
|
#undef WEBCLIENT //uri_get+any internal downloads etc
|
|
#undef RUNTIMELIGHTING //automatic generation of .lit files
|
|
#undef R_XFLIP //old silly thing
|
|
#undef TEXTEDITOR //my funky text editor! its awesome!
|
|
#undef TCPCONNECT //support for playing over tcp sockets, instead of just udp. compatible with qizmo.
|
|
#undef IRCCONNECT //lame support for routing game packets via irc server. not a good idea.
|
|
#define PLUGINS //support for external plugins (like huds or fancy menus or whatever)
|
|
#undef SUPPORT_ICE //Internet Connectivity Establishment, for use by plugins to establish voice or game connections.
|
|
#undef PSET_CLASSIC //support the 'classic' particle system, for that classic quake feel.
|
|
#undef HAVE_CDPLAYER //includes cd playback. actual cds. named/numbered tracks are supported regardless (though you need to use the 'music' command to play them without this).
|
|
////#undef QTERM
|
|
#undef SIDEVIEWS
|
|
#undef MAX_SPLITS
|
|
#undef SUBSERVERS
|
|
////#undef SV_MASTER
|
|
#undef HAVE_MIXER //openal only
|
|
#undef VM_LUA
|
|
#undef HLCLIENT
|
|
#undef HLSERVER
|
|
#undef FTPSERVER
|
|
//#undef CLIENTONLY //leave this up to the makefiles.
|
|
#define HAVE_TCP
|
|
#undef HAVE_GNUTLS //linux tls/dtls support
|
|
#undef HAVE_WINSSPI //windows tls/dtls support
|
|
#undef HAVE_JUKEBOX //includes built-in jukebox crap
|
|
#define HAVE_MEDIA_DECODER //can play cin/roq, more with plugins
|
|
#define HAVE_MEDIA_ENCODER //capture/capturedemo work.
|
|
#undef HAVE_SPEECHTOTEXT //windows speech-to-text thing
|
|
|
|
//FIXME: Stuff that Spike has added that Eukara needs to decide whether to keep or not.
|
|
#define HAVE_OPUS
|
|
//#define HAVE_SPEEX
|
|
//#define HAVE_OPENSSL
|
|
//#define IMAGEFMT_HDR
|
|
//#define IMAGEFMT_PBM
|
|
//#define IMAGEFMT_PSD
|
|
//#define IMAGEFMT_VTF
|
|
//#define IPLOG
|
|
//#define MVD_RECORDING
|
|
//#define PACKAGEMANAGER
|
|
//#define PACKAGE_VPK
|
|
//#define SAVEDGAMES
|
|
//#define AVAIL_BOTLIB
|
|
//#define AVAIL_BZLIB
|
|
//#define USE_INTERNAL_ODE
|
|
//#define USE_INTERNAL_BULLET
|
|
//#define MENU_NATIVECODE
|
|
//#define DECOMPRESS_ASTC
|
|
//#define HAVE_HTTPSV
|
|
//#define IMAGEFMT_ASTC
|
|
//#define IMAGEFMT_JPG
|
|
//#define IMAGEFMT_GIF
|
|
//#define IMAGEFMT_PNG
|
|
#define IMAGEFMT_TGA
|
|
#define IMAGEFMT_LMP
|
|
//#define IMAGEFMT_EXR //openexr, via Industrial Light & Magic's rgba api, giving half-float data.
|
|
//#define MODELFMT_MDX
|
|
//#define MODELFMT_OBJ
|
|
//#define AVAIL_STBI //make use of Sean T. Barrett's lightweight public domain stb_image[_write] single-file-library, to avoid libpng/libjpeg dependancies.
|
|
|
|
|
|
#ifdef COMPILE_OPTS
|
|
//things to configure qclib, which annoyingly doesn't include this file itself
|
|
-DOMIT_QCC //disable the built-in qcc
|
|
-DSIMPLE_QCVM //disable qc debugging and 32bit opcodes
|
|
#ifndef AVAIL_ZLIB
|
|
-DNO_ZLIB //disable zlib
|
|
#endif
|
|
|
|
|
|
-DNO_SPEEX //disable static speex
|
|
#ifndef BOTLIB_STATIC
|
|
-DNO_BOTLIB //disable static botlib
|
|
#endif
|
|
-DNO_VORBISFILE //disable static vorbisfile
|
|
|
|
-Os //optimise for size instead of speed. less cpu cache needed means that its sometimes faster anyway.
|
|
#endif
|