mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
192c99a4f6
Summary: This optimizes node region searches in clipping cases, and does position calculation for drawCommands off of the UI thread. Reviewed By: ahmedre Differential Revision: D3665301
47 lines
1.4 KiB
Java
47 lines
1.4 KiB
Java
/**
|
|
* Copyright (c) 2015-present, Facebook, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under the BSD-style license found in the
|
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
*/
|
|
|
|
package com.facebook.react.flat;
|
|
|
|
import android.graphics.Canvas;
|
|
|
|
/**
|
|
* DrawCommand is an interface that shadow nodes need to implement to do the drawing.
|
|
* Instances of DrawCommand are created in background thread and passed to UI thread.
|
|
* Once a DrawCommand is shared with UI thread, it can no longer be mutated in background thread.
|
|
*/
|
|
public abstract class DrawCommand {
|
|
// used by StateBuilder, FlatViewGroup and FlatShadowNode
|
|
/* package */ static final DrawCommand[] EMPTY_ARRAY = new DrawCommand[0];
|
|
|
|
/**
|
|
* Performs drawing into the given canvas.
|
|
*
|
|
* @param parent The parent to get child information from, if needed
|
|
* @param canvas The canvas to draw into
|
|
*/
|
|
abstract void draw(FlatViewGroup parent, Canvas canvas);
|
|
|
|
/**
|
|
* Performs debug bounds drawing into the given canvas.
|
|
*
|
|
* @param parent The parent to get child information from, if needed
|
|
* @param canvas The canvas to draw into
|
|
*/
|
|
abstract void debugDraw(FlatViewGroup parent, Canvas canvas);
|
|
|
|
abstract float getLeft();
|
|
|
|
abstract float getTop();
|
|
|
|
abstract float getRight();
|
|
|
|
abstract float getBottom();
|
|
}
|