OpenGL на Android: любые конфликты при вызове функций OpenGL как на Java, так и на C ++?

В моем приложении я использую стороннее пользовательское представление, которое вызывает функции OpenGL в Java, и я также вызываю функции OpenGL в своем собственном C ++-коде.

Должно ли это быть проблемой?

Есть ли риск, что они могут быть вызваны одновременно?

Каков порядок потоков вызовов OpenGL через java / c ++?

Это не должно быть проблемой, если вы знаете, что делаете. Java-привязки OpenGL в Android в основном просто вызывают одну и ту же функцию c ++. В этих вызовах нет больше логики. Таким образом, вы можете в принципе думать об этих вызовах так же, как если бы они были прямым кодом c ++.

Проблема, с которой вы, скорее всего, столкнетесь, будет заключаться в том, что OpenGL не является потокобезопасным, если у вас есть только один контекст. Поэтому, если два потока пытаются вызвать методы gl в том же контексте (что обычно имеет место только в одном приложении), это вызовет проблемы. Вы можете отказаться от этих проблем, вызвав eglMakeCurrent, чтобы сделать текущий поток текущим потоком OpenGL. И тогда вы можете сделать свои звонки как обычно.

Вы не можете получить доступ к одному контексту OpenGL из разных потоков. Но законно смешивать C ++ и Java, последние – только обертки для собственных вызовов.

Всегда есть проблемы с вызовом одной и той же функции из нескольких потоков, если эта функция изменяет некоторый глобальный объект.

Вы можете вызывать OpenGL как с Java, так и с C ++, неуверенный, если он должен быть в одном и том же потоке.
В игре я написал, что сделал весь рендеринг в C ++, но загрузил текстуры в Java (поскольку java имеет доступ к классу R), класс C ++ вызывал бы функцию java, которая загружала текстуры.

Intereting Posts
Не удалось обновить макет после добавления представления (только появляется в CustomAdapter) Используйте другую тему в зависимости от того, является ли устройство планшетом Android или телефоном Ориентация активности установки Android по коду Пример AndroidRTC для Android, соединение XMPP или Http Peer Connection? Как убить стороннее приложение? 2-кратное увеличение / уменьшение пальца с помощью удаленных команд ADB Как отобразить FragmentBreadCrumbs в приложении Honeycomb Удалите дополнительные нежелательные разрешения от манифеста-андроида Facebook – «Не удается выполнить запрос по имени пользователя» Android: отобразите TextView в правой части EditText, который находится в TextInputLayout Когда я вызываю функцию Java из кода Javascript, происходит сбой WebView. Зачем? Android record square Video Слияние двух анимаций в Android Google Analytuc v4 Android Не найдены данные кампании Вытягивание массива из файла ресурсов для заполнения списка в android