Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Buffer to Texture D3D9

Iniciado por Whoiam, 27 de Diciembre de 2006, 01:11:24 PM

« anterior - próximo »

Whoiam

Hola,

Genero una textura procedural i la guardo en un buffer. Como puedo meterle una cabecera de tipo BMP para poder usar la funcion D3DXCreateTextureFromFileInMemory.

Gracias.

marc_opolo

Que tal esto:

1. Crear el buffer en memoria con el tamaño de la textura + el header BMP
2. Crear la textura procedural (justo despues de la cabecera)
3. Rellenar la cabecera...
4. Cargar la textura con la API d3dx



Saludos.

BeRSeRKeR

¿Por qué no utilizas D3DXCreateTexture para crear una textura, la bloqueas y la rellenas con la información del buffer que contiene la textura procedural?.

Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

fiero

No hace falta crear la cabecera del BMP. Solo tienes que crear tu textura procedural en memoria con una profundidad de 32 bpp y luego copiarla a la textura DX. Algo así:

char *buffer; //Aqui tienes tu textura
D3DLOCKED_RECT lock;
IDirect3DTexture9* m_pTexture;

hRes=pd3dDevice->CreateTexture(tx,ty,1,0,D3DFMT_X8R8G8B8,D3DPOOL_MANAGED,&m_pTexture,NULL);
if(hRes==S_OK)
{
   hRes=m_pTexture->LockRect(0,&lock,NULL,0);
   if(hRes==S_OK)
   {
       memcpy(lock.pBits,buffer,tx*ty*4);
       m_pTexture->UnlockRect(0);
   }
}


un saludo
www.videopanoramas.com Videopanoramas 3D player

Whoiam







Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.