www.pudn.com > uCGUI3.24-MemDev-for-3.90a.rar > GUIDEV_Clear.c
/*! @file GUIDEV_Clear.c * Implementation of memory devices, add. module * * @author hiber modified * @author Copyleft (C) 1981-2006, All Rights Givenup * @date 04/18/2006 * @version * * @note * @attention * @warning * @bug * * @todo * @example* @see */ #include "GUI_Protected.h" #include "GUIDebug.h" #include #if GUI_SUPPORT_MEMDEV extern void * _GUI_ALLOC_h2p_Lock(GUI_HMEM hMem); #define GUI_ALLOC_H2P(h) _GUI_ALLOC_h2p_Lock(h) #define GUI_ALLOC_FREE(handle) GUI_ALLOC_Free(handle) #define GUI_ALLOC_LOCK(handle) _GUI_ALLOC_h2p_Lock(handle) #define GUI_ALLOC_UNLOCK(handle) #ifdef GUI_USAGE_H2P #undef GUI_USAGE_H2P #define GUI_USAGE_H2P(h) ((GUI_USAGE*)_GUI_ALLOC_h2p_Lock(h)) #endif #ifdef GUI_MEMDEV_H2P #undef GUI_MEMDEV_H2P #define GUI_MEMDEV_H2P _GUI_ALLOC_h2p_Lock #endif ////////////////////////////////////////////////////////////////////////// //! 将存储设备的所有内容标志为“未改变的”。 //! @param hMem 存储设备的句柄 //! @note 使用GUI_MEMDEV_CopyToLCD 的下一步绘图操作是, 只有在GUI_MEMDEV_Clear 和 //! GUI_MEMDEV_CopyToLCD 之间有字节改变的情况才进行写操作。 void GUI_MEMDEV_Clear(GUI_MEMDEV_Handle hMem) { if (!hMem) { if ((hMem = GUI_Context.hDevData) == 0) { return ;// 设备数据指针为NULL } } // 大括号用于建立下面的局部变量 { GUI_MEMDEV *pDev = GUI_MEMDEV_H2P(hMem);// 得到句柄指向的实际内存指针 GUI_USAGE_h hUsage = pDev->hUsage; if (hUsage) { GUI_USAGE *pUsage = GUI_USAGE_H2P(hUsage); GUI_USAGE_Clear(pUsage);// avoid compile warning } /* else { GUI_Clear(); }*/ } } #else void GUIDEV_Clear(void) { // avoid empty object files } #endif /* GUI_MEMDEV_SUPPORT */