Make setters return reference to self: Texture

This commit is contained in:
Dmitry Marakasov 2015-01-18 03:31:49 +03:00
parent 487f53bcd7
commit 7e1625a488
2 changed files with 25 additions and 10 deletions

View File

@ -88,29 +88,34 @@ SDL_Texture* Texture::Get() const {
return texture_; return texture_;
} }
void Texture::Update(const Optional<Rect>& rect, const void* pixels, int pitch) { Texture& Texture::Update(const Optional<Rect>& rect, const void* pixels, int pitch) {
if (SDL_UpdateTexture(texture_, rect ? &*rect : nullptr, pixels, pitch) != 0) if (SDL_UpdateTexture(texture_, rect ? &*rect : nullptr, pixels, pitch) != 0)
throw Exception("SDL_UpdateTexture failed"); throw Exception("SDL_UpdateTexture failed");
return *this;
} }
void Texture::UpdateYUV(const Optional<Rect>& rect, const Uint8* yplane, int ypitch, const Uint8* uplane, int upitch, const Uint8* vplane, int vpitch) { Texture& Texture::UpdateYUV(const Optional<Rect>& rect, const Uint8* yplane, int ypitch, const Uint8* uplane, int upitch, const Uint8* vplane, int vpitch) {
if (SDL_UpdateYUVTexture(texture_, rect ? &*rect : nullptr, yplane, ypitch, uplane, upitch, vplane, vpitch) != 0) if (SDL_UpdateYUVTexture(texture_, rect ? &*rect : nullptr, yplane, ypitch, uplane, upitch, vplane, vpitch) != 0)
throw Exception("SDL_UpdateYUVTexture failed"); throw Exception("SDL_UpdateYUVTexture failed");
return *this;
} }
void Texture::SetBlendMode(SDL_BlendMode blendMode) { Texture& Texture::SetBlendMode(SDL_BlendMode blendMode) {
if (SDL_SetTextureBlendMode(texture_, blendMode) != 0) if (SDL_SetTextureBlendMode(texture_, blendMode) != 0)
throw Exception("SDL_SetTextureBlendMode failed"); throw Exception("SDL_SetTextureBlendMode failed");
return *this;
} }
void Texture::SetAlphaMod(Uint8 alpha) { Texture& Texture::SetAlphaMod(Uint8 alpha) {
if (SDL_SetTextureAlphaMod(texture_, alpha) != 0) if (SDL_SetTextureAlphaMod(texture_, alpha) != 0)
throw Exception("SDL_SetTextureAlphaMod failed"); throw Exception("SDL_SetTextureAlphaMod failed");
return *this;
} }
void Texture::SetColorMod(Uint8 r, Uint8 g, Uint8 b) { Texture& Texture::SetColorMod(Uint8 r, Uint8 g, Uint8 b) {
if (SDL_SetTextureColorMod(texture_, r, g, b) != 0) if (SDL_SetTextureColorMod(texture_, r, g, b) != 0)
throw Exception("SDL_SetTextureColorMod failed"); throw Exception("SDL_SetTextureColorMod failed");
return *this;
} }
Texture::LockHandle Texture::Lock(const Optional<Rect>& rect) { Texture::LockHandle Texture::Lock(const Optional<Rect>& rect) {

View File

@ -304,12 +304,14 @@ public:
/// \param[in] pitch Number of bytes in a row of pixel data, including /// \param[in] pitch Number of bytes in a row of pixel data, including
/// padding between lines /// padding between lines
/// ///
/// \returns Reference to self
///
/// \throws SDL2pp::Exception /// \throws SDL2pp::Exception
/// ///
/// \see http://wiki.libsdl.org/SDL_UpdateTexture /// \see http://wiki.libsdl.org/SDL_UpdateTexture
/// ///
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
void Update(const Optional<Rect>& rect, const void* pixels, int pitch); Texture& Update(const Optional<Rect>& rect, const void* pixels, int pitch);
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Update the given texture rectangle with new pixel data /// \brief Update the given texture rectangle with new pixel data
@ -323,36 +325,42 @@ public:
/// \param[in] vplane Raw pixel data for the V plane /// \param[in] vplane Raw pixel data for the V plane
/// \param[in] vpitch Number of bytes between rows of pixel data for the V plane /// \param[in] vpitch Number of bytes between rows of pixel data for the V plane
/// ///
/// \returns Reference to self
///
/// \throws SDL2pp::Exception /// \throws SDL2pp::Exception
/// ///
/// \see http://wiki.libsdl.org/SDL_UpdateYUVTexture /// \see http://wiki.libsdl.org/SDL_UpdateYUVTexture
/// ///
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
void UpdateYUV(const Optional<Rect>& rect, const Uint8* yplane, int ypitch, const Uint8* uplane, int upitch, const Uint8* vplane, int vpitch); Texture& UpdateYUV(const Optional<Rect>& rect, const Uint8* yplane, int ypitch, const Uint8* uplane, int upitch, const Uint8* vplane, int vpitch);
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Set the blend mode for a texture, used by SDL2pp::Renderer::Copy /// \brief Set the blend mode for a texture, used by SDL2pp::Renderer::Copy
/// ///
/// \param[in] blendMode SDL_BlendMode to use for texture blending /// \param[in] blendMode SDL_BlendMode to use for texture blending
/// ///
/// \returns Reference to self
///
/// \throws SDL2pp::Exception /// \throws SDL2pp::Exception
/// ///
/// \see http://wiki.libsdl.org/SDL_SetTextureBlendMode /// \see http://wiki.libsdl.org/SDL_SetTextureBlendMode
/// ///
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
void SetBlendMode(SDL_BlendMode blendMode); Texture& SetBlendMode(SDL_BlendMode blendMode);
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Set an additional alpha value multiplied into render copy operations /// \brief Set an additional alpha value multiplied into render copy operations
/// ///
/// \param[in] alpha Source alpha value multiplied into copy operations /// \param[in] alpha Source alpha value multiplied into copy operations
/// ///
/// \returns Reference to self
///
/// \throws SDL2pp::Exception /// \throws SDL2pp::Exception
/// ///
/// \see http://wiki.libsdl.org/SDL_SetTextureAlphaMod /// \see http://wiki.libsdl.org/SDL_SetTextureAlphaMod
/// ///
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
void SetAlphaMod(Uint8 alpha = 255); Texture& SetAlphaMod(Uint8 alpha = 255);
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Set an additional color value multiplied into render copy operations /// \brief Set an additional color value multiplied into render copy operations
@ -361,12 +369,14 @@ public:
/// \param[in] g Green color value multiplied into copy operations /// \param[in] g Green color value multiplied into copy operations
/// \param[in] b Blue color value multiplied into copy operations /// \param[in] b Blue color value multiplied into copy operations
/// ///
/// \returns Reference to self
///
/// \throws SDL2pp::Exception /// \throws SDL2pp::Exception
/// ///
/// \see http://wiki.libsdl.org/SDL_SetTextureColorMod /// \see http://wiki.libsdl.org/SDL_SetTextureColorMod
/// ///
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
void SetColorMod(Uint8 r = 255, Uint8 g = 255, Uint8 b = 255); Texture& SetColorMod(Uint8 r = 255, Uint8 g = 255, Uint8 b = 255);
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Lock texture for write-only pixel access /// \brief Lock texture for write-only pixel access