RISC OS Open
A fast and easily customised operating system for ARM devices
ROOL
Home | News | Software | Bugs | Bounties | Forum | Documents | Photos | Contact us
Account

HAL_Video_UpdatePointer

Hardware Abstraction Layer
HAL entry points from RISC OS
ยป HAL_Video_UpdatePointer

HAL_Video_UpdatePointer

(HAL entry #46)
void HAL_Video_UpdatePointer(uint flags, int x, int y, const shape_t *shape)
Entry
flags Bit 0 = Pointer display enable (0=off, 1=on)
Bit 1 = Pointer shape update (0=no change, 1=updated)
Bits 2..31 reserved (0)
xpos X position of top left of pointer (xpos = 0 for left of display)
ypos Y position of top left of pointer (ypos = 0 for top of display)
shape shape_t descriptor block (see below)
Exit
-

Use

This is an internal call for OS use only and should not be used by user software. User software should use GraphicsV instead of interacting with the HAL directly.

shape points to shape_t descriptor block:

typedef struct shape_t
{
  uint8   width;      /* unpadded width in bytes (see notes) */
  uint8   height;     /* in pixels */
  uint8   padding[2]; /* 2 bytes of padding for field alignment */
  void   *buffLA;     /* logical address of buffer holding pixel data */
  void   *buffPA;     /* corresponding physical address of buffer */
}

Notes:

  1. If flags bit 0 is 0 (pointer off), x, y, shape are undefined
  2. The shape data from RISC OS is always padded with transparent pixels on the rhs, to a width of 32 pixels (8 bytes)
  3. Pointer clipping is the responsibility of the HAL (eg. may be able to allow display of pointer in border region on some h/w)
  4. Buffer for pixel data is aligned to a multiple of 256 bytes or better

The HAL may need to take note of the shape updated flag, and make its own new copies if true. This is to handle cases like dual scan LCD pointer, which typically needs two or more shape buffers for the hardware, or possibly to handle clipping properly. This work should only be done when the updated flag is true.

A simple HAL, where hardware permits, can use the shape data in the buffer directly, ignoring the updated flag. The OS guarantees that the buffer data is valid for the whole time it is to be displayed.

See also

  • HAL Video API
Information source: Kernel.Docs.HAL.HAL_API in CVS
Revised on February 9, 2012 14:08:40 by Jeffrey Lee (213) (195.72.173.130)
Edit | Back in time (1 revision) | See changes | History | Views: Print | Source | Linked from: HAL entry points from RISC OS, HAL entry points by number, HAL Video API, GraphicsV 5

Search the Wiki

Commercial use

For commercial enquiries, please contact the owners of RISC OS, Castle Technology Ltd.

ROOL Store

The official C/C++ Development kit and more here.

Donate! Why?

Help ROOL make things happen – please consider donating!

Navigation

  • Home Page
  • All Pages
  • Recently Revised
  • Authors
  • Feeds
  • Export
Site design © RISC OS Open Limited 2011 except where indicated
The RISC OS Open Instiki theme is based on Insitki's default layout

Valid XHTML 1.0  |  Valid CSS

Instiki 0.19.1(MML+)
This site runs on Rails

Hosted by Arachsys