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

Side by Side Diff: Source/core/rendering/FilterEffectRenderer.cpp

Issue 14398007: Remove USE(3D_GRAPHICS) as it is always turned on. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 7 years, 7 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011 Apple Inc. All rights reserved. 2 * Copyright (C) 2011 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 22 matching lines...) Expand all
33 #include "core/platform/graphics/filters/FEColorMatrix.h" 33 #include "core/platform/graphics/filters/FEColorMatrix.h"
34 #include "core/platform/graphics/filters/FEComponentTransfer.h" 34 #include "core/platform/graphics/filters/FEComponentTransfer.h"
35 #include "core/platform/graphics/filters/FEDropShadow.h" 35 #include "core/platform/graphics/filters/FEDropShadow.h"
36 #include "core/platform/graphics/filters/FEGaussianBlur.h" 36 #include "core/platform/graphics/filters/FEGaussianBlur.h"
37 #include "core/platform/graphics/filters/FEMerge.h" 37 #include "core/platform/graphics/filters/FEMerge.h"
38 #include "core/rendering/RenderLayer.h" 38 #include "core/rendering/RenderLayer.h"
39 39
40 #include <algorithm> 40 #include <algorithm>
41 #include <wtf/MathExtras.h> 41 #include <wtf/MathExtras.h>
42 42
43 #if USE(3D_GRAPHICS)
44 #include "core/platform/graphics/filters/custom/CustomFilterGlobalContext.h" 43 #include "core/platform/graphics/filters/custom/CustomFilterGlobalContext.h"
45 #include "core/platform/graphics/filters/custom/CustomFilterOperation.h" 44 #include "core/platform/graphics/filters/custom/CustomFilterOperation.h"
46 #include "core/platform/graphics/filters/custom/CustomFilterProgram.h" 45 #include "core/platform/graphics/filters/custom/CustomFilterProgram.h"
47 #include "core/platform/graphics/filters/custom/CustomFilterValidatedProgram.h" 46 #include "core/platform/graphics/filters/custom/CustomFilterValidatedProgram.h"
48 #include "core/platform/graphics/filters/custom/FECustomFilter.h" 47 #include "core/platform/graphics/filters/custom/FECustomFilter.h"
49 #include "core/platform/graphics/filters/custom/ValidatedCustomFilterOperation.h " 48 #include "core/platform/graphics/filters/custom/ValidatedCustomFilterOperation.h "
50 #include "core/rendering/RenderView.h" 49 #include "core/rendering/RenderView.h"
51 #endif
52 50
53 #if ENABLE(SVG) 51 #if ENABLE(SVG)
54 #include "core/loader/cache/CachedSVGDocument.h" 52 #include "core/loader/cache/CachedSVGDocument.h"
55 #include "core/loader/cache/CachedSVGDocumentReference.h" 53 #include "core/loader/cache/CachedSVGDocumentReference.h"
56 #include "core/platform/graphics/filters/SourceAlpha.h" 54 #include "core/platform/graphics/filters/SourceAlpha.h"
57 #include "core/svg/SVGElement.h" 55 #include "core/svg/SVGElement.h"
58 #include "core/svg/SVGFilterPrimitiveStandardAttributes.h" 56 #include "core/svg/SVGFilterPrimitiveStandardAttributes.h"
59 #endif 57 #endif
60 58
61 namespace WebCore { 59 namespace WebCore {
(...skipping 14 matching lines...) Expand all
76 } 74 }
77 75
78 inline bool isFilterSizeValid(FloatRect rect) 76 inline bool isFilterSizeValid(FloatRect rect)
79 { 77 {
80 if (rect.width() < 0 || rect.width() > kMaxFilterSize 78 if (rect.width() < 0 || rect.width() > kMaxFilterSize
81 || rect.height() < 0 || rect.height() > kMaxFilterSize) 79 || rect.height() < 0 || rect.height() > kMaxFilterSize)
82 return false; 80 return false;
83 return true; 81 return true;
84 } 82 }
85 83
86 #if USE(3D_GRAPHICS)
87 static PassRefPtr<FECustomFilter> createCustomFilterEffect(Filter* filter, Docum ent* document, ValidatedCustomFilterOperation* operation) 84 static PassRefPtr<FECustomFilter> createCustomFilterEffect(Filter* filter, Docum ent* document, ValidatedCustomFilterOperation* operation)
88 { 85 {
89 if (!document) 86 if (!document)
90 return 0; 87 return 0;
91 88
92 CustomFilterGlobalContext* globalContext = document->renderView()->customFil terGlobalContext(); 89 CustomFilterGlobalContext* globalContext = document->renderView()->customFil terGlobalContext();
93 globalContext->prepareContextIfNeeded(document->view()->hostWindow()); 90 globalContext->prepareContextIfNeeded(document->view()->hostWindow());
94 if (!globalContext->context()) 91 if (!globalContext->context())
95 return 0; 92 return 0;
96 93
97 return FECustomFilter::create(filter, globalContext->context(), operation->v alidatedProgram(), operation->parameters(), 94 return FECustomFilter::create(filter, globalContext->context(), operation->v alidatedProgram(), operation->parameters(),
98 operation->meshRows(), operation->meshColumns(), operation->meshType()) ; 95 operation->meshRows(), operation->meshColumns(), operation->meshType()) ;
99 } 96 }
100 #endif
101 97
102 FilterEffectRenderer::FilterEffectRenderer() 98 FilterEffectRenderer::FilterEffectRenderer()
103 : m_graphicsBufferAttached(false) 99 : m_graphicsBufferAttached(false)
104 , m_hasFilterThatMovesPixels(false) 100 , m_hasFilterThatMovesPixels(false)
105 , m_hasCustomShaderFilter(false) 101 , m_hasCustomShaderFilter(false)
106 { 102 {
107 setFilterResolution(FloatSize(1, 1)); 103 setFilterResolution(FloatSize(1, 1));
108 m_sourceGraphic = SourceGraphic::create(this); 104 m_sourceGraphic = SourceGraphic::create(this);
109 } 105 }
110 106
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
328 float stdDeviation = floatValueForLength(blurOperation->stdDeviation (), 0); 324 float stdDeviation = floatValueForLength(blurOperation->stdDeviation (), 0);
329 effect = FEGaussianBlur::create(this, stdDeviation, stdDeviation); 325 effect = FEGaussianBlur::create(this, stdDeviation, stdDeviation);
330 break; 326 break;
331 } 327 }
332 case FilterOperation::DROP_SHADOW: { 328 case FilterOperation::DROP_SHADOW: {
333 DropShadowFilterOperation* dropShadowOperation = static_cast<DropSha dowFilterOperation*>(filterOperation); 329 DropShadowFilterOperation* dropShadowOperation = static_cast<DropSha dowFilterOperation*>(filterOperation);
334 effect = FEDropShadow::create(this, dropShadowOperation->stdDeviatio n(), dropShadowOperation->stdDeviation(), 330 effect = FEDropShadow::create(this, dropShadowOperation->stdDeviatio n(), dropShadowOperation->stdDeviation(),
335 dropShadowOperation->x(), dropSh adowOperation->y(), dropShadowOperation->color(), 1); 331 dropShadowOperation->x(), dropSh adowOperation->y(), dropShadowOperation->color(), 1);
336 break; 332 break;
337 } 333 }
338 #if USE(3D_GRAPHICS)
339 case FilterOperation::CUSTOM: 334 case FilterOperation::CUSTOM:
340 // CUSTOM operations are always converted to VALIDATED_CUSTOM before getting here. 335 // CUSTOM operations are always converted to VALIDATED_CUSTOM before getting here.
341 // The conversion happens in RenderLayer::computeFilterOperations. 336 // The conversion happens in RenderLayer::computeFilterOperations.
342 ASSERT_NOT_REACHED(); 337 ASSERT_NOT_REACHED();
343 break; 338 break;
344 case FilterOperation::VALIDATED_CUSTOM: { 339 case FilterOperation::VALIDATED_CUSTOM: {
345 ValidatedCustomFilterOperation* customFilterOperation = static_cast< ValidatedCustomFilterOperation*>(filterOperation); 340 ValidatedCustomFilterOperation* customFilterOperation = static_cast< ValidatedCustomFilterOperation*>(filterOperation);
346 Document* document = renderer ? renderer->document() : 0; 341 Document* document = renderer ? renderer->document() : 0;
347 effect = createCustomFilterEffect(this, document, customFilterOperat ion); 342 effect = createCustomFilterEffect(this, document, customFilterOperat ion);
348 if (effect) 343 if (effect)
349 m_hasCustomShaderFilter = true; 344 m_hasCustomShaderFilter = true;
350 break; 345 break;
351 } 346 }
352 #endif
353 default: 347 default:
354 break; 348 break;
355 } 349 }
356 350
357 if (effect) { 351 if (effect) {
358 // Unlike SVG, filters applied here should not clip to their primiti ve subregions. 352 // Unlike SVG, filters applied here should not clip to their primiti ve subregions.
359 effect->setClipsToBounds(false); 353 effect->setClipsToBounds(false);
360 effect->setOperatingColorSpace(ColorSpaceDeviceRGB); 354 effect->setOperatingColorSpace(ColorSpaceDeviceRGB);
361 355
362 if (filterOperation->getOperationType() != FilterOperation::REFERENC E) { 356 if (filterOperation->getOperationType() != FilterOperation::REFERENC E) {
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
501 495
502 m_savedGraphicsContext->drawImageBuffer(filter->output(), m_renderLayer->ren derer()->style()->colorSpace(), pixelSnappedIntRect(destRect), CompositeSourceOv er); 496 m_savedGraphicsContext->drawImageBuffer(filter->output(), m_renderLayer->ren derer()->style()->colorSpace(), pixelSnappedIntRect(destRect), CompositeSourceOv er);
503 497
504 filter->clearIntermediateResults(); 498 filter->clearIntermediateResults();
505 499
506 return m_savedGraphicsContext; 500 return m_savedGraphicsContext;
507 } 501 }
508 502
509 } // namespace WebCore 503 } // namespace WebCore
510 504
OLDNEW
« no previous file with comments | « Source/core/platform/graphics/filters/custom/FECustomFilter.cpp ('k') | Source/core/rendering/RenderLayer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698