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