1#ifndef YAZE_APP_EDITOR_AGENT_PANELS_MESEN_SCREENSHOT_PANEL_H_
2#define YAZE_APP_EDITOR_AGENT_PANELS_MESEN_SCREENSHOT_PANEL_H_
33 void SetClient(std::shared_ptr<emu::mesen::MesenSocketClient> client);
47 void UpdateTexture(
const std::vector<uint8_t>& rgba,
int width,
int height);
52 static std::vector<uint8_t>
DecodeBase64(
const std::string& encoded);
54 std::vector<uint8_t>& rgba_out,
int& width_out,
57 std::shared_ptr<emu::mesen::MesenSocketClient>
client_;
ImGui panel that streams live screenshots from a running Mesen2 emulator via socket and displays them...
float last_capture_latency_ms_
std::string connection_error_
static std::vector< uint8_t > DecodeBase64(const std::string &encoded)
void SetClient(std::shared_ptr< emu::mesen::MesenSocketClient > client)
std::vector< std::string > socket_paths_
MesenScreenshotPanel & operator=(const MesenScreenshotPanel &)=delete
std::shared_ptr< emu::mesen::MesenSocketClient > client_
int selected_socket_index_
void EnsureTexture(int width, int height)
static bool DecodePngToRgba(const std::vector< uint8_t > &png_data, std::vector< uint8_t > &rgba_out, int &width_out, int &height_out)
void ConnectToPath(const std::string &socket_path)
std::string status_message_
void DrawConnectionHeader()
char socket_path_buffer_[256]
void UpdateTexture(const std::vector< uint8_t > &rgba, int width, int height)
MesenScreenshotPanel(const MesenScreenshotPanel &)=delete
void DrawControlsToolbar()
SDL2/SDL3 compatibility layer.