#pragma once #include #include #include #include #include #include #include struct Window { explicit Window(n64::Core& core); ~Window(); ImDrawData* Present(n64::Core& core); [[nodiscard]] bool gotClosed(SDL_Event event); ImFont *uiFont, *codeFont; u32 windowID; float volumeL = 0.5, volumeR = 0.5; void LoadROM(n64::Core& core, const std::string& path); private: bool lockVolume = true; bool showSettings = false; SDL_Window* window; std::string windowTitle; void InitSDL(); void InitImgui(); void Render(n64::Core& core); VkPhysicalDevice physicalDevice{}; VkDevice device{}; uint32_t queueFamily{uint32_t(-1)}; VkQueue queue{}; VkPipelineCache pipelineCache{}; VkDescriptorPool descriptorPool{}; VkAllocationCallbacks* allocator{}; u32 minImageCount = 2; bool rebuildSwapchain = false; };