Add configurable MSAA anti-aliasing, update auth screen and terrain shader

- MSAA: conditional 2-att (off) vs 3-att (on) render pass with auto-resolve
- MSAA: multisampled color+depth images, query max supported sample count
- MSAA: .setMultisample() on all 25+ main-pass pipelines across 17 renderers
- MSAA: recreatePipelines() on every sub-renderer for runtime MSAA changes
- MSAA: Renderer::setMsaaSamples() orchestrates swapchain+pipeline+ImGui rebuild
- MSAA: Anti-Aliasing combo (Off/2x/4x/8x) in Video settings, persisted
- Update auth screen assets and terrain fragment shader
This commit is contained in:
Kelsi 2026-02-22 02:59:24 -08:00
parent 6d213ad49b
commit e12141a673
54 changed files with 2069 additions and 144 deletions

View file

@ -1,11 +1,13 @@
#pragma once
#include "auth/auth_handler.hpp"
#include "rendering/video_player.hpp"
#include <vulkan/vulkan.h>
#include <string>
#include <vector>
#include <functional>
namespace wowee { namespace rendering { class VkContext; } }
namespace wowee { namespace ui {
/**
@ -103,9 +105,18 @@ private:
void upsertCurrentServerProfile(bool includePasswordHash);
std::string currentExpansionId() const;
// Background video
bool videoInitAttempted = false;
rendering::VideoPlayer backgroundVideo;
// Background image (Vulkan)
bool bgInitAttempted = false;
bool loadBackgroundImage();
void destroyBackgroundImage();
rendering::VkContext* bgVkCtx = nullptr;
VkImage bgImage = VK_NULL_HANDLE;
VkDeviceMemory bgMemory = VK_NULL_HANDLE;
VkImageView bgImageView = VK_NULL_HANDLE;
VkSampler bgSampler = VK_NULL_HANDLE;
VkDescriptorSet bgDescriptorSet = VK_NULL_HANDLE;
int bgWidth = 0;
int bgHeight = 0;
bool musicInitAttempted = false;
bool musicPlaying = false;

View file

@ -102,6 +102,7 @@ private:
bool pendingAutoLoot = false;
bool pendingUseOriginalSoundtrack = true;
int pendingGroundClutterDensity = 100;
int pendingAntiAliasing = 0; // 0=Off, 1=2x, 2=4x, 3=8x
// UI element transparency (0.0 = fully transparent, 1.0 = fully opaque)
float uiOpacity_ = 0.65f;
@ -110,6 +111,7 @@ private:
bool minimapNpcDots_ = false;
bool minimapSettingsApplied_ = false;
bool volumeSettingsApplied_ = false; // True once saved volume settings applied to audio managers
bool msaaSettingsApplied_ = false; // True once saved MSAA setting applied to renderer
// Mute state: mute bypasses master volume without touching slider values
bool soundMuted_ = false;