| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2006 The Android Open Source Project | 2 * Copyright 2006 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 "SkGradientShaderPriv.h" | 8 #include "SkGradientShaderPriv.h" |
| 9 #include "SkLinearGradient.h" | 9 #include "SkLinearGradient.h" |
| 10 #include "SkRadialGradient.h" | 10 #include "SkRadialGradient.h" |
| 11 #include "SkTwoPointRadialGradient.h" | |
| 12 #include "SkTwoPointConicalGradient.h" | 11 #include "SkTwoPointConicalGradient.h" |
| 13 #include "SkSweepGradient.h" | 12 #include "SkSweepGradient.h" |
| 14 | 13 |
| 15 void SkGradientShaderBase::Descriptor::flatten(SkWriteBuffer& buffer) const { | 14 void SkGradientShaderBase::Descriptor::flatten(SkWriteBuffer& buffer) const { |
| 16 buffer.writeColorArray(fColors, fCount); | 15 buffer.writeColorArray(fColors, fCount); |
| 17 if (fPos) { | 16 if (fPos) { |
| 18 buffer.writeBool(true); | 17 buffer.writeBool(true); |
| 19 buffer.writeScalarArray(fPos, fCount); | 18 buffer.writeScalarArray(fPos, fCount); |
| 20 } else { | 19 } else { |
| 21 buffer.writeBool(false); | 20 buffer.writeBool(false); |
| (...skipping 773 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 795 if (!valid_grad(colors, pos, colorCount, mode)) { | 794 if (!valid_grad(colors, pos, colorCount, mode)) { |
| 796 return NULL; | 795 return NULL; |
| 797 } | 796 } |
| 798 EXPAND_1_COLOR(colorCount); | 797 EXPAND_1_COLOR(colorCount); |
| 799 | 798 |
| 800 SkGradientShaderBase::Descriptor desc; | 799 SkGradientShaderBase::Descriptor desc; |
| 801 desc_init(&desc, colors, pos, colorCount, mode, flags, localMatrix); | 800 desc_init(&desc, colors, pos, colorCount, mode, flags, localMatrix); |
| 802 return SkNEW_ARGS(SkRadialGradient, (center, radius, desc)); | 801 return SkNEW_ARGS(SkRadialGradient, (center, radius, desc)); |
| 803 } | 802 } |
| 804 | 803 |
| 805 SkShader* SkGradientShader::CreateTwoPointRadial(const SkPoint& start, | |
| 806 SkScalar startRadius, | |
| 807 const SkPoint& end, | |
| 808 SkScalar endRadius, | |
| 809 const SkColor colors[], | |
| 810 const SkScalar pos[], | |
| 811 int colorCount, | |
| 812 SkShader::TileMode mode, | |
| 813 uint32_t flags, | |
| 814 const SkMatrix* localMatrix) { | |
| 815 if (startRadius < 0 || endRadius < 0) { | |
| 816 return NULL; | |
| 817 } | |
| 818 if (!valid_grad(colors, pos, colorCount, mode)) { | |
| 819 return NULL; | |
| 820 } | |
| 821 EXPAND_1_COLOR(colorCount); | |
| 822 | |
| 823 SkGradientShaderBase::Descriptor desc; | |
| 824 desc_init(&desc, colors, pos, colorCount, mode, flags, localMatrix); | |
| 825 return SkNEW_ARGS(SkTwoPointRadialGradient, | |
| 826 (start, startRadius, end, endRadius, desc)); | |
| 827 } | |
| 828 | |
| 829 SkShader* SkGradientShader::CreateTwoPointConical(const SkPoint& start, | 804 SkShader* SkGradientShader::CreateTwoPointConical(const SkPoint& start, |
| 830 SkScalar startRadius, | 805 SkScalar startRadius, |
| 831 const SkPoint& end, | 806 const SkPoint& end, |
| 832 SkScalar endRadius, | 807 SkScalar endRadius, |
| 833 const SkColor colors[], | 808 const SkColor colors[], |
| 834 const SkScalar pos[], | 809 const SkScalar pos[], |
| 835 int colorCount, | 810 int colorCount, |
| 836 SkShader::TileMode mode, | 811 SkShader::TileMode mode, |
| 837 uint32_t flags, | 812 uint32_t flags, |
| 838 const SkMatrix* localMatrix) { | 813 const SkMatrix* localMatrix) { |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 890 | 865 |
| 891 SkGradientShaderBase::Descriptor desc; | 866 SkGradientShaderBase::Descriptor desc; |
| 892 desc_init(&desc, colors, pos, colorCount, SkShader::kClamp_TileMode, flags,
localMatrix); | 867 desc_init(&desc, colors, pos, colorCount, SkShader::kClamp_TileMode, flags,
localMatrix); |
| 893 return SkNEW_ARGS(SkSweepGradient, (cx, cy, desc)); | 868 return SkNEW_ARGS(SkSweepGradient, (cx, cy, desc)); |
| 894 } | 869 } |
| 895 | 870 |
| 896 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkGradientShader) | 871 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkGradientShader) |
| 897 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLinearGradient) | 872 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLinearGradient) |
| 898 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkRadialGradient) | 873 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkRadialGradient) |
| 899 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkSweepGradient) | 874 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkSweepGradient) |
| 900 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkTwoPointRadialGradient) | |
| 901 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkTwoPointConicalGradient) | 875 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkTwoPointConicalGradient) |
| 902 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END | 876 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END |
| 903 | 877 |
| 904 /////////////////////////////////////////////////////////////////////////////// | 878 /////////////////////////////////////////////////////////////////////////////// |
| 905 | 879 |
| 906 #if SK_SUPPORT_GPU | 880 #if SK_SUPPORT_GPU |
| 907 | 881 |
| 908 #include "effects/GrTextureStripAtlas.h" | 882 #include "effects/GrTextureStripAtlas.h" |
| 909 #include "GrInvariantOutput.h" | 883 #include "GrInvariantOutput.h" |
| 910 #include "gl/builders/GrGLProgramBuilder.h" | 884 #include "gl/builders/GrGLProgramBuilder.h" |
| (...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1203 (*stops)[i] = stop; | 1177 (*stops)[i] = stop; |
| 1204 stop = i < outColors - 1 ? stop + random->nextUScalar1() * (1.f - st
op) : 1.f; | 1178 stop = i < outColors - 1 ? stop + random->nextUScalar1() * (1.f - st
op) : 1.f; |
| 1205 } | 1179 } |
| 1206 } | 1180 } |
| 1207 *tm = static_cast<SkShader::TileMode>(random->nextULessThan(SkShader::kTileM
odeCount)); | 1181 *tm = static_cast<SkShader::TileMode>(random->nextULessThan(SkShader::kTileM
odeCount)); |
| 1208 | 1182 |
| 1209 return outColors; | 1183 return outColors; |
| 1210 } | 1184 } |
| 1211 | 1185 |
| 1212 #endif | 1186 #endif |
| OLD | NEW |