Example

The following code shows a common usage of a TCachedGraphic. A cached graphic can be used anywhere an uncached MGraphic is expected.

    1  void DrawContents( TGrafPort* thePort )
    2  {
    3      TEllipse normalEllipse( TGEllipse ( TGRect( 10, 10, 20, 20 ) ),
    4          TGrafBundle( TRGBColor( 0,0,0 ) ) );
    5  
    6      TCachedGraphic fastEllipse( normalEllipse );
    7  
    8      init i;
    9      TGPoint offset( 5, 5 );
    10      for( i = 0; i < 50, i++ )
    11      {
    12          normalEllipse.Draw( port );
    13          normalEllipse.TranslateObjectBy( offset );
    14      }
    15  
    16      for( i = 0; i < 50, i++ )
    17      {
    18          fastEllipse.Draw( port );
    19          fastEllipse.TranslateObjectBy( offset );
    20      }
    21  
    22      TGPoint scale( 1.05, 1.05 );
    23      fastEllipse.ScaleBy( scale );
    24      fastEllipse.Draw( port );
    25  }
Lines 3 and 4: Create an uncached ellipse.

Line 6: Created a cached ellipse.

Lines 8 through 14: Draw 50 ellipses without caching.

Lines 16 through 20: Draw 50 ellipses with caching. The first one is slow because the cache gets initialized the first time.

Lines 22 through 24: Scale the cached ellipse. The cache is discarded and must be regenerated. This is slow.


[Contents] [Previous] [Next]
Click the icon to mail questions or corrections about this material to Taligent personnel.
Copyright©1995 Taligent,Inc. All rights reserved.

Generated with WebMaker