Loading libs/hwui/Android.mk +1 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ ifeq ($(USE_OPENGL_RENDERER),true) DisplayListLogBuffer.cpp \ DisplayListRenderer.cpp \ Dither.cpp \ Extensions.cpp \ FboCache.cpp \ GradientCache.cpp \ Layer.cpp \ Loading libs/hwui/Caches.cpp +5 −5 Original line number Diff line number Diff line Loading @@ -47,7 +47,7 @@ namespace uirenderer { // Constructors/destructor /////////////////////////////////////////////////////////////////////////////// Caches::Caches(): Singleton<Caches>(), mInitialized(false) { Caches::Caches(): Singleton<Caches>(), mExtensions(Extensions::getInstance()), mInitialized(false) { init(); initFont(); initExtensions(); Loading Loading @@ -100,7 +100,7 @@ void Caches::initFont() { } void Caches::initExtensions() { if (extensions.hasDebugMarker()) { if (mExtensions.hasDebugMarker()) { eventMark = glInsertEventMarkerEXT; startMark = glPushGroupMarkerEXT; endMark = glPopGroupMarkerEXT; Loading @@ -110,7 +110,7 @@ void Caches::initExtensions() { endMark = endMarkNull; } if (extensions.hasDebugLabel()) { if (mExtensions.hasDebugLabel()) { setLabel = glLabelObjectEXT; getLabel = glGetObjectLabelEXT; } else { Loading Loading @@ -470,13 +470,13 @@ void Caches::resetScissor() { /////////////////////////////////////////////////////////////////////////////// void Caches::startTiling(GLuint x, GLuint y, GLuint width, GLuint height, bool discard) { if (extensions.hasTiledRendering() && !debugOverdraw) { if (mExtensions.hasTiledRendering() && !debugOverdraw) { glStartTilingQCOM(x, y, width, height, (discard ? GL_NONE : GL_COLOR_BUFFER_BIT0_QCOM)); } } void Caches::endTiling() { if (extensions.hasTiledRendering() && !debugOverdraw) { if (mExtensions.hasTiledRendering() && !debugOverdraw) { glEndTilingQCOM(GL_COLOR_BUFFER_BIT0_QCOM); } } Loading libs/hwui/Caches.h +2 −4 Original line number Diff line number Diff line Loading @@ -25,7 +25,6 @@ #include <cutils/compiler.h> #include "Extensions.h" #include "FontRenderer.h" #include "GammaFontRenderer.h" #include "TextureCache.h" Loading Loading @@ -243,9 +242,6 @@ public: // VBO to draw with GLuint meshBuffer; // GL extensions Extensions extensions; // Misc GLint maxTextureSize; bool debugLayersUpdates; Loading Loading @@ -311,6 +307,8 @@ private: GLint mScissorWidth; GLint mScissorHeight; Extensions& mExtensions; // Used to render layers TextureVertex* mRegionMesh; GLuint mRegionMeshIndices; Loading libs/hwui/Debug.h +3 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,9 @@ // Turn on to display info about layers #define DEBUG_LAYERS 0 // Turn on to make stencil operations easier to debug #define DEBUG_STENCIL 0 // Turn on to display debug info about 9patch objects #define DEBUG_PATCHES 0 // Turn on to "explode" 9patch objects Loading libs/hwui/Extensions.cpp 0 → 100644 +87 −0 Original line number Diff line number Diff line /* * Copyright (C) 2013 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. */ #include "Debug.h" #include "Extensions.h" namespace android { using namespace uirenderer; ANDROID_SINGLETON_STATIC_INSTANCE(Extensions); namespace uirenderer { /////////////////////////////////////////////////////////////////////////////// // Defines /////////////////////////////////////////////////////////////////////////////// // Debug #if DEBUG_EXTENSIONS #define EXT_LOGD(...) ALOGD(__VA_ARGS__) #else #define EXT_LOGD(...) #endif /////////////////////////////////////////////////////////////////////////////// // Constructors /////////////////////////////////////////////////////////////////////////////// Extensions::Extensions(): Singleton<Extensions>() { const char* buffer = (const char*) glGetString(GL_EXTENSIONS); const char* current = buffer; const char* head = current; EXT_LOGD("Available GL extensions:"); do { head = strchr(current, ' '); String8 s(current, head ? head - current : strlen(current)); if (s.length()) { mExtensionList.add(s); EXT_LOGD(" %s", s.string()); } current = head + 1; } while (head); mHasNPot = hasExtension("GL_OES_texture_npot"); mHasFramebufferFetch = hasExtension("GL_NV_shader_framebuffer_fetch"); mHasDiscardFramebuffer = hasExtension("GL_EXT_discard_framebuffer"); mHasDebugMarker = hasExtension("GL_EXT_debug_marker"); mHasDebugLabel = hasExtension("GL_EXT_debug_label"); mHasTiledRendering = hasExtension("GL_QCOM_tiled_rendering"); mHas1BitStencil = hasExtension("GL_OES_stencil1"); mHas4BitStencil = hasExtension("GL_OES_stencil4"); mExtensions = strdup(buffer); } Extensions::~Extensions() { free(mExtensions); } /////////////////////////////////////////////////////////////////////////////// // Methods /////////////////////////////////////////////////////////////////////////////// bool Extensions::hasExtension(const char* extension) const { const String8 s(extension); return mExtensionList.indexOf(s) >= 0; } void Extensions::dump() const { ALOGD("Supported extensions:\n%s", mExtensions); } }; // namespace uirenderer }; // namespace android Loading
libs/hwui/Android.mk +1 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ ifeq ($(USE_OPENGL_RENDERER),true) DisplayListLogBuffer.cpp \ DisplayListRenderer.cpp \ Dither.cpp \ Extensions.cpp \ FboCache.cpp \ GradientCache.cpp \ Layer.cpp \ Loading
libs/hwui/Caches.cpp +5 −5 Original line number Diff line number Diff line Loading @@ -47,7 +47,7 @@ namespace uirenderer { // Constructors/destructor /////////////////////////////////////////////////////////////////////////////// Caches::Caches(): Singleton<Caches>(), mInitialized(false) { Caches::Caches(): Singleton<Caches>(), mExtensions(Extensions::getInstance()), mInitialized(false) { init(); initFont(); initExtensions(); Loading Loading @@ -100,7 +100,7 @@ void Caches::initFont() { } void Caches::initExtensions() { if (extensions.hasDebugMarker()) { if (mExtensions.hasDebugMarker()) { eventMark = glInsertEventMarkerEXT; startMark = glPushGroupMarkerEXT; endMark = glPopGroupMarkerEXT; Loading @@ -110,7 +110,7 @@ void Caches::initExtensions() { endMark = endMarkNull; } if (extensions.hasDebugLabel()) { if (mExtensions.hasDebugLabel()) { setLabel = glLabelObjectEXT; getLabel = glGetObjectLabelEXT; } else { Loading Loading @@ -470,13 +470,13 @@ void Caches::resetScissor() { /////////////////////////////////////////////////////////////////////////////// void Caches::startTiling(GLuint x, GLuint y, GLuint width, GLuint height, bool discard) { if (extensions.hasTiledRendering() && !debugOverdraw) { if (mExtensions.hasTiledRendering() && !debugOverdraw) { glStartTilingQCOM(x, y, width, height, (discard ? GL_NONE : GL_COLOR_BUFFER_BIT0_QCOM)); } } void Caches::endTiling() { if (extensions.hasTiledRendering() && !debugOverdraw) { if (mExtensions.hasTiledRendering() && !debugOverdraw) { glEndTilingQCOM(GL_COLOR_BUFFER_BIT0_QCOM); } } Loading
libs/hwui/Caches.h +2 −4 Original line number Diff line number Diff line Loading @@ -25,7 +25,6 @@ #include <cutils/compiler.h> #include "Extensions.h" #include "FontRenderer.h" #include "GammaFontRenderer.h" #include "TextureCache.h" Loading Loading @@ -243,9 +242,6 @@ public: // VBO to draw with GLuint meshBuffer; // GL extensions Extensions extensions; // Misc GLint maxTextureSize; bool debugLayersUpdates; Loading Loading @@ -311,6 +307,8 @@ private: GLint mScissorWidth; GLint mScissorHeight; Extensions& mExtensions; // Used to render layers TextureVertex* mRegionMesh; GLuint mRegionMeshIndices; Loading
libs/hwui/Debug.h +3 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,9 @@ // Turn on to display info about layers #define DEBUG_LAYERS 0 // Turn on to make stencil operations easier to debug #define DEBUG_STENCIL 0 // Turn on to display debug info about 9patch objects #define DEBUG_PATCHES 0 // Turn on to "explode" 9patch objects Loading
libs/hwui/Extensions.cpp 0 → 100644 +87 −0 Original line number Diff line number Diff line /* * Copyright (C) 2013 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. */ #include "Debug.h" #include "Extensions.h" namespace android { using namespace uirenderer; ANDROID_SINGLETON_STATIC_INSTANCE(Extensions); namespace uirenderer { /////////////////////////////////////////////////////////////////////////////// // Defines /////////////////////////////////////////////////////////////////////////////// // Debug #if DEBUG_EXTENSIONS #define EXT_LOGD(...) ALOGD(__VA_ARGS__) #else #define EXT_LOGD(...) #endif /////////////////////////////////////////////////////////////////////////////// // Constructors /////////////////////////////////////////////////////////////////////////////// Extensions::Extensions(): Singleton<Extensions>() { const char* buffer = (const char*) glGetString(GL_EXTENSIONS); const char* current = buffer; const char* head = current; EXT_LOGD("Available GL extensions:"); do { head = strchr(current, ' '); String8 s(current, head ? head - current : strlen(current)); if (s.length()) { mExtensionList.add(s); EXT_LOGD(" %s", s.string()); } current = head + 1; } while (head); mHasNPot = hasExtension("GL_OES_texture_npot"); mHasFramebufferFetch = hasExtension("GL_NV_shader_framebuffer_fetch"); mHasDiscardFramebuffer = hasExtension("GL_EXT_discard_framebuffer"); mHasDebugMarker = hasExtension("GL_EXT_debug_marker"); mHasDebugLabel = hasExtension("GL_EXT_debug_label"); mHasTiledRendering = hasExtension("GL_QCOM_tiled_rendering"); mHas1BitStencil = hasExtension("GL_OES_stencil1"); mHas4BitStencil = hasExtension("GL_OES_stencil4"); mExtensions = strdup(buffer); } Extensions::~Extensions() { free(mExtensions); } /////////////////////////////////////////////////////////////////////////////// // Methods /////////////////////////////////////////////////////////////////////////////// bool Extensions::hasExtension(const char* extension) const { const String8 s(extension); return mExtensionList.indexOf(s) >= 0; } void Extensions::dump() const { ALOGD("Supported extensions:\n%s", mExtensions); } }; // namespace uirenderer }; // namespace android