GLuint textureId;
glGenTextures(1, &textureId);
glBindTexture(GL_TEXTURE_2D, textureId);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexImage2D( GL_TEXTURE_2D,
0,
GL_RGBA8,
256,
256,
0,
GL_BGR_EXT,
GL_UNSIGNED_BYTE,
pPixels );
Всё нормально работает. Через некоторое время мне становится необходима текстура большего размера. Пытаюсь пересоздать текстуру:
glTexImage2D( GL_TEXTURE_2D,
0,
GL_RGBA8,
512,
512,
0,
GL_BGR_EXT,
GL_UNSIGNED_BYTE,
pPixels );
На этом вызове падение. Если pPixels == NULL, то glTexImage2D отработает, но упадёт в glTexSubImage2D (т.е. падает при копировании пикселей на текстуру).
Если, наоборот, уменьшать размер текстуры, то всё нормально.