Release build fixes + ImGui build flag

Fonts still not working
This commit is contained in:
Simon Lübeß
2022-02-18 16:03:24 +01:00
parent fae2bdf084
commit 0db85de067
6 changed files with 48 additions and 21 deletions
+2 -2
View File
@@ -15,7 +15,7 @@ PreprocessorMacros = ["DEBUG", "PARANOID", "GE_WINDOWS"]
PreprocessorMacros = ["RELEASE", "GE_WINDOWS"]
[Configs.Release.Win64]
PreprocessorMacros = ["RELEASE", "GE_PROFILE"]
PreprocessorMacros = ["IMGUI", "RELEASE", "GE_PROFILE"]
[Configs.Test.Win32]
PreprocessorMacros = ["TEST", "GE_WINDOWS"]
@@ -24,4 +24,4 @@ PreprocessorMacros = ["TEST", "GE_WINDOWS"]
PreprocessorMacros = ["TEST", "GE_WINDOWS"]
[Configs.Debug.Win64]
PreprocessorMacros = ["DEBUG", "GE_PROFILE", "GE_PROFILE_RENDERER", "GE_PROFILE_RESOURCES"]
PreprocessorMacros = ["DEBUG", "GE_PROFILE", "GE_PROFILE_RENDERER", "GE_PROFILE_RESOURCES", "IMGUI"]
+20 -6
View File
@@ -10,18 +10,20 @@ namespace GlitchyEngine
{
static Application s_Instance = null;
private Window _window ~ delete _;
private RendererAPI _rendererApi ~ delete _;
private EffectLibrary _effectLibrary ~ delete _;
private Window _window;
private RendererAPI _rendererApi;
private EffectLibrary _effectLibrary;
private bool _running = true;
private bool _isMinimized = false;
private LayerStack _layerStack = new LayerStack();
private LayerStack _layerStack;
#if IMGUI
private ImGuiLayer _imGuiLayer;
#endif
private GameTime _gameTime = new GameTime(true);
private GameTime _gameTime;
public bool IsRunning => _running;
public Window Window => _window;
@@ -40,6 +42,9 @@ namespace GlitchyEngine
Log.EngineLogger.Assert(s_Instance == null, "Tried to create a second application.");
s_Instance = this;
_layerStack = new LayerStack();
_gameTime = new GameTime(true);
_window = new Window(.Default);
_window.EventCallback = new => OnEvent;
@@ -54,18 +59,25 @@ namespace GlitchyEngine
Renderer.Init(_window.Context, _effectLibrary);
#if IMGUI
_imGuiLayer = new ImGuiLayer();
PushOverlay(_imGuiLayer);
#endif
}
public ~this()
{
Profiler.ProfileFunction!();
delete _layerStack;
SamplerStateManager.Uninit();
Renderer.Deinit();
delete _effectLibrary;
delete _rendererApi;
delete _window;
delete _gameTime;
delete _layerStack;
}
public void OnEvent(Event e)
@@ -131,7 +143,9 @@ namespace GlitchyEngine
if(allowFrame)
{
#if IMGUI
_imGuiLayer.ImGuiRender();
#endif
_window.Context.SwapChain.Present();
}
+3
View File
@@ -229,7 +229,10 @@ namespace GlitchyEngine.ImGui
io.DisplaySize = .(window.Width, window.Height);
ImGui.Render();
#if GE_GRAPHICS_DX11
ImGuiImplDX11.RenderDrawData(ImGui.GetDrawData());
#endif
ImGui.CleanupFrame();
@@ -17,7 +17,9 @@ namespace GlitchyEngine.Platform.DX11
protected internal static ID3D11Device* NativeDevice;
protected internal static ID3D11DeviceContext* NativeContext;
#if DEBUG
protected internal static ID3D11Debug* DebugDevice;
#endif
internal static void Dx11Init()
{
@@ -68,7 +70,9 @@ namespace GlitchyEngine.Platform.DX11
// We created a second GraphicsContext (for some reason?) just increment references.
NativeDevice.AddRef();
NativeContext.AddRef();
#if DEBUG
DebugDevice.AddRef();
#endif
}
}
@@ -78,8 +82,10 @@ namespace GlitchyEngine.Platform.DX11
NativeDevice.Release();
NativeContext.Release();
#if DEBUG
DebugDevice.ReportLiveDeviceObjects(.Detail);
DebugDevice.Release();
#endif
}
}
}
+1
View File
@@ -42,6 +42,7 @@ namespace GlitchyEngine
Log.EngineLogger.Info("Application uninitialized.");
}
Debug.Profiler.EndProfiling();
return 0;
+11 -8
View File
@@ -27,10 +27,13 @@ namespace Sandbox
OrthographicCameraController cameraController ~ delete _;
Font fonty ~ _.ReleaseRef();
// Font fonty ~ _.ReleaseRef();
ColorRGBA _squareColor0 = ColorRGBA.CornflowerBlue;
ColorRGBA _squareColor1;
ColorRGBA _squareColor1 = {
ColorRGBA color = ColorRGBA.White - _squareColor0;
color.A = _squareColor0.A;
color};
DepthStencilState _depthStencilState ~ _.ReleaseRef();
@@ -61,7 +64,7 @@ namespace Sandbox
blendDesc.RenderTarget[0] = .(true, .SourceAlpha, .InvertedSourceAlpha, .Add, .SourceAlpha, .InvertedSourceAlpha, .Add, .All);
_alphaBlendState = new BlendState(blendDesc);
fonty = new Font("C:\\Windows\\Fonts\\arial.ttf", 64, true, 'A', 16);
/*fonty = new Font("C:\\Windows\\Fonts\\arial.ttf", 64, true, 'A', 16);
var japanese = new Font("C:\\Windows\\Fonts\\YuGothM.ttc", 64, true, '\0', 1);
var emojis = new Font("C:\\Windows\\Fonts\\seguiemj.ttf", 64, true, '😂' - 10, 1);
var mathstuff = new Font("C:\\Windows\\Fonts\\cambria.ttc", 64, true, 'α', 1);
@@ -69,7 +72,7 @@ namespace Sandbox
fonty.Fallback = japanese..ReleaseRefNoDelete();
japanese.Fallback = emojis..ReleaseRefNoDelete();
emojis.Fallback = mathstuff..ReleaseRefNoDelete();
mathstuff.Fallback = cascadiaCode..ReleaseRefNoDelete();
mathstuff.Fallback = cascadiaCode..ReleaseRefNoDelete();*/
_textureViewer = new TextureViewer();
@@ -133,9 +136,9 @@ namespace Sandbox
Renderer2D.DrawQuad(Vector3(2 * x, 2 * y, 0.5f), Vector2(1.5f, 1), MathHelper.PiOverFour, (i == 0) ? _squareColor0 : _squareColor1);
}
var prepared = FontRenderer.PrepareText(fonty, text, 64, .White, .White);
FontRenderer.DrawText(prepared, 0, 0);
prepared.ReleaseRef();
//var prepared = FontRenderer.PrepareText(fonty, text, 64, .White, .White);
//FontRenderer.DrawText(prepared, 0, 0);
//prepared.ReleaseRef();
Renderer2D.EndScene();
}
@@ -181,7 +184,7 @@ namespace Sandbox
ImGui.End();
//_textureViewer.ViewTexture(fonty.Fallback.Fallback.Fallback.Fallback.[Friend]_atlas);
_textureViewer.ViewTexture(fonty.[Friend]_atlas);
//_textureViewer.ViewTexture(fonty.[Friend]_atlas);
_context.SetRenderTarget(null);
_context.SetDepthStencilTarget(_depthTarget);