From 4ee85f0e45f38f469288956116bbbc9764ae3d23 Mon Sep 17 00:00:00 2001 From: codeanticode Date: Mon, 4 Jun 2012 01:02:01 +0000 Subject: [PATCH] add check to avoid setting the framerate again when the new fps is same as the old --- .../opengl/src/processing/opengl/PGL.java | 34 ++++++++++--------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/java/libraries/opengl/src/processing/opengl/PGL.java b/java/libraries/opengl/src/processing/opengl/PGL.java index 328a24e23..20da5ba1d 100644 --- a/java/libraries/opengl/src/processing/opengl/PGL.java +++ b/java/libraries/opengl/src/processing/opengl/PGL.java @@ -458,23 +458,25 @@ public class PGL { public void setFramerate(float framerate) { - if (60 < framerate) { - // Disables v-sync - gl.setSwapInterval(0); - } else if (30 < framerate) { - gl.setSwapInterval(1); - } else { - gl.setSwapInterval(2); + if (targetFramerate != framerate) { + if (60 < framerate) { + // Disables v-sync + gl.setSwapInterval(0); + } else if (30 < framerate) { + gl.setSwapInterval(1); + } else { + gl.setSwapInterval(2); + } + if ((60 < framerate && targetFramerate <= 60) || + (framerate <= 60 && 60 < targetFramerate)) { + // Enabling/disabling v-sync, we force a + // surface reinitialization to avoid screen + // no-paint issue observed on MacOSX. + initialized = false; + } + targetFramerate = framerate; + setFramerate = true; } - if ((60 < framerate && targetFramerate <= 60) || - (framerate <= 60 && 60 < targetFramerate)) { - // Enabling/disabling v-sync, we force a - // surface reinitialization to avoid screen - // no-paint issue observed on MacOSX. - initialized = false; - } - targetFramerate = framerate; - setFramerate = true; }