diff options
Diffstat (limited to 'src/AGL_DSp.cpp')
-rw-r--r-- | src/AGL_DSp.cpp | 235 |
1 files changed, 0 insertions, 235 deletions
diff --git a/src/AGL_DSp.cpp b/src/AGL_DSp.cpp deleted file mode 100644 index 8e86b0a..0000000 --- a/src/AGL_DSp.cpp +++ /dev/null @@ -1,235 +0,0 @@ -/**> HEADER FILES <**/ -#include "AGL_DSp.h" -#include "Alerts.h" - -/**> GLOBAL VARIABLES <**/ -DSpContextAttributes gDSpContextAttributes; // Global DrawSprocket context attributes -DSpContextReference gDSpContext; // The global DrawSprocket context -AGLContext gOpenGLContext; // The global OpenGL (AGL) context - -/********************> ToolboxInit() <*****/ -void ToolboxInit( void ) -{ - MaxApplZone(); - - InitGraf( &qd.thePort ); - InitFonts(); - InitWindows(); - InitMenus(); - TEInit(); - InitDialogs( 0L ); - InitCursor(); -} - -/********************> HasAppearance() <*****/ -Boolean HasAppearance( void ) -{ - - OSErr error; - SInt32 response; - Boolean appearancePresent = false; - Boolean appearance101present = false; - Boolean appearance110present = false; - Boolean inCompatibilityMode = false; - - error = Gestalt( gestaltAppearanceAttr, &response ); - - // If Gestalt returns no error and the bit in response represented by the constant - // gestaltAppearanceExists is set, proceed, otherwise exit with an error message. - - if ( error == noErr && ( BitTst( &response, 31 - gestaltAppearanceExists ) ) ) - { - // At least Version 1.0 is present. Set a flag. - appearancePresent = true; - - // If the bit in response represented by the constant gestaltAppearanceCompatMode - // is set, system-wide Appearance is off. The result of this check will be - // relevant only where Versions 1.0 through 1.0.3 are present. - if( BitTst( &response, 31 - gestaltAppearanceCompatMode ) ) - inCompatibilityMode = true; - - // Call Gestalt again with the gestaltAppearanceVersion selector. - Gestalt( gestaltAppearanceVersion, &response ); - - // If the low order word in response is 0x0101, Version 1.0.1, 1.0.2, or 1.0.3 is - // present. If the low order word in response is 0x0110, Version 1.1 is available. - if( response == 0x00000101 ) - appearance101present = true; - else if( response == 0x00000110 ) - appearance110present = true; - } - /*else - { - StopAlert( kNoAppearanceAlert, nil ); - ExitToShell(); - }*/ - - // Register this app as an Appearance Client - //RegisterAppearanceClient(); - - return appearancePresent; - -} - -/********************> SetupScreen() <*****/ -CGrafPtr SetupScreen( int width, int height ) -{ - - OSStatus theError; - CGrafPtr theFrontBuffer; - - // Start DrawSprocket - theError = DSpStartup(); - if( theError ) - FatalErrorAlert( kErr_DSpStartupFailed, theError ); - - // Set the Context Attributes - gDSpContextAttributes.displayWidth = width; - gDSpContextAttributes.displayHeight = height; - gDSpContextAttributes.colorNeeds = kDSpColorNeeds_Require; - gDSpContextAttributes.displayDepthMask = kDSpDepthMask_32; - gDSpContextAttributes.backBufferDepthMask = kDSpDepthMask_32; - gDSpContextAttributes.displayBestDepth = 32; - gDSpContextAttributes.backBufferBestDepth = 32; - gDSpContextAttributes.pageCount = 1; - - // Find the best context for our attributes - theError = DSpFindBestContext( &gDSpContextAttributes, &gDSpContext ); - if( theError != noErr ) - FatalErrorAlert( kErr_DSpFindBestContextFailed, theError ); // This function is in my Alerts.cpp - - // Reserve that context - theError = DSpContext_Reserve( gDSpContext, &gDSpContextAttributes ); - if( theError != noErr ) - FatalErrorAlert( kErr_DSpContext_ReserveFailed, theError ); - - // Fade out - theError = DSpContext_FadeGammaOut( NULL, NULL ); - if( theError != noErr ) - FatalErrorAlert( kErr_DSpFadeFailed, theError ); - - // Activate the context - theError = DSpContext_SetState( gDSpContext, kDSpContextState_Active ); - if( theError != noErr ) - { - // Fade back in the display before dying - theError = DSpContext_FadeGammaIn( NULL, NULL ); - - // Now do the fatal error alert - FatalErrorAlert( kErr_ActivateContextFailed, theError ); - } - - // Fade in - theError = DSpContext_FadeGammaIn( NULL, NULL ); - if( theError != noErr ) - FatalErrorAlert( kErr_DSpFadeFailed, theError ); - - // Create a window to draw in - CreateWindow( theFrontBuffer, width, height ); - - return theFrontBuffer; - -} - -/********************> CreateWindow() <*****/ -void CreateWindow( CGrafPtr &theFrontBuffer, int width, int height ) -{ - - Rect rect; - AuxWinHandle awh; - CTabHandle theColorTable; - OSErr error; - RGBColor backColor = { 0xFFFF, 0xFFFF, 0xFFFF }; - RGBColor foreColor = { 0x0000, 0x0000, 0x0000 }; - - // Set the window rect - rect.top = rect.left = 0; - DSpContext_LocalToGlobal( gDSpContext, ( Point* )&rect ); - rect.right = rect.left + width; - rect.bottom = rect.top + height; - - // Create a new color window - theFrontBuffer = ( CGrafPtr )NewCWindow( NULL, &rect, "\p", 0, plainDBox, kMoveToFront, 0, 0 ); - - // set the content color of the window to black to avoid a white flash when the window appears. - if ( GetAuxWin( ( WindowPtr )theFrontBuffer, &awh ) ) - { - theColorTable = ( **awh ).awCTable; - error = HandToHand( ( Handle* )&theColorTable ); - if ( error ) - DebugStr( "\pOut of memory!" ); - - ( **theColorTable ).ctTable[wContentColor].rgb.red = 0; - ( **theColorTable ).ctTable[wContentColor].rgb.green = 0; - ( **theColorTable ).ctTable[wContentColor].rgb.blue = 0; - - CTabChanged( theColorTable ); - - // the color table will be disposed by the window manager when the window is disposed - SetWinColor( ( WindowPtr )theFrontBuffer, ( WCTabHandle )theColorTable ); - } - - // Show the window - ShowWindow( ( GrafPtr )theFrontBuffer ); - SetPort( ( GrafPtr )theFrontBuffer ); - - // Set current pen colors - RGBForeColor( &foreColor ); - RGBBackColor( &backColor ); - -} - -/********************> ShutdownScreen() <*****/ -void ShutdownScreen( CGrafPtr theFrontBuffer ) -{ - - DSpContext_FadeGammaOut( NULL, NULL ); - DisposeWindow( ( WindowPtr )theFrontBuffer ); - DSpContext_SetState( gDSpContext, kDSpContextState_Inactive ); - DSpContext_FadeGammaIn( NULL, NULL ); - DSpContext_Release( gDSpContext ); - DSpShutdown(); - -} - -/********************> SetupAGL() <*****/ -AGLContext SetupAGL( AGLDrawable window ) -{ - GLint attrib[] = { AGL_RGBA, AGL_DEPTH_SIZE, 24, AGL_DOUBLEBUFFER, AGL_NONE }; - AGLPixelFormat format; - AGLContext context; - GLboolean ok; - - // Choose an rgb pixel format - format = aglChoosePixelFormat( NULL, 0, attrib ); - if ( format == NULL ) - return NULL; - - // Create an AGL context - context = aglCreateContext( format, NULL ); - if ( context == NULL ) - return NULL; - - // Attach the window to the context - ok = aglSetDrawable( context, window ); - if ( !ok ) - return NULL; - - // Make the context the current context - ok = aglSetCurrentContext( context ); - if ( !ok ) - return NULL; - - // The pixel format is no longer needed so get rid of it - aglDestroyPixelFormat( format ); - - return context; -} - -/********************> CleanupAGL() <*****/ -void CleanupAGL( AGLContext context ) -{ - aglSetCurrentContext( NULL ); - aglSetDrawable( context, NULL ); - aglDestroyContext( context ); -} |