Compare commits

...

225 Commits

Author SHA1 Message Date
nillerusr
3f5ebfbde3 game(client): fix back button in touch 2022-09-19 17:54:09 +03:00
nillerusr
4ace9f8030 game(client): fix touch drawing problems again, fix some fonts on android 2022-09-18 19:54:29 +03:00
nillerusr
9c4ace30c3 game(client): fix touch drawing problems 2022-09-18 18:47:19 +03:00
nillerusr
a7611c481e game(client): fix atlas generation for touch 2022-09-17 21:00:50 +03:00
nillerusr
d2f789853d vtex(android): fix build 2022-09-17 18:41:25 +03:00
nillerusr
5e9ce905f7 tier1(android): add error message for library loading from mod apk 2022-09-17 18:27:50 +03:00
nillerusr
2dca8fd6c7 launcher_main: automatically set LD_LIBRARY_PATH on launch 2022-09-17 18:26:41 +03:00
nillerusr
54f174d262 modify original vtex and add png support for it 2022-09-17 18:25:20 +03:00
nillerusr
3daa537791 game(client): fix touch drawing again bruh 2022-09-17 16:42:45 +03:00
nillerusr
5a28ccec8c game(client): fix touch drawing 2022-09-17 15:57:17 +03:00
nillerusr
b1a3eafbe6 android: fix crashhandler 2022-09-17 03:01:26 +03:00
nillerusr
8a7e28d38d game(client): fix touch editor 2022-09-16 19:00:32 +03:00
nillerusr
f07ba797c5 game(client): optimize touch drawing 2022-09-16 02:41:03 +03:00
nillerusr
bf860c87c6 update lib submodule 2022-09-13 00:43:52 +03:00
nillerusr
5912845f29 engine: fix audio language setting 2022-09-10 03:30:28 +03:00
nillerusr
09924b7998 game(android): add custom chat 2022-09-08 21:23:06 +03:00
nillerusr
93c71cb74a togles: fix alpha test on some GPUs( fixes #119 ) 2022-09-08 20:41:35 +03:00
nillerusr
efc1fc2a9b add -fvisibility=hidden for gcc 2022-09-05 19:33:23 +03:00
nillerusr
3e19d26a72 add additional logging information 2022-09-05 12:54:41 +03:00
nillerusr
f11087b83a game(hl1): fix bigmomma decal 2022-09-05 01:17:02 +03:00
nillerusr
4c49154dc0 togles: fix GL_QCOM_alpha_test extension detection 2022-09-03 02:52:33 +03:00
nillerusr
c91e68975b game(hl1): fix SetBoneController 2022-09-03 02:51:56 +03:00
nillerusr
216bbf1baa game(hl1): fix gibbing 2022-08-31 18:23:22 +03:00
nillerusr
fafc3554a5 game(hl1): fix UTIL_DropToFloor 2022-08-31 18:22:56 +03:00
nillerusr
1fe1d7b419 use threaded bone setup by default 2022-08-31 18:19:52 +03:00
nillerusr
32c57a8a49 game(hl1): fix stupid mp5 recoil 2022-08-23 18:17:31 +03:00
nillerusr
2cb00530c7 game(hl1): fix use after scope 2022-08-23 17:33:12 +03:00
nillerusr
e11a21ea19 public: fix misalignment in Studio_AnimPosition 2022-08-23 17:32:37 +03:00
nillerusr
3dbe2cdd32 hl1: make pushable rotatable 2022-08-23 03:21:46 +03:00
nillerusr
faca1ab142 game(hl1): fix apache,can bbox, fix DROP_TO_FLOOR, fix barnacle 2022-08-21 02:56:36 +03:00
nillerusr
3b153bc9c3 fix day of defeat build 2022-08-21 02:12:18 +03:00
nillerusr
1f0ae521d6 Merge pull request #112 from SanyaSho/fixes
Fixes (x2)
2022-08-20 00:05:05 +03:00
SanyaSho
c41148b9dd game: disable text on buttons by default 2022-08-19 23:43:31 +03:00
nillerusr
40c4f2b96f Update ivp submodule 2022-08-19 23:31:05 +03:00
nillerusr
a16123e4be fixed some unitialized variables 2022-08-19 23:27:37 +03:00
nillerusr
0a66367243 tslist: add asserts for tests 2022-08-19 23:21:37 +03:00
nillerusr
c909de8faf use HAVE_* macros for dependencies 2022-08-19 23:19:53 +03:00
SanyaSho
53ed9e3bd8 Revert "game: fixes some player's origin displacements for fire events, impulses commands etc... (ValveSoftware/source-sdk-2013#442)"
This reverts commit 2e969d3890.
2022-08-19 23:00:06 +03:00
nillerusr
0d48bf354a unittests: add tslist tests to tier1test 2022-08-17 14:28:41 +03:00
nillerusr
dd1dc186f9 unittests: fix utlstringtest for windows 2022-08-17 13:46:41 +03:00
nillerusr
c0cbc669bc scripts: fix tests 2022-08-17 13:39:51 +03:00
nillerusr
45d33c6b97 tier1: fix commandbuffer unitialized boolean 2022-08-17 13:35:55 +03:00
nillerusr
8b6ad0d342 workflows: add tests.yml 2022-08-17 12:54:11 +03:00
nillerusr
9aa0ecab6a add wscripts for unittests 2022-08-17 11:12:27 +03:00
nillerusr
08e3444409 Delete needless unittests again 2022-08-17 11:03:31 +03:00
SanyaSho
c0472cccbf game: fix camera glitch with FOV 110 2022-08-17 02:45:02 +03:00
SanyaSho
9a03faec58 game: fix satchel/tripmine damage and damage radius cvars (hrgve/hl2dm-bugfix@d2aa89fc0f) 2022-08-16 18:41:34 +03:00
SanyaSho
8a366537e7 game: fix death icon in hl2mp (hrgve/hl2dm-bugfix@6f7337d3f2) 2022-08-16 18:28:28 +03:00
SanyaSho
27339449c0 game: rpg missle fixes (hrgve/hl2dm-bugfix@36de43ebc1) 2022-08-16 18:24:49 +03:00
SanyaSho
69b377495b game: update hud_flashlight.cpp (::yoba_Ukraine::) (ValveSoftware/source-sdk-2013#275) 2022-08-16 17:54:53 +03:00
SanyaSho
4838d9ee3f game: changed delay parameter for ent_fire (ValveSoftware/source-sdk-2013#300) 2022-08-16 17:50:12 +03:00
SanyaSho
42b528dec3 game: fixed a format string vulnerability in CDebugOverlay::Paint (ValveSoftware/source-sdk-2013#372) 2022-08-16 17:39:41 +03:00
SanyaSho
387d15521a game: fix typo in logical expression (ValveSoftware/source-sdk-2013#502) 2022-08-16 17:24:18 +03:00
SanyaSho
a0d8a59d58 game: touch customization and small update 2022-08-16 17:21:59 +03:00
SanyaSho
148035ce31 game: fixed npc_manhack not notifying npc_template_maker/npc_maker when thrown and destroyed with gravity gun. (ValveSoftware/source-sdk-2013#362) 2022-08-16 17:21:59 +03:00
SanyaSho
21c54015a2 game: fixed infinite recursion by using incorrect key on value conversation. (ValveSoftware/source-sdk-2013#380) 2022-08-16 17:21:59 +03:00
SanyaSho
2e969d3890 game: fixes some player's origin displacements for fire events, impulses commands etc... (ValveSoftware/source-sdk-2013#442) 2022-08-16 17:21:59 +03:00
SanyaSho
81c354ee0d game: use gpGlobals->interval_per_tick instead of DEFAULT_TICK_INTERVAL (ValveSoftware/source-sdk-2013#515) 2022-08-16 17:05:58 +03:00
SanyaSho
047b3e3150 game: fix hl2mp slam (ValveSoftware/source-sdk-2013#532) 2022-08-16 17:04:26 +03:00
SanyaSho
68483bd0f6 game: fix linux soundscapes (ValveSoftware/source-sdk-2013#448) 2022-08-16 17:03:33 +03:00
nillerusr
d8f5cdfd3c Delete needless unittests 2022-08-16 15:08:46 +03:00
nillerusr
8ab4c90f54 update thirdparty submodule 2022-08-16 00:13:11 +03:00
nillerusr
872243be56 waifulib: fix configure with clang 2022-08-15 22:37:56 +03:00
nillerusr
c68b7af554 launcher(android): fix build problem 2022-08-15 22:35:36 +03:00
nillerusr
38fcc71c6e launcher(android): add crashhandler 2022-08-15 22:14:09 +03:00
nillerusr
41414854db launcher: move android.cpp -> android/main.cpp 2022-08-15 21:28:05 +03:00
LegendGuard
a87918565a Add PBR support (#91)
* Add PBR support
* Fix physics props turning black
2022-08-10 17:41:01 +03:00
nillerusr
08073ae622 again boring misalignment fixes 2022-08-09 21:24:27 +03:00
nillerusr
c5607661f0 vgui_surfacelib(android): use fonts with chinese/japanese/korean support( fixes #104 ) 2022-08-05 22:40:06 +03:00
nillerusr
e852953d9d Merge pull request #100 from SanyaSho/ent-create-crash-fix
small fixes
2022-08-04 19:10:52 +03:00
SanyaSho
448b353844 game: grenade trail fix 2022-08-04 17:01:54 +03:00
SanyaSho
b525e49d6f game: fix 357 crosshair in hl2mp 2022-08-04 16:58:02 +03:00
SanyaSho
31c5944b5e game: fix rpg laser sprite precache in hl2mp 2022-08-04 16:54:21 +03:00
SanyaSho
d958e12dbd game: set MAX_FOV value to 110 2022-08-04 16:48:47 +03:00
SanyaSho
6c42a04f8a game: fix env_sun sprite disappearing when you look at it 2022-08-04 16:47:14 +03:00
SanyaSho
38209fe326 fix game: don`t rotate viewmodels in zoom 2022-08-04 16:42:23 +03:00
SanyaSho
e8ffb402de game: quantum crouch fix 2022-08-04 16:30:30 +03:00
SanyaSho
e6901ffadf game: fix acid damage white flash bug 2022-08-04 16:29:21 +03:00
SanyaSho
ccf0357a51 game: restore dropship ability to shoot with rotsting gun 2022-08-04 16:27:21 +03:00
SanyaSho
d628a7ae80 game: restore combine elite soldiers ability to use alt-fire of SMG1 2022-08-04 16:17:51 +03:00
SanyaSho
5caf8adbd7 game: don`t rotate viewmodels in zoom 2022-08-04 15:53:29 +03:00
SanyaSho
e0db3b1a40 game: beta houndeye painsound fix 2022-08-04 15:36:04 +03:00
SanyaSho
e8f26b4401 game: fix NPC blink 2022-08-04 11:42:52 +03:00
SanyaSho
9779491774 game: fix previous commit 2022-08-04 00:48:42 +03:00
SanyaSho
29080d7649 game: apply https://developer.valvesoftware.com/wiki/Weapon_Respawn_Fix patch 2022-08-04 00:33:51 +03:00
SanyaSho
3b475331f2 gameui: don`t show FOVValueLabel if fov_desired cvar is not exists 2022-08-03 20:27:22 +03:00
SanyaSho
4ae9719b74 game: restore combine ability to play pain sounds 2022-08-03 17:34:05 +03:00
SanyaSho
0f7d9d029f game: fix ent_create crash if entity model is NULL 2022-08-03 17:19:43 +03:00
nillerusr
a9c5da7d69 materialsystem: unlock mat_picmip cvar again 2022-08-03 16:30:27 +03:00
SanyaSho
48aa042ee1 Fov cvar fix (#98)
* game: set fov_desired cvar max value to 110
* scripts: waifulib: change '4.9,9' to '4.9,21' in configure example
2022-08-03 16:22:17 +03:00
nillerusr
50ff9922a6 togles: use sampler objects by default 2022-08-03 16:21:23 +03:00
nillerusr
1aa326b7f2 appframework: use rawinput for android by default 2022-08-02 10:45:21 +03:00
nillerusr
79e83bb97f tier0: fix cpu freq on some arm cpu's 2022-08-01 04:30:44 +03:00
nillerusr
8200eda3ec Merge pull request #95 from nillerusr/dedicated-build-fix
fix dedicated build
2022-08-01 01:41:56 +03:00
nillerusr
168e52e428 engine: fix windows dedicated build 2022-08-01 01:01:39 +03:00
nillerusr
d7ba172ece workflows: rename jobs names 2022-08-01 00:44:54 +03:00
nillerusr
60dcc89289 fix ubuntu build 2022-08-01 00:41:26 +03:00
nillerusr
c4ef0e90a4 fix dedicated build 2022-08-01 00:38:10 +03:00
nillerusr
000b2db0b7 engine: restore delta float decode/encode from 2007 branch 2022-07-31 20:11:48 +03:00
nillerusr
ba8fd2952f vphysics: fix velocity restore 2022-07-31 19:56:00 +03:00
nillerusr
661415174e workflows: change windows-2016 to windows-2019 2022-07-31 17:30:39 +03:00
nillerusr
97e7d4a870 game: fix integer division by zero in baseachievement( fixes #87 ) 2022-07-31 04:40:53 +03:00
nillerusr
7268663f24 game/client/portal: fix Polyhedron 2022-07-30 02:09:11 +03:00
nillerusr
9c2c7e3529 game/server: fix some Asan issues 2022-07-29 04:34:23 +03:00
nillerusr
d1ac11a5c7 Merge pull request #86 from HappyDOGE/windows
Windows mustdie
2022-07-28 20:38:50 +03:00
nillerusr
320e56643e update github workflow for windows build again 2022-07-28 20:28:41 +03:00
nillerusr
a1009570cc update github workflow for windows build 2022-07-28 20:24:05 +03:00
HappyDOGE
1a07841a0c remove legacy batch scripts 2022-07-28 19:49:42 +03:00
HappyDOGE
9dbdad3dc4 fix debug compile 2022-07-28 19:48:53 +03:00
HappyDOGE
062596c881 cast null to int in check for compatibility 2022-07-28 19:27:13 +03:00
HappyDOGE
84ed551ceb fix debug macros 2022-07-28 19:18:14 +03:00
HappyDOGE
66f8f4ba51 fix sdl copy command 2022-07-28 19:14:42 +03:00
HappyDOGE
91df08ed0f fix noexcept for new crt 2022-07-28 18:44:45 +03:00
HappyDOGE
9a095d6b4b fix opus error msg log 2022-07-28 18:34:48 +03:00
HappyDOGE
de84690884 fix opus 2022-07-28 18:32:42 +03:00
HappyDOGE
0aa1fe0b8d fix arm allignment 2022-07-28 17:48:44 +03:00
HappyDOGE
e2f577b5e2 fix placement new 2022-07-28 17:48:29 +03:00
HappyDOGE
786efaa9e8 use asm fastcopy only on i386 2022-07-28 17:42:21 +03:00
HappyDOGE
5206f38b9b update windows lib placement 2022-07-28 16:40:36 +03:00
HappyDOGE
991585bb98 Merge branch 'master' of https://github.com/nillerusr/source-engine into windows 2022-07-28 16:12:02 +03:00
HappyDOGE
90d76398ba fix no return in EditDestroyNotification 2022-07-28 16:02:15 +03:00
HappyDOGE
26f8862cac copy correct check 2022-07-28 15:39:35 +03:00
HappyDOGE
4464eef24d mark windows waf as complete 2022-07-28 15:28:43 +03:00
HappyDOGE
34efe20d10 fix compile time assert 2022-07-28 15:28:35 +03:00
nillerusr
88729be1cb Merge pull request #84 from LegendaryGuard/patch-1
Add VTF 7.5 support in README
2022-07-28 15:10:26 +03:00
HappyDOGE
733dc35479 fix null comparison 2022-07-28 15:07:01 +03:00
LegendGuard
cf5d54c6c7 Add VTF 7.5 support in README
This is important for making artists, mappers and modelers know.
2022-07-28 14:05:21 +02:00
HappyDOGE
1c74b72cc1 update ivp submodule 2022-07-28 14:59:58 +03:00
HappyDOGE
4fc6661cb4 fix SDL 2022-07-28 14:58:51 +03:00
HappyDOGE
e5c944b72a Merge branch 'master' of https://github.com/nillerusr/source-engine into windows 2022-07-28 14:40:20 +03:00
nillerusr
eb78802b5d vtf: 7.5 version support ( fixes #83 ) 2022-07-28 14:32:38 +03:00
HappyDOGE
3faf6a69ac fix windows build scripts, add windows opus support 2022-07-28 14:27:56 +03:00
nillerusr
6bc71d1491 fix buffer overflow in shader and closed captions 2022-07-27 18:29:48 +03:00
HappyDOGE
90cd6e0e15 Merge branch 'master' into windows 2022-07-27 12:58:56 +03:00
nillerusr
a53fff833f vphysics: increased g_MeshSize value( fixes some crashes in ep2 ), update ivp submodule 2022-07-27 04:00:21 +03:00
nillerusr
1dc309d1ed Merge pull request #79 from WitherOrNot/master
fix sln generation
2022-07-26 23:23:21 +03:00
Wither OrNot
f384046eba fix sln generation 2022-07-26 13:03:48 -07:00
nillerusr
99e6aee472 add github workflow (#78) 2022-07-26 00:15:02 +03:00
nillerusr
447d80b76f vphysix: fix saverestore crash 2022-07-25 23:54:47 +03:00
nillerusr
4d628885b7 add discord server link to readme 2022-07-25 19:43:15 +03:00
nillerusr
8334f8a378 Update README.md 2022-07-25 19:39:10 +03:00
nillerusr
f266efa942 wscript: make opus optional( should help #69 ) 2022-07-25 19:20:14 +03:00
nillerusr
a26270cb57 materialsystem/stdshaders: restore original vertexlit_and_unlit_generic and skin shaders to work with steam resources( fixes #75 ) 2022-07-25 19:09:57 +03:00
nillerusr
5e1ed3bd26 togl/togles: fix flashlight problems 2022-07-25 17:10:10 +03:00
nillerusr
ae94aa060d game/client: fix C_BaseEntity prediction 2022-07-25 16:47:41 +03:00
nillerusr
c739b2c5bb dt_recv: replace long with int32 2022-07-21 21:14:15 +03:00
nillerusr
46fa635cb2 update ivp submodule 2022-07-19 02:10:14 +03:00
nillerusr
977db93cae engine: oops, forgot to add thinktracecounter.h 2022-07-14 00:00:54 +03:00
nillerusr
42f9ada917 Unlock mat_picmip cvar for values lower than -1 2022-07-12 16:19:13 +03:00
nillerusr
760dafae86 Move external libraries for android to separate repo 2022-07-09 23:23:41 +03:00
nillerusr
dc5774a698 add debug logger 2022-07-06 18:17:09 +03:00
nillerusr
b3ef8242db game: fix spin_none,spin_zaxis physgun interactions 2022-06-26 22:42:13 +03:00
nillerusr
bf0062066d engine: fix config executing 2022-06-22 19:11:55 +03:00
nillerusr
9a1ab79372 amd64: fix mempool, utlbuffer align 2022-06-21 22:15:14 +03:00
nillerusr
ddafaa790e game: fix compilation problems for clang 2022-06-20 14:17:53 +03:00
nillerusr
ff99055be1 android: remove some jni functions, use APP_LIB_PATH instead of APP_DATA_PATH 2022-06-19 17:42:55 +03:00
nillerusr
f8c6d23362 game/client: make font size proportional 2022-06-19 15:23:01 +03:00
nillerusr
791012ef95 Merge pull request #71 from nillerusr/64bits
64bits
2022-06-19 15:12:20 +03:00
nillerusr
2e7fa2dfc8 aarch64: fix android build 2022-06-19 15:07:41 +03:00
nillerusr
57bb27e443 engine: add spatialpartition from cs:go engine 2022-06-15 21:59:40 +03:00
nillerusr
b06620b8c9 fpersmissive fixes 2022-06-15 21:59:06 +03:00
nillerusr
29db778997 fix some AddressSanitizer issues 2022-06-14 13:16:08 +03:00
nillerusr
a0e05d885a amd64: fix model loading issues 2022-06-14 13:11:14 +03:00
nillerusr
94916a20ce vphysics: fix saverestore 2022-06-14 13:09:10 +03:00
nillerusr
b84ad64171 game/server: fix AI_TaskFailureCode_t size 2022-06-05 03:30:44 +03:00
nillerusr
363f4774f1 togl: replace long with int 2022-06-05 02:21:39 +03:00
nillerusr
d59e0ffa59 update ivp submodule 2022-06-05 01:53:59 +03:00
nillerusr
9ee21ecf90 amd64: fix multithread, fix vgui, fix physmodels 2022-06-05 01:44:42 +03:00
hymei
01413fdd71 arm64 : fix mempool align 2022-06-05 01:14:23 +03:00
hymei
fd38243b54 arm64 ptr size fix 2022-06-05 01:14:23 +03:00
hymei
fe2d89addb update ivp 2022-06-05 01:14:22 +03:00
hymei
f96a163cf8 arm64 : fix clang compile errors 2022-06-05 01:13:14 +03:00
hymei
3bc519aecf arm64 : fix vgui2 VPAMEL in messagemap 2022-06-05 01:13:13 +03:00
hymei
0499fde751 arm64 : intp fixes 2022-06-05 01:13:13 +03:00
hymei
df78eef85f osx : use freetype instead of deprecated carbon api 2022-06-05 01:13:13 +03:00
hymei
3291cdf978 osx : fix syscalls 2022-06-05 01:13:13 +03:00
hymei
c7308906d1 arm64 detect marcos 2022-06-05 01:13:12 +03:00
hymei
ff588a8810 osx : malloc.h => malloc/malloc.h 2022-06-05 01:12:37 +03:00
hymei
4e4039d756 arm64 : fix intptr_t size 2022-06-05 01:12:32 +03:00
nillerusr
2690e6c85a update ivp submodule 2022-06-04 23:21:08 +03:00
nillerusr
ac956a9b4f game: small fixes 2022-06-04 23:08:40 +03:00
nillerusr
432a6b2297 materialsystem: fix s_NormalizationCubemap generation for ToGL 2022-05-17 14:38:34 +03:00
nillerusr
e1206f5c46 tier0: enable vprof 2022-05-16 12:37:38 +03:00
nillerusr
dbb6acff37 ivp: update submodule 2022-05-16 00:06:26 +03:00
nillerusr
816cc23833 wscript: add --disable-warns option 2022-05-16 00:00:37 +03:00
nillerusr
ae8b73626e materialsystem: fix(hack) flashlight. normalizedcubemap broken? 2022-05-15 21:19:04 +03:00
nillerusr
3a73624b7e misaligment fixes 2022-05-15 21:09:59 +03:00
nillerusr
1218fa659c engine: remove useless vprof for rcon 2022-05-13 12:16:34 +03:00
nillerusr
600695b15f game: init uninitialized variables 2022-05-01 20:09:55 +03:00
nillerusr
61cd8d0afc fix address sanitizer issues #2 2022-05-01 20:08:32 +03:00
nillerusr
ce68fffa3b togles: use original glCompressedTexture2D when gpu have DXT support 2022-05-01 15:53:52 +03:00
nillerusr
2ec2a47a53 fix address sanitizer issues 2022-04-25 17:21:00 +03:00
nillerusr
a5e9cdcbe2 game: make achievements work without steam 2022-04-16 13:08:46 +03:00
nillerusr
ab5c1c0b3a game/client: fix messagemode, add acceleration for touch, GameUI: add touch options 2022-04-16 12:58:59 +03:00
nillerusr
0feeab91dd engine: fix hdr to ldr conversion 2022-04-16 12:54:00 +03:00
nillerusr
58873c35c7 togles: create pseudo buffer for mali gpu's 2022-04-16 12:27:43 +03:00
nillerusr
0772ca1063 GameUI: fix propotional scale 2022-04-16 12:20:36 +03:00
nillerusr
23a370d9bb add hl1,portal,dod source code 2022-04-16 12:05:19 +03:00
nillerusr
bc6873014e update ivp submodule 2022-04-16 10:07:38 +03:00
nillerusr
9e6ce6501c Merge pull request #63 from nillerusr/ssdk2013 2022-04-09 20:51:24 +03:00
nillerusr
c625d789a7 Revert "materialsystem/shaderapidx9: restore shaders from source-sdk-2013"
This reverts commit cca56d5a6f.
2022-03-28 00:45:52 +03:00
nillerusr
3558b0e03c togles: gamma fix, optimize texture convertation 2022-03-28 00:45:37 +03:00
nillerusr
cca56d5a6f materialsystem/shaderapidx9: restore shaders from source-sdk-2013 2022-03-26 03:26:53 +03:00
nillerusr
24366ef9a8 engine: hdr to ldr conversion for HDR_TYPE_NONE 2022-03-26 03:24:41 +03:00
JusicP
312fdb9576 Fix AnimationController conditional parse 2022-03-15 17:35:39 +02:00
nillerusr
a71627226a inputsystem: fix build with older sdl2 versions 2022-03-15 15:33:05 +03:00
nillerusr
875e52e29e Merge pull request #55 from lilmayofuksu/fix-vpk
Fix VPK loading for Dedicated Linux builds
2022-03-15 13:14:42 +03:00
nillerusr
22ed5194a6 tier1: exclude steam deck from KeyValues 2022-03-15 13:09:34 +03:00
lilmayofuksu
ab71aefedc fix linker errors for dedicated when building with vpk support 2022-03-07 02:21:30 +03:00
nillerusr
c165fb2236 game/server: fix build 2022-03-02 20:47:19 +03:00
nillerusr
5b926feae6 add csrike source code 2022-03-02 11:45:17 +03:00
nillerusr
f7233c84e0 engine: remove PROTOCOL_STEAM requirement 2022-03-02 11:42:47 +03:00
nillerusr
edc8d6c584 add source-sdk-2013 2022-03-01 23:00:42 +03:00
nillerusr
88b8830e8b ToGLES: add hard float support 2022-03-01 22:53:30 +03:00
nillerusr
1aac303d7e engine/audio/private: add voice recording using sdl 2022-03-01 22:48:18 +03:00
nillerusr
6b10b528e9 engine: get opus voice codec 2022-02-13 06:15:27 +03:00
nillerusr
a38e73f480 Disable trusted key verification for sv_pure, fix mod_texture.txt loading 2022-02-12 13:45:43 +03:00
nillerusr
a1d8c59d01 Fix external .lmp loading 2022-02-11 11:00:57 +03:00
nillerusr
9dd2d20e78 cl_main: set language according to LANG variable 2022-02-06 03:48:40 +03:00
nillerusr
c36cfccdf0 gameui: add console button to main menu 2022-02-05 22:33:45 +03:00
nillerusr
74b7a6d151 Merge pull request #43 from nillerusr/ToGLES3
ToGLES, and some other shit
2022-02-05 21:45:29 +03:00
nillerusr
c57fb24610 Merge pull request #38 from r-a-sattarov/master
vgui2/vgui_surfacelib/linuxfont: fix incorrect variadic casts
2022-02-05 18:25:24 +03:00
r-a-sattarov
2ad3bc4a66 vgui2/vgui_surfacelib/linuxfont: fix incorrect variadic casts
backport from MainUI C++
Ref: fad4805fab
2022-01-28 23:49:27 +03:00
nillerusr
303b387e76 add more custom screen resolutions, fix build 2022-01-25 00:14:29 +03:00
nillerusr
0fb75b41fd fix build with clang, fix saverestore again, android mod launcher support 2022-01-19 18:59:42 +03:00
3365 changed files with 54116 additions and 855457 deletions

77
.github/workflows/build.yml vendored Normal file
View File

@@ -0,0 +1,77 @@
name: Build
on:
push:
branches:
- "*"
pull_request:
branches:
- "*"
jobs:
build-linux-i386:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: Build linux-i386
run: |
scripts/build-ubuntu-i386.sh
build-linux-amd64:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: Build linux-amd64
run: |
scripts/build-ubuntu-amd64.sh
build-android-armv7a:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: Build android-armv7a
run: |
scripts/build-android-armv7a.sh
build-windows-i386:
runs-on: windows-2019
steps:
- uses: actions/checkout@v2
- name: Build windows-i386
run: |
git submodule init && git submodule update
./waf.bat configure -T debug
./waf.bat build
build-dedicated-windows-i386:
runs-on: windows-2019
steps:
- uses: actions/checkout@v2
- name: Build dedicated windows-i386
run: |
git submodule init && git submodule update
./waf.bat configure -T debug -d
./waf.bat build
build-dedicated-linux-i386:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: Build dedicated linux-i386
run: |
scripts/build-ubuntu-i386.sh -d
build-dedicated-linux-amd64:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: Build dedicated linux-amd64
run: |
scripts/build-ubuntu-amd64.sh -d

42
.github/workflows/tests.yml vendored Normal file
View File

@@ -0,0 +1,42 @@
name: Tests
on:
push:
branches:
- "*"
pull_request:
branches:
- "*"
jobs:
tests-linux-i386:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: Run tests linux-i386
run: |
scripts/tests-ubuntu-i386.sh
tests-linux-amd64:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: Run tests linux-amd64
run: |
scripts/tests-ubuntu-amd64.sh
tests-windows-i386:
runs-on: windows-2019
steps:
- uses: actions/checkout@v2
- name: Run tests windows-i386
run: |
git submodule init && git submodule update
./waf.bat configure -T release --tests --prefix=out/
./waf.bat install
cd out
$env:Path = "bin";
./unittest.exe

11
.gitignore vendored
View File

@@ -4,7 +4,6 @@
*.vpc.*
*.project
*obj_*
build/
.waf*
.lock-waf*
__pycache__
@@ -29,4 +28,12 @@ Release_*/
*.ilk
ValveETWProviderEvents.h
game/client/*/client.lib
game/server/*/server.lib
game/server/*/server.lib
.DS_Store
build*/
.cache/
.ccache/
waf3*/
.vscode/
.depproj/
source-engine.sln

3
.gitmodules vendored
View File

@@ -4,3 +4,6 @@
[submodule "ivp"]
path = ivp
url = https://github.com/nillerusr/source-physics
[submodule "lib"]
path = lib
url = https://github.com/nillerusr/source-engine-libs.git

View File

@@ -1,36 +1,23 @@
# source-engine
Welcome to source engine:)
# Goals
* fixing bugs
* ~~NEON support~~
* DXVK support
* remove unnecessary dependencies
* Elbrus port
* ~~Arm(android) port~~
* improve performance
* ~~replace current buildsystem with waf~~
* rewrite achivement system( to work without steam )
* 64-bit support
Discord: https://discord.gg/hZRB7WMgGw
# How to Build?
Clone repo and change directory:
```
git clone https://github.com/nillerusr/source-engine --recursive --depth 1
cd source-engine
```
On Linux:
# Current tasks
- [x] Windows build support for waf
- [x] NEON support
- [x] remove unnecessary dependencies
- [x] Arm(android) port
- [x] replace current buildsystem with waf
- [x] rewrite achivement system( to work without steam )
- [x] 64-bit support
- [x] VTF 7.5 support
- [x] PBR support
- [ ] improve performance
- [ ] fixing bugs
- [ ] dxvk-native support
- [ ] Elbrus port
- [ ] rewrite serverbrowser to work without steam
dependencies:
fontconfig, freetype2, OpenAL, SDL2, libbz2, libcurl, libjpeg, libpng, zlib
```
./waf configure -T debug
./waf build
```
On Linux for Android(**Note: only Android NDK r10e is supported**):
```
export ANDROID_NDK=/path/to/ndk
./waf configure -T debug --android=armeabi-v7a,4.9,21
./waf build
```
On Windows/MacOS:
**TODO(WAF is not configured for Windows/MacOS. Use VPC as temporary solution)**
# [How to Build?](https://github.com/nillerusr/source-engine/wiki/How-to-build)

View File

@@ -595,9 +595,13 @@ void GLMDisplayInfo::PopulateModes( void )
// Add double of everything also - Retina proofing hopefully.
m_modes->AddToTail( new GLMDisplayMode( w * 2, h * 2, 0 ) );
}
m_modes->AddToTail( new GLMDisplayMode( w, w * ((float)m_info.m_displayPixelHeight/m_info.m_displayPixelWidth), 0 ) );
}
}
m_modes->AddToTail( new GLMDisplayMode( m_info.m_displayPixelWidth / 2, m_info.m_displayPixelHeight / 2, 0 ) );
m_modes->Sort( DisplayModeSortFunction );
// remove dupes.

View File

@@ -206,7 +206,7 @@ GLMRendererInfo::GLMRendererInfo( GLMRendererInfoFields *info )
kCGLPFADoubleBuffer, kCGLPFANoRecovery, kCGLPFAAccelerated,
kCGLPFADepthSize, 0,
kCGLPFAColorSize, 32,
kCGLPFARendererID, info->m_rendererID,
kCGLPFARendererID, (unsigned int)info->m_rendererID,
0
};
@@ -859,7 +859,7 @@ void GLMDisplayDB::PopulateRenderers( void )
{
// grab the OS version
long vMajor = 0; long vMinor = 0; long vMinorMinor = 0;
SInt32 vMajor = 0; SInt32 vMinor = 0; SInt32 vMinorMinor = 0;
OSStatus gestalt_err = 0;
gestalt_err = Gestalt(gestaltSystemVersionMajor, &vMajor);
@@ -1374,7 +1374,7 @@ bool GLMDisplayDB::GetModeInfo( int rendererIndex, int displayIndex, int modeInd
{
int modeIndex=0;
number = (CFNumberRef)CFDictionaryGetValue(curModeDict, kCGDisplayMode);
CFNumberGetValue(number, kCFNumberLongType, &modeIndex);
CFNumberGetValue(number, kCFNumberIntType, &modeIndex);
// grab the width and height, I am unclear on whether this is the displayed FB width or the display device width.
int screenWidth=0;
@@ -1382,11 +1382,11 @@ bool GLMDisplayDB::GetModeInfo( int rendererIndex, int displayIndex, int modeInd
int refreshHz=0;
number = (CFNumberRef)CFDictionaryGetValue(curModeDict, kCGDisplayWidth);
CFNumberGetValue(number, kCFNumberLongType, &screenWidth);
CFNumberGetValue(number, kCFNumberIntType, &screenWidth);
number = (CFNumberRef)CFDictionaryGetValue(curModeDict, kCGDisplayHeight);
CFNumberGetValue(number, kCFNumberLongType, &screenHeight);
CFNumberGetValue(number, kCFNumberIntType, &screenHeight);
number = (CFNumberRef)CFDictionaryGetValue(curModeDict, kCGDisplayRefreshRate);
CFNumberGetValue(number, kCFNumberLongType, &refreshHz);
CFNumberGetValue(number, kCFNumberIntType, &refreshHz);
GLMPRINTF(( "-D- GLMDisplayDB::GetModeInfo sees mode-index=%d, width=%d, height=%d on CGID %08x (display index %d on rendererindex %d)",
modeIndex,
@@ -1574,7 +1574,7 @@ void GLMDisplayInfo::PopulateModes( void )
void GLMDisplayInfo::Dump( int which )
{
GLMPRINTF(("\n #%d: GLMDisplayInfo @ %08x, cg-id=%08x display-mask=%08x pixwidth=%d pixheight=%d", which, (int)this, m_info.m_cgDisplayID, m_info.m_glDisplayMask, m_info.m_displayPixelWidth, m_info.m_displayPixelHeight ));
GLMPRINTF(("\n #%d: GLMDisplayInfo @ %08x, cg-id=%08x display-mask=%08x pixwidth=%d pixheight=%d", which, (int)(intp)this, m_info.m_cgDisplayID, m_info.m_glDisplayMask, m_info.m_displayPixelWidth, m_info.m_displayPixelHeight ));
FOR_EACH_VEC( *m_modes, i )
{

View File

@@ -19,7 +19,9 @@
#include "tier1/utllinkedlist.h"
#include "tier1/convar.h"
#ifdef TOGLES
#include <EGL/egl.h>
#endif
// NOTE: This has to be the last file included! (turned off below, since this is included like a header)
#include "tier0/memdbgon.h"
@@ -34,8 +36,8 @@
#define GLMPRINTF(args)
#endif
#ifdef OSX
ConVar osx_rawinput_set_one_time( "osx_rawinput_set_one_time", "0", FCVAR_ARCHIVE|FCVAR_HIDDEN, "");
#if defined( OSX ) || defined( ANDROID )
ConVar rawinput_set_one_time( "rawinput_set_one_time", "0", FCVAR_ARCHIVE|FCVAR_HIDDEN, "");
#endif
ConVar gl_blit_halfx( "gl_blit_halfx", "0" );
@@ -63,10 +65,16 @@ static void *l_egl = NULL;
static void *l_gles = NULL;
typedef void *(*t_glGetProcAddress)( const char * );
t_glGetProcAddress _glGetProcAddress;
typedef EGLBoolean (*t_eglBindAPI)(EGLenum api);
typedef EGLBoolean (*t_eglInitialize)(EGLDisplay display, EGLint *major, EGLint *minor);
typedef EGLDisplay (*t_eglGetDisplay)(NativeDisplayType native_display);
typedef char const *(*t_eglQueryString)(EGLDisplay display, EGLint name);
t_eglBindAPI _eglBindAPI;
t_glGetProcAddress _glGetProcAddress;
t_eglInitialize _eglInitialize;
t_eglGetDisplay _eglGetDisplay;
t_eglQueryString _eglQueryString;
#endif
/*
@@ -198,8 +206,6 @@ void *VoidFnPtrLookup_GlMgr(const char *fn, bool &okay, const bool bRequired, vo
{
retval = _glGetProcAddress(fn);
Msg("_glGetProcAddress(%s) = %x\n", fn, retval);
if( !retval && l_gles )
retval = dlsym( l_gles, fn );
}
@@ -594,11 +600,25 @@ InitReturnVal_t CSDLMgr::Init()
l_gles = dlopen("libGLESv3.so", RTLD_LAZY);
if( l_egl )
{
_glGetProcAddress = (t_glGetProcAddress)dlsym(l_egl, "eglGetProcAddress");
}
SET_GL_ATTR(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES);
SET_GL_ATTR(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
SET_GL_ATTR(SDL_GL_CONTEXT_MINOR_VERSION, 0);
_eglInitialize = (t_eglInitialize)dlsym(l_egl, "eglInitialize");
_eglGetDisplay = (t_eglGetDisplay)dlsym(l_egl, "eglGetDisplay");
_eglQueryString = (t_eglQueryString)dlsym(l_egl, "eglQueryString");
if( _eglInitialize && _eglInitialize && _eglQueryString )
{
EGLDisplay display = _eglGetDisplay(EGL_DEFAULT_DISPLAY);
if( _eglInitialize(display, NULL, NULL) != -1
&& strstr(_eglQueryString(display, EGL_EXTENSIONS) ,"EGL_KHR_gl_colorspace") )
SET_GL_ATTR(SDL_GL_FRAMEBUFFER_SRGB_CAPABLE, 1)
}
#elif ANDROID
bool m_bOGL = false;
@@ -1119,17 +1139,15 @@ void CSDLMgr::OnFrameRendered()
ConVarRef rawinput( "m_rawinput" );
#ifdef OSX
// We default raw input to on on Mac and set it one time for all users since
#if defined( OSX ) || defined( ANDROID )
// We default raw input to on on Mac/Android and set it one time for all users since
// it didn't used to be the default.
if ( !osx_rawinput_set_one_time.GetBool() )
if ( !rawinput_set_one_time.GetBool() )
{
osx_rawinput_set_one_time.SetValue( 1 );
rawinput_set_one_time.SetValue( 1 );
rawinput.SetValue( 1 );
}
#endif
m_bRawInput = !m_bCursorVisible && rawinput.IsValid() && rawinput.GetBool();
SDL_bool bWindowGrab = !m_bCursorVisible ? SDL_TRUE : SDL_FALSE;

View File

@@ -10,7 +10,6 @@
#include "bitmap/imageformat.h"
#include "basetypes.h"
#include "tier0/dbg.h"
#include <malloc.h>
#include <memory.h>
#include "mathlib/mathlib.h"
#include "mathlib/vector.h"
@@ -435,7 +434,8 @@ static inline void DecodeAlpha3BitLinear( CDestPixel *pImPos, DXTAlphaBlock3BitL
// pRows = (Alpha3BitRows*) & ( pAlphaBlock->stuff[0] );
const DWORD mask = 0x00000007; // bits = 00 00 01 11
DWORD bits = *( (DWORD*) & ( pAlphaBlock->stuff[0] ));
DWORD bits;
memcpy( &bits, &(pAlphaBlock->stuff[0]), sizeof(DWORD) );
gBits[0][0] = (BYTE)( bits & mask );
bits >>= 3;
@@ -454,7 +454,7 @@ static inline void DecodeAlpha3BitLinear( CDestPixel *pImPos, DXTAlphaBlock3BitL
gBits[1][3] = (BYTE)( bits & mask );
// now for last two rows:
bits = *( (DWORD*) & ( pAlphaBlock->stuff[3] )); // last 3 bytes
memcpy( &bits, &(pAlphaBlock->stuff[3]), sizeof(DWORD) );
gBits[2][0] = (BYTE)( bits & mask );
bits >>= 3;
@@ -828,7 +828,7 @@ bool ConvertToATIxN( const uint8 *src, ImageFormat srcImageFormat,
uint8 *dst, ImageFormat dstImageFormat,
int width, int height, int srcStride, int dstStride )
{
#if !defined( _X360 ) && !defined( POSIX )
#if 0
// from rgb(a) to ATIxN
if( srcStride != 0 || dstStride != 0 )
@@ -877,7 +877,7 @@ bool ConvertToDXTLegacy( const uint8 *src, ImageFormat srcImageFormat,
uint8 *dst, ImageFormat dstImageFormat,
int width, int height, int srcStride, int dstStride )
{
#if !defined( _X360 ) && !defined( POSIX )
#if 0
// from rgb(a) to dxtN
if( srcStride != 0 || dstStride != 0 )
return false;

View File

@@ -311,13 +311,16 @@ FloatBitMap_t *FloatBitMap_t::QuarterSize(void) const
FloatBitMap_t *newbm=new FloatBitMap_t(Width/2,Height/2);
for(int y=0;y<Height/2;y++)
{
for(int x=0;x<Width/2;x++)
{
for(int c=0;c<4;c++)
newbm->Pixel(x,y,c)=((Pixel(x*2,y*2,c)+Pixel(x*2+1,y*2,c)+
Pixel(x*2,y*2+1,c)+Pixel(x*2+1,y*2+1,c))/4);
}
return newbm;
}
return newbm;
}
FloatBitMap_t *FloatBitMap_t::QuarterSizeBlocky(void) const
@@ -326,12 +329,14 @@ FloatBitMap_t *FloatBitMap_t::QuarterSizeBlocky(void) const
FloatBitMap_t *newbm=new FloatBitMap_t(Width/2,Height/2);
for(int y=0;y<Height/2;y++)
{
for(int x=0;x<Width/2;x++)
{
for(int c=0;c<4;c++)
newbm->Pixel(x,y,c)=Pixel(x*2,y*2,c);
}
return newbm;
}
return newbm;
}
Vector FloatBitMap_t::AverageColor(void)
@@ -349,12 +354,15 @@ float FloatBitMap_t::BrightestColor(void)
{
float ret=0.0;
for(int y=0;y<Height;y++)
{
for(int x=0;x<Width;x++)
{
Vector v(Pixel(x,y,0),Pixel(x,y,1),Pixel(x,y,2));
ret=max(ret,v.Length());
}
return ret;
}
return ret;
}
template <class T> static inline void SWAP(T & a, T & b)
@@ -394,6 +402,7 @@ void FloatBitMap_t::UnLogize(void)
void FloatBitMap_t::Clear(float r, float g, float b, float alpha)
{
for(int y=0;y<Height;y++)
{
for(int x=0;x<Width;x++)
{
Pixel(x,y,0)=r;
@@ -401,6 +410,7 @@ void FloatBitMap_t::Clear(float r, float g, float b, float alpha)
Pixel(x,y,2)=b;
Pixel(x,y,3)=alpha;
}
}
}
void FloatBitMap_t::ScaleRGB(float scale_factor)
@@ -418,68 +428,77 @@ static int dy[4]={-1,0,0,1};
void FloatBitMap_t::SmartPaste(FloatBitMap_t const &b, int xofs, int yofs, uint32 Flags)
{
// now, need to make Difference map
FloatBitMap_t DiffMap0(this);
FloatBitMap_t DiffMap1(this);
FloatBitMap_t DiffMap2(this);
FloatBitMap_t DiffMap3(this);
FloatBitMap_t *deltas[4]={&DiffMap0,&DiffMap1,&DiffMap2,&DiffMap3};
for(int x=0;x<Width;x++)
for(int y=0;y<Height;y++)
for(int c=0;c<3;c++)
// now, need to make Difference map
FloatBitMap_t DiffMap0(this);
FloatBitMap_t DiffMap1(this);
FloatBitMap_t DiffMap2(this);
FloatBitMap_t DiffMap3(this);
FloatBitMap_t *deltas[4] = { &DiffMap0, &DiffMap1, &DiffMap2, &DiffMap3};
for (int x = 0; x < Width; x++)
{
for (int y = 0; y < Height; y++)
{
for(int i=0;i<NDELTAS;i++)
for (int c = 0; c < 3; c++)
{
int x1=x+dx[i];
int y1=y+dy[i];
x1=MAX(0,x1);
x1=MIN(Width-1,x1);
y1=MAX(0,y1);
y1=MIN(Height-1,y1);
float dx1=Pixel(x,y,c)-Pixel(x1,y1,c);
deltas[i]->Pixel(x,y,c)=dx1;
for (int i = 0; i < NDELTAS; i++)
{
int x1 = x + dx[i];
int y1 = y + dy[i];
x1 = MAX(0, x1);
x1 = MIN(Width - 1, x1);
y1 = MAX(0, y1);
y1 = MIN(Height - 1, y1);
float dx1 = Pixel(x, y, c) - Pixel(x1, y1, c);
deltas[i]->Pixel(x, y, c) = dx1;
}
}
}
for(int x=1;x<b.Width-1;x++)
for(int y=1;y<b.Height-1;y++)
for(int c=0;c<3;c++)
}
for (int x = 1; x < b.Width - 1; x++)
{
for (int y = 1; y < b.Height - 1; y++)
{
for (int c = 0; c < 3; c++)
{
for (int i = 0; i < NDELTAS; i++)
{
for(int i=0;i<NDELTAS;i++)
float diff = b.Pixel(x, y, c) - b.Pixel(x + dx[i], y + dy[i], c);
deltas[i]->Pixel(x + xofs, y + yofs, c) = diff;
if (Flags & SPFLAGS_MAXGRADIENT)
{
float diff=b.Pixel(x,y,c)-b.Pixel(x+dx[i],y+dy[i],c);
deltas[i]->Pixel(x+xofs,y+yofs,c)=diff;
if (Flags & SPFLAGS_MAXGRADIENT)
{
float dx1=Pixel(x+xofs,y+yofs,c)-Pixel(x+dx[i]+xofs,y+dy[i]+yofs,c);
if (fabs(dx1)>fabs(diff))
deltas[i]->Pixel(x+xofs,y+yofs,c)=dx1;
}
float dx1 = Pixel(x + xofs, y + yofs, c) - Pixel(x + dx[i] + xofs, y + dy[i] + yofs, c);
if (fabs(dx1) > fabs(diff))
deltas[i]->Pixel(x + xofs, y + yofs, c) = dx1;
}
}
}
}
}
// now, calculate modifiability
for(int x=0;x<Width;x++)
for(int y=0;y<Height;y++)
{
float modify=0;
if (
(x>xofs+1) && (x<=xofs+b.Width-2) &&
(y>yofs+1) && (y<=yofs+b.Height-2))
modify=1;
Alpha(x,y)=modify;
}
// // now, force a fex pixels in center to be constant
// int midx=xofs+b.Width/2;
// int midy=yofs+b.Height/2;
// for(x=midx-10;x<midx+10;x++)
// for(int y=midy-10;y<midy+10;y++)
// {
// Alpha(x,y)=0;
// for(int c=0;c<3;c++)
// Pixel(x,y,c)=b.Pixel(x-xofs,y-yofs,c);
// }
Poisson(deltas,6000,Flags);
// now, calculate modifiability
for (int x = 0; x < Width; x++)
{
for (int y = 0; y < Height; y++)
{
float modify = 0;
if ( (x > xofs + 1) && (x <= xofs + b.Width - 2) &&
(y > yofs + 1) && (y <= yofs + b.Height - 2))
modify = 1;
Alpha(x, y) = modify;
}
}
// // now, force a fex pixels in center to be constant
// int midx=xofs+b.Width/2;
// int midy=yofs+b.Height/2;
// for(x=midx-10;x<midx+10;x++)
// for(int y=midy-10;y<midy+10;y++)
// {
// Alpha(x,y)=0;
// for(int c=0;c < 3;c++)
// Pixel(x,y,c)=b.Pixel(x-xofs,y-yofs,c);
// }
Poisson(deltas, 6000, Flags);
}
void FloatBitMap_t::ScaleGradients(void)
@@ -489,57 +508,57 @@ void FloatBitMap_t::ScaleGradients(void)
FloatBitMap_t DiffMap1(this);
FloatBitMap_t DiffMap2(this);
FloatBitMap_t DiffMap3(this);
FloatBitMap_t *deltas[4]={&DiffMap0,&DiffMap1,&DiffMap2,&DiffMap3};
double gsum=0.0;
for(int x=0;x<Width;x++)
for(int y=0;y<Height;y++)
for(int c=0;c<3;c++)
FloatBitMap_t *deltas[4] = { &DiffMap0, &DiffMap1, &DiffMap2, &DiffMap3
};
double gsum = 0.0;
for (int x = 0; x < Width; x++)
for (int y = 0; y < Height; y++)
for (int c = 0; c < 3; c++)
{
for(int i=0;i<NDELTAS;i++)
for (int i = 0; i < NDELTAS; i++)
{
int x1=x+dx[i];
int y1=y+dy[i];
x1=MAX(0,x1);
x1=MIN(Width-1,x1);
y1=MAX(0,y1);
y1=MIN(Height-1,y1);
float dx1=Pixel(x,y,c)-Pixel(x1,y1,c);
deltas[i]->Pixel(x,y,c)=dx1;
gsum+=fabs(dx1);
int x1 = x + dx[i];
int y1 = y + dy[i];
x1 = MAX(0, x1);
x1 = MIN(Width - 1, x1);
y1 = MAX(0, y1);
y1 = MIN(Height - 1, y1);
float dx1 = Pixel(x, y, c) - Pixel(x1, y1, c);
deltas[i]->Pixel(x, y, c) = dx1;
gsum += fabs(dx1);
}
}
// now, reduce gradient changes
// float gavg=gsum/(Width*Height);
for (int x = 0; x < Width; x++)
for (int y = 0; y < Height; y++)
for (int c = 0; c < 3; c++)
{
for (int i = 0; i < NDELTAS; i++)
{
float norml = 1.1 *deltas[i]->Pixel(x, y, c);
// if (norml < 0.0)
// norml=-pow(-norml,1.2);
// else
// norml=pow(norml,1.2);
deltas[i]->Pixel(x, y, c) = norml;
}
}
// now, reduce gradient changes
// float gavg=gsum/(Width*Height);
for(int x=0;x<Width;x++)
for(int y=0;y<Height;y++)
for(int c=0;c<3;c++)
{
for(int i=0;i<NDELTAS;i++)
{
float norml=1.1*deltas[i]->Pixel(x,y,c);
// if (norml<0.0)
// norml=-pow(-norml,1.2);
// else
// norml=pow(norml,1.2);
deltas[i]->Pixel(x,y,c)=norml;
}
}
// now, calculate modifiability
for(int x=0;x<Width;x++)
for(int y=0;y<Height;y++)
{
float modify=0;
if (
(x>0) && (x<Width-1) &&
(y) && (y<Height-1))
{
modify=1;
Alpha(x,y)=modify;
}
}
// now, calculate modifiability
for (int x = 0; x < Width; x++)
for (int y = 0; y < Height; y++)
{
float modify = 0;
if ( (x > 0) && (x < Width - 1) &&
(y) && (y < Height - 1))
{
modify = 1;
Alpha(x, y) = modify;
}
}
Poisson(deltas,2200,0);
Poisson(deltas, 2200, 0);
}
@@ -553,7 +572,9 @@ void FloatBitMap_t::MakeTileable(void)
// set each pixel=avg-pixel
FloatBitMap_t *cursrc=&rslta;
for(int x=1;x<Width-1;x++)
{
for(int y=1;y<Height-1;y++)
{
for(int c=0;c<3;c++)
{
DiffMapX.Pixel(x,y,c)=Pixel(x,y,c)-Pixel(x+1,y,c);
@@ -586,7 +607,9 @@ void FloatBitMap_t::MakeTileable(void)
{
float error=0.0;
for(int x=1;x<Width-1;x++)
{
for(int y=1;y<Height-1;y++)
{
for(int c=0;c<3;c++)
{
float desiredx=DiffMapX.Pixel(x,y,c)+cursrc->Pixel(x+1,y,c);
@@ -596,12 +619,16 @@ void FloatBitMap_t::MakeTileable(void)
error+=SQ(desired-cursrc->Pixel(x,y,c));
}
SWAP(cursrc,curdst);
}
}
}
// paste result
for(int x=0;x<Width;x++)
for(int y=0;y<Height;y++)
for(int c=0;c<3;c++)
Pixel(x,y,c)=curdst->Pixel(x,y,c);
}
}
}
@@ -613,15 +640,18 @@ void FloatBitMap_t::GetAlphaBounds(int &minx, int &miny, int &maxx,int &maxy)
for(y=0;y<Height;y++)
if (Alpha(minx,y))
break;
if (y!=Height)
break;
}
for(maxx=Width-1;maxx>=0;maxx--)
{
int y;
for(y=0;y<Height;y++)
if (Alpha(maxx,y))
break;
if (y!=Height)
break;
}
@@ -631,6 +661,7 @@ void FloatBitMap_t::GetAlphaBounds(int &minx, int &miny, int &maxx,int &maxy)
for(x=minx;x<=maxx;x++)
if (Alpha(x,miny))
break;
if (x<maxx)
break;
}
@@ -640,6 +671,7 @@ void FloatBitMap_t::GetAlphaBounds(int &minx, int &miny, int &maxx,int &maxy)
for(x=minx;x<=maxx;x++)
if (Alpha(x,maxy))
break;
if (x<maxx)
break;
}
@@ -647,7 +679,7 @@ void FloatBitMap_t::GetAlphaBounds(int &minx, int &miny, int &maxx,int &maxy)
void FloatBitMap_t::Poisson(FloatBitMap_t *deltas[4],
int n_iters,
uint32 flags // SPF_xxx
uint32 flags // SPF_xxx
)
{
int minx,miny,maxx,maxy;
@@ -666,9 +698,13 @@ void FloatBitMap_t::Poisson(FloatBitMap_t *deltas[4],
tmp->Poisson(lowdeltas,n_iters*4,flags);
// now, propagate results from tmp to us
for(int x=0;x<tmp->Width;x++)
{
for(int y=0;y<tmp->Height;y++)
{
for(int xi=0;xi<2;xi++)
{
for(int yi=0;yi<2;yi++)
{
if (Alpha(x*2+xi,y*2+yi))
{
for(int c=0;c<3;c++)
@@ -683,6 +719,10 @@ void FloatBitMap_t::Poisson(FloatBitMap_t *deltas[4],
delete tmp;
for(int i=0;i<NDELTAS;i++)
delete lowdeltas[i];
}
}
}
}
}
FloatBitMap_t work1(this);
FloatBitMap_t work2(this);
@@ -704,7 +744,7 @@ void FloatBitMap_t::Poisson(FloatBitMap_t *deltas[4],
for(int i=0;i<NDELTAS;i++)
desired+=deltas[i]->Pixel(x,y,c)+cursrc->Pixel(x+dx[i],y+dy[i],c);
desired*=(1.0/NDELTAS);
// desired=FLerp(Pixel(x,y,c),desired,Alpha(x,y));
// desired=FLerp(Pixel(x,y,c),desired,Alpha(x,y));
curdst->Pixel(x,y,c)=FLerp(cursrc->Pixel(x,y,c),desired,0.5);
error+=SQ(desired-cursrc->Pixel(x,y,c));
}

View File

@@ -40,7 +40,7 @@ struct SSBumpCalculationContext // what each thread needs to see
};
static unsigned SSBumpCalculationThreadFN( void * ctx1 )
static uintp SSBumpCalculationThreadFN( void * ctx1 )
{
SSBumpCalculationContext *ctx = ( SSBumpCalculationContext * ) ctx1;

View File

@@ -24,7 +24,7 @@ struct TBFCalculationContext
FloatBitMap_t *dest_bm;
};
static unsigned TBFCalculationThreadFN( void *ctx1 )
static uintp TBFCalculationThreadFN( void *ctx1 )
{
TBFCalculationContext *ctx = (TBFCalculationContext *) ctx1;
for(int y=ctx->min_y; y <= ctx->max_y; y++)

View File

@@ -11,7 +11,6 @@
#include "bitmap/imageformat.h"
#include "basetypes.h"
#include "tier0/dbg.h"
#include <malloc.h>
#include <memory.h>
#include "nvtc.h"
#include "mathlib/mathlib.h"
@@ -312,12 +311,17 @@ ImageFormat D3DFormatToImageFormat( D3DFORMAT format )
switch ( format )
{
#if !defined( _X360 )
#ifdef TOGLES
case D3DFMT_R8G8B8:
return IMAGE_FORMAT_RGB888;
case D3DFMT_A8R8G8B8:
return IMAGE_FORMAT_RGBA8888;
#else
case D3DFMT_R8G8B8:
return IMAGE_FORMAT_BGR888;
#endif
case D3DFMT_A8R8G8B8:
return IMAGE_FORMAT_BGRA8888;
#endif
case D3DFMT_X8R8G8B8:
return IMAGE_FORMAT_BGRX8888;
case D3DFMT_R5G6B5:
@@ -426,6 +430,10 @@ D3DFORMAT ImageFormatToD3DFormat( ImageFormat format )
#endif
case IMAGE_FORMAT_BGRA8888:
return D3DFMT_A8R8G8B8;
case IMAGE_FORMAT_RGB888:
return D3DFMT_R8G8B8;
case IMAGE_FORMAT_RGBA8888:
return D3DFMT_A8R8G8B8;
case IMAGE_FORMAT_BGRX8888:
return D3DFMT_X8R8G8B8;
case IMAGE_FORMAT_BGR565:

View File

@@ -8,7 +8,6 @@
#include "bitmap/imageformat.h"
#include "basetypes.h"
#include "tier0/dbg.h"
#include <malloc.h>
#include <memory.h>
#include "mathlib/mathlib.h"
#include "mathlib/vector.h"
@@ -785,6 +784,50 @@ bool ResampleRGB323232F( const ResampleInfo_t& info )
return true;
}
bool ResampleRGBA32323232F( const ResampleInfo_t& info )
{
// HDRFIXME: This is some lame shit right here. (We need to get NICE working, etc, etc.)
// Make sure everything is power of two.
Assert( ( info.m_nSrcWidth & ( info.m_nSrcWidth - 1 ) ) == 0 );
Assert( ( info.m_nSrcHeight & ( info.m_nSrcHeight - 1 ) ) == 0 );
Assert( ( info.m_nDestWidth & ( info.m_nDestWidth - 1 ) ) == 0 );
Assert( ( info.m_nDestHeight & ( info.m_nDestHeight - 1 ) ) == 0 );
// Make sure that we aren't upscaling the image. . .we don't support that very well.
Assert( info.m_nSrcWidth >= info.m_nDestWidth );
Assert( info.m_nSrcHeight >= info.m_nDestHeight );
int nSampleWidth = info.m_nSrcWidth / info.m_nDestWidth;
int nSampleHeight = info.m_nSrcHeight / info.m_nDestHeight;
float *pSrc = ( float * )info.m_pSrc;
float *pDst = ( float * )info.m_pDest;
for( int y = 0; y < info.m_nDestHeight; y++ )
{
for( int x = 0; x < info.m_nDestWidth; x++ )
{
float accum[4] = { 0.0f, 0.0f, 0.0f, 0.0f };
for( int nSampleY = 0; nSampleY < nSampleHeight; nSampleY++ )
{
for( int nSampleX = 0; nSampleX < nSampleWidth; nSampleX++ )
{
accum[0] += pSrc[((x*nSampleWidth+nSampleX)+(y*nSampleHeight+nSampleY)*info.m_nSrcWidth)*4+0];
accum[1] += pSrc[((x*nSampleWidth+nSampleX)+(y*nSampleHeight+nSampleY)*info.m_nSrcWidth)*4+1];
accum[2] += pSrc[((x*nSampleWidth+nSampleX)+(y*nSampleHeight+nSampleY)*info.m_nSrcWidth)*4+2];
accum[3] += pSrc[((x*nSampleWidth+nSampleX)+(y*nSampleHeight+nSampleY)*info.m_nSrcWidth)*4+3];
}
}
for( int i = 0; i < 4; i++ )
{
accum[i] /= ( nSampleWidth * nSampleHeight );
pDst[(x+y*info.m_nDestWidth)*4+i] = accum[i];
}
}
}
return true;
}
//-----------------------------------------------------------------------------
// Generates mipmap levels
//-----------------------------------------------------------------------------

View File

@@ -7,7 +7,6 @@
#include <stdlib.h>
#include <stdio.h>
#include "tier0/dbg.h"
#include <malloc.h>
#include "filesystem.h"
#include "bitmap/tgawriter.h"
#include "tier1/utlbuffer.h"

View File

@@ -48,8 +48,8 @@ def build(bld):
libs = []
if bld.env.DEST_OS == 'win32':
libs += ['NVTC', 'ATI_COMPRESS_MT_VC10']
#if bld.env.DEST_OS == 'win32':
# libs += ['NVTC', 'ATI_COMPRESS_MT_VC10']
bld.stlib(
source = source,

View File

@@ -1,5 +0,0 @@
#!/bin/sh
# example: ./build.sh everything togl
make MAKE_VERBOSE=1 NO_CHROOT=1 -f $1.mak $2 -j$(nproc --all)

View File

@@ -33,7 +33,7 @@ public:
// return true if the console has focus
virtual bool IsConsoleVisible() = 0;
virtual void SetParent( int parent ) = 0;
virtual void SetParent( intp parent ) = 0;
};
#define GAMECONSOLE_INTERFACE_VERSION "GameConsole004"

View File

@@ -6,7 +6,11 @@
//
//=============================================================================//
#include <stdio.h>
#ifdef OSX
#include <malloc/malloc.h>
#else
#include <malloc.h>
#endif
#include "ObjectList.h"
#include "tier1/strtools.h"

View File

@@ -15,6 +15,7 @@
#include "filesystem.h"
#include "tier1/convar.h"
#include "cdll_int.h"
#include "vcrmode.h"
// memdbgon must be the last include file in a .cpp file!!!
#include "tier0/memdbgon.h"
@@ -1150,4 +1151,4 @@ void CInfoDescription::WriteFileHeader( FileHandle_t fp )
g_pFullFileSystem->FPrintf( fp, "//\r\n//\r\n// Cvar\t-\tSetting\r\n\r\n" );
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------

View File

@@ -53,12 +53,12 @@ int CBlacklistedServerManager::LoadServersFromFile( const char *pszFilename, boo
{
const char *pszName = pData->GetString( "name" );
uint32 ulDate = pData->GetInt( "date" );
uint64 ullDate = pData->GetUint64( "date" );
if ( bResetTimes )
{
time_t today;
time( &today );
ulDate = today;
ullDate = (uint64)today;
}
const char *pszNetAddr = pData->GetString( "addr" );
@@ -68,7 +68,7 @@ int CBlacklistedServerManager::LoadServersFromFile( const char *pszFilename, boo
m_Blacklist[iIdx].m_nServerID = m_iNextServerID++;
V_strncpy( m_Blacklist[iIdx].m_szServerName, pszName, sizeof( m_Blacklist[iIdx].m_szServerName ) );
m_Blacklist[iIdx].m_ulTimeBlacklistedAt = ulDate;
m_Blacklist[iIdx].m_ullTimeBlacklistedAt = ullDate;
m_Blacklist[iIdx].m_NetAdr.SetFromString( pszNetAddr );
++count;
@@ -92,7 +92,7 @@ void CBlacklistedServerManager::SaveToFile( const char *pszFilename )
{
KeyValues *pSubKey = new KeyValues( "server" );
pSubKey->SetString( "name", m_Blacklist[i].m_szServerName );
pSubKey->SetInt( "date", m_Blacklist[i].m_ulTimeBlacklistedAt );
pSubKey->SetUint64( "date", m_Blacklist[i].m_ullTimeBlacklistedAt );
pSubKey->SetString( "addr", m_Blacklist[i].m_NetAdr.ToString() );
pKV->AddSubKey( pSubKey );
}
@@ -120,7 +120,7 @@ blacklisted_server_t *CBlacklistedServerManager::AddServer( gameserveritem_t &se
time_t today;
time( &today );
m_Blacklist[iIdx].m_ulTimeBlacklistedAt = today;
m_Blacklist[iIdx].m_ullTimeBlacklistedAt = (uint64)today;
m_Blacklist[iIdx].m_NetAdr = netAdr;
m_Blacklist[iIdx].m_nServerID = m_iNextServerID++;
@@ -145,7 +145,7 @@ blacklisted_server_t *CBlacklistedServerManager::AddServer( const char *serverNa
time_t today;
time( &today );
m_Blacklist[iIdx].m_ulTimeBlacklistedAt = today;
m_Blacklist[iIdx].m_ullTimeBlacklistedAt = (uint64)today;
m_Blacklist[iIdx].m_NetAdr = netAdr;
m_Blacklist[iIdx].m_nServerID = m_iNextServerID++;
@@ -157,7 +157,7 @@ blacklisted_server_t *CBlacklistedServerManager::AddServer( const char *serverNa
//-----------------------------------------------------------------------------
// Purpose: Add the given server to the blacklist. Return added server.
//-----------------------------------------------------------------------------
blacklisted_server_t *CBlacklistedServerManager::AddServer( const char *serverName, const char *netAddressString, uint32 timestamp )
blacklisted_server_t *CBlacklistedServerManager::AddServer( const char *serverName, const char *netAddressString, uint64 timestamp )
{
netadr_t netAdr( netAddressString );
@@ -168,7 +168,7 @@ blacklisted_server_t *CBlacklistedServerManager::AddServer( const char *serverNa
int iIdx = m_Blacklist.AddToTail();
V_strncpy( m_Blacklist[iIdx].m_szServerName, serverName, sizeof( m_Blacklist[iIdx].m_szServerName ) );
m_Blacklist[iIdx].m_ulTimeBlacklistedAt = timestamp;
m_Blacklist[iIdx].m_ullTimeBlacklistedAt = timestamp;
m_Blacklist[iIdx].m_NetAdr = netAdr;
m_Blacklist[iIdx].m_nServerID = m_iNextServerID++;

View File

@@ -23,7 +23,7 @@ struct blacklisted_server_t
{
int m_nServerID;
char m_szServerName[64];
uint32 m_ulTimeBlacklistedAt;
uint64 m_ullTimeBlacklistedAt;
netadr_t m_NetAdr;
};
@@ -40,7 +40,7 @@ public:
blacklisted_server_t *AddServer( gameserveritem_t &server );
blacklisted_server_t *AddServer( const char *serverName, uint32 serverIP, int serverPort );
blacklisted_server_t *AddServer( const char *serverName, const char *netAddressString, uint32 timestamp );
blacklisted_server_t *AddServer( const char *serverName, const char *netAddressString, uint64 timestamp );
void RemoveServer( int iServerID ); // remove server with matching 'server id' from list

View File

@@ -32,7 +32,7 @@ struct RequestContext_t;
class IDownloadSystem : public IBaseInterface
{
public:
virtual DWORD CreateDownloadThread( RequestContext_t *pContext ) = 0;
virtual uintp CreateDownloadThread( RequestContext_t *pContext ) = 0;
};
//----------------------------------------------------------------------------------------

View File

@@ -3,6 +3,8 @@
#ifdef ANDROID
#include <sys/cdefs.h>
#elif defined(OSX)
#include <stdint.h>
#else
#include <bits/wordsize.h>
#endif

View File

@@ -55,8 +55,7 @@ typedef struct __iconv_t* iconv_t;
* Available since API level 28.
*/
#if __ANDROID_API__ >= 28
iconv_t iconv_open(const char* __src_encoding, const char* __dst_encoding) __INTRODUCED_IN(28);
iconv_t iconv_open(const char* __src_encoding, const char* __dst_encoding);
/**
* [iconv(3)](http://man7.org/linux/man-pages/man3/iconv.3.html) converts characters from one
@@ -70,7 +69,7 @@ iconv_t iconv_open(const char* __src_encoding, const char* __dst_encoding) __INT
*
* Available since API level 28.
*/
size_t iconv(iconv_t __converter, char** __src_buf, size_t* __src_bytes_left, char** __dst_buf, size_t* __dst_bytes_left) __INTRODUCED_IN(28);
size_t iconv(iconv_t __converter, char** __src_buf, size_t* __src_bytes_left, char** __dst_buf, size_t* __dst_bytes_left);
/**
* [iconv_close(3)](http://man7.org/linux/man-pages/man3/iconv_close.3.html) deallocates a converter
@@ -80,8 +79,6 @@ size_t iconv(iconv_t __converter, char** __src_buf, size_t* __src_bytes_left, ch
*
* Available since API level 28.
*/
int iconv_close(iconv_t __converter) __INTRODUCED_IN(28);
#endif /* __ANDROID_API__ >= 28 */
int iconv_close(iconv_t __converter);
__END_DECLS

View File

@@ -54,6 +54,8 @@ extern void longjmp( jmp_buf, int ) __attribute__((noreturn));
extern IEngineReplay *g_pEngine;
#elif ENGINE_DLL
#include "EngineInterface.h"
#elif UTILS
// OwO
#else
#include "cdll_int.h"
extern IVEngineClient *engine;
@@ -61,10 +63,23 @@ extern void longjmp( jmp_buf, int ) __attribute__((noreturn));
// use the JPEGLIB_USE_STDIO define so that we can read in jpeg's from outside the game directory tree.
#define JPEGLIB_USE_STDIO
#if ANDROID
#include "android/jpeglib/jpeglib.h"
#else
#include "jpeglib/jpeglib.h"
#endif
#undef JPEGLIB_USE_STDIO
#if HAVE_PNG
#if ANDROID
#include "libpng/png.h"
#else
#include <png.h>
#endif
#endif
#include <setjmp.h>
@@ -93,6 +108,8 @@ extern void longjmp( jmp_buf, int ) __attribute__((noreturn));
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
#if HAVE_JPEG
struct ValveJpegErrorHandler_t
{
// The default manager
@@ -129,12 +146,12 @@ static void ValveJpegErrorHandler( j_common_ptr cinfo )
// Bail
longjmp( pError->m_ErrorContext, 1 );
}
#endif
// convert the JPEG file given to a TGA file at the given output path.
ConversionErrorType ImgUtl_ConvertJPEGToTGA( const char *jpegpath, const char *tgaPath, bool bRequirePowerOfTwo )
{
#if !defined( _X360 )
#if !defined( _X360 ) && HAVE_JPEG
//
// !FIXME! This really probably should use ImgUtl_ReadJPEGAsRGBA, to avoid duplicated code.
@@ -485,7 +502,7 @@ unsigned char * ImgUtl_ReadTGAAsRGBA(const char *tgaPath, int &width, int &heigh
unsigned char *ImgUtl_ReadJPEGAsRGBA( const char *jpegPath, int &width, int &height, ConversionErrorType &errcode )
{
#if !defined( _X360 )
#if !defined( _X360 ) && HAVE_JPEG
struct jpeg_decompress_struct jpegInfo;
struct ValveJpegErrorHandler_t jerr;
JSAMPROW row_pointer[1];
@@ -636,6 +653,7 @@ unsigned char *ImgUtl_ReadJPEGAsRGBA( const char *jpegPath, int &width, int &hei
#endif
}
#if HAVE_PNG
static void ReadPNGData( png_structp png_ptr, png_bytep outBytes, png_size_t byteCountToRead )
{
@@ -654,19 +672,37 @@ static void ReadPNGData( png_structp png_ptr, png_bytep outBytes, png_size_t byt
// Read the bytes
pBuf->Get( outBytes, byteCountToRead );
}
#endif
unsigned char *ImgUtl_ReadPNGAsRGBA( const char *pngPath, int &width, int &height, ConversionErrorType &errcode )
{
#if !defined( _X360 )
#if !defined( _X360 ) && HAVE_PNG
// Just load the whole file into a memory buffer
CUtlBuffer bufFileContents;
#if UTILS
static char buf[8192];
FILE *readfile = fopen(pngPath, "rb");
if( !readfile )
{
errcode = CE_CANT_OPEN_SOURCE_FILE;
return NULL;
}
size_t size;
while( ( size = fread(buf, 1, sizeof(buf), readfile ) ) > 0 )
bufFileContents.Put( buf, size );
// Load it
return ImgUtl_ReadPNGAsRGBAFromBuffer( bufFileContents, width, height, errcode );
#else
if ( !g_pFullFileSystem->ReadFile( pngPath, NULL, bufFileContents ) )
{
errcode = CE_CANT_OPEN_SOURCE_FILE;
return NULL;
}
#endif
// Load it
return ImgUtl_ReadPNGAsRGBAFromBuffer( bufFileContents, width, height, errcode );
@@ -679,7 +715,7 @@ unsigned char *ImgUtl_ReadPNGAsRGBA( const char *pngPath, int &width, int &heigh
unsigned char *ImgUtl_ReadPNGAsRGBAFromBuffer( CUtlBuffer &buffer, int &width, int &height, ConversionErrorType &errcode )
{
#if !defined( _X360 )
#if !defined( _X360 ) && HAVE_PNG
png_const_bytep pngData = (png_const_bytep)buffer.Base();
if (png_sig_cmp( pngData, 0, 8))
@@ -1470,7 +1506,7 @@ ConversionErrorType ImgUtl_ConvertTGAToVTF(const char *tgaPath, int nMaxWidth/*=
inbuf.SeekPut( CUtlBuffer::SEEK_HEAD, nBytesRead );
// load vtex_dll.dll and get the interface to it.
CSysModule *vtexmod = Sys_LoadModule("vtex_dll");
CSysModule *vtexmod = Sys_LoadModule("vtex_dll" DLL_EXT_STRING);
if (vtexmod == NULL)
{
Msg( "Failed to open TGA conversion module vtex_dll: %s\n", tgaPath);
@@ -1519,6 +1555,17 @@ static void DoCopyFile( const char *source, const char *destination )
::COM_CopyFile( source, destination );
#elif REPLAY_DLL
g_pEngine->CopyFile( source, destination );
#elif UTILS
static char buf[16384];
FILE *readfile = fopen(source, "rb");
FILE *writefile = fopen(destination, "wb");
size_t size = 0;
while( (size = fread(buf, sizeof(buf), 1, readfile)) != 0 )
fwrite(buf, size, 1, writefile);
fclose(readfile);
fclose(writefile);
#else
engine->CopyLocalFile( source, destination );
#endif
@@ -1709,12 +1756,12 @@ ConversionErrorType ImgUtl_ConvertToVTFAndDumpVMT( const char *pInPath, const ch
Q_strncpy(finalPath, com_gamedir, sizeof(finalPath));
#elif REPLAY_DLL
Q_strncpy(finalPath, g_pEngine->GetGameDir(), sizeof(finalPath));
#else
#elif !UTILS
Q_strncpy(finalPath, engine->GetGameDirectory(), sizeof(finalPath));
#endif
Q_strncat(finalPath, szOutDir, sizeof(finalPath), COPY_ALL_CHARACTERS);
Q_strncat(finalPath, vtfFilename, sizeof(finalPath), COPY_ALL_CHARACTERS);
c = finalPath + strlen(finalPath);
while ((c > finalPath) && (*(c-1) != '.'))
{
@@ -1826,6 +1873,7 @@ ConversionErrorType ImgUtl_WriteGenericVMT( const char *vtfPath, const char *pMa
return CE_SUCCESS;
}
#if HAVE_PNG
static void WritePNGData( png_structp png_ptr, png_bytep inBytes, png_size_t byteCountToWrite )
{
@@ -1927,11 +1975,13 @@ fail:
return CE_SOURCE_FILE_FORMAT_NOT_SUPPORTED;
#endif
}
#endif
//-----------------------------------------------------------------------------
// Purpose: Initialize destination --- called by jpeg_start_compress
// before any data is actually written.
//-----------------------------------------------------------------------------
#if HAVE_JPEG
METHODDEF(void) init_destination (j_compress_ptr cinfo)
{
JPEGDestinationManager_t *dest = ( JPEGDestinationManager_t *) cinfo->dest;
@@ -2012,12 +2062,14 @@ GLOBAL(void) jpeg_UtlBuffer_dest (j_compress_ptr cinfo, CUtlBuffer *pBuffer )
dest->pub.term_destination = term_destination;
dest->pBuffer = pBuffer;
}
#endif
//-----------------------------------------------------------------------------
// Purpose: Write three channel RGB data to a JPEG file
//-----------------------------------------------------------------------------
bool ImgUtl_WriteRGBToJPEG( unsigned char *pSrcBuf, unsigned int nSrcWidth, unsigned int nSrcHeight, const char *lpszFilename )
{
#if HAVE_JPEG
CUtlBuffer dstBuf;
JSAMPROW row_pointer[1]; // pointer to JSAMPLE row[s]
@@ -2067,13 +2119,16 @@ bool ImgUtl_WriteRGBToJPEG( unsigned char *pSrcBuf, unsigned int nSrcWidth, unsi
// Cleanup
jpeg_destroy_compress(&cinfo);
return CE_SUCCESS;
#else
return CE_SOURCE_FILE_FORMAT_NOT_SUPPORTED;
#endif
}
ConversionErrorType ImgUtl_WriteRGBAAsJPEGToBuffer( const unsigned char *pRGBAData, int nWidth, int nHeight, CUtlBuffer &bufOutData, int nStride )
{
#if !defined( _X360 )
#if !defined( _X360 ) && HAVE_JPEG
JSAMPROW row_pointer[1]; // pointer to JSAMPLE row[s]
int row_stride; // physical row width in image buffer
@@ -2214,6 +2269,7 @@ ConversionErrorType ImgUtl_SaveBitmapToBuffer( CUtlBuffer &fileData, const Bitma
ConversionErrorType ImgUtl_LoadPNGBitmapFromBuffer( CUtlBuffer &fileData, Bitmap_t &bitmap )
{
#if HAVE_PNG
bitmap.Clear();
ConversionErrorType nErrorCode;
int width, height;
@@ -2226,10 +2282,14 @@ ConversionErrorType ImgUtl_LoadPNGBitmapFromBuffer( CUtlBuffer &fileData, Bitmap
// Install the buffer into the bitmap, and transfer ownership
bitmap.SetBuffer( width, height, IMAGE_FORMAT_RGBA8888, buffer, true, width*4 );
return CE_SUCCESS;
#else
return CE_SOURCE_FILE_FORMAT_NOT_SUPPORTED;
#endif
}
ConversionErrorType ImgUtl_SavePNGBitmapToBuffer( CUtlBuffer &fileData, const Bitmap_t &bitmap )
{
#if HAVE_PNG
if ( !bitmap.IsValid() )
{
Assert( bitmap.IsValid() );
@@ -2252,6 +2312,9 @@ ConversionErrorType ImgUtl_SavePNGBitmapToBuffer( CUtlBuffer &fileData, const Bi
bitmap.Stride()
);
return result;
#else
return CE_SOURCE_FILE_FORMAT_NOT_SUPPORTED;
#endif
}
ConversionErrorType ImgUtl_ResizeBitmap( Bitmap_t &destBitmap, int nWidth, int nHeight, const Bitmap_t *pImgSource )

View File

@@ -22,7 +22,7 @@ extern "C" {
#define ALC_APIENTRY
#endif
#if TARGET_OS_MAC
#if defined(TARGET_OS_MAC) && TARGET_OS_MAC
#pragma export on
#endif
@@ -279,7 +279,7 @@ typedef void (ALC_APIENTRY *LPALCCAPTURESAMPLES)( ALCdevice *device, A
#endif /* ALC_NO_PROTOTYPES */
#if TARGET_OS_MAC
#if defined(TARGET_OS_MAC) && TARGET_OS_MAC
#pragma export off
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -16,10 +16,10 @@
#undef ALIGN4
#undef ALIGN16
#undef ALIGN32
#define ALIGN4( a ) a = (byte *)((int)((byte *)a + 3) & ~ 3)
#define ALIGN16( a ) a = (byte *)((int)((byte *)a + 15) & ~ 15)
#define ALIGN32( a ) a = (byte *)((int)((byte *)a + 31) & ~ 31)
#define ALIGN64( a ) a = (byte *)((int)((byte *)a + 63) & ~ 63)
#define ALIGN4( a ) a = (byte *)((intp)((byte *)a + 3) & ~ 3)
#define ALIGN16( a ) a = (byte *)((intp)((byte *)a + 15) & ~ 15)
#define ALIGN32( a ) a = (byte *)((intp)((byte *)a + 31) & ~ 31)
#define ALIGN64( a ) a = (byte *)((intp)((byte *)a + 63) & ~ 63)
// Fixup macros create variables that may not be referenced
#pragma warning( push )
@@ -1228,8 +1228,8 @@ int ByteswapANI( studiohdr_t* pHdr, void *pDestBase, const void *pSrcBase, const
V_memcpy( pNewDest, pDestBase, pAnimBlock->datastart );
pNewDest += pAnimBlock->datastart;
int padding = AlignValue( (unsigned int)pNewDest - (unsigned int)pNewDestBase, 2048 );
padding -= (unsigned int)pNewDest - (unsigned int)pNewDestBase;
int padding = AlignValue( (uintp)pNewDest - (uintp)pNewDestBase, 2048 );
padding -= (uintp)pNewDest - (uintp)pNewDestBase;
pNewDest += padding;
// iterate and compress anim blocks
@@ -1240,7 +1240,7 @@ int ByteswapANI( studiohdr_t* pHdr, void *pDestBase, const void *pSrcBase, const
void *pInput = (byte *)pDestBase + pAnimBlock->datastart;
int inputSize = pAnimBlock->dataend - pAnimBlock->datastart;
pAnimBlock->datastart = (unsigned int)pNewDest - (unsigned int)pNewDestBase;
pAnimBlock->datastart = (uintp)pNewDest - (uintp)pNewDestBase;
void *pOutput;
int outputSize;
@@ -1257,11 +1257,11 @@ int ByteswapANI( studiohdr_t* pHdr, void *pDestBase, const void *pSrcBase, const
pNewDest += inputSize;
}
padding = AlignValue( (unsigned int)pNewDest - (unsigned int)pNewDestBase, 2048 );
padding -= (unsigned int)pNewDest - (unsigned int)pNewDestBase;
padding = AlignValue( (uintp)pNewDest - (uintp)pNewDestBase, 2048 );
padding -= (uintp)pNewDest - (uintp)pNewDestBase;
pNewDest += padding;
pAnimBlock->dataend = (unsigned int)pNewDest - (unsigned int)pNewDestBase;
pAnimBlock->dataend = (uintp)pNewDest - (uintp)pNewDestBase;
}
fixedFileSize = pNewDest - pNewDestBase;
@@ -2522,14 +2522,14 @@ BEGIN_BYTESWAP_DATADESC( studiohdr_t )
DEFINE_FIELD( contents, FIELD_INTEGER ),
DEFINE_FIELD( numincludemodels, FIELD_INTEGER ),
DEFINE_INDEX( includemodelindex, FIELD_INTEGER ),
DEFINE_FIELD( virtualModel, FIELD_INTEGER ), // void*
DEFINE_FIELD( unused_virtualModel, FIELD_INTEGER ), // void*
DEFINE_INDEX( szanimblocknameindex, FIELD_INTEGER ),
DEFINE_FIELD( numanimblocks, FIELD_INTEGER ),
DEFINE_INDEX( animblockindex, FIELD_INTEGER ),
DEFINE_FIELD( animblockModel, FIELD_INTEGER ), // void*
DEFINE_FIELD( unused_animblockModel, FIELD_INTEGER ), // void*
DEFINE_INDEX( bonetablebynameindex, FIELD_INTEGER ),
DEFINE_FIELD( pVertexBase, FIELD_INTEGER ), // void*
DEFINE_FIELD( pIndexBase, FIELD_INTEGER ), // void*
DEFINE_FIELD( unused_pVertexBase, FIELD_INTEGER ), // void*
DEFINE_FIELD( unused_pIndexBase, FIELD_INTEGER ), // void*
DEFINE_FIELD( constdirectionallightdot, FIELD_CHARACTER ), // byte
DEFINE_FIELD( rootLOD, FIELD_CHARACTER ), // byte
DEFINE_FIELD( numAllowedRootLODs, FIELD_CHARACTER ), // byte
@@ -2985,7 +2985,11 @@ BEGIN_BYTESWAP_DATADESC( mstudiomesh_t )
END_BYTESWAP_DATADESC()
BEGIN_BYTESWAP_DATADESC( mstudio_meshvertexdata_t )
#ifdef PLATFORM_64BITS
DEFINE_FIELD( index_ptr_modelvertexdata, FIELD_INTEGER ), // mstudio_modelvertexdata_t*
#else
DEFINE_FIELD( modelvertexdata, FIELD_INTEGER ), // mstudio_modelvertexdata_t*
#endif
DEFINE_ARRAY( numLODVertexes, FIELD_INTEGER, MAX_NUM_LODS ),
END_BYTESWAP_DATADESC()

View File

@@ -17,7 +17,7 @@
#include "filesystem.h"
#include "vguifont.h"
#ifdef LINUX
#if defined(LINUX) || defined(OSX)
#include <ft2build.h>
#include FT_FREETYPE_H
typedef void *(*FontDataHelper)( const char *pchFontName, int &size, const char *fontFileName );
@@ -71,7 +71,7 @@ public:
IFileSystem *FileSystem() { return m_pFileSystem; }
IMaterialSystem *MaterialSystem() { return m_pMaterialSystem; }
#ifdef LINUX
#if defined(LINUX) || defined(OSX)
FT_Library GetFontLibraryHandle() { return library; }
void SetFontDataHelper( FontDataHelper helper ) { m_pFontDataHelper = helper; }
#endif
@@ -96,7 +96,7 @@ private:
CUtlVector<CFontAmalgam> m_FontAmalgams;
CUtlVector<font_t *> m_Win32Fonts;
#ifdef LINUX
#if defined(LINUX) || defined(OSX)
FT_Library library;
FontDataHelper m_pFontDataHelper;
#endif

View File

@@ -23,10 +23,7 @@ struct newChar_t
#ifdef WIN32
#include "Win32Font.h"
typedef CWin32Font font_t;
#elif defined(OSX)
#include "osxfont.h"
typedef COSXFont font_t;
#elif defined(LINUX)
#elif defined(LINUX) || defined(OSX)
#include "linuxfont.h"
typedef CLinuxFont font_t;
#else

View File

@@ -1,5 +0,0 @@
#!/bin/bash
pushd `dirname $0`
devtools/bin/vpc /f /hl2 +everything /mksln everything
popd

View File

@@ -1 +0,0 @@
devtools\bin\vpc.exe /2013 +everything /mksln everything.sln

View File

@@ -1 +0,0 @@
devtools\bin\vpc.exe /2019 +game /hl2 /mksln game.sln

View File

@@ -39,7 +39,7 @@ struct DataCacheItemData_t
//-------------------------------------
#define DC_NO_NEXT_LOCKED ((DataCacheItem_t *)0xffffffff)
#define DC_NO_NEXT_LOCKED ((DataCacheItem_t *)-1)
#define DC_MAX_THREADS_FRAMELOCKED 4
struct DataCacheItem_t : DataCacheItemData_t
@@ -181,10 +181,9 @@ private:
DataCacheItem_t *m_pFirst;
int m_iThread;
};
typedef CThreadLocal<FrameLock_t *> CThreadFrameLock;
CDataCacheLRU & m_LRU;
CThreadFrameLock m_ThreadFrameLock;
CTHREADLOCAL(FrameLock_t*) m_ThreadFrameLock;
DataCacheStatus_t m_status;
DataCacheLimits_t m_limits;
IDataCacheClient * m_pClient;
@@ -381,4 +380,4 @@ inline void CDataCacheSection::NoteUnlock( int size )
//-----------------------------------------------------------------------------
#endif // DATACACHE_H
#endif // DATACACHE_H

View File

@@ -126,7 +126,7 @@ struct studiodata_t
// array of cache handles to demand loaded virtual model data
int m_nAnimBlockCount;
DataCacheHandle_t *m_pAnimBlock;
unsigned long *m_iFakeAnimBlockStall;
unsigned int *m_iFakeAnimBlockStall;
// vertex data is usually compressed to save memory (model decal code only needs some data)
DataCacheHandle_t m_VertexCache;
@@ -235,11 +235,11 @@ struct AsyncInfo_t
int iAnimBlock;
};
const int NO_ASYNC = CUtlLinkedList< AsyncInfo_t >::InvalidIndex();
const intp NO_ASYNC = CUtlFixedLinkedList< AsyncInfo_t >::InvalidIndex();
//-------------------------------------
CUtlMap<int, int> g_AsyncInfoMap( DefLessFunc( int ) );
CUtlMap<int, intp> g_AsyncInfoMap( DefLessFunc( int ) );
CThreadFastMutex g_AsyncInfoMapMutex;
inline int MakeAsyncInfoKey( MDLHandle_t hModel, MDLCacheDataType_t type, int iAnimBlock )
@@ -248,7 +248,7 @@ inline int MakeAsyncInfoKey( MDLHandle_t hModel, MDLCacheDataType_t type, int iA
return ( ( ( (int)hModel) << 16 ) | ( (int)type << 13 ) | iAnimBlock );
}
inline int GetAsyncInfoIndex( MDLHandle_t hModel, MDLCacheDataType_t type, int iAnimBlock = 0 )
inline intp GetAsyncInfoIndex( MDLHandle_t hModel, MDLCacheDataType_t type, int iAnimBlock = 0 )
{
AUTO_LOCK( g_AsyncInfoMapMutex );
int key = MakeAsyncInfoKey( hModel, type, iAnimBlock );
@@ -260,7 +260,7 @@ inline int GetAsyncInfoIndex( MDLHandle_t hModel, MDLCacheDataType_t type, int i
return g_AsyncInfoMap[i];
}
inline int SetAsyncInfoIndex( MDLHandle_t hModel, MDLCacheDataType_t type, int iAnimBlock, int index )
inline intp SetAsyncInfoIndex( MDLHandle_t hModel, MDLCacheDataType_t type, int iAnimBlock, intp index )
{
AUTO_LOCK( g_AsyncInfoMapMutex );
Assert( index == NO_ASYNC || GetAsyncInfoIndex( hModel, type, iAnimBlock ) == NO_ASYNC );
@@ -277,7 +277,7 @@ inline int SetAsyncInfoIndex( MDLHandle_t hModel, MDLCacheDataType_t type, int i
return index;
}
inline int SetAsyncInfoIndex( MDLHandle_t hModel, MDLCacheDataType_t type, int index )
inline intp SetAsyncInfoIndex( MDLHandle_t hModel, MDLCacheDataType_t type, intp index )
{
return SetAsyncInfoIndex( hModel, type, 0, index );
}
@@ -507,7 +507,7 @@ private:
bool BuildHardwareData( MDLHandle_t handle, studiodata_t *pStudioData, studiohdr_t *pStudioHdr, OptimizedModel::FileHeader_t *pVtxHdr );
void ConvertFlexData( studiohdr_t *pStudioHdr );
int ProcessPendingAsync( int iAsync );
int ProcessPendingAsync( intp iAsync );
void ProcessPendingAsyncs( MDLCacheDataType_t type = MDLCACHE_NONE );
bool ClearAsync( MDLHandle_t handle, MDLCacheDataType_t type, int iAnimBlock, bool bAbort = false );
@@ -523,7 +523,7 @@ private:
int UpdateOrCreate( studiohdr_t *pHdr, const char *pFilename, char *pX360Filename, int maxLen, const char *pPathID, bool bForce = false );
// Attempts to read the platform native file - on 360 it can read and swap Win32 file as a fallback
bool ReadFileNative( char *pFileName, const char *pPath, CUtlBuffer &buf, int nMaxBytes = 0 );
bool ReadFileNative( char *pFileName, const char *pPath, CUtlBuffer &buf, int nMaxBytes = 0, MDLCacheDataType_t type = MDLCACHE_NONE );
// Creates a thin cache entry (to be used for model decals) from fat vertex data
vertexFileHeader_t * CreateThinVertexes( vertexFileHeader_t * originalData, const studiohdr_t * pStudioHdr, int * cacheLength );
@@ -879,7 +879,7 @@ void CMDLCache::SetCacheNotify( IMDLCacheNotify *pNotify )
//-----------------------------------------------------------------------------
const char *CMDLCache::GetModelName( MDLHandle_t handle )
{
if ( handle == MDLHANDLE_INVALID )
if ( handle == MDLHANDLE_INVALID )
return ERROR_MODEL;
return m_MDLDict.GetElementName( handle );
@@ -909,7 +909,7 @@ void CMDLCache::MakeFilename( MDLHandle_t handle, const char *pszExtension, char
Q_strncpy( pszFileName, GetActualModelName( handle ), nMaxLength );
Q_SetExtension( pszFileName, pszExtension, nMaxLength );
Q_FixSlashes( pszFileName );
#ifdef _LINUX
#ifdef POSIX
Q_strlower( pszFileName );
#endif
}
@@ -1004,7 +1004,7 @@ void CMDLCache::UnserializeVCollide( MDLHandle_t handle, bool synchronousLoad )
// FIXME: Should the vcollde be played into cacheable memory?
studiodata_t *pStudioData = m_MDLDict[handle];
int iAsync = GetAsyncInfoIndex( handle, MDLCACHE_VCOLLIDE );
intp iAsync = GetAsyncInfoIndex( handle, MDLCACHE_VCOLLIDE );
if ( iAsync == NO_ASYNC )
{
@@ -1025,7 +1025,7 @@ void CMDLCache::UnserializeVCollide( MDLHandle_t handle, bool synchronousLoad )
{
for ( int i = 1; i < pVirtualModel->m_group.Count(); i++ )
{
MDLHandle_t sharedHandle = (MDLHandle_t) (int)pVirtualModel->m_group[i].cache & 0xffff;
MDLHandle_t sharedHandle = VoidPtrToMDLHandle(pVirtualModel->m_group[i].cache);
studiodata_t *pData = m_MDLDict[sharedHandle];
if ( !(pData->m_nFlags & STUDIODATA_FLAGS_VCOLLISION_LOADED) )
{
@@ -1169,8 +1169,8 @@ void CMDLCache::AllocateAnimBlocks( studiodata_t *pStudioData, int nCount )
memset( pStudioData->m_pAnimBlock, 0, sizeof(DataCacheHandle_t) * pStudioData->m_nAnimBlockCount );
pStudioData->m_iFakeAnimBlockStall = new unsigned long [pStudioData->m_nAnimBlockCount];
memset( pStudioData->m_iFakeAnimBlockStall, 0, sizeof( unsigned long ) * pStudioData->m_nAnimBlockCount );
pStudioData->m_iFakeAnimBlockStall = new unsigned int [pStudioData->m_nAnimBlockCount];
memset( pStudioData->m_iFakeAnimBlockStall, 0, sizeof( unsigned int ) * pStudioData->m_nAnimBlockCount );
}
void CMDLCache::FreeAnimBlocks( MDLHandle_t handle )
@@ -1219,7 +1219,7 @@ unsigned char *CMDLCache::UnserializeAnimBlock( MDLHandle_t handle, int nBlock )
studiodata_t *pStudioData = m_MDLDict[handle];
int iAsync = GetAsyncInfoIndex( handle, MDLCACHE_ANIMBLOCK, nBlock );
intp iAsync = GetAsyncInfoIndex( handle, MDLCACHE_ANIMBLOCK, nBlock );
if ( iAsync == NO_ASYNC )
{
@@ -1238,7 +1238,7 @@ unsigned char *CMDLCache::UnserializeAnimBlock( MDLHandle_t handle, int nBlock )
char pFileName[MAX_PATH];
Q_strncpy( pFileName, pModelName, sizeof(pFileName) );
Q_FixSlashes( pFileName );
#ifdef _LINUX
#ifdef POSIX
Q_strlower( pFileName );
#endif
if ( IsX360() )
@@ -1398,12 +1398,12 @@ void CMDLCache::FreeVirtualModel( MDLHandle_t handle )
if ( pStudioData && pStudioData->m_pVirtualModel )
{
int nGroupCount = pStudioData->m_pVirtualModel->m_group.Count();
Assert( (nGroupCount >= 1) && pStudioData->m_pVirtualModel->m_group[0].cache == (void*)(uintp)handle );
Assert( (nGroupCount >= 1) && pStudioData->m_pVirtualModel->m_group[0].cache == MDLHandleToVirtual(handle) );
// NOTE: Start at *1* here because the 0th element contains a reference to *this* handle
for ( int i = 1; i < nGroupCount; ++i )
{
MDLHandle_t h = (MDLHandle_t)(int)pStudioData->m_pVirtualModel->m_group[i].cache&0xffff;
MDLHandle_t h = VoidPtrToMDLHandle( pStudioData->m_pVirtualModel->m_group[i].cache );
FreeVirtualModel( h );
Release( h );
}
@@ -1453,7 +1453,7 @@ virtualmodel_t *CMDLCache::GetVirtualModelFast( const studiohdr_t *pStudioHdr, M
// Group has to be zero to ensure refcounting is correct
int nGroup = pStudioData->m_pVirtualModel->m_group.AddToTail( );
Assert( nGroup == 0 );
pStudioData->m_pVirtualModel->m_group[nGroup].cache = (void *)(uintp)handle;
pStudioData->m_pVirtualModel->m_group[nGroup].cache = MDLHandleToVirtual(handle);
// Add all dependent data
pStudioData->m_pVirtualModel->AppendModels( 0, pStudioHdr );
@@ -1550,7 +1550,7 @@ bool CMDLCache::LoadHardwareData( MDLHandle_t handle )
return false;
}
int iAsync = GetAsyncInfoIndex( handle, MDLCACHE_STUDIOHWDATA );
intp iAsync = GetAsyncInfoIndex( handle, MDLCACHE_STUDIOHWDATA );
if ( iAsync == NO_ASYNC )
{
@@ -1910,7 +1910,7 @@ int CMDLCache::UpdateOrCreate( studiohdr_t *pHdr, const char *pSourceName, char
//-----------------------------------------------------------------------------
// Purpose: Attempts to read a file native to the current platform
//-----------------------------------------------------------------------------
bool CMDLCache::ReadFileNative( char *pFileName, const char *pPath, CUtlBuffer &buf, int nMaxBytes )
bool CMDLCache::ReadFileNative( char *pFileName, const char *pPath, CUtlBuffer &buf, int nMaxBytes, MDLCacheDataType_t type )
{
bool bOk = false;
@@ -1925,6 +1925,32 @@ bool CMDLCache::ReadFileNative( char *pFileName, const char *pPath, CUtlBuffer &
{
// Read the PC version
bOk = g_pFullFileSystem->ReadFile( pFileName, pPath, buf, nMaxBytes );
if( bOk && type == MDLCACHE_STUDIOHDR )
{
studiohdr_t* pStudioHdr = ( studiohdr_t* ) buf.PeekGet();
if ( pStudioHdr->studiohdr2index == 0 )
{
// We always need this now, so make room for it in the buffer now.
int bufferContentsEnd = buf.TellMaxPut();
int maskBits = VALIGNOF( studiohdr2_t ) - 1;
int offsetStudiohdr2 = ( bufferContentsEnd + maskBits ) & ~maskBits;
int sizeIncrease = ( offsetStudiohdr2 - bufferContentsEnd ) + sizeof( studiohdr2_t );
buf.SeekPut( CUtlBuffer::SEEK_CURRENT, sizeIncrease );
// Re-get the pointer after resizing, because it has probably moved.
pStudioHdr = ( studiohdr_t* ) buf.Base();
studiohdr2_t* pStudioHdr2 = ( studiohdr2_t* ) ( ( byte * ) pStudioHdr + offsetStudiohdr2 );
memset( pStudioHdr2, 0, sizeof( studiohdr2_t ) );
pStudioHdr2->flMaxEyeDeflection = 0.866f; // Matches studio.h.
pStudioHdr->studiohdr2index = offsetStudiohdr2;
// Also make sure the structure knows about the extra bytes
// we've added so they get copied around.
pStudioHdr->length += sizeIncrease;
}
}
}
return bOk;
@@ -1970,7 +1996,7 @@ studiohdr_t *CMDLCache::UnserializeMDL( MDLHandle_t handle, void *pData, int nDa
// critical! store a back link to our data
// this is fetched when re-establishing dependent cached data (vtx/vvd)
pStudioHdrIn->virtualModel = (void *)(uintp)handle;
pStudioHdrIn->SetVirtualModel( MDLHandleToVirtual( handle ) );
MdlCacheMsg( "MDLCache: Alloc studiohdr %s\n", GetModelName( handle ) );
@@ -2022,7 +2048,7 @@ bool CMDLCache::ReadMDLFile( MDLHandle_t handle, const char *pMDLFileName, CUtlB
char pFileName[ MAX_PATH ];
Q_strncpy( pFileName, pMDLFileName, sizeof( pFileName ) );
Q_FixSlashes( pFileName );
#ifdef _LINUX
#ifdef POSIX
Q_strlower( pFileName );
#endif
@@ -2030,7 +2056,7 @@ bool CMDLCache::ReadMDLFile( MDLHandle_t handle, const char *pMDLFileName, CUtlB
MEM_ALLOC_CREDIT();
bool bOk = ReadFileNative( pFileName, "GAME", buf );
bool bOk = ReadFileNative( pFileName, "GAME", buf, 0, MDLCACHE_STUDIOHDR );
if ( !bOk )
{
DevWarning( "Failed to load %s!\n", pMDLFileName );
@@ -2059,6 +2085,12 @@ bool CMDLCache::ReadMDLFile( MDLHandle_t handle, const char *pMDLFileName, CUtlB
}
}
if ( buf.Size() < sizeof(studiohdr_t) )
{
DevWarning( "Empty model %s\n", pMDLFileName );
return false;
}
studiohdr_t *pStudioHdr = (studiohdr_t*)buf.PeekGet();
if ( !pStudioHdr )
{
@@ -2073,7 +2105,7 @@ bool CMDLCache::ReadMDLFile( MDLHandle_t handle, const char *pMDLFileName, CUtlB
// critical! store a back link to our data
// this is fetched when re-establishing dependent cached data (vtx/vvd)
pStudioHdr->virtualModel = (void*)(uintp)handle;
pStudioHdr->SetVirtualModel( MDLHandleToVirtual( handle ) );
// Make sure all dependent files are valid
if ( !VerifyHeaders( pStudioHdr ) )
@@ -2138,6 +2170,11 @@ studiohdr_t *CMDLCache::GetStudioHdr( MDLHandle_t handle )
// Assert( m_pModelCacheSection->IsFrameLocking() );
// Assert( m_pMeshCacheSection->IsFrameLocking() );
studiodata_t *pStudioData = m_MDLDict[handle];
if( !pStudioData )
return NULL;
#if _DEBUG
VPROF_INCREMENT_COUNTER( "GetStudioHdr", 1 );
#endif
@@ -2236,7 +2273,7 @@ void CMDLCache::TouchAllData( MDLHandle_t handle )
// ensure all sub models are cached
for ( int i=1; i<pVModel->m_group.Count(); ++i )
{
MDLHandle_t childHandle = (MDLHandle_t)(int)pVModel->m_group[i].cache&0xffff;
MDLHandle_t childHandle = VoidPtrToMDLHandle( pVModel->m_group[i].cache );
if ( childHandle != MDLHANDLE_INVALID )
{
// FIXME: Should this be calling TouchAllData on the child?
@@ -2301,7 +2338,7 @@ bool CMDLCache::HandleCacheNotification( const DataCacheNotification_t &notifica
{
MdlCacheMsg( "MDLCache: Data cache discard %s %s\n", g_ppszTypes[TypeFromCacheID( notification.clientId )], GetModelName( HandleFromCacheID( notification.clientId ) ) );
if ( (DataCacheClientID_t)notification.pItemData == notification.clientId ||
if ( (DataCacheClientID_t)(intp)notification.pItemData == notification.clientId ||
TypeFromCacheID(notification.clientId) != MDLCACHE_STUDIOHWDATA )
{
Assert( notification.pItemData );
@@ -2320,7 +2357,7 @@ bool CMDLCache::HandleCacheNotification( const DataCacheNotification_t &notifica
bool CMDLCache::GetItemName( DataCacheClientID_t clientId, const void *pItem, char *pDest, unsigned nMaxLen )
{
if ( (DataCacheClientID_t)pItem == clientId )
if ( (DataCacheClientID_t)(uintp)pItem == clientId )
{
return false;
}
@@ -2426,7 +2463,7 @@ void CMDLCache::FinishPendingLoads()
AUTO_LOCK( m_AsyncMutex );
// finish just our known jobs
int iAsync = m_PendingAsyncs.Head();
intp iAsync = m_PendingAsyncs.Head();
while ( iAsync != m_PendingAsyncs.InvalidIndex() )
{
AsyncInfo_t &info = m_PendingAsyncs[iAsync];
@@ -2581,7 +2618,7 @@ bool CMDLCache::VerifyHeaders( studiohdr_t *pStudioHdr )
}
char pFileName[ MAX_PATH ];
MDLHandle_t handle = (MDLHandle_t)(int)pStudioHdr->virtualModel&0xffff;
MDLHandle_t handle = VoidPtrToMDLHandle( pStudioHdr->VirtualModel() );
MakeFilename( handle, ".vvd", pFileName, sizeof(pFileName) );
@@ -2642,7 +2679,7 @@ vertexFileHeader_t *CMDLCache::CacheVertexData( studiohdr_t *pStudioHdr )
Assert( pStudioHdr );
handle = (MDLHandle_t)(int)pStudioHdr->virtualModel&0xffff;
handle = VoidPtrToMDLHandle( pStudioHdr->VirtualModel() );
Assert( handle != MDLHANDLE_INVALID );
pVvdHdr = (vertexFileHeader_t *)CheckData( m_MDLDict[handle]->m_VertexCache, MDLCACHE_VERTEXES );
@@ -3037,7 +3074,7 @@ bool CMDLCache::ProcessDataIntoCache( MDLHandle_t handle, MDLCacheDataType_t typ
// =0: pending
// >0: completed
//-----------------------------------------------------------------------------
int CMDLCache::ProcessPendingAsync( int iAsync )
int CMDLCache::ProcessPendingAsync( intp iAsync )
{
if ( !ThreadInMainThread() )
{
@@ -3122,10 +3159,10 @@ void CMDLCache::ProcessPendingAsyncs( MDLCacheDataType_t type )
// things -- the LRU is in correct order, and it catches precached items lurking
// in the async queue that have only been requested once (thus aren't being cached
// and might lurk forever, e.g., wood gibs in the citadel)
int current = m_PendingAsyncs.Head();
intp current = m_PendingAsyncs.Head();
while ( current != m_PendingAsyncs.InvalidIndex() )
{
int next = m_PendingAsyncs.Next( current );
intp next = m_PendingAsyncs.Next( current );
if ( type == MDLCACHE_NONE || m_PendingAsyncs[current].type == type )
{
@@ -3148,7 +3185,7 @@ void CMDLCache::ProcessPendingAsyncs( MDLCacheDataType_t type )
//-----------------------------------------------------------------------------
bool CMDLCache::ClearAsync( MDLHandle_t handle, MDLCacheDataType_t type, int iAnimBlock, bool bAbort )
{
int iAsyncInfo = GetAsyncInfoIndex( handle, type, iAnimBlock );
intp iAsyncInfo = GetAsyncInfoIndex( handle, type, iAnimBlock );
if ( iAsyncInfo != NO_ASYNC )
{
AsyncInfo_t *pInfo;
@@ -3242,7 +3279,7 @@ bool CMDLCache::SetAsyncLoad( MDLCacheDataType_t type, bool bAsync )
//-----------------------------------------------------------------------------
vertexFileHeader_t *CMDLCache::BuildAndCacheVertexData( studiohdr_t *pStudioHdr, vertexFileHeader_t *pRawVvdHdr )
{
MDLHandle_t handle = (MDLHandle_t)(int)pStudioHdr->virtualModel&0xffff;
MDLHandle_t handle = VoidPtrToMDLHandle( pStudioHdr->VirtualModel() );
vertexFileHeader_t *pVvdHdr;
MdlCacheMsg( "MDLCache: Load VVD for %s\n", pStudioHdr->pszName() );
@@ -3330,7 +3367,7 @@ vertexFileHeader_t *CMDLCache::LoadVertexData( studiohdr_t *pStudioHdr )
MDLHandle_t handle;
Assert( pStudioHdr );
handle = (MDLHandle_t)(int)pStudioHdr->virtualModel&0xffff;
handle = VoidPtrToMDLHandle( pStudioHdr->VirtualModel() );
Assert( !m_MDLDict[handle]->m_VertexCache );
studiodata_t *pStudioData = m_MDLDict[handle];
@@ -3340,7 +3377,7 @@ vertexFileHeader_t *CMDLCache::LoadVertexData( studiohdr_t *pStudioHdr )
return NULL;
}
int iAsync = GetAsyncInfoIndex( handle, MDLCACHE_VERTEXES );
intp iAsync = GetAsyncInfoIndex( handle, MDLCACHE_VERTEXES );
if ( iAsync == NO_ASYNC )
{
@@ -3420,7 +3457,7 @@ void CMDLCache::CacheData( DataCacheHandle_t *c, void *pData, int size, const ch
}
if ( id == (DataCacheClientID_t)-1 )
id = (DataCacheClientID_t)pData;
id = (DataCacheClientID_t)(intp)pData;
GetCacheSection( type )->Add(id, pData, size, c );
}
@@ -3584,7 +3621,7 @@ void CMDLCache::QueuedLoaderCallback_MDL( void *pContext, void *pContext2, const
// journal each incoming buffer
ModelParts_t *pModelParts = (ModelParts_t *)pContext;
ModelParts_t::BufferType_t bufferType = static_cast< ModelParts_t::BufferType_t >((int)pContext2);
ModelParts_t::BufferType_t bufferType = static_cast< ModelParts_t::BufferType_t >((intp)pContext2);
pModelParts->Buffers[bufferType].SetExternalBuffer( (void *)pData, nSize, nSize, CUtlBuffer::READ_ONLY );
pModelParts->nLoadedParts += (1 << bufferType);
@@ -3895,7 +3932,7 @@ void CMDLCache::MarkFrame()
const studiohdr_t *studiohdr_t::FindModel( void **cache, char const *pModelName ) const
{
MDLHandle_t handle = g_MDLCache.FindMDL( pModelName );
*cache = (void*)(uintp)handle;
*cache = MDLHandleToVirtual(handle);
return g_MDLCache.GetStudioHdr( handle );
}
@@ -3904,21 +3941,21 @@ virtualmodel_t *studiohdr_t::GetVirtualModel( void ) const
if (numincludemodels == 0)
return NULL;
return g_MDLCache.GetVirtualModelFast( this, (MDLHandle_t)(int)virtualModel&0xffff );
return g_MDLCache.GetVirtualModelFast( this, VoidPtrToMDLHandle( VirtualModel() ) );
}
byte *studiohdr_t::GetAnimBlock( int i ) const
{
return g_MDLCache.GetAnimBlock( (MDLHandle_t)(int)virtualModel&0xffff, i );
return g_MDLCache.GetAnimBlock( VoidPtrToMDLHandle( VirtualModel() ), i );
}
int studiohdr_t::GetAutoplayList( unsigned short **pOut ) const
{
return g_MDLCache.GetAutoplayList( (MDLHandle_t)(int)virtualModel&0xffff, pOut );
return g_MDLCache.GetAutoplayList( VoidPtrToMDLHandle( VirtualModel() ), pOut );
}
const studiohdr_t *virtualgroup_t::GetStudioHdr( void ) const
{
return g_MDLCache.GetStudioHdr( (MDLHandle_t)(int)cache&0xffff );
return g_MDLCache.GetStudioHdr( VoidPtrToMDLHandle( cache ) );
}

View File

@@ -20,7 +20,8 @@ def build(bld):
'mdlcache.cpp',
'../public/studio.cpp',
'../public/studio_virtualmodel.cpp',
'../common/studiobyteswap.cpp'
'../common/studiobyteswap.cpp',
'../public/tier0/memoverride.cpp'
]
includes = [

View File

@@ -8,7 +8,7 @@
#include "datamodel.h"
#include "tier1/KeyValues.h"
#ifndef _LINUX
#ifdef _WIN32
#define USE_WINDOWS_CLIPBOARD
#endif

View File

@@ -901,7 +901,9 @@ bool CDataModel::Unserialize( CUtlBuffer &inBuf, const char *pEncodingName, cons
return false;
}
#if !defined(NO_MALLOC_OVERRIDE)
g_pMemAlloc->heapchk();
#endif
DmxHeader_t header;
bool bStoresVersionInFile = pSerializer->StoresVersionInFile();
@@ -1656,7 +1658,7 @@ DmAttributeReferenceIterator_t CDataModel::FirstAttributeReferencingElement( DmE
if ( !pRef || pRef->m_attributes.m_hAttribute == DMATTRIBUTE_HANDLE_INVALID )
return DMATTRIBUTE_REFERENCE_ITERATOR_INVALID;
return ( DmAttributeReferenceIterator_t )( int )&pRef->m_attributes;
return ( DmAttributeReferenceIterator_t )( intp )&pRef->m_attributes;
}
DmAttributeReferenceIterator_t CDataModel::NextAttributeReferencingElement( DmAttributeReferenceIterator_t hAttrIter )
@@ -1665,7 +1667,7 @@ DmAttributeReferenceIterator_t CDataModel::NextAttributeReferencingElement( DmAt
if ( !pList )
return DMATTRIBUTE_REFERENCE_ITERATOR_INVALID;
return ( DmAttributeReferenceIterator_t )( int )pList->m_pNext;
return ( DmAttributeReferenceIterator_t )( intp )pList->m_pNext;
}
CDmAttribute *CDataModel::GetAttribute( DmAttributeReferenceIterator_t hAttrIter )

View File

@@ -67,7 +67,7 @@ bool HashEntryCompareFunc( CAttributeNode *const& lhs, CAttributeNode *const& rh
uint HashEntryKeyFunc( CAttributeNode *const& keyinfo )
{
uint i = (uint)keyinfo->m_attribute;
uintp i = (uintp)keyinfo->m_attribute;
return i >> 2; // since memory is allocated on a 4-byte (at least!) boundary
}

View File

@@ -721,7 +721,7 @@ public:
virtual void Undo()
{
CDmrArray<T> array( GetAttribute() );
CDmrArray<T> array( this->GetAttribute() );
if ( array.IsValid() )
{
array.Set( m_nSlot, m_OldValue );
@@ -730,7 +730,7 @@ public:
virtual void Redo()
{
CDmrArray<T> array( GetAttribute() );
CDmrArray<T> array( this->GetAttribute() );
if ( array.IsValid() )
{
array.Set( m_nSlot, m_Value );
@@ -789,7 +789,7 @@ public:
virtual void Undo()
{
CDmrArray<T> array( GetAttribute() );
CDmrArray<T> array( this->GetAttribute() );
if ( array.IsValid() )
{
for ( int i = 0; i < m_nCount; ++i )
@@ -801,7 +801,7 @@ public:
virtual void Redo()
{
CDmrArray<T> array( GetAttribute() );
CDmrArray<T> array( this->GetAttribute() );
if ( array.IsValid() )
{
for ( int i = 0; i < m_nCount; ++i )
@@ -838,7 +838,7 @@ public:
virtual void Undo()
{
CDmrArray<T> array( GetAttribute() );
CDmrArray<T> array( this->GetAttribute() );
if ( array.IsValid() )
{
array.RemoveMultiple( m_nIndex, m_nCount );
@@ -847,7 +847,7 @@ public:
virtual void Redo()
{
CDmrArray<T> array( GetAttribute() );
CDmrArray<T> array( this->GetAttribute() );
if ( array.IsValid() )
{
T defaultVal;
@@ -888,7 +888,7 @@ public:
virtual void Undo()
{
CDmrArray<T> array( GetAttribute() );
CDmrArray<T> array( this->GetAttribute() );
if ( array.IsValid() )
{
array.Remove( m_nIndex );
@@ -897,7 +897,7 @@ public:
virtual void Redo()
{
CDmrArray<T> array( GetAttribute() );
CDmrArray<T> array( this->GetAttribute() );
if ( array.IsValid() )
{
array.InsertBefore( m_nIndex, m_newValue );
@@ -955,7 +955,7 @@ public:
virtual void Undo()
{
CDmrArray<T> array( GetAttribute() );
CDmrArray<T> array( this->GetAttribute() );
if ( array.IsValid() )
{
if ( m_bFastRemove )
@@ -993,7 +993,7 @@ public:
virtual void Redo()
{
CDmrArray<T> array( GetAttribute() );
CDmrArray<T> array( this->GetAttribute() );
if ( array.IsValid() )
{
if ( m_bFastRemove )
@@ -1015,7 +1015,7 @@ public:
static char buf[ 128 ];
const char *base = BaseClass::GetDesc();
Q_snprintf( buf, sizeof( buf ), "%s (%s) = remove( pos %i, count %i )", base, GetAttributeName(), m_nIndex, m_nCount );
Q_snprintf( buf, sizeof( buf ), "%s (%s) = remove( pos %i, count %i )", base, this->GetAttributeName(), m_nIndex, m_nCount );
return buf;
}
@@ -1097,7 +1097,7 @@ public:
virtual void Undo()
{
CDmrArray<T> array( GetAttribute() );
CDmrArray<T> array( this->GetAttribute() );
if ( array.IsValid() )
{
array.RemoveAll();
@@ -1110,7 +1110,7 @@ public:
virtual void Redo()
{
CDmrArray<T> array( GetAttribute() );
CDmrArray<T> array( this->GetAttribute() );
if ( array.IsValid() )
{
array.RemoveAll();
@@ -2734,7 +2734,7 @@ CDmaArrayConstBase<T,B>::CDmaArrayConstBase( )
template< class T, class B >
int CDmaArrayConstBase<T,B>::Find( const T &value ) const
{
return Value().Find( value );
return this->Value().Find( value );
}
@@ -2747,7 +2747,7 @@ int CDmaArrayBase<T,B>::AddToTail()
T defaultVal;
CDmAttributeInfo<T>::SetDefaultValue( defaultVal );
CDmArrayAttributeOp<T> accessor( this->m_pAttribute );
return accessor.InsertBefore( Value().Count(), defaultVal );
return accessor.InsertBefore( this->Value().Count(), defaultVal );
}
template< class T, class B >
@@ -2763,7 +2763,7 @@ template< class T, class B >
int CDmaArrayBase<T,B>::AddToTail( const T& src )
{
CDmArrayAttributeOp<T> accessor( this->m_pAttribute );
return accessor.InsertBefore( Value().Count(), src );
return accessor.InsertBefore( this->Value().Count(), src );
}
template< class T, class B >
@@ -2777,7 +2777,7 @@ template< class T, class B >
int CDmaArrayBase<T,B>::AddMultipleToTail( int num )
{
CDmArrayAttributeOp<T> accessor( this->m_pAttribute );
return accessor.InsertMultipleBefore( Value().Count(), num );
return accessor.InsertMultipleBefore( this->Value().Count(), num );
}
template< class T, class B >
@@ -2790,7 +2790,7 @@ int CDmaArrayBase<T,B>::InsertMultipleBefore( int elem, int num )
template< class T, class B >
void CDmaArrayBase<T,B>::EnsureCount( int num )
{
int nCurrentCount = Value().Count();
int nCurrentCount = this->Value().Count();
if ( nCurrentCount < num )
{
AddMultipleToTail( num - nCurrentCount );
@@ -2879,7 +2879,7 @@ void CDmaArrayBase<T,B>::RemoveMultiple( int elem, int num )
template< class T, class B >
void CDmaArrayBase<T,B>::EnsureCapacity( int num )
{
Value().EnsureCapacity( num );
this->Value().EnsureCapacity( num );
}
template< class T, class B >
@@ -2894,10 +2894,10 @@ void CDmaArrayBase<T,B>::Purge()
// Attribute initialization
//-----------------------------------------------------------------------------
template< class T, class B >
void CDmaDecorator<T,B>::Init( CDmElement *pOwner, const char *pAttributeName, int nFlags = 0 )
void CDmaDecorator<T,B>::Init( CDmElement *pOwner, const char *pAttributeName, int nFlags )
{
Assert( pOwner );
this->m_pAttribute = pOwner->AddExternalAttribute( pAttributeName, CDmAttributeInfo<CUtlVector<T> >::AttributeType(), &Value() );
this->m_pAttribute = pOwner->AddExternalAttribute( pAttributeName, CDmAttributeInfo<CUtlVector<T> >::AttributeType(), &(this->Value()) );
Assert( this->m_pAttribute );
if ( nFlags )
{
@@ -2915,12 +2915,12 @@ void CDmrDecoratorConst<T,BaseClass>::Init( const CDmAttribute* pAttribute )
if ( pAttribute && pAttribute->GetType() == CDmAttributeInfo< CUtlVector< T > >::AttributeType() )
{
this->m_pAttribute = const_cast<CDmAttribute*>( pAttribute );
Attach( this->m_pAttribute->GetAttributeData() );
this->Attach( this->m_pAttribute->GetAttributeData() );
}
else
{
this->m_pAttribute = NULL;
Attach( NULL );
this->Attach( NULL );
}
}
@@ -2948,12 +2948,12 @@ void CDmrDecorator<T,BaseClass>::Init( CDmAttribute* pAttribute )
if ( pAttribute && pAttribute->GetType() == CDmAttributeInfo< CUtlVector< T > >::AttributeType() )
{
this->m_pAttribute = pAttribute;
Attach( this->m_pAttribute->GetAttributeData() );
this->Attach( this->m_pAttribute->GetAttributeData() );
}
else
{
this->m_pAttribute = NULL;
Attach( NULL );
this->Attach( NULL );
}
}

View File

@@ -264,7 +264,7 @@ DmAttributeType_t CDmSerializerKeyValues::DetermineAttributeType( KeyValues *pKe
if ( sscanf( pKeyValues->GetString(), "%f %f", &f1, &f2 ) == 2 )
return AT_VECTOR2;
int i = pKeyValues->GetInt( NULL, INT_MAX );
int i = pKeyValues->GetInt( nullptr, INT_MAX );
if ( ( sscanf( pKeyValues->GetString(), "%d", &i ) == 1 ) &&
( !strchr( pKeyValues->GetString(), '.' ) ) )
return AT_INT;

View File

@@ -13,7 +13,7 @@ def options(opt):
def configure(conf):
conf.define('LAUNCHERONLY',1)
# conf.define('SUPPORT_PACKED_STORE',1)
conf.define('SUPPORT_PACKED_STORE',1)
conf.define('DEDICATED',1)
def build(bld):
@@ -33,9 +33,10 @@ def build(bld):
'../filesystem/filesystem_stdio.cpp',
'../filesystem/QueuedLoader.cpp',
'../public/zip_utils.cpp',
'../public/tier0/memoverride.cpp'
]
if bld.env.DEST_OS == 'win32'
if bld.env.DEST_OS == 'win32':
source += [
'sys_windows.cpp'
]
@@ -56,7 +57,7 @@ def build(bld):
defines = []
libs = ['tier0','tier1','tier2','tier3','vstdlib','steam_api','vpklib','appframework','mathlib', 'EDIT']
libs = ['tier0','vpklib','tier1','tier2','tier3','vstdlib','steam_api','appframework','mathlib', 'EDIT']
install_path = bld.env.LIBDIR

View File

@@ -73,8 +73,10 @@ struct CSizeTest
COMPILE_TIME_ASSERT( sizeof( QAngle ) == 12 );
COMPILE_TIME_ASSERT( sizeof( Quaternion ) == 16 );
COMPILE_TIME_ASSERT( sizeof( VMatrix ) == 64 );
#if !defined( PLATFORM_64BITS )
COMPILE_TIME_ASSERT( sizeof( CUtlString ) == 4 );
COMPILE_TIME_ASSERT( sizeof( CUtlBinaryBlock ) == 16 );
#endif
COMPILE_TIME_ASSERT( sizeof( DmObjectId_t ) == 16 );
};
};

BIN
dx9sdk/lib/amd64/D3DCSX.lib Normal file

Binary file not shown.

Binary file not shown.

BIN
dx9sdk/lib/amd64/DxErr.lib Normal file

Binary file not shown.

Binary file not shown.

BIN
dx9sdk/lib/amd64/XAPOFX.lib Normal file

Binary file not shown.

BIN
dx9sdk/lib/amd64/XInput.lib Normal file

Binary file not shown.

BIN
dx9sdk/lib/amd64/d2d1.lib Normal file

Binary file not shown.

BIN
dx9sdk/lib/amd64/d3d10.lib Normal file

Binary file not shown.

Binary file not shown.

BIN
dx9sdk/lib/amd64/d3d11.lib Normal file

Binary file not shown.

BIN
dx9sdk/lib/amd64/d3d9.lib Normal file

Binary file not shown.

Binary file not shown.

BIN
dx9sdk/lib/amd64/d3dx10.lib Normal file

Binary file not shown.

Binary file not shown.

BIN
dx9sdk/lib/amd64/d3dx11.lib Normal file

Binary file not shown.

Binary file not shown.

BIN
dx9sdk/lib/amd64/d3dx9.lib Normal file

Binary file not shown.

BIN
dx9sdk/lib/amd64/d3dx9d.lib Normal file

Binary file not shown.

BIN
dx9sdk/lib/amd64/d3dxof.lib Normal file

Binary file not shown.

Binary file not shown.

BIN
dx9sdk/lib/amd64/dsound.lib Normal file

Binary file not shown.

BIN
dx9sdk/lib/amd64/dwrite.lib Normal file

Binary file not shown.

BIN
dx9sdk/lib/amd64/dxgi.lib Normal file

Binary file not shown.

BIN
dx9sdk/lib/amd64/dxguid.lib Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More