Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





ScreenShoots con DirectDraw

Iniciado por [EX3], 01 de Enero de 1970, 01:00:00 AM

« anterior - próximo »

[EX3]

                                Nas a todos...

Estoy intentando hacer una funcion de ScreenShoot, para hacer capturas en un juego que usa DirectDraw. He buscado pero no he visto ninguna funcion que guarde el contenido de una superficie en un archivo de disco. ¿Alguien sabe alguna foma de realizar esta operacion?

Salu2...

[EX3]
_________________
...:::DX_Lib32.DLL - Libreria ActiveX de funciones estilo Div2 con la potencia de DirectX. Nunca programar con DirectX fue tan facil. :::...

[ Este Mensaje fue editado por: [EX3] el 2002-07-19 16:22 ]                                
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

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

NeLo

                                Creo recordar que se llama D3DXSaveSurfaceToFile(...)

Lo que no se es porqué le pondrian este nombre xDD
                               
Drowning deep in my sea of loathing

Drácula

                                Ahí va mi codigo para grabar pantallas:
bool CXVideo::GrabarPantalla(CXString &nombre)
{

   LPDIRECT3DSURFACE8 lpSurface = NULL;DWORD w,h;RECT *r,rt;

   // En modo ventana, debemos reservar memoria para TODA la pantalla
   
   if(m_Windowed) {
      w=m_InformacionMode.Width;
      h=m_InformacionMode.Height;
      POINT p;p.x=p.y=0;
      ClientToScreen(m_HWND,&p);
      rt.left=p.x;
      rt.top=p.y;
      rt.right=p.x+Ancho()-1;
      rt.bottom=p.y+Alto()-1;
      r=&rt;
   }
   else {
      w=Ancho();
      h=Alto();
      r=NULL;
   }

   m_pd3dDevice->CreateImageSurface(w,h, D3DFMT_A8R8G8B8, &lpSurface);
   m_pd3dDevice->GetFrontBuffer(lpSurface);

   HRESULT hr=D3DXSaveSurfaceToFile(nombre,
      D3DXIFF_BMP,   // Formato
      lpSurface,
      NULL,   // Paleta
      r   // Rectángulo del area a grabar
      );

   if(hr!=D3D_OK) {
      EstablecerUltimoError(hr);
      Merlin.Debug(_T("CXVideo::GrabarPantalla"),*UltimoError());
   }
   lpSurface->Release();
   return (hr==D3D_OK);
}
                               
ltimas mejoras en Merlín: Multitextura.Control y generación automática de LOD.Importa ASE y X. Frustum Clipping por BB.Render añadido de wireframe y del BB.Animaciones por interpolación.Animaciones de textura...
Actualmente:Octree y jerarquías

[EX3]

                                Pero Dracula, el juego lo estoy programando con DirectDraw y encima para rematar con Visual Basic xD

¿es que acaso se pueden combinar DirectDraw7 con Direct3D?

[ Este Mensaje fue editado por: [EX3] el 2002-07-19 21:55 ]                                
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

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

Drácula

                                Olvídate de DDraw y trabaja con D3D. ¡Es lo mismo si usas el formato de vértices para 2D! ¡Y muchísimo más potente!

Mira mi librería. Es 3D pero para hacer cosas 2D. Puedes rotar, escalar, utilizar transparencias. ¡Y muuuy fácil!                                
ltimas mejoras en Merlín: Multitextura.Control y generación automática de LOD.Importa ASE y X. Frustum Clipping por BB.Render añadido de wireframe y del BB.Animaciones por interpolación.Animaciones de textura...
Actualmente:Octree y jerarquías

[EX3]

                                Tanta insistencia me esta haciendo reflexionar sobre el cambio de DD7 a D3D. Pero eso me acarrea unos pros y unos contras.

Pros:
La facilidad y "posibilidad" de aplicar los efectos de alphablending y rotacion, deshabilitados en DD7; El Z-Buffer, tb deshabilitado en DD7.

Contras:
Posiblemente no funcione en equipos que no tengan aceleradora o targeta grafica de mas de 4 megas; el tamaño de los sprites (si no me equivoco no se recomienda trabajar con tamaños de mas de 256x256); y por ultimo que me tocaria reprogramar todo el modulo grafico del proyecto, que aun asi mereceria la pena.

Si me exponeis mas ventajas de D3D sobre DD7 para el desarrollo de juegos 2D y las veo convincentes, posiblemente me convezca y me decida dar el paso a D3D.

P.D.: Visitar esta direccion: http://www.dxlib32.es.vg

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

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

Drácula

                                Pros:
Acceso a TODOS los efectos de las tarjetas.
Velocidad.
El tamaño no está limitado a 256x256, eso es la textura, y actualmente su límite se puede presuponer de 2048x2048.
Olvídate de las tarjetas con 4MB!!
Mayor Compatibilidad al no usar un sistema desfasado.                                
ltimas mejoras en Merlín: Multitextura.Control y generación automática de LOD.Importa ASE y X. Frustum Clipping por BB.Render añadido de wireframe y del BB.Animaciones por interpolación.Animaciones de textura...
Actualmente:Octree y jerarquías

Depredator

                                No hay duda de que D3D te va a traer muxas ventajas amigo mio, pero también es verdad que no va a llegar a todo el mundo (aunque ya poca gente usa ordenadores tan desfasados). Tú mismo, aunque yo, si no te supone muxo esfuerzo, te aconsejo el D3D.

Un Saludo.

PD: Vaya palizón os he metido al JK!!! XD                                
enemos dos oidos y una boca para hablar menos y escuhar más...

(Proverbio Chino)

[EX3]

                                Lo estado meditando y si, voy a dar el paso a D3D. Ahora solo me toca volver a empollarme las DirectX para comprender el funcionamiento de D3D, pero no creo ke me lleve mucho tiempo, espero xD.

De momento seguire con la beta 1 del proyecto con el soporte en DD7.

Salu2...

P.D.: Predatillo, mañana recoges los restos de Logan, ke tu eres el siguiente pal duelo con sable laser, ke la fuerza te abandone xD

[ Este Mensaje fue editado por: [EX3] el 2002-07-25 01:46 ]                                
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.