/// <summary> /// Recreates the device texture used to render text. /// </summary> public unsafe void RecreateFontDeviceTexture(GraphicsDevice gd, CommandList cl) { IO io = ImGui.GetIO(); // Build FontTextureData textureData = io.FontAtlas.GetTexDataAsRGBA32(); // Store our identifier io.FontAtlas.SetTexID(_fontAtlasID); _fontTexture = gd.ResourceFactory.CreateTexture(new TextureDescription( (uint)textureData.Width, (uint)textureData.Height, 1, 1, 1, PixelFormat.R8_G8_B8_A8_UNorm, TextureUsage.Sampled)); cl.UpdateTexture( _fontTexture, (IntPtr)textureData.Pixels, (uint)(textureData.BytesPerPixel * textureData.Width * textureData.Height), 0, 0, 0, (uint)textureData.Width, (uint)textureData.Height, 1, 0, 0); _fontTextureView = gd.ResourceFactory.CreateTextureView(_fontTexture); io.FontAtlas.ClearTexData(); }