Так что я работаю над такой простой игрой, как приложение.В нем у меня есть сцена opengl-es с некоторыми объектами куба.На симуляторе все работает нормально, но на устройстве (в данном случае ipod touch, так как это единственное тестовое устройство, которое у меня есть на данный момент), он рендерит только один кадр, а затем, кажется, игнорирует каждый вызов opengl, который я делаю после этого.
Чтобы не убивать память, выделяя и освобождая при запуске приложения, я создаю свой gl-вид в фоновом режиме и останавливаю его рендеринг.Когда пользователь нажимает кнопку, glview выводится на передний план и активируется таймер рендеринга.Я проверил, что на устройстве он проходит весь мой код рендеринга (так же, как на симуляторе), но на устройстве он не обновляется вообще.В симуляторе при обновлении кубы перемещаются, но это не графически представлено на устройстве.Я могу нажать на кубики, и игра распознает их, поэтому их матрицы перевода точно обновляются.
Теперь вот кикер, раньше работал.Когда я только начинал, каждый раз, когда пользователь переходил в представление gl, он выделял новый контроллер представления и запускал его, и он обновлялся.Однако со второго раза пользователь перешел к представлению, которое он не будет обновлять, с теми же симптомами, которые он сейчас показывает.Чтобы противостоять этому, я перевел приложение на использование только одного вида gl, и когда пользователь переходит в него, я просто перемещаю блоки обратно на их исходные позиции.Я думал, что это устранит проблему, так как технически я всегда использую первое, что я выделил.Однако это показывает симптомы все время.Он рендерится хотя бы один раз, потому что я вижу ящики в их начальных позициях.Даже если я изменю набор текстур, который я использую, они все равно остаются в исходном наборе текстур (хотя в симуляторе это работает безупречно).
Итак, для всех гуру есть какие-либо известные проблемы, которыеприведет к тому, что openGL-es прекратит рендеринг?Какой код будет уместен, чтобы показать вам?