
В результате изменений каденсер так и не заработал мало того он начал выдавать критические ошибки. Любые попытки привести многопоточность в чувство приводили к ошибками и вот случайно я набрел на просторах инета на эту статью. И еще по цепочке на десяток с других.
Для тех кто не в курсе, сцена на android на данный момент нативно-ненативная. Это значит что инициализация контекста и управление им происходит в JAVA посредством вызовов команд с использованием JNI из lazarusа(Native). Отсюда возможны и баги ибо как оказалось JNI имеет свою специфику но обладает воистину большими возможностями.
Каждый указатель к JNIEnv в одном потоке может быт уникален и обращение к объектам java через него в паралельном потоке может вызвать ошибку ибо объект не существует. Мало того нужно привязать привязывать "
AttachCurrentThread"
паралельный поток к виртуальной java машине что бы можно было производить какие либо операции из паралельного потока.На практике же вызов команды
AttachCurrentThread обернулся критической ошибкой, такое подозрение что указатель на виртуальную Java машину равен = nil
или же загвоздка в чем то другом. Вобщем все эти ошибки меня изрядно достали и я решил взять небольшой отпуск на недельку-две, попутно собирая теоретическую информацию.
Вопрос не по теме, но задам здесь: fpc используется для получение *.so либы, а она в дальнейшем помещается в андроид-проект эклипса?
ОтветитьУдалитьИ ещё: не смотрел работы Andru по ZenGL?
1) да, не в андроид проекта а в сам apk файл, эклипс не участвует на прямую в дебагинге.
ОтветитьУдалить2)Да я с ним сотрудничаю но фишка в том что его проект намного проще и для него больше подходят стандартные методы из модуля GLSurfaceView.java а для сцены это не годится.