annotate BootLoader/Src/gfx_engine_mini.c @ 1016:0dd92e9b70a2 BootloaderOstc5

Bootloader use compressed fonts: The previous Bootloader was larger than 128k => not fitting into the first sectors of the second flash bank. Most memory is occupied by the two fonts in use. In order to make the bootloader small enough for the bootloader update function the fonts need to be compressed. To avoid code changes in visualization functions the compressed fonts are decompressed into RAM and then used in the same way as before.
author Ideenmodellierer
date Wed, 28 May 2025 17:20:44 +0200
parents 23e94766d00a
children 493a5903ec20
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
985
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1 /**
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2 ******************************************************************************
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3 * @file gfx_engine.c
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
4 * @author heinrichs weikamp gmbh
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
5 * @version V0.0.2
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
6 * @date 30-April-2014
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
7 * @brief Main source file of GFX Graphic Engine
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
8 * This file provides firmware functions to manage the following
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
9 * functions to draw on the screen:
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
10 * + write string to display
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
11 *
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
12 ******************************************************************************
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
13 * @attention
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
14 *
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
15 * <h2><center>&copy; COPYRIGHT(c) 2014 heinrichs weikamp</center></h2>
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
16 *
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
17 ******************************************************************************
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
18 */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
19
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
20 /* Includes ------------------------------------------------------------------*/
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
21
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
22 #include <stdlib.h>
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
23 #include <stdint.h>
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
24
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
25 #include "stm32f4xx_hal.h"
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
26
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
27 #include "gfx.h"
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
28 #include "gfx_engine.h"
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
29 #include "gfx_fonts.h"
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
30 #include "gfx_colors.h"
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
31 #include "ostc.h"
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
32 #include "settings.h"
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
33 #include "text_multilanguage.h"
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
34
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
35 /* Exported variables --------------------------------------------------------*/
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
36
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
37 /* Private types -------------------------------------------------------------*/
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
38
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
39 #define RING_BUF_SIZE (5u)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
40 #define MAX_COLOR_STRING_LENGTH (100u)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
41
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
42 typedef struct
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
43 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
44 uint32_t Xdelta;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
45 uint32_t Ydelta;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
46 uint8_t invert;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
47 uint8_t color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
48 uint8_t dualFont;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
49 uint8_t resize;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
50 uint32_t font;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
51 uint8_t spaceMode;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
52 uint8_t singleSpaceWithSizeOfNextChar;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
53 uint8_t useTinyFont;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
54 uint32_t TinyFont;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
55 int8_t TinyFontExtraYdelta;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
56 tFont *actualFont;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
57 uint8_t doubleSize;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
58 } GFX_CfgWriteString;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
59
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
60 typedef struct
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
61 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
62 uint32_t pBuffer;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
63 uint32_t height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
64 uint32_t width;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
65 uint32_t leftStart;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
66 uint32_t bottomStart;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
67 } GFX_layerSingle;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
68 /*
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
69 typedef struct
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
70 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
71 GFX_layerSingle top;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
72 GFX_layerSingle bottom;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
73 } GFX_layersTopBottom;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
74 */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
75 typedef struct
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
76 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
77 uint32_t pActualTopBuffer;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
78 uint32_t pNextTopBuffer[RING_BUF_SIZE];
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
79 GFX_layerSingle actualBottom;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
80 GFX_layerSingle nextBottom[RING_BUF_SIZE];
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
81 uint8_t NextTopWrite;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
82 uint8_t NextBottomWrite;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
83 uint8_t NextTopRead;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
84 uint8_t NextBottomRead;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
85 } GFX_layerControl;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
86
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
87 typedef struct
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
88 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
89 uint32_t StartAddress;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
90 int8_t status;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
91 uint8_t caller;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
92 } SFrameList;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
93
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
94 enum FRAMESTATE
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
95 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
96 CLEAR = 0,
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
97 BLOCKED,
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
98 RELEASED
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
99 };
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
100
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
101 enum LOGOSTATE
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
102 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
103 LOGOOFF = 0,
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
104 LOGOSTART = 1,
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
105 LOGOSTOP = 255
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
106 };
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
107
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
108 // should be 43
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
109 #define MAXFRAMES 39
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
110
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
111 #define SDRAM_BANK_ADDR ((uint32_t)0xD0000000)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
112 #define FBGlobalStart SDRAM_BANK_ADDR
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
113 #define FBOffsetEachIndex (800*480*2)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
114
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
115 #define SDRAM_DOUBLE_BUFFER_ONE ((uint32_t)(FBGlobalStart + (MAXFRAMES * FBOffsetEachIndex)))
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
116 #define SDRAM_DOUBLE_BUFFER_TWO ((uint32_t)(SDRAM_DOUBLE_BUFFER_ONE + (2 * FBOffsetEachIndex)))
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
117 #define SDRAM_DOUBLE_BUFFER_END ((uint32_t)(SDRAM_DOUBLE_BUFFER_TWO + (2 * FBOffsetEachIndex)))
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
118
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
119 /* Semi Private variables ---------------------------------------------------------*/
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
120
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
121 DMA2D_HandleTypeDef Dma2dHandle;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
122 static LTDC_HandleTypeDef LtdcHandle;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
123
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
124 /* Private variables ---------------------------------------------------------*/
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
125
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
126 static uint8_t DMA2D_at_work = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
127
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
128 static GFX_layerControl FrameHandler = { 0 };
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
129
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
130 static uint32_t pInvisibleFrame = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
131 static uint32_t pLogoFrame = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
132 static uint8_t logoStatus;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
133 static uint32_t pBackgroundHwFrame = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
134 static uint8_t backgroundHwStatus;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
135
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
136 static SFrameList frame[MAXFRAMES];
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
137
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
138 static void GFX_clear_frame_immediately(uint32_t pDestination);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
139 static void GFX_draw_image_color(GFX_DrawCfgScreen *hgfx, SWindowGimpStyle window, const tImage *image);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
140 /* ITM Trace-----------------------------------------------------------------*/
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
141
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
142 #include "stdio.h"
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
143
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
144 #define ITM_Port8(n) (*((volatile unsigned char *)(0xE0000000+4*n)))
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
145 #define ITM_Port16(n) (*((volatile unsigned short*)(0xE0000000+4*n)))
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
146 #define ITM_Port32(n) (*((volatile unsigned long *)(0xE0000000+4*n)))
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
147
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
148 #define DEMCR (*((volatile unsigned long *)(0xE000EDFC)))
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
149 #define TRCENA 0x01000000
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
150
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
151 struct __FILE { int handle; /* Add whatever needed */ };
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
152 FILE __stdout;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
153 FILE __stdin;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
154
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
155 int fputc(int ch, FILE *f) {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
156 if (DEMCR & TRCENA) {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
157 while (ITM_Port32(0) == 0);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
158 ITM_Port8(0) = ch;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
159 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
160 return(ch);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
161 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
162
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
163 uint32_t MinU32GFX(uint32_t a, uint32_t b)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
164 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
165 return ((a<b)?a:b);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
166 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
167
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
168
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
169 uint32_t MaxU32GFX(uint32_t a, uint32_t b)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
170 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
171 return((a>b)?a:b);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
172 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
173
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
174 /* Private function prototypes -----------------------------------------------*/
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
175
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
176 static uint32_t GFX_write_char(GFX_DrawCfgWindow* hgfx, GFX_CfgWriteString* cfg, uint8_t character, tFont *Font);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
177 static uint32_t GFX_write_substring(GFX_CfgWriteString* cfg, GFX_DrawCfgWindow* hgfx, uint8_t textId, int8_t nextCharFor2Byte);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
178 static void GFX_Error_Handler(void);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
179 static void GFX_Dma2d_TransferComplete(DMA2D_HandleTypeDef* Dma2dHandle);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
180 static void GFX_Dma2d_TransferError(DMA2D_HandleTypeDef* Dma2dHandle);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
181 static void GFX_clear_frame_dma2d(uint8_t frameId);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
182
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
183 static uint32_t GFX_doubleBufferOne(void);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
184 static uint32_t GFX_doubleBufferTwo(void);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
185
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
186 static void GFX_LTDC_Init_display1(void);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
187
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
188
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
189 /* Exported functions --------------------------------------------------------*/
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
190
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
191 uint8_t GFX_logoStatus(void)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
192 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
193 return logoStatus;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
194 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
195
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
196 void GFX_SetWindowLayer0(uint32_t pDestination, int16_t XleftGimpStyle, int16_t XrightGimpStyle, int16_t YtopGimpStyle, int16_t YbottomGimpStyle)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
197 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
198 int16_t XSize, YSize, X0, Y0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
199
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
200 if(XleftGimpStyle < 0) XleftGimpStyle = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
201 if(XrightGimpStyle < 0) XrightGimpStyle = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
202 if(XleftGimpStyle > 799) XleftGimpStyle = 800;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
203 if(XrightGimpStyle > 799) XrightGimpStyle = 800;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
204
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
205 if(YtopGimpStyle < 0) YtopGimpStyle = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
206 if(YbottomGimpStyle < 0) YbottomGimpStyle = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
207 if(YtopGimpStyle > 479) YtopGimpStyle = 480;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
208 if(YbottomGimpStyle > 479) YbottomGimpStyle = 480;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
209
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
210 /*
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
211 XSize = YbottomGimpStyle - YtopGimpStyle;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
212 YSize = XrightGimpStyle - XleftGimpStyle;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
213 if((XSize <= 0) || (YSize <= 0))
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
214 return;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
215 X0 = 479 - YbottomGimpStyle;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
216 Y0 = XleftGimpStyle;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
217 while((LTDC->CPSR & LTDC_CPSR_CYPOS) <= (uint32_t)800);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
218 HAL_LTDC_SetWindowSize(&LtdcHandle, XSize, YSize, LayerIdx);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
219 HAL_LTDC_SetWindowPosition(&LtdcHandle, X0, Y0,LayerIdx);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
220 HAL_LTDC_SetAddress(&LtdcHandle, pDestination, LayerIdx);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
221 */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
222
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
223 XSize = XrightGimpStyle - XleftGimpStyle;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
224 YSize = YbottomGimpStyle - YtopGimpStyle;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
225 if((XSize <= 0) || (YSize <= 0))
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
226 return;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
227 Y0 = 479 - YbottomGimpStyle;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
228 X0 = XleftGimpStyle;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
229
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
230 GFX_SetFrameBottom(pDestination, X0, Y0, XSize, YSize);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
231 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
232
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
233
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
234 void GFX_logoAutoOff(void)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
235 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
236 if(logoStatus == LOGOOFF)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
237 logoStatus = LOGOSTART;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
238 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
239
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
240
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
241 void GFX_hwBackgroundOn(void)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
242 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
243 backgroundHwStatus = LOGOSTART;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
244 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
245
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
246
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
247 void GFX_hwBackgroundOff(void)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
248 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
249 backgroundHwStatus = LOGOSTOP;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
250 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
251
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
252 void GFX_build_hw_background_frame(void)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
253 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
254 GFX_DrawCfgScreen tLogoTemp;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
255 SWindowGimpStyle windowGimp;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
256
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
257 pBackgroundHwFrame = getFrame(1);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
258 backgroundHwStatus = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
259
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
260 tLogoTemp.FBStartAdress = pBackgroundHwFrame;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
261 tLogoTemp.ImageHeight = 480;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
262 tLogoTemp.ImageWidth = 800;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
263 tLogoTemp.LayerIndex = 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
264
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
265 windowGimp.left = (800 - 400) / 2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
266 windowGimp.top = 0;//(480 - 46) / 2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
267
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
268 GFX_draw_image_color(&tLogoTemp, windowGimp, &ImgHWcolor);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
269 /*
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
270 char localtext[256];
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
271 uint8_t ptr = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
272
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
273 localtext[ptr++] = ' ';
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
274 localtext[ptr++] = ' ';
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
275 localtext[ptr++] = 'O';
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
276 localtext[ptr++] = 'S';
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
277 localtext[ptr++] = ' ';
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
278 ptr += GFX_printf_firmware(&localtext[ptr]);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
279 localtext[ptr] = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
280
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
281 write_content_simple(&tLogoTemp, 0, 800, 240-24, &FontT24,localtext,CLUT_Font020);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
282 */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
283 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
284
1016
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1002
diff changeset
285 void decompressFont(const tFont* pFont, const tImageComp** pFontComp)
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1002
diff changeset
286 {
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1002
diff changeset
287 uint16_t indexFont = 0;
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1002
diff changeset
288 uint16_t indexData = 0;
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1002
diff changeset
289 uint8_t data = 0;
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1002
diff changeset
290 uint8_t count = 0;
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1002
diff changeset
291 uint8_t targetIndex = 0;
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1002
diff changeset
292 uint8_t* pPixel;
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1002
diff changeset
293
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1002
diff changeset
294 for (indexFont = 0; indexFont < pFont->length; indexFont++)
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1002
diff changeset
295 {
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1002
diff changeset
296 pPixel = (uint8_t*)pFont->chars[indexFont].image->data;
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1002
diff changeset
297 for(indexData = 0; indexData < pFontComp[indexFont]->sizeComp; indexData += 2)
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1002
diff changeset
298 {
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1002
diff changeset
299 data = pFontComp[indexFont]->dataComp[indexData];
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1002
diff changeset
300 count = pFontComp[indexFont]->dataComp[indexData + 1];
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1002
diff changeset
301 for (targetIndex = 0; targetIndex < count; targetIndex++)
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1002
diff changeset
302 {
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1002
diff changeset
303 *pPixel++ = data;
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1002
diff changeset
304 }
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1002
diff changeset
305 }
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1002
diff changeset
306 }
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1002
diff changeset
307 }
985
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
308
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
309 void GFX_build_logo_frame(void)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
310 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
311 GFX_DrawCfgScreen tLogoTemp;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
312 SWindowGimpStyle windowGimp;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
313
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
314 pLogoFrame = getFrame(1);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
315 logoStatus = LOGOOFF;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
316
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
317 tLogoTemp.FBStartAdress = pLogoFrame;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
318 tLogoTemp.ImageHeight = 480;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
319 tLogoTemp.ImageWidth = 800;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
320 tLogoTemp.LayerIndex = 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
321
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
322 windowGimp.left = (800 - 400) / 2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
323 windowGimp.top = (480 - 46) / 2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
324
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
325 GFX_draw_image_color(&tLogoTemp, windowGimp, &ImgHWcolor);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
326 /*
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
327 char localtext[256];
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
328 uint8_t ptr = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
329
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
330 localtext[ptr++] = ' ';
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
331 localtext[ptr++] = ' ';
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
332 localtext[ptr++] = 'O';
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
333 localtext[ptr++] = 'S';
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
334 localtext[ptr++] = ' ';
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
335 ptr += GFX_printf_firmware(&localtext[ptr]);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
336 localtext[ptr] = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
337
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
338 write_content_simple(&tLogoTemp, 0, 800, 240-24, &FontT24,localtext,CLUT_Font020);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
339 */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
340 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
341
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
342 void GFX_init(uint32_t * pDestinationOut)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
343 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
344 frame[0].StartAddress = FBGlobalStart;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
345 GFX_clear_frame_immediately(frame[0].StartAddress);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
346 frame[0].status = CLEAR;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
347 frame[0].caller = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
348
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
349 for(int i=1;i<MAXFRAMES;i++)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
350 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
351 frame[i].StartAddress = frame[i-1].StartAddress + FBOffsetEachIndex;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
352 GFX_clear_frame_immediately(frame[i].StartAddress);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
353 frame[i].status = CLEAR;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
354 frame[i].caller = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
355 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
356
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
357 pInvisibleFrame = getFrame(2);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
358 *pDestinationOut = pInvisibleFrame;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
359
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
360 GFX_build_logo_frame();
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
361 GFX_build_hw_background_frame();
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
362
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
363 /* Register to memory mode with ARGB8888 as color Mode */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
364 Dma2dHandle.Init.Mode = DMA2D_R2M;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
365 Dma2dHandle.Init.ColorMode = DMA2D_ARGB4444;//to fake AL88, before: DMA2D_ARGB8888;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
366 Dma2dHandle.Init.OutputOffset = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
367
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
368 /* DMA2D Callbacks Configuration */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
369 Dma2dHandle.XferCpltCallback = GFX_Dma2d_TransferComplete;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
370 Dma2dHandle.XferErrorCallback = GFX_Dma2d_TransferError;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
371
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
372 Dma2dHandle.Instance = DMA2D;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
373
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
374 /* DMA2D Initialisation */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
375 if(HAL_DMA2D_Init(&Dma2dHandle) != HAL_OK)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
376 GFX_Error_Handler();
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
377
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
378 if(HAL_DMA2D_ConfigLayer(&Dma2dHandle, 1) != HAL_OK)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
379 GFX_Error_Handler();
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
380
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
381 DMA2D_at_work = 255;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
382 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
383 void GFX_init1_no_DMA(uint32_t * pDestinationOut, uint8_t blockFrames)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
384 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
385 frame[0].StartAddress = FBGlobalStart;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
386 GFX_clear_frame_immediately(frame[0].StartAddress);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
387 frame[0].status = CLEAR;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
388 frame[0].caller = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
389
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
390 for(int i=1;i<MAXFRAMES;i++)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
391 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
392 frame[i].StartAddress = frame[i-1].StartAddress + FBOffsetEachIndex;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
393 GFX_clear_frame_immediately(frame[i].StartAddress);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
394 frame[i].status = CLEAR;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
395 frame[i].caller = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
396 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
397
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
398 for(int i=0;i<blockFrames;i++)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
399 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
400 frame[i].status = BLOCKED;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
401 frame[i].caller = 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
402 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
403
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
404 pInvisibleFrame = getFrame(2);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
405 *pDestinationOut = pInvisibleFrame;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
406
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
407 GFX_build_logo_frame();
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
408 GFX_build_hw_background_frame();
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
409 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
410
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
411
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
412 void GFX_init2_DMA(void)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
413 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
414 /* Register to memory mode with ARGB8888 as color Mode */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
415 Dma2dHandle.Init.Mode = DMA2D_R2M;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
416 Dma2dHandle.Init.ColorMode = DMA2D_ARGB4444;//to fake AL88, before: DMA2D_ARGB8888;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
417 Dma2dHandle.Init.OutputOffset = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
418
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
419 /* DMA2D Callbacks Configuration */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
420 Dma2dHandle.XferCpltCallback = GFX_Dma2d_TransferComplete;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
421 Dma2dHandle.XferErrorCallback = GFX_Dma2d_TransferError;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
422
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
423 Dma2dHandle.Instance = DMA2D;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
424
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
425 /* DMA2D Initialisation */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
426 if(HAL_DMA2D_Init(&Dma2dHandle) != HAL_OK)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
427 GFX_Error_Handler();
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
428
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
429 if(HAL_DMA2D_ConfigLayer(&Dma2dHandle, 1) != HAL_OK)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
430 GFX_Error_Handler();
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
431
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
432 DMA2D_at_work = 255;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
433 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
434
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
435
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
436 void GFX_SetFrameTop(uint32_t pDestination)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
437 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
438 uint8_t NextTopWork = FrameHandler.NextTopWrite + 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
439
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
440 if(NextTopWork == RING_BUF_SIZE)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
441 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
442 NextTopWork = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
443 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
444
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
445 if(pDestination == 0)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
446 pDestination = pInvisibleFrame;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
447
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
448 FrameHandler.pNextTopBuffer[NextTopWork] = pDestination;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
449 FrameHandler.NextTopWrite = NextTopWork;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
450 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
451
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
452
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
453 void GFX_SetFrameBottom(uint32_t pDestination, uint32_t x0, uint32_t y0, uint32_t width, uint32_t height)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
454 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
455 uint8_t NextBottomWork = FrameHandler.NextBottomWrite + 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
456
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
457 if(NextBottomWork == RING_BUF_SIZE)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
458 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
459 NextBottomWork = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
460 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
461
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
462 if(pDestination == 0)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
463 pDestination = pInvisibleFrame;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
464
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
465 FrameHandler.nextBottom[NextBottomWork].pBuffer = pDestination;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
466 FrameHandler.nextBottom[NextBottomWork].height = height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
467 FrameHandler.nextBottom[NextBottomWork].width = width;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
468 FrameHandler.nextBottom[NextBottomWork].leftStart = x0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
469 FrameHandler.nextBottom[NextBottomWork].bottomStart = y0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
470 FrameHandler.NextBottomWrite = NextBottomWork;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
471 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
472
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
473
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
474 void GFX_SetFramesTopBottom(uint32_t pTop, uint32_t pBottom, uint32_t heightBottom)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
475 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
476 GFX_SetFrameTop(pTop);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
477 GFX_SetFrameBottom(pBottom, 0, 0, 800, heightBottom);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
478 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
479
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
480
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
481 static uint32_t GFX_get_pActualFrameTop(void)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
482 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
483 return FrameHandler.pActualTopBuffer;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
484 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
485
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
486
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
487 static uint32_t GFX_get_pActualFrameBottom(void)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
488 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
489 return FrameHandler.actualBottom.pBuffer;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
490 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
491
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
492
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
493 void GFX_start_VSYNC_IRQ(void)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
494 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
495 GPIO_InitTypeDef GPIO_InitStructure;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
496
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
497 GPIO_InitStructure.Mode = GPIO_MODE_IT_FALLING;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
498 GPIO_InitStructure.Pull = GPIO_NOPULL;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
499 GPIO_InitStructure.Speed = GPIO_SPEED_LOW;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
500 GPIO_InitStructure.Pin = VSYNC_IRQ_PIN;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
501 HAL_GPIO_Init(VSYNC_IRQ_GPIO_PORT, &GPIO_InitStructure);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
502
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
503 HAL_NVIC_SetPriority(VSYNC_IRQ_EXTI_IRQn, 1, 0);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
504 HAL_NVIC_EnableIRQ(VSYNC_IRQ_EXTI_IRQn);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
505 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
506
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
507
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
508 void GFX_change_LTDC(void)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
509 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
510 uint32_t pTop = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
511 uint32_t pBot = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
512 uint32_t heightBot = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
513 uint32_t widthBot = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
514 uint32_t leftStartBot = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
515 uint32_t bottomStartBot = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
516 uint8_t change_position = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
517 uint8_t change_size = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
518 uint8_t nextBottomBackup = FrameHandler.NextBottomRead; /* Restore entry value in case off logo handling */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
519
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
520 // Top Frame
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
521 if(FrameHandler.NextTopRead != FrameHandler.NextTopWrite)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
522 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
523 FrameHandler.NextTopRead++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
524 if(FrameHandler.NextTopRead == RING_BUF_SIZE)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
525 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
526 FrameHandler.NextTopRead = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
527 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
528 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
529 pTop = FrameHandler.pNextTopBuffer[FrameHandler.NextTopRead];
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
530
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
531 if(FrameHandler.pActualTopBuffer != pTop)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
532 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
533 HAL_LTDC_SetAddress(&LtdcHandle, pTop, 1);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
534 FrameHandler.pActualTopBuffer = pTop;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
535 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
536
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
537 // Bottom Frame
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
538 if(FrameHandler.NextBottomRead != FrameHandler.NextBottomWrite)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
539 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
540 FrameHandler.NextBottomRead++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
541 if(FrameHandler.NextBottomRead == RING_BUF_SIZE)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
542 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
543 FrameHandler.NextBottomRead = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
544 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
545 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
546 if(logoStatus != LOGOOFF)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
547 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
548 switch(logoStatus)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
549 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
550 case LOGOSTART:
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
551 HAL_LTDC_SetAlpha(&LtdcHandle, 0, 1);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
552 HAL_LTDC_SetAlpha(&LtdcHandle, 34, 0);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
553 HAL_LTDC_ConfigCLUT(&LtdcHandle, (uint32_t *)indexHWcolor, indexHWcolorSIZE, 0);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
554 HAL_LTDC_SetAddress(&LtdcHandle, pLogoFrame, 0);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
555 HAL_LTDC_SetWindowSize(&LtdcHandle, 480, 800, 0);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
556 HAL_LTDC_SetWindowPosition(&LtdcHandle, 0, 0, 0);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
557 logoStatus = 2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
558 FrameHandler.NextBottomRead = nextBottomBackup;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
559 break;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
560
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
561 case LOGOSTOP:
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
562 HAL_LTDC_SetAlpha(&LtdcHandle, 255, 1);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
563 HAL_LTDC_ConfigCLUT(&LtdcHandle, ColorLUT, CLUT_END, 0);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
564
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
565 pBot = FrameHandler.nextBottom[FrameHandler.NextBottomRead].pBuffer;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
566 heightBot = FrameHandler.nextBottom[FrameHandler.NextBottomRead].height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
567 widthBot = FrameHandler.nextBottom[FrameHandler.NextBottomRead].width;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
568 leftStartBot = FrameHandler.nextBottom[FrameHandler.NextBottomRead].leftStart;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
569 bottomStartBot = FrameHandler.nextBottom[FrameHandler.NextBottomRead].bottomStart;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
570 HAL_LTDC_SetWindowSize(&LtdcHandle, heightBot, widthBot, 0);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
571 HAL_LTDC_SetWindowPosition(&LtdcHandle, bottomStartBot, leftStartBot, 0);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
572 HAL_LTDC_SetAddress(&LtdcHandle, pBot, 0);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
573 HAL_LTDC_SetAlpha(&LtdcHandle, 255, 0);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
574 FrameHandler.actualBottom.height = heightBot;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
575 FrameHandler.actualBottom.width = widthBot;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
576 FrameHandler.actualBottom.leftStart = leftStartBot;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
577 FrameHandler.actualBottom.bottomStart = bottomStartBot;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
578 FrameHandler.actualBottom.pBuffer = pBot;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
579
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
580 logoStatus = LOGOOFF;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
581 if(backgroundHwStatus == 2)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
582 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
583 backgroundHwStatus = LOGOSTART;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
584 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
585 break;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
586 default:
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
587 if(logoStatus < 35)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
588 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
589 logoStatus++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
590 if(logoStatus <= 15)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
591 HAL_LTDC_SetAlpha(&LtdcHandle, 17*logoStatus, 0);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
592 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
593 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
594 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
595 logoStatus +=20;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
596 HAL_LTDC_SetAlpha(&LtdcHandle, logoStatus-55, 1);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
597 HAL_LTDC_SetAlpha(&LtdcHandle, 255+55-logoStatus, 0);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
598 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
599 FrameHandler.NextBottomRead = nextBottomBackup;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
600 break;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
601 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
602 return;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
603 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
604 else if (backgroundHwStatus != LOGOOFF)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
605 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
606
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
607 switch(backgroundHwStatus)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
608 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
609 case LOGOSTART:
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
610 HAL_LTDC_ConfigCLUT(&LtdcHandle, (uint32_t *)indexHWcolor, indexHWcolorSIZE, 0);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
611 HAL_LTDC_SetAddress(&LtdcHandle, pBackgroundHwFrame, 0);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
612 HAL_LTDC_SetWindowSize(&LtdcHandle, 480, 800, 0);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
613 HAL_LTDC_SetWindowPosition(&LtdcHandle, 0, 0, 0);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
614 backgroundHwStatus = 2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
615 FrameHandler.NextBottomRead = nextBottomBackup;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
616 break;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
617
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
618 case LOGOSTOP:
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
619 HAL_LTDC_ConfigCLUT(&LtdcHandle, ColorLUT, CLUT_END, 0);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
620 pBot = FrameHandler.nextBottom[FrameHandler.NextBottomRead].pBuffer;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
621 heightBot = FrameHandler.nextBottom[FrameHandler.NextBottomRead].height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
622 widthBot = FrameHandler.nextBottom[FrameHandler.NextBottomRead].width;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
623 leftStartBot = FrameHandler.nextBottom[FrameHandler.NextBottomRead].leftStart;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
624 bottomStartBot = FrameHandler.nextBottom[FrameHandler.NextBottomRead].bottomStart;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
625 HAL_LTDC_SetWindowSize(&LtdcHandle, heightBot, widthBot, 0);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
626 HAL_LTDC_SetWindowPosition(&LtdcHandle, bottomStartBot, leftStartBot, 0);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
627 HAL_LTDC_SetAddress(&LtdcHandle, pBot, 0);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
628 HAL_LTDC_SetAlpha(&LtdcHandle, 255, 0);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
629 FrameHandler.actualBottom.height = heightBot;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
630 FrameHandler.actualBottom.width = widthBot;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
631 FrameHandler.actualBottom.leftStart = leftStartBot;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
632 FrameHandler.actualBottom.bottomStart = bottomStartBot;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
633 FrameHandler.actualBottom.pBuffer = pBot;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
634 backgroundHwStatus = LOGOOFF;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
635 break;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
636
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
637 default:
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
638 FrameHandler.NextBottomRead = nextBottomBackup;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
639 break;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
640 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
641
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
642 return;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
643 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
644 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
645 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
646 pBot = FrameHandler.nextBottom[FrameHandler.NextBottomRead].pBuffer;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
647 heightBot = FrameHandler.nextBottom[FrameHandler.NextBottomRead].height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
648 widthBot = FrameHandler.nextBottom[FrameHandler.NextBottomRead].width;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
649 leftStartBot = FrameHandler.nextBottom[FrameHandler.NextBottomRead].leftStart;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
650 bottomStartBot = FrameHandler.nextBottom[FrameHandler.NextBottomRead].bottomStart;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
651
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
652 if(FrameHandler.actualBottom.pBuffer == pBot)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
653 pBot = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
654
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
655 if((FrameHandler.actualBottom.height != heightBot) || (FrameHandler.actualBottom.width != widthBot))
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
656 change_size = 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
657
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
658 if((FrameHandler.actualBottom.leftStart != leftStartBot) || (FrameHandler.actualBottom.bottomStart != bottomStartBot))
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
659 change_position = 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
660
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
661 if(pBot || change_size || change_position)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
662 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
663 if(heightBot && widthBot)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
664 HAL_LTDC_SetWindowSize(&LtdcHandle, heightBot, widthBot, 0);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
665
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
666 if(change_position || leftStartBot || bottomStartBot)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
667 HAL_LTDC_SetWindowPosition(&LtdcHandle, bottomStartBot, leftStartBot, 0);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
668
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
669 if(pBot)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
670 HAL_LTDC_SetAddress(&LtdcHandle, pBot, 0);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
671
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
672 if(change_size)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
673 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
674 FrameHandler.actualBottom.height = heightBot;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
675 FrameHandler.actualBottom.width = widthBot;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
676 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
677 if(change_position)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
678 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
679 FrameHandler.actualBottom.leftStart = leftStartBot;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
680 FrameHandler.actualBottom.bottomStart = bottomStartBot;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
681 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
682 if(pBot)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
683 FrameHandler.actualBottom.pBuffer = pBot;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
684 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
685 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
686 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
687
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
688 uint8_t GFX_is_colorschemeDiveStandard(void)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
689 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
690 return (ColorLUT[CLUT_Font027] == 0x00FFFFFF);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
691 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
692
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
693
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
694 void change_CLUT_entry(uint8_t entryToChange, uint8_t entryUsedForChange)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
695 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
696 /* bug fix
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
697 static uint8_t counter = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
698
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
699 if(entryToChange == 0x1C)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
700 counter++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
701 */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
702 ColorLUT[entryToChange] = ColorLUT[entryUsedForChange];
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
703 HAL_LTDC_ConfigCLUT(&LtdcHandle, ColorLUT, CLUT_END, 1);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
704 if(logoStatus == LOGOOFF)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
705 HAL_LTDC_ConfigCLUT(&LtdcHandle, ColorLUT, CLUT_END, 0);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
706 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
707
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
708
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
709 void GFX_use_colorscheme(uint8_t colorscheme)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
710 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
711 uint8_t ColorSchemeStart;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
712
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
713 if(colorscheme > 3)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
714 colorscheme = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
715
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
716 ColorSchemeStart = CLUT_Colorscheme0 + (8 * colorscheme);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
717 for(int i=1; i<8; i++)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
718 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
719 ColorLUT[CLUT_Font027 + i] = ColorLUT[ColorSchemeStart + i];
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
720 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
721 change_CLUT_entry(CLUT_Font027, ColorSchemeStart);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
722 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
723
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
724
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
725 void GFX_VGA_transform(uint32_t pSource, uint32_t pDestination)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
726 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
727 int h, v;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
728 uint32_t offsetSource, offsetSourceStartOfLine;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
729
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
730 offsetSourceStartOfLine = 480 + 480 - 2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
731 for(v=0;v<480;v++)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
732 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
733 offsetSource = offsetSourceStartOfLine;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
734 for(h=0;h<640;h++)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
735 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
736 *(__IO uint8_t*)pDestination = *(uint8_t*)(pSource + offsetSource);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
737 pDestination++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
738 offsetSource += 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
739 *(__IO uint8_t*)pDestination = *(uint8_t*)(pSource + offsetSource);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
740 pDestination++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
741 offsetSource += 480 + 479;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
742 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
743 offsetSourceStartOfLine -= 2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
744 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
745 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
746
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
747
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
748 static void GFX_clear_frame_immediately(uint32_t pDestination)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
749 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
750 uint32_t i;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
751 uint32_t* pfill = (uint32_t*) pDestination;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
752
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
753
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
754 for(i = 200*480; i > 0; i--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
755 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
756 *pfill++ = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
757 *pfill++ = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
758 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
759 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
760
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
761
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
762 void GFX_clear_window_immediately(GFX_DrawCfgWindow* hgfx)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
763 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
764 uint32_t pDestination, i, j;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
765 uint16_t left, width, bottom, height, nextlineStep;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
766
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
767 pDestination = (uint32_t)hgfx->Image->FBStartAdress;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
768
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
769 left = hgfx->WindowX0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
770 width = 1 + hgfx->WindowX1 - left;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
771 bottom = hgfx->WindowY0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
772 height = 1 + hgfx->WindowY1 - bottom;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
773 nextlineStep = hgfx->Image->ImageHeight - height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
774 nextlineStep *= 2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
775
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
776 pDestination += 2 * bottom;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
777 pDestination += 2 * hgfx->Image->ImageHeight * left;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
778
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
779 for(j = width; j > 0; j--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
780 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
781 for(i = height; i > 0; i--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
782 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
783 *(__IO uint16_t*)pDestination = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
784 pDestination += 2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
785 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
786 pDestination += nextlineStep;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
787 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
788 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
789
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
790
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
791 static void GFX_clear_frame_dma2d(uint8_t frameId)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
792 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
793 if(frameId >= MAXFRAMES)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
794 return;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
795
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
796 DMA2D_at_work = frameId;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
797
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
798 if (HAL_DMA2D_Start_IT(&Dma2dHandle, 0x0000000000, frame[frameId].StartAddress, 480, 800) != HAL_OK)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
799 GFX_Error_Handler();
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
800 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
801
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
802
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
803 void GFX_fill_buffer(uint32_t pDestination, uint8_t alpha, uint8_t color)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
804 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
805
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
806 union al88_u
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
807 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
808 uint8_t al8[2];
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
809 uint16_t al88;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
810 };
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
811 union al88_u colorcombination;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
812 uint32_t i;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
813 uint32_t* pfill = (uint32_t*) pDestination;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
814 uint32_t fillpattern;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
815
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
816 colorcombination.al8[0] = color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
817 colorcombination.al8[1] = alpha;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
818
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
819 fillpattern = (colorcombination.al88 << 16) | colorcombination.al88;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
820 for(i = 800*480/2; i > 0; i--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
821 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
822 *pfill++ = fillpattern;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
823 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
824 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
825
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
826 static void GFX_draw_image_color(GFX_DrawCfgScreen *hgfx, SWindowGimpStyle window, const tImage *image)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
827 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
828 uint16_t* pDestination;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
829
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
830 uint32_t j;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
831 point_t start, stop;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
832
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
833 start.x = window.left;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
834 start.y = (hgfx->ImageHeight - image->height - window.top);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
835 stop.y = start.y + image->height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
836 stop.x = start.x + image->width;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
837 j = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
838
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
839 for(int xx = start.x; xx < stop.x; xx++)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
840 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
841 pDestination = (uint16_t*)hgfx->FBStartAdress;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
842 pDestination += xx * hgfx->ImageHeight;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
843 pDestination += start.y;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
844 for(int yy = start.y; yy < stop.y; yy++)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
845 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
846 *(__IO uint16_t*)pDestination++ = 0xFF << 8 | image->data[j++];
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
847 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
848 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
849 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
850
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
851
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
852 /* this is NOT fast nor optimized */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
853 static void GFX_draw_pixel(GFX_DrawCfgScreen *hgfx, int16_t x, int16_t y, uint8_t color)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
854 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
855 uint16_t* pDestination;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
856
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
857 pDestination = (uint16_t*)hgfx->FBStartAdress;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
858 pDestination += x * hgfx->ImageHeight;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
859 pDestination += y;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
860
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
861 *(__IO uint16_t*)pDestination = 0xFF << 8 | color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
862 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
863
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
864 /* this is NOT fast nor optimized */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
865 void GFX_draw_circle(GFX_DrawCfgScreen *hgfx, point_t center, uint8_t radius, int8_t color)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
866 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
867 int x, y;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
868 int l;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
869 int r2, y2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
870 int y2_new;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
871 int ty;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
872
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
873 /* cos pi/4 = 185363 / 2^18 (approx) */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
874 l = (radius * 185363) >> 18;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
875
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
876 /* hw */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
877 l += 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
878
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
879 /* At x=0, y=radius */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
880 y = radius;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
881
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
882 r2 = y2 = y * y;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
883 ty = (2 * y) - 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
884 y2_new = r2 + 3;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
885
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
886 for (x = 0; x <= l; x++) {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
887 y2_new -= (2 * x) - 3;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
888
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
889 if ((y2 - y2_new) >= ty) {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
890 y2 -= ty;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
891 y -= 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
892 ty -= 2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
893 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
894
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
895 GFX_draw_pixel (hgfx, x + center.x, y + center.y, color);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
896 GFX_draw_pixel (hgfx, x + center.x, -y + center.y, color);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
897 GFX_draw_pixel (hgfx, -x + center.x, y + center.y, color);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
898 GFX_draw_pixel (hgfx, -x + center.x, -y + center.y, color);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
899
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
900 GFX_draw_pixel (hgfx, y + center.x, x + center.y, color);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
901 GFX_draw_pixel (hgfx, y + center.x, -x + center.y, color);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
902 GFX_draw_pixel (hgfx, -y + center.x, x + center.y, color);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
903 GFX_draw_pixel (hgfx, -y + center.x, -x + center.y, color);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
904 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
905 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
906
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
907
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
908 void GFX_draw_colorline(GFX_DrawCfgScreen *hgfx, point_t start, point_t stop, uint8_t color)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
909 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
910 uint32_t pDestination;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
911 uint32_t j;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
912 uint32_t temp;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
913
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
914 if(start.x == stop.x)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
915 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
916 if(stop.y < start.y)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
917 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
918 temp = stop.y;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
919 stop.y = start.y;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
920 start.y = temp;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
921 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
922 pDestination = (uint32_t)hgfx->FBStartAdress;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
923 pDestination += start.x * hgfx->ImageHeight * 2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
924 pDestination += start.y * 2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
925 for (j = stop.y - start.y; j > 0; j--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
926 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
927 *(__IO uint8_t*)pDestination = color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
928 pDestination += 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
929 *(__IO uint8_t*)pDestination = 0xFF;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
930 pDestination += 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
931 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
932 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
933 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
934 if(start.y == stop.y)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
935 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
936 if(stop.x < start.x)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
937 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
938 temp = stop.x;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
939 stop.x = start.x;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
940 start.x = temp;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
941 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
942 pDestination = (uint32_t)hgfx->FBStartAdress;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
943 pDestination += start.x * hgfx->ImageHeight * 2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
944 pDestination += start.y * 2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
945 for (j = stop.x - start.x; j > 0; j--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
946 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
947 *(__IO uint8_t*)pDestination = color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
948 pDestination += 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
949 *(__IO uint8_t*)pDestination = 0xFF;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
950 pDestination -= 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
951 pDestination += hgfx->ImageHeight * 2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
952 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
953 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
954 else // diagonal Bresenham's_line_algorithm
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
955 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
956 int x0 = start.x;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
957 int y0 = start.y;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
958 int x1 = stop.x;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
959 int y1 = stop.y;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
960 int dx = abs(x1-x0), sx = x0<x1 ? 1 : -1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
961 int dy = abs(y1-y0), sy = y0<y1 ? 1 : -1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
962 int err = (dx>dy ? dx : -dy)/2, e2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
963
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
964 for(;;)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
965 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
966 pDestination = (uint32_t)hgfx->FBStartAdress;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
967 pDestination += ((x0 * hgfx->ImageHeight) + y0) * 2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
968 *(__IO uint8_t*)pDestination = color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
969 pDestination += 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
970 *(__IO uint8_t*)pDestination = 0xFF;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
971 if (x0==x1 && y0==y1) break;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
972 e2 = err;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
973 if (e2 >-dx) { err -= dy; x0 += sx; }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
974 if (e2 < dy) { err += dx; y0 += sy; }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
975 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
976 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
977 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
978
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
979 // ===============================================================================
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
980 // GFX_graph_print
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
981 /// @brief Print all those nice curves, especially in logbook und miniLiveLogGraph
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
982 /// @version 0.0.2 hw 160519
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
983 ///
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
984 /// 151022 hw -bug fix
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
985 /// - die aktuelle Version macht keine Linien mehr �ber die gesamte Bildschirmh�he.
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
986 /// - daf�r sind L�cher in der Kurve (z.B. Temperaturgraph Tauchgang Matthias 17.10.15 15:19)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
987 ///
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
988 /// more details about range can be found in show_logbook_logbook_show_log_page2() - temperature graph
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
989 ///
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
990 /// @param window: top and bottom is only the range used by the data of the graph, not the entire screen / scale
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
991 /// @param drawVeilUntil: ist auff�llen des Bereichs unter der Kurve mit etwas hellerer Farbe
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
992 /// @param Xdivide: wird bisher nichr benutzt.
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
993 // ===============================================================================
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
994
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
995
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
996 void GFX_graph_print(GFX_DrawCfgScreen *hgfx, const SWindowGimpStyle *window, const int16_t drawVeilUntil, uint8_t Xdivide, uint16_t dataMin, uint16_t dataMax, uint16_t *data, uint16_t datalength, uint8_t color, uint8_t *colour_data)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
997 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
998 uint16_t* pDestination_tmp;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
999 uint16_t* pDestination_start;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1000 uint16_t* pDestination_end;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1001 uint16_t* pDestination_zero_veil;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1002
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1003 uint32_t max = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1004 int windowheight = -1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1005 int windowwidth = -1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1006 int i = -1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1007 int w1 = -1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1008 int w2 = -1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1009
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1010 uint32_t h_ulong = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1011 uint32_t h_ulong_old = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1012 _Bool invert = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1013
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1014 uint16_t dataDelta = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1015 uint16_t dataDeltaHalve = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1016 uint16_t dataTemp = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1017
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1018 uint8_t colorDataTemp;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1019 uint8_t colormask = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1020
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1021 pDestination_zero_veil = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1022
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1023 if(dataMin > dataMax)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1024 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1025 uint16_t dataFlip;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1026 dataFlip = dataMin;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1027 dataMin = dataMax;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1028 dataMax = dataFlip;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1029 invert = 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1030 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1031 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1032 invert = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1033
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1034 colormask = color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1035
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1036 if(window->bottom > 479)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1037 return;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1038 if(window->top > 479)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1039 return;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1040 if(window->right > 799)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1041 return;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1042 if(window->left > 799)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1043 return;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1044 if(window->bottom < 0)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1045 return;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1046 if(window->top < 0)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1047 return;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1048 if(window->right < 0)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1049 return;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1050 if(window->left < 0)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1051 return;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1052 if(window->bottom <= window->top)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1053 return;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1054 if(window->right <= window->left)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1055 return;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1056
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1057 windowheight = window->bottom - window->top ;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1058 windowwidth = window->right - window->left;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1059 w1 = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1060 w2 = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1061 if(dataMax == dataMin)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1062 dataMax++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1063 dataDelta = (unsigned long)(dataMax - dataMin);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1064 dataDeltaHalve = dataDelta / 2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1065 while((w1 <= windowwidth) && (w2 < datalength))
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1066 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1067 int tmp = (10 * w1 * (long)datalength)/windowwidth;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1068 w2 = tmp/10;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1069 int rest = tmp - w2*10;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1070 if(rest >= 5)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1071 w2++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1072
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1073 if((datalength - 1) < w2)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1074 w2 = datalength-1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1075
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1076 if(colour_data != NULL)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1077 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1078 colorDataTemp = colour_data[w2];
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1079 colormask = color + colorDataTemp;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1080 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1081
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1082 dataTemp = data[w2];
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1083 if(Xdivide > 1)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1084 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1085 w2++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1086 for(i=1;i<Xdivide;i++)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1087 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1088 if(data[w2]>dataTemp)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1089 dataTemp = data[w2];
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1090 w2++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1091 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1092 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1093
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1094 if(dataTemp > dataMin)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1095 dataTemp -= dataMin;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1096 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1097 dataTemp = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1098
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1099 if(invert)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1100 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1101 if(dataTemp < dataDelta)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1102 dataTemp = dataDelta - dataTemp;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1103 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1104 dataTemp = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1105 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1106
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1107 h_ulong = (unsigned long)dataTemp;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1108 h_ulong *= windowheight;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1109 h_ulong += dataDeltaHalve;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1110 h_ulong /= dataDelta;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1111
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1112 if(h_ulong > (window->bottom - window->top))
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1113 h_ulong = (window->bottom - window->top);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1114
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1115 if(drawVeilUntil > 0)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1116 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1117 pDestination_zero_veil = (uint16_t*)hgfx->FBStartAdress;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1118 pDestination_zero_veil += ((479 - (drawVeilUntil - 2) ) + ((w1 + window->left) * hgfx->ImageHeight) );
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1119 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1120 else if(drawVeilUntil < 0 )
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1121 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1122 pDestination_zero_veil = (uint16_t*)hgfx->FBStartAdress;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1123 pDestination_zero_veil += ((479 + (drawVeilUntil)) + ((w1 + window->left) * hgfx->ImageHeight) );
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1124 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1125
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1126 if(h_ulong + window->top > max)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1127 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1128 max = h_ulong + window->top;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1129 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1130
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1131 // hw 160519 wof�r ist das? Damit funktioniert Temperatur 25,5�C nicht!
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1132 // if((dataMax == 255) || (data[w2] != 255))
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1133 // {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1134 //output_content[pointer] = colormask;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1135 //output_mask[pointer] = true;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1136 if(dataTemp != 0xFFFF) /* do not draw invalid data pixels */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1137 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1138 if(w1 > 0)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1139 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1140 pDestination_start = (uint16_t*)hgfx->FBStartAdress;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1141 pDestination_start += (((479 - (window->top)) + ((w1 + window->left) * hgfx->ImageHeight)));
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1142 pDestination_end = pDestination_start;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1143
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1144 if(h_ulong >= h_ulong_old)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1145 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1146 pDestination_start -= h_ulong_old;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1147 pDestination_end -= h_ulong;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1148
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1149 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1150 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1151 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1152 if(h_ulong < h_ulong_old)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1153 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1154 pDestination_start += h_ulong_old;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1155 pDestination_end += h_ulong;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1156 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1157 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1158 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1159 pDestination_start += h_ulong;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1160 pDestination_end += h_ulong_old;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1161 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1162 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1163
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1164
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1165 // deco stops
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1166 if(drawVeilUntil < 0)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1167 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1168 pDestination_tmp = pDestination_end;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1169 while(pDestination_tmp <= pDestination_zero_veil)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1170 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1171 *(__IO uint16_t*)pDestination_tmp = (0x80 << 8) | colormask;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1172 pDestination_tmp++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1173 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1174 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1175 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1176 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1177 // regular graph with veil underneath if requested
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1178 // von oben nach unten
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1179 // von grossen pDestination Werten zu kleinen pDestination Werten
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1180 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1181 pDestination_tmp = pDestination_start;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1182 while(pDestination_tmp >= pDestination_end)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1183 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1184 *(__IO uint16_t*)pDestination_tmp = (0xFF << 8) | colormask ;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1185 pDestination_tmp--;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1186 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1187 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1188
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1189 while((drawVeilUntil > 0) && (pDestination_tmp >= pDestination_zero_veil))
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1190 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1191 *(__IO uint16_t*)pDestination_tmp = (0x20 << 8) | colormask ;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1192 pDestination_tmp--;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1193 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1194 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1195 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1196 h_ulong_old = h_ulong;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1197 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1198 w1++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1199 w2++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1200 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1201 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1202
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1203
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1204 void GFX_draw_header(GFX_DrawCfgScreen *hgfx, uint8_t colorId)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1205 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1206 uint32_t pDestination;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1207 point_t start, stop, now;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1208 uint8_t alpha;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1209
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1210 /* display coordinate system */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1211 start.y = 400;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1212 stop.y = 479;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1213
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1214 start.x = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1215 stop.x = 799;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1216
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1217 now.y = start.y;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1218 now.x = start.x;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1219
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1220 while (now.x <= stop.x)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1221 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1222 now.y = start.y;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1223 pDestination = (uint32_t)hgfx->FBStartAdress;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1224 pDestination += now.x * hgfx->ImageHeight * 2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1225 pDestination += now.y * 2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1226 now.x += 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1227
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1228 alpha = 27;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1229 while(alpha < 246)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1230 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1231 alpha += 9;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1232 *(__IO uint8_t*)pDestination = colorId;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1233 pDestination += 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1234 *(__IO uint8_t*)pDestination = alpha;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1235 pDestination += 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1236 now.y += 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1237 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1238
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1239 while(now.y <= stop.y)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1240 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1241 *(__IO uint8_t*)pDestination = colorId;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1242 pDestination += 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1243 *(__IO uint8_t*)pDestination = 0xFF;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1244 pDestination += 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1245 now.y += 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1246 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1247 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1248 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1249
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1250 void GFX_draw_box2(GFX_DrawCfgScreen *hgfx, point_t start, point_t stop, uint8_t color, uint8_t roundCorners)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1251 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1252 point_t point2, point4;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1253
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1254 if(roundCorners)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1255 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1256 point2.x = stop.x - start.x;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1257 point2.y = stop.y - start.y;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1258 GFX_draw_box(hgfx,start,point2,1,color);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1259 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1260 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1261 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1262 point2.x = stop.x;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1263 point2.y = start.y;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1264
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1265 point4.x = start.x;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1266 point4.y = stop.y;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1267
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1268 GFX_draw_line(hgfx,start,point2,color);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1269 GFX_draw_line(hgfx,point2,stop,color);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1270 GFX_draw_line(hgfx,stop,point4,color);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1271 GFX_draw_line(hgfx,point4,start,color);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1272 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1273 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1274
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1275 void GFX_draw_box(GFX_DrawCfgScreen *hgfx, point_t LeftLow, point_t WidthHeight, uint8_t Style, uint8_t color)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1276 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1277 uint16_t* pDestination;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1278 uint16_t* pStart;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1279 uint32_t j;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1280 uint32_t lineWidth, lineHeight;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1281 int x, y;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1282 uint8_t intensity;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1283 int stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1284
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1285 typedef struct {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1286 int x;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1287 int y;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1288 uint8_t intensity;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1289 } corner_t;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1290 const corner_t corner[16] = {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1291 {3,3,255}, // nur einmal
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1292 {9,0,242},
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1293 {8,0,194},
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1294 {7,0,115},
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1295 {6,0,36},
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1296 {9,1,33},
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1297 {8,1,84},
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1298 {7,1,161},
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1299 {6,1,255},
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1300 {5,1,242},
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1301 {4,1,36},
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1302 {6,2,33},
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1303 {5,2,84},
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1304 {4,2,255},
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1305 {3,2,84},
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1306 {4,3,110}
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1307 };
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1308
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1309 lineWidth = WidthHeight.x;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1310 lineHeight = WidthHeight.y;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1311 pStart = (uint16_t*)hgfx->FBStartAdress;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1312
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1313 pStart += LeftLow.x * hgfx->ImageHeight;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1314 pStart += LeftLow.y;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1315 stepdir = 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1316
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1317 // Untere Linie
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1318 pDestination = pStart;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1319 if(Style)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1320 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1321 pDestination += stepdir * 10 * hgfx->ImageHeight;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1322 lineWidth -= 18;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1323 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1324 for (j = lineWidth; j > 0; j--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1325 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1326
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1327 *(__IO uint16_t*)pDestination = 0xFF00 + color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1328 pDestination += stepdir * hgfx->ImageHeight;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1329 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1330
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1331 // Obere Linie
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1332
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1333 pDestination = pStart + stepdir * WidthHeight.y;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1334 if(Style)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1335 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1336 pDestination += stepdir * 10 * hgfx->ImageHeight;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1337 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1338
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1339 for (j = lineWidth; j > 0; j--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1340 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1341 *(__IO uint16_t*)pDestination = 0xFF00 + color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1342 pDestination += stepdir * hgfx->ImageHeight;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1343 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1344
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1345 // Linke Linie
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1346 pDestination = pStart;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1347
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1348 if(Style)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1349 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1350 pDestination += stepdir * 10;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1351 lineHeight -= 18;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1352 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1353
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1354 for (j = lineHeight; j > 0; j--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1355 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1356 *(__IO uint16_t*)pDestination = 0xFF00 + color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1357 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1358 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1359
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1360
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1361 // Rechte Linie
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1362
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1363 pDestination = pStart + stepdir * WidthHeight.x * hgfx->ImageHeight;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1364 if(Style)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1365 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1366 pDestination += stepdir * 10;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1367 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1368
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1369 for (j = lineHeight; j > 0; j--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1370 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1371 *(__IO uint16_t*)pDestination = 0xFF00 + color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1372 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1373 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1374
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1375
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1376 // Ecken wenn notwendig == Style
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1377 if(Style)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1378 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1379 // links unten
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1380 pDestination = pStart;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1381 x = corner[0].x;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1382 y = corner[0].y;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1383 intensity = corner[0].intensity;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1384
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1385 *(__IO uint16_t*)(pDestination + stepdir * (y + (x * hgfx->ImageHeight))) = (intensity << 8) + color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1386
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1387 for(j = 15; j > 0; j--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1388 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1389 x = corner[j].x;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1390 y = corner[j].y;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1391 intensity = corner[j].intensity;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1392 *(__IO uint16_t*)(pDestination + stepdir * (y + (x * hgfx->ImageHeight))) = (intensity << 8) + color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1393 *(__IO uint16_t*)(pDestination + stepdir * (x + (y * hgfx->ImageHeight))) = (intensity << 8) + color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1394 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1395 // links oben
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1396 pDestination = pStart + stepdir * WidthHeight.y;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1397 x = corner[0].x;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1398 y = corner[0].y;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1399 intensity = corner[0].intensity;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1400 *(__IO uint16_t*)(pDestination + stepdir * (-y + (x * hgfx->ImageHeight))) = (intensity << 8) + color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1401
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1402 for(j = 15; j > 0; j--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1403 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1404 x = corner[j].x;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1405 y = corner[j].y;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1406 intensity = corner[j].intensity;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1407 *(__IO uint16_t*)(pDestination + stepdir * (-y + (x * hgfx->ImageHeight))) = (intensity << 8) + color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1408 *(__IO uint16_t*)(pDestination + stepdir * (-x + (y * hgfx->ImageHeight))) = (intensity << 8) + color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1409 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1410 // rechts unten
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1411 pDestination = pStart + stepdir * WidthHeight.x * hgfx->ImageHeight;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1412 x = corner[0].x;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1413 y = corner[0].y;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1414 intensity = corner[0].intensity;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1415 *(__IO uint16_t*)(pDestination + stepdir * (y - (x * hgfx->ImageHeight))) = (intensity << 8) + color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1416
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1417 for(j = 15; j > 0; j--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1418 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1419 x = corner[j].x;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1420 y = corner[j].y;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1421 intensity = corner[j].intensity;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1422 *(__IO uint16_t*)(pDestination + stepdir * (y - (x * hgfx->ImageHeight))) = (intensity << 8) + color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1423 *(__IO uint16_t*)(pDestination + stepdir * (x - (y * hgfx->ImageHeight))) = (intensity << 8) + color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1424 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1425 // rechts oben
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1426 pDestination = pStart + stepdir * WidthHeight.y + stepdir * WidthHeight.x * hgfx->ImageHeight;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1427 x = corner[0].x;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1428 y = corner[0].y;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1429 intensity = corner[0].intensity;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1430 *(__IO uint16_t*)(pDestination + stepdir * -1 * (y + (x * hgfx->ImageHeight))) = (intensity << 8) + color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1431
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1432 for(j = 15; j > 0; j--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1433 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1434 x = corner[j].x;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1435 y = corner[j].y;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1436 intensity = corner[j].intensity;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1437 *(__IO uint16_t*)(pDestination + stepdir * -1 * (y + (x * hgfx->ImageHeight))) = (intensity << 8) + color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1438 *(__IO uint16_t*)(pDestination + stepdir * -1 * (x + (y * hgfx->ImageHeight))) = (intensity << 8) + color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1439 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1440 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1441 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1442
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1443
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1444 /**
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1445 ******************************************************************************
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1446 * @brief GFX write label. / Write string with defined color
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1447 * @author heinrichs weikamp gmbh
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1448 * @version V0.0.1
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1449 * @date 07-July-2014
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1450 ******************************************************************************
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1451 *
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1452 * @param hgfx: check gfx_engine.h.
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1453 * @param color: 16bit Alpha+CLUT.
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1454 * @retval None
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1455 */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1456
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1457 uint32_t GFX_write_label(const tFont *Font, GFX_DrawCfgWindow* hgfx, const char *pText, uint8_t color)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1458 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1459 return GFX_write_string_color(Font, hgfx, pText, 0, color);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1460 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1461
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1462
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1463 /**
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1464 ******************************************************************************
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1465 * @brief GFX writeGfx_write_label_varstring. / Write string with all parameters and font color options
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1466 heinrichs weikamp gmbh
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1467 * @version V0.0.1
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1468 * @date 22-April-2014
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1469 ******************************************************************************
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1470 *
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1471 * @param XleftGimpStyle:
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1472 * @param XrightGimpStyle:
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1473 * @param YtopGimpStyle:
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1474 * @param color:
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1475 * @param tFont:
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1476 * @param text: text to be printed
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1477 * @retval None
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1478 */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1479
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1480 void Gfx_write_label_var(GFX_DrawCfgScreen *screenInput, uint16_t XleftGimpStyle, uint16_t XrightGimpStyle, uint16_t YtopGimpStyle, const tFont *Font, const uint8_t color, const char *text)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1481 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1482
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1483 GFX_DrawCfgWindow hgfx;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1484
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1485 if(XrightGimpStyle > 799)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1486 XrightGimpStyle = 799;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1487 if(XleftGimpStyle >= XrightGimpStyle)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1488 XleftGimpStyle = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1489 if(YtopGimpStyle > 479)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1490 YtopGimpStyle = 479;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1491 hgfx.Image = screenInput;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1492 hgfx.WindowNumberOfTextLines = 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1493 hgfx.WindowLineSpacing = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1494 hgfx.WindowTab = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1495
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1496 hgfx.WindowX0 = XleftGimpStyle;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1497 hgfx.WindowX1 = XrightGimpStyle;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1498 hgfx.WindowY1 = 479 - YtopGimpStyle;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1499 if(hgfx.WindowY1 < Font->height)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1500 hgfx.WindowY0 = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1501 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1502 hgfx.WindowY0 = hgfx.WindowY1 - Font->height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1503 GFX_write_label(Font, &hgfx, text, color);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1504 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1505
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1506 /**
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1507 ******************************************************************************
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1508 * @brief GFX write string. / Write string with all parameters and font options
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1509 * @author heinrichs weikamp gmbh
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1510 * @version V0.0.1
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1511 * @date 22-April-2014
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1512 ******************************************************************************
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1513 *
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1514 * @param hgfx: check gfx_engine.h.
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1515 * @param color: 32bit ARGB8888.
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1516 * @retval None
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1517 */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1518
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1519 uint16_t GFX_return_offset(const tFont *Font, char *pText, uint8_t position)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1520 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1521 char character;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1522 uint16_t digit, i;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1523 uint8_t found;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1524 uint16_t distance;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1525
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1526 if(position == 0)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1527 return 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1528
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1529 distance = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1530 for(digit = 0; digit < position; digit++)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1531 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1532 character = pText[digit];
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1533 if(character == 0)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1534 return 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1535
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1536 found = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1537 for(i=0;i<Font->length;i++)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1538 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1539 if(Font->chars[i].code == character)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1540 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1541 found = 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1542 break;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1543 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1544 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1545 if(found)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1546 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1547 distance += (uint16_t)(Font->chars[i].image->width);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1548 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1549 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1550 return distance;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1551
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1552 /* FEHLT:
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1553 if(*pText < ' ')
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1554 if((*pText) & 0x80)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1555
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1556 */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1557 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1558
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1559 void GFX_clean_line(GFX_DrawCfgWindow* hgfx, uint32_t line_number)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1560 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1561 uint16_t height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1562 uint32_t pDestination, i, j;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1563 uint16_t left, width, bottom, nextlineStep;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1564
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1565 bottom = hgfx->WindowY0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1566
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1567 if(hgfx->WindowNumberOfTextLines && line_number && (line_number <= hgfx->WindowNumberOfTextLines))
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1568 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1569 bottom += hgfx->WindowLineSpacing * (hgfx->WindowNumberOfTextLines - line_number);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1570 height = hgfx->WindowLineSpacing;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1571 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1572 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1573 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1574 height = 1 + hgfx->WindowY1 - bottom;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1575 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1576
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1577 pDestination = (uint32_t)hgfx->Image->FBStartAdress;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1578
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1579 left = hgfx->WindowX0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1580 width = 1 + hgfx->WindowX1 - left;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1581 nextlineStep = hgfx->Image->ImageHeight - height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1582 nextlineStep *= 2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1583 pDestination += 2 * bottom;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1584 pDestination += 2 * hgfx->Image->ImageHeight * left;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1585
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1586 for(j = width; j > 0; j--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1587 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1588 for(i = height; i > 0; i--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1589 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1590 *(__IO uint16_t*)pDestination = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1591 pDestination += 2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1592 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1593 pDestination += nextlineStep;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1594 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1595 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1596
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1597
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1598 void GFX_clean_area(GFX_DrawCfgScreen *tMscreen, uint16_t XleftGimpStyle, uint16_t XrightGimpStyle, uint16_t YtopGimpStyle, uint16_t YBottomGimpStyle)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1599 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1600 uint16_t height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1601 uint32_t pDestination, i, j;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1602 int32_t left, width, bottom, nextlineStep;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1603
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1604 bottom = tMscreen->ImageHeight - YBottomGimpStyle;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1605 height = 1 + YBottomGimpStyle - YtopGimpStyle;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1606
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1607 if(bottom < 0)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1608 bottom = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1609 if(height > tMscreen->ImageHeight)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1610 height = tMscreen->ImageHeight;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1611
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1612 pDestination = tMscreen->FBStartAdress;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1613
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1614 left = XleftGimpStyle;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1615 width = 1 + XrightGimpStyle - left;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1616 if(width < 1)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1617 width = 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1618
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1619 if(width > tMscreen->ImageWidth)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1620 width = tMscreen->ImageWidth;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1621
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1622 nextlineStep = tMscreen->ImageHeight - height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1623 nextlineStep *= 2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1624 pDestination += 2 * bottom;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1625 pDestination += 2 * tMscreen->ImageHeight * left;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1626
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1627 for(j = width; j > 0; j--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1628 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1629 for(i = height; i > 0; i--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1630 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1631 *(__IO uint16_t*)pDestination = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1632 pDestination += 2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1633 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1634 pDestination += nextlineStep;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1635 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1636 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1637
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1638
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1639 uint32_t GFX_write_string(const tFont *Font, GFX_DrawCfgWindow* hgfx, const char *pText, uint32_t line_number)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1640 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1641 return GFX_write_string_color(Font, hgfx, pText, line_number, 0);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1642 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1643
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1644 uint32_t GFX_write_string_color(const tFont *Font, GFX_DrawCfgWindow* hgfx, const char *pText, uint32_t line_number, uint8_t color)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1645 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1646 if(hgfx->Image->FBStartAdress < FBGlobalStart)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1647 return 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1648
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1649 GFX_CfgWriteString settings;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1650 uint32_t newXdelta;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1651 uint8_t minimal = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1652 // uint32_t try_again;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1653
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1654 if(hgfx->WindowNumberOfTextLines && line_number && (line_number <= hgfx->WindowNumberOfTextLines))
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1655 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1656 settings.Ydelta = hgfx->WindowLineSpacing * (hgfx->WindowNumberOfTextLines - line_number);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1657 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1658 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1659 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1660 settings.Ydelta = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1661 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1662 settings.font = (uint32_t)Font;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1663 settings.Xdelta = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1664 settings.color = color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1665 settings.invert = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1666 settings.resize = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1667 settings.dualFont = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1668 settings.spaceMode = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1669 settings.singleSpaceWithSizeOfNextChar = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1670 settings.useTinyFont = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1671 settings.TinyFontExtraYdelta = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1672 settings.TinyFont = (uint32_t)Font;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1673 settings.doubleSize = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1674
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1675 if((*pText) == TXT_MINIMAL) // for customtext and anything with Sonderzeichen
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1676 minimal = 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1677 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1678 minimal = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1679
1016
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1002
diff changeset
1680 if(Font == &FontT48min)
985
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1681 {
1016
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1002
diff changeset
1682 settings.TinyFont = (uint32_t)&FontT24min;
985
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1683 settings.TinyFontExtraYdelta = 6;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1684 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1685
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1686 settings.actualFont = (tFont *)settings.font;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1687
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1688 while ((*pText != 0) && (settings.Xdelta != 0x0000FFFF))// und fehlend: Abfrage window / image size
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1689 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1690 // try_again = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1691
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1692 if((*pText == '\177') && !minimal)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1693 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1694 if(settings.singleSpaceWithSizeOfNextChar)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1695 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1696 settings.singleSpaceWithSizeOfNextChar = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1697 pText++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1698 settings.Xdelta += *pText;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1699 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1700 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1701 settings.singleSpaceWithSizeOfNextChar = 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1702 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1703 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1704 if(*pText < ' ')
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1705 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1706 /* Xdelta -inline- changes */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1707 if((*pText == '\t') && !minimal)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1708 settings.Xdelta = hgfx->WindowTab - hgfx->WindowX0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1709 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1710 if(*pText == '\r') // carriage return, no newline
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1711 settings.Xdelta = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1712 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1713 if((*pText == '\003') && !minimal) // doubleSize
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1714 settings.doubleSize = 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1715 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1716 /* Xdelta -up/down changes */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1717 if((*pText == '\f') && !minimal) // form feed = top align
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1718 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1719 if((hgfx->WindowY1 - hgfx->WindowY0) >= ((tFont *)settings.font)->height)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1720 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1721 settings.Ydelta = hgfx->WindowY1 - hgfx->WindowY0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1722 settings.Ydelta -= ((tFont *)settings.font)->height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1723 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1724 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1725 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1726 if(*pText == '\n') // newline, no carriage return
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1727 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1728 if(hgfx->WindowNumberOfTextLines && (line_number < hgfx->WindowNumberOfTextLines))
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1729 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1730 line_number++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1731 settings.Ydelta = hgfx->WindowLineSpacing * (hgfx->WindowNumberOfTextLines - line_number);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1732 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1733 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1734 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1735 /* Font style changes */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1736 if(*pText == '\a')
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1737 settings.invert = settings.invert ? 0 : 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1738 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1739 if((*pText == '\016') && !minimal)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1740 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1741 if(settings.dualFont == 0)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1742 settings.dualFont = 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1743 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1744 settings.actualFont = (tFont *)settings.TinyFont;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1745 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1746 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1747 if((*pText == '\017') && !minimal)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1748 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1749 settings.dualFont = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1750 settings.actualFont = (tFont *)settings.font;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1751 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1752 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1753 if((*pText >= '\020') && (*pText <= '\032') && !minimal)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1754 settings.color = *pText - '\020';
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1755 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1756 if((*pText == '\034') && !minimal)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1757 settings.spaceMode = 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1758 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1759 if((*pText == '\035') && !minimal)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1760 settings.spaceMode = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1761 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1762 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1763 if(((*pText) == TXT_2BYTE) && !minimal)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1764 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1765 pText++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1766 settings.Xdelta = GFX_write_substring(&settings, hgfx, (uint8_t)TXT_2BYTE, (int8_t)*pText);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1767 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1768 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1769 if(((*pText) & 0x80) && !minimal)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1770 settings.Xdelta = GFX_write_substring(&settings, hgfx, (uint8_t)*pText, 0);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1771 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1772 if(!settings.invert && (*pText == ' '))
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1773 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1774 if(settings.spaceMode == 0)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1775 settings.Xdelta += ((tFont *)settings.font)->spacesize;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1776 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1777 settings.Xdelta += ((tFont *)settings.font)->spacesize2Monospaced;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1778 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1779 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1780 if((settings.spaceMode == 1) && (*pText == ' '))
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1781 settings.Xdelta += ((tFont *)settings.font)->spacesize2Monospaced;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1782 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1783 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1784 if(settings.actualFont == (tFont *)settings.TinyFont)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1785 settings.Ydelta += settings.TinyFontExtraYdelta;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1786
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1787 newXdelta = GFX_write_char(hgfx, &settings, *(uint8_t *)pText, settings.actualFont);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1788 settings.Xdelta = newXdelta;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1789
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1790 if(settings.actualFont == (tFont *)settings.TinyFont)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1791 settings.Ydelta -= settings.TinyFontExtraYdelta;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1792 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1793 if(pText != 0) /* for TXT_2BYTE */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1794 pText++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1795 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1796 return settings.Ydelta;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1797 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1798
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1799 /* Private functions ---------------------------------------------------------*/
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1800 /******************************************************************************
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1801 Static Function
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1802 *******************************************************************************/
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1803
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1804 /**
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1805 ******************************************************************************
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1806 * @brief GFX write substring. / Write string without parameters
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1807 * @author heinrichs weikamp gmbh
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1808 * @version V0.0.1
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1809 * @date 22-April-2014
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1810 ******************************************************************************
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1811 *
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1812 * @param hgfx: check gfx_engine.h.
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1813 * @param color: 32bit ARGB8888.
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1814 * @retval None
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1815 */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1816
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1817 static uint32_t GFX_write_substring(GFX_CfgWriteString* cfg, GFX_DrawCfgWindow* hgfx, uint8_t textId, int8_t nextCharFor2Byte)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1818 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1819 uint8_t i, j;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1820 uint32_t found;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1821 uint32_t pText;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1822 uint16_t decodeUTF8;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1823
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1824 // -----------------------------
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1825 if(textId != (uint8_t)TXT_2BYTE)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1826 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1827 found = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1828 j = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1829 for(i=(uint8_t)TXT_Language;i<(uint8_t)TXT_END;i++)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1830 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1831 j++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1832 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1833 if(!found)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1834 return cfg->Xdelta;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1835
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1836 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1837 // -----------------------------
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1838 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1839 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1840 if(!nextCharFor2Byte)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1841 return cfg->Xdelta;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1842
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1843 found = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1844
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1845 if(!found)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1846 return cfg->Xdelta;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1847 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1848 // -----------------------------
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1849
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1850 if(cfg->actualFont == (tFont *)cfg->TinyFont)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1851 cfg->Ydelta += cfg->TinyFontExtraYdelta;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1852
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1853 while (*(char*)pText != 0)// und fehlend: Abfrage window / image size
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1854 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1855 if(*(char*)pText == '\t')
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1856 cfg->Xdelta = hgfx->WindowTab - hgfx->WindowX0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1857 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1858 if((*(char*)pText == ' ') && (cfg->invert == 0)) /* bypass drawing of white space only for not inverted mode */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1859 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1860 cfg->Xdelta += ((tFont *)cfg->actualFont)->spacesize;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1861 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1862 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1863 if((*(char*)pText) & 0x80) /* Identify a UNICODE character other than standard ASCII using the highest bit */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1864 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1865 decodeUTF8 = ((*(char*)pText) & 0x1F) << 6; /* use 5bits of first byte for upper part of unicode */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1866 pText++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1867 decodeUTF8 |= (*(char*)pText) & 0x3F; /* add lower 6bits as second part of the unicode */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1868 if (decodeUTF8 <= 0xff) /* The following function has a uint8 input parameter ==> no UNICODEs > 0xff supported */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1869 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1870 cfg->Xdelta = GFX_write_char(hgfx, cfg, (uint8_t)decodeUTF8, (tFont *)cfg->actualFont);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1871 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1872 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1873 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1874 cfg->Xdelta = GFX_write_char(hgfx, cfg, *(uint8_t *)pText, (tFont *)cfg->actualFont);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1875
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1876 pText++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1877 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1878
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1879 if(cfg->actualFont == (tFont *)cfg->TinyFont)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1880 cfg->Ydelta -= cfg->TinyFontExtraYdelta;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1881
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1882 return cfg->Xdelta;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1883 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1884
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1885
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1886 /**
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1887 ******************************************************************************
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1888 * @brief GFX write char. / Write non-inverted, non-colored with entire 8 bit range
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1889 * @author heinrichs weikamp gmbh
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1890 * @version V0.0.1
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1891 * @date 22-April-2014
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1892 ******************************************************************************
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1893 *
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1894 * @param hgfx: check gfx_engine.h.
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1895 * @param Ydelta: input
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1896 * @param character: character
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1897 * @param *Font: pointer to font to be used for this char
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1898 * @retval Ydelta: 0x0000FFFF if not successful or char_truncated
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1899 */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1900
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1901 static uint32_t GFX_write_char_doubleSize(GFX_DrawCfgWindow* hgfx, GFX_CfgWriteString* cfg, uint8_t character, tFont *Font)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1902 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1903 uint32_t i, j;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1904 uint32_t width, height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1905 uint32_t found;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1906 uint16_t* pDestination;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1907 uint32_t pSource;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1908 uint32_t OffsetDestination;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1909 uint32_t width_left;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1910 uint32_t height_left;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1911 uint32_t char_truncated_WidthFlag;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1912 uint32_t char_truncated_Height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1913 uint8_t fill;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1914 uint32_t widthFont, heightFont;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1915 uint32_t nextLine;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1916 int32_t stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1917
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1918 stepdir = 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1919
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1920 if(hgfx->Image->ImageWidth <= (hgfx->WindowX0 + cfg->Xdelta))
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1921 return 0x0000FFFF;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1922
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1923 // -----------------------------
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1924 found = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1925 for(i=0;i<Font->length;i++)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1926 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1927 if(Font->chars[i].code == character)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1928 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1929 found = 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1930 break;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1931 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1932 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1933 if(!found)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1934 return cfg->Xdelta;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1935
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1936 pSource = ((uint32_t)Font->chars[i].image->data);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1937 pDestination = (uint16_t*)(hgfx->Image->FBStartAdress);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1938
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1939 heightFont = Font->chars[i].image->height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1940 widthFont = Font->chars[i].image->width;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1941
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1942 height = heightFont*2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1943 width = widthFont*2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1944
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1945
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1946 pDestination += (uint32_t)(hgfx->WindowX0 + cfg->Xdelta) * hgfx->Image->ImageHeight; /* set pointer to delta row */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1947 pDestination += (hgfx->WindowY0 + cfg->Ydelta); /* set pointer to delta colum */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1948
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1949 OffsetDestination = (hgfx->Image->ImageHeight - height);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1950 nextLine = hgfx->Image->ImageHeight;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1951
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1952 // -----------------------------
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1953 char_truncated_WidthFlag = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1954 width_left = hgfx->Image->ImageWidth - (hgfx->WindowX0 + cfg->Xdelta);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1955 if(width_left < width)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1956 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1957 char_truncated_WidthFlag = 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1958 width = width_left;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1959 widthFont = width/2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1960 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1961 // -----------------------------
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1962
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1963 char_truncated_Height = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1964 height_left = hgfx->Image->ImageHeight - (hgfx->WindowY0 + cfg->Ydelta);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1965 if(height_left < height)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1966 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1967 char_truncated_Height = height - height_left;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1968 if((char_truncated_Height & 1) != 0)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1969 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1970 height_left -= 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1971 char_truncated_Height += 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1972 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1973 height = height_left;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1974 heightFont = height/2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1975 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1976
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1977 OffsetDestination += char_truncated_Height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1978 // -----------------------------
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1979 if(height == 0)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1980 return 0x0000FFFF;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1981 // -----------------------------
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1982
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1983 if(cfg->singleSpaceWithSizeOfNextChar)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1984 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1985 cfg->singleSpaceWithSizeOfNextChar = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1986
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1987 if(cfg->invert)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1988 fill = 0xFF;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1989 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1990 fill = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1991
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1992 height /= 2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1993 for(i = width; i > 0; i--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1994 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1995 for (j = height; j > 0; j--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1996 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1997 *(__IO uint16_t*)pDestination = fill << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1998 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
1999 *(__IO uint16_t*)pDestination = fill << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2000 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2001 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2002 pDestination += stepdir * OffsetDestination;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2003 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2004 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2005 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2006 if(cfg->invert)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2007 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2008 if((heightFont & 3) == 0) /* unroll for perfomance, by 4 if possible, by 2 (16bit) otherwise */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2009 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2010 heightFont /= 4;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2011 for(i = widthFont; i > 0; i--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2012 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2013 if(*(uint8_t*)pSource != 0x01)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2014 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2015 for (j = heightFont; j > 0; j--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2016 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2017 *(__IO uint16_t*)pDestination = (0xFF - *(uint8_t*)pSource) << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2018 *(__IO uint16_t*)(pDestination + nextLine) = (0xFF - *(uint8_t*)pSource) << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2019 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2020 *(__IO uint16_t*)pDestination = (0xFF - *(uint8_t*)pSource) << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2021 *(__IO uint16_t*)(pDestination + nextLine) = (0xFF - *(uint8_t*)pSource) << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2022 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2023 pSource++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2024
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2025 *(__IO uint16_t*)pDestination = (0xFF - *(uint8_t*)pSource) << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2026 *(__IO uint16_t*)(pDestination + nextLine) = (0xFF - *(uint8_t*)pSource) << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2027 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2028 *(__IO uint16_t*)pDestination = (0xFF - *(uint8_t*)pSource) << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2029 *(__IO uint16_t*)(pDestination + nextLine) = (0xFF - *(uint8_t*)pSource) << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2030 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2031 pSource++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2032
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2033 *(__IO uint16_t*)pDestination = (0xFF - *(uint8_t*)pSource) << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2034 *(__IO uint16_t*)(pDestination + nextLine) = (0xFF - *(uint8_t*)pSource) << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2035 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2036 *(__IO uint16_t*)pDestination = (0xFF - *(uint8_t*)pSource) << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2037 *(__IO uint16_t*)(pDestination + nextLine) = (0xFF - *(uint8_t*)pSource) << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2038 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2039 pSource++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2040
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2041 *(__IO uint16_t*)pDestination = (0xFF - *(uint8_t*)pSource) << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2042 *(__IO uint16_t*)(pDestination + nextLine) = (0xFF - *(uint8_t*)pSource) << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2043 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2044 *(__IO uint16_t*)pDestination = (0xFF - *(uint8_t*)pSource) << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2045 *(__IO uint16_t*)(pDestination + nextLine) = (0xFF - *(uint8_t*)pSource) << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2046 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2047 pSource++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2048 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2049 pSource += char_truncated_Height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2050 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2051 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2052 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2053 pSource++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2054 for (j = heightFont; j > 0; j--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2055 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2056 *(__IO uint16_t*)pDestination = 0xFF << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2057 *(__IO uint16_t*)(pDestination + nextLine) = 0xFF << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2058 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2059 *(__IO uint16_t*)pDestination = 0xFF << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2060 *(__IO uint16_t*)(pDestination + nextLine) = 0xFF << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2061 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2062 *(__IO uint16_t*)pDestination = 0xFF << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2063 *(__IO uint16_t*)(pDestination + nextLine) = 0xFF << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2064 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2065 *(__IO uint16_t*)pDestination = 0xFF << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2066 *(__IO uint16_t*)(pDestination + nextLine) = 0xFF << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2067 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2068 *(__IO uint16_t*)pDestination = 0xFF << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2069 *(__IO uint16_t*)(pDestination + nextLine) = 0xFF << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2070 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2071 *(__IO uint16_t*)pDestination = 0xFF << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2072 *(__IO uint16_t*)(pDestination + nextLine) = 0xFF << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2073 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2074 *(__IO uint16_t*)pDestination = 0xFF << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2075 *(__IO uint16_t*)(pDestination + nextLine) = 0xFF << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2076 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2077 *(__IO uint16_t*)pDestination = 0xFF << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2078 *(__IO uint16_t*)(pDestination + nextLine) = 0xFF << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2079 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2080 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2081 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2082 pDestination += (OffsetDestination + nextLine) * stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2083 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2084 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2085 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2086 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2087 heightFont /= 2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2088 for(i = widthFont; i > 0; i--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2089 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2090 if(*(uint8_t*)pSource != 0x01)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2091 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2092 for (j = heightFont; j > 0; j--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2093 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2094 *(__IO uint16_t*)pDestination = (0xFF - *(uint8_t*)pSource) << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2095 *(__IO uint16_t*)(pDestination + nextLine) = (0xFF - *(uint8_t*)pSource) << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2096 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2097 *(__IO uint16_t*)pDestination = (0xFF - *(uint8_t*)pSource) << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2098 *(__IO uint16_t*)(pDestination + nextLine) = (0xFF - *(uint8_t*)pSource) << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2099 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2100 pSource++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2101
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2102 *(__IO uint16_t*)pDestination = (0xFF - *(uint8_t*)pSource) << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2103 *(__IO uint16_t*)(pDestination + nextLine) = (0xFF - *(uint8_t*)pSource) << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2104 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2105 *(__IO uint16_t*)pDestination = (0xFF - *(uint8_t*)pSource) << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2106 *(__IO uint16_t*)(pDestination + nextLine) = (0xFF - *(uint8_t*)pSource) << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2107 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2108 pSource++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2109 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2110 pSource += char_truncated_Height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2111 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2112 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2113 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2114 pSource++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2115 for (j = heightFont; j > 0; j--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2116 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2117 *(__IO uint16_t*)pDestination = 0xFF << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2118 *(__IO uint16_t*)(pDestination + nextLine) = 0xFF << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2119 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2120 *(__IO uint16_t*)pDestination = 0xFF << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2121 *(__IO uint16_t*)(pDestination + nextLine) = 0xFF << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2122 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2123 *(__IO uint16_t*)pDestination = 0xFF << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2124 *(__IO uint16_t*)(pDestination + nextLine) = 0xFF << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2125 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2126 *(__IO uint16_t*)pDestination = 0xFF << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2127 *(__IO uint16_t*)(pDestination + nextLine) = 0xFF << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2128 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2129 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2130 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2131 pDestination += (OffsetDestination + nextLine) * stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2132 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2133 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2134 } /* inverted */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2135 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2136 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2137 if((heightFont & 3) == 0) /* unroll for perfomance, by 4 if possible, by 2 (16bit) otherwise */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2138 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2139 heightFont /= 4;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2140 for(i = widthFont; i > 0; i--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2141 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2142 if(*(uint8_t*)pSource != 0x01)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2143 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2144 for (j = heightFont; j > 0; j--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2145 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2146 *(__IO uint16_t*)pDestination = *(uint8_t*)pSource << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2147 *(__IO uint16_t*)(pDestination + (stepdir * nextLine)) = *(uint8_t*)pSource << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2148 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2149 *(__IO uint16_t*)pDestination = *(uint8_t*)pSource << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2150 *(__IO uint16_t*)(pDestination + (stepdir * nextLine)) = *(uint8_t*)pSource << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2151 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2152 pSource++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2153
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2154 *(__IO uint16_t*)pDestination = *(uint8_t*)pSource << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2155 *(__IO uint16_t*)(pDestination + (stepdir * nextLine)) = *(uint8_t*)pSource << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2156 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2157 *(__IO uint16_t*)pDestination = *(uint8_t*)pSource << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2158 *(__IO uint16_t*)(pDestination + (stepdir * nextLine)) = *(uint8_t*)pSource << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2159 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2160 pSource++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2161
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2162 *(__IO uint16_t*)pDestination = *(uint8_t*)pSource << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2163 *(__IO uint16_t*)(pDestination + (stepdir * nextLine)) = *(uint8_t*)pSource << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2164 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2165 *(__IO uint16_t*)pDestination = *(uint8_t*)pSource << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2166 *(__IO uint16_t*)(pDestination + (stepdir * nextLine)) = *(uint8_t*)pSource << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2167 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2168 pSource++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2169
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2170 *(__IO uint16_t*)pDestination = *(uint8_t*)pSource << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2171 *(__IO uint16_t*)(pDestination + (stepdir * nextLine)) = *(uint8_t*)pSource << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2172 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2173 *(__IO uint16_t*)pDestination = *(uint8_t*)pSource << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2174 *(__IO uint16_t*)(pDestination + (stepdir * nextLine)) = *(uint8_t*)pSource << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2175 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2176 pSource++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2177 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2178 pSource += char_truncated_Height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2179 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2180 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2181 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2182 pSource++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2183 pDestination += stepdir * height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2184 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2185 pDestination += stepdir * (OffsetDestination + nextLine);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2186 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2187 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2188 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2189 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2190 heightFont /= 2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2191 for(i = widthFont; i > 0; i--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2192 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2193 if(*(uint8_t*)pSource != 0x01)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2194 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2195 for (j = heightFont; j > 0; j--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2196 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2197 *(__IO uint16_t*)pDestination = *(uint8_t*)pSource << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2198 *(__IO uint16_t*)(pDestination + (stepdir * nextLine)) = *(uint8_t*)pSource << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2199 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2200 *(__IO uint16_t*)pDestination = *(uint8_t*)pSource << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2201 *(__IO uint16_t*)(pDestination + (stepdir * nextLine)) = *(uint8_t*)pSource << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2202 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2203 pSource++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2204
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2205 *(__IO uint16_t*)pDestination = *(uint8_t*)pSource << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2206 *(__IO uint16_t*)(pDestination + (stepdir * nextLine)) = *(uint8_t*)pSource << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2207 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2208 *(__IO uint16_t*)pDestination = *(uint8_t*)pSource << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2209 *(__IO uint16_t*)(pDestination + (stepdir * nextLine)) = *(uint8_t*)pSource << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2210 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2211 pSource++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2212 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2213 pSource += char_truncated_Height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2214 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2215 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2216 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2217 pSource++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2218 pDestination += stepdir * height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2219 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2220 pDestination += stepdir * (OffsetDestination + nextLine);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2221 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2222 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2223 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2224
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2225
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2226 // -----------------------------
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2227
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2228 if(char_truncated_WidthFlag)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2229 return 0x0000FFFF;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2230 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2231 return cfg->Xdelta + width;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2232
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2233 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2234
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2235
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2236 /**
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2237 ******************************************************************************
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2238 * @brief GFX write char. / Write non-inverted, non-colored with entire 8 bit range
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2239 * @author heinrichs weikamp gmbh
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2240 * @version V0.0.1
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2241 * @date 22-April-2014
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2242 ******************************************************************************
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2243 *
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2244 * @param hgfx: check gfx_engine.h.
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2245 * @param Ydelta: input
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2246 * @param character: character
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2247 * @param *Font: pointer to font to be used for this char
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2248 * @retval Ydelta: 0x0000FFFF if not successful or char_truncated
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2249 */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2250
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2251 static uint32_t GFX_write_char(GFX_DrawCfgWindow* hgfx, GFX_CfgWriteString* cfg, uint8_t character, tFont *Font)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2252 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2253 if(cfg->doubleSize)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2254 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2255 return GFX_write_char_doubleSize(hgfx, cfg, character, Font);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2256 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2257
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2258 uint32_t i, j;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2259 uint32_t width, height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2260 uint32_t found;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2261 uint16_t* pDestination;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2262 uint32_t pSource;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2263 uint32_t OffsetDestination;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2264 uint32_t width_left;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2265 uint32_t height_left;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2266 uint32_t char_truncated_WidthFlag;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2267 uint32_t char_truncated_Height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2268 uint8_t fill;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2269 uint32_t fillpattern;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2270 int16_t stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2271
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2272 stepdir = 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2273
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2274 if(hgfx->Image->ImageWidth <= (hgfx->WindowX0 + cfg->Xdelta))
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2275 return 0x0000FFFF;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2276
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2277 // -----------------------------
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2278 found = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2279 for(i=0;i<Font->length;i++)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2280 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2281 if(Font->chars[i].code == character)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2282 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2283 found = 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2284 break;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2285 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2286 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2287 if(!found)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2288 return cfg->Xdelta;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2289 // -----------------------------
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2290 /*
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2291 if(Font == &Font144)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2292 cfg->Xdelta += 3;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2293 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2294 if(Font == &Font84)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2295 cfg->Xdelta += 2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2296 */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2297 // -----------------------------
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2298
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2299
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2300 pSource = ((uint32_t)Font->chars[i].image->data);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2301 pDestination = (uint16_t*)(hgfx->Image->FBStartAdress);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2302
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2303
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2304 height = Font->chars[i].image->height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2305 width = Font->chars[i].image->width;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2306
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2307 OffsetDestination = hgfx->Image->ImageHeight - height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2308
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2309
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2310 /* Xyyyyy y= height */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2311 /* Xyyyyy x= width */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2312 /* Xyyyyy */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2313
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2314 pDestination += (hgfx->WindowX0 + cfg->Xdelta) * hgfx->Image->ImageHeight; /* set pointer to delta row */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2315 pDestination += (hgfx->WindowY0 + cfg->Ydelta); /* set pointer to delta colum */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2316
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2317 // -----------------------------
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2318 char_truncated_WidthFlag = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2319 width_left = hgfx->Image->ImageWidth - (hgfx->WindowX0 + cfg->Xdelta);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2320 if(width_left < width)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2321 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2322 char_truncated_WidthFlag = 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2323 width = width_left;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2324 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2325 // -----------------------------
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2326 char_truncated_Height = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2327 height_left = hgfx->Image->ImageHeight - (hgfx->WindowY0 + cfg->Ydelta);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2328 if(height_left < height)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2329 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2330 char_truncated_Height = height - height_left;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2331 if((char_truncated_Height & 1) != 0)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2332 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2333 height_left -= 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2334 char_truncated_Height += 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2335 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2336 height = height_left;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2337 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2338 OffsetDestination += char_truncated_Height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2339 // -----------------------------
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2340 if(height == 0)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2341 return 0x0000FFFF;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2342 // -----------------------------
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2343
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2344 if(cfg->singleSpaceWithSizeOfNextChar)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2345 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2346 cfg->singleSpaceWithSizeOfNextChar = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2347
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2348 if(cfg->invert)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2349 fill = 0xFF;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2350 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2351 fill = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2352
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2353 height /= 2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2354 for(i = width; i > 0; i--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2355 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2356 for (j = height; j > 0; j--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2357 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2358 *(__IO uint16_t*)pDestination = fill << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2359 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2360 *(__IO uint16_t*)pDestination = fill << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2361 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2362 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2363 pDestination += stepdir * OffsetDestination;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2364 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2365 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2366 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2367 if(cfg->invert)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2368 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2369 if((height & 3) == 0) /* unroll for perfomance, by 4 if possible, by 2 (16bit) otherwise */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2370 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2371 height /= 4;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2372 for(i = width; i > 0; i--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2373 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2374 if(*(uint8_t*)pSource != 0x01)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2375 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2376
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2377 for (j = height; j > 0; j--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2378 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2379 *(__IO uint16_t*)pDestination = (0xFF - *(uint8_t*)pSource++) << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2380 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2381 *(__IO uint16_t*)pDestination = (0xFF - *(uint8_t*)pSource++) << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2382 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2383 *(__IO uint16_t*)pDestination = (0xFF - *(uint8_t*)pSource++) << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2384 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2385 *(__IO uint16_t*)pDestination = (0xFF - *(uint8_t*)pSource++) << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2386 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2387 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2388 pSource += char_truncated_Height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2389 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2390 else /* empty line => fast fill */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2391 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2392 pSource++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2393 fillpattern = (( 0xFF << 8 | cfg->color) << 16) | ( 0xFF << 8 | cfg->color);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2394 for (j = height; j > 0; j--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2395 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2396 *(__IO uint32_t*)pDestination = fillpattern;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2397 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2398 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2399 *(__IO uint32_t*)pDestination = fillpattern;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2400 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2401 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2402 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2403 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2404 pDestination += stepdir * OffsetDestination;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2405 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2406 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2407 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2408 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2409 height /= 2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2410 for(i = width; i > 0; i--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2411 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2412 if(*(uint8_t*)pSource != 0x01)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2413 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2414 for (j = height; j > 0; j--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2415 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2416 *(__IO uint16_t*)pDestination = (0xFF - *(uint8_t*)pSource++) << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2417 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2418 *(__IO uint16_t*)pDestination = (0xFF - *(uint8_t*)pSource++) << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2419 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2420 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2421 pSource += char_truncated_Height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2422 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2423 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2424 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2425 pSource++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2426 for (j = height; j > 0; j--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2427 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2428 *(__IO uint16_t*)pDestination = 0xFF << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2429 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2430 *(__IO uint16_t*)pDestination = 0xFF << 8 | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2431 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2432 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2433 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2434 pDestination += stepdir * OffsetDestination;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2435 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2436 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2437 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2438 else /* not inverted */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2439 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2440 if((height & 3) == 0) /* unroll for perfomance, by 4 if possible, by 2 (16bit) otherwise */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2441 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2442
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2443 height /= 4;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2444
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2445 for(i = width; i > 0; i--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2446 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2447 if(*(uint8_t*)pSource != 0x01)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2448 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2449 for (j = height; j > 0; j--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2450 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2451 *(__IO uint16_t*)pDestination = ( *(uint8_t*)pSource++ << 8) | (cfg->color);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2452 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2453 *(__IO uint16_t*)pDestination = ( *(uint8_t*)pSource++ << 8) | (cfg->color);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2454 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2455 *(__IO uint16_t*)pDestination = ( *(uint8_t*)pSource++ << 8) | (cfg->color);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2456 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2457 *(__IO uint16_t*)pDestination = ( *(uint8_t*)pSource++ << 8) | (cfg->color);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2458 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2459 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2460
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2461 pSource += char_truncated_Height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2462 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2463 else /* clear line */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2464 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2465 pSource++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2466 fillpattern = (cfg->color << 16) | cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2467
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2468 for (j = height; j > 0; j--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2469 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2470 *(__IO uint32_t*)pDestination = fillpattern;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2471 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2472 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2473 *(__IO uint32_t*)pDestination = fillpattern;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2474 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2475 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2476 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2477 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2478 pDestination += stepdir * OffsetDestination;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2479 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2480 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2481 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2482 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2483 height /= 2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2484 for(i = width; i > 0; i--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2485 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2486 if(*(uint8_t*)pSource != 0x01)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2487 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2488 for (j = height; j > 0; j--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2489 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2490 *(__IO uint16_t*)pDestination = ( *(uint8_t*)pSource++ << 8) | (cfg->color);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2491 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2492 *(__IO uint16_t*)pDestination = ( *(uint8_t*)pSource++ << 8) | (cfg->color);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2493 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2494 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2495 pSource += char_truncated_Height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2496 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2497 else /* clear line */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2498 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2499 pSource++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2500 for (j = height; j > 0; j--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2501 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2502 *(__IO uint16_t*)pDestination = cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2503 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2504 *(__IO uint16_t*)pDestination = cfg->color;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2505 pDestination += stepdir;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2506 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2507 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2508 pDestination += stepdir * OffsetDestination;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2509 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2510 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2511 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2512
1002
23e94766d00a Bootloader remove not needed fonts:
Ideenmodellierer
parents: 987
diff changeset
2513
985
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2514 /*
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2515 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2516 if(Font == &Font144)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2517 width += 3;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2518 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2519 if(Font == &Font84)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2520 width += 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2521 */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2522 // -----------------------------
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2523
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2524 if(char_truncated_WidthFlag)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2525 return 0x0000FFFF;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2526 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2527 return cfg->Xdelta + width;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2528 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2529
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2530 void GFX_LTDC_Init(void)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2531 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2532 GFX_LTDC_Init_display1();
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2533 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2534
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2535 void GFX_LTDC_Init_display1(void)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2536 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2537 /* Timing configuration */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2538 #define ActiveH_d1 800
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2539 #define ActiveW_d1 480
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2540
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2541 #define Hsync_d1 2
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2542 #define HFP_d1 8
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2543 #define HBP_d1 8
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2544
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2545 #define Vsync_d1 2
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2546 #define VFP_d1 4 // make sure this value * VSYNC is also set in display.c for OLED_VFP_SET
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2547 #define VBP_d1 4 // make sure this value * VSYNC is also set in display.c for OLED_VBP_SET
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2548
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2549 /* Horizontal synchronization width = Hsync - 1 */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2550 LtdcHandle.Init.HorizontalSync = Hsync_d1 - 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2551 /* Vertical synchronization height = Vsync - 1 */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2552 LtdcHandle.Init.VerticalSync = Vsync_d1 -1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2553 /* Accumulated horizontal back porch = Hsync + HBP - 1 */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2554 LtdcHandle.Init.AccumulatedHBP = Hsync_d1 + HBP_d1 - 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2555 /* Accumulated vertical back porch = Vsync + VBP - 1 */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2556 LtdcHandle.Init.AccumulatedVBP = Vsync_d1 + VBP_d1 - 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2557 /* Accumulated active width = Hsync + HBP + Active Width - 1 */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2558 LtdcHandle.Init.AccumulatedActiveW = Hsync_d1 + HBP_d1 + ActiveW_d1 - 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2559 /* Accumulated active height = Vsync + VBP + Active Heigh - 1 */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2560 LtdcHandle.Init.AccumulatedActiveH = Vsync_d1 + VBP_d1 + ActiveH_d1 - 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2561 /* Total width = Hsync + HBP + Active Width + HFP - 1 */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2562 LtdcHandle.Init.TotalWidth = Hsync_d1 + HBP_d1 + ActiveW_d1 + HFP_d1 - 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2563 /* Total height = Vsync + VBP + Active Heigh + VFP - 1 */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2564 LtdcHandle.Init.TotalHeigh = Vsync_d1 + VBP_d1 + ActiveH_d1 + VFP_d1 - 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2565
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2566 /* Configure R,G,B component values for LCD background color */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2567 LtdcHandle.Init.Backcolor.Red= 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2568 LtdcHandle.Init.Backcolor.Blue= 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2569 LtdcHandle.Init.Backcolor.Green= 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2570
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2571 /* LCD clock configuration */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2572 /* PLLSAI_VCO Input = HSE_VALUE/PLL_M = 1 Mhz */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2573 /* PLLSAI_VCO Output = PLLSAI_VCO Input * PLLSAIN = 192 Mhz */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2574 /* PLLLCDCLK = PLLSAI_VCO Output/PLLSAIR = 192/4 = 48 Mhz */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2575 /* LTDC clock frequency = PLLLCDCLK / LTDC_PLLSAI_DIVR_8 = 48/4 = 6Mhz */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2576
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2577 /* done in base.c SystemClockConfig
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2578
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2579 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_LTDC;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2580 PeriphClkInitStruct.PLLSAI.PLLSAIN = 192;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2581 PeriphClkInitStruct.PLLSAI.PLLSAIR = 4;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2582 PeriphClkInitStruct.PLLSAIDivR = RCC_PLLSAIDIVR_8;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2583 HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2584 */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2585 /* Polarity */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2586 LtdcHandle.Init.HSPolarity = LTDC_HSPOLARITY_AL;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2587 LtdcHandle.Init.VSPolarity = LTDC_VSPOLARITY_AL;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2588 LtdcHandle.Init.DEPolarity = LTDC_DEPOLARITY_AL;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2589 LtdcHandle.Init.PCPolarity = LTDC_PCPOLARITY_IIPC;//LTDC_PCPOLARITY_IPC;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2590
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2591 LtdcHandle.Instance = LTDC;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2592
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2593 /* Configure the LTDC */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2594 if(HAL_LTDC_Init(&LtdcHandle) != HAL_OK) // initialize GPIO Pins, too
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2595 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2596 /* Initialization Error */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2597 GFX_Error_Handler();
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2598 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2599 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2600
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2601 void GFX_LTDC_LayerDefaultInit(uint16_t LayerIndex, uint32_t FB_Address)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2602 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2603 LTDC_LayerCfgTypeDef Layercfg;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2604
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2605 /* Layer Init */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2606 Layercfg.WindowX0 = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2607 Layercfg.WindowX1 = 480;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2608 Layercfg.WindowY0 = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2609 Layercfg.WindowY1 = 800;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2610 Layercfg.PixelFormat = LTDC_PIXEL_FORMAT_AL88;//LTDC_PIXEL_FORMAT_ARGB8888;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2611 Layercfg.FBStartAdress = FB_Address;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2612 Layercfg.Alpha = 255;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2613 Layercfg.Alpha0 = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2614 Layercfg.Backcolor.Blue = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2615 Layercfg.Backcolor.Green = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2616 Layercfg.Backcolor.Red = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2617 Layercfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2618 Layercfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2619 Layercfg.ImageWidth = 480;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2620 Layercfg.ImageHeight = 800;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2621
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2622 HAL_LTDC_ConfigCLUT(&LtdcHandle, ColorLUT, CLUT_END, LayerIndex);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2623 HAL_LTDC_ConfigLayer(&LtdcHandle, &Layercfg, LayerIndex);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2624 HAL_LTDC_EnableCLUT(&LtdcHandle, LayerIndex);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2625 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2626
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2627 static uint32_t GFX_doubleBufferOne(void)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2628 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2629 return SDRAM_DOUBLE_BUFFER_ONE;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2630 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2631
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2632
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2633 static uint32_t GFX_doubleBufferTwo(void)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2634 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2635 return SDRAM_DOUBLE_BUFFER_TWO;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2636 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2637
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2638 uint32_t getFrame(uint8_t callerId)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2639 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2640 static uint8_t lastFrameProvided = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2641 uint8_t i;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2642
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2643 /* first iteration: look for a clear frame */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2644 i = lastFrameProvided;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2645 do
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2646 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2647 i++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2648 if(i == MAXFRAMES)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2649 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2650 i = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2651 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2652 } while((i != lastFrameProvided) && (frame[i].status != CLEAR));
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2653
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2654 if((i < MAXFRAMES) && (frame[i].status == CLEAR))
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2655 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2656 frame[i].status = BLOCKED;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2657 frame[i].caller = callerId;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2658 lastFrameProvided = i;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2659 return frame[i].StartAddress;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2660 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2661
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2662 /* second iteration: look for a frame which may be reused after clearing */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2663 i = lastFrameProvided;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2664 do
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2665 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2666 i++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2667 if(i == MAXFRAMES)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2668 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2669 i = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2670 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2671 }while((i != lastFrameProvided) && (frame[i].status != RELEASED));
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2672
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2673
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2674 if((i < MAXFRAMES) && (frame[i].status == RELEASED))
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2675 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2676 GFX_clear_frame_immediately(frame[i].StartAddress);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2677 frame[i].status = BLOCKED;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2678 lastFrameProvided = i;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2679 return frame[i].StartAddress;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2680 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2681 return 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2682 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2683
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2684
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2685 void GFX_forceReleaseFramesWithId(uint8_t callerId)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2686 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2687 for(int i=0; i<MAXFRAMES; i++)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2688 if((frame[i].caller == callerId) && (frame[i].status == BLOCKED))
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2689 frame[i].status = RELEASED;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2690 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2691
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2692
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2693 void releaseAllFramesExcept(uint8_t callerId, uint32_t frameStartAddress)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2694 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2695 for(int i=0; i<MAXFRAMES; i++)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2696 if((frame[i].caller == callerId) && (frame[i].status == BLOCKED) && (frame[i].StartAddress != frameStartAddress))
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2697 frame[i].status = RELEASED;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2698 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2699
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2700
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2701 uint8_t releaseFrame(uint8_t callerId, uint32_t frameStartAddress)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2702 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2703 static uint8_t countErrorCalls = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2704
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2705 if(frameStartAddress < FBGlobalStart)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2706 return 2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2707
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2708
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2709 uint8_t i;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2710
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2711 i = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2712 while((i < MAXFRAMES) && (frame[i].StartAddress != frameStartAddress))
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2713 i++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2714
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2715 if((i < MAXFRAMES) && (frame[i].StartAddress == frameStartAddress))
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2716 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2717 if(frame[i].caller == callerId)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2718 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2719 frame[i].status = RELEASED;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2720 return 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2721 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2722 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2723 countErrorCalls++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2724 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2725 return 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2726 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2727
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2728
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2729 uint16_t blockedFramesCount(void)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2730 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2731 uint16_t count = MAXFRAMES;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2732
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2733 for(int i = 0;i<MAXFRAMES;i++)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2734 if(frame[i].status == BLOCKED)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2735 count--;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2736
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2737 return count;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2738 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2739
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2740
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2741 uint8_t housekeepingFrame(void)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2742 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2743 static uint8_t countLogClear = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2744 uint8_t i;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2745 uint8_t retVal = 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2746
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2747 if(DMA2D_at_work == 255)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2748 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2749 i = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2750 /* skip frame cleaning for actual frames which have not yet been replaced by new top/bottom frames */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2751 while((i < MAXFRAMES) && ((frame[i].status != RELEASED) || (frame[i].StartAddress == GFX_get_pActualFrameTop()) || (frame[i].StartAddress == GFX_get_pActualFrameBottom())))
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2752 i++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2753
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2754 if((i < MAXFRAMES) && (frame[i].status == RELEASED))
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2755 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2756 if(frame[i].caller == 15)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2757 countLogClear++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2758 GFX_clear_frame_dma2d(i);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2759 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2760 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2761 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2762 retVal = 0; /* no more frame to be cleaned found */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2763 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2764 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2765 return retVal;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2766 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2767
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2768
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2769 static void GFX_Dma2d_TransferComplete(DMA2D_HandleTypeDef* Dma2dHandle)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2770 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2771 if(DMA2D_at_work < MAXFRAMES)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2772 frame[DMA2D_at_work].status = CLEAR;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2773
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2774 DMA2D_at_work = 255;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2775 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2776
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2777
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2778 static void GFX_Dma2d_TransferError(DMA2D_HandleTypeDef* Dma2dHandle)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2779 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2780
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2781 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2782
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2783 static void GFX_Error_Handler(void)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2784 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2785 /* Turn LED3 on */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2786 // BSP_LED_On(LED3);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2787 while(1)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2788 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2789 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2790 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2791
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2792 void write_content_simple(GFX_DrawCfgScreen *tMscreen, uint16_t XleftGimpStyle, uint16_t XrightGimpStyle, uint16_t YtopGimpStyle, const tFont *Font, const char *text, uint8_t color)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2793 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2794 GFX_DrawCfgWindow hgfx;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2795
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2796
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2797 if(XrightGimpStyle > 799)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2798 XrightGimpStyle = 799;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2799 if(XleftGimpStyle >= XrightGimpStyle)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2800 XleftGimpStyle = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2801 if(YtopGimpStyle > 479)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2802 YtopGimpStyle = 479;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2803
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2804 hgfx.Image = tMscreen;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2805 hgfx.WindowNumberOfTextLines = 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2806 hgfx.WindowLineSpacing = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2807 hgfx.WindowTab = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2808
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2809 hgfx.WindowX0 = XleftGimpStyle;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2810 hgfx.WindowX1 = XrightGimpStyle;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2811 hgfx.WindowY1 = 479 - YtopGimpStyle;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2812 if(hgfx.WindowY1 < Font->height)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2813 hgfx.WindowY0 = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2814 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2815 hgfx.WindowY0 = hgfx.WindowY1 - Font->height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2816 GFX_write_string_color(Font, &hgfx, text, 0, color);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2817 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2818
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2819
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2820 void gfx_write_topline_simple(GFX_DrawCfgScreen *tMscreen, const char *text, uint8_t color)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2821 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2822 GFX_DrawCfgWindow hgfx;
1016
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1002
diff changeset
2823 const tFont *Font = &FontT48min;
985
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2824
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2825 hgfx.Image = tMscreen;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2826 hgfx.WindowNumberOfTextLines = 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2827 hgfx.WindowLineSpacing = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2828
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2829 hgfx.WindowTab = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2830 hgfx.WindowX0 = 20;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2831 hgfx.WindowX1 = 779;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2832
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2833 hgfx.WindowY1 = 479;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2834 hgfx.WindowY0 = hgfx.WindowY1 - Font->height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2835 GFX_write_label(Font, &hgfx, text, color);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2836 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2837
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2838
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2839 void gfx_write_page_number(GFX_DrawCfgScreen *tMscreen, uint8_t page, uint8_t total, uint8_t color)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2840 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2841 GFX_DrawCfgWindow hgfx;
1016
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1002
diff changeset
2842 const tFont *Font = &FontT48min;
985
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2843 char text[7];
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2844 uint8_t i, secondDigitPage, secondDigitTotal;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2845
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2846 if(total > 8)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2847 {
1016
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1002
diff changeset
2848 Font = &FontT24min;
985
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2849 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2850
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2851 hgfx.Image = tMscreen;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2852 hgfx.WindowNumberOfTextLines = 1;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2853 hgfx.WindowLineSpacing = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2854 hgfx.WindowTab = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2855
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2856 hgfx.WindowX1 = 779;
1016
0dd92e9b70a2 Bootloader use compressed fonts:
Ideenmodellierer
parents: 1002
diff changeset
2857 if(Font == &FontT24min)
985
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2858 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2859 hgfx.WindowX0 = hgfx.WindowX1 - (Font->spacesize*3);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2860 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2861 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2862 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2863 hgfx.WindowX0 = hgfx.WindowX1 - (Font->spacesize2Monospaced*3);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2864 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2865 hgfx.WindowY1 = 479;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2866 hgfx.WindowY0 = hgfx.WindowY1 - Font->height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2867 if(page > 99)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2868 page = 99;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2869 if(total > 99)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2870 total = 99;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2871
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2872 i = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2873 text[i++] = '\002';
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2874
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2875 secondDigitPage = page / 10;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2876 page -= secondDigitPage * 10;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2877
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2878 secondDigitTotal = total / 10;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2879 total -= secondDigitTotal * 10;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2880
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2881 if(secondDigitPage)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2882 text[i++] = '0' + secondDigitPage;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2883 text[i++] = '0' + page;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2884
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2885 text[i++] = '/';
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2886
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2887 if(secondDigitTotal)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2888 text[i++] = '0' + secondDigitTotal;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2889 text[i++] = '0' + total;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2890
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2891 text[i] = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2892
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2893 GFX_clear_window_immediately(&hgfx);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2894 GFX_write_label(Font, &hgfx, text, color);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2895 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2896
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2897
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2898 uint8_t gfx_number_to_string(uint8_t max_digits, _Bool fill, char *pText, uint32_t input)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2899 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2900 uint8_t digits[10];
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2901 uint32_t number, divider;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2902 int first;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2903 uint8_t out;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2904
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2905 number = input;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2906 first = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2907 divider = 1000000000;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2908 for(int i=9;i>=0;i--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2909 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2910 digits[i] = (uint8_t)(number / divider);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2911 number -= digits[i] * divider;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2912 divider /= 10;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2913 if((first == 0) && (digits[i] != 0))
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2914 first = i;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2915 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2916
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2917 if((first + 1) > max_digits)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2918 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2919 for(int i = 0; i<max_digits; i++)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2920 pText[i] = '9';
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2921 out = max_digits;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2922 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2923 else if(fill)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2924 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2925 int i = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2926 for(int k = max_digits; k>0; k--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2927 pText[i++] = digits[k -1] + '0';
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2928 out = max_digits;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2929 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2930 else
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2931 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2932 int i = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2933 for(int k = first; k>=0; k--)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2934 pText[i++] = digits[k] + '0';
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2935 out = i;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2936 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2937
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2938 return out;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2939 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2940
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2941
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2942 /* output is
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2943 * 0->
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2944 * |
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2945 * v
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2946 *
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2947 * input is
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2948 *
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2949 * ->
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2950 * A
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2951 * |
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2952 * 0
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2953 */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2954 void GFX_screenshot(void)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2955 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2956 uint32_t pSource = GFX_get_pActualFrameTop();
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2957 uint32_t pSourceBottom =GFX_get_pActualFrameBottom();
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2958 uint32_t pBottomNew = getFrame(99);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2959 uint32_t pDestination = GFX_doubleBufferOne();
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2960 uint32_t sourceNow;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2961
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2962
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2963 uint32_t bot_leftStart = FrameHandler.actualBottom.leftStart; // x0 z.B. 0
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2964 uint32_t bot_bottomStart = FrameHandler.actualBottom.bottomStart; // y0 z.B. 25
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2965 uint32_t bot_width = FrameHandler.actualBottom.width; // 800
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2966 uint32_t bot_height = FrameHandler.actualBottom.height; // 390
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2967
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2968 struct split
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2969 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2970 uint8_t blue;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2971 uint8_t green;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2972 uint8_t red;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2973 uint8_t alpha;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2974 };
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2975
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2976 union inout_u
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2977 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2978 uint32_t in;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2979 struct split out;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2980 };
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2981
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2982 union inout_u value;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2983
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2984 /* test
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2985 uint32_t pSourceTemp = pSource + (2*479);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2986 for (int j = 0xFFFF; j > 0x00FF; j -= 0x0100)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2987 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2988 *(__IO uint16_t*)pSourceTemp = j;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2989 pSourceTemp += 480*2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2990 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2991 */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2992 // Top Layer
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2993 const unsigned width = 800, height = 480;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2994 const uint32_t heightX2 = height*2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2995
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2996 for(unsigned y = 0; y < height; y++)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2997 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2998 sourceNow = pSource + 2 * ((height - 1) - y);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
2999 for(unsigned x = 0; x < width; x++)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3000 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3001 // sourceNow += 2 * height * x + 2 * (height - 1 - y);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3002 value.in = ColorLUT[*(__IO uint8_t*)(sourceNow)];
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3003 value.out.alpha = *(__IO uint8_t*)(sourceNow + 1);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3004
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3005 *(__IO uint8_t*)(pDestination++) = value.out.red;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3006 *(__IO uint8_t*)(pDestination++) = value.out.green;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3007 *(__IO uint8_t*)(pDestination++) = value.out.blue;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3008 *(__IO uint8_t*)(pDestination++) = value.out.alpha;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3009 sourceNow += heightX2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3010 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3011 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3012
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3013 // Bottom Layer
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3014 // build newBottom
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3015 pSource = pSourceBottom;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3016 for(unsigned x = bot_leftStart; x < bot_leftStart+bot_width; x++)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3017 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3018 for(unsigned y = bot_bottomStart; y < bot_bottomStart+bot_height; y++)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3019 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3020 pDestination = pBottomNew + (2 * y);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3021 pDestination += heightX2 * x;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3022 *(__IO uint16_t*)(pDestination) = *(__IO uint16_t*)(pSource);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3023 pSource += 2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3024 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3025 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3026
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3027 // output Bottom Layer
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3028 pSource = pBottomNew;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3029 pDestination = GFX_doubleBufferTwo();
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3030
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3031 for(unsigned y = 0; y < height; y++)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3032 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3033 sourceNow = pSource + 2 * ((height - 1) - y);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3034 for(unsigned x = 0; x < width; x++)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3035 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3036 // sourceNow = pSource + 2 * height * x + 2 * (height - 1 - y);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3037 value.in = ColorLUT[*(__IO uint8_t*)(sourceNow)];
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3038 value.out.alpha = *(__IO uint8_t*)(sourceNow + 1);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3039
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3040 *(__IO uint8_t*)(pDestination++) = value.out.red;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3041 *(__IO uint8_t*)(pDestination++) = value.out.green;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3042 *(__IO uint8_t*)(pDestination++) = value.out.blue;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3043 *(__IO uint8_t*)(pDestination++) = value.out.alpha;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3044 sourceNow += heightX2;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3045 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3046 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3047 releaseFrame(99,pBottomNew);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3048 /*
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3049 // das kommt dazu!
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3050 unsigned yEnd = 480 - FrameHandler.actualBottom.bottomStart;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3051 unsigned yStart = yEnd - FrameHandler.actualBottom.height;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3052
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3053 if(yStart > 0)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3054 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3055 for(unsigned y = 0; y < yStart; y++)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3056 for(unsigned x = 0; x < width; x++)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3057 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3058 *(__IO uint8_t*)(pDestination++) = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3059 *(__IO uint8_t*)(pDestination++) = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3060 *(__IO uint8_t*)(pDestination++) = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3061 *(__IO uint8_t*)(pDestination++) = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3062 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3063 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3064 for(unsigned y = yStart; y < yEnd; y++)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3065 for(unsigned x = 0; x < width; x++)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3066 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3067 sourceNow = pSource + 2 * height * x + 2 * (height - 1 - y);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3068 value.in = ColorLUT[*(__IO uint8_t*)(sourceNow)];
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3069 value.out.alpha = *(__IO uint8_t*)(sourceNow + 1);
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3070
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3071 *(__IO uint8_t*)(pDestination++) = value.out.red;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3072 *(__IO uint8_t*)(pDestination++) = value.out.green;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3073 *(__IO uint8_t*)(pDestination++) = value.out.blue;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3074 *(__IO uint8_t*)(pDestination++) = value.out.alpha;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3075 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3076 if(yEnd < 480)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3077 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3078 for(unsigned y = yEnd; y < 480; y++)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3079 for(unsigned x = 0; x < width; x++)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3080 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3081 *(__IO uint8_t*)(pDestination++) = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3082 *(__IO uint8_t*)(pDestination++) = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3083 *(__IO uint8_t*)(pDestination++) = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3084 *(__IO uint8_t*)(pDestination++) = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3085 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3086 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3087 */
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3088 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3089
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3090 uint32_t GFX_Character_Width(uint8_t character, tFont *Font)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3091 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3092 uint32_t i;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3093 for(i=0;i<Font->length;i++)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3094 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3095 if(Font->chars[i].code == character)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3096 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3097 return Font->chars[i].image->width;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3098 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3099 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3100
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3101 return 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3102 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3103
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3104 void Gfx_colorsscheme_mod(char *text, uint8_t alternativeColor)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3105 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3106 char *p = text;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3107 uint8_t index = 0;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3108
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3109 while ((*p) && (index < MAX_COLOR_STRING_LENGTH))
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3110 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3111 if (*p == '\020')
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3112 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3113 if(!GFX_is_colorschemeDiveStandard())
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3114 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3115 *p = '\027';
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3116 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3117 else if(alternativeColor != 0)
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3118 {
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3119 *p += alternativeColor;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3120 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3121 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3122 p++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3123 index++;
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3124 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3125 }
aeafa631147d Exchange shared files with Bootloader specific mini version
Ideenmodellierer
parents:
diff changeset
3126