OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "cc/tiles/software_image_decode_controller.h" | 5 #include "cc/tiles/software_image_decode_controller.h" |
6 | 6 |
7 #include "cc/playback/draw_image.h" | 7 #include "cc/playback/draw_image.h" |
8 #include "cc/raster/tile_task.h" | 8 #include "cc/raster/tile_task.h" |
9 #include "cc/resources/resource_format.h" | 9 #include "cc/resources/resource_format.h" |
10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
(...skipping 619 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
630 sk_sp<SkImage> image = CreateImage(100, 100); | 630 sk_sp<SkImage> image = CreateImage(100, 100); |
631 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), | 631 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), |
632 quality, | 632 quality, |
633 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable)); | 633 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable)); |
634 scoped_refptr<TileTask> task; | 634 scoped_refptr<TileTask> task; |
635 bool need_unref = controller.GetTaskForImageAndRef( | 635 bool need_unref = controller.GetTaskForImageAndRef( |
636 draw_image, ImageDecodeController::TracingInfo(), &task); | 636 draw_image, ImageDecodeController::TracingInfo(), &task); |
637 EXPECT_TRUE(need_unref); | 637 EXPECT_TRUE(need_unref); |
638 EXPECT_TRUE(task); | 638 EXPECT_TRUE(task); |
639 | 639 |
640 task->WillSchedule(); | 640 // TODO(prashant.n): Implement proper task life cycle. crbug.com/599863. |
641 task->ScheduleOnOriginThread(nullptr); | |
642 task->DidSchedule(); | |
643 task->RunOnWorkerThread(); | 641 task->RunOnWorkerThread(); |
644 | 642 |
645 scoped_refptr<TileTask> another_task; | 643 scoped_refptr<TileTask> another_task; |
646 need_unref = controller.GetTaskForImageAndRef( | 644 need_unref = controller.GetTaskForImageAndRef( |
647 draw_image, ImageDecodeController::TracingInfo(), &another_task); | 645 draw_image, ImageDecodeController::TracingInfo(), &another_task); |
648 EXPECT_TRUE(need_unref); | 646 EXPECT_TRUE(need_unref); |
649 EXPECT_FALSE(another_task); | 647 EXPECT_FALSE(another_task); |
650 | 648 |
651 task->WillComplete(); | 649 task->OnTaskCompleted(); |
652 task->CompleteOnOriginThread(nullptr); | |
653 task->DidComplete(); | |
654 | 650 |
655 controller.UnrefImage(draw_image); | 651 controller.UnrefImage(draw_image); |
656 controller.UnrefImage(draw_image); | 652 controller.UnrefImage(draw_image); |
657 } | 653 } |
658 | 654 |
659 TEST(SoftwareImageDecodeControllerTest, GetTaskForImageAlreadyPrerolled) { | 655 TEST(SoftwareImageDecodeControllerTest, GetTaskForImageAlreadyPrerolled) { |
660 TestSoftwareImageDecodeController controller; | 656 TestSoftwareImageDecodeController controller; |
661 bool is_decomposable = true; | 657 bool is_decomposable = true; |
662 SkFilterQuality quality = kLow_SkFilterQuality; | 658 SkFilterQuality quality = kLow_SkFilterQuality; |
663 | 659 |
664 sk_sp<SkImage> image = CreateImage(100, 100); | 660 sk_sp<SkImage> image = CreateImage(100, 100); |
665 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), | 661 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), |
666 quality, | 662 quality, |
667 CreateMatrix(SkSize::Make(1.f, 1.f), is_decomposable)); | 663 CreateMatrix(SkSize::Make(1.f, 1.f), is_decomposable)); |
668 scoped_refptr<TileTask> task; | 664 scoped_refptr<TileTask> task; |
669 bool need_unref = controller.GetTaskForImageAndRef( | 665 bool need_unref = controller.GetTaskForImageAndRef( |
670 draw_image, ImageDecodeController::TracingInfo(), &task); | 666 draw_image, ImageDecodeController::TracingInfo(), &task); |
671 EXPECT_TRUE(need_unref); | 667 EXPECT_TRUE(need_unref); |
672 EXPECT_TRUE(task); | 668 EXPECT_TRUE(task); |
673 | 669 |
674 task->WillSchedule(); | |
675 task->ScheduleOnOriginThread(nullptr); | |
676 task->DidSchedule(); | |
677 task->RunOnWorkerThread(); | 670 task->RunOnWorkerThread(); |
678 | 671 |
679 scoped_refptr<TileTask> another_task; | 672 scoped_refptr<TileTask> another_task; |
680 need_unref = controller.GetTaskForImageAndRef( | 673 need_unref = controller.GetTaskForImageAndRef( |
681 draw_image, ImageDecodeController::TracingInfo(), &another_task); | 674 draw_image, ImageDecodeController::TracingInfo(), &another_task); |
682 EXPECT_TRUE(need_unref); | 675 EXPECT_TRUE(need_unref); |
683 EXPECT_FALSE(another_task); | 676 EXPECT_FALSE(another_task); |
684 | 677 |
685 task->WillComplete(); | 678 task->OnTaskCompleted(); |
686 task->CompleteOnOriginThread(nullptr); | |
687 task->DidComplete(); | |
688 | 679 |
689 scoped_refptr<TileTask> third_task; | 680 scoped_refptr<TileTask> third_task; |
690 need_unref = controller.GetTaskForImageAndRef( | 681 need_unref = controller.GetTaskForImageAndRef( |
691 draw_image, ImageDecodeController::TracingInfo(), &third_task); | 682 draw_image, ImageDecodeController::TracingInfo(), &third_task); |
692 EXPECT_TRUE(need_unref); | 683 EXPECT_TRUE(need_unref); |
693 EXPECT_FALSE(third_task); | 684 EXPECT_FALSE(third_task); |
694 | 685 |
695 controller.UnrefImage(draw_image); | 686 controller.UnrefImage(draw_image); |
696 controller.UnrefImage(draw_image); | 687 controller.UnrefImage(draw_image); |
697 controller.UnrefImage(draw_image); | 688 controller.UnrefImage(draw_image); |
698 } | 689 } |
699 | 690 |
700 TEST(SoftwareImageDecodeControllerTest, GetTaskForImageCanceledGetsNewTask) { | 691 TEST(SoftwareImageDecodeControllerTest, GetTaskForImageCanceledGetsNewTask) { |
701 TestSoftwareImageDecodeController controller; | 692 TestSoftwareImageDecodeController controller; |
702 bool is_decomposable = true; | 693 bool is_decomposable = true; |
703 SkFilterQuality quality = kHigh_SkFilterQuality; | 694 SkFilterQuality quality = kHigh_SkFilterQuality; |
704 | 695 |
705 sk_sp<SkImage> image = CreateImage(100, 100); | 696 sk_sp<SkImage> image = CreateImage(100, 100); |
706 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), | 697 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), |
707 quality, | 698 quality, |
708 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable)); | 699 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable)); |
709 scoped_refptr<TileTask> task; | 700 scoped_refptr<TileTask> task; |
710 bool need_unref = controller.GetTaskForImageAndRef( | 701 bool need_unref = controller.GetTaskForImageAndRef( |
711 draw_image, ImageDecodeController::TracingInfo(), &task); | 702 draw_image, ImageDecodeController::TracingInfo(), &task); |
712 EXPECT_TRUE(need_unref); | 703 EXPECT_TRUE(need_unref); |
713 EXPECT_TRUE(task); | 704 EXPECT_TRUE(task); |
714 | 705 |
715 task->WillSchedule(); | |
716 task->ScheduleOnOriginThread(nullptr); | |
717 task->DidSchedule(); | |
718 | |
719 scoped_refptr<TileTask> another_task; | 706 scoped_refptr<TileTask> another_task; |
720 need_unref = controller.GetTaskForImageAndRef( | 707 need_unref = controller.GetTaskForImageAndRef( |
721 draw_image, ImageDecodeController::TracingInfo(), &another_task); | 708 draw_image, ImageDecodeController::TracingInfo(), &another_task); |
722 EXPECT_TRUE(need_unref); | 709 EXPECT_TRUE(need_unref); |
723 EXPECT_TRUE(another_task.get() == task.get()); | 710 EXPECT_TRUE(another_task.get() == task.get()); |
724 | 711 |
725 // Didn't run the task, complete it (it was canceled). | 712 // Didn't run the task, complete it (it was canceled). |
726 task->WillComplete(); | 713 task->OnTaskCompleted(); |
727 task->CompleteOnOriginThread(nullptr); | |
728 task->DidComplete(); | |
729 | 714 |
730 // Fully cancel everything (so the raster would unref things). | 715 // Fully cancel everything (so the raster would unref things). |
731 controller.UnrefImage(draw_image); | 716 controller.UnrefImage(draw_image); |
732 controller.UnrefImage(draw_image); | 717 controller.UnrefImage(draw_image); |
733 | 718 |
734 // Here a new task is created. | 719 // Here a new task is created. |
735 scoped_refptr<TileTask> third_task; | 720 scoped_refptr<TileTask> third_task; |
736 need_unref = controller.GetTaskForImageAndRef( | 721 need_unref = controller.GetTaskForImageAndRef( |
737 draw_image, ImageDecodeController::TracingInfo(), &third_task); | 722 draw_image, ImageDecodeController::TracingInfo(), &third_task); |
738 EXPECT_TRUE(need_unref); | 723 EXPECT_TRUE(need_unref); |
(...skipping 12 matching lines...) Expand all Loading... |
751 sk_sp<SkImage> image = CreateImage(100, 100); | 736 sk_sp<SkImage> image = CreateImage(100, 100); |
752 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), | 737 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), |
753 quality, | 738 quality, |
754 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable)); | 739 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable)); |
755 scoped_refptr<TileTask> task; | 740 scoped_refptr<TileTask> task; |
756 bool need_unref = controller.GetTaskForImageAndRef( | 741 bool need_unref = controller.GetTaskForImageAndRef( |
757 draw_image, ImageDecodeController::TracingInfo(), &task); | 742 draw_image, ImageDecodeController::TracingInfo(), &task); |
758 EXPECT_TRUE(need_unref); | 743 EXPECT_TRUE(need_unref); |
759 EXPECT_TRUE(task); | 744 EXPECT_TRUE(task); |
760 | 745 |
761 task->WillSchedule(); | |
762 task->ScheduleOnOriginThread(nullptr); | |
763 task->DidSchedule(); | |
764 | |
765 scoped_refptr<TileTask> another_task; | 746 scoped_refptr<TileTask> another_task; |
766 need_unref = controller.GetTaskForImageAndRef( | 747 need_unref = controller.GetTaskForImageAndRef( |
767 draw_image, ImageDecodeController::TracingInfo(), &another_task); | 748 draw_image, ImageDecodeController::TracingInfo(), &another_task); |
768 EXPECT_TRUE(need_unref); | 749 EXPECT_TRUE(need_unref); |
769 EXPECT_TRUE(another_task.get() == task.get()); | 750 EXPECT_TRUE(another_task.get() == task.get()); |
770 | 751 |
771 // Didn't run the task, complete it (it was canceled). | 752 // Didn't run the task, complete it (it was canceled). |
772 task->WillComplete(); | 753 task->OnTaskCompleted(); |
773 task->CompleteOnOriginThread(nullptr); | |
774 task->DidComplete(); | |
775 | 754 |
776 // Note that here, everything is reffed, but a new task is created. This is | 755 // Note that here, everything is reffed, but a new task is created. This is |
777 // possible with repeated schedule/cancel operations. | 756 // possible with repeated schedule/cancel operations. |
778 scoped_refptr<TileTask> third_task; | 757 scoped_refptr<TileTask> third_task; |
779 need_unref = controller.GetTaskForImageAndRef( | 758 need_unref = controller.GetTaskForImageAndRef( |
780 draw_image, ImageDecodeController::TracingInfo(), &third_task); | 759 draw_image, ImageDecodeController::TracingInfo(), &third_task); |
781 EXPECT_TRUE(need_unref); | 760 EXPECT_TRUE(need_unref); |
782 EXPECT_TRUE(third_task); | 761 EXPECT_TRUE(third_task); |
783 EXPECT_FALSE(third_task.get() == task.get()); | 762 EXPECT_FALSE(third_task.get() == task.get()); |
784 | 763 |
(...skipping 11 matching lines...) Expand all Loading... |
796 sk_sp<SkImage> image = CreateImage(100, 100); | 775 sk_sp<SkImage> image = CreateImage(100, 100); |
797 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), | 776 DrawImage draw_image(image, SkIRect::MakeWH(image->width(), image->height()), |
798 quality, | 777 quality, |
799 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable)); | 778 CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable)); |
800 scoped_refptr<TileTask> task; | 779 scoped_refptr<TileTask> task; |
801 bool need_unref = controller.GetTaskForImageAndRef( | 780 bool need_unref = controller.GetTaskForImageAndRef( |
802 draw_image, ImageDecodeController::TracingInfo(), &task); | 781 draw_image, ImageDecodeController::TracingInfo(), &task); |
803 EXPECT_TRUE(need_unref); | 782 EXPECT_TRUE(need_unref); |
804 EXPECT_TRUE(task); | 783 EXPECT_TRUE(task); |
805 | 784 |
806 task->WillSchedule(); | |
807 task->ScheduleOnOriginThread(nullptr); | |
808 task->DidSchedule(); | |
809 | |
810 task->RunOnWorkerThread(); | 785 task->RunOnWorkerThread(); |
811 | 786 |
812 task->WillComplete(); | 787 task->OnTaskCompleted(); |
813 task->CompleteOnOriginThread(nullptr); | |
814 task->DidComplete(); | |
815 | 788 |
816 DecodedDrawImage decoded_draw_image = | 789 DecodedDrawImage decoded_draw_image = |
817 controller.GetDecodedImageForDraw(draw_image); | 790 controller.GetDecodedImageForDraw(draw_image); |
818 EXPECT_TRUE(decoded_draw_image.image()); | 791 EXPECT_TRUE(decoded_draw_image.image()); |
819 EXPECT_EQ(50, decoded_draw_image.image()->width()); | 792 EXPECT_EQ(50, decoded_draw_image.image()->width()); |
820 EXPECT_EQ(50, decoded_draw_image.image()->height()); | 793 EXPECT_EQ(50, decoded_draw_image.image()->height()); |
821 EXPECT_FLOAT_EQ(0.5f, decoded_draw_image.scale_adjustment().width()); | 794 EXPECT_FLOAT_EQ(0.5f, decoded_draw_image.scale_adjustment().width()); |
822 EXPECT_FLOAT_EQ(0.5f, decoded_draw_image.scale_adjustment().height()); | 795 EXPECT_FLOAT_EQ(0.5f, decoded_draw_image.scale_adjustment().height()); |
823 EXPECT_EQ(kLow_SkFilterQuality, decoded_draw_image.filter_quality()); | 796 EXPECT_EQ(kLow_SkFilterQuality, decoded_draw_image.filter_quality()); |
824 EXPECT_FALSE(decoded_draw_image.is_scale_adjustment_identity()); | 797 EXPECT_FALSE(decoded_draw_image.is_scale_adjustment_identity()); |
(...skipping 12 matching lines...) Expand all Loading... |
837 sk_sp<SkImage> image = CreateImage(100, 100); | 810 sk_sp<SkImage> image = CreateImage(100, 100); |
838 DrawImage draw_image( | 811 DrawImage draw_image( |
839 image, SkIRect::MakeXYWH(20, 30, image->width(), image->height()), | 812 image, SkIRect::MakeXYWH(20, 30, image->width(), image->height()), |
840 quality, CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable)); | 813 quality, CreateMatrix(SkSize::Make(0.5f, 0.5f), is_decomposable)); |
841 scoped_refptr<TileTask> task; | 814 scoped_refptr<TileTask> task; |
842 bool need_unref = controller.GetTaskForImageAndRef( | 815 bool need_unref = controller.GetTaskForImageAndRef( |
843 draw_image, ImageDecodeController::TracingInfo(), &task); | 816 draw_image, ImageDecodeController::TracingInfo(), &task); |
844 EXPECT_TRUE(need_unref); | 817 EXPECT_TRUE(need_unref); |
845 EXPECT_TRUE(task); | 818 EXPECT_TRUE(task); |
846 | 819 |
847 task->WillSchedule(); | |
848 task->ScheduleOnOriginThread(nullptr); | |
849 task->DidSchedule(); | |
850 | |
851 task->RunOnWorkerThread(); | 820 task->RunOnWorkerThread(); |
852 | 821 |
853 task->WillComplete(); | 822 task->OnTaskCompleted(); |
854 task->CompleteOnOriginThread(nullptr); | |
855 task->DidComplete(); | |
856 | 823 |
857 DecodedDrawImage decoded_draw_image = | 824 DecodedDrawImage decoded_draw_image = |
858 controller.GetDecodedImageForDraw(draw_image); | 825 controller.GetDecodedImageForDraw(draw_image); |
859 EXPECT_TRUE(decoded_draw_image.image()); | 826 EXPECT_TRUE(decoded_draw_image.image()); |
860 EXPECT_EQ(40, decoded_draw_image.image()->width()); | 827 EXPECT_EQ(40, decoded_draw_image.image()->width()); |
861 EXPECT_EQ(35, decoded_draw_image.image()->height()); | 828 EXPECT_EQ(35, decoded_draw_image.image()->height()); |
862 EXPECT_FLOAT_EQ(0.5f, decoded_draw_image.scale_adjustment().width()); | 829 EXPECT_FLOAT_EQ(0.5f, decoded_draw_image.scale_adjustment().width()); |
863 EXPECT_FLOAT_EQ(0.5f, decoded_draw_image.scale_adjustment().height()); | 830 EXPECT_FLOAT_EQ(0.5f, decoded_draw_image.scale_adjustment().height()); |
864 EXPECT_EQ(kLow_SkFilterQuality, decoded_draw_image.filter_quality()); | 831 EXPECT_EQ(kLow_SkFilterQuality, decoded_draw_image.filter_quality()); |
865 EXPECT_FALSE(decoded_draw_image.is_scale_adjustment_identity()); | 832 EXPECT_FALSE(decoded_draw_image.is_scale_adjustment_identity()); |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
945 EXPECT_EQ(kLow_SkFilterQuality, decoded_draw_image.filter_quality()); | 912 EXPECT_EQ(kLow_SkFilterQuality, decoded_draw_image.filter_quality()); |
946 EXPECT_FALSE(decoded_draw_image.is_scale_adjustment_identity()); | 913 EXPECT_FALSE(decoded_draw_image.is_scale_adjustment_identity()); |
947 EXPECT_TRUE(decoded_draw_image.is_at_raster_decode()); | 914 EXPECT_TRUE(decoded_draw_image.is_at_raster_decode()); |
948 | 915 |
949 scoped_refptr<TileTask> task; | 916 scoped_refptr<TileTask> task; |
950 bool need_unref = controller.GetTaskForImageAndRef( | 917 bool need_unref = controller.GetTaskForImageAndRef( |
951 draw_image, ImageDecodeController::TracingInfo(), &task); | 918 draw_image, ImageDecodeController::TracingInfo(), &task); |
952 EXPECT_TRUE(need_unref); | 919 EXPECT_TRUE(need_unref); |
953 EXPECT_TRUE(task); | 920 EXPECT_TRUE(task); |
954 | 921 |
955 task->WillSchedule(); | |
956 task->ScheduleOnOriginThread(nullptr); | |
957 task->DidSchedule(); | |
958 | |
959 task->RunOnWorkerThread(); | 922 task->RunOnWorkerThread(); |
960 | 923 |
961 task->WillComplete(); | 924 task->OnTaskCompleted(); |
962 task->CompleteOnOriginThread(nullptr); | |
963 task->DidComplete(); | |
964 | 925 |
965 DecodedDrawImage another_decoded_draw_image = | 926 DecodedDrawImage another_decoded_draw_image = |
966 controller.GetDecodedImageForDraw(draw_image); | 927 controller.GetDecodedImageForDraw(draw_image); |
967 // This should get the new decoded/locked image, not the one we're using at | 928 // This should get the new decoded/locked image, not the one we're using at |
968 // raster. | 929 // raster. |
969 // TODO(vmpstr): We can possibly optimize this so that the decode simply moves | 930 // TODO(vmpstr): We can possibly optimize this so that the decode simply moves |
970 // the image to the right spot. | 931 // the image to the right spot. |
971 EXPECT_NE(decoded_draw_image.image()->uniqueID(), | 932 EXPECT_NE(decoded_draw_image.image()->uniqueID(), |
972 another_decoded_draw_image.image()->uniqueID()); | 933 another_decoded_draw_image.image()->uniqueID()); |
973 EXPECT_FALSE(another_decoded_draw_image.is_at_raster_decode()); | 934 EXPECT_FALSE(another_decoded_draw_image.is_at_raster_decode()); |
(...skipping 24 matching lines...) Expand all Loading... |
998 EXPECT_EQ(kLow_SkFilterQuality, decoded_draw_image.filter_quality()); | 959 EXPECT_EQ(kLow_SkFilterQuality, decoded_draw_image.filter_quality()); |
999 EXPECT_FALSE(decoded_draw_image.is_scale_adjustment_identity()); | 960 EXPECT_FALSE(decoded_draw_image.is_scale_adjustment_identity()); |
1000 EXPECT_TRUE(decoded_draw_image.is_at_raster_decode()); | 961 EXPECT_TRUE(decoded_draw_image.is_at_raster_decode()); |
1001 | 962 |
1002 scoped_refptr<TileTask> task; | 963 scoped_refptr<TileTask> task; |
1003 bool need_unref = controller.GetTaskForImageAndRef( | 964 bool need_unref = controller.GetTaskForImageAndRef( |
1004 draw_image, ImageDecodeController::TracingInfo(), &task); | 965 draw_image, ImageDecodeController::TracingInfo(), &task); |
1005 EXPECT_TRUE(need_unref); | 966 EXPECT_TRUE(need_unref); |
1006 EXPECT_TRUE(task); | 967 EXPECT_TRUE(task); |
1007 | 968 |
1008 task->WillSchedule(); | |
1009 task->ScheduleOnOriginThread(nullptr); | |
1010 task->DidSchedule(); | |
1011 | |
1012 // If we finish the draw here, then we will use it for the locked decode | 969 // If we finish the draw here, then we will use it for the locked decode |
1013 // instead of decoding again. | 970 // instead of decoding again. |
1014 controller.DrawWithImageFinished(draw_image, decoded_draw_image); | 971 controller.DrawWithImageFinished(draw_image, decoded_draw_image); |
1015 | 972 |
1016 task->RunOnWorkerThread(); | 973 task->RunOnWorkerThread(); |
1017 | 974 |
1018 task->WillComplete(); | 975 task->OnTaskCompleted(); |
1019 task->CompleteOnOriginThread(nullptr); | |
1020 task->DidComplete(); | |
1021 | 976 |
1022 DecodedDrawImage another_decoded_draw_image = | 977 DecodedDrawImage another_decoded_draw_image = |
1023 controller.GetDecodedImageForDraw(draw_image); | 978 controller.GetDecodedImageForDraw(draw_image); |
1024 // This should get the decoded/locked image which we originally decoded at | 979 // This should get the decoded/locked image which we originally decoded at |
1025 // raster time, since it's now in the locked cache. | 980 // raster time, since it's now in the locked cache. |
1026 EXPECT_EQ(decoded_draw_image.image()->uniqueID(), | 981 EXPECT_EQ(decoded_draw_image.image()->uniqueID(), |
1027 another_decoded_draw_image.image()->uniqueID()); | 982 another_decoded_draw_image.image()->uniqueID()); |
1028 EXPECT_FALSE(another_decoded_draw_image.is_at_raster_decode()); | 983 EXPECT_FALSE(another_decoded_draw_image.is_at_raster_decode()); |
1029 | 984 |
1030 controller.DrawWithImageFinished(draw_image, another_decoded_draw_image); | 985 controller.DrawWithImageFinished(draw_image, another_decoded_draw_image); |
(...skipping 407 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1438 EXPECT_EQ(decoded_draw_image_50.image(), decoded_draw_image_49.image()); | 1393 EXPECT_EQ(decoded_draw_image_50.image(), decoded_draw_image_49.image()); |
1439 | 1394 |
1440 controller.DrawWithImageFinished(draw_image_50, decoded_draw_image_50); | 1395 controller.DrawWithImageFinished(draw_image_50, decoded_draw_image_50); |
1441 controller.UnrefImage(draw_image_50); | 1396 controller.UnrefImage(draw_image_50); |
1442 controller.DrawWithImageFinished(draw_image_49, decoded_draw_image_49); | 1397 controller.DrawWithImageFinished(draw_image_49, decoded_draw_image_49); |
1443 controller.UnrefImage(draw_image_49); | 1398 controller.UnrefImage(draw_image_49); |
1444 } | 1399 } |
1445 | 1400 |
1446 } // namespace | 1401 } // namespace |
1447 } // namespace cc | 1402 } // namespace cc |
OLD | NEW |