Si por ejemplo se crea una matriz de píxeles, así:¿Qué sucede con los píxeles después de pasarlos a glTexImage2D()?
int *getPixels()
{
int *pixels = new int[10];
pixels[0] = 1;
pixels[1] = 0;
pixels[1] = 1;
// etc...
}
glTexImage2D(..., getPixels());
¿El glTexImage2D utilizar esa referencia o copiar los píxeles en su propia memoria?
Si la respuesta es la primera, ¿debería hacer lo siguiente?
int *p = getPixels();
glTexImage2D(..., p);
/* Just changed to delete[], because delete
* would only delete the first element! */
delete[] p;
No estoy seguro si ese es el caso en PC, pero en las funciones de carga de textura de consolas muy a menudo simplemente almacena puntero a textura y programa transferencia DMA para más tarde, por lo que no puede liberar memoria tan pronto devuelva la función. – n0rd