home *** CD-ROM | disk | FTP | other *** search
- //
- // StQD3DInitializer.h
- //
- // A stack-based class to initialize and clean up a QuickDraw 3D environment.
- // Declare it in main() after your toolbox initialization.
- //
- // by James Jennings
- // November 12, 1995
- //
-
- #pragma once
-
- #include <QD3D.h>
-
- class StQD3DInitializer {
- public:
- StQD3DInitializer(void);
- ~StQD3DInitializer(void);
- TQ3Status GetStatus(void);
- Boolean HasQD3D(void);
- private:
- TQ3Status status;
- };
-
- inline
- Boolean StQD3DInitializer::HasQD3D(void)
- {
- long result;
- OSErr err = Gestalt(gestaltQD3D, &result);
- return err==noErr && result == gestaltQD3DAvailable;
- }
-
- inline
- StQD3DInitializer::StQD3DInitializer(void) : status(kQ3Failure)
- {
- if (!HasQD3D()) return; // Throw exception?
- status = Q3Initialize();
- // if (status == kQ3Failure) // Throw exception?
- }
-
- inline
- StQD3DInitializer::~StQD3DInitializer(void)
- {
- if (status==kQ3Success)
- status = Q3Exit();
- // if (status == kQ3Failure) // Throw exception?
- }
-
- inline
- TQ3Status StQD3DInitializer::GetStatus(void)
- {
- return status;
- }
-
-