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.

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

    ResponderEliminar
  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.

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

    ResponderEliminar

Publicar un comentario