Commit f61738a5 by Nicolas Capens

Rename lod offset to top level.

BUG=angle:596 Change-Id: Ic256445528d6587adcf0adfd8aaba5e47778988b Reviewed-on: https://chromium-review.googlesource.com/192055Tested-by: 's avatarNicolas Capens <nicolascapens@chromium.org> Reviewed-by: 's avatarShannon Woods <shannonwoods@chromium.org>
parent e47e7363
...@@ -217,16 +217,16 @@ bool Texture::isSwizzled() const ...@@ -217,16 +217,16 @@ bool Texture::isSwizzled() const
mSamplerState.swizzleAlpha != GL_ALPHA; mSamplerState.swizzleAlpha != GL_ALPHA;
} }
int Texture::getLodOffset() int Texture::getTopLevel()
{ {
rx::TextureStorageInterface *texture = getNativeTexture(); rx::TextureStorageInterface *texture = getNativeTexture();
return texture ? texture->getLodOffset() : 0; return texture ? texture->getTopLevel() : 0;
} }
void Texture::getSamplerState(SamplerState *sampler) void Texture::getSamplerState(SamplerState *sampler)
{ {
*sampler = mSamplerState; *sampler = mSamplerState;
sampler->lodOffset = getLodOffset(); sampler->lodOffset = getTopLevel();
} }
GLenum Texture::getUsage() const GLenum Texture::getUsage() const
......
...@@ -96,7 +96,7 @@ class Texture : public RefCountObject ...@@ -96,7 +96,7 @@ class Texture : public RefCountObject
GLenum getSwizzleBlue() const; GLenum getSwizzleBlue() const;
GLenum getSwizzleAlpha() const; GLenum getSwizzleAlpha() const;
bool isSwizzled() const; bool isSwizzled() const;
int getLodOffset(); int getTopLevel();
void getSamplerState(SamplerState *sampler); void getSamplerState(SamplerState *sampler);
GLenum getUsage() const; GLenum getUsage() const;
......
...@@ -52,9 +52,9 @@ unsigned int TextureStorageInterface::issueTextureSerial() ...@@ -52,9 +52,9 @@ unsigned int TextureStorageInterface::issueTextureSerial()
return mCurrentTextureSerial++; return mCurrentTextureSerial++;
} }
int TextureStorageInterface::getLodOffset() const int TextureStorageInterface::getTopLevel() const
{ {
return mInstance->getLodOffset(); return mInstance->getTopLevel();
} }
int TextureStorageInterface::getBaseLevel() const int TextureStorageInterface::getBaseLevel() const
......
...@@ -25,7 +25,7 @@ class TextureStorage ...@@ -25,7 +25,7 @@ class TextureStorage
TextureStorage() {}; TextureStorage() {};
virtual ~TextureStorage() {}; virtual ~TextureStorage() {};
virtual int getLodOffset() const = 0; virtual int getTopLevel() const = 0;
virtual bool isRenderTarget() const = 0; virtual bool isRenderTarget() const = 0;
virtual bool isManaged() const = 0; virtual bool isManaged() const = 0;
virtual int getBaseLevel() const = 0; virtual int getBaseLevel() const = 0;
...@@ -54,7 +54,7 @@ class TextureStorageInterface ...@@ -54,7 +54,7 @@ class TextureStorageInterface
unsigned int getTextureSerial() const; unsigned int getTextureSerial() const;
virtual int getLodOffset() const; virtual int getTopLevel() const;
virtual bool isRenderTarget() const; virtual bool isRenderTarget() const;
virtual bool isManaged() const; virtual bool isManaged() const;
virtual int getBaseLevel() const; virtual int getBaseLevel() const;
......
...@@ -48,7 +48,7 @@ bool TextureStorage11::SwizzleCacheValue::operator!=(const SwizzleCacheValue &ot ...@@ -48,7 +48,7 @@ bool TextureStorage11::SwizzleCacheValue::operator!=(const SwizzleCacheValue &ot
TextureStorage11::TextureStorage11(Renderer *renderer, int baseLevel, UINT bindFlags) TextureStorage11::TextureStorage11(Renderer *renderer, int baseLevel, UINT bindFlags)
: mBindFlags(bindFlags), : mBindFlags(bindFlags),
mLodOffset(0), mTopLevel(0),
mMipLevels(0), mMipLevels(0),
mBaseLevel(baseLevel), mBaseLevel(baseLevel),
mTextureFormat(DXGI_FORMAT_UNKNOWN), mTextureFormat(DXGI_FORMAT_UNKNOWN),
...@@ -96,9 +96,10 @@ UINT TextureStorage11::getBindFlags() const ...@@ -96,9 +96,10 @@ UINT TextureStorage11::getBindFlags() const
{ {
return mBindFlags; return mBindFlags;
} }
int TextureStorage11::getLodOffset() const
int TextureStorage11::getTopLevel() const
{ {
return mLodOffset; return mTopLevel;
} }
bool TextureStorage11::isRenderTarget() const bool TextureStorage11::isRenderTarget() const
...@@ -121,7 +122,7 @@ int TextureStorage11::getMaxLevel() const ...@@ -121,7 +122,7 @@ int TextureStorage11::getMaxLevel() const
int levels = 0; int levels = 0;
if (getBaseTexture()) if (getBaseTexture())
{ {
levels = mMipLevels - getLodOffset(); levels = mMipLevels - getTopLevel();
} }
return getBaseLevel() + levels; return getBaseLevel() + levels;
} }
...@@ -216,7 +217,7 @@ bool TextureStorage11::updateSubresourceLevel(ID3D11Resource *srcTexture, unsign ...@@ -216,7 +217,7 @@ bool TextureStorage11::updateSubresourceLevel(ID3D11Resource *srcTexture, unsign
copyArea.depth == texSize.depth; copyArea.depth == texSize.depth;
ID3D11Resource *dstTexture = getBaseTexture(); ID3D11Resource *dstTexture = getBaseTexture();
unsigned int dstSubresource = getSubresourceIndex(level + mLodOffset, layerTarget); unsigned int dstSubresource = getSubresourceIndex(level + mTopLevel, layerTarget);
ASSERT(dstTexture); ASSERT(dstTexture);
...@@ -355,14 +356,14 @@ TextureStorage11_2D::TextureStorage11_2D(Renderer *renderer, int baseLevel, int ...@@ -355,14 +356,14 @@ TextureStorage11_2D::TextureStorage11_2D(Renderer *renderer, int baseLevel, int
if (width > 0 && height > 0) if (width > 0 && height > 0)
{ {
// adjust size if needed for compressed textures // adjust size if needed for compressed textures
d3d11::MakeValidSize(false, mTextureFormat, &width, &height, &mLodOffset); d3d11::MakeValidSize(false, mTextureFormat, &width, &height, &mTopLevel);
ID3D11Device *device = mRenderer->getDevice(); ID3D11Device *device = mRenderer->getDevice();
D3D11_TEXTURE2D_DESC desc; D3D11_TEXTURE2D_DESC desc;
desc.Width = width; // Compressed texture size constraints? desc.Width = width; // Compressed texture size constraints?
desc.Height = height; desc.Height = height;
desc.MipLevels = ((levelCount() > 0) ? (levelCount() + mLodOffset) : 0); desc.MipLevels = ((levelCount() > 0) ? (levelCount() + mTopLevel) : 0);
desc.ArraySize = 1; desc.ArraySize = 1;
desc.Format = mTextureFormat; desc.Format = mTextureFormat;
desc.SampleDesc.Count = 1; desc.SampleDesc.Count = 1;
...@@ -519,7 +520,7 @@ ID3D11ShaderResourceView *TextureStorage11_2D::getSRV(const gl::SamplerState &sa ...@@ -519,7 +520,7 @@ ID3D11ShaderResourceView *TextureStorage11_2D::getSRV(const gl::SamplerState &sa
srvDesc.Format = (swizzleRequired ? mSwizzleShaderResourceFormat : mShaderResourceFormat); srvDesc.Format = (swizzleRequired ? mSwizzleShaderResourceFormat : mShaderResourceFormat);
srvDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D; srvDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D;
srvDesc.Texture2D.MipLevels = mipmapping ? (mMipLevels == 0 ? -1 : mMipLevels) : 1; srvDesc.Texture2D.MipLevels = mipmapping ? (mMipLevels == 0 ? -1 : mMipLevels) : 1;
srvDesc.Texture2D.MostDetailedMip = mLodOffset; srvDesc.Texture2D.MostDetailedMip = mTopLevel;
ID3D11Texture2D *sourceTexture = swizzleRequired ? getSwizzleTexture() : mTexture; ID3D11Texture2D *sourceTexture = swizzleRequired ? getSwizzleTexture() : mTexture;
HRESULT result = device->CreateShaderResourceView(sourceTexture, &srvDesc, resultSRV); HRESULT result = device->CreateShaderResourceView(sourceTexture, &srvDesc, resultSRV);
...@@ -553,7 +554,7 @@ ID3D11Texture2D *TextureStorage11_2D::getSwizzleTexture() ...@@ -553,7 +554,7 @@ ID3D11Texture2D *TextureStorage11_2D::getSwizzleTexture()
D3D11_TEXTURE2D_DESC desc; D3D11_TEXTURE2D_DESC desc;
desc.Width = mTextureWidth; desc.Width = mTextureWidth;
desc.Height = mTextureHeight; desc.Height = mTextureHeight;
desc.MipLevels = ((levelCount() > 0) ? (levelCount() + mLodOffset) : 0); desc.MipLevels = ((levelCount() > 0) ? (levelCount() + mTopLevel) : 0);
desc.ArraySize = 1; desc.ArraySize = 1;
desc.Format = mSwizzleTextureFormat; desc.Format = mSwizzleTextureFormat;
desc.SampleDesc.Count = 1; desc.SampleDesc.Count = 1;
...@@ -676,14 +677,14 @@ TextureStorage11_Cube::TextureStorage11_Cube(Renderer *renderer, int baseLevel, ...@@ -676,14 +677,14 @@ TextureStorage11_Cube::TextureStorage11_Cube(Renderer *renderer, int baseLevel,
{ {
// adjust size if needed for compressed textures // adjust size if needed for compressed textures
int height = size; int height = size;
d3d11::MakeValidSize(false, mTextureFormat, &size, &height, &mLodOffset); d3d11::MakeValidSize(false, mTextureFormat, &size, &height, &mTopLevel);
ID3D11Device *device = mRenderer->getDevice(); ID3D11Device *device = mRenderer->getDevice();
D3D11_TEXTURE2D_DESC desc; D3D11_TEXTURE2D_DESC desc;
desc.Width = size; desc.Width = size;
desc.Height = size; desc.Height = size;
desc.MipLevels = ((levelCount() > 0) ? (levelCount() + mLodOffset) : 0); desc.MipLevels = ((levelCount() > 0) ? (levelCount() + mTopLevel) : 0);
desc.ArraySize = 6; desc.ArraySize = 6;
desc.Format = mTextureFormat; desc.Format = mTextureFormat;
desc.SampleDesc.Count = 1; desc.SampleDesc.Count = 1;
...@@ -859,7 +860,7 @@ ID3D11ShaderResourceView *TextureStorage11_Cube::getSRV(const gl::SamplerState & ...@@ -859,7 +860,7 @@ ID3D11ShaderResourceView *TextureStorage11_Cube::getSRV(const gl::SamplerState &
d3d11::GetComponentType(mTextureFormat) == GL_UNSIGNED_INT) d3d11::GetComponentType(mTextureFormat) == GL_UNSIGNED_INT)
{ {
srvDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2DARRAY; srvDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2DARRAY;
srvDesc.Texture2DArray.MostDetailedMip = mLodOffset; srvDesc.Texture2DArray.MostDetailedMip = mTopLevel;
srvDesc.Texture2DArray.MipLevels = 1; srvDesc.Texture2DArray.MipLevels = 1;
srvDesc.Texture2DArray.FirstArraySlice = 0; srvDesc.Texture2DArray.FirstArraySlice = 0;
srvDesc.Texture2DArray.ArraySize = 6; srvDesc.Texture2DArray.ArraySize = 6;
...@@ -868,7 +869,7 @@ ID3D11ShaderResourceView *TextureStorage11_Cube::getSRV(const gl::SamplerState & ...@@ -868,7 +869,7 @@ ID3D11ShaderResourceView *TextureStorage11_Cube::getSRV(const gl::SamplerState &
{ {
srvDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURECUBE; srvDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURECUBE;
srvDesc.TextureCube.MipLevels = mipmapping ? (mMipLevels == 0 ? -1 : mMipLevels) : 1; srvDesc.TextureCube.MipLevels = mipmapping ? (mMipLevels == 0 ? -1 : mMipLevels) : 1;
srvDesc.TextureCube.MostDetailedMip = mLodOffset; srvDesc.TextureCube.MostDetailedMip = mTopLevel;
} }
ID3D11Texture2D *sourceTexture = swizzleRequired ? getSwizzleTexture() : mTexture; ID3D11Texture2D *sourceTexture = swizzleRequired ? getSwizzleTexture() : mTexture;
...@@ -903,7 +904,7 @@ ID3D11Texture2D *TextureStorage11_Cube::getSwizzleTexture() ...@@ -903,7 +904,7 @@ ID3D11Texture2D *TextureStorage11_Cube::getSwizzleTexture()
D3D11_TEXTURE2D_DESC desc; D3D11_TEXTURE2D_DESC desc;
desc.Width = mTextureWidth; desc.Width = mTextureWidth;
desc.Height = mTextureHeight; desc.Height = mTextureHeight;
desc.MipLevels = ((levelCount() > 0) ? (levelCount() + mLodOffset) : 0); desc.MipLevels = ((levelCount() > 0) ? (levelCount() + mTopLevel) : 0);
desc.ArraySize = 6; desc.ArraySize = 6;
desc.Format = mSwizzleTextureFormat; desc.Format = mSwizzleTextureFormat;
desc.SampleDesc.Count = 1; desc.SampleDesc.Count = 1;
...@@ -1027,7 +1028,7 @@ TextureStorage11_3D::TextureStorage11_3D(Renderer *renderer, int baseLevel, int ...@@ -1027,7 +1028,7 @@ TextureStorage11_3D::TextureStorage11_3D(Renderer *renderer, int baseLevel, int
if (width > 0 && height > 0 && depth > 0) if (width > 0 && height > 0 && depth > 0)
{ {
// adjust size if needed for compressed textures // adjust size if needed for compressed textures
d3d11::MakeValidSize(false, mTextureFormat, &width, &height, &mLodOffset); d3d11::MakeValidSize(false, mTextureFormat, &width, &height, &mTopLevel);
ID3D11Device *device = mRenderer->getDevice(); ID3D11Device *device = mRenderer->getDevice();
...@@ -1035,7 +1036,7 @@ TextureStorage11_3D::TextureStorage11_3D(Renderer *renderer, int baseLevel, int ...@@ -1035,7 +1036,7 @@ TextureStorage11_3D::TextureStorage11_3D(Renderer *renderer, int baseLevel, int
desc.Width = width; desc.Width = width;
desc.Height = height; desc.Height = height;
desc.Depth = depth; desc.Depth = depth;
desc.MipLevels = ((levelCount() > 0) ? (levelCount() + mLodOffset) : 0); desc.MipLevels = ((levelCount() > 0) ? (levelCount() + mTopLevel) : 0);
desc.Format = mTextureFormat; desc.Format = mTextureFormat;
desc.Usage = D3D11_USAGE_DEFAULT; desc.Usage = D3D11_USAGE_DEFAULT;
desc.BindFlags = getBindFlags(); desc.BindFlags = getBindFlags();
...@@ -1121,7 +1122,7 @@ ID3D11ShaderResourceView *TextureStorage11_3D::getSRV(const gl::SamplerState &sa ...@@ -1121,7 +1122,7 @@ ID3D11ShaderResourceView *TextureStorage11_3D::getSRV(const gl::SamplerState &sa
srvDesc.Format = (swizzleRequired ? mSwizzleShaderResourceFormat : mShaderResourceFormat); srvDesc.Format = (swizzleRequired ? mSwizzleShaderResourceFormat : mShaderResourceFormat);
srvDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE3D; srvDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE3D;
srvDesc.Texture3D.MipLevels = mipmapping ? (mMipLevels == 0 ? -1 : mMipLevels) : 1; srvDesc.Texture3D.MipLevels = mipmapping ? (mMipLevels == 0 ? -1 : mMipLevels) : 1;
srvDesc.Texture3D.MostDetailedMip = mLodOffset; srvDesc.Texture3D.MostDetailedMip = mTopLevel;
ID3D11Texture3D *sourceTexture = swizzleRequired ? getSwizzleTexture() : mTexture; ID3D11Texture3D *sourceTexture = swizzleRequired ? getSwizzleTexture() : mTexture;
HRESULT result = device->CreateShaderResourceView(sourceTexture, &srvDesc, resultSRV); HRESULT result = device->CreateShaderResourceView(sourceTexture, &srvDesc, resultSRV);
...@@ -1260,7 +1261,7 @@ ID3D11Texture3D *TextureStorage11_3D::getSwizzleTexture() ...@@ -1260,7 +1261,7 @@ ID3D11Texture3D *TextureStorage11_3D::getSwizzleTexture()
desc.Width = mTextureWidth; desc.Width = mTextureWidth;
desc.Height = mTextureHeight; desc.Height = mTextureHeight;
desc.Depth = mTextureDepth; desc.Depth = mTextureDepth;
desc.MipLevels = ((levelCount() > 0) ? (levelCount() + mLodOffset) : 0); desc.MipLevels = ((levelCount() > 0) ? (levelCount() + mTopLevel) : 0);
desc.Format = mSwizzleTextureFormat; desc.Format = mSwizzleTextureFormat;
desc.Usage = D3D11_USAGE_DEFAULT; desc.Usage = D3D11_USAGE_DEFAULT;
desc.BindFlags = D3D11_BIND_SHADER_RESOURCE | D3D11_BIND_RENDER_TARGET; desc.BindFlags = D3D11_BIND_SHADER_RESOURCE | D3D11_BIND_RENDER_TARGET;
...@@ -1379,14 +1380,14 @@ TextureStorage11_2DArray::TextureStorage11_2DArray(Renderer *renderer, int baseL ...@@ -1379,14 +1380,14 @@ TextureStorage11_2DArray::TextureStorage11_2DArray(Renderer *renderer, int baseL
if (width > 0 && height > 0 && depth > 0) if (width > 0 && height > 0 && depth > 0)
{ {
// adjust size if needed for compressed textures // adjust size if needed for compressed textures
d3d11::MakeValidSize(false, mTextureFormat, &width, &height, &mLodOffset); d3d11::MakeValidSize(false, mTextureFormat, &width, &height, &mTopLevel);
ID3D11Device *device = mRenderer->getDevice(); ID3D11Device *device = mRenderer->getDevice();
D3D11_TEXTURE2D_DESC desc; D3D11_TEXTURE2D_DESC desc;
desc.Width = width; desc.Width = width;
desc.Height = height; desc.Height = height;
desc.MipLevels = ((levelCount() > 0) ? (levelCount() + mLodOffset) : 0); desc.MipLevels = ((levelCount() > 0) ? (levelCount() + mTopLevel) : 0);
desc.ArraySize = depth; desc.ArraySize = depth;
desc.Format = mTextureFormat; desc.Format = mTextureFormat;
desc.SampleDesc.Count = 1; desc.SampleDesc.Count = 1;
...@@ -1473,7 +1474,7 @@ ID3D11ShaderResourceView *TextureStorage11_2DArray::getSRV(const gl::SamplerStat ...@@ -1473,7 +1474,7 @@ ID3D11ShaderResourceView *TextureStorage11_2DArray::getSRV(const gl::SamplerStat
D3D11_SHADER_RESOURCE_VIEW_DESC srvDesc; D3D11_SHADER_RESOURCE_VIEW_DESC srvDesc;
srvDesc.Format = (swizzleRequired ? mSwizzleShaderResourceFormat : mShaderResourceFormat); srvDesc.Format = (swizzleRequired ? mSwizzleShaderResourceFormat : mShaderResourceFormat);
srvDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2DARRAY; srvDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2DARRAY;
srvDesc.Texture2DArray.MostDetailedMip = mLodOffset; srvDesc.Texture2DArray.MostDetailedMip = mTopLevel;
srvDesc.Texture2DArray.MipLevels = mipmapping ? (mMipLevels == 0 ? -1 : mMipLevels) : 1; srvDesc.Texture2DArray.MipLevels = mipmapping ? (mMipLevels == 0 ? -1 : mMipLevels) : 1;
srvDesc.Texture2DArray.FirstArraySlice = 0; srvDesc.Texture2DArray.FirstArraySlice = 0;
srvDesc.Texture2DArray.ArraySize = mTextureDepth; srvDesc.Texture2DArray.ArraySize = mTextureDepth;
...@@ -1579,7 +1580,7 @@ ID3D11Texture2D *TextureStorage11_2DArray::getSwizzleTexture() ...@@ -1579,7 +1580,7 @@ ID3D11Texture2D *TextureStorage11_2DArray::getSwizzleTexture()
D3D11_TEXTURE2D_DESC desc; D3D11_TEXTURE2D_DESC desc;
desc.Width = mTextureWidth; desc.Width = mTextureWidth;
desc.Height = mTextureHeight; desc.Height = mTextureHeight;
desc.MipLevels = ((levelCount() > 0) ? (levelCount() + mLodOffset) : 0); desc.MipLevels = ((levelCount() > 0) ? (levelCount() + mTopLevel) : 0);
desc.ArraySize = mTextureDepth; desc.ArraySize = mTextureDepth;
desc.Format = mSwizzleTextureFormat; desc.Format = mSwizzleTextureFormat;
desc.SampleDesc.Count = 1; desc.SampleDesc.Count = 1;
......
...@@ -41,7 +41,7 @@ class TextureStorage11 : public TextureStorage ...@@ -41,7 +41,7 @@ class TextureStorage11 : public TextureStorage
virtual void generateMipmap(int level) {}; virtual void generateMipmap(int level) {};
virtual void generateMipmap(int face, int level) {}; virtual void generateMipmap(int face, int level) {};
virtual int getLodOffset() const; virtual int getTopLevel() const;
virtual bool isRenderTarget() const; virtual bool isRenderTarget() const;
virtual bool isManaged() const; virtual bool isManaged() const;
virtual int getBaseLevel() const; virtual int getBaseLevel() const;
...@@ -71,7 +71,7 @@ class TextureStorage11 : public TextureStorage ...@@ -71,7 +71,7 @@ class TextureStorage11 : public TextureStorage
virtual unsigned int getTextureLevelDepth(int mipLevel) const = 0; virtual unsigned int getTextureLevelDepth(int mipLevel) const = 0;
Renderer11 *mRenderer; Renderer11 *mRenderer;
int mLodOffset; int mTopLevel;
unsigned int mMipLevels; unsigned int mMipLevels;
int mBaseLevel; int mBaseLevel;
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
namespace rx namespace rx
{ {
TextureStorage9::TextureStorage9(Renderer *renderer, int baseLevel, DWORD usage) TextureStorage9::TextureStorage9(Renderer *renderer, int baseLevel, DWORD usage)
: mLodOffset(0), : mTopLevel(0),
mBaseLevel(baseLevel), mBaseLevel(baseLevel),
mRenderer(Renderer9::makeRenderer9(renderer)), mRenderer(Renderer9::makeRenderer9(renderer)),
mD3DUsage(usage), mD3DUsage(usage),
...@@ -79,9 +79,9 @@ DWORD TextureStorage9::getUsage() const ...@@ -79,9 +79,9 @@ DWORD TextureStorage9::getUsage() const
return mD3DUsage; return mD3DUsage;
} }
int TextureStorage9::getLodOffset() const int TextureStorage9::getTopLevel() const
{ {
return mLodOffset; return mTopLevel;
} }
int TextureStorage9::getBaseLevel() const int TextureStorage9::getBaseLevel() const
...@@ -91,7 +91,7 @@ int TextureStorage9::getBaseLevel() const ...@@ -91,7 +91,7 @@ int TextureStorage9::getBaseLevel() const
int TextureStorage9::getMaxLevel() const int TextureStorage9::getMaxLevel() const
{ {
return getBaseLevel() + (getBaseTexture() ? getBaseTexture()->GetLevelCount() - getLodOffset() : 0); return getBaseLevel() + (getBaseTexture() ? getBaseTexture()->GetLevelCount() - getTopLevel() : 0);
} }
TextureStorage9_2D::TextureStorage9_2D(Renderer *renderer, SwapChain9 *swapchain) TextureStorage9_2D::TextureStorage9_2D(Renderer *renderer, SwapChain9 *swapchain)
...@@ -115,8 +115,8 @@ TextureStorage9_2D::TextureStorage9_2D(Renderer *renderer, int baseLevel, int ma ...@@ -115,8 +115,8 @@ TextureStorage9_2D::TextureStorage9_2D(Renderer *renderer, int baseLevel, int ma
{ {
IDirect3DDevice9 *device = mRenderer->getDevice(); IDirect3DDevice9 *device = mRenderer->getDevice();
D3DFORMAT format = gl_d3d9::GetTextureFormat(internalformat, mRenderer); D3DFORMAT format = gl_d3d9::GetTextureFormat(internalformat, mRenderer);
d3d9::MakeValidSize(false, format, &width, &height, &mLodOffset); d3d9::MakeValidSize(false, format, &width, &height, &mTopLevel);
UINT creationLevels = (maxLevel ? maxLevel + mLodOffset : 0); UINT creationLevels = (maxLevel ? maxLevel + mTopLevel : 0);
HRESULT result = device->CreateTexture(width, height, creationLevels, getUsage(), format, getPool(), &mTexture, NULL); HRESULT result = device->CreateTexture(width, height, creationLevels, getUsage(), format, getPool(), &mTexture, NULL);
...@@ -150,11 +150,11 @@ IDirect3DSurface9 *TextureStorage9_2D::getSurfaceLevel(int level, bool dirty) ...@@ -150,11 +150,11 @@ IDirect3DSurface9 *TextureStorage9_2D::getSurfaceLevel(int level, bool dirty)
if (mTexture) if (mTexture)
{ {
HRESULT result = mTexture->GetSurfaceLevel(level + mLodOffset, &surface); HRESULT result = mTexture->GetSurfaceLevel(level + mTopLevel, &surface);
ASSERT(SUCCEEDED(result)); ASSERT(SUCCEEDED(result));
// With managed textures the driver needs to be informed of updates to the lower mipmap levels // With managed textures the driver needs to be informed of updates to the lower mipmap levels
if (level + mLodOffset != 0 && isManaged() && dirty) if (level + mTopLevel != 0 && isManaged() && dirty)
{ {
mTexture->AddDirtyRect(NULL); mTexture->AddDirtyRect(NULL);
} }
...@@ -215,8 +215,8 @@ TextureStorage9_Cube::TextureStorage9_Cube(Renderer *renderer, int baseLevel, in ...@@ -215,8 +215,8 @@ TextureStorage9_Cube::TextureStorage9_Cube(Renderer *renderer, int baseLevel, in
IDirect3DDevice9 *device = mRenderer->getDevice(); IDirect3DDevice9 *device = mRenderer->getDevice();
int height = size; int height = size;
D3DFORMAT format = gl_d3d9::GetTextureFormat(internalformat, mRenderer); D3DFORMAT format = gl_d3d9::GetTextureFormat(internalformat, mRenderer);
d3d9::MakeValidSize(false, format, &size, &height, &mLodOffset); d3d9::MakeValidSize(false, format, &size, &height, &mTopLevel);
UINT creationLevels = (maxLevel ? maxLevel + mLodOffset : 0); UINT creationLevels = (maxLevel ? maxLevel + mTopLevel : 0);
HRESULT result = device->CreateCubeTexture(size, creationLevels, getUsage(), format, getPool(), &mTexture, NULL); HRESULT result = device->CreateCubeTexture(size, creationLevels, getUsage(), format, getPool(), &mTexture, NULL);
...@@ -255,7 +255,7 @@ IDirect3DSurface9 *TextureStorage9_Cube::getCubeMapSurface(GLenum faceTarget, in ...@@ -255,7 +255,7 @@ IDirect3DSurface9 *TextureStorage9_Cube::getCubeMapSurface(GLenum faceTarget, in
if (mTexture) if (mTexture)
{ {
D3DCUBEMAP_FACES face = gl_d3d9::ConvertCubeFace(faceTarget); D3DCUBEMAP_FACES face = gl_d3d9::ConvertCubeFace(faceTarget);
HRESULT result = mTexture->GetCubeMapSurface(face, level + mLodOffset, &surface); HRESULT result = mTexture->GetCubeMapSurface(face, level + mTopLevel, &surface);
ASSERT(SUCCEEDED(result)); ASSERT(SUCCEEDED(result));
// With managed textures the driver needs to be informed of updates to the lower mipmap levels // With managed textures the driver needs to be informed of updates to the lower mipmap levels
......
...@@ -40,14 +40,14 @@ class TextureStorage9 : public TextureStorage ...@@ -40,14 +40,14 @@ class TextureStorage9 : public TextureStorage
virtual void generateMipmap(int level) {}; virtual void generateMipmap(int level) {};
virtual void generateMipmap(int face, int level) {}; virtual void generateMipmap(int face, int level) {};
virtual int getLodOffset() const; virtual int getTopLevel() const;
virtual bool isRenderTarget() const; virtual bool isRenderTarget() const;
virtual bool isManaged() const; virtual bool isManaged() const;
virtual int getBaseLevel() const; virtual int getBaseLevel() const;
virtual int getMaxLevel() const; virtual int getMaxLevel() const;
protected: protected:
int mLodOffset; int mTopLevel;
int mBaseLevel; int mBaseLevel;
Renderer9 *mRenderer; Renderer9 *mRenderer;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment