| Index: cc/gl_renderer.cc
|
| diff --git a/cc/gl_renderer.cc b/cc/gl_renderer.cc
|
| index e768952112c8db016dd7d2364851934646864e98..7016d91b0db1b3a9c9899a801844e3c15df9baeb 100644
|
| --- a/cc/gl_renderer.cc
|
| +++ b/cc/gl_renderer.cc
|
| @@ -19,7 +19,7 @@
|
| #include "cc/proxy.h"
|
| #include "cc/render_pass.h"
|
| #include "cc/render_surface_filters.h"
|
| -#include "cc/scoped_texture.h"
|
| +#include "cc/scoped_resource.h"
|
| #include "cc/settings.h"
|
| #include "cc/single_thread_proxy.h"
|
| #include "cc/stream_video_draw_quad.h"
|
| @@ -358,7 +358,7 @@ static GrContext* getFilterGrContext(bool hasImplThread)
|
| return WebSharedGraphicsContext3D::mainThreadGrContext();
|
| }
|
|
|
| -static inline SkBitmap applyFilters(GLRenderer* renderer, const WebKit::WebFilterOperations& filters, ScopedTexture* sourceTexture, bool hasImplThread)
|
| +static inline SkBitmap applyFilters(GLRenderer* renderer, const WebKit::WebFilterOperations& filters, ScopedResource* sourceTexture, bool hasImplThread)
|
| {
|
| if (filters.isEmpty())
|
| return SkBitmap();
|
| @@ -376,7 +376,7 @@ static inline SkBitmap applyFilters(GLRenderer* renderer, const WebKit::WebFilte
|
| return source;
|
| }
|
|
|
| -static SkBitmap applyImageFilter(GLRenderer* renderer, SkImageFilter* filter, ScopedTexture* sourceTexture, bool hasImplThread)
|
| +static SkBitmap applyImageFilter(GLRenderer* renderer, SkImageFilter* filter, ScopedResource* sourceTexture, bool hasImplThread)
|
| {
|
| if (!filter)
|
| return SkBitmap();
|
| @@ -428,7 +428,7 @@ static SkBitmap applyImageFilter(GLRenderer* renderer, SkImageFilter* filter, Sc
|
| return device.accessBitmap(false);
|
| }
|
|
|
| -scoped_ptr<ScopedTexture> GLRenderer::drawBackgroundFilters(
|
| +scoped_ptr<ScopedResource> GLRenderer::drawBackgroundFilters(
|
| DrawingFrame& frame, const RenderPassDrawQuad* quad,
|
| const WebKit::WebFilterOperations& filters,
|
| const WebTransformationMatrix& contentsDeviceTransform,
|
| @@ -451,12 +451,12 @@ scoped_ptr<ScopedTexture> GLRenderer::drawBackgroundFilters(
|
| // FIXME: When this algorithm changes, update LayerTreeHost::prioritizeTextures() accordingly.
|
|
|
| if (filters.isEmpty())
|
| - return scoped_ptr<ScopedTexture>();
|
| + return scoped_ptr<ScopedResource>();
|
|
|
| // FIXME: We only allow background filters on an opaque render surface because other surfaces may contain
|
| // translucent pixels, and the contents behind those translucent pixels wouldn't have the filter applied.
|
| if (frame.currentRenderPass->hasTransparentBackground())
|
| - return scoped_ptr<ScopedTexture>();
|
| + return scoped_ptr<ScopedResource>();
|
| DCHECK(!frame.currentTexture);
|
|
|
| // FIXME: Do a single readback for both the surface and replica and cache the filtered results (once filter textures are not reused).
|
| @@ -468,20 +468,20 @@ scoped_ptr<ScopedTexture> GLRenderer::drawBackgroundFilters(
|
|
|
| deviceRect.Intersect(frame.currentRenderPass->outputRect());
|
|
|
| - scoped_ptr<ScopedTexture> deviceBackgroundTexture = ScopedTexture::create(m_resourceProvider);
|
| + scoped_ptr<ScopedResource> deviceBackgroundTexture = ScopedResource::create(m_resourceProvider);
|
| if (!getFramebufferTexture(deviceBackgroundTexture.get(), deviceRect))
|
| - return scoped_ptr<ScopedTexture>();
|
| + return scoped_ptr<ScopedResource>();
|
|
|
| SkBitmap filteredDeviceBackground = applyFilters(this, filters, deviceBackgroundTexture.get(), m_client->hasImplThread());
|
| if (!filteredDeviceBackground.getTexture())
|
| - return scoped_ptr<ScopedTexture>();
|
| + return scoped_ptr<ScopedResource>();
|
|
|
| GrTexture* texture = reinterpret_cast<GrTexture*>(filteredDeviceBackground.getTexture());
|
| int filteredDeviceBackgroundTextureId = texture->getTextureHandle();
|
|
|
| - scoped_ptr<ScopedTexture> backgroundTexture = ScopedTexture::create(m_resourceProvider);
|
| + scoped_ptr<ScopedResource> backgroundTexture = ScopedResource::create(m_resourceProvider);
|
| if (!backgroundTexture->allocate(Renderer::ImplPool, quad->quadRect().size(), GL_RGBA, ResourceProvider::TextureUsageFramebuffer))
|
| - return scoped_ptr<ScopedTexture>();
|
| + return scoped_ptr<ScopedResource>();
|
|
|
| const RenderPass* targetRenderPass = frame.currentRenderPass;
|
| bool usingBackgroundTexture = useScopedTexture(frame, backgroundTexture.get(), quad->quadRect());
|
| @@ -498,13 +498,13 @@ scoped_ptr<ScopedTexture> GLRenderer::drawBackgroundFilters(
|
| useRenderPass(frame, targetRenderPass);
|
|
|
| if (!usingBackgroundTexture)
|
| - return scoped_ptr<ScopedTexture>();
|
| + return scoped_ptr<ScopedResource>();
|
| return backgroundTexture.Pass();
|
| }
|
|
|
| void GLRenderer::drawRenderPassQuad(DrawingFrame& frame, const RenderPassDrawQuad* quad)
|
| {
|
| - CachedTexture* contentsTexture = m_renderPassTextures.get(quad->renderPassId());
|
| + CachedResource* contentsTexture = m_renderPassTextures.get(quad->renderPassId());
|
| if (!contentsTexture || !contentsTexture->id())
|
| return;
|
|
|
| @@ -522,7 +522,7 @@ void GLRenderer::drawRenderPassQuad(DrawingFrame& frame, const RenderPassDrawQua
|
| return;
|
|
|
| WebTransformationMatrix contentsDeviceTransformInverse = contentsDeviceTransform.inverse();
|
| - scoped_ptr<ScopedTexture> backgroundTexture = drawBackgroundFilters(
|
| + scoped_ptr<ScopedResource> backgroundTexture = drawBackgroundFilters(
|
| frame, quad, renderPass->backgroundFilters(),
|
| contentsDeviceTransform, contentsDeviceTransformInverse);
|
|
|
| @@ -1294,7 +1294,7 @@ void GLRenderer::getFramebufferPixels(void *pixels, const gfx::Rect& rect)
|
| enforceMemoryPolicy();
|
| }
|
|
|
| -bool GLRenderer::getFramebufferTexture(ScopedTexture* texture, const gfx::Rect& deviceRect)
|
| +bool GLRenderer::getFramebufferTexture(ScopedResource* texture, const gfx::Rect& deviceRect)
|
| {
|
| DCHECK(!texture->id() || (texture->size() == deviceRect.size() && texture->format() == GL_RGB));
|
|
|
| @@ -1308,7 +1308,7 @@ bool GLRenderer::getFramebufferTexture(ScopedTexture* texture, const gfx::Rect&
|
| return true;
|
| }
|
|
|
| -bool GLRenderer::useScopedTexture(DrawingFrame& frame, const ScopedTexture* texture, const gfx::Rect& viewportRect)
|
| +bool GLRenderer::useScopedTexture(DrawingFrame& frame, const ScopedResource* texture, const gfx::Rect& viewportRect)
|
| {
|
| DCHECK(texture->id());
|
| frame.currentRenderPass = 0;
|
| @@ -1323,7 +1323,7 @@ void GLRenderer::bindFramebufferToOutputSurface(DrawingFrame& frame)
|
| GLC(m_context, m_context->bindFramebuffer(GL_FRAMEBUFFER, 0));
|
| }
|
|
|
| -bool GLRenderer::bindFramebufferToTexture(DrawingFrame& frame, const ScopedTexture* texture, const gfx::Rect& framebufferRect)
|
| +bool GLRenderer::bindFramebufferToTexture(DrawingFrame& frame, const ScopedResource* texture, const gfx::Rect& framebufferRect)
|
| {
|
| DCHECK(texture->id());
|
|
|
|
|