From e5af52cede447d307af12b3ec4a8e52d4abdafb3 Mon Sep 17 00:00:00 2001 From: Adam Fowler Date: Tue, 31 Dec 2019 14:47:38 -0500 Subject: [PATCH] Documentation: Added Accelerant documentation Change-Id: I5b1e853a4e250a1e9a57d951cf44c14af80e58c9 Reviewed-on: https://review.haiku-os.org/c/haiku/+/2064 Reviewed-by: Adrien Destugues --- docs/user/graphics/Accelerant.dox | 316 ++++++++++++++++++++++++++++++ 1 file changed, 316 insertions(+) create mode 100644 docs/user/graphics/Accelerant.dox diff --git a/docs/user/graphics/Accelerant.dox b/docs/user/graphics/Accelerant.dox new file mode 100644 index 0000000000..9573851814 --- /dev/null +++ b/docs/user/graphics/Accelerant.dox @@ -0,0 +1,316 @@ +/* + * 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 +*/ + +// @}