modules/graphics/src/main/java/com/sun/scenario/effect/impl/state/BoxRenderState.java

Print this page




 299         String name;
 300         switch (actype) {
 301             case NONE:
 302             case SIMD:
 303                 if (swCompatible && spread == 0.0f) {
 304                     name = isShadow() ? "BoxShadow" : "BoxBlur";
 305                     break;
 306                 }
 307                 /* FALLS THROUGH */
 308             default:
 309                 name = isShadow() ? "LinearConvolveShadow" : "LinearConvolve";
 310                 break;
 311         }
 312         EffectPeer peer = r.getPeerInstance(fctx, name, psize);
 313         return peer;
 314     }
 315 
 316     @Override
 317     public Rectangle getInputClip(int i, Rectangle filterClip) {
 318         if (filterClip != null) {
 319             int klenh = ((int) Math.ceil(Math.max(inputSizeH, 1.0))) | 1;
 320             int klenv = ((int) Math.ceil(Math.max(inputSizeV, 1.0))) | 1;
 321             if ((klenh | klenv) > 1) {
 322                 filterClip = new Rectangle(filterClip);
 323                 // We actually want to grow them by (klen-1)/2, but since we
 324                 // have forced the klen sizes to be odd above, a simple integer
 325                 // divide by 2 is enough...
 326                 filterClip.grow(klenh/2, klenv/2);
 327             }
 328         }
 329         return filterClip;
 330     }
 331 
 332     @Override
 333     public ImageData validatePassInput(ImageData src, int pass) {
 334         this.validatedPass = pass;
 335         BaseTransform srcTx = src.getTransform();
 336         samplevectors = new float[2];
 337         samplevectors[pass] = 1.0f;
 338         float iSize = (pass == 0) ? inputSizeH : inputSizeV;
 339         if (srcTx.isTranslateOrIdentity()) {
 340             this.swCompatible = true;




 299         String name;
 300         switch (actype) {
 301             case NONE:
 302             case SIMD:
 303                 if (swCompatible && spread == 0.0f) {
 304                     name = isShadow() ? "BoxShadow" : "BoxBlur";
 305                     break;
 306                 }
 307                 /* FALLS THROUGH */
 308             default:
 309                 name = isShadow() ? "LinearConvolveShadow" : "LinearConvolve";
 310                 break;
 311         }
 312         EffectPeer peer = r.getPeerInstance(fctx, name, psize);
 313         return peer;
 314     }
 315 
 316     @Override
 317     public Rectangle getInputClip(int i, Rectangle filterClip) {
 318         if (filterClip != null) {
 319             int klenh = getInputKernelSize(0);
 320             int klenv = getInputKernelSize(1);
 321             if ((klenh | klenv) > 1) {
 322                 filterClip = new Rectangle(filterClip);
 323                 // We actually want to grow them by (klen-1)/2, but since we
 324                 // have forced the klen sizes to be odd above, a simple integer
 325                 // divide by 2 is enough...
 326                 filterClip.grow(klenh/2, klenv/2);
 327             }
 328         }
 329         return filterClip;
 330     }
 331 
 332     @Override
 333     public ImageData validatePassInput(ImageData src, int pass) {
 334         this.validatedPass = pass;
 335         BaseTransform srcTx = src.getTransform();
 336         samplevectors = new float[2];
 337         samplevectors[pass] = 1.0f;
 338         float iSize = (pass == 0) ? inputSizeH : inputSizeV;
 339         if (srcTx.isTranslateOrIdentity()) {
 340             this.swCompatible = true;