aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/evas/src/modules/engines/software_16_x11
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/evas/src/modules/engines/software_16_x11')
-rw-r--r--libraries/evas/src/modules/engines/software_16_x11/Evas_Engine_Software_16_X11.h26
-rw-r--r--libraries/evas/src/modules/engines/software_16_x11/Makefile.am47
-rw-r--r--libraries/evas/src/modules/engines/software_16_x11/Makefile.in812
-rw-r--r--libraries/evas/src/modules/engines/software_16_x11/evas_engine.c741
-rw-r--r--libraries/evas/src/modules/engines/software_16_x11/evas_engine.h63
-rw-r--r--libraries/evas/src/modules/engines/software_16_x11/evas_x_buffer.c186
6 files changed, 1875 insertions, 0 deletions
diff --git a/libraries/evas/src/modules/engines/software_16_x11/Evas_Engine_Software_16_X11.h b/libraries/evas/src/modules/engines/software_16_x11/Evas_Engine_Software_16_X11.h
new file mode 100644
index 0000000..9768f0a
--- /dev/null
+++ b/libraries/evas/src/modules/engines/software_16_x11/Evas_Engine_Software_16_X11.h
@@ -0,0 +1,26 @@
1#ifndef _EVAS_ENGINE_SOFTWARE_16_X11_H
2#define _EVAS_ENGINE_SOFTWARE_16_X11_H
3
4#include <X11/Xlib.h>
5
6typedef struct _Evas_Engine_Info_Software_16_X11 Evas_Engine_Info_Software_16_X11;
7
8struct _Evas_Engine_Info_Software_16_X11
9{
10 /* PRIVATE - don't mess with this baby or evas will poke its tongue out */
11 /* at you and make nasty noises */
12 Evas_Engine_Info magic;
13
14 /* engine specific data & parameters it needs to set up */
15 struct {
16 Display *display;
17 Drawable drawable;
18 int rotation;
19 } info;
20
21 /* non-blocking or blocking mode */
22 Evas_Engine_Render_Mode render_mode;
23};
24#endif
25
26
diff --git a/libraries/evas/src/modules/engines/software_16_x11/Makefile.am b/libraries/evas/src/modules/engines/software_16_x11/Makefile.am
new file mode 100644
index 0000000..812492e
--- /dev/null
+++ b/libraries/evas/src/modules/engines/software_16_x11/Makefile.am
@@ -0,0 +1,47 @@
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-I$(top_srcdir)/src/modules/engines/software_16 \
10@FREETYPE_CFLAGS@ \
11@EINA_CFLAGS@ \
12@PIXMAN_CFLAGS@ \
13@evas_engine_software_16_x11_cflags@
14
15if BUILD_ENGINE_SOFTWARE_16_X11
16
17SOFTWARE_16_X11_SOURCES = \
18evas_engine.c \
19evas_x_buffer.c
20
21SOFTWARE_16_X11_LIBADD = @evas_engine_software_16_x11_libs@
22
23
24includes_HEADERS = Evas_Engine_Software_16_X11.h
25includesdir = $(includedir)/evas-@VMAJ@
26
27if !EVAS_STATIC_BUILD_SOFTWARE_16_X11
28
29pkgdir = $(libdir)/evas/modules/engines/software_16_x11/$(MODULE_ARCH)
30pkg_LTLIBRARIES = module.la
31
32module_la_SOURCES = $(SOFTWARE_16_X11_SOURCES)
33module_la_LIBADD = @EINA_LIBS@ $(SOFTWARE_16_X11_LIBADD) $(top_builddir)/src/lib/libevas.la
34module_la_LDFLAGS = -no-undefined -module -avoid-version
35module_la_LIBTOOLFLAGS = --tag=disable-static
36
37else
38
39noinst_LTLIBRARIES = libevas_engine_software_16_x11.la
40
41libevas_engine_software_16_x11_la_SOURCES = $(SOFTWARE_16_X11_SOURCES)
42libevas_engine_software_16_x11_la_LIBADD = $(SOFTWARE_16_X11_LIBADD)
43
44endif
45endif
46
47EXTRA_DIST = evas_engine.h
diff --git a/libraries/evas/src/modules/engines/software_16_x11/Makefile.in b/libraries/evas/src/modules/engines/software_16_x11/Makefile.in
new file mode 100644
index 0000000..be43dad
--- /dev/null
+++ b/libraries/evas/src/modules/engines/software_16_x11/Makefile.in
@@ -0,0 +1,812 @@
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/software_16_x11
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_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_TRUE@libevas_engine_software_16_x11_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
86am__libevas_engine_software_16_x11_la_SOURCES_DIST = evas_engine.c \
87 evas_x_buffer.c
88@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@am__objects_1 = evas_engine.lo \
89@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@ evas_x_buffer.lo
90@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_TRUE@am_libevas_engine_software_16_x11_la_OBJECTS = $(am__objects_1)
91libevas_engine_software_16_x11_la_OBJECTS = \
92 $(am_libevas_engine_software_16_x11_la_OBJECTS)
93AM_V_lt = $(am__v_lt_$(V))
94am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
95am__v_lt_0 = --silent
96@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_TRUE@am_libevas_engine_software_16_x11_la_rpath =
97@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_FALSE@module_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
98@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_FALSE@ $(top_builddir)/src/lib/libevas.la
99am__module_la_SOURCES_DIST = evas_engine.c evas_x_buffer.c
100@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@am__objects_2 = \
101@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@ module_la-evas_engine.lo \
102@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@ module_la-evas_x_buffer.lo
103@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_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_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_FALSE@am_module_la_rpath = -rpath \
109@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_FALSE@ $(pkgdir)
110DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
111depcomp = $(SHELL) $(top_srcdir)/depcomp
112am__depfiles_maybe = depfiles
113am__mv = mv -f
114COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
115 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
116LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
117 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
118 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
119 $(AM_CFLAGS) $(CFLAGS)
120AM_V_CC = $(am__v_CC_$(V))
121am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
122am__v_CC_0 = @echo " CC " $@;
123AM_V_at = $(am__v_at_$(V))
124am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
125am__v_at_0 = @
126CCLD = $(CC)
127LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
128 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
129 $(AM_LDFLAGS) $(LDFLAGS) -o $@
130AM_V_CCLD = $(am__v_CCLD_$(V))
131am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
132am__v_CCLD_0 = @echo " CCLD " $@;
133AM_V_GEN = $(am__v_GEN_$(V))
134am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
135am__v_GEN_0 = @echo " GEN " $@;
136SOURCES = $(libevas_engine_software_16_x11_la_SOURCES) \
137 $(module_la_SOURCES)
138DIST_SOURCES = $(am__libevas_engine_software_16_x11_la_SOURCES_DIST) \
139 $(am__module_la_SOURCES_DIST)
140am__includes_HEADERS_DIST = Evas_Engine_Software_16_X11.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@
197FGREP = @FGREP@
198FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
199FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
200FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
201FREETYPE_LIBS = @FREETYPE_LIBS@
202FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@
203FRIBIDI_LIBS = @FRIBIDI_LIBS@
204GL_EET_CFLAGS = @GL_EET_CFLAGS@
205GL_EET_LIBS = @GL_EET_LIBS@
206GREP = @GREP@
207HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@
208HARFBUZZ_LIBS = @HARFBUZZ_LIBS@
209INSTALL = @INSTALL@
210INSTALL_DATA = @INSTALL_DATA@
211INSTALL_PROGRAM = @INSTALL_PROGRAM@
212INSTALL_SCRIPT = @INSTALL_SCRIPT@
213INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
214LD = @LD@
215LDFLAGS = @LDFLAGS@
216LIBOBJS = @LIBOBJS@
217LIBS = @LIBS@
218LIBTOOL = @LIBTOOL@
219LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@
220LINEBREAK_LIBS = @LINEBREAK_LIBS@
221LIPO = @LIPO@
222LN_S = @LN_S@
223LTLIBOBJS = @LTLIBOBJS@
224MAKEINFO = @MAKEINFO@
225MKDIR_P = @MKDIR_P@
226MODULE_ARCH = @MODULE_ARCH@
227NM = @NM@
228NMEDIT = @NMEDIT@
229OBJC = @OBJC@
230OBJCDEPMODE = @OBJCDEPMODE@
231OBJCFLAGS = @OBJCFLAGS@
232OBJDUMP = @OBJDUMP@
233OBJEXT = @OBJEXT@
234OTOOL = @OTOOL@
235OTOOL64 = @OTOOL64@
236PACKAGE = @PACKAGE@
237PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
238PACKAGE_NAME = @PACKAGE_NAME@
239PACKAGE_STRING = @PACKAGE_STRING@
240PACKAGE_TARNAME = @PACKAGE_TARNAME@
241PACKAGE_URL = @PACKAGE_URL@
242PACKAGE_VERSION = @PACKAGE_VERSION@
243PATH_SEPARATOR = @PATH_SEPARATOR@
244PIXMAN_CFLAGS = @PIXMAN_CFLAGS@
245PIXMAN_LIBS = @PIXMAN_LIBS@
246PKG_CONFIG = @PKG_CONFIG@
247PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
248PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
249PNG_CFLAGS = @PNG_CFLAGS@
250PNG_LIBS = @PNG_LIBS@
251RANLIB = @RANLIB@
252SDL_CFLAGS = @SDL_CFLAGS@
253SDL_LIBS = @SDL_LIBS@
254SED = @SED@
255SET_MAKE = @SET_MAKE@
256SHELL = @SHELL@
257SHM_OPEN_LINK = @SHM_OPEN_LINK@
258STRIP = @STRIP@
259SVG_CFLAGS = @SVG_CFLAGS@
260SVG_LIBS = @SVG_LIBS@
261VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
262VALGRIND_LIBS = @VALGRIND_LIBS@
263VERSION = @VERSION@
264VMAJ = @VMAJ@
265WIN32_CFLAGS = @WIN32_CFLAGS@
266WIN32_CPPFLAGS = @WIN32_CPPFLAGS@
267XCB_CFLAGS = @XCB_CFLAGS@
268XCB_GL_CFLAGS = @XCB_GL_CFLAGS@
269XCB_GL_LIBS = @XCB_GL_LIBS@
270XCB_LIBS = @XCB_LIBS@
271XEXT_CFLAGS = @XEXT_CFLAGS@
272XEXT_LIBS = @XEXT_LIBS@
273XMKMF = @XMKMF@
274X_CFLAGS = @X_CFLAGS@
275X_EXTRA_LIBS = @X_EXTRA_LIBS@
276X_LIBS = @X_LIBS@
277X_PRE_LIBS = @X_PRE_LIBS@
278abs_builddir = @abs_builddir@
279abs_srcdir = @abs_srcdir@
280abs_top_builddir = @abs_top_builddir@
281abs_top_srcdir = @abs_top_srcdir@
282ac_ct_CC = @ac_ct_CC@
283ac_ct_CXX = @ac_ct_CXX@
284ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
285ac_ct_OBJC = @ac_ct_OBJC@
286altivec_cflags = @altivec_cflags@
287am__include = @am__include@
288am__leading_dot = @am__leading_dot@
289am__quote = @am__quote@
290am__tar = @am__tar@
291am__untar = @am__untar@
292bindir = @bindir@
293build = @build@
294build_alias = @build_alias@
295build_cpu = @build_cpu@
296build_os = @build_os@
297build_vendor = @build_vendor@
298builddir = @builddir@
299datadir = @datadir@
300datarootdir = @datarootdir@
301dlopen_libs = @dlopen_libs@
302docdir = @docdir@
303dvidir = @dvidir@
304edje_cc = @edje_cc@
305efl_doxygen = @efl_doxygen@
306efl_have_doxygen = @efl_have_doxygen@
307evas_engine_buffer_cflags = @evas_engine_buffer_cflags@
308evas_engine_buffer_libs = @evas_engine_buffer_libs@
309evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@
310evas_engine_direct3d_libs = @evas_engine_direct3d_libs@
311evas_engine_directfb_cflags = @evas_engine_directfb_cflags@
312evas_engine_directfb_libs = @evas_engine_directfb_libs@
313evas_engine_fb_cflags = @evas_engine_fb_cflags@
314evas_engine_fb_libs = @evas_engine_fb_libs@
315evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@
316evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@
317evas_engine_gl_common_libs = @evas_engine_gl_common_libs@
318evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@
319evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@
320evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@
321evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@
322evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@
323evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@
324evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@
325evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@
326evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@
327evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@
328evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@
329evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@
330evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@
331evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@
332evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@
333evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@
334evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@
335evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@
336evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@
337evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@
338evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@
339evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@
340evas_engine_software_sdl_cflags = @evas_engine_software_sdl_cflags@
341evas_engine_software_sdl_libs = @evas_engine_software_sdl_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_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@
347evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@
348evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@
349evas_image_loader_edb_libs = @evas_image_loader_edb_libs@
350evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@
351evas_image_loader_eet_libs = @evas_image_loader_eet_libs@
352evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@
353evas_image_loader_generic_libs = @evas_image_loader_generic_libs@
354evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@
355evas_image_loader_gif_libs = @evas_image_loader_gif_libs@
356evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@
357evas_image_loader_ico_libs = @evas_image_loader_ico_libs@
358evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@
359evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@
360evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@
361evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@
362evas_image_loader_png_cflags = @evas_image_loader_png_cflags@
363evas_image_loader_png_libs = @evas_image_loader_png_libs@
364evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@
365evas_image_loader_psd_libs = @evas_image_loader_psd_libs@
366evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@
367evas_image_loader_svg_libs = @evas_image_loader_svg_libs@
368evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@
369evas_image_loader_tga_libs = @evas_image_loader_tga_libs@
370evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@
371evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@
372evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@
373evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@
374evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@
375evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@
376exec_prefix = @exec_prefix@
377have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@
378have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@
379have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@
380have_evas_engine_software_x11 = @have_evas_engine_software_x11@
381have_evas_engine_software_xcb = @have_evas_engine_software_xcb@
382have_evas_engine_software_xlib = @have_evas_engine_software_xlib@
383have_lcov = @have_lcov@
384host = @host@
385host_alias = @host_alias@
386host_cpu = @host_cpu@
387host_os = @host_os@
388host_vendor = @host_vendor@
389htmldir = @htmldir@
390includedir = @includedir@
391infodir = @infodir@
392install_sh = @install_sh@
393libdir = @libdir@
394libexecdir = @libexecdir@
395localedir = @localedir@
396localstatedir = @localstatedir@
397lt_ECHO = @lt_ECHO@
398lt_enable_auto_import = @lt_enable_auto_import@
399mandir = @mandir@
400mkdir_p = @mkdir_p@
401oldincludedir = @oldincludedir@
402pdfdir = @pdfdir@
403pkgconfig_requires_private = @pkgconfig_requires_private@
404prefix = @prefix@
405program_transform_name = @program_transform_name@
406psdir = @psdir@
407pthread_cflags = @pthread_cflags@
408pthread_libs = @pthread_libs@
409release_info = @release_info@
410requirement_evas = @requirement_evas@
411sbindir = @sbindir@
412sharedstatedir = @sharedstatedir@
413srcdir = @srcdir@
414sysconfdir = @sysconfdir@
415target_alias = @target_alias@
416top_build_prefix = @top_build_prefix@
417top_builddir = @top_builddir@
418top_srcdir = @top_srcdir@
419version_info = @version_info@
420MAINTAINERCLEANFILES = Makefile.in
421AM_CPPFLAGS = \
422-I. \
423-I$(top_srcdir)/src/lib \
424-I$(top_srcdir)/src/lib/include \
425-I$(top_srcdir)/src/modules/engines \
426-I$(top_srcdir)/src/modules/engines/software_16 \
427@FREETYPE_CFLAGS@ \
428@EINA_CFLAGS@ \
429@PIXMAN_CFLAGS@ \
430@evas_engine_software_16_x11_cflags@
431
432@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@SOFTWARE_16_X11_SOURCES = \
433@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@evas_engine.c \
434@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@evas_x_buffer.c
435
436@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@SOFTWARE_16_X11_LIBADD = @evas_engine_software_16_x11_libs@
437@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@includes_HEADERS = Evas_Engine_Software_16_X11.h
438@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@includesdir = $(includedir)/evas-@VMAJ@
439@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_FALSE@pkgdir = $(libdir)/evas/modules/engines/software_16_x11/$(MODULE_ARCH)
440@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_FALSE@pkg_LTLIBRARIES = module.la
441@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_FALSE@module_la_SOURCES = $(SOFTWARE_16_X11_SOURCES)
442@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_FALSE@module_la_LIBADD = @EINA_LIBS@ $(SOFTWARE_16_X11_LIBADD) $(top_builddir)/src/lib/libevas.la
443@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_FALSE@module_la_LDFLAGS = -no-undefined -module -avoid-version
444@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_FALSE@module_la_LIBTOOLFLAGS = --tag=disable-static
445@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_TRUE@noinst_LTLIBRARIES = libevas_engine_software_16_x11.la
446@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_TRUE@libevas_engine_software_16_x11_la_SOURCES = $(SOFTWARE_16_X11_SOURCES)
447@BUILD_ENGINE_SOFTWARE_16_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_16_X11_TRUE@libevas_engine_software_16_x11_la_LIBADD = $(SOFTWARE_16_X11_LIBADD)
448EXTRA_DIST = evas_engine.h
449all: all-am
450
451.SUFFIXES:
452.SUFFIXES: .c .lo .o .obj
453$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
454 @for dep in $?; do \
455 case '$(am__configure_deps)' in \
456 *$$dep*) \
457 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
458 && { if test -f $@; then exit 0; else break; fi; }; \
459 exit 1;; \
460 esac; \
461 done; \
462 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/engines/software_16_x11/Makefile'; \
463 $(am__cd) $(top_srcdir) && \
464 $(AUTOMAKE) --gnu src/modules/engines/software_16_x11/Makefile
465.PRECIOUS: Makefile
466Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
467 @case '$?' in \
468 *config.status*) \
469 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
470 *) \
471 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
472 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
473 esac;
474
475$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
476 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
477
478$(top_srcdir)/configure: $(am__configure_deps)
479 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
480$(ACLOCAL_M4): $(am__aclocal_m4_deps)
481 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
482$(am__aclocal_m4_deps):
483
484clean-noinstLTLIBRARIES:
485 -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
486 @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
487 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
488 test "$$dir" != "$$p" || dir=.; \
489 echo "rm -f \"$${dir}/so_locations\""; \
490 rm -f "$${dir}/so_locations"; \
491 done
492install-pkgLTLIBRARIES: $(pkg_LTLIBRARIES)
493 @$(NORMAL_INSTALL)
494 test -z "$(pkgdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdir)"
495 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
496 list2=; for p in $$list; do \
497 if test -f $$p; then \
498 list2="$$list2 $$p"; \
499 else :; fi; \
500 done; \
501 test -z "$$list2" || { \
502 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgdir)'"; \
503 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgdir)"; \
504 }
505
506uninstall-pkgLTLIBRARIES:
507 @$(NORMAL_UNINSTALL)
508 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
509 for p in $$list; do \
510 $(am__strip_dir) \
511 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgdir)/$$f'"; \
512 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgdir)/$$f"; \
513 done
514
515clean-pkgLTLIBRARIES:
516 -test -z "$(pkg_LTLIBRARIES)" || rm -f $(pkg_LTLIBRARIES)
517 @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \
518 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
519 test "$$dir" != "$$p" || dir=.; \
520 echo "rm -f \"$${dir}/so_locations\""; \
521 rm -f "$${dir}/so_locations"; \
522 done
523libevas_engine_software_16_x11.la: $(libevas_engine_software_16_x11_la_OBJECTS) $(libevas_engine_software_16_x11_la_DEPENDENCIES)
524 $(AM_V_CCLD)$(LINK) $(am_libevas_engine_software_16_x11_la_rpath) $(libevas_engine_software_16_x11_la_OBJECTS) $(libevas_engine_software_16_x11_la_LIBADD) $(LIBS)
525module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES)
526 $(AM_V_CCLD)$(module_la_LINK) $(am_module_la_rpath) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS)
527
528mostlyclean-compile:
529 -rm -f *.$(OBJEXT)
530
531distclean-compile:
532 -rm -f *.tab.c
533
534@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_engine.Plo@am__quote@
535@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_x_buffer.Plo@am__quote@
536@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_engine.Plo@am__quote@
537@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_x_buffer.Plo@am__quote@
538
539.c.o:
540@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
541@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
542@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
543@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
544@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
545@am__fastdepCC_FALSE@ $(COMPILE) -c $<
546
547.c.obj:
548@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
549@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
550@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
551@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
552@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
553@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
554
555.c.lo:
556@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
557@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
558@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
559@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
560@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
561@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
562
563module_la-evas_engine.lo: evas_engine.c
564@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
565@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_engine.Tpo $(DEPDIR)/module_la-evas_engine.Plo
566@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
567@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_engine.c' object='module_la-evas_engine.lo' libtool=yes @AMDEPBACKSLASH@
568@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
569@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
570
571module_la-evas_x_buffer.lo: evas_x_buffer.c
572@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_x_buffer.lo -MD -MP -MF $(DEPDIR)/module_la-evas_x_buffer.Tpo -c -o module_la-evas_x_buffer.lo `test -f 'evas_x_buffer.c' || echo '$(srcdir)/'`evas_x_buffer.c
573@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_x_buffer.Tpo $(DEPDIR)/module_la-evas_x_buffer.Plo
574@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
575@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_x_buffer.c' object='module_la-evas_x_buffer.lo' libtool=yes @AMDEPBACKSLASH@
576@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
577@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_x_buffer.lo `test -f 'evas_x_buffer.c' || echo '$(srcdir)/'`evas_x_buffer.c
578
579mostlyclean-libtool:
580 -rm -f *.lo
581
582clean-libtool:
583 -rm -rf .libs _libs
584install-includesHEADERS: $(includes_HEADERS)
585 @$(NORMAL_INSTALL)
586 test -z "$(includesdir)" || $(MKDIR_P) "$(DESTDIR)$(includesdir)"
587 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
588 for p in $$list; do \
589 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
590 echo "$$d$$p"; \
591 done | $(am__base_list) | \
592 while read files; do \
593 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includesdir)'"; \
594 $(INSTALL_HEADER) $$files "$(DESTDIR)$(includesdir)" || exit $$?; \
595 done
596
597uninstall-includesHEADERS:
598 @$(NORMAL_UNINSTALL)
599 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
600 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
601 test -n "$$files" || exit 0; \
602 echo " ( cd '$(DESTDIR)$(includesdir)' && rm -f" $$files ")"; \
603 cd "$(DESTDIR)$(includesdir)" && rm -f $$files
604
605ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
606 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
607 unique=`for i in $$list; do \
608 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
609 done | \
610 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
611 END { if (nonempty) { for (i in files) print i; }; }'`; \
612 mkid -fID $$unique
613tags: TAGS
614
615TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
616 $(TAGS_FILES) $(LISP)
617 set x; \
618 here=`pwd`; \
619 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
620 unique=`for i in $$list; do \
621 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
622 done | \
623 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
624 END { if (nonempty) { for (i in files) print i; }; }'`; \
625 shift; \
626 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
627 test -n "$$unique" || unique=$$empty_fix; \
628 if test $$# -gt 0; then \
629 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
630 "$$@" $$unique; \
631 else \
632 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
633 $$unique; \
634 fi; \
635 fi
636ctags: CTAGS
637CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
638 $(TAGS_FILES) $(LISP)
639 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
640 unique=`for i in $$list; do \
641 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
642 done | \
643 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
644 END { if (nonempty) { for (i in files) print i; }; }'`; \
645 test -z "$(CTAGS_ARGS)$$unique" \
646 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
647 $$unique
648
649GTAGS:
650 here=`$(am__cd) $(top_builddir) && pwd` \
651 && $(am__cd) $(top_srcdir) \
652 && gtags -i $(GTAGS_ARGS) "$$here"
653
654distclean-tags:
655 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
656
657distdir: $(DISTFILES)
658 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
659 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
660 list='$(DISTFILES)'; \
661 dist_files=`for file in $$list; do echo $$file; done | \
662 sed -e "s|^$$srcdirstrip/||;t" \
663 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
664 case $$dist_files in \
665 */*) $(MKDIR_P) `echo "$$dist_files" | \
666 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
667 sort -u` ;; \
668 esac; \
669 for file in $$dist_files; do \
670 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
671 if test -d $$d/$$file; then \
672 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
673 if test -d "$(distdir)/$$file"; then \
674 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
675 fi; \
676 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
677 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
678 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
679 fi; \
680 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
681 else \
682 test -f "$(distdir)/$$file" \
683 || cp -p $$d/$$file "$(distdir)/$$file" \
684 || exit 1; \
685 fi; \
686 done
687check-am: all-am
688check: check-am
689all-am: Makefile $(LTLIBRARIES) $(HEADERS)
690installdirs:
691 for dir in "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"; do \
692 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
693 done
694install: install-am
695install-exec: install-exec-am
696install-data: install-data-am
697uninstall: uninstall-am
698
699install-am: all-am
700 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
701
702installcheck: installcheck-am
703install-strip:
704 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
705 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
706 `test -z '$(STRIP)' || \
707 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
708mostlyclean-generic:
709
710clean-generic:
711
712distclean-generic:
713 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
714 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
715
716maintainer-clean-generic:
717 @echo "This command is intended for maintainers to use"
718 @echo "it deletes files that may require special tools to rebuild."
719 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
720clean: clean-am
721
722clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
723 clean-pkgLTLIBRARIES mostlyclean-am
724
725distclean: distclean-am
726 -rm -rf ./$(DEPDIR)
727 -rm -f Makefile
728distclean-am: clean-am distclean-compile distclean-generic \
729 distclean-tags
730
731dvi: dvi-am
732
733dvi-am:
734
735html: html-am
736
737html-am:
738
739info: info-am
740
741info-am:
742
743install-data-am: install-includesHEADERS install-pkgLTLIBRARIES
744
745install-dvi: install-dvi-am
746
747install-dvi-am:
748
749install-exec-am:
750
751install-html: install-html-am
752
753install-html-am:
754
755install-info: install-info-am
756
757install-info-am:
758
759install-man:
760
761install-pdf: install-pdf-am
762
763install-pdf-am:
764
765install-ps: install-ps-am
766
767install-ps-am:
768
769installcheck-am:
770
771maintainer-clean: maintainer-clean-am
772 -rm -rf ./$(DEPDIR)
773 -rm -f Makefile
774maintainer-clean-am: distclean-am maintainer-clean-generic
775
776mostlyclean: mostlyclean-am
777
778mostlyclean-am: mostlyclean-compile mostlyclean-generic \
779 mostlyclean-libtool
780
781pdf: pdf-am
782
783pdf-am:
784
785ps: ps-am
786
787ps-am:
788
789uninstall-am: uninstall-includesHEADERS uninstall-pkgLTLIBRARIES
790
791.MAKE: install-am install-strip
792
793.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
794 clean-libtool clean-noinstLTLIBRARIES clean-pkgLTLIBRARIES \
795 ctags distclean distclean-compile distclean-generic \
796 distclean-libtool distclean-tags distdir dvi dvi-am html \
797 html-am info info-am install install-am install-data \
798 install-data-am install-dvi install-dvi-am install-exec \
799 install-exec-am install-html install-html-am \
800 install-includesHEADERS install-info install-info-am \
801 install-man install-pdf install-pdf-am install-pkgLTLIBRARIES \
802 install-ps install-ps-am install-strip installcheck \
803 installcheck-am installdirs maintainer-clean \
804 maintainer-clean-generic mostlyclean mostlyclean-compile \
805 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
806 tags uninstall uninstall-am uninstall-includesHEADERS \
807 uninstall-pkgLTLIBRARIES
808
809
810# Tell versions [3.59,3.63) of GNU make to not export all variables.
811# Otherwise a system limit (for SysV at least) may be exceeded.
812.NOEXPORT:
diff --git a/libraries/evas/src/modules/engines/software_16_x11/evas_engine.c b/libraries/evas/src/modules/engines/software_16_x11/evas_engine.c
new file mode 100644
index 0000000..5378972
--- /dev/null
+++ b/libraries/evas/src/modules/engines/software_16_x11/evas_engine.c
@@ -0,0 +1,741 @@
1#include "evas_common.h"
2#include "evas_private.h"
3#include "evas_engine.h"
4#include "Evas_Engine_Software_16_X11.h"
5#include "evas_common_soft16.h"
6
7int _evas_engine_soft16_x11_log_dom = -1;
8/* function tables - filled in later (func and parent func) */
9static Evas_Func func, pfunc;
10/*
11struct xrdb_user
12{
13 time_t last_stat;
14 time_t last_mtime;
15 XrmDatabase db;
16};
17static struct xrdb_user xrdb_user = {0, 0, NULL};
18
19static Eina_Bool
20xrdb_user_query(const char *name, const char *cls, char **type, XrmValue *val)
21{
22 time_t last = xrdb_user.last_stat, now = time(NULL);
23
24 xrdb_user.last_stat = now;
25 if (last != now) // don't stat() more than once every second
26 {
27 struct stat st;
28 const char *home = getenv("HOME");
29 char tmp[PATH_MAX];
30
31 if (!home) goto failed;
32 snprintf(tmp, sizeof(tmp), "%s/.Xdefaults", home);
33 if (stat(tmp, &st) != 0) goto failed;
34 if (xrdb_user.last_mtime != st.st_mtime)
35 {
36 if (xrdb_user.db) XrmDestroyDatabase(xrdb_user.db);
37 xrdb_user.db = XrmGetFileDatabase(tmp);
38 if (!xrdb_user.db) goto failed;
39 xrdb_user.last_mtime = st.st_mtime;
40 }
41 }
42
43 if (!xrdb_user.db) return EINA_FALSE;
44 return XrmGetResource(xrdb_user.db, name, cls, type, val);
45
46 failed:
47 if (xrdb_user.db)
48 {
49 XrmDestroyDatabase(xrdb_user.db);
50 xrdb_user.db = NULL;
51 }
52 xrdb_user.last_mtime = 0;
53 return EINA_FALSE;
54}
55*/
56
57/* engine struct data */
58typedef struct _Render_Engine Render_Engine;
59
60struct _Render_Engine
61{
62 Display *disp;
63 Drawable draw;
64 GC gc;
65 int w, h, rot;
66 Tilebuf *tb;
67 Tilebuf_Rect *rects;
68 Tilebuf_Rect *cur_rect;
69/*
70 XrmDatabase xrdb; // xres - dpi
71 struct { // xres - dpi
72 int dpi; // xres - dpi
73 } xr; // xres - dpi
74 */
75 X_Output_Buffer *shbuf;
76 Soft16_Image *tmp_out; /* used by indirect render, like rotation */
77 Region clip_rects;
78 unsigned char end : 1;
79 unsigned char shm : 1;
80};
81
82/* prototypes we will use here */
83
84static void *eng_info(Evas *e);
85static void eng_info_free(Evas *e, void *info);
86static int eng_setup(Evas *e, void *info);
87static void eng_output_free(void *data);
88static void eng_output_resize(void *data, int w, int h);
89static void eng_output_tile_size_set(void *data, int w, int h);
90static void eng_output_redraws_rect_add(void *data, int x, int y, int w, int h);
91static void eng_output_redraws_rect_del(void *data, int x, int y, int w, int h);
92static void eng_output_redraws_clear(void *data);
93static 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);
94static void eng_output_redraws_next_update_push(void *data, void *surface, int x, int y, int w, int h);
95static void eng_output_flush(void *data);
96static void eng_output_idle_flush(void *data);
97
98/* engine api this module provides */
99static void *
100eng_info(Evas *e)
101{
102 Evas_Engine_Info_Software_16_X11 *info;
103
104 info = calloc(1, sizeof(Evas_Engine_Info_Software_16_X11));
105 if (!info) return NULL;
106 info->magic.magic = rand();
107 info->render_mode = EVAS_RENDER_MODE_BLOCKING;
108 return info;
109 e = NULL;
110}
111
112static void
113eng_info_free(Evas *e __UNUSED__, void *info)
114{
115 Evas_Engine_Info_Software_16_X11 *in;
116 in = (Evas_Engine_Info_Software_16_X11 *)info;
117 free(in);
118}
119
120static void
121_tmp_out_alloc(Render_Engine *re)
122{
123 Tilebuf_Rect *r;
124 unsigned int w = 0, h = 0;
125
126 EINA_INLIST_FOREACH(re->rects, r)
127 {
128 if (r->w > (int)w) w = r->w;
129 if (r->h > (int)h) h = r->h;
130 }
131
132 if (re->tmp_out)
133 {
134 if ((re->tmp_out->cache_entry.w < w) || (re->tmp_out->cache_entry.h < h))
135 {
136 evas_cache_image_drop(&re->tmp_out->cache_entry);
137 re->tmp_out = NULL;
138 }
139 }
140
141 if (!re->tmp_out)
142 {
143 Soft16_Image *im;
144
145 im = (Soft16_Image *) evas_cache_image_empty(evas_common_soft16_image_cache_get());
146 im->cache_entry.flags.alpha = 0;
147 evas_cache_image_surface_alloc(&im->cache_entry, w, h);
148
149 re->tmp_out = im;
150 }
151}
152
153
154static int
155eng_setup(Evas *e, void *in)
156{
157 Render_Engine *re;
158 Evas_Engine_Info_Software_16_X11 *info;
159/* X_Output_Buffer *xob; */
160 XGCValues gcv;
161
162 info = (Evas_Engine_Info_Software_16_X11 *)in;
163 if (!e->engine.data.output)
164 {
165 /* the only check - simplistic, i know, but enough for this
166 * "special purpose" engine. Remember it is meant to be used
167 * for limited power devices that have a 16bit display mode
168 * and no real other acceleration, and high resolution so we
169 * can pre-dither into 16bpp. */
170// if (DefaultDepth(info->info.display,
171// DefaultScreen(info->info.display)) != 16)
172// return;
173 /* do common routine init - we wil at least use it for core
174 * image loading and font loading/glyph rendering & placement */
175 evas_common_cpu_init();
176
177 evas_common_blend_init();
178 evas_common_image_init();
179 evas_common_convert_init();
180 evas_common_scale_init();
181 evas_common_rectangle_init();
182 evas_common_polygon_init();
183 evas_common_line_init();
184 evas_common_font_init();
185 evas_common_draw_init();
186 evas_common_tilebuf_init();
187 evas_common_soft16_image_init();
188
189 /* render engine specific data */
190 re = calloc(1, sizeof(Render_Engine));
191 if (!re)
192 return 0;
193 e->engine.data.output = re;
194 re->disp = info->info.display;
195 re->draw = info->info.drawable;
196 re->gc = XCreateGC(re->disp, re->draw, 0, &gcv);
197 re->w = e->output.w;
198 re->h = e->output.h;
199 re->rot = info->info.rotation;
200 re->tb = evas_common_tilebuf_new(e->output.w, e->output.h);
201 if (re->tb)
202 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
203 }
204 else
205 {
206 /* we changed the info after first init - do a re-eval where
207 * appropriate */
208// if (DefaultDepth(info->info.display,
209// DefaultScreen(info->info.display)) != 16)
210// return;
211 re = e->engine.data.output;
212 if (re->tb) evas_common_tilebuf_free(re->tb);
213 re->disp = info->info.display;
214 re->draw = info->info.drawable;
215 XFreeGC(re->disp, re->gc);
216 re->gc = XCreateGC(re->disp, re->draw, 0, &gcv);
217 re->w = e->output.w;
218 re->h = e->output.h;
219 re->rot = info->info.rotation;
220 re->tb = evas_common_tilebuf_new(e->output.w, e->output.h);
221 if (re->tb)
222 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
223 if (re->tmp_out)
224 {
225 evas_cache_image_drop(&re->tmp_out->cache_entry);
226 re->tmp_out = NULL;
227 }
228 }
229 if (!e->engine.data.output) return 0;
230
231/*
232 {
233 int status;
234 char *type = NULL;
235 XrmValue val;
236
237 re->xr.dpi = 75000; // dpy * 1000
238
239 status = xrdb_user_query("Xft.dpi", "Xft.Dpi", &type, &val);
240 if ((!status) || (!type))
241 {
242 if (!re->xrdb) re->xrdb = XrmGetDatabase(re->disp);
243 if (re->xrdb)
244 status = XrmGetResource(re->xrdb,
245 "Xft.dpi", "Xft.Dpi", &type, &val);
246 }
247
248 if ((status) && (type))
249 {
250 if (!strcmp(type, "String"))
251 {
252 const char *str, *dp;
253
254 str = val.addr;
255 dp = strchr(str, '.');
256 if (!dp) dp = strchr(str, ',');
257
258 if (dp)
259 {
260 int subdpi, len, i;
261 char *buf;
262
263 buf = alloca(dp - str + 1);
264 strncpy(buf, str, dp - str);
265 buf[dp - str] = 0;
266 len = strlen(dp + 1);
267 subdpi = atoi(dp + 1);
268
269 if (len < 3)
270 {
271 for (i = len; i < 3; i++) subdpi *= 10;
272 }
273 else if (len > 3)
274 {
275 for (i = len; i > 3; i--) subdpi /= 10;
276 }
277 re->xr.dpi = atoi(buf) * 1000;
278 }
279 else
280 re->xr.dpi = atoi(str) * 1000;
281 }
282 }
283 evas_common_font_dpi_set(re->xr.dpi / 1000);
284 }
285 */
286
287 /* add a draw context if we dont have one */
288 if (!e->engine.data.context)
289 e->engine.data.context =
290 e->engine.func->context_new(e->engine.data.output);
291 /* check if the display can do shm */
292 re->shm = evas_software_16_x11_x_can_do_shm(re->disp);
293
294 return 1;
295}
296
297static void
298eng_output_free(void *data)
299{
300 Render_Engine *re;
301
302 re = (Render_Engine *)data;
303
304// NOTE: XrmGetDatabase() result is shared per connection, do not free it.
305// if (re->xrdb) XrmDestroyDatabase(re->xrdb);
306
307 if (re->shbuf) evas_software_16_x11_x_output_buffer_free(re->shbuf, 0);
308 if (re->clip_rects) XDestroyRegion(re->clip_rects);
309 if (re->gc) XFreeGC(re->disp, re->gc);
310 if (re->tb) evas_common_tilebuf_free(re->tb);
311 if (re->rects) evas_common_tilebuf_free_render_rects(re->rects);
312 if (re->tmp_out) evas_cache_image_drop(&re->tmp_out->cache_entry);
313 free(re);
314
315 evas_common_font_shutdown();
316 evas_common_image_shutdown();
317 evas_common_soft16_image_shutdown();
318}
319
320static void
321eng_output_resize(void *data, int w, int h)
322{
323 Render_Engine *re;
324
325 re = (Render_Engine *)data;
326
327 if ((re->w == w) && (re->h == h)) return;
328
329 evas_common_tilebuf_free(re->tb);
330 re->w = w;
331 re->h = h;
332 re->tb = evas_common_tilebuf_new(w, h);
333 if (re->tb)
334 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
335 if (re->shbuf)
336 {
337 evas_software_16_x11_x_output_buffer_free(re->shbuf, 0);
338 re->shbuf = NULL;
339 }
340 if (re->clip_rects)
341 {
342 XDestroyRegion(re->clip_rects);
343 re->clip_rects = NULL;
344 }
345 if (re->tmp_out)
346 {
347 evas_cache_image_drop(&re->tmp_out->cache_entry);
348 re->tmp_out = NULL;
349 }
350}
351
352static void
353eng_output_tile_size_set(void *data, int w, int h)
354{
355 Render_Engine *re;
356
357 re = (Render_Engine *)data;
358 evas_common_tilebuf_set_tile_size(re->tb, w, h);
359}
360
361static void
362eng_output_redraws_rect_add(void *data, int x, int y, int w, int h)
363{
364 Render_Engine *re;
365
366 re = (Render_Engine *)data;
367 evas_common_tilebuf_add_redraw(re->tb, x, y, w, h);
368}
369
370static void
371eng_output_redraws_rect_del(void *data, int x, int y, int w, int h)
372{
373 Render_Engine *re;
374
375 re = (Render_Engine *)data;
376 evas_common_tilebuf_del_redraw(re->tb, x, y, w, h);
377}
378
379static void
380eng_output_redraws_clear(void *data)
381{
382 Render_Engine *re;
383
384 re = (Render_Engine *)data;
385 evas_common_tilebuf_clear(re->tb);
386}
387
388static inline void
389_output_buffer_alloc(Render_Engine *re)
390{
391 int w, h;
392 if (re->shbuf) return;
393
394 if ((re->rot == 0) || (re->rot == 180))
395 {
396 w = re->w;
397 h = re->h;
398 }
399 else
400 {
401 w = re->h;
402 h = re->w;
403 }
404
405 re->shbuf = evas_software_16_x11_x_output_buffer_new
406 (re->disp, DefaultVisual(re->disp, DefaultScreen(re->disp)),
407 DefaultDepth(re->disp, DefaultScreen(re->disp)),
408 w, h, 1, NULL);
409}
410
411static void *
412eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, int *cx, int *cy, int *cw, int *ch)
413{
414 Render_Engine *re;
415 Tilebuf_Rect *rect;
416 int ux, uy, uw, uh;
417
418 re = (Render_Engine *)data;
419 if (re->end)
420 {
421 re->end = 0;
422 return NULL;
423 }
424 if (!re->rects)
425 {
426 re->rects = evas_common_tilebuf_get_render_rects(re->tb);
427 if (!re->rects) return NULL;
428
429 re->cur_rect = re->rects;
430 _output_buffer_alloc(re);
431 if (re->rot != 0) _tmp_out_alloc(re); /* grows if required */
432 }
433 if (!re->cur_rect)
434 {
435 if (re->rects) evas_common_tilebuf_free_render_rects(re->rects);
436 re->rects = NULL;
437 return NULL;
438 }
439 rect = re->cur_rect;
440 ux = rect->x; uy = rect->y; uw = rect->w; uh = rect->h;
441 re->cur_rect = (Tilebuf_Rect *)((EINA_INLIST_GET(re->cur_rect))->next);
442 if (!re->cur_rect)
443 {
444 evas_common_tilebuf_free_render_rects(re->rects);
445 re->rects = NULL;
446 re->end = 1;
447 }
448
449 *x = ux; *y = uy; *w = uw; *h = uh;
450 if (re->rot == 0)
451 {
452 *cx = ux; *cy = uy; *cw = uw; *ch = uh;
453 return re->shbuf->im;
454 }
455 else
456 {
457 *cx = 0; *cy = 0; *cw = uw; *ch = uh;
458 return re->tmp_out;
459 }
460}
461
462static void
463_blit_rot_90(Soft16_Image *dst, const Soft16_Image *src,
464 int out_x, int out_y, int w, int h)
465{
466 DATA16 *dp, *sp;
467 int x, y;
468
469 sp = src->pixels;
470 dp = dst->pixels + (out_x +
471 (w + out_y - 1) * dst->stride);
472
473 for (y = 0; y < h; y++)
474 {
475 DATA16 *dp_itr, *sp_itr;
476
477 sp_itr = sp;
478 dp_itr = dp;
479
480 for (x = 0; x < w; x++)
481 {
482 *dp_itr = *sp_itr;
483
484 sp_itr++;
485 dp_itr -= dst->stride;
486 }
487 sp += src->stride;
488 dp++;
489 }
490}
491
492static void
493_blit_rot_180(Soft16_Image *dst, const Soft16_Image *src,
494 int out_x, int out_y, int w, int h)
495{
496 DATA16 *dp, *sp;
497 int x, y;
498
499 sp = src->pixels;
500 dp = dst->pixels + ((w + out_x - 1) +
501 (h + out_y - 1) * dst->stride);
502
503 for (y = 0; y < h; y++)
504 {
505 DATA16 *dp_itr, *sp_itr;
506
507 sp_itr = sp;
508 dp_itr = dp;
509
510 for (x = 0; x < w; x++)
511 {
512 *dp_itr = *sp_itr;
513
514 sp_itr++;
515 dp_itr--;
516 }
517 sp += src->stride;
518 dp -= dst->stride;
519 }
520}
521
522static void
523_blit_rot_270(Soft16_Image *dst, const Soft16_Image *src,
524 int out_x, int out_y, int w, int h)
525{
526 DATA16 *dp, *sp;
527 int x, y;
528
529 sp = src->pixels;
530 dp = dst->pixels + ((h + out_x - 1) +
531 out_y * dst->stride);
532
533 for (y = 0; y < h; y++)
534 {
535 DATA16 *dp_itr, *sp_itr;
536
537 sp_itr = sp;
538 dp_itr = dp;
539
540 for (x = 0; x < w; x++)
541 {
542 *dp_itr = *sp_itr;
543
544 sp_itr++;
545 dp_itr += dst->stride;
546 }
547 sp += src->stride;
548 dp--;
549 }
550}
551
552static void
553_tmp_out_process(Render_Engine *re, int out_x, int out_y, int w, int h)
554{
555 Soft16_Image *d, *s;
556
557 d = re->shbuf->im;
558 s = re->tmp_out;
559
560 if ((w < 1) || (h < 1) ||
561 (out_x >= (int)d->cache_entry.w) || (out_y >= (int)d->cache_entry.h))
562 return;
563
564 if (re->rot == 90)
565 _blit_rot_90(d, s, out_x, out_y, w, h);
566 else if (re->rot == 180)
567 _blit_rot_180(d, s, out_x, out_y, w, h);
568 else if (re->rot == 270)
569 _blit_rot_270(d, s, out_x, out_y, w, h);
570}
571
572static void
573eng_output_redraws_next_update_push(void *data, void *surface __UNUSED__, int x, int y, int w, int h)
574{
575 Render_Engine *re;
576 XRectangle r = { 0, 0, 0, 0 };
577
578 re = (Render_Engine *)data;
579
580 if (!re->clip_rects)
581 re->clip_rects = XCreateRegion();
582
583 if (re->rot == 0)
584 {
585 r.x = x;
586 r.y = y;
587 r.width = w;
588 r.height = h;
589 }
590 else if (re->rot == 90)
591 {
592 r.x = y;
593 r.y = re->w - w - x;
594 r.width = h;
595 r.height = w;
596 }
597 else if (re->rot == 180)
598 {
599 r.x = re->w - w - x;
600 r.y = re->h - h - y;
601 r.width = w;
602 r.height = h;
603 }
604 else if (re->rot == 270)
605 {
606 r.x = re->h - h - y;
607 r.y = x;
608 r.width = h;
609 r.height = w;
610 }
611
612 if (re->rot != 0)
613 _tmp_out_process(re, r.x, r.y, w, h);
614 XUnionRectWithRegion(&r, re->clip_rects, re->clip_rects);
615}
616
617static void
618eng_output_flush(void *data)
619{
620 Render_Engine *re;
621
622 re = (Render_Engine *)data;
623 if (re->clip_rects)
624 {
625 XSetRegion(re->disp, re->gc, re->clip_rects);
626 XDestroyRegion(re->clip_rects);
627 re->clip_rects = NULL;
628 }
629 else return;
630
631 evas_software_16_x11_x_output_buffer_paste
632 (re->shbuf, re->draw, re->gc, 0, 0, re->shbuf->im->cache_entry.w, re->shbuf->im->cache_entry.h, 1);
633 XSetClipMask(re->disp, re->gc, None);
634}
635
636static void
637eng_output_idle_flush(void *data)
638{
639 Render_Engine *re;
640
641 re = (Render_Engine *)data;
642 if (re->shbuf)
643 {
644 evas_software_16_x11_x_output_buffer_free(re->shbuf, 0);
645 re->shbuf = NULL;
646 }
647 if (re->clip_rects)
648 {
649 XDestroyRegion(re->clip_rects);
650 re->clip_rects = NULL;
651 }
652 if (re->tmp_out)
653 {
654 evas_cache_image_drop(&re->tmp_out->cache_entry);
655 re->tmp_out = NULL;
656 }
657}
658
659static Eina_Bool
660eng_canvas_alpha_get(void *data __UNUSED__, void *context __UNUSED__)
661{
662 return EINA_FALSE;
663}
664
665/* module advertising code */
666static int
667module_open(Evas_Module *em)
668{
669 static Eina_Bool xrm_inited = EINA_FALSE;
670 if (!xrm_inited)
671 {
672 xrm_inited = EINA_TRUE;
673 XrmInitialize();
674 }
675
676 if (!em) return 0;
677 /* get whatever engine module we inherit from */
678 if (!_evas_module_engine_inherit(&pfunc, "software_16")) return 0;
679 _evas_engine_soft16_x11_log_dom = eina_log_domain_register
680 ("evas-software_16_x11", EVAS_DEFAULT_LOG_COLOR);
681 if (_evas_engine_soft16_x11_log_dom < 0)
682 {
683 EINA_LOG_ERR("Can not create a module log domain.");
684 return 0;
685 }
686
687 /* store it for later use */
688 func = pfunc;
689 /* now to override methods */
690#define ORD(f) EVAS_API_OVERRIDE(f, &func, eng_)
691 ORD(info);
692 ORD(info_free);
693 ORD(setup);
694 ORD(canvas_alpha_get);
695 ORD(output_free);
696 ORD(output_resize);
697 ORD(output_tile_size_set);
698 ORD(output_redraws_rect_add);
699 ORD(output_redraws_rect_del);
700 ORD(output_redraws_clear);
701 ORD(output_redraws_next_update_get);
702 ORD(output_redraws_next_update_push);
703 ORD(output_flush);
704 ORD(output_idle_flush);
705 /* now advertise out own api */
706 em->functions = (void *)(&func);
707 return 1;
708}
709
710static void
711module_close(Evas_Module *em __UNUSED__)
712{
713 eina_log_domain_unregister(_evas_engine_soft16_x11_log_dom);
714/*
715 if (xrdb_user.db)
716 {
717 XrmDestroyDatabase(xrdb_user.db);
718 xrdb_user.last_stat = 0;
719 xrdb_user.last_mtime = 0;
720 xrdb_user.db = NULL;
721 }
722 */
723}
724
725static Evas_Module_Api evas_modapi =
726{
727 EVAS_MODULE_API_VERSION,
728 "software_16_x11",
729 "none",
730 {
731 module_open,
732 module_close
733 }
734};
735
736EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_16_x11);
737
738#ifndef EVAS_STATIC_BUILD_SOFTWARE_16_X11
739EVAS_EINA_MODULE_DEFINE(engine, software_16_x11);
740#endif
741
diff --git a/libraries/evas/src/modules/engines/software_16_x11/evas_engine.h b/libraries/evas/src/modules/engines/software_16_x11/evas_engine.h
new file mode 100644
index 0000000..066ef50
--- /dev/null
+++ b/libraries/evas/src/modules/engines/software_16_x11/evas_engine.h
@@ -0,0 +1,63 @@
1#ifndef EVAS_ENGINE_H
2#define EVAS_ENGINE_H
3
4#include <X11/Xlib.h>
5#include <X11/Xutil.h>
6#include <X11/Xatom.h>
7#include <X11/extensions/XShm.h>
8#include <X11/Xresource.h> // xres - dpi
9#include <sys/ipc.h>
10#include <sys/shm.h>
11#include "evas_common.h"
12#include "evas_common_soft16.h"
13
14extern int _evas_engine_soft16_x11_log_dom;
15#ifdef ERR
16# undef ERR
17#endif
18#define ERR(...) EINA_LOG_DOM_ERR(_evas_engine_soft16_x11_log_dom, __VA_ARGS__)
19
20#ifdef DBG
21# undef DBG
22#endif
23#define DBG(...) EINA_LOG_DOM_DBG(_evas_engine_soft16_x11_log_dom, __VA_ARGS__)
24
25#ifdef INF
26# undef INF
27#endif
28#define INF(...) EINA_LOG_DOM_INFO(_evas_engine_soft16_x11_log_dom, __VA_ARGS__)
29
30#ifdef WRN
31# undef WRN
32#endif
33#define WRN(...) EINA_LOG_DOM_WARN(_evas_engine_soft16_x11_log_dom, __VA_ARGS__)
34
35#ifdef CRIT
36# undef CRIT
37#endif
38#define CRIT(...) EINA_LOG_DOM_CRIT(_evas_engine_soft16_x11_log_dom, __VA_ARGS__)
39
40typedef struct _X_Output_Buffer X_Output_Buffer;
41
42struct _X_Output_Buffer
43{
44 Soft16_Image *im;
45 Display *display;
46 XImage *xim;
47 XShmSegmentInfo *shm_info;
48 void *data;
49};
50
51/****/
52void evas_software_16_x11_x_init (void);
53
54int evas_software_16_x11_x_can_do_shm (Display *d);
55X_Output_Buffer *evas_software_16_x11_x_output_buffer_new (Display *d, Visual *v, int depth, int w, int h, int try_shm, void *data);
56void evas_software_16_x11_x_output_buffer_free (X_Output_Buffer *xob, int sync);
57void evas_software_16_x11_x_output_buffer_paste (X_Output_Buffer *xob, Drawable d, GC gc, int x, int y, int w, int h, int sync);
58DATA8 *evas_software_16_x11_x_output_buffer_data (X_Output_Buffer *xob, int *bytes_per_line_ret);
59int evas_software_16_x11_x_output_buffer_depth (X_Output_Buffer *xob);
60int evas_software_16_x11_x_output_buffer_byte_order (X_Output_Buffer *xob);
61int evas_software_16_x11_x_output_buffer_bit_order (X_Output_Buffer *xob);
62
63#endif
diff --git a/libraries/evas/src/modules/engines/software_16_x11/evas_x_buffer.c b/libraries/evas/src/modules/engines/software_16_x11/evas_x_buffer.c
new file mode 100644
index 0000000..32784b0
--- /dev/null
+++ b/libraries/evas/src/modules/engines/software_16_x11/evas_x_buffer.c
@@ -0,0 +1,186 @@
1#include "evas_common.h"
2#include "evas_engine.h"
3
4static int _x_err = 0;
5
6int
7evas_software_16_x11_x_can_do_shm(Display *d)
8{
9 static Display *cached_d = NULL;
10 static int cached_result = 0;
11
12 if (d == cached_d) return cached_result;
13 cached_d = d;
14 if (XShmQueryExtension(d))
15 {
16 X_Output_Buffer *xob;
17
18 xob = evas_software_16_x11_x_output_buffer_new
19 (d, DefaultVisual(d, DefaultScreen(d)),
20 DefaultDepth(d, DefaultScreen(d)), 16, 16, 2, NULL);
21 if (!xob)
22 {
23 cached_result = 0;
24 return 0;
25 }
26 evas_software_16_x11_x_output_buffer_free(xob, 1);
27 cached_result = 1;
28 return 1;
29 }
30 cached_result = 0;
31 return 0;
32}
33
34static void
35x_output_tmp_x_err(Display * d __UNUSED__, XErrorEvent * ev __UNUSED__)
36{
37 _x_err = 1;
38 return;
39}
40
41X_Output_Buffer *
42evas_software_16_x11_x_output_buffer_new(Display *d, Visual *v, int depth, int w, int h, int try_shm, void *data)
43{
44 X_Output_Buffer *xob;
45
46 xob = calloc(1, sizeof(X_Output_Buffer));
47 if (!xob) return NULL;
48
49 xob->display = d;
50 xob->xim = NULL;
51 xob->shm_info = NULL;
52
53 if (try_shm > 0)
54 {
55 xob->shm_info = malloc(sizeof(XShmSegmentInfo));
56 if (xob->shm_info)
57 {
58 xob->xim = XShmCreateImage(d, v, depth, ZPixmap, NULL,
59 xob->shm_info, w, h);
60 if (xob->xim)
61 {
62 xob->shm_info->shmid = shmget(IPC_PRIVATE,
63 xob->xim->bytes_per_line *
64 xob->xim->height,
65 IPC_CREAT | 0777);
66 if (xob->shm_info->shmid >= 0)
67 {
68 xob->shm_info->readOnly = False;
69 xob->shm_info->shmaddr = xob->xim->data =
70 shmat(xob->shm_info->shmid, 0, 0);
71 if (xob->shm_info->shmaddr)
72 {
73 XErrorHandler ph;
74
75 XSync(d, False);
76 _x_err = 0;
77 ph = XSetErrorHandler((XErrorHandler)
78 x_output_tmp_x_err);
79 XShmAttach(d, xob->shm_info);
80 XSync(d, False);
81 XSetErrorHandler((XErrorHandler)ph);
82 if (!_x_err)
83 {
84 xob->im = (Soft16_Image *) evas_cache_image_data(evas_common_soft16_image_cache_get(), w, h, (DATA32 *) xob->xim->data, 0, EVAS_COLORSPACE_RGB565_A5P);
85 if (xob->im)
86 xob->im->stride = xob->xim->bytes_per_line / sizeof(DATA16);
87 return xob;
88 }
89 }
90 shmdt(xob->shm_info->shmaddr);
91 shmctl(xob->shm_info->shmid, IPC_RMID, 0);
92 }
93 if (xob->xim) XDestroyImage(xob->xim);
94 xob->xim = NULL;
95 }
96 if (xob->shm_info) free(xob->shm_info);
97 xob->shm_info = NULL;
98 }
99 }
100
101 if (try_shm > 1) return NULL;
102
103 xob->xim = XCreateImage(d, v, depth, ZPixmap, 0, data, w, h, 32, 0);
104 if (!xob->xim)
105 {
106 free(xob);
107 return NULL;
108 }
109
110 xob->data = data;
111
112 if (!xob->xim->data)
113 {
114 xob->xim->data = malloc(xob->xim->bytes_per_line * xob->xim->height);
115 if (!xob->xim->data)
116 {
117 XDestroyImage(xob->xim);
118 free(xob);
119 return NULL;
120 }
121 }
122 if (xob->im)
123 evas_cache_image_drop(&xob->im->cache_entry);
124
125 xob->im = (Soft16_Image *) evas_cache_image_data(evas_common_soft16_image_cache_get(), w, h, (DATA32 *) xob->xim->data, 0, EVAS_COLORSPACE_RGB565_A5P);
126 if (xob->im)
127 xob->im->stride = xob->xim->bytes_per_line / sizeof(DATA16);
128 return xob;
129}
130
131void
132evas_software_16_x11_x_output_buffer_free(X_Output_Buffer *xob, int sync)
133{
134 if (xob->shm_info)
135 {
136 if (sync) XSync(xob->display, False);
137 XShmDetach(xob->display, xob->shm_info);
138 XDestroyImage(xob->xim);
139 shmdt(xob->shm_info->shmaddr);
140 shmctl(xob->shm_info->shmid, IPC_RMID, 0);
141 free(xob->shm_info);
142 }
143 else
144 {
145 if (xob->data) xob->xim->data = NULL;
146 XDestroyImage(xob->xim);
147 }
148 free(xob);
149}
150
151void
152evas_software_16_x11_x_output_buffer_paste(X_Output_Buffer *xob, Drawable d, GC gc, int x, int y, int w, int h, int sync)
153{
154 if (xob->shm_info)
155 {
156 XShmPutImage(xob->display, d, gc, xob->xim, 0, 0, x, y, w, h, False);
157 if (sync) XSync(xob->display, False);
158 }
159 else
160 XPutImage(xob->display, d, gc, xob->xim, 0, 0, x, y, w, h);
161}
162
163DATA8 *
164evas_software_16_x11_x_output_buffer_data(X_Output_Buffer *xob, int *bytes_per_line_ret)
165{
166 if (bytes_per_line_ret) *bytes_per_line_ret = xob->xim->bytes_per_line;
167 return (DATA8*) xob->xim->data;
168}
169
170int
171evas_software_16_x11_x_output_buffer_depth(X_Output_Buffer *xob)
172{
173 return xob->xim->bits_per_pixel;
174}
175
176int
177evas_software_16_x11_x_output_buffer_byte_order(X_Output_Buffer *xob)
178{
179 return xob->xim->byte_order;
180}
181
182int
183evas_software_16_x11_x_output_buffer_bit_order(X_Output_Buffer *xob)
184{
185 return xob->xim->bitmap_bit_order;
186}