diff options
| author | 2015-01-29 00:55:06 +0000 | |
|---|---|---|
| committer | 2015-01-29 00:55:07 +0000 | |
| commit | 1f08f377a4d0eb9e703423a3da0b8bb9d6f00338 (patch) | |
| tree | 1fd30e702540dcaacc4b51957d1f9964fd61c1c1 /libs/hwui/PatchCache.cpp | |
| parent | 2920f0f51092635330e5f011ec815571231b4c72 (diff) | |
| parent | 96a5c4c7bab6718524de7253da8309143ab48bef (diff) | |
Merge "Move more GL state management to RenderState and its directory"
Diffstat (limited to 'libs/hwui/PatchCache.cpp')
| -rw-r--r-- | libs/hwui/PatchCache.cpp | 23 | 
1 files changed, 14 insertions, 9 deletions
diff --git a/libs/hwui/PatchCache.cpp b/libs/hwui/PatchCache.cpp index eb88bc014ca0..af403b47e92b 100644 --- a/libs/hwui/PatchCache.cpp +++ b/libs/hwui/PatchCache.cpp @@ -23,6 +23,7 @@  #include "Patch.h"  #include "PatchCache.h"  #include "Properties.h" +#include "renderstate/RenderState.h"  namespace android {  namespace uirenderer { @@ -31,9 +32,13 @@ namespace uirenderer {  // Constructors/destructor  /////////////////////////////////////////////////////////////////////////////// -PatchCache::PatchCache(): -        mSize(0), mCache(LruCache<PatchDescription, Patch*>::kUnlimitedCapacity), -        mMeshBuffer(0), mFreeBlocks(nullptr), mGenerationId(0) { +PatchCache::PatchCache(RenderState& renderState) +        : mRenderState(renderState) +        , mSize(0) +        , mCache(LruCache<PatchDescription, Patch*>::kUnlimitedCapacity) +        , mMeshBuffer(0) +        , mFreeBlocks(nullptr) +        , mGenerationId(0) {      char property[PROPERTY_VALUE_MAX];      if (property_get(PROPERTY_PATCH_CACHE_SIZE, property, nullptr) > 0) {          INIT_LOGD("  Setting patch cache size to %skB", property); @@ -48,15 +53,15 @@ PatchCache::~PatchCache() {      clear();  } -void PatchCache::init(Caches& caches) { +void PatchCache::init() {      bool created = false;      if (!mMeshBuffer) {          glGenBuffers(1, &mMeshBuffer);          created = true;      } -    caches.bindMeshBuffer(mMeshBuffer); -    caches.resetVertexPointers(); +    mRenderState.meshState().bindMeshBuffer(mMeshBuffer); +    mRenderState.meshState().resetVertexPointers();      if (created) {          createVertexBuffer(); @@ -85,7 +90,7 @@ void PatchCache::clear() {      clearCache();      if (mMeshBuffer) { -        Caches::getInstance().unbindMeshBuffer(); +        mRenderState.meshState().unbindMeshBuffer();          glDeleteBuffers(1, &mMeshBuffer);          mMeshBuffer = 0;          mSize = 0; @@ -187,7 +192,7 @@ void PatchCache::createVertexBuffer() {   */  void PatchCache::setupMesh(Patch* newMesh, TextureVertex* vertices) {      // This call ensures the VBO exists and that it is bound -    init(Caches::getInstance()); +    init();      // If we're running out of space, let's clear the entire cache      uint32_t size = newMesh->getSize(); @@ -219,7 +224,7 @@ void PatchCache::setupMesh(Patch* newMesh, TextureVertex* vertices) {      // Copy the 9patch mesh in the VBO      newMesh->offset = (GLintptr) (block->offset); -    newMesh->textureOffset = newMesh->offset + gMeshTextureOffset; +    newMesh->textureOffset = newMesh->offset + kMeshTextureOffset;      glBufferSubData(GL_ARRAY_BUFFER, newMesh->offset, size, vertices);      // Remove the block since we've used it entirely  |