mirror of
https://github.com/libSDL2pp/libSDL2pp.git
synced 2025-08-03 19:05:59 -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_);
|
||||
}
|
||||
|
||||
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 {
|
||||
return renderer_;
|
||||
}
|
||||
|
@ -45,9 +45,9 @@ public:
|
||||
virtual ~Renderer();
|
||||
|
||||
Renderer(const Renderer& other) = delete;
|
||||
Renderer(Renderer&& other) = delete;
|
||||
Renderer(Renderer&& other) noexcept;
|
||||
Renderer& operator=(const Renderer& other) = delete;
|
||||
Renderer& operator=(Renderer&& other) = delete;
|
||||
Renderer& operator=(Renderer&& other) noexcept;
|
||||
|
||||
SDL_Renderer* Get() const;
|
||||
|
||||
|
@ -39,6 +39,16 @@ Texture::~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 {
|
||||
return texture_;
|
||||
}
|
||||
@ -63,8 +73,4 @@ void Texture::SetColorMod(Uint8 r, Uint8 g, Uint8 b) {
|
||||
throw Exception("SDL_SetTextureColorMod failed");
|
||||
}
|
||||
|
||||
void Texture::Swap(Texture& other) noexcept {
|
||||
std::swap(texture_, other.texture_);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -41,9 +41,9 @@ public:
|
||||
virtual ~Texture();
|
||||
|
||||
Texture(const Texture& other) = delete;
|
||||
Texture(Texture&& other) = delete;
|
||||
Texture(Texture&& other) noexcept;
|
||||
Texture& operator=(const Texture& other) = delete;
|
||||
Texture& operator=(Texture&& other) = delete;
|
||||
Texture& operator=(Texture&& other) noexcept;
|
||||
|
||||
SDL_Texture* Get() const;
|
||||
|
||||
@ -52,8 +52,6 @@ public:
|
||||
void SetBlendMode(SDL_BlendMode blendMode);
|
||||
void SetAlphaMod(Uint8 alpha = 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_);
|
||||
}
|
||||
|
||||
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 {
|
||||
return window_;
|
||||
}
|
||||
|
@ -37,9 +37,9 @@ public:
|
||||
virtual ~Window();
|
||||
|
||||
Window(const Window& other) = delete;
|
||||
Window(Window&& other) = delete;
|
||||
Window(Window&& other) noexcept;
|
||||
Window& operator=(const Window& other) = delete;
|
||||
Window& operator=(Window&& other) = delete;
|
||||
Window& operator=(Window&& other) noexcept;
|
||||
|
||||
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);
|
||||
|
||||
// Swap textures to copy recursively
|
||||
target1.Swap(target2);
|
||||
std::swap(target1, target2);
|
||||
}
|
||||
|
||||
// Draw result to screen
|
||||
|
Loading…
x
Reference in New Issue
Block a user