Align builtin and programmable render pipeline selection
This commit is contained in:
@@ -62,10 +62,6 @@ namespace Scripting {
|
||||
namespace {
|
||||
|
||||
constexpr const char* kManagedRenderingNamespace = "XCEngine.Rendering";
|
||||
constexpr const char* kProjectDefaultRenderPipelineAssetNamespace =
|
||||
"ProjectScripts";
|
||||
constexpr const char* kProjectDefaultRenderPipelineAssetClassName =
|
||||
"ProjectDefaultRenderPipelineAsset";
|
||||
|
||||
struct MonoRootState {
|
||||
MonoDomain* rootDomain = nullptr;
|
||||
@@ -5617,34 +5613,6 @@ InternalCall_Rendering_ScriptableRenderContext_RecordSceneInjectionPoint(
|
||||
: 0;
|
||||
}
|
||||
|
||||
mono_bool
|
||||
InternalCall_Rendering_ScriptableRenderContext_RecordNativeSceneFeaturePass(
|
||||
uint64_t nativeHandle,
|
||||
int32_t featurePassId) {
|
||||
ManagedScriptableRenderContextState* const state =
|
||||
FindManagedScriptableRenderContextState(nativeHandle);
|
||||
if (state == nullptr ||
|
||||
state->graphContext == nullptr ||
|
||||
state->sceneRecorder == nullptr ||
|
||||
state->stage != Rendering::CameraFrameStage::MainScene) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
const Rendering::NativeSceneFeaturePassId
|
||||
resolvedFeaturePassId =
|
||||
static_cast<Rendering::NativeSceneFeaturePassId>(
|
||||
featurePassId);
|
||||
if (resolvedFeaturePassId ==
|
||||
Rendering::NativeSceneFeaturePassId::Invalid) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return state->sceneRecorder->RecordFeaturePass(
|
||||
resolvedFeaturePassId)
|
||||
? 1
|
||||
: 0;
|
||||
}
|
||||
|
||||
mono_bool
|
||||
InternalCall_Rendering_ScriptableRenderContext_DrawRenderersByDesc(
|
||||
uint64_t nativeHandle,
|
||||
@@ -6609,7 +6577,6 @@ void RegisterInternalCalls() {
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderContext_RecordScenePhase", reinterpret_cast<const void*>(&InternalCall_Rendering_ScriptableRenderContext_RecordScenePhase));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderContext_DrawRenderersByDesc", reinterpret_cast<const void*>(&InternalCall_Rendering_ScriptableRenderContext_DrawRenderersByDesc));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderContext_RecordSceneInjectionPoint", reinterpret_cast<const void*>(&InternalCall_Rendering_ScriptableRenderContext_RecordSceneInjectionPoint));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderContext_RecordNativeSceneFeaturePass", reinterpret_cast<const void*>(&InternalCall_Rendering_ScriptableRenderContext_RecordNativeSceneFeaturePass));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderPipelinePlanningContext_GetRendererIndex", reinterpret_cast<const void*>(&InternalCall_Rendering_ScriptableRenderPipelinePlanningContext_GetRendererIndex));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderPipelinePlanningContext_IsStageRequested", reinterpret_cast<const void*>(&InternalCall_Rendering_ScriptableRenderPipelinePlanningContext_IsStageRequested));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderPipelinePlanningContext_GetStageColorSource", reinterpret_cast<const void*>(&InternalCall_Rendering_ScriptableRenderPipelinePlanningContext_GetStageColorSource));
|
||||
@@ -6823,41 +6790,6 @@ bool MonoScriptRuntime::TryGetAvailableRenderPipelineAssetClasses(
|
||||
return true;
|
||||
}
|
||||
|
||||
bool MonoScriptRuntime::TryConfigureDefaultProjectRenderPipelineAsset() {
|
||||
if (!m_initialized) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Rendering::GraphicsSettingsState& graphicsSettings =
|
||||
Rendering::GetGraphicsSettingsState();
|
||||
if (graphicsSettings
|
||||
.GetConfiguredRenderPipelineAssetDescriptor()
|
||||
.IsValid()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const ScriptClassDescriptor defaultAssetClass = {
|
||||
m_settings.appAssemblyName,
|
||||
kProjectDefaultRenderPipelineAssetNamespace,
|
||||
kProjectDefaultRenderPipelineAssetClassName
|
||||
};
|
||||
const auto defaultAssetIt = std::find(
|
||||
m_renderPipelineAssetClasses.begin(),
|
||||
m_renderPipelineAssetClasses.end(),
|
||||
defaultAssetClass);
|
||||
if (defaultAssetIt == m_renderPipelineAssetClasses.end()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
graphicsSettings.SetConfiguredRenderPipelineAssetDescriptor(
|
||||
Rendering::Pipelines::ManagedRenderPipelineAssetDescriptor{
|
||||
defaultAssetIt->assemblyName,
|
||||
defaultAssetIt->namespaceName,
|
||||
defaultAssetIt->className,
|
||||
0u});
|
||||
return true;
|
||||
}
|
||||
|
||||
std::vector<std::string> MonoScriptRuntime::GetScriptClassNames(const std::string& assemblyName) const {
|
||||
std::vector<ScriptClassDescriptor> classes;
|
||||
if (!TryGetAvailableScriptClasses(classes)) {
|
||||
@@ -6981,7 +6913,6 @@ void MonoScriptRuntime::OnRuntimeStart(Components::Scene* scene) {
|
||||
m_activeScene = nullptr;
|
||||
GetInternalCallDeltaTime() = 0.0f;
|
||||
if (Initialize()) {
|
||||
TryConfigureDefaultProjectRenderPipelineAsset();
|
||||
m_activeScene = scene;
|
||||
GetInternalCallScene() = scene;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user