1#include "sdl_blend_mode_guard.hpp"
3SdlBlendModeGuard::SdlBlendModeGuard(
const std::shared_ptr<SDL_Renderer>& renderer,
7 const auto rcb = SDL_GetRenderDrawBlendMode(_renderer.get(), &_restore_mode);
9 SDL_LogWarn(SDL_LOG_CATEGORY_APPLICATION,
10 "[%s] SDL_GetRenderDrawBlendMode() failed with %s", __func__, SDL_GetError());
13 const auto rbm = SDL_SetRenderDrawBlendMode(_renderer.get(), mode);
15 SDL_LogWarn(SDL_LOG_CATEGORY_APPLICATION,
16 "[%s] SDL_SetRenderDrawBlendMode() failed with %s", __func__,
23bool SdlBlendModeGuard::update(SDL_BlendMode mode)
25 if (_current_mode != mode)
27 if (!SDL_SetRenderDrawBlendMode(_renderer.get(), mode))
29 SDL_LogWarn(SDL_LOG_CATEGORY_APPLICATION,
30 "[%s] SDL_SetRenderDrawBlendMode() failed with %s", __func__,
39SdlBlendModeGuard::~SdlBlendModeGuard()
41 const auto rbm = SDL_SetRenderDrawBlendMode(_renderer.get(), _restore_mode);
43 SDL_LogWarn(SDL_LOG_CATEGORY_APPLICATION,
44 "[%s] SDL_SetRenderDrawBlendMode() failed with %s", __func__, SDL_GetError());