L_ClearPlaybackUpdateRect

#include "l_bitmap.h"

L_INT EXT_FUNCTION L_ClearPlaybackUpdateRect(hPlayback)

HPLAYBACK hPlayback;

/* playback handle */

Clears the update rectangle used for an animation playback, leaving an empty rectangle.

Parameter

Description

hPlayback

Handle that references the animation playback.

Returns

SUCCESS

The function was successful.

< 1

An error occurred. Refer to Return Codes.

Required DLLs and Libraries

LTDIS

For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application.

Platforms

Windows 95 / 98 / Me, Windows 2000 / XP, Windows CE.

See Also

Functions:

L_CreatePlayback, L_DestroyPlayback,

 

L_GetPlaybackDelay, L_CancelPlaybackWait,

 

L_ProcessPlayback, L_GetPlaybackIndex,

 

L_GetPlaybackState, L_GetPlaybackUpdateRect,

 

L_SetPlaybackIndex, L_AppendPlayback,

 

L_ValidatePlaybackLines

Topics:

Raster Image Functions: Creating and Maintaining Lists of Images

 

Implementing Animation

Example

/* This example uses L_ClearPlaybackUpdateRect to avoid painting odd numbered bitmaps. */
void TestPlayback(HWND hWnd, pBITMAPHANDLE pTargetBitmap, HBITMAPLIST hList)
{
   HPALETTE hpalPaint = NULL; /* Paint palette handle */
   HPLAYBACK hPlayback;      /* Animation playback */
   L_UINT uState;            /* Next state in the playback */
   RECT rcUpdate;          /* Source clipping rectangle used in playback */
   RECT rcDisplay;         /* Display rectangle used in playback */
   HDC hdc;                /* Device context of the current window */
   HPALETTE hPalette = NULL;  /* Temporary copy of the current system palette */
   L_UINT uIndex = 0;         /* Current index to the bitmap list */
   /* Use the client area as the display rectangle */
   GetClientRect(hWnd,&rcDisplay);
   /* Create and run the playback */
   L_CreatePlayback(&hPlayback, pTargetBitmap, hList);
   do
   {
      L_ProcessPlayback(hPlayback, &uState);
      switch(uState)
      {
      case PLAYSTATE_POSTRENDER:
         L_GetPlaybackIndex(hPlayback, (L_INT L_FAR *)&uIndex);
         if(uIndex % 2)
            L_ClearPlaybackUpdateRect(hPlayback);
         L_GetPlaybackUpdateRect(hPlayback, &rcUpdate, TRUE);
         hdc = GetDC(hWnd);
         if (hpalPaint)
         {
            hPalette = SelectPalette (hdc, hpalPaint, TRUE);
            RealizePalette(hdc);
         }
         L_PaintDC(hdc, pTargetBitmap, NULL, &rcUpdate, &rcDisplay, &rcDisplay, SRCCOPY);
         if (hpalPaint)
            SelectPalette (hdc, hPalette, TRUE);
         ReleaseDC(hWnd, hdc);
         break;
      }
   } while(uState != PLAYSTATE_END);
   /* Clean up */
   L_DestroyPlayback(hPlayback, NULL);
}