XenevaOS
Loading...
Searching...
No Matches
Public Attributes | List of all members
drm_plane Struct Reference

#include <drm_plane.h>

Collaboration diagram for drm_plane:
Collaboration graph
[legend]

Public Attributes

struct drm_device * dev
 
struct list_head head
 
: human readable name, can be overwritten by the driver
char * name
 
struct drm_modeset_lock mutex
 
struct drm_mode_object base
 
uint32_t possible_crtcs
 
uint32_t * format_types
 
unsigned int format_count
 
bool format_default
 
uint64_t * modifiers
 
unsigned int modifier_count
 
struct drm_crtc * crtc
 
struct drm_framebuffer * fb
 
struct drm_framebuffer * old_fb
 
const struct drm_plane_funcs * funcs
 
struct drm_object_properties properties
 
enum drm_plane_type type
 
unsigned index
 
const struct drm_plane_helper_funcs * helper_private
 
struct drm_plane_state * state
 
struct drm_property * alpha_property
 
struct drm_property * zpos_property
 
struct drm_property * rotation_property
 
struct drm_property * blend_mode_property
 
struct drm_property * color_encoding_property
 
struct drm_property * color_range_property
 
struct drm_property * color_pipeline_property
 
struct drm_property * scaling_filter_property
 
struct drm_property * hotspot_x_property
 
struct drm_property * hotspot_y_property
 
struct kmsg_dumper kmsg_panic
 

Detailed Description

struct drm_plane - central DRM plane control structure

Planes represent the scanout hardware of a display block. They receive their input data from a &drm_framebuffer and feed it to a &drm_crtc. Planes control the color conversion, see Plane Composition Properties_ for more details, and are also involved in the color conversion of input pixels, see Color Management Properties_ for details on that.

Member Data Documentation

◆ alpha_property

struct drm_property* drm_plane::alpha_property

@alpha_property: Optional alpha property for this plane. See drm_plane_create_alpha_property().

◆ base

struct drm_mode_object drm_plane::base

@base: base mode object

◆ blend_mode_property

struct drm_property* drm_plane::blend_mode_property

@blend_mode_property: Optional "pixel blend mode" enum property for this plane. Blend mode property represents the alpha blending equation selection, describing how the pixels from the current plane are composited with the background.

◆ color_encoding_property

struct drm_property* drm_plane::color_encoding_property

@color_encoding_property:

Optional "COLOR_ENCODING" enum property for specifying color encoding for non RGB formats. See drm_plane_create_color_properties().

◆ color_pipeline_property

struct drm_property* drm_plane::color_pipeline_property

@color_pipeline_property:

Optional "COLOR_PIPELINE" enum property for specifying a color pipeline to use on the plane.

◆ color_range_property

struct drm_property* drm_plane::color_range_property

@color_range_property:

Optional "COLOR_RANGE" enum property for specifying color range for non RGB formats. See drm_plane_create_color_properties().

◆ crtc

struct drm_crtc* drm_plane::crtc

@crtc:

Currently bound CRTC, only meaningful for non-atomic drivers. For atomic drivers this is forced to be NULL, atomic drivers should instead check &drm_plane_state.crtc.

◆ dev

struct drm_device* drm_plane::dev

@dev: DRM device this plane belongs to

◆ fb

struct drm_framebuffer* drm_plane::fb

@fb:

Currently bound framebuffer, only meaningful for non-atomic drivers. For atomic drivers this is forced to be NULL, atomic drivers should instead check &drm_plane_state.fb.

◆ format_count

unsigned int drm_plane::format_count

@format_count: Size of the array pointed at by @format_types.

◆ format_default

bool drm_plane::format_default

@format_default: driver hasn't supplied supported formats for the plane. Used by the non-atomic driver compatibility wrapper only.

◆ format_types

uint32_t* drm_plane::format_types

@format_types: array of formats supported by this plane

◆ funcs

const struct drm_plane_funcs* drm_plane::funcs

@funcs: plane control functions

◆ head

struct list_head drm_plane::head

@head:

List of all planes on @dev, linked from &drm_mode_config.plane_list. Invariant over the lifetime of @dev and therefore does not need locking.

◆ helper_private

const struct drm_plane_helper_funcs* drm_plane::helper_private

@helper_private: mid-layer private data

◆ hotspot_x_property

struct drm_property* drm_plane::hotspot_x_property

@hotspot_x_property: property to set mouse hotspot x offset.

◆ hotspot_y_property

struct drm_property* drm_plane::hotspot_y_property

@hotspot_y_property: property to set mouse hotspot y offset.

◆ index

unsigned drm_plane::index

@index: Position inside the mode_config.list, can be used as an array index. It is invariant over the lifetime of the plane.

◆ kmsg_panic

struct kmsg_dumper drm_plane::kmsg_panic

@kmsg_panic: Used to register a panic notifier for this plane

◆ modifier_count

unsigned int drm_plane::modifier_count

@modifier_count: Size of the array pointed at by @modifier_count.

◆ modifiers

uint64_t* drm_plane::modifiers

@modifiers: array of modifiers supported by this plane

◆ mutex

struct drm_modeset_lock drm_plane::mutex

@mutex:

Protects modeset plane state, together with the &drm_crtc.mutex of CRTC this plane is linked to (when active, getting activated or getting disabled).

For atomic drivers specifically this protects @state.

◆ name

char* drm_plane::name

◆ old_fb

struct drm_framebuffer* drm_plane::old_fb

@old_fb:

Temporary tracking of the old fb while a modeset is ongoing. Only used by non-atomic drivers, forced to be NULL for atomic drivers.

◆ possible_crtcs

uint32_t drm_plane::possible_crtcs

@possible_crtcs: pipes this plane can be bound to constructed from drm_crtc_mask()

◆ properties

struct drm_object_properties drm_plane::properties

@properties: property tracking for this plane

◆ rotation_property

struct drm_property* drm_plane::rotation_property

@rotation_property: Optional rotation property for this plane. See drm_plane_create_rotation_property().

◆ scaling_filter_property

struct drm_property* drm_plane::scaling_filter_property

@scaling_filter_property: property to apply a particular filter while scaling.

◆ state

struct drm_plane_state* drm_plane::state

@state:

Current atomic state for this plane.

This is protected by @mutex. Note that nonblocking atomic commits access the current plane state without taking locks. Either by going through the &struct drm_atomic_commit pointers, see for_each_oldnew_plane_in_state(), for_each_old_plane_in_state() and for_each_new_plane_in_state(). Or through careful ordering of atomic commit operations as implemented in the atomic helpers, see &struct drm_crtc_commit.

◆ type

enum drm_plane_type drm_plane::type

@type: Type of plane, see &enum drm_plane_type for details.

◆ zpos_property

struct drm_property* drm_plane::zpos_property

@zpos_property: Optional zpos property for this plane. See drm_plane_create_zpos_property().


The documentation for this struct was generated from the following file: