33 lines
1.2 KiB
C++
33 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include <cstdint>
|
|
#include <string>
|
|
|
|
// Volca un buffer ARGB8888 a un fitxer PNG dins de la subcarpeta
|
|
// `screenshots/` del directori configurat amb `setBaseDir`. El nom es
|
|
// genera amb un timestamp i la funció retorna el basename i la ruta
|
|
// del directori on s'ha escrit (o un Result amb `filename` buit si
|
|
// l'escriptura ha fallat).
|
|
namespace Screenshot {
|
|
|
|
// Configura el directori base on s'escriuran les captures (s'hi
|
|
// crea una subcarpeta `screenshots/`). El Director el crida una
|
|
// vegada al boot amb `system_folder_` perquè les captures vagin
|
|
// al mateix lloc per plataforma que la resta de fitxers generats
|
|
// (config.yaml, gamepad_configs.yaml, shaders/, etc.). Si no es
|
|
// crida, el fallback és el CWD — comportament antic.
|
|
void setBaseDir(std::string dir);
|
|
|
|
// Resultat d'una captura: el `filename` és el basename del PNG
|
|
// (per a notificacions/títol) i el `folder` és la ruta absoluta
|
|
// on s'ha guardat (per a poder dir "guardada a {folder}"). Si
|
|
// l'escriptura falla, ambdós camps tornen buits.
|
|
struct Result {
|
|
std::string filename;
|
|
std::string folder;
|
|
};
|
|
|
|
auto save(const std::uint32_t* buffer, int width, int height) -> Result;
|
|
|
|
} // namespace Screenshot
|