Android-приложение OpenGL работает на большинстве телефонов, но на Xoom текстуры выглядят белыми - PullRequest
1 голос
/ 15 марта 2011

Мое приложение для Android отсутствует уже несколько месяцев и отлично работает на любом количестве WVGA-телефонов, таких как Droid, Droid 2, Galaxy и т. Д.

Однако в Motorola Xoom небольшая часть текстур загружается белыми полями, где должны быть изображения.

Исследование в Интернете, наиболее распространенная причина этого, по-видимому, заключается не в использовании двух текстур. Это кажется маловероятным объяснением, поскольку они отлично работают на многих других устройствах. Также я являюсь , используя силу двух текстур. Единственное предостережение: я динамически загружаю кучу растровых изображений в текстуру 1024 на 1024. Код, который я использую, взят из уже не существующей библиотеки под названием Rokon, соответствующий код атласа текстур находится здесь: http://code.google.com/p/rokon/source/browse/trunk/src/com/stickycoding/rokon/TextureAtlas.java?r=260 - Как я уже сказал, я скептически отношусь к этой причине, поскольку она работает на очень многих другие устройства и многие текстуры, которые я загружаю таким образом, работают нормально.

Но я не уверен, что еще может быть причиной. Проблема с памятью кажется маловероятной, учитывая, что объем памяти, доступный в Xoom, по сравнению с другими устройствами, на которых работает приложение.

Сейчас у меня нет зума, но я могу повторить проблему через DeviceAnywhere (где я вижу белые фоны).

Ничего интересного не появляется в LogCat.

Я знаю, что это не так много, но я в недоумении, на какие потенциальные причины я должен здесь смотреть? Заранее спасибо за любые идеи.

Ответы [ 4 ]

1 голос
/ 16 марта 2011

Ваше приложение 2D или 3D?Когда вы рисуете свои спрайты на экране;какой метод вы используете?

Если ваша текстура белая во время onDrawFrame, это, вероятно, зависит от:

  • нетекстурированного четырехугольника (с использованием VBO: s илистандартные вершинные массивы) - , вероятно, нет, потому что он работает на других устройствах
  • Xoom не поддерживает расширение draw_texture - , если вы используете 2D
  • Xoom не поддерживает VBO: s (Vertex Buffer Objects) - , вероятно, нет, почти каждое Android-устройство поддерживает VBO: s
  • Есть ли у вас какое-либо сжатие текстурреализовано, что Xoom не поддерживает?

Во время выполнения используйте этот код для получения расширений и проверки их доступности:

String extensions = gl.glGetString(GL10.GL_EXTENSIONS);
boolean supportsDrawTexture = extensions.contains("GL_OES_draw_texture");
// Continue here and sooner or later you should see where Xoom lacks support 
// where other devices doesn't.
1 голос
/ 16 марта 2011

Попробуйте использовать glGetError (), чтобы увидеть, если OpenGL выдает какие-либо ошибки

0 голосов
/ 10 июля 2012

Возможно ли, что ваша текстура превышает 2048 пикселей по ширине или высоте?Это максимально допустимый размер текстуры в XOOM.

0 голосов
/ 16 марта 2011

Возможно ли, что вы недовольны поведением автоматически изменяемых размеров растровых изображений Android? Распечатайте размеры растровых изображений по мере их загрузки для проверки или переместите их в res / drawable-nodpi , чтобы полностью избежать поведения.

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