On Fri, 25 Apr 2025 14:19:54 GMT, Nikita Gubarkov <ngubar...@openjdk.org> wrote:
>> `SurfaceManagerFactory` just checks a given `GraphicsConfiguration` against >> multiple types via `instanceof`, it has 3 platform-specific implementations, >> which rely on an ugly injection process. >> >> There is no reason to have this class at all, we could just let >> `GraphicsConfiguration` create a compatible `SurfaceManager` instead. >> >> This would reduce coupling without having to collect all surface manager >> types in a single place (without real need to do so). >> And this would also remove dependency on the class initialization sequence >> by getting rid of the injection process. > > Nikita Gubarkov has updated the pull request incrementally with one > additional commit since the last revision: > > fixup! 8355611: Get rid of SurfaceManagerFactory src/java.desktop/unix/classes/sun/java2d/xr/XRGraphicsConfig.java line 38: > 36: > 37: public class XRGraphicsConfig extends X11GraphicsConfig implements > 38: SurfaceManager.ProxiedGraphicsConfig, SurfaceManager.Factory { Note that we have inconsistency here: * For X11 the SurfaceManager.Factory is added to the parent X11GraphicsConfig and to the child XRGraphicsConfig. * For glx the SurfaceManager.Factory is added to the parent OGLGraphicsConfig and is not added to the child CGLGraphicsConfig/GLXGraphicsConfig. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/24875#discussion_r2061141505