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

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: Rename to GaneshContextProvider 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 339 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 case WebKit::WebFilterOperation::FilterTypeOpacity: 360 case WebKit::WebFilterOperation::FilterTypeOpacity:
362 case WebKit::WebFilterOperation::FilterTypeColorMatrix: 361 case WebKit::WebFilterOperation::FilterTypeColorMatrix:
363 break; 362 break;
364 } 363 }
365 } 364 }
366 if (haveAccumulatedColorMatrix) 365 if (haveAccumulatedColorMatrix)
367 newList.append(WebKit::WebFilterOperation::createColorMatrixFilter(accum ulatedColorMatrix)); 366 newList.append(WebKit::WebFilterOperation::createColorMatrixFilter(accum ulatedColorMatrix));
368 return newList; 367 return newList;
369 } 368 }
370 369
371 SkBitmap RenderSurfaceFilters::apply(const WebKit::WebFilterOperations& filters, unsigned textureId, const gfx::SizeF& size, WebKit::WebGraphicsContext3D* conte xt3D, GrContext* grContext) 370 SkBitmap RenderSurfaceFilters::apply(const WebKit::WebFilterOperations& filters, unsigned textureId, gfx::SizeF size, GrContext* grContext)
372 { 371 {
373 if (!context3D || !grContext) 372 if (!grContext)
374 return SkBitmap(); 373 return SkBitmap();
375 374
376 WebKit::WebFilterOperations optimizedFilters = optimize(filters); 375 WebKit::WebFilterOperations optimizedFilters = optimize(filters);
377 FilterBufferState state(grContext, size, textureId); 376 FilterBufferState state(grContext, size, textureId);
378 if (!state.init(optimizedFilters.size())) 377 if (!state.init(optimizedFilters.size()))
379 return SkBitmap(); 378 return SkBitmap();
380 379
381 for (unsigned i = 0; i < optimizedFilters.size(); ++i) { 380 for (unsigned i = 0; i < optimizedFilters.size(); ++i) {
382 const WebKit::WebFilterOperation& op = optimizedFilters.at(i); 381 const WebKit::WebFilterOperation& op = optimizedFilters.at(i);
383 SkCanvas* canvas = state.canvas(); 382 SkCanvas* canvas = state.canvas();
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
431 case WebKit::WebFilterOperation::FilterTypeSepia: 430 case WebKit::WebFilterOperation::FilterTypeSepia:
432 case WebKit::WebFilterOperation::FilterTypeSaturate: 431 case WebKit::WebFilterOperation::FilterTypeSaturate:
433 case WebKit::WebFilterOperation::FilterTypeHueRotate: 432 case WebKit::WebFilterOperation::FilterTypeHueRotate:
434 case WebKit::WebFilterOperation::FilterTypeInvert: 433 case WebKit::WebFilterOperation::FilterTypeInvert:
435 case WebKit::WebFilterOperation::FilterTypeOpacity: 434 case WebKit::WebFilterOperation::FilterTypeOpacity:
436 NOTREACHED(); 435 NOTREACHED();
437 break; 436 break;
438 } 437 }
439 state.swap(); 438 state.swap();
440 } 439 }
441 context3D->flush();
442 return state.source(); 440 return state.source();
443 } 441 }
444 442
445 } // namespace cc 443 } // namespace cc
OLDNEW
« cc/gl_renderer.cc ('K') | « cc/render_surface_filters.h ('k') | cc/resource_provider.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698