Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* SDL RAII
- *
- * This file provides RAII wrappers for SDL objects.
- *
- */
- #include <memory>
- #include <SDL2/SDL.h>
- #include <SDL2/SDL_image.h>
- namespace SDL {
- namespace detail {
- struct Deleter {
- // clang-format off
- void operator()(SDL_Renderer *p) const { if (p) SDL_DestroyRenderer(p); }
- void operator()(SDL_Texture *p) const { if (p) SDL_DestroyTexture(p); }
- void operator()(SDL_Window *p) const { if (p) SDL_DestroyWindow(p); }
- // clang-format on
- };
- template <typename T>
- using Resource = std::unique_ptr<T, Deleter>;
- } // namespace detail
- using Renderer = detail::Resource<SDL_Renderer>;
- using Texture = detail::Resource<SDL_Texture>;
- using Window = detail::Resource<SDL_Window>;
- } // namespace SDL
Add Comment
Please, Sign In to add comment