Commit b22ba4aa authored by Xu Xing's avatar Xu Xing Committed by Commit Bot

Make flush optional in SkiaHelper::ApplyImageFilter

Flush is necessary for GLRenderer but not SkiaRenderer. So make it optional.

Bug: 897838
Change-Id: I96df913b7afd1fb6bf84314e3bd7ee0ed25ac497
Reviewed-on: https://chromium-review.googlesource.com/c/1312298Reviewed-by: default avatarRobert Kroeger <rjkroege@chromium.org>
Commit-Queue: Xing Xu <xing.xu@intel.com>
Cr-Commit-Position: refs/heads/master@{#604775}
parent 6a1ba181
......@@ -15,7 +15,8 @@ sk_sp<SkImage> SkiaHelper::ApplyImageFilter(sk_sp<SkImage> src_image,
sk_sp<SkImageFilter> filter,
SkIPoint* offset,
SkIRect* subset,
const gfx::PointF& origin) {
const gfx::PointF& origin,
bool flush) {
if (!filter)
return nullptr;
......@@ -48,7 +49,7 @@ sk_sp<SkImage> SkiaHelper::ApplyImageFilter(sk_sp<SkImage> src_image,
// Force a flush of the Skia pipeline before we switch back to the compositor
// context.
image->getBackendTexture(true);
image->getBackendTexture(flush);
CHECK(image->isTextureBacked());
return image;
}
......
......@@ -16,6 +16,7 @@
namespace viz {
class VIZ_COMMON_EXPORT SkiaHelper {
public:
// |flush| is necessary for GLRenderer but not SkiaRenderer.
static sk_sp<SkImage> ApplyImageFilter(sk_sp<SkImage> src_image,
const gfx::RectF& src_rect,
const gfx::RectF& dst_rect,
......@@ -23,7 +24,8 @@ class VIZ_COMMON_EXPORT SkiaHelper {
sk_sp<SkImageFilter> filter,
SkIPoint* offset,
SkIRect* subset,
const gfx::PointF& origin);
const gfx::PointF& origin,
bool flush);
};
} // namespace viz
......
......@@ -1152,7 +1152,7 @@ bool GLRenderer::UpdateRPDQWithSkiaFilters(
use_gr_context->context(), params->flip_texture);
params->filter_image = SkiaHelper::ApplyImageFilter(
src_image, src_rect, params->dst_rect, quad->filters_scale,
std::move(filter), &offset, &subset, quad->filters_origin);
std::move(filter), &offset, &subset, quad->filters_origin, true);
} else {
DisplayResourceProvider::ScopedReadLockGL
prefilter_bypass_quad_texture_lock(
......@@ -1166,7 +1166,7 @@ bool GLRenderer::UpdateRPDQWithSkiaFilters(
use_gr_context->context(), params->flip_texture);
params->filter_image = SkiaHelper::ApplyImageFilter(
src_image, src_rect, params->dst_rect, quad->filters_scale,
std::move(filter), &offset, &subset, quad->filters_origin);
std::move(filter), &offset, &subset, quad->filters_origin, true);
}
if (!params->filter_image)
......
......@@ -898,7 +898,7 @@ bool SkiaRenderer::CalculateRPDQParams(sk_sp<SkImage> content,
// TODO(xing.xu): Support flip_texture. (https://crbug.com/822859)
params->filter_image = SkiaHelper::ApplyImageFilter(
content, src_rect, dst_rect, quad->filters_scale, std::move(filter),
&offset, &subset, quad->filters_origin);
&offset, &subset, quad->filters_origin, false);
if (!params->filter_image)
return false;
params->dst_rect =
......
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