Я изучаю OpenGL на Android. Я написал приложение, где GlSurfaceView объявлен в XML макет (фрагмент ...)GlSurfaceView Renderer не называется
<FrameLayout
android:id="@+id/framelay"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<com.nelsondev.myha3ogl.M3View
android:id="@+id/m3SurfView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</FrameLayout>
... и в его конструкторе визуализатор создается:
public M3View(Context context, AttributeSet attrs) {
super(context, attrs);
renderer = new M3Renderer(context);
setRenderer(renderer);
}
Когда актив получает onResume/onPause, он правильно вызывает методы GlSurfaceView. Но средство визуализации никогда не запускается! Точки останова в onSurfaceCreated() и другие методы в рендерере никогда не ударяются и ничего не отображается. Как мне понять, что здесь происходит?
На самом деле, я только что проверил, и я думаю, что мой ответ на предыдущий вопрос был неправ, и что на самом деле, начать() вызывается на GLSurfaceView, когда его (т.е. когда вы вызываете 'setContentView (framelay)' или 'setContentView (R.layout.graphics)' с GLSurfaceView как дочерний элемент frameelay/в файле graphics.xml), а не при вызове 'setRenderer' –
Вы уверены, что вызван конструктор? – Jave
Можете ли вы вызвать 'requestRender()' в GLSurfaceView, чтобы увидеть, рисовать ли вообще? – Jasoneer