FreeRDP
Loading...
Searching...
No Matches
sdl_blend_mode_guard.hpp
1
21#pragma once
22
23#include <memory>
24
25#include <SDL3/SDL.h>
26
28{
29 public:
30 explicit SdlBlendModeGuard(const std::shared_ptr<SDL_Renderer>& renderer,
31 SDL_BlendMode mode = SDL_BLENDMODE_NONE);
33
34 SdlBlendModeGuard(SdlBlendModeGuard&& other) noexcept;
35 SdlBlendModeGuard(const SdlBlendModeGuard& other) = delete;
36
37 SdlBlendModeGuard& operator=(const SdlBlendModeGuard& other) = delete;
38 SdlBlendModeGuard& operator=(SdlBlendModeGuard&& other) = delete;
39
40 bool update(SDL_BlendMode mode);
41
42 private:
43 SDL_BlendMode _restore_mode = SDL_BLENDMODE_INVALID;
44 SDL_BlendMode _current_mode = SDL_BLENDMODE_INVALID;
45 std::shared_ptr<SDL_Renderer> _renderer{};
46};