Почему наложение текстур OpenGL ES очень медленное? - PullRequest
0 голосов
/ 06 мая 2010

У меня есть приложение для Android, которое отображает кадры VGA (640x480) с использованием OpenGL ES. Приложение считывает каждый кадр из файла фильма и соответствующим образом обновляет текстуру.

Моя проблема в том, что это занимает почти 30 мс. нарисовать каждый кадр, используя OpenGL. Аналогичный тест с использованием Canvas / drawBitmap длился около 6 мс на том же устройстве.

Я следую тем же вызовам OpenGL, которые использует VLC Media Player, поэтому я предполагаю, что они оптимизированы для этой цели.

Я просто хотел услышать ваши мысли и идеи по этому поводу?

Ответы [ 2 ]

0 голосов
/ 20 января 2011

Вы уверены, что растровое изображение загружено с RBG_565? Попробуйте это:

BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inPreferredConfig = Bitmap.Config.RGB_565;
bm = BitmapFactory.decodeByteArray(temp, 0, temp.length,opt);

Дайте мне знать!

0 голосов
/ 14 июля 2010

Какие звонки вы используете? убедитесь, что вы создаете текстуру только один раз (glTexImage2D), а в следующий раз просто обновляете ее новым буфером. Вы также можете отключить другие элементы GL, такие как буфер глубины, трафарет, накопление, освещение и т. д. Если ничего из этого не помогло, проверьте реализацию opengl. убедитесь, что используется аппаратное обеспечение (gpu)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...