| Index: cc/resources/resource_provider.cc
|
| diff --git a/cc/resources/resource_provider.cc b/cc/resources/resource_provider.cc
|
| index 3ce8d6361ee257e22c49c7b9203656a9e8b29dba..97bc5e9c5ce211f804a215c185d67a09435d7613 100644
|
| --- a/cc/resources/resource_provider.cc
|
| +++ b/cc/resources/resource_provider.cc
|
| @@ -466,8 +466,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 trm =
|
| + use_distance_field_text_ ? SkSurface::kDistanceField_TextRenderMode
|
| + : SkSurface::kStandard_TextRenderMode;
|
| + surface = skia::AdoptRef(SkSurface::NewRenderTargetDirect(
|
| + gr_texture->asRenderTarget(), trm));
|
| }
|
| break;
|
| }
|
| @@ -592,13 +595,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();
|
| @@ -1247,7 +1252,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),
|
| @@ -1262,7 +1268,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_);
|
| }
|
| @@ -1758,6 +1765,8 @@ SkCanvas* ResourceProvider::MapDirectRasterBuffer(ResourceId id) {
|
| if (!resource->direct_raster_buffer.get()) {
|
| resource->direct_raster_buffer.reset(
|
| new DirectRasterBuffer(resource, this));
|
| + resource->direct_raster_buffer->SetUseDistanceFieldText(
|
| + use_distance_field_text_);
|
| }
|
| return resource->direct_raster_buffer->LockForWrite();
|
| }
|
|
|