Android renderThreadManager changed to non static (#2872)

This commit is contained in:
Alex Cristici
2024-09-24 17:57:46 +03:00
committed by GitHub
parent 8b6bc742cc
commit 3c250e84e5
3 changed files with 6 additions and 4 deletions

View File

@@ -14,7 +14,7 @@ import java.util.ArrayList;
public abstract class MapLibreSurfaceView extends SurfaceView implements SurfaceHolder.Callback2 {
protected static final String TAG = "MapLibreSurfaceView";
protected static final RenderThreadManager renderThreadManager = new RenderThreadManager();
protected final RenderThreadManager renderThreadManager = new RenderThreadManager();
protected SurfaceViewMapRenderer renderer;
protected RenderThread renderThread;
@@ -266,13 +266,14 @@ public abstract class MapLibreSurfaceView extends SurfaceView implements Surface
* sRenderThreadManager object. This avoids multiple-lock ordering issues.
*/
abstract static class RenderThread extends Thread {
RenderThread() {
RenderThread(RenderThreadManager aRenderThreadManager) {
super();
width = 0;
height = 0;
requestRender = true;
renderMode = MapRenderer.RenderingRefreshMode.WHEN_DIRTY;
wantRenderNotification = false;
renderThreadManager = aRenderThreadManager;
}
@Override
@@ -489,6 +490,7 @@ public abstract class MapLibreSurfaceView extends SurfaceView implements Surface
protected ArrayList<Runnable> eventQueue = new ArrayList<>();
protected boolean sizeChanged = true;
protected Runnable finishDrawingRunnable = null;
protected RenderThreadManager renderThreadManager = null;
// End of member variables protected by the sRenderThreadManager monitor.
}

View File

@@ -324,7 +324,7 @@ public class MapLibreGLSurfaceView extends MapLibreSurfaceView {
*/
static class GLThread extends MapLibreSurfaceView.RenderThread {
GLThread(WeakReference<MapLibreGLSurfaceView> surfaceViewWeakRef) {
super();
super(surfaceViewWeakRef.get().renderThreadManager);
mSurfaceViewWeakRef = surfaceViewWeakRef;
}

View File

@@ -25,7 +25,7 @@ public class MapLibreVulkanSurfaceView extends MapLibreSurfaceView {
static class VulkanThread extends MapLibreSurfaceView.RenderThread {
VulkanThread(WeakReference<MapLibreVulkanSurfaceView> surfaceViewWeakRef) {
super();
super(surfaceViewWeakRef.get().renderThreadManager);
mSurfaceViewWeakRef = surfaceViewWeakRef;
}