Skip to content

Commit e342f69

Browse files
committed
fix(android): fix vsync accumulation bug
1 parent 929a0d5 commit e342f69

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

renderer/native/android/src/main/java/com/tencent/renderer/utils/ChoreographerUtils.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,24 +18,24 @@
1818

1919
import android.view.Choreographer;
2020
import androidx.annotation.MainThread;
21-
import java.util.ArrayList;
2221
import java.util.HashMap;
22+
import java.util.HashSet;
2323
import java.util.Map.Entry;
2424

2525
public class ChoreographerUtils {
2626

2727
public static final String DO_FRAME = "frameUpdate";
2828
private static boolean sEnablePostFrame = false;
29-
private static HashMap<Integer, ArrayList<Integer>> sListeners = null;
29+
private static HashMap<Integer, HashSet<Integer>> sListeners = null;
3030

3131
private static void handleDoFrameCallback() {
32-
for (Entry<Integer, ArrayList<Integer>> entry : sListeners.entrySet()) {
32+
for (Entry<Integer, HashSet<Integer>> entry : sListeners.entrySet()) {
3333
Integer rendererId = entry.getKey();
34-
ArrayList<Integer> rootList = entry.getValue();
35-
if (rootList == null) {
34+
HashSet<Integer> rootSet = entry.getValue();
35+
if (rootSet == null) {
3636
continue;
3737
}
38-
for (Integer rootId : rootList) {
38+
for (Integer rootId : rootSet) {
3939
EventUtils.sendRootEvent(rendererId, rootId, DO_FRAME, null);
4040
}
4141
}
@@ -62,9 +62,9 @@ public static void registerDoFrameListener(Integer rendererId, Integer rootId) {
6262
if (sListeners == null) {
6363
sListeners = new HashMap<>();
6464
}
65-
ArrayList<Integer> roots = sListeners.get(rendererId);
65+
HashSet<Integer> roots = sListeners.get(rendererId);
6666
if (roots == null) {
67-
roots = new ArrayList<>();
67+
roots = new HashSet<>();
6868
roots.add(rootId);
6969
sListeners.put(rendererId, roots);
7070
} else {
@@ -87,7 +87,7 @@ public static void unregisterDoFrameListener(Integer rendererId, Integer rootId)
8787
if (sListeners == null) {
8888
return;
8989
}
90-
ArrayList<Integer> roots = sListeners.get(rendererId);
90+
HashSet<Integer> roots = sListeners.get(rendererId);
9191
if (roots != null) {
9292
roots.remove(rootId);
9393
if (roots.isEmpty()) {

0 commit comments

Comments
 (0)