libyggdrasil  v1.0.0
display.h
Go to the documentation of this file.
1  /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2  * _____.___. .___ .__.__ *
3  * \__ | | ____ ____ __| _/___________ _____|__| | *
4  * / | |/ ___\ / ___\ / __ |\_ __ \__ \ / ___/ | | *
5  * \____ / /_/ > /_/ > /_/ | | | \// __ \_\___ \| | |__ *
6  * / ______\___ /\___ /\____ | |__| (____ /____ >__|____/ *
7  * \/ /_____//_____/ \/ \/ \/ *
8  * - Asgard - *
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 <c/resources/fonts/fonts.h>
29 
33 enum Color {
34  Color_Black = 0b0000000000000000,
35  Color_Navy = 0b0000000000010000,
36  Color_Blue = 0b0000000000011000,
37  Color_Green = 0b0000001100000000,
38  Color_Teal = 0b0000001000001000,
39  Color_Lime = 0b0000011100000000,
40  Color_Aqua = 0b0000011100011000,
41  Color_Maroon = 0b0110000000000000,
42  Color_Purple = 0b0110000000011000,
43  Color_Olive = 0b0110001100000000,
44  Color_Gray = 0b0100001000001000,
45  Color_Red = 0b1110000000000000,
46  Color_Fuchsia = 0b1110000000011000,
47  Color_Yellow = 0b1110011100000000,
48  Color_Orange = 0b1110010000000000,
49  Color_White = 0b1110011100011000,
50 };
51 
52 /*
53  * @brief Display initialization
54  *
55  * @return True when successful, false when not
56  */
58 
59 /*
60  * @brief Display deinitialization
61  *
62  * @return True when successful, false when not
63  */
65 
66 /*
67  * @brief Display reset
68  */
70 
71 /*
72  * @brief Enable the display
73  */
75 
76 /*
77  * @brief Disable the display
78  */
80 
81 /*
82  * @brief Get the display width
83  *
84  * @return display width
85  */
87 
88 /*
89  * @brief Get the display height
90  *
91  * @return display height
92  */
94 
95 /*
96  * @brief Get the framebuffer address
97  *
98  * @return framebuffer address
99  */
101 
108 
118 C_LINKAGE void yggdrasil_Display_DrawRectangle(u16 x1, u16 y1, u16 x2, u16 y2, u16 color);
119 
129 C_LINKAGE void yggdrasil_Display_FillRectangle(u16 x1, u16 y1, u16 x2, u16 y2, u16 color);
130 
139 
149 C_LINKAGE void yggdrasil_Display_DrawLine(u16 x1, u16 y1, u16 x2, u16 y2, u16 color);
150 
159 C_LINKAGE void yggdrasil_Display_DrawCircle(i16 centerX, i16 centerY, u16 radius, u16 color);
160 
169 C_LINKAGE void yggdrasil_Display_FillCircle(i16 centerX, i16 centerY, u16 radius, u16 color);
170 
180 C_LINKAGE void yggdrasil_Display_DrawCharacter(u16 x, u16 y, char c, u16 color, Font *font);
181 
191 C_LINKAGE void yggdrasil_Display_DrawString(u16 x, u16 y, const char *string, u16 color, Font *font);
192 
193 
194 
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
u16
uint16_t u16
Definition: types.h:37
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_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
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
Color_Navy
@ Color_Navy
Definition: display.h:35
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