aboutsummaryrefslogtreecommitdiff
path: root/generate-emoji-sprite.py
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2022-11-05 15:53:28 +0100
committerdec05eba <dec05eba@protonmail.com>2022-11-05 15:53:28 +0100
commit4daa57f6d139f51a62ea4bcffa738bd5035df33a (patch)
treeba767bbbf1c7153a12e3d9e866a079c30d1c69e0 /generate-emoji-sprite.py
parentf89117b5cf36797b04291942b2f2494895fc58dd (diff)
Support as many emoji as possible, using separate emoji images in text
Diffstat (limited to 'generate-emoji-sprite.py')
-rwxr-xr-xgenerate-emoji-sprite.py73
1 files changed, 0 insertions, 73 deletions
diff --git a/generate-emoji-sprite.py b/generate-emoji-sprite.py
deleted file mode 100755
index bc26843..0000000
--- a/generate-emoji-sprite.py
+++ /dev/null
@@ -1,73 +0,0 @@
-#!/usr/bin/env python3
-
-from gi.repository import Gtk, Gdk, Pango, PangoCairo
-import cairo
-
-surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, 1024, 1369)
-context = cairo.Context(surface)
-pc = PangoCairo.create_context(context)
-layout = PangoCairo.create_layout(context)
-layout.set_font_description(Pango.FontDescription('NotoSans Emoji Normal 12'))
-layout.set_width(1024*Pango.SCALE)
-layout.set_wrap(Pango.WrapMode.CHAR)
-
-emoji_start = 0x1F000
-emoji_end = 0x1FB6F
-emoji_characters = []
-i = emoji_start
-while i <= emoji_end:
- emoji_characters.append(chr(i))
- i += 1
-
-layout.set_text("".join(emoji_characters), -1)
-PangoCairo.show_layout(context, layout)
-surface.write_to_png('images/emoji.png')
-
-with open("generated/Emoji.hpp", "w") as header_file:
- header_file.write("""#pragma once
-
-#include <stdint.h>
-
-// This file was automatically generated with generate-emoji-sprite.py, do not edit manually!
-
-namespace QuickMedia {
- struct EmojiRectangle {
- int x, y;
- int width, height;
- };
-
- bool codepoint_is_emoji(uint32_t codepoint);
- EmojiRectangle emoji_get_extents(uint32_t codepoint);
-}""")
-
-with open("generated/Emoji.cpp", "w") as source_file:
- source_file.write("""#include "Emoji.hpp"
-
-// This file was automatically generated with generate-emoji-sprite.py, do not edit manually!
-
-namespace QuickMedia {
- static EmojiRectangle emoji_extents[%s] = {
-""" % len(emoji_characters))
-
- i = 0
- index = 0
- for e in emoji_characters:
- emoji_pos = layout.index_to_pos(index)
- source_file.write(" {%s, %s, %s, %s}%s\n" % (int(emoji_pos.x/Pango.SCALE), int(emoji_pos.y/Pango.SCALE), int(emoji_pos.width/Pango.SCALE), int(emoji_pos.height/Pango.SCALE), "," if i < len(emoji_characters) - 1 else ""))
- i += 1
- index += 4
-
- source_file.write(
-""" };
-
- bool codepoint_is_emoji(uint32_t codepoint) {
- return codepoint >= 0x1F000 && codepoint <= 0x1FB6F;
- }
-
- EmojiRectangle emoji_get_extents(uint32_t codepoint) {
- if(codepoint < 0x1F000 || codepoint - 0x1F000 >= %s)
- return { 0, 0, 0, 0 };
- return emoji_extents[codepoint - 0x1F000];
- }
-}
-""" % len(emoji_characters))