Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Malditas texturas¡¡¡¡

Iniciado por JPeP, 01 de Enero de 1970, 01:00:00 AM

« anterior - próximo »

JPeP

                                Buenaaaas:

Bueno, hay cosas que yo realmente no entiendo. Hago una aplicacion con directX que carga unas texturas y las utilizo a modo de tails. El caso es que funciona perfectamente, el problema viene cuando intento introducir importar lo que he hecho desde otra aplicación. Cuando lo ejecuto, me da error cargando las texturas. Exactamente el error me lo da con esta función:

if failed(D3DXCreateTextureFromFileExA(D3DDEV8, _filename, 0, 0, 0, 0,
                                     _format, D3DPOOL_DEFAULT,
                                     D3DX_FILTER_NONE, D3DX_FILTER_NONE,
                                     _cKey, NIL, NIL, Result))


Evidentemente, si que "Failed" porque me envia a...

Que yo sepa, he incluido todo lo que tenia que incluir, pero na de na.
¿Estamos ante otro caso del "maligno"?

Saludos a todos.                                

JPeP

                                Jejeje. Soy un gamba. Tails no, tiles per supost. :ojo:

Se me ha ido la cabeza al Sonic.                                

Lord Trancos

                                ¿ A que te refieres con "El caso es que funciona perfectamente, el problema viene cuando intento introducir importar lo que he hecho desde otra aplicación." ?

No se entiende... (weno al menos yo no lo entiendo)
                               
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.

Tei

                                yo si que no entiendo. ¿que son tails?
esta claro que necesito tropecientos manuales.                                

_Grey

                                [Contestando a Tei]

Quiere decir Tiles ... no tails...

[Contestando a JPeP]

Deberias darnos algo mas de informacion, puede ser cualquier cosa, que el fichero no este ahi,este en un formato que no puede cargar, que falle el formato de textura...                                

JPeP

                                Vaya la verdad es que teneis razon, ni yo mismo entiendo lo que he puesto, pero bueno, ahora lo aclaro:

Resulta que tengo dos programas por separado. Uno es un reproductor de video que usa DirectShow(quiero reproducir un AVI en formato DV que Mediaplayer no puede). Este funciona perfectamente y reproduce sin problemas.

El otro genera una pantalla en la que represento unos sprites que segun les de yo la posicion aparecen en un sitio u otro. Este tambien funciona con DirectX. El fondo lo pinto con TILES (No tails; este es el compañero de Sonic el marranoespin :ojo:)
Estas posiciones de los sprites en la pantalla dependen del tratamiento de la imagen del programa reproductor de video (umbralización, filtrados, etc...)

Este programa de pintado de sprites tambien funciona bien, el problema viene cuando dentro del proyecto del programa reproductor incluyo el otro para poder pasarle las posiciones de forma sencilla y tenerlo todo en un solo ejecutable.

Entonces he ahi el tema: si uso las funciones del reproductor, al llamar a las funciones del programa que me pinta los sprites, este no me carga las texturas. Si no uso  las funciones del reproductor este si que funciona.

Por ello creo que existe alguna incompatibilidad con algo de las directx pero no se lo que es.

Por cierto, el programa que pinta los sprites en la pantalla esta basado en uno de los tutoriales de Lord Trancos, exactamente el referido a sprites.:sonriendo:

Ello evidentemente conlleva que estoy utilizando DELPHI, mis "VisualC-izados" amigos. :sonriendo:

Bueno espero que esta vez me haya expresado algo mejor. (Perdonadme pero no llevo mucho tiempo en esto)

SALUDOS Y... QUE LA FUERZA DEL CAFE DE MEDIA MAÑANA OS ACOMPAÑE                                

JPeP

                                Me parece que seguis sin entenderme.Jo! :triste:
Bueno,rehare mi pregunta de otra forma:

¿es posible que, si he inicializado en las dos aplicaciones directx por separado(cada una por su cuenta funciona bien),  haya alguna incompatibilidad por inicializar directx dos veces al unirlo todo en un solo programa?. Algo asi debe ser, porque todo se escoña realizo la segunda inicializacion.

Si pensais que digo alguna animalada, barbaridad o similar, no dudeis en decirmelo, solo quiero aprender.:ojo:

Saludos a todos y perdonad mi pobre expresión en programación.

PD:Respondedmeeeeeeeee¡¡¡¡¡¡                                

Lord Trancos

                                A ver si lo entiendo, estas haciendo un programita que usa DirectGraphics y DirectShow al mismo tiempo, ¿no?
                               
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.

JPeP

                                ¡¡Si!!
Eso es¡¡¡
Me parece que ya sabes por donde voy...¿no?
SALUDOS                                

Lord Trancos

                                Sip. Estas haciendo un reproductor multimedia (DirectShow) con un interfaz de usuario hecho con DirectGraphics, ¿no?

Nunca he intentado unir DirectGraphics y DirectShow. Asi que no se que tipo de problemas puede dar o como se debe de hacer. De todos modos, imagino que no estaras usando el mismo formulario (la misma ventana) para reproducir los videos y para dibujar los sprites, ¿verdad?
                               
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.

JPeP

                                Si, uso la interface que comentas.
Por supuesto uso ventanas distintas. La del reproductor es la principal y a la otra la llamo desde esta. Si no habro ningun video, esa funciona bien, pero si lo habro, al llamar a la ventana que usa el tema ese de los sprites, no me carga las texturas.

MISTERIOS DE LA VIDA....

Saludos y ... gracias por tu interes                                

JPeP

                                Vaya¡¡ Ya se donde me "peta" esto. Cuando cargo un video, si realizo los siguiente

If OpenDialog.Execute = True then

para seleccionar el video que quiero abrir, luego no me deja cargar las texturas en la otra ventana.

Debe ser el duende maligno de mi ordenata porque no veo que relación hay.

¿Alguien tiene alguna idea de como vencer esta vez al maligno?

SALUDOS                                

Lord Trancos

                                Un par de preguntillas;

 - Si no usas el OpenDialog y le dices directamente el nombre del archivo de video, ¿te funciona?

 - ¿El formulario de los sprites lo creas cada vez que es necesario o solo al principio del programa?

 - ¿Has comprobado a ver si es que pierdes el dispositivo (if D3DDEV8.TestCooperativeLevel = D3DERR_DEVICENOTRESET then CawenTooo!!!)?
                               
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.

JPeP

                                ¡¡¡¡¡¡¡¡¡FUNCIONA!!!!!!
¡¡¡¡¡¡¡¡¡ESTA VIVOOOOOO!!!!!!
(Si me vieseis, estoy saltando cual mandril enfurecido y/o lujurioso de la alegria)

Bueno, el problema era el siguiente: no es buena idea inicializar directgraphics con el evento onactivate, es mejor hacerlo con el oncreate del form.

[Para Lord Trancos]
¿te suena este codigo?

procedure TForm1.FormActivate(Sender: TObject);

begin
 FRAMECONTROL := GetTickCount;
 AXIS.x  := 64;
 AXIS.y  := 64;
 SCALE.x := 1.0;
 SCALE.y := 1.0;

 // Initialize application events
 Application.OnIdle       := AppOnIdle;
 Application.OnActivate   := AppOnActivate;
 Application.OnDeactivate := AppOnDeactivate;
 Application.OnRestore    := AppOnActivate;
 Application.OnMinimize   := AppOnDeActivate;
etc.....

¿porque no lo pones en el CREATE?.Asi como tu lo tienes, si lo llamo desde otra ventana, saltan chispas. ¿hay algun motivo para hacerlo asi?

De nuevo gracias, sin ese tutorial no hubiese sabido ni como comenzar.

SALUDOS                                

Lord Trancos

                                Pufff... no me acuerdo muy bien... me suena que en el evento oncreate me daba problemas al inicializar el DirectInput y por eso la inicialización a veces lo pongo en el OnActivate. Lo que pasa es que en esos casos suelo poner esto:

it DXReady then exit;

al principio del evento para que no me inicie DX varias veces... un chapucilla pero funciona, sin embargo parece ser q en esta ocasion (y puede q en alguna mas por culpa del cut&paste) se me olvido :loco:


_________________
SaludoteZ de Lord Trancos!
www.dxlab.tk - programación de DirectX con Delphi.


[ Este Mensaje fue editado por: Lord Trancos el 2002-06-10 12:48 ]                                
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.






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.