From febb6442aad02a34729cfe36e5169ff5840657ea Mon Sep 17 00:00:00 2001 From: zengyueyang Date: Tue, 22 Jul 2025 22:50:00 +0800 Subject: [PATCH] multiprocess management framework Signed-off-by: zengyueyang --- .../src/platform/ohos/BUILD.gn | 3 + .../rs_render_compose_connection_proxy.cpp | 70 ++++ .../ohos/rs_render_compose_connection_proxy.h | 38 ++ .../ohos/rs_render_connection_proxy.h | 36 ++ .../rs_render_process_connection_proxy.cpp | 24 ++ .../ohos/rs_render_process_connection_proxy.h | 36 ++ .../rs_render_render_connection_proxy.cpp | 24 ++ .../ohos/rs_render_service_client.cpp | 340 +++++++++--------- .../ohos/rs_render_service_connect_hub.cpp | 17 +- .../ohos/rs_render_service_connect_hub.h | 4 +- .../platform/ohos/rs_render_service_proxy.cpp | 14 +- .../platform/ohos/rs_render_service_proxy.h | 3 +- 12 files changed, 425 insertions(+), 184 deletions(-) create mode 100644 rosen/modules/render_service_base/src/platform/ohos/rs_render_compose_connection_proxy.cpp create mode 100644 rosen/modules/render_service_base/src/platform/ohos/rs_render_compose_connection_proxy.h create mode 100644 rosen/modules/render_service_base/src/platform/ohos/rs_render_connection_proxy.h create mode 100644 rosen/modules/render_service_base/src/platform/ohos/rs_render_process_connection_proxy.cpp create mode 100644 rosen/modules/render_service_base/src/platform/ohos/rs_render_process_connection_proxy.h create mode 100644 rosen/modules/render_service_base/src/platform/ohos/rs_render_render_connection_proxy.cpp diff --git a/rosen/modules/render_service_base/src/platform/ohos/BUILD.gn b/rosen/modules/render_service_base/src/platform/ohos/BUILD.gn index cfce323d5c..2531e3ae85 100644 --- a/rosen/modules/render_service_base/src/platform/ohos/BUILD.gn +++ b/rosen/modules/render_service_base/src/platform/ohos/BUILD.gn @@ -65,6 +65,9 @@ ohos_source_set("rosen_ohos_sources") { "rs_surface_ohos_converter.cpp", "rs_system_properties.cpp", "rs_vsync_client_ohos.cpp", + "rs_render_process_connection_proxy.cpp", + "rs_render_compose_connection_proxy.cpp", + "rs_render_render_connection_proxy.cpp", ] if (accessibility_enable) { diff --git a/rosen/modules/render_service_base/src/platform/ohos/rs_render_compose_connection_proxy.cpp b/rosen/modules/render_service_base/src/platform/ohos/rs_render_compose_connection_proxy.cpp new file mode 100644 index 0000000000..3bc8c1e596 --- /dev/null +++ b/rosen/modules/render_service_base/src/platform/ohos/rs_render_compose_connection_proxy.cpp @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "rs_render_compose_connection_proxy.h" + +#include +#include +#include +#include +#include +#include "platform/common/rs_log.h" +#include "platform/common/rs_system_properties.h" +#include "transaction/rs_ashmem_helper.h" +#include "transaction/rs_marshalling_helper.h" +#include "rs_trace.h" + +namespace OHOS { +namespace Rosen { +RSRenderComposeConnectionProxy::RSRenderComposeConnectionProxy(const sptr& impl) : + IRemoteProxy(impl) {} + +sptr RSRenderComposeConnectionProxy::CreateVSyncConnection(const sptr& token) +{ + if (token == nullptr) { + ROSEN_LOGE("RSRenderComposeConnectionProxy::CreateVSyncConnection(): token is null."); + return nullptr; + } + + MessageParcel data; + MessageParcel reply; + MessageParcel option; + option.SetFlags(MessageOption::TF_SYNC); + if (!data.WriteInterfaceToken(IVSyncConnection::GetDescriptor())) { + ROSEN_LOGE("RSRenderComposeConnectionProxy::CreateVSyncConnection(): WriteInterfaceToken failed."); + return nullptr; + } + if (!data.WriteRemoteObject(token->AsObject())) { + ROSEN_LOGE("RSRenderComposeConnectionProxy::CreateVSyncConnection(): WriteRemoteObject failed."); + return nullptr; + } + + uint32_t code = static_cast(RSIRenderComposeConnectionInterfaceCode::CREATE_VSYNC_CONNECTION); + int32_t err = Remote()->SendRequest(code, data, reply, option); + if (err != NO_ERROR) { + ROSEN_LOGE("RSRenderComposeConnectionProxy::CreateVSyncConnection(): SendRequest failed, err is %{public}d.", err); + return nullptr; + } + + auto remoteObj = reply.ReadRemoteObject(); + if (remoteObj == nullptr || !remoteObj->IsProxyObject()) { + ROSEN_LOGE("RSRenderComposeConnectionProxy::CreateVSyncConnection(): Reply is not valid."); + return nullptr; + } + + return iface_cast(remoteObj); +} +} // namespace Rosen +} // namespace OHOS \ No newline at end of file diff --git a/rosen/modules/render_service_base/src/platform/ohos/rs_render_compose_connection_proxy.h b/rosen/modules/render_service_base/src/platform/ohos/rs_render_compose_connection_proxy.h new file mode 100644 index 0000000000..cff0f46dd3 --- /dev/null +++ b/rosen/modules/render_service_base/src/platform/ohos/rs_render_compose_connection_proxy.h @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef ROSEN_RENDER_SERVICE_BASE_TRANSACTION_RS_RENDER_COMPOSE_CONNECTION_PROXY_H +#define ROSEN_RENDER_SERVICE_BASE_TRANSACTION_RS_RENDER_COMPOSE_CONNECTION_PROXY_H + +#include "command/rs_node_showing_command.h" +#include +#include +#include +#include + +namespace OHOS { +namespace Rosen { +class RSRenderComposeConnectionProxy : public IRemoteProxy { +public: + explicit RSRenderComposeConnectionProxy(const sptr& impl); + virtual ~RSRenderComposeConnectionProxy() noexcept = default; + + sptr CreateVSyncConnection(const sptr& token) override; +}; + +} // namespace Rosen +} // namespace OHOS + +#endif // ROSEN_RENDER_SERVICE_BASE_TRANSACTION_RS_RENDER_COMPOSE_CONNECTION_PROXY_H \ No newline at end of file diff --git a/rosen/modules/render_service_base/src/platform/ohos/rs_render_connection_proxy.h b/rosen/modules/render_service_base/src/platform/ohos/rs_render_connection_proxy.h new file mode 100644 index 0000000000..0e002291fa --- /dev/null +++ b/rosen/modules/render_service_base/src/platform/ohos/rs_render_connection_proxy.h @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef ROSEN_RENDER_SERVICE_BASE_TRANSACTION_RS_RENDER_RENDER_CONNECTION_PROXY_H +#define ROSEN_RENDER_SERVICE_BASE_TRANSACTION_RS_RENDER_RENDER_CONNECTION_PROXY_H + +#include "command/rs_node_showing_command.h" +#include +#include +#include +#include + +namespace OHOS { +namespace Rosen { +class RSRenderRenderConnectionProxy : public IRemoteProxy { +public: + explicit RSRenderRenderConnectionProxy(const sptr& impl); + virtual ~RSRenderRenderConnectionProxy() noexcept = default; +}; + +} // namespace Rosen +} // namespace OHOS + +#endif // ROSEN_RENDER_SERVICE_BASE_TRANSACTION_RS_RENDER_RENDER_CONNECTION_PROXY_H \ No newline at end of file diff --git a/rosen/modules/render_service_base/src/platform/ohos/rs_render_process_connection_proxy.cpp b/rosen/modules/render_service_base/src/platform/ohos/rs_render_process_connection_proxy.cpp new file mode 100644 index 0000000000..21a7e5630c --- /dev/null +++ b/rosen/modules/render_service_base/src/platform/ohos/rs_render_process_connection_proxy.cpp @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "rs_render_process_connection_proxy.h" + +namespace OHOS { +namespace Rosen { +RSRenderProcessConnectionProxy::RSRenderProcessConnectionProxy(const sptr& impl) : + IRemoteProxy(impl) {} + +} // namespace Rosen +} // namespace OHOS \ No newline at end of file diff --git a/rosen/modules/render_service_base/src/platform/ohos/rs_render_process_connection_proxy.h b/rosen/modules/render_service_base/src/platform/ohos/rs_render_process_connection_proxy.h new file mode 100644 index 0000000000..050819bd98 --- /dev/null +++ b/rosen/modules/render_service_base/src/platform/ohos/rs_render_process_connection_proxy.h @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef ROSEN_RENDER_SERVICE_BASE_TRANSACTION_RS_RENDER_PROCESS_CONNECTION_PROXY_H +#define ROSEN_RENDER_SERVICE_BASE_TRANSACTION_RS_RENDER_PROCESS_CONNECTION_PROXY_H + +#include +#include +#include + +namespace OHOS { +namespace Rosen { +class RSRenderProcessConnectionProxy : public IRemoteProxy { +public: + explicit RSRenderProcessConnectionProxy(const sptr& impl); + virtual ~RSRenderProcessConnectionProxy() noexcept = default; + + sptr CreateRenderConnection(const sptr& token, pid_t remotePid) override { return nullptr; } +}; + +} // namespace Rosen +} // namespace OHOS + +#endif // ROSEN_RENDER_SERVICE_BASE_TRANSACTION_RS_RENDER_PROCESS_CONNECTION_PROXY_H \ No newline at end of file diff --git a/rosen/modules/render_service_base/src/platform/ohos/rs_render_render_connection_proxy.cpp b/rosen/modules/render_service_base/src/platform/ohos/rs_render_render_connection_proxy.cpp new file mode 100644 index 0000000000..b4dcf70038 --- /dev/null +++ b/rosen/modules/render_service_base/src/platform/ohos/rs_render_render_connection_proxy.cpp @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "rs_render_render_connection_proxy.h" + +namespace OHOS { +namespace Rosen { +RSRenderRenderConnectionProxy::RSRenderRenderConnectionProxy(const sptr& impl) : + IRemoteProxy(impl) {} + +} // namespace Rosen +} // namespace OHOS \ No newline at end of file diff --git a/rosen/modules/render_service_base/src/platform/ohos/rs_render_service_client.cpp b/rosen/modules/render_service_base/src/platform/ohos/rs_render_service_client.cpp index b85c726723..787f81dec7 100644 --- a/rosen/modules/render_service_base/src/platform/ohos/rs_render_service_client.cpp +++ b/rosen/modules/render_service_base/src/platform/ohos/rs_render_service_client.cpp @@ -64,7 +64,7 @@ std::shared_ptr RSIRenderClient::CreateRenderServiceClient() void RSRenderServiceClient::CommitTransaction(std::unique_ptr& transactionData) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { renderService->CommitTransaction(transactionData); } else { @@ -78,7 +78,7 @@ void RSRenderServiceClient::ExecuteSynchronousTask(const std::shared_ptrExecuteSynchronousTask(task); } @@ -86,7 +86,7 @@ void RSRenderServiceClient::ExecuteSynchronousTask(const std::shared_ptr RSRenderServiceClient::GetMemoryGraphics() { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return {}; } @@ -118,7 +118,7 @@ std::vector RSRenderServiceClient::GetMemoryGraphics() bool RSRenderServiceClient::GetTotalAppMemSize(float& cpuMemSize, float& gpuMemSize) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return false; } @@ -127,7 +127,7 @@ bool RSRenderServiceClient::GetTotalAppMemSize(float& cpuMemSize, float& gpuMemS bool RSRenderServiceClient::CreateNode(const RSDisplayNodeConfig& displayNodeConfig, NodeId nodeId) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return false; } @@ -138,7 +138,7 @@ bool RSRenderServiceClient::CreateNode(const RSDisplayNodeConfig& displayNodeCon bool RSRenderServiceClient::CreateNode(const RSSurfaceRenderNodeConfig& config) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return false; } @@ -150,7 +150,7 @@ bool RSRenderServiceClient::CreateNode(const RSSurfaceRenderNodeConfig& config) std::shared_ptr RSRenderServiceClient::CreateNodeAndSurface(const RSSurfaceRenderNodeConfig& config, bool unobscured) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return nullptr; } @@ -195,7 +195,7 @@ std::shared_ptr RSRenderServiceClient::CreateVSyncReceiver( bool fromXcomponent) { ROSEN_LOGD("RSRenderServiceClient::CreateVSyncReceiver Start"); - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return nullptr; } @@ -212,7 +212,7 @@ std::shared_ptr RSRenderServiceClient::CreateVSyncReceiver( int32_t RSRenderServiceClient::GetPixelMapByProcessId(std::vector& pixelMapInfoVector, pid_t pid) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return RENDER_SERVICE_NULL; } @@ -224,7 +224,7 @@ int32_t RSRenderServiceClient::GetPixelMapByProcessId(std::vector& std::shared_ptr RSRenderServiceClient::CreatePixelMapFromSurfaceId(uint64_t surfaceId, const Rect &srcRect) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return nullptr; } @@ -307,7 +307,7 @@ bool RSRenderServiceClient::TakeSurfaceCapture(NodeId id, std::shared_ptr>> RSRenderServiceClient::TakeSurfaceCaptureSoloNode( NodeId id, const RSSurfaceCaptureConfig& captureConfig) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); std::vector>> pixelMapIdPairVector; if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::TakeSurfaceCaptureSoloNode renderService == nullptr!"); @@ -351,7 +351,7 @@ std::vector>> RSRenderService bool RSRenderServiceClient::TakeSelfSurfaceCapture(NodeId id, std::shared_ptr callback, const RSSurfaceCaptureConfig& captureConfig) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::TakeSelfSurfaceCapture renderService == nullptr!"); return false; @@ -383,7 +383,7 @@ bool RSRenderServiceClient::SetWindowFreezeImmediately(NodeId id, bool isFreeze, std::shared_ptr callback, const RSSurfaceCaptureConfig& captureConfig, const RSSurfaceCaptureBlurParam& blurParam) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::SetWindowFreezeImmediately renderService == nullptr!"); return false; @@ -418,7 +418,7 @@ bool RSRenderServiceClient::SetWindowFreezeImmediately(NodeId id, bool isFreeze, bool RSRenderServiceClient::TakeUICaptureInRange( NodeId id, std::shared_ptr callback, const RSSurfaceCaptureConfig& captureConfig) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::TakeUICaptureInRange renderService == nullptr!"); return false; @@ -450,7 +450,7 @@ bool RSRenderServiceClient::TakeUICaptureInRange( bool RSRenderServiceClient::SetHwcNodeBounds(int64_t rsNodeId, float positionX, float positionY, float positionZ, float positionW) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { RS_LOGE("RSRenderServiceClient::SetHwcNodeBounds renderService is null!"); return false; @@ -461,7 +461,7 @@ bool RSRenderServiceClient::SetHwcNodeBounds(int64_t rsNodeId, float positionX, int32_t RSRenderServiceClient::SetFocusAppInfo(const FocusAppInfo& info) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return RENDER_SERVICE_NULL; } @@ -472,7 +472,7 @@ int32_t RSRenderServiceClient::SetFocusAppInfo(const FocusAppInfo& info) ScreenId RSRenderServiceClient::GetDefaultScreenId() { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return INVALID_SCREEN_ID; } @@ -484,7 +484,7 @@ ScreenId RSRenderServiceClient::GetDefaultScreenId() ScreenId RSRenderServiceClient::GetActiveScreenId() { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return INVALID_SCREEN_ID; } @@ -496,7 +496,7 @@ ScreenId RSRenderServiceClient::GetActiveScreenId() std::vector RSRenderServiceClient::GetAllScreenIds() { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return std::vector(); } @@ -513,7 +513,7 @@ ScreenId RSRenderServiceClient::CreateVirtualScreen( int32_t flags, std::vector whiteList) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { RS_LOGE("RSRenderServiceClient::%{public}s renderService is null!", __func__); return INVALID_SCREEN_ID; @@ -524,7 +524,7 @@ ScreenId RSRenderServiceClient::CreateVirtualScreen( int32_t RSRenderServiceClient::SetVirtualScreenBlackList(ScreenId id, std::vector& blackListVector) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { RS_LOGE("RSRenderServiceClient::%{public}s renderService is null!", __func__); return RENDER_SERVICE_NULL; @@ -535,7 +535,7 @@ int32_t RSRenderServiceClient::SetVirtualScreenBlackList(ScreenId id, std::vecto int32_t RSRenderServiceClient::SetVirtualScreenTypeBlackList(ScreenId id, std::vector& typeBlackListVector) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return RENDER_SERVICE_NULL; } @@ -546,7 +546,7 @@ int32_t RSRenderServiceClient::SetVirtualScreenTypeBlackList(ScreenId id, std::v int32_t RSRenderServiceClient::AddVirtualScreenBlackList(ScreenId id, std::vector& blackListVector) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { RS_LOGE("RSRenderServiceClient::%{public}s renderService is null!", __func__); return RENDER_SERVICE_NULL; @@ -558,7 +558,7 @@ int32_t RSRenderServiceClient::AddVirtualScreenBlackList(ScreenId id, std::vecto int32_t RSRenderServiceClient::RemoveVirtualScreenBlackList(ScreenId id, std::vector& blackListVector) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { RS_LOGE("RSRenderServiceClient::%{public}s renderService is null!", __func__); return RENDER_SERVICE_NULL; @@ -570,7 +570,7 @@ int32_t RSRenderServiceClient::RemoveVirtualScreenBlackList(ScreenId id, std::ve bool RSRenderServiceClient::SetWatermark(const std::string& name, std::shared_ptr watermark) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return false; } @@ -583,7 +583,7 @@ int32_t RSRenderServiceClient::SetVirtualScreenSecurityExemptionList( ScreenId id, const std::vector& securityExemptionList) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return RENDER_SERVICE_NULL; } @@ -594,7 +594,7 @@ int32_t RSRenderServiceClient::SetVirtualScreenSecurityExemptionList( int32_t RSRenderServiceClient::SetScreenSecurityMask(ScreenId id, std::shared_ptr securityMask) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return RENDER_SERVICE_NULL; } @@ -604,7 +604,7 @@ int32_t RSRenderServiceClient::SetScreenSecurityMask(ScreenId id, int32_t RSRenderServiceClient::SetMirrorScreenVisibleRect(ScreenId id, const Rect& mainScreenRect, bool supportRotation) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return RENDER_SERVICE_NULL; } @@ -614,7 +614,7 @@ int32_t RSRenderServiceClient::SetMirrorScreenVisibleRect(ScreenId id, const Rec int32_t RSRenderServiceClient::SetCastScreenEnableSkipWindow(ScreenId id, bool enable) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return RENDER_SERVICE_NULL; } @@ -624,7 +624,7 @@ int32_t RSRenderServiceClient::SetCastScreenEnableSkipWindow(ScreenId id, bool e int32_t RSRenderServiceClient::SetVirtualScreenSurface(ScreenId id, sptr surface) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return RENDER_SERVICE_NULL; } @@ -634,7 +634,7 @@ int32_t RSRenderServiceClient::SetVirtualScreenSurface(ScreenId id, sptr RSRenderServiceClient::GetScreenSupportedRefreshRates(ScreenId id) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGW("RSRenderServiceClient renderService == nullptr!"); return {}; @@ -821,7 +821,7 @@ std::vector RSRenderServiceClient::GetScreenSupportedRefreshRates(Scree bool RSRenderServiceClient::GetShowRefreshRateEnabled() { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGW("RSRenderServiceClient renderService == nullptr!"); return false; @@ -834,7 +834,7 @@ bool RSRenderServiceClient::GetShowRefreshRateEnabled() std::string RSRenderServiceClient::GetRefreshInfo(pid_t pid) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGW("RSRenderServiceClient renderService == nullptr!"); return ""; @@ -846,7 +846,7 @@ std::string RSRenderServiceClient::GetRefreshInfo(pid_t pid) std::string RSRenderServiceClient::GetRefreshInfoToSP(NodeId id) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGW("RSRenderServiceClient renderService == nullptr!"); return ""; @@ -858,7 +858,7 @@ std::string RSRenderServiceClient::GetRefreshInfoToSP(NodeId id) void RSRenderServiceClient::SetShowRefreshRateEnabled(bool enabled, int32_t type) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGW("RSRenderServiceClient renderService == nullptr!"); return; @@ -869,7 +869,7 @@ void RSRenderServiceClient::SetShowRefreshRateEnabled(bool enabled, int32_t type uint32_t RSRenderServiceClient::GetRealtimeRefreshRate(ScreenId id) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGW("RSRenderServiceClient renderService == nullptr!"); return RENDER_SERVICE_NULL; @@ -880,7 +880,7 @@ uint32_t RSRenderServiceClient::GetRealtimeRefreshRate(ScreenId id) int32_t RSRenderServiceClient::SetPhysicalScreenResolution(ScreenId id, uint32_t width, uint32_t height) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("%{public}s: render service is null", __func__); return RENDER_SERVICE_NULL; @@ -891,7 +891,7 @@ int32_t RSRenderServiceClient::SetPhysicalScreenResolution(ScreenId id, uint32_t int32_t RSRenderServiceClient::SetVirtualScreenResolution(ScreenId id, uint32_t width, uint32_t height) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::SetVirtualScreenResolution renderService == nullptr!"); return RENDER_SERVICE_NULL; @@ -902,7 +902,7 @@ int32_t RSRenderServiceClient::SetVirtualScreenResolution(ScreenId id, uint32_t RSVirtualScreenResolution RSRenderServiceClient::GetVirtualScreenResolution(ScreenId id) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return RSVirtualScreenResolution {}; // return empty RSVirtualScreenResolution. } @@ -912,7 +912,7 @@ RSVirtualScreenResolution RSRenderServiceClient::GetVirtualScreenResolution(Scre void RSRenderServiceClient::MarkPowerOffNeedProcessOneFrame() { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return; } @@ -922,7 +922,7 @@ void RSRenderServiceClient::MarkPowerOffNeedProcessOneFrame() void RSRenderServiceClient::RepaintEverything() { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RepaintEverything renderService is null, return"); return; @@ -933,7 +933,7 @@ void RSRenderServiceClient::RepaintEverything() void RSRenderServiceClient::ForceRefreshOneFrameWithNextVSync() { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("ForceRefreshOneFrameWithNextVSync renderService is nullptr, return"); return; @@ -944,7 +944,7 @@ void RSRenderServiceClient::ForceRefreshOneFrameWithNextVSync() void RSRenderServiceClient::DisablePowerOffRenderControl(ScreenId id) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return; } @@ -954,7 +954,7 @@ void RSRenderServiceClient::DisablePowerOffRenderControl(ScreenId id) void RSRenderServiceClient::SetScreenPowerStatus(ScreenId id, ScreenPowerStatus status) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::%{public}s renderService is nullptr", __func__); return; @@ -965,7 +965,7 @@ void RSRenderServiceClient::SetScreenPowerStatus(ScreenId id, ScreenPowerStatus RSScreenModeInfo RSRenderServiceClient::GetScreenActiveMode(ScreenId id) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return RSScreenModeInfo {}; // return empty RSScreenModeInfo. } @@ -977,7 +977,7 @@ RSScreenModeInfo RSRenderServiceClient::GetScreenActiveMode(ScreenId id) std::vector RSRenderServiceClient::GetScreenSupportedModes(ScreenId id) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return {}; } @@ -987,7 +987,7 @@ std::vector RSRenderServiceClient::GetScreenSupportedModes(Scr RSScreenCapability RSRenderServiceClient::GetScreenCapability(ScreenId id) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return RSScreenCapability {}; } @@ -997,7 +997,7 @@ RSScreenCapability RSRenderServiceClient::GetScreenCapability(ScreenId id) ScreenPowerStatus RSRenderServiceClient::GetScreenPowerStatus(ScreenId id) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return ScreenPowerStatus::INVALID_POWER_STATUS; } @@ -1008,7 +1008,7 @@ ScreenPowerStatus RSRenderServiceClient::GetScreenPowerStatus(ScreenId id) RSScreenData RSRenderServiceClient::GetScreenData(ScreenId id) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return RSScreenData {}; } @@ -1018,7 +1018,7 @@ RSScreenData RSRenderServiceClient::GetScreenData(ScreenId id) int32_t RSRenderServiceClient::GetScreenBacklight(ScreenId id) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::%{public}s renderService is nullptr", __func__); return INVALID_BACKLIGHT_VALUE; @@ -1030,7 +1030,7 @@ int32_t RSRenderServiceClient::GetScreenBacklight(ScreenId id) void RSRenderServiceClient::SetScreenBacklight(ScreenId id, uint32_t level) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::%{public}s renderService is nullptr", __func__); return; @@ -1076,7 +1076,7 @@ private: bool RSRenderServiceClient::RegisterBufferAvailableListener( NodeId id, const BufferAvailableCallback &callback, bool isFromRenderThread) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return false; } @@ -1105,7 +1105,7 @@ bool RSRenderServiceClient::RegisterBufferAvailableListener( bool RSRenderServiceClient::RegisterBufferClearListener(NodeId id, const BufferClearCallback& callback) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return false; } @@ -1137,7 +1137,7 @@ bool RSRenderServiceClient::UnregisterBufferAvailableListener(NodeId id) int32_t RSRenderServiceClient::GetScreenSupportedColorGamuts(ScreenId id, std::vector& mode) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return RENDER_SERVICE_NULL; } @@ -1146,7 +1146,7 @@ int32_t RSRenderServiceClient::GetScreenSupportedColorGamuts(ScreenId id, std::v int32_t RSRenderServiceClient::GetScreenSupportedMetaDataKeys(ScreenId id, std::vector& keys) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::RequestRotation renderService == nullptr!"); return RENDER_SERVICE_NULL; @@ -1156,7 +1156,7 @@ int32_t RSRenderServiceClient::GetScreenSupportedMetaDataKeys(ScreenId id, std:: int32_t RSRenderServiceClient::GetScreenColorGamut(ScreenId id, ScreenColorGamut& mode) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return RENDER_SERVICE_NULL; } @@ -1165,7 +1165,7 @@ int32_t RSRenderServiceClient::GetScreenColorGamut(ScreenId id, ScreenColorGamut int32_t RSRenderServiceClient::SetScreenColorGamut(ScreenId id, int32_t modeIdx) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return RENDER_SERVICE_NULL; } @@ -1174,7 +1174,7 @@ int32_t RSRenderServiceClient::SetScreenColorGamut(ScreenId id, int32_t modeIdx) int32_t RSRenderServiceClient::SetScreenGamutMap(ScreenId id, ScreenGamutMap mode) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return RENDER_SERVICE_NULL; } @@ -1183,7 +1183,7 @@ int32_t RSRenderServiceClient::SetScreenGamutMap(ScreenId id, ScreenGamutMap mod int32_t RSRenderServiceClient::SetScreenCorrection(ScreenId id, ScreenRotation screenRotation) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return RENDER_SERVICE_NULL; } @@ -1192,7 +1192,7 @@ int32_t RSRenderServiceClient::SetScreenCorrection(ScreenId id, ScreenRotation s bool RSRenderServiceClient::SetVirtualMirrorScreenCanvasRotation(ScreenId id, bool canvasRotation) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::SetVirtualMirrorScreenCanvasRotation: renderService is nullptr"); return false; @@ -1202,7 +1202,7 @@ bool RSRenderServiceClient::SetVirtualMirrorScreenCanvasRotation(ScreenId id, bo int32_t RSRenderServiceClient::SetVirtualScreenAutoRotation(ScreenId id, bool isAutoRotation) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::SetVirtualScreenAutoRotation: renderService is nullptr"); return RENDER_SERVICE_NULL; @@ -1212,7 +1212,7 @@ int32_t RSRenderServiceClient::SetVirtualScreenAutoRotation(ScreenId id, bool is bool RSRenderServiceClient::SetVirtualMirrorScreenScaleMode(ScreenId id, ScreenScaleMode scaleMode) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::SetVirtualMirrorScreenScaleMode: renderService is nullptr"); return false; @@ -1222,7 +1222,7 @@ bool RSRenderServiceClient::SetVirtualMirrorScreenScaleMode(ScreenId id, ScreenS bool RSRenderServiceClient::SetGlobalDarkColorMode(bool isDark) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::SetGlobalDarkColorMode: renderService is nullptr"); return false; @@ -1232,7 +1232,7 @@ bool RSRenderServiceClient::SetGlobalDarkColorMode(bool isDark) int32_t RSRenderServiceClient::GetScreenGamutMap(ScreenId id, ScreenGamutMap& mode) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return RENDER_SERVICE_NULL; } @@ -1241,7 +1241,7 @@ int32_t RSRenderServiceClient::GetScreenGamutMap(ScreenId id, ScreenGamutMap& mo int32_t RSRenderServiceClient::GetScreenHDRCapability(ScreenId id, RSScreenHDRCapability& screenHdrCapability) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::GetScreenHDRCapability renderService == nullptr!"); return RENDER_SERVICE_NULL; @@ -1251,7 +1251,7 @@ int32_t RSRenderServiceClient::GetScreenHDRCapability(ScreenId id, RSScreenHDRCa int32_t RSRenderServiceClient::GetPixelFormat(ScreenId id, GraphicPixelFormat& pixelFormat) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::GetPixelFormat renderService == nullptr!"); return RENDER_SERVICE_NULL; @@ -1263,7 +1263,7 @@ int32_t RSRenderServiceClient::GetPixelFormat(ScreenId id, GraphicPixelFormat& p int32_t RSRenderServiceClient::SetPixelFormat(ScreenId id, GraphicPixelFormat pixelFormat) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::SetPixelFormat renderService == nullptr!"); return RENDER_SERVICE_NULL; @@ -1275,7 +1275,7 @@ int32_t RSRenderServiceClient::SetPixelFormat(ScreenId id, GraphicPixelFormat pi int32_t RSRenderServiceClient::GetScreenSupportedHDRFormats(ScreenId id, std::vector& hdrFormats) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return RENDER_SERVICE_NULL; } @@ -1286,7 +1286,7 @@ int32_t RSRenderServiceClient::GetScreenSupportedHDRFormats(ScreenId id, std::ve int32_t RSRenderServiceClient::GetScreenHDRFormat(ScreenId id, ScreenHDRFormat& hdrFormat) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return RENDER_SERVICE_NULL; } @@ -1297,7 +1297,7 @@ int32_t RSRenderServiceClient::GetScreenHDRFormat(ScreenId id, ScreenHDRFormat& int32_t RSRenderServiceClient::SetScreenHDRFormat(ScreenId id, int32_t modeIdx) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return RENDER_SERVICE_NULL; } @@ -1308,7 +1308,7 @@ int32_t RSRenderServiceClient::SetScreenHDRFormat(ScreenId id, int32_t modeIdx) int32_t RSRenderServiceClient::GetScreenHDRStatus(ScreenId id, HdrStatus& hdrStatus) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return RENDER_SERVICE_NULL; } @@ -1324,7 +1324,7 @@ int32_t RSRenderServiceClient::GetScreenHDRStatus(ScreenId id, HdrStatus& hdrSta int32_t RSRenderServiceClient::GetScreenSupportedColorSpaces( ScreenId id, std::vector& colorSpaces) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return RENDER_SERVICE_NULL; } @@ -1335,7 +1335,7 @@ int32_t RSRenderServiceClient::GetScreenSupportedColorSpaces( int32_t RSRenderServiceClient::GetScreenColorSpace(ScreenId id, GraphicCM_ColorSpaceType& colorSpace) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return RENDER_SERVICE_NULL; } @@ -1346,7 +1346,7 @@ int32_t RSRenderServiceClient::GetScreenColorSpace(ScreenId id, GraphicCM_ColorS int32_t RSRenderServiceClient::SetScreenColorSpace(ScreenId id, GraphicCM_ColorSpaceType colorSpace) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return RENDER_SERVICE_NULL; } @@ -1357,7 +1357,7 @@ int32_t RSRenderServiceClient::SetScreenColorSpace(ScreenId id, GraphicCM_ColorS int32_t RSRenderServiceClient::GetScreenType(ScreenId id, RSScreenType& screenType) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::GetScreenType renderService == nullptr!"); return RENDER_SERVICE_NULL; @@ -1367,7 +1367,7 @@ int32_t RSRenderServiceClient::GetScreenType(ScreenId id, RSScreenType& screenTy bool RSRenderServiceClient::GetBitmap(NodeId id, Drawing::Bitmap& bitmap) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::GetBitmap renderService == nullptr!"); return false; @@ -1380,7 +1380,7 @@ bool RSRenderServiceClient::GetBitmap(NodeId id, Drawing::Bitmap& bitmap) bool RSRenderServiceClient::GetPixelmap(NodeId id, std::shared_ptr pixelmap, const Drawing::Rect* rect, std::shared_ptr drawCmdList) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::GetPixelmap: renderService is nullptr"); return false; @@ -1392,7 +1392,7 @@ bool RSRenderServiceClient::GetPixelmap(NodeId id, std::shared_ptr& typeface) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::RegisterTypeface: renderService is nullptr"); return false; @@ -1407,7 +1407,7 @@ bool RSRenderServiceClient::RegisterTypeface(std::shared_ptr& bool RSRenderServiceClient::UnRegisterTypeface(std::shared_ptr& typeface) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::UnRegisterTypeface: renderService is nullptr"); return false; @@ -1421,7 +1421,7 @@ bool RSRenderServiceClient::UnRegisterTypeface(std::shared_ptr& edidData) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return RENDER_SERVICE_NULL; } @@ -1430,7 +1430,7 @@ int32_t RSRenderServiceClient::GetDisplayIdentificationData(ScreenId id, uint8_t int32_t RSRenderServiceClient::SetScreenSkipFrameInterval(ScreenId id, uint32_t skipFrameInterval) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return RENDER_SERVICE_NULL; } @@ -1442,7 +1442,7 @@ int32_t RSRenderServiceClient::SetScreenSkipFrameInterval(ScreenId id, uint32_t int32_t RSRenderServiceClient::SetVirtualScreenRefreshRate( ScreenId id, uint32_t maxRefreshRate, uint32_t& actualRefreshRate) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); int32_t resCode = RENDER_SERVICE_NULL; if (renderService == nullptr) { return RENDER_SERVICE_NULL; @@ -1453,7 +1453,7 @@ int32_t RSRenderServiceClient::SetVirtualScreenRefreshRate( uint32_t RSRenderServiceClient::SetScreenActiveRect(ScreenId id, const Rect& activeRect) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return RENDER_SERVICE_NULL; } @@ -1464,7 +1464,7 @@ uint32_t RSRenderServiceClient::SetScreenActiveRect(ScreenId id, const Rect& act void RSRenderServiceClient::SetScreenOffset(ScreenId id, int32_t offSetX, int32_t offSetY) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return; } @@ -1473,7 +1473,7 @@ void RSRenderServiceClient::SetScreenOffset(ScreenId id, int32_t offSetX, int32_ void RSRenderServiceClient::SetScreenFrameGravity(ScreenId id, int32_t gravity) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return; } @@ -1499,7 +1499,7 @@ private: int32_t RSRenderServiceClient::RegisterOcclusionChangeCallback(const OcclusionChangeCallback& callback) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::RegisterOcclusionChangeCallback renderService == nullptr!"); return RENDER_SERVICE_NULL; @@ -1530,7 +1530,7 @@ private: int32_t RSRenderServiceClient::RegisterSurfaceOcclusionChangeCallback( NodeId id, const SurfaceOcclusionChangeCallback& callback, std::vector& partitionPoints) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::RegisterSurfaceOcclusionChangeCallback renderService == nullptr!"); return RENDER_SERVICE_NULL; @@ -1541,7 +1541,7 @@ int32_t RSRenderServiceClient::RegisterSurfaceOcclusionChangeCallback( int32_t RSRenderServiceClient::UnRegisterSurfaceOcclusionChangeCallback(NodeId id) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::UnRegisterSurfaceOcclusionChangeCallback renderService == nullptr!"); return RENDER_SERVICE_NULL; @@ -1575,7 +1575,7 @@ private: int32_t RSRenderServiceClient::RegisterHgmConfigChangeCallback(const HgmConfigChangeCallback& callback) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::RegisterHgmConfigChangeCallback renderService == nullptr!"); return RENDER_SERVICE_NULL; @@ -1611,7 +1611,7 @@ private: int32_t RSRenderServiceClient::RegisterHgmRefreshRateModeChangeCallback( const HgmRefreshRateModeChangeCallback& callback) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::RegisterHgmRefreshRateModeChangeCallback renderService == nullptr!"); return RENDER_SERVICE_NULL; @@ -1650,7 +1650,7 @@ int32_t RSRenderServiceClient::RegisterHgmRefreshRateUpdateCallback( const HgmRefreshRateUpdateCallback& callback) { sptr cb = nullptr; - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::RegisterHgmRefreshRateUpdateCallback renderService == nullptr!"); return RENDER_SERVICE_NULL; @@ -1686,7 +1686,7 @@ int32_t RSRenderServiceClient::RegisterFirstFrameCommitCallback( const FirstFrameCommitCallback& callback) { sptr cb = nullptr; - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::RegisterFirstFrameCommitCallback renderService == nullptr!"); return RENDER_SERVICE_NULL; @@ -1723,7 +1723,7 @@ private: int32_t RSRenderServiceClient::RegisterFrameRateLinkerExpectedFpsUpdateCallback( int32_t dstPid, const FrameRateLinkerExpectedFpsUpdateCallback& callback) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::RegisterFrameRateLinkerExpectedFpsUpdateCallback renderService == nullptr"); return RENDER_SERVICE_NULL; @@ -1740,7 +1740,7 @@ int32_t RSRenderServiceClient::RegisterFrameRateLinkerExpectedFpsUpdateCallback( void RSRenderServiceClient::SetAppWindowNum(uint32_t num) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { renderService->SetAppWindowNum(num); } @@ -1748,7 +1748,7 @@ void RSRenderServiceClient::SetAppWindowNum(uint32_t num) bool RSRenderServiceClient::SetSystemAnimatedScenes(SystemAnimatedScenes systemAnimatedScenes, bool isRegularAnimation) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::SetSystemAnimatedScenes renderService == nullptr!"); return false; @@ -1760,7 +1760,7 @@ bool RSRenderServiceClient::SetSystemAnimatedScenes(SystemAnimatedScenes systemA void RSRenderServiceClient::ShowWatermark(const std::shared_ptr &watermarkImg, bool isShow) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { renderService->ShowWatermark(watermarkImg, isShow); } @@ -1768,7 +1768,7 @@ void RSRenderServiceClient::ShowWatermark(const std::shared_ptr int32_t RSRenderServiceClient::ResizeVirtualScreen(ScreenId id, uint32_t width, uint32_t height) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::ResizeVirtualScreen renderService == nullptr!"); return RENDER_SERVICE_NULL; @@ -1780,7 +1780,7 @@ int32_t RSRenderServiceClient::ResizeVirtualScreen(ScreenId id, uint32_t width, void RSRenderServiceClient::ReportJankStats() { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { renderService->ReportJankStats(); } @@ -1788,7 +1788,7 @@ void RSRenderServiceClient::ReportJankStats() void RSRenderServiceClient::ReportEventResponse(DataBaseRs info) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { renderService->ReportEventResponse(info); } @@ -1796,7 +1796,7 @@ void RSRenderServiceClient::ReportEventResponse(DataBaseRs info) void RSRenderServiceClient::ReportEventComplete(DataBaseRs info) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { renderService->ReportEventComplete(info); } @@ -1804,7 +1804,7 @@ void RSRenderServiceClient::ReportEventComplete(DataBaseRs info) void RSRenderServiceClient::ReportEventJankFrame(DataBaseRs info) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { renderService->ReportEventJankFrame(info); } @@ -1812,7 +1812,7 @@ void RSRenderServiceClient::ReportEventJankFrame(DataBaseRs info) void RSRenderServiceClient::ReportRsSceneJankStart(AppInfo info) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { renderService->ReportRsSceneJankStart(info); } @@ -1820,7 +1820,7 @@ void RSRenderServiceClient::ReportRsSceneJankStart(AppInfo info) void RSRenderServiceClient::ReportRsSceneJankEnd(AppInfo info) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { renderService->ReportRsSceneJankEnd(info); } @@ -1828,7 +1828,7 @@ void RSRenderServiceClient::ReportRsSceneJankEnd(AppInfo info) void RSRenderServiceClient::ReportGameStateData(GameStateData info) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { renderService->ReportGameStateData(info); } @@ -1837,7 +1837,7 @@ void RSRenderServiceClient::ReportGameStateData(GameStateData info) void RSRenderServiceClient::SetHardwareEnabled(NodeId id, bool isEnabled, SelfDrawingNodeType selfDrawingType, bool dynamicHardwareEnable) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { renderService->SetHardwareEnabled(id, isEnabled, selfDrawingType, dynamicHardwareEnable); } @@ -1845,7 +1845,7 @@ void RSRenderServiceClient::SetHardwareEnabled(NodeId id, bool isEnabled, SelfDr uint32_t RSRenderServiceClient::SetHidePrivacyContent(NodeId id, bool needHidePrivacyContent) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { uint32_t resCode; renderService->SetHidePrivacyContent(id, needHidePrivacyContent, resCode); @@ -1856,7 +1856,7 @@ uint32_t RSRenderServiceClient::SetHidePrivacyContent(NodeId id, bool needHidePr void RSRenderServiceClient::NotifyLightFactorStatus(int32_t lightFactorStatus) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { renderService->NotifyLightFactorStatus(lightFactorStatus); } @@ -1864,7 +1864,7 @@ void RSRenderServiceClient::NotifyLightFactorStatus(int32_t lightFactorStatus) void RSRenderServiceClient::NotifyPackageEvent(uint32_t listSize, const std::vector& packageList) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { renderService->NotifyPackageEvent(listSize, packageList); } @@ -1873,7 +1873,7 @@ void RSRenderServiceClient::NotifyPackageEvent(uint32_t listSize, const std::vec void RSRenderServiceClient::NotifyAppStrategyConfigChangeEvent(const std::string& pkgName, uint32_t listSize, const std::vector>& newConfig) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { renderService->NotifyAppStrategyConfigChangeEvent(pkgName, listSize, newConfig); } @@ -1881,7 +1881,7 @@ void RSRenderServiceClient::NotifyAppStrategyConfigChangeEvent(const std::string void RSRenderServiceClient::NotifyRefreshRateEvent(const EventInfo& eventInfo) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { renderService->NotifyRefreshRateEvent(eventInfo); } @@ -1889,7 +1889,7 @@ void RSRenderServiceClient::NotifyRefreshRateEvent(const EventInfo& eventInfo) void RSRenderServiceClient::SetWindowExpectedRefreshRate(const std::unordered_map& eventInfos) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { renderService->SetWindowExpectedRefreshRate(eventInfos); } @@ -1897,7 +1897,7 @@ void RSRenderServiceClient::SetWindowExpectedRefreshRate(const std::unordered_ma void RSRenderServiceClient::SetWindowExpectedRefreshRate(const std::unordered_map& eventInfos) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { renderService->SetWindowExpectedRefreshRate(eventInfos); } @@ -1906,7 +1906,7 @@ void RSRenderServiceClient::SetWindowExpectedRefreshRate(const std::unordered_ma bool RSRenderServiceClient::NotifySoftVsyncRateDiscountEvent(uint32_t pid, const std::string &name, uint32_t rateDiscount) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { return renderService->NotifySoftVsyncRateDiscountEvent(pid, name, rateDiscount); } @@ -1915,7 +1915,7 @@ bool RSRenderServiceClient::NotifySoftVsyncRateDiscountEvent(uint32_t pid, void RSRenderServiceClient::NotifyHgmConfigEvent(const std::string &eventName, bool state) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { renderService->NotifyHgmConfigEvent(eventName, state); } @@ -1923,7 +1923,7 @@ void RSRenderServiceClient::NotifyHgmConfigEvent(const std::string &eventName, b void RSRenderServiceClient::NotifyXComponentExpectedFrameRate(const std::string& id, int32_t expectedFrameRate) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { renderService->NotifyXComponentExpectedFrameRate(id, expectedFrameRate); } @@ -1931,7 +1931,7 @@ void RSRenderServiceClient::NotifyXComponentExpectedFrameRate(const std::string& void RSRenderServiceClient::NotifyTouchEvent(int32_t touchStatus, int32_t touchCnt) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { renderService->NotifyTouchEvent(touchStatus, touchCnt); } @@ -1939,7 +1939,7 @@ void RSRenderServiceClient::NotifyTouchEvent(int32_t touchStatus, int32_t touchC void RSRenderServiceClient::NotifyDynamicModeEvent(bool enableDynamicMode) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { renderService->NotifyDynamicModeEvent(enableDynamicMode); } @@ -1947,7 +1947,7 @@ void RSRenderServiceClient::NotifyDynamicModeEvent(bool enableDynamicMode) void RSRenderServiceClient::SetCacheEnabledForRotation(bool isEnabled) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { renderService->SetCacheEnabledForRotation(isEnabled); } @@ -1955,7 +1955,7 @@ void RSRenderServiceClient::SetCacheEnabledForRotation(bool isEnabled) void RSRenderServiceClient::SetOnRemoteDiedCallback(const OnRemoteDiedCallback& callback) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { renderService->SetOnRemoteDiedCallback(callback); } @@ -1963,7 +1963,7 @@ void RSRenderServiceClient::SetOnRemoteDiedCallback(const OnRemoteDiedCallback& std::vector RSRenderServiceClient::GetActiveDirtyRegionInfo() { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return {}; } @@ -1972,7 +1972,7 @@ std::vector RSRenderServiceClient::GetActiveDirtyRegionIn GlobalDirtyRegionInfo RSRenderServiceClient::GetGlobalDirtyRegionInfo() { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return GlobalDirtyRegionInfo {}; } @@ -1981,7 +1981,7 @@ GlobalDirtyRegionInfo RSRenderServiceClient::GetGlobalDirtyRegionInfo() LayerComposeInfo RSRenderServiceClient::GetLayerComposeInfo() { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return LayerComposeInfo {}; } @@ -1990,7 +1990,7 @@ LayerComposeInfo RSRenderServiceClient::GetLayerComposeInfo() HwcDisabledReasonInfos RSRenderServiceClient::GetHwcDisabledReasonInfo() { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return {}; } @@ -1999,7 +1999,7 @@ HwcDisabledReasonInfos RSRenderServiceClient::GetHwcDisabledReasonInfo() int64_t RSRenderServiceClient::GetHdrOnDuration() { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return 0; } @@ -2013,7 +2013,7 @@ int64_t RSRenderServiceClient::GetHdrOnDuration() void RSRenderServiceClient::SetVmaCacheStatus(bool flag) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return; } @@ -2024,7 +2024,7 @@ void RSRenderServiceClient::SetVmaCacheStatus(bool flag) void RSRenderServiceClient::SetTpFeatureConfig(int32_t feature, const char* config, TpFeatureConfigType tpFeatureConfigType) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return; } @@ -2034,7 +2034,7 @@ void RSRenderServiceClient::SetTpFeatureConfig(int32_t feature, const char* conf void RSRenderServiceClient::SetVirtualScreenUsingStatus(bool isVirtualScreenUsingStatus) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { renderService->SetVirtualScreenUsingStatus(isVirtualScreenUsingStatus); } @@ -2042,7 +2042,7 @@ void RSRenderServiceClient::SetVirtualScreenUsingStatus(bool isVirtualScreenUsin void RSRenderServiceClient::SetCurtainScreenUsingStatus(bool isCurtainScreenOn) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { renderService->SetCurtainScreenUsingStatus(isCurtainScreenOn); } @@ -2050,7 +2050,7 @@ void RSRenderServiceClient::SetCurtainScreenUsingStatus(bool isCurtainScreenOn) void RSRenderServiceClient::DropFrameByPid(const std::vector pidList) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { renderService->DropFrameByPid(pidList); } @@ -2076,7 +2076,7 @@ private: int32_t RSRenderServiceClient::RegisterUIExtensionCallback(uint64_t userId, const UIExtensionCallback& callback, bool unobscured) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::RegisterUIExtensionCallback renderService == nullptr!"); return RENDER_SERVICE_NULL; @@ -2087,7 +2087,7 @@ int32_t RSRenderServiceClient::RegisterUIExtensionCallback(uint64_t userId, cons bool RSRenderServiceClient::SetAncoForceDoDirect(bool direct) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { bool res; renderService->SetAncoForceDoDirect(direct, res); @@ -2099,7 +2099,7 @@ bool RSRenderServiceClient::SetAncoForceDoDirect(bool direct) bool RSRenderServiceClient::SetVirtualScreenStatus(ScreenId id, VirtualScreenStatus screenStatus) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); bool success = false; if (renderService != nullptr) { renderService->SetVirtualScreenStatus(id, screenStatus, success); @@ -2109,7 +2109,7 @@ bool RSRenderServiceClient::SetVirtualScreenStatus(ScreenId id, VirtualScreenSta void RSRenderServiceClient::SetFreeMultiWindowStatus(bool enable) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::SetFreeMultiWindowStatus renderService == nullptr!"); return; @@ -2138,7 +2138,7 @@ private: bool RSRenderServiceClient::RegisterSurfaceBufferCallback( pid_t pid, uint64_t uid, std::shared_ptr callback) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::RegisterSurfaceBufferCallback renderService == nullptr!"); return false; @@ -2166,7 +2166,7 @@ bool RSRenderServiceClient::RegisterSurfaceBufferCallback( bool RSRenderServiceClient::UnregisterSurfaceBufferCallback(pid_t pid, uint64_t uid) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::UnregisterSurfaceBufferCallback renderService == nullptr!"); return false; @@ -2216,7 +2216,7 @@ void RSRenderServiceClient::TriggerOnAfterAcquireBuffer(const AfterAcquireBuffer void RSRenderServiceClient::SetLayerTopForHWC(NodeId nodeId, bool isTop, uint32_t zOrder) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { renderService->SetLayerTopForHWC(nodeId, isTop, zOrder); } @@ -2224,7 +2224,7 @@ void RSRenderServiceClient::SetLayerTopForHWC(NodeId nodeId, bool isTop, uint32_ void RSRenderServiceClient::SetLayerTop(const std::string &nodeIdStr, bool isTop) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { renderService->SetLayerTop(nodeIdStr, isTop); } @@ -2232,7 +2232,7 @@ void RSRenderServiceClient::SetLayerTop(const std::string &nodeIdStr, bool isTop void RSRenderServiceClient::SetForceRefresh(const std::string &nodeIdStr, bool isForceRefresh) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { renderService->SetForceRefresh(nodeIdStr, isForceRefresh); } @@ -2256,7 +2256,7 @@ private: bool RSRenderServiceClient::RegisterTransactionDataCallback(uint64_t token, uint64_t timeStamp, std::function callback) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::RegisterTransactionDataCallback renderService == nullptr!"); return false; @@ -2304,7 +2304,7 @@ void RSRenderServiceClient::TriggerTransactionDataCallbackAndErase(uint64_t toke void RSRenderServiceClient::SetColorFollow(const std::string &nodeIdStr, bool isColorFollow) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { renderService->SetColorFollow(nodeIdStr, isColorFollow); } @@ -2312,7 +2312,7 @@ void RSRenderServiceClient::SetColorFollow(const std::string &nodeIdStr, bool is void RSRenderServiceClient::NotifyScreenSwitched() { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::%{public}s renderService is nullptr", __func__); return; @@ -2322,7 +2322,7 @@ void RSRenderServiceClient::NotifyScreenSwitched() void RSRenderServiceClient::SetWindowContainer(NodeId nodeId, bool value) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { renderService->SetWindowContainer(nodeId, value); } @@ -2349,7 +2349,7 @@ private: int32_t RSRenderServiceClient::RegisterSelfDrawingNodeRectChangeCallback( const RectConstraint& constraint, const SelfDrawingNodeRectChangeCallback& callback) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::RegisterSelfDrawingNodeRectChangeCallback renderService == nullptr"); return RENDER_SERVICE_NULL; @@ -2365,7 +2365,7 @@ int32_t RSRenderServiceClient::RegisterSelfDrawingNodeRectChangeCallback( int32_t RSRenderServiceClient::UnRegisterSelfDrawingNodeRectChangeCallback() { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::UnRegisterSelfDrawingNodeRectChangeCallback renderService == nullptr"); return RENDER_SERVICE_NULL; @@ -2376,7 +2376,7 @@ int32_t RSRenderServiceClient::UnRegisterSelfDrawingNodeRectChangeCallback() #ifdef RS_ENABLE_OVERLAY_DISPLAY int32_t RSRenderServiceClient::SetOverlayDisplayMode(int32_t mode) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return RENDER_SERVICE_NULL; } @@ -2387,7 +2387,7 @@ int32_t RSRenderServiceClient::SetOverlayDisplayMode(int32_t mode) void RSRenderServiceClient::NotifyPageName(const std::string &packageName, const std::string &pageName, bool isEnter) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { ROSEN_LOGE("RSRenderServiceClient::NotifyPageName renderService == nullptr!"); return; @@ -2397,7 +2397,7 @@ void RSRenderServiceClient::NotifyPageName(const std::string &packageName, bool RSRenderServiceClient::GetHighContrastTextState() { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { return renderService->GetHighContrastTextState(); } @@ -2406,7 +2406,7 @@ bool RSRenderServiceClient::GetHighContrastTextState() bool RSRenderServiceClient::SetBehindWindowFilterEnabled(bool enabled) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (!renderService) { return false; } @@ -2420,7 +2420,7 @@ bool RSRenderServiceClient::SetBehindWindowFilterEnabled(bool enabled) bool RSRenderServiceClient::GetBehindWindowFilterEnabled(bool& enabled) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (!renderService) { return false; } @@ -2434,7 +2434,7 @@ bool RSRenderServiceClient::GetBehindWindowFilterEnabled(bool& enabled) int32_t RSRenderServiceClient::GetPidGpuMemoryInMB(pid_t pid, float &gpuMemInMB) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (!renderService) { return ERR_INVALID_DATA; } @@ -2447,7 +2447,7 @@ int32_t RSRenderServiceClient::GetPidGpuMemoryInMB(pid_t pid, float &gpuMemInMB) RetCodeHrpService RSRenderServiceClient::ProfilerServiceOpenFile(const HrpServiceDirInfo& dirInfo, const std::string& fileName, int32_t flags, int& fd) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return RET_HRP_SERVICE_ERR_UNKNOWN; } @@ -2463,7 +2463,7 @@ RetCodeHrpService RSRenderServiceClient::ProfilerServiceOpenFile(const HrpServic RetCodeHrpService RSRenderServiceClient::ProfilerServicePopulateFiles(const HrpServiceDirInfo& dirInfo, uint32_t firstFileIndex, std::vector& outFiles) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService == nullptr) { return RET_HRP_SERVICE_ERR_UNKNOWN; } @@ -2475,7 +2475,7 @@ RetCodeHrpService RSRenderServiceClient::ProfilerServicePopulateFiles(const HrpS bool RSRenderServiceClient::ProfilerIsSecureScreen() { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (renderService != nullptr) { return renderService->ProfilerIsSecureScreen(); } @@ -2484,7 +2484,7 @@ bool RSRenderServiceClient::ProfilerIsSecureScreen() void RSRenderServiceClient::ClearUifirstCache(NodeId id) { - auto renderService = RSRenderServiceConnectHub::GetRenderService(); + auto [renderService, renderRender] = RSRenderServiceConnectHub::GetRenderService(); if (!renderService) { return; } diff --git a/rosen/modules/render_service_base/src/platform/ohos/rs_render_service_connect_hub.cpp b/rosen/modules/render_service_base/src/platform/ohos/rs_render_service_connect_hub.cpp index a9295bbb4e..f49c876116 100755 --- a/rosen/modules/render_service_base/src/platform/ohos/rs_render_service_connect_hub.cpp +++ b/rosen/modules/render_service_base/src/platform/ohos/rs_render_service_connect_hub.cpp @@ -62,25 +62,25 @@ RSRenderServiceConnectHub::~RSRenderServiceConnectHub() noexcept } } -sptr RSRenderServiceConnectHub::GetRenderService() +std::pair, sptr> RSRenderServiceConnectHub::GetRenderService() { auto connHub = RSRenderServiceConnectHub::GetInstance(); - return connHub == nullptr ? nullptr : connHub->GetRenderServiceConnection(); + return connHub == nullptr ? std::make_pair : connHub->GetRenderServiceConnection(); } -sptr RSRenderServiceConnectHub::GetRenderServiceConnection() +std::pair, sptr> RSRenderServiceConnectHub::GetRenderServiceConnection() { std::lock_guard lock(mutex_); - if (conn_ != nullptr && renderService_ != nullptr) { - return conn_; + if (conn_ != nullptr && renderCon_ != nullptr && renderService_ != nullptr) { + return std::make_pair(conn_, renderConn_); } if (!Connect()) { ROSEN_LOGE("RenderService connect fail"); - return nullptr; + return std::make_pair(nullptr, nullptr); } - return conn_; + return std::make_pair(conn_, renderConn_); } bool RSRenderServiceConnectHub::Connect() @@ -125,7 +125,7 @@ bool RSRenderServiceConnectHub::Connect() if (token_ == nullptr) { token_ = new IRemoteStub(); } - sptr conn = renderService->CreateConnection(token_); + auto [conn, renderConn] = renderService->CreateConnection(token_); if (conn == nullptr) { ROSEN_LOGD("RSRenderServiceConnectHub::Connect, failed to CreateConnection to render service."); @@ -134,6 +134,7 @@ bool RSRenderServiceConnectHub::Connect() renderService_ = renderService; conn_ = conn; + renderConn_ = renderConn; if (onConnectCallback_) { onConnectCallback_(conn_); diff --git a/rosen/modules/render_service_base/src/platform/ohos/rs_render_service_connect_hub.h b/rosen/modules/render_service_base/src/platform/ohos/rs_render_service_connect_hub.h index 5899eda259..ad7b63fb8e 100644 --- a/rosen/modules/render_service_base/src/platform/ohos/rs_render_service_connect_hub.h +++ b/rosen/modules/render_service_base/src/platform/ohos/rs_render_service_connect_hub.h @@ -18,6 +18,7 @@ #include #include +#include #include "platform/common/rs_log.h" namespace OHOS { @@ -25,7 +26,7 @@ namespace Rosen { using OnConnectCallback = std::function&)>; class RSRenderServiceConnectHub : public RefBase { public: - static sptr GetRenderService(); + static std::pair, sptr> GetRenderService(); static void SetOnConnectCallback(OnConnectCallback cb) { onConnectCallback_ = cb; @@ -65,6 +66,7 @@ private: sptr renderService_; sptr token_; sptr conn_; + sptr renderConn_; sptr deathRecipient_; static std::once_flag flag_; diff --git a/rosen/modules/render_service_base/src/platform/ohos/rs_render_service_proxy.cpp b/rosen/modules/render_service_base/src/platform/ohos/rs_render_service_proxy.cpp index 9df612c82b..22ef899802 100644 --- a/rosen/modules/render_service_base/src/platform/ohos/rs_render_service_proxy.cpp +++ b/rosen/modules/render_service_base/src/platform/ohos/rs_render_service_proxy.cpp @@ -24,7 +24,8 @@ namespace Rosen { RSRenderServiceProxy::RSRenderServiceProxy(const sptr& impl) : IRemoteProxy(impl) {} -sptr RSRenderServiceProxy::CreateConnection(const sptr& token) +std::pair, sptr> RSRenderServiceProxy::CreateConnection( + const sptr& token) { if (token == nullptr) { ROSEN_LOGE("RSRenderServiceProxy::CreateConnection(): token is null."); @@ -60,13 +61,18 @@ sptr RSRenderServiceProxy::CreateConnection(const sp ROSEN_LOGE("RSRenderServiceProxy::CreateConnection(): ReadBool failed, connection is nullptr."); return nullptr; } - auto remoteObj = reply.ReadRemoteObject(); - if (remoteObj == nullptr || !remoteObj->IsProxyObject()) { + auto remoteObj1 = reply.ReadRemoteObject(); + if (remoteObj1 == nullptr || !remoteObj1->IsProxyObject()) { ROSEN_LOGE("RSRenderServiceProxy::CreateConnection(): Reply is not valid."); return nullptr; } - return iface_cast(remoteObj); + auto conn1 = iface_cast(remoteObj1); + + auto remoteObj2 = reply.ReadRemoteObject(); + auto conn2 = iface_cast(remoteObj2); + + return std::make_pair(conn1, conn2); } } // namespace Rosen } // namespace OHOS diff --git a/rosen/modules/render_service_base/src/platform/ohos/rs_render_service_proxy.h b/rosen/modules/render_service_base/src/platform/ohos/rs_render_service_proxy.h index 8edbe9aeca..c9f60fd743 100644 --- a/rosen/modules/render_service_base/src/platform/ohos/rs_render_service_proxy.h +++ b/rosen/modules/render_service_base/src/platform/ohos/rs_render_service_proxy.h @@ -28,7 +28,8 @@ public: explicit RSRenderServiceProxy(const sptr& impl); virtual ~RSRenderServiceProxy() noexcept = default; - sptr CreateConnection(const sptr& token) override; + std::pair, sptr> CreateConnection( + const sptr& token) override; private: static inline BrokerDelegator delegator_; -- Gitee