Show / Hide Table of Contents

# Class UiBuilder

This class represents the Dalamud UI that is drawn on top of the game. It can be used to draw custom windows and overlays.

##### Inheritance

System.Object
UiBuilder

##### Implements

System.IDisposable

##### Inherited Members

System.Object.ToString()
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()

###### Namespace: Dalamud.Interface

###### Assembly: Dalamud.dll

##### Syntax

    public class UiBuilder : IDisposable

### Constructors

| Improve this Doc View Source

#### UiBuilder(InterfaceManager, String)

Create a new UiBuilder and register it. You do not have to call this manually.

##### Declaration

    public UiBuilder(InterfaceManager interfaceManager, string namespaceName)

##### Parameters

Type | Name | Description
--- | --- | ---
InterfaceManager | interfaceManager | The interface manager to register on.
System.String | namespaceName | The plugin namespace.

### Fields

| Improve this Doc View Source

#### OnOpenConfigUi

Event that is fired when the plugin should open its configuration interface.

##### Declaration

    public EventHandler OnOpenConfigUi

##### Field Value

Type | Description
--- | ---
System.EventHandler |

### Properties

| Improve this Doc View Source

#### DefaultFont

The default Dalamud font based on Noto Sans CJK Medium in 17pt - supporting all game languages and icons.

##### Declaration

    public static ImFontPtr DefaultFont { get; }

##### Property Value

Type | Description
--- | ---
ImFontPtr |

| Improve this Doc View Source

#### IconFont

The default Dalamud icon font based on FontAwesome 5 Free solid in 17pt.

##### Declaration

    public static ImFontPtr IconFont { get; }

##### Property Value

Type | Description
--- | ---
ImFontPtr |

| Improve this Doc View Source

#### OnBuildFonts

An event that is called any time ImGui fonts need to be rebuilt.
Any ImFontPtr objects that you store can be invalidated when fonts are rebuilt (at any time), so you should both reload your custom fonts and restore those pointers inside this handler.
PLEASE remove this handler inside Dipose, or when you no longer need your fonts!

##### Declaration

    public Action OnBuildFonts { get; set; }

##### Property Value

Type | Description
--- | ---
System.Action |

### Methods

| Improve this Doc View Source

#### Dispose()

Unregister the UiBuilder. Do not call this in plugin code.

##### Declaration

    public void Dispose()

| Improve this Doc View Source

#### LoadImage(Byte[])

Loads an image from a byte stream, such as a png downloaded into memory.

##### Declaration

    public TextureWrap LoadImage(byte[] imageData)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Byte[] | imageData | A byte array containing the raw image data.

##### Returns

Type | Description
--- | ---
TextureWrap | A TextureWrap object wrapping the created image. Use ImGuiHandle inside ImGui.Image()

| Improve this Doc View Source

#### LoadImage(String)

Loads an image from the specified file.

##### Declaration

    public TextureWrap LoadImage(string filePath)

##### Parameters

Type | Name | Description
--- | --- | ---
System.String | filePath | The full filepath to the image.

##### Returns

Type | Description
--- | ---
TextureWrap | A TextureWrap object wrapping the created image. Use ImGuiHandle inside ImGui.Image()

| Improve this Doc View Source

#### LoadImageRaw(Byte[], Int32, Int32, Int32)

Loads an image from raw unformatted pixel data, with no type or header information. To load formatted data, use LoadImage(Byte[]).

##### Declaration

    public TextureWrap LoadImageRaw(byte[] imageData, int width, int height, int numChannels)

##### Parameters

Type | Name | Description
--- | --- | ---
System.Byte[] | imageData | A byte array containing the raw pixel data.
System.Int32 | width | The width of the image contained in `imageData`.
System.Int32 | height | The height of the image contained in `imageData`.
System.Int32 | numChannels | The number of channels (bytes per pixel) of the image contained in `imageData`. This should usually be 4.

##### Returns

Type | Description
--- | ---
TextureWrap | A TextureWrap object wrapping the created image. Use ImGuiHandle inside ImGui.Image()

| Improve this Doc View Source

#### RebuildFonts()

Call this to queue a rebuild of the font atlas.
This will invoke any OnBuildFonts handlers and ensure that any loaded fonts are ready to be used on the next UI frame.

##### Declaration

    public void RebuildFonts()

### Events

| Improve this Doc View Source

#### OnBuildUi

The delegate that gets called when Dalamud is ready to draw your windows or overlays. When it is called, you can use static ImGui calls.

##### Declaration

    public event RawDX11Scene.BuildUIDelegate OnBuildUi

##### Event Type

Type | Description
--- | ---
RawDX11Scene.BuildUIDelegate |

### Implements

System.IDisposable