title: What's wrong with this SKShapeNode gradient coloring code?
body: <p>I'm trying to create gradient colored <code>SKShapeNode</code>.</p>
  
  <p>I found the code below from <em><a href="https://craiggrummitt.wordpress.com/2015/03/24/skshapenode-gradient/" rel="nofollow">theGoogle</a></em> but it only works when color1 is black, e.g. defined as follows:</p>
  
  <pre><code>CIColor.init(red: 0, green: 0, blue: 0, alpha: 1.0) 
  </code></pre>
  
  <p>The second color can be anything.</p>
  
  <pre><code>enum GradientDirection {
      case up
      case left
      case upLeft
      case upRight
  }
  extension SKTexture {
      convenience init(size:CGSize,color1:CIColor,color2:CIColor,direction:GradientDirection = .up) {
          let coreImageContext = CIContext(options: nil)
          let gradientFilter = CIFilter(name: "CILinearGradient")
          gradientFilter!.setDefaults()
          var startVector:CIVector
          var endVector:CIVector
          switch direction {
          case .up:
              startVector = CIVector(x: size.width/2, y: 0)
              endVector = CIVector(x: size.width/2, y: size.height)
          case .left:
              startVector = CIVector(x: size.width, y: size.height/2)
              endVector = CIVector(x: 0, y: size.height/2)
          case .upLeft:
              startVector = CIVector(x: size.width, y: 0)
              endVector = CIVector(x: 0, y: size.height)
          case .upRight:
              startVector = CIVector(x: 0, y: 0)
              endVector = CIVector(x: size.width, y: size.height)
  
          }
          gradientFilter!.setValue(startVector, forKey: "inputPoint0")
          gradientFilter!.setValue(endVector, forKey: "inputPoint1")
          gradientFilter!.setValue(color1, forKey: "inputColor0")
          gradientFilter!.setValue(color2, forKey: "inputColor1")
          let cgimg = coreImageContext.createCGImage(gradientFilter!.outputImage!, fromRect: CGRect(x: 0, y: 0, width: size.width, height: size.height))
          self.init(CGImage:cgimg)
      }
  }
  </code></pre>
  
  <p>I want the color one to be something else than black. I can't figure out what's wrong with this code. I define the <code>SKShapeNode</code> as follows:</p>
  
  <pre><code>let textureSize = CGSize(width: shapeNode.frame.width, height: shapeNode.frame.height)
  let bottomColor = CIColor.init(red: 0, green: 0, blue: 0, alpha: 1.0)
  let topColor = CIColor.init(red: 225, green: 255, blue: 255, alpha: 1.0)
  let shapeTexture = SKTexture(size:textureSize, color1:bottomColor, color2:topColor, direction:GradientDirection.up)
  shapeNode.fillTexture = shapeTexture
  self.addChild(shapeNode)
  </code></pre>
  
  <p>All help appreciated!</p>