pub enum Surface<Def, Alt>where
Def: DeviceInterface,
Alt: DeviceInterface,{
Default(Def::Surface),
Alternate(Alt::Surface),
}
Expand description
Represents a hardware buffer of pixels that can be rendered to via the CPU or GPU and either displayed in a native widget or bound to a texture for reading.
Surfaces come in two varieties: generic and widget surfaces. Generic surfaces can be bound to a texture but cannot be displayed in a widget (without using other APIs such as Core Animation, DirectComposition, or XPRESENT). Widget surfaces are the opposite: they can be displayed in a widget but not bound to a texture.
Surfaces are specific to a given context and cannot be rendered to from any context other than
the one they were created with. However, they can be read from any context on any thread (as
long as that context shares the same adapter and connection), by wrapping them in a
SurfaceTexture
.
Depending on the platform, each surface may be internally double-buffered.
Surfaces must be destroyed with the destroy_surface()
method, or a panic will occur.