Class RenderTask

java.lang.Object
icyllis.arc3d.core.RefCnt
icyllis.arc3d.engine.RenderTask
All Implemented Interfaces:
RefCounted
Direct Known Subclasses:
OpsTask, TextureResolveTask

@Deprecated public abstract class RenderTask extends RefCnt
Deprecated.
This class abstracts a task that targets a single SurfaceProxy, participates in the RenderTaskManager's DAG, and implements the execute(OpFlushState) method to modify its target proxy's contents. (e.g., an OpsTask that executes a command buffer, a TextureResolveTask that regenerates mipmaps, etc.)
  • Field Details

    • RESOLVE_FLAG_MSAA

      public static final int RESOLVE_FLAG_MSAA
      Deprecated.
      Indicates "resolutions" that need to be done on a surface before its pixels can be accessed. If both types of resolve are requested, the MSAA resolve will happen first.
      See Also:
    • RESOLVE_FLAG_MIPMAPS

      public static final int RESOLVE_FLAG_MIPMAPS
      Deprecated.
      Indicates "resolutions" that need to be done on a surface before its pixels can be accessed. If both types of resolve are requested, the MSAA resolve will happen first.
      See Also:
    • CLOSED_FLAG

      protected static final int CLOSED_FLAG
      Deprecated.
      See Also:
    • DETACHED_FLAG

      protected static final int DETACHED_FLAG
      Deprecated.
      See Also:
    • SKIPPABLE_FLAG

      protected static final int SKIPPABLE_FLAG
      Deprecated.
      See Also:
    • ATLAS_FLAG

      protected static final int ATLAS_FLAG
      Deprecated.
      See Also:
    • IN_RESULT_FLAG

      protected static final int IN_RESULT_FLAG
      Deprecated.
      See Also:
    • TEMP_MARK_FLAG

      protected static final int TEMP_MARK_FLAG
      Deprecated.
      See Also:
    • mTargets

      @SharedPtr protected final @SharedPtr List<SurfaceProxy> mTargets
      Deprecated.
    • mTaskManager

      protected RenderTaskManager mTaskManager
      Deprecated.
  • Constructor Details

    • RenderTask

      protected RenderTask(@Nonnull RenderTaskManager taskManager)
      Deprecated.
      Parameters:
      taskManager - the creating drawing manager
  • Method Details

    • getUniqueID

      public final int getUniqueID()
      Deprecated.
    • numTargets

      public final int numTargets()
      Deprecated.
    • getTarget

      public final SurfaceProxy getTarget(int index)
      Deprecated.
    • getTarget

      public final SurfaceProxy getTarget()
      Deprecated.
    • addTarget

      protected final void addTarget(@SharedPtr @SharedPtr SurfaceProxy surfaceProxy)
      Deprecated.
    • deallocate

      protected void deallocate()
      Deprecated.
      Description copied from class: RefCnt
      Override this method to invoke de-allocation of the underlying resource.
      Specified by:
      deallocate in class RefCnt
    • gatherSurfaceIntervals

      public void gatherSurfaceIntervals(SurfaceAllocator alloc)
      Deprecated.
    • prePrepare

      public void prePrepare(RecordingContext context)
      Deprecated.
      This method will be invoked at record-time to create pipeline information and pre-bake input data on a background thread.
    • prepare

      public void prepare(OpFlushState flushState)
      Deprecated.
      This method will be invoked at flush-time to create pipeline information and build input buffers.
    • execute

      public abstract boolean execute(OpFlushState flushState)
      Deprecated.
      This method will be invoked at flush-time to execute commands.
    • makeClosed

      public final void makeClosed(RecordingContext context)
      Deprecated.
    • onMakeClosed

      protected void onMakeClosed(RecordingContext context)
      Deprecated.
    • isClosed

      public final boolean isClosed()
      Deprecated.
    • detach

      public final void detach(RenderTaskManager taskManager)
      Deprecated.
      This method "detaches" all the SurfaceProxies this RenderTask modifies. In practice this just means telling the drawing manager to forget the relevant mappings from surface proxy to last modifying render task.
    • makeSkippable

      public final void makeSkippable()
      Deprecated.
      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.
    • onMakeSkippable

      protected void onMakeSkippable()
      Deprecated.
    • isSkippable

      public final boolean isSkippable()
      Deprecated.
    • addDependency

      public final void addDependency(SurfaceProxy dependency, int samplerState)
      Deprecated.
    • dependsOn

      public final boolean dependsOn(RenderTask dependency)
      Deprecated.
    • isInstantiated

      public final boolean isInstantiated()
      Deprecated.
    • toString

      public String toString()
      Deprecated.
      Overrides:
      toString in class Object