// Copyright (C) 2012 Jérôme Leclercq // This file is part of the "Nazara Engine - Core module" // For conditions of distribution and use, see copyright notice in Config.hpp // http://www.easyrgb.com/index.php?X=MATH #include #include #include template NzBufferMapper::NzBufferMapper(T* buffer, nzBufferAccess access, unsigned int offset, unsigned int length) : m_buffer(buffer) { m_ptr = buffer->Map(access, offset, length); if (!m_ptr) NazaraError("Failed to map buffer"); ///TODO: Unexpected } template NzBufferMapper::NzBufferMapper(T& buffer, nzBufferAccess access, unsigned int offset, unsigned int length) : NzBufferMapper(&buffer, access, offset, length) { } template NzBufferMapper::NzBufferMapper(const T* buffer, nzBufferAccess access, unsigned int offset, unsigned int length) : m_buffer(buffer) { m_ptr = buffer->Map(access, offset, length); if (!m_ptr) NazaraError("Failed to map buffer"); ///TODO: Unexpected } template NzBufferMapper::NzBufferMapper(const T& buffer, nzBufferAccess access, unsigned int offset, unsigned int length) : NzBufferMapper(&buffer, access, offset, length) { } template NzBufferMapper::~NzBufferMapper() { if (m_buffer) m_buffer->Unmap(); } template const T* NzBufferMapper::GetBuffer() const { return m_buffer; } template void* NzBufferMapper::GetPointer() const { return m_ptr; } template void NzBufferMapper::Unmap() { m_buffer->Unmap(); m_buffer = nullptr; } #include