Mercurial > public > ostc4
annotate Discovery/Inc/gfx_engine.h @ 995:768ed327ee69 GasConsumption
update built for test divers
| author | heinrichsweikamp |
|---|---|
| date | Sun, 27 Apr 2025 10:14:25 +0200 |
| parents | bc6c90e20d9e |
| children | 65d35e66efb9 |
| rev | line source |
|---|---|
| 38 | 1 /////////////////////////////////////////////////////////////////////////////// |
| 2 /// -*- coding: UTF-8 -*- | |
| 3 /// | |
| 4 /// \file Discovery/Inc/gfx_engine.h | |
| 5 /// \brief DATA INPUT POSITION structure definition | |
| 6 /// \author heinrichs weikamp gmbh | |
| 7 /// \date 07-April-2014 | |
| 8 /// | |
| 9 /// $Id$ | |
| 10 /////////////////////////////////////////////////////////////////////////////// | |
| 11 /// \par Copyright (c) 2014-2018 Heinrichs Weikamp gmbh | |
| 12 /// | |
| 13 /// This program is free software: you can redistribute it and/or modify | |
| 14 /// it under the terms of the GNU General Public License as published by | |
| 15 /// the Free Software Foundation, either version 3 of the License, or | |
| 16 /// (at your option) any later version. | |
| 17 /// | |
| 18 /// This program is distributed in the hope that it will be useful, | |
| 19 /// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 20 /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 21 /// GNU General Public License for more details. | |
| 22 /// | |
| 23 /// You should have received a copy of the GNU General Public License | |
| 24 /// along with this program. If not, see <http://www.gnu.org/licenses/>. | |
| 25 ////////////////////////////////////////////////////////////////////////////// | |
| 26 | |
| 27 /* Define to prevent recursive inclusion -------------------------------------*/ | |
| 28 #ifndef GFX_ENGINE_H | |
| 29 #define GFX_ENGINE_H | |
| 30 | |
| 31 /* Includes ------------------------------------------------------------------*/ | |
| 32 #include "stm32f4xx_hal.h" | |
| 33 #include "gfx.h" | |
| 34 | |
| 35 /* Exported types ------------------------------------------------------------*/ | |
| 36 | |
| 37 /** | |
| 38 * @brief DATA INPUT POSITION structure definition | |
| 39 */ | |
| 40 | |
| 41 typedef struct | |
| 42 { | |
| 43 uint32_t FBStartAdress; /*!< Configures the color frame buffer address */ | |
| 44 uint16_t ImageWidth; /*!< Configures the color frame buffer line length. | |
| 45 This parameter must be a number between Min_Data = 0x0000 and Max_Data = 0x1FFF. */ | |
| 46 uint16_t ImageHeight; /*!< Specifies the number of line in frame buffer. | |
| 47 This parameter must be a number between Min_Data = 0x000 and Max_Data = 0x7FF. */ | |
| 48 uint8_t LayerIndex; | |
| 49 } GFX_DrawCfgScreen; | |
| 50 | |
| 51 | |
| 52 typedef struct | |
| 53 { | |
| 54 uint16_t WindowX0; /*!< Configures the Window vertical Start Position. | |
| 55 This parameter must be a number between Min_Data = 0x000 and Max_Data = 0xFFF. */ | |
| 56 uint16_t WindowX1; /*!< Configures the Window vertical Stop Position. | |
| 57 This parameter must be a number between Min_Data = 0x000 and Max_Data = 0xFFF. */ | |
| 58 uint16_t WindowY0; /*!< Configures the Window Horizontal Start Position. | |
| 59 This parameter must be a number between Min_Data = 0x000 and Max_Data = 0xFFF. */ | |
| 60 uint16_t WindowY1; /*!< Configures the Window Horizontal Stop Position. | |
| 61 This parameter must be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF. */ | |
| 62 | |
| 63 uint16_t WindowTab; /*!< Configures the Window Horizontal Absolute Tab Position. | |
| 64 This parameter must be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF. */ | |
| 65 | |
| 66 uint16_t WindowNumberOfTextLines; /*!< Configures the Number of Text Lines. | |
| 67 This parameter must be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF. */ | |
| 68 | |
| 69 uint16_t WindowLineSpacing; /*!< Configures the Number of Text Lines. | |
| 70 This parameter must be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF. */ | |
| 71 GFX_DrawCfgScreen *Image; | |
| 72 } GFX_DrawCfgWindow; | |
| 73 | |
| 74 typedef struct | |
| 75 { | |
| 76 int left; | |
| 77 int right; | |
| 78 int top; | |
| 79 int bottom; | |
| 80 } SWindowGimpStyle; | |
| 81 | |
| 82 /* Exported variables --------------------------------------------------------*/ | |
| 83 | |
| 84 /** | |
| 85 * \001 center | |
| 86 * \002 right | |
| 87 * \003 doubleSize | |
| 88 * \004 NOP | |
| 89 * \005 checkbox checked | |
| 90 * \006 checkbox unchecked | |
| 91 * \007 invert \a | |
| 92 * \010 use color \b | |
| 93 * \011 tab \t | |
| 94 * \012 line feed \n | |
| 95 * \014 top align \f | |
| 96 * \015 carriage return \r | |
| 97 * \016 O:o O.o style | |
| 98 * \017 back to O font | |
| 99 * \020 color 0 | |
| 100 * ... | |
| 101 * \027 color 8 | |
| 102 * \026 color 11 | |
| 103 * \033 UNUSED \c ESC | |
| 104 * \034 monospaced space large size mode | |
| 105 * \035 standard space size mode | |
| 106 * \040 space == begin of text | |
| 107 * ... | |
| 108 * \x7F = \177 del = space with size of next char | |
| 109 * \x7F\x7F = \177\177 del del = space with size of next byte | |
| 110 * \x80 begin of TXT_Substring with Language support | |
| 111 */ | |
| 112 | |
| 113 /* Exported functions --------------------------------------------------------*/ | |
| 114 | |
| 115 void GFX_init(uint32_t * pDestinationOut); | |
| 870 | 116 void GFX_init1_no_DMA(uint32_t * pDestinationOut, uint8_t blockFrames); |
| 38 | 117 |
| 118 void GFX_helper_font_memory_list(const tFont *Font); | |
| 119 | |
| 120 void GFX_start_VSYNC_IRQ(void); | |
| 121 void GFX_change_LTDC(void); | |
| 122 | |
| 123 void GFX_SetFrameTop(uint32_t pDestination); | |
| 124 void GFX_SetFrameBottom(uint32_t pDestination, uint32_t x0, uint32_t y0, uint32_t width, uint32_t height); | |
| 125 void GFX_SetFramesTopBottom(uint32_t pTop, uint32_t pBottom, uint32_t heightBottom); | |
| 126 | |
| 127 void GFX_SetWindowLayer0(uint32_t pDestination, int16_t XleftGimpStyle, int16_t XrightGimpStyle, int16_t YtopGimpStyle, int16_t YbottomGimpStyle); | |
| 128 void change_CLUT_entry(uint8_t entryToChange, uint8_t entryUsedForChange); | |
| 129 | |
| 130 uint16_t GFX_return_offset(const tFont *Font, char *pText, uint8_t position); | |
| 131 | |
| 132 void GFX_VGA_transform(uint32_t pSource, uint32_t pDestination); | |
| 133 | |
| 134 HAL_StatusTypeDef GFX_SetBackgroundColor(uint32_t LayerIdx, uint8_t red, uint8_t green, uint8_t blue); | |
| 135 | |
| 136 void GFX_LTDC_LayerTESTInit(uint16_t LayerIndex, uint32_t FB_Address); | |
| 137 | |
| 138 void GFX_fill_buffer(uint32_t pDestination, uint8_t alpha, uint8_t color); | |
| 139 | |
| 140 void GFX_clear_window_immediately(GFX_DrawCfgWindow* hgfx); | |
| 141 | |
| 142 //void GFX_draw_circle_with_MEMORY(uint8_t use_memory, GFX_DrawCfgScreen *hgfx, point_t center, uint8_t radius, int8_t color); | |
| 143 void GFX_draw_circle(GFX_DrawCfgScreen *hgfx, point_t center, uint8_t radius, int8_t color); | |
| 144 void GFX_draw_colorline(GFX_DrawCfgScreen *hgfx, point_t start, point_t stop, uint8_t color); | |
| 145 void GFX_draw_thick_line(uint8_t thickness, GFX_DrawCfgScreen *hgfx, point_t start, point_t stop, uint8_t color); | |
| 146 void GFX_draw_line(GFX_DrawCfgScreen *hgfx, point_t start, point_t stop, uint8_t color); | |
| 147 void GFX_draw_box2(GFX_DrawCfgScreen *hgfx, point_t start, point_t stop, uint8_t color, uint8_t roundCorners); | |
| 148 void GFX_draw_box(GFX_DrawCfgScreen *hgfx, point_t LeftLow, point_t WidthHeight, uint8_t Style, uint8_t color); | |
| 149 void GFX_draw_header(GFX_DrawCfgScreen *hgfx, uint8_t colorId); | |
| 150 void GFX_clean_line(GFX_DrawCfgWindow* hgfx, uint32_t line_number); | |
| 151 void GFX_clean_area(GFX_DrawCfgScreen *tMscreen, uint16_t XleftGimpStyle, uint16_t XrightGimpStyle, uint16_t YtopGimpStyle, uint16_t YBottomGimpStyle); | |
| 152 | |
| 153 uint32_t GFX_write_string(const tFont *Font, GFX_DrawCfgWindow* hgfx, const char *pText, uint32_t line_number); | |
| 154 uint32_t GFX_write_string_color(const tFont *Font, GFX_DrawCfgWindow* hgfx, const char *pText, uint32_t line_number, uint8_t color); | |
| 155 uint32_t GFX_write_label(const tFont *Font, GFX_DrawCfgWindow* hgfx, const char *pText, uint8_t color); | |
| 156 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); | |
| 157 void GFX_LTDC_Init(void); | |
| 158 void GFX_VGA_LTDC_Init(void); | |
| 159 void GFX_LTDC_LayerDefaultInit(uint16_t LayerIndex, uint32_t FB_Address); | |
| 160 void GFX_VGA_LTDC_LayerDefaultInit(uint16_t LayerIndex, uint32_t FB_Address); | |
| 161 void GFX_LTDC_LayerMenuBackgroundInit(uint32_t FB_Address); | |
| 162 //void GFX_ResetLayer(uint32_t LayerIdx); | |
| 163 | |
| 164 //void GFX_fill_full_image_ARGB8888_alternating_lines(GFX_DrawCfgWindow* hgfx, uint32_t color1, uint32_t color2); | |
| 165 //void GFX_fill_window_ARGB8888(GFX_DrawCfgWindow* hgfx, uint32_t color); | |
| 166 | |
| 167 //void GFX_copy_full_image_ARGB8888_to_RGB888(GFX_DrawCfgWindow* hgfx, uint32_t FBdestination); | |
| 168 | |
| 169 void GFX_graph_print(GFX_DrawCfgScreen *hgfx, const SWindowGimpStyle *window, 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); | |
| 170 void GFX_draw_Grid(GFX_DrawCfgScreen *hgfx, SWindowGimpStyle window, int vlines, float vdeltaline, int hlines, float hdeltalines, uint8_t color); | |
| 171 | |
| 172 uint32_t getFrame(uint8_t callerId); | |
| 173 uint32_t getFrameByNumber(uint8_t ZeroToMaxFrames); | |
| 174 uint8_t releaseFrame(uint8_t callerId, uint32_t frameStartAddress); | |
| 175 void GFX_forceReleaseFramesWithId(uint8_t callerId); | |
| 176 void releaseAllFramesExcept(uint8_t callerId, uint32_t frameStartAddress); | |
|
625
028d8f3a9410
Switch Sector / Scroll detection to vector implementation:
Ideenmodellierer
parents:
567
diff
changeset
|
177 uint8_t housekeepingFrame(void); |
| 38 | 178 uint16_t blockedFramesCount(void); |
| 179 uint8_t getFrameCount(uint8_t frameId); | |
| 180 | |
| 181 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); | |
| 182 void gfx_write_topline_simple(GFX_DrawCfgScreen *tMscreen, const char *text, uint8_t color); | |
| 183 void gfx_write_page_number(GFX_DrawCfgScreen *tMscreen, uint8_t page, uint8_t total, uint8_t color); | |
| 184 | |
| 185 void GFX_draw_image_monochrome(GFX_DrawCfgScreen *hgfx, SWindowGimpStyle window, const tImage *image, uint8_t color); | |
| 314 | 186 void GFX_build_logo_frame(void); |
| 187 void GFX_build_hw_background_frame(void); | |
| 188 | |
| 38 | 189 void GFX_logoAutoOff(void); |
| 190 uint8_t GFX_logoStatus(void); | |
| 191 void GFX_hwBackgroundOn(void); | |
| 192 void GFX_hwBackgroundOff(void); | |
| 193 | |
| 194 uint8_t gfx_number_to_string(uint8_t max_digits, _Bool fill, char *pText, uint32_t number); | |
| 195 | |
| 196 uint8_t GFX_is_colorschemeDiveStandard(void); | |
| 197 void GFX_use_colorscheme(uint8_t colorscheme); | |
| 198 | |
| 199 void GFX_screenshot(void); | |
| 200 | |
| 567 | 201 tFont* GFX_Check_Extra_Font(uint8_t character, tFont *Font); |
| 202 uint32_t GFX_Character_Width(uint8_t character, tFont *Font); | |
| 870 | 203 void Gfx_colorsscheme_mod(char *text, uint8_t alternativeColor); |
| 38 | 204 #endif // GFX_ENGINE_H |
