On Mon, 10 May 2021 10:14:40 GMT, Jayathirth D V <j...@openjdk.org> wrote:
>> You can add a new abstract method to the parent class: getRenderQueue(), and >> override it in subclasses to call MTLRenderQueue/OGL.getInstance(); In this >> way, you can push to the parent more methods by calling just this new >> getRenderQueue(). >> >> I think the only methods which cannot be pushe dto the parent is >> replaceSurfaceData() due to insets usage. > > I tried making this change. > Moved all methods except replaceSurfaceData() to CFLayer.java. Moved the jni > native declaration also to CFlayer.java. > For this to link i need to change native JNI signatures also to map to > CFLayer. But this will result in duplicate JNI symbols. If i change name of > these native JNI calls to something like nativeMTL/CGLSetScale, i again have > to use if/else check to verify which signature to call. Introducing a common > native interface between MTLLayer.m and CGLLayer.m would not help because > their implementation is different(Also it is out of scope of this PR). > > I am not finding ways to move methods accessing native JNI calls to common > CFLayer. I will push this PR. If we find appropriate way to move more methods to CFLayer.java i will handle it in a separate bug. ------------- PR: https://git.openjdk.java.net/jdk/pull/3851