Android OpenGL некоторые текстуры не загружается / перезагружается - PullRequest
1 голос
/ 03 февраля 2012

Кажется, у меня странная проблема: на одном телефоне две текстуры вообще не загружаются, поскольку они выглядят как белые прямоугольники, однако обе они загружаются на мой телефон.Другая проблема заключается в том, что при возобновлении игры отображается экран загрузки, это прекрасно работает при первом приостановлении работы приложения, но после второго возобновления текстура не загружается на мой телефон ... однако появляются текстуры, загружаемые с экрана загрузки.отлично.

Все текстуры имеют степень 2 и имеют размер 024x1024 ... всего около 20 текстур.

Какие причины могут быть для типа проблемы?

Вот код для перезагрузки ...

public void onSurfaceCreated(GL10 gl, EGLConfig config) {         
        super.onSurfaceCreated(gl, config);
        if(firstTimeCreate) {
            load();            //load settings
            Assets.Load(this);
            firstTimeCreate = false;            
        } else {
            //When screen is resumed....
            Assets.ReloadLoadingScreen();
        }

Вот где все это - метод загрузки ...

GL10 gl = glGraphics.getGL();
        int[] textureIds = new int[1];
        gl.glGenTextures(1, textureIds, 0);
        textureId = textureIds[0];

        InputStream in = null;
        try {
            in = fileIO.readAsset(fileName);
            Bitmap bitmap = BitmapFactory.decodeStream(in);
            gl.glBindTexture(GL10.GL_TEXTURE_2D, textureId);
            GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);
            setFilters(GL10.GL_LINEAR , GL10.GL_LINEAR);         
            gl.glBindTexture(GL10.GL_TEXTURE_2D, 0);
            width = bitmap.getWidth();
            height = bitmap.getHeight();
            bitmap.recycle();
        } catch(IOException e) {
            throw new RuntimeException("Couldn't load texture '" + fileName +"'", e);
        } finally {
            if(in != null)
                try { in.close(); } catch (IOException e) { }
        }

и метод связывания ...

public void bind() {
GL10 gl = glGraphics.getGL();
        gl.glBindTexture(GL10.GL_TEXTURE_2D, textureId);
}

Не думаю, что что-то не так с вышесказанным, но, может быть, есть?

1 Ответ

0 голосов
/ 03 февраля 2012

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

Загружаете ли вы свои текстуры onSurfaceCreated ?Когда вы приостанавливаете работу приложения и возобновляете работу, эти текстуры необходимо повторно привязать в OpenGL.

Кроме того, есть ли какие-либо ошибки в окне LogCat, если вы используете Eclipse?может потребоваться включить флаги отладки OpenGL для тестирования.Вы можете найти информацию об этом здесь:

http://developer.android.com/resources/articles/glsurfaceview.html

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