View Issue Details

IDProjectCategoryView StatusLast Update
0005911DarkRadiantDesign/Codingpublic16.06.2022 15:55
Reportergreebo Assigned Togreebo  
PrioritynormalSeveritynormalReproducibilityhave not tried
Status resolvedResolutionfixed 
Product Version3.0.0 
Target Version3.0.0Fixed in Version3.0.0 
Summary0005911: Unify Declaration Parsers
DescriptionThe various manager classes (EClassManager, SoundManager, SkinManager, ShaderManager, etc.) are all using similar parsing code. While all of them are already using the ThreadedDefLoader to parse the files in a worker thread, there's still redundant code in many of them.

The goal here is to move as much common code as possible to shared infrastructure.
TagsNo tags attached.

Relationships

related to 0005853 resolvedgreebo DR overwrite order for defs is different from TDM's 
related to 0005977 assignedgreebo Improve Declaration Block Parsing 

Activities

There are no notes attached to this issue.

Related Changesets

DarkRadiant: master 689e06d8

2022-03-02 05:46:57

greebo

Details Diff
0005911: Add file sorting functionality to ThreadedDefLoader. ShaderFileLoader and ParticleLoader are subclassing the ThreadedDefLoader.
Compiling and working, but some parse code still needs to be migrated.
Affected Issues
0005911
mod - libs/ThreadedDefLoader.h Diff File
mod - plugins/dm.gui/gui/GuiManager.cpp Diff File
mod - plugins/sound/SoundManager.cpp Diff File
mod - radiantcore/CMakeLists.txt Diff File
mod - radiantcore/eclass/EClassManager.cpp Diff File
mod - radiantcore/fonts/FontLoader.cpp Diff File
mod - radiantcore/fonts/FontLoader.h Diff File
mod - radiantcore/fonts/FontManager.cpp Diff File
mod - radiantcore/fonts/FontManager.h Diff File
add - radiantcore/particles/ParticleLoader.cpp Diff File
add - radiantcore/particles/ParticleLoader.h Diff File
mod - radiantcore/particles/ParticlesManager.cpp Diff File
mod - radiantcore/particles/ParticlesManager.h Diff File
mod - radiantcore/shaders/Doom3ShaderSystem.cpp Diff File
mod - radiantcore/shaders/Doom3ShaderSystem.h Diff File
mod - radiantcore/shaders/ShaderFileLoader.h Diff File
mod - radiantcore/skins/Doom3SkinCache.cpp Diff File
mod - tools/msvc/DarkRadiantCore.vcxproj Diff File
mod - tools/msvc/DarkRadiantCore.vcxproj.filters Diff File

DarkRadiant: master f5d9a92b

2022-03-02 11:57:07

greebo

Details Diff
0005911: Build the ThreadedDeclParser on top of the ThreadedDefLoader class, handling all the VFS specifics.
Since requiring a finished callback is the exception rather than the rule, offer a finished signal for client code to subscribe to.
Affected Issues
0005911
mod - libs/ThreadedDefLoader.h Diff File
add - libs/parser/ThreadedDeclParser.h Diff File
mod - plugins/dm.gui/gui/GuiManager.h Diff File
mod - plugins/sound/SoundManager.h Diff File
mod - radiantcore/eclass/EClassManager.cpp Diff File
mod - radiantcore/eclass/EClassManager.h Diff File
mod - radiantcore/fonts/FontLoader.h Diff File
mod - radiantcore/particles/ParticleLoader.h Diff File
mod - radiantcore/particles/ParticlesManager.cpp Diff File
mod - radiantcore/shaders/ShaderFileLoader.h Diff File
mod - radiantcore/skins/Doom3SkinCache.h Diff File
mod - tools/msvc/libs.vcxproj Diff File
mod - tools/msvc/libs.vcxproj.filters Diff File

DarkRadiant: master cbcca644

2022-03-02 14:23:14

greebo

Details Diff
0005911: Move common VFS handling code to the base ThreadedDeclParser implementation. Subclasses just fill in the missing parsing routines.
Add a parseSynchronously() method to allow for parsing on the main thread (reloading entityDefs is using that).
FontLoader has been reverted to use a ThreadedDefLoader only, it's not really a decl parser.
EClassParser is now doing all the parsing business previously hosted in the EClassManager.
Affected Issues
0005911
mod - include/idecltypes.h Diff File
mod - libs/debugging/ScopedDebugTimer.h Diff File
mod - libs/parser/ThreadedDeclParser.h Diff File
mod - radiantcore/CMakeLists.txt Diff File
mod - radiantcore/eclass/EClassManager.cpp Diff File
mod - radiantcore/eclass/EClassManager.h Diff File
add - radiantcore/eclass/EClassParser.cpp Diff File
add - radiantcore/eclass/EClassParser.h Diff File
mod - radiantcore/fonts/FontLoader.cpp Diff File
mod - radiantcore/fonts/FontLoader.h Diff File
mod - radiantcore/fonts/FontManager.cpp Diff File
mod - radiantcore/particles/ParticleLoader.cpp Diff File
mod - radiantcore/particles/ParticleLoader.h Diff File
mod - radiantcore/shaders/Doom3ShaderSystem.cpp Diff File
mod - radiantcore/shaders/ShaderFileLoader.h Diff File
mod - tools/msvc/DarkRadiantCore.vcxproj Diff File
mod - tools/msvc/DarkRadiantCore.vcxproj.filters Diff File

DarkRadiant: master e966d6dc

2022-03-02 15:48:11

greebo

Details Diff
0005911: EClassManager and parser cleanup Affected Issues
0005911
mod - include/ieclass.h Diff File
mod - radiantcore/eclass/EClassManager.cpp Diff File
mod - radiantcore/eclass/EClassManager.h Diff File
mod - radiantcore/eclass/EClassParser.cpp Diff File
mod - radiantcore/eclass/EClassParser.h Diff File
mod - radiantcore/fonts/FontLoader.h Diff File

DarkRadiant: master 170eda71

2022-03-02 16:35:12

greebo

Details Diff
0005911: Migrate Skin parsing to use the shared DeclParser Affected Issues
0005911
mod - include/idecltypes.h Diff File
mod - radiantcore/shaders/ShaderFileLoader.h Diff File
mod - radiantcore/skins/Doom3SkinCache.cpp Diff File
mod - radiantcore/skins/Doom3SkinCache.h Diff File
add - radiantcore/skins/SkinDeclParser.h Diff File
mod - tools/msvc/DarkRadiantCore.vcxproj Diff File
mod - tools/msvc/DarkRadiantCore.vcxproj.filters Diff File

DarkRadiant: master 4f906261

2022-03-02 16:39:24

greebo

Details Diff
0005911: Downgrade GUI loader to use the ThreadedDefLoader base, since it doesn't immediately parse the decl Affected Issues
0005911
mod - plugins/dm.gui/gui/GuiManager.cpp Diff File
mod - plugins/dm.gui/gui/GuiManager.h Diff File

DarkRadiant: master 3a9819ba

2022-03-02 17:07:07

greebo

Details Diff
0005911: Migrate SoundFileLoader to derive from ThreadedDeclParser Affected Issues
0005911
mod - plugins/sound/SoundFileLoader.h Diff File
mod - plugins/sound/SoundManager.cpp Diff File
mod - plugins/sound/SoundManager.h Diff File

DarkRadiant: master 6cd041f0

2022-03-02 19:43:55

greebo

Details Diff
0005911: Minor simplification.
Try to fix gcc compilation.
Affected Issues
0005911
mod - libs/parser/ThreadedDeclParser.h Diff File
mod - plugins/sound/SoundFileLoader.h Diff File
mod - plugins/sound/SoundManager.cpp Diff File

DarkRadiant: master 66f14469

2022-03-03 04:58:10

greebo

Details Diff
0005911: Fix gcc compilation. Affected Issues
0005911
mod - libs/parser/ThreadedDeclParser.h Diff File

DarkRadiant: master 6b1b7e18

2022-03-03 07:43:20

greebo

Details Diff
0005911: Remove legacy constructors. The virtual parse method is now mandatory for subclasses. Affected Issues
0005911
mod - libs/parser/ThreadedDeclParser.h Diff File

Issue History

Date Modified Username Field Change
02.03.2022 09:03 greebo New Issue
02.03.2022 09:03 greebo Relationship added related to 0005853
02.03.2022 09:04 greebo Status new => confirmed
02.03.2022 17:39 greebo Assigned To => greebo
02.03.2022 17:39 greebo Status confirmed => assigned
02.03.2022 17:41 greebo Changeset attached => DarkRadiant master 689e06d8
02.03.2022 17:41 greebo Changeset attached => DarkRadiant master f5d9a92b
02.03.2022 17:41 greebo Changeset attached => DarkRadiant master cbcca644
02.03.2022 17:41 greebo Changeset attached => DarkRadiant master e966d6dc
02.03.2022 17:41 greebo Changeset attached => DarkRadiant master 170eda71
02.03.2022 17:41 greebo Changeset attached => DarkRadiant master 4f906261
02.03.2022 17:41 greebo Changeset attached => DarkRadiant master 3a9819ba
02.03.2022 17:42 greebo Target Version => 3.0.0
02.03.2022 17:42 greebo Category Map Editing => Design/Coding
02.03.2022 17:42 greebo Status assigned => resolved
02.03.2022 17:42 greebo Resolution open => fixed
02.03.2022 17:42 greebo Fixed in Version => 3.0.0
02.03.2022 19:53 greebo Changeset attached => DarkRadiant master 6cd041f0
03.03.2022 04:58 greebo Changeset attached => DarkRadiant master 66f14469
03.03.2022 15:09 greebo Changeset attached => DarkRadiant master 6b1b7e18
16.06.2022 15:55 greebo Relationship added related to 0005977