PGL Function Reference

Release 1.1

PGL Home Page
PGL Handbook

Introduction

The Parallel Graphics Library implements the core functionality of the PGL system. It defines the C-language application programming interface (API) to the underlying parallel polygon renderer, and also provides geometry modeling capabilities, various convenience functions, and an interface to the renderer's internal performance measurement functions.

Unless otherwise noted, all of the functions listed below are defined in the header file "PGL/PG.h".


Contents


Initialization and Termination

    void PGInit(PGScene *scene, PGFrameBuf *fb)
    void PGQuit(void)
    void PGSetOpt(PGOption option, PGOptVal value)

Scene Manipulation

    PGScene PGCreateScene(void)
    void PGDelScene(PGScene scene)
    void PGAddInstToScene(PGInstance inst, PGScene scene)
    void PGDelInstFromScene(PGInstance inst, PGScene scene)
    void PGAddLightToScene(PGLight light, PGScene scene)
    void PGDelLightFromScene(PGLight light, PGScene scene)
    void PGSetDefaultLights(PGScene scene)
    void PGSetView(PGView view, PGScene scene)
    PGView PGGetView(PGScene scene)
    void PGDelViewFromScene(PGScene scene)

Lighting and Shading

    void PGSetShadingMethod(PGShadingMethod shading, PGScene scene)
    void PGSetShadingDefault(PGShadingMethod shading)
    void PGSetSurfaceShadingMode(PGSurfaceShadingMode mode, PGScene scene)
    void PGSetSurfaceShadingDefault(PGSurfaceShadingMode mode)
    void PGSetSpecularity(PGSpecularity specularity, PGScene scene)
    void PGSetSpecularDefault(PGSpecularity specularity)
    PGLight PGCreateLight(PGLightType type)
    void PGDelLight(PGLight light)
    void PGSetLightIntensity(PGLight light, Real intensity[3])
    void PGSetLightPosition(PGLight light, Real position[3])
    void PGSetLightDirection(PGLight light, Real direction[3])
    void PGSetLightSwitch(PGLight light, Logical on_off)

Views and Viewing Parameters

    PGView PGCreateView(void)
    void PGCopyView(PGView view1, PGView view2)
    void PGDelView(PGView view)
    PGViewParams PGGetViewParams(PGView view)
    void PGSetViewPoints(PGview view, Real eye[3], Real vrp[3])
    void PGSetViewUp(PGView view, Real up[3])
    void PGSetViewWindow(PGView view, Real width, Real height)
    void PGSetViewZClip(PGView view, Real hither, Real yon)


Rendering

    void PGSetTrRasterMethod(PGRasterMethod method)
    void PGRender(PGScene scene, PGFrameBuf fb)

Frame Buffers

    PGFrameBuf PGCreateFB(unsigned x, unsigned y, unsigned samples)
    void PGDelFB(PGFrameBuf fb)
    void PGSetBGDefault(Real color[3])
    void PGSetBGColor(PGFrameBuf fb, Real color[3])
    void PGClearFB(PGFrameBuf fb)

Displays

    PGFormat PGParseFmtName(char *fmtname)
    PGFmtID PGOpenFmt(PGDispFmt fmt, unsigned x, unsigned y)
    void PGCloseFmt(PGFmtID f)
    void PGDisplay(PGFrameBuf fb)
    void PGDisplayFmt(PGFrameBuf fb, PGFmtID f)

Objects

    PGObject PGCreateObj(PGObjType type)
    void PGDelObj(PGObject obj)
    void PGSetObjType(PGObjType type)
    void PGSetObjVisibility(PGObject obj, Logical visible)
    void PGSetObjCulling(PGObject obj, Logical cull)
    void PGSetObjColor(PGObject obj, Real color[4])
    void PGSetObjMtrls(PGObject obj, Real mtrls[4])
    void PGSetObjCoords(PGObject obj, Unsigned32 n, Real coords[][3])
    void PGSetObjVrtxColors(PGObject obj, Real colors[][4])
    void PGSetObjVrtxNorms(PGObject obj, Real norms[][3])
    void PGSetObjTriangles(PGObject obj, Unsigned32 ntr,
                           Unsigned32 triangles[][3])
    void PGSetObjTrColors(PGObject obj, Real colors[][4])
    void PGSetObjTrMtrls(PGObject obj, Real mtrls[][4])



Instances

    PGInstance PGCreateInst(PGObject obj)
    void PGDelInst(PGInstance inst)
    void PGAddSubInst(PGInstance inst, PGInstance subinst,
                      Logical auto_del)
    void PGDelSubInst(PGInstance inst, PGInstance subinst)
    void PGSetInstTMat(PGInstance inst, PGTMatrix t)
    void PGGetInstTMat(PGInstance inst, PGTMatrix t)
    void PGSetInstType(PGInstance inst, PGObjType type)
    void PGSetInstVisibility(PGInstance inst, Logical visible)
    void PGSetInstCulling(PGInstance inst, Logical cull)
    void PGSetInstColor(PGInstance inst, Real color[4])
    void PGSetInstMtrls(PGInstance inst, Real mtrls[4])
    void PGSetInstCoords(PGInstance inst, Unsigned32 n, Real coords[][3])
    void PGSetInstVrtxColors(PGInstance inst, Real colors[][4])
    void PGSetInstVrtxNorms(PGInstance inst, Real norms[][3])
    void PGSetInstTriangles(PGInstance inst, Unsigned32 ntr,
                            Unsigned32 triangles[][3])
    void PGSetInstTrColors(PGInstance inst, Real colors[][4])
    void PGSetInstTrMtrls(PGInstance inst, Real mtrls[][4])


Transformation Matrix Operations

    void PGIdMatrix(PGTMatrix t)
    void PGCopyMatrix(PGTMatrix t1, PGTMatrix t2)
    void PGRotX(Real ax, PGTMatrix t)
    void PGRotY(Real ay, PGTMatrix t)
    void PGRotZ(Real az, PGTMatrix t)
    void PGScale(Real sx, Real sy, Real sz, PGTMatrix t)
    void PGTrans(Real dx, Real dy, Real dz, PGTMatrix t)
    void PGTMult(PGTMatrix t1, PGTMatrix t2, PGTMatrix t)

Algorithmic Parameters

    void PGSetBufMethod(PGBufMethod method, unsigned depth, unsigned poll)
    void PGSetBufSpace(unsigned kbytes)

Timing and Performance Metrics

    double PGClock()
    void PGResetMetrics(void)
    void PGSelectEventMetrics(Unsigned32 mask)
    void PGGetLocalMetrics(PGMetrics *metrics)
    void PGGetGlobalMetrics(PGMetrics *metrics)
    void PGGetLocalFBMetrics(PGFrameBuf fb, PGMetrics *metrics)
    void PGGetGlobalFBMetrics(PGFrameBuf fb, PGMetrics *metrics)
    void PGPrintMetrics(PGMetrics *metrics)

Convenience Routines

    unsigned PGNProc(void)
    PGNode PGSelf(void)
    void PGAbort(void)

Message Passing

    void PGSync(void)
    void PGBcast(PGNode root, PGMsgType type, void *addr,
                 PGMsgLength nbytes)
    void PGSend(PGMsgType type, void *buf, PGMsgLength nbytes, PGNode dest)
    void PGRecv(PGMsgType type, void *buf, PGMsgLength nbytes)

Miscellaneous Routines

    char *PGVersion(void)

Copyright © 1989-97, Thomas W. Crockett and the Institute for Computer Applications in Science and Engineering.