1 /*
2 * Copyright (c) 2025 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "hpae_base/rs_hpae_base_data.h"
17 #include "hpae_base/rs_hpae_log.h"
18
19 namespace OHOS::Rosen {
GetInstance()20 RSHpaeBaseData &RSHpaeBaseData::GetInstance()
21 {
22 static RSHpaeBaseData hpaeBaseDataInstance;
23 return hpaeBaseDataInstance;
24 }
25
RSHpaeBaseData()26 RSHpaeBaseData::RSHpaeBaseData()
27 {
28 }
29
~RSHpaeBaseData()30 RSHpaeBaseData::~RSHpaeBaseData() noexcept
31 {
32 }
33
Reset()34 void RSHpaeBaseData::Reset()
35 {
36 }
37
SyncHpaeStatus(HpaeStatus status)38 void RSHpaeBaseData::SyncHpaeStatus(HpaeStatus status)
39 {
40 hpaeStatus_ = status;
41 }
42
SetHpaeInputBuffer(HpaeBufferInfo & inputBuffer)43 void RSHpaeBaseData::SetHpaeInputBuffer(HpaeBufferInfo& inputBuffer)
44 {
45 inputBufferQueue_.clear();
46 inputBufferQueue_.push_back(inputBuffer);
47 }
48
SetHpaeOutputBuffer(HpaeBufferInfo & outputBuffer)49 void RSHpaeBaseData::SetHpaeOutputBuffer(HpaeBufferInfo& outputBuffer)
50 {
51 outputBufferQueue_.clear();
52 outputBufferQueue_.push_back(outputBuffer);
53 }
54
RequestHpaeInputBuffer()55 HpaeBufferInfo RSHpaeBaseData::RequestHpaeInputBuffer()
56 {
57 HpaeBufferInfo result;
58 HPAE_TRACE_NAME_FMT("RequestHpaeInputBuffer: %zu", inputBufferQueue_.size());
59 if (!inputBufferQueue_.empty()) {
60 result = inputBufferQueue_.back();
61 inputBufferQueue_.clear();
62 }
63 return result;
64 }
65
RequestHpaeOutputBuffer()66 HpaeBufferInfo RSHpaeBaseData::RequestHpaeOutputBuffer()
67 {
68 HpaeBufferInfo result;
69 HPAE_TRACE_NAME_FMT("RequestHpaeOutputBuffer: %zu", outputBufferQueue_.size());
70 if (!outputBufferQueue_.empty()) {
71 result = outputBufferQueue_.back();
72 outputBufferQueue_.clear();
73 }
74 return result;
75 }
76
GetHasHpaeBlurNode()77 bool RSHpaeBaseData::GetHasHpaeBlurNode()
78 {
79 return hpaeStatus_.gotHpaeBlurNode;
80 }
81
GetBlurNodeId()82 NodeId RSHpaeBaseData::GetBlurNodeId()
83 {
84 return hpaeStatus_.blurNodeId;
85 }
86
GetPixelStretch()87 Vector4f RSHpaeBaseData::GetPixelStretch()
88 {
89 if (hpaeStatus_.pixelStretch) {
90 return *hpaeStatus_.pixelStretch;
91 } else {
92 return Vector4f(0.f, 0.f, 0.f, 0.f);
93 }
94 }
95
GetGreyCoef()96 Vector2f RSHpaeBaseData::GetGreyCoef()
97 {
98 if (hpaeStatus_.greyCoef) {
99 return *hpaeStatus_.greyCoef;
100 } else {
101 return Vector2f(0.f, 0.f);
102 }
103 }
104
GetTileMode()105 int RSHpaeBaseData::GetTileMode()
106 {
107 return hpaeStatus_.tileMode;
108 }
109
GetBlurRadius()110 float RSHpaeBaseData::GetBlurRadius()
111 {
112 return hpaeStatus_.blurRadius;
113 }
114
GetBrightness()115 float RSHpaeBaseData::GetBrightness()
116 {
117 return hpaeStatus_.brightness;
118 }
119
GetSaturation()120 float RSHpaeBaseData::GetSaturation()
121 {
122 return hpaeStatus_.saturation;
123 }
124
SetIsFirstFrame(bool status)125 void RSHpaeBaseData::SetIsFirstFrame(bool status)
126 {
127 isFirstFrame_ = status;
128 if (isFirstFrame_) {
129 needReset_ = true;
130 }
131 }
132
GetIsFirstFrame()133 bool RSHpaeBaseData::GetIsFirstFrame()
134 {
135 return isFirstFrame_;
136 }
137
GetNeedReset()138 bool RSHpaeBaseData::GetNeedReset()
139 {
140 return needReset_;
141 }
142
SetResetDone()143 void RSHpaeBaseData::SetResetDone()
144 {
145 needReset_ = false;
146 }
147
SetBlurContentChanged(bool status)148 void RSHpaeBaseData::SetBlurContentChanged(bool status)
149 {
150 blurContentChanged_ = status;
151 }
152
GetBlurContentChanged()153 bool RSHpaeBaseData::GetBlurContentChanged()
154 {
155 return blurContentChanged_;
156 }
157
158 } // OHOS::Rosen