summaryrefslogtreecommitdiff
path: root/libs/hwui/Caches.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/hwui/Caches.h')
-rw-r--r--libs/hwui/Caches.h201
1 files changed, 0 insertions, 201 deletions
diff --git a/libs/hwui/Caches.h b/libs/hwui/Caches.h
deleted file mode 100644
index 97328324df04..000000000000
--- a/libs/hwui/Caches.h
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- * 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.
- */
-
-#pragma once
-
-#include "DeviceInfo.h"
-#include "Extensions.h"
-#include "FboCache.h"
-#include "GammaFontRenderer.h"
-#include "GradientCache.h"
-#include "PatchCache.h"
-#include "PathCache.h"
-#include "ProgramCache.h"
-#include "RenderBufferCache.h"
-#include "ResourceCache.h"
-#include "TessellationCache.h"
-#include "TextDropShadowCache.h"
-#include "TextureCache.h"
-#include "renderstate/PixelBufferState.h"
-#include "renderstate/TextureState.h"
-#include "thread/TaskManager.h"
-#include "thread/TaskProcessor.h"
-
-#include <memory>
-#include <vector>
-
-#include <GLES3/gl3.h>
-
-#include <utils/KeyedVector.h>
-
-#include <cutils/compiler.h>
-
-#include <SkPath.h>
-
-#include <vector>
-
-namespace android {
-namespace uirenderer {
-
-///////////////////////////////////////////////////////////////////////////////
-// Caches
-///////////////////////////////////////////////////////////////////////////////
-
-class RenderNode;
-class RenderState;
-
-class ANDROID_API Caches {
-public:
- static Caches& createInstance(RenderState& renderState) {
- LOG_ALWAYS_FATAL_IF(sInstance, "double create of Caches attempted");
- sInstance = new Caches(renderState);
- return *sInstance;
- }
-
- static Caches& getInstance() {
- LOG_ALWAYS_FATAL_IF(!sInstance, "instance not yet created");
- return *sInstance;
- }
-
- static bool hasInstance() { return sInstance != nullptr; }
-
-private:
- explicit Caches(RenderState& renderState);
- static Caches* sInstance;
-
-public:
- enum class FlushMode { Layers = 0, Moderate, Full };
-
- /**
- * Initialize caches.
- */
- bool init();
-
- bool isInitialized() { return mInitialized; }
-
- /**
- * Flush the cache.
- *
- * @param mode Indicates how much of the cache should be flushed
- */
- void flush(FlushMode mode);
-
- /**
- * Destroys all resources associated with this cache. This should
- * be called after a flush(FlushMode::Full).
- */
- void terminate();
-
- /**
- * Returns a non-premultiplied ARGB color for the specified
- * amount of overdraw (1 for 1x, 2 for 2x, etc.)
- */
- uint32_t getOverdrawColor(uint32_t amount) const;
-
- /**
- * Call this on each frame to ensure that garbage is deleted from
- * GPU memory.
- */
- void clearGarbage();
-
- /**
- * Can be used to delete a layer from a non EGL thread.
- */
- void deleteLayerDeferred(Layer* layer);
-
- /**
- * Returns the mesh used to draw regions. Calling this method will
- * bind a VBO of type GL_ELEMENT_ARRAY_BUFFER that contains the
- * indices for the region mesh.
- */
- TextureVertex* getRegionMesh();
-
- /**
- * Returns the GL RGBA internal format to use for the current device
- * If the device supports linear blending and needSRGB is true,
- * this function returns GL_SRGB8_ALPHA8, otherwise it returns GL_RGBA
- */
- constexpr GLint rgbaInternalFormat(bool needSRGB = true) const {
- return extensions().hasLinearBlending() && needSRGB ? GL_SRGB8_ALPHA8 : GL_RGBA;
- }
-
- /**
- * Displays the memory usage of each cache and the total sum.
- */
- void dumpMemoryUsage();
- void dumpMemoryUsage(String8& log);
-
- // Misc
- GLint maxTextureSize;
-
-public:
- TextureCache textureCache;
- RenderBufferCache renderBufferCache;
- GradientCache gradientCache;
- PatchCache patchCache;
- PathCache pathCache;
- ProgramCache programCache;
- TessellationCache tessellationCache;
- TextDropShadowCache dropShadowCache;
- FboCache fboCache;
-
- GammaFontRenderer fontRenderer;
-
- TaskManager tasks;
-
- bool gpuPixelBuffersEnabled;
-
- // Debug methods
- PFNGLINSERTEVENTMARKEREXTPROC eventMark;
- PFNGLPUSHGROUPMARKEREXTPROC startMark;
- PFNGLPOPGROUPMARKEREXTPROC endMark;
-
- void setProgram(const ProgramDescription& description);
- void setProgram(Program* program);
-
- const Extensions& extensions() const { return DeviceInfo::get()->extensions(); }
- Program& program() { return *mProgram; }
- PixelBufferState& pixelBufferState() { return *mPixelBufferState; }
- TextureState& textureState() { return *mTextureState; }
-
-private:
- void initExtensions();
- void initConstraints();
- void initStaticProperties();
-
- static void eventMarkNull(GLsizei length, const GLchar* marker) {}
- static void startMarkNull(GLsizei length, const GLchar* marker) {}
- static void endMarkNull() {}
-
- RenderState* mRenderState;
-
- // Used to render layers
- std::unique_ptr<TextureVertex[]> mRegionMesh;
-
- mutable Mutex mGarbageLock;
- std::vector<Layer*> mLayerGarbage;
-
- bool mInitialized;
-
- // TODO: move below to RenderState
- PixelBufferState* mPixelBufferState = nullptr;
- TextureState* mTextureState = nullptr;
- Program* mProgram = nullptr; // note: object owned by ProgramCache
-
-}; // class Caches
-
-}; // namespace uirenderer
-}; // namespace android