diff options
author | 2013-02-05 19:50:46 +0000 | |
---|---|---|
committer | 2013-02-05 19:50:46 +0000 | |
commit | 3cb406bb88f5aa09cf9f5a9554b4b1314cf1a2ee (patch) | |
tree | 65c641a9f93913a6e131ebaf71aeea30f4d52827 /src/gpu/GrTexture.cpp | |
parent | 0ac6f168f15393a3213c1c95f8adc4434132dcb2 (diff) |
Implement support for origin-TopLeft render targets. Note that the default behaviour remains the same: textures default to origin-TopLeft, render targets default to origin-BottomLeft, and backend textures default to origin-BottomLeft. However, the caller can override the default by setting fOrigin in GrTextureDesc, GrBackendTextureDesc or GrBackendRenderTargetDesc.
Review URL: https://codereview.appspot.com/7230049
git-svn-id: http://skia.googlecode.com/svn/trunk@7594 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/gpu/GrTexture.cpp')
-rw-r--r-- | src/gpu/GrTexture.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/gpu/GrTexture.cpp b/src/gpu/GrTexture.cpp index 614d7711c2..4dea2a6d5f 100644 --- a/src/gpu/GrTexture.cpp +++ b/src/gpu/GrTexture.cpp @@ -165,14 +165,16 @@ GrResourceKey GrTexture::ComputeScratchKey(const GrTextureDesc& desc) { GrCacheID::Key idKey; // Instead of a client-provided key of the texture contents we create a key from the // descriptor. - GR_STATIC_ASSERT(sizeof(idKey) >= 12); + GR_STATIC_ASSERT(sizeof(idKey) >= 16); GrAssert(desc.fHeight < (1 << 16)); GrAssert(desc.fWidth < (1 << 16)); idKey.fData32[0] = (desc.fWidth) | (desc.fHeight << 16); idKey.fData32[1] = desc.fConfig | desc.fSampleCnt << 16; idKey.fData32[2] = desc.fFlags; - static const int kPadSize = sizeof(idKey) - 12; - memset(idKey.fData8 + 12, 0, kPadSize); + idKey.fData32[3] = desc.fOrigin; // Only needs 2 bits actually + static const int kPadSize = sizeof(idKey) - 16; + GR_STATIC_ASSERT(kPadSize >= 0); + memset(idKey.fData8 + 16, 0, kPadSize); GrCacheID cacheID(GrResourceKey::ScratchDomain(), idKey); return GrResourceKey(cacheID, texture_resource_type(), 0); |