...
This commit is contained in:
@@ -33,24 +33,24 @@ class MyWallpaperService : WallpaperService() {
|
||||
private val syncDelayMs = 250L // 상태 변경을 처리하기 전의 지연 시간
|
||||
private var frameCount = 0
|
||||
private val debugLogCheck = 240
|
||||
private val renderRunnable = object : Runnable {
|
||||
override fun run() {
|
||||
if (!isVisible || !isSurfaceValid) return
|
||||
|
||||
// [수정] nativeRender -> render
|
||||
nativeRenderer?.render(holder.surface)
|
||||
|
||||
frameCount++
|
||||
if (frameCount % debugLogCheck == 0) {
|
||||
frameCount = 0
|
||||
// [수정] nativeGetDebugInfo -> getDebugInfo
|
||||
val debugInfo = nativeRenderer?.getDebugInfo() ?: "Kotlin nativeRenderer is null"
|
||||
Log.d(TAG, debugInfo)
|
||||
}
|
||||
|
||||
handler.postDelayed(this, frameDelayMs)
|
||||
}
|
||||
}
|
||||
// private val renderRunnable = object : Runnable {
|
||||
// override fun run() {
|
||||
// if (!isVisible || !isSurfaceValid) return
|
||||
//
|
||||
// // [수정] nativeRender -> render
|
||||
// nativeRenderer?.render(holder.surface)
|
||||
//
|
||||
// frameCount++
|
||||
// if (frameCount % debugLogCheck == 0) {
|
||||
// frameCount = 0
|
||||
// // [수정] nativeGetDebugInfo -> getDebugInfo
|
||||
// val debugInfo = nativeRenderer?.getDebugInfo() ?: "Kotlin nativeRenderer is null"
|
||||
// Log.d(TAG, debugInfo)
|
||||
// }
|
||||
//
|
||||
// handler.postDelayed(this, frameDelayMs)
|
||||
// }
|
||||
// }
|
||||
private val destroyRenderer = Runnable {
|
||||
nativeRenderer?.destroy()
|
||||
nativeRenderer = null
|
||||
@@ -161,8 +161,9 @@ class MyWallpaperService : WallpaperService() {
|
||||
private fun startRendering() {
|
||||
if (isVisible && isSurfaceValid) {
|
||||
Log.d(TAG, "startRendering: Conditions met. Starting loop. ${handler}")
|
||||
handler.removeCallbacks(renderRunnable)
|
||||
handler.post(renderRunnable)
|
||||
// handler.removeCallbacks(renderRunnable)
|
||||
// handler.post(renderRunnable)
|
||||
nativeRenderer?.startRenderLoop(holder.surface)
|
||||
} else {
|
||||
Log.d(TAG, "startRendering: Conditions not met. Starting loop fail.")
|
||||
}
|
||||
@@ -172,7 +173,7 @@ class MyWallpaperService : WallpaperService() {
|
||||
Log.w(TAG, "stopRendering: Stopping loop.")
|
||||
// 핸들러가 초기화된 경우에만 콜백 제거 시도
|
||||
if (::handler.isInitialized) {
|
||||
handler.removeCallbacks(renderRunnable)
|
||||
nativeRenderer?.stopRenderLoop()
|
||||
} else {
|
||||
Log.w(TAG, "stopRendering: Stopping loop. ${::handler.isInitialized}")
|
||||
}
|
||||
|
||||
@@ -80,8 +80,25 @@ class NativeRenderer {
|
||||
}
|
||||
}
|
||||
|
||||
// --- Private JNI declarations ---
|
||||
fun startRenderLoop(surface: Surface) {
|
||||
if (nativeHandle != 0L) {
|
||||
nativeStartRenderLoop(nativeHandle, surface)
|
||||
} else {
|
||||
"Kotlin Wrapper: Native handle is null."
|
||||
}
|
||||
}
|
||||
|
||||
fun stopRenderLoop() {
|
||||
if (nativeHandle != 0L) {
|
||||
nativeStopRenderLoop(nativeHandle)
|
||||
} else {
|
||||
"Kotlin Wrapper: Native handle is null."
|
||||
}
|
||||
}
|
||||
|
||||
// --- Private JNI declarations ---
|
||||
private external fun nativeStartRenderLoop(nativeHandle: Long, surface: Surface)
|
||||
private external fun nativeStopRenderLoop(nativeHandle: Long)
|
||||
private external fun nativeInit(): Long
|
||||
private external fun nativeDestroy(nativeHandle: Long)
|
||||
private external fun nativeRender(nativeHandle: Long, surface: Surface)
|
||||
|
||||
Reference in New Issue
Block a user