text: remove load/unload helpers for text-font backends
authorDavid Herrmann <dh.herrmann@googlemail.com>
Wed, 2 Jan 2013 17:14:48 +0000 (18:14 +0100)
committerDavid Herrmann <dh.herrmann@googlemail.com>
Wed, 2 Jan 2013 17:14:48 +0000 (18:14 +0100)
With modules we no longer need to conditionally load backends. Instead
each module will register the backend with the main application on load.

This will temporarily break pango, freetype2 and unifont backends as they
are not registered until we introduce full module support.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
src/kmscon_main.c
src/text.h
src/text_font_8x16.c
src/text_font_freetype2.c
src/text_font_pango.c
src/text_font_unifont.c
src/wlt_main.c

index cd6dc70..973c603 100644 (file)
@@ -604,7 +604,7 @@ int main(int argc, char **argv)
                return 0;
        }
 
-       kmscon_font_load_all();
+       kmscon_font_register(&kmscon_font_8x16_ops);
        kmscon_text_load_all();
 
        memset(&app, 0, sizeof(app));
@@ -646,7 +646,7 @@ int main(int argc, char **argv)
        destroy_app(&app);
 err_unload:
        kmscon_text_unload_all();
-       kmscon_font_unload_all();
+       kmscon_font_unregister(kmscon_font_8x16_ops.name);
 err_conf:
        kmscon_conf_free(conf_ctx);
 err_out:
index e3ce346..8a89de1 100644 (file)
@@ -183,62 +183,10 @@ int kmscon_text_render_cb(struct tsm_screen *con, void *data);
 
 /* modularized backends */
 
-int kmscon_font_8x16_load(void);
-void kmscon_font_8x16_unload(void);
-
-#ifdef BUILD_ENABLE_FONT_UNIFONT
-
-int kmscon_font_unifont_load(void);
-void kmscon_font_unifont_unload(void);
-
-#else
-
-static inline int kmscon_font_unifont_load(void)
-{
-       return -EOPNOTSUPP;
-}
-
-static inline void kmscon_font_unifont_unload(void)
-{
-}
-
-#endif
-
-#ifdef BUILD_ENABLE_FONT_FREETYPE2
-
-int kmscon_font_freetype2_load(void);
-void kmscon_font_freetype2_unload(void);
-
-#else
-
-static inline int kmscon_font_freetype2_load(void)
-{
-       return -EOPNOTSUPP;
-}
-
-static inline void kmscon_font_freetype2_unload(void)
-{
-}
-
-#endif
-
-#ifdef BUILD_ENABLE_FONT_PANGO
-
-int kmscon_font_pango_load(void);
-void kmscon_font_pango_unload(void);
-
-#else
-
-static inline int kmscon_font_pango_load(void)
-{
-       return -EOPNOTSUPP;
-}
-
-static inline void kmscon_font_pango_unload(void)
-{
-}
-
-#endif
+extern const struct kmscon_font_ops kmscon_font_8x16_ops;
+extern const struct kmscon_font_ops kmscon_font_unifont_ops;
+extern const struct kmscon_font_ops kmscon_font_freetype2_ops;
+extern const struct kmscon_font_ops kmscon_font_pango_ops;
 
 #ifdef BUILD_ENABLE_RENDERER_BBLIT
 
@@ -294,22 +242,6 @@ static inline void kmscon_text_gltex_unload(void)
 
 #endif
 
-static inline void kmscon_font_load_all(void)
-{
-       kmscon_font_8x16_load();
-       kmscon_font_unifont_load();
-       kmscon_font_pango_load();
-       kmscon_font_freetype2_load();
-}
-
-static inline void kmscon_font_unload_all(void)
-{
-       kmscon_font_freetype2_unload();
-       kmscon_font_pango_unload();
-       kmscon_font_unifont_unload();
-       kmscon_font_8x16_unload();
-}
-
 static inline void kmscon_text_load_all(void)
 {
        kmscon_text_bbulk_load();
index 56b52aa..5f29e57 100644 (file)
@@ -105,7 +105,7 @@ static int kmscon_font_8x16_render_inval(struct kmscon_font *font,
        return 0;
 }
 
-static const struct kmscon_font_ops kmscon_font_8x16_ops = {
+const struct kmscon_font_ops kmscon_font_8x16_ops = {
        .name = "8x16",
        .init = kmscon_font_8x16_init,
        .destroy = kmscon_font_8x16_destroy,
@@ -114,24 +114,6 @@ static const struct kmscon_font_ops kmscon_font_8x16_ops = {
        .render_inval = kmscon_font_8x16_render_inval,
 };
 
-int kmscon_font_8x16_load(void)
-{
-       int ret;
-
-       ret = kmscon_font_register(&kmscon_font_8x16_ops);
-       if (ret) {
-               log_error("cannot register 8x16 font");
-               return ret;
-       }
-
-       return 0;
-}
-
-void kmscon_font_8x16_unload(void)
-{
-       kmscon_font_unregister(kmscon_font_8x16_ops.name);
-}
-
 static const struct kmscon_glyph kmscon_font_8x16_glyphs[256] = {
        { /* 0 0x00 */
                .width = 1,
index c817649..11eb892 100644 (file)
@@ -682,7 +682,7 @@ static int kmscon_font_freetype2_render_inval(struct kmscon_font *font,
        return 0;
 }
 
-static const struct kmscon_font_ops kmscon_font_freetype2_ops = {
+const struct kmscon_font_ops kmscon_font_freetype2_ops = {
        .name = "freetype2",
        .init = kmscon_font_freetype2_init,
        .destroy = kmscon_font_freetype2_destroy,
@@ -690,21 +690,3 @@ static const struct kmscon_font_ops kmscon_font_freetype2_ops = {
        .render_empty = kmscon_font_freetype2_render_empty,
        .render_inval = kmscon_font_freetype2_render_inval,
 };
-
-int kmscon_font_freetype2_load(void)
-{
-       int ret;
-
-       ret = kmscon_font_register(&kmscon_font_freetype2_ops);
-       if (ret) {
-               log_error("cannot register freetype2 font");
-               return ret;
-       }
-
-       return 0;
-}
-
-void kmscon_font_freetype2_unload(void)
-{
-       kmscon_font_unregister(kmscon_font_freetype2_ops.name);
-}
index 2c61449..9ef1a8e 100644 (file)
@@ -428,7 +428,7 @@ static int kmscon_font_pango_render_inval(struct kmscon_font *font,
                                        out);
 }
 
-static const struct kmscon_font_ops kmscon_font_pango_ops = {
+const struct kmscon_font_ops kmscon_font_pango_ops = {
        .name = "pango",
        .init = kmscon_font_pango_init,
        .destroy = kmscon_font_pango_destroy,
@@ -436,21 +436,3 @@ static const struct kmscon_font_ops kmscon_font_pango_ops = {
        .render_empty = kmscon_font_pango_render_empty,
        .render_inval = kmscon_font_pango_render_inval,
 };
-
-int kmscon_font_pango_load(void)
-{
-       int ret;
-
-       ret = kmscon_font_register(&kmscon_font_pango_ops);
-       if (ret) {
-               log_error("cannot register pango font");
-               return ret;
-       }
-
-       return 0;
-}
-
-void kmscon_font_pango_unload(void)
-{
-       kmscon_font_unregister(kmscon_font_pango_ops.name);
-}
index d2b863b..bc1427f 100644 (file)
@@ -111,7 +111,7 @@ static int kmscon_font_unifont_render_empty(struct kmscon_font *font,
        }
 }
 
-static const struct kmscon_font_ops kmscon_font_unifont_ops = {
+const struct kmscon_font_ops kmscon_font_unifont_ops = {
        .name = "unifont",
        .init = kmscon_font_unifont_init,
        .destroy = kmscon_font_unifont_destroy,
@@ -119,21 +119,3 @@ static const struct kmscon_font_ops kmscon_font_unifont_ops = {
        .render_empty = kmscon_font_unifont_render_empty,
        .render_inval = kmscon_font_unifont_render_inval,
 };
-
-int kmscon_font_unifont_load(void)
-{
-       int ret;
-
-       ret = kmscon_font_register(&kmscon_font_unifont_ops);
-       if (ret) {
-               log_error("cannot register unifont font");
-               return ret;
-       }
-
-       return 0;
-}
-
-void kmscon_font_unifont_unload(void)
-{
-       kmscon_font_unregister(kmscon_font_unifont_ops.name);
-}
index 744ab47..6863e7a 100644 (file)
@@ -433,7 +433,7 @@ int main(int argc, char **argv)
 
        log_print_init("wlterm");
 
-       kmscon_font_load_all();
+       kmscon_font_register(&kmscon_font_8x16_ops);
 
        memset(&app, 0, sizeof(app));
        ret = setup_app(&app);
@@ -443,14 +443,14 @@ int main(int argc, char **argv)
        ev_eloop_run(app.eloop, -1);
 
        destroy_app(&app);
-       kmscon_font_unload_all();
+       kmscon_font_unregister(kmscon_font_8x16_ops.name);
        conf_ctx_free(conf);
        log_info("exiting");
 
        return EXIT_SUCCESS;
 
 err_unload:
-       kmscon_font_unload_all();
+       kmscon_font_unregister(kmscon_font_8x16_ops.name);
 err_conf:
        conf_ctx_free(conf);
 err_out: