Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/Feature.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#pragma once

#include "FeatureCategories.h"
#include "FeatureConstraints.h"
#include "FeatureVersions.h"
#ifdef TRACY_ENABLE
Expand Down Expand Up @@ -63,7 +64,7 @@ struct Feature
* Get the category for UI grouping (e.g., "Terrain", "Lighting", "Characters", etc.)
* Core features will be distributed to their respective categories
*/
virtual std::string_view GetCategory() const { return "Other"; }
virtual std::string_view GetCategory() const { return FeatureCategories::kOther; }

/**
* Whether the feature will show up in the GUI menu
Expand Down
16 changes: 16 additions & 0 deletions src/FeatureCategories.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#pragma once
#include <string_view>

namespace FeatureCategories
{
inline constexpr std::string_view kCharacters = "Characters";
inline constexpr std::string_view kDisplay = "Display";
inline constexpr std::string_view kGrass = "Grass";
inline constexpr std::string_view kLandscapeAndTextures = "Landscape & Textures";
inline constexpr std::string_view kLighting = "Lighting";
inline constexpr std::string_view kMaterials = "Materials";
inline constexpr std::string_view kOther = "Other";
inline constexpr std::string_view kSky = "Sky";
inline constexpr std::string_view kUtility = "Utility";
inline constexpr std::string_view kWater = "Water";
}
2 changes: 1 addition & 1 deletion src/Features/CloudShadows.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ struct CloudShadows : Feature
virtual inline std::string GetName() override { return "Cloud Shadows"; }
virtual inline std::string GetShortName() override { return "CloudShadows"; }
virtual inline std::string GetFeatureModLink() override { return MakeNexusModURL(MOD_ID); }
virtual std::string_view GetCategory() const override { return "Sky"; }
virtual std::string_view GetCategory() const override { return FeatureCategories::kSky; }
virtual inline std::string_view GetShaderDefineName() override { return "CLOUD_SHADOWS"; }
virtual std::pair<std::string, std::vector<std::string>> GetFeatureSummary() override
{
Expand Down
2 changes: 1 addition & 1 deletion src/Features/DynamicCubemaps.h
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ struct DynamicCubemaps : Feature
virtual inline std::string GetName() override { return "Dynamic Cubemaps"; }
virtual inline std::string GetShortName() override { return "DynamicCubemaps"; }
virtual inline std::string_view GetShaderDefineName() override { return "DYNAMIC_CUBEMAPS"; }
virtual std::string_view GetCategory() const override { return "Materials"; }
virtual std::string_view GetCategory() const override { return FeatureCategories::kMaterials; }
virtual std::pair<std::string, std::vector<std::string>> GetFeatureSummary() override
{
return {
Expand Down
2 changes: 1 addition & 1 deletion src/Features/ExponentialHeightFog.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ struct ExponentialHeightFog : Feature
virtual inline std::string GetName() override { return "Exponential Height Fog"; }
virtual inline std::string GetShortName() override { return "ExponentialHeightFog"; }
virtual inline std::string GetFeatureModLink() override { return MakeNexusModURL("999999"); }
virtual std::string_view GetCategory() const override { return "Lighting"; }
virtual std::string_view GetCategory() const override { return FeatureCategories::kLighting; }

virtual inline std::pair<std::string, std::vector<std::string>> GetFeatureSummary() override
{
Expand Down
2 changes: 1 addition & 1 deletion src/Features/ExtendedMaterials.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ struct ExtendedMaterials : Feature
virtual inline std::string GetName() override { return "Extended Materials"; }
virtual inline std::string GetShortName() override { return "ExtendedMaterials"; }
virtual inline std::string_view GetShaderDefineName() override { return "EXTENDED_MATERIALS"; }
virtual std::string_view GetCategory() const override { return "Materials"; }
virtual std::string_view GetCategory() const override { return FeatureCategories::kMaterials; }

virtual std::pair<std::string, std::vector<std::string>> GetFeatureSummary() override
{
Expand Down
2 changes: 1 addition & 1 deletion src/Features/ExtendedTranslucency.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ struct ExtendedTranslucency final : Feature
virtual inline std::string GetShortName() override { return "ExtendedTranslucency"; }
virtual inline std::string GetFeatureModLink() override { return MakeNexusModURL(MOD_ID); }
virtual inline std::string_view GetShaderDefineName() override { return "EXTENDED_TRANSLUCENCY"sv; }
virtual inline std::string_view GetCategory() const override { return "Materials"sv; }
virtual inline std::string_view GetCategory() const override { return FeatureCategories::kMaterials; }
virtual std::pair<std::string, std::vector<std::string>> GetFeatureSummary() override;
virtual bool HasShaderDefine(RE::BSShader::Type shaderType) override { return RE::BSShader::Type::Lighting == shaderType; };
virtual void PostPostLoad() override;
Expand Down
2 changes: 1 addition & 1 deletion src/Features/GrassCollision.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ struct GrassCollision : Feature
virtual inline std::string GetShortName() override { return "GrassCollision"; }
virtual inline std::string GetFeatureModLink() override { return MakeNexusModURL(MOD_ID); }
virtual inline std::string_view GetShaderDefineName() override { return "GRASS_COLLISION"; }
virtual std::string_view GetCategory() const override { return "Grass"; }
virtual std::string_view GetCategory() const override { return FeatureCategories::kGrass; }

virtual std::pair<std::string, std::vector<std::string>> GetFeatureSummary() override
{
Expand Down
2 changes: 1 addition & 1 deletion src/Features/GrassLighting.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ struct GrassLighting : Feature
virtual inline std::string GetFeatureModLink() override { return MakeNexusModURL(MOD_ID); }
virtual inline std::string_view GetShaderDefineName() override { return "GRASS_LIGHTING"; }
virtual bool HasShaderDefine(RE::BSShader::Type shaderType) override { return shaderType == RE::BSShader::Type::Grass; };
virtual std::string_view GetCategory() const override { return "Grass"; }
virtual std::string_view GetCategory() const override { return FeatureCategories::kGrass; }

virtual std::pair<std::string, std::vector<std::string>> GetFeatureSummary() override
{
Expand Down
2 changes: 1 addition & 1 deletion src/Features/HairSpecular.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ struct HairSpecular : Feature
virtual inline std::string GetName() override { return "Hair Specular"; }
virtual inline std::string GetShortName() override { return "HairSpecular"; }
virtual inline std::string_view GetShaderDefineName() override { return "CS_HAIR"; }
virtual std::string_view GetCategory() const override { return "Characters"; }
virtual std::string_view GetCategory() const override { return FeatureCategories::kCharacters; }
virtual std::pair<std::string, std::vector<std::string>> GetFeatureSummary() override
{
return {
Expand Down
2 changes: 1 addition & 1 deletion src/Features/IBL.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ struct IBL : Feature
virtual inline std::string GetName() override { return "Image Based Lighting"; }
virtual inline std::string GetShortName() override { return "ImageBasedLighting"; }
virtual inline std::string_view GetShaderDefineName() override { return "IBL"; }
virtual std::string_view GetCategory() const override { return "Lighting"; }
virtual std::string_view GetCategory() const override { return FeatureCategories::kLighting; }

virtual std::pair<std::string, std::vector<std::string>> GetFeatureSummary() override
{
Expand Down
2 changes: 1 addition & 1 deletion src/Features/InteriorSun.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ struct InteriorSun : Feature
public:
virtual inline std::string GetName() override { return "Interior Sun"; }
virtual inline std::string GetShortName() override { return "InteriorSun"; }
virtual std::string_view GetCategory() const override { return "Lighting"; }
virtual std::string_view GetCategory() const override { return FeatureCategories::kLighting; }
virtual std::pair<std::string, std::vector<std::string>> GetFeatureSummary() override
{
return {
Expand Down
2 changes: 1 addition & 1 deletion src/Features/InverseSquareLighting.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ struct InverseSquareLighting : Feature

virtual inline std::string_view GetShaderDefineName() override { return "ISL"; }

virtual std::string_view GetCategory() const override { return "Lighting"; }
virtual std::string_view GetCategory() const override { return FeatureCategories::kLighting; }

virtual std::pair<std::string, std::vector<std::string>> GetFeatureSummary() override
{
Expand Down
2 changes: 1 addition & 1 deletion src/Features/LODBlending.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ struct LODBlending : Feature
virtual inline std::string GetName() override { return "LOD Blending"; }
virtual inline std::string GetShortName() override { return "LODBlending"; }
virtual inline std::string_view GetShaderDefineName() override { return "LOD_BLENDING"; }
virtual std::string_view GetCategory() const override { return "Landscape & Textures"; }
virtual std::string_view GetCategory() const override { return FeatureCategories::kLandscapeAndTextures; }
virtual std::pair<std::string, std::vector<std::string>> GetFeatureSummary() override
{
return {
Expand Down
2 changes: 1 addition & 1 deletion src/Features/LightLimitFix.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ struct LightLimitFix : OverlayFeature
virtual inline std::string GetShortName() override { return "LightLimitFix"; }
virtual inline std::string GetFeatureModLink() override { return MakeNexusModURL(MOD_ID); }
virtual inline std::string_view GetShaderDefineName() override { return "LIGHT_LIMIT_FIX"; }
virtual std::string_view GetCategory() const override { return "Lighting"; }
virtual std::string_view GetCategory() const override { return FeatureCategories::kLighting; }

virtual std::pair<std::string, std::vector<std::string>> GetFeatureSummary() override
{
Expand Down
2 changes: 1 addition & 1 deletion src/Features/LinearLighting.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ struct LinearLighting : Feature

virtual inline std::string GetName() override { return "Linear Lighting"; }
virtual inline std::string GetShortName() override { return "LinearLighting"; }
virtual std::string_view GetCategory() const override { return "Lighting"; }
virtual std::string_view GetCategory() const override { return FeatureCategories::kLighting; }
virtual std::pair<std::string, std::vector<std::string>> GetFeatureSummary() override
{
return {
Expand Down
2 changes: 1 addition & 1 deletion src/Features/OverlayFeature.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,5 @@ struct OverlayFeature : Feature
*
* Subclasses may override this to provide a different category.
*/
virtual std::string_view GetCategory() const override { return "Utility"; }
virtual std::string_view GetCategory() const override { return FeatureCategories::kUtility; }
};
2 changes: 1 addition & 1 deletion src/Features/RenderDoc.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ class RenderDoc : public Feature
// Feature overrides
std::string GetName() override { return "RenderDoc"; }
std::string GetShortName() override { return "RenderDoc"; }
std::string_view GetCategory() const override { return "Utility"; }
std::string_view GetCategory() const override { return FeatureCategories::kUtility; }
bool IsCore() const override { return true; }
bool IsInMenu() const override { return true; }
std::pair<std::string, std::vector<std::string>> GetFeatureSummary() override
Expand Down
2 changes: 1 addition & 1 deletion src/Features/ScreenSpaceGI.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ struct ScreenSpaceGI : Feature
virtual inline std::string GetName() override { return "Screen Space GI"; }
virtual inline std::string GetShortName() override { return "ScreenSpaceGI"; }
virtual inline std::string GetFeatureModLink() override { return MakeNexusModURL(MOD_ID); }
virtual std::string_view GetCategory() const override { return "Lighting"; }
virtual std::string_view GetCategory() const override { return FeatureCategories::kLighting; }

virtual std::pair<std::string, std::vector<std::string>> GetFeatureSummary() override
{
Expand Down
2 changes: 1 addition & 1 deletion src/Features/ScreenSpaceShadows.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ struct ScreenSpaceShadows : Feature
virtual inline std::string GetShortName() override { return "ScreenSpaceShadows"; }
virtual inline std::string GetFeatureModLink() override { return MakeNexusModURL(MOD_ID); }
virtual inline std::string_view GetShaderDefineName() override { return "SCREEN_SPACE_SHADOWS"; }
virtual std::string_view GetCategory() const override { return "Lighting"; }
virtual std::string_view GetCategory() const override { return FeatureCategories::kLighting; }

virtual std::pair<std::string, std::vector<std::string>> GetFeatureSummary() override
{
Expand Down
2 changes: 1 addition & 1 deletion src/Features/SkySync.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ struct SkySync : Feature
public:
virtual inline std::string GetName() override { return "Sky Sync"; }
virtual inline std::string GetShortName() override { return "SkySync"; }
virtual std::string_view GetCategory() const override { return "Sky"; }
virtual std::string_view GetCategory() const override { return FeatureCategories::kSky; }

virtual std::pair<std::string, std::vector<std::string>> GetFeatureSummary() override
{
Expand Down
2 changes: 1 addition & 1 deletion src/Features/Skylighting.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ struct Skylighting : Feature
virtual inline std::string GetShortName() override { return "Skylighting"; }
virtual inline std::string GetFeatureModLink() override { return MakeNexusModURL(MOD_ID); }
virtual inline std::string_view GetShaderDefineName() override { return "SKYLIGHTING"; }
virtual std::string_view GetCategory() const override { return "Lighting"; }
virtual std::string_view GetCategory() const override { return FeatureCategories::kLighting; }
virtual std::pair<std::string, std::vector<std::string>> GetFeatureSummary() override
{
return {
Expand Down
2 changes: 1 addition & 1 deletion src/Features/SubsurfaceScattering.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ struct SubsurfaceScattering : Feature
virtual inline std::string GetShortName() override { return "SubsurfaceScattering"; }
virtual inline std::string GetFeatureModLink() override { return MakeNexusModURL(MOD_ID); }
virtual inline std::string_view GetShaderDefineName() override { return "SSS"; }
virtual std::string_view GetCategory() const override { return "Characters"; }
virtual std::string_view GetCategory() const override { return FeatureCategories::kCharacters; }

virtual std::pair<std::string, std::vector<std::string>> GetFeatureSummary() override
{
Expand Down
2 changes: 1 addition & 1 deletion src/Features/TerrainBlending.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ struct TerrainBlending : Feature
virtual inline std::string GetName() override { return "Terrain Blending"; }
virtual inline std::string GetShortName() override { return "TerrainBlending"; }
virtual inline std::string_view GetShaderDefineName() override { return "TERRAIN_BLENDING"; }
virtual std::string_view GetCategory() const override { return "Landscape & Textures"; }
virtual std::string_view GetCategory() const override { return FeatureCategories::kLandscapeAndTextures; }
virtual std::pair<std::string, std::vector<std::string>> GetFeatureSummary() override
{
return {
Expand Down
2 changes: 1 addition & 1 deletion src/Features/TerrainHelper.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ struct TerrainHelper : Feature
virtual inline std::string GetName() override { return "Terrain Helper"; }
virtual inline std::string GetShortName() override { return "TerrainHelper"; }
virtual inline std::string_view GetShaderDefineName() override { return "TERRAIN_HELPER"; }
virtual std::string_view GetCategory() const override { return "Landscape & Textures"; }
virtual std::string_view GetCategory() const override { return FeatureCategories::kLandscapeAndTextures; }

virtual std::pair<std::string, std::vector<std::string>> GetFeatureSummary() override
{
Expand Down
2 changes: 1 addition & 1 deletion src/Features/TerrainShadows.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ struct TerrainShadows : public Feature
virtual inline std::string GetShortName() override { return "TerrainShadows"; }
virtual inline std::string GetFeatureModLink() override { return MakeNexusModURL(MOD_ID); }
virtual inline std::string_view GetShaderDefineName() override { return "TERRAIN_SHADOWS"; }
virtual std::string_view GetCategory() const override { return "Landscape & Textures"; }
virtual std::string_view GetCategory() const override { return FeatureCategories::kLandscapeAndTextures; }
virtual std::pair<std::string, std::vector<std::string>> GetFeatureSummary() override
{
return {
Expand Down
2 changes: 1 addition & 1 deletion src/Features/TerrainVariation.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ struct TerrainVariation : Feature
}
virtual bool IsCore() const override { return false; };
virtual bool SupportsVR() override { return true; }
virtual std::string_view GetCategory() const override { return "Landscape & Textures"; }
virtual std::string_view GetCategory() const override { return FeatureCategories::kLandscapeAndTextures; }

virtual std::pair<std::string, std::vector<std::string>> GetFeatureSummary() override
{
Expand Down
2 changes: 1 addition & 1 deletion src/Features/UnifiedWater.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ struct UnifiedWater : OverlayFeature
virtual inline std::string GetName() override { return "Unified Water"; }
virtual inline std::string GetShortName() override { return "UnifiedWater"; }
virtual inline std::string_view GetShaderDefineName() override { return "UNIFIED_WATER"; }
virtual std::string_view GetCategory() const override { return "Water"; }
virtual std::string_view GetCategory() const override { return FeatureCategories::kWater; }
virtual std::pair<std::string, std::vector<std::string>> GetFeatureSummary() override
{
return {
Expand Down
2 changes: 1 addition & 1 deletion src/Features/Upscaling.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ struct Upscaling : Feature
virtual inline std::string GetShortName() override { return "Upscaling"; }
virtual inline bool SupportsVR() override { return true; }
virtual inline bool IsCore() const override { return false; }
virtual inline std::string_view GetCategory() const override { return "Display"; }
virtual inline std::string_view GetCategory() const override { return FeatureCategories::kDisplay; }

virtual std::pair<std::string, std::vector<std::string>> GetFeatureSummary() override
{
Expand Down
2 changes: 1 addition & 1 deletion src/Features/VR.h
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ struct VR : OverlayFeature

virtual void DrawSettings() override;

virtual std::string_view GetCategory() const override { return "Utility"; }
virtual std::string_view GetCategory() const override { return FeatureCategories::kUtility; }

//=============================================================================
// OVERLAY FEATURE OVERRIDES
Expand Down
2 changes: 1 addition & 1 deletion src/Features/VolumetricLighting.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ struct VolumetricLighting : Feature

virtual inline std::string GetName() override { return "Volumetric Lighting"; }
virtual inline std::string GetShortName() override { return "VolumetricLighting"; }
virtual std::string_view GetCategory() const override { return "Lighting"; }
virtual std::string_view GetCategory() const override { return FeatureCategories::kLighting; }

virtual std::pair<std::string, std::vector<std::string>> GetFeatureSummary() override
{
Expand Down
2 changes: 1 addition & 1 deletion src/Features/VolumetricShadows.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ struct VolumetricShadows : Feature
virtual inline std::string GetName() override { return "Volumetric Shadows"; }
virtual inline std::string GetShortName() override { return "VolumetricShadows"; }
virtual inline std::string_view GetShaderDefineName() override { return "VOLUMETRIC_SHADOWS"; }
virtual std::string_view GetCategory() const override { return "Lighting"; }
virtual std::string_view GetCategory() const override { return FeatureCategories::kLighting; }
virtual bool IsCore() const override { return true; }
virtual bool IsInMenu() const override { return true; }

Expand Down
2 changes: 1 addition & 1 deletion src/Features/WaterEffects.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ struct WaterEffects : Feature
virtual inline std::string GetShortName() override { return "WaterEffects"; }
virtual inline std::string GetFeatureModLink() override { return MakeNexusModURL(MOD_ID); }
virtual inline std::string_view GetShaderDefineName() override { return "WATER_EFFECTS"; }
virtual std::string_view GetCategory() const override { return "Water"; }
virtual std::string_view GetCategory() const override { return FeatureCategories::kWater; }

virtual std::pair<std::string, std::vector<std::string>> GetFeatureSummary() override
{
Expand Down
2 changes: 1 addition & 1 deletion src/Features/WeatherEditor.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ struct WeatherEditor : OverlayFeature
virtual inline std::string GetName() override { return "Weather Editor"; }
virtual inline std::string GetShortName() override { return "WeatherEditor"; }
virtual inline std::string_view GetShaderDefineName() override { return "WEATHER"; }
virtual inline std::string_view GetCategory() const override { return "Utility"; }
virtual inline std::string_view GetCategory() const override { return FeatureCategories::kUtility; }
virtual bool SupportsVR() override { return true; }
virtual bool IsCore() const override { return true; }
virtual bool IsInMenu() const override { return true; }
Expand Down
2 changes: 1 addition & 1 deletion src/Features/WetnessEffects.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ struct WetnessEffects : Feature
virtual inline std::string GetShortName() override { return "WetnessEffects"; }
virtual inline std::string GetFeatureModLink() override { return MakeNexusModURL(MOD_ID); }
virtual inline std::string_view GetShaderDefineName() override { return "WETNESS_EFFECTS"; }
virtual std::string_view GetCategory() const override { return "Water"; }
virtual std::string_view GetCategory() const override { return FeatureCategories::kWater; }

virtual std::pair<std::string, std::vector<std::string>> GetFeatureSummary() override
{
Expand Down
Loading