Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ (3GC) — Aviator 1.8

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

fbcall(3G)

fbend(3G)

fbget(3G)

fbput(3G)

fbstart(3G)

###############################################################################
#                                                                             #
#  Copyright © 1989-1991 by Artificial Horizons®, Inc.  All rights reserved.  #
#                                                                             #
#      This material  constitutes  the trade  secrets  and confidential,      #
#      proprietary information of Bruce Factor and Curtis Priem,  and is      #
#      under license  to Artificial Horizons, Inc.   The material is not      #
#      to be disclosed,  reproduced,  copied,  or used in any manner not      #
#      permitted under license from Artificial Horizons, Inc.   For more      #
#      information email "ahi-interest@ahi.com".                              #
#                                                                             #
###############################################################################

DOUBLE_BUFFER(3GC)    AVIATOR GRAPHICS INTERFACE CLASSES     DOUBLE_BUFFER(3GC)



NAME
        FB_CLASS__DOUBLE_BUFFER - double buffer class

SYNOPSIS
        #include <agi.h>
        register Fbuffer fbp;

        fbstart(fbp, FB_CLASS__DOUBLE_BUFFER)  {
        }  fbend(fbp);

DESCRIPTION
        The class FB_CLASS__DOUBLE_BUFFER is used for controlling double
        buffering.

        Class FB_CLASS__DOUBLE_BUFFER must only be used between a fblock(3G)
        and fbunlock(3G).  Double buffering is automatically enable for the
        locked window when FB_MEMBER__WRITE_HIDDEN__LOGICAL is set to TRUE
        or FB_MEMBER__READ_VISIBLE__LOGICAL is set to FALSE.

MEMBERS
        The following public members can be accessed by using routines
        fbput(3G) and fbget(3G):

        FB_MEMBER__WRITE_VISIBLE__LOGICAL
                If WRITE_VISIBLE is true, the frame buffer should write into
                the visible buffer.  The default value is TRUE.
        FB_MEMBER__WRITE_HIDDEN__LOGICAL
                If WRITE_HIDDEN is true, the frame buffer should write into
                the hidden buffer.  The default value is FALSE.
        FB_MEMBER__READ_VISIBLE__LOGICAL
                If READ_VISIBLE is true, the frame buffer reads the source of
                blits from the visible buffer.  If it is false, the source is
                read from the hidden buffer.  This read is not the read of a
                read-modify-write raster operation, which always uses the
                destination frame buffer.  The default value is TRUE.

        The following public members can be accessed by using the routine
        fbget(3G):

        FB_MEMBER__AVAILABLE__LOGICAL
                If AVAILABLE is true, the frame buffer is capable of doing
                hardware double buffering.  If false, the frame buffer is
                IEEE single buffer and some other form of double buffering
                (eg. color map double buffering) must be used.

FUNCTIONS
        The following public functions can be called by using the fbcall(3G)
        routine:

        FB_FUNCTION__STORE
                STORE stores the WRITE_VISIBLE, WRITE_HIDDEN, and READ_VISIBLE
                into the frame buffer.
        FB_FUNCTION__SCHEDULE_FLIP
                The SCHEDULE_FLIP function tells the frame buffer that the
                hidden buffer should become visible at the earliest possible
                time.
        FB_FUNCTION__WAIT_FOR_FLIP
                The WAIT_FOR_FLIP function does not return until the buffer
                has been completely flipped.  This function must be called
                after the SCHEDULE_FLIP function and before any other graphics
                code (AGI, other APIs, or windowing system) is executed.  The
                hidden buffer will have garbage in it after the flip.

SEE ALSO
        fbcall(3G), fbend(3G), fbget(3G), fbput(3G), fbstart(3G)

PERFORMANCE
        As much non-graphics code should be put after the SCHEDULE_FLIP
        function call.  It normally takes a long time before the flip is done.



AGI Release 1.8         Last change: 25 December 1991

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026