Configure default project render pipeline asset
This commit is contained in:
@@ -62,6 +62,10 @@ namespace Scripting {
|
||||
namespace {
|
||||
|
||||
constexpr const char* kManagedRenderingNamespace = "XCEngine.Rendering";
|
||||
constexpr const char* kProjectDefaultRenderPipelineAssetNamespace =
|
||||
"ProjectScripts";
|
||||
constexpr const char* kProjectDefaultRenderPipelineAssetClassName =
|
||||
"ProjectDefaultRenderPipelineAsset";
|
||||
|
||||
struct MonoRootState {
|
||||
MonoDomain* rootDomain = nullptr;
|
||||
@@ -6819,6 +6823,41 @@ 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)) {
|
||||
@@ -6942,6 +6981,7 @@ 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