Commit Graph
100 Commits
Author SHA1 Message Date
Jan 6ff86ae5e7 Set technique flags based on used constants, samplers and technique names 2022-04-16 22:51:38 +02:00
Jan 6e57834dc6 Warn user whenever specified asset type is unrecognized 2022-04-16 17:13:28 +02:00
Jan 2108737f22 Explicitly state whenever unloading zones in linker 2022-04-16 16:42:33 +02:00
Jan 4a03efe636 State whenever a zone is unloaded in unlinker 2022-04-16 16:39:46 +02:00
Jan 1a36912b44 Fix unlinking every single asset in the global asset pools on unloading a zone 2022-04-16 16:32:55 +02:00
Jan 4abb846ccd fix iw4 enum not having a name 2022-04-16 15:44:57 +02:00
Jan cb45bdaadc Progress on reversing technique flags 2022-04-16 15:41:45 +02:00
Jan 9e063a30f0 Dump technique sampler flags and technique flags 2022-04-16 15:41:11 +02:00
Jan 0ae5afc197 Set technique flags based on argument code samplers 2022-04-15 17:53:12 +02:00
Jan 7a89630a13 Dump technique flags 2022-04-15 17:52:56 +02:00
Jan 15fd1ae686 Order shader args like the game does 2022-04-15 17:52:32 +02:00
Jan 9990338130 Handle custom samplers 2022-04-15 16:34:44 +02:00
Jan 65c9267b06 Correctly identify update frequencies for shader arguments 2022-04-15 16:01:39 +02:00
Jan cd8e6cf96a Fix not being able to use StructuredDataDefSet assets from memory 2022-04-15 13:00:08 +02:00
Jan 12af03d77b Do not output errors when use menus from loaded assets 2022-04-15 12:54:37 +02:00
Jan 0f3d1d3488 Load shader from disk if they are only available as referenced assets to write techniques using them 2022-04-15 12:54:10 +02:00
Jan 7d80ff670d Convert technique passes 2022-04-14 20:11:51 +02:00
Jan 7f496ce478 Automatically handle unspecified shader arguments 2022-04-14 19:49:35 +02:00
Jan 3ba68eb2f4 Remember which vertex shader and pixel shader args have been handled already 2022-04-11 20:06:02 +02:00
Jan 99c7ebbe9b Load vertex decl asset 2022-04-10 19:39:26 +02:00
Jan e0bcf7aff0 Load Vertex Stream Routing 2022-04-10 17:48:12 +02:00
Jan bd291a75a9 Accept technique material arguments 2022-04-10 14:51:38 +02:00
Jan 516878698d Only accept sampler arguments for sampler shader arguments and constant argument for constant shader arguments 2022-04-10 13:58:08 +02:00
Jan 7a2fe6dc4f Differentiate between argument sets when dumping techniques to find the actual matching shader argument 2022-04-10 13:23:44 +02:00
Jan 7d2ca46cb1 Dump known material argument hashes 2022-04-09 19:07:24 +02:00
Jan 13c5ea2986 Ignore shaders versions in technique files 2022-04-09 19:03:12 +02:00
Jan 8cc632f613 Move D3D9ShaderAnalyser to ObjCommon 2022-04-09 18:55:43 +02:00
Jan bdb782a679 Fix issues with technique parser 2022-03-30 19:25:58 +02:00
Jan 4a52f3304e Fix asset loaders for vertex and pixel shader not using correct file name 2022-03-30 19:25:41 +02:00
Jan 1d798647c3 Fix not reading hex numbers with integer only lexing for SimpleLexer 2022-03-30 19:25:07 +02:00
Jan a092f76ec9 Add option to not parse floating point numbers when using SimpleLexer 2022-03-30 19:07:54 +02:00
Jan b5cd357014 WIP Technique loading 2022-03-30 18:38:50 +02:00
Jan b770360ee1 Parse techniques 2022-03-27 21:10:33 +02:00
Jan 7c9805b4ba fix compilation issues 2022-03-27 16:28:25 +02:00
Jan 99d5caf1f2 Fix techset parsing naming issues 2022-03-27 16:21:06 +02:00
Jan d8f490ec94 Base for technique loading 2022-03-27 16:17:50 +02:00
Jan a47370613b Reuse previously loaded techniques 2022-03-27 16:17:36 +02:00
Jan 99f3f6fe0c Fix wrong techset reader dependency on structuredatadef 2022-03-27 16:16:41 +02:00
Jan eb5312899f Parse techset files for IW4 2022-03-26 18:47:43 +01:00
Jan 2fda10f133 Find vertexdecl to dump if the one in the asset is a referenced asset 2022-03-25 18:57:01 +01:00
Jan a825a9df38 Remove unused dumper for vertex decls 2022-03-25 18:41:38 +01:00
Jan d0e8e94561 Load vertex shader and pixel shader from raw 2022-03-25 18:35:22 +01:00
Jan 90eaf9c4a9 If pixel or vertex shader is only referenced asset, attempt to load asset from GlobalAssetPools to be able to use a shader from a previously loaded zone 2022-03-25 14:46:09 +01:00
Jan 324dead2e3 Disable warning about unscoped enums 2022-03-25 14:13:13 +01:00
Jan f9fad26ccc Handling of referenced shaders 2022-03-25 00:23:53 +01:00
Jan b48fbb2b0e Dump material constants and samplers 2022-03-25 00:04:27 +01:00
Jan a06229042f Dump material pass literal shader arguments 2022-03-24 23:54:24 +01:00
Jan 5fdde037a8 Dump code sampler for technique arguments 2022-03-24 23:42:10 +01:00
Jan f386e82f89 Omit code constants that have the same source and dest accessor 2022-03-24 23:26:07 +01:00
Jan ef936eba57 Dump IW4 techset code constant argument mappings 2022-03-24 23:04:35 +01:00
Jan 7760e1579c fix compilation errors 2022-03-24 21:18:07 +01:00
Jan d62cbb2e96 Consider shader constants when dumping techset args 2022-03-24 21:14:05 +01:00
Jan 55ccbfca9e Add analyser for directx9 shaders to extract information about constants and other stuff 2022-03-24 18:58:30 +01:00
Jan 935e6ac060 Dump IW4 vertex and pixel shader binary data 2022-03-24 17:36:12 +01:00
Jan 5f44d95770 TODO IW4 Shader arg dumping 2022-03-23 18:22:23 +01:00
Jan b0ed7e9544 Dump IW4 vertexdecl 2022-03-23 17:11:30 +01:00
Jan 8e76f05d05 Skeleton for IW4 MaterialTechnique dumping 2022-03-23 16:46:49 +01:00
Jan 25244bc3b0 Dump IW4 techset files 2022-03-23 14:42:17 +01:00
Jan 66b62611f3 Add basis for iw4 techset dumping 2022-03-23 13:45:01 +01:00
Jan 9009543c58 fix missing noexcept 2022-03-22 21:32:17 +01:00
Jan 0bca307208 Make gitlab pipeline jobs interruptible 2022-03-22 17:23:49 +01:00
Jan e8ce4570ad Fix pipeline compilation 2022-03-22 17:12:43 +01:00
Jan 2e5405deb5 Fix counting padding for root struct even when root struct has no properties 2022-03-22 16:15:42 +01:00
Jan f236d285b6 Fix not considering alignment of 8 bit when calculating size for indexedarray and enumedarray 2022-03-22 16:08:55 +01:00
Jan 8133f4d57e Fix accidentally setting size in bits value to a size in byte field when converting indexarray and enumedarray 2022-03-22 16:08:28 +01:00
Jan f15e997f7b Fix not setting enum element count for enumedarrays when parsing 2022-03-22 16:07:43 +01:00
Jan ab5a998903 Sort StructuredDataDef members and entries alphabetically after parsing 2022-03-22 15:09:07 +01:00
Jan 1b6f2ab9fa Calculate StructuredDataDef sizes and offsets 2022-03-22 15:08:42 +01:00
Jan 77420495f6 Add base for calculation sizes of structs for StructuredDataDef 2022-03-22 14:12:48 +01:00
Jan c131c58bbe Replace references to undefined types after parsing entire StructuredDataDef 2022-03-22 12:34:21 +01:00
Jan 2fa1144425 Set remapped type for previously undefined types for StructuredDataDef 2022-03-22 12:14:30 +01:00
Jan dc075847ff When parsing StructuredDataDefs accept undefined types 2022-03-22 12:03:15 +01:00
Jan 49c774b1e6 Parse checksumoverride for StructuredDataDef 2022-03-21 11:05:48 +01:00
Jan 93fea39ddd Move StructuredDataDef Parsing to new package 2022-03-21 10:30:54 +01:00
Jan 833b158a64 Rename new StructuredDataDefDumper 2022-03-20 19:35:52 +01:00
Jan 9f0852485d Remove outdated StructuredDataDef Dumper 2022-03-20 19:34:53 +01:00
Jan f5a72f4fef Add padding dumping to new StructuredDataDef dumper 2022-03-20 19:15:05 +01:00
Jan d82e876558 Dump StructuredDataDef struct member types 2022-03-20 18:32:25 +01:00
Jan 0a226652f2 Rename CommonStructuredDataStructEntry to Property 2022-03-20 17:40:12 +01:00
Jan 996528eba5 Dump struct member names 2022-03-20 17:38:48 +01:00
Jan c52d129db1 Add alignment utility 2022-03-20 17:38:23 +01:00
Jan fef646fded Print debug info about structured data def when compiled with the debug flag for it 2022-03-20 16:59:37 +01:00
Jan 3fc9eac5f0 Explicitly state how many threads are being used to build 2022-03-20 16:11:40 +01:00
Jan b5e18e6b22 Calculate checksums for structured data def 2022-03-20 16:01:29 +01:00
Jan c91cb40b76 Add endianness utility methods 2022-03-20 16:00:56 +01:00
Jan b2140260a4 Dump CommonStructuredDataDefSet instead of the game's internal structures 2022-03-19 23:39:50 +01:00
Jan c38367d55b Move common structureddatadef classes to objcommon 2022-03-12 14:02:52 +01:00
Jan dff7912dbc Parse padding instructions for StructuredDataDef 2022-02-06 10:49:58 +01:00
Jan 73564cf0f0 Dump StructuredDataDef paddings 2022-02-05 19:48:08 +01:00
Jan f235ffc431 Fix structureddatadef loader not setting enum reserved size correctly 2022-01-29 12:42:28 +01:00
Jan 497c9fc6cf Rename StructuredDataDef classes to remove "Def" from classes that do not need it 2022-01-22 14:47:47 +01:00
Jan 2da6ab8479 Fix empty StructuredDataDef struct having a size of 8 when it is the root struct 2022-01-22 14:41:20 +01:00
Jan f061ff91f5 Create default StructuredDataDef struct when none was specified so there is always a root struct 2022-01-22 14:35:43 +01:00
Jan 5327ce8ec9 Fix StructuredDataDefDumper not dumping empty structs or arrays 2022-01-22 14:29:07 +01:00
Jan 8aba79faf9 Fix SndCurveDumper wrong assertion 2022-01-22 14:16:25 +01:00
Jan dd23e3f66d Fix StructuredDataDef multi dimensional arrays not getting parsed correctly 2022-01-22 13:57:10 +01:00
Jan 9ed169fcba Calculate StructuredDataDef sizes and offsets 2022-01-22 13:40:08 +01:00
Jan ec8e58e0f1 Write StructuredDataDef data with additional comments stating debugging details for the format 2022-01-22 13:39:51 +01:00
Jan 96ef7a46fb Convert StructuredDataDef for IW4 2022-01-20 23:38:45 +01:00
Jan b894a524e8 Parse structured data def reserved enum count 2022-01-20 22:37:33 +01:00