| Index: cc/output/gl_renderer.cc
|
| diff --git a/cc/output/gl_renderer.cc b/cc/output/gl_renderer.cc
|
| index f618cfd6ae9ed5621ab55f63f7f98d879cc9723b..6487e2e06434b6c9367ab7c9b64e2ae420ece415 100644
|
| --- a/cc/output/gl_renderer.cc
|
| +++ b/cc/output/gl_renderer.cc
|
| @@ -9,13 +9,14 @@
|
|
|
| #include <algorithm>
|
| #include <limits>
|
| +#include <memory>
|
| #include <set>
|
| #include <string>
|
| #include <vector>
|
|
|
| #include "base/logging.h"
|
| #include "base/macros.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| +#include "base/memory/ptr_util.h"
|
| #include "base/strings/string_split.h"
|
| #include "base/strings/string_util.h"
|
| #include "base/strings/stringprintf.h"
|
| @@ -158,14 +159,14 @@ static GLint GetActiveTextureUnit(GLES2Interface* gl) {
|
|
|
| class GLRenderer::ScopedUseGrContext {
|
| public:
|
| - static scoped_ptr<ScopedUseGrContext> Create(GLRenderer* renderer,
|
| - DrawingFrame* frame) {
|
| + static std::unique_ptr<ScopedUseGrContext> Create(GLRenderer* renderer,
|
| + DrawingFrame* frame) {
|
| // GrContext for filters is created lazily, and may fail if the context
|
| // is lost.
|
| // TODO(vmiura,bsalomon): crbug.com/487850 Ensure that
|
| // ContextProvider::GrContext() does not return NULL.
|
| if (renderer->output_surface_->context_provider()->GrContext())
|
| - return make_scoped_ptr(new ScopedUseGrContext(renderer, frame));
|
| + return base::WrapUnique(new ScopedUseGrContext(renderer, frame));
|
| return nullptr;
|
| }
|
|
|
| @@ -189,7 +190,7 @@ class GLRenderer::ScopedUseGrContext {
|
| // scoped_gpu_raster_ passes context control to Skia.
|
| }
|
|
|
| - scoped_ptr<ScopedGpuRaster> scoped_gpu_raster_;
|
| + std::unique_ptr<ScopedGpuRaster> scoped_gpu_raster_;
|
| GLRenderer* renderer_;
|
| DrawingFrame* frame_;
|
|
|
| @@ -199,7 +200,7 @@ class GLRenderer::ScopedUseGrContext {
|
| struct GLRenderer::PendingAsyncReadPixels {
|
| PendingAsyncReadPixels() : buffer(0) {}
|
|
|
| - scoped_ptr<CopyOutputRequest> copy_request;
|
| + std::unique_ptr<CopyOutputRequest> copy_request;
|
| base::CancelableClosure finished_read_pixels_callback;
|
| unsigned buffer;
|
|
|
| @@ -299,19 +300,16 @@ class GLRenderer::SyncQuery {
|
| DISALLOW_COPY_AND_ASSIGN(SyncQuery);
|
| };
|
|
|
| -scoped_ptr<GLRenderer> GLRenderer::Create(
|
| +std::unique_ptr<GLRenderer> GLRenderer::Create(
|
| RendererClient* client,
|
| const RendererSettings* settings,
|
| OutputSurface* output_surface,
|
| ResourceProvider* resource_provider,
|
| TextureMailboxDeleter* texture_mailbox_deleter,
|
| int highp_threshold_min) {
|
| - return make_scoped_ptr(new GLRenderer(client,
|
| - settings,
|
| - output_surface,
|
| - resource_provider,
|
| - texture_mailbox_deleter,
|
| - highp_threshold_min));
|
| + return base::WrapUnique(
|
| + new GLRenderer(client, settings, output_surface, resource_provider,
|
| + texture_mailbox_deleter, highp_threshold_min));
|
| }
|
|
|
| GLRenderer::GLRenderer(RendererClient* client,
|
| @@ -480,7 +478,7 @@ void GLRenderer::BeginDrawingFrame(DrawingFrame* frame) {
|
| }
|
|
|
| current_sync_query_ = available_sync_queries_.empty()
|
| - ? make_scoped_ptr(new SyncQuery(gl_))
|
| + ? base::WrapUnique(new SyncQuery(gl_))
|
| : PopFront(&available_sync_queries_);
|
|
|
| read_lock_fence = current_sync_query_->Begin();
|
| @@ -598,7 +596,7 @@ void GLRenderer::DrawDebugBorderQuad(const DrawingFrame* frame,
|
| }
|
|
|
| static skia::RefPtr<SkImage> ApplyImageFilter(
|
| - scoped_ptr<GLRenderer::ScopedUseGrContext> use_gr_context,
|
| + std::unique_ptr<GLRenderer::ScopedUseGrContext> use_gr_context,
|
| ResourceProvider* resource_provider,
|
| const gfx::RectF& src_rect,
|
| const gfx::RectF& dst_rect,
|
| @@ -835,9 +833,9 @@ gfx::Rect GLRenderer::GetBackdropBoundingBoxForRenderPassQuad(
|
| return backdrop_rect;
|
| }
|
|
|
| -scoped_ptr<ScopedResource> GLRenderer::GetBackdropTexture(
|
| +std::unique_ptr<ScopedResource> GLRenderer::GetBackdropTexture(
|
| const gfx::Rect& bounding_rect) {
|
| - scoped_ptr<ScopedResource> device_background_texture =
|
| + std::unique_ptr<ScopedResource> device_background_texture =
|
| ScopedResource::Create(resource_provider_);
|
| // CopyTexImage2D fails when called on a texture having immutable storage.
|
| device_background_texture->Allocate(
|
| @@ -927,7 +925,7 @@ void GLRenderer::DrawRenderPassQuad(DrawingFrame* frame,
|
| ShouldApplyBackgroundFilters(quad) ||
|
| settings_->force_blending_with_shaders;
|
|
|
| - scoped_ptr<ScopedResource> background_texture;
|
| + std::unique_ptr<ScopedResource> background_texture;
|
| skia::RefPtr<SkImage> background_image;
|
| GLuint background_image_id = 0;
|
| gfx::Rect background_rect;
|
| @@ -1041,7 +1039,7 @@ void GLRenderer::DrawRenderPassQuad(DrawingFrame* frame,
|
| }
|
| }
|
|
|
| - scoped_ptr<ResourceProvider::ScopedSamplerGL> mask_resource_lock;
|
| + std::unique_ptr<ResourceProvider::ScopedSamplerGL> mask_resource_lock;
|
| unsigned mask_texture_id = 0;
|
| SamplerType mask_sampler = SAMPLER_TYPE_NA;
|
| if (quad->mask_resource_id()) {
|
| @@ -1051,13 +1049,13 @@ void GLRenderer::DrawRenderPassQuad(DrawingFrame* frame,
|
| mask_sampler = SamplerTypeFromTextureTarget(mask_resource_lock->target());
|
| }
|
|
|
| - scoped_ptr<ResourceProvider::ScopedSamplerGL> contents_resource_lock;
|
| + std::unique_ptr<ResourceProvider::ScopedSamplerGL> contents_resource_lock;
|
| if (filter_image_id) {
|
| DCHECK_EQ(GL_TEXTURE0, GetActiveTextureUnit(gl_));
|
| gl_->BindTexture(GL_TEXTURE_2D, filter_image_id);
|
| } else {
|
| contents_resource_lock =
|
| - make_scoped_ptr(new ResourceProvider::ScopedSamplerGL(
|
| + base::WrapUnique(new ResourceProvider::ScopedSamplerGL(
|
| resource_provider_, contents_texture->id(), GL_LINEAR));
|
| DCHECK_EQ(static_cast<GLenum>(GL_TEXTURE_2D),
|
| contents_resource_lock->target());
|
| @@ -1220,7 +1218,8 @@ void GLRenderer::DrawRenderPassQuad(DrawingFrame* frame,
|
| gl_->Uniform4fv(locations.color_offset, 1, offset);
|
| }
|
|
|
| - scoped_ptr<ResourceProvider::ScopedSamplerGL> shader_background_sampler_lock;
|
| + std::unique_ptr<ResourceProvider::ScopedSamplerGL>
|
| + shader_background_sampler_lock;
|
| if (locations.backdrop != -1) {
|
| DCHECK(background_texture || background_image_id);
|
| DCHECK_NE(locations.backdrop, 0);
|
| @@ -1240,11 +1239,10 @@ void GLRenderer::DrawRenderPassQuad(DrawingFrame* frame,
|
| gl_->Uniform1i(locations.original_backdrop, ++last_texture_unit);
|
| }
|
| if (background_texture) {
|
| - shader_background_sampler_lock = make_scoped_ptr(
|
| - new ResourceProvider::ScopedSamplerGL(resource_provider_,
|
| - background_texture->id(),
|
| - GL_TEXTURE0 + last_texture_unit,
|
| - GL_LINEAR));
|
| + shader_background_sampler_lock =
|
| + base::WrapUnique(new ResourceProvider::ScopedSamplerGL(
|
| + resource_provider_, background_texture->id(),
|
| + GL_TEXTURE0 + last_texture_unit, GL_LINEAR));
|
| DCHECK_EQ(static_cast<GLenum>(GL_TEXTURE_2D),
|
| shader_background_sampler_lock->target());
|
| }
|
| @@ -1968,7 +1966,7 @@ void GLRenderer::DrawYUVVideoQuad(const DrawingFrame* frame,
|
| ResourceProvider::ScopedSamplerGL v_plane_lock(
|
| resource_provider_, quad->v_plane_resource_id(), GL_TEXTURE3, GL_LINEAR);
|
| DCHECK_EQ(y_plane_lock.target(), v_plane_lock.target());
|
| - scoped_ptr<ResourceProvider::ScopedSamplerGL> a_plane_lock;
|
| + std::unique_ptr<ResourceProvider::ScopedSamplerGL> a_plane_lock;
|
| if (use_alpha_plane) {
|
| a_plane_lock.reset(new ResourceProvider::ScopedSamplerGL(
|
| resource_provider_, quad->a_plane_resource_id(), GL_TEXTURE4,
|
| @@ -2542,7 +2540,7 @@ void GLRenderer::EnsureScissorTestDisabled() {
|
|
|
| void GLRenderer::CopyCurrentRenderPassToBitmap(
|
| DrawingFrame* frame,
|
| - scoped_ptr<CopyOutputRequest> request) {
|
| + std::unique_ptr<CopyOutputRequest> request) {
|
| TRACE_EVENT0("cc", "GLRenderer::CopyCurrentRenderPassToBitmap");
|
| gfx::Rect copy_rect = frame->current_render_pass->output_rect;
|
| if (request->has_area())
|
| @@ -2656,7 +2654,7 @@ void GLRenderer::SwapBuffers(const CompositorFrameMetadata& metadata) {
|
|
|
| CompositorFrame compositor_frame;
|
| compositor_frame.metadata = metadata;
|
| - compositor_frame.gl_frame_data = make_scoped_ptr(new GLFrameData);
|
| + compositor_frame.gl_frame_data = base::WrapUnique(new GLFrameData);
|
| compositor_frame.gl_frame_data->size = surface_size;
|
| if (capabilities_.using_partial_swap) {
|
| // If supported, we can save significant bandwidth by only swapping the
|
| @@ -2732,7 +2730,7 @@ void GLRenderer::EnsureBackbuffer() {
|
| void GLRenderer::GetFramebufferPixelsAsync(
|
| const DrawingFrame* frame,
|
| const gfx::Rect& rect,
|
| - scoped_ptr<CopyOutputRequest> request) {
|
| + std::unique_ptr<CopyOutputRequest> request) {
|
| DCHECK(!request->IsEmpty());
|
| if (request->IsEmpty())
|
| return;
|
| @@ -2783,7 +2781,7 @@ void GLRenderer::GetFramebufferPixelsAsync(
|
|
|
| TextureMailbox texture_mailbox(mailbox, sync_token, GL_TEXTURE_2D);
|
|
|
| - scoped_ptr<SingleReleaseCallback> release_callback;
|
| + std::unique_ptr<SingleReleaseCallback> release_callback;
|
| if (own_mailbox) {
|
| gl_->BindTexture(GL_TEXTURE_2D, 0);
|
| release_callback = texture_mailbox_deleter_->GetReleaseCallback(
|
| @@ -2799,7 +2797,8 @@ void GLRenderer::GetFramebufferPixelsAsync(
|
|
|
| DCHECK(request->force_bitmap_result());
|
|
|
| - scoped_ptr<PendingAsyncReadPixels> pending_read(new PendingAsyncReadPixels);
|
| + std::unique_ptr<PendingAsyncReadPixels> pending_read(
|
| + new PendingAsyncReadPixels);
|
| pending_read->copy_request = std::move(request);
|
| pending_async_read_pixels_.insert(pending_async_read_pixels_.begin(),
|
| std::move(pending_read));
|
| @@ -2863,7 +2862,7 @@ void GLRenderer::FinishedReadback(unsigned source_buffer,
|
| PendingAsyncReadPixels* current_read = iter->get();
|
|
|
| uint8_t* src_pixels = NULL;
|
| - scoped_ptr<SkBitmap> bitmap;
|
| + std::unique_ptr<SkBitmap> bitmap;
|
|
|
| if (source_buffer != 0) {
|
| gl_->BindBuffer(GL_PIXEL_PACK_TRANSFER_BUFFER_CHROMIUM, source_buffer);
|
| @@ -2873,7 +2872,7 @@ void GLRenderer::FinishedReadback(unsigned source_buffer,
|
| if (src_pixels) {
|
| bitmap.reset(new SkBitmap);
|
| bitmap->allocN32Pixels(size.width(), size.height());
|
| - scoped_ptr<SkAutoLockPixels> lock(new SkAutoLockPixels(*bitmap));
|
| + std::unique_ptr<SkAutoLockPixels> lock(new SkAutoLockPixels(*bitmap));
|
| uint8_t* dest_pixels = static_cast<uint8_t*>(bitmap->getPixels());
|
|
|
| size_t row_bytes = size.width() * 4;
|
| @@ -2950,7 +2949,7 @@ bool GLRenderer::BindFramebufferToTexture(DrawingFrame* frame,
|
| SetStencilEnabled(false);
|
| gl_->BindFramebuffer(GL_FRAMEBUFFER, offscreen_framebuffer_id_);
|
| current_framebuffer_lock_ =
|
| - make_scoped_ptr(new ResourceProvider::ScopedWriteLockGL(
|
| + base::WrapUnique(new ResourceProvider::ScopedWriteLockGL(
|
| resource_provider_, texture->id()));
|
| unsigned texture_id = current_framebuffer_lock_->texture_id();
|
| gl_->FramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
|
| @@ -2992,8 +2991,8 @@ void GLRenderer::InitializeSharedObjects() {
|
| gl_->GenFramebuffers(1, &offscreen_framebuffer_id_);
|
|
|
| shared_geometry_ =
|
| - make_scoped_ptr(new StaticGeometryBinding(gl_, QuadVertexRect()));
|
| - clipped_geometry_ = make_scoped_ptr(new DynamicGeometryBinding(gl_));
|
| + base::WrapUnique(new StaticGeometryBinding(gl_, QuadVertexRect()));
|
| + clipped_geometry_ = base::WrapUnique(new DynamicGeometryBinding(gl_));
|
| }
|
|
|
| void GLRenderer::PrepareGeometry(BoundGeometry binding) {
|
| @@ -3547,7 +3546,7 @@ void GLRenderer::ScheduleCALayers(DrawingFrame* frame) {
|
| unsigned texture_id = 0;
|
| if (ca_layer_overlay.contents_resource_id) {
|
| pending_overlay_resources_.push_back(
|
| - make_scoped_ptr(new ResourceProvider::ScopedReadLockGL(
|
| + base::WrapUnique(new ResourceProvider::ScopedReadLockGL(
|
| resource_provider_, ca_layer_overlay.contents_resource_id)));
|
| texture_id = pending_overlay_resources_.back()->texture_id();
|
| }
|
| @@ -3588,7 +3587,7 @@ void GLRenderer::ScheduleOverlays(DrawingFrame* frame) {
|
| DCHECK(texture_id || IsContextLost());
|
| } else {
|
| pending_overlay_resources_.push_back(
|
| - make_scoped_ptr(new ResourceProvider::ScopedReadLockGL(
|
| + base::WrapUnique(new ResourceProvider::ScopedReadLockGL(
|
| resource_provider_, overlay.resource_id)));
|
| texture_id = pending_overlay_resources_.back()->texture_id();
|
| }
|
|
|