NXP
/
rt1050_emwin_gui_demo
RT1050 GUI demo using emWin library
Diff: emwin/emWin_header/GUIDRV_DCache_Private.h
- Revision:
- 0:dd702039127a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emwin/emWin_header/GUIDRV_DCache_Private.h Thu Sep 20 19:16:34 2018 +0000 @@ -0,0 +1,147 @@ +/********************************************************************* +* SEGGER Microcontroller GmbH & Co. KG * +* Solutions for real time microcontroller applications * +********************************************************************** +* * +* (c) 1996 - 2016 SEGGER Microcontroller GmbH & Co. KG * +* * +* Internet: www.segger.com Support: support@segger.com * +* * +********************************************************************** + +** emWin V5.38 - Graphical user interface for embedded applications ** +All Intellectual Property rights in the Software belongs to SEGGER. +emWin is protected by international copyright laws. Knowledge of the +source code may not be used to write a similar product. This file may +only be used in accordance with the following terms: + +The software has been licensed to NXP Semiconductors USA, Inc. whose +registered office is situated at 411 E. Plumeria Drive, San Jose, +CA 95134, USA solely for the purposes of creating libraries for +NXPs M0, M3/M4 and ARM7/9 processor-based devices, sublicensed and +distributed under the terms and conditions of the NXP End User License +Agreement. +Full source code is available at: www.segger.com + +We appreciate your understanding and fairness. +---------------------------------------------------------------------- +Licensing information + +Licensor: SEGGER Microcontroller Systems LLC +Licensed to: NXP Semiconductors, 1109 McKay Dr, M/S 76, San Jose, CA 95131, USA +Licensed SEGGER software: emWin +License number: GUI-00186 +License model: emWin License Agreement, dated August 20th 2011 +Licensed product: - +Licensed platform: NXP's ARM 7/9, Cortex-M0,M3,M4 +Licensed number of seats: - +---------------------------------------------------------------------- +File : GUIDRV_DCache_Private.h +Purpose : Private declarations for GUIDRV_DCache driver +---------------------------END-OF-HEADER------------------------------ +*/ + +#ifndef GUIDRV_DCACHE_PRIVATE_H +#define GUIDRV_DCACHE_PRIVATE_H + +#include "GUIDRV_DCache.h" + +#if defined(__cplusplus) +extern "C" { /* Make sure we have C-declarations in C++ programs */ +#endif + +/********************************************************************* +* +* Defines +* +********************************************************************** +*/ +// +// Use unique context identified +// +#define DRIVER_CONTEXT DRIVER_CONTEXT_DCACHE + +/********************************************************************* +* +* Types +* +********************************************************************** +*/ +/********************************************************************* +* +* DRIVER_CONTEXT +*/ +typedef struct { + // + // Data + // + int xSize, ySize; // Display size + int vxSize, vySize; // Virtual display size + int BitsPerPixelDriver; + int BitsPerPixel; + int NumColors; + LCD_PIXELINDEX IndexMask; + U32 MemSize; + GUI_RECT rDirty; + const GUI_DEVICE_API * pMemdev_API; + // + // Cache mamagement + // + void (* pfFlush )(GUI_DEVICE * pDevice); + void (* pfSendCacheRect)(GUI_DEVICE * pDevice, int x0, int y0, int x1, int y1); + // + // Setting the rectangle to be filled up within the real driver + // + void (* pfSetRect )(GUI_DEVICE * pDevice, int x0, int y0, int x1, int y1, int OnOff); + // + // Mode dependent drawing functions + // + void (* pfDrawBitmap )(GUI_DEVICE * pDevice, int x0, int y0, int xsize, int ysize, int _BitsPerPixel, int BytesPerLine, const U8 * pData, int Diff, const LCD_PIXELINDEX * pTrans); + void (* pfFillRect )(GUI_DEVICE * pDevice, int x0, int y0, int x1, int y1); + LCD_PIXELINDEX (* pfGetPixelIndex)(GUI_DEVICE * pDevice, int x, int y); + void (* pfSetPixelIndex)(GUI_DEVICE * pDevice, int x, int y, LCD_PIXELINDEX ColorIndex); + // + // Request information + // + I32 (* pfGetDevProp )(GUI_DEVICE * pDevice, int Index); + // + // Initialization + // + void (* pfInit) (GUI_DEVICE * pDevice); + // + // Conversion array from cache to real display driver + // + LCD_PIXELINDEX * pConvert; + LCD_PIXELINDEX * pIndex; + // + // Cache + // + U8 * pVRAM; + U8 * pVRAM_Lock; + int CacheLocked; + int CacheStat; + int CacheDirty; + // + // The driver which is used for the actual drawing operations + // + GUI_DEVICE * pDriver; +} DRIVER_CONTEXT; + +/********************************************************************* +* +* Private interface +* +********************************************************************** +*/ +void GUIDRV_DCache__AddDirtyRect (DRIVER_CONTEXT * pContext, int x0, int y0, int x1, int y1); +void GUIDRV_DCache__ClearDirtyRect(DRIVER_CONTEXT * pContext); +void GUIDRV_DCache__InitOnce (GUI_DEVICE * pDevice); + +#if defined(__cplusplus) +} +#endif + +#endif /* GUIDRV_DCACHE_PRIVATE_H */ + +/*************************** End of file ****************************/ +