| Index: components/exo/surface.cc
|
| diff --git a/components/exo/surface.cc b/components/exo/surface.cc
|
| index d2419a5b64bc41a7e3ad84c24a9f16e80ddad2c3..1147f02197be035606f6be3c8916f32dd7a2ddc5 100644
|
| --- a/components/exo/surface.cc
|
| +++ b/components/exo/surface.cc
|
| @@ -17,6 +17,7 @@
|
| #include "cc/quads/solid_color_draw_quad.h"
|
| #include "cc/quads/texture_draw_quad.h"
|
| #include "cc/resources/single_release_callback.h"
|
| +#include "cc/surfaces/direct_surface_embedding.h"
|
| #include "cc/surfaces/surface.h"
|
| #include "cc/surfaces/surface_factory.h"
|
| #include "cc/surfaces/surface_id_allocator.h"
|
| @@ -141,24 +142,6 @@ class CustomWindowTargeter : public aura::WindowTargeter {
|
| DISALLOW_COPY_AND_ASSIGN(CustomWindowTargeter);
|
| };
|
|
|
| -void SatisfyCallback(cc::SurfaceManager* manager,
|
| - const cc::SurfaceSequence& sequence) {
|
| - std::vector<uint32_t> sequences;
|
| - sequences.push_back(sequence.sequence);
|
| - manager->DidSatisfySequences(sequence.frame_sink_id, &sequences);
|
| -}
|
| -
|
| -void RequireCallback(cc::SurfaceManager* manager,
|
| - const cc::SurfaceId& id,
|
| - const cc::SurfaceSequence& sequence) {
|
| - cc::Surface* surface = manager->GetSurfaceForId(id);
|
| - if (!surface) {
|
| - LOG(ERROR) << "Attempting to require callback on nonexistent surface";
|
| - return;
|
| - }
|
| - surface->AddDestructionDependency(sequence);
|
| -}
|
| -
|
| } // namespace
|
|
|
| ////////////////////////////////////////////////////////////////////////////////
|
| @@ -488,11 +471,12 @@ void Surface::CommitSurfaceHierarchy() {
|
| // mirror layer to update its surface using the latest bounds.
|
| window_->layer()->SetBounds(
|
| gfx::Rect(window_->layer()->bounds().origin(), content_size_));
|
| - window_->layer()->SetShowSurface(
|
| - cc::SurfaceId(factory_owner_->frame_sink_id_, local_frame_id_),
|
| - base::Bind(&SatisfyCallback, base::Unretained(surface_manager_)),
|
| - base::Bind(&RequireCallback, base::Unretained(surface_manager_)),
|
| - content_size_, contents_surface_to_layer_scale, content_size_);
|
| + cc::SurfaceId surface_id(factory_owner_->frame_sink_id_, local_frame_id_);
|
| + cc::SurfaceInfo surface_info(surface_id, contents_surface_to_layer_scale,
|
| + content_size_);
|
| + auto surface_ref = base::MakeUnique<cc::DirectSurfaceEmbedding>(
|
| + surface_info, surface_manager_);
|
| + window_->layer()->SetShowSurface(std::move(surface_ref), content_size_);
|
| window_->layer()->SetFillsBoundsOpaquely(
|
| state_.blend_mode == SkBlendMode::kSrc ||
|
| state_.opaque_region.contains(
|
|
|