Skip to content
Draft
Show file tree
Hide file tree
Changes from 4 commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
8a3f38f
Move to Dear ImGui Docking branch, 1.91.7-docking
DanielGibson Jan 29, 2025
8c28314
Enable ImGui docking and (multi)viewport
DanielGibson Jun 7, 2024
2df3e12
Update to latest Dear ImGui docking branch (c2dcc80)
DanielGibson Jan 29, 2025
fbf992c
Start integrating Dear ImGui based tools from RBDoom3BFG
DanielGibson Jan 30, 2025
2454f6b
Integrate ImGui LightEditor so it can be used
DanielGibson Jan 30, 2025
f27b957
Some improvements for the ImGui LightEditor
DanielGibson Jan 31, 2025
44f5914
Open ImGui LightEditor with "editLights" command
DanielGibson Jan 31, 2025
16ff74a
Implement D3::ImGuiHooks::ShowInfoOverlay()
DanielGibson Jan 31, 2025
69a1538
Porting the old PDA editor.
Jan 31, 2025
e88117c
Use table layout.
Jan 31, 2025
211657c
Fix reappearing window.
Jan 31, 2025
680775d
Bring back dynamic window title.
Jan 31, 2025
92d5711
Make ImGui-based AF Editor build (and work, mostly)
DanielGibson Feb 1, 2025
ace8247
Remove unused code from ImGui AfEditor
DanielGibson Feb 1, 2025
1004714
Put helpers from ImGui_IdWidgets.h into namespace ImGuiTools
DanielGibson Feb 1, 2025
056e652
Windows: Don't run MFC-based editors if we have ImGui-alternative
DanielGibson Feb 1, 2025
3d5987a
Move Com_EditPDAs_f out of #ifdef ID_ALLOW_TOOLS
DanielGibson Feb 1, 2025
071ddc3
Add audio/video editing. Fix add PDA popup closing.
Feb 1, 2025
31e9679
Minor changes.
Feb 1, 2025
1b6513b
WIP: particle editor.
Feb 2, 2025
1b53688
Various improvements.
Feb 3, 2025
cc9a5ff
Particle Editor: use menu bar for New/Save, add material selection.
Feb 5, 2025
81e857f
If an ImGui window is open while ingame, allow moving if RMB is pressed
DanielGibson Feb 5, 2025
9f217c9
Dhewm3SettingsMenu: Default position is within main window again
DanielGibson Feb 6, 2025
314a8e1
Fix compilation errors.
Feb 6, 2025
ded186c
Feature: Drop button works.
Feb 6, 2025
76bddbf
Fix stage deletion.
Feb 6, 2025
cf160b4
Allow managing multiple particle systems in one file.
Feb 7, 2025
ff85551
Improved particle system selection.
Feb 8, 2025
a0bf643
Use the new generic decl new/lookup dialog for materials and particles.
Feb 8, 2025
28d82ee
Adding Script Editor.
Feb 8, 2025
6f8995d
Add DeclBrowser.
Feb 9, 2025
3ae2d2c
Register the new editors in any case.
Feb 9, 2025
926263b
Various changes to Decl Browser.
Feb 10, 2025
350b6a5
Decl Browser: fix search.
Feb 11, 2025
f815130
Draw multiple windows. Fix decl existence check.
Feb 11, 2025
ab31930
Generic decl editing works.
Feb 11, 2025
8d5deda
Fix compilation errors on Linux.
Feb 11, 2025
0ef7697
Fix x64 build.
Feb 11, 2025
4f592a8
Adding ColorTextEdit.
Feb 11, 2025
ebe4c2e
Switch to the original ImGuiColorTextEdit.
Feb 12, 2025
541c704
ScriptEditor: find/replace, go to line.
Feb 14, 2025
644d64e
Apply patch from Daniel Gibson.
Feb 14, 2025
e8d48cc
Move rich editing into SyntaxRichEditCtrl.
Feb 15, 2025
a1a9f61
Setup language definition based on the keywords file.
Feb 15, 2025
8db093e
Minor source editor improvements.
Feb 17, 2025
e83c3ae
Improvements to source code editing.
Feb 20, 2025
5fba052
Fix compilation errors.
Feb 20, 2025
8dea28a
Various changes.
Feb 21, 2025
2bc7efa
TextEditor: fix deletion of a tab character.
Feb 21, 2025
a2e8549
A fix for a fix.
Feb 21, 2025
ec78acb
Fix backspace for good.
Feb 21, 2025
c15c348
WIP: Material Editor stub.
Mar 10, 2025
319ef99
Material Editor changes.
Mar 16, 2025
69d035a
MaterialEditor: improvements to StageView.
Mar 17, 2025
4e36bdd
Material Property Tree View implementation.
Mar 26, 2025
3cb8a2e
Porting MaterialPreviewPropView.
Mar 29, 2025
c3c7941
Add MaterialPreviewView.
Mar 29, 2025
1c26cf6
MacOS/Linux compatibility.
ashalkhakov Aug 14, 2025
e8057fc
Minor fix to Windows build.
ashalkhakov Aug 14, 2025
a77440f
Add a test model
ashalkhakov Aug 15, 2025
3cdbd07
Broken render-to-texture.
ashalkhakov Aug 15, 2025
d4b8286
Render-to-texture almost working.
ashalkhakov Aug 16, 2025
1adada5
Interactable MaterialPreviewView, removal of unused code.
ashalkhakov Aug 17, 2025
fa41e8f
Various improvements.
ashalkhakov Aug 22, 2025
ca23e8f
MaterialTreeView: drag and drop.
ashalkhakov Aug 22, 2025
04f1afb
Fix Windows build.
ashalkhakov Aug 22, 2025
1dca4db
Fix a bug.
ashalkhakov Aug 22, 2025
fa843f7
MaterialTreeView: renaming of nodes. Shortcut keys.
ashalkhakov Aug 23, 2025
82fd0c2
StageView popup menu.
ashalkhakov Aug 24, 2025
cbed07b
MaterialTreeView: find dialog.
ashalkhakov Aug 24, 2025
05ed5ae
Re-implement `rvRegistryOptions`.
ashalkhakov Aug 24, 2025
ace05e5
Dispatch events to children.
ashalkhakov Aug 30, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions neo/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -836,6 +836,8 @@ set(src_imgui ${src_imgui}
tools/imgui/util/ImGui_IdWidgets.cpp
tools/imgui/lighteditor/LightEditor.h
tools/imgui/lighteditor/LightEditor.cpp
tools/imgui/pdaeditor/PDAEditor.h
tools/imgui/pdaeditor/PDAEditor.cpp
)
else()
set(src_imgui sys/sys_imgui.h)
Expand Down
4 changes: 3 additions & 1 deletion neo/framework/Common.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -993,6 +993,8 @@ void idCommonLocal::InitTool( const toolFlag_t tool, const idDict *dict ) {
//ParticleEditorInit( dict );
} else if ( tool & EDITOR_AF ) {
ImGuiTools::AfEditorInit(); // TODO: dict ?
} else if ( tool & EDITOR_PDA ) {
ImGuiTools::PDAEditorInit( dict );
}
#endif

Expand Down Expand Up @@ -1311,7 +1313,7 @@ Com_EditPDAs_f
==================
*/
static void Com_EditPDAs_f( const idCmdArgs &args ) {
PDAEditorInit( NULL );
ImGuiTools::PDAEditorInit( NULL );
}
#endif // ID_ALLOW_TOOLS

Expand Down
8 changes: 8 additions & 0 deletions neo/sys/sys_imgui.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@
extern void Com_DrawDhewm3SettingsMenu(); // in framework/dhewm3SettingsMenu.cpp
extern void Com_OpenCloseDhewm3SettingsMenu( bool open ); // ditto

extern void PDAEditorRun(); // in tools/pda/DialogPDAEditor.cpp

static idCVar imgui_scale( "imgui_scale", "-1.0", CVAR_SYSTEM|CVAR_FLOAT|CVAR_ARCHIVE, "factor to scale ImGUI menus by (-1: auto)" ); // TODO: limit values?

idCVar imgui_style( "imgui_style", "0", CVAR_SYSTEM|CVAR_INTEGER|CVAR_ARCHIVE, "Which ImGui style to use. 0: Dhewm3 theme, 1: Default ImGui theme, 2: User theme", 0.0f, 2.0f );
Expand Down Expand Up @@ -655,6 +657,9 @@ void OpenWindow( D3ImGuiWindow win )
switch ( win ) {
case D3_ImGuiWin_Settings:
Com_OpenCloseDhewm3SettingsMenu( true );
break;
case D3_ImGuiWin_PDAEditor:

break;
// TODO: other windows that need explicit opening
}
Expand All @@ -670,6 +675,9 @@ void CloseWindow( D3ImGuiWindow win )
switch ( win ) {
case D3_ImGuiWin_Settings:
Com_OpenCloseDhewm3SettingsMenu( false );
break;
case D3_ImGuiWin_PDAEditor:

break;
// TODO: other windows that need explicit closing
}
Expand Down
5 changes: 3 additions & 2 deletions neo/sys/sys_imgui.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,10 @@ enum D3ImGuiWindow {
D3_ImGuiWin_Demo = 2, // ImGui demo window
D3_ImGuiWin_LightEditor = 4, // new ingame Light Editor
D3_ImGuiWin_AfEditor = 8, // new AF Editor
// next should be 16, then 32, etc so a bitmask can be used
D3_ImGuiWin_PDAEditor = 16, // new PDA Editor
// next should be 32, then 64, etc so a bitmask can be used

D3_ImGuiWin_AnyEditor = D3_ImGuiWin_LightEditor | D3_ImGuiWin_AfEditor // to decide whether to call DrawToolWindows()
D3_ImGuiWin_AnyEditor = D3_ImGuiWin_LightEditor | D3_ImGuiWin_AfEditor | D3_ImGuiWin_PDAEditor // to decide whether to call DrawToolWindows()
};

#ifndef IMGUI_DISABLE
Expand Down
2 changes: 2 additions & 0 deletions neo/sys/win32/win_main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1310,10 +1310,12 @@ int SDL_main(int argc, char *argv[]) {
// in-game Script Editor
ScriptEditorRun();
}
/*
if ( com_editors & EDITOR_PDA ) {
// in-game PDA Editor
PDAEditorRun();
}
*/
}
}
#endif
Expand Down
3 changes: 3 additions & 0 deletions neo/tools/edit_public.h
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,9 @@ void LightEditorInit( const idDict* dict );

void AfEditorInit();

// in-game PDA Editor
void PDAEditorInit( const idDict* spawnArgs );

}


Expand Down
15 changes: 14 additions & 1 deletion neo/tools/imgui/ImGuiTools.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ If you have questions concerning this license or the applicable additional terms

// TODO #include "afeditor/AfEditor.h"
#include "lighteditor/LightEditor.h"

#include "pdaeditor/PDAEditor.h"

static bool releaseMouse = false;

Expand Down Expand Up @@ -135,6 +135,10 @@ void DrawToolWindows()
{
AfEditor::Instance().Draw();
}*/
else if ( PDAEditor::Instance().IsShown() )
{
PDAEditor::Instance().Draw();
}
}

void LightEditorInit( const idDict* dict )
Expand Down Expand Up @@ -170,4 +174,13 @@ void AfEditorInit() // TODO: why no passed spawnargs?
*/
}

void PDAEditorInit(const idDict* dict)
{
PDAEditor::Instance().Reset();
PDAEditor::Instance().ShowIt( true );
impl::SetReleaseToolMouse( true );

D3::ImGuiHooks::OpenWindow(D3::ImGuiHooks::D3_ImGuiWin_PDAEditor);
}

} //namespace ImGuiTools
Loading