| Index: cc/README.md
|
| diff --git a/cc/README.md b/cc/README.md
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..2a18e21619fe72f9e77d1b44ce701fbd06ec3623
|
| --- /dev/null
|
| +++ b/cc/README.md
|
| @@ -0,0 +1,126 @@
|
| +# cc/
|
| +
|
| +This directory contains a compositor. Its clients include blink and the browser
|
| +UI.
|
| +
|
| +Design documents for the graphics stack can be found at
|
| +[chromium-graphics](https://www.chromium.org/developers/design-documents/chromium-graphics).
|
| +
|
| +## Glossaries
|
| +
|
| +### Stacked elements and stacking contexts
|
| +
|
| +### Active CompositorFrame
|
| +
|
| +### Active Tree
|
| +The set of layers and property trees that was/will be used to submit a
|
| +CompositorFrame from the layer compositor. Composited effects such as scrolling,
|
| +pinch, and animations are done by modifying the active tree, which allows for
|
| +producing and submitting a new CompositorFrame.
|
| +
|
| +### CompositorFrame
|
| +A set of RenderPasses (which are a list of DrawQuads) along with metadata.
|
| +Conceptually this is the instructions (transforms, texture ids, etc) for how to
|
| +draw an entire scene which will be presented in a surface.
|
| +
|
| +### CopyOutputRequest (or Copy Request)
|
| +A request for a texture (or bitmap) copy of some part of the compositor's
|
| +output. Such requests force the compositor to use a separate RenderPass for the
|
| +content to be copied, which allows it to do the copy operation once the
|
| +RenderPass has been drawn to.
|
| +
|
| +### ElementID
|
| +Chosen by cc's clients and can be used as a stable identifier across updates.
|
| +For example, blink uses ElementIDs as a stable id for the object (opaque to cc)
|
| +that is responsible for a composited animation. Some additional information in
|
| +[element_id.h](https://codesearch.chromium.org/chromium/src/cc/trees/element_id.h)
|
| +
|
| +### DirectRenderer
|
| +An abstraction that provides an API for the Display to draw a fully-aggregated
|
| +CompositorFrame to a physical output. Subclasses of it provide implementations
|
| +for various backends, currently GL or Software.
|
| +
|
| +### Layer
|
| +
|
| +### LayerImpl
|
| +
|
| +### LayerTree
|
| +
|
| +### Occlusion Culling
|
| +Avoiding work by skipping over things which are not visible due to being
|
| +occluded (hidden from sight by other opaque things in front of them). Most
|
| +commonly refers to skipping drawing (ie culling) of DrawQuads when other
|
| +DrawQuads will be in front and occluding them.
|
| +
|
| +### Property Trees
|
| +
|
| +### Display
|
| +A controller class that takes CompositorFrames for each surface and draws them
|
| +to a physical output.
|
| +
|
| +### Draw
|
| +Filling pixels in a physical output (technically could be to an offscreen
|
| +texture), but this is the final output of the display compositor.
|
| +
|
| +### DrawQuad
|
| +A unit of work for drawing. Each DrawQuad has its own texture id, transform,
|
| +offset, etc.
|
| +
|
| +### Shared Quad State
|
| +A shared set of states used by multiple draw quads. DrawQuads that are linked to
|
| +the same shared quad state will all use the same properties from it, with the
|
| +addition of things found on their individual DrawQuad structures.
|
| +
|
| +### Render Pass
|
| +A list of DrawQuads which will all be drawn together into the same render target
|
| +(either a texture or physical output). Most times all DrawQuads are part of a
|
| +single RenderPass. Additional RenderPasses are used for effects that require a
|
| +set of DrawQuads to be drawn together into a buffer first, with the effect
|
| +applied then to the buffer instead of each individual DrawQuad.
|
| +
|
| +### Render Surface
|
| +Synonym for RenderPass now. Historically part of the Layer tree data structures,
|
| +with a 1:1 mapping to RenderPasses. RenderSurfaceImpl is a legacy piece that
|
| +remains.
|
| +
|
| +### Surface
|
| +
|
| +### Record
|
| +
|
| +### Raster
|
| +
|
| +### Paint
|
| +
|
| +### Pending CompositorFrame
|
| +
|
| +### Pending Tree
|
| +The set of layers and property trees that is generated from a main frame (or
|
| +BeginMainFrame, or commit). The pending tree exists to do raster work in the
|
| +layer compositor without clobbering the active tree until it is done. This
|
| +allows the active tree to be used in the meantime.
|
| +
|
| +### Composite
|
| +To produce a single graphical output from multiple inputs. In practice, the
|
| +layer compositor does raster from recordings and manages memory, performs
|
| +composited effects such as scrolling, pinch, animations, producing a
|
| +CompositorFrame. The display compositor does an actual "composite" to draw the
|
| +final output into a single physical output.
|
| +
|
| +### Invalidation
|
| +
|
| +### Damage
|
| +
|
| +### Tiles
|
| +
|
| +### Prepare Tiles
|
| +Prioritize and schedule needed tiles for raster. This is the entry point to a
|
| +system that converts painting (raster sources / recording sources) into
|
| +rasterized resources that live on tiles. This also kicks off any dependent image
|
| +decodes for images that need to be decode for the raster to take place.
|
| +
|
| +### Device Scale Factor
|
| +The scale at which we want to display content on the output device. For very
|
| +high resolution monitors, everything would become too small if just presented
|
| +1:1 with the pixels. So we use a larger number of physical pixels per logical
|
| +pixels. This ratio is the device scale factor. 1 or 2 is the most common on
|
| +ChromeOS. Values between 1 and 2 are common on Windows.
|
|
|