e5af52cede
Change-Id: I5b1e853a4e250a1e9a57d951cf44c14af80e58c9 Reviewed-on: https://review.haiku-os.org/c/haiku/+/2064 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
317 lines
5.4 KiB
Plaintext
317 lines
5.4 KiB
Plaintext
/*
|
|
* Copyright 2019 Haiku, Inc. All rights reserved.
|
|
* Distributed under the terms of the MIT License.
|
|
*
|
|
* Authors:
|
|
* Adam Fowler, adamfowleruk@gmail.com
|
|
*
|
|
* Corresponds to:
|
|
* headers/os/add-ins/graphics/Accelerant.h rev 53658
|
|
*/
|
|
|
|
|
|
/*!
|
|
\file Accelerant.h
|
|
\ingroup graphics
|
|
\ingroup libbe
|
|
\brief Defines the structures used by an Accelerant (and \c BScreen).
|
|
*/
|
|
|
|
/*!
|
|
\name Display mode structs and constants
|
|
*/
|
|
|
|
//! @{
|
|
|
|
/*!
|
|
\enum display_timing_flags
|
|
\ingroup graphics
|
|
\brief Constants for \c display_timing::flags
|
|
|
|
\since BeOS R5
|
|
*/
|
|
|
|
/*!
|
|
\var display_timing_flags B_BLANK_PEDESTAL
|
|
|
|
Specifies the blank pedestal flag.
|
|
|
|
\since BeOS R5
|
|
*/
|
|
|
|
/*!
|
|
\var display_timing_flags B_TIMING_INTERLACED
|
|
|
|
Interlaced mode enabled.
|
|
|
|
\since BeOS R5
|
|
*/
|
|
|
|
/*!
|
|
\var display_timing_flags B_POSITIVE_HSYNC
|
|
|
|
Specifies a positive horizontal sync polarity.
|
|
|
|
\since BeOS R5
|
|
*/
|
|
|
|
/*!
|
|
\var display_timing_flags B_POSITIVE_VSYNC
|
|
|
|
Specifies a positive vertical sync polarity.
|
|
|
|
\since BeOS R5
|
|
*/
|
|
|
|
/*!
|
|
\var display_timing_flags B_SYNC_ON_GREEN
|
|
|
|
Specifies that sync on green is used (sometimes called SOG or RGsB)
|
|
|
|
\since BeOS R5
|
|
*/
|
|
|
|
|
|
/*!
|
|
\struct display_timing
|
|
\brief Provides timing information about a display mode
|
|
supported by a graphics card.
|
|
|
|
This provides information about the display resolution as well as the
|
|
video timings, allowing to compute the refresh rate in a precise way.
|
|
|
|
The timings are specified in term of horizontal and vertical pixels.
|
|
|
|
The "display" area corresponds to what's actually visible. But there is
|
|
some extra delay between two consecutive lines or two consecutive frames,
|
|
which is taked into account by the "total" values. In that area, there is
|
|
also the display sycnhronization signals, which start and end at specific
|
|
pixel numbers as well.
|
|
*/
|
|
|
|
/*!
|
|
\var uint32 display_timing::pixel_clock
|
|
|
|
Pixel clock in kHz.
|
|
|
|
The pixel clock is the frequency at which the display hardware moves from
|
|
one pixel to the next.
|
|
|
|
\since BeOS R5
|
|
*/
|
|
|
|
/*!
|
|
\var uint16 display_timing::h_display
|
|
|
|
Horizontal display width in pixels.
|
|
|
|
\since BeOS R5
|
|
*/
|
|
|
|
/*!
|
|
\var uint16 display_timing::h_sync_start
|
|
|
|
Horizontal sync start in pixels.
|
|
|
|
\since BeOS R5
|
|
*/
|
|
|
|
/*!
|
|
\var uint display_timing::h_sync_end
|
|
|
|
Horizontal sync end in pixels.
|
|
|
|
\since BeOS R5
|
|
*/
|
|
|
|
/*!
|
|
\var uint16 display_timing::h_total
|
|
|
|
Horizontal total in pixels.
|
|
|
|
\since BeOS R5
|
|
*/
|
|
|
|
/*!
|
|
\var uint16 display_timing::v_display
|
|
|
|
Vertical display height in pixels.
|
|
|
|
\since BeOS R5
|
|
*/
|
|
|
|
/*!
|
|
\var uint16 display:timing::v_sync_start
|
|
|
|
Vertical sync start line.
|
|
|
|
\since BeOS R5
|
|
*/
|
|
|
|
/*!
|
|
\var uint16 display_timing::v_sync_end
|
|
|
|
Vertical sync end line.
|
|
|
|
\since BeOS R5
|
|
*/
|
|
|
|
/*!
|
|
\var uint16 display_timing::v_total
|
|
|
|
Total number of vertical lines.
|
|
|
|
\since BeOS R5
|
|
*/
|
|
|
|
/*!
|
|
\var uint21 display_timing::flags
|
|
|
|
Timing flags, for sync polarity, interlaced, double scan etc.
|
|
|
|
\since BeOS R5
|
|
*/
|
|
|
|
|
|
/*!
|
|
\enum display_mode_flags
|
|
\ingroup graphics
|
|
\brief Constants for \c display_mode:flags
|
|
|
|
\since BeOS R5
|
|
*/
|
|
|
|
/*!
|
|
\var display_mode_flags B_SCROLL
|
|
|
|
Specifies scroll supported. Set when the display uses a virtual screen.
|
|
|
|
\since BeOS R5
|
|
*/
|
|
|
|
/*!
|
|
\var display_mode_flags B_8_BIT_DAC
|
|
|
|
Specifies that the DAC is in 8-bit mode.
|
|
|
|
\since BeOS R5
|
|
*/
|
|
|
|
/*!
|
|
\var display_mode_flags B_HARDWARE_CURSOR
|
|
|
|
Specifies that a hardware cursor is supported.
|
|
|
|
\since BeOS R5
|
|
*/
|
|
|
|
/*!
|
|
\var display_mode_flags B_PARALLEL_ACCESS
|
|
|
|
Specifies that parallel access to the framebuffer is allowed.
|
|
|
|
\since BeOS R5
|
|
*/
|
|
|
|
/*!
|
|
\var display_mode_flags B_DPMS
|
|
|
|
Specifies that the Display Power Management System is supported. The screen
|
|
can be shut down when the computer is idle to save power.
|
|
|
|
\since beOS R5
|
|
*/
|
|
|
|
/*!
|
|
\var display_mode_flags B_IO_FB_NA
|
|
|
|
Indicates that the video framebuffer is not directly mapped into memory.
|
|
The driver will handle sending the data to the video card, and applications
|
|
should not try to write directly to the buffer.
|
|
|
|
This is used only in legacy modes and hardware where a linear framebuffer
|
|
isn't available.
|
|
|
|
\since BeOS R5
|
|
*/
|
|
|
|
|
|
/*!
|
|
\struct display_mode
|
|
\brief Provides information about a display mode supported
|
|
by a graphics card.
|
|
|
|
The display resolution may be set larger than the actual display resolution.
|
|
In which case, not all pixels are visible at the same time, and scrolling
|
|
can be used to move around the larger virtual space. This is indicated
|
|
by the B_SCROLL flag.
|
|
|
|
When the virtual and physical resolutions match, B_SCROLL is not set, and
|
|
both display_start settings must be set to 0.
|
|
*/
|
|
|
|
/*!
|
|
\var display_timing display_mode::timing
|
|
|
|
The display timing of this mode.
|
|
|
|
\since BeOS R5
|
|
*/
|
|
|
|
/*!
|
|
\var uint32 display_mode::space
|
|
|
|
Color space to use (usually B_CMAP8, B_RGB16, or B_RGB32, but other modes
|
|
are possible depending on the hardware)
|
|
|
|
\since BeOS R5
|
|
*/
|
|
|
|
/*!
|
|
\var uint16 display_mode::virtual_width
|
|
|
|
Width of this mode in pixels.
|
|
|
|
\since BeOS R5
|
|
*/
|
|
|
|
/*!
|
|
\var uint16 display_mode::virtual_height
|
|
|
|
Height of this mode in pixels.
|
|
|
|
\since BeOS R5
|
|
*/
|
|
|
|
/*!
|
|
\var uint16 display_mode::h_display_start
|
|
|
|
The left position to start displaying from, used for scrolling
|
|
in the virtual space.
|
|
|
|
\since BeOS R5
|
|
*/
|
|
|
|
/*!
|
|
\var uint16 display_mode::v_display_start
|
|
|
|
The top position to start displaying from, used for scrolling in the virtual
|
|
space.
|
|
|
|
\since BeOS R5
|
|
*/
|
|
|
|
/*!
|
|
\var uint32 display_mode::flags
|
|
|
|
\brief The flags of this mode.
|
|
|
|
Currently no public flags are defined at this level.
|
|
Some drivers use this for dual head related options.
|
|
Reserved for future use.
|
|
|
|
\since BeOS R5
|
|
*/
|
|
|
|
// @}
|