summaryrefslogtreecommitdiff
path: root/frontends/calculator/CEdev/examples/gfx_char/src
diff options
context:
space:
mode:
Diffstat (limited to 'frontends/calculator/CEdev/examples/gfx_char/src')
-rw-r--r--frontends/calculator/CEdev/examples/gfx_char/src/main.c52
1 files changed, 52 insertions, 0 deletions
diff --git a/frontends/calculator/CEdev/examples/gfx_char/src/main.c b/frontends/calculator/CEdev/examples/gfx_char/src/main.c
new file mode 100644
index 0000000..7d1b5ec
--- /dev/null
+++ b/frontends/calculator/CEdev/examples/gfx_char/src/main.c
@@ -0,0 +1,52 @@
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <graphx.h>
+
+/* Use some random color as the transparent one */
+#define TRANSPARENT_COLOR 10
+#define FONT_WIDTH 8
+#define FONT_HEIGHT 8
+
+/* Function prototypes */
+void printu(char *str, int x, int y);
+
+const char *my_str = "!!DEPPILF si txet sihT";
+
+void main(void) {
+ /* Initialize the 8bpp graphics */
+ gfx_Begin();
+ gfx_FillScreen(gfx_black);
+
+ /* Setup the colors */
+ gfx_SetTextFGColor(gfx_white);
+
+ /* Set the transparent text background color */
+ gfx_SetTextBGColor(TRANSPARENT_COLOR);
+ gfx_SetTextTransparentColor(TRANSPARENT_COLOR);
+ gfx_SetMonospaceFont(FONT_WIDTH);
+
+ /* Print some upside down text */
+ printu(my_str, (LCD_WIDTH - gfx_GetStringWidth(my_str)) / 2, (LCD_HEIGHT - FONT_HEIGHT) / 2);
+
+ /* Wait for key */
+ while (!os_GetCSC());
+
+ /* Finish the graphics */
+ gfx_End();
+}
+
+void printu(char *str, int x, int y) {
+ gfx_TempSprite(my_char, 8, 8);
+
+ while (*str) {
+ gfx_TransparentSprite(gfx_RotateSpriteHalf(gfx_GetSpriteChar(*str), my_char), x, y);
+ x += gfx_GetCharWidth(*str++);
+ }
+}