small state cleanup

This commit is contained in:
Chloe committed 2025-01-21 22:28:23 -07:00
1 parent dacabda792
commit c029fed37d
3 files changed
+17 -21

No files matched your search

@@ -70,7 +70,7 @@ class GeometryDashActivity : AppCompatActivity(), Cocos2dxHelper.Cocos2dxHelperL
private var mHasWindowFocus = false private var mHasWindowFocus = false
private var displayMode = DisplayMode.DEFAULT private var displayMode = DisplayMode.DEFAULT
private var forceRefreshRate = false private var mChosenDisplayRate: Float? = null
private var mLimitedRefreshRate: Int? = null private var mLimitedRefreshRate: Int? = null
private var mAspectRatio = 0.0f private var mAspectRatio = 0.0f
private var mScreenZoom = 1.0f private var mScreenZoom = 1.0f
@@ -429,13 +429,9 @@ class GeometryDashActivity : AppCompatActivity(), Cocos2dxHelper.Cocos2dxHelperL
val renderer = Cocos2dxRenderer(glSurfaceView) val renderer = Cocos2dxRenderer(glSurfaceView)
glSurfaceView.setCocos2dxRenderer(renderer) glSurfaceView.setCocos2dxRenderer(renderer)
renderer.setFrameRate = mChosenDisplayRate
val frameRate = mLimitedRefreshRate val frameRate = mLimitedRefreshRate
// force refresh rate causes some issues if the limited framerate isn't supported by device
if (forceRefreshRate && frameRate == null) {
renderer.setFrameRate = true
}
if (frameRate != null) { if (frameRate != null) {
renderer.limitFrameRate(frameRate) renderer.limitFrameRate(frameRate)
} }
@@ -459,14 +455,17 @@ class GeometryDashActivity : AppCompatActivity(), Cocos2dxHelper.Cocos2dxHelperL
mScreenZoom = preferenceUtils.getInt(PreferenceUtils.Key.SCREEN_ZOOM) / 100.0f mScreenZoom = preferenceUtils.getInt(PreferenceUtils.Key.SCREEN_ZOOM) / 100.0f
mScreenZoomFit = preferenceUtils.getBoolean(PreferenceUtils.Key.SCREEN_ZOOM_FIT) mScreenZoomFit = preferenceUtils.getBoolean(PreferenceUtils.Key.SCREEN_ZOOM_FIT)
forceRefreshRate = preferenceUtils.getBoolean(PreferenceUtils.Key.FORCE_HRR) val limitedRefreshRate = preferenceUtils.getInt(PreferenceUtils.Key.LIMIT_FRAME_RATE).takeIf { it != 0 }
mLimitedRefreshRate = preferenceUtils.getInt(PreferenceUtils.Key.LIMIT_FRAME_RATE).takeIf { it != 0 } mLimitedRefreshRate = limitedRefreshRate
val forceRefreshRate = preferenceUtils.getBoolean(PreferenceUtils.Key.FORCE_HRR)
if (forceRefreshRate && Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { if (forceRefreshRate && Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
val maxRefreshRate = display?.supportedModes?.maxBy { it.refreshRate }?.refreshRate var chosenRefreshRate = display.supportedModes?.maxByOrNull { it.refreshRate }?.refreshRate
if (maxRefreshRate != null) { if (chosenRefreshRate != null) {
window.attributes.preferredRefreshRate = maxRefreshRate window.attributes.preferredRefreshRate = chosenRefreshRate
} }
mChosenDisplayRate = chosenRefreshRate
} }
if (displayMode == DisplayMode.FULLSCREEN && Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { if (displayMode == DisplayMode.FULLSCREEN && Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
@@ -119,12 +119,8 @@ class Cocos2dxGLSurfaceView(context: Context) : GLSurfaceView(context) {
} }
@RequiresApi(Build.VERSION_CODES.R) @RequiresApi(Build.VERSION_CODES.R)
fun updateRefreshRate() { fun updateRefreshRate(refreshRate: Float) {
val maxRefreshRate = display.supportedModes.maxBy { it.refreshRate }.refreshRate holder.surface.setFrameRate(refreshRate, Surface.FRAME_RATE_COMPATIBILITY_DEFAULT)
holder.surface.setFrameRate(
maxRefreshRate,
Surface.FRAME_RATE_COMPATIBILITY_DEFAULT
)
} }
override fun onPause() { override fun onPause() {
@@ -64,7 +64,7 @@ class Cocos2dxRenderer(private var handler: Cocos2dxGLSurfaceView) : GLSurfaceVi
private var screenWidth = 0 private var screenWidth = 0
private var screenHeight = 0 private var screenHeight = 0
var sendResizeEvents = false var sendResizeEvents = false
var setFrameRate = false var setFrameRate: Float? = null
private var mAnimationInterval: Long? = null private var mAnimationInterval: Long? = null
fun limitFrameRate(rate: Int) { fun limitFrameRate(rate: Int) {
@@ -82,8 +82,9 @@ class Cocos2dxRenderer(private var handler: Cocos2dxGLSurfaceView) : GLSurfaceVi
} }
override fun onSurfaceChanged(gl10: GL10?, width: Int, height: Int) { override fun onSurfaceChanged(gl10: GL10?, width: Int, height: Int) {
if (setFrameRate && Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { val chosenRefreshRate = setFrameRate
handler.updateRefreshRate() if (chosenRefreshRate != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
handler.updateRefreshRate(chosenRefreshRate)
} }
} }