aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/evas/src/modules/engines/software_8_x11
diff options
context:
space:
mode:
authorDavid Walter Seikel2012-01-04 18:41:13 +1000
committerDavid Walter Seikel2012-01-04 18:41:13 +1000
commitdd7595a3475407a7fa96a97393bae8c5220e8762 (patch)
treee341e911d7eb911a51684a7412ef7f7c7605d28e /libraries/evas/src/modules/engines/software_8_x11
parentAdd the skeleton. (diff)
downloadSledjHamr-dd7595a3475407a7fa96a97393bae8c5220e8762.zip
SledjHamr-dd7595a3475407a7fa96a97393bae8c5220e8762.tar.gz
SledjHamr-dd7595a3475407a7fa96a97393bae8c5220e8762.tar.bz2
SledjHamr-dd7595a3475407a7fa96a97393bae8c5220e8762.tar.xz
Add the base Enlightenment Foundation Libraries - eina, eet, evas, ecore, embryo, and edje.
Note that embryo wont be used, but I'm not sure yet if you can build edje without it.
Diffstat (limited to 'libraries/evas/src/modules/engines/software_8_x11')
-rw-r--r--libraries/evas/src/modules/engines/software_8_x11/Evas_Engine_Software_8_X11.h38
-rw-r--r--libraries/evas/src/modules/engines/software_8_x11/Makefile.am49
-rw-r--r--libraries/evas/src/modules/engines/software_8_x11/Makefile.in814
-rw-r--r--libraries/evas/src/modules/engines/software_8_x11/evas_engine.c699
-rw-r--r--libraries/evas/src/modules/engines/software_8_x11/evas_engine.h65
-rw-r--r--libraries/evas/src/modules/engines/software_8_x11/evas_x_buffer.c243
6 files changed, 1908 insertions, 0 deletions
diff --git a/libraries/evas/src/modules/engines/software_8_x11/Evas_Engine_Software_8_X11.h b/libraries/evas/src/modules/engines/software_8_x11/Evas_Engine_Software_8_X11.h
new file mode 100644
index 0000000..fac3d8e
--- /dev/null
+++ b/libraries/evas/src/modules/engines/software_8_x11/Evas_Engine_Software_8_X11.h
@@ -0,0 +1,38 @@
1#ifndef _EVAS_ENGINE_SOFTWARE_8_X11_H
2#define _EVAS_ENGINE_SOFTWARE_8_X11_H
3
4#include <xcb/xcb.h>
5
6typedef struct _Evas_Engine_Info_Software_8_X11 Evas_Engine_Info_Software_8_X11;
7
8struct _Evas_Engine_Info_Software_8_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 xcb_connection_t *connection;
17 xcb_drawable_t drawable;
18 xcb_gcontext_t gc;
19 xcb_screen_t *screen;
20
21 unsigned int mask;
22 void *visual;
23 unsigned int colormap;
24 int depth;
25 int rotation;
26
27 int alloc_grayscale : 1;
28 int debug : 1;
29 int shape_dither : 1;
30 int destination_alpha : 1;
31 int track_mask_changes : 1;
32 } info;
33
34 /* non-blocking or blocking mode */
35 Evas_Engine_Render_Mode render_mode;
36};
37
38#endif
diff --git a/libraries/evas/src/modules/engines/software_8_x11/Makefile.am b/libraries/evas/src/modules/engines/software_8_x11/Makefile.am
new file mode 100644
index 0000000..3689577
--- /dev/null
+++ b/libraries/evas/src/modules/engines/software_8_x11/Makefile.am
@@ -0,0 +1,49 @@
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_8 \
10@FREETYPE_CFLAGS@ \
11@PIXMAN_CFLAGS@ \
12@EINA_CFLAGS@ \
13@evas_engine_software_8_x11_cflags@ \
14-I/usr/include/pixman-1
15
16if BUILD_ENGINE_SOFTWARE_8_X11
17
18SOFTWARE_8_X11_SOURCES = \
19evas_engine.c \
20evas_x_buffer.c
21
22SOFTWARE_8_X11_LIBADD = @evas_engine_software_8_x11_libs@
23
24
25includes_HEADERS = Evas_Engine_Software_8_X11.h
26includesdir = $(includedir)/evas-@VMAJ@
27
28if !EVAS_STATIC_BUILD_SOFTWARE_8_X11
29
30pkgdir = $(libdir)/evas/modules/engines/software_8_x11/$(MODULE_ARCH)
31pkg_LTLIBRARIES = module.la
32
33module_la_SOURCES = $(SOFTWARE_8_X11_SOURCES)
34module_la_LIBADD = @EINA_LIBS@ $(SOFTWARE_8_X11_LIBADD) $(top_builddir)/src/lib/libevas.la
35#-lxcb-image -lxcb-shm -lxcb -lpixman-1
36module_la_LDFLAGS = -no-undefined -module -avoid-version
37module_la_LIBTOOLFLAGS = --tag=disable-static
38
39else
40
41noinst_LTLIBRARIES = libevas_engine_software_8_x11.la
42
43libevas_engine_software_8_x11_la_SOURCES = $(SOFTWARE_8_X11_SOURCES)
44libevas_engine_software_8_x11_la_LIBADD = $(SOFTWARE_8_X11_LIBADD)
45
46endif
47endif
48
49EXTRA_DIST = evas_engine.h
diff --git a/libraries/evas/src/modules/engines/software_8_x11/Makefile.in b/libraries/evas/src/modules/engines/software_8_x11/Makefile.in
new file mode 100644
index 0000000..fa88a4d
--- /dev/null
+++ b/libraries/evas/src/modules/engines/software_8_x11/Makefile.in
@@ -0,0 +1,814 @@
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_8_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_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_TRUE@libevas_engine_software_8_x11_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
86am__libevas_engine_software_8_x11_la_SOURCES_DIST = evas_engine.c \
87 evas_x_buffer.c
88@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@am__objects_1 = evas_engine.lo \
89@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@ evas_x_buffer.lo
90@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_TRUE@am_libevas_engine_software_8_x11_la_OBJECTS = $(am__objects_1)
91libevas_engine_software_8_x11_la_OBJECTS = \
92 $(am_libevas_engine_software_8_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_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_TRUE@am_libevas_engine_software_8_x11_la_rpath =
97@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE@module_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
98@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE@ $(top_builddir)/src/lib/libevas.la
99am__module_la_SOURCES_DIST = evas_engine.c evas_x_buffer.c
100@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@am__objects_2 = \
101@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@ module_la-evas_engine.lo \
102@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@ module_la-evas_x_buffer.lo
103@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_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_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE@am_module_la_rpath = -rpath \
109@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_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_8_x11_la_SOURCES) \
137 $(module_la_SOURCES)
138DIST_SOURCES = $(am__libevas_engine_software_8_x11_la_SOURCES_DIST) \
139 $(am__module_la_SOURCES_DIST)
140am__includes_HEADERS_DIST = Evas_Engine_Software_8_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_8 \
427@FREETYPE_CFLAGS@ \
428@PIXMAN_CFLAGS@ \
429@EINA_CFLAGS@ \
430@evas_engine_software_8_x11_cflags@ \
431-I/usr/include/pixman-1
432
433@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@SOFTWARE_8_X11_SOURCES = \
434@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@evas_engine.c \
435@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@evas_x_buffer.c
436
437@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@SOFTWARE_8_X11_LIBADD = @evas_engine_software_8_x11_libs@
438@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@includes_HEADERS = Evas_Engine_Software_8_X11.h
439@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@includesdir = $(includedir)/evas-@VMAJ@
440@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE@pkgdir = $(libdir)/evas/modules/engines/software_8_x11/$(MODULE_ARCH)
441@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE@pkg_LTLIBRARIES = module.la
442@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE@module_la_SOURCES = $(SOFTWARE_8_X11_SOURCES)
443@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE@module_la_LIBADD = @EINA_LIBS@ $(SOFTWARE_8_X11_LIBADD) $(top_builddir)/src/lib/libevas.la
444#-lxcb-image -lxcb-shm -lxcb -lpixman-1
445@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE@module_la_LDFLAGS = -no-undefined -module -avoid-version
446@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_FALSE@module_la_LIBTOOLFLAGS = --tag=disable-static
447@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_TRUE@noinst_LTLIBRARIES = libevas_engine_software_8_x11.la
448@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_TRUE@libevas_engine_software_8_x11_la_SOURCES = $(SOFTWARE_8_X11_SOURCES)
449@BUILD_ENGINE_SOFTWARE_8_X11_TRUE@@EVAS_STATIC_BUILD_SOFTWARE_8_X11_TRUE@libevas_engine_software_8_x11_la_LIBADD = $(SOFTWARE_8_X11_LIBADD)
450EXTRA_DIST = evas_engine.h
451all: all-am
452
453.SUFFIXES:
454.SUFFIXES: .c .lo .o .obj
455$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
456 @for dep in $?; do \
457 case '$(am__configure_deps)' in \
458 *$$dep*) \
459 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
460 && { if test -f $@; then exit 0; else break; fi; }; \
461 exit 1;; \
462 esac; \
463 done; \
464 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/engines/software_8_x11/Makefile'; \
465 $(am__cd) $(top_srcdir) && \
466 $(AUTOMAKE) --gnu src/modules/engines/software_8_x11/Makefile
467.PRECIOUS: Makefile
468Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
469 @case '$?' in \
470 *config.status*) \
471 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
472 *) \
473 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
474 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
475 esac;
476
477$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
478 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
479
480$(top_srcdir)/configure: $(am__configure_deps)
481 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
482$(ACLOCAL_M4): $(am__aclocal_m4_deps)
483 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
484$(am__aclocal_m4_deps):
485
486clean-noinstLTLIBRARIES:
487 -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
488 @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
489 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
490 test "$$dir" != "$$p" || dir=.; \
491 echo "rm -f \"$${dir}/so_locations\""; \
492 rm -f "$${dir}/so_locations"; \
493 done
494install-pkgLTLIBRARIES: $(pkg_LTLIBRARIES)
495 @$(NORMAL_INSTALL)
496 test -z "$(pkgdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdir)"
497 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
498 list2=; for p in $$list; do \
499 if test -f $$p; then \
500 list2="$$list2 $$p"; \
501 else :; fi; \
502 done; \
503 test -z "$$list2" || { \
504 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgdir)'"; \
505 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgdir)"; \
506 }
507
508uninstall-pkgLTLIBRARIES:
509 @$(NORMAL_UNINSTALL)
510 @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \
511 for p in $$list; do \
512 $(am__strip_dir) \
513 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgdir)/$$f'"; \
514 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgdir)/$$f"; \
515 done
516
517clean-pkgLTLIBRARIES:
518 -test -z "$(pkg_LTLIBRARIES)" || rm -f $(pkg_LTLIBRARIES)
519 @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \
520 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
521 test "$$dir" != "$$p" || dir=.; \
522 echo "rm -f \"$${dir}/so_locations\""; \
523 rm -f "$${dir}/so_locations"; \
524 done
525libevas_engine_software_8_x11.la: $(libevas_engine_software_8_x11_la_OBJECTS) $(libevas_engine_software_8_x11_la_DEPENDENCIES)
526 $(AM_V_CCLD)$(LINK) $(am_libevas_engine_software_8_x11_la_rpath) $(libevas_engine_software_8_x11_la_OBJECTS) $(libevas_engine_software_8_x11_la_LIBADD) $(LIBS)
527module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES)
528 $(AM_V_CCLD)$(module_la_LINK) $(am_module_la_rpath) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS)
529
530mostlyclean-compile:
531 -rm -f *.$(OBJEXT)
532
533distclean-compile:
534 -rm -f *.tab.c
535
536@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_engine.Plo@am__quote@
537@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_x_buffer.Plo@am__quote@
538@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_engine.Plo@am__quote@
539@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_x_buffer.Plo@am__quote@
540
541.c.o:
542@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
543@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
544@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
545@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
546@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
547@am__fastdepCC_FALSE@ $(COMPILE) -c $<
548
549.c.obj:
550@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
551@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
552@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
553@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
554@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
555@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
556
557.c.lo:
558@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
559@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
560@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
561@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
562@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
563@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
564
565module_la-evas_engine.lo: evas_engine.c
566@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
567@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_engine.Tpo $(DEPDIR)/module_la-evas_engine.Plo
568@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
569@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_engine.c' object='module_la-evas_engine.lo' libtool=yes @AMDEPBACKSLASH@
570@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
571@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
572
573module_la-evas_x_buffer.lo: evas_x_buffer.c
574@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
575@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_x_buffer.Tpo $(DEPDIR)/module_la-evas_x_buffer.Plo
576@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
577@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_x_buffer.c' object='module_la-evas_x_buffer.lo' libtool=yes @AMDEPBACKSLASH@
578@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
579@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
580
581mostlyclean-libtool:
582 -rm -f *.lo
583
584clean-libtool:
585 -rm -rf .libs _libs
586install-includesHEADERS: $(includes_HEADERS)
587 @$(NORMAL_INSTALL)
588 test -z "$(includesdir)" || $(MKDIR_P) "$(DESTDIR)$(includesdir)"
589 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
590 for p in $$list; do \
591 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
592 echo "$$d$$p"; \
593 done | $(am__base_list) | \
594 while read files; do \
595 echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includesdir)'"; \
596 $(INSTALL_HEADER) $$files "$(DESTDIR)$(includesdir)" || exit $$?; \
597 done
598
599uninstall-includesHEADERS:
600 @$(NORMAL_UNINSTALL)
601 @list='$(includes_HEADERS)'; test -n "$(includesdir)" || list=; \
602 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
603 test -n "$$files" || exit 0; \
604 echo " ( cd '$(DESTDIR)$(includesdir)' && rm -f" $$files ")"; \
605 cd "$(DESTDIR)$(includesdir)" && rm -f $$files
606
607ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
608 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
609 unique=`for i in $$list; do \
610 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
611 done | \
612 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
613 END { if (nonempty) { for (i in files) print i; }; }'`; \
614 mkid -fID $$unique
615tags: TAGS
616
617TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
618 $(TAGS_FILES) $(LISP)
619 set x; \
620 here=`pwd`; \
621 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
622 unique=`for i in $$list; do \
623 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
624 done | \
625 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
626 END { if (nonempty) { for (i in files) print i; }; }'`; \
627 shift; \
628 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
629 test -n "$$unique" || unique=$$empty_fix; \
630 if test $$# -gt 0; then \
631 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
632 "$$@" $$unique; \
633 else \
634 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
635 $$unique; \
636 fi; \
637 fi
638ctags: CTAGS
639CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
640 $(TAGS_FILES) $(LISP)
641 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
642 unique=`for i in $$list; do \
643 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
644 done | \
645 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
646 END { if (nonempty) { for (i in files) print i; }; }'`; \
647 test -z "$(CTAGS_ARGS)$$unique" \
648 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
649 $$unique
650
651GTAGS:
652 here=`$(am__cd) $(top_builddir) && pwd` \
653 && $(am__cd) $(top_srcdir) \
654 && gtags -i $(GTAGS_ARGS) "$$here"
655
656distclean-tags:
657 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
658
659distdir: $(DISTFILES)
660 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
661 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
662 list='$(DISTFILES)'; \
663 dist_files=`for file in $$list; do echo $$file; done | \
664 sed -e "s|^$$srcdirstrip/||;t" \
665 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
666 case $$dist_files in \
667 */*) $(MKDIR_P) `echo "$$dist_files" | \
668 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
669 sort -u` ;; \
670 esac; \
671 for file in $$dist_files; do \
672 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
673 if test -d $$d/$$file; then \
674 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
675 if test -d "$(distdir)/$$file"; then \
676 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
677 fi; \
678 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
679 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
680 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
681 fi; \
682 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
683 else \
684 test -f "$(distdir)/$$file" \
685 || cp -p $$d/$$file "$(distdir)/$$file" \
686 || exit 1; \
687 fi; \
688 done
689check-am: all-am
690check: check-am
691all-am: Makefile $(LTLIBRARIES) $(HEADERS)
692installdirs:
693 for dir in "$(DESTDIR)$(pkgdir)" "$(DESTDIR)$(includesdir)"; do \
694 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
695 done
696install: install-am
697install-exec: install-exec-am
698install-data: install-data-am
699uninstall: uninstall-am
700
701install-am: all-am
702 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
703
704installcheck: installcheck-am
705install-strip:
706 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
707 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
708 `test -z '$(STRIP)' || \
709 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
710mostlyclean-generic:
711
712clean-generic:
713
714distclean-generic:
715 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
716 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
717
718maintainer-clean-generic:
719 @echo "This command is intended for maintainers to use"
720 @echo "it deletes files that may require special tools to rebuild."
721 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
722clean: clean-am
723
724clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
725 clean-pkgLTLIBRARIES mostlyclean-am
726
727distclean: distclean-am
728 -rm -rf ./$(DEPDIR)
729 -rm -f Makefile
730distclean-am: clean-am distclean-compile distclean-generic \
731 distclean-tags
732
733dvi: dvi-am
734
735dvi-am:
736
737html: html-am
738
739html-am:
740
741info: info-am
742
743info-am:
744
745install-data-am: install-includesHEADERS install-pkgLTLIBRARIES
746
747install-dvi: install-dvi-am
748
749install-dvi-am:
750
751install-exec-am:
752
753install-html: install-html-am
754
755install-html-am:
756
757install-info: install-info-am
758
759install-info-am:
760
761install-man:
762
763install-pdf: install-pdf-am
764
765install-pdf-am:
766
767install-ps: install-ps-am
768
769install-ps-am:
770
771installcheck-am:
772
773maintainer-clean: maintainer-clean-am
774 -rm -rf ./$(DEPDIR)
775 -rm -f Makefile
776maintainer-clean-am: distclean-am maintainer-clean-generic
777
778mostlyclean: mostlyclean-am
779
780mostlyclean-am: mostlyclean-compile mostlyclean-generic \
781 mostlyclean-libtool
782
783pdf: pdf-am
784
785pdf-am:
786
787ps: ps-am
788
789ps-am:
790
791uninstall-am: uninstall-includesHEADERS uninstall-pkgLTLIBRARIES
792
793.MAKE: install-am install-strip
794
795.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
796 clean-libtool clean-noinstLTLIBRARIES clean-pkgLTLIBRARIES \
797 ctags distclean distclean-compile distclean-generic \
798 distclean-libtool distclean-tags distdir dvi dvi-am html \
799 html-am info info-am install install-am install-data \
800 install-data-am install-dvi install-dvi-am install-exec \
801 install-exec-am install-html install-html-am \
802 install-includesHEADERS install-info install-info-am \
803 install-man install-pdf install-pdf-am install-pkgLTLIBRARIES \
804 install-ps install-ps-am install-strip installcheck \
805 installcheck-am installdirs maintainer-clean \
806 maintainer-clean-generic mostlyclean mostlyclean-compile \
807 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
808 tags uninstall uninstall-am uninstall-includesHEADERS \
809 uninstall-pkgLTLIBRARIES
810
811
812# Tell versions [3.59,3.63) of GNU make to not export all variables.
813# Otherwise a system limit (for SysV at least) may be exceeded.
814.NOEXPORT:
diff --git a/libraries/evas/src/modules/engines/software_8_x11/evas_engine.c b/libraries/evas/src/modules/engines/software_8_x11/evas_engine.c
new file mode 100644
index 0000000..c8efb24
--- /dev/null
+++ b/libraries/evas/src/modules/engines/software_8_x11/evas_engine.c
@@ -0,0 +1,699 @@
1#include "evas_common.h"
2#include "evas_private.h"
3#include "evas_engine.h"
4#include "Evas_Engine_Software_8_X11.h"
5#include "evas_common_soft8.h"
6#include <pixman.h>
7
8int _evas_engine_soft8_x11_log_dom = -1;
9/* function tables - filled in later (func and parent func) */
10static Evas_Func func, pfunc;
11
12/* engine struct data */
13typedef struct _Render_Engine Render_Engine;
14
15struct _Render_Engine {
16 xcb_connection_t *connection;
17 xcb_drawable_t drawable;
18 xcb_screen_t *screen;
19 unsigned char pal[256];
20 int depth;
21
22 int w, h, rot;
23 Tilebuf *tb;
24 Tilebuf_Rect *rects;
25 Tilebuf_Rect *cur_rect;
26
27 X_Output_Buffer *shbuf;
28 Soft8_Image *tmp_out; /* used by indirect render, like rotation */
29
30 pixman_region16_t *clip_rects;
31 unsigned char end:1;
32 unsigned char shm:1;
33};
34
35/* prototypes we will use here */
36
37static void *eng_info(Evas * e);
38static void eng_info_free(Evas * e, void *info);
39static int eng_setup(Evas * e, void *info);
40static void eng_output_free(void *data);
41static void eng_output_resize(void *data, int w, int h);
42static void eng_output_tile_size_set(void *data, int w, int h);
43static void eng_output_redraws_rect_add(void *data, int x, int y, int w, int h);
44static void eng_output_redraws_rect_del(void *data, int x, int y, int w, int h);
45static void eng_output_redraws_clear(void *data);
46static void *eng_output_redraws_next_update_get(void *data, int *x, int *y,
47 int *w, int *h, int *cx,
48 int *cy, int *cw, int *ch);
49static void eng_output_redraws_next_update_push(void *data, void *surface,
50 int x, int y, int w, int h);
51static void eng_output_flush(void *data);
52static void eng_output_idle_flush(void *data);
53
54/* engine api this module provides */
55static void *
56eng_info(Evas * e)
57{
58 Evas_Engine_Info_Software_8_X11 *info;
59
60 info = calloc(1, sizeof(Evas_Engine_Info_Software_8_X11));
61 if (!info)
62 return NULL;
63 info->magic.magic = rand();
64 info->render_mode = EVAS_RENDER_MODE_BLOCKING;
65 return info;
66 e = NULL;
67}
68
69static void
70eng_info_free(Evas * e __UNUSED__, void *info)
71{
72 Evas_Engine_Info_Software_8_X11 *in;
73 in = (Evas_Engine_Info_Software_8_X11 *) info;
74 free(in);
75}
76
77static void
78_tmp_out_alloc(Render_Engine * re)
79{
80 Tilebuf_Rect *r;
81 unsigned int w = 0, h = 0;
82
83 EINA_INLIST_FOREACH(re->rects, r)
84 {
85 if (r->w > (int)w)
86 w = r->w;
87 if (r->h > (int)h)
88 h = r->h;
89 }
90
91 if (re->tmp_out)
92 {
93 if ((re->tmp_out->cache_entry.w < w)
94 || (re->tmp_out->cache_entry.h < h))
95 {
96 evas_cache_image_drop(&re->tmp_out->cache_entry);
97 re->tmp_out = NULL;
98 }
99 }
100
101 if (!re->tmp_out)
102 {
103 Soft8_Image *im;
104
105 im = (Soft8_Image *)
106 evas_cache_image_empty(evas_common_soft8_image_cache_get());
107 im->cache_entry.flags.alpha = 0;
108 evas_cache_image_surface_alloc(&im->cache_entry, w, h);
109
110 re->tmp_out = im;
111 }
112}
113
114static void
115alloc_colors(Render_Engine * re)
116{
117 xcb_alloc_color_cookie_t color_rq[256];
118 xcb_alloc_color_reply_t *rep;
119 xcb_colormap_t colormap = re->screen->default_colormap;
120
121 int i;
122 for (i = 0; i < 256; i++)
123 color_rq[i] =
124 xcb_alloc_color(re->connection, colormap, i << 8, i << 8, i << 8);
125
126 for (i = 0; i < 256; i++)
127 {
128 rep = xcb_alloc_color_reply(re->connection, color_rq[i], NULL);
129 re->pal[i] = rep->pixel;
130 free(rep);
131 }
132}
133
134static int
135eng_setup(Evas * e, void *in)
136{
137 Render_Engine *re;
138 Evas_Engine_Info_Software_8_X11 *info;
139/* X_Output_Buffer *xob; */
140
141 info = (Evas_Engine_Info_Software_8_X11 *) in;
142 if (!e->engine.data.output)
143 {
144 /* the only check - simplistic, i know, but enough for this
145 * "special purpose" engine. Remember it is meant to be used
146 * for limited power devices that have a 8bit display mode
147 * and no real other acceleration, and high resolution so we
148 * can pre-dither into 8bpp. */
149// if (DefaultDepth(info->info.display,
150// DefaultScreen(info->info.display)) != 8)
151// return;
152 /* do common routine init - we wil at least use it for core
153 * image loading and font loading/glyph rendering & placement */
154 evas_common_cpu_init();
155
156 evas_common_blend_init();
157 evas_common_image_init();
158 evas_common_convert_init();
159 evas_common_scale_init();
160 evas_common_rectangle_init();
161 evas_common_polygon_init();
162 evas_common_line_init();
163 evas_common_font_init();
164 evas_common_draw_init();
165 evas_common_tilebuf_init();
166 evas_common_soft8_image_init();
167
168 /* render engine specific data */
169 re = calloc(1, sizeof(Render_Engine));
170 if (!re)
171 return 0;
172 e->engine.data.output = re;
173 re->connection = info->info.connection;
174 re->screen = info->info.screen;
175 re->drawable = info->info.drawable;
176 re->depth = info->info.depth;
177 re->w = e->output.w;
178 re->h = e->output.h;
179 re->rot = info->info.rotation;
180 re->tb = evas_common_tilebuf_new(e->output.w, e->output.h);
181 if (re->tb)
182 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
183 alloc_colors(re);
184 }
185 else
186 {
187 /* we changed the info after first init - do a re-eval where
188 * appropriate */
189 re = e->engine.data.output;
190 if (re->tb)
191 evas_common_tilebuf_free(re->tb);
192 re->connection = info->info.connection;
193 re->screen = info->info.screen;
194 re->drawable = info->info.drawable;
195 re->w = e->output.w;
196 re->h = e->output.h;
197 re->rot = info->info.rotation;
198 re->tb = evas_common_tilebuf_new(e->output.w, e->output.h);
199 if (re->tb)
200 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
201 if (re->tmp_out)
202 {
203 evas_cache_image_drop(&re->tmp_out->cache_entry);
204 re->tmp_out = NULL;
205 }
206 alloc_colors(re);
207 }
208 if (!e->engine.data.output)
209 return 0;
210
211 /* add a draw context if we dont have one */
212 if (!e->engine.data.context)
213 e->engine.data.context =
214 e->engine.func->context_new(e->engine.data.output);
215 /* check if the display can do shm */
216 re->shm = evas_software_8_x11_x_can_do_shm(re->connection, re->screen);
217
218 return 1;
219}
220
221static void
222eng_output_free(void *data)
223{
224 Render_Engine *re;
225
226 re = (Render_Engine *) data;
227 if (re->shbuf)
228 evas_software_8_x11_x_output_buffer_free(re->shbuf, 0);
229 if (re->clip_rects)
230 {
231 pixman_region_fini(re->clip_rects);
232 free(re->clip_rects);
233 re->clip_rects = NULL;
234 }
235 if (re->tb)
236 evas_common_tilebuf_free(re->tb);
237 if (re->rects)
238 evas_common_tilebuf_free_render_rects(re->rects);
239 if (re->tmp_out)
240 evas_cache_image_drop(&re->tmp_out->cache_entry);
241 free(re);
242
243 evas_common_font_shutdown();
244 evas_common_image_shutdown();
245 evas_common_soft8_image_shutdown();
246}
247
248static void
249eng_output_resize(void *data, int w, int h)
250{
251 Render_Engine *re;
252
253 re = (Render_Engine *) data;
254
255 if ((re->w == w) && (re->h == h))
256 return;
257
258 evas_common_tilebuf_free(re->tb);
259 re->w = w;
260 re->h = h;
261 re->tb = evas_common_tilebuf_new(w, h);
262 if (re->tb)
263 evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE);
264 if (re->shbuf)
265 {
266 evas_software_8_x11_x_output_buffer_free(re->shbuf, 0);
267 re->shbuf = NULL;
268 }
269 if (re->clip_rects)
270 {
271 pixman_region_fini(re->clip_rects);
272 free(re->clip_rects);
273 re->clip_rects = NULL;
274 }
275
276 if (re->tmp_out)
277 {
278 evas_cache_image_drop(&re->tmp_out->cache_entry);
279 re->tmp_out = NULL;
280 }
281}
282
283static void
284eng_output_tile_size_set(void *data, int w, int h)
285{
286 Render_Engine *re;
287
288 re = (Render_Engine *) data;
289 evas_common_tilebuf_set_tile_size(re->tb, w, h);
290}
291
292static void
293eng_output_redraws_rect_add(void *data, int x, int y, int w, int h)
294{
295 Render_Engine *re;
296
297 re = (Render_Engine *) data;
298 evas_common_tilebuf_add_redraw(re->tb, x, y, w, h);
299}
300
301static void
302eng_output_redraws_rect_del(void *data, int x, int y, int w, int h)
303{
304 Render_Engine *re;
305
306 re = (Render_Engine *) data;
307 evas_common_tilebuf_del_redraw(re->tb, x, y, w, h);
308}
309
310static void
311eng_output_redraws_clear(void *data)
312{
313 Render_Engine *re;
314
315 re = (Render_Engine *) data;
316 evas_common_tilebuf_clear(re->tb);
317}
318
319static inline void
320_output_buffer_alloc(Render_Engine * re)
321{
322 int w, h;
323 if (re->shbuf)
324 return;
325
326 if ((re->rot == 0) || (re->rot == 180))
327 {
328 w = re->w;
329 h = re->h;
330 }
331 else
332 {
333 w = re->h;
334 h = re->w;
335 }
336
337 re->shbuf = evas_software_8_x11_x_output_buffer_new
338 (re->connection, re->screen, re->depth, re->pal, w, h, 1, NULL);
339
340 re->shbuf->drawable = re->drawable;
341 re->shbuf->screen = re->screen;
342 if (re->shbuf->gc)
343 {
344 xcb_free_gc(re->shbuf->connection, re->shbuf->gc);
345 re->shbuf->gc = 0;
346 }
347
348 re->shbuf->gc = xcb_generate_id(re->shbuf->connection);
349 xcb_create_gc(re->shbuf->connection, re->shbuf->gc, re->shbuf->drawable, 0,
350 NULL);
351}
352
353static void *
354eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h,
355 int *cx, int *cy, int *cw, int *ch)
356{
357 Render_Engine *re;
358 Tilebuf_Rect *rect;
359 int ux, uy, uw, uh;
360
361 re = (Render_Engine *) data;
362 if (re->end)
363 {
364 re->end = 0;
365 return NULL;
366 }
367 if (!re->rects)
368 {
369 re->rects = evas_common_tilebuf_get_render_rects(re->tb);
370 if (!re->rects)
371 return NULL;
372
373 re->cur_rect = re->rects;
374 _output_buffer_alloc(re);
375 if (re->rot != 0)
376 _tmp_out_alloc(re); /* grows if required */
377 }
378 if (!re->cur_rect)
379 {
380 if (re->rects)
381 evas_common_tilebuf_free_render_rects(re->rects);
382 re->rects = NULL;
383 return NULL;
384 }
385 rect = re->cur_rect;
386 ux = rect->x;
387 uy = rect->y;
388 uw = rect->w;
389 uh = rect->h;
390 re->cur_rect = (Tilebuf_Rect *) ((EINA_INLIST_GET(re->cur_rect))->next);
391 if (!re->cur_rect)
392 {
393 evas_common_tilebuf_free_render_rects(re->rects);
394 re->rects = NULL;
395 re->end = 1;
396 }
397
398 *x = ux;
399 *y = uy;
400 *w = uw;
401 *h = uh;
402 if (re->rot == 0)
403 {
404 *cx = ux;
405 *cy = uy;
406 *cw = uw;
407 *ch = uh;
408 return re->shbuf->im;
409 }
410 else
411 {
412 *cx = 0;
413 *cy = 0;
414 *cw = uw;
415 *ch = uh;
416 return re->tmp_out;
417 }
418}
419
420static void
421_blit_rot_90(Soft8_Image * dst, const Soft8_Image * src,
422 int out_x, int out_y, int w, int h)
423{
424 DATA8 *dp, *sp;
425 int x, y;
426
427 sp = src->pixels;
428 dp = dst->pixels + (out_x + (w + out_y - 1) * dst->stride);
429
430 for (y = 0; y < h; y++)
431 {
432 DATA8 *dp_itr, *sp_itr;
433
434 sp_itr = sp;
435 dp_itr = dp;
436
437 for (x = 0; x < w; x++)
438 {
439 *dp_itr = *sp_itr;
440
441 sp_itr++;
442 dp_itr -= dst->stride;
443 }
444 sp += src->stride;
445 dp++;
446 }
447}
448
449static void
450_blit_rot_180(Soft8_Image * dst, const Soft8_Image * src,
451 int out_x, int out_y, int w, int h)
452{
453 DATA8 *dp, *sp;
454 int x, y;
455
456 sp = src->pixels;
457 dp = dst->pixels + ((w + out_x - 1) + (h + out_y - 1) * dst->stride);
458
459 for (y = 0; y < h; y++)
460 {
461 DATA8 *dp_itr, *sp_itr;
462
463 sp_itr = sp;
464 dp_itr = dp;
465
466 for (x = 0; x < w; x++)
467 {
468 *dp_itr = *sp_itr;
469
470 sp_itr++;
471 dp_itr--;
472 }
473 sp += src->stride;
474 dp -= dst->stride;
475 }
476}
477
478static void
479_blit_rot_270(Soft8_Image * dst, const Soft8_Image * src,
480 int out_x, int out_y, int w, int h)
481{
482 DATA8 *dp, *sp;
483 int x, y;
484
485 sp = src->pixels;
486 dp = dst->pixels + ((h + out_x - 1) + out_y * dst->stride);
487
488 for (y = 0; y < h; y++)
489 {
490 DATA8 *dp_itr, *sp_itr;
491
492 sp_itr = sp;
493 dp_itr = dp;
494
495 for (x = 0; x < w; x++)
496 {
497 *dp_itr = *sp_itr;
498
499 sp_itr++;
500 dp_itr += dst->stride;
501 }
502 sp += src->stride;
503 dp--;
504 }
505}
506
507static void
508_tmp_out_process(Render_Engine * re, int out_x, int out_y, int w, int h)
509{
510 Soft8_Image *d, *s;
511
512 d = re->shbuf->im;
513 s = re->tmp_out;
514
515 if ((w < 1) || (h < 1) ||
516 (out_x >= (int)d->cache_entry.w) ||
517 (out_y >= (int)d->cache_entry.h))
518 return;
519
520 if (re->rot == 90)
521 _blit_rot_90(d, s, out_x, out_y, w, h);
522 else if (re->rot == 180)
523 _blit_rot_180(d, s, out_x, out_y, w, h);
524 else if (re->rot == 270)
525 _blit_rot_270(d, s, out_x, out_y, w, h);
526}
527
528static void
529eng_output_redraws_next_update_push(void *data, void *surface __UNUSED__, int x,
530 int y, int w, int h)
531{
532 Render_Engine *re;
533 struct {
534 int x, y, width, height;
535 } r =
536 {
537 0, 0, 0, 0};
538
539 re = (Render_Engine *) data;
540
541 if (!re->clip_rects)
542 {
543 re->clip_rects =
544 (pixman_region16_t *) malloc(sizeof(pixman_region16_t));
545 pixman_region_init(re->clip_rects);
546 }
547
548 if (re->rot == 0)
549 {
550 r.x = x;
551 r.y = y;
552 r.width = w;
553 r.height = h;
554 }
555 else if (re->rot == 90)
556 {
557 r.x = y;
558 r.y = re->w - w - x;
559 r.width = h;
560 r.height = w;
561 }
562 else if (re->rot == 180)
563 {
564 r.x = re->w - w - x;
565 r.y = re->h - h - y;
566 r.width = w;
567 r.height = h;
568 }
569 else if (re->rot == 270)
570 {
571 r.x = re->h - h - y;
572 r.y = x;
573 r.width = h;
574 r.height = w;
575 }
576
577 if (re->rot != 0)
578 _tmp_out_process(re, r.x, r.y, w, h);
579
580 pixman_region_union_rect(re->clip_rects, re->clip_rects,
581 r.x, r.y, r.width, r.height);
582}
583
584static void
585eng_output_flush(void *data)
586{
587 Render_Engine *re;
588
589 re = (Render_Engine *) data;
590
591 if (re->clip_rects)
592 {
593 re->shbuf->drawable = re->drawable;
594 {
595 int i;
596 pixman_box16_t *rects =
597 pixman_region_rectangles(re->clip_rects, NULL);
598 for (i = 0; i < pixman_region_n_rects(re->clip_rects); i++, rects++)
599 evas_software_8_x11_x_output_buffer_paste
600 (re->shbuf, re->drawable, re->shbuf->gc, rects->x1, rects->y1,
601 rects->x2 - rects->x1, rects->y2 - rects->y1, 1);
602 }
603
604 pixman_region_fini(re->clip_rects);
605 free(re->clip_rects);
606 re->clip_rects = NULL;
607 }
608}
609
610static void
611eng_output_idle_flush(void *data)
612{
613 Render_Engine *re;
614
615 re = (Render_Engine *) data;
616 if (re->shbuf)
617 {
618 evas_software_8_x11_x_output_buffer_free(re->shbuf, 0);
619 re->shbuf = NULL;
620 }
621 if (re->clip_rects)
622 {
623 pixman_region_fini(re->clip_rects);
624 free(re->clip_rects);
625 re->clip_rects = NULL;
626 }
627 if (re->tmp_out)
628 {
629 evas_cache_image_drop(&re->tmp_out->cache_entry);
630 re->tmp_out = NULL;
631 }
632}
633
634static Eina_Bool
635eng_canvas_alpha_get(void *data __UNUSED__, void *context __UNUSED__)
636{
637 return EINA_FALSE;
638}
639
640/* module advertising code */
641static int
642module_open(Evas_Module * em)
643{
644 if (!em)
645 return 0;
646 /* get whatever engine module we inherit from */
647 if (!_evas_module_engine_inherit(&pfunc, "software_8"))
648 return 0;
649 _evas_engine_soft8_x11_log_dom = eina_log_domain_register
650 ("evas-software_8_x11", EVAS_DEFAULT_LOG_COLOR);
651 if (_evas_engine_soft8_x11_log_dom < 0)
652 {
653 EINA_LOG_ERR("Can not create a module log domain.");
654 return 0;
655 }
656
657 /* store it for later use */
658 func = pfunc;
659 /* now to override methods */
660#define ORD(f) EVAS_API_OVERRIDE(f, &func, eng_)
661 ORD(info);
662 ORD(info_free);
663 ORD(setup);
664 ORD(canvas_alpha_get);
665 ORD(output_free);
666 ORD(output_resize);
667 ORD(output_tile_size_set);
668 ORD(output_redraws_rect_add);
669 ORD(output_redraws_rect_del);
670 ORD(output_redraws_clear);
671 ORD(output_redraws_next_update_get);
672 ORD(output_redraws_next_update_push);
673 ORD(output_flush);
674 ORD(output_idle_flush);
675 /* now advertise out own api */
676 em->functions = (void *)(&func);
677 return 1;
678}
679
680static void
681module_close(Evas_Module * em __UNUSED__)
682{
683 eina_log_domain_unregister(_evas_engine_soft8_x11_log_dom);
684}
685
686static Evas_Module_Api evas_modapi = {
687 EVAS_MODULE_API_VERSION,
688 "software_8_x11",
689 "none",
690 {
691 module_open,
692 module_close}
693};
694
695EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_8_x11);
696
697#ifndef EVAS_STATIC_BUILD_SOFTWARE_8_X11
698EVAS_EINA_MODULE_DEFINE(engine, software_8_x11);
699#endif
diff --git a/libraries/evas/src/modules/engines/software_8_x11/evas_engine.h b/libraries/evas/src/modules/engines/software_8_x11/evas_engine.h
new file mode 100644
index 0000000..1fa12df
--- /dev/null
+++ b/libraries/evas/src/modules/engines/software_8_x11/evas_engine.h
@@ -0,0 +1,65 @@
1#ifndef EVAS_ENGINE_H
2#define EVAS_ENGINE_H
3
4#include <sys/ipc.h>
5#include <sys/shm.h>
6
7#include <xcb/xcb.h>
8#include <xcb/shm.h>
9#include <xcb/xcb_image.h>
10
11#include "evas_common.h"
12#include "evas_common_soft8.h"
13
14extern int _evas_engine_soft8_x11_log_dom;
15#ifdef ERR
16# undef ERR
17#endif
18#define ERR(...) EINA_LOG_DOM_ERR(_evas_engine_soft8_x11_log_dom, __VA_ARGS__)
19
20#ifdef DBG
21# undef DBG
22#endif
23#define DBG(...) EINA_LOG_DOM_DBG(_evas_engine_soft8_x11_log_dom, __VA_ARGS__)
24
25#ifdef INF
26# undef INF
27#endif
28#define INF(...) EINA_LOG_DOM_INFO(_evas_engine_soft8_x11_log_dom, __VA_ARGS__)
29
30#ifdef WRN
31# undef WRN
32#endif
33#define WRN(...) EINA_LOG_DOM_WARN(_evas_engine_soft8_x11_log_dom, __VA_ARGS__)
34
35#ifdef CRIT
36# undef CRIT
37#endif
38#define CRIT(...) EINA_LOG_DOM_CRIT(_evas_engine_soft8_x11_log_dom, __VA_ARGS__)
39
40typedef struct _X_Output_Buffer X_Output_Buffer;
41
42struct _X_Output_Buffer
43{
44 Soft8_Image *im;
45 xcb_connection_t *connection;
46 xcb_screen_t *screen;
47 xcb_image_t *xim;
48 xcb_drawable_t drawable;
49 xcb_gcontext_t gc;
50 xcb_shm_segment_info_t *shm_info;
51 unsigned char *pal;
52 void *data;
53};
54
55/****/
56int evas_software_8_x11_x_can_do_shm (xcb_connection_t *c, xcb_screen_t *screen);
57X_Output_Buffer *evas_software_8_x11_x_output_buffer_new (xcb_connection_t *, xcb_screen_t *screen, int depth, unsigned char *pal, int w, int h, int try_shm, void *data);
58void evas_software_8_x11_x_output_buffer_free (X_Output_Buffer *xob, int sync);
59void evas_software_8_x11_x_output_buffer_paste (X_Output_Buffer *xob, xcb_drawable_t d, xcb_gcontext_t gc, int x, int y, int w, int h, int sync);
60DATA8 *evas_software_8_x11_x_output_buffer_data (X_Output_Buffer *xob, int *bytes_per_line_ret);
61int evas_software_8_x11_x_output_buffer_depth (X_Output_Buffer *xob);
62int evas_software_8_x11_x_output_buffer_byte_order (X_Output_Buffer *xob);
63int evas_software_8_x11_x_output_buffer_bit_order (X_Output_Buffer *xob);
64
65#endif
diff --git a/libraries/evas/src/modules/engines/software_8_x11/evas_x_buffer.c b/libraries/evas/src/modules/engines/software_8_x11/evas_x_buffer.c
new file mode 100644
index 0000000..a2c40b1
--- /dev/null
+++ b/libraries/evas/src/modules/engines/software_8_x11/evas_x_buffer.c
@@ -0,0 +1,243 @@
1#include "evas_common.h"
2#include "evas_engine.h"
3
4static int _xcb_err = 0;
5
6int
7evas_software_8_x11_x_can_do_shm(xcb_connection_t * c, xcb_screen_t * screen)
8{
9 static xcb_connection_t *cached_c = NULL;
10 static int cached_result = 0;
11
12 if (c == cached_c)
13 return cached_result;
14 cached_c = c;
15
16 if (xcb_get_extension_data(c, &xcb_shm_id))
17 {
18 X_Output_Buffer *xob;
19
20 xob = evas_software_8_x11_x_output_buffer_new
21 (c, screen, screen->root_depth, (unsigned char *)NULL,
22 16, 16, 2, NULL);
23 if (!xob)
24 {
25 cached_result = 0;
26 return 0;
27 }
28 evas_software_8_x11_x_output_buffer_free(xob, 1);
29 cached_result = 1;
30 return 1;
31 }
32 cached_result = 0;
33 return 0;
34}
35
36X_Output_Buffer *
37evas_software_8_x11_x_output_buffer_new(xcb_connection_t * c,
38 xcb_screen_t * s,
39 int depth,
40 unsigned char *pal,
41 int w, int h, int try_shm, void *data)
42{
43 X_Output_Buffer *xob;
44
45 xob = calloc(1, sizeof(X_Output_Buffer));
46 if (!xob)
47 return NULL;
48
49 xob->connection = c;
50 xob->screen = s;
51 xob->xim = NULL;
52 xob->shm_info = NULL;
53 xob->pal = pal;
54
55 if (try_shm > 0)
56 {
57 xob->shm_info = malloc(sizeof(xcb_shm_segment_info_t));
58 if (xob->shm_info)
59 {
60 xob->shm_info->shmseg = xcb_generate_id(c);
61 xob->xim = xcb_image_create_native(c, w, h,
62 XCB_IMAGE_FORMAT_Z_PIXMAP,
63 depth, NULL, ~0, NULL);
64 if (xob->xim)
65 {
66 int shmid = shmget
67 (IPC_PRIVATE, xob->xim->size, IPC_CREAT | 0777);
68
69 if (shmid >= 0)
70 {
71 xob->shm_info->shmid = shmid;
72 xob->shm_info->shmaddr = xob->xim->data =
73 shmat(xob->shm_info->shmid, 0, 0);
74
75 if (xob->shm_info->shmaddr)
76 {
77 /*
78 * FIXME: no error mechanism
79 */
80
81 /* XErrorHandler ph; */
82 /* EventHandlers eh; */
83
84 free(xcb_get_input_focus_reply
85 (c, xcb_get_input_focus_unchecked(c), NULL));
86 _xcb_err = 0;
87 /* ph = XSetErrorHandler((XErrorHandler) */
88 /* x_output_tmp_x_err); */
89 xcb_shm_attach(c,
90 xob->shm_info->shmseg,
91 xob->shm_info->shmid, 0);
92 free(xcb_get_input_focus_reply
93 (c, xcb_get_input_focus_unchecked(c), NULL));
94 /* XSetErrorHandler((XErrorHandler)ph); */
95 if (!_xcb_err)
96 {
97 xob->im =
98 (Soft8_Image *)
99 evas_cache_image_data
100 (evas_common_soft8_image_cache_get(), w, h,
101 (DATA32 *) xob->xim->data, 0,
102 EVAS_COLORSPACE_GRY8);
103
104 if (xob->im)
105 xob->im->stride =
106 xob->xim->stride / sizeof(DATA8);
107 return xob;
108 }
109 }
110 shmdt(xob->shm_info->shmaddr);
111 shmctl(xob->shm_info->shmid, IPC_RMID, 0);
112 }
113 if (xob->xim)
114 xcb_image_destroy(xob->xim);
115 xob->xim = NULL;
116 }
117 if (xob->shm_info)
118 free(xob->shm_info);
119 xob->shm_info = NULL;
120 }
121 }
122
123 if (try_shm > 1)
124 return NULL;
125
126 xob->xim = xcb_image_create_native(c, w, h, XCB_IMAGE_FORMAT_Z_PIXMAP,
127 depth, NULL, ~0, NULL);
128 if (!xob->xim)
129 {
130 free(xob);
131 return NULL;
132 }
133
134 xob->data = data;
135
136 if (!xob->xim->data)
137 {
138 xob->xim->data = malloc(xob->xim->stride * xob->xim->height);
139 if (!xob->xim->data)
140 {
141 xcb_image_destroy(xob->xim);
142 free(xob);
143 return NULL;
144 }
145 }
146 if (xob->im)
147 evas_cache_image_drop(&xob->im->cache_entry);
148
149 xob->im =
150 (Soft8_Image *)
151 evas_cache_image_data(evas_common_soft8_image_cache_get(), w, h,
152 (DATA32 *) xob->xim->data, 0,
153 EVAS_COLORSPACE_GRY8);
154 if (xob->im)
155 xob->im->stride = xob->xim->stride / sizeof(DATA8);
156 return xob;
157}
158
159void
160evas_software_8_x11_x_output_buffer_free(X_Output_Buffer * xob, int sync)
161{
162 if (xob->shm_info)
163 {
164 if (sync)
165 free(xcb_get_input_focus_reply(xob->connection,
166 xcb_get_input_focus_unchecked(xob->
167 connection),
168 NULL));
169 xcb_shm_detach(xob->connection, xob->shm_info->shmseg);
170 xcb_image_destroy(xob->xim);
171 shmdt(xob->shm_info->shmaddr);
172 shmctl(xob->shm_info->shmid, IPC_RMID, 0);
173 free(xob->shm_info);
174 }
175 else
176 {
177 if (xob->data)
178 xob->xim->data = NULL;
179 free(xob->xim->data);
180 xcb_image_destroy(xob->xim);
181 }
182 free(xob);
183}
184
185void
186evas_software_8_x11_x_output_buffer_paste(X_Output_Buffer * xob,
187 xcb_drawable_t d,
188 xcb_gcontext_t gc,
189 int x, int y, int w, int h, int sync)
190{
191 unsigned char *data;
192 int i, j;
193
194 if (xob->shm_info)
195 {
196 for (i = y; i < y + h; i++)
197 {
198 data = xob->xim->data + i * xob->xim->width + x;
199 for (j = x; j < x + w; j++, data++)
200 *data = xob->pal[*data];
201 }
202
203 xcb_image_shm_put(xob->connection, d, gc,
204 xob->xim, *xob->shm_info, x, y, x, y, w, h, 0);
205
206 if (sync)
207 free(xcb_get_input_focus_reply(xob->connection,
208 xcb_get_input_focus_unchecked(xob->
209 connection),
210 NULL));
211 }
212 else
213 {
214 xcb_image_put(xob->connection, d, gc, xob->xim, x, y, 0);
215 }
216}
217
218DATA8 *
219evas_software_8_x11_x_output_buffer_data(X_Output_Buffer * xob,
220 int *bytes_per_line_ret)
221{
222 if (bytes_per_line_ret)
223 *bytes_per_line_ret = xob->xim->stride;
224 return (DATA8 *) xob->xim->data;
225}
226
227int
228evas_software_8_x11_x_output_buffer_depth(X_Output_Buffer * xob)
229{
230 return xob->xim->bpp;
231}
232
233int
234evas_software_8_x11_x_output_buffer_byte_order(X_Output_Buffer * xob)
235{
236 return xob->xim->byte_order;
237}
238
239int
240evas_software_8_x11_x_output_buffer_bit_order(X_Output_Buffer * xob)
241{
242 return xob->xim->bit_order;
243}