Class Gradient1DShader

java.lang.Object
icyllis.arc3d.sketch.shaders.GradientShader
icyllis.arc3d.sketch.shaders.Gradient1DShader
All Implemented Interfaces:
RefCounted, Shader
Direct Known Subclasses:
AngularGradient, LinearGradient, RadialGradient

public abstract sealed class Gradient1DShader extends GradientShader permits LinearGradient, RadialGradient, AngularGradient
Base class for gradient colors that can be represented by a 1D function, it generates one parameter for interpolation:
grad_layout(x,y) -> float
Such as linear gradient, radial gradient, angular gradient.
  • Field Details

    • mPtsToUnit

      protected final Matrix mPtsToUnit
    • mTileMode

      protected final int mTileMode
  • Constructor Details

    • Gradient1DShader

      protected Gradient1DShader(float @NonNull [] inColors, @Nullable ColorSpace colorSpace, float @Nullable [] inPositions, int inColorCount, int tileMode, int interpolation, @NonNull Matrix ptsToUnit)
  • Method Details

    • isOpaque

      public boolean isOpaque()
      Description copied from interface: Shader
      Returns true if the shader is guaranteed to produce only opaque colors, subject to the Paint using the shader to apply an opaque alpha value. Subclasses should override this to allow some optimizations.
    • getColors

      @VisibleForTesting public float[] getColors()
    • getPositions

      @VisibleForTesting public float[] getPositions()
    • getPos

      public float getPos(int i)
    • getColorSpace

      public @NonNull ColorSpace getColorSpace()
    • getColorCount

      public int getColorCount()
    • getInterpolation

      public int getInterpolation()
    • getTileMode

      public int getTileMode()
    • getGradientMatrix

      public @NonNull Matrixc getGradientMatrix()
    • colorsAreOpaque

      public boolean colorsAreOpaque()
    • checkGradient1D

      protected static boolean checkGradient1D(float[] colors, float[] positions, int colorCount, int tileMode)
    • makeDegenerateGradient

      @SharedPtr protected static @Nullable @SharedPtr Shader makeDegenerateGradient(float[] colors, @Nullable ColorSpace colorSpace, float[] positions, int colorCount, int tileMode)
    • srgb_to_hsl

      public static void srgb_to_hsl(int i, float[] colors, BitSet hueIsPowerless)
    • srgb_to_hwb

      public static void srgb_to_hwb(int i, float[] colors, BitSet hueIsPowerless)