Skip to content

Commit 773e99d

Browse files
authored
Fix only last widget being rendered (#2194)
* Fix only last widget being rendered * changelog
1 parent 81ee4f7 commit 773e99d

File tree

3 files changed

+18
-6
lines changed

3 files changed

+18
-6
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ Mapbox welcomes participation and contributions from everyone.
66
## ## Features ✨ and improvements 🏁
77
* Improve performance of `StyleInterface.localizeLabels` method.
88

9+
## Bug fixes 🐞
10+
* Fix regression introduced in v10.16.3 when only last added widget was rendered.
11+
912
# 10.16.3 December 08, 2023
1013
## Bug fixes 🐞
1114
* Downgrade minimum required `compileSDK` from 31 to 30.

app/src/main/java/com/mapbox/maps/testapp/examples/SurfaceActivity.kt

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import android.view.SurfaceHolder
99
import androidx.appcompat.app.AppCompatActivity
1010
import com.mapbox.maps.*
1111
import com.mapbox.maps.renderer.widget.BitmapWidget
12-
import com.mapbox.maps.renderer.widget.Widget
1312
import com.mapbox.maps.renderer.widget.WidgetPosition
1413
import com.mapbox.maps.testapp.databinding.ActivitySurfaceBinding
1514

@@ -20,7 +19,6 @@ class SurfaceActivity : AppCompatActivity(), SurfaceHolder.Callback {
2019

2120
private lateinit var surfaceHolder: SurfaceHolder
2221
private lateinit var mapSurface: MapSurface
23-
private lateinit var widget: Widget
2422
private val animator = ValueAnimator.ofFloat(0f, 1f).also {
2523
it.duration = ANIMATION_DURATION
2624
it.repeatCount = ValueAnimator.INFINITE
@@ -63,13 +61,23 @@ class SurfaceActivity : AppCompatActivity(), SurfaceHolder.Callback {
6361
.setHorizontalAlignment(WidgetPosition.Horizontal.CENTER)
6462
.setVerticalAlignment(WidgetPosition.Vertical.CENTER)
6563
.build()
66-
widget = LogoWidget(this, widgetPosition)
67-
mapSurface.addWidget(widget)
64+
val rotatingWidget = LogoWidget(this, widgetPosition)
65+
mapSurface.addWidget(rotatingWidget)
6866
animator.addUpdateListener {
6967
val angle = (it.animatedFraction * 360f) % 360f
70-
widget.setRotation(angle)
68+
rotatingWidget.setRotation(angle)
7169
}
7270
animator.start()
71+
72+
// add second widget to make sure both are rendered
73+
val staticWidgetPosition = WidgetPosition
74+
.Builder()
75+
.setHorizontalAlignment(WidgetPosition.Horizontal.LEFT)
76+
.setVerticalAlignment(WidgetPosition.Vertical.BOTTOM)
77+
.setOffsetX(20f)
78+
.setOffsetY(-20f)
79+
.build()
80+
mapSurface.addWidget(LogoWidget(this, staticWidgetPosition))
7381
}
7482

7583
override fun surfaceCreated(holder: SurfaceHolder) {

sdk/src/main/java/com/mapbox/maps/renderer/widget/BitmapWidgetRenderer.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,6 @@ internal class BitmapWidgetRenderer(
157157

158158
override fun render() {
159159
lock.withLock {
160-
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT)
161160
if (program == 0) {
162161
prepare()
163162
}
@@ -185,6 +184,8 @@ internal class BitmapWidgetRenderer(
185184

186185
GLES20.glUniform1i(uniformTexture, 0)
187186

187+
GLES20.glClearColor(1f, 1f, 1f, 1f)
188+
188189
GLES20.glEnableVertexAttribArray(attributeVertexPosition)
189190
GlUtils.checkError("glEnableVertexAttribArray")
190191

0 commit comments

Comments
 (0)