/*********************************************************************
* SEGGER Microcontroller GmbH & Co. KG *
* Solutions for real time microcontroller applications *
**********************************************************************
* *
* (c) 1996 - 2016 SEGGER Microcontroller GmbH & Co. KG *
* *
* Internet: www.segger.com Support:
[email protected] *
* *
**********************************************************************
** emWin V5.36 - 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 ARM LIMITED whose registered office
is situated at 110 Fulbourn Road, Cambridge CB1 9NJ, England solely
for the purposes of creating libraries for ARM7, ARM9, Cortex-M
series, and Cortex-R4 processor-based devices, sublicensed and
distributed as part of the MDK-ARM Professional under the terms and
conditions of the End User License supplied with the MDK-ARM
Professional.
Full source code is available at: www.segger.com
We appreciate your understanding and fairness.
----------------------------------------------------------------------
Licensing information
Licensor: SEGGER Software GmbH
Licensed to: ARM Ltd, 110 Fulbourn Road, CB1 9NJ Cambridge, UK
Licensed SEGGER software: emWin
License number: GUI-00181
License model: LES-SLA-20007, Agreement, effective since October 1st 2011
Licensed product: MDK-ARM Professional
Licensed platform: ARM7/9, Cortex-M/R4
Licensed number of seats: -
----------------------------------------------------------------------
File : GUIDEMO_ZoomAndRotate.c
Purpose : Demo of zooming and rotating images
---------------------------END-OF-HEADER------------------------------
*/
#include "GUIDEMO.h"
#if (SHOW_GUIDEMO_ZOOMANDROTATE && GUI_WINSUPPORT && GUI_SUPPORT_MEMDEV)
/*********************************************************************
*
* Defines
*
**********************************************************************
*/
#define MAG 300
#define TITLE_SIZE 40
#define MIN_TIME_PER_FRAME_SHIFT 20
#define MIN_TIME_PER_FRAME_ENLARGE 30
#define BORDER_SIZE 4
#define FINAL_STEP 100
//
// Memory device format in dependence of color format
//
#if (GUI_USE_ARGB)
#define GUI_COLOR_CONV GUICC_M8888I
#else
#define GUI_COLOR_CONV GUICC_8888
#endif
/*********************************************************************
*
* Static const data
*
**********************************************************************
*/
/*********************************************************************
*
* _bmSeggerLogo50
*/
static GUI_CONST_STORAGE GUI_COLOR _ColorsSeggerLogo50[] = {
#if (GUI_USE_ARGB)
0xFFFFFFFF, 0xFFFFFFFF, 0xFF231F20, 0xFF989697,
0xFF6767BE, 0xFF5858B8, 0xFF959494, 0xFF2020A0,
0xFFD3D3EC, 0xFFC0BFC0, 0xFF929090, 0xFF1E1B1C,
0xFF464344, 0xFF2323A1, 0xFF2A2AA4, 0xFF3333A8,
0xFF949393, 0xFFABA9AA, 0xFFD6D6EE, 0xFFFAFAFD,
0xFFFDFDFD, 0xFFFEFEFF, 0xFF7F7D7E, 0xFF5F5FBB,
0xFF6464BD, 0xFF868485, 0xFF9F9E9E, 0xFFA3A2A2,
0xFFC3C2C2, 0xFFFEFEFE, 0xFF1E1B1B, 0xFF242021,
0xFF272425, 0xFF2F2B2C, 0xFF5C595A, 0xFF6F6C6D,
0xFF2424A2, 0xFF2828A3, 0xFF2828A4, 0xFF2C2CA5,
0xFF3939AB, 0xFF3F3FAD, 0xFF4141AE, 0xFF4242AE,
0xFF4646B0, 0xFF4A4AB2, 0xFF5151B5, 0xFF6A6AC0,
0xFF7171C3, 0xFF7979C6, 0xFF7E7EC8, 0xFF7F7FC8,
0xFF939192, 0xFFA6A4A4, 0xFFABA9A9, 0xFFBAB9B9,
0xFFBBBABA, 0xFFBEBDBD, 0xFF8383CA, 0xFF9090D0,
0xFF9494D1, 0xFF9595D2, 0xFF9A9AD4, 0xFFA8A8DA,
0xFFAFAFDD, 0xFFB0B0DD, 0xFFB3B3DF, 0xFFB5B5DF,
0xFFB8B8E1, 0xFFC0BFBF, 0xFFC9C8C8, 0xFFCECDCD,
0xFFD4D3D3, 0xFFC4C4E6, 0xFFCCCCE9, 0xFFD2D2EC,
0xFFD8D8EE, 0xFFD9D9EF, 0xFFDFDFF1, 0xFFE8E8E8,
0xFFECECEC, 0xFFE4E4F4, 0xFFE6E6F4, 0xFFE6E6F5,
0xFFEAEAF6, 0xFFF0F0F0, 0xFFF5F5F5, 0xFFF0F0F9,
0xFFF1F1F9, 0xFFF3F3FA, 0xFFF5F5FB, 0xFFF6F6FB,
0xFFFBFBFB, 0xFFF8F8FC, 0xFFFCFCFE, 0xFFFDFDFE,
0xFF080707, 0xFF141314, 0xFF262324, 0xFF272324,
0xFF282425, 0xFF2A2627, 0xFF2E2A2B, 0xFF333031,
0xFF343031, 0xFF373334, 0xFF393536, 0xFF3B3738,
0xFF3C3839, 0xFF3E3B3B, 0xFF3F3C3D, 0xFF403D3E,
0xFF454142, 0xFF4B4849, 0xFF4C494A, 0xFF4D494A,
0xFF4E4B4C, 0xFF514E4F, 0xFF535051, 0xFF555253,
0xFF585455, 0xFF595657, 0xFF5D5A5B, 0xFF5E5B5B,
0xFF5E5B5C, 0xFF5F5D5D, 0xFF625F5F, 0xFF666364,
0xFF676666, 0xFF686566, 0xFF6F6E6E, 0xFF737171,
0xFF747172, 0xFF787576, 0xFF787676, 0xFF797677,
0xFF797777, 0xFF3C3CAC, 0xFF3D3DAC, 0xFF6565BD,
0xFF817F80, 0xFF828080, 0xFF848283, 0xFF888686,
0xFF888687, 0xFF898787, 0xFF8E8B8C, 0xFF8F8D8D,
0xFF908E8E, 0xFF929191, 0xFF949293, 0xFF959393,
0xFF979596, 0xFF989696, 0xFF999797, 0xFF9E9C9D,
0xFF9F9D9E, 0xFFA09E9E, 0xFFA4A2A3, 0xFFA5A4A4,
0xFFA6A4A5, 0xFFA8A6A6, 0xFFA8A6A7, 0xFFA9A7A8,
0xFFAAA9A9, 0xFFACAAAA, 0xFFACAAAB, 0xFFADABAC,
0xFFAEADAD, 0xFFAFAEAE, 0xFFB0AFAF, 0xFFB1AFB0,
0xFFB1B0B0, 0xFFB5B3B4, 0xFFB6B4B5, 0xFFB7B6B6,
0xFFBDBCBC, 0xFFBDBCBD, 0xFFBFBEBE, 0xFFAAAADB,
0xFFACACDC, 0xFFC1C0C0, 0xFFC8C7C8, 0xFFCAC9CA,
0xFFCDCCCC, 0xFFCFCECE, 0xFFD0CFCF, 0xFFD2D1D1,
0xFFD7D6D6, 0xFFD9D8D8, 0xFFDAD9D9, 0xFFDADADA,
0xFFDBDBDB, 0xFFDCDCDC, 0xFFDEDDDE, 0xFFDEDEDE,
0xFFDBDBF0, 0xFFDCDCF0, 0xFFE2E2E2, 0xFFE4E4E4,
0xFFE5E4E5, 0xFFE9E9E9, 0xFFEBEAEA, 0xFFEBEBEB,
0xFFEDECEC, 0xFFEEEEEE, 0xFFEDEDF7, 0xFFEDEDF8,
0xFFF1F0F0, 0xFFF2F1F1, 0xFFF2F2F2, 0xFFF3F3F3,
0xFFF4F3F3, 0xFFF4F4F4, 0xFFF7F7F7, 0xFFF8F8F8,
0xFFF9F9F9, 0xFFFAFAFA, 0xFFFCFCFC
#else
0xFFFFFF, 0xFFFFFF, 0x201F23, 0x979698,
0xBE6767, 0xB85858, 0x949495, 0xA02020,
0xECD3D3, 0xC0BFC0, 0x909092, 0x1C1B1E,
0x444346, 0xA12323, 0xA42A2A, 0xA83333,
0x939394, 0xAAA9AB, 0xEED6D6, 0xFDFAFA,
0xFDFDFD, 0xFFFEFE, 0x7E7D7F, 0xBB5F5F,
0xBD6464, 0x858486, 0x9E9E9F, 0xA2A2A3,
0xC2C2C3, 0xFEFEFE, 0x1B1B1E, 0x212024,
0x252427, 0x2C2B2F, 0x5A595C, 0x6D6C6F,
0xA22424, 0xA32828, 0xA42828, 0xA52C2C,
0xAB3939, 0xAD3F3F, 0xAE4141, 0xAE4242,
0xB04646, 0xB24A4A, 0xB55151, 0xC06A6A,
0xC37171, 0xC67979, 0xC87E7E, 0xC87F7F,
0x929193, 0xA4A4A6, 0xA9A9AB, 0xB9B9BA,
0xBABABB, 0xBDBDBE, 0xCA8383, 0xD09090,
0xD19494, 0xD29595, 0xD49A9A, 0xDAA8A8,
0xDDAFAF, 0xDDB0B0, 0xDFB3B3, 0xDFB5B5,
0xE1B8B8, 0xBFBFC0, 0xC8C8C9, 0xCDCDCE,
0xD3D3D4, 0xE6C4C4, 0xE9CCCC, 0xECD2D2,
0xEED8D8, 0xEFD9D9, 0xF1DFDF, 0xE8E8E8,
0xECECEC, 0xF4E4E4, 0xF4E6E6, 0xF5E6E6,
0xF6EAEA, 0xF0F0F0, 0xF5F5F5, 0xF9F0F0,
0xF9F1F1, 0xFAF3F3, 0xFBF5F5, 0xFBF6F6,
0xFBFBFB, 0xFCF8F8, 0xFEFCFC, 0xFEFDFD,
0x070708, 0x141314, 0x242326, 0x242327,
0x252428, 0x27262A, 0x2B2A2E, 0x313033,
0x313034, 0x343337, 0x363539, 0x38373B,
0x39383C, 0x3B3B3E, 0x3D3C3F, 0x3E3D40,
0x424145, 0x49484B, 0x4A494C, 0x4A494D,
0x4C4B4E, 0x4F4E51, 0x515053, 0x535255,
0x555458, 0x575659, 0x5B5A5D, 0x5B5B5E,
0x5C5B5E, 0x5D5D5F, 0x5F5F62, 0x646366,
0x666667, 0x666568, 0x6E6E6F, 0x717173,
0x727174, 0x767578, 0x767678, 0x777679,
0x777779, 0xAC3C3C, 0xAC3D3D, 0xBD6565,
0x807F81, 0x808082, 0x838284, 0x868688,
0x878688, 0x878789, 0x8C8B8E, 0x8D8D8F,
0x8E8E90, 0x919192, 0x939294, 0x939395,
0x969597, 0x969698, 0x979799, 0x9D9C9E,
0x9E9D9F, 0x9E9EA0, 0xA3A2A4, 0xA4A4A5,
0xA5A4A6, 0xA6A6A8, 0xA7A6A8, 0xA8A7A9,
0xA9A9AA, 0xAAAAAC, 0xABAAAC,