Как я могу создать новое NativeWindow в Android NDK?
Я попробовал демо test-libstdC++ и мне понравилось, что я могу запустить его из консоли и все без запуска полнофункционального приложения для Android.
Я хотел бы создать контекст opengl, чтобы иметь возможность запускать свое приложение opengl es 2.0 из консоли без лишних хлопот.
Любая идея, как я мог бы инициализировать EGL из NDK-приложения, которое не использует нативное действие или что-либо еще, то есть оно даже не упаковано в файл.APKK, просто имеет основной метод, упакованный как исполняемый файл linux.
Большое спасибо!
ОБНОВИТЬ
Это случайно не имеет ничего общего с ANativeWindow_acquire
в *android/native_window.h`?
Спасибо!
2 ответа
Если вы загляните внутрь деревьев git для Android, вы увидите, что есть несколько простых тестовых приложений, которые создают собственное окно и запускаются из командной строки.
нажмите здесь, чтобы увидеть тесты
Что касается вопросов к некоторым из приведенных выше комментариев Альбуса, проблема с перевернутой цепочкой заключается в том, что ваш текущий драйвер может поддерживать только одну переворотную цепочку в системе, и это удерживается SurfaceFlinger, поскольку это объект, который может записывать в собственное окно. /кадровый буфер. Чтобы обойти это, вы можете просто остановить движок Android Run Time, набрав "stop" в оболочке adb, а затем перезапустить ваше приложение. Чтобы снова запустить движок Android Run, сделайте 'start'.
Вот пример использования EGL из командной строки:
http://jiggawatt.org/badc0de/android/index.html
Однако такой процесс без "легальной" активности пользовательского интерфейса Android будет в любой момент прерван системой за то, что он рассматривается как фоновый процесс. Кроме того, вы не сможете использовать сенсорный экран или ввод с клавиатуры, или любые другие вещи, которые требуют контекста, например, выяснить, где установлена SD-карта и т. Д.