Move where updateProperties is called
Change-Id: I27da448996019094c44487ce28c5689d098d6535
This commit is contained in:
@@ -1287,6 +1287,7 @@ public class GLRenderer extends HardwareRenderer {
|
||||
}
|
||||
|
||||
Trace.traceBegin(Trace.TRACE_TAG_VIEW, "drawDisplayList");
|
||||
nUpdateRenderNodeProperties(displayList.getNativeDisplayList());
|
||||
try {
|
||||
status |= canvas.drawDisplayList(displayList, mRedrawClip,
|
||||
RenderNode.FLAG_CLIP_CHILDREN);
|
||||
@@ -1466,6 +1467,8 @@ public class GLRenderer extends HardwareRenderer {
|
||||
|
||||
static native void nDestroyLayer(long layerPtr);
|
||||
|
||||
private static native void nUpdateRenderNodeProperties(long displayListPtr);
|
||||
|
||||
class DrawPerformanceDataProvider extends GraphDataProvider {
|
||||
private final int mGraphType;
|
||||
|
||||
|
||||
@@ -148,6 +148,13 @@ static void android_view_GLRenderer_setDisplayListData(JNIEnv* env, jobject claz
|
||||
displayList->setData(newData);
|
||||
}
|
||||
|
||||
static void android_view_GLRenderer_updateRenderNodeProperties(JNIEnv* env, jobject clazz,
|
||||
jlong renderNodePtr) {
|
||||
using namespace android::uirenderer;
|
||||
RenderNode* renderNode = reinterpret_cast<RenderNode*>(renderNodePtr);
|
||||
renderNode->updateProperties();
|
||||
}
|
||||
|
||||
#endif // USE_OPENGL_RENDERER
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
@@ -179,6 +186,7 @@ static JNINativeMethod gMethods[] = {
|
||||
{ "getSystemTime", "()J", (void*) android_view_GLRenderer_getSystemTime },
|
||||
{ "nDestroyLayer", "(J)V", (void*) android_view_GLRenderer_destroyLayer },
|
||||
{ "nSetDisplayListData", "(JJ)V", (void*) android_view_GLRenderer_setDisplayListData },
|
||||
{ "nUpdateRenderNodeProperties", "(J)V", (void*) android_view_GLRenderer_updateRenderNodeProperties },
|
||||
#endif
|
||||
|
||||
{ "setupShadersDiskCache", "(Ljava/lang/String;)V",
|
||||
|
||||
@@ -75,6 +75,7 @@ bool DeferredLayerUpdater::apply() {
|
||||
success = LayerRenderer::resizeLayer(mLayer, mWidth, mHeight);
|
||||
}
|
||||
mLayer->setBlend(mBlend);
|
||||
mDisplayList->updateProperties();
|
||||
mLayer->updateDeferred(mRenderer, mDisplayList,
|
||||
mDirtyRect.left, mDirtyRect.top, mDirtyRect.right, mDirtyRect.bottom);
|
||||
mDirtyRect.setEmpty();
|
||||
|
||||
@@ -200,7 +200,6 @@ void Layer::defer() {
|
||||
renderer->setupFrameState(dirtyRect.left, dirtyRect.top,
|
||||
dirtyRect.right, dirtyRect.bottom, !isBlend());
|
||||
|
||||
displayList->updateProperties();
|
||||
displayList->computeOrdering();
|
||||
displayList->defer(deferredState, 0);
|
||||
|
||||
|
||||
@@ -1919,7 +1919,6 @@ status_t OpenGLRenderer::drawDisplayList(RenderNode* displayList, Rect& dirty,
|
||||
// will be performed by the display list itself
|
||||
if (displayList && displayList->isRenderable()) {
|
||||
// compute 3d ordering
|
||||
displayList->updateProperties();
|
||||
displayList->computeOrdering();
|
||||
if (CC_UNLIKELY(mCaches.drawDeferDisabled)) {
|
||||
status = startFrame();
|
||||
|
||||
@@ -137,7 +137,7 @@ public:
|
||||
return properties().getHeight();
|
||||
}
|
||||
|
||||
void updateProperties();
|
||||
ANDROID_API void updateProperties();
|
||||
|
||||
private:
|
||||
typedef key_value_pair_t<float, DrawDisplayListOp*> ZDrawDisplayListOpPair;
|
||||
|
||||
@@ -392,6 +392,8 @@ void CanvasContext::drawDisplayList(RenderNode* displayList, Rect* dirty) {
|
||||
LOG_ALWAYS_FATAL_IF(!mCanvas || mEglSurface == EGL_NO_SURFACE,
|
||||
"drawDisplayList called on a context with no canvas or surface!");
|
||||
|
||||
displayList->updateProperties();
|
||||
|
||||
EGLint width, height;
|
||||
mGlobalContext->beginFrame(mEglSurface, &width, &height);
|
||||
if (width != mCanvas->getViewportWidth() || height != mCanvas->getViewportHeight()) {
|
||||
|
||||
Reference in New Issue
Block a user