Если SurfaceFlinger не запущен, вы можете просто открыть устройство фреймбуфера и записать в него (при условии, что вы используете устройство, которое имеет устройство фреймбуфера).
В качестве примера см. реализацию пользовательского интерфейса «восстановления». Ключевой файл там minui/graphics.c< /а>. Текущая реализация основана на libpixelflinger.
Использование OpenGL ES/EGL будет немного сложнее. Некоторые из ранних тестов GLES, такие как San Анджелес, используйте FramebufferWindow , но он использует довольно много фреймворка. (FWIW, ожидается, что в следующем выпуске FramebufferWindow будет объявлен устаревшим, а тесты OpenGL, которые их используют, будут заменены новой библиотекой, взаимодействующей с SurfaceFlinger.)
Обновление: вышел предстоящий выпуск, и вы можете увидеть замену FramebufferWindow ("WindowSurface") здесь.
Если SurfaceFlinger не запущен, вы можете напрямую обратиться к HardwareComposer, используя файл внутренний интерфейс. Есть несколько старых тестов Вот и тренируйтесь, но я не знаю, работают ли они до сих пор. Код в SurfaceFlinger, вероятно, является лучшим примером на данный момент. Только один процесс может одновременно открывать HardwareComposer, поэтому SurfaceFlinger не должен быть запущен.
person
fadden
schedule
16.05.2014