modules/graphics/src/main/java/com/sun/scenario/effect/impl/prism/PrFilterContext.java

Print this page

        

*** 43,52 **** --- 43,55 ---- printerFilterContext = new PrFilterContext(resourceFactory); } return printerFilterContext; } + private PrFilterContext swinstance; + private boolean forceSW; + private PrFilterContext(Object screen) { super(screen); } public static PrFilterContext getInstance(Screen screen) {
*** 67,72 **** --- 70,108 ---- // changes defaultScreen = Screen.getMainScreen(); } return getInstance(defaultScreen); } + + // Calledonly from PPSRenderer while making a PPStoPSWDispMapPeer, + // assumes original is hw instance. + public PrFilterContext getSoftwareInstance() { + if (swinstance == null) { + if (forceSW) { + swinstance = this; + } else { + swinstance = new PrFilterContext(getReferent()); + swinstance.forceSW = true; + } + } + return swinstance; + } + + public boolean isForceSoftware() { + return forceSW; + } + + @Override + public int hashCode() { + return getReferent().hashCode() ^ Boolean.hashCode(forceSW); + } + + @Override + public boolean equals(Object o) { + if (!(o instanceof PrFilterContext)) { + return false; + } + PrFilterContext pfctx = (PrFilterContext) o; + return (this.getReferent().equals(pfctx.getReferent()) && + this.forceSW == pfctx.forceSW); + } }