예제 #1
0
        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);
        }
예제 #2
0
        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);
        }