libyggdrasil  v1.0.0
display.h
Go to the documentation of this file.
1  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2  * _____.___. .___ .__.__ *
3  * \__ | | ____ ____ __| _/___________ _____|__| | *
4  * / | |/ ___\ / ___\ / __ |\_ __ \__ \ / ___/ | | *
5  * \____ / /_/ > /_/ > /_/ | | | \// __ \_\___ \| | |__ *
6  * / ______\___ /\___ /\____ | |__| (____ /____ >__|____/ *
7  * \/ /_____//_____/ \/ \/ \/ *
8  * - Midgard - *
9  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
10  * This software can be used by students and other personal of the *
11  * Bern University of Applied Sciences under the terms of the MIT *
12  * license. *
13  * For other persons this software is under the terms of the GNU *
14  * General Public License version 2. *
15  * *
16  * Copyright © 2021, Bern University of Applied Sciences. *
17  * All rights reserved. *
18  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
26 #include <c/common/types.h>
27 
28 #include <stm32f7xx_hal.h>
29 #include <c/resources/fonts/fonts.h>
30 
34 typedef struct {
35  u32 colors[256];
36 } palette_t;
37 
43 };
44 
48 enum Color {
49  Color_Black = 0b00000000,
50  Color_Navy = 0b00000010,
51  Color_Blue = 0b00000011,
52  Color_Green = 0b00001100,
53  Color_Teal = 0b00001001,
54  Color_Lime = 0b00011100,
55  Color_Aqua = 0b00011111,
56  Color_Maroon = 0b01100000,
57  Color_Purple = 0b01100011,
58  Color_Olive = 0b01101100,
59  Color_Gray = 0b01001001,
60  Color_Red = 0b11100000,
61  Color_Fuchsia = 0b11100011,
62  Color_Yellow = 0b11111100,
63  Color_Orange = 0b11110000,
64  Color_White = 0b11111111,
65 };
66 
67 /*
68  * @brief Display initialization
69  *
70  * @return Success
71  */
73 
74 /*
75  * @brief Display deinitialization
76  *
77  * @return Success
78  */
80 
81 /*
82  * @brief Display reset
83  */
85 
86 /*
87  * @brief Enable the display
88  */
90 
91 /*
92  * @brief Disable the display
93  */
95 
96 /*
97  * @brief Get the display width
98  *
99  * @return display width
100  */
102 
103 /*
104  * @brief Get the display height
105  *
106  * @return display height
107  */
109 
110 /*
111  * @brief Set the color palette
112  *
113  * @param palette Color palette
114  */
116 
117 /*
118  * @brief Get the default color palette
119  *
120  * @return Default color palette
121  */
123 
124 /*
125  * @brief Get the framebuffer address
126  *
127  * @return framebuffer address
128  */
130 
136 C_LINKAGE void yggdrasil_Display_Clear(u8 colorIndex);
137 
147 C_LINKAGE void yggdrasil_Display_DrawRectangle(u16 x1, u16 y1, u16 x2, u16 y2, u8 colorIndex);
148 
158 C_LINKAGE void yggdrasil_Display_FillRectangle(u16 x1, u16 y1, u16 x2, u16 y2, u8 colorIndex);
159 
167 C_LINKAGE void yggdrasil_Display_DrawPixel(u16 x, u16 y, u8 colorIndex);
168 
178 C_LINKAGE void yggdrasil_Display_DrawLine(u16 x1, u16 y1, u16 x2, u16 y2, u8 colorIndex);
179 
188 C_LINKAGE void yggdrasil_Display_DrawCircle(i16 centerX, i16 centerY, u16 radius, u8 colorIndex);
189 
198 C_LINKAGE void yggdrasil_Display_FillCircle(i16 centerX, i16 centerY, u16 radius, u8 colorIndex);
199 
209 C_LINKAGE void yggdrasil_Display_DrawCharacter(u16 x, u16 y, char c, u8 colorIndex, Font *font);
210 
220 C_LINKAGE void yggdrasil_Display_DrawString(u16 x, u16 y, const char *string, u8 colorIndex, Font *font);
221 
222 
223 
Color_Maroon
@ Color_Maroon
Definition: display.h:41
Color_Aqua
@ Color_Aqua
Definition: display.h:40
types.h
Commonly used type definitions and helper templates.
yggdrasil_Display_TurnOn
C_LINKAGE void yggdrasil_Display_TurnOn(void)
Definition: display.cpp:50
Color_White
@ Color_White
Definition: display.h:49
DisplayOrientation_Portrait
@ DisplayOrientation_Portrait
Definition: display.h:42
u16
uint16_t u16
Definition: types.h:37
u8
uint8_t u8
Unsigned integer definitions.
Definition: types.h:36
yggdrasil_Display_Init
C_LINKAGE bool yggdrasil_Display_Init(void)
Definition: display.cpp:38
Color_Blue
@ Color_Blue
Definition: display.h:36
Color_Teal
@ Color_Teal
Definition: display.h:38
yggdrasil_Display_GetFrameBufferAddress
C_LINKAGE void * yggdrasil_Display_GetFrameBufferAddress(void)
Definition: display.cpp:67
i16
int16_t i16
Definition: types.h:47
yggdrasil_Display_TurnOff
C_LINKAGE void yggdrasil_Display_TurnOff(void)
Definition: display.cpp:55
yggdrasil_Display_Deinit
C_LINKAGE bool yggdrasil_Display_Deinit(void)
Definition: display.cpp:42
Color_Lime
@ Color_Lime
Definition: display.h:39
yggdrasil_Display_DrawCircle
C_LINKAGE void yggdrasil_Display_DrawCircle(i16 centerX, i16 centerY, u16 radius, u16 color)
Draw a cricle.
Definition: display.cpp:91
yggdrasil_Display_GetDefaultPalette
C_LINKAGE palette_t yggdrasil_Display_GetDefaultPalette(void)
Definition: display.cpp:73
yggdrasil_Display_FillRectangle
C_LINKAGE void yggdrasil_Display_FillRectangle(u16 x1, u16 y1, u16 x2, u16 y2, u16 color)
Draw a filled rectangle.
Definition: display.cpp:79
u32
uint32_t u32
Definition: types.h:38
Color_Purple
@ Color_Purple
Definition: display.h:42
Color_Gray
@ Color_Gray
Definition: display.h:44
yggdrasil_Display_getHeight
C_LINKAGE u16 yggdrasil_Display_getHeight(void)
Definition: display.cpp:63
Color
Color
Predefined colors.
Definition: display.h:33
yggdrasil_Display_Clear
C_LINKAGE void yggdrasil_Display_Clear(u16 color)
Clear the display to a color.
Definition: display.cpp:71
yggdrasil_Display_getWidth
C_LINKAGE u16 yggdrasil_Display_getWidth(void)
Definition: display.cpp:59
Color_Yellow
@ Color_Yellow
Definition: display.h:47
yggdrasil_Display_DrawCharacter
C_LINKAGE void yggdrasil_Display_DrawCharacter(u16 x, u16 y, char c, u16 color, Font *font)
Draw a single character.
Definition: display.cpp:99
yggdrasil_Display_DrawRectangle
C_LINKAGE void yggdrasil_Display_DrawRectangle(u16 x1, u16 y1, u16 x2, u16 y2, u16 color)
Draw a rectangle.
Definition: display.cpp:75
Color_Orange
@ Color_Orange
Definition: display.h:48
Color_Black
@ Color_Black
Definition: display.h:34
yggdrasil_Display_FillCircle
C_LINKAGE void yggdrasil_Display_FillCircle(i16 centerX, i16 centerY, u16 radius, u16 color)
Draw a filled circle.
Definition: display.cpp:95
yggdrasil_Display_DrawPixel
C_LINKAGE void yggdrasil_Display_DrawPixel(u16 x, u16 y, u16 color)
Draw a single pixel.
Definition: display.cpp:83
Color_Red
@ Color_Red
Definition: display.h:45
yggdrasil_Display_DrawString
C_LINKAGE void yggdrasil_Display_DrawString(u16 x, u16 y, const char *string, u16 color, Font *font)
Draw a string.
Definition: display.cpp:103
palette_t
Color palette type.
Definition: display.h:34
Color_Navy
@ Color_Navy
Definition: display.h:35
DisplayOrientation
DisplayOrientation
Display orientation.
Definition: display.h:41
C_LINKAGE
#define C_LINKAGE
Definition: attributes.h:43
Color_Green
@ Color_Green
Definition: display.h:37
Color_Fuchsia
@ Color_Fuchsia
Definition: display.h:46
yggdrasil_Display_DrawLine
C_LINKAGE void yggdrasil_Display_DrawLine(u16 x1, u16 y1, u16 x2, u16 y2, u16 color)
Draw a line.
Definition: display.cpp:87
Color_Olive
@ Color_Olive
Definition: display.h:43
yggdrasil_Display_Reset
C_LINKAGE void yggdrasil_Display_Reset(void)
Definition: display.cpp:46
yggdrasil_Display_SetPalette
C_LINKAGE void yggdrasil_Display_SetPalette(palette_t *palette)
Definition: display.cpp:67