[][src]Crate webrender_api

The webrender_api crate contains an assortment types and functions used by WebRender consumers as well as, in many cases, WebRender itself.

This separation allows Servo to parallelize compilation across webrender and other crates that depend on webrender_api. So in practice, we put things in this crate when Servo needs to use them. Firefox depends on the webrender crate directly, and so this distinction is not really relevant there.

Re-exports

pub extern crate euclid;

Modules

channel

Macros

enumerate_interners

Meta-macro to enumerate the various interner identifiers and types.

Structs

AddBlobImage
AddFontInstance
AddImage
AuxIter
BlobImageDescriptor

Metadata (but not storage) for a blob image.

BlobImageKey

An opaque identifier describing a blob image registered with WebRender. This is used as a handle to reference blob images, and can be used as an image in display items.

BlobImageParams

Input parameters for the BlobImageRasterizer.

BlobImageRequest

A key identifying blob image rasterization work requested from the blob image rasterizer.

BorderDisplayItem
BorderRadius
BorderSide
BoxShadowDisplayItem
BuiltDisplayList

A display list.

BuiltDisplayListDescriptor

Describes the memory layout of a display list.

BuiltDisplayListIter
CacheMarkerDisplayItem

Provides a hint to WR that it should try to cache the items within a cache marker context in an off-screen surface.

CaptureBits

Bit flags for WR stages to store in a capture.

CapturedDocument

Information about a loaded capture of each document that is returned by RenderBackend.

ClearCache

Mask for clearing caches in debug commands.

ClipChainId
ClipChainItem
ClipDisplayItem
ColorF

Represents RGBA screen colors with floating point numbers.

ColorU

Represents RGBA screen colors with one byte per channel.

ComplexClipRegion
DebugFlags
DevicePixel

Geometry in the coordinate system of the render target (screen or intermediate surface) in physical pixels.

DisplayItemRef
DisplayListBuilder
DocumentId
DynamicProperties

When using generate_frame(), a list of PropertyValue structures can optionally be supplied to provide the current value of any animated properties.

Epoch
ExternalEvent

An opaque pointer-sized value.

ExternalImageData

Descriptor for external image resources. See ImageData.

ExternalImageId

An arbitrary identifier for an external image provided by the application. It must be a unique identifier for each external image.

ExternalScrollId

An external identifier that uniquely identifies a scroll frame independent of its ClipId, which may change from frame to frame. This should be unique within a pipeline. WebRender makes no attempt to ensure uniqueness. The zero value is reserved for use by the root scroll node of every pipeline, which always has an external id.

FontInstanceData

Data corresponding to an instantiation of a font, with size and other options specified.

FontInstanceFlags
FontInstanceKey
FontInstanceOptions
FontInstancePlatformOptions
FontKey
FontVariation
GenericDisplayItem

The DI is generic over the specifics, while allows to use the "complete" version of it for convenient serialization.

GlyphDimensions
GlyphInstance
GlyphOptions
Gradient
GradientBuilder

Construct a gradient to be used in display lists.

GradientDisplayItem
GradientStop
HitTestFlags
HitTestItem
HitTestResult
IdNamespace
IframeDisplayItem
ImageDescriptor

Metadata (but not storage) describing an image In WebRender.

ImageDisplayItem
ImageKey

An opaque identifier describing an image registered with WebRender. This is used as a handle to reference images, and is used as the hash map key for the actual image storage in the ResourceCache.

ImageMask
InternerSubReport
InterningMemoryReport

Memory report for interning-related data structures. cbindgen:derive-eq=false

ItemRange
LayoutPixel

Geometry in a stacking context's local coordinate space (logical pixels).

LineDisplayItem
MemoryReport

Collection of heap sizes, in bytes. cbindgen:derive-eq=false

NativeFontHandle
NinePatchBorder
NormalBorder
NotificationRequest
PicturePixel

Geometry in the coordinate system of a Picture (intermediate surface) in physical pixels.

PipelineId

From the point of view of WR, PipelineId is completely opaque and generic as long as it's clonable, serializable, comparable, and hashable.

PremultipliedColorF

Represents pre-multiplied RGBA colors with floating point numbers.

PrimitiveInfo
PropertyBindingId
PropertyBindingKey

A unique key that is used for connecting animated property values to bindings in the display list.

PropertyValue

The current value of an animated property. This is supplied by the calling code.

PushStackingContextDisplayItem
RadialGradient
RadialGradientDisplayItem
RasterPixel

Geometry gets rasterized in a given root coordinate space. This is often the root spatial node (world space), but may be a local space for a variety of reasons (e.g. perspective).

RasterizedBlobImage

Representation of a rasterized blob image. This is obtained by passing BlobImageData to the embedding via the rasterization callback.

RectangleDisplayItem
ReferenceFrame
ReferenceFrameDisplayListItem
RenderApi
RenderApiSender
ResourceId
SaveState
ScrollFrameDisplayItem
ScrollNodeState
SerializedDisplayItem

A modified version of DI where every field is borrowed instead of owned. It allows us to reduce copies during serialization.

Shadow
SpaceAndClipInfo

Per-primitive information about the nodes in the clip tree and the spatial tree that the primitive belongs to.

SpatialId

A reference to a spatial node defining item positioning.

StackingContext
StickyFrameDisplayItem
StickyOffsetBounds

The minimum and maximum allowable offset for a sticky frame in a single dimension.

SyntheticItalics
TexelRect

Stores two coordinates in texel space. The coordinates are stored in texel coordinates because the texture atlas may grow. Storing them as texel coords and normalizing the UVs in the vertex shader means nothing needs to be updated on the CPU when the texture size changes.

TextDisplayItem
Tiles

Offset in number of tiles.

Transaction

A Transaction is a group of commands to apply atomically to a document.

TransactionMsg

Represents a transaction in the format sent through the channel.

UpdateBlobImage
UpdateImage
WorldPixel

Geometry in the document's coordinate space (logical pixels).

YuvImageDisplayItem
ZoomFactor

Represents a zoom factor.

Enums

AddFont
AlphaType
ApiMsg
BlobImageError

Error code for when blob rasterization failed.

BorderDetails
BorderRadiusKind
BorderStyle
BoxShadowClipMode
Checkpoint
ClipId

A reference to a clipping node defining how an item is clipped.

ClipMode
ColorDepth

Specifies the color depth of an image. Currently only used for YUV images.

DebugCommand
DirtyRect

The possible states of a Dirty rect.

ExtendMode
ExternalImageType

Storage format identifier for externally-managed images.

FilterOp
FontRenderMode
FontTemplate

Container for the raw data describing a font. This might be a stream of bytes corresponding to a downloaded font, or a handle to a native font from the operating system.

FrameMsg
ImageData

Represents the backing store of an arbitrary series of pixels for display by WebRender. This storage can take several forms.

ImageFormat

Specifies the format of a series of pixels, in driver terms.

ImageRendering
LineOrientation
LineStyle
MixBlendMode
NinePatchBorderSource
PropertyBinding

A binding property can either be a specific value (the normal, non-animated case) or point to a binding location to fetch the current value from. Note that Binding has also a non-animated value, the value is used for the case where the animation is still in-delay phase (i.e. the animation doesn't produce any animation values).

RasterSpace

Configure whether the contents of a stacking context should be rasterized in local space or screen space. Local space rasterized pictures are typically used when we want to cache the output, and performance is important. Note that this is a performance hint only, which WR may choose to ignore.

ReferenceFrameKind
RepeatMode
ResourceUpdate
SceneMsg
ScrollClamping
ScrollLocation
ScrollSensitivity
SpecificDisplayItem
TextureTarget

Specifies the type of texture target in driver terms.

TransformStyle
YuvColorSpace
YuvData
YuvFormat

Constants

MAX_BLUR_RADIUS
MAX_TEXT_RUN_LENGTH

Traits

AsyncBlobImageRasterizer

A group of rasterization requests to execute synchronously on the scene builder thread.

AuHelpers
BlobImageHandler

A handler on the render backend that can create rasterizer objects which will be sent to the scene builder thread to execute the rasterization.

BlobImageResources

The resources exposed by the resource cache available for use by the blob rasterizer.

NotificationHandler
RenderNotifier

Type Definitions

BlobDirtyRect
BlobImageData

Backing store for blob image command streams.

BlobImageResult

Result type for blob raserization.

BlobToDeviceTranslation
DeviceHomogeneousVector
DeviceIntLength
DeviceIntPoint
DeviceIntRect
DeviceIntSideOffsets
DeviceIntSize
DevicePixelScale

Scaling ratio from world pixels to device pixels.

DevicePoint
DeviceRect
DeviceSize
DeviceVector2D
DisplayItem
DocumentLayer

Documents are rendered in the ascending order of their associated layer values.

GlyphIndex
ImageDirtyRect
ItemTag

A tag that can be used to identify items during hit testing. If the tag is missing then the item doesn't take part in hit testing at all. This is composed of two numbers. In Servo, the first is an identifier while the second is used to select the cursor that should be used during mouse movement. In Gecko, the first is a scrollframe identifier, while the second is used to store various flags that APZ needs to properly process input events.

LayoutIntPoint
LayoutIntRect
LayoutIntSize
LayoutPoint
LayoutPoint3D
LayoutPointAu
LayoutPrimitiveInfo
LayoutRect
LayoutRectAu
LayoutSideOffsets
LayoutSideOffsetsAu
LayoutSize
LayoutSizeAu
LayoutToDeviceScale

A complete scaling ratio from layout space to device pixel space.

LayoutToPictureTransform
LayoutToRasterTransform
LayoutToWorldScale

Scaling ratio from layout to world. Used for cases where we know the layout is in world space, or specifically want to treat it this way.

LayoutToWorldTransform
LayoutTransform
LayoutVector2D
LayoutVector2DAu
LayoutVector3D
PictureIntPoint
PictureIntRect
PictureIntSize
PicturePoint
PicturePoint3D
PictureRect
PictureSize
PictureToLayoutTransform
PictureToRasterTransform
PictureVector2D
PictureVector3D
PipelineSourceId

This type carries no valuable semantics for WR. However, it reflects the fact that clients (Servo) may generate pipelines by different semi-independent sources. These pipelines still belong to the same IdNamespace and the same DocumentId. Having this extra Id field enables them to generate PipelineId without collision.

RasterIntPoint
RasterIntRect
RasterIntSize
RasterPoint
RasterPoint3D
RasterRect
RasterSize
RasterToLayoutTransform
RasterToPictureTransform
RasterVector2D
RasterVector3D
TileOffset
TileRange
TileSize
VoidPtrToSizeFn

A C function that takes a pointer to a heap allocation and returns its size.

WorldPoint
WorldPoint3D
WorldRect
WorldSize
WorldToLayoutTransform
WorldVector2D
WorldVector3D