| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2012 The Android Open Source Project | 2 * Copyright 2012 The Android Open Source Project |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #include "SkLightingImageFilter.h" | 8 #include "SkLightingImageFilter.h" |
| 9 #include "SkBitmap.h" | 9 #include "SkBitmap.h" |
| 10 #include "SkColorPriv.h" | 10 #include "SkColorPriv.h" |
| (...skipping 1499 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1510 SkASSERT(false); | 1510 SkASSERT(false); |
| 1511 break; | 1511 break; |
| 1512 } | 1512 } |
| 1513 return result; | 1513 return result; |
| 1514 } | 1514 } |
| 1515 | 1515 |
| 1516 } | 1516 } |
| 1517 | 1517 |
| 1518 class GrGLLightingEffect : public GrGLSLFragmentProcessor { | 1518 class GrGLLightingEffect : public GrGLSLFragmentProcessor { |
| 1519 public: | 1519 public: |
| 1520 GrGLLightingEffect(const GrProcessor&); | 1520 GrGLLightingEffect() : fLight(nullptr) { } |
| 1521 virtual ~GrGLLightingEffect(); | 1521 virtual ~GrGLLightingEffect() { delete fLight; } |
| 1522 | 1522 |
| 1523 void emitCode(EmitArgs&) override; | 1523 void emitCode(EmitArgs&) override; |
| 1524 | 1524 |
| 1525 static inline void GenKey(const GrProcessor&, const GrGLSLCaps&, GrProcessor
KeyBuilder* b); | 1525 static inline void GenKey(const GrProcessor&, const GrGLSLCaps&, GrProcessor
KeyBuilder* b); |
| 1526 | 1526 |
| 1527 protected: | 1527 protected: |
| 1528 /** | 1528 /** |
| 1529 * Subclasses of GrGLLightingEffect must call INHERITED::onSetData(); | 1529 * Subclasses of GrGLLightingEffect must call INHERITED::onSetData(); |
| 1530 */ | 1530 */ |
| 1531 void onSetData(const GrGLSLProgramDataManager&, const GrProcessor&) override
; | 1531 void onSetData(const GrGLSLProgramDataManager&, const GrProcessor&) override
; |
| 1532 | 1532 |
| 1533 virtual void emitLightFunc(GrGLSLUniformHandler*, | 1533 virtual void emitLightFunc(GrGLSLUniformHandler*, |
| 1534 GrGLSLFragmentBuilder*, | 1534 GrGLSLFragmentBuilder*, |
| 1535 SkString* funcName) = 0; | 1535 SkString* funcName) = 0; |
| 1536 | 1536 |
| 1537 private: | 1537 private: |
| 1538 typedef GrGLSLFragmentProcessor INHERITED; | 1538 typedef GrGLSLFragmentProcessor INHERITED; |
| 1539 | 1539 |
| 1540 UniformHandle fImageIncrementUni; | 1540 UniformHandle fImageIncrementUni; |
| 1541 UniformHandle fSurfaceScaleUni; | 1541 UniformHandle fSurfaceScaleUni; |
| 1542 GrGLLight* fLight; | 1542 GrGLLight* fLight; |
| 1543 BoundaryMode fBoundaryMode; | |
| 1544 }; | 1543 }; |
| 1545 | 1544 |
| 1546 /////////////////////////////////////////////////////////////////////////////// | 1545 /////////////////////////////////////////////////////////////////////////////// |
| 1547 | 1546 |
| 1548 class GrGLDiffuseLightingEffect : public GrGLLightingEffect { | 1547 class GrGLDiffuseLightingEffect : public GrGLLightingEffect { |
| 1549 public: | 1548 public: |
| 1550 GrGLDiffuseLightingEffect(const GrProcessor&); | |
| 1551 void emitLightFunc(GrGLSLUniformHandler*, GrGLSLFragmentBuilder*, SkString*
funcName) override; | 1549 void emitLightFunc(GrGLSLUniformHandler*, GrGLSLFragmentBuilder*, SkString*
funcName) override; |
| 1552 | 1550 |
| 1553 protected: | 1551 protected: |
| 1554 void onSetData(const GrGLSLProgramDataManager&, const GrProcessor&) override
; | 1552 void onSetData(const GrGLSLProgramDataManager&, const GrProcessor&) override
; |
| 1555 | 1553 |
| 1556 private: | 1554 private: |
| 1557 typedef GrGLLightingEffect INHERITED; | 1555 typedef GrGLLightingEffect INHERITED; |
| 1558 | 1556 |
| 1559 UniformHandle fKDUni; | 1557 UniformHandle fKDUni; |
| 1560 }; | 1558 }; |
| 1561 | 1559 |
| 1562 /////////////////////////////////////////////////////////////////////////////// | 1560 /////////////////////////////////////////////////////////////////////////////// |
| 1563 | 1561 |
| 1564 class GrGLSpecularLightingEffect : public GrGLLightingEffect { | 1562 class GrGLSpecularLightingEffect : public GrGLLightingEffect { |
| 1565 public: | 1563 public: |
| 1566 GrGLSpecularLightingEffect(const GrProcessor&); | |
| 1567 void emitLightFunc(GrGLSLUniformHandler*, GrGLSLFragmentBuilder*, SkString*
funcName) override; | 1564 void emitLightFunc(GrGLSLUniformHandler*, GrGLSLFragmentBuilder*, SkString*
funcName) override; |
| 1568 | 1565 |
| 1569 protected: | 1566 protected: |
| 1570 void onSetData(const GrGLSLProgramDataManager&, const GrProcessor&) override
; | 1567 void onSetData(const GrGLSLProgramDataManager&, const GrProcessor&) override
; |
| 1571 | 1568 |
| 1572 private: | 1569 private: |
| 1573 typedef GrGLLightingEffect INHERITED; | 1570 typedef GrGLLightingEffect INHERITED; |
| 1574 | 1571 |
| 1575 UniformHandle fKSUni; | 1572 UniformHandle fKSUni; |
| 1576 UniformHandle fShininessUni; | 1573 UniformHandle fShininessUni; |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1612 SkScalar surfaceScale, | 1609 SkScalar surfaceScale, |
| 1613 const SkMatrix& matrix, | 1610 const SkMatrix& matrix, |
| 1614 SkScalar kd, | 1611 SkScalar kd, |
| 1615 BoundaryMode boundaryMode) | 1612 BoundaryMode boundaryMode) |
| 1616 : INHERITED(texture, light, surfaceScale, matrix, boundaryMode), fKD(kd) { | 1613 : INHERITED(texture, light, surfaceScale, matrix, boundaryMode), fKD(kd) { |
| 1617 this->initClassID<GrDiffuseLightingEffect>(); | 1614 this->initClassID<GrDiffuseLightingEffect>(); |
| 1618 } | 1615 } |
| 1619 | 1616 |
| 1620 bool GrDiffuseLightingEffect::onIsEqual(const GrFragmentProcessor& sBase) const
{ | 1617 bool GrDiffuseLightingEffect::onIsEqual(const GrFragmentProcessor& sBase) const
{ |
| 1621 const GrDiffuseLightingEffect& s = sBase.cast<GrDiffuseLightingEffect>(); | 1618 const GrDiffuseLightingEffect& s = sBase.cast<GrDiffuseLightingEffect>(); |
| 1622 return INHERITED::onIsEqual(sBase) && | 1619 return INHERITED::onIsEqual(sBase) && this->kd() == s.kd(); |
| 1623 this->kd() == s.kd(); | |
| 1624 } | 1620 } |
| 1625 | 1621 |
| 1626 void GrDiffuseLightingEffect::onGetGLSLProcessorKey(const GrGLSLCaps& caps, | 1622 void GrDiffuseLightingEffect::onGetGLSLProcessorKey(const GrGLSLCaps& caps, |
| 1627 GrProcessorKeyBuilder* b) co
nst { | 1623 GrProcessorKeyBuilder* b) co
nst { |
| 1628 GrGLDiffuseLightingEffect::GenKey(*this, caps, b); | 1624 GrGLDiffuseLightingEffect::GenKey(*this, caps, b); |
| 1629 } | 1625 } |
| 1630 | 1626 |
| 1631 GrGLSLFragmentProcessor* GrDiffuseLightingEffect::onCreateGLSLInstance() const { | 1627 GrGLSLFragmentProcessor* GrDiffuseLightingEffect::onCreateGLSLInstance() const { |
| 1632 return new GrGLDiffuseLightingEffect(*this); | 1628 return new GrGLDiffuseLightingEffect; |
| 1633 } | 1629 } |
| 1634 | 1630 |
| 1635 GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrDiffuseLightingEffect); | 1631 GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrDiffuseLightingEffect); |
| 1636 | 1632 |
| 1637 const GrFragmentProcessor* GrDiffuseLightingEffect::TestCreate(GrProcessorTestDa
ta* d) { | 1633 const GrFragmentProcessor* GrDiffuseLightingEffect::TestCreate(GrProcessorTestDa
ta* d) { |
| 1638 SkScalar surfaceScale = d->fRandom->nextSScalar1(); | 1634 SkScalar surfaceScale = d->fRandom->nextSScalar1(); |
| 1639 SkScalar kd = d->fRandom->nextUScalar1(); | 1635 SkScalar kd = d->fRandom->nextUScalar1(); |
| 1640 SkAutoTUnref<SkImageFilterLight> light(create_random_light(d->fRandom)); | 1636 SkAutoTUnref<SkImageFilterLight> light(create_random_light(d->fRandom)); |
| 1641 SkMatrix matrix; | 1637 SkMatrix matrix; |
| 1642 for (int i = 0; i < 9; i++) { | 1638 for (int i = 0; i < 9; i++) { |
| 1643 matrix[i] = d->fRandom->nextUScalar1(); | 1639 matrix[i] = d->fRandom->nextUScalar1(); |
| 1644 } | 1640 } |
| 1645 BoundaryMode mode = static_cast<BoundaryMode>(d->fRandom->nextU() % kBoundar
yModeCount); | 1641 BoundaryMode mode = static_cast<BoundaryMode>(d->fRandom->nextU() % kBoundar
yModeCount); |
| 1646 return GrDiffuseLightingEffect::Create(d->fTextures[GrProcessorUnitTest::kAl
phaTextureIdx], | 1642 return GrDiffuseLightingEffect::Create(d->fTextures[GrProcessorUnitTest::kAl
phaTextureIdx], |
| 1647 light, surfaceScale, matrix, kd, mode
); | 1643 light, surfaceScale, matrix, kd, mode
); |
| 1648 } | 1644 } |
| 1649 | 1645 |
| 1650 | 1646 |
| 1651 /////////////////////////////////////////////////////////////////////////////// | 1647 /////////////////////////////////////////////////////////////////////////////// |
| 1652 | 1648 |
| 1653 GrGLLightingEffect::GrGLLightingEffect(const GrProcessor& fp) { | 1649 void GrGLLightingEffect::emitCode(EmitArgs& args) { |
| 1654 const GrLightingEffect& m = fp.cast<GrLightingEffect>(); | 1650 const GrLightingEffect& le = args.fFp.cast<GrLightingEffect>(); |
| 1655 fLight = m.light()->createGLLight(); | 1651 if (!fLight) { |
| 1656 fBoundaryMode = m.boundaryMode(); | 1652 fLight = le.light()->createGLLight(); |
| 1657 } | 1653 } |
| 1658 | 1654 |
| 1659 GrGLLightingEffect::~GrGLLightingEffect() { | |
| 1660 delete fLight; | |
| 1661 } | |
| 1662 | |
| 1663 void GrGLLightingEffect::emitCode(EmitArgs& args) { | |
| 1664 GrGLSLUniformHandler* uniformHandler = args.fUniformHandler; | 1655 GrGLSLUniformHandler* uniformHandler = args.fUniformHandler; |
| 1665 fImageIncrementUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragm
ent_Visibility, | 1656 fImageIncrementUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragm
ent_Visibility, |
| 1666 kVec2f_GrSLType, kDefault_Gr
SLPrecision, | 1657 kVec2f_GrSLType, kDefault_Gr
SLPrecision, |
| 1667 "ImageIncrement"); | 1658 "ImageIncrement"); |
| 1668 fSurfaceScaleUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragmen
t_Visibility, | 1659 fSurfaceScaleUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragmen
t_Visibility, |
| 1669 kFloat_GrSLType, kDefault_GrSL
Precision, | 1660 kFloat_GrSLType, kDefault_GrSL
Precision, |
| 1670 "SurfaceScale"); | 1661 "SurfaceScale"); |
| 1671 fLight->emitLightColorUniform(uniformHandler); | 1662 fLight->emitLightColorUniform(uniformHandler); |
| 1672 GrGLSLFragmentBuilder* fragBuilder = args.fFragBuilder; | 1663 GrGLSLFragmentBuilder* fragBuilder = args.fFragBuilder; |
| 1673 SkString lightFunc; | 1664 SkString lightFunc; |
| (...skipping 26 matching lines...) Expand all Loading... |
| 1700 "pointToNormal", | 1691 "pointToNormal", |
| 1701 SK_ARRAY_COUNT(gPointToNormalArgs), | 1692 SK_ARRAY_COUNT(gPointToNormalArgs), |
| 1702 gPointToNormalArgs, | 1693 gPointToNormalArgs, |
| 1703 "\treturn normalize(vec3(-x * scale, -y * scale, 1
));\n", | 1694 "\treturn normalize(vec3(-x * scale, -y * scale, 1
));\n", |
| 1704 &pointToNormalName); | 1695 &pointToNormalName); |
| 1705 | 1696 |
| 1706 static const GrGLSLShaderVar gInteriorNormalArgs[] = { | 1697 static const GrGLSLShaderVar gInteriorNormalArgs[] = { |
| 1707 GrGLSLShaderVar("m", kFloat_GrSLType, 9), | 1698 GrGLSLShaderVar("m", kFloat_GrSLType, 9), |
| 1708 GrGLSLShaderVar("surfaceScale", kFloat_GrSLType), | 1699 GrGLSLShaderVar("surfaceScale", kFloat_GrSLType), |
| 1709 }; | 1700 }; |
| 1710 SkString normalBody = emitNormalFunc(fBoundaryMode, | 1701 SkString normalBody = emitNormalFunc(le.boundaryMode(), |
| 1711 pointToNormalName.c_str(), | 1702 pointToNormalName.c_str(), |
| 1712 sobelFuncName.c_str()); | 1703 sobelFuncName.c_str()); |
| 1713 SkString normalName; | 1704 SkString normalName; |
| 1714 fragBuilder->emitFunction(kVec3f_GrSLType, | 1705 fragBuilder->emitFunction(kVec3f_GrSLType, |
| 1715 "normal", | 1706 "normal", |
| 1716 SK_ARRAY_COUNT(gInteriorNormalArgs), | 1707 SK_ARRAY_COUNT(gInteriorNormalArgs), |
| 1717 gInteriorNormalArgs, | 1708 gInteriorNormalArgs, |
| 1718 normalBody.c_str(), | 1709 normalBody.c_str(), |
| 1719 &normalName); | 1710 &normalName); |
| 1720 | 1711 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 1750 | 1741 |
| 1751 void GrGLLightingEffect::GenKey(const GrProcessor& proc, | 1742 void GrGLLightingEffect::GenKey(const GrProcessor& proc, |
| 1752 const GrGLSLCaps& caps, GrProcessorKeyBuilder* b
) { | 1743 const GrGLSLCaps& caps, GrProcessorKeyBuilder* b
) { |
| 1753 const GrLightingEffect& lighting = proc.cast<GrLightingEffect>(); | 1744 const GrLightingEffect& lighting = proc.cast<GrLightingEffect>(); |
| 1754 b->add32(lighting.boundaryMode() << 2 | lighting.light()->type()); | 1745 b->add32(lighting.boundaryMode() << 2 | lighting.light()->type()); |
| 1755 } | 1746 } |
| 1756 | 1747 |
| 1757 void GrGLLightingEffect::onSetData(const GrGLSLProgramDataManager& pdman, | 1748 void GrGLLightingEffect::onSetData(const GrGLSLProgramDataManager& pdman, |
| 1758 const GrProcessor& proc) { | 1749 const GrProcessor& proc) { |
| 1759 const GrLightingEffect& lighting = proc.cast<GrLightingEffect>(); | 1750 const GrLightingEffect& lighting = proc.cast<GrLightingEffect>(); |
| 1751 if (!fLight) { |
| 1752 fLight = lighting.light()->createGLLight(); |
| 1753 } |
| 1754 |
| 1760 GrTexture* texture = lighting.texture(0); | 1755 GrTexture* texture = lighting.texture(0); |
| 1761 float ySign = texture->origin() == kTopLeft_GrSurfaceOrigin ? -1.0f : 1.0f; | 1756 float ySign = texture->origin() == kTopLeft_GrSurfaceOrigin ? -1.0f : 1.0f; |
| 1762 pdman.set2f(fImageIncrementUni, 1.0f / texture->width(), ySign / texture->he
ight()); | 1757 pdman.set2f(fImageIncrementUni, 1.0f / texture->width(), ySign / texture->he
ight()); |
| 1763 pdman.set1f(fSurfaceScaleUni, lighting.surfaceScale()); | 1758 pdman.set1f(fSurfaceScaleUni, lighting.surfaceScale()); |
| 1764 SkAutoTUnref<SkImageFilterLight> transformedLight( | 1759 SkAutoTUnref<SkImageFilterLight> transformedLight( |
| 1765 lighting.light()->transform(lighting
.filterMatrix())); | 1760 lighting.light()->transform(lighting
.filterMatrix())); |
| 1766 fLight->setData(pdman, transformedLight); | 1761 fLight->setData(pdman, transformedLight); |
| 1767 } | 1762 } |
| 1768 | 1763 |
| 1769 /////////////////////////////////////////////////////////////////////////////// | 1764 /////////////////////////////////////////////////////////////////////////////// |
| 1770 | 1765 |
| 1771 /////////////////////////////////////////////////////////////////////////////// | 1766 /////////////////////////////////////////////////////////////////////////////// |
| 1772 | 1767 |
| 1773 GrGLDiffuseLightingEffect::GrGLDiffuseLightingEffect(const GrProcessor& proc) | |
| 1774 : INHERITED(proc) { | |
| 1775 } | |
| 1776 | |
| 1777 void GrGLDiffuseLightingEffect::emitLightFunc(GrGLSLUniformHandler* uniformHandl
er, | 1768 void GrGLDiffuseLightingEffect::emitLightFunc(GrGLSLUniformHandler* uniformHandl
er, |
| 1778 GrGLSLFragmentBuilder* fragBuilder
, | 1769 GrGLSLFragmentBuilder* fragBuilder
, |
| 1779 SkString* funcName) { | 1770 SkString* funcName) { |
| 1780 const char* kd; | 1771 const char* kd; |
| 1781 fKDUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visibili
ty, | 1772 fKDUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visibili
ty, |
| 1782 kFloat_GrSLType, kDefault_GrSLPrecision, | 1773 kFloat_GrSLType, kDefault_GrSLPrecision, |
| 1783 "KD", &kd); | 1774 "KD", &kd); |
| 1784 | 1775 |
| 1785 static const GrGLSLShaderVar gLightArgs[] = { | 1776 static const GrGLSLShaderVar gLightArgs[] = { |
| 1786 GrGLSLShaderVar("normal", kVec3f_GrSLType), | 1777 GrGLSLShaderVar("normal", kVec3f_GrSLType), |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1826 this->ks() == s.ks() && | 1817 this->ks() == s.ks() && |
| 1827 this->shininess() == s.shininess(); | 1818 this->shininess() == s.shininess(); |
| 1828 } | 1819 } |
| 1829 | 1820 |
| 1830 void GrSpecularLightingEffect::onGetGLSLProcessorKey(const GrGLSLCaps& caps, | 1821 void GrSpecularLightingEffect::onGetGLSLProcessorKey(const GrGLSLCaps& caps, |
| 1831 GrProcessorKeyBuilder* b) c
onst { | 1822 GrProcessorKeyBuilder* b) c
onst { |
| 1832 GrGLSpecularLightingEffect::GenKey(*this, caps, b); | 1823 GrGLSpecularLightingEffect::GenKey(*this, caps, b); |
| 1833 } | 1824 } |
| 1834 | 1825 |
| 1835 GrGLSLFragmentProcessor* GrSpecularLightingEffect::onCreateGLSLInstance() const
{ | 1826 GrGLSLFragmentProcessor* GrSpecularLightingEffect::onCreateGLSLInstance() const
{ |
| 1836 return new GrGLSpecularLightingEffect(*this); | 1827 return new GrGLSpecularLightingEffect; |
| 1837 } | 1828 } |
| 1838 | 1829 |
| 1839 GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrSpecularLightingEffect); | 1830 GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrSpecularLightingEffect); |
| 1840 | 1831 |
| 1841 const GrFragmentProcessor* GrSpecularLightingEffect::TestCreate(GrProcessorTestD
ata* d) { | 1832 const GrFragmentProcessor* GrSpecularLightingEffect::TestCreate(GrProcessorTestD
ata* d) { |
| 1842 SkScalar surfaceScale = d->fRandom->nextSScalar1(); | 1833 SkScalar surfaceScale = d->fRandom->nextSScalar1(); |
| 1843 SkScalar ks = d->fRandom->nextUScalar1(); | 1834 SkScalar ks = d->fRandom->nextUScalar1(); |
| 1844 SkScalar shininess = d->fRandom->nextUScalar1(); | 1835 SkScalar shininess = d->fRandom->nextUScalar1(); |
| 1845 SkAutoTUnref<SkImageFilterLight> light(create_random_light(d->fRandom)); | 1836 SkAutoTUnref<SkImageFilterLight> light(create_random_light(d->fRandom)); |
| 1846 SkMatrix matrix; | 1837 SkMatrix matrix; |
| 1847 for (int i = 0; i < 9; i++) { | 1838 for (int i = 0; i < 9; i++) { |
| 1848 matrix[i] = d->fRandom->nextUScalar1(); | 1839 matrix[i] = d->fRandom->nextUScalar1(); |
| 1849 } | 1840 } |
| 1850 BoundaryMode mode = static_cast<BoundaryMode>(d->fRandom->nextU() % kBoundar
yModeCount); | 1841 BoundaryMode mode = static_cast<BoundaryMode>(d->fRandom->nextU() % kBoundar
yModeCount); |
| 1851 return GrSpecularLightingEffect::Create(d->fTextures[GrProcessorUnitTest::kA
lphaTextureIdx], | 1842 return GrSpecularLightingEffect::Create(d->fTextures[GrProcessorUnitTest::kA
lphaTextureIdx], |
| 1852 light, surfaceScale, matrix, ks, shi
niness, mode); | 1843 light, surfaceScale, matrix, ks, shi
niness, mode); |
| 1853 } | 1844 } |
| 1854 | 1845 |
| 1855 /////////////////////////////////////////////////////////////////////////////// | 1846 /////////////////////////////////////////////////////////////////////////////// |
| 1856 | 1847 |
| 1857 GrGLSpecularLightingEffect::GrGLSpecularLightingEffect(const GrProcessor& proc) | |
| 1858 : INHERITED(proc) { | |
| 1859 } | |
| 1860 | |
| 1861 void GrGLSpecularLightingEffect::emitLightFunc(GrGLSLUniformHandler* uniformHand
ler, | 1848 void GrGLSpecularLightingEffect::emitLightFunc(GrGLSLUniformHandler* uniformHand
ler, |
| 1862 GrGLSLFragmentBuilder* fragBuilde
r, | 1849 GrGLSLFragmentBuilder* fragBuilde
r, |
| 1863 SkString* funcName) { | 1850 SkString* funcName) { |
| 1864 const char* ks; | 1851 const char* ks; |
| 1865 const char* shininess; | 1852 const char* shininess; |
| 1866 | 1853 |
| 1867 fKSUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visibili
ty, | 1854 fKSUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visibili
ty, |
| 1868 kFloat_GrSLType, kDefault_GrSLPrecision,
"KS", &ks); | 1855 kFloat_GrSLType, kDefault_GrSLPrecision,
"KS", &ks); |
| 1869 fShininessUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_V
isibility, | 1856 fShininessUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_V
isibility, |
| 1870 kFloat_GrSLType, | 1857 kFloat_GrSLType, |
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2034 | 2021 |
| 2035 fragBuilder->codeAppendf("%s(%s)", fLightColorFunc.c_str(), surfaceToLight); | 2022 fragBuilder->codeAppendf("%s(%s)", fLightColorFunc.c_str(), surfaceToLight); |
| 2036 } | 2023 } |
| 2037 | 2024 |
| 2038 #endif | 2025 #endif |
| 2039 | 2026 |
| 2040 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkLightingImageFilter) | 2027 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkLightingImageFilter) |
| 2041 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDiffuseLightingImageFilter) | 2028 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDiffuseLightingImageFilter) |
| 2042 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkSpecularLightingImageFilter) | 2029 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkSpecularLightingImageFilter) |
| 2043 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END | 2030 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END |
| OLD | NEW |