* Implemented hardware cursor support.

* Turns out cursor handling is simpler as originally thought, so I could remove its
  physical mapping - it's still put into the shared area, though, although that isn't
  needed for this chip (but could eventually simplify the handling of other generations
  of this chip).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17450 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2006-05-14 13:41:33 +00:00
parent 8cb10e136c
commit 7d5957df85
7 changed files with 151 additions and 38 deletions
@@ -64,7 +64,6 @@ struct intel_shared_info {
area_id registers_area; // area of memory mapped registers
uint8 *physical_status_page;
area_id cursor_area;
uint8 *physical_cursor_memory;
area_id graphics_memory_area;
uint8 *graphics_memory;
@@ -83,6 +82,12 @@ struct intel_shared_info {
sem_id vblank_sem;
uint32 cursor_buffer_offset;
uint32 cursor_format;
bool cursor_visible;
uint16 cursor_hot_x;
uint16 cursor_hot_y;
uint32 device_type;
char device_identifier[32];
struct pll_info pll_info;
@@ -97,7 +102,6 @@ struct intel_info {
area_id registers_area;
struct intel_shared_info *shared_info;
area_id shared_area;
area_id cursor_area;
struct overlay_registers *overlay_registers;
// update buffer, shares an area with shared_info
@@ -267,6 +271,8 @@ struct intel_free_graphics_memory {
#define CURSOR_FORMAT_4_COLORS (2UL << 24)
#define CURSOR_FORMAT_ARGB (4UL << 24)
#define CURSOR_FORMAT_XRGB (5UL << 24)
#define CURSOR_POSITION_NEGATIVE 0x8000
#define CURSOR_POSITION_MASK 0x3fff
// ring buffer commands