blob: a0c7b6bd5797377631dd11277eace4ced49427a6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
From 88fa4b49a10ecfb74c36c678c1e2b76136357153 Mon Sep 17 00:00:00 2001
From: Changqing Li <changqing.li@windriver.com>
Date: Fri, 12 Jul 2024 10:16:05 +0800
Subject: [PATCH 2/2] More dynamicDowncast<> adoption in platform code
Backport part of commit [90d13e7 More dynamicDowncast<> adoption in
platform code] to fix following compile error for ARM_NEON:
webkitgtk-2.44.1/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNeonParallelApplier.cpp:545:37: error: 'LS_POINT' was not declared in this scope; did you mean 'WebCore::LightType::LS_POINT'?
545 | if (data.lightSource->type() == LS_POINT) {
| ^~~~~~~~
| WebCore::LightType::LS_POINT
Upstream-Status: Backport [https://github.com/WebKit/WebKit/commit/90d13e77ab2192b7efa8e763eeb8b08dbbb6d5c3]
Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
.../filters/FELightingNeonParallelApplier.cpp | 22 +++++++++----------
1 file changed, 10 insertions(+), 12 deletions(-)
diff --git a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNeonParallelApplier.cpp b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNeonParallelApplier.cpp
index 04d855fa..dccc003d 100644
--- a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNeonParallelApplier.cpp
+++ b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNeonParallelApplier.cpp
@@ -542,19 +542,17 @@ void FELightingNeonParallelApplier::applyPlatformParallel(const LightingData& da
floatArguments.colorBlue = color.blue;
floatArguments.padding4 = 0;
- if (data.lightSource->type() == LS_POINT) {
+ if (auto* pointLightSource = dynamicDowncast<PointLightSource>(*data.lightSource)) {
neonData.flags |= FLAG_POINT_LIGHT;
- auto& pointLightSource = downcast<PointLightSource>(*data.lightSource);
- floatArguments.lightX = pointLightSource.position().x();
- floatArguments.lightY = pointLightSource.position().y();
- floatArguments.lightZ = pointLightSource.position().z();
+ floatArguments.lightX = pointLightSource->position().x();
+ floatArguments.lightY = pointLightSource->position().y();
+ floatArguments.lightZ = pointLightSource->position().z();
floatArguments.padding2 = 0;
- } else if (data.lightSource->type() == LS_SPOT) {
+ } else if (auto* spotLightSource = dynamicDowncast<SpotLightSource>(*data.lightSource)) {
neonData.flags |= FLAG_SPOT_LIGHT;
- auto& spotLightSource = downcast<SpotLightSource>(*data.lightSource);
- floatArguments.lightX = spotLightSource.position().x();
- floatArguments.lightY = spotLightSource.position().y();
- floatArguments.lightZ = spotLightSource.position().z();
+ floatArguments.lightX = spotLightSource->position().x();
+ floatArguments.lightY = spotLightSource->position().y();
+ floatArguments.lightZ = spotLightSource->position().z();
floatArguments.padding2 = 0;
floatArguments.directionX = paintingData.directionVector.x();
@@ -565,8 +563,8 @@ void FELightingNeonParallelApplier::applyPlatformParallel(const LightingData& da
floatArguments.coneCutOffLimit = paintingData.coneCutOffLimit;
floatArguments.coneFullLight = paintingData.coneFullLight;
floatArguments.coneCutOffRange = paintingData.coneCutOffLimit - paintingData.coneFullLight;
- neonData.coneExponent = getPowerCoefficients(spotLightSource.specularExponent());
- if (spotLightSource.specularExponent() == 1)
+ neonData.coneExponent = getPowerCoefficients(spotLightSource->specularExponent());
+ if (spotLightSource->specularExponent() == 1)
neonData.flags |= FLAG_CONE_EXPONENT_IS_1;
} else {
ASSERT(data.lightSource->type() == LS_DISTANT);
--
2.25.1
|