Discussion Board

Results 1 to 2 of 2
  1. #1
    Registered User
    Join Date
    Mar 2003

    How to use direct screen access in release 6.2

    When developing applications and hardware that access the video memory directly, what steps must be taken to preserve the windowed regions?

  2. #2
    Regular Contributor
    Join Date
    Mar 2003

    RE: How to use direct screen access in release 6.2

    1. General info from the 6.2 spec:

    RHR.10 Windowed Direct Screen Access
    WSERV (Windows Server) shall allow video (as in any visual content or graphics) to rendered from hardware or a device driver. WSERV shall support: -
    7 The creation of container windows that require no WSERV involvement with the window's contents.
    7 The ability to turn a window's rendering on and off synchronously.
    7 Control of the video renderer so that if another window comes in front of a video window nothing is written over the top window
    7 Awareness of any clipping regions.
    7 If the video renderer doesn't have clipping functionality then it should be stopped until the video window is not obstructed again.
    7 If the renderer has a limited clipping ability (say, for example, support for up to 4 clipping regions) and the number of clipping regions exceeds that limit, then an approximation shall be generated so that the video renderer uses most of its visible window without overwriting any windows which are in front of it. Possibly - visible areas of the video window which are not used due to clipping limitations of the renderer should be made black, or some other convenient colour.

    2. Specifics
    To notify the screen driver that a region of the screen has been updated, call the fuction CFbsScreenDevice::Update(const TRegion& aRegion). This already exists in the EPOC APIs. The screen device driver is device specific so it can be implemented as appropriate for the hardware.

    Note that on WINS we effectively have a double buffered screen, where we have to call the Windows APIs to get our screen buffer coppied to the visible window containing the WINS emulator. CFbsScreenDevice::Update does this in the WINS screen driver.

    Future documentation on Direct Screen Access will be updated to mention the use of the Update function.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts