Merge "Fix opacity setup in FrameBuilder" into nyc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
5169c62c6c
@@ -522,7 +522,10 @@ static bool hasMergeableClip(const BakedOpState& state) {
|
||||
void FrameBuilder::deferBitmapOp(const BitmapOp& op) {
|
||||
BakedOpState* bakedState = tryBakeOpState(op);
|
||||
if (!bakedState) return; // quick rejected
|
||||
bakedState->setupOpacity(op.paint);
|
||||
|
||||
if (op.bitmap->isOpaque()) {
|
||||
bakedState->setupOpacity(op.paint);
|
||||
}
|
||||
|
||||
// Don't merge non-simply transformed or neg scale ops, SET_TEXTURE doesn't handle rotation
|
||||
// Don't merge A8 bitmaps - the paint's color isn't compared by mergeId, or in
|
||||
|
||||
@@ -298,7 +298,6 @@ RENDERTHREAD_TEST(FrameBuilder, avoidOverdraw_bitmaps) {
|
||||
class AvoidOverdrawBitmapsTestRenderer : public TestRendererBase {
|
||||
public:
|
||||
void onBitmapOp(const BitmapOp& op, const BakedOpState& state) override {
|
||||
EXPECT_LT(mIndex++, 2) << "Should be two bitmaps";
|
||||
switch(mIndex++) {
|
||||
case 0:
|
||||
EXPECT_EQ(opaqueBitmap.pixelRef(), op.bitmap->pixelRef());
|
||||
@@ -331,7 +330,7 @@ RENDERTHREAD_TEST(FrameBuilder, avoidOverdraw_bitmaps) {
|
||||
|
||||
AvoidOverdrawBitmapsTestRenderer renderer;
|
||||
frameBuilder.replayBakedOps<TestDispatcher>(renderer);
|
||||
EXPECT_EQ(2, renderer.getIndex()) << "Expect exactly one op";
|
||||
EXPECT_EQ(2, renderer.getIndex()) << "Expect exactly two ops";
|
||||
}
|
||||
|
||||
RENDERTHREAD_TEST(FrameBuilder, clippedMerging) {
|
||||
|
||||
Reference in New Issue
Block a user