Add extra observer hooks for interesting internal processes (#2694)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
@@ -68,6 +68,24 @@ Renderer::Impl::~Impl() {
|
||||
assert(gfx::BackendScope::exists());
|
||||
};
|
||||
|
||||
void Renderer::Impl::onPreCompileShader(shaders::BuiltIn shaderID,
|
||||
gfx::Backend::Type type,
|
||||
const std::string& additionalDefines) {
|
||||
observer->onPreCompileShader(shaderID, type, additionalDefines);
|
||||
}
|
||||
|
||||
void Renderer::Impl::onPostCompileShader(shaders::BuiltIn shaderID,
|
||||
gfx::Backend::Type type,
|
||||
const std::string& additionalDefines) {
|
||||
observer->onPostCompileShader(shaderID, type, additionalDefines);
|
||||
}
|
||||
|
||||
void Renderer::Impl::onShaderCompileFailed(shaders::BuiltIn shaderID,
|
||||
gfx::Backend::Type type,
|
||||
const std::string& additionalDefines) {
|
||||
observer->onShaderCompileFailed(shaderID, type, additionalDefines);
|
||||
}
|
||||
|
||||
void Renderer::Impl::setObserver(RendererObserver* observer_) {
|
||||
observer = observer_ ? observer_ : &nullObserver();
|
||||
}
|
||||
@@ -76,6 +94,8 @@ void Renderer::Impl::render(const RenderTree& renderTree,
|
||||
[[maybe_unused]] const std::shared_ptr<UpdateParameters>& updateParameters) {
|
||||
MLN_TRACE_FUNC();
|
||||
auto& context = backend.getContext();
|
||||
context.setObserver(this);
|
||||
|
||||
#if MLN_RENDER_BACKEND_METAL
|
||||
if constexpr (EnableMetalCapture) {
|
||||
const auto& mtlBackend = static_cast<mtl::RendererBackend&>(backend);
|
||||
|
||||
Reference in New Issue
Block a user