Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





¿cómo Escalar Sin Librerias? (sdl)

Iniciado por J_F_NASH, 21 de Octubre de 2005, 12:11:12 AM

« anterior - próximo »

Ray

 Ya, creo que ya se lo que dices, dibujar todo en 320x240 sin escalas ni nada, normalmente, y al mostrar en pantalla escalar la imagen para que aparezca en 640x480 o 1200x960.

Quizás se puede hacer con SDL a secas pero lo veo complicado, con Dx no haría falta hacer nada más que crear una ventana de 800x600 (o como quieras) y un backbuffer de 320x200.

Lo que decia anteriormente del Dx, cuando lo controlas es todo muy fácil.

PD: quizás tambien se puede hacer así con SDL.

TheAzazel

 Si lo que quieres hacer es lo que dice Ray...

yo tengo una funcion optimizada usando MMX (lo era para los PentiumMMX, seguro que hoy en dia se puede optimizar aun mas) que duplica el tamano de una imagen y sobre SDL.

Asi que, si quieres trabajar internamente a 320x240 y luego visualizar a 640x480 te ira al pelo... lo podras escalar en cada frame puesto que ira a toda leche.
Si te interesa, echa un vistazo a mi pagina y busca el RealFire32, en el codigo fuente esta la rutina que optimiza... el codigo es free asi que... tu mismo :P

J_F_NASH

Cita de: "TheAzazel"Si lo que quieres hacer es lo que dice Ray...

yo tengo una funcion optimizada usando MMX (lo era para los PentiumMMX, seguro que hoy en dia se puede optimizar aun mas) que duplica el tamano de una imagen y sobre SDL.

Asi que, si quieres trabajar internamente a 320x240 y luego visualizar a 640x480 te ira al pelo... lo podras escalar en cada frame puesto que ira a toda leche.
Si te interesa, echa un vistazo a mi pagina y busca el RealFire32, en el codigo fuente esta la rutina que optimiza... el codigo es free asi que... tu mismo :P
Si, si, quiero hacer lo que explica Ray.
Implementar la opción que me das (TheAzazel) es demasiado avanzada para mi.



S2.

TheAzazel

 Hombre, confia mas en tu capacidad :)

muy dificil no es y ademas, cualquier cosa me lo puedes preguntar... incluso te lo podria adaptar yo a tu codigo...

Ray

 Quizás lo mejor sería crear una ventana de 640x400 y dibujar en una surface de de 320x200 (como dice TheAzazel debe ir bastante rapido).

despues usas el SDL_BlitSurface para copiar todas las columnas por duplicado a una surface auxiliar de 640x200, y finalmente repites el proceso para copiar las 200 filas a las 400 filas que tiene la ventana, eso creo que hay que hacerlo con SDL_UpdateRects.

No tengo ni idea cuan lento o problemático puede ser esto pero al menos evitas el tener que bloquearlas y urgar en ellas.

TheAzazel

 No se que tal de rapido seria hacerlo a base de bliteos duplicando la superficie... pero por probar... no pierde nada.
Desde luego via MMX va a toda leche pero ya te digo... si utilizaras superfices hardware, hacer bliteos de este estilo para duplicar la superfice deberia ir a toda leche...
y mas facil que eso... no hay jeje







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.