Hash :
856d9d4b
Author :
Date :
2014-09-18T15:08:49
Squash the TextureStorageInterface heirarchy. Since there are no longer any significant differences in the child classes of TextureStorageInterface, we can scrap the different implementations. This involves changing the function names of some Renderer functions which relied on overloading. BUG=angle:741 Change-Id: I074797e4ac0bf3ecf8fe4bddf84eaed28b1a2c23 Reviewed-on: https://chromium-review.googlesource.com/218315 Tested-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Geoff Lang <geofflang@chromium.org>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
//
// 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 TextureStorageInterface::mCurrentTextureSerial = 1;
TextureStorageInterface::TextureStorageInterface(TextureStorage *textureStorage, unsigned int rtSerialLayerStride)
: mTextureSerial(issueTextureSerial()),
mInstance(textureStorage),
mFirstRenderTargetSerial(gl::RenderbufferStorage::issueSerials(static_cast<unsigned int>(textureStorage->getLevelCount()) * rtSerialLayerStride)),
mRenderTargetSerialsLayerStride(rtSerialLayerStride)
{}
TextureStorageInterface::~TextureStorageInterface()
{
delete mInstance;
}
bool TextureStorageInterface::isRenderTarget() const
{
return mInstance->isRenderTarget();
}
bool TextureStorageInterface::isManaged() const
{
return mInstance->isManaged();
}
unsigned int TextureStorageInterface::getTextureSerial() const
{
return mTextureSerial;
}
unsigned int TextureStorageInterface::issueTextureSerial()
{
return mCurrentTextureSerial++;
}
int TextureStorageInterface::getTopLevel() const
{
return mInstance->getTopLevel();
}
int TextureStorageInterface::getLevelCount() const
{
return mInstance->getLevelCount();
}
unsigned int TextureStorageInterface::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;
}
}