TweetFollow Us on Twitter

Jul 98 Tips

Volume Number: 14 (1998)
Issue Number: 7
Column Tag: Tips & Tidbits

Jul 98 Tips & Tidbits

by Steve Sisak

Here is a code to draw rotated QuickDraw picture without QuickDraw GX.

You can find the project files at http://www.bekkoame.or.jp/~iimori/tmp/StdPix.hqx

//
//  Rotate QuickDraw picture with StdPix bottleneck procedure.
//
#include <ImageCompression.h>
#include <GXMath.h>         // fl(),ff() macros
#include <stdio.h>         // use SIOUX window to draw on

void    main()
{
enum {
      kBWSmallMacOSLogo   =   -16501,   // use MacOS Logo
      kSmallMacOSLogo     =   -16503,
      kBigMacOSLogo       =   -16506
};

      PicHandle                 picHnd   =   nil;
      ImageDescriptionHandle   descHnd   =   nil;

      printf("\n");            // initialize Toolbox
      ::SetPort(::FrontWindow());

      long      response;         // examine QuickTime existence
      OSErr   err =   ::Gestalt(gestaltQuickTime,&response);
      if   ( err )   goto rtn;

      CodecInfo   codecInfo;   // examine QuickDrawCodec existence
      err = ::GetCodecInfo(&codecInfo,kQuickDrawCodecType,anyCodec);
      if   ( err )   goto rtn;

      picHnd = ::GetPicture(kSmallMacOSLogo);
      if   (picHnd == nil)   goto rtn;

      ::HNoPurge((Handle)picHnd);
      ::DetachResource((Handle)picHnd);
      Rect      picRect = (**picHnd).picFrame;

      MatrixRecord      matrix;
      ::SetIdentityMatrix(&matrix);
      Rect    r(picRect);
      ::OffsetRect(&r,40 - r.left,40 - r.top);
      ::RectMatrix(&matrix,&picRect,&r);   // move to (40,40)
      ::RotateMatrix(&matrix,ff(30),         // rotate 30 degree
                              ff((r.left + r.right)/2),
                              ff((r.top + r.bottom)/2));

      descHnd =
(ImageDescriptionHandle)::NewHandleClear
                                             (sizeof(ImageDescription));
      if (descHnd == nil)   goto rtn;

      {
      ImageDescription&      desc = **descHnd;

            desc.idSize           = sizeof(ImageDescription);
            desc.cType            = kQuickDrawCodecType;
            desc.temporalQuality  = codecLosslessQuality;
            desc.spatialQuality   = codecLosslessQuality;
            desc.width            = picRect.right - picRect.left;
            desc.height           = picRect.bottom - picRect.top;
            desc.hRes             = ff(72);
            desc.vRes             = ff(72);
            desc.dataSize         = ::GetHandleSize((Handle)picHnd);
            desc.frameCount       = 1;
            desc.depth            = 32;
            desc.clutID           = -1;
      }

      ::HLock((Handle)picHnd);
      PixMap  pixMap;
      err = ::SetCompressedPixMapInfo
                        (&pixMap,descHnd,*(Handle)picHnd,0,nil,nil);
      if ( err )   goto rtn;

      StdPixUPP         uppStdPix;
      const CQDProcs   *CQDProcPtr = 
                                    ((CGrafPtr)qd.thePort)->grafProcs;
      if   ( CQDProcPtr ) {
            uppStdPix = (StdPixUPP)CQDProcPtr->newProc1;
      }else{
            CQDProcs         stdProcs;
            ::SetStdCProcs(&stdProcs);
            uppStdPix = (StdPixUPP)stdProcs.newProc1;
      }

CallStdPixProc(uppStdPix,&pixMap,&picRect,&matrix,ditherCopy,

nil,nil,nil,callOldBits|callStdBits);
rtn:
   if ( descHnd ) {
         ::DisposeHandle((Handle)descHnd);
      }
      if ( picHnd ) {
            ::KillPicture(picHnd);
      }
}

Hideaki Iimori
iimori@lib.bekkoame.or.jp

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Latest Forum Discussions

See All

Combo Quest (Games)
Combo Quest 1.0 Device: iOS Universal Category: Games Price: $.99, Version: 1.0 (iTunes) Description: Combo Quest is an epic, time tap role-playing adventure. In this unique masterpiece, you are a knight on a heroic quest to retrieve... | Read more »
Hero Emblems (Games)
Hero Emblems 1.0 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0 (iTunes) Description: ** 25% OFF for a limited time to celebrate the release ** ** Note for iPhone 6 user: If it doesn't run fullscreen on your device... | Read more »
Puzzle Blitz (Games)
Puzzle Blitz 1.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0 (iTunes) Description: Puzzle Blitz is a frantic puzzle solving race against the clock! Solve as many puzzles as you can, before time runs out! You have... | Read more »
Sky Patrol (Games)
Sky Patrol 1.0.1 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0.1 (iTunes) Description: 'Strategic Twist On The Classic Shooter Genre' - Indie Game Mag... | Read more »
The Princess Bride - The Official Game...
The Princess Bride - The Official Game 1.1 Device: iOS Universal Category: Games Price: $3.99, Version: 1.1 (iTunes) Description: An epic game based on the beloved classic movie? Inconceivable! Play the world of The Princess Bride... | Read more »
Frozen Synapse (Games)
Frozen Synapse 1.0 Device: iOS iPhone Category: Games Price: $2.99, Version: 1.0 (iTunes) Description: Frozen Synapse is a multi-award-winning tactical game. (Full cross-play with desktop and tablet versions) 9/10 Edge 9/10 Eurogamer... | Read more »
Space Marshals (Games)
Space Marshals 1.0.1 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0.1 (iTunes) Description: ### IMPORTANT ### Please note that iPhone 4 is not supported. Space Marshals is a Sci-fi Wild West adventure taking place... | Read more »
Battle Slimes (Games)
Battle Slimes 1.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0 (iTunes) Description: BATTLE SLIMES is a fun local multiplayer game. Control speedy & bouncy slime blobs as you compete with friends and family.... | Read more »
Spectrum - 3D Avenue (Games)
Spectrum - 3D Avenue 1.0 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0 (iTunes) Description: "Spectrum is a pretty cool take on twitchy/reaction-based gameplay with enough complexity and style to stand out from the... | Read more »
Drop Wizard (Games)
Drop Wizard 1.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0 (iTunes) Description: Bring back the joy of arcade games! Drop Wizard is an action arcade game where you play as Teo, a wizard on a quest to save his... | Read more »

Price Scanner via MacPrices.net

Apple’s M4 Mac minis on sale for record-low p...
B&H Photo has M4 and M4 Pro Mac minis in stock and on sale right now for up to $150 off Apple’s MSRP, each including free 1-2 day shipping to most US addresses. Prices start at only $469: – M4... Read more
Deal Alert! Mac Studio with M4 Max CPU on sal...
B&H Photo has the standard-configuration Mac Studio model with Apple’s M4 Max CPU in stock today and on sale for $300 off MSRP, now $1699 (10-Core CPU and 32GB RAM/512GB SSD). B&H also... Read more

Jobs Board

All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.