#pragma once #include #include // 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