android openGL ES живые обои - когда загружать и создавать текстуры? - PullRequest
1 голос
/ 01 марта 2012

Я пытаюсь сделать живые обои openGL, которые используют несколько текстур.Некоторые из них являются довольно большими полноэкранными изображениями.

Я не уверен, как мне следует загружать растровые изображения и связывать текстуры.Например, я мог бы загрузить их по методу onSurfaceCreated():

public void onSurfaceCreated(GL10 gl, EGLConfig config){    
     ...
     Bitmap background = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.background, null);
     gl.glGenTextures(1, backgroundTextureArray, 0);
     gl.glBindTexture(GL10.GL_TEXTURE_2D, backgroundTextureArray[0]);
     gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR);
     gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR);
     GLUtils.texImage2D(GL10.GL_TEXTURE_2D,0, background,0);
}

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

Есть ли другой способ настройки текстур?Я не уверен, что происходит, когда программа работает и нуждается в дополнительной памяти.Если LWP можно убить, то, может быть, я смогу постоянно хранить растровые изображения, пока служба обоев жива?

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