refactor(srp): rename camera request context surface

This commit is contained in:
2026-04-19 15:20:34 +08:00
parent 8edc68f02b
commit 237a628e2a
14 changed files with 114 additions and 114 deletions

View File

@@ -104,7 +104,7 @@ struct ManagedScriptableRenderContextState {
std::vector<Rendering::FullscreenPassDesc> queuedFullscreenPasses = {};
};
struct ManagedScriptableRenderPipelineCameraRequestContextState {
struct ManagedCameraRenderRequestContextState {
uint64_t handle = 0;
Rendering::CameraRenderRequest* request = nullptr;
size_t renderedBaseCameraCount = 0u;
@@ -228,50 +228,50 @@ ResolveManagedScriptableRenderContextDirectionalShadowPlan(
return kDefaultDirectionalShadowPlan;
}
uint64_t& GetManagedScriptableRenderPipelineCameraRequestContextNextHandle() {
uint64_t& GetManagedCameraRenderRequestContextNextHandle() {
static uint64_t nextHandle = 1;
return nextHandle;
}
std::unordered_map<uint64_t, ManagedScriptableRenderPipelineCameraRequestContextState*>&
GetManagedScriptableRenderPipelineCameraRequestContextRegistry() {
static std::unordered_map<uint64_t, ManagedScriptableRenderPipelineCameraRequestContextState*>
std::unordered_map<uint64_t, ManagedCameraRenderRequestContextState*>&
GetManagedCameraRenderRequestContextRegistry() {
static std::unordered_map<uint64_t, ManagedCameraRenderRequestContextState*>
registry;
return registry;
}
ManagedScriptableRenderPipelineCameraRequestContextState*
FindManagedScriptableRenderPipelineCameraRequestContextState(
ManagedCameraRenderRequestContextState*
FindManagedCameraRenderRequestContextState(
uint64_t handle) {
const auto it =
GetManagedScriptableRenderPipelineCameraRequestContextRegistry().find(handle);
return it != GetManagedScriptableRenderPipelineCameraRequestContextRegistry().end()
GetManagedCameraRenderRequestContextRegistry().find(handle);
return it != GetManagedCameraRenderRequestContextRegistry().end()
? it->second
: nullptr;
}
uint64_t RegisterManagedScriptableRenderPipelineCameraRequestContextState(
ManagedScriptableRenderPipelineCameraRequestContextState& state) {
uint64_t RegisterManagedCameraRenderRequestContextState(
ManagedCameraRenderRequestContextState& state) {
uint64_t handle =
GetManagedScriptableRenderPipelineCameraRequestContextNextHandle()++;
GetManagedCameraRenderRequestContextNextHandle()++;
if (handle == 0) {
handle =
GetManagedScriptableRenderPipelineCameraRequestContextNextHandle()++;
GetManagedCameraRenderRequestContextNextHandle()++;
}
state.handle = handle;
GetManagedScriptableRenderPipelineCameraRequestContextRegistry()[handle] =
GetManagedCameraRenderRequestContextRegistry()[handle] =
&state;
return handle;
}
void UnregisterManagedScriptableRenderPipelineCameraRequestContextState(
void UnregisterManagedCameraRenderRequestContextState(
uint64_t handle) {
if (handle == 0) {
return;
}
GetManagedScriptableRenderPipelineCameraRequestContextRegistry().erase(handle);
GetManagedCameraRenderRequestContextRegistry().erase(handle);
}
void CleanupMonoRootDomainAtExit() {
@@ -1000,19 +1000,19 @@ void MonoManagedRenderPipelineAssetRuntime::ConfigureCameraRenderRequest(
return;
}
ManagedScriptableRenderPipelineCameraRequestContextState requestContextState =
ManagedCameraRenderRequestContextState requestContextState =
{};
requestContextState.request = &request;
requestContextState.renderedBaseCameraCount = renderedBaseCameraCount;
requestContextState.renderedRequestCount = renderedRequestCount;
const uint64_t requestContextHandle =
RegisterManagedScriptableRenderPipelineCameraRequestContextState(
RegisterManagedCameraRenderRequestContextState(
requestContextState);
MonoObject* const requestContextObject =
m_runtime->CreateManagedScriptableRenderPipelineCameraRequestContext(
m_runtime->CreateManagedCameraRenderRequestContext(
requestContextHandle);
if (requestContextObject == nullptr) {
UnregisterManagedScriptableRenderPipelineCameraRequestContextState(
UnregisterManagedCameraRenderRequestContextState(
requestContextHandle);
return;
}
@@ -1023,7 +1023,7 @@ void MonoManagedRenderPipelineAssetRuntime::ConfigureCameraRenderRequest(
method,
args,
nullptr);
UnregisterManagedScriptableRenderPipelineCameraRequestContextState(
UnregisterManagedCameraRenderRequestContextState(
requestContextHandle);
}
@@ -3599,30 +3599,30 @@ InternalCall_Rendering_ScriptableRenderContext_RecordFullscreenPass(
}
int32_t
InternalCall_Rendering_ScriptableRenderPipelineCameraRequestContext_GetRenderedBaseCameraCount(
InternalCall_Rendering_CameraRenderRequestContext_GetRenderedBaseCameraCount(
uint64_t nativeHandle) {
const ManagedScriptableRenderPipelineCameraRequestContextState* const state =
FindManagedScriptableRenderPipelineCameraRequestContextState(nativeHandle);
const ManagedCameraRenderRequestContextState* const state =
FindManagedCameraRenderRequestContextState(nativeHandle);
return state != nullptr
? static_cast<int32_t>(state->renderedBaseCameraCount)
: 0;
}
int32_t
InternalCall_Rendering_ScriptableRenderPipelineCameraRequestContext_GetRenderedRequestCount(
InternalCall_Rendering_CameraRenderRequestContext_GetRenderedRequestCount(
uint64_t nativeHandle) {
const ManagedScriptableRenderPipelineCameraRequestContextState* const state =
FindManagedScriptableRenderPipelineCameraRequestContextState(nativeHandle);
const ManagedCameraRenderRequestContextState* const state =
FindManagedCameraRenderRequestContextState(nativeHandle);
return state != nullptr
? static_cast<int32_t>(state->renderedRequestCount)
: 0;
}
mono_bool
InternalCall_Rendering_ScriptableRenderPipelineCameraRequestContext_GetHasDirectionalShadow(
InternalCall_Rendering_CameraRenderRequestContext_GetHasDirectionalShadow(
uint64_t nativeHandle) {
const ManagedScriptableRenderPipelineCameraRequestContextState* const state =
FindManagedScriptableRenderPipelineCameraRequestContextState(nativeHandle);
const ManagedCameraRenderRequestContextState* const state =
FindManagedCameraRenderRequestContextState(nativeHandle);
return state != nullptr &&
state->request != nullptr &&
state->request->directionalShadow.IsValid()
@@ -3630,10 +3630,10 @@ InternalCall_Rendering_ScriptableRenderPipelineCameraRequestContext_GetHasDirect
: 0;
}
void InternalCall_Rendering_ScriptableRenderPipelineCameraRequestContext_ClearDirectionalShadow(
void InternalCall_Rendering_CameraRenderRequestContext_ClearDirectionalShadow(
uint64_t nativeHandle) {
ManagedScriptableRenderPipelineCameraRequestContextState* const state =
FindManagedScriptableRenderPipelineCameraRequestContextState(nativeHandle);
ManagedCameraRenderRequestContextState* const state =
FindManagedCameraRenderRequestContextState(nativeHandle);
if (state == nullptr || state->request == nullptr) {
return;
}
@@ -3824,10 +3824,10 @@ 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_RecordSceneInjectionPoint", reinterpret_cast<const void*>(&InternalCall_Rendering_ScriptableRenderContext_RecordSceneInjectionPoint));
mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderContext_RecordFullscreenPass", reinterpret_cast<const void*>(&InternalCall_Rendering_ScriptableRenderContext_RecordFullscreenPass));
mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderPipelineCameraRequestContext_GetRenderedBaseCameraCount", reinterpret_cast<const void*>(&InternalCall_Rendering_ScriptableRenderPipelineCameraRequestContext_GetRenderedBaseCameraCount));
mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderPipelineCameraRequestContext_GetRenderedRequestCount", reinterpret_cast<const void*>(&InternalCall_Rendering_ScriptableRenderPipelineCameraRequestContext_GetRenderedRequestCount));
mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderPipelineCameraRequestContext_GetHasDirectionalShadow", reinterpret_cast<const void*>(&InternalCall_Rendering_ScriptableRenderPipelineCameraRequestContext_GetHasDirectionalShadow));
mono_add_internal_call("XCEngine.InternalCalls::Rendering_ScriptableRenderPipelineCameraRequestContext_ClearDirectionalShadow", reinterpret_cast<const void*>(&InternalCall_Rendering_ScriptableRenderPipelineCameraRequestContext_ClearDirectionalShadow));
mono_add_internal_call("XCEngine.InternalCalls::Rendering_CameraRenderRequestContext_GetRenderedBaseCameraCount", reinterpret_cast<const void*>(&InternalCall_Rendering_CameraRenderRequestContext_GetRenderedBaseCameraCount));
mono_add_internal_call("XCEngine.InternalCalls::Rendering_CameraRenderRequestContext_GetRenderedRequestCount", reinterpret_cast<const void*>(&InternalCall_Rendering_CameraRenderRequestContext_GetRenderedRequestCount));
mono_add_internal_call("XCEngine.InternalCalls::Rendering_CameraRenderRequestContext_GetHasDirectionalShadow", reinterpret_cast<const void*>(&InternalCall_Rendering_CameraRenderRequestContext_GetHasDirectionalShadow));
mono_add_internal_call("XCEngine.InternalCalls::Rendering_CameraRenderRequestContext_ClearDirectionalShadow", reinterpret_cast<const void*>(&InternalCall_Rendering_CameraRenderRequestContext_ClearDirectionalShadow));
GetInternalCallRegistrationState() = true;
}
@@ -3885,8 +3885,8 @@ void MonoScriptRuntime::Shutdown() {
ClearManagedRenderPipelineSelection(this);
GetManagedScriptableRenderContextRegistry().clear();
GetManagedScriptableRenderContextNextHandle() = 1;
GetManagedScriptableRenderPipelineCameraRequestContextRegistry().clear();
GetManagedScriptableRenderPipelineCameraRequestContextNextHandle() = 1;
GetManagedCameraRenderRequestContextRegistry().clear();
GetManagedCameraRenderRequestContextNextHandle() = 1;
ClearManagedInstances();
ClearExternalManagedObjects();
ClearClassCache();
@@ -3903,11 +3903,11 @@ void MonoScriptRuntime::Shutdown() {
m_scriptableRenderPipelineAssetClass = nullptr;
m_scriptableRenderPipelineClass = nullptr;
m_scriptableRenderContextClass = nullptr;
m_scriptableRenderPipelineCameraRequestContextClass = nullptr;
m_cameraRenderRequestContextClass = nullptr;
m_serializeFieldAttributeClass = nullptr;
m_gameObjectConstructor = nullptr;
m_scriptableRenderContextConstructor = nullptr;
m_scriptableRenderPipelineCameraRequestContextConstructor = nullptr;
m_cameraRenderRequestContextConstructor = nullptr;
m_managedGameObjectUUIDField = nullptr;
m_gameObjectUUIDField = nullptr;
m_scriptComponentUUIDField = nullptr;
@@ -4680,24 +4680,24 @@ bool MonoScriptRuntime::DiscoverScriptClasses() {
return false;
}
m_scriptableRenderPipelineCameraRequestContextClass = mono_class_from_name(
m_cameraRenderRequestContextClass = mono_class_from_name(
m_coreImage,
kManagedRenderingNamespace,
"ScriptableRenderPipelineCameraRequestContext");
if (!m_scriptableRenderPipelineCameraRequestContextClass) {
"CameraRenderRequestContext");
if (!m_cameraRenderRequestContextClass) {
SetError(
"Failed to locate the managed ScriptableRenderPipelineCameraRequestContext type.");
"Failed to locate the managed CameraRenderRequestContext type.");
return false;
}
m_scriptableRenderPipelineCameraRequestContextConstructor =
m_cameraRenderRequestContextConstructor =
mono_class_get_method_from_name(
m_scriptableRenderPipelineCameraRequestContextClass,
m_cameraRenderRequestContextClass,
".ctor",
1);
if (!m_scriptableRenderPipelineCameraRequestContextConstructor) {
if (!m_cameraRenderRequestContextConstructor) {
SetError(
"Failed to locate the managed ScriptableRenderPipelineCameraRequestContext constructor.");
"Failed to locate the managed CameraRenderRequestContext constructor.");
return false;
}
@@ -5257,12 +5257,12 @@ MonoObject* MonoScriptRuntime::CreateManagedScriptableRenderContext(
}
MonoObject*
MonoScriptRuntime::CreateManagedScriptableRenderPipelineCameraRequestContext(
MonoScriptRuntime::CreateManagedCameraRenderRequestContext(
uint64_t nativeHandle) {
if (!m_initialized ||
nativeHandle == 0 ||
m_scriptableRenderPipelineCameraRequestContextClass == nullptr ||
m_scriptableRenderPipelineCameraRequestContextConstructor == nullptr) {
m_cameraRenderRequestContextClass == nullptr ||
m_cameraRenderRequestContextConstructor == nullptr) {
return nullptr;
}
@@ -5271,10 +5271,10 @@ MonoScriptRuntime::CreateManagedScriptableRenderPipelineCameraRequestContext(
MonoObject* const contextObject =
mono_object_new(
m_appDomain,
m_scriptableRenderPipelineCameraRequestContextClass);
m_cameraRenderRequestContextClass);
if (contextObject == nullptr) {
SetError(
"Mono failed to allocate a managed ScriptableRenderPipelineCameraRequestContext.");
"Mono failed to allocate a managed CameraRenderRequestContext.");
return nullptr;
}
@@ -5284,7 +5284,7 @@ MonoScriptRuntime::CreateManagedScriptableRenderPipelineCameraRequestContext(
MonoObject* exception = nullptr;
mono_runtime_invoke(
m_scriptableRenderPipelineCameraRequestContextConstructor,
m_cameraRenderRequestContextConstructor,
contextObject,
args,
&exception);