Integrated: 8272288: Funky multiresolution image breaks graphics context
Sergey Bylokhov
serb at openjdk.org
Thu Feb 9 19:27:58 UTC 2023
On Wed, 14 Dec 2022 08:20:31 GMT, Sergey Bylokhov <serb at openjdk.org> wrote:
> This is the next iteration of fixing the issue of rendering "broken" image. The fix for [JDK-7183828](https://bugs.openjdk.org/browse/JDK-7183828) changed the possible IllegalArgumentException during rendering to the InvalidPipeException in assumtion that the new exception will be catched by the java2d machinery and the current-accelerated pipeline will be invalidated and software-pipeline will take care about that image.
>
> But that change uncover another bug, the accelerated-pipeline invalidation by the InvalidPipeException works in D3D pipeline only, other pipelines start to use software based surfaces, but do not report about that the client code, as a result the next code does not work as expected, since contentsLost alwys return false:
>
> do {
> vi.validate(gc);
> Graphics2D g = vi.createGraphics();
> g.fillRect(0, 0, vi.getWidth(), vi.getHeight());
> g.dispose();
> } while (vi.contentsLost());
>
> After this change the correct value will be reported by the contentsLost(), so the RepaintManager will be able to catch that.
> But this fix uncovered another bug. That fallback code path in the RepaintManager was not tested on HiDPI screen and does not work well. I'll file a separate bug about that.
This pull request has now been integrated.
Changeset: 51479692
Author: Sergey Bylokhov <serb at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/5147969253a9792d883fdd505a62b959c5541566
Stats: 157 lines in 3 files changed: 143 ins; 12 del; 2 mod
8272288: Funky multiresolution image breaks graphics context
Reviewed-by: jdv
-------------
PR: https://git.openjdk.org/jdk/pull/11664
More information about the client-libs-dev
mailing list