#include <raster_thread_merger.h>
Public Member Functions | |
| void | MergeWithLease (size_t lease_term) |
| const fml::RefPtr< SharedThreadMerger > & | GetSharedRasterThreadMerger () const |
| void | UnMergeNowIfLastOne () |
| void | ExtendLeaseTo (size_t lease_term) |
| RasterThreadStatus | DecrementLease () |
| bool | IsMerged () |
| void | WaitUntilMerged () |
| bool | IsOnRasterizingThread () |
| bool | IsOnPlatformThread () const |
| void | Enable () |
| void | Disable () |
| bool | IsEnabled () |
| void | SetMergeUnmergeCallback (const fml::closure &callback) |
Public Member Functions inherited from fml::RefCountedThreadSafe< RasterThreadMerger > | |
| void | Release () const |
Public Member Functions inherited from fml::internal::RefCountedThreadSafeBase | |
| void | AddRef () const |
| bool | HasOneRef () const |
| void | AssertHasOneRef () const |
Static Public Member Functions | |
| static fml::RefPtr< fml::RasterThreadMerger > | CreateOrShareThreadMerger (const fml::RefPtr< fml::RasterThreadMerger > &parent_merger, TaskQueueId platform_id, TaskQueueId raster_id) |
Additional Inherited Members | |
Protected Member Functions inherited from fml::RefCountedThreadSafe< RasterThreadMerger > | |
| RefCountedThreadSafe () | |
| ~RefCountedThreadSafe () | |
Protected Member Functions inherited from fml::internal::RefCountedThreadSafeBase | |
| RefCountedThreadSafeBase () | |
| ~RefCountedThreadSafeBase () | |
| bool | Release () const |
| void | Adopt () |
This class is a client and proxy between the rasterizer and |SharedThreadMerger|. The multiple |RasterThreadMerger| instances with same owner_queue_id and same subsumed_queue_id share the same |SharedThreadMerger| instance. Whether they share the same inner instance is determined by |RasterThreadMergerCreateOrShareThreadMerger| method.
Definition at line 31 of file raster_thread_merger.h.
|
static |
Creates a new merger from parent, share the inside shared_merger member when the platform_queue_id and raster_queue_id are same, otherwise create a new shared_merger instance
Definition at line 40 of file raster_thread_merger.cc.
Referenced by flutter::Rasterizer::Setup(), fml::testing::TEST(), fml::testing::TEST(), fml::testing::TEST(), fml::testing::TEST(), and fml::testing::TEST().
| RasterThreadStatus fml::RasterThreadMerger::DecrementLease | ( | ) |
Definition at line 159 of file raster_thread_merger.cc.
References fml::SharedThreadMerger::DecrementLease(), fml::kRemainsMerged, fml::kRemainsUnmerged, and fml::kUnmergedNow.
| void fml::RasterThreadMerger::Disable | ( | ) |
Definition at line 128 of file raster_thread_merger.cc.
References fml::SharedThreadMerger::SetEnabledUnSafe().
Referenced by flutter::Rasterizer::DisableThreadMergerIfNeeded().
| void fml::RasterThreadMerger::Enable | ( | ) |
Definition at line 123 of file raster_thread_merger.cc.
References fml::SharedThreadMerger::SetEnabledUnSafe().
Referenced by flutter::Rasterizer::EnableThreadMergerIfNeeded().
| void fml::RasterThreadMerger::ExtendLeaseTo | ( | size_t | lease_term | ) |
Definition at line 106 of file raster_thread_merger.cc.
References fml::SharedThreadMerger::ExtendLeaseTo(), and FML_DCHECK.
| const fml::RefPtr< fml::SharedThreadMerger > & fml::RasterThreadMerger::GetSharedRasterThreadMerger | ( | ) | const |
Definition at line 35 of file raster_thread_merger.cc.
| bool fml::RasterThreadMerger::IsEnabled | ( | ) |
Definition at line 133 of file raster_thread_merger.cc.
Referenced by flutter::Rasterizer::Teardown().
| bool fml::RasterThreadMerger::IsMerged | ( | ) |
Definition at line 118 of file raster_thread_merger.cc.
Referenced by flutter::Rasterizer::Teardown().
| bool fml::RasterThreadMerger::IsOnPlatformThread | ( | ) | const |
Definition at line 92 of file raster_thread_merger.cc.
References fml::MessageLoop::GetCurrentTaskQueueId().
Referenced by IsOnRasterizingThread(), and WaitUntilMerged().
| bool fml::RasterThreadMerger::IsOnRasterizingThread | ( | ) |
Definition at line 96 of file raster_thread_merger.cc.
References IsOnPlatformThread().
Referenced by flutter::Rasterizer::Draw().
| void fml::RasterThreadMerger::MergeWithLease | ( | size_t | lease_term | ) |
Definition at line 54 of file raster_thread_merger.cc.
References FML_DCHECK, and fml::SharedThreadMerger::MergeWithLease().
| void fml::RasterThreadMerger::SetMergeUnmergeCallback | ( | const fml::closure & | callback | ) |
Definition at line 30 of file raster_thread_merger.cc.
References callback.
Referenced by flutter::Rasterizer::Setup(), and flutter::Rasterizer::Teardown().
| void fml::RasterThreadMerger::UnMergeNowIfLastOne | ( | ) |
Definition at line 77 of file raster_thread_merger.cc.
References fml::SharedThreadMerger::UnMergeNowIfLastOne().
Referenced by flutter::Rasterizer::Teardown().
| void fml::RasterThreadMerger::WaitUntilMerged | ( | ) |
Definition at line 150 of file raster_thread_merger.cc.
References FML_CHECK, and IsOnPlatformThread().