diff options
Diffstat (limited to 'src/3rdparty/angle/src/libGLESv2/renderer/d3d/TextureStorage.cpp')
-rw-r--r-- | src/3rdparty/angle/src/libGLESv2/renderer/d3d/TextureStorage.cpp | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d/TextureStorage.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/TextureStorage.cpp new file mode 100644 index 0000000000..dedd266c09 --- /dev/null +++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d/TextureStorage.cpp @@ -0,0 +1,51 @@ +// +// Copyright (c) 2002-2013 The ANGLE Project Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +// + +// TextureStorage.cpp: Shared members of abstract rx::TextureStorage class. + +#include "libGLESv2/renderer/d3d/TextureStorage.h" +#include "libGLESv2/renderer/d3d/TextureD3D.h" +#include "libGLESv2/renderer/Renderer.h" +#include "libGLESv2/Renderbuffer.h" +#include "libGLESv2/Texture.h" + +#include "common/debug.h" +#include "common/mathutil.h" + +namespace rx +{ + +unsigned int TextureStorage::mCurrentTextureSerial = 1; + +TextureStorage::TextureStorage() + : mTextureSerial(issueTextureSerial()), + mFirstRenderTargetSerial(0), + mRenderTargetSerialsLayerStride(0) +{} + +void TextureStorage::initializeSerials(unsigned int rtSerialsToReserve, unsigned int rtSerialsLayerStride) +{ + mFirstRenderTargetSerial = gl::RenderbufferStorage::issueSerials(rtSerialsToReserve); + mRenderTargetSerialsLayerStride = rtSerialsLayerStride; +} + +unsigned int TextureStorage::getRenderTargetSerial(const gl::ImageIndex &index) const +{ + unsigned int layerOffset = (index.hasLayer() ? (static_cast<unsigned int>(index.layerIndex) * mRenderTargetSerialsLayerStride) : 0); + return mFirstRenderTargetSerial + static_cast<unsigned int>(index.mipIndex) + layerOffset; +} + +unsigned int TextureStorage::getTextureSerial() const +{ + return mTextureSerial; +} + +unsigned int TextureStorage::issueTextureSerial() +{ + return mCurrentTextureSerial++; +} + +} |