Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3986)

Unified Diff: cc/blink/web_external_texture_layer_impl.cc

Issue 558083002: [cc] Add nearest neighbor filtering for TextureLayer. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add nearest_neighbor field to TextureMailbox. Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: cc/blink/web_external_texture_layer_impl.cc
diff --git a/cc/blink/web_external_texture_layer_impl.cc b/cc/blink/web_external_texture_layer_impl.cc
index 85aac10fe0d079a16c7ac103acfabb8f3a181839..9d0abd01dce49d3d314d13a99d556ecadde21033 100644
--- a/cc/blink/web_external_texture_layer_impl.cc
+++ b/cc/blink/web_external_texture_layer_impl.cc
@@ -24,7 +24,9 @@ namespace cc_blink {
WebExternalTextureLayerImpl::WebExternalTextureLayerImpl(
blink::WebExternalTextureLayerClient* client)
- : client_(client) {
+ : client_(client),
+ nearest_neighbor_(false) {
+ //printf("WebExternalTextureLayerImpl %c\n", (client_ ? '1' : '0'));
cc::TextureLayerClient* cc_client = client_ ? this : nullptr;
scoped_refptr<TextureLayer> layer = TextureLayer::CreateForMailbox(cc_client);
layer->SetIsDrawable(true);
@@ -62,6 +64,14 @@ void WebExternalTextureLayerImpl::setRateLimitContext(bool rate_limit) {
static_cast<TextureLayer*>(layer_->layer())->SetRateLimitContext(rate_limit);
}
+void WebExternalTextureLayerImpl::setFilterLevel(
+ SkPaint::FilterLevel filter_level) {
+ //printf("WebExternalTextureLayerImpl::setFilterLevel %d\n", filter_level == SkPaint::kNone_FilterLevel);
+ nearest_neighbor_ = filter_level == SkPaint::kNone_FilterLevel;
+ static_cast<TextureLayer*>(layer_->layer())
+ ->SetNearestNeighbor(nearest_neighbor_);
+}
+
bool WebExternalTextureLayerImpl::PrepareTextureMailbox(
cc::TextureMailbox* mailbox,
scoped_ptr<cc::SingleReleaseCallback>* release_callback,
@@ -85,6 +95,7 @@ bool WebExternalTextureLayerImpl::PrepareTextureMailbox(
cc::TextureMailbox(name, GL_TEXTURE_2D, client_mailbox.syncPoint);
}
mailbox->set_allow_overlay(client_mailbox.allowOverlay);
+ mailbox->set_nearest_neighbor(nearest_neighbor_);
piman 2014/10/28 05:09:50 This should not be set indiscriminately, but based
jackhou1 2014/10/29 00:12:24 Done.
if (mailbox->IsValid()) {
*release_callback = cc::SingleReleaseCallback::Create(

Powered by Google App Engine
This is Rietveld 408576698