Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





D3DX8.CreateTextureFromFileInMemory funcion discriminatoria?

Iniciado por [EX3], 24 de Julio de 2006, 01:41:57 AM

« anterior - próximo »

[EX3]

Llevaba dias detras de un supuesto bug en el proyecto que llevo entre manos cuando despues de patearme todo el codigo depurando durante una semana entera acabe a cuadros cuando vi que el error no me lo da mi propio codigo si no la funcion D3DX8.CreateTextureFromFileInMemory().

Esta funcion, que la usa la dx_lib32, contra la que estoy desarrollando el proyecto, no me habia dado problemas cargando las imagenes desde un formato de archivo contenedor propio que me habia creado. Ahi la funcion carga la imagen sin problema alguno, pero ahora estoy tratando de cargar una imagen desde un archivo PAK, formato que no difiere mucho del mio en cuanto a forma de almacenar los datos, sin compresion ambos, y aqui resulta que me manda un error de D3DXERR_INVALIDDATA. Lo primero que pense es si estaba leyendo mal los bytes de la imagen en el archivo PAK, pero probando a leer los bytes de la imagen y guardarla en disco comprobe que no habia error en la lectura de bytes ya que generaba correctamente cualquiera de las imagenes que contiene el PAK, al igual que leyendo los bytes de un archivo desde disco tambien daba el mismo error.

Navegando un poco por la doc de DirectX leo lo siguiente en el pie de pagina de la funcion:
CitarThis method is designed to be used for loading image files stored as RT_RCDATA, which is an application-defined resource (raw data). Otherwise this method fails.
Segun entendi por lo que he leido en otros foros y paginas, un recurso RT_RCDATA no seria mas que un recurso no catalogado como podria ser un RT_BITMAP o un RT_MENU por ejemplo, recursos definidos por el sistema, dicho asi un archivo contenido en un PAK o en un formato de almacenamiento como seria el propio que uso seria un recurso personalizado y esta funcion deberia leerlo sin rechistar.

Mi pregunta es por que esta funcion me carga las imagenes desde mi formato propio de archivo sin rechistar y no desde un PAK que son por estructura de archivo identicos? Alguien que haya trabajado con esta funcion y haya sufrido este error "discriminatorio" a ver si puede alumbrarme un poco por que trato de evitar tener que ir extrayendo los archivos del PAK a disco y cargarlos cuando puedo hacerlo directamente desde memoria siendo mas rapido asi.

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt






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.