Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: Loover en 26 de Diciembre de 2003, 01:28:01 AM

Título: Texturas Procedurales En D3d
Publicado por: Loover en 26 de Diciembre de 2003, 01:28:01 AM
 No creí que algo tan sencillo me trajera tantos quebraderos de cabeza.

Tengo un array de 256*256*4 bytes en memoria, en formato BGRA defienen una imagen de 256x256.
¿Cómo lo paso a una textura en Direct3d?

He probado con D3DXCreateTextureFromFileInMemory pero sospecho que esa función te pide todo el archivo cargado en memoria con cabecera y todo (lo cuál me parece una estupidez de función pero bueno).
He leído sobre superficies, pero tampoco me ha quedado claro y no lo he resuelto.
Y no existe una D3DXCreateTextureFromMemory, lo cuál me parece una putada.

¿Cómo se hace? Agradecería mucho mucho código con ejemplos, o el nombre exacto de las funciones.
Título: Texturas Procedurales En D3d
Publicado por: Loover en 26 de Diciembre de 2003, 03:07:06 AM
 Vale era usando LockRect sobre el objeto textura.


D3DLOCKED_RECT mRect;
       
mNewTexture->LockRect (0, &mRect, NULL, 0);

byte *p = (byte *) mRect.pBits;

...
...
Título: Texturas Procedurales En D3d
Publicado por: BeRSeRKeR en 26 de Diciembre de 2003, 01:16:25 PM
 La función D3DXCreateTextureFromFileInMemory es perfecta para cuando, por ejemplo, cargas un archivo de textura desde un zip. Simplemente le pasas el buffer con los datos descomprimidos que te devuelve tu librería de compresión/descompresión favorita y a correr. Una maravilla, vamos ;)

Saludos.