public override bool Draw(string label, ref ConstructedMeshInfo obj, RenderContext rc) { Vector2 region = ImGui.GetContentRegionAvailable(); float minDimension = Math.Min(900, Math.Min(region.X, region.Y)) - 50; Vector2 imageDimensions = new Vector2(minDimension, minDimension / (1.33f)); PreviewScene scene; scene = GetOrCreateScene(obj, rc); scene.Size = new Size((int)imageDimensions.X, (int)imageDimensions.Y); scene.RenderFrame(); IntPtr id = ImGuiImageHelper.GetOrCreateImGuiBinding(rc, scene.RenderedScene); ImGui.Image(id, new Vector2(scene.Width, scene.Height), rc.TopLeftUv, rc.BottomRightUv, Vector4.One, Vector4.One); return(false); }
public override bool Draw(string label, ref ImageSharpTexture obj, RenderContext rc) { ImGui.Text(label); DeviceTexture dt; if (!_deviceTextures.TryGetValue(obj, out dt)) { dt = obj.CreateDeviceTexture(rc.ResourceFactory); _deviceTextures.Add(obj, dt); } IntPtr id = ImGuiImageHelper.GetOrCreateImGuiBinding(rc, dt); float ratio = (float)obj.Width / obj.Height; Vector2 region = ImGui.GetContentRegionAvailable(); float minDimension = Math.Min(500, Math.Min(region.X, region.Y)) - 50; Vector2 imageDimensions = new Vector2(minDimension, minDimension / ratio); ImGui.Image(id, imageDimensions, Vector2.Zero, Vector2.One, Vector4.One, Vector4.One); return(false); }