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

Side by Side Diff: cc/render_surface_filters.cc

Issue 12212007: cc: Route offscreen context creation for compositor to the browser. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix typo Created 7 years, 10 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/render_surface_filters.h" 5 #include "cc/render_surface_filters.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "skia/ext/refptr.h" 8 #include "skia/ext/refptr.h"
9 #include "third_party/WebKit/Source/Platform/chromium/public/WebFilterOperation. h" 9 #include "third_party/WebKit/Source/Platform/chromium/public/WebFilterOperation. h"
10 #include "third_party/WebKit/Source/Platform/chromium/public/WebFilterOperations .h" 10 #include "third_party/WebKit/Source/Platform/chromium/public/WebFilterOperations .h"
11 #include "third_party/WebKit/Source/Platform/chromium/public/WebGraphicsContext3 D.h"
12 #include "third_party/skia/include/core/SkCanvas.h" 11 #include "third_party/skia/include/core/SkCanvas.h"
13 #include "third_party/skia/include/effects/SkBlurImageFilter.h" 12 #include "third_party/skia/include/effects/SkBlurImageFilter.h"
14 #include "third_party/skia/include/effects/SkColorMatrixFilter.h" 13 #include "third_party/skia/include/effects/SkColorMatrixFilter.h"
15 #include "third_party/skia/include/effects/SkMagnifierImageFilter.h" 14 #include "third_party/skia/include/effects/SkMagnifierImageFilter.h"
16 #include "third_party/skia/include/gpu/SkGpuDevice.h" 15 #include "third_party/skia/include/gpu/SkGpuDevice.h"
17 #include "third_party/skia/include/gpu/SkGrPixelRef.h" 16 #include "third_party/skia/include/gpu/SkGrPixelRef.h"
18 #include "ui/gfx/size_f.h" 17 #include "ui/gfx/size_f.h"
19 18
20 namespace cc { 19 namespace cc {
21 20
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after
370 case WebKit::WebFilterOperation::FilterTypeOpacity: 369 case WebKit::WebFilterOperation::FilterTypeOpacity:
371 case WebKit::WebFilterOperation::FilterTypeColorMatrix: 370 case WebKit::WebFilterOperation::FilterTypeColorMatrix:
372 break; 371 break;
373 } 372 }
374 } 373 }
375 if (haveAccumulatedColorMatrix) 374 if (haveAccumulatedColorMatrix)
376 newList.append(WebKit::WebFilterOperation::createColorMatrixFilter(accum ulatedColorMatrix)); 375 newList.append(WebKit::WebFilterOperation::createColorMatrixFilter(accum ulatedColorMatrix));
377 return newList; 376 return newList;
378 } 377 }
379 378
380 SkBitmap RenderSurfaceFilters::apply(const WebKit::WebFilterOperations& filters, unsigned textureId, const gfx::SizeF& size, WebKit::WebGraphicsContext3D* conte xt3D, GrContext* grContext) 379 SkBitmap RenderSurfaceFilters::apply(const WebKit::WebFilterOperations& filters, unsigned textureId, gfx::SizeF size, GrContext* grContext)
381 { 380 {
382 if (!context3D || !grContext) 381 DCHECK(grContext);
383 return SkBitmap();
384 382
385 WebKit::WebFilterOperations optimizedFilters = optimize(filters); 383 WebKit::WebFilterOperations optimizedFilters = optimize(filters);
386 FilterBufferState state(grContext, size, textureId); 384 FilterBufferState state(grContext, size, textureId);
387 if (!state.init(optimizedFilters.size())) 385 if (!state.init(optimizedFilters.size()))
388 return SkBitmap(); 386 return SkBitmap();
389 387
390 for (unsigned i = 0; i < optimizedFilters.size(); ++i) { 388 for (unsigned i = 0; i < optimizedFilters.size(); ++i) {
391 const WebKit::WebFilterOperation& op = optimizedFilters.at(i); 389 const WebKit::WebFilterOperation& op = optimizedFilters.at(i);
392 SkCanvas* canvas = state.canvas(); 390 SkCanvas* canvas = state.canvas();
393 switch (op.type()) { 391 switch (op.type()) {
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
441 case WebKit::WebFilterOperation::FilterTypeSepia: 439 case WebKit::WebFilterOperation::FilterTypeSepia:
442 case WebKit::WebFilterOperation::FilterTypeSaturate: 440 case WebKit::WebFilterOperation::FilterTypeSaturate:
443 case WebKit::WebFilterOperation::FilterTypeHueRotate: 441 case WebKit::WebFilterOperation::FilterTypeHueRotate:
444 case WebKit::WebFilterOperation::FilterTypeInvert: 442 case WebKit::WebFilterOperation::FilterTypeInvert:
445 case WebKit::WebFilterOperation::FilterTypeOpacity: 443 case WebKit::WebFilterOperation::FilterTypeOpacity:
446 NOTREACHED(); 444 NOTREACHED();
447 break; 445 break;
448 } 446 }
449 state.swap(); 447 state.swap();
450 } 448 }
451 context3D->flush();
452 return state.source(); 449 return state.source();
453 } 450 }
454 451
455 } // namespace cc 452 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698