Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Parpadeos fucsias y amarillos. Si, de esos que dan epilepsia

Iniciado por CoLSoN2, 15 de Octubre de 2002, 09:12:19 PM

« anterior - próximo »

Lord Trancos

                                CoLSoN2, que llamada te falla ? cual te devuelve failed ?                                
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.

DraKKaR

                                Colson, en vez de usar el failed asi, usalo de la siguiente manera:

HRESULT hres;

hres=FuncionDeDirectX(bla,bla);
if (FAILED(hres))
{
 // ahora segun el valor de hres podremos saber el error exactamente
 if (hres==D3DERR_NOTENOUGHMEMORY)
   MessageBox("no hay memoria suficiente");
 // etc...
}                                

CoLSoN2

                                lord trancos en el DrawPrimitiveUP

ok, lo haré así                                
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

Grugnorr

                                Ejem...

Busca esta función:


Returns a string that describes a Microsoft® DirectX® HRESULT value.


TCHAR *DXGetErrorDescription9(HRESULT hr);

(Weno, la de las DX8 que supongo que usas ;) ). Y entérate de qué coño te falla. Estaba en la librería Dxerr9.lib. ).

PD: Hay varias funciones y macros utilitarios en la librería de debug esa, echales un ojo.

Suerte...                                
hat the hells!

Lord Trancos

                                Y no olvides despues decirnos como lo solucionaste ;)                                
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.

CoLSoN2

                                Error al crear el device, hago DXGetErrorDescription, y me dice:
"Call successful, but returned FALSE"
a ke mola? XD                                
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

Lord Trancos

                                :o  Prefiero que una funcion me devuelva un numero que no entiendo a que me devuelva algo como eso xDDD                                
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.

Grugnorr

                                :o  :o  :o  :o

Uhmm, cuando puede ser creado con éxito y devolver FALSE?.

El error era en DrawPrimitiveUP(), no?. Compruebas que el device no está Lost?(Me encanta el Spanglish  :D ).

Las llamadas a crear el device sí son correctas, verdad?.

Lo mejor sería que pegaras el código.... alguna chorrada estará pasando  :jaja:                                
hat the hells!

CoLSoN2

                                no , e echo algunos cambios en el codigo, y el error ese raro lo ace al intentar crear el device :P                                
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

CoLSoN2

                                el codigo de la funcion, hasta el momento en el que el Device no se crea bien, es:


void W3C_GFX_Graphics::Init(HWND hWnd, bool fullscreen, int fwidth, int fheight, byte fcolordepth, FILTERINGTYPE filtering)

{

m_hWnd = hWnd;

Log("INITIATING GFX ENGINE...");



m_fullscreen = fullscreen;



D3DDISPLAYMODE d3ddm;

if (fullscreen == true)

{

 d3ddm.Width = fwidth;

 d3ddm.Height = fheight;

 d3ddm.RefreshRate = 0; // por defecto

 switch (fcolordepth)

 {

 case 16:

  d3ddm.Format = D3DFMT_R5G6B5;

  break;

 case 32:

  d3ddm.Format = D3DFMT_X8R8G8B8;

  break;

 }

}

else

{

 if (m_error = FAILED(m_pD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm)))

 {

  Error("ERROR! No se ha podido obtener el modo de mostrado");

  CheckErrors(m_error);

 }

 else

  Log("Display's Mode got");  

}



if (m_error = FAILED(m_pD3D->CheckDeviceType(D3DADAPTER_DEFAULT,

  D3DDEVTYPE_HAL, d3ddm.Format, d3ddm.Format,

  !m_fullscreen)))

{

 Error("ERROR! Modo de color no soportado por el dispositivo");

 CheckErrors(m_error);

}

else

 Log("Device Type Checked");





D3DPRESENT_PARAMETERS d3dpp;



ZeroMemory(&d3dpp, sizeof(D3DPRESENT_PARAMETERS));



if (fullscreen == false)

{

 d3dpp.Windowed = true;

 Log("Running on Windowed mode");

}

else

{

 d3dpp.Windowed = false;

 d3dpp.FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;

 d3dpp.FullScreen_PresentationInterval = D3DPRESENT_INTERVAL_ONE;



 Log("Running on Fullscreen mode");

}



d3dpp.SwapEffect = D3DSWAPEFFECT_COPY_VSYNC;

d3dpp.BackBufferFormat = d3ddm.Format; // mismo color

d3dpp.BackBufferWidth = d3ddm.Width;

d3dpp.BackBufferHeight = d3ddm.Height;

d3dpp.BackBufferCount = 1;

d3dpp.hDeviceWindow = m_hWnd;

d3dpp.AutoDepthStencilFormat = D3DFMT_D16;

d3dpp.EnableAutoDepthStencil = true;

 



// obtenemos el device

if (m_error = FAILED(m_pD3D->CreateDevice(D3DADAPTER_DEFAULT,

 D3DDEVTYPE_HAL, m_hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING,

 &d3dpp, &m_pDevice)))

{

 Error("ERROR! Creación del Device fallida");

 CheckErrors(m_error);

}

else

 Log("Device Created");



Fullscreen es true, width = 800, height = 600, colordepth = 16. alguien sabe xq no se crea bien? la comprovacion del modo de color dice que no hay error..                                
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

CoLSoN2

                                IASTA SOLUSIONAOooOoooOoa!!!

ke como ?
- no era nada de codigo, era que (como pensaba desarrollar, o al menos compilar algo algun dia, ya que eran los PCs del cole) instalé la DX SDK 8.1, y compilaba de coña, pero pasaba esto. Tonces, hoy, tras salir frustrado el dia anterior, iba yo con mi super programa en c++ builder configuralo-todo, para ir probando xq petaba, llego, (lo primero es kel programa este no tiraba xq necesitaba una DLL del builder xD) y sigue sin funcionar, en los dos PCs donde habia instalado el SDK. Le explico que otra gente (vusotru xD) tambien le pasa lo mismo, y me dice que probemos en otros PCs del aula. Le digo ke en vez del SDK, ke tarda mucho, instalar solo el DX "light", el ke viene en todos los juegos vaya. Lo instalamos, y WOP! tiraAaAA!1 ke tiraaAaa!! bwahahaaha!! ok, instalamos esto, incluso en los de la SDK, y ya funciona: me r00lz XD

p.d:me gustaria ke lo probarais y me dijerais si esto os pasaba a vosotros tambien

p.d.d:thx a todos por ayudar =)

p.d.d.d: PUTA MICROSOFT -_-!                                
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

DraKKaR

                                Holas, me temo qu no podre probarlo porque en el ordenador donde me va mal tiene un win2000 y no tengo permisos para instalar el DirectX runtime (supongo ke es este al ke te referias)                                

CoLSoN2

                                uno de los ke pasaba esto era un win2000, lo e instalado, y c000000l xD                                
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

Lord Trancos

                                Gracias Colson ;)                                
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.

CoLSoN2

                                as probado si era ese tu problema?                                
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor






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.