00001 //============================================================================= 00002 // filename: RmUtilSmartEraseBackground.h 00003 // 00004 // ATI Research, Inc. 00005 // 3D Application Research Group 00006 // 00007 // description: This set of functions enable windows to reduce the flicker 00008 // noticed when window backgrounds are erased. This is done 00009 // by re-routing the WM_ERASEBKGND handler for all windows, 00010 // recursively including all of the child windows, registered 00011 // through the RmAddSmartEraseWindow function. All windows, 00012 // including MFC controls will be handled by use of window 00013 // hook functions. This re-routed handler excludes specific 00014 // regions when the erase background is performed, thus 00015 // reducing the amount of flicker. 00016 // 00017 //============================================================================= 00018 // (C) 2004 ATI Research, Inc. All rights reserved. 00019 //============================================================================= 00020 00021 #ifndef _RM_UTILITIES_SMART_ERASE_H_ 00022 #define _RM_UTILITIES_SMART_ERASE_H_ 00023 00024 //============================================================================= 00028 //============================================================================= 00029 00030 //----------------------------------------------------------------------------- 00034 //----------------------------------------------------------------------------- 00035 RMUTIL_API void RmInitSmartEraseWindow(); 00036 00037 //----------------------------------------------------------------------------- 00041 //----------------------------------------------------------------------------- 00042 RMUTIL_API void RmUninitializeSmartEraseWindow(); 00043 00044 //----------------------------------------------------------------------------- 00052 //----------------------------------------------------------------------------- 00053 RMUTIL_API void RmAddSmartEraseWindow( HWND hWnd, COLORREF rgbBackground, bool bFillBackground = true ); 00054 00055 //----------------------------------------------------------------------------- 00060 //----------------------------------------------------------------------------- 00061 RMUTIL_API void RmRemoveSmartEraseWindow( HWND hWnd ); 00062 00063 //----------------------------------------------------------------------------- 00068 //----------------------------------------------------------------------------- 00069 RMUTIL_API bool RmIsSmartEraseWindow( HWND hWnd ); 00070 00071 00072 //----------------------------------------------------------------------------- 00078 //----------------------------------------------------------------------------- 00079 RMUTIL_API void RmAddSmartEraseIncludeWindow( HWND hWnd, bool bIncludeChildren = false ); 00080 00081 //----------------------------------------------------------------------------- 00086 //----------------------------------------------------------------------------- 00087 RMUTIL_API void RmRemoveSmartEraseIncludeWindow( HWND hWnd ); 00088 00089 //----------------------------------------------------------------------------- 00094 //----------------------------------------------------------------------------- 00095 RMUTIL_API bool RmIsSmartEraseIncludeWindow( HWND hWnd ); 00096 00097 00098 //----------------------------------------------------------------------------- 00105 //----------------------------------------------------------------------------- 00106 RMUTIL_API void RmAddSmartEraseExcludeWindow( HWND hWnd, bool bExcludeChildren = false ); 00107 00108 //----------------------------------------------------------------------------- 00113 //----------------------------------------------------------------------------- 00114 RMUTIL_API void RmRemoveSmartEraseExcludeWindow( HWND hWnd ); 00115 00116 //----------------------------------------------------------------------------- 00121 //----------------------------------------------------------------------------- 00122 RMUTIL_API bool RmIsSmartEraseExcludeWindow( HWND hWnd ); 00123 00124 00125 #endif // __RMUTIL_SMART_BACKGROUND_ERASE_H__
1.3.6