Loading core/java/android/view/GLES20Canvas.java +19 −2 Original line number Diff line number Diff line Loading @@ -268,6 +268,24 @@ class GLES20Canvas extends HardwareCanvas { private static native void nFinish(int renderer); /** * Returns the size of the stencil buffer required by the underlying * implementation. * * @return The minimum number of bits the stencil buffer must. Always >= 0. * * @hide */ public static int getStencilSize() { return nGetStencilSize(); } private static native int nGetStencilSize(); /////////////////////////////////////////////////////////////////////////// // Functor /////////////////////////////////////////////////////////////////////////// @Override public boolean callDrawGLFunction(int drawGLFunction) { return nCallDrawGLFunction(mRenderer, drawGLFunction); Loading @@ -275,7 +293,6 @@ class GLES20Canvas extends HardwareCanvas { private static native boolean nCallDrawGLFunction(int renderer, int drawGLFunction); /////////////////////////////////////////////////////////////////////////// // Memory /////////////////////////////////////////////////////////////////////////// Loading core/java/android/view/HardwareRenderer.java +1 −1 Original line number Diff line number Diff line Loading @@ -1047,7 +1047,7 @@ public abstract class HardwareRenderer { EGL_BLUE_SIZE, 8, EGL_ALPHA_SIZE, 8, EGL_DEPTH_SIZE, 0, EGL_STENCIL_SIZE, 0, EGL_STENCIL_SIZE, GLES20Canvas.getStencilSize(), EGL_SURFACE_TYPE, EGL_WINDOW_BIT | (dirtyRegions ? EGL_SWAP_BEHAVIOR_PRESERVED_BIT : 0), EGL_NONE Loading core/jni/android_view_GLES20Canvas.cpp +10 −0 Original line number Diff line number Diff line Loading @@ -188,6 +188,14 @@ static void android_view_GLES20Canvas_finish(JNIEnv* env, jobject clazz, renderer->finish(); } static jint android_view_GLES20Canvas_getStencilSize(JNIEnv* env, jobject clazz) { return OpenGLRenderer::getStencilSize(); } // ---------------------------------------------------------------------------- // Functor // ---------------------------------------------------------------------------- static bool android_view_GLES20Canvas_callDrawGLFunction(JNIEnv* env, jobject clazz, OpenGLRenderer* renderer, Functor *functor) { android::uirenderer::Rect dirty; Loading Loading @@ -808,6 +816,8 @@ static JNINativeMethod gMethods[] = { { "nPrepareDirty", "(IIIIIZ)V", (void*) android_view_GLES20Canvas_prepareDirty }, { "nFinish", "(I)V", (void*) android_view_GLES20Canvas_finish }, { "nGetStencilSize", "()I", (void*) android_view_GLES20Canvas_getStencilSize }, { "nCallDrawGLFunction", "(II)Z", (void*) android_view_GLES20Canvas_callDrawGLFunction }, Loading docs/html/guide/topics/ui/how-android-draws.jd +1 −1 Original line number Diff line number Diff line Loading @@ -62,7 +62,7 @@ and each View is responsible for drawing itself. <p> The measure pass uses two classes to communicate dimensions. The {@link android.view.View.MeasureSpec} class is used by Views to tell their parents how they {@link android.view.ViewGroup.LayoutParams} class is used by Views to tell their parents how they want to be measured and positioned. The base LayoutParams class just describes how big the View wants to be for both width and height. For each dimension, it can specify one of:</p> Loading libs/hwui/OpenGLRenderer.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -127,6 +127,10 @@ OpenGLRenderer::~OpenGLRenderer() { // Setup /////////////////////////////////////////////////////////////////////////////// uint32_t OpenGLRenderer::getStencilSize() { return STENCIL_BUFFER_SIZE; } void OpenGLRenderer::setViewport(int width, int height) { mOrthoMatrix.loadOrtho(0, width, height, 0, -1, 1); Loading Loading
core/java/android/view/GLES20Canvas.java +19 −2 Original line number Diff line number Diff line Loading @@ -268,6 +268,24 @@ class GLES20Canvas extends HardwareCanvas { private static native void nFinish(int renderer); /** * Returns the size of the stencil buffer required by the underlying * implementation. * * @return The minimum number of bits the stencil buffer must. Always >= 0. * * @hide */ public static int getStencilSize() { return nGetStencilSize(); } private static native int nGetStencilSize(); /////////////////////////////////////////////////////////////////////////// // Functor /////////////////////////////////////////////////////////////////////////// @Override public boolean callDrawGLFunction(int drawGLFunction) { return nCallDrawGLFunction(mRenderer, drawGLFunction); Loading @@ -275,7 +293,6 @@ class GLES20Canvas extends HardwareCanvas { private static native boolean nCallDrawGLFunction(int renderer, int drawGLFunction); /////////////////////////////////////////////////////////////////////////// // Memory /////////////////////////////////////////////////////////////////////////// Loading
core/java/android/view/HardwareRenderer.java +1 −1 Original line number Diff line number Diff line Loading @@ -1047,7 +1047,7 @@ public abstract class HardwareRenderer { EGL_BLUE_SIZE, 8, EGL_ALPHA_SIZE, 8, EGL_DEPTH_SIZE, 0, EGL_STENCIL_SIZE, 0, EGL_STENCIL_SIZE, GLES20Canvas.getStencilSize(), EGL_SURFACE_TYPE, EGL_WINDOW_BIT | (dirtyRegions ? EGL_SWAP_BEHAVIOR_PRESERVED_BIT : 0), EGL_NONE Loading
core/jni/android_view_GLES20Canvas.cpp +10 −0 Original line number Diff line number Diff line Loading @@ -188,6 +188,14 @@ static void android_view_GLES20Canvas_finish(JNIEnv* env, jobject clazz, renderer->finish(); } static jint android_view_GLES20Canvas_getStencilSize(JNIEnv* env, jobject clazz) { return OpenGLRenderer::getStencilSize(); } // ---------------------------------------------------------------------------- // Functor // ---------------------------------------------------------------------------- static bool android_view_GLES20Canvas_callDrawGLFunction(JNIEnv* env, jobject clazz, OpenGLRenderer* renderer, Functor *functor) { android::uirenderer::Rect dirty; Loading Loading @@ -808,6 +816,8 @@ static JNINativeMethod gMethods[] = { { "nPrepareDirty", "(IIIIIZ)V", (void*) android_view_GLES20Canvas_prepareDirty }, { "nFinish", "(I)V", (void*) android_view_GLES20Canvas_finish }, { "nGetStencilSize", "()I", (void*) android_view_GLES20Canvas_getStencilSize }, { "nCallDrawGLFunction", "(II)Z", (void*) android_view_GLES20Canvas_callDrawGLFunction }, Loading
docs/html/guide/topics/ui/how-android-draws.jd +1 −1 Original line number Diff line number Diff line Loading @@ -62,7 +62,7 @@ and each View is responsible for drawing itself. <p> The measure pass uses two classes to communicate dimensions. The {@link android.view.View.MeasureSpec} class is used by Views to tell their parents how they {@link android.view.ViewGroup.LayoutParams} class is used by Views to tell their parents how they want to be measured and positioned. The base LayoutParams class just describes how big the View wants to be for both width and height. For each dimension, it can specify one of:</p> Loading
libs/hwui/OpenGLRenderer.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -127,6 +127,10 @@ OpenGLRenderer::~OpenGLRenderer() { // Setup /////////////////////////////////////////////////////////////////////////////// uint32_t OpenGLRenderer::getStencilSize() { return STENCIL_BUFFER_SIZE; } void OpenGLRenderer::setViewport(int width, int height) { mOrthoMatrix.loadOrtho(0, width, height, 0, -1, 1); Loading