Ребят, чет у меня опять лыжи встали... В приложении есть два потока, один это основной, в нём висит Canvas, repaint которого вызывается из другого потока, и временное изображение со второго потока рисуется на Graphics полученом в paint. При попытке добавить OpenGL получается исключение, конкретно - при вызове большинства методов Gl10/GL11 - GL call from improper thread. - не проходит проверка checkThread() внутри самого вызова. Я смотрел реализацию - внутри берется некий тред от установленного контекста, а в дебаге он всегда null. Проверял только на эмуляторе, код инициализации и вообще использования OpenGL ставил в разные места - результат один. Может это быть какая-то проблема в эмуляторе, или это проблема в неправильном использовании мною этой библиотеки? Или может попробовать использовать другой контекст? Я использую pixmap из Graphics взятого из Image буфера.
Pavlus, не совсем тебя понял, но скажу, что полагаться на эмулятор целиком и полностью нельзя, в нём есть недоработки. Вполне возможно, что ты на эту недоработку и наткнулся.
Malcolm, и так делал, и не так. Если просто в paint/run засунуть инициализацю и использование, то появляется ошибка при использовании методов GL, EGL при этом работает нормально.
А вот eglCreateWindowSurface у меня всегда вызывает OutOfMemory, хотя перед вызовом её где-то полтора метра. Вызов в paint с использованием полученного Graphics.
14 мар 2011 в 17:18