Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ (3G) — Aviator 1.8

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

fbcall(3G)

fbget(3G)

fblock(3G)

fbput(3G)

fbunlock(3G)

palette(3GC)

###############################################################################
#                                                                             #
#  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".                              #
#                                                                             #
###############################################################################

FBSTART(3G)          AVIATOR GRAPHICS INTERFACE FUNCTIONS           FBSTART(3G)



NAME
        fbstart, fbend - start or end a object

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

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

DESCRIPTION
        fbstart() indicates the start of an object.  An object is created by
        defining information about the object by using fbput(3G) and loaded
        into the frame buffer and possibly rendered with fbcall(3G).

        fbend() indicates the end of an object.

        An fbstart()/fbend() pair must be called only when the frame buffer
        is locked inside an fblock()/unlock() pair.

        Some frame buffers may require that the object is rendered multiple
        times for a complex clip list (once for each clip rectangle).  The
        code inside fbstart() and fbend() should be able to rerender the
        object multiple times.  Code that is unable to rerender the object
        usually manifest itself when an object is rendered correctly for one
        clip rectangle but not correctly for multiple clip rectangle.

CLASSES
        class may be one of the following:

        FB_CLASS__BLIT_2DS
        FB_CLASS__CLIP_2DS
        FB_CLASS__DOUBLE_BUFFER
        FB_CLASS__DUMB_FRAME_BUFFER_8BIT_INDEXED
        FB_CLASS__EXTENT_2DX
        FB_CLASS__EXTENT_3DX
        FB_CLASS__EXTENT_4DX
        FB_CLASS__LINE_2DS
        FB_CLASS__LINE_2DX
        FB_CLASS__LINE_3DX
        FB_CLASS__LINE_4DX
        FB_CLASS__MATRIX_MV3X2
        FB_CLASS__MATRIX_MV3X2_DC3X2
        FB_CLASS__MATRIX_MV4X3
        FB_CLASS__MATRIX_MV4X3_DC4X3
        FB_CLASS__MATRIX_MV4X3_CLIP_DC4X3
        FB_CLASS__MATRIX_MV4X4_CLIP_DIVIDE_DC4X3
        FB_CLASS__PALETTE_8BIT_INDEXED
        FB_CLASS__PATTERN_16X16_1BIT_MONOCHROME
        FB_CLASS__POINT_2DS
        FB_CLASS__POINT_2DX
        FB_CLASS__POINT_3DX
        FB_CLASS__POINT_4DX
        FB_CLASS__QUADRILATERAL_2DS_OVERLAPPING
        FB_CLASS__QUADRILATERAL_2DS_NONOVERLAPPING
        FB_CLASS__QUADRILATERAL_2DX_OVERLAPPING
        FB_CLASS__QUADRILATERAL_2DX_NONOVERLAPPING
        FB_CLASS__QUADRILATERAL_3DX_OVERLAPPING
        FB_CLASS__QUADRILATERAL_3DX_NONOVERLAPPING
        FB_CLASS__QUADRILATERAL_4DX_OVERLAPPING
        FB_CLASS__QUADRILATERAL_4DX_NONOVERLAPPING
        FB_CLASS__RASTER_2DS_1BIT_MONOCHROME
        FB_CLASS__RASTER_2DS_8BIT_INDEXED
        FB_CLASS__RECTANGLE_2DS_OVERLAPPING
        FB_CLASS__RECTANGLE_2DS_NONOVERLAPPING
        FB_CLASS__RESOLUTION
        FB_CLASS__TRIANGLE_2DS_OVERLAPPING
        FB_CLASS__TRIANGLE_2DS_NONOVERLAPPING
        FB_CLASS__TRIANGLE_2DX_OVERLAPPING
        FB_CLASS__TRIANGLE_2DX_NONOVERLAPPING
        FB_CLASS__TRIANGLE_3DX_OVERLAPPING
        FB_CLASS__TRIANGLE_3DX_NONOVERLAPPING
        FB_CLASS__TRIANGLE_4DX_OVERLAPPING
        FB_CLASS__TRIANGLE_4DX_NONOVERLAPPING

        See the individual description of each class for details.

SEE ALSO
        fbcall(3G), fbget(3G), fblock(3G), fbput(3G), fbunlock(3G),
        palette(3GC)

PERFORMANCE
        fbp should be declared a register.

        fbstart() and fbend() normally generates very little code, but still
        as many objects of the same class should be defined and rendered
        between fbstart() and fbend().



AGI Release 1.8         Last change: 25 December 1991

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