Anuncios Google

¿Como cambiar la resolucion en SDL?

Hola!

estoy programando con SDL y no puedo cambiar la resolucion,

bueno si, el de la ventana si con SDL_SetVideoMode pero, me

gustaria es cambiar tambien el de la imagen he visto un poco

con SDL_rotozoom

con el siguiente codigo se puede agrandar pero no se utilizarla muy

bien para que me reconosca la medida de la pantalla

Image=zoomSurface(Image, x, y, 1);

Image=es la imagen a estirar
x y=la cantidad a estirar
1=suavizado
pero los valores de 'x' y 'y' son muy raros
no entiendo muy bien

la pregunta es ¿Como cambiar el tamaño de la imagen de acuerdo al de la ventana?

Gracias.


                                                          Ricx-Dark

  "El conocimiento es poder: no lo malgastes ni un solo dia aprende, aprende, aprende!"

           "Para un soldado el arma es su vida pero este da muerte a los demas"


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Se que no responde a lo que

Se que no responde a lo que preguntas, per SFML le da mil vueltas a SDL, además de que es más fácil.

http://www.sfml-dev.org/resources.php

Imagen de joserc87

RotoZoom SMOOTHING_ON

Hola.

De acuerdo con la documentación de SDL: http://www.ferzkopp.net/Software/SDL_gfx-2.0/Docs/html/_s_d_l__rotozoom_8h.html#a06c8108f8fe8de77cf841c176ee64850

  • image es la image a estirar, como tu bien has dicho.
  • el ultimo parametro es el de antialiasing, si, pero deberias usar la constante SMOOTHING_ON en vez de 1.
  • Los parametros X e Y son los factores de escala horizontal y vertical respectivamente. Pon valores menores que 1 para hacer las imagenes más pequeñas y valores mayores que 1 para hacerlas mas grandes. Por ejemplo, 0.25 haria que la imagen sea 1/4, es decir, 4 veces más pequeña, mientras que un valor de 4 haria que fuese 4 veces mas grande. Simple, verdad?

Respecto a tu pregunta, como hacer que el tamaño de las imagenes varie segun el tamaño de la ventana:

Si originalmente tu ventana es de WxH (por ejemplo 800x600) y la escalas a wxh, (por ejemplo 640x480), los factores de escala serán (x=w/W, y=h/H) = (0.8, 0.8). No obstante, que pasa si amplias mas el ancho que el alto? Pues que tus imagenes se verian estiradas. Puede ser que sea eso lo que quieres, en cuyo caso tendrias que usar esas formulas. Sino, si quieres que la relacion de aspecto de la imagen se mantenga, deberias calcular por ejemplo solo la x=w/W y hacer y=x en lugar de y=h/H. No se si me explico...

Bastante facil. El problema lo tendrás cuando tengas que trabajar con las coordenadas en pixeles...

Lo maravilloso de OpenGL respecto a SDL es que lo das todo en coordenadas de mundo, no en pixeles, asi que te da igual el tamaño de la ventana. SDL falla un poco en este aspecto.

Saludos y suerte!


Be pointer my friend...

Dennis Ritchie. Padre de C y cocreador de UNIX.

R.I.P.

 

Imagen de Ricx-Dark

Wow q facil...! no se me

Wow q facil...! no se me habia ocurrido esa

¿O.o jajajaja gracias ! me hacia falta una

respuesta como esta ahora lo integro la cosa

(yo utilizo linux) y mis programas en linux corren

super.. nunca he tenido ningun problema pero al

compilarlo en win ahh!! muchos hasta que ya me compila

pero no me carga las imagenes .png con la libreria

SDL_image sale un error como este

No se ha podido cargar la imagen 'Fondo0.png'.Error: Failed loading libpng15-15.dll: No se puede encontrar el módulo especificado.

sabes algo al respecto?¿

me ayudarias full con eso porque estoy de muerte :( :'(


                                                          Ricx-Dark

  "El conocimiento es poder: no lo malgastes ni un solo dia aprende, aprende, aprende!"

           "Para un soldado el arma es su vida pero este da muerte a los demas"

Imagen de joserc87

libpng

Mmm la pregunta es un poco tonta, pero has instalado la SDL_image bien? Tienes que copiar todos los dll, no solo los de SDL, a la carpeta de system32, o si no quieres instalarlo, al menos a la raiz de tu proyecto. El error que te salta claramente te dice que Windows no encuentra el dll de libpng, así que tendrás que ponerlo en alguno sitio donde pueda encontrarlo (lo dicho, system32 o la raiz del proyecto, no tiene nada que ver con el IDE).

Un saludo!


Be pointer my friend...

Dennis Ritchie. Padre de C y cocreador de UNIX.

R.I.P.

 

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.