Commit 3bf9b9c2 authored by jbauman's avatar jbauman Committed by Commit bot

exo: Implement Surface::SetSurfaceLayerContents

BUG=610086

Review-Url: https://codereview.chromium.org/2046493005
Cr-Commit-Position: refs/heads/master@{#398191}
parent f01caa59
......@@ -887,8 +887,17 @@ void Surface::SetTextureLayerContents(ui::Layer* layer) {
}
void Surface::SetSurfaceLayerContents(ui::Layer* layer) {
// TODO(jbauman): Implement this.
NOTIMPLEMENTED();
if (surface_id_.is_null())
return;
gfx::Size layer_size = layer->bounds().size();
float contents_surface_to_layer_scale = 1.0f;
layer->SetShowSurface(
surface_id_,
base::Bind(&SatisfyCallback, base::Unretained(surface_manager_)),
base::Bind(&RequireCallback, base::Unretained(surface_manager_)),
layer_size, contents_surface_to_layer_scale, layer_size);
}
bool Surface::use_surface_layer_ = false;
......
......@@ -8,7 +8,9 @@
#include "components/exo/test/exo_test_base.h"
#include "components/exo/test/exo_test_helper.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/compositor/layer_tree_owner.h"
#include "ui/gfx/gpu_memory_buffer.h"
#include "ui/wm/core/window_util.h"
namespace exo {
namespace {
......@@ -124,6 +126,26 @@ TEST_P(SurfaceTest, SetBufferScale) {
surface->bounds().size().ToString());
}
TEST_P(SurfaceTest, RecreateLayer) {
gfx::Size buffer_size(512, 512);
std::unique_ptr<Buffer> buffer(
new Buffer(exo_test_helper()->CreateGpuMemoryBuffer(buffer_size)));
std::unique_ptr<Surface> surface(new Surface);
surface->Attach(buffer.get());
surface->Commit();
EXPECT_EQ(buffer_size, surface->bounds().size());
EXPECT_EQ(buffer_size, surface->layer()->bounds().size());
std::unique_ptr<ui::LayerTreeOwner> old_layer_owner =
::wm::RecreateLayers(surface.get(), nullptr);
EXPECT_EQ(buffer_size, surface->bounds().size());
EXPECT_EQ(buffer_size, surface->layer()->bounds().size());
EXPECT_EQ(buffer_size, old_layer_owner->root()->bounds().size());
EXPECT_TRUE(surface->layer()->has_external_content());
EXPECT_TRUE(old_layer_owner->root()->has_external_content());
}
TEST_P(SurfaceTest, SetViewport) {
gfx::Size buffer_size(1, 1);
std::unique_ptr<Buffer> buffer(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment