From b6781c3d934004f9214a41b6a479eee02a3c1ad3 Mon Sep 17 00:00:00 2001 From: Dmitry Marakasov Date: Thu, 15 Jan 2015 16:59:40 +0300 Subject: [PATCH] Implement some Renderer getters --- SDL2pp/Renderer.cc | 12 ++++++++++++ SDL2pp/Renderer.hh | 27 +++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/SDL2pp/Renderer.cc b/SDL2pp/Renderer.cc index 888c82e..d057ec2 100644 --- a/SDL2pp/Renderer.cc +++ b/SDL2pp/Renderer.cc @@ -273,4 +273,16 @@ Rect Renderer::GetViewport() const { return rect; } +SDL_BlendMode Renderer::GetDrawBlendMode() const { + SDL_BlendMode mode; + if (SDL_GetRenderDrawBlendMode(renderer_, &mode) != 0) + throw Exception("SDL_GetRenderDrawBlendMode failed"); + return mode; +} + +void Renderer::GetDrawColor(Uint8& r, Uint8& g, Uint8& b, Uint8& a) const { + if (SDL_GetRenderDrawColor(renderer_, &r, &g, &b, &a) != 0) + throw Exception("SDL_GetRenderDrawColor failed"); +} + } diff --git a/SDL2pp/Renderer.hh b/SDL2pp/Renderer.hh index 6309056..0bb0f9e 100644 --- a/SDL2pp/Renderer.hh +++ b/SDL2pp/Renderer.hh @@ -632,6 +632,33 @@ public: /// //////////////////////////////////////////////////////////// Rect GetViewport() const; + + //////////////////////////////////////////////////////////// + /// \brief Get the blend mode used for drawing operations + /// + /// \return Current SDL_BlendMode + /// + /// \throws SDL2pp::Exception + /// + /// \see http://wiki.libsdl.org/SDL_GetRenderDrawBlendMode + /// + //////////////////////////////////////////////////////////// + SDL_BlendMode GetDrawBlendMode() const; + + //////////////////////////////////////////////////////////// + /// \brief Get the additional color value multiplied into render copy operations + /// + /// \param[out] r Variable to be filled in with red value used to draw on the rendering target + /// \param[out] g Variable to be filled in with green value used to draw on the rendering target + /// \param[out] b Variable to be filled in with blue value used to draw on the rendering target + /// \param[out] a Variable to be filled in with alpha value used to draw on the rendering target + /// + /// \throws SDL2pp::Exception + /// + /// \see http://wiki.libsdl.org/SDL_GetRenderDrawColor + /// + //////////////////////////////////////////////////////////// + void GetDrawColor(Uint8& r, Uint8& g, Uint8& b, Uint8& a) const; }; }