Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Various render task refactors to help with upcoming caching changes. #2663

Merged
merged 1 commit into from Apr 17, 2018

Commits on Apr 16, 2018

  1. Various render task refactors to help with upcoming caching changes.

    * request_render_task() now returns a handle to a render task
      cache entry, rather than an allocated texture cache item. This
      is more in line with how normal texture cache request work.
    
    * Allows the allocation to happen later in the frame (for example
      if the exact render task size is not yet known).
    
    * Allows storing more information about a cached render task
      than what a texture cache item stores (for example, a specific
      blend mode that is required).
    
    * Allows batching code to cheaply look up a cached render task
      entry by using a freelist instead of a hashmap. This will become
      more important as we start to cache render tasks that have
      larger / more complex cache keys.
    
    * Add an extra type parameter to freelist.rs to allow using a custom
      marker type. This avoids rustc errors related to Send or Sync
      not being implemented on free list handles with !Send or !Sync
      phantom data types.
    
    * Allow the size of a render task to be set to None initially, if
      it is not known.
    
    * Add a new render task call (prepare_for_render) which can be used
      by render tasks to prepare tasks that rely on glyphs and/or images
      in the resource cache to be resolved first. This can also be used
      to set the size of a render task before render target allocation,
      if the render task size is not known during initial visibility pass.
    gw3583 committed Apr 16, 2018
You can’t perform that action at this time.