private void SubmitResourcesWindow() { if (!showResources) { return; } ImGui.PushStyleVar(ImGuiStyleVar.WindowRounding, 0); Vector2 size = RuntimeOptions.Current.GetScaledSize(RESOURCESWINDOWWIDTH, RESOURCESWINDOWHEIGHT); float quarterWidth = size.X / 4; ImGui.SetNextWindowSize(size); if (ImGui.Begin("Resources", ref showResources, ImGuiWindowFlags.NoResize)) { if (ImGui.Button("Add resource", new Vector2(size.X - 16, 30 * RuntimeOptions.Current.UiScale))) { Controller.LoadResource(); } ImGui.PushFont(RuntimeOptions.Current.EditorFont); if (ImGui.BeginChild("Resource list", Vector2.Zero, false)) { for (int i = 0; i < Controller.Context.ImguiTextures.Count; i++) { YALCTShaderResource resource = Controller.Context.ImguiTextures[i]; if (ImGui.BeginChild($"resprops_{resource.UID}", new Vector2(0, quarterWidth), false)) { ImGui.Image(resource.ImguiBinding, new Vector2(quarterWidth, quarterWidth)); if (ImGui.IsItemHovered()) { ImGui.GetStyle().Alpha = 1; ImGui.BeginTooltip(); float scaler = resource.Size.X > resource.Size.Y ? resource.Size.X / MAXTEXPREVIEWSIZE : resource.Size.Y / MAXTEXPREVIEWSIZE; ImGui.Image(resource.ImguiBinding, resource.Size / scaler); ImGui.EndTooltip(); ImGui.GetStyle().Alpha = RuntimeOptions.Current.UiAlpha; } ImGui.SameLine(quarterWidth + 5); if (ImGui.BeginChild($"resdata_{resource.UID}", new Vector2(0, quarterWidth), false)) { ImGui.Text($"InputTex{i}"); ImGui.Text($"{resource.Size.X}x{resource.Size.Y}"); if (ImGui.Button("Remove")) { Controller.Context.RemoveTexture(resource); return; } ImGui.EndChild(); } ImGui.EndChild(); } } ImGui.EndChild(); } ImGui.PopFont(); } ImGui.PopStyleVar(); }
public void RemoveTexture(YALCTShaderResource resource) { int resourceIndex = imguiTextures.IndexOf(resource); if (resourceIndex != -1) { imguiTextureViews[resourceIndex].Dispose(); textureViews[resourceIndex].Dispose(); textures[resourceIndex].Dispose(); imguiTextures.RemoveAt(resourceIndex); imguiTextureViews.RemoveAt(resourceIndex); textureViews.RemoveAt(resourceIndex); textures.RemoveAt(resourceIndex); } }