Creía que tenía claro estos conceptos pero me he hecho un lio.
A ver, en OGL tenía una aplicación que al crearla te dejaba elegir entre 16 y 32 bits de color. Al crear el render, le pasaba como parámetro (entre otros como el tamaño de ventana) el bpp 16/32. Luego, cuando ogl creaba las texturas yo solo tenía que indicarle donde estaba el array de bytes y su formato (GL_RGB, GL_RGBA, etc). Tan simple como eso.
Ahora, desde D3D me he hecho un lio tremendo. Pensaba que iba a ser de la misma mangera pero las cosas cambian hasta la manera de inicializarlo. Ojeando la ayuda, llegué a pensar que usando D3DDISPLAYMODE y dándole el formato:
- D3DFMT_R5G6B5 Sería 16 bits
- D3DFMT_A8R8G8B8 Sería 32 bits
Aunque no tenía ni idea de que para que servía especificar el alpha en el backbuffer ese.
Así que usando un array de bytes en formato RGBA probé a cargar la textura usando D3DFMT_A8R8G8B8 y al dibujarla a pantalla completa, tanto en lo que yo creía que iban a ser 16 como 32 bits se veía como de 32 bits. Así que dije, pues habrá que cargar la textura con D3DFMT_R5G6B5. Pero claro, al tener el array de bytes de 4 en 4 bytes (RGBA) mal rollo, salía mal dibujada.
Vamos, que ando despistado :blink: y no sé como hacer algo tan simple como que el usuario elija entre 16 y 32 bits en Direct 3d. Me gustaría que me aclararais todo esto un poco, gracias.
PD: Si ya de paso me hablais sobre el modo 256 colores (usando paletas y tal) os invito a un cubata (ole)
A ver, en OGL tenía una aplicación que al crearla te dejaba elegir entre 16 y 32 bits de color. Al crear el render, le pasaba como parámetro (entre otros como el tamaño de ventana) el bpp 16/32. Luego, cuando ogl creaba las texturas yo solo tenía que indicarle donde estaba el array de bytes y su formato (GL_RGB, GL_RGBA, etc). Tan simple como eso.
Ahora, desde D3D me he hecho un lio tremendo. Pensaba que iba a ser de la misma mangera pero las cosas cambian hasta la manera de inicializarlo. Ojeando la ayuda, llegué a pensar que usando D3DDISPLAYMODE y dándole el formato:
- D3DFMT_R5G6B5 Sería 16 bits
- D3DFMT_A8R8G8B8 Sería 32 bits
Aunque no tenía ni idea de que para que servía especificar el alpha en el backbuffer ese.
Así que usando un array de bytes en formato RGBA probé a cargar la textura usando D3DFMT_A8R8G8B8 y al dibujarla a pantalla completa, tanto en lo que yo creía que iban a ser 16 como 32 bits se veía como de 32 bits. Así que dije, pues habrá que cargar la textura con D3DFMT_R5G6B5. Pero claro, al tener el array de bytes de 4 en 4 bytes (RGBA) mal rollo, salía mal dibujada.
Vamos, que ando despistado :blink: y no sé como hacer algo tan simple como que el usuario elija entre 16 y 32 bits en Direct 3d. Me gustaría que me aclararais todo esto un poco, gracias.
PD: Si ya de paso me hablais sobre el modo 256 colores (usando paletas y tal) os invito a un cubata (ole)