refactor(rendering): remove unused pipeline factory registries

This commit is contained in:
2026-04-21 20:57:29 +08:00
parent 13ad95dc23
commit 75cf48f4fe
2 changed files with 0 additions and 460 deletions

View File

@@ -11,10 +11,6 @@
#include "Rendering/Passes/BuiltinObjectIdPass.h"
#include "Rendering/Passes/BuiltinShadowCasterPass.h"
#include <mutex>
#include <unordered_map>
#include <unordered_set>
namespace XCEngine {
namespace Rendering {
namespace Internal {
@@ -41,155 +37,6 @@ std::unique_ptr<RenderPass> CreateBuiltinShadowCasterStandalonePass() {
return std::make_unique<Passes::BuiltinShadowCasterPass>();
}
using PipelineBackendAssetRegistry =
std::unordered_map<std::string, PipelineBackendAssetFactory>;
using CameraFrameStandalonePassRegistry =
std::unordered_map<std::string, CameraFrameStandalonePassFactory>;
using CameraFramePlanPolicyRegistry =
std::unordered_map<std::string, CameraFramePlanPolicy>;
using DirectionalShadowExecutionPolicyRegistry =
std::unordered_map<std::string, DirectionalShadowExecutionPolicy>;
PipelineBackendAssetRegistry& GetPipelineBackendAssetRegistry() {
static PipelineBackendAssetRegistry registry = {};
return registry;
}
CameraFrameStandalonePassRegistry& GetCameraFrameStandalonePassRegistry() {
static CameraFrameStandalonePassRegistry registry = {};
return registry;
}
CameraFramePlanPolicyRegistry& GetCameraFramePlanPolicyRegistry() {
static CameraFramePlanPolicyRegistry registry = {};
return registry;
}
DirectionalShadowExecutionPolicyRegistry&
GetDirectionalShadowExecutionPolicyRegistry() {
static DirectionalShadowExecutionPolicyRegistry registry = {};
return registry;
}
std::unordered_set<std::string>& GetBuiltinPipelineBackendAssetKeys() {
static std::unordered_set<std::string> builtinKeys = {};
return builtinKeys;
}
std::unordered_set<std::string>& GetBuiltinCameraFrameStandalonePassKeys() {
static std::unordered_set<std::string> builtinKeys = {};
return builtinKeys;
}
std::unordered_set<std::string>& GetBuiltinCameraFramePlanPolicyKeys() {
static std::unordered_set<std::string> builtinKeys = {};
return builtinKeys;
}
std::unordered_set<std::string>&
GetBuiltinDirectionalShadowExecutionPolicyKeys() {
static std::unordered_set<std::string> builtinKeys = {};
return builtinKeys;
}
std::mutex& GetPipelineBackendAssetRegistryMutex() {
static std::mutex mutex;
return mutex;
}
std::mutex& GetCameraFrameStandalonePassRegistryMutex() {
static std::mutex mutex;
return mutex;
}
std::mutex& GetCameraFramePlanPolicyRegistryMutex() {
static std::mutex mutex;
return mutex;
}
std::mutex& GetDirectionalShadowExecutionPolicyRegistryMutex() {
static std::mutex mutex;
return mutex;
}
void EnsureBuiltinPipelineBackendAssetRegistryInitialized() {
static const bool initialized = []() {
PipelineBackendAssetRegistry& registry =
GetPipelineBackendAssetRegistry();
registry.emplace(
"BuiltinForward",
&CreateBuiltinForwardPipelineRendererAsset);
GetBuiltinPipelineBackendAssetKeys().insert("BuiltinForward");
return true;
}();
(void)initialized;
}
void EnsureBuiltinCameraFrameStandalonePassRegistryInitialized() {
static const bool initialized = []() {
CameraFrameStandalonePassRegistry& registry =
GetCameraFrameStandalonePassRegistry();
registry.emplace(
"BuiltinDepthOnly",
&CreateBuiltinDepthOnlyStandalonePass);
registry.emplace(
"BuiltinObjectId",
&CreateBuiltinObjectIdStandalonePass);
registry.emplace(
"BuiltinShadowCaster",
&CreateBuiltinShadowCasterStandalonePass);
std::unordered_set<std::string>& builtinKeys =
GetBuiltinCameraFrameStandalonePassKeys();
builtinKeys.insert("BuiltinDepthOnly");
builtinKeys.insert("BuiltinObjectId");
builtinKeys.insert("BuiltinShadowCaster");
return true;
}();
(void)initialized;
}
void EnsureBuiltinCameraFramePlanPolicyRegistryInitialized() {
static const bool initialized = []() {
CameraFramePlanPolicyRegistry& registry =
GetCameraFramePlanPolicyRegistry();
registry.emplace(
"BuiltinDefaultCameraFramePlan",
[](CameraFramePlan& plan,
const FinalColorSettings& defaultFinalColorSettings) {
ApplyDefaultRenderPipelineAssetCameraFramePlanPolicy(
plan,
defaultFinalColorSettings);
});
GetBuiltinCameraFramePlanPolicyKeys().insert(
"BuiltinDefaultCameraFramePlan");
return true;
}();
(void)initialized;
}
void EnsureBuiltinDirectionalShadowExecutionPolicyRegistryInitialized() {
static const bool initialized = []() {
DirectionalShadowExecutionPolicyRegistry& registry =
GetDirectionalShadowExecutionPolicyRegistry();
registry.emplace(
"BuiltinDirectionalShadow",
[](const CameraFramePlan& plan,
const DirectionalShadowSurfaceAllocation& shadowAllocation,
DirectionalShadowExecutionState& shadowState) {
ApplyDefaultRenderPipelineDirectionalShadowExecutionPolicy(
plan,
shadowAllocation,
shadowState);
return shadowState.shadowCasterRequest.IsValid() &&
shadowState.shadowData.IsValid();
});
GetBuiltinDirectionalShadowExecutionPolicyKeys().insert(
"BuiltinDirectionalShadow");
return true;
}();
(void)initialized;
}
std::unique_ptr<SceneDrawBackend> TryCreateSceneDrawBackendFromAsset(
const std::shared_ptr<const RenderPipelineAsset>& asset) {
if (asset == nullptr) {
@@ -221,266 +68,12 @@ std::shared_ptr<const RenderPipelineAsset> CreateFallbackRenderPipelineAsset() {
return std::make_shared<Pipelines::ScriptableRenderPipelineHostAsset>();
}
bool RegisterPipelineBackendAssetFactory(
const std::string& key,
PipelineBackendAssetFactory factory) {
if (key.empty() || !factory) {
return false;
}
EnsureBuiltinPipelineBackendAssetRegistryInitialized();
std::lock_guard<std::mutex> lock(
GetPipelineBackendAssetRegistryMutex());
PipelineBackendAssetRegistry& registry =
GetPipelineBackendAssetRegistry();
if (registry.find(key) != registry.end()) {
return false;
}
registry.emplace(key, std::move(factory));
return true;
}
bool UnregisterPipelineBackendAssetFactory(const std::string& key) {
if (key.empty()) {
return false;
}
EnsureBuiltinPipelineBackendAssetRegistryInitialized();
std::lock_guard<std::mutex> lock(
GetPipelineBackendAssetRegistryMutex());
if (GetBuiltinPipelineBackendAssetKeys().find(key) !=
GetBuiltinPipelineBackendAssetKeys().end()) {
return false;
}
PipelineBackendAssetRegistry& registry =
GetPipelineBackendAssetRegistry();
return registry.erase(key) != 0u;
}
std::shared_ptr<const RenderPipelineAsset> CreateDefaultPipelineBackendAsset() {
static const std::shared_ptr<const RenderPipelineAsset> s_defaultAsset =
CreateBuiltinForwardPipelineRendererAsset();
return s_defaultAsset;
}
std::shared_ptr<const RenderPipelineAsset> CreatePipelineBackendAssetByKey(
const std::string& key) {
if (key.empty()) {
return nullptr;
}
EnsureBuiltinPipelineBackendAssetRegistryInitialized();
std::lock_guard<std::mutex> lock(
GetPipelineBackendAssetRegistryMutex());
const PipelineBackendAssetRegistry& registry =
GetPipelineBackendAssetRegistry();
const auto it = registry.find(key);
if (it == registry.end() || !it->second) {
return nullptr;
}
return it->second();
}
bool RegisterCameraFrameStandalonePassFactory(
const std::string& key,
CameraFrameStandalonePassFactory factory) {
if (key.empty() || !factory) {
return false;
}
EnsureBuiltinCameraFrameStandalonePassRegistryInitialized();
std::lock_guard<std::mutex> lock(
GetCameraFrameStandalonePassRegistryMutex());
CameraFrameStandalonePassRegistry& registry =
GetCameraFrameStandalonePassRegistry();
if (registry.find(key) != registry.end()) {
return false;
}
registry.emplace(key, std::move(factory));
return true;
}
bool UnregisterCameraFrameStandalonePassFactory(
const std::string& key) {
if (key.empty()) {
return false;
}
EnsureBuiltinCameraFrameStandalonePassRegistryInitialized();
std::lock_guard<std::mutex> lock(
GetCameraFrameStandalonePassRegistryMutex());
if (GetBuiltinCameraFrameStandalonePassKeys().find(key) !=
GetBuiltinCameraFrameStandalonePassKeys().end()) {
return false;
}
CameraFrameStandalonePassRegistry& registry =
GetCameraFrameStandalonePassRegistry();
return registry.erase(key) != 0u;
}
std::unique_ptr<RenderPass> CreateCameraFrameStandalonePassByKey(
const std::string& key) {
if (key.empty()) {
return nullptr;
}
EnsureBuiltinCameraFrameStandalonePassRegistryInitialized();
std::lock_guard<std::mutex> lock(
GetCameraFrameStandalonePassRegistryMutex());
const CameraFrameStandalonePassRegistry& registry =
GetCameraFrameStandalonePassRegistry();
const auto it = registry.find(key);
if (it == registry.end() || !it->second) {
return nullptr;
}
return it->second();
}
bool RegisterCameraFramePlanPolicy(
const std::string& key,
CameraFramePlanPolicy policy) {
if (key.empty() || !policy) {
return false;
}
EnsureBuiltinCameraFramePlanPolicyRegistryInitialized();
std::lock_guard<std::mutex> lock(
GetCameraFramePlanPolicyRegistryMutex());
CameraFramePlanPolicyRegistry& registry =
GetCameraFramePlanPolicyRegistry();
if (registry.find(key) != registry.end()) {
return false;
}
registry.emplace(key, std::move(policy));
return true;
}
bool UnregisterCameraFramePlanPolicy(
const std::string& key) {
if (key.empty()) {
return false;
}
EnsureBuiltinCameraFramePlanPolicyRegistryInitialized();
std::lock_guard<std::mutex> lock(
GetCameraFramePlanPolicyRegistryMutex());
if (GetBuiltinCameraFramePlanPolicyKeys().find(key) !=
GetBuiltinCameraFramePlanPolicyKeys().end()) {
return false;
}
CameraFramePlanPolicyRegistry& registry =
GetCameraFramePlanPolicyRegistry();
return registry.erase(key) != 0u;
}
bool ApplyCameraFramePlanPolicyByKey(
const std::string& key,
CameraFramePlan& plan,
const FinalColorSettings& defaultFinalColorSettings) {
if (key.empty()) {
return false;
}
EnsureBuiltinCameraFramePlanPolicyRegistryInitialized();
std::lock_guard<std::mutex> lock(
GetCameraFramePlanPolicyRegistryMutex());
const CameraFramePlanPolicyRegistry& registry =
GetCameraFramePlanPolicyRegistry();
const auto it = registry.find(key);
if (it == registry.end() || !it->second) {
return false;
}
it->second(
plan,
defaultFinalColorSettings);
return true;
}
bool RegisterDirectionalShadowExecutionPolicy(
const std::string& key,
DirectionalShadowExecutionPolicy policy) {
if (key.empty() || !policy) {
return false;
}
EnsureBuiltinDirectionalShadowExecutionPolicyRegistryInitialized();
std::lock_guard<std::mutex> lock(
GetDirectionalShadowExecutionPolicyRegistryMutex());
DirectionalShadowExecutionPolicyRegistry& registry =
GetDirectionalShadowExecutionPolicyRegistry();
if (registry.find(key) != registry.end()) {
return false;
}
registry.emplace(key, std::move(policy));
return true;
}
bool UnregisterDirectionalShadowExecutionPolicy(
const std::string& key) {
if (key.empty()) {
return false;
}
EnsureBuiltinDirectionalShadowExecutionPolicyRegistryInitialized();
std::lock_guard<std::mutex> lock(
GetDirectionalShadowExecutionPolicyRegistryMutex());
if (GetBuiltinDirectionalShadowExecutionPolicyKeys().find(key) !=
GetBuiltinDirectionalShadowExecutionPolicyKeys().end()) {
return false;
}
DirectionalShadowExecutionPolicyRegistry& registry =
GetDirectionalShadowExecutionPolicyRegistry();
return registry.erase(key) != 0u;
}
bool ConfigureDirectionalShadowExecutionStateByKey(
const std::string& key,
const CameraFramePlan& plan,
const DirectionalShadowSurfaceAllocation& shadowAllocation,
DirectionalShadowExecutionState& shadowState) {
if (key.empty()) {
return false;
}
EnsureBuiltinDirectionalShadowExecutionPolicyRegistryInitialized();
std::lock_guard<std::mutex> lock(
GetDirectionalShadowExecutionPolicyRegistryMutex());
const DirectionalShadowExecutionPolicyRegistry& registry =
GetDirectionalShadowExecutionPolicyRegistry();
const auto it = registry.find(key);
if (it == registry.end() || !it->second) {
return false;
}
return it->second(
plan,
shadowAllocation,
shadowState);
}
std::shared_ptr<const RenderPipelineAsset> ResolveRenderPipelineAssetOrDefault(
std::shared_ptr<const RenderPipelineAsset> preferredAsset) {
if (preferredAsset != nullptr) {