mirror of
https://github.com/libSDL2pp/libSDL2pp.git
synced 2025-08-04 11:25:58 -04:00
Implement c++11 move for renderers, textures and windows
This commit is contained in:
parent
2decf5162f
commit
411c62a3cc
@ -41,6 +41,16 @@ Renderer::~Renderer() {
|
|||||||
SDL_DestroyRenderer(renderer_);
|
SDL_DestroyRenderer(renderer_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Renderer::Renderer(Renderer&& other) noexcept : renderer_(other.renderer_) {
|
||||||
|
other.renderer_ = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
Renderer& Renderer::operator=(Renderer&& other) noexcept {
|
||||||
|
renderer_ = other.renderer_;
|
||||||
|
other.renderer_ = nullptr;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
SDL_Renderer* Renderer::Get() const {
|
SDL_Renderer* Renderer::Get() const {
|
||||||
return renderer_;
|
return renderer_;
|
||||||
}
|
}
|
||||||
|
@ -45,9 +45,9 @@ public:
|
|||||||
virtual ~Renderer();
|
virtual ~Renderer();
|
||||||
|
|
||||||
Renderer(const Renderer& other) = delete;
|
Renderer(const Renderer& other) = delete;
|
||||||
Renderer(Renderer&& other) = delete;
|
Renderer(Renderer&& other) noexcept;
|
||||||
Renderer& operator=(const Renderer& other) = delete;
|
Renderer& operator=(const Renderer& other) = delete;
|
||||||
Renderer& operator=(Renderer&& other) = delete;
|
Renderer& operator=(Renderer&& other) noexcept;
|
||||||
|
|
||||||
SDL_Renderer* Get() const;
|
SDL_Renderer* Get() const;
|
||||||
|
|
||||||
|
@ -39,6 +39,16 @@ Texture::~Texture() {
|
|||||||
SDL_DestroyTexture(texture_);
|
SDL_DestroyTexture(texture_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Texture::Texture(Texture&& other) noexcept : texture_(other.texture_) {
|
||||||
|
other.texture_ = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
Texture& Texture::operator=(Texture&& other) noexcept {
|
||||||
|
texture_ = other.texture_;
|
||||||
|
other.texture_ = nullptr;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
SDL_Texture* Texture::Get() const {
|
SDL_Texture* Texture::Get() const {
|
||||||
return texture_;
|
return texture_;
|
||||||
}
|
}
|
||||||
@ -63,8 +73,4 @@ void Texture::SetColorMod(Uint8 r, Uint8 g, Uint8 b) {
|
|||||||
throw Exception("SDL_SetTextureColorMod failed");
|
throw Exception("SDL_SetTextureColorMod failed");
|
||||||
}
|
}
|
||||||
|
|
||||||
void Texture::Swap(Texture& other) noexcept {
|
|
||||||
std::swap(texture_, other.texture_);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -41,9 +41,9 @@ public:
|
|||||||
virtual ~Texture();
|
virtual ~Texture();
|
||||||
|
|
||||||
Texture(const Texture& other) = delete;
|
Texture(const Texture& other) = delete;
|
||||||
Texture(Texture&& other) = delete;
|
Texture(Texture&& other) noexcept;
|
||||||
Texture& operator=(const Texture& other) = delete;
|
Texture& operator=(const Texture& other) = delete;
|
||||||
Texture& operator=(Texture&& other) = delete;
|
Texture& operator=(Texture&& other) noexcept;
|
||||||
|
|
||||||
SDL_Texture* Get() const;
|
SDL_Texture* Get() const;
|
||||||
|
|
||||||
@ -52,8 +52,6 @@ public:
|
|||||||
void SetBlendMode(SDL_BlendMode blendMode);
|
void SetBlendMode(SDL_BlendMode blendMode);
|
||||||
void SetAlphaMod(Uint8 alpha = 255);
|
void SetAlphaMod(Uint8 alpha = 255);
|
||||||
void SetColorMod(Uint8 r = 255, Uint8 g = 255, Uint8 b = 255);
|
void SetColorMod(Uint8 r = 255, Uint8 g = 255, Uint8 b = 255);
|
||||||
|
|
||||||
void Swap(Texture& other) noexcept;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -35,6 +35,16 @@ Window::~Window() {
|
|||||||
SDL_DestroyWindow(window_);
|
SDL_DestroyWindow(window_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Window::Window(Window&& other) noexcept : window_(other.window_) {
|
||||||
|
other.window_ = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
Window& Window::operator=(Window&& other) noexcept {
|
||||||
|
window_ = other.window_;
|
||||||
|
other.window_ = nullptr;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
SDL_Window* Window::Get() const {
|
SDL_Window* Window::Get() const {
|
||||||
return window_;
|
return window_;
|
||||||
}
|
}
|
||||||
|
@ -37,9 +37,9 @@ public:
|
|||||||
virtual ~Window();
|
virtual ~Window();
|
||||||
|
|
||||||
Window(const Window& other) = delete;
|
Window(const Window& other) = delete;
|
||||||
Window(Window&& other) = delete;
|
Window(Window&& other) noexcept;
|
||||||
Window& operator=(const Window& other) = delete;
|
Window& operator=(const Window& other) = delete;
|
||||||
Window& operator=(Window&& other) = delete;
|
Window& operator=(Window&& other) noexcept;
|
||||||
|
|
||||||
SDL_Window* Get() const;
|
SDL_Window* Get() const;
|
||||||
};
|
};
|
||||||
|
@ -95,7 +95,7 @@ int Run() {
|
|||||||
render.Copy(target1, Rect::Null(), Rect(MY_RENDERTARGET_SIZE / 2, MY_RENDERTARGET_SIZE / 2, MY_RENDERTARGET_SIZE / 2, MY_RENDERTARGET_SIZE / 2), SDL_GetTicks() / 10000.0 * 360.0);
|
render.Copy(target1, Rect::Null(), Rect(MY_RENDERTARGET_SIZE / 2, MY_RENDERTARGET_SIZE / 2, MY_RENDERTARGET_SIZE / 2, MY_RENDERTARGET_SIZE / 2), SDL_GetTicks() / 10000.0 * 360.0);
|
||||||
|
|
||||||
// Swap textures to copy recursively
|
// Swap textures to copy recursively
|
||||||
target1.Swap(target2);
|
std::swap(target1, target2);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Draw result to screen
|
// Draw result to screen
|
||||||
|
Loading…
x
Reference in New Issue
Block a user