mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-12 18:27:23 +01:00
feat: expose Device and WindowHandle on UiBuilder
This commit is contained in:
parent
3fe6e45b68
commit
0cea6ffe10
4 changed files with 21 additions and 3 deletions
|
|
@ -11,6 +11,7 @@ using EasyHook;
|
|||
using ImGuiNET;
|
||||
using ImGuiScene;
|
||||
using Serilog;
|
||||
using SharpDX.Direct3D11;
|
||||
|
||||
// general dev notes, here because it's easiest
|
||||
/*
|
||||
|
|
@ -46,6 +47,9 @@ namespace Dalamud.Interface
|
|||
private Dalamud dalamud;
|
||||
private RawDX11Scene scene;
|
||||
|
||||
public Device Device => this.scene.Device;
|
||||
public IntPtr WindowHandlePtr => this.scene.WindowHandle;
|
||||
|
||||
private delegate void InstallRTSSHook();
|
||||
private string rtssPath;
|
||||
|
||||
|
|
@ -218,9 +222,9 @@ namespace Dalamud.Interface
|
|||
|
||||
private IntPtr PresentDetour(IntPtr swapChain, uint syncInterval, uint presentFlags)
|
||||
{
|
||||
if (this.scene == null)
|
||||
{
|
||||
if (this.scene == null) {
|
||||
this.scene = new RawDX11Scene(swapChain);
|
||||
|
||||
this.scene.ImGuiIniPath = Path.Combine(Path.GetDirectoryName(this.dalamud.StartInfo.ConfigurationPath), "dalamudUI.ini");
|
||||
this.scene.OnBuildUI += Display;
|
||||
this.scene.OnNewInputFrame += OnNewInputFrame;
|
||||
|
|
|
|||
|
|
@ -19,6 +19,16 @@ namespace Dalamud.Interface
|
|||
public class UiBuilder : IDisposable {
|
||||
private readonly string namespaceName;
|
||||
|
||||
/// <summary>
|
||||
/// The game's active Direct3D device.
|
||||
/// </summary>
|
||||
public Device Device => this.dalamud.InterfaceManager.Device;
|
||||
|
||||
/// <summary>
|
||||
/// The game's main window handle.
|
||||
/// </summary>
|
||||
public IntPtr WindowHandlePtr => this.dalamud.InterfaceManager.WindowHandlePtr;
|
||||
|
||||
/// <summary>
|
||||
/// The default Dalamud font based on Noto Sans CJK Medium in 17pt - supporting all game languages and icons.
|
||||
/// </summary>
|
||||
|
|
|
|||
|
|
@ -12,6 +12,10 @@ namespace Dalamud
|
|||
/// <summary>
|
||||
/// Class facilitating safe memory access
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Attention! The performance of these methods is severely worse than regular <see cref="Marshal"/> calls.
|
||||
/// Please consider using these instead in performance-critical code.
|
||||
/// </remarks>
|
||||
public static class SafeMemory
|
||||
{
|
||||
private static readonly IntPtr Handle;
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit 97a487c795b7c8fda6ce5342c88035ba9f40e53d
|
||||
Subproject commit facf6b1533ea80a76628e1edee3494b61f065e70
|
||||
Loading…
Add table
Add a link
Reference in a new issue