From 72925e0af975895bf2fd7559d5aeaae2c99adf5d Mon Sep 17 00:00:00 2001 From: David Herrmann Date: Thu, 3 Jan 2013 17:41:50 +0100 Subject: [PATCH] kmscon: move gltex renderer into module Provide the gltex renderer via a module to allow loading it during runtime. Signed-off-by: David Herrmann --- Makefile.am | 34 +++++++++++++++++++---------- src/kmscon_mod_gltex.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/text.h | 20 ----------------- 3 files changed, 81 insertions(+), 31 deletions(-) create mode 100644 src/kmscon_mod_gltex.c diff --git a/Makefile.am b/Makefile.am index 7ac5c1c..1d2cf77 100644 --- a/Makefile.am +++ b/Makefile.am @@ -433,6 +433,29 @@ mod_bbulk_la_LDFLAGS = \ -module \ -avoid-version +if BUILD_ENABLE_RENDERER_GLTEX +module_LTLIBRARIES += mod-gltex.la +endif + +mod_gltex_la_SOURCES = \ + src/kmscon_module_interface.h \ + src/githead.h \ + src/text_gltex.c \ + src/static_gl.h \ + src/static_gl_math.c \ + src/static_gl_shader.c \ + src/kmscon_mod_gltex.c +nodist_mod_gltex_la_SOURCES = \ + src/static_shaders.c +mod_gltex_la_CPPFLAGS = \ + $(AM_CPPFLAGS) \ + $(GLES2_CFLAGS) +mod_gltex_la_LIBADD = \ + $(GLES2_LIBS) +mod_gltex_la_LDFLAGS = \ + -module \ + -avoid-version + # # Binaries # These are the sources for the main binaries and test programs. They mostly @@ -512,17 +535,6 @@ if BUILD_ENABLE_RENDERER_BBLIT kmscon_SOURCES += src/text_bblit.c endif -if BUILD_ENABLE_RENDERER_GLTEX -kmscon_SOURCES += \ - src/text_gltex.c \ - src/static_gl.h \ - src/static_gl_math.c \ - src/static_gl_shader.c -nodist_kmscon_SOURCES += src/static_shaders.c -kmscon_CPPFLAGS += $(GLES2_CFLAGS) -kmscon_LDADD += $(GLES2_LIBS) -endif - # # Wayland Terminal # diff --git a/src/kmscon_mod_gltex.c b/src/kmscon_mod_gltex.c new file mode 100644 index 0000000..7e92dd8 --- /dev/null +++ b/src/kmscon_mod_gltex.c @@ -0,0 +1,58 @@ +/* + * kmscon - OpenGL Texture based rendering backend module + * + * Copyright (c) 2011-2013 David Herrmann + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files + * (the "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/* + * OpenGL Texture based rendering backend module + * This module provides the gltex renderer backend. + */ + +#include +#include +#include "text.h" +#include "kmscon_module_interface.h" +#include "log.h" + +#define LOG_SUBSYSTEM "mod_gltex" + +static int kmscon_gltex_load(void) +{ + int ret; + + kmscon_text_gltex_ops.owner = KMSCON_THIS_MODULE; + ret = kmscon_text_register(&kmscon_text_gltex_ops); + if (ret) { + log_error("cannot register gltex renderer"); + return ret; + } + + return 0; +} + +static void kmscon_gltex_unload(void) +{ + kmscon_text_unregister(kmscon_text_gltex_ops.name); +} + +KMSCON_MODULE(NULL, kmscon_gltex_load, kmscon_gltex_unload, NULL); diff --git a/src/text.h b/src/text.h index 3e65b05..21eeb62 100644 --- a/src/text.h +++ b/src/text.h @@ -132,33 +132,13 @@ static inline void kmscon_text_bblit_unload(void) #endif -#ifdef BUILD_ENABLE_RENDERER_GLTEX - -int kmscon_text_gltex_load(void); -void kmscon_text_gltex_unload(void); - -#else - -static inline int kmscon_text_gltex_load(void) -{ - return -EOPNOTSUPP; -} - -static inline void kmscon_text_gltex_unload(void) -{ -} - -#endif - static inline void kmscon_text_load_all(void) { kmscon_text_bblit_load(); - kmscon_text_gltex_load(); } static inline void kmscon_text_unload_all(void) { - kmscon_text_gltex_unload(); kmscon_text_bblit_unload(); } -- 2.7.4