Android GLUtils.texImage2D создает некоторые черные текстуры при использовании шейдеров OpenGLES 2.0 - PullRequest
0 голосов
/ 04 июля 2011

Я нахожусь в процессе преобразования приложения из OpenGLES 1.0 в OpenGLES 2.0, и мне удалось сделать большую часть этого.Досадно, что несколько текстур (из множества и тех же каждый раз) отрисовывают черный вместо чего-либо полезного.Это небольшие изображения (размером около 32x32) и в формате PNG с альфа-каналом, хотя это само по себе не является уникальным, поскольку подобное изображение загружается нормально.

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

Кто-нибудь может подсказать, почему это может происходить и / или возможные способы устранения?Было бы уместно использовать GLES20.glTexImage2D вручную (что бы он ни делал)?

1 Ответ

4 голосов
/ 18 июля 2011

У меня была похожая проблема, и я решил ее, загрузив мои изображения, используя:

BitmapFactory.decodeResource(context.getResources(), R.drawable.resourceName)

вместо кода из примера (я думаю, это то, что у вас сейчас есть):

InputStream is = mContext.getResources()
        .openRawResource(R.raw.robot);
    Bitmap bitmap;
    try {
        bitmap = BitmapFactory.decodeStream(is);
    } finally {
        try {
            is.close();
        } catch(IOException e) {
            // Ignore.
        }
    }
...