Source/Viewer_System.c

/* 
 *  Viewer_System.c
 *
 *  QuickDraw 3D 1.6 Sample
 *  Robert Dierkes
 *
 *   12/22/98   RDD     Created.
 */
 
/*------------------*/
/*  Include Files   */
/*------------------*/
#include "QD3D.h"
 
#if defined(OS_MACINTOSH) && OS_MACINTOSH
#include "QD3DViewer.h"
 
#include <CodeFragments.h>  /* kUnresolvedCFragSymbolAddress */
#include <Gestalt.h>
#include <Resources.h>
#include <Sound.h>
#endif
 
#include "Viewer_Main.h"
#include "Viewer_System.h"
#include "Viewer_Error.h"
 
 
/*----------------------*/
/*  Global Declarations */
/*----------------------*/
 
 
/*
 *  QuickDraw3D_Initialize
 */
TQ3Boolean QuickDraw3D_Initialize(
            void)
{
    TQ3Status       status = kQ3Failure;
    OSErr           error;
    long            response;
    unsigned long   viewerRelRev;
 
    error = Gestalt(gestaltQD3D, &response);
 
    if ((error != noErr)  ||
        (! (response & (1 << gestaltQD3DPresent)))) {
 
        Error_ShowMessage(kQuickDraw3DNotInstalledStr);
        return kQ3False;
    }
 
    /*
     * Test for specific symbol as recommended in develop, March 1995
     * NOTE: QuickDraw3DLib must be weak linked for this comparison to work.
     */
    if (((void *) Q3Initialize) == (void *) kUnresolvedCFragSymbolAddress) {
        Error_ShowMessage(kQuickDraw3DNotInstalledStr);
        return kQ3False;
    }
 
    status = Q3Initialize();
    if (status == kQ3Failure) {
        ERROR_DEBUG_STR ("QuickDraw3D_Initialize: Q3Initialize returned failure.");
        return kQ3False;
    }
 
    /* Get QuickDraw 3D version */
    error = Gestalt(gestaltQD3DVersion, &response);
 
    if ((error != noErr)  ||
        (response < kQD3DGestaltVersion_1_6_0)) {
 
        Error_ShowMessage(kQuickDraw3DNotCurrentStr);
        return kQ3False;
    }
 
    /* Get Viewer version */
    error = Q3ViewerGetReleaseVersion(&viewerRelRev);
 
    if ((error != noErr)  ||
        (response < kQD3DGestaltVersion_1_6_0)) {
 
        Error_ShowMessage(kQuickDraw3DViewerNotCurrentStr);
        return kQ3False;
    }
 
    return kQ3True;
}
 
 
/*
 *  QuickDraw3D_Exit
 */
TQ3Boolean QuickDraw3D_Exit(
            void)
{
    if (Q3Exit() == kQ3Failure) {
        ERROR_DEBUG_STR ("QuickDraw3D_Exit: Q3Exit returned failure.");
        return kQ3False;
    }
 
    return kQ3True;
}
 
 
#pragma mark -
 
/*
 *  System_Beep
 */
void System_Beep(
    void)
{
#if defined(OS_MACINTOSH) && OS_MACINTOSH
    SysBeep(1);
#endif
}