modules/graphics/src/main/java/com/sun/scenario/effect/PhongLighting.java

Print this page




 289     public Point2D transform(Point2D p, Effect defaultInput) {
 290         return getContentInput(defaultInput).transform(p, defaultInput);
 291     }
 292 
 293     @Override
 294     public Point2D untransform(Point2D p, Effect defaultInput) {
 295         return getContentInput(defaultInput).untransform(p, defaultInput);
 296     }
 297 
 298     @Override
 299     public RenderState getRenderState(FilterContext fctx,
 300                                       BaseTransform transform,
 301                                       Rectangle outputClip,
 302                                       Object renderHelper,
 303                                       Effect defaultInput)
 304     {
 305         // RT-27564
 306         // TODO: Since only the content input is used for the output bounds
 307         // we could attempt to factor the bounds of the content input in our
 308         // answer for the getInputClip() method of the RenderState, but for
 309         // now we will just use the stock RenderSpaceRenderState object.
 310         return RenderState.RenderSpaceRenderState;

























 311     }
 312 
 313     @Override
 314     public boolean reducesOpaquePixels() {
 315         final Effect contentInput = getContentInput();
 316         return contentInput != null && contentInput.reducesOpaquePixels();
 317     }
 318 
 319     @Override
 320     public DirtyRegionContainer getDirtyRegions(Effect defaultInput, DirtyRegionPool regionPool) {
 321         Effect bump = getDefaultedInput(0, defaultInput);
 322         DirtyRegionContainer drc1 = bump.getDirtyRegions(defaultInput, regionPool);
 323         drc1.grow(1, 1);
 324 
 325         Effect content = getDefaultedInput(1, defaultInput);
 326         DirtyRegionContainer drc2 = content.getDirtyRegions(defaultInput, regionPool);
 327 
 328         drc1.merge(drc2);
 329         regionPool.checkIn(drc2);
 330         


 289     public Point2D transform(Point2D p, Effect defaultInput) {
 290         return getContentInput(defaultInput).transform(p, defaultInput);
 291     }
 292 
 293     @Override
 294     public Point2D untransform(Point2D p, Effect defaultInput) {
 295         return getContentInput(defaultInput).untransform(p, defaultInput);
 296     }
 297 
 298     @Override
 299     public RenderState getRenderState(FilterContext fctx,
 300                                       BaseTransform transform,
 301                                       Rectangle outputClip,
 302                                       Object renderHelper,
 303                                       Effect defaultInput)
 304     {
 305         // RT-27564
 306         // TODO: Since only the content input is used for the output bounds
 307         // we could attempt to factor the bounds of the content input in our
 308         // answer for the getInputClip() method of the RenderState, but for
 309         // now we will just use (a close copy of) the stock RenderSpaceRenderState object.
 310         return new RenderState() {
 311             @Override
 312             public EffectCoordinateSpace getEffectTransformSpace() {
 313                 return EffectCoordinateSpace.RenderSpace;
 314             }
 315 
 316             @Override
 317             public BaseTransform getInputTransform(BaseTransform filterTransform) {
 318                 return filterTransform;
 319             }
 320 
 321             @Override
 322             public BaseTransform getResultTransform(BaseTransform filterTransform) {
 323                 return BaseTransform.IDENTITY_TRANSFORM;
 324             }
 325 
 326             @Override
 327             public Rectangle getInputClip(int i, Rectangle filterClip) {
 328                 if (i == 0) {
 329                     Rectangle r = new Rectangle(filterClip);
 330                     r.grow(1, 1);
 331                     return r;
 332                 }
 333                 return filterClip;
 334             }
 335         };
 336     }
 337 
 338     @Override
 339     public boolean reducesOpaquePixels() {
 340         final Effect contentInput = getContentInput();
 341         return contentInput != null && contentInput.reducesOpaquePixels();
 342     }
 343 
 344     @Override
 345     public DirtyRegionContainer getDirtyRegions(Effect defaultInput, DirtyRegionPool regionPool) {
 346         Effect bump = getDefaultedInput(0, defaultInput);
 347         DirtyRegionContainer drc1 = bump.getDirtyRegions(defaultInput, regionPool);
 348         drc1.grow(1, 1);
 349 
 350         Effect content = getDefaultedInput(1, defaultInput);
 351         DirtyRegionContainer drc2 = content.getDirtyRegions(defaultInput, regionPool);
 352 
 353         drc1.merge(drc2);
 354         regionPool.checkIn(drc2);
 355