diff options
author | Romain Guy <romainguy@google.com> | 2010-08-23 21:05:08 -0700 |
---|---|---|
committer | Romain Guy <romainguy@google.com> | 2010-08-24 17:18:14 -0700 |
commit | fb8b763f762ae21923c58d64caa729b012f40e05 (patch) | |
tree | 013792d41f32bff4dd35e6d53eebac711c513729 /libs/hwui/Caches.h | |
parent | a1f1174b396cda7bdff469a2e974a737600c5eb0 (diff) | |
download | frameworks_base-fb8b763f762ae21923c58d64caa729b012f40e05.zip frameworks_base-fb8b763f762ae21923c58d64caa729b012f40e05.tar.gz frameworks_base-fb8b763f762ae21923c58d64caa729b012f40e05.tar.bz2 |
Use only one GL context per process, share chaches.
Change-Id: Ieabaa25338d2f4b8d4fd90e7401ad6e7452eae11
Diffstat (limited to 'libs/hwui/Caches.h')
-rw-r--r-- | libs/hwui/Caches.h | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/libs/hwui/Caches.h b/libs/hwui/Caches.h new file mode 100644 index 0000000..0789d89 --- /dev/null +++ b/libs/hwui/Caches.h @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef ANDROID_UI_CACHES_H +#define ANDROID_UI_CACHES_H + +#define LOG_TAG "OpenGLRenderer" + +#include <utils/Singleton.h> + +#include "TextureCache.h" +#include "LayerCache.h" +#include "GradientCache.h" +#include "PatchCache.h" +#include "FontRenderer.h" +#include "ProgramCache.h" +#include "PathCache.h" +#include "TextDropShadowCache.h" + +namespace android { +namespace uirenderer { + +struct CacheLogger { + CacheLogger() { + LOGD("Creating caches"); + } +}; // struct CacheLogger + +class Caches: public Singleton<Caches> { + Caches(): Singleton<Caches>(), blend(false), lastSrcMode(GL_ZERO), + lastDstMode(GL_ZERO), currentProgram(NULL) { + dropShadowCache.setFontRenderer(fontRenderer); + } + + friend class Singleton<Caches>; + + CacheLogger logger; + +public: + bool blend; + GLenum lastSrcMode; + GLenum lastDstMode; + Program* currentProgram; + + TextureCache textureCache; + LayerCache layerCache; + GradientCache gradientCache; + ProgramCache programCache; + PathCache pathCache; + PatchCache patchCache; + TextDropShadowCache dropShadowCache; + FontRenderer fontRenderer; +}; // class Caches + +}; // namespace uirenderer + +using namespace uirenderer; +ANDROID_SINGLETON_STATIC_INSTANCE(Caches); + +}; // namespace android + +#endif // ANDROID_UI_CACHES_H |