mirror of
https://github.com/azahar-emu/azahar
synced 2025-11-07 15:39:59 +01:00
* yuzu/bootmanager: Remove unnecessary pointer casts We can just invoke these functions by qualifying the object name before the function. * yuzu/bootmanager: unsigned -> u32 Same thing (for platforms we support), less reading. * yuzu/bootmanager: Default EmuThread's destructor in the cpp file This class contains non-trivial members, so we should default the destructor's definition within the cpp file. * yuzu/bootmanager: Treat the resolution factor as a u32 Treating it as a u16 can result in a sign-conversion warning when performing arithmetic with it, as u16 promotes to an int when aritmetic is performed on it, not unsigned int. This also makes the interface more uniform, as the layout interface now operates on u32 across the board. * yuzu/bootmanager: Log out screenshot destination path We can make this message more meaningful by indicating the location the screenshot has been saved to. We can also log out whenever a screenshot could not be saved (e.g. due to filesystem permissions or some other reason). * Fix compilation
74 lines
2.2 KiB
C++
74 lines
2.2 KiB
C++
// Copyright 2016 Citra Emulator Project
|
|
// Licensed under GPLv2 or any later version
|
|
// Refer to the license.txt file included.
|
|
|
|
#pragma once
|
|
|
|
#include <memory>
|
|
#include <utility>
|
|
#include "core/frontend/emu_window.h"
|
|
|
|
struct SDL_Window;
|
|
|
|
class EmuWindow_SDL2 : public Frontend::EmuWindow {
|
|
public:
|
|
explicit EmuWindow_SDL2(bool fullscreen);
|
|
~EmuWindow_SDL2();
|
|
|
|
/// Swap buffers to display the next frame
|
|
void SwapBuffers() override;
|
|
|
|
/// Polls window events
|
|
void PollEvents() override;
|
|
|
|
/// Makes the graphics context current for the caller thread
|
|
void MakeCurrent() override;
|
|
|
|
/// Releases the GL context from the caller thread
|
|
void DoneCurrent() override;
|
|
|
|
/// Whether the window is still open, and a close request hasn't yet been sent
|
|
bool IsOpen() const;
|
|
|
|
private:
|
|
/// Called by PollEvents when a key is pressed or released.
|
|
void OnKeyEvent(int key, u8 state);
|
|
|
|
/// Called by PollEvents when the mouse moves.
|
|
void OnMouseMotion(s32 x, s32 y);
|
|
|
|
/// Called by PollEvents when a mouse button is pressed or released
|
|
void OnMouseButton(u32 button, u8 state, s32 x, s32 y);
|
|
|
|
/// Translates pixel position (0..1) to pixel positions
|
|
std::pair<unsigned, unsigned> TouchToPixelPos(float touch_x, float touch_y) const;
|
|
|
|
/// Called by PollEvents when a finger starts touching the touchscreen
|
|
void OnFingerDown(float x, float y);
|
|
|
|
/// Called by PollEvents when a finger moves while touching the touchscreen
|
|
void OnFingerMotion(float x, float y);
|
|
|
|
/// Called by PollEvents when a finger stops touching the touchscreen
|
|
void OnFingerUp();
|
|
|
|
/// Called by PollEvents when any event that may cause the window to be resized occurs
|
|
void OnResize();
|
|
|
|
/// Called when user passes the fullscreen parameter flag
|
|
void Fullscreen();
|
|
|
|
/// Called when a configuration change affects the minimal size of the window
|
|
void OnMinimalClientAreaChangeRequest(std::pair<u32, u32> minimal_size) override;
|
|
|
|
/// Is the window still open?
|
|
bool is_open = true;
|
|
|
|
/// Internal SDL2 render window
|
|
SDL_Window* render_window;
|
|
|
|
using SDL_GLContext = void*;
|
|
/// The OpenGL context associated with the window
|
|
SDL_GLContext gl_context;
|
|
};
|