modules/graphics/src/main/java/com/sun/prism/impl/ps/BaseShaderContext.java

Print this page




  79         (CHECK_SHADER | CHECK_TRANSFORM | CHECK_CLIP | CHECK_COMPOSITE);
  80     private static final int CHECK_TEXTURE_OP_MASK =
  81         (CHECK_SHADER | CHECK_TRANSFORM | CHECK_CLIP | CHECK_COMPOSITE);
  82     private static final int CHECK_CLEAR_OP_MASK =
  83         (CHECK_CLIP);
  84 
  85     public enum MaskType {
  86         SOLID          ("Solid"),
  87         TEXTURE        ("Texture"),
  88         ALPHA_ONE           ("AlphaOne", true),
  89         ALPHA_TEXTURE       ("AlphaTexture", true),
  90         ALPHA_TEXTURE_DIFF  ("AlphaTextureDifference", true),
  91         FILL_PGRAM     ("FillPgram"),
  92         DRAW_PGRAM     ("DrawPgram", FILL_PGRAM),
  93         FILL_CIRCLE    ("FillCircle"),
  94         DRAW_CIRCLE    ("DrawCircle", FILL_CIRCLE),
  95         FILL_ELLIPSE   ("FillEllipse"),
  96         DRAW_ELLIPSE   ("DrawEllipse", FILL_ELLIPSE),
  97         FILL_ROUNDRECT ("FillRoundRect"),
  98         DRAW_ROUNDRECT ("DrawRoundRect", FILL_ROUNDRECT),
  99         DRAW_SEMIROUNDRECT("DrawSemiRoundRect"),
 100         FILL_CUBICCURVE("FillCubicCurve");
 101 
 102         private String name;
 103         private MaskType filltype;
 104         private boolean newPaintStyle;
 105         private MaskType(String name) {
 106             this.name = name;
 107         }
 108         private MaskType(String name, boolean newstyle) {
 109             this.name = name;
 110             this.newPaintStyle = newstyle;
 111         }
 112         private MaskType(String name, MaskType filltype) {
 113             this.name = name;
 114             this.filltype = filltype;
 115         }
 116         public String getName() {
 117             return name;
 118         }
 119         public MaskType getFillType() {
 120             return filltype;
 121         }
 122         public boolean isNewPaintStyle() {
 123             return newPaintStyle;
 124         }
 125     }
 126 
 127     // mask type     4 bits (12 types)
 128     // paint type    2 bits
 129     // paint opts    2 bits
 130     private static final int NUM_STOCK_SHADER_SLOTS =
 131         MaskType.values().length << 4;
 132     // TODO: need to dispose these when the context is disposed... (RT-27379)
 133     private final Shader[] stockShaders = new Shader[NUM_STOCK_SHADER_SLOTS];
 134     // stockShaders with alpha test
 135     private final Shader[] stockATShaders = new Shader[NUM_STOCK_SHADER_SLOTS];
 136 
 137     public enum SpecialShaderType {
 138         TEXTURE_RGB          ("Solid_TextureRGB"),
 139         TEXTURE_MASK_RGB     ("Mask_TextureRGB"),
 140         TEXTURE_YV12         ("Solid_TextureYV12"),
 141         TEXTURE_First_LCD    ("Solid_TextureFirstPassLCD"),
 142         TEXTURE_SECOND_LCD   ("Solid_TextureSecondPassLCD"),
 143         SUPER                ("Mask_TextureSuper");
 144          
 145         private String name;
 146         private SpecialShaderType(String name) {
 147             this.name = name;




  79         (CHECK_SHADER | CHECK_TRANSFORM | CHECK_CLIP | CHECK_COMPOSITE);
  80     private static final int CHECK_TEXTURE_OP_MASK =
  81         (CHECK_SHADER | CHECK_TRANSFORM | CHECK_CLIP | CHECK_COMPOSITE);
  82     private static final int CHECK_CLEAR_OP_MASK =
  83         (CHECK_CLIP);
  84 
  85     public enum MaskType {
  86         SOLID          ("Solid"),
  87         TEXTURE        ("Texture"),
  88         ALPHA_ONE           ("AlphaOne", true),
  89         ALPHA_TEXTURE       ("AlphaTexture", true),
  90         ALPHA_TEXTURE_DIFF  ("AlphaTextureDifference", true),
  91         FILL_PGRAM     ("FillPgram"),
  92         DRAW_PGRAM     ("DrawPgram", FILL_PGRAM),
  93         FILL_CIRCLE    ("FillCircle"),
  94         DRAW_CIRCLE    ("DrawCircle", FILL_CIRCLE),
  95         FILL_ELLIPSE   ("FillEllipse"),
  96         DRAW_ELLIPSE   ("DrawEllipse", FILL_ELLIPSE),
  97         FILL_ROUNDRECT ("FillRoundRect"),
  98         DRAW_ROUNDRECT ("DrawRoundRect", FILL_ROUNDRECT),
  99         DRAW_SEMIROUNDRECT("DrawSemiRoundRect");

 100 
 101         private String name;
 102         private MaskType filltype;
 103         private boolean newPaintStyle;
 104         private MaskType(String name) {
 105             this.name = name;
 106         }
 107         private MaskType(String name, boolean newstyle) {
 108             this.name = name;
 109             this.newPaintStyle = newstyle;
 110         }
 111         private MaskType(String name, MaskType filltype) {
 112             this.name = name;
 113             this.filltype = filltype;
 114         }
 115         public String getName() {
 116             return name;
 117         }
 118         public MaskType getFillType() {
 119             return filltype;
 120         }
 121         public boolean isNewPaintStyle() {
 122             return newPaintStyle;
 123         }
 124     }
 125 
 126     // mask type     4 bits (14 types)
 127     // paint type    2 bits
 128     // paint opts    2 bits
 129     private static final int NUM_STOCK_SHADER_SLOTS =
 130         MaskType.values().length << 4;
 131     // TODO: need to dispose these when the context is disposed... (RT-27379)
 132     private final Shader[] stockShaders = new Shader[NUM_STOCK_SHADER_SLOTS];
 133     // stockShaders with alpha test
 134     private final Shader[] stockATShaders = new Shader[NUM_STOCK_SHADER_SLOTS];
 135 
 136     public enum SpecialShaderType {
 137         TEXTURE_RGB          ("Solid_TextureRGB"),
 138         TEXTURE_MASK_RGB     ("Mask_TextureRGB"),
 139         TEXTURE_YV12         ("Solid_TextureYV12"),
 140         TEXTURE_First_LCD    ("Solid_TextureFirstPassLCD"),
 141         TEXTURE_SECOND_LCD   ("Solid_TextureSecondPassLCD"),
 142         SUPER                ("Mask_TextureSuper");
 143          
 144         private String name;
 145         private SpecialShaderType(String name) {
 146             this.name = name;