На первом снимке экрана показан механизм рендеринга OpenGL поверх всех элементов, отображаемых Compose. На втором снимке экрана показано, как это выглядит, когда я удаляю все остальные составные элементы из составного элемента.
Как мне заставить OpenGL уважать другие элементы Jetpack Compose? Я был бы очень рад, если бы мог уменьшить окно OpenGL с помощью Compose, но если бы я мог отображать элементы поверх него, это было бы прекрасно.


class MyGLSurfaceView(context: Context) : GLSurfaceView(context) {
private val renderer: MyGLRenderer
init {
setEGLContextClientVersion(2)
renderer = MyGLRenderer()
setRenderer(renderer)
}
}
@Composable
fun CustomView() {
AndroidView(
modifier = Modifier.fillMaxSize(),
factory = { context ->
// Creates view
MyGLSurfaceView(context).apply { }
},
update = { view ->
// View's been inflated or state read in this block has been updated
// Add logic here if necessary
}
)
}
@Composable
fun ContentExample() {
Column(Modifier.fillMaxSize()) {
CustomView()
Text("Look at this CustomView!")
Button(onClick = { }) {
Text("Test button")
}
}
}
class MyGLRenderer : GLSurfaceView.Renderer {
override fun onSurfaceCreated(unused: GL10, config: EGLConfig) {
// Set the background frame color
GLES20.glClearColor(0.0f, 0.0f, 0.0f, 1.0f)
}
override fun onDrawFrame(unused: GL10) {
// Redraw background color
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT)
}
override fun onSurfaceChanged(unused: GL10, width: Int, height: Int) {
GLES20.glViewport(0, 0, width, height)
}
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... er-element