Flutter Engine
The Flutter Engine
|
#include <GrRenderTask.h>
Protected Types | |
enum class | ExpectedOutcome : bool { kTargetUnchanged , kTargetDirty } |
enum | Flags { kClosed_Flag = 0x01 , kDisowned_Flag = 0x02 , kSkippable_Flag = 0x04 , kAtlas_Flag = 0x08 , kBlocksReordering_Flag = 0x10 , kWasOutput_Flag = 0x20 , kTempMark_Flag = 0x40 } |
Protected Member Functions | |
SkDEBUGCODE (bool deferredProxiesAreInstantiated() const ;) void addTarget(GrDrawingManager * | |
void | addTarget (GrDrawingManager *dm, const GrSurfaceProxyView &view) |
virtual ExpectedOutcome | onMakeClosed (GrRecordingContext *, SkIRect *targetUpdateBounds)=0 |
void | setFlag (uint32_t flag) |
void | resetFlag (uint32_t flag) |
bool | isSetFlag (uint32_t flag) const |
void | setIndex (uint32_t index) |
uint32_t | getIndex () const |
Protected Attributes | |
sk_sp< GrSurfaceProxy > | |
skia_private::STArray< 1, sk_sp< GrSurfaceProxy > > | fTargets |
skia_private::TArray< GrTextureProxy *, true > | fDeferredProxies |
Private Member Functions | |
virtual bool | onIsUsed (GrSurfaceProxy *) const =0 |
virtual void | onMakeSkippable () |
virtual void | onPrePrepare (GrRecordingContext *) |
virtual void | onPrepare (GrOpFlushState *) |
virtual bool | onExecute (GrOpFlushState *flushState)=0 |
Friends | |
class | GrDrawingManager |
class | GrMockRenderTask |
Definition at line 31 of file GrRenderTask.h.
|
strongprotected |
Enumerator | |
---|---|
kTargetUnchanged | |
kTargetDirty |
Definition at line 170 of file GrRenderTask.h.
|
protected |
Enumerator | |
---|---|
kClosed_Flag | This task can't accept any more dependencies. |
kDisowned_Flag | This task is disowned by its GrDrawingManager. |
kSkippable_Flag | This task is skippable. |
kAtlas_Flag | This task is atlas. |
kBlocksReordering_Flag | No task can be reordered with respect to this task. |
kWasOutput_Flag | Flag for topological sorting. |
kTempMark_Flag | Flag for topological sorting. |
Definition at line 189 of file GrRenderTask.h.
GrRenderTask::GrRenderTask | ( | ) |
Definition at line 25 of file GrRenderTask.cpp.
void GrRenderTask::addDependenciesFromOtherTask | ( | GrRenderTask * | otherTask | ) |
Definition at line 116 of file GrRenderTask.cpp.
void GrRenderTask::addDependency | ( | GrDrawingManager * | drawingMgr, |
GrSurfaceProxy * | dependedOn, | ||
skgpu::Mipmapped | mipmapped, | ||
GrTextureResolveManager | textureResolveManager, | ||
const GrCaps & | caps | ||
) |
Definition at line 128 of file GrRenderTask.cpp.
|
inlineprotected |
Definition at line 166 of file GrRenderTask.h.
|
inlinevirtual |
Reimplemented in skgpu::ganesh::OpsTask.
Definition at line 109 of file GrRenderTask.h.
|
inline |
If true no other task should be reordered relative to this task.
Definition at line 73 of file GrRenderTask.h.
|
inline |
Definition at line 90 of file GrRenderTask.h.
|
inline |
Definition at line 91 of file GrRenderTask.h.
bool GrRenderTask::dependsOn | ( | const GrRenderTask * | dependedOn | ) | const |
Definition at line 254 of file GrRenderTask.cpp.
|
virtual |
Reimplemented in GrDDLTask.
Definition at line 30 of file GrRenderTask.cpp.
|
inlinevirtual |
Reimplemented in GrDDLTask, and skgpu::ganesh::OpsTask.
Definition at line 49 of file GrRenderTask.h.
|
inline |
Definition at line 42 of file GrRenderTask.h.
|
pure virtual |
Implemented in GrMockRenderTask.
|
inlineprotected |
Definition at line 218 of file GrRenderTask.h.
|
inline |
Definition at line 56 of file GrRenderTask.h.
bool GrRenderTask::isInstantiated | ( | ) | const |
Definition at line 289 of file GrRenderTask.cpp.
|
inlineprotected |
Definition at line 208 of file GrRenderTask.h.
|
inline |
Definition at line 70 of file GrRenderTask.h.
|
inline |
Definition at line 135 of file GrRenderTask.h.
void GrRenderTask::makeSkippable | ( | ) |
Make this task skippable. This must be used purely for optimization purposes at this point as not all tasks will actually skip their work. It would be better if we could detect tasks that can be skipped automatically. We'd need to support minimal flushes (i.e., only flush that which is required for SkSurfaces/SkImages) and the ability to detect "orphaned tasks" and clean them out from the DAG so they don't indefinitely accumulate. Finally, we'd probably have to track whether a proxy's backing store was imported or ever exported to the client in case the client is doing direct reads outside of Skia and thus may require tasks targeting the proxy to execute even if our DAG contains no reads.
Definition at line 46 of file GrRenderTask.cpp.
|
inline |
Definition at line 103 of file GrRenderTask.h.
|
privatepure virtual |
Implemented in GrMockRenderTask, and skgpu::ganesh::OpsTask.
|
privatepure virtual |
Implemented in GrMockRenderTask.
|
protectedpure virtual |
Implemented in GrMockRenderTask, and skgpu::ganesh::OpsTask.
|
inlineprivatevirtual |
Definition at line 267 of file GrRenderTask.h.
|
inlineprivatevirtual |
Reimplemented in skgpu::ganesh::OpsTask.
Definition at line 269 of file GrRenderTask.h.
|
inlineprivatevirtual |
Reimplemented in skgpu::ganesh::OpsTask.
Definition at line 268 of file GrRenderTask.h.
void GrRenderTask::prepare | ( | GrOpFlushState * | flushState | ) |
Definition at line 97 of file GrRenderTask.cpp.
|
inline |
Definition at line 38 of file GrRenderTask.h.
void GrRenderTask::replaceDependency | ( | const GrRenderTask * | toReplace, |
GrRenderTask * | replaceWith | ||
) |
void GrRenderTask::replaceDependent | ( | const GrRenderTask * | toReplace, |
GrRenderTask * | replaceWith | ||
) |
|
inlinevirtual |
|
inlineprotected |
Definition at line 204 of file GrRenderTask.h.
|
inlineprotected |
Definition at line 200 of file GrRenderTask.h.
|
inlineprotected |
Definition at line 212 of file GrRenderTask.h.
GrRenderTask::SK_DECLARE_INTERNAL_LLIST_INTERFACE | ( | GrRenderTask | ) |
|
protected |
GrRenderTask::SkDEBUGCODE | ( | ~GrRenderTask() override; | ) |
|
inline |
Definition at line 104 of file GrRenderTask.h.
|
inline |
Definition at line 102 of file GrRenderTask.h.
|
friend |
Definition at line 225 of file GrRenderTask.h.
|
friend |
Definition at line 226 of file GrRenderTask.h.
|
protected |
Definition at line 187 of file GrRenderTask.h.
|
protected |
Definition at line 182 of file GrRenderTask.h.
|
protected |
Definition at line 159 of file GrRenderTask.h.