aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/evas/src/modules/engines/fb
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/evas/src/modules/engines/fb')
-rw-r--r--libraries/evas/src/modules/engines/fb/Evas_Engine_FB.h25
-rw-r--r--libraries/evas/src/modules/engines/fb/Makefile.am48
-rw-r--r--libraries/evas/src/modules/engines/fb/Makefile.in829
-rw-r--r--libraries/evas/src/modules/engines/fb/evas_engine.c310
-rw-r--r--libraries/evas/src/modules/engines/fb/evas_engine.h85
-rw-r--r--libraries/evas/src/modules/engines/fb/evas_fb.h93
-rw-r--r--libraries/evas/src/modules/engines/fb/evas_fb_main.c600
-rw-r--r--libraries/evas/src/modules/engines/fb/evas_outbuf.c402
8 files changed, 0 insertions, 2392 deletions
diff --git a/libraries/evas/src/modules/engines/fb/Evas_Engine_FB.h b/libraries/evas/src/modules/engines/fb/Evas_Engine_FB.h
deleted file mode 100644
index b548237..0000000
--- a/libraries/evas/src/modules/engines/fb/Evas_Engine_FB.h
+++ /dev/null
@@ -1,25 +0,0 @@
1#ifndef _EVAS_ENGINE_FB_H
2#define _EVAS_ENGINE_FB_H
3
4typedef struct _Evas_Engine_Info_FB Evas_Engine_Info_FB;
5
6struct _Evas_Engine_Info_FB
7{
8 /* PRIVATE - don't mess with this baby or evas will poke its tongue out */
9 /* at you and make nasty noises */
10 Evas_Engine_Info magic;
11
12 struct {
13
14 int virtual_terminal;
15 int device_number;
16 int refresh;
17 int rotation;
18 } info;
19
20 /* non-blocking or blocking mode */
21 Evas_Engine_Render_Mode render_mode;
22};
23#endif
24
25
diff --git a/libraries/evas/src/modules/engines/fb/Makefile.am b/libraries/evas/src/modules/engines/fb/Makefile.am
deleted file mode 100644
index 55127bb..0000000
--- a/libraries/evas/src/modules/engines/fb/Makefile.am
+++ /dev/null
@@ -1,48 +0,0 @@
1
2MAINTAINERCLEANFILES = Makefile.in
3
4AM_CPPFLAGS = \
5-I. \
6-I$(top_srcdir)/src/lib \
7-I$(top_srcdir)/src/lib/include \
8-I$(top_srcdir)/src/modules/engines \
9@FREETYPE_CFLAGS@ \
10@PIXMAN_CFLAGS@ \
11@EINA_CFLAGS@ \
12@evas_engine_fb_cflags@
13
14if BUILD_ENGINE_FB
15
16FB_SOURCES = \
17evas_engine.c \
18evas_fb_main.c \
19evas_outbuf.c
20
21FB_LIBADD = @evas_engine_fb_libs@
22
23
24includes_HEADERS = Evas_Engine_FB.h
25includesdir = $(includedir)/evas-@VMAJ@
26
27if !EVAS_STATIC_BUILD_FB
28
29pkgdir = $(libdir)/evas/modules/engines/fb/$(MODULE_ARCH)
30pkg_LTLIBRARIES = module.la
31module_la_SOURCES = $(FB_SOURCES)
32module_la_LIBADD = @EINA_LIBS@ $(FB_LIBADD) $(top_builddir)/src/lib/libevas.la
33module_la_LDFLAGS = -module -avoid-version
34module_la_LIBTOOLFLAGS = --tag=disable-static
35
36else
37
38noinst_LTLIBRARIES = libevas_engine_fb.la
39
40libevas_engine_fb_la_SOURCES = $(FB_SOURCES)
41libevas_engine_fb_la_LIBADD = $(FB_LIBADD)
42
43endif
44endif
45
46EXTRA_DIST = \
47evas_engine.h \
48evas_fb.h
diff --git a/libraries/evas/src/modules/engines/fb/Makefile.in b/libraries/evas/src/modules/engines/fb/Makefile.in
deleted file mode 100644
index 31d222a..0000000
--- a/libraries/evas/src/modules/engines/fb/Makefile.in
+++ /dev/null
@@ -1,829 +0,0 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18
19VPATH = @srcdir@
20pkgdatadir = $(datadir)/@PACKAGE@
21pkgincludedir = $(includedir)/@PACKAGE@
22pkglibdir = $(libdir)/@PACKAGE@
23pkglibexecdir = $(libexecdir)/@PACKAGE@
24am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
25install_sh_DATA = $(install_sh) -c -m 644
26install_sh_PROGRAM = $(install_sh) -c
27install_sh_SCRIPT = $(install_sh) -c
28INSTALL_HEADER = $(INSTALL_DATA)
29transform = $(program_transform_name)
30NORMAL_INSTALL = :
31PRE_INSTALL = :
32POST_INSTALL = :
33NORMAL_UNINSTALL = :
34PRE_UNINSTALL = :
35POST_UNINSTALL = :
36build_triplet = @build@
37host_triplet = @host@
38subdir = src/modules/engines/fb
39DIST_COMMON = $(am__includes_HEADERS_DIST) $(srcdir)/Makefile.am \
40 $(srcdir)/Makefile.in
41ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
42am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
43 $(top_srcdir)/m4/efl_coverage.m4 \
44 $(top_srcdir)/m4/efl_doxygen.m4 \
45 $(top_srcdir)/m4/efl_fnmatch.m4 \
46 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
47 $(top_srcdir)/m4/evas_check_engine.m4 \
48 $(top_srcdir)/m4/evas_check_loader.m4 \
49 $(top_srcdir)/m4/evas_converter.m4 \
50 $(top_srcdir)/m4/evas_dither.m4 \
51 $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \
52 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
53 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
54 $(top_srcdir)/configure.ac
55am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
56 $(ACLOCAL_M4)
57mkinstalldirs = $(install_sh) -d
58CONFIG_HEADER = $(top_builddir)/config.h
59CONFIG_CLEAN_FILES =
60CONFIG_CLEAN_VPATH_FILES =
61am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
62am__vpath_adj = case $$p in \
63 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
64 *) f=$$p;; \
65 esac;
66am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
67am__install_max = 40
68am__nobase_strip_setup = \
69 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
70am__nobase_strip = \
71 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
72am__nobase_list = $(am__nobase_strip_setup); \
73 for p in $$list; do echo "$$p $$p"; done | \
74 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
75 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
76 if (++n[$$2] == $(am__install_max)) \
77 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
78 END { for (dir in files) print dir, files[dir] }'
79am__base_list = \
80 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
81 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
82am__installdirs = "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"
83LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkg_LTLIBRARIES)
84am__DEPENDENCIES_1 =
85@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_TRUE@libevas_engine_fb_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
86am__libevas_engine_fb_la_SOURCES_DIST = evas_engine.c evas_fb_main.c \
87 evas_outbuf.c
88@BUILD_ENGINE_FB_TRUE@am__objects_1 = evas_engine.lo evas_fb_main.lo \
89@BUILD_ENGINE_FB_TRUE@ evas_outbuf.lo
90@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_TRUE@am_libevas_engine_fb_la_OBJECTS = $(am__objects_1)
91libevas_engine_fb_la_OBJECTS = $(am_libevas_engine_fb_la_OBJECTS)
92AM_V_lt = $(am__v_lt_$(V))
93am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
94am__v_lt_0 = --silent
95@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_TRUE@am_libevas_engine_fb_la_rpath =
96@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_FALSE@module_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
97@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_FALSE@ $(top_builddir)/src/lib/libevas.la
98am__module_la_SOURCES_DIST = evas_engine.c evas_fb_main.c \
99 evas_outbuf.c
100@BUILD_ENGINE_FB_TRUE@am__objects_2 = module_la-evas_engine.lo \
101@BUILD_ENGINE_FB_TRUE@ module_la-evas_fb_main.lo \
102@BUILD_ENGINE_FB_TRUE@ module_la-evas_outbuf.lo
103@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_FALSE@am_module_la_OBJECTS = $(am__objects_2)
104module_la_OBJECTS = $(am_module_la_OBJECTS)
105module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
106 $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
107 $(AM_CFLAGS) $(CFLAGS) $(module_la_LDFLAGS) $(LDFLAGS) -o $@
108@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_FALSE@am_module_la_rpath = \
109@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_FALSE@ -rpath \
110@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_FALSE@ $(pkgdir)
111DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
112depcomp = $(SHELL) $(top_srcdir)/depcomp
113am__depfiles_maybe = depfiles
114am__mv = mv -f
115COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
116 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
117LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
118 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
119 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
120 $(AM_CFLAGS) $(CFLAGS)
121AM_V_CC = $(am__v_CC_$(V))
122am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
123am__v_CC_0 = @echo " CC " $@;
124AM_V_at = $(am__v_at_$(V))
125am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
126am__v_at_0 = @
127CCLD = $(CC)
128LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
129 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
130 $(AM_LDFLAGS) $(LDFLAGS) -o $@
131AM_V_CCLD = $(am__v_CCLD_$(V))
132am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
133am__v_CCLD_0 = @echo " CCLD " $@;
134AM_V_GEN = $(am__v_GEN_$(V))
135am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
136am__v_GEN_0 = @echo " GEN " $@;
137SOURCES = $(libevas_engine_fb_la_SOURCES) $(module_la_SOURCES)
138DIST_SOURCES = $(am__libevas_engine_fb_la_SOURCES_DIST) \
139 $(am__module_la_SOURCES_DIST)
140am__includes_HEADERS_DIST = Evas_Engine_FB.h
141HEADERS = $(includes_HEADERS)
142ETAGS = etags
143CTAGS = ctags
144DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
145ACLOCAL = @ACLOCAL@
146ALLOCA = @ALLOCA@
147AMTAR = @AMTAR@
148AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
149AR = @AR@
150AS = @AS@
151AUTOCONF = @AUTOCONF@
152AUTOHEADER = @AUTOHEADER@
153AUTOMAKE = @AUTOMAKE@
154AWK = @AWK@
155CC = @CC@
156CCDEPMODE = @CCDEPMODE@
157CFLAGS = @CFLAGS@
158CHECK_CFLAGS = @CHECK_CFLAGS@
159CHECK_LIBS = @CHECK_LIBS@
160CPP = @CPP@
161CPPFLAGS = @CPPFLAGS@
162CXX = @CXX@
163CXXCPP = @CXXCPP@
164CXXDEPMODE = @CXXDEPMODE@
165CXXFLAGS = @CXXFLAGS@
166CYGPATH_W = @CYGPATH_W@
167DEFS = @DEFS@
168DEPDIR = @DEPDIR@
169DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@
170DIRECTFB_LIBS = @DIRECTFB_LIBS@
171DLLTOOL = @DLLTOOL@
172DSYMUTIL = @DSYMUTIL@
173DUMPBIN = @DUMPBIN@
174ECHO_C = @ECHO_C@
175ECHO_N = @ECHO_N@
176ECHO_T = @ECHO_T@
177ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@
178ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@
179EDB_CFLAGS = @EDB_CFLAGS@
180EDB_LIBS = @EDB_LIBS@
181EDJE_CFLAGS = @EDJE_CFLAGS@
182EDJE_LIBS = @EDJE_LIBS@
183EET_CFLAGS = @EET_CFLAGS@
184EET_LIBS = @EET_LIBS@
185EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
186EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
187EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
188EGREP = @EGREP@
189EINA_CFLAGS = @EINA_CFLAGS@
190EINA_LIBS = @EINA_LIBS@
191EVAS_CFLAGS = @EVAS_CFLAGS@
192EVAS_LIBS = @EVAS_LIBS@
193EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@
194EVIL_CFLAGS = @EVIL_CFLAGS@
195EVIL_LIBS = @EVIL_LIBS@
196EXEEXT = @EXEEXT@
197EXOTIC_CFLAGS = @EXOTIC_CFLAGS@
198EXOTIC_LIBS = @EXOTIC_LIBS@
199FGREP = @FGREP@
200FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
201FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
202FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
203FREETYPE_LIBS = @FREETYPE_LIBS@
204FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@
205FRIBIDI_LIBS = @FRIBIDI_LIBS@
206GL_EET_CFLAGS = @GL_EET_CFLAGS@
207GL_EET_LIBS = @GL_EET_LIBS@
208GREP = @GREP@
209HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@
210HARFBUZZ_LIBS = @HARFBUZZ_LIBS@
211INSTALL = @INSTALL@
212INSTALL_DATA = @INSTALL_DATA@
213INSTALL_PROGRAM = @INSTALL_PROGRAM@
214INSTALL_SCRIPT = @INSTALL_SCRIPT@
215INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
216LD = @LD@
217LDFLAGS = @LDFLAGS@
218LIBOBJS = @LIBOBJS@
219LIBS = @LIBS@
220LIBTOOL = @LIBTOOL@
221LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@
222LINEBREAK_LIBS = @LINEBREAK_LIBS@
223LIPO = @LIPO@
224LN_S = @LN_S@
225LTLIBOBJS = @LTLIBOBJS@
226MAKEINFO = @MAKEINFO@
227MKDIR_P = @MKDIR_P@
228MODULE_ARCH = @MODULE_ARCH@
229NM = @NM@
230NMEDIT = @NMEDIT@
231OBJC = @OBJC@
232OBJCDEPMODE = @OBJCDEPMODE@
233OBJCFLAGS = @OBJCFLAGS@
234OBJDUMP = @OBJDUMP@
235OBJEXT = @OBJEXT@
236OTOOL = @OTOOL@
237OTOOL64 = @OTOOL64@
238PACKAGE = @PACKAGE@
239PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
240PACKAGE_NAME = @PACKAGE_NAME@
241PACKAGE_STRING = @PACKAGE_STRING@
242PACKAGE_TARNAME = @PACKAGE_TARNAME@
243PACKAGE_URL = @PACKAGE_URL@
244PACKAGE_VERSION = @PACKAGE_VERSION@
245PATH_SEPARATOR = @PATH_SEPARATOR@
246PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
247PIXMAN_LIBS = @PIXMAN_LIBS@
248PKG_CONFIG = @PKG_CONFIG@
249PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
250PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
251PNG_CFLAGS = @PNG_CFLAGS@
252PNG_LIBS = @PNG_LIBS@
253RANLIB = @RANLIB@
254SDL_CFLAGS = @SDL_CFLAGS@
255SDL_LIBS = @SDL_LIBS@
256SED = @SED@
257SET_MAKE = @SET_MAKE@
258SHELL = @SHELL@
259SHM_OPEN_LINK = @SHM_OPEN_LINK@
260STRIP = @STRIP@
261SVG_CFLAGS = @SVG_CFLAGS@
262SVG_LIBS = @SVG_LIBS@
263VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
264VALGRIND_LIBS = @VALGRIND_LIBS@
265VERSION = @VERSION@
266VMAJ = @VMAJ@
267WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@
268WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@
269XCB_CFLAGS = @XCB_CFLAGS@
270XCB_GL_CFLAGS = @XCB_GL_CFLAGS@
271XCB_GL_LIBS = @XCB_GL_LIBS@
272XCB_LIBS = @XCB_LIBS@
273XEXT_CFLAGS = @XEXT_CFLAGS@
274XEXT_LIBS = @XEXT_LIBS@
275XMKMF = @XMKMF@
276X_CFLAGS = @X_CFLAGS@
277X_EXTRA_LIBS = @X_EXTRA_LIBS@
278X_LIBS = @X_LIBS@
279X_PRE_LIBS = @X_PRE_LIBS@
280abs_builddir = @abs_builddir@
281abs_srcdir = @abs_srcdir@
282abs_top_builddir = @abs_top_builddir@
283abs_top_srcdir = @abs_top_srcdir@
284ac_ct_CC = @ac_ct_CC@
285ac_ct_CXX = @ac_ct_CXX@
286ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
287ac_ct_OBJC = @ac_ct_OBJC@
288altivec_cflags = @altivec_cflags@
289am__include = @am__include@
290am__leading_dot = @am__leading_dot@
291am__quote = @am__quote@
292am__tar = @am__tar@
293am__untar = @am__untar@
294bindir = @bindir@
295build = @build@
296build_alias = @build_alias@
297build_cpu = @build_cpu@
298build_os = @build_os@
299build_vendor = @build_vendor@
300builddir = @builddir@
301datadir = @datadir@
302datarootdir = @datarootdir@
303dlopen_libs = @dlopen_libs@
304docdir = @docdir@
305dvidir = @dvidir@
306edje_cc = @edje_cc@
307efl_doxygen = @efl_doxygen@
308efl_have_doxygen = @efl_have_doxygen@
309evas_engine_buffer_cflags = @evas_engine_buffer_cflags@
310evas_engine_buffer_libs = @evas_engine_buffer_libs@
311evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@
312evas_engine_direct3d_libs = @evas_engine_direct3d_libs@
313evas_engine_directfb_cflags = @evas_engine_directfb_cflags@
314evas_engine_directfb_libs = @evas_engine_directfb_libs@
315evas_engine_fb_cflags = @evas_engine_fb_cflags@
316evas_engine_fb_libs = @evas_engine_fb_libs@
317evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@
318evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@
319evas_engine_gl_common_libs = @evas_engine_gl_common_libs@
320evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@
321evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@
322evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@
323evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@
324evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@
325evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@
326evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@
327evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@
328evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@
329evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@
330evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@
331evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@
332evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@
333evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@
334evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@
335evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@
336evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@
337evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@
338evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@
339evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@
340evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@
341evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@
342evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@
343evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@
344evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@
345evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@
346evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@
347evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@
348evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@
349evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@
350evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
351evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
352evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
353evas_image_loader_edb_libs = @evas_image_loader_edb_libs@
354evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@
355evas_image_loader_eet_libs = @evas_image_loader_eet_libs@
356evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@
357evas_image_loader_generic_libs = @evas_image_loader_generic_libs@
358evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@
359evas_image_loader_gif_libs = @evas_image_loader_gif_libs@
360evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@
361evas_image_loader_ico_libs = @evas_image_loader_ico_libs@
362evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@
363evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@
364evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@
365evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@
366evas_image_loader_png_cflags = @evas_image_loader_png_cflags@
367evas_image_loader_png_libs = @evas_image_loader_png_libs@
368evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@
369evas_image_loader_psd_libs = @evas_image_loader_psd_libs@
370evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@
371evas_image_loader_svg_libs = @evas_image_loader_svg_libs@
372evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@
373evas_image_loader_tga_libs = @evas_image_loader_tga_libs@
374evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@
375evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@
376evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@
377evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@
378evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@
379evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@
380exec_prefix = @exec_prefix@
381have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@
382have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@
383have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@
384have_evas_engine_software_x11 = @have_evas_engine_software_x11@
385have_evas_engine_software_xcb = @have_evas_engine_software_xcb@
386have_evas_engine_software_xlib = @have_evas_engine_software_xlib@
387have_lcov = @have_lcov@
388host = @host@
389host_alias = @host_alias@
390host_cpu = @host_cpu@
391host_os = @host_os@
392host_vendor = @host_vendor@
393htmldir = @htmldir@
394includedir = @includedir@
395infodir = @infodir@
396install_sh = @install_sh@
397libdir = @libdir@
398libexecdir = @libexecdir@
399localedir = @localedir@
400localstatedir = @localstatedir@
401lt_ECHO = @lt_ECHO@
402lt_enable_auto_import = @lt_enable_auto_import@
403mandir = @mandir@
404mkdir_p = @mkdir_p@
405oldincludedir = @oldincludedir@
406pdfdir = @pdfdir@
407pkgconfig_requires_private = @pkgconfig_requires_private@
408prefix = @prefix@
409program_transform_name = @program_transform_name@
410psdir = @psdir@
411pthread_cflags = @pthread_cflags@
412pthread_libs = @pthread_libs@
413release_info = @release_info@
414requirement_evas = @requirement_evas@
415sbindir = @sbindir@
416sharedstatedir = @sharedstatedir@
417srcdir = @srcdir@
418sysconfdir = @sysconfdir@
419target_alias = @target_alias@
420top_build_prefix = @top_build_prefix@
421top_builddir = @top_builddir@
422top_srcdir = @top_srcdir@
423version_info = @version_info@
424MAINTAINERCLEANFILES = Makefile.in
425AM_CPPFLAGS = \
426-I. \
427-I$(top_srcdir)/src/lib \
428-I$(top_srcdir)/src/lib/include \
429-I$(top_srcdir)/src/modules/engines \
430@FREETYPE_CFLAGS@ \
431@PIXMAN_CFLAGS@ \
432@EINA_CFLAGS@ \
433@evas_engine_fb_cflags@
434
435@BUILD_ENGINE_FB_TRUE@FB_SOURCES = \
436@BUILD_ENGINE_FB_TRUE@evas_engine.c \
437@BUILD_ENGINE_FB_TRUE@evas_fb_main.c \
438@BUILD_ENGINE_FB_TRUE@evas_outbuf.c
439
440@BUILD_ENGINE_FB_TRUE@FB_LIBADD = @evas_engine_fb_libs@
441@BUILD_ENGINE_FB_TRUE@includes_HEADERS = Evas_Engine_FB.h
442@BUILD_ENGINE_FB_TRUE@includesdir = $(includedir)/evas-@VMAJ@
443@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_FALSE@pkgdir = $(libdir)/evas/modules/engines/fb/$(MODULE_ARCH)
444@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_FALSE@pkg_LTLIBRARIES = module.la
445@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_FALSE@module_la_SOURCES = $(FB_SOURCES)
446@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_FALSE@module_la_LIBADD = @EINA_LIBS@ $(FB_LIBADD) $(top_builddir)/src/lib/libevas.la
447@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_FALSE@module_la_LDFLAGS = -module -avoid-version
448@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_FALSE@module_la_LIBTOOLFLAGS = --tag=disable-static
449@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_TRUE@noinst_LTLIBRARIES = libevas_engine_fb.la
450@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_TRUE@libevas_engine_fb_la_SOURCES = $(FB_SOURCES)
451@BUILD_ENGINE_FB_TRUE@@EVAS_STATIC_BUILD_FB_TRUE@libevas_engine_fb_la_LIBADD = $(FB_LIBADD)
452EXTRA_DIST = \
453evas_engine.h \
454evas_fb.h
455
456all: all-am
457
458.SUFFIXES:
459.SUFFIXES: .c .lo .o .obj
460$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
461 @for dep in $?; do \
462 case '$(am__configure_deps)' in \
463 *$$dep*) \
464 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
465 && { if test -f $@; then exit 0; else break; fi; }; \
466 exit 1;; \
467 esac; \
468 done; \
469 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/engines/fb/Makefile'; \
470 $(am__cd) $(top_srcdir) && \
471 $(AUTOMAKE) --gnu src/modules/engines/fb/Makefile
472.PRECIOUS: Makefile
473Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
474 @case '$?' in \
475 *config.status*) \
476 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
477 *) \
478 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
479 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
480 esac;
481
482$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
483 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
484
485$(top_srcdir)/configure: $(am__configure_deps)
486 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
487$(ACLOCAL_M4): $(am__aclocal_m4_deps)
488 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
489$(am__aclocal_m4_deps):
490
491clean-noinstLTLIBRARIES:
492 -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
493 @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
494 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
495 test "$$dir" != "$$p" || dir=.; \
496 echo "rm -f \"$${dir}/so_locations\""; \
497 rm -f "$${dir}/so_locations"; \
498 done
499install-pkgLTLIBRARIES: $(pkg_LTLIBRARIES)
500 @$(NORMAL_INSTALL)
501 test -z "$(pkgdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdir)"
502 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
503 list2=; for p in $$list; do \
504 if test -f $$p; then \
505 list2="$$list2 $$p"; \
506 else :; fi; \
507 done; \
508 test -z "$$list2" || { \
509 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgdir)'"; \
510 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgdir)"; \
511 }
512
513uninstall-pkgLTLIBRARIES:
514 @$(NORMAL_UNINSTALL)
515 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
516 for p in $$list; do \
517 $(am__strip_dir) \
518 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgdir)/$$f'"; \
519 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgdir)/$$f"; \
520 done
521
522clean-pkgLTLIBRARIES:
523 -test -z "$(pkg_LTLIBRARIES)" || rm -f $(pkg_LTLIBRARIES)
524 @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \
525 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
526 test "$$dir" != "$$p" || dir=.; \
527 echo "rm -f \"$${dir}/so_locations\""; \
528 rm -f "$${dir}/so_locations"; \
529 done
530libevas_engine_fb.la: $(libevas_engine_fb_la_OBJECTS) $(libevas_engine_fb_la_DEPENDENCIES)
531 $(AM_V_CCLD)$(LINK) $(am_libevas_engine_fb_la_rpath) $(libevas_engine_fb_la_OBJECTS) $(libevas_engine_fb_la_LIBADD) $(LIBS)
532module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES)
533 $(AM_V_CCLD)$(module_la_LINK) $(am_module_la_rpath) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS)
534
535mostlyclean-compile:
536 -rm -f *.$(OBJEXT)
537
538distclean-compile:
539 -rm -f *.tab.c
540
541@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_engine.Plo@am__quote@
542@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_fb_main.Plo@am__quote@
543@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_outbuf.Plo@am__quote@
544@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_engine.Plo@am__quote@
545@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_fb_main.Plo@am__quote@
546@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_outbuf.Plo@am__quote@
547
548.c.o:
549@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
550@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
551@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
552@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
553@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
554@am__fastdepCC_FALSE@ $(COMPILE) -c $<
555
556.c.obj:
557@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
558@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
559@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
560@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
561@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
562@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
563
564.c.lo:
565@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
566@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
567@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
568@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
569@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
570@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
571
572module_la-evas_engine.lo: evas_engine.c
573@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_engine.lo -MD -MP -MF $(DEPDIR)/module_la-evas_engine.Tpo -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
574@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_engine.Tpo $(DEPDIR)/module_la-evas_engine.Plo
575@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
576@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_engine.c' object='module_la-evas_engine.lo' libtool=yes @AMDEPBACKSLASH@
577@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
578@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_engine.lo `test -f 'evas_engine.c' || echo '$(srcdir)/'`evas_engine.c
579
580module_la-evas_fb_main.lo: evas_fb_main.c
581@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_fb_main.lo -MD -MP -MF $(DEPDIR)/module_la-evas_fb_main.Tpo -c -o module_la-evas_fb_main.lo `test -f 'evas_fb_main.c' || echo '$(srcdir)/'`evas_fb_main.c
582@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_fb_main.Tpo $(DEPDIR)/module_la-evas_fb_main.Plo
583@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
584@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_fb_main.c' object='module_la-evas_fb_main.lo' libtool=yes @AMDEPBACKSLASH@
585@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
586@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_fb_main.lo `test -f 'evas_fb_main.c' || echo '$(srcdir)/'`evas_fb_main.c
587
588module_la-evas_outbuf.lo: evas_outbuf.c
589@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_outbuf.lo -MD -MP -MF $(DEPDIR)/module_la-evas_outbuf.Tpo -c -o module_la-evas_outbuf.lo `test -f 'evas_outbuf.c' || echo '$(srcdir)/'`evas_outbuf.c
590@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_outbuf.Tpo $(DEPDIR)/module_la-evas_outbuf.Plo
591@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
592@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_outbuf.c' object='module_la-evas_outbuf.lo' libtool=yes @AMDEPBACKSLASH@
593@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
594@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_outbuf.lo `test -f 'evas_outbuf.c' || echo '$(srcdir)/'`evas_outbuf.c
595
596mostlyclean-libtool:
597 -rm -f *.lo
598
599clean-libtool:
600 -rm -rf .libs _libs
601install-includesHEADERS: $(includes_HEADERS)
602 @$(NORMAL_INSTALL)
603 test -z "$(includesdir)" || $(MKDIR_P) "$(DESTDIR)$(includesdir)"
604 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
605 for p in $$list; do \
606 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
607 echo "$$d$$p"; \
608 done | $(am__base_list) | \
609 while read files; do \
610 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includesdir)'"; \
611 $(INSTALL_HEADER) $$files "$(DESTDIR)$(includesdir)" || exit $$?; \
612 done
613
614uninstall-includesHEADERS:
615 @$(NORMAL_UNINSTALL)
616 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
617 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
618 test -n "$$files" || exit 0; \
619 echo " ( cd '$(DESTDIR)$(includesdir)' && rm -f" $$files ")"; \
620 cd "$(DESTDIR)$(includesdir)" && rm -f $$files
621
622ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
623 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
624 unique=`for i in $$list; do \
625 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
626 done | \
627 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
628 END { if (nonempty) { for (i in files) print i; }; }'`; \
629 mkid -fID $$unique
630tags: TAGS
631
632TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
633 $(TAGS_FILES) $(LISP)
634 set x; \
635 here=`pwd`; \
636 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
637 unique=`for i in $$list; do \
638 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
639 done | \
640 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
641 END { if (nonempty) { for (i in files) print i; }; }'`; \
642 shift; \
643 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
644 test -n "$$unique" || unique=$$empty_fix; \
645 if test $$# -gt 0; then \
646 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
647 "$$@" $$unique; \
648 else \
649 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
650 $$unique; \
651 fi; \
652 fi
653ctags: CTAGS
654CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
655 $(TAGS_FILES) $(LISP)
656 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
657 unique=`for i in $$list; do \
658 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
659 done | \
660 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
661 END { if (nonempty) { for (i in files) print i; }; }'`; \
662 test -z "$(CTAGS_ARGS)$$unique" \
663 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
664 $$unique
665
666GTAGS:
667 here=`$(am__cd) $(top_builddir) && pwd` \
668 && $(am__cd) $(top_srcdir) \
669 && gtags -i $(GTAGS_ARGS) "$$here"
670
671distclean-tags:
672 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
673
674distdir: $(DISTFILES)
675 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
676 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
677 list='$(DISTFILES)'; \
678 dist_files=`for file in $$list; do echo $$file; done | \
679 sed -e "s|^$$srcdirstrip/||;t" \
680 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
681 case $$dist_files in \
682 */*) $(MKDIR_P) `echo "$$dist_files" | \
683 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
684 sort -u` ;; \
685 esac; \
686 for file in $$dist_files; do \
687 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
688 if test -d $$d/$$file; then \
689 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
690 if test -d "$(distdir)/$$file"; then \
691 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
692 fi; \
693 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
694 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
695 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
696 fi; \
697 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
698 else \
699 test -f "$(distdir)/$$file" \
700 || cp -p $$d/$$file "$(distdir)/$$file" \
701 || exit 1; \
702 fi; \
703 done
704check-am: all-am
705check: check-am
706all-am: Makefile $(LTLIBRARIES) $(HEADERS)
707installdirs:
708 for dir in "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"; do \
709 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
710 done
711install: install-am
712install-exec: install-exec-am
713install-data: install-data-am
714uninstall: uninstall-am
715
716install-am: all-am
717 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
718
719installcheck: installcheck-am
720install-strip:
721 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
722 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
723 `test -z '$(STRIP)' || \
724 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
725mostlyclean-generic:
726
727clean-generic:
728
729distclean-generic:
730 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
731 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
732
733maintainer-clean-generic:
734 @echo "This command is intended for maintainers to use"
735 @echo "it deletes files that may require special tools to rebuild."
736 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
737clean: clean-am
738
739clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
740 clean-pkgLTLIBRARIES mostlyclean-am
741
742distclean: distclean-am
743 -rm -rf ./$(DEPDIR)
744 -rm -f Makefile
745distclean-am: clean-am distclean-compile distclean-generic \
746 distclean-tags
747
748dvi: dvi-am
749
750dvi-am:
751
752html: html-am
753
754html-am:
755
756info: info-am
757
758info-am:
759
760install-data-am: install-includesHEADERS install-pkgLTLIBRARIES
761
762install-dvi: install-dvi-am
763
764install-dvi-am:
765
766install-exec-am:
767
768install-html: install-html-am
769
770install-html-am:
771
772install-info: install-info-am
773
774install-info-am:
775
776install-man:
777
778install-pdf: install-pdf-am
779
780install-pdf-am:
781
782install-ps: install-ps-am
783
784install-ps-am:
785
786installcheck-am:
787
788maintainer-clean: maintainer-clean-am
789 -rm -rf ./$(DEPDIR)
790 -rm -f Makefile
791maintainer-clean-am: distclean-am maintainer-clean-generic
792
793mostlyclean: mostlyclean-am
794
795mostlyclean-am: mostlyclean-compile mostlyclean-generic \
796 mostlyclean-libtool
797
798pdf: pdf-am
799
800pdf-am:
801
802ps: ps-am
803
804ps-am:
805
806uninstall-am: uninstall-includesHEADERS uninstall-pkgLTLIBRARIES
807
808.MAKE: install-am install-strip
809
810.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
811 clean-libtool clean-noinstLTLIBRARIES clean-pkgLTLIBRARIES \
812 ctags distclean distclean-compile distclean-generic \
813 distclean-libtool distclean-tags distdir dvi dvi-am html \
814 html-am info info-am install install-am install-data \
815 install-data-am install-dvi install-dvi-am install-exec \
816 install-exec-am install-html install-html-am \
817 install-includesHEADERS install-info install-info-am \
818 install-man install-pdf install-pdf-am install-pkgLTLIBRARIES \
819 install-ps install-ps-am install-strip installcheck \
820 installcheck-am installdirs maintainer-clean \
821 maintainer-clean-generic mostlyclean mostlyclean-compile \
822 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
823 tags uninstall uninstall-am uninstall-includesHEADERS \
824 uninstall-pkgLTLIBRARIES
825
826
827# Tell versions [3.59,3.63) of GNU make to not export all variables.
828# Otherwise a system limit (for SysV at least) may be exceeded.
829.NOEXPORT:
diff --git a/libraries/evas/src/modules/engines/fb/evas_engine.c b/libraries/evas/src/modules/engines/fb/evas_engine.c
deleted file mode 100644
index e15c02b..0000000
--- a/libraries/evas/src/modules/engines/fb/evas_engine.c
+++ /dev/null
@@ -1,310 +0,0 @@
1#include "evas_common.h"
2#include "evas_private.h"
3#include "evas_engine.h"
4#include "Evas_Engine_FB.h"
5
6int _evas_engine_fb_log_dom = -1;
7
8/* function tables - filled in later (func and parent func) */
9static Evas_Func func, pfunc;
10
11/* engine struct data */
12typedef struct _Render_Engine Render_Engine;
13
14struct _Render_Engine
15{
16 Tilebuf *tb;
17 Outbuf *ob;
18 Tilebuf_Rect *rects;
19 Eina_Inlist *cur_rect;
20 int end : 1;
21};
22
23/* prototypes we will use here */
24static void *_output_setup(int w, int h, int rot, int vt, int dev, int refresh);
25
26static void *eng_info(Evas *e);
27static void eng_info_free(Evas *e, void *info);
28static int eng_setup(Evas *e, void *info);
29static void eng_output_free(void *data);
30static void eng_output_resize(void *data, int w, int h);
31static void eng_output_tile_size_set(void *data, int w, int h);
32static void eng_output_redraws_rect_add(void *data, int x, int y, int w, int h);
33static void eng_output_redraws_rect_del(void *data, int x, int y, int w, int h);
34static void eng_output_redraws_clear(void *data);
35static void *eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch);
36static void eng_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h);
37static void eng_output_flush(void *data);
38static void eng_output_idle_flush(void *data);
39
40/* internal engine routines */
41static void *
42_output_setup(int w, int h, int rot, int vt, int dev, int refresh)
43{
44 Render_Engine *re;
45
46 re = calloc(1, sizeof(Render_Engine));
47 if (!re)
48 return NULL;
49 /* if we haven't initialized - init (automatic abort if already done) */
50 evas_common_cpu_init();
51
52 evas_common_blend_init();
53 evas_common_image_init();
54 evas_common_convert_init();
55 evas_common_scale_init();
56 evas_common_rectangle_init();
57 evas_common_polygon_init();
58 evas_common_line_init();
59 evas_common_font_init();
60 evas_common_draw_init();
61 evas_common_tilebuf_init();
62
63 evas_fb_outbuf_fb_init();
64
65 /* get any stored performance metrics from device (xserver) */
66 re->ob = evas_fb_outbuf_fb_setup_fb(w, h, rot, OUTBUF_DEPTH_INHERIT, vt, dev, refresh);
67 re->tb = evas_common_tilebuf_new(evas_fb_outbuf_fb_get_width(re->ob), evas_fb_outbuf_fb_get_height(re->ob));
68 /* no backbuf! */
69 evas_fb_outbuf_fb_set_have_backbuf(re->ob, 0);
70 /* in preliminary tests 16x16 gave highest framerates */
71 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
72 return re;
73}
74
75/* engine api this module provides */
76static void *
77eng_info(Evas *e __UNUSED__)
78{
79 Evas_Engine_Info_FB *info;
80 info = calloc(1, sizeof(Evas_Engine_Info_FB));
81 if (!info) return NULL;
82 info->magic.magic = rand();
83 info->render_mode = EVAS_RENDER_MODE_BLOCKING;
84 return info;
85}
86
87static void
88eng_info_free(Evas *e __UNUSED__, void *info)
89{
90 Evas_Engine_Info_FB *in;
91 in = (Evas_Engine_Info_FB *)info;
92 free(in);
93}
94
95static int
96eng_setup(Evas *e, void *in)
97{
98 Render_Engine *re;
99 Evas_Engine_Info_FB *info;
100
101 info = (Evas_Engine_Info_FB *)in;
102 re = _output_setup(e->output.w,
103 e->output.h,
104 info->info.rotation,
105 info->info.virtual_terminal,
106 info->info.device_number,
107 info->info.refresh);
108 e->engine.data.output = re;
109 if (!e->engine.data.output) return 0;
110 e->engine.data.context = e->engine.func->context_new(e->engine.data.output);
111
112 return 1;
113}
114
115static void
116eng_output_free(void *data)
117{
118 Render_Engine *re;
119
120 re = (Render_Engine *)data;
121 evas_fb_outbuf_fb_free(re->ob);
122 evas_common_tilebuf_free(re->tb);
123 if (re->rects) evas_common_tilebuf_free_render_rects(re->rects);
124 free(re);
125
126 evas_common_font_shutdown();
127 evas_common_image_shutdown();
128}
129
130static void
131eng_output_resize(void *data, int w, int h)
132{
133 Render_Engine *re;
134
135 re = (Render_Engine *)data;
136 evas_fb_outbuf_fb_reconfigure(re->ob, w, h,
137 evas_fb_outbuf_fb_get_rot(re->ob),
138 OUTBUF_DEPTH_INHERIT);
139 evas_common_tilebuf_free(re->tb);
140 re->tb = evas_common_tilebuf_new(w, h);
141 if (re->tb)
142 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
143}
144
145static void
146eng_output_tile_size_set(void *data, int w, int h)
147{
148 Render_Engine *re;
149
150 re = (Render_Engine *)data;
151 evas_common_tilebuf_set_tile_size(re->tb, w, h);
152}
153
154static void
155eng_output_redraws_rect_add(void *data, int x, int y, int w, int h)
156{
157 Render_Engine *re;
158
159 re = (Render_Engine *)data;
160 evas_common_tilebuf_add_redraw(re->tb, x, y, w, h);
161}
162
163static void
164eng_output_redraws_rect_del(void *data, int x, int y, int w, int h)
165{
166 Render_Engine *re;
167
168 re = (Render_Engine *)data;
169 evas_common_tilebuf_del_redraw(re->tb, x, y, w, h);
170}
171
172static void
173eng_output_redraws_clear(void *data)
174{
175 Render_Engine *re;
176
177 re = (Render_Engine *)data;
178 evas_common_tilebuf_clear(re->tb);
179}
180
181static void *
182eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch)
183{
184 Render_Engine *re;
185 RGBA_Image *surface;
186 Tilebuf_Rect *rect;
187 int ux, uy, uw, uh;
188
189 re = (Render_Engine *)data;
190 if (re->end)
191 {
192 re->end = 0;
193 return NULL;
194 }
195 if (!re->rects)
196 {
197 re->rects = evas_common_tilebuf_get_render_rects(re->tb);
198 re->cur_rect = EINA_INLIST_GET(re->rects);
199 }
200 if (!re->cur_rect) return NULL;
201 rect = (Tilebuf_Rect *)re->cur_rect;
202 ux = rect->x; uy = rect->y; uw = rect->w; uh = rect->h;
203 re->cur_rect = re->cur_rect->next;
204 if (!re->cur_rect)
205 {
206 evas_common_tilebuf_free_render_rects(re->rects);
207 re->rects = NULL;
208 re->end = 1;
209 }
210
211 surface = evas_fb_outbuf_fb_new_region_for_update(re->ob,
212 ux, uy, uw, uh,
213 cx, cy, cw, ch);
214 *x = ux; *y = uy; *w = uw; *h = uh;
215 return surface;
216}
217
218static void
219eng_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h)
220{
221 Render_Engine *re;
222
223 re = (Render_Engine *)data;
224#ifdef BUILD_PIPE_RENDER
225 evas_common_pipe_map_begin(surface);
226#endif
227 evas_fb_outbuf_fb_push_updated_region(re->ob, surface, x, y, w, h);
228 evas_fb_outbuf_fb_free_region_for_update(re->ob, surface);
229 evas_common_cpu_end_opt();
230}
231
232static void
233eng_output_flush(void *data __UNUSED__)
234{
235}
236
237static void
238eng_output_idle_flush(void *data __UNUSED__)
239{
240}
241
242static Eina_Bool
243eng_canvas_alpha_get(void *data, void *context __UNUSED__)
244{
245 Render_Engine *re;
246
247 re = (Render_Engine *)data;
248 return (re->ob->priv.fb.fb->fb_var.transp.length > 0);
249}
250
251/* module advertising code */
252static int
253module_open(Evas_Module *em)
254{
255 if (!em) return 0;
256 /* get whatever engine module we inherit from */
257 if (!_evas_module_engine_inherit(&pfunc, "software_generic")) return 0;
258 _evas_engine_fb_log_dom = eina_log_domain_register
259 ("evas-fb", EVAS_DEFAULT_LOG_COLOR);
260 if (_evas_engine_fb_log_dom < 0)
261 {
262 EINA_LOG_ERR("Can not create a module log domain.");
263 return 0;
264 }
265
266 /* store it for later use */
267 func = pfunc;
268 /* now to override methods */
269#define ORD(f) EVAS_API_OVERRIDE(f, &func, eng_)
270 ORD(info);
271 ORD(info_free);
272 ORD(setup);
273 ORD(canvas_alpha_get);
274 ORD(output_free);
275 ORD(output_resize);
276 ORD(output_tile_size_set);
277 ORD(output_redraws_rect_add);
278 ORD(output_redraws_rect_del);
279 ORD(output_redraws_clear);
280 ORD(output_redraws_next_update_get);
281 ORD(output_redraws_next_update_push);
282 ORD(output_flush);
283 ORD(output_idle_flush);
284 /* now advertise out own api */
285 em->functions = (void *)(&func);
286 return 1;
287}
288
289static void
290module_close(Evas_Module *em __UNUSED__)
291{
292 eina_log_domain_unregister(_evas_engine_fb_log_dom);
293}
294
295static Evas_Module_Api evas_modapi =
296{
297 EVAS_MODULE_API_VERSION,
298 "fb",
299 "none",
300 {
301 module_open,
302 module_close
303 }
304};
305
306EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, fb);
307
308#ifndef EVAS_STATIC_BUILD_FB
309EVAS_EINA_MODULE_DEFINE(engine, fb);
310#endif
diff --git a/libraries/evas/src/modules/engines/fb/evas_engine.h b/libraries/evas/src/modules/engines/fb/evas_engine.h
deleted file mode 100644
index 295e91e..0000000
--- a/libraries/evas/src/modules/engines/fb/evas_engine.h
+++ /dev/null
@@ -1,85 +0,0 @@
1#ifndef EVAS_ENGINE_H
2#define EVAS_ENGINE_H
3
4#include "evas_fb.h"
5
6extern int _evas_engine_fb_log_dom;
7#ifdef ERR
8# undef ERR
9#endif
10#define ERR(...) EINA_LOG_DOM_ERR(_evas_engine_fb_log_dom, __VA_ARGS__)
11
12#ifdef DBG
13# undef DBG
14#endif
15#define DBG(...) EINA_LOG_DOM_DBG(_evas_engine_fb_log_dom, __VA_ARGS__)
16
17#ifdef INF
18# undef INF
19#endif
20#define INF(...) EINA_LOG_DOM_INFO(_evas_engine_fb_log_dom, __VA_ARGS__)
21
22#ifdef WRN
23# undef WRN
24#endif
25#define WRN(...) EINA_LOG_DOM_WARN(_evas_engine_fb_log_dom, __VA_ARGS__)
26
27#ifdef CRIT
28# undef CRIT
29#endif
30#define CRIT(...) EINA_LOG_DOM_CRIT(_evas_engine_fb_log_dom, __VA_ARGS__)
31
32typedef struct _Outbuf Outbuf;
33
34typedef enum _Outbuf_Depth Outbuf_Depth;
35
36enum _Outbuf_Depth
37{
38 OUTBUF_DEPTH_NONE,
39 OUTBUF_DEPTH_INHERIT,
40 OUTBUF_DEPTH_RGB_16BPP_565_565_DITHERED,
41 OUTBUF_DEPTH_RGB_16BPP_555_555_DITHERED,
42 OUTBUF_DEPTH_RGB_16BPP_444_444_DITHERED,
43 OUTBUF_DEPTH_RGB_16BPP_565_444_DITHERED,
44 OUTBUF_DEPTH_RGB_32BPP_888_8888,
45 OUTBUF_DEPTH_LAST
46};
47
48struct _Outbuf
49{
50 Outbuf_Depth depth;
51 int w, h;
52 int rot;
53
54 struct {
55 struct {
56 FB_Mode *fb;
57 } fb;
58 struct {
59 DATA32 r, g, b;
60 } mask;
61 RGBA_Image *back_buf;
62 } priv;
63};
64
65/****/
66
67void evas_fb_outbuf_fb_init (void);
68void evas_fb_outbuf_fb_free (Outbuf *buf);
69
70Outbuf *evas_fb_outbuf_fb_setup_fb (int w, int h, int rot, Outbuf_Depth depth, int vt_no, int dev_no, int refresh);
71
72void evas_fb_outbuf_fb_blit (Outbuf *buf, int src_x, int src_y, int w, int h, int dst_x, int dst_y);
73void evas_fb_outbuf_fb_update (Outbuf *buf, int x, int y, int w, int h);
74RGBA_Image *evas_fb_outbuf_fb_new_region_for_update (Outbuf *buf, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch);
75void evas_fb_outbuf_fb_free_region_for_update (Outbuf *buf, RGBA_Image *update);
76void evas_fb_outbuf_fb_push_updated_region (Outbuf *buf, RGBA_Image *update, int x, int y, int w, int h);
77void evas_fb_outbuf_fb_reconfigure (Outbuf *buf, int w, int h, int rot, Outbuf_Depth depth);
78int evas_fb_outbuf_fb_get_width (Outbuf *buf);
79int evas_fb_outbuf_fb_get_height (Outbuf *buf);
80Outbuf_Depth evas_fb_outbuf_fb_get_depth (Outbuf *buf);
81int evas_fb_outbuf_fb_get_rot (Outbuf *buf);
82int evas_fb_outbuf_fb_get_have_backbuf (Outbuf *buf);
83void evas_fb_outbuf_fb_set_have_backbuf (Outbuf *buf, int have_backbuf);
84
85#endif
diff --git a/libraries/evas/src/modules/engines/fb/evas_fb.h b/libraries/evas/src/modules/engines/fb/evas_fb.h
deleted file mode 100644
index 76ab30b..0000000
--- a/libraries/evas/src/modules/engines/fb/evas_fb.h
+++ /dev/null
@@ -1,93 +0,0 @@
1#ifndef _EVAS_FB_H
2#define _EVAS_FB_H 1
3
4/* -------------------------------------------------------------------- */
5/* LINUX FBCON FRAMEBUFFER UTILITY CODE */
6/* makes setting up the framebuffer easy. Also makes it eays to port to */
7/* some other system if needed. */
8/* Copyright (c) 1999 - Carsten Haitzler (The Rasterman) */
9/* -------------------------------------------------------------------- */
10
11#include <stdio.h>
12#include <stdlib.h>
13#include <string.h>
14#include <unistd.h>
15#include <fcntl.h>
16#include <termios.h>
17#include <errno.h>
18#include <sys/ioctl.h>
19#include <sys/mman.h>
20#include <sys/wait.h>
21#include <sys/stat.h>
22#include <linux/kd.h>
23#include <linux/vt.h>
24#include <linux/fb.h>
25
26typedef struct _fb_mode FB_Mode;
27
28struct _fb_mode
29{
30 unsigned int width;
31 unsigned int height;
32 unsigned int refresh;
33 unsigned int depth;
34 unsigned int bpp;
35 int fb_fd;
36 void *mem;
37 unsigned int mem_offset;
38 struct fb_var_screeninfo fb_var;
39};
40
41/* init a framebuffer (and switch to) vt number vt. If vt == 0 use current */
42/* vt */
43void fb_init(int vt, int device);
44/* call this afetr setting or getting the fb mode (whichever) to complete */
45/* the dsetup */
46int fb_postinit(FB_Mode *mode);
47/* console switching - if a switch was requested this with block if block */
48/* is 1, otherwise it will return 1 if current console is active or 0 if */
49/* the user has switched away in the meantime */
50int fb_await_switch(int block);
51/* list all current possible video modes listed in /etc/fb.modes */
52/* returns pointer to an aray of FB_Mode, and sets num_return to the number */
53/* of elements in the returned array */
54FB_Mode *fb_list_modes(unsigned int *num_return);
55/* sets the fb mode to the resolution width x height and the depth to depth. */
56/* and if refresh > 0 attempts to use a mode with a refresh rate (in Hz) of */
57/* that. If this fails it will return NULL - if it succeeds it will return */
58/* a pointer to the FB_Mode thatwas set. only modes in /etc/fb.modes will */
59/* be used. If refresh is 0 it uses the DEFAULT mode (the one with no */
60/* refresh rate at the end of its name (WIDTHxHEIGHT-REFRESH) */
61/* NB: in 8bpp you get a 332 palette. This is fixed so all modes are */
62/* "truecolor" - the only difference is how many bits bep red, green and */
63/* blue channel. This is for speed reasons */
64FB_Mode *fb_setmode(unsigned int width, unsigned int height, unsigned int depth, unsigned int refresh);
65/* returns the current fb mode being used in FB_Mode */
66FB_Mode *fb_getmode(void);
67/* changes the bit depth of the current fb mode to depth and returns a new */
68/* handle to a new fb mode with updated parameters. frees cur_mode for you. */
69FB_Mode *fb_changedepth(FB_Mode *cur_mode, unsigned int depth);
70/* changes resolution - retaining current depth of the current mode, */
71/* returning a handle to the new mode once done. frees cur_mode for you. */
72FB_Mode *fb_changeres(FB_Mode *cur_mode, unsigned int width, unsigned int height, unsigned int refresh);
73/* chnages both resolution and depth and returns a handle to the new mode */
74/* when done. frees cur_mode for you */
75FB_Mode *fb_changemode(FB_Mode *cur_mode, unsigned int width, unsigned int height, unsigned int depth, unsigned int refresh);
76
77/* ------------------------------------------------------------------------- */
78/* How to init: */
79/* (Example) */
80
81/* FB_Mode *mode; */
82/* int fb_fd = -1; */
83/* fb_init(0); */
84/* mode = fb_setmode(640, 480, 8, 0); */
85/* if (mode) */
86/* fb_fd = fb_postinit(mode); */
87/* if (fb_fd == -1) */
88/* { */
89/* fprintf(stderr, "Frambuffer init failed\n"); */
90/* exit(1); */
91/* } */
92/* .... code to play with the FB */
93#endif
diff --git a/libraries/evas/src/modules/engines/fb/evas_fb_main.c b/libraries/evas/src/modules/engines/fb/evas_fb_main.c
deleted file mode 100644
index 1d61f1a..0000000
--- a/libraries/evas/src/modules/engines/fb/evas_fb_main.c
+++ /dev/null
@@ -1,600 +0,0 @@
1/* -------------------------------------------------------------------- */
2/* LINUX FBCON FRAMEBUFFER UTILITY CODE */
3/* makes setting up the framebuffer easy. Also makes it eays to port to */
4/* some other system if needed. */
5/* Copyright (c) 1999 - Carsten Haitzler (The Rasterman) */
6/* -------------------------------------------------------------------- */
7#include "evas_common.h"
8#include "evas_fb.h"
9
10#include <sys/ioctl.h>
11#include <sys/wait.h>
12#include <linux/kd.h>
13#include <linux/vt.h>
14#include <sys/user.h>
15
16#define FB_ACTIVE 0
17#define FB_REL_REQ 1
18#define FB_INACTIVE 2
19#define FB_ACQ_REQ 3
20
21/* -------------------------------------------------------------------- */
22/* internal variables */
23
24static struct fb_fix_screeninfo fb_fix;
25static int fb, tty;
26static int bpp, depth;
27//static int orig_vt_no = 0;
28static int kd_mode;
29static struct vt_mode vt_omode;
30static struct fb_var_screeninfo fb_ovar;
31static unsigned short ored[256], ogreen[256], oblue[256];
32static unsigned short red[256], green[256], blue[256];
33static struct fb_cmap ocmap = { 0, 256, ored, ogreen, oblue, NULL };
34static struct fb_cmap cmap = { 0, 256, red, green, blue, NULL };
35
36/* -------------------------------------------------------------------- */
37/* internal function prototypes */
38
39static void fb_cleanup(void);
40//static void fb_cleanup_fork(void);
41//static void fb_setvt(int vtno);
42static void fb_init_palette_332(FB_Mode *mode);
43static void fb_init_palette_linear(FB_Mode *mode);
44
45/* -------------------------------------------------------------------- */
46/* palette setting */
47
48static void
49fb_init_palette_332(FB_Mode *mode)
50{
51 int r, g, b, i;
52
53 if (mode->fb_var.bits_per_pixel != 8)
54 return;
55 i = 0;
56
57 if (ioctl(fb, FBIOGETCMAP, &cmap) == -1)
58 perror("ioctl FBIOGETCMAP");
59
60 /* generate the palette */
61 for (r = 0; r < 8; r++)
62 {
63 for (g = 0; g < 8; g++)
64 {
65 for (b = 0; b < 4; b++)
66 {
67 int val;
68
69 val = (r << 5) | (r << 2) | (r >> 1);
70 red[i] = (val << 8) | val;
71 val = (g << 5) | (g << 2) | (g >> 1);
72 green[i] = (val << 8) | val;
73 val = (b << 6) | (b << 4) | (b << 2) | (b);
74 blue[i] = (val << 8) | val;
75 i++;
76 }
77 }
78 }
79
80 /* set colormap */
81 if (ioctl(fb, FBIOPUTCMAP, &cmap) == -1)
82 perror("ioctl FBIOPUTCMAP");
83}
84
85static void
86fb_init_palette_linear(FB_Mode *mode)
87{
88 int i;
89
90 if (mode->fb_var.bits_per_pixel != 8)
91 return;
92
93 if (ioctl(fb, FBIOGETCMAP, &cmap) == -1)
94 perror("ioctl FBIOGETCMAP");
95
96 /* generate the palette */
97 for (i = 0; i < 256; i++)
98 red[i] = (i << 8) | i;
99 for (i = 0; i < 256; i++)
100 green[i] = (i << 8) | i;
101 for (i = 0; i < 256; i++)
102 blue[i] = (i << 8) | i;
103
104 /* set colormap */
105 if (ioctl(fb, FBIOPUTCMAP, &cmap) == -1)
106 perror("ioctl FBIOPUTCMAP");
107}
108
109/* -------------------------------------------------------------------- */
110/* initialisation & cleanup */
111
112FB_Mode *
113fb_list_modes(unsigned int *num_return)
114{
115 FILE *f;
116 char line[256], label[256], value[256];
117 FB_Mode *modes = NULL;
118 int num;
119
120 num = 0;
121 f = fopen("/etc/fb.modes","r");
122 if (!f)
123 {
124 *num_return = 0;
125 return NULL;
126 }
127 while (fgets(line, sizeof(line) - 1, f))
128 {
129 if (sscanf(line, "mode \"%250[^\"]\"", label) == 1)
130 {
131 char f1[32], f2[32], f3[32], f4[32];
132
133 f1[0] = 0; f2[0] = 0; f3[0] = 0; f4[0] = 0;
134 sscanf(label, "%30[^x]x%30[^-]-%30[^-]-%30s", f1, f2, f3, f4);
135 if ((f1[0]) && (f2[0]))
136 {
137 int geometry = 0;
138 int timings = 0;
139
140 num++;
141 modes = realloc(modes, num * sizeof(FB_Mode));
142 modes[num - 1].width = atoi(f1);
143 modes[num - 1].height = atoi(f2);
144 if (f3[0])
145 modes[num - 1].refresh = atoi(f3);
146 else
147 modes[num - 1].refresh = 0;
148 modes[num - 1].fb_var.sync = 0;
149 while ((fgets(line, sizeof(line) - 1, f)) &&
150 (!strstr(line, "endmode")))
151 {
152
153 if (sscanf(line," geometry %i %i %i %i %i",
154 &modes[num - 1].fb_var.xres,
155 &modes[num - 1].fb_var.yres,
156 &modes[num - 1].fb_var.xres_virtual,
157 &modes[num - 1].fb_var.yres_virtual,
158 &modes[num - 1].fb_var.bits_per_pixel) == 5)
159 geometry = 1;
160 if (sscanf(line," timings %i %i %i %i %i %i %i",
161 &modes[num - 1].fb_var.pixclock,
162 &modes[num - 1].fb_var.left_margin,
163 &modes[num - 1].fb_var.right_margin,
164 &modes[num - 1].fb_var.upper_margin,
165 &modes[num - 1].fb_var.lower_margin,
166 &modes[num - 1].fb_var.hsync_len,
167 &modes[num - 1].fb_var.vsync_len) == 7)
168 timings = 1;
169 if ((sscanf(line, " hsync %15s", value) == 1) &&
170 (!strcmp(value,"high")))
171 modes[num - 1].fb_var.sync |= FB_SYNC_HOR_HIGH_ACT;
172 if ((sscanf(line, " vsync %15s", value) == 1) &&
173 (!strcmp(value,"high")))
174 modes[num - 1].fb_var.sync |= FB_SYNC_VERT_HIGH_ACT;
175 if ((sscanf(line, " csync %15s", value) == 1) &&
176 (!strcmp(value,"high")))
177 modes[num - 1].fb_var.sync |= FB_SYNC_COMP_HIGH_ACT;
178 if ((sscanf(line, " extsync %15s", value) == 1) &&
179 (!strcmp(value,"true")))
180 modes[num - 1].fb_var.sync |= FB_SYNC_EXT;
181 if ((sscanf(line, " laced %15s", value) == 1) &&
182 (!strcmp(value,"true")))
183 modes[num - 1].fb_var.vmode |= FB_VMODE_INTERLACED;
184 if ((sscanf(line, " double %15s",value) == 1) &&
185 (!strcmp(value,"true")))
186 modes[num - 1].fb_var.vmode |= FB_VMODE_DOUBLE;
187 }
188 if ((!geometry) || (!timings))
189 {
190 num--;
191 if (num == 0)
192 {
193 free(modes);
194 modes = NULL;
195 }
196 }
197 else
198 {
199 modes[num - 1].fb_var.xoffset = 0;
200 modes[num - 1].fb_var.yoffset = 0;
201 }
202 }
203 }
204 }
205 fclose(f);
206 *num_return = num;
207 return modes;
208}
209
210FB_Mode *
211fb_setmode(unsigned int width, unsigned int height, unsigned int pdepth, unsigned int refresh)
212{
213 FB_Mode *modes, *mode = NULL;
214 unsigned int i, num_modes;
215
216 modes = fb_list_modes(&num_modes);
217 if (modes)
218 {
219 for (i = 0; i < num_modes; i++)
220 {
221 if ((modes[i].width == width) &&
222 (modes[i].height == height) &&
223 (!pdepth || modes[i].fb_var.bits_per_pixel == pdepth) &&
224 (modes[i].refresh == refresh))
225 {
226 if (pdepth) modes[i].fb_var.bits_per_pixel = pdepth;
227
228 if (ioctl(fb, FBIOPUT_VSCREENINFO, &modes[i].fb_var) == -1)
229 perror("ioctl FBIOPUT_VSCREENINFO");
230
231 free(modes);
232 return fb_getmode();
233 }
234 }
235 free(modes);
236 }
237 return mode;
238}
239
240FB_Mode *
241fb_changedepth(FB_Mode *cur_mode, unsigned int pdepth)
242{
243 cur_mode->fb_var.bits_per_pixel = pdepth;
244
245 if (ioctl(fb, FBIOPUT_VSCREENINFO, &cur_mode->fb_var) == -1)
246 perror("ioctl FBIOPUT_VSCREENINFO");
247
248 free(cur_mode);
249 return fb_getmode();
250}
251
252FB_Mode *
253fb_changeres(FB_Mode *cur_mode, unsigned int width, unsigned int height, unsigned int refresh)
254{
255 FB_Mode *modes;
256 unsigned int i, num_modes;
257
258 modes = fb_list_modes(&num_modes);
259 if (modes)
260 {
261 for (i = 0; i < num_modes; i++)
262 {
263 if ((modes[i].width == width) &&
264 (modes[i].height == height) &&
265 (modes[i].refresh == refresh))
266 {
267 modes[i].fb_var.bits_per_pixel = cur_mode->depth;
268
269 if (ioctl(fb, FBIOPUT_VSCREENINFO, &modes[i].fb_var) == -1)
270 perror("ioctl FBIOPUT_VSCREENINFO");
271
272 free(modes);
273 free(cur_mode);
274 return fb_getmode();
275 }
276 }
277 free(modes);
278 }
279 return cur_mode;
280}
281
282FB_Mode *
283fb_changemode(FB_Mode *cur_mode, unsigned int width, unsigned int height, unsigned int pdepth, unsigned int refresh)
284{
285 FB_Mode *modes;
286 unsigned int i, num_modes;
287
288 modes = fb_list_modes(&num_modes);
289 if (modes)
290 {
291 for (i = 0; i < num_modes; i++)
292 {
293 if ((modes[i].width == width) &&
294 (modes[i].height == height) &&
295 (!pdepth || modes[i].fb_var.bits_per_pixel == pdepth) &&
296 (modes[i].refresh == refresh))
297 {
298 if (pdepth) modes[i].fb_var.bits_per_pixel = pdepth;
299
300 if (ioctl(fb, FBIOPUT_VSCREENINFO, &modes[i].fb_var) == -1)
301 perror("ioctl FBIOPUT_VSCREENINFO");
302
303 free(modes);
304 free(cur_mode);
305 return fb_getmode();
306 }
307 }
308 free(modes);
309 }
310 return cur_mode;
311}
312
313FB_Mode *
314fb_getmode(void)
315{
316 FB_Mode *mode = NULL;
317 int hpix, lines, clockrate;
318
319 mode = malloc(sizeof(FB_Mode));
320 /* look what we have now ... */
321
322 if (ioctl(fb, FBIOGET_VSCREENINFO, &mode->fb_var) == -1)
323 {
324 perror("ioctl FBIOGET_VSCREENINFO");
325 return NULL;
326 }
327
328 mode->width = mode->fb_var.xres_virtual;
329 mode->height = mode->fb_var.yres_virtual;
330 hpix =
331 mode->fb_var.left_margin +
332 mode->fb_var.xres +
333 mode->fb_var.right_margin +
334 mode->fb_var.hsync_len;
335 lines =
336 mode->fb_var.upper_margin +
337 mode->fb_var.yres +
338 mode->fb_var.lower_margin +
339 mode->fb_var.vsync_len;
340 if (mode->fb_var.pixclock > 0)
341 clockrate = 1000000 / mode->fb_var.pixclock;
342 else
343 clockrate = 0;
344 if ((lines > 0) && (hpix > 0))
345 mode->refresh = clockrate * 1000000 / (lines * hpix);
346 switch (mode->fb_var.bits_per_pixel)
347 {
348 case 1:
349 bpp = 1;
350 depth = 1;
351 break;
352 case 4:
353 bpp = 1;
354 depth = 4;
355 break;
356 case 8:
357 bpp = 1;
358 depth = 8;
359 break;
360 case 15:
361 case 16:
362 if (mode->fb_var.green.length == 6)
363 depth = 16;
364 else
365 depth = 15;
366 bpp = 2;
367 break;
368 case 24:
369 depth = 24;
370 bpp = mode->fb_var.bits_per_pixel / 8;
371 break;
372 case 32:
373 depth = 32;
374 bpp = mode->fb_var.bits_per_pixel / 8;
375 break;
376 default:
377 ERR("Cannot handle framebuffer of depth %i",
378 mode->fb_var.bits_per_pixel);
379 fb_cleanup();
380 free(mode);
381 return NULL;
382 }
383 mode->depth = depth;
384 mode->bpp = bpp;
385 if (mode->depth == 8) fb_init_palette_332(mode);
386 else fb_init_palette_linear(mode);
387 return mode;
388}
389
390/* XXX: unused
391static void
392fb_setvt(int vtno)
393{
394 struct vt_stat vts;
395 char vtname[32];
396 int vtfd;
397
398 if (vtno < 0)
399 {
400 if ((ioctl(tty,VT_OPENQRY, &vtno) == -1))
401 {
402 perror("ioctl VT_OPENQRY");
403 return;
404 }
405 if (vtno <= 0 )
406 {
407 perror("ioctl VT_OPENQRY vtno <= 0");
408 return;
409 }
410 }
411 vtno &= 0xff;
412 sprintf(vtname, "/dev/tty%i", vtno);
413 if (chown(vtname, getuid(), getgid()) != 0)
414 {
415 vtfd = 0; // do nothing - don't worry about chown
416 }
417 if (access(vtname,R_OK | W_OK) == -1)
418 {
419 CRIT("Access %s: %s",vtname,strerror(errno));
420 return;
421 }
422 vtfd = open(vtname,O_RDWR);
423
424 if (ioctl(tty, VT_GETSTATE, &vts) == -1)
425 {
426 perror("ioctl VT_GETSTATE");
427 close(vtfd);
428 return;
429 }
430
431 orig_vt_no = vts.v_active;
432 close(vtfd);
433#if 0
434 if (ioctl(tty, VT_ACTIVATE, vtno) == -1)
435 {
436 perror("ioctl VT_ACTIVATE");
437 exit(1);
438 }
439 if (ioctl(tty, VT_WAITACTIVE, vtno) == -1)
440 {
441 perror("ioctl VT_WAITACTIVE");
442 exit(1);
443 }
444#endif
445}
446*/
447
448void
449fb_init(int vt __UNUSED__, int device)
450{
451 char dev[32];
452
453 tty = 0;
454#if 0
455 if (vt != 0) fb_setvt(vt);
456#endif
457
458 if ( getenv("EVAS_FB_DEV") )
459 {
460 fb = open(getenv("EVAS_FB_DEV"), O_RDWR);
461 }
462 else
463 {
464 sprintf(dev, "/dev/fb/%i", device);
465 fb = open(dev, O_RDWR);
466 if ( fb == -1 )
467 {
468 sprintf(dev, "/dev/fb%i", device);
469 fb = open(dev, O_RDWR);
470 }
471 }
472 if (fb == -1)
473 {
474 CRIT("open %s: %s", dev, strerror(errno));
475 fb_cleanup();
476 return;
477 }
478
479 if (ioctl(fb, FBIOGET_VSCREENINFO, &fb_ovar) == -1)
480 {
481 perror("ioctl FBIOGET_VSCREENINFO");
482 return;
483 }
484 if (ioctl(fb, FBIOGET_FSCREENINFO, &fb_fix) == -1)
485 {
486 perror("ioctl FBIOGET_FSCREENINFO");
487 return;
488 }
489
490 if ((fb_ovar.bits_per_pixel == 8) ||
491 (fb_fix.visual == FB_VISUAL_DIRECTCOLOR))
492 {
493 if (ioctl(fb,FBIOGETCMAP , &ocmap) == -1)
494 {
495 perror("ioctl FBIOGETCMAP");
496 return;
497 }
498 }
499#if 0
500 if (isatty(0))
501 tty = 0;
502 else if ((tty = open("/dev/tty",O_RDWR)) == -1)
503 {
504 CITICAL("open %s: %s", "/dev/tty", strerror(errno));
505 return;
506 }
507 if (tty)
508 {
509 if (ioctl(tty, KDGETMODE, &kd_mode) == -1)
510 {
511 perror("ioctl KDGETMODE");
512 return;
513 }
514 if (ioctl(tty, VT_GETMODE, &vt_omode) == -1)
515 {
516 perror("ioctl VT_GETMODE");
517 return;
518 }
519 }
520#endif
521}
522
523int
524fb_postinit(FB_Mode *mode)
525{
526 if (ioctl(fb,FBIOGET_FSCREENINFO, &fb_fix) == -1)
527 {
528 perror("ioctl FBIOGET_FSCREENINFO");
529 fb_cleanup();
530 return 0;
531 }
532
533 if (fb_fix.type != FB_TYPE_PACKED_PIXELS)
534 {
535 CRIT("can handle only packed pixel frame buffers");
536 fb_cleanup();
537 return 0;
538 }
539 mode->mem_offset = (unsigned)(fb_fix.smem_start) & (getpagesize()-1);
540 mode->mem = (unsigned char *)mmap(NULL, fb_fix.smem_len + mode->mem_offset,
541 PROT_WRITE | PROT_READ, MAP_SHARED, fb, 0);
542 if (mode->mem == MAP_FAILED)
543 {
544 perror("mmap");
545 fb_cleanup();
546 }
547 /* move viewport to upper left corner */
548 if ((mode->fb_var.xoffset != 0) || (mode->fb_var.yoffset != 0))
549 {
550 mode->fb_var.xoffset = 0;
551 mode->fb_var.yoffset = 0;
552
553 if (ioctl(fb, FBIOPAN_DISPLAY, &(mode->fb_var)) == -1)
554 {
555 perror("ioctl FBIOPAN_DISPLAY");
556 fb_cleanup();
557 }
558 }
559#if 0
560 if (tty)
561 {
562 if (ioctl(tty,KDSETMODE, KD_GRAPHICS) == -1)
563 {
564 perror("ioctl KDSETMODE");
565 fb_cleanup();
566 }
567 }
568#endif
569 mode->fb_fd = fb;
570 return fb;
571}
572
573static void
574fb_cleanup(void)
575{
576 /* restore console */
577 if (ioctl(fb, FBIOPUT_VSCREENINFO, &fb_ovar) == -1)
578 perror("ioctl FBIOPUT_VSCREENINFO");
579 if (ioctl(fb, FBIOGET_FSCREENINFO, &fb_fix) == -1)
580 perror("ioctl FBIOGET_FSCREENINFO");
581 if ((fb_ovar.bits_per_pixel == 8) ||
582 (fb_fix.visual == FB_VISUAL_DIRECTCOLOR))
583 {
584 if (ioctl(fb, FBIOPUTCMAP, &ocmap) == -1)
585 perror("ioctl FBIOPUTCMAP");
586 }
587 close(fb);
588 if (tty)
589 {
590 if (ioctl(tty, KDSETMODE, kd_mode) == -1)
591 perror("ioctl KDSETMODE");
592 if (ioctl(tty, VT_SETMODE, &vt_omode) == -1)
593 perror("ioctl VT_SETMODE");
594#if 0
595 if ((ioctl(tty, VT_ACTIVATE, orig_vt_no) == -1) && (orig_vt_no))
596 perror("ioctl VT_ACTIVATE");
597#endif
598 }
599 close(tty);
600}
diff --git a/libraries/evas/src/modules/engines/fb/evas_outbuf.c b/libraries/evas/src/modules/engines/fb/evas_outbuf.c
deleted file mode 100644
index 7ae24c5..0000000
--- a/libraries/evas/src/modules/engines/fb/evas_outbuf.c
+++ /dev/null
@@ -1,402 +0,0 @@
1#include "evas_common.h"
2#include "evas_engine.h"
3#include <sys/time.h>
4#include <sys/utsname.h>
5
6void
7evas_fb_outbuf_fb_init(void)
8{
9}
10
11void
12evas_fb_outbuf_fb_free(Outbuf *buf)
13{
14 /* FIXME: implement */
15 WRN("destroying fb info.. not implemented!!!! WARNING. LEAK!");
16 if (buf->priv.back_buf)
17 evas_cache_image_drop(&buf->priv.back_buf->cache_entry);
18 free(buf);
19}
20
21Outbuf *
22evas_fb_outbuf_fb_setup_fb(int w, int h, int rot, Outbuf_Depth depth, int vt_no, int dev_no, int refresh)
23{
24 /* create outbuf struct */
25 /* setup window and/or fb */
26 /* if (dithered) create backbuf */
27 Outbuf *buf;
28 int fb_fd;
29 int fb_depth;
30
31 fb_depth = -1;
32 if (depth == OUTBUF_DEPTH_RGB_16BPP_565_565_DITHERED) fb_depth = 16;
33 else if (depth == OUTBUF_DEPTH_RGB_16BPP_555_555_DITHERED) fb_depth = 15;
34 else if (depth == OUTBUF_DEPTH_RGB_16BPP_565_444_DITHERED) fb_depth = 16;
35 else if (depth == OUTBUF_DEPTH_RGB_16BPP_444_444_DITHERED) fb_depth = 12;
36 else if (depth == OUTBUF_DEPTH_RGB_32BPP_888_8888) fb_depth = 32;
37 else if (depth == OUTBUF_DEPTH_INHERIT) fb_depth = 0;
38 buf = calloc(1, sizeof(Outbuf));
39 if (!buf)
40 return NULL;
41
42 fb_init(vt_no, dev_no);
43 if (rot == 0 || rot == 180)
44 buf->priv.fb.fb = fb_setmode(w, h, fb_depth, refresh);
45 else if (rot == 90 || rot == 270)
46 buf->priv.fb.fb = fb_setmode(h, w, fb_depth, refresh);
47 if (!buf->priv.fb.fb) buf->priv.fb.fb = fb_getmode();
48 if (!buf->priv.fb.fb)
49 {
50 free(buf);
51 return NULL;
52 }
53 fb_fd = fb_postinit(buf->priv.fb.fb);
54 if (fb_fd < 1)
55 {
56 free(buf);
57 return NULL;
58 }
59
60 if (rot == 0 || rot == 180)
61 {
62 buf->w = buf->priv.fb.fb->width;
63 buf->h = buf->priv.fb.fb->height;
64 }
65 else if (rot == 90 || rot == 270)
66 {
67 buf->w = buf->priv.fb.fb->height;
68 buf->h = buf->priv.fb.fb->width;
69 }
70
71 buf->depth = depth;
72 buf->rot = rot;
73
74 {
75 Gfx_Func_Convert conv_func;
76 int i;
77
78 buf->priv.mask.r = 0;
79 for (i = 0; i < (int)buf->priv.fb.fb->fb_var.red.length; i++)
80 buf->priv.mask.r |= (1 << (buf->priv.fb.fb->fb_var.red.offset + i));
81 buf->priv.mask.g = 0;
82 for (i = 0; i < (int)buf->priv.fb.fb->fb_var.green.length; i++)
83 buf->priv.mask.g |= (1 << (buf->priv.fb.fb->fb_var.green.offset + i));
84 buf->priv.mask.b = 0;
85 for (i = 0; i < (int)buf->priv.fb.fb->fb_var.blue.length; i++)
86 buf->priv.mask.b |= (1 << (buf->priv.fb.fb->fb_var.blue.offset + i));
87
88 conv_func = NULL;
89 if (buf->rot == 0 || buf->rot == 180)
90 conv_func = evas_common_convert_func_get(0, buf->w, buf->h,
91 buf->priv.fb.fb->fb_var.bits_per_pixel,
92 buf->priv.mask.r,
93 buf->priv.mask.g,
94 buf->priv.mask.b,
95 PAL_MODE_NONE,
96 buf->rot);
97 else if (buf->rot == 90 || buf->rot == 270)
98 conv_func = evas_common_convert_func_get(0, buf->h, buf->w,
99 buf->priv.fb.fb->fb_var.bits_per_pixel,
100 buf->priv.mask.r,
101 buf->priv.mask.g,
102 buf->priv.mask.b,
103 PAL_MODE_NONE,
104 buf->rot);
105 if (!conv_func)
106 {
107 free(buf);
108 return NULL;
109 }
110 }
111// if (buf->priv.fb.fb->fb_var.bits_per_pixel < 24)
112// buf->priv.back_buf = evas_common_image_create(buf->w, buf->h);
113
114 return buf;
115}
116
117void
118evas_fb_outbuf_fb_blit(Outbuf *buf, int src_x, int src_y, int w, int h, int dst_x, int dst_y)
119{
120 if (buf->priv.back_buf)
121 {
122 evas_common_blit_rectangle(buf->priv.back_buf, buf->priv.back_buf,
123 src_x, src_y, w, h, dst_x, dst_y);
124 evas_fb_outbuf_fb_update(buf, dst_x, dst_y, w, h);
125 }
126 else
127 {
128 if (buf->priv.fb.fb)
129 {
130 /* FIXME: need to implement an fb call for "copy area" */
131 }
132 }
133}
134
135void
136evas_fb_outbuf_fb_update(Outbuf *buf, int x, int y, int w, int h)
137{
138 if (!(buf->priv.back_buf)) return;
139 if (buf->priv.fb.fb)
140 {
141 Gfx_Func_Convert conv_func;
142 DATA8 *data;
143
144 data = NULL;
145 conv_func = NULL;
146 if (buf->rot == 0)
147 {
148 data = (DATA8 *)buf->priv.fb.fb->mem + buf->priv.fb.fb->mem_offset +
149 buf->priv.fb.fb->bpp *
150 (x + (y * buf->priv.fb.fb->width));
151 conv_func = evas_common_convert_func_get(data, w, h, buf->priv.fb.fb->fb_var.bits_per_pixel,
152 buf->priv.mask.r, buf->priv.mask.g,
153 buf->priv.mask.b, PAL_MODE_NONE,
154 buf->rot);
155 }
156 else if (buf->rot == 180)
157 {
158 data = (DATA8 *)buf->priv.fb.fb->mem + buf->priv.fb.fb->mem_offset +
159 buf->priv.fb.fb->bpp *
160 (buf->w - x - w + ((buf->h - y - h) * buf->priv.fb.fb->width));
161 conv_func = evas_common_convert_func_get(data, w, h, buf->priv.fb.fb->fb_var.bits_per_pixel,
162 buf->priv.mask.r, buf->priv.mask.g,
163 buf->priv.mask.b, PAL_MODE_NONE,
164 buf->rot);
165 }
166 else if (buf->rot == 270)
167 {
168 data = (DATA8 *)buf->priv.fb.fb->mem + buf->priv.fb.fb->mem_offset +
169 buf->priv.fb.fb->bpp *
170 (buf->h - y - h + (x * buf->priv.fb.fb->width));
171 conv_func = evas_common_convert_func_get(data, h, w, buf->priv.fb.fb->fb_var.bits_per_pixel,
172 buf->priv.mask.r, buf->priv.mask.g,
173 buf->priv.mask.b, PAL_MODE_NONE,
174 buf->rot);
175 }
176 else if (buf->rot == 90)
177 {
178 data = (DATA8 *)buf->priv.fb.fb->mem + buf->priv.fb.fb->mem_offset +
179 buf->priv.fb.fb->bpp *
180 (y + ((buf->w - x - w) * buf->priv.fb.fb->width));
181 conv_func = evas_common_convert_func_get(data, h, w, buf->priv.fb.fb->fb_var.bits_per_pixel,
182 buf->priv.mask.r, buf->priv.mask.g,
183 buf->priv.mask.b, PAL_MODE_NONE,
184 buf->rot);
185 }
186 if (conv_func)
187 {
188 DATA32 *src_data;
189
190 src_data = buf->priv.back_buf->image.data + (y * buf->w) + x;
191 if (buf->rot == 0 || buf->rot == 180)
192 {
193 conv_func(src_data, data,
194 buf->w - w,
195 buf->priv.fb.fb->width - w,
196 w, h,
197 x, y, NULL);
198 }
199 else if (buf->rot == 90 || buf->rot == 270)
200 {
201 conv_func(src_data, data,
202 buf->w - w,
203 buf->priv.fb.fb->width - h,
204 h, w,
205 x, y, NULL);
206 }
207 }
208 }
209}
210
211RGBA_Image *
212evas_fb_outbuf_fb_new_region_for_update(Outbuf *buf, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch)
213{
214 if (buf->priv.back_buf)
215 {
216 *cx = x; *cy = y; *cw = w; *ch = h;
217 return buf->priv.back_buf;
218 }
219 else
220 {
221 RGBA_Image *im;
222
223 *cx = 0; *cy = 0; *cw = w; *ch = h;
224 im = (RGBA_Image *) evas_cache_image_empty(evas_common_image_cache_get());
225 im->cache_entry.flags.alpha = 1;
226 im = (RGBA_Image *) evas_cache_image_size_set(&im->cache_entry, w, h);
227
228 return im;
229 }
230 return NULL;
231}
232
233void
234evas_fb_outbuf_fb_free_region_for_update(Outbuf *buf, RGBA_Image *update)
235{
236 if (update != buf->priv.back_buf) evas_cache_image_drop(&update->cache_entry);
237}
238
239void
240evas_fb_outbuf_fb_push_updated_region(Outbuf *buf, RGBA_Image *update, int x, int y, int w, int h)
241{
242 if (!buf->priv.fb.fb) return;
243 if (buf->priv.back_buf)
244 {
245 if (update != buf->priv.back_buf)
246 evas_common_blit_rectangle(update, buf->priv.back_buf,
247 0, 0, w, h, x, y);
248 evas_fb_outbuf_fb_update(buf, x, y, w, h);
249 }
250 else
251 {
252 Gfx_Func_Convert conv_func;
253 DATA8 *data;
254
255 data = NULL;
256 conv_func = NULL;
257 if (buf->rot == 0)
258 {
259 data = (DATA8 *)buf->priv.fb.fb->mem +
260 buf->priv.fb.fb->mem_offset +
261 buf->priv.fb.fb->bpp *
262 (x + (y * buf->priv.fb.fb->width));
263 conv_func = evas_common_convert_func_get(data, w, h,
264 buf->priv.fb.fb->fb_var.bits_per_pixel,
265 buf->priv.mask.r, buf->priv.mask.g,
266 buf->priv.mask.b, PAL_MODE_NONE,
267 buf->rot);
268 }
269 else if (buf->rot == 180)
270 {
271 data = (DATA8 *)buf->priv.fb.fb->mem +
272 buf->priv.fb.fb->mem_offset +
273 buf->priv.fb.fb->bpp *
274 (buf->w - x - w + ((buf->h - y - h) * buf->priv.fb.fb->width));
275 conv_func = evas_common_convert_func_get(data, w, h,
276 buf->priv.fb.fb->fb_var.bits_per_pixel,
277 buf->priv.mask.r, buf->priv.mask.g,
278 buf->priv.mask.b, PAL_MODE_NONE,
279 buf->rot);
280 }
281 else if (buf->rot == 270)
282 {
283 data = (DATA8 *)buf->priv.fb.fb->mem +
284 buf->priv.fb.fb->mem_offset +
285 buf->priv.fb.fb->bpp *
286 (buf->h - y - h + (x * buf->priv.fb.fb->width));
287 conv_func = evas_common_convert_func_get(data, h, w,
288 buf->priv.fb.fb->fb_var.bits_per_pixel,
289 buf->priv.mask.r, buf->priv.mask.g,
290 buf->priv.mask.b, PAL_MODE_NONE,
291 buf->rot);
292 }
293 else if (buf->rot == 90)
294 {
295 data = (DATA8 *)buf->priv.fb.fb->mem +
296 buf->priv.fb.fb->mem_offset +
297 buf->priv.fb.fb->bpp *
298 (y + ((buf->w - x - w) * buf->priv.fb.fb->width));
299 conv_func = evas_common_convert_func_get(data, h, w,
300 buf->priv.fb.fb->fb_var.bits_per_pixel,
301 buf->priv.mask.r, buf->priv.mask.g,
302 buf->priv.mask.b, PAL_MODE_NONE,
303 buf->rot);
304 }
305 if (conv_func)
306 {
307 DATA32 *src_data;
308
309 src_data = update->image.data;
310 if (buf->rot == 0 || buf->rot == 180)
311 {
312 conv_func(src_data, data,
313 0,
314 buf->priv.fb.fb->width - w,
315 w, h,
316 x, y, NULL);
317 }
318 else if (buf->rot == 90 || buf->rot == 270)
319 {
320 conv_func(src_data, data,
321 0,
322 buf->priv.fb.fb->width - h,
323 h, w,
324 x, y, NULL);
325 }
326 }
327 }
328}
329
330void
331evas_fb_outbuf_fb_reconfigure(Outbuf *buf, int w, int h, int rot, Outbuf_Depth depth)
332{
333 if ((w == buf->w) && (h == buf->h) &&
334 (rot == buf->rot) && (depth == buf->depth))
335 return;
336 if (buf->priv.back_buf)
337 {
338 evas_cache_image_drop(&buf->priv.back_buf->cache_entry);
339 buf->priv.back_buf = NULL;
340 }
341 if (buf->priv.fb.fb)
342 {
343 /* FIXME: implement this */
344 }
345 /* if backbuf delet it */
346 /* resize window or reset fb mode */
347 /* if (dithered) create new backbuf */
348}
349
350int
351evas_fb_outbuf_fb_get_width(Outbuf *buf)
352{
353 return buf->w;
354}
355
356int
357evas_fb_outbuf_fb_get_height(Outbuf *buf)
358{
359 return buf->h;
360}
361
362Outbuf_Depth
363evas_fb_outbuf_fb_get_depth(Outbuf *buf)
364{
365 return buf->depth;
366}
367
368int
369evas_fb_outbuf_fb_get_rot(Outbuf *buf)
370{
371 return buf->rot;
372}
373
374int
375evas_fb_outbuf_fb_get_have_backbuf(Outbuf *buf)
376{
377 if (buf->priv.back_buf) return 1;
378 return 0;
379}
380
381void
382evas_fb_outbuf_fb_set_have_backbuf(Outbuf *buf, int have_backbuf)
383{
384 if (buf->priv.back_buf)
385 {
386 if (have_backbuf) return;
387 evas_cache_image_drop(&buf->priv.back_buf->cache_entry);
388 buf->priv.back_buf = NULL;
389 }
390 else
391 {
392 if (!have_backbuf) return;
393 if (buf->priv.fb.fb)
394 {
395 if (buf->priv.fb.fb->fb_var.bits_per_pixel < 24)
396 {
397 buf->priv.back_buf = (RGBA_Image *) evas_cache_image_empty(evas_common_image_cache_get());
398 buf->priv.back_buf = (RGBA_Image *) evas_cache_image_size_set(&buf->priv.back_buf->cache_entry, buf->w, buf->h);
399 }
400 }
401 }
402}