package com.glview.hwui.op; import com.glview.graphics.Rect; import com.glview.graphics.drawable.ninepatch.NinePatch; import com.glview.hwui.GLCanvas; import com.glview.hwui.GLPaint; public class DrawPatchOp extends DrawOp { NinePatch mPatch; Rect mRect = new Rect(); public DrawPatchOp() { } public static DrawPatchOp obtain(NinePatch patch, Rect rect, GLPaint paint) { DrawPatchOp op = (DrawPatchOp) OpFactory.get().poll(DrawPatchOp.class); op.mPatch = patch; if (rect == null) { op.mRect.setEmpty(); } else { op.mRect.set(rect); } op.setPaint(paint); return op; } @Override void applyDraw(GLCanvas canvas) { canvas.drawPatch(mPatch, mRect, mPaint); } @Override protected void recycleInner() { super.recycleInner(); mPatch = null; } }