Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8092283

Support more than 12 stops in CSS gradients

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Unresolved
    • Icon: P4 P4
    • tbd
    • 7u10
    • javafx
    • OS X 10.8.2, JDK 7u10

      I have some complex gradients that needs more than 12 stops for visualization (40 in this case) and when I try to use it from css I get the following exception:
      java.lang.RuntimeException: Maximum number of gradient stops exceeded (paint uses 19 stops, but max is 12)
      at com.sun.prism.impl.ps.PaintHelper.stopsToImage(PaintHelper.java:94)
      at com.sun.prism.impl.ps.PaintHelper.initGradient(PaintHelper.java:137)
      at com.sun.prism.impl.ps.PaintHelper.setMultiGradient(PaintHelper.java:164)
      at com.sun.prism.impl.ps.PaintHelper.setLinearGradient(PaintHelper.java:271)
      at com.sun.prism.impl.ps.BaseShaderContext.updatePaintShader(BaseShaderContext.java:209)
      at com.sun.prism.impl.ps.BaseShaderContext.validatePaintOp(BaseShaderContext.java:379)
      at com.sun.prism.impl.ps.BaseShaderContext.validatePaintOp(BaseShaderContext.java:326)
      at com.sun.prism.impl.ps.BaseShaderContext.validatePaintOp(BaseShaderContext.java:285)
      at com.sun.prism.impl.BaseContext.validateClearOp(BaseContext.java:91)
      at com.sun.prism.es2.ES2Graphics.clear(ES2Graphics.java:74)
      at com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:106)
      at com.sun.javafx.tk.quantum.AbstractPainter.paintImpl(AbstractPainter.java:175)
      at com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:73)
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
      at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351)
      at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
      at com.sun.prism.render.RenderJob.run(RenderJob.java:37)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
      at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:98)
      at java.lang.Thread.run(Thread.java:722)

      It might be very rare problem but nevertheless I think 12 stops are not enough for a bit more complex gradients.

            Unassigned Unassigned
            ggrunwald Gerrit Grunwald (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Imported: