martes, marzo 30, 2010

Capturas de pantalla en Ogre

Me estaba resultando bastante molesto el tema de capturar pantallas en Linux, así que me di una vuelta por el foro de Ogre a ver qué había al respecto. Resulta que es muy fácil de implementar, con Ogre::RenderTarget::writeContentsToFile(). Aquí les muestro cómo crear muy rápidamente un nombre aleatorio y guardar una captura de pantalla a jpg:

int rnd1, rnd2, rnd3;
rnd1 = 0+(int)(9.0 * rand() / (RAND_MAX+1.0));

rnd2 = 0+(int)(9.0 * rand() / (RAND_MAX+1.0));
rnd3 = 0+(int)(9.0 * rand() / (RAND_MAX+1.0));
String tmpname =  "screenshot"+StringConverter::toString(rnd1)+StringConverter::toString(rnd2)+StringConverter::toString(rnd3);
win->writeContentsToFile(tmpname+".jpg") ;


Se aceptan sugerencias y mejoras.

4 comentarios:

  1. Buenas,
    así de primeras, podrías ahorrarte rnd2 y rnd3 multiplicando el número aleatorio por 999.0 en vez de 9.0. :)

    saludos

    ResponderSuprimir
  2. Gracias! Estaba pensando sustituirlo por un arreglo para generar 4 o 5 dígitos, porque me parecía que 3 aún daban margen a colisión. Creo que esta idea es mejor.

    ResponderSuprimir
  3. Esa es la solución óptima, pero no he buscado cómo hacerlo de forma portable.

    ResponderSuprimir

Este blog ya no es dofollow. Los comentarios spam serán borrados. This blog is no longer dofollow. English comments and spam links will be removed.