В Android рендереру передается объект GL10 в onSurfaceCreated, onSurfaceChanged и onDraw.Действительно ли этот фактический экземпляр GL10 имеет какое-то конкретное значение, или вы можете создать экземпляр любого экземпляра GL10, который вам нужен?
Причина, по которой я спрашиваю, состоит в том, что у меня есть две, казалось бы, противоречивые части информации, которые я почерпнул из разных источников:
Я просматривал исходный код для gl2-android, который представляет собой набор привязок ES 2.0.В примере GL2Test.java пропущенные экземпляры GL10 полностью игнорируются.Средство визуализации просто создает экземпляр AndroidGL20 и использует его вместо этого.
Я работал с кодом Роберта Грина для живых обоев OpenGL.Во многих комментариях, перечисленных в его вступительном сообщении в блоге, некоторые люди указывали, что иногда контекст GL10, который передается onSurfaceCreated, изменяется на другой экземпляр.Если это произойдет, рисование не удастся, если вы сначала не перезагрузите текстуры, используя новый экземпляр.Таким образом, исправление заключается в тестировании в начале onSurfaceCreated, чтобы убедиться, что это тот же экземпляр GL10, и оттуда решить, нужно ли его перезагрузить.(Вы не хотите каждый раз перезагружаться, потому что onSurfaceCreated вызывается при каждом повороте экрана, что должно поддерживаться живыми обоями.)
То, что я пытаюсь сделать, установленоup gl2-android для использования с живыми обоями.Но я хочу быть уверенным, что смогу использовать его таким образом, чтобы избежать проблемы, описанной в пункте 2 выше.