blob: 1c1723ddd0dad7c22de5be99c57784195acd786c [file] [log] [blame]
#include <iostream>
#include "Surface.h"
#include "SurfaceImpl.h"
Surface::Surface(const char* filePath)
: impl_(new SurfaceImpl(filePath)) {
}
Surface::Surface()
: impl_(nullptr) {
//Empty but explicitly provided to ensure unique_ptr
//works correctly with an incomplete type in the header
}
Surface::~Surface() {
//Empty but explicitly provided to ensure unique_ptr
//works correctly with an incomplete type in the header
}
Surface::Surface(const Surface& surface)
: impl_(new SurfaceImpl(*surface.impl_)) {
}
void Surface::setSurface(const char* filePath) {
impl_->setSurface(filePath);
}
Surface& Surface::operator=(Surface rhs) {
//Copy-swap idiom
swap(*this, rhs);
return *this;
}
void swap(Surface& lhs, Surface& rhs) {
std::swap(lhs.impl_, rhs.impl_);
}