summaryrefslogtreecommitdiffstats
path: root/cc
diff options
context:
space:
mode:
authorjvanverth@google.com <jvanverth@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-07 14:48:49 +0000
committerjvanverth@google.com <jvanverth@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-07 14:48:49 +0000
commitb242b14666a75cc11c3e0512e575ebd29f4c7f47 (patch)
treee94ea8afcef16f173cad88f3dc2b3c8142844db0 /cc
parent00681f080a462a62eb38f04faf0b73045e8878f6 (diff)
downloadchromium_src-b242b14666a75cc11c3e0512e575ebd29f4c7f47.zip
chromium_src-b242b14666a75cc11c3e0512e575ebd29f4c7f47.tar.gz
chromium_src-b242b14666a75cc11c3e0512e575ebd29f4c7f47.tar.bz2
Add flag to enable rendering of text using signed distance fields.
This change plumbs through a flag that turns on distance field text in Skia when doing GPU rasterization, as requested by vangelis@chromium.org. BUG=368468 Review URL: https://codereview.chromium.org/266743003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@268758 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc')
-rw-r--r--cc/layers/tiled_layer_unittest.cc3
-rw-r--r--cc/output/gl_renderer_unittest.cc33
-rw-r--r--cc/output/overlay_unittest.cc8
-rw-r--r--cc/output/renderer_unittest.cc3
-rw-r--r--cc/output/software_renderer_unittest.cc3
-rw-r--r--cc/resources/picture_layer_tiling_set_unittest.cc2
-rw-r--r--cc/resources/picture_layer_tiling_unittest.cc2
-rw-r--r--cc/resources/prioritized_resource_unittest.cc3
-rw-r--r--cc/resources/prioritized_tile_set_unittest.cc3
-rw-r--r--cc/resources/raster_worker_pool_perftest.cc4
-rw-r--r--cc/resources/raster_worker_pool_unittest.cc4
-rw-r--r--cc/resources/resource_provider.cc28
-rw-r--r--cc/resources/resource_provider.h12
-rw-r--r--cc/resources/resource_provider_unittest.cc61
-rw-r--r--cc/resources/resource_update_controller_unittest.cc3
-rw-r--r--cc/resources/scoped_resource_unittest.cc8
-rw-r--r--cc/resources/tile_manager_perftest.cc3
-rw-r--r--cc/resources/tile_manager_unittest.cc3
-rw-r--r--cc/resources/video_resource_updater_unittest.cc3
-rw-r--r--cc/test/pixel_test.cc4
-rw-r--r--cc/trees/layer_tree_host_impl.cc3
-rw-r--r--cc/trees/layer_tree_host_unittest_context.cc3
-rw-r--r--cc/trees/layer_tree_settings.h1
23 files changed, 120 insertions, 80 deletions
diff --git a/cc/layers/tiled_layer_unittest.cc b/cc/layers/tiled_layer_unittest.cc
index 35450b9..bc83743 100644
--- a/cc/layers/tiled_layer_unittest.cc
+++ b/cc/layers/tiled_layer_unittest.cc
@@ -122,7 +122,8 @@ class TiledLayerTest : public testing::Test {
DebugScopedSetImplThreadAndMainThreadBlocked
impl_thread_and_main_thread_blocked(proxy_);
resource_provider_ = ResourceProvider::Create(
- output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1);
+ output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1,
+ false);
host_impl_ = make_scoped_ptr(
new FakeLayerTreeHostImpl(proxy_, shared_bitmap_manager_.get()));
}
diff --git a/cc/output/gl_renderer_unittest.cc b/cc/output/gl_renderer_unittest.cc
index f82c06a..c5d729c 100644
--- a/cc/output/gl_renderer_unittest.cc
+++ b/cc/output/gl_renderer_unittest.cc
@@ -158,8 +158,8 @@ class GLRendererWithDefaultHarnessTest : public GLRendererTest {
shared_bitmap_manager_.reset(new TestSharedBitmapManager());
resource_provider_ =
ResourceProvider::Create(
- output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1)
- .Pass();
+ output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1,
+ false).Pass();
renderer_ = make_scoped_ptr(new FakeRendererGL(&renderer_client_,
&settings_,
output_surface_.get(),
@@ -191,8 +191,8 @@ class GLRendererShaderTest : public GLRendererTest {
shared_bitmap_manager_.reset(new TestSharedBitmapManager());
resource_provider_ =
ResourceProvider::Create(
- output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1)
- .Pass();
+ output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1,
+ false).Pass();
renderer_.reset(new FakeRendererGL(&renderer_client_,
&settings_,
output_surface_.get(),
@@ -504,7 +504,7 @@ TEST_F(GLRendererTest, InitializationDoesNotMakeSynchronousCalls) {
scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
new TestSharedBitmapManager());
scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
- output_surface.get(), shared_bitmap_manager.get(), 0, false, 1));
+ output_surface.get(), shared_bitmap_manager.get(), 0, false, 1, false));
LayerTreeSettings settings;
FakeRendererClient renderer_client;
@@ -540,7 +540,7 @@ TEST_F(GLRendererTest, InitializationWithQuicklyLostContextDoesNotAssert) {
scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
new TestSharedBitmapManager());
scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
- output_surface.get(), shared_bitmap_manager.get(), 0, false, 1));
+ output_surface.get(), shared_bitmap_manager.get(), 0, false, 1, false));
LayerTreeSettings settings;
FakeRendererClient renderer_client;
@@ -573,7 +573,7 @@ TEST_F(GLRendererTest, OpaqueBackground) {
scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
new TestSharedBitmapManager());
scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
- output_surface.get(), shared_bitmap_manager.get(), 0, false, 1));
+ output_surface.get(), shared_bitmap_manager.get(), 0, false, 1, false));
LayerTreeSettings settings;
FakeRendererClient renderer_client;
@@ -619,7 +619,7 @@ TEST_F(GLRendererTest, TransparentBackground) {
scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
new TestSharedBitmapManager());
scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
- output_surface.get(), shared_bitmap_manager.get(), 0, false, 1));
+ output_surface.get(), shared_bitmap_manager.get(), 0, false, 1, false));
LayerTreeSettings settings;
FakeRendererClient renderer_client;
@@ -658,7 +658,7 @@ TEST_F(GLRendererTest, OffscreenOutputSurface) {
scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
new TestSharedBitmapManager());
scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
- output_surface.get(), shared_bitmap_manager.get(), 0, false, 1));
+ output_surface.get(), shared_bitmap_manager.get(), 0, false, 1, false));
LayerTreeSettings settings;
FakeRendererClient renderer_client;
@@ -739,7 +739,7 @@ TEST_F(GLRendererTest, VisibilityChangeIsLastCall) {
scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
new TestSharedBitmapManager());
scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
- output_surface.get(), shared_bitmap_manager.get(), 0, false, 1));
+ output_surface.get(), shared_bitmap_manager.get(), 0, false, 1, false));
LayerTreeSettings settings;
FakeRendererClient renderer_client;
@@ -803,7 +803,7 @@ TEST_F(GLRendererTest, ActiveTextureState) {
scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
new TestSharedBitmapManager());
scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
- output_surface.get(), shared_bitmap_manager.get(), 0, false, 1));
+ output_surface.get(), shared_bitmap_manager.get(), 0, false, 1, false));
LayerTreeSettings settings;
FakeRendererClient renderer_client;
@@ -882,7 +882,7 @@ TEST_F(GLRendererTest, ShouldClearRootRenderPass) {
scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
new TestSharedBitmapManager());
scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
- output_surface.get(), shared_bitmap_manager.get(), 0, false, 1));
+ output_surface.get(), shared_bitmap_manager.get(), 0, false, 1, false));
LayerTreeSettings settings;
settings.should_clear_root_render_pass = false;
@@ -974,7 +974,7 @@ TEST_F(GLRendererTest, ScissorTestWhenClearing) {
scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
new TestSharedBitmapManager());
scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
- output_surface.get(), shared_bitmap_manager.get(), 0, false, 1));
+ output_surface.get(), shared_bitmap_manager.get(), 0, false, 1, false));
LayerTreeSettings settings;
FakeRendererClient renderer_client;
@@ -1067,7 +1067,7 @@ TEST_F(GLRendererTest, NoDiscardOnPartialUpdates) {
scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
new TestSharedBitmapManager());
scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
- output_surface.get(), shared_bitmap_manager.get(), 0, false, 1));
+ output_surface.get(), shared_bitmap_manager.get(), 0, false, 1, false));
LayerTreeSettings settings;
settings.partial_swap_enabled = true;
@@ -1252,7 +1252,7 @@ TEST_F(GLRendererTest, ScissorAndViewportWithinNonreshapableSurface) {
scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
new TestSharedBitmapManager());
scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
- output_surface.get(), shared_bitmap_manager.get(), 0, false, 1));
+ output_surface.get(), shared_bitmap_manager.get(), 0, false, 1, false));
LayerTreeSettings settings;
FakeRendererClient renderer_client;
@@ -1627,7 +1627,8 @@ class MockOutputSurfaceTest : public GLRendererTest {
shared_bitmap_manager_.reset(new TestSharedBitmapManager());
resource_provider_ =
ResourceProvider::Create(
- &output_surface_, shared_bitmap_manager_.get(), 0, false, 1).Pass();
+ &output_surface_, shared_bitmap_manager_.get(), 0, false, 1, false)
+ .Pass();
renderer_.reset(new FakeRendererGL(&renderer_client_,
&settings_,
diff --git a/cc/output/overlay_unittest.cc b/cc/output/overlay_unittest.cc
index 3b0c65a..c258c9d 100644
--- a/cc/output/overlay_unittest.cc
+++ b/cc/output/overlay_unittest.cc
@@ -213,7 +213,7 @@ TEST(OverlayTest, OverlaysProcessorHasStrategy) {
scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
new TestSharedBitmapManager());
scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
- &output_surface, shared_bitmap_manager.get(), 0, false, 1));
+ &output_surface, shared_bitmap_manager.get(), 0, false, 1, false));
scoped_ptr<DefaultOverlayProcessor> overlay_processor(
new DefaultOverlayProcessor(&output_surface, resource_provider.get()));
@@ -232,7 +232,8 @@ class SingleOverlayOnTopTest : public testing::Test {
shared_bitmap_manager_.reset(new TestSharedBitmapManager());
resource_provider_ = ResourceProvider::Create(
- output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1);
+ output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1,
+ false);
overlay_processor_.reset(new SingleOverlayProcessor(
output_surface_.get(), resource_provider_.get()));
@@ -510,7 +511,8 @@ class GLRendererWithOverlaysTest : public testing::Test {
output_surface_.reset(new OverlayOutputSurface(provider_));
CHECK(output_surface_->BindToClient(&output_surface_client_));
resource_provider_ =
- ResourceProvider::Create(output_surface_.get(), NULL, 0, false, 1);
+ ResourceProvider::Create(output_surface_.get(), NULL, 0, false, 1,
+ false);
provider_->support()->SetScheduleOverlayPlaneCallback(base::Bind(
&MockOverlayScheduler::Schedule, base::Unretained(&scheduler_)));
diff --git a/cc/output/renderer_unittest.cc b/cc/output/renderer_unittest.cc
index c6185ec..f103baa 100644
--- a/cc/output/renderer_unittest.cc
+++ b/cc/output/renderer_unittest.cc
@@ -62,7 +62,8 @@ class RendererTest : public ::testing::Test {
output_surface_.reset(new OutputSurface(context_provider_));
output_surface_->BindToClient(&output_surface_client_);
resource_provider_ =
- ResourceProvider::Create(output_surface_.get(), NULL, 0, false, 1);
+ ResourceProvider::Create(output_surface_.get(), NULL, 0, false, 1,
+ false);
renderer_ = CreateRenderer<T>(&renderer_client_,
&tree_settings_,
output_surface_.get(),
diff --git a/cc/output/software_renderer_unittest.cc b/cc/output/software_renderer_unittest.cc
index a80d052..2fd6c6d5 100644
--- a/cc/output/software_renderer_unittest.cc
+++ b/cc/output/software_renderer_unittest.cc
@@ -35,7 +35,8 @@ class SoftwareRendererTest : public testing::Test, public RendererClient {
shared_bitmap_manager_.reset(new TestSharedBitmapManager());
resource_provider_ = ResourceProvider::Create(
- output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1);
+ output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1,
+ false);
renderer_ = SoftwareRenderer::Create(
this, &settings_, output_surface_.get(), resource_provider());
}
diff --git a/cc/resources/picture_layer_tiling_set_unittest.cc b/cc/resources/picture_layer_tiling_set_unittest.cc
index 32a64eb..259301b 100644
--- a/cc/resources/picture_layer_tiling_set_unittest.cc
+++ b/cc/resources/picture_layer_tiling_set_unittest.cc
@@ -69,7 +69,7 @@ class PictureLayerTilingSetTestWithResources : public testing::Test {
scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
new TestSharedBitmapManager());
scoped_ptr<ResourceProvider> resource_provider = ResourceProvider::Create(
- output_surface.get(), shared_bitmap_manager.get(), 0, false, 1);
+ output_surface.get(), shared_bitmap_manager.get(), 0, false, 1, false);
FakePictureLayerTilingClient client(resource_provider.get());
client.SetTileSize(gfx::Size(256, 256));
diff --git a/cc/resources/picture_layer_tiling_unittest.cc b/cc/resources/picture_layer_tiling_unittest.cc
index e1eddd7..82a1080 100644
--- a/cc/resources/picture_layer_tiling_unittest.cc
+++ b/cc/resources/picture_layer_tiling_unittest.cc
@@ -948,7 +948,7 @@ TEST(PictureLayerTilingTest, TilingEvictionTileIteratorStaticViewport) {
CHECK(output_surface->BindToClient(&output_surface_client));
TestSharedBitmapManager shared_bitmap_manager;
scoped_ptr<ResourceProvider> resource_provider = ResourceProvider::Create(
- output_surface.get(), &shared_bitmap_manager, 0, false, 1);
+ output_surface.get(), &shared_bitmap_manager, 0, false, 1, false);
FakePictureLayerTilingClient client(resource_provider.get());
scoped_ptr<TestablePictureLayerTiling> tiling;
diff --git a/cc/resources/prioritized_resource_unittest.cc b/cc/resources/prioritized_resource_unittest.cc
index 7bbe70f..14eb317 100644
--- a/cc/resources/prioritized_resource_unittest.cc
+++ b/cc/resources/prioritized_resource_unittest.cc
@@ -29,7 +29,8 @@ class PrioritizedResourceTest : public testing::Test {
CHECK(output_surface_->BindToClient(&output_surface_client_));
shared_bitmap_manager_.reset(new TestSharedBitmapManager());
resource_provider_ = ResourceProvider::Create(
- output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1);
+ output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1,
+ false);
}
virtual ~PrioritizedResourceTest() {
diff --git a/cc/resources/prioritized_tile_set_unittest.cc b/cc/resources/prioritized_tile_set_unittest.cc
index ebe144e..69fef52 100644
--- a/cc/resources/prioritized_tile_set_unittest.cc
+++ b/cc/resources/prioritized_tile_set_unittest.cc
@@ -57,7 +57,8 @@ class PrioritizedTileSetTest : public testing::Test {
shared_bitmap_manager_.reset(new TestSharedBitmapManager());
resource_provider_ =
ResourceProvider::Create(
- output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1)
+ output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1,
+ false)
.Pass();
resource_pool_ = ResourcePool::Create(
resource_provider_.get(), GL_TEXTURE_2D, RGBA_8888);
diff --git a/cc/resources/raster_worker_pool_perftest.cc b/cc/resources/raster_worker_pool_perftest.cc
index 14e4d23..0689e50 100644
--- a/cc/resources/raster_worker_pool_perftest.cc
+++ b/cc/resources/raster_worker_pool_perftest.cc
@@ -158,8 +158,8 @@ class RasterWorkerPoolPerfTestBase {
shared_bitmap_manager_.reset(new TestSharedBitmapManager());
resource_provider_ =
ResourceProvider::Create(
- output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1)
- .Pass();
+ output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1,
+ false).Pass();
staging_resource_pool_ = ResourcePool::Create(
resource_provider_.get(), GL_TEXTURE_2D, RGBA_8888);
}
diff --git a/cc/resources/raster_worker_pool_unittest.cc b/cc/resources/raster_worker_pool_unittest.cc
index 32373a5..7a5f324 100644
--- a/cc/resources/raster_worker_pool_unittest.cc
+++ b/cc/resources/raster_worker_pool_unittest.cc
@@ -114,8 +114,8 @@ class RasterWorkerPoolTest
shared_bitmap_manager_.reset(new TestSharedBitmapManager());
resource_provider_ =
ResourceProvider::Create(
- output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1)
- .Pass();
+ output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1,
+ false).Pass();
staging_resource_pool_ = ResourcePool::Create(
resource_provider_.get(), GL_TEXTURE_2D, RGBA_8888);
diff --git a/cc/resources/resource_provider.cc b/cc/resources/resource_provider.cc
index 538e57b..c49591c 100644
--- a/cc/resources/resource_provider.cc
+++ b/cc/resources/resource_provider.cc
@@ -431,8 +431,11 @@ bool ResourceProvider::RasterBuffer::UnlockForWrite() {
ResourceProvider::DirectRasterBuffer::DirectRasterBuffer(
const Resource* resource,
- ResourceProvider* resource_provider)
- : RasterBuffer(resource, resource_provider), surface_generation_id_(0u) {}
+ ResourceProvider* resource_provider,
+ bool use_distance_field_text )
+ : RasterBuffer(resource, resource_provider),
+ surface_generation_id_(0u),
+ use_distance_field_text_(use_distance_field_text) {}
ResourceProvider::DirectRasterBuffer::~DirectRasterBuffer() {}
@@ -466,8 +469,11 @@ skia::RefPtr<SkSurface> ResourceProvider::DirectRasterBuffer::CreateSurface() {
desc.fTextureHandle = resource()->gl_id;
skia::RefPtr<GrTexture> gr_texture =
skia::AdoptRef(gr_context->wrapBackendTexture(desc));
- surface = skia::AdoptRef(
- SkSurface::NewRenderTargetDirect(gr_texture->asRenderTarget()));
+ SkSurface::TextRenderMode text_render_mode =
+ use_distance_field_text_ ? SkSurface::kDistanceField_TextRenderMode
+ : SkSurface::kStandard_TextRenderMode;
+ surface = skia::AdoptRef(SkSurface::NewRenderTargetDirect(
+ gr_texture->asRenderTarget(), text_render_mode));
}
break;
}
@@ -592,13 +598,15 @@ scoped_ptr<ResourceProvider> ResourceProvider::Create(
SharedBitmapManager* shared_bitmap_manager,
int highp_threshold_min,
bool use_rgba_4444_texture_format,
- size_t id_allocation_chunk_size) {
+ size_t id_allocation_chunk_size,
+ bool use_distance_field_text) {
scoped_ptr<ResourceProvider> resource_provider(
new ResourceProvider(output_surface,
shared_bitmap_manager,
highp_threshold_min,
use_rgba_4444_texture_format,
- id_allocation_chunk_size));
+ id_allocation_chunk_size,
+ use_distance_field_text));
if (resource_provider->ContextGL())
resource_provider->InitializeGL();
@@ -1237,7 +1245,8 @@ ResourceProvider::ResourceProvider(OutputSurface* output_surface,
SharedBitmapManager* shared_bitmap_manager,
int highp_threshold_min,
bool use_rgba_4444_texture_format,
- size_t id_allocation_chunk_size)
+ size_t id_allocation_chunk_size,
+ bool use_distance_field_text)
: output_surface_(output_surface),
shared_bitmap_manager_(shared_bitmap_manager),
lost_output_surface_(false),
@@ -1252,7 +1261,8 @@ ResourceProvider::ResourceProvider(OutputSurface* output_surface,
best_texture_format_(RGBA_8888),
use_rgba_4444_texture_format_(use_rgba_4444_texture_format),
id_allocation_chunk_size_(id_allocation_chunk_size),
- use_sync_query_(false) {
+ use_sync_query_(false),
+ use_distance_field_text_(use_distance_field_text) {
DCHECK(output_surface_->HasClient());
DCHECK(id_allocation_chunk_size_);
}
@@ -1741,7 +1751,7 @@ SkCanvas* ResourceProvider::MapDirectRasterBuffer(ResourceId id) {
Resource* resource = GetResource(id);
if (!resource->direct_raster_buffer.get()) {
resource->direct_raster_buffer.reset(
- new DirectRasterBuffer(resource, this));
+ new DirectRasterBuffer(resource, this, use_distance_field_text_));
}
return resource->direct_raster_buffer->LockForWrite();
}
diff --git a/cc/resources/resource_provider.h b/cc/resources/resource_provider.h
index 4cd9c46..1d991e2 100644
--- a/cc/resources/resource_provider.h
+++ b/cc/resources/resource_provider.h
@@ -75,7 +75,8 @@ class CC_EXPORT ResourceProvider {
SharedBitmapManager* shared_bitmap_manager,
int highp_threshold_min,
bool use_rgba_4444_texture_format,
- size_t id_allocation_chunk_size);
+ size_t id_allocation_chunk_size,
+ bool use_distance_field_text);
virtual ~ResourceProvider();
void InitializeSoftware();
@@ -476,7 +477,8 @@ class CC_EXPORT ResourceProvider {
class DirectRasterBuffer : public RasterBuffer {
public:
DirectRasterBuffer(const Resource* resource,
- ResourceProvider* resource_provider);
+ ResourceProvider* resource_provider,
+ bool use_distance_field_text);
virtual ~DirectRasterBuffer();
protected:
@@ -487,6 +489,7 @@ class CC_EXPORT ResourceProvider {
private:
skia::RefPtr<SkSurface> surface_;
uint32_t surface_generation_id_;
+ const bool use_distance_field_text_;
DISALLOW_COPY_AND_ASSIGN(DirectRasterBuffer);
};
@@ -565,7 +568,8 @@ class CC_EXPORT ResourceProvider {
SharedBitmapManager* shared_bitmap_manager,
int highp_threshold_min,
bool use_rgba_4444_texture_format,
- size_t id_allocation_chunk_size);
+ size_t id_allocation_chunk_size,
+ bool use_distance_field_text);
void CleanUpGLIfNeeded();
@@ -651,6 +655,8 @@ class CC_EXPORT ResourceProvider {
bool use_sync_query_;
+ bool use_distance_field_text_;
+
DISALLOW_COPY_AND_ASSIGN(ResourceProvider);
};
diff --git a/cc/resources/resource_provider_unittest.cc b/cc/resources/resource_provider_unittest.cc
index 05b3233..547bdbb 100644
--- a/cc/resources/resource_provider_unittest.cc
+++ b/cc/resources/resource_provider_unittest.cc
@@ -403,13 +403,15 @@ class ResourceProviderTest
shared_bitmap_manager_.reset(new TestSharedBitmapManager());
resource_provider_ = ResourceProvider::Create(
- output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1);
+ output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1,
+ false);
child_resource_provider_ = ResourceProvider::Create(
child_output_surface_.get(),
shared_bitmap_manager_.get(),
0,
false,
- 1);
+ 1,
+ false);
}
static void CollectResources(ReturnedResourceArray* array,
@@ -1112,7 +1114,8 @@ TEST_P(ResourceProviderTest, TransferGLToSoftware) {
CHECK(child_output_surface->BindToClient(&child_output_surface_client));
scoped_ptr<ResourceProvider> child_resource_provider(ResourceProvider::Create(
- child_output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
+ child_output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1,
+ false));
gfx::Size size(1, 1);
ResourceFormat format = RGBA_8888;
@@ -1592,7 +1595,8 @@ class ResourceProviderTestTextureFilters : public ResourceProviderTest {
shared_bitmap_manager.get(),
0,
false,
- 1));
+ 1,
+ false));
scoped_ptr<TextureStateTrackingContext> parent_context_owned(
new TextureStateTrackingContext);
@@ -1608,7 +1612,8 @@ class ResourceProviderTestTextureFilters : public ResourceProviderTest {
shared_bitmap_manager.get(),
0,
false,
- 1));
+ 1,
+ false));
gfx::Size size(1, 1);
ResourceFormat format = RGBA_8888;
@@ -2216,7 +2221,7 @@ TEST_P(ResourceProviderTest, ScopedSampler) {
CHECK(output_surface->BindToClient(&output_surface_client));
scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
- output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
+ output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1, false));
gfx::Size size(1, 1);
ResourceFormat format = RGBA_8888;
@@ -2297,7 +2302,7 @@ TEST_P(ResourceProviderTest, ManagedResource) {
CHECK(output_surface->BindToClient(&output_surface_client));
scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
- output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
+ output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1, false));
gfx::Size size(1, 1);
ResourceFormat format = RGBA_8888;
@@ -2346,7 +2351,7 @@ TEST_P(ResourceProviderTest, TextureWrapMode) {
CHECK(output_surface->BindToClient(&output_surface_client));
scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
- output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
+ output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1, false));
gfx::Size size(1, 1);
ResourceFormat format = RGBA_8888;
@@ -2400,7 +2405,7 @@ TEST_P(ResourceProviderTest, TextureMailbox_SharedMemory) {
CHECK(output_surface->BindToClient(&output_surface_client));
scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
- output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
+ output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1, false));
scoped_ptr<SingleReleaseCallback> callback = SingleReleaseCallback::Create(
base::Bind(&EmptyReleaseCallback));
@@ -2435,7 +2440,7 @@ TEST_P(ResourceProviderTest, TextureMailbox_GLTexture2D) {
CHECK(output_surface->BindToClient(&output_surface_client));
scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
- output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
+ output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1, false));
unsigned texture_id = 1;
uint32 sync_point = 30;
@@ -2499,7 +2504,7 @@ TEST_P(ResourceProviderTest, TextureMailbox_GLTextureExternalOES) {
CHECK(output_surface->BindToClient(&output_surface_client));
scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
- output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
+ output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1, false));
unsigned texture_id = 1;
uint32 sync_point = 30;
@@ -2637,7 +2642,7 @@ TEST_P(ResourceProviderTest, TextureAllocation) {
CHECK(output_surface->BindToClient(&output_surface_client));
scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
- output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
+ output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1, false));
gfx::Size size(2, 2);
gfx::Vector2d offset(0, 0);
@@ -2710,7 +2715,7 @@ TEST_P(ResourceProviderTest, TextureAllocationStorageUsageAny) {
CHECK(output_surface->BindToClient(&output_surface_client));
scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
- output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
+ output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1, false));
gfx::Size size(2, 2);
ResourceFormat format = RGBA_8888;
@@ -2747,7 +2752,7 @@ TEST_P(ResourceProviderTest, TextureAllocationStorageUsageFramebuffer) {
CHECK(output_surface->BindToClient(&output_surface_client));
scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
- output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
+ output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1, false));
gfx::Size size(2, 2);
ResourceFormat format = RGBA_8888;
@@ -2790,7 +2795,7 @@ TEST_P(ResourceProviderTest, PixelBuffer_GLTexture) {
int texture_id = 123;
scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
- output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
+ output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1, false));
id = resource_provider->CreateResource(
size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format);
@@ -2831,7 +2836,7 @@ TEST_P(ResourceProviderTest, ForcingAsyncUploadToComplete) {
int texture_id = 123;
scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
- output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
+ output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1, false));
id = resource_provider->CreateResource(
size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format);
@@ -2872,7 +2877,7 @@ TEST_P(ResourceProviderTest, PixelBufferLostContext) {
int texture_id = 123;
scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
- output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
+ output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1, false));
EXPECT_CALL(*context, NextTextureId()).WillRepeatedly(Return(texture_id));
@@ -2911,7 +2916,7 @@ TEST_P(ResourceProviderTest, Image_GLTexture) {
const unsigned kImageId = 234u;
scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
- output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
+ output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1, false));
id = resource_provider->CreateResource(
size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format);
@@ -3005,7 +3010,7 @@ TEST_P(ResourceProviderTest, Image_Bitmap) {
const uint32_t kBadBeef = 0xbadbeef;
scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
- output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
+ output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1, false));
id = resource_provider->CreateResource(
size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format);
@@ -3053,7 +3058,7 @@ TEST_P(ResourceProviderTest, CopyResource_GLTexture) {
const unsigned kImageId = 234u;
scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
- output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
+ output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1, false));
source_id = resource_provider->CreateResource(
size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format);
@@ -3131,7 +3136,7 @@ TEST_P(ResourceProviderTest, CopyResource_Bitmap) {
const uint32_t kBadBeef = 0xbadbeef;
scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
- output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
+ output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1, false));
source_id = resource_provider->CreateResource(
size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format);
@@ -3188,7 +3193,7 @@ TEST(ResourceProviderTest, BasicInitializeGLSoftware) {
scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
new TestSharedBitmapManager());
scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
- output_surface.get(), shared_bitmap_manager.get(), 0, false, 1));
+ output_surface.get(), shared_bitmap_manager.get(), 0, false, 1, false));
CheckCreateResource(ResourceProvider::Bitmap, resource_provider.get(), NULL);
@@ -3225,7 +3230,8 @@ TEST_P(ResourceProviderTest, CompressedTextureETC1Allocate) {
shared_bitmap_manager_.get(),
0,
false,
- 1));
+ 1,
+ false));
int texture_id = 123;
ResourceProvider::ResourceId id = resource_provider->CreateResource(
@@ -3259,7 +3265,8 @@ TEST_P(ResourceProviderTest, CompressedTextureETC1SetPixels) {
shared_bitmap_manager_.get(),
0,
false,
- 1));
+ 1,
+ false));
int texture_id = 123;
uint8_t pixels[8];
@@ -3318,7 +3325,8 @@ TEST(ResourceProviderTest, TextureAllocationChunkSize) {
shared_bitmap_manager.get(),
0,
false,
- kTextureAllocationChunkSize));
+ kTextureAllocationChunkSize,
+ false));
ResourceProvider::ResourceId id = resource_provider->CreateResource(
size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format);
@@ -3336,7 +3344,8 @@ TEST(ResourceProviderTest, TextureAllocationChunkSize) {
shared_bitmap_manager.get(),
0,
false,
- kTextureAllocationChunkSize));
+ kTextureAllocationChunkSize,
+ false));
ResourceProvider::ResourceId id = resource_provider->CreateResource(
size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format);
diff --git a/cc/resources/resource_update_controller_unittest.cc b/cc/resources/resource_update_controller_unittest.cc
index 44e65a5..0fb899d 100644
--- a/cc/resources/resource_update_controller_unittest.cc
+++ b/cc/resources/resource_update_controller_unittest.cc
@@ -126,7 +126,8 @@ class ResourceUpdateControllerTest : public Test {
shared_bitmap_manager_.reset(new TestSharedBitmapManager());
resource_provider_ = ResourceProvider::Create(
- output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1);
+ output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1,
+ false);
}
void AppendFullUploadsOfIndexedTextureToUpdateQueue(int count,
diff --git a/cc/resources/scoped_resource_unittest.cc b/cc/resources/scoped_resource_unittest.cc
index 8c97d8e..5042221 100644
--- a/cc/resources/scoped_resource_unittest.cc
+++ b/cc/resources/scoped_resource_unittest.cc
@@ -22,7 +22,7 @@ TEST(ScopedResourceTest, NewScopedResource) {
scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
new TestSharedBitmapManager());
scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
- output_surface.get(), shared_bitmap_manager.get(), 0, false, 1));
+ output_surface.get(), shared_bitmap_manager.get(), 0, false, 1, false));
scoped_ptr<ScopedResource> texture =
ScopedResource::Create(resource_provider.get());
@@ -42,7 +42,7 @@ TEST(ScopedResourceTest, CreateScopedResource) {
scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
new TestSharedBitmapManager());
scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
- output_surface.get(), shared_bitmap_manager.get(), 0, false, 1));
+ output_surface.get(), shared_bitmap_manager.get(), 0, false, 1, false));
scoped_ptr<ScopedResource> texture =
ScopedResource::Create(resource_provider.get());
texture->Allocate(gfx::Size(30, 30),
@@ -66,7 +66,7 @@ TEST(ScopedResourceTest, ScopedResourceIsDeleted) {
scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
new TestSharedBitmapManager());
scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
- output_surface.get(), shared_bitmap_manager.get(), 0, false, 1));
+ output_surface.get(), shared_bitmap_manager.get(), 0, false, 1, false));
{
scoped_ptr<ScopedResource> texture =
ScopedResource::Create(resource_provider.get());
@@ -102,7 +102,7 @@ TEST(ScopedResourceTest, LeakScopedResource) {
scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
new TestSharedBitmapManager());
scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
- output_surface.get(), shared_bitmap_manager.get(), 0, false, 1));
+ output_surface.get(), shared_bitmap_manager.get(), 0, false, 1, false));
{
scoped_ptr<ScopedResource> texture =
ScopedResource::Create(resource_provider.get());
diff --git a/cc/resources/tile_manager_perftest.cc b/cc/resources/tile_manager_perftest.cc
index e81270d..d16eba82 100644
--- a/cc/resources/tile_manager_perftest.cc
+++ b/cc/resources/tile_manager_perftest.cc
@@ -47,7 +47,8 @@ class TileManagerPerfTest : public testing::Test {
shared_bitmap_manager_.reset(new TestSharedBitmapManager());
resource_provider_ = ResourceProvider::Create(
- output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1);
+ output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1,
+ false);
resource_pool_ = ResourcePool::Create(
resource_provider_.get(), GL_TEXTURE_2D, RGBA_8888);
size_t raster_task_limit_bytes = 32 * 1024 * 1024; // 16-64MB in practice.
diff --git a/cc/resources/tile_manager_unittest.cc b/cc/resources/tile_manager_unittest.cc
index d3f14ae..889a758 100644
--- a/cc/resources/tile_manager_unittest.cc
+++ b/cc/resources/tile_manager_unittest.cc
@@ -39,7 +39,8 @@ class TileManagerTest : public testing::TestWithParam<bool>,
shared_bitmap_manager_.reset(new TestSharedBitmapManager());
resource_provider_ = ResourceProvider::Create(
- output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1);
+ output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1,
+ false);
resource_pool_ = ResourcePool::Create(
resource_provider_.get(), GL_TEXTURE_2D, RGBA_8888);
tile_manager_ = make_scoped_ptr(new FakeTileManager(
diff --git a/cc/resources/video_resource_updater_unittest.cc b/cc/resources/video_resource_updater_unittest.cc
index ed53eb9..05bcf22 100644
--- a/cc/resources/video_resource_updater_unittest.cc
+++ b/cc/resources/video_resource_updater_unittest.cc
@@ -28,7 +28,8 @@ class VideoResourceUpdaterTest : public testing::Test {
CHECK(output_surface3d_->BindToClient(&client_));
shared_bitmap_manager_.reset(new TestSharedBitmapManager());
resource_provider3d_ = ResourceProvider::Create(
- output_surface3d_.get(), shared_bitmap_manager_.get(), 0, false, 1);
+ output_surface3d_.get(), shared_bitmap_manager_.get(), 0, false, 1,
+ false);
}
scoped_refptr<media::VideoFrame> CreateTestYUVVideoFrame() {
diff --git a/cc/test/pixel_test.cc b/cc/test/pixel_test.cc
index f716eea..ae2e998 100644
--- a/cc/test/pixel_test.cc
+++ b/cc/test/pixel_test.cc
@@ -110,7 +110,7 @@ void PixelTest::SetUpGLRenderer(bool use_skia_gpu_backend) {
shared_bitmap_manager_.reset(new TestSharedBitmapManager());
resource_provider_ = ResourceProvider::Create(
- output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1);
+ output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1, false);
texture_mailbox_deleter_ = make_scoped_ptr(
new TextureMailboxDeleter(base::MessageLoopProxy::current()));
@@ -152,7 +152,7 @@ void PixelTest::SetUpSoftwareRenderer() {
output_surface_->BindToClient(output_surface_client_.get());
shared_bitmap_manager_.reset(new TestSharedBitmapManager());
resource_provider_ = ResourceProvider::Create(
- output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1);
+ output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1, false);
renderer_ =
SoftwareRenderer::Create(
this, &settings_, output_surface_.get(), resource_provider_.get())
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
index e158759..9950faa 100644
--- a/cc/trees/layer_tree_host_impl.cc
+++ b/cc/trees/layer_tree_host_impl.cc
@@ -1952,7 +1952,8 @@ bool LayerTreeHostImpl::InitializeRenderer(
shared_bitmap_manager_,
settings_.highp_threshold_min,
settings_.use_rgba_4444_textures,
- settings_.texture_id_allocation_chunk_size);
+ settings_.texture_id_allocation_chunk_size,
+ settings_.use_distance_field_text);
if (output_surface->capabilities().deferred_gl_initialization)
EnforceZeroBudget(true);
diff --git a/cc/trees/layer_tree_host_unittest_context.cc b/cc/trees/layer_tree_host_unittest_context.cc
index 84e324b..334368f 100644
--- a/cc/trees/layer_tree_host_unittest_context.cc
+++ b/cc/trees/layer_tree_host_unittest_context.cc
@@ -679,7 +679,8 @@ class LayerTreeHostContextTestDontUseLostResources
child_output_surface_->BindToClient(&output_surface_client_);
shared_bitmap_manager_.reset(new TestSharedBitmapManager());
child_resource_provider_ = ResourceProvider::Create(
- child_output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1);
+ child_output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1,
+ false);
}
static void EmptyReleaseCallback(unsigned sync_point, bool lost) {}
diff --git a/cc/trees/layer_tree_settings.h b/cc/trees/layer_tree_settings.h
index ad3ee6f..6febd84 100644
--- a/cc/trees/layer_tree_settings.h
+++ b/cc/trees/layer_tree_settings.h
@@ -30,6 +30,7 @@ class CC_EXPORT LayerTreeSettings {
bool partial_swap_enabled;
bool accelerated_animation_enabled;
bool can_use_lcd_text;
+ bool use_distance_field_text;
bool should_clear_root_render_pass;
bool gpu_rasterization_enabled;
bool gpu_rasterization_forced;