Skip to content
This repository was archived by the owner on Oct 8, 2024. It is now read-only.

Commit 43dfb3d

Browse files
committed
[TO BE REMOVED] Force Composition through media backend
Once patches are reviewed, this needs to be removed. Signed-off-by: Harish Krupo <harish.krupo.kps@intel.com>
1 parent b1c980c commit 43dfb3d

File tree

1 file changed

+71
-54
lines changed

1 file changed

+71
-54
lines changed

common/compositor/compositor.cpp

Lines changed: 71 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -73,10 +73,7 @@ bool Compositor::Draw(DisplayPlaneStateList &comp_planes,
7373
plane.GetSourceLayers().begin(),
7474
plane.GetSourceLayers().end());
7575
}
76-
} else if (plane.IsVideoPlane()) {
77-
dedicated_layers.insert(dedicated_layers.end(),
78-
plane.GetSourceLayers().begin(),
79-
plane.GetSourceLayers().end());
76+
} else {
8077
media_state.emplace_back();
8178
plane.SwapSurfaceIfNeeded();
8279
DrawState &state = media_state.back();
@@ -87,59 +84,79 @@ bool Compositor::Draw(DisplayPlaneStateList &comp_planes,
8784
media_state.scaling_mode_ = scaling_mode_;
8885
media_state.deinterlace_ = deinterlace_;
8986
lock_.unlock();
90-
const OverlayLayer &layer = layers[plane.GetSourceLayers().at(0)];
91-
media_state.layer_ = &layer;
92-
} else if (plane.NeedsOffScreenComposition()) {
93-
comp = &plane;
94-
plane.SwapSurfaceIfNeeded();
95-
std::vector<CompositionRegion> &comp_regions =
96-
plane.GetCompositionRegion();
97-
bool regions_empty = comp_regions.empty();
98-
NativeSurface *surface = plane.GetOffScreenTarget();
99-
if (surface == NULL) {
100-
ETRACE("GetOffScreenTarget() returned NULL pointer 'surface'.");
101-
return false;
102-
}
103-
if (!regions_empty &&
104-
(surface->ClearSurface() || surface->IsPartialClear() ||
105-
surface->IsSurfaceDamageChanged())) {
106-
plane.ResetCompositionRegion();
107-
regions_empty = true;
108-
}
109-
110-
if (surface->ClearSurface()) {
111-
plane.UpdateDamage(plane.GetDisplayFrame());
112-
}
113-
114-
if (regions_empty) {
115-
SeparateLayers(dedicated_layers, comp->GetSourceLayers(), display_frame,
116-
surface->GetSurfaceDamage(), comp_regions);
117-
}
118-
119-
std::vector<size_t>().swap(dedicated_layers);
120-
if (comp_regions.empty())
121-
continue;
122-
123-
draw_state.emplace_back();
124-
DrawState &state = draw_state.back();
125-
state.surface_ = surface;
126-
size_t num_regions = comp_regions.size();
127-
state.states_.reserve(num_regions);
128-
bool use_plane_transform = false;
129-
if (plane.GetRotationType() ==
130-
DisplayPlaneState::RotationType::kGPURotation) {
131-
use_plane_transform = true;
132-
}
133-
134-
CalculateRenderState(layers, comp_regions, state,
135-
plane.GetDownScalingFactor(),
136-
plane.IsUsingPlaneScalar(), use_plane_transform);
137-
138-
if (state.states_.empty()) {
139-
draw_state.pop_back();
87+
for (auto layer_id : plane.GetSourceLayers()) {
88+
OverlayLayer *layer = &(layers.at(layer_id));
89+
media_state.layers_.emplace_back(layer);
14090
}
14191
}
14292
}
93+
// } else if (plane.IsVideoPlane()) {
94+
// dedicated_layers.insert(dedicated_layers.end(),
95+
// plane.GetSourceLayers().begin(),
96+
// plane.GetSourceLayers().end());
97+
// media_state.emplace_back();
98+
// plane.SwapSurfaceIfNeeded();
99+
// DrawState &state = media_state.back();
100+
// state.surface_ = plane.GetOffScreenTarget();
101+
// MediaState &media_state = state.media_state_;
102+
// lock_.lock();
103+
// media_state.colors_ = colors_;
104+
// media_state.scaling_mode_ = scaling_mode_;
105+
// media_state.deinterlace_ = deinterlace_;
106+
// lock_.unlock();
107+
// const OverlayLayer &layer = layers[plane.GetSourceLayers().at(0)];
108+
// media_state.layer_ = &layer;
109+
// } else if (plane.NeedsOffScreenComposition()) {
110+
// comp = &plane;
111+
// plane.SwapSurfaceIfNeeded();
112+
// std::vector<CompositionRegion> &comp_regions =
113+
// plane.GetCompositionRegion();
114+
// bool regions_empty = comp_regions.empty();
115+
// NativeSurface *surface = plane.GetOffScreenTarget();
116+
// if (surface == NULL) {
117+
// ETRACE("GetOffScreenTarget() returned NULL pointer 'surface'.");
118+
// return false;
119+
// }
120+
// if (!regions_empty &&
121+
// (surface->ClearSurface() || surface->IsPartialClear() ||
122+
// surface->IsSurfaceDamageChanged())) {
123+
// plane.ResetCompositionRegion();
124+
// regions_empty = true;
125+
// }
126+
127+
// if (surface->ClearSurface()) {
128+
// plane.UpdateDamage(plane.GetDisplayFrame());
129+
// }
130+
131+
// if (regions_empty) {
132+
// SeparateLayers(dedicated_layers, comp->GetSourceLayers(), display_frame,
133+
// surface->GetSurfaceDamage(), comp_regions);
134+
// }
135+
136+
// std::vector<size_t>().swap(dedicated_layers);
137+
// if (comp_regions.empty())
138+
// continue;
139+
140+
// draw_state.emplace_back();
141+
// DrawState &state = draw_state.back();
142+
// state.surface_ = surface;
143+
// size_t num_regions = comp_regions.size();
144+
// state.states_.reserve(num_regions);
145+
// bool use_plane_transform = false;
146+
// if (plane.GetRotationType() ==
147+
// DisplayPlaneState::RotationType::kGPURotation) {
148+
// use_plane_transform = true;
149+
// }
150+
151+
// CalculateRenderState(layers, comp_regions, state,
152+
// plane.GetDownScalingFactor(),
153+
// plane.IsUsingPlaneScalar(), use_plane_transform);
154+
155+
// if (state.states_.empty()) {
156+
// draw_state.pop_back();
157+
// }
158+
// }
159+
// }
143160

144161
bool status = true;
145162
if (!draw_state.empty() || !media_state.empty())

0 commit comments

Comments
 (0)