typedef MoaUlong MoaMmXSpriteCapsFlags; #define kMoaMmXSpriteCapsFlags_None 0 #define kMoaMmXSpriteCapsFlags_IsStatic 1 /* sprite doesn't want CollectChgs() calls, use InvalSpriteRect() to request update */ #define kMoaMmXSpriteCapsFlags_AutoTabEnabled 2 /* app handles tab key */ #define kMoaMmXSpriteCapsFlags_SupportsRotation 0x04 #define kMoaMmXSpriteCapsFlags_SupportsSkew 0x08 #define kMoaMmXSpriteCapsFlags_SupportsFlipH 0x10 #define kMoaMmXSpriteCapsFlags_SupportsFlipV 0x20 #define kMoaMmXSpriteCapsFlags_SupportsQuad 0x40 #define kMoaMmXSpriteCapsFlags_SupportsAutoBounds 0x80
When a sprite gets rotated or skewed, its bounding rectangle normally changes to reflect the new maximum X and Y extents of the image on the stage. Setting SupportsAutoBounds tells Director that your Xtra is ready for Director to change its bounding box as the sprite is rotated or skewed. If you do not set this constant, Director will not adjust the bounding rectangle with the result that the sprite is cropped to the area of the original rectangle.
typedef MoaLong MoaMmBlitState; /* This is set if the author wants Director to use the quad / parameter in the MoaMmBlitParams structure to do the Blit. If / it's not set, the DstRect parameter to the function will be used. / Rotation/skew/flipH/flipV are OUTPUT values only, there are / ignored for the Blit2 call. */ #define kMoaMmBlit_UseQuadForBlit 1 typedef struct { MoaFloat rotation; MoaFloat skew; MoaBool flipH; MoaBool flipV; MoaFloat quad[4][2]; MoaMmBlitState flags; } MoaMmBlitParams; typedef MoaMmBlitParams * PMoaMmBlitParams; typedef const MoaMmBlitParams * ConstPMoaMmBlitParams; typedef struct { MoaRect spriteRect; /* rect on stage where sprite appears */ MoaMmXSpriteImageMode imageMode; /* imaged direct or to an offscreen buffer */ MoaMmXSpriteFlags flags; /* sprite FX flags (see above) */ MoaMmInk ink; /* sprite ink mode */ MoaMmInkParams inkParams; /* extra params for some inks */ MoaMmBlitParams blitParams; /* extra params for Director blit functionality */ MoaLong aux; /* reserved */ } MoaMmXSpriteInfo; typedef MoaMmXSpriteInfo * PMoaMmXSpriteInfo; typedef const MoaMmXSpriteInfo * ConstPMoaMmXSpriteInfo;
#define kMoaMmXSpriteCapsFlags_SupportsRotation 0x04 #define kMoaMmXSpriteCapsFlags_SupportsSkew 0x08 #define kMoaMmXSpriteCapsFlags_SupportsFlipH 0x10 #define kMoaMmXSpriteCapsFlags_SupportsFlipV 0x20 #define kMoaMmXSpriteCapsFlags_SupportsQuad 0x40 #define kMoaMmXSpriteCapsFlags_SupportsAutoBounds 0x80