|
@ -1,6 +1,6 @@
|
||||||
# ACLOCAL_AMFLAGS = -I m4
|
# ACLOCAL_AMFLAGS = -I m4
|
||||||
|
|
||||||
SUBDIRS = data src proj
|
SUBDIRS = src
|
||||||
|
|
||||||
MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.guess \
|
MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.guess \
|
||||||
config.h.in config.sub configure install-sh \
|
config.h.in config.sub configure install-sh \
|
||||||
|
@ -24,7 +24,6 @@ EXTRA_DIST = AUTHORS COPYING COPYING-PLAIN evas.c.in gendoc \
|
||||||
debian/compat \
|
debian/compat \
|
||||||
debian/control \
|
debian/control \
|
||||||
debian/copyright \
|
debian/copyright \
|
||||||
debian/evas0-debug.install \
|
|
||||||
debian/libevas0-all.install \
|
debian/libevas0-all.install \
|
||||||
debian/libevas0-dev.install \
|
debian/libevas0-dev.install \
|
||||||
debian/libevas0-engine-buffer.install \
|
debian/libevas0-engine-buffer.install \
|
||||||
|
|
|
@ -1855,13 +1855,9 @@ AC_SUBST(pthread_libs)
|
||||||
AC_OUTPUT([
|
AC_OUTPUT([
|
||||||
Makefile
|
Makefile
|
||||||
evas.pc
|
evas.pc
|
||||||
data/Makefile
|
|
||||||
src/Makefile
|
src/Makefile
|
||||||
src/bin/Makefile
|
|
||||||
src/bin/evas_software_win32/Makefile
|
|
||||||
src/lib/Makefile
|
src/lib/Makefile
|
||||||
src/lib/canvas/Makefile
|
src/lib/canvas/Makefile
|
||||||
src/lib/data/Makefile
|
|
||||||
src/lib/file/Makefile
|
src/lib/file/Makefile
|
||||||
src/lib/imaging/Makefile
|
src/lib/imaging/Makefile
|
||||||
src/lib/engines/Makefile
|
src/lib/engines/Makefile
|
||||||
|
@ -1904,8 +1900,6 @@ src/modules/savers/jpeg/Makefile
|
||||||
src/modules/savers/png/Makefile
|
src/modules/savers/png/Makefile
|
||||||
src/modules/savers/tiff/Makefile
|
src/modules/savers/tiff/Makefile
|
||||||
src/lib/include/Makefile
|
src/lib/include/Makefile
|
||||||
proj/Makefile
|
|
||||||
proj/win32_gdi/Makefile
|
|
||||||
evas-config
|
evas-config
|
||||||
README
|
README
|
||||||
evas.spec
|
evas.spec
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
|
|
||||||
FILES = Vera.ttf VeraBI.ttf VeraBd.ttf VeraIt.ttf VeraMoBI.ttf VeraMoBd.ttf \
|
|
||||||
VeraMoIt.ttf VeraMono.ttf VeraSe.ttf VeraSeBd.ttf fonts.alias fonts.dir \
|
|
||||||
backdrop.png e_logo.png evas_logo.png panel.png \
|
|
||||||
panel_shadow.png panel_top.png \
|
|
||||||
t1.png t2.png test_pattern.png
|
|
||||||
|
|
||||||
miscdir = $(pkgdatadir)
|
|
||||||
misc_DATA = $(FILES)
|
|
||||||
|
|
||||||
EXTRA_DIST = $(FILES)
|
|
Before Width: | Height: | Size: 78 KiB |
Before Width: | Height: | Size: 6.9 KiB |
Before Width: | Height: | Size: 22 KiB |
|
@ -1,11 +0,0 @@
|
||||||
Vera-Bold-Italic -Bitstream-Bitstream Vera Sans-bold-i-normal--0-0-0-0-p-0-ascii-0
|
|
||||||
Vera-Normal -Bitstream-Bitstream Vera Sans-medium-r-normal--0-0-0-0-p-0-ascii-0
|
|
||||||
Vera-Bold -Bitstream-Bitstream Vera Sans-bold-r-normal--0-0-0-0-p-0-ascii-0
|
|
||||||
Vera-Italic -Bitstream-Bitstream Vera Sans-medium-i-normal--0-0-0-0-p-0-ascii-
|
|
||||||
Vera-Mono-Bold-Italic -Bitstream-Bitstream Vera Sans Mono-bold-i-normal--0-0-0-0-m-0-ascii-0
|
|
||||||
Vera-Mono-Bold -Bitstream-Bitstream Vera Sans Mono-bold-r-normal--0-0-0-0-m-0-ascii-0
|
|
||||||
Vera-Mono-Italic -Bitstream-Bitstream Vera Sans Mono-medium-i-normal--0-0-0-0-m-0-ascii-0
|
|
||||||
Vera-Mono -Bitstream-Bitstream Vera Sans Mono-medium-r-normal--0-0-0-0-m-0-ascii-0
|
|
||||||
Vera-Serif -Bitstream-Bitstream Vera Serif-medium-r-normal--0-0-0-0-p-0-ascii-0
|
|
||||||
Vera-Serif-Bold -Bitstream-Bitstream Vera Serif-bold-r-normal--0-0-0-0-p-0-ascii-0
|
|
||||||
Vera -Bitstream-Bitstream Vera Sans-medium-r-normal--0-0-0-0-p-0-ascii-0
|
|
|
@ -1,51 +0,0 @@
|
||||||
50
|
|
||||||
VeraBI.ttf -Bitstream-Bitstream Vera Sans-bold-i-normal--0-0-0-0-p-0-ascii-0
|
|
||||||
VeraBI.ttf -Bitstream-Bitstream Vera Sans-bold-i-normal--0-0-0-0-p-0-fcd8859-15
|
|
||||||
VeraBI.ttf -Bitstream-Bitstream Vera Sans-bold-i-normal--0-0-0-0-p-0-iso8859-1
|
|
||||||
VeraBI.ttf -Bitstream-Bitstream Vera Sans-bold-i-normal--0-0-0-0-p-0-iso8859-15
|
|
||||||
VeraBI.ttf -Bitstream-Bitstream Vera Sans-bold-i-normal--0-0-0-0-p-0-iso8859-9
|
|
||||||
Vera.ttf -Bitstream-Bitstream Vera Sans-medium-r-normal--0-0-0-0-p-0-ascii-0
|
|
||||||
Vera.ttf -Bitstream-Bitstream Vera Sans-medium-r-normal--0-0-0-0-p-0-fcd8859-15
|
|
||||||
Vera.ttf -Bitstream-Bitstream Vera Sans-medium-r-normal--0-0-0-0-p-0-iso8859-1
|
|
||||||
Vera.ttf -Bitstream-Bitstream Vera Sans-medium-r-normal--0-0-0-0-p-0-iso8859-15
|
|
||||||
Vera.ttf -Bitstream-Bitstream Vera Sans-medium-r-normal--0-0-0-0-p-0-iso8859-9
|
|
||||||
VeraBd.ttf -Bitstream-Bitstream Vera Sans-bold-r-normal--0-0-0-0-p-0-ascii-0
|
|
||||||
VeraBd.ttf -Bitstream-Bitstream Vera Sans-bold-r-normal--0-0-0-0-p-0-fcd8859-15
|
|
||||||
VeraBd.ttf -Bitstream-Bitstream Vera Sans-bold-r-normal--0-0-0-0-p-0-iso8859-1
|
|
||||||
VeraBd.ttf -Bitstream-Bitstream Vera Sans-bold-r-normal--0-0-0-0-p-0-iso8859-15
|
|
||||||
VeraBd.ttf -Bitstream-Bitstream Vera Sans-bold-r-normal--0-0-0-0-p-0-iso8859-9
|
|
||||||
VeraIt.ttf -Bitstream-Bitstream Vera Sans-medium-i-normal--0-0-0-0-p-0-ascii-0
|
|
||||||
VeraIt.ttf -Bitstream-Bitstream Vera Sans-medium-i-normal--0-0-0-0-p-0-fcd8859-15
|
|
||||||
VeraIt.ttf -Bitstream-Bitstream Vera Sans-medium-i-normal--0-0-0-0-p-0-iso8859-1
|
|
||||||
VeraIt.ttf -Bitstream-Bitstream Vera Sans-medium-i-normal--0-0-0-0-p-0-iso8859-15
|
|
||||||
VeraIt.ttf -Bitstream-Bitstream Vera Sans-medium-i-normal--0-0-0-0-p-0-iso8859-9
|
|
||||||
VeraMoBI.ttf -Bitstream-Bitstream Vera Sans Mono-bold-i-normal--0-0-0-0-m-0-ascii-0
|
|
||||||
VeraMoBI.ttf -Bitstream-Bitstream Vera Sans Mono-bold-i-normal--0-0-0-0-m-0-fcd8859-15
|
|
||||||
VeraMoBI.ttf -Bitstream-Bitstream Vera Sans Mono-bold-i-normal--0-0-0-0-m-0-iso8859-1
|
|
||||||
VeraMoBI.ttf -Bitstream-Bitstream Vera Sans Mono-bold-i-normal--0-0-0-0-m-0-iso8859-15
|
|
||||||
VeraMoBI.ttf -Bitstream-Bitstream Vera Sans Mono-bold-i-normal--0-0-0-0-m-0-iso8859-9
|
|
||||||
VeraMoBd.ttf -Bitstream-Bitstream Vera Sans Mono-bold-r-normal--0-0-0-0-m-0-ascii-0
|
|
||||||
VeraMoBd.ttf -Bitstream-Bitstream Vera Sans Mono-bold-r-normal--0-0-0-0-m-0-fcd8859-15
|
|
||||||
VeraMoBd.ttf -Bitstream-Bitstream Vera Sans Mono-bold-r-normal--0-0-0-0-m-0-iso8859-1
|
|
||||||
VeraMoBd.ttf -Bitstream-Bitstream Vera Sans Mono-bold-r-normal--0-0-0-0-m-0-iso8859-15
|
|
||||||
VeraMoBd.ttf -Bitstream-Bitstream Vera Sans Mono-bold-r-normal--0-0-0-0-m-0-iso8859-9
|
|
||||||
VeraMoIt.ttf -Bitstream-Bitstream Vera Sans Mono-medium-i-normal--0-0-0-0-m-0-ascii-0
|
|
||||||
VeraMoIt.ttf -Bitstream-Bitstream Vera Sans Mono-medium-i-normal--0-0-0-0-m-0-fcd8859-15
|
|
||||||
VeraMoIt.ttf -Bitstream-Bitstream Vera Sans Mono-medium-i-normal--0-0-0-0-m-0-iso8859-1
|
|
||||||
VeraMoIt.ttf -Bitstream-Bitstream Vera Sans Mono-medium-i-normal--0-0-0-0-m-0-iso8859-15
|
|
||||||
VeraMoIt.ttf -Bitstream-Bitstream Vera Sans Mono-medium-i-normal--0-0-0-0-m-0-iso8859-9
|
|
||||||
VeraMono.ttf -Bitstream-Bitstream Vera Sans Mono-medium-r-normal--0-0-0-0-m-0-ascii-0
|
|
||||||
VeraMono.ttf -Bitstream-Bitstream Vera Sans Mono-medium-r-normal--0-0-0-0-m-0-fcd8859-15
|
|
||||||
VeraMono.ttf -Bitstream-Bitstream Vera Sans Mono-medium-r-normal--0-0-0-0-m-0-iso8859-1
|
|
||||||
VeraMono.ttf -Bitstream-Bitstream Vera Sans Mono-medium-r-normal--0-0-0-0-m-0-iso8859-15
|
|
||||||
VeraMono.ttf -Bitstream-Bitstream Vera Sans Mono-medium-r-normal--0-0-0-0-m-0-iso8859-9
|
|
||||||
VeraSe.ttf -Bitstream-Bitstream Vera Serif-medium-r-normal--0-0-0-0-p-0-ascii-0
|
|
||||||
VeraSe.ttf -Bitstream-Bitstream Vera Serif-medium-r-normal--0-0-0-0-p-0-fcd8859-15
|
|
||||||
VeraSe.ttf -Bitstream-Bitstream Vera Serif-medium-r-normal--0-0-0-0-p-0-iso8859-1
|
|
||||||
VeraSe.ttf -Bitstream-Bitstream Vera Serif-medium-r-normal--0-0-0-0-p-0-iso8859-15
|
|
||||||
VeraSe.ttf -Bitstream-Bitstream Vera Serif-medium-r-normal--0-0-0-0-p-0-iso8859-9
|
|
||||||
VeraSeBd.ttf -Bitstream-Bitstream Vera Serif-bold-r-normal--0-0-0-0-p-0-ascii-0
|
|
||||||
VeraSeBd.ttf -Bitstream-Bitstream Vera Serif-bold-r-normal--0-0-0-0-p-0-fcd8859-15
|
|
||||||
VeraSeBd.ttf -Bitstream-Bitstream Vera Serif-bold-r-normal--0-0-0-0-p-0-iso8859-1
|
|
||||||
VeraSeBd.ttf -Bitstream-Bitstream Vera Serif-bold-r-normal--0-0-0-0-p-0-iso8859-15
|
|
||||||
VeraSeBd.ttf -Bitstream-Bitstream Vera Serif-bold-r-normal--0-0-0-0-p-0-iso8859-9
|
|
Before Width: | Height: | Size: 791 B |
Before Width: | Height: | Size: 449 B |
Before Width: | Height: | Size: 196 B |
Before Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 19 KiB |
|
@ -301,28 +301,6 @@ Description: Evas module providing the TIFF saver
|
||||||
applications under development.
|
applications under development.
|
||||||
This package contains the Evas saver module for TIFF.
|
This package contains the Evas saver module for TIFF.
|
||||||
|
|
||||||
Package: evas0-debug
|
|
||||||
Section: graphics
|
|
||||||
Architecture: any
|
|
||||||
Depends: ${shlibs:Depends}, libevas0-engine-software-x11, libevas0-engine-buffer, libevas0-engine-fb, libevas0-engine-xrender, libevas0-loader-png, libevas0-loader-jpeg
|
|
||||||
Provides: evas-debug
|
|
||||||
Conflicts: evas0-bin
|
|
||||||
Replaces: evas0-bin
|
|
||||||
Description: Programs for libevas
|
|
||||||
This package provides test programs packaged with evas.
|
|
||||||
.
|
|
||||||
Evas is an advanced canvas library, providing six engines for rendering: X11,
|
|
||||||
OpenGL (hardware accelerated), DirectFB, the framebuffer, Microsoft Windows
|
|
||||||
and Qtopia.
|
|
||||||
.
|
|
||||||
This new version of evas is much more cleaner, compact and portable; and has
|
|
||||||
Ipaq support. The Ipaq version of the library is just 191Kb in size!
|
|
||||||
.
|
|
||||||
Due to its simple API, evas can be developed with rapidly, and cleanly.
|
|
||||||
Install evas if you want to develop applications against the only
|
|
||||||
hardware-accelerated canvas library, or if you want to try out the
|
|
||||||
applications under development.
|
|
||||||
|
|
||||||
Package: libevas0-engines-all
|
Package: libevas0-engines-all
|
||||||
Section: graphics
|
Section: graphics
|
||||||
Architecture: any
|
Architecture: any
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
debian/tmp/usr/bin/evas_*
|
|
||||||
debian/tmp/usr/share/evas/*
|
|
|
@ -70,14 +70,6 @@ Requires: %{name} = %{version}
|
||||||
%description devel
|
%description devel
|
||||||
Headers, static libraries, test programs and documentation for Evas.
|
Headers, static libraries, test programs and documentation for Evas.
|
||||||
|
|
||||||
%package debug
|
|
||||||
Summary: Evas debug and testing tools
|
|
||||||
Group: System Environment/Libraries
|
|
||||||
Requires: %{name} = %{version}
|
|
||||||
|
|
||||||
%description debug
|
|
||||||
Debugging, testing, performance measurement etc. tools for evas.
|
|
||||||
|
|
||||||
%if %{with module_loader_eet}
|
%if %{with module_loader_eet}
|
||||||
%package module_loader_eet
|
%package module_loader_eet
|
||||||
Summary: EET Image loader module for Evas
|
Summary: EET Image loader module for Evas
|
||||||
|
@ -393,11 +385,6 @@ test "x$RPM_BUILD_ROOT" != "x/" && rm -rf $RPM_BUILD_ROOT
|
||||||
%{_libdir}/pkgconfig/*
|
%{_libdir}/pkgconfig/*
|
||||||
%{_includedir}/*.h
|
%{_includedir}/*.h
|
||||||
|
|
||||||
%files debug
|
|
||||||
%defattr(-, root, root)
|
|
||||||
%{_bindir}/evas_*
|
|
||||||
%{_datadir}/%{name}
|
|
||||||
|
|
||||||
%files module_engine_software_generic
|
%files module_engine_software_generic
|
||||||
%defattr(-, root, root)
|
%defattr(-, root, root)
|
||||||
%{_libdir}/evas/modules/engines/software_generic/*/module.so
|
%{_libdir}/evas/modules/engines/software_generic/*/module.so
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
Makefile.in
|
|
||||||
Makefile
|
|
|
@ -1,3 +0,0 @@
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
|
|
||||||
SUBDIRS = win32_gdi
|
|
|
@ -1,2 +0,0 @@
|
||||||
Makefile.in
|
|
||||||
Makefile
|
|
|
@ -1,13 +0,0 @@
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
|
|
||||||
EXTRA_DIST = \
|
|
||||||
evaslib.vcb \
|
|
||||||
evaslib.vcl \
|
|
||||||
evaslib.vco \
|
|
||||||
evaslib.vcp \
|
|
||||||
evaslib.vcw \
|
|
||||||
evas_software_win32.vcb \
|
|
||||||
evas_software_win32.vcl \
|
|
||||||
evas_software_win32.vco \
|
|
||||||
evas_software_win32.vcp \
|
|
||||||
evas_software_win32.vcw
|
|
|
@ -1,130 +0,0 @@
|
||||||
<html>
|
|
||||||
<body>
|
|
||||||
<pre>
|
|
||||||
<h1>Build Log</h1>
|
|
||||||
<h3>
|
|
||||||
--------------------Configuration: evas_software_win32 - Win32 (WCE emulator) Debug--------------------
|
|
||||||
</h3>
|
|
||||||
<h3>Command Lines</h3>
|
|
||||||
Creating command line "rc.exe /l 0x409 /fo"emulatorDbg/evas_software_win32.res" /i "\Projects\mbed\evas\src\bin\evas_software_win32" /d "WCE_PLATFORM_STANDARDSDK" /d UNDER_CE=400 /d _WIN32_WCE=400 /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "_X86_" /d "x86" /d "_i386_" /r "C:\Projects\mbed\evas\src\bin\evas_software_win32\evas_software_win32.rc""
|
|
||||||
Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1E8.tmp" with contents
|
|
||||||
[
|
|
||||||
/nologo /W3 /Zi /Od /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /D "DEBUG" /D "_i386_" /D "i_386_" /D "_X86_" /D "x86" /D UNDER_CE=400 /D _WIN32_WCE=400 /D "WCE_PLATFORM_STANDARDSDK" /D "UNICODE" /D "_UNICODE" /FR"emulatorDbg/" /Fo"emulatorDbg/" /Fd"emulatorDbg/" /Gs8192 /GF /c
|
|
||||||
"C:\Projects\mbed\evas\src\bin\evas_software_win32\evas_software_win32.cpp"
|
|
||||||
]
|
|
||||||
Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1E8.tmp"
|
|
||||||
Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1E9.tmp" with contents
|
|
||||||
[
|
|
||||||
/nologo /W3 /Zi /Od /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /D "DEBUG" /D "_i386_" /D "i_386_" /D "_X86_" /D "x86" /D UNDER_CE=400 /D _WIN32_WCE=400 /D "WCE_PLATFORM_STANDARDSDK" /D "MBCS" /D "_MBCS" /FR"emulatorDbg/" /Fo"emulatorDbg/" /Fd"emulatorDbg/" /Gs8192 /GF /c
|
|
||||||
"C:\Projects\mbed\evas\src\bin\evas_test_main.c"
|
|
||||||
"C:\Projects\mbed\evas\src\bin\evas_software_win32\StdAfx.cpp"
|
|
||||||
]
|
|
||||||
Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1E9.tmp"
|
|
||||||
Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1EA.tmp" with contents
|
|
||||||
[
|
|
||||||
commctrl.lib coredll.lib corelibc.lib /nologo /base:"0x00010000" /stack:0x10000,0x1000 /entry:"WinMainCRTStartup" /incremental:yes /pdb:"emulatorDbg/evas_software_win32.pdb" /debug /nodefaultlib:"OLDNAMES.lib" /nodefaultlib:libc.lib /nodefaultlib:libcd.lib /nodefaultlib:libcmt.lib /nodefaultlib:libcmtd.lib /nodefaultlib:msvcrt.lib /nodefaultlib:msvcrtd.lib /out:"emulatorDbg/evas_software_win32.exe" /subsystem:windowsce,4.00 /MACHINE:IX86
|
|
||||||
.\emulatorDbg\evas_software_win32.obj
|
|
||||||
.\emulatorDbg\evas_test_main.obj
|
|
||||||
.\emulatorDbg\StdAfx.obj
|
|
||||||
.\emulatorDbg\evas_software_win32.res
|
|
||||||
.\emulatorDbg\evaslib.lib
|
|
||||||
]
|
|
||||||
Creating command line "link.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1EA.tmp"
|
|
||||||
<h3>Output Window</h3>
|
|
||||||
Compiling resources...
|
|
||||||
Compiling...
|
|
||||||
evas_software_win32.cpp
|
|
||||||
C:\Projects\mbed\evas\src\bin\evas_software_win32\evas_software_win32.cpp(195) : warning C4101: 'szHello' : unreferenced local variable
|
|
||||||
Compiling...
|
|
||||||
evas_test_main.c
|
|
||||||
C:\Projects\mbed\evas\src\bin\evas_test_main.c(91) : warning C4244: 'function' : conversion from 'double ' to 'int ', possible loss of data
|
|
||||||
C:\Projects\mbed\evas\src\bin\evas_test_main.c(324) : warning C4101: 'iw' : unreferenced local variable
|
|
||||||
C:\Projects\mbed\evas\src\bin\evas_test_main.c(324) : warning C4101: 'ih' : unreferenced local variable
|
|
||||||
C:\Projects\mbed\evas\src\bin\evas_test_main.c(358) : warning C4101: 'iw' : unreferenced local variable
|
|
||||||
C:\Projects\mbed\evas\src\bin\evas_test_main.c(358) : warning C4101: 'ih' : unreferenced local variable
|
|
||||||
C:\Projects\mbed\evas\src\bin\evas_test_main.c(394) : warning C4101: 'iw' : unreferenced local variable
|
|
||||||
C:\Projects\mbed\evas\src\bin\evas_test_main.c(394) : warning C4101: 'ih' : unreferenced local variable
|
|
||||||
Generating Code...
|
|
||||||
Compiling...
|
|
||||||
StdAfx.cpp
|
|
||||||
C:\Projects\mbed\evas\src\bin\evas_test_main.c(91) : warning C4761: integral size mismatch in argument; conversion supplied
|
|
||||||
Generating Code...
|
|
||||||
Linking...
|
|
||||||
evaslib.lib(evas_callbacks.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_clip.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_events.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_layer.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_main.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_name.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_object_gradient.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_object_image.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_object_line.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_object_main.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_object_polygon.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_object_rectangle.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_object_text.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_rectangle.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_render.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_stack.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_hash.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_list.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_object_list.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_blend_alpha_color_pixel.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_blend_color_pixel.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_blend_main.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_blend_pixel_cmod_pixel.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_blend_pixel_mul_pixel.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_blend_pixel_pixel.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_blit_main.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_convert_main.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_convert_rgb_16.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_convert_rgb_32.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_cpu.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_draw_main.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_font_draw.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_font_load.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_font_main.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_font_query.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_gradient_main.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_image_load.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_image_main.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_line_main.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_polygon_main.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_rectangle_main.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_scale_main.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_scale_sample.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_scale_smooth.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_tiler.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_engine.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_outbuf.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_win32_buffer.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_win32_main.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(evas_path.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(winfnt.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(type42.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(type1.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(truetype.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(smooth.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(sfnt.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(raster.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(psmodule.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(pshinter.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(psaux.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(pfr.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(pcf.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(type1cid.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(cff.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(bdf.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(ftsystem.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(ftinit.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(ftglyph.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(ftbase.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
evaslib.lib(autohint.obj) : warning LNK4204: 'C:\Projects\mbed\evas\proj\win32_gdi\emulatorDbg\vc60.pdb' is missing debugging information for referencing module; linking object as if no debug info
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h3>Results</h3>
|
|
||||||
evas_software_win32.exe - 0 error(s), 79 warning(s)
|
|
||||||
</pre>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,41 +0,0 @@
|
||||||
Microsoft eMbedded Visual Tools Workspace File, Format Version 4.00
|
|
||||||
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
Project: "evas_software_win32"=.\evas_software_win32.vcp - Package Owner=<4>
|
|
||||||
|
|
||||||
Package=<5>
|
|
||||||
{{{
|
|
||||||
}}}
|
|
||||||
|
|
||||||
Package=<4>
|
|
||||||
{{{
|
|
||||||
}}}
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
Project: "evaslib"=.\evaslib.vcp - Package Owner=<4>
|
|
||||||
|
|
||||||
Package=<5>
|
|
||||||
{{{
|
|
||||||
}}}
|
|
||||||
|
|
||||||
Package=<4>
|
|
||||||
{{{
|
|
||||||
}}}
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
Global:
|
|
||||||
|
|
||||||
Package=<5>
|
|
||||||
{{{
|
|
||||||
}}}
|
|
||||||
|
|
||||||
Package=<3>
|
|
||||||
{{{
|
|
||||||
}}}
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
|
|
|
@ -1,292 +0,0 @@
|
||||||
<html>
|
|
||||||
<body>
|
|
||||||
<pre>
|
|
||||||
<h1>Build Log</h1>
|
|
||||||
<h3>
|
|
||||||
--------------------Configuration: evaslib - Win32 (WCE emulator) Debug--------------------
|
|
||||||
</h3>
|
|
||||||
<h3>Command Lines</h3>
|
|
||||||
Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1E5.tmp" with contents
|
|
||||||
[
|
|
||||||
/nologo /W3 /Zi /Od /I "..\..\lib" /I "..\\" /I "..\..\lib\include" /I "..\..\\" /I "..\..\src\bin" /I "..\..\src\lib" /I "..\..\src\lib\include" /I "..\..\..\freetype-2.1.2\include" /I "..\..\..\libpng-1.2.4" /I "..\..\..\zlib" /I "..\..\..\jpeg-6b" /D "DEBUG" /D "_i386_" /D "_X86_" /D "x86" /D _WIN32_WCE=400 /D "WCE_PLATFORM_STANDARDSDK" /D UNDER_CE=400 /D "MBCS" /D "_MBCS" /D "_LIB" /Fo"emulatorDbg/" /Fd"emulatorDbg/" /Gs8192 /GF /c
|
|
||||||
"C:\Projects\mbed\evas\src\lib\canvas\evas_callbacks.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\canvas\evas_clip.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\canvas\evas_data.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\canvas\evas_events.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\canvas\evas_layer.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\canvas\evas_main.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\canvas\evas_name.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\canvas\evas_object_gradient.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\canvas\evas_object_image.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\canvas\evas_object_line.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\canvas\evas_object_main.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\canvas\evas_object_polygon.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\canvas\evas_object_rectangle.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\canvas\evas_rectangle.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\canvas\evas_render.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\canvas\evas_stack.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\data\evas_hash.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\data\evas_list.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\data\evas_object_list.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\common\evas_blend_alpha_color_pixel.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\common\evas_blend_color_pixel.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\common\evas_blend_main.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\common\evas_blend_pixel_cmod_pixel.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\common\evas_blend_pixel_mul_pixel.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\common\evas_blend_pixel_pixel.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\common\evas_blit_main.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_color.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_gry_1.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_gry_4.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_gry_8.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_rgb_16.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_rgb_24.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_rgb_32.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_rgb_8.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\common\evas_cpu.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\common\evas_font_draw.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\common\evas_font_load.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\common\evas_font_main.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\common\evas_font_query.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\common\evas_gradient_main.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\common\evas_image_load.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\common\evas_image_main.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\common\evas_line_main.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\common\evas_polygon_main.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\common\evas_rectangle_main.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\common\evas_scale_main.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\common\evas_scale_sample.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\common\evas_scale_smooth.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\common\evas_tiler.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\software_win32_gdi\evas_engine.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\software_win32_gdi\evas_outbuf.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\software_win32_gdi\evas_win32_buffer.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\engines\software_win32_gdi\evas_win32_main.c"
|
|
||||||
"C:\Projects\mbed\evas\src\lib\file\evas_path.c"
|
|
||||||
]
|
|
||||||
Creating command line "cl.exe @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1E5.tmp"
|
|
||||||
Creating temporary file "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1E6.tmp" with contents
|
|
||||||
[
|
|
||||||
/nologo /out:"emulatorDbg\evaslib.lib"
|
|
||||||
.\emulatorDbg\evas_callbacks.obj
|
|
||||||
.\emulatorDbg\evas_clip.obj
|
|
||||||
.\emulatorDbg\evas_data.obj
|
|
||||||
.\emulatorDbg\evas_events.obj
|
|
||||||
.\emulatorDbg\evas_layer.obj
|
|
||||||
.\emulatorDbg\evas_main.obj
|
|
||||||
.\emulatorDbg\evas_name.obj
|
|
||||||
.\emulatorDbg\evas_object_gradient.obj
|
|
||||||
.\emulatorDbg\evas_object_image.obj
|
|
||||||
.\emulatorDbg\evas_object_line.obj
|
|
||||||
.\emulatorDbg\evas_object_main.obj
|
|
||||||
.\emulatorDbg\evas_object_polygon.obj
|
|
||||||
.\emulatorDbg\evas_object_rectangle.obj
|
|
||||||
.\emulatorDbg\evas_object_text.obj
|
|
||||||
.\emulatorDbg\evas_rectangle.obj
|
|
||||||
.\emulatorDbg\evas_render.obj
|
|
||||||
.\emulatorDbg\evas_stack.obj
|
|
||||||
.\emulatorDbg\evas_hash.obj
|
|
||||||
.\emulatorDbg\evas_list.obj
|
|
||||||
.\emulatorDbg\evas_object_list.obj
|
|
||||||
.\emulatorDbg\evas_blend_alpha_color_pixel.obj
|
|
||||||
.\emulatorDbg\evas_blend_color_pixel.obj
|
|
||||||
.\emulatorDbg\evas_blend_main.obj
|
|
||||||
.\emulatorDbg\evas_blend_pixel_cmod_pixel.obj
|
|
||||||
.\emulatorDbg\evas_blend_pixel_mul_pixel.obj
|
|
||||||
.\emulatorDbg\evas_blend_pixel_pixel.obj
|
|
||||||
.\emulatorDbg\evas_blit_main.obj
|
|
||||||
.\emulatorDbg\evas_convert_color.obj
|
|
||||||
.\emulatorDbg\evas_convert_gry_1.obj
|
|
||||||
.\emulatorDbg\evas_convert_gry_4.obj
|
|
||||||
.\emulatorDbg\evas_convert_gry_8.obj
|
|
||||||
.\emulatorDbg\evas_convert_main.obj
|
|
||||||
.\emulatorDbg\evas_convert_rgb_16.obj
|
|
||||||
.\emulatorDbg\evas_convert_rgb_24.obj
|
|
||||||
.\emulatorDbg\evas_convert_rgb_32.obj
|
|
||||||
.\emulatorDbg\evas_convert_rgb_8.obj
|
|
||||||
.\emulatorDbg\evas_cpu.obj
|
|
||||||
.\emulatorDbg\evas_draw_main.obj
|
|
||||||
.\emulatorDbg\evas_font_draw.obj
|
|
||||||
.\emulatorDbg\evas_font_load.obj
|
|
||||||
.\emulatorDbg\evas_font_main.obj
|
|
||||||
.\emulatorDbg\evas_font_query.obj
|
|
||||||
.\emulatorDbg\evas_gradient_main.obj
|
|
||||||
.\emulatorDbg\evas_image_load.obj
|
|
||||||
.\emulatorDbg\evas_image_main.obj
|
|
||||||
.\emulatorDbg\evas_line_main.obj
|
|
||||||
.\emulatorDbg\evas_polygon_main.obj
|
|
||||||
.\emulatorDbg\evas_rectangle_main.obj
|
|
||||||
.\emulatorDbg\evas_scale_main.obj
|
|
||||||
.\emulatorDbg\evas_scale_sample.obj
|
|
||||||
.\emulatorDbg\evas_scale_smooth.obj
|
|
||||||
.\emulatorDbg\evas_tiler.obj
|
|
||||||
.\emulatorDbg\evas_engine.obj
|
|
||||||
.\emulatorDbg\evas_outbuf.obj
|
|
||||||
.\emulatorDbg\evas_win32_buffer.obj
|
|
||||||
.\emulatorDbg\evas_win32_main.obj
|
|
||||||
.\emulatorDbg\evas_path.obj
|
|
||||||
"..\..\..\freetype-2.1.2\builds\win32\evisualc\emulatorDbg\freetype212.lib"
|
|
||||||
"..\..\..\jpeg-6b\wince\libjpeg\emulatorDbg\libjpeg.lib"
|
|
||||||
"..\..\..\libpng-1.2.4\projects\wince\emulatorDbg\lpngce.lib"
|
|
||||||
]
|
|
||||||
Creating command line "link.exe -lib @C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RSP1E6.tmp"
|
|
||||||
<h3>Output Window</h3>
|
|
||||||
Compiling...
|
|
||||||
evas_callbacks.c
|
|
||||||
evas_clip.c
|
|
||||||
evas_data.c
|
|
||||||
evas_events.c
|
|
||||||
evas_layer.c
|
|
||||||
evas_main.c
|
|
||||||
evas_name.c
|
|
||||||
evas_object_gradient.c
|
|
||||||
evas_object_image.c
|
|
||||||
C:\Projects\mbed\evas\src\lib\canvas\evas_object_image.c(706) : warning C4244: '=' : conversion from 'double ' to 'int ', possible loss of data
|
|
||||||
C:\Projects\mbed\evas\src\lib\canvas\evas_object_image.c(710) : warning C4244: '=' : conversion from 'double ' to 'int ', possible loss of data
|
|
||||||
C:\Projects\mbed\evas\src\lib\canvas\evas_object_image.c(975) : warning C4244: '=' : conversion from 'double ' to 'int ', possible loss of data
|
|
||||||
C:\Projects\mbed\evas\src\lib\canvas\evas_object_image.c(979) : warning C4244: '=' : conversion from 'double ' to 'int ', possible loss of data
|
|
||||||
evas_object_line.c
|
|
||||||
evas_object_main.c
|
|
||||||
evas_object_polygon.c
|
|
||||||
evas_object_rectangle.c
|
|
||||||
evas_object_text.c
|
|
||||||
C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(103) : warning C4244: 'function' : conversion from 'double ' to 'int ', possible loss of data
|
|
||||||
C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(119) : warning C4244: 'function' : conversion from 'double ' to 'int ', possible loss of data
|
|
||||||
C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(131) : warning C4244: 'function' : conversion from 'double ' to 'int ', possible loss of data
|
|
||||||
C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(141) : warning C4244: 'function' : conversion from 'double ' to 'int ', possible loss of data
|
|
||||||
C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(159) : warning C4244: 'function' : conversion from 'double ' to 'int ', possible loss of data
|
|
||||||
C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(187) : warning C4244: 'function' : conversion from 'double ' to 'int ', possible loss of data
|
|
||||||
C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(512) : warning C4244: 'function' : conversion from 'double ' to 'int ', possible loss of data
|
|
||||||
C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(512) : warning C4244: 'function' : conversion from 'double ' to 'int ', possible loss of data
|
|
||||||
C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(685) : warning C4244: 'function' : conversion from 'double ' to 'int ', possible loss of data
|
|
||||||
C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(686) : warning C4244: 'function' : conversion from 'double ' to 'int ', possible loss of data
|
|
||||||
evas_rectangle.c
|
|
||||||
evas_render.c
|
|
||||||
evas_stack.c
|
|
||||||
evas_hash.c
|
|
||||||
evas_list.c
|
|
||||||
evas_object_list.c
|
|
||||||
Generating Code...
|
|
||||||
C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(103) : warning C4761: integral size mismatch in argument; conversion supplied
|
|
||||||
C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(119) : warning C4761: integral size mismatch in argument; conversion supplied
|
|
||||||
C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(131) : warning C4761: integral size mismatch in argument; conversion supplied
|
|
||||||
C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(141) : warning C4761: integral size mismatch in argument; conversion supplied
|
|
||||||
C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(159) : warning C4761: integral size mismatch in argument; conversion supplied
|
|
||||||
C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(187) : warning C4761: integral size mismatch in argument; conversion supplied
|
|
||||||
C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(514) : warning C4761: integral size mismatch in argument; conversion supplied
|
|
||||||
C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(514) : warning C4761: integral size mismatch in argument; conversion supplied
|
|
||||||
C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(687) : warning C4761: integral size mismatch in argument; conversion supplied
|
|
||||||
C:\Projects\mbed\evas\src\lib\canvas\evas_object_text.c(687) : warning C4761: integral size mismatch in argument; conversion supplied
|
|
||||||
Compiling...
|
|
||||||
evas_blend_alpha_color_pixel.c
|
|
||||||
evas_blend_color_pixel.c
|
|
||||||
evas_blend_main.c
|
|
||||||
evas_blend_pixel_cmod_pixel.c
|
|
||||||
evas_blend_pixel_mul_pixel.c
|
|
||||||
evas_blend_pixel_pixel.c
|
|
||||||
evas_blit_main.c
|
|
||||||
evas_convert_color.c
|
|
||||||
evas_convert_gry_1.c
|
|
||||||
evas_convert_gry_4.c
|
|
||||||
evas_convert_gry_8.c
|
|
||||||
evas_convert_main.c
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(206) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(208) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(215) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(217) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(229) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(231) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(238) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(240) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(252) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(254) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(261) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(263) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(275) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(277) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(285) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(287) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(299) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(301) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(309) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(311) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(324) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(328) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(337) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_convert_main.c(341) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
evas_convert_rgb_16.c
|
|
||||||
evas_convert_rgb_24.c
|
|
||||||
evas_convert_rgb_32.c
|
|
||||||
evas_convert_rgb_8.c
|
|
||||||
evas_cpu.c
|
|
||||||
evas_draw_main.c
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(498) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(512) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(520) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(541) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(545) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(561) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(573) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(581) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(600) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(604) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(620) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(624) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(631) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(635) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(638) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(654) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(666) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(674) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(686) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(690) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(705) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(717) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(721) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(752) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(772) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_draw_main.c(776) : warning C4550: expression evaluates to a function which is missing an argument list
|
|
||||||
evas_font_draw.c
|
|
||||||
evas_font_load.c
|
|
||||||
Generating Code...
|
|
||||||
Compiling...
|
|
||||||
evas_font_main.c
|
|
||||||
evas_font_query.c
|
|
||||||
evas_gradient_main.c
|
|
||||||
evas_image_load.c
|
|
||||||
..\..\..\jpeg-6b\jmorecfg.h(161) : warning C4142: benign redefinition of type
|
|
||||||
..\..\..\jpeg-6b\jmorecfg.h(215) : warning C4005: 'FAR' : macro redefinition
|
|
||||||
C:\Program Files\Windows CE Tools\wce400\STANDARDSDK\Include\emulator\windef.h(151) : see previous definition of 'FAR'
|
|
||||||
evas_image_main.c
|
|
||||||
evas_line_main.c
|
|
||||||
evas_polygon_main.c
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_polygon_main.c(209) : warning C4244: '=' : conversion from 'double ' to 'int ', possible loss of data
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_polygon_main.c(210) : warning C4244: '=' : conversion from 'double ' to 'int ', possible loss of data
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_polygon_main.c(250) : warning C4244: '=' : conversion from 'double ' to 'int ', possible loss of data
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_polygon_main.c(252) : warning C4244: '=' : conversion from 'double ' to 'int ', possible loss of data
|
|
||||||
evas_rectangle_main.c
|
|
||||||
evas_scale_main.c
|
|
||||||
evas_scale_sample.c
|
|
||||||
evas_scale_smooth.c
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_scale_smooth_scaler.c(29) : warning C4101: 'divx' : unreferenced local variable
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_scale_smooth_scaler.c(29) : warning C4101: 'divy' : unreferenced local variable
|
|
||||||
C:\Projects\mbed\evas\src\lib\engines\common\evas_scale_smooth_scaler.c(844) : warning C4101: 'dyy' : unreferenced local variable
|
|
||||||
evas_tiler.c
|
|
||||||
evas_engine.c
|
|
||||||
evas_outbuf.c
|
|
||||||
evas_win32_buffer.c
|
|
||||||
evas_win32_main.c
|
|
||||||
evas_path.c
|
|
||||||
Generating Code...
|
|
||||||
Creating library...
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h3>Results</h3>
|
|
||||||
evaslib.lib - 0 error(s), 83 warning(s)
|
|
||||||
</pre>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,29 +0,0 @@
|
||||||
Microsoft eMbedded Visual Tools Workspace File, Format Version 4.00
|
|
||||||
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
Project: "evaslib"=.\evaslib.vcp - Package Owner=<4>
|
|
||||||
|
|
||||||
Package=<5>
|
|
||||||
{{{
|
|
||||||
}}}
|
|
||||||
|
|
||||||
Package=<4>
|
|
||||||
{{{
|
|
||||||
}}}
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
Global:
|
|
||||||
|
|
||||||
Package=<5>
|
|
||||||
{{{
|
|
||||||
}}}
|
|
||||||
|
|
||||||
Package=<3>
|
|
||||||
{{{
|
|
||||||
}}}
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
MAINTAINERCLEANFILES = Makefile.in
|
||||||
|
|
||||||
SUBDIRS = lib modules bin
|
SUBDIRS = lib modules
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
.deps
|
|
||||||
.libs
|
|
||||||
Makefile
|
|
||||||
Makefile.in
|
|
||||||
evas_buffer_test
|
|
||||||
evas_fb_test
|
|
||||||
evas_gl_x11_test
|
|
||||||
evas_software_x11_perf_load
|
|
||||||
evas_software_x11_perf_test
|
|
||||||
evas_software_x11_test
|
|
||||||
evas_directfb_test
|
|
||||||
evas_directfb_window
|
|
||||||
moc_evas_software_qtopia_main.cpp
|
|
||||||
evas_cairo_x11_test
|
|
||||||
evas_xrender_x11_test
|
|
||||||
evas_software_xcb_perf_load
|
|
||||||
evas_software_xcb_perf_test
|
|
||||||
evas_software_xcb_test
|
|
||||||
evas_xrender_xcb_test
|
|
|
@ -1,140 +0,0 @@
|
||||||
MAINTAINERCLEANFILES = Makefile.in moc_evas_software_qtopia_main.cpp
|
|
||||||
|
|
||||||
INCLUDES = \
|
|
||||||
-I. -I$(top_srcdir)/src/modules/engines -I$(top_srcdir)/src/lib -I$(top_srcdir) \
|
|
||||||
@DIRECTFB_CFLAGS@ @qt_cflags@ @gl_cflags@ \
|
|
||||||
-I$(top_srcdir)/src/modules/engines/buffer \
|
|
||||||
-I$(top_srcdir)/src/modules/engines/cairo_x11 \
|
|
||||||
-I$(top_srcdir)/src/modules/engines/directfb \
|
|
||||||
-I$(top_srcdir)/src/modules/engines/fb \
|
|
||||||
-I$(top_srcdir)/src/modules/engines/gl_x11 \
|
|
||||||
-I$(top_srcdir)/src/modules/engines/software_qtopia \
|
|
||||||
-I$(top_srcdir)/src/modules/engines/software_win32_gdi \
|
|
||||||
-I$(top_srcdir)/src/modules/engines/software_x11 \
|
|
||||||
-I$(top_srcdir)/src/modules/engines/software_xcb \
|
|
||||||
-I$(top_srcdir)/src/modules/engines/xrender_x11 \
|
|
||||||
-I$(top_srcdir)/src/modules/engines/xrender_xcb \
|
|
||||||
-DPACKAGE_BIN_DIR=\"@PACKAGE_BIN_DIR@\" \
|
|
||||||
-DPACKAGE_LIB_DIR=\"@PACKAGE_LIB_DIR@\" \
|
|
||||||
-DPACKAGE_DATA_DIR=\"@PACKAGE_DATA_DIR@\"
|
|
||||||
|
|
||||||
bin_PROGRAMS = \
|
|
||||||
@ENGINE_SOFTWARE_X11_PRG@ \
|
|
||||||
@ENGINE_SOFTWARE_XCB_PRG@ \
|
|
||||||
@ENGINE_DIRECTFB_PRG@ \
|
|
||||||
@ENGINE_FB_PRG@ \
|
|
||||||
@ENGINE_BUFFER_PRG@ \
|
|
||||||
@ENGINE_SOFTWARE_QTOPIA_PRG@ \
|
|
||||||
@ENGINE_GL_X11_PRG@ \
|
|
||||||
@ENGINE_CAIRO_X11_PRG@ \
|
|
||||||
@ENGINE_XRENDER_X11_PRG@ \
|
|
||||||
@ENGINE_XRENDER_XCB_PRG@
|
|
||||||
|
|
||||||
EXTRA_PROGRAMS = \
|
|
||||||
evas_software_x11_test \
|
|
||||||
evas_software_x11_perf_test \
|
|
||||||
evas_software_x11_perf_load \
|
|
||||||
evas_software_xcb_test \
|
|
||||||
evas_software_xcb_perf_test \
|
|
||||||
evas_software_xcb_perf_load \
|
|
||||||
evas_directfb_test \
|
|
||||||
evas_directfb_window \
|
|
||||||
evas_fb_test \
|
|
||||||
evas_buffer_test \
|
|
||||||
evas_software_qtopia_test \
|
|
||||||
evas_gl_x11_test \
|
|
||||||
evas_cairo_x11_test \
|
|
||||||
evas_xrender_x11_test \
|
|
||||||
evas_xrender_xcb_test
|
|
||||||
|
|
||||||
SUBDIRS = evas_software_win32
|
|
||||||
|
|
||||||
evas_software_x11_test_SOURCES = evas_test_main.h evas_test_main.c evas_software_x11_main.c
|
|
||||||
evas_software_x11_test_LDADD = $(top_builddir)/src/lib/libevas.la -lm @x_libs@
|
|
||||||
evas_software_x11_test_CFLAGS = $(CFLAGS) @x_cflags@
|
|
||||||
evas_software_x11_test_DEPENDENCIES = $(top_builddir)/src/lib/libevas.la
|
|
||||||
|
|
||||||
evas_software_x11_perf_test_SOURCES = evas_software_x11_perf_test.c
|
|
||||||
evas_software_x11_perf_test_LDADD = $(top_builddir)/src/lib/libevas.la -lm @x_libs@
|
|
||||||
evas_software_x11_perf_test_CFLAGS = $(CFLAGS) @x_cflags@
|
|
||||||
evas_software_x11_perf_test_DEPENDENCIES = $(top_builddir)/src/lib/libevas.la
|
|
||||||
|
|
||||||
evas_software_x11_perf_load_SOURCES = evas_software_x11_perf_load.c
|
|
||||||
evas_software_x11_perf_load_LDADD = $(top_builddir)/src/lib/libevas.la -lm @x_libs@
|
|
||||||
evas_software_x11_perf_load_CFLAGS = $(CFLAGS) @x_cflags@
|
|
||||||
evas_software_x11_perf_load_DEPENDENCIES = $(top_builddir)/src/lib/libevas.la
|
|
||||||
|
|
||||||
evas_software_xcb_test_SOURCES = evas_test_main.h evas_test_main.c evas_software_xcb_main.c
|
|
||||||
evas_software_xcb_test_LDADD = $(top_builddir)/src/lib/libevas.la -lm @xcb_libs@
|
|
||||||
evas_software_xcb_test_CFLAGS = $(CFLAGS) @xcb_cflags@
|
|
||||||
evas_software_xcb_test_DEPENDENCIES = $(top_builddir)/src/lib/libevas.la
|
|
||||||
|
|
||||||
evas_software_xcb_perf_test_SOURCES = evas_software_xcb_perf_test.c
|
|
||||||
evas_software_xcb_perf_test_LDADD = $(top_builddir)/src/lib/libevas.la -lm @xcb_libs@
|
|
||||||
evas_software_xcb_perf_test_CFLAGS = $(CFLAGS) @xcb_cflags@
|
|
||||||
evas_software_xcb_perf_test_DEPENDENCIES = $(top_builddir)/src/lib/libevas.la
|
|
||||||
|
|
||||||
evas_software_xcb_perf_load_SOURCES = evas_software_xcb_perf_load.c
|
|
||||||
evas_software_xcb_perf_load_LDADD = $(top_builddir)/src/lib/libevas.la -lm @xcb_libs@
|
|
||||||
evas_software_xcb_perf_load_CFLAGS = $(CFLAGS) @xcb_cflags@
|
|
||||||
evas_software_xcb_perf_load_DEPENDENCIES = $(top_builddir)/src/lib/libevas.la
|
|
||||||
|
|
||||||
evas_directfb_test_SOURCES = evas_test_main.h evas_test_main.c evas_directfb_main.c
|
|
||||||
evas_directfb_test_LDADD = $(top_builddir)/src/lib/libevas.la -lm @DIRECTFB_LIBS@
|
|
||||||
evas_directfb_test_CFLAGS = $(CFLAGS) @DIRECTFB_CFLAGS@
|
|
||||||
evas_directfb_test_DEPENDENCIES = $(top_builddir)/src/lib/libevas.la
|
|
||||||
|
|
||||||
evas_directfb_window_SOURCES = evas_test_main.h evas_test_main.c evas_directfb_window.c
|
|
||||||
evas_directfb_window_LDADD = $(top_builddir)/src/lib/libevas.la -lm @DIRECTFB_LIBS@
|
|
||||||
evas_directfb_window_CFLAGS = $(CFLAGS) @DIRECTFB_CFLAGS@
|
|
||||||
evas_directfb_window_DEPENDENCIES = $(top_builddir)/src/lib/libevas.la
|
|
||||||
|
|
||||||
evas_fb_test_SOURCES = evas_test_main.h evas_test_main.c evas_fb_main.c
|
|
||||||
evas_fb_test_LDADD = $(top_builddir)/src/lib/libevas.la -lm
|
|
||||||
evas_fb_test_CFLAGS = $(CFLAGS)
|
|
||||||
evas_fb_test_DEPENDENCIES = $(top_builddir)/src/lib/libevas.la
|
|
||||||
|
|
||||||
evas_buffer_test_SOURCES = evas_test_main.h evas_test_main.c evas_buffer_main.c
|
|
||||||
evas_buffer_test_LDADD = $(top_builddir)/src/lib/libevas.la -lm
|
|
||||||
evas_buffer_test_CFLAGS = $(CFLAGS)
|
|
||||||
evas_buffer_test_DEPENDENCIES = $(top_builddir)/src/lib/libevas.la
|
|
||||||
|
|
||||||
if BUILD_ENGINE_SOFTWARE_QTOPIA
|
|
||||||
moc_evas_software_qtopia_main.cpp: evas_software_qtopia_main.h
|
|
||||||
@qt_moc@ evas_software_qtopia_main.h -o moc_evas_software_qtopia_main.cpp
|
|
||||||
|
|
||||||
evas_software_qtopia_test_SOURCES = evas_test_main.h evas_test_main.c evas_software_qtopia_main.h evas_software_qtopia_main.cpp moc_evas_software_qtopia_main.cpp
|
|
||||||
evas_software_qtopia_test_LDADD = $(top_builddir)/src/lib/libevas.la -lm @qt_libs@
|
|
||||||
evas_software_qtopia_test_CFLAGS = $(CFLAGS) @qt_cflags@
|
|
||||||
evas_software_qtopia_test_CXXFLAGS = $(CFLAGS) $(CXXFLAGS) @qt_cflags@
|
|
||||||
evas_software_qtopia_test_DEPENDENCIES = $(top_builddir)/src/lib/libevas.la
|
|
||||||
else
|
|
||||||
moc_evas_software_qtopia_main.cpp:
|
|
||||||
touch $@
|
|
||||||
endif
|
|
||||||
|
|
||||||
evas_gl_x11_test_SOURCES = evas_test_main.h evas_test_main.c evas_gl_x11_main.c
|
|
||||||
evas_gl_x11_test_LDADD = $(top_builddir)/src/lib/libevas.la -lm @x_libs@ @gl_libs@
|
|
||||||
evas_gl_x11_test_CFLAGS = $(CFLAGS) @x_cflags@ @gl_cflags@
|
|
||||||
evas_gl_x11_test_DEPENDENCIES = $(top_builddir)/src/lib/libevas.la
|
|
||||||
|
|
||||||
evas_cairo_x11_test_SOURCES = evas_test_main.h evas_test_main.c evas_cairo_x11_main.c
|
|
||||||
evas_cairo_x11_test_LDADD = $(top_builddir)/src/lib/libevas.la -lm @x_libs@ @CAIRO_LIBS@
|
|
||||||
evas_cairo_x11_test_CFLAGS = $(CFLAGS) @x_cflags@ @CAIRO_CFLAGS@
|
|
||||||
evas_cairo_x11_test_DEPENDENCIES = $(top_builddir)/src/lib/libevas.la
|
|
||||||
|
|
||||||
evas_xrender_x11_test_SOURCES = evas_test_main.h evas_test_main.c evas_xrender_x11_main.c
|
|
||||||
evas_xrender_x11_test_LDADD = $(top_builddir)/src/lib/libevas.la -lm @x_libs@
|
|
||||||
evas_xrender_x11_test_CFLAGS = $(CFLAGS) @x_cflags@
|
|
||||||
evas_xrender_x11_test_DEPENDENCIES = $(top_builddir)/src/lib/libevas.la
|
|
||||||
|
|
||||||
evas_xrender_xcb_test_SOURCES = evas_test_main.h evas_test_main.c evas_xrender_xcb_main.c
|
|
||||||
evas_xrender_xcb_test_LDADD = $(top_builddir)/src/lib/libevas.la -lm @xcbrender_libs@
|
|
||||||
evas_xrender_xcb_test_CFLAGS = $(CFLAGS) @xcbrender_cflags@
|
|
||||||
evas_xrender_xcb_test_DEPENDENCIES = $(top_builddir)/src/lib/libevas.la
|
|
||||||
|
|
||||||
EXTRA_DIST = evas_software_qtopia_main.h evas_software_qtopia_main.cpp
|
|
||||||
# moc_evas_software_qtopia_main.cpp
|
|
||||||
|
|
||||||
clean-local:
|
|
||||||
rm -f moc_evas_software_qtopia_main.cpp
|
|
|
@ -1,48 +0,0 @@
|
||||||
#include "evas_test_main.h"
|
|
||||||
|
|
||||||
#include "Evas.h"
|
|
||||||
#include "Evas_Engine_Buffer.h"
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
int
|
|
||||||
main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
int rot = 0;
|
|
||||||
unsigned char *img_buf = NULL;
|
|
||||||
|
|
||||||
if ((argc >= 3) && (!strcmp(argv[1], "-rot")))
|
|
||||||
rot = atoi(argv[2]);
|
|
||||||
evas_init();
|
|
||||||
evas = evas_new();
|
|
||||||
evas_output_method_set(evas, evas_render_method_lookup("buffer"));
|
|
||||||
evas_output_size_set(evas, win_w, win_h);
|
|
||||||
evas_output_viewport_set(evas, 0, 0, win_w, win_h);
|
|
||||||
{
|
|
||||||
Evas_Engine_Info_Buffer *einfo;
|
|
||||||
|
|
||||||
einfo = (Evas_Engine_Info_Buffer *) evas_engine_info_get(evas);
|
|
||||||
|
|
||||||
/* the following is specific to the engine */
|
|
||||||
einfo->info.depth_type = EVAS_ENGINE_BUFFER_DEPTH_RGB32;
|
|
||||||
img_buf = malloc(win_w * win_h * 3);
|
|
||||||
einfo->info.dest_buffer = img_buf;
|
|
||||||
einfo->info.dest_buffer_row_bytes = win_w * 3;
|
|
||||||
einfo->info.use_color_key = 1;
|
|
||||||
einfo->info.alpha_threshold = 128;
|
|
||||||
einfo->info.color_key_r = 0xff;
|
|
||||||
einfo->info.color_key_g = 0x00;
|
|
||||||
einfo->info.color_key_b = 0xff;
|
|
||||||
evas_engine_info_set(evas, (Evas_Engine_Info *) einfo);
|
|
||||||
}
|
|
||||||
setup();
|
|
||||||
orig_start_time = start_time = get_time();
|
|
||||||
for (;;)
|
|
||||||
{
|
|
||||||
loop();
|
|
||||||
evas_render(evas);
|
|
||||||
}
|
|
||||||
evas_shutdown();
|
|
||||||
return 0;
|
|
||||||
}
|
|
|
@ -1,139 +0,0 @@
|
||||||
#include "evas_test_main.h"
|
|
||||||
|
|
||||||
#include <X11/Xlib.h>
|
|
||||||
#include <X11/Xutil.h>
|
|
||||||
|
|
||||||
#include "Evas.h"
|
|
||||||
#include "Evas_Engine_Cairo_X11.h"
|
|
||||||
|
|
||||||
int
|
|
||||||
main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
int pause_me = 0;
|
|
||||||
Display *disp;
|
|
||||||
Window win;
|
|
||||||
XSetWindowAttributes attr;
|
|
||||||
XClassHint chint;
|
|
||||||
XSizeHints szhints;
|
|
||||||
|
|
||||||
disp = XOpenDisplay(NULL);
|
|
||||||
if (!disp)
|
|
||||||
{
|
|
||||||
printf("Error: cannot open display.\n");
|
|
||||||
exit(-1);
|
|
||||||
}
|
|
||||||
/* test evas_free.... :) */
|
|
||||||
evas_init();
|
|
||||||
evas = evas_new();
|
|
||||||
evas_output_method_set(evas, evas_render_method_lookup("cairo_x11"));
|
|
||||||
evas_output_size_set(evas, win_w, win_h);
|
|
||||||
evas_output_viewport_set(evas, 0, 0, win_w, win_h);
|
|
||||||
{
|
|
||||||
Evas_Engine_Info_Cairo_X11 *einfo;
|
|
||||||
|
|
||||||
einfo = (Evas_Engine_Info_Cairo_X11 *) evas_engine_info_get(evas);
|
|
||||||
|
|
||||||
/* the following is specific to the engine */
|
|
||||||
attr.backing_store = NotUseful;
|
|
||||||
attr.colormap = DefaultColormap(disp, DefaultScreen(disp));
|
|
||||||
attr.border_pixel = 0;
|
|
||||||
attr.background_pixmap = None;
|
|
||||||
attr.event_mask =
|
|
||||||
ExposureMask | ButtonPressMask | ButtonReleaseMask | PointerMotionMask |
|
|
||||||
StructureNotifyMask;
|
|
||||||
attr.bit_gravity = ForgetGravity;
|
|
||||||
|
|
||||||
win = XCreateWindow(disp, DefaultRootWindow(disp), 0, 0, win_w, win_h, 0,
|
|
||||||
DefaultDepth(disp, DefaultScreen(disp)),
|
|
||||||
InputOutput,
|
|
||||||
DefaultVisual(disp, DefaultScreen(disp)),
|
|
||||||
CWBackingStore | CWColormap |
|
|
||||||
CWBackPixmap | CWBorderPixel |
|
|
||||||
CWBitGravity | CWEventMask, &attr);
|
|
||||||
|
|
||||||
einfo->info.display = disp;
|
|
||||||
einfo->info.visual = DefaultVisual(disp, DefaultScreen(disp));
|
|
||||||
einfo->info.colormap = DefaultColormap(disp, DefaultScreen(disp));
|
|
||||||
einfo->info.drawable = win;
|
|
||||||
einfo->info.depth = DefaultDepth(disp, DefaultScreen(disp));
|
|
||||||
|
|
||||||
evas_engine_info_set(evas, (Evas_Engine_Info *) einfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
XStoreName(disp, win, "Evas Cairo X11 Test");
|
|
||||||
chint.res_name = "Evas_Cairo_X11_Test";
|
|
||||||
chint.res_class = "Main";
|
|
||||||
XSetClassHint(disp, win, &chint);
|
|
||||||
#if 0
|
|
||||||
szhints.flags = PMinSize | PMaxSize | PSize | USSize;
|
|
||||||
szhints.min_width = szhints.max_width = win_w;
|
|
||||||
szhints.min_height = szhints.max_height = win_h;
|
|
||||||
XSetWMNormalHints(disp, win, &szhints);
|
|
||||||
#endif
|
|
||||||
XMapWindow(disp, win);
|
|
||||||
XSync(disp, False);
|
|
||||||
|
|
||||||
setup();
|
|
||||||
|
|
||||||
orig_start_time = start_time = get_time();
|
|
||||||
for (;;)
|
|
||||||
{
|
|
||||||
XEvent ev;
|
|
||||||
|
|
||||||
while (XCheckMaskEvent(disp,
|
|
||||||
ExposureMask |
|
|
||||||
StructureNotifyMask |
|
|
||||||
KeyPressMask |
|
|
||||||
KeyReleaseMask |
|
|
||||||
ButtonPressMask |
|
|
||||||
ButtonReleaseMask | PointerMotionMask, &ev))
|
|
||||||
{
|
|
||||||
switch (ev.type)
|
|
||||||
{
|
|
||||||
case ButtonPress:
|
|
||||||
if (ev.xbutton.button == 3)
|
|
||||||
exit(0);
|
|
||||||
if (!pause_me)
|
|
||||||
pause_me = 1;
|
|
||||||
else if (pause_me == 1)
|
|
||||||
pause_me = 2;
|
|
||||||
else
|
|
||||||
pause_me = 1;
|
|
||||||
evas_event_feed_mouse_move(evas, ev.xbutton.x, ev.xbutton.y, 0, NULL);
|
|
||||||
evas_event_feed_mouse_down(evas, ev.xbutton.button, EVAS_BUTTON_NONE, 0, NULL);
|
|
||||||
break;
|
|
||||||
case ButtonRelease:
|
|
||||||
evas_event_feed_mouse_move(evas, ev.xbutton.x, ev.xbutton.y, 0, NULL);
|
|
||||||
evas_event_feed_mouse_up(evas, ev.xbutton.button, EVAS_BUTTON_NONE, 0, NULL);
|
|
||||||
break;
|
|
||||||
case MotionNotify:
|
|
||||||
evas_event_feed_mouse_move(evas, ev.xmotion.x, ev.xmotion.y, 0, NULL);
|
|
||||||
break;
|
|
||||||
case Expose:
|
|
||||||
evas_damage_rectangle_add(evas,
|
|
||||||
ev.xexpose.x,
|
|
||||||
ev.xexpose.y,
|
|
||||||
ev.xexpose.width,
|
|
||||||
ev.xexpose.height);
|
|
||||||
break;
|
|
||||||
case ConfigureNotify:
|
|
||||||
evas_output_size_set(evas,
|
|
||||||
ev.xconfigure.width,
|
|
||||||
ev.xconfigure.height);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!(pause_me == 1))
|
|
||||||
{
|
|
||||||
loop();
|
|
||||||
evas_render(evas);
|
|
||||||
XFlush(disp);
|
|
||||||
}
|
|
||||||
if (pause_me == 2)
|
|
||||||
usleep(100000);
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
evas_shutdown();
|
|
||||||
}
|
|
|
@ -1,133 +0,0 @@
|
||||||
#include "evas_test_main.h"
|
|
||||||
|
|
||||||
#include <directfb/directfb.h>
|
|
||||||
|
|
||||||
#include "Evas.h"
|
|
||||||
#include "Evas_Engine_DirectFB.h"
|
|
||||||
|
|
||||||
/* macro for a safe call to DirectFB functions */
|
|
||||||
#define DFBCHECK(x...) \
|
|
||||||
{ \
|
|
||||||
err = x; \
|
|
||||||
if (err != DFB_OK) { \
|
|
||||||
fprintf( stderr, "%s <%d>:\n\t", __FILE__, __LINE__ ); \
|
|
||||||
DirectFBErrorFatal( #x, err ); \
|
|
||||||
} \
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
main(int argc, char *argv[])
|
|
||||||
{
|
|
||||||
IDirectFB *dfb = NULL;
|
|
||||||
IDirectFBSurface *primary;
|
|
||||||
IDirectFBDisplayLayer *layer;
|
|
||||||
IDirectFBInputDevice *keyboard;
|
|
||||||
IDirectFBInputDevice *mouse;
|
|
||||||
IDirectFBEventBuffer *buffer;
|
|
||||||
DFBResult err;
|
|
||||||
DFBSurfaceDescription dsc;
|
|
||||||
DFBDisplayLayerConfig layer_config;
|
|
||||||
DFBInputEvent evt;
|
|
||||||
|
|
||||||
int quit = 0;
|
|
||||||
int paused = 0;
|
|
||||||
|
|
||||||
DFBCHECK(DirectFBInit(&argc, &argv));
|
|
||||||
|
|
||||||
/* create the super interface */
|
|
||||||
DFBCHECK(DirectFBCreate(&dfb));
|
|
||||||
|
|
||||||
dfb->SetCooperativeLevel(dfb, DFSCL_FULLSCREEN);
|
|
||||||
|
|
||||||
DFBCHECK(dfb->GetDisplayLayer(dfb, DLID_PRIMARY, &layer));
|
|
||||||
layer->GetConfiguration(layer, &layer_config);
|
|
||||||
|
|
||||||
/* get the primary surface, i.e. the surface of the primary layer we have
|
|
||||||
* exclusive access to */
|
|
||||||
memset(&dsc, 0, sizeof(DFBSurfaceDescription));
|
|
||||||
dsc.flags = DSDESC_CAPS | DSDESC_WIDTH | DSDESC_HEIGHT;
|
|
||||||
dsc.width = layer_config.width;
|
|
||||||
dsc.height = layer_config.height;
|
|
||||||
|
|
||||||
dsc.caps = DSCAPS_PRIMARY;
|
|
||||||
|
|
||||||
DFBCHECK(dfb->CreateSurface(dfb, &dsc, &primary));
|
|
||||||
|
|
||||||
DFBCHECK(dfb->GetInputDevice(dfb, DIDID_KEYBOARD, &keyboard));
|
|
||||||
DFBCHECK(dfb->GetInputDevice(dfb, DIDID_MOUSE, &mouse));
|
|
||||||
DFBCHECK (dfb->CreateInputEventBuffer (dfb, DICAPS_ALL, DFB_TRUE, &buffer));
|
|
||||||
|
|
||||||
evas_init();
|
|
||||||
evas = evas_new();
|
|
||||||
evas_output_method_set(evas, evas_render_method_lookup("directfb"));
|
|
||||||
evas_output_size_set(evas, win_w, win_h);
|
|
||||||
evas_output_viewport_set(evas, 0, 0, win_w, win_h);
|
|
||||||
{
|
|
||||||
Evas_Engine_Info_DirectFB *einfo;
|
|
||||||
|
|
||||||
einfo = (Evas_Engine_Info_DirectFB *) evas_engine_info_get(evas);
|
|
||||||
|
|
||||||
einfo->info.dfb = dfb;
|
|
||||||
einfo->info.surface = primary;
|
|
||||||
einfo->info.flags = DSDRAW_BLEND;
|
|
||||||
evas_engine_info_set(evas, (Evas_Engine_Info *) einfo);
|
|
||||||
}
|
|
||||||
setup();
|
|
||||||
start_time = get_time();
|
|
||||||
|
|
||||||
while (!quit)
|
|
||||||
{
|
|
||||||
|
|
||||||
while (buffer->GetEvent(buffer, DFB_EVENT(&evt)) == DFB_OK)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (evt.type)
|
|
||||||
{
|
|
||||||
|
|
||||||
case DIET_BUTTONPRESS:
|
|
||||||
switch (evt.button)
|
|
||||||
{
|
|
||||||
case DIBI_LEFT:
|
|
||||||
if (paused == 0)
|
|
||||||
paused = 1;
|
|
||||||
else if (paused == 1)
|
|
||||||
paused = 0;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case DIET_KEYPRESS:
|
|
||||||
switch (evt.key_symbol)
|
|
||||||
{
|
|
||||||
case DIKS_ESCAPE:
|
|
||||||
case DIKS_SMALL_Q:
|
|
||||||
case DIKS_CAPITAL_Q:
|
|
||||||
case DIKS_BACK:
|
|
||||||
case DIKS_STOP:
|
|
||||||
quit = 1;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!paused)
|
|
||||||
{
|
|
||||||
loop();
|
|
||||||
evas_render(evas);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
buffer->Release(buffer);
|
|
||||||
layer->Release(layer);
|
|
||||||
primary->Release(primary);
|
|
||||||
dfb->Release(dfb);
|
|
||||||
|
|
||||||
evas_shutdown();
|
|
||||||
return 0;
|
|
||||||
}
|
|
|
@ -1,419 +0,0 @@
|
||||||
/*
|
|
||||||
(c) Copyright 2000-2002 convergence integrated media GmbH.
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Written by Denis Oliver Kropp <dok@directfb.org>,
|
|
||||||
Andreas Hundt <andi@fischlustig.de> and
|
|
||||||
Sven Neumann <neo@directfb.org>.
|
|
||||||
|
|
||||||
This file is subject to the terms and conditions of the MIT License:
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person
|
|
||||||
obtaining a copy of this software and associated documentation
|
|
||||||
files (the "Software"), to deal in the Software without restriction,
|
|
||||||
including without limitation the rights to use, copy, modify, merge,
|
|
||||||
publish, distribute, sublicense, and/or sell copies of the Software,
|
|
||||||
and to permit persons to whom the Software is furnished to do so,
|
|
||||||
subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be
|
|
||||||
included in all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
||||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
||||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
||||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
||||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
||||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
||||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <math.h>
|
|
||||||
#include <time.h>
|
|
||||||
|
|
||||||
#include <directfb/directfb.h>
|
|
||||||
#include <directfb/directfb_version.h>
|
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
#include "Evas.h"
|
|
||||||
#include "Evas_Engine_DirectFB.h"
|
|
||||||
|
|
||||||
#include "evas_test_main.h"
|
|
||||||
|
|
||||||
/* macro for a safe call to DirectFB functions */
|
|
||||||
#define DFBCHECK(x...) \
|
|
||||||
{ \
|
|
||||||
err = x; \
|
|
||||||
if (err != DFB_OK) { \
|
|
||||||
fprintf( stderr, "%s <%d>:\n\t", __FILE__, __LINE__ ); \
|
|
||||||
DirectFBErrorFatal( #x, err ); \
|
|
||||||
} \
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline long myclock()
|
|
||||||
{
|
|
||||||
struct timeval tv;
|
|
||||||
|
|
||||||
gettimeofday (&tv, NULL);
|
|
||||||
return (tv.tv_sec * 1000 + tv.tv_usec / 1000);
|
|
||||||
}
|
|
||||||
|
|
||||||
int main( int argc, char *argv[] )
|
|
||||||
{
|
|
||||||
IDirectFB *dfb;
|
|
||||||
IDirectFBDisplayLayer *layer;
|
|
||||||
|
|
||||||
IDirectFBSurface *bgsurface;
|
|
||||||
IDirectFBImageProvider *provider;
|
|
||||||
|
|
||||||
IDirectFBWindow *window1;
|
|
||||||
IDirectFBWindow *window2;
|
|
||||||
IDirectFBSurface *window_surface1;
|
|
||||||
IDirectFBSurface *window_surface2;
|
|
||||||
|
|
||||||
IDirectFBEventBuffer *buffer;
|
|
||||||
|
|
||||||
DFBDisplayLayerConfig layer_config;
|
|
||||||
|
|
||||||
#if ((DIRECTFB_MAJOR_VERSION == 0) && (DIRECTFB_MINOR_VERSION == 9) && (DIRECTFB_MICRO_VERSION < 23))
|
|
||||||
DFBCardCapabilities caps;
|
|
||||||
#else
|
|
||||||
DFBGraphicsDeviceDescription caps;
|
|
||||||
#endif
|
|
||||||
IDirectFBWindow* upper;
|
|
||||||
DFBWindowID id1;
|
|
||||||
|
|
||||||
IDirectFBFont *font;
|
|
||||||
int fontheight;
|
|
||||||
int err;
|
|
||||||
int quit = 0;
|
|
||||||
|
|
||||||
|
|
||||||
DFBCHECK(DirectFBInit( &argc, &argv ));
|
|
||||||
DFBCHECK(DirectFBCreate( &dfb ));
|
|
||||||
|
|
||||||
#if ((DIRECTFB_MAJOR_VERSION == 0) && (DIRECTFB_MINOR_VERSION == 9) && (DIRECTFB_MICRO_VERSION < 23))
|
|
||||||
dfb->GetCardCapabilities( dfb, &caps );
|
|
||||||
#else
|
|
||||||
dfb->GetDeviceDescription( dfb, &caps );
|
|
||||||
#endif
|
|
||||||
|
|
||||||
dfb->GetDisplayLayer( dfb, DLID_PRIMARY, &layer );
|
|
||||||
|
|
||||||
if (!((caps.blitting_flags & DSBLIT_BLEND_ALPHACHANNEL) &&
|
|
||||||
(caps.blitting_flags & DSBLIT_BLEND_COLORALPHA )))
|
|
||||||
{
|
|
||||||
layer_config.flags = DLCONF_BUFFERMODE;
|
|
||||||
layer_config.buffermode = DLBM_BACKSYSTEM;
|
|
||||||
|
|
||||||
layer->SetConfiguration( layer, &layer_config );
|
|
||||||
}
|
|
||||||
|
|
||||||
layer->GetConfiguration( layer, &layer_config );
|
|
||||||
layer->EnableCursor ( layer, 1 );
|
|
||||||
|
|
||||||
{
|
|
||||||
DFBFontDescription desc;
|
|
||||||
|
|
||||||
desc.flags = DFDESC_HEIGHT;
|
|
||||||
desc.height = layer_config.width/50;
|
|
||||||
|
|
||||||
DFBCHECK(dfb->CreateFont( dfb, PACKAGE_DATA_DIR"/grunge.ttf", &desc, &font ));
|
|
||||||
font->GetHeight( font, &fontheight );
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
DFBSurfaceDescription desc;
|
|
||||||
|
|
||||||
DFBCHECK(dfb->CreateImageProvider( dfb,
|
|
||||||
PACKAGE_DATA_DIR"/bg.png",
|
|
||||||
&provider ));
|
|
||||||
|
|
||||||
desc.flags = DSDESC_WIDTH | DSDESC_HEIGHT;
|
|
||||||
desc.width = layer_config.width;
|
|
||||||
desc.height = layer_config.height;
|
|
||||||
|
|
||||||
DFBCHECK(dfb->CreateSurface( dfb, &desc, &bgsurface ) );
|
|
||||||
|
|
||||||
|
|
||||||
provider->RenderTo( provider, bgsurface, NULL );
|
|
||||||
provider->Release( provider );
|
|
||||||
|
|
||||||
DFBCHECK(bgsurface->SetFont( bgsurface, font ));
|
|
||||||
|
|
||||||
bgsurface->SetColor( bgsurface, 0xCF, 0xCF, 0xFF, 0xFF );
|
|
||||||
bgsurface->DrawString( bgsurface,
|
|
||||||
"Move the mouse over a window to activate it.",
|
|
||||||
-1, 10, 0, DSTF_LEFT | DSTF_TOP );
|
|
||||||
|
|
||||||
bgsurface->SetColor( bgsurface, 0xFF, 0xCF, 0xFF, 0xFF );
|
|
||||||
bgsurface->DrawString( bgsurface,
|
|
||||||
"You can drag them around, too, if you want.",
|
|
||||||
-1, 10 , 40, DSTF_LEFT | DSTF_TOP );
|
|
||||||
|
|
||||||
bgsurface->SetColor( bgsurface, 0xCF, 0xCF, 0xFF, 0xFF );
|
|
||||||
bgsurface->DrawString( bgsurface,
|
|
||||||
"The one with funky stuff happening and things flying around is an evas.",
|
|
||||||
-1, 10, 80, DSTF_LEFT | DSTF_TOP );
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
layer->SetBackgroundImage( layer, bgsurface );
|
|
||||||
layer->SetBackgroundMode( layer, DLBM_IMAGE );
|
|
||||||
}
|
|
||||||
{
|
|
||||||
DFBWindowDescription desc;
|
|
||||||
desc.flags = ( DWDESC_POSX | DWDESC_POSY |
|
|
||||||
DWDESC_WIDTH | DWDESC_HEIGHT | DWDESC_CAPS );
|
|
||||||
|
|
||||||
desc.posx = 20;
|
|
||||||
desc.posy = 120;
|
|
||||||
desc.width = 200;
|
|
||||||
desc.height = 200;
|
|
||||||
desc.caps = DWCAPS_ALPHACHANNEL;
|
|
||||||
|
|
||||||
DFBCHECK( layer->CreateWindow( layer, &desc, &window2 ) );
|
|
||||||
window2->GetSurface( window2, &window_surface2 );
|
|
||||||
|
|
||||||
window2->SetOpacity( window2, 0xFF );
|
|
||||||
|
|
||||||
window2->CreateEventBuffer( window2, &buffer );
|
|
||||||
|
|
||||||
{
|
|
||||||
window_surface2->SetColor( window_surface2,
|
|
||||||
0x00, 0x30, 0x10, 0xc0 );
|
|
||||||
window_surface2->DrawRectangle( window_surface2, 0, 0,
|
|
||||||
desc.width, desc.height );
|
|
||||||
window_surface2->SetColor( window_surface2,
|
|
||||||
0x80, 0xa0, 0x00, 0x90 );
|
|
||||||
window_surface2->FillRectangle( window_surface2, 1, 1,
|
|
||||||
desc.width-2, desc.height-2 );
|
|
||||||
|
|
||||||
|
|
||||||
DFBCHECK(window_surface2->SetFont(window_surface2, font ));
|
|
||||||
window_surface2->SetColor( window_surface2, 0xCF, 0xFF, 0xCF, 0xFF );
|
|
||||||
|
|
||||||
window_surface2->DrawString( window_surface2,
|
|
||||||
"Pants!",
|
|
||||||
-1,10, fontheight + 5, DSTF_LEFT | DSTF_TOP );
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
window_surface2->Flip( window_surface2, NULL, 0 );
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
DFBWindowDescription desc;
|
|
||||||
|
|
||||||
desc.flags = ( DWDESC_POSX | DWDESC_POSY |
|
|
||||||
DWDESC_WIDTH | DWDESC_HEIGHT | DWDESC_CAPS );
|
|
||||||
desc.posx = 200;
|
|
||||||
desc.posy = 200;
|
|
||||||
desc.width = 240;
|
|
||||||
desc.height = 320;
|
|
||||||
desc.caps = DWCAPS_ALPHACHANNEL;
|
|
||||||
|
|
||||||
DFBCHECK(layer->CreateWindow( layer, &desc, &window1 ) );
|
|
||||||
window1->GetSurface( window1, &window_surface1 );
|
|
||||||
|
|
||||||
window_surface1->SetColor( window_surface1, 0xFF, 0x20, 0x20, 0x90 );
|
|
||||||
window_surface1->DrawRectangle( window_surface1, 0, 0,
|
|
||||||
desc.width, desc.height );
|
|
||||||
|
|
||||||
window_surface1->Flip( window_surface1, NULL, 0 );
|
|
||||||
|
|
||||||
window1->SetOpacity( window1, 0xFF );
|
|
||||||
|
|
||||||
window1->GetID( window1, &id1 );
|
|
||||||
|
|
||||||
window1->AttachEventBuffer( window1, buffer );
|
|
||||||
}
|
|
||||||
|
|
||||||
window1->RequestFocus( window1 );
|
|
||||||
window1->RaiseToTop( window1 );
|
|
||||||
upper = window1;
|
|
||||||
{
|
|
||||||
evas_init();
|
|
||||||
evas = evas_new();
|
|
||||||
evas_output_method_set(evas, evas_render_method_lookup("directfb"));
|
|
||||||
evas_output_size_set(evas, 240, 320);
|
|
||||||
evas_output_viewport_set(evas, 0, 0, 240, 320);
|
|
||||||
{
|
|
||||||
Evas_Engine_Info_DirectFB *einfo;
|
|
||||||
|
|
||||||
einfo = (Evas_Engine_Info_DirectFB *) evas_engine_info_get(evas);
|
|
||||||
|
|
||||||
einfo->info.dfb = dfb;
|
|
||||||
einfo->info.surface = window_surface1;
|
|
||||||
einfo->info.flags = DSDRAW_BLEND;
|
|
||||||
evas_engine_info_set(evas, (Evas_Engine_Info *) einfo);
|
|
||||||
}
|
|
||||||
setup();
|
|
||||||
evas_render(evas);
|
|
||||||
start_time = get_time();
|
|
||||||
}
|
|
||||||
|
|
||||||
while (!quit) {
|
|
||||||
static IDirectFBWindow* active = NULL;
|
|
||||||
static int grabbed = 0;
|
|
||||||
static int startx = 0;
|
|
||||||
static int starty = 0;
|
|
||||||
static int endx = 0;
|
|
||||||
static int endy = 0;
|
|
||||||
DFBWindowEvent evt;
|
|
||||||
|
|
||||||
buffer->WaitForEventWithTimeout( buffer, 0, 10 );
|
|
||||||
|
|
||||||
while (buffer->GetEvent( buffer, DFB_EVENT(&evt) ) == DFB_OK) {
|
|
||||||
IDirectFBWindow* window;
|
|
||||||
|
|
||||||
if (evt.window_id == id1)
|
|
||||||
window = window1;
|
|
||||||
else
|
|
||||||
window = window2;
|
|
||||||
|
|
||||||
if (active) {
|
|
||||||
switch (evt.type) {
|
|
||||||
|
|
||||||
case DWET_BUTTONDOWN:
|
|
||||||
if (!grabbed && evt.button == DIBI_LEFT) {
|
|
||||||
grabbed = 1;
|
|
||||||
layer->GetCursorPosition( layer,
|
|
||||||
&startx, &starty );
|
|
||||||
window->GrabPointer( window );
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case DWET_BUTTONUP:
|
|
||||||
switch (evt.button) {
|
|
||||||
case DIBI_LEFT:
|
|
||||||
if (grabbed) {
|
|
||||||
window->UngrabPointer( window );
|
|
||||||
grabbed = 0;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case DIBI_MIDDLE:
|
|
||||||
upper->LowerToBottom( upper );
|
|
||||||
upper = (upper == window1) ? window2 : window1;
|
|
||||||
break;
|
|
||||||
case DIBI_RIGHT:
|
|
||||||
quit = DIKS_DOWN;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case DWET_KEYDOWN:
|
|
||||||
if (grabbed)
|
|
||||||
break;
|
|
||||||
switch (evt.key_id) {
|
|
||||||
case DIKI_RIGHT:
|
|
||||||
active->Move (active, 1, 0);
|
|
||||||
break;
|
|
||||||
case DIKI_LEFT:
|
|
||||||
active->Move (active, -1, 0);
|
|
||||||
break;
|
|
||||||
case DIKI_UP:
|
|
||||||
active->Move (active, 0, -1);
|
|
||||||
break;
|
|
||||||
case DIKI_DOWN:
|
|
||||||
active->Move (active, 0, 1);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case DWET_LOSTFOCUS:
|
|
||||||
if (!grabbed)
|
|
||||||
active = NULL;
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (evt.type == DWET_GOTFOCUS)
|
|
||||||
active = window;
|
|
||||||
|
|
||||||
switch (evt.type) {
|
|
||||||
|
|
||||||
case DWET_MOTION:
|
|
||||||
endx = evt.cx;
|
|
||||||
endy = evt.cy;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case DWET_KEYDOWN:
|
|
||||||
switch (evt.key_symbol) {
|
|
||||||
case DIKS_ESCAPE:
|
|
||||||
case DIKS_SMALL_Q:
|
|
||||||
case DIKS_CAPITAL_Q:
|
|
||||||
case DIKS_BACK:
|
|
||||||
case DIKS_STOP:
|
|
||||||
quit = 1;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (active) {
|
|
||||||
if (grabbed) {
|
|
||||||
active->Move( active, endx - startx, endy - starty);
|
|
||||||
startx = endx;
|
|
||||||
starty = endy;
|
|
||||||
}
|
|
||||||
active->SetOpacity( active,
|
|
||||||
(sin( myclock()/300.0 ) * 85) + 170 );
|
|
||||||
}
|
|
||||||
loop();
|
|
||||||
{
|
|
||||||
Evas_List *updates;
|
|
||||||
|
|
||||||
updates = evas_render_updates(evas);
|
|
||||||
/* efficient update.. only flip the rectangle regions that changed! */
|
|
||||||
if (updates)
|
|
||||||
{
|
|
||||||
DFBRegion region;
|
|
||||||
Evas_List *l;
|
|
||||||
|
|
||||||
for (l = updates; l; l = l->next)
|
|
||||||
{
|
|
||||||
Evas_Rectangle *rect;
|
|
||||||
|
|
||||||
rect = l->data;
|
|
||||||
region.x1 = rect->x;
|
|
||||||
region.y1 = rect->y;
|
|
||||||
region.x2 = rect->x + rect->w - 1;
|
|
||||||
region.y2 = rect->y + rect->h - 1;
|
|
||||||
window_surface1->Flip(window_surface1, ®ion,
|
|
||||||
DSFLIP_BLIT);
|
|
||||||
}
|
|
||||||
evas_render_updates_free(updates);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
buffer->Release( buffer );
|
|
||||||
window_surface2->Release( window_surface2 );
|
|
||||||
window_surface1->Release( window_surface1 );
|
|
||||||
window2->Release( window2 );
|
|
||||||
window1->Release( window1 );
|
|
||||||
layer->Release( layer );
|
|
||||||
bgsurface->Release( bgsurface );
|
|
||||||
dfb->Release( dfb );
|
|
||||||
|
|
||||||
evas_shutdown();
|
|
||||||
return 0;
|
|
||||||
}
|
|
|
@ -1,43 +0,0 @@
|
||||||
#include "evas_test_main.h"
|
|
||||||
|
|
||||||
#include "Evas.h"
|
|
||||||
#include "Evas_Engine_FB.h"
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
int
|
|
||||||
main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
int rot = 0;
|
|
||||||
|
|
||||||
if ((argc >= 3) && (!strcmp(argv[1], "-rot")))
|
|
||||||
rot = atoi(argv[2]);
|
|
||||||
evas_init();
|
|
||||||
evas = evas_new();
|
|
||||||
evas_output_method_set(evas, evas_render_method_lookup("fb"));
|
|
||||||
evas_output_size_set(evas, win_w, win_h);
|
|
||||||
evas_output_viewport_set(evas, 0, 0, win_w, win_h);
|
|
||||||
{
|
|
||||||
Evas_Engine_Info_FB *einfo;
|
|
||||||
|
|
||||||
einfo = (Evas_Engine_Info_FB *) evas_engine_info_get(evas);
|
|
||||||
|
|
||||||
/* the following is specific to the engine */
|
|
||||||
einfo->info.virtual_terminal = 0;
|
|
||||||
einfo->info.device_number = 0;
|
|
||||||
einfo->info.refresh = 0;
|
|
||||||
einfo->info.rotation = rot;
|
|
||||||
|
|
||||||
evas_engine_info_set(evas, (Evas_Engine_Info *) einfo);
|
|
||||||
}
|
|
||||||
setup();
|
|
||||||
orig_start_time = start_time = get_time();
|
|
||||||
for (;;)
|
|
||||||
{
|
|
||||||
loop();
|
|
||||||
evas_render(evas);
|
|
||||||
}
|
|
||||||
evas_shutdown();
|
|
||||||
return 0;
|
|
||||||
}
|
|
|
@ -1,143 +0,0 @@
|
||||||
#include "evas_test_main.h"
|
|
||||||
|
|
||||||
#include <unistd.h>
|
|
||||||
|
|
||||||
#include <X11/Xlib.h>
|
|
||||||
#include <X11/Xutil.h>
|
|
||||||
#include <GL/gl.h>
|
|
||||||
#include <GL/glu.h>
|
|
||||||
#include <GL/glx.h>
|
|
||||||
|
|
||||||
#include "Evas.h"
|
|
||||||
#include "Evas_Engine_GL_X11.h"
|
|
||||||
|
|
||||||
int
|
|
||||||
main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
int pause_me = 0;
|
|
||||||
Display *disp;
|
|
||||||
Window win;
|
|
||||||
XSetWindowAttributes attr;
|
|
||||||
XClassHint chint;
|
|
||||||
|
|
||||||
disp = XOpenDisplay(NULL);
|
|
||||||
if (!disp)
|
|
||||||
{
|
|
||||||
printf("Error: cannot open display.\n");
|
|
||||||
exit(-1);
|
|
||||||
}
|
|
||||||
/* test evas_free.... :) */
|
|
||||||
evas_init();
|
|
||||||
evas = evas_new();
|
|
||||||
evas_output_method_set(evas, evas_render_method_lookup("gl_x11"));
|
|
||||||
evas_output_size_set(evas, win_w, win_h);
|
|
||||||
evas_output_viewport_set(evas, 0, 0, win_w, win_h);
|
|
||||||
{
|
|
||||||
Evas_Engine_Info_GL_X11 *einfo;
|
|
||||||
|
|
||||||
einfo = (Evas_Engine_Info_GL_X11 *) evas_engine_info_get(evas);
|
|
||||||
|
|
||||||
/* the following is specific to the engine */
|
|
||||||
attr.backing_store = NotUseful;
|
|
||||||
attr.colormap = einfo->func.best_colormap_get(disp, DefaultScreen(disp));
|
|
||||||
attr.border_pixel = 0;
|
|
||||||
attr.background_pixmap = None;
|
|
||||||
attr.event_mask =
|
|
||||||
ExposureMask | ButtonPressMask | ButtonReleaseMask | PointerMotionMask |
|
|
||||||
StructureNotifyMask;
|
|
||||||
attr.bit_gravity = ForgetGravity;
|
|
||||||
|
|
||||||
win = XCreateWindow(disp, DefaultRootWindow(disp), 0, 0, win_w, win_h, 0,
|
|
||||||
einfo->func.best_depth_get(disp, DefaultScreen(disp)),
|
|
||||||
InputOutput,
|
|
||||||
einfo->func.best_visual_get(disp, DefaultScreen(disp)),
|
|
||||||
CWBackingStore | CWColormap |
|
|
||||||
CWBackPixmap | CWBorderPixel |
|
|
||||||
CWBitGravity | CWEventMask, &attr);
|
|
||||||
|
|
||||||
einfo->info.display = disp;
|
|
||||||
einfo->info.visual = einfo->func.best_visual_get(disp, DefaultScreen(disp));
|
|
||||||
einfo->info.colormap = einfo->func.best_colormap_get(disp, DefaultScreen(disp));
|
|
||||||
einfo->info.drawable = win;
|
|
||||||
einfo->info.depth = einfo->func.best_depth_get(disp, DefaultScreen(disp));
|
|
||||||
|
|
||||||
evas_engine_info_set(evas, (Evas_Engine_Info *) einfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
XStoreName(disp, win, "Evas GL X11 Test");
|
|
||||||
chint.res_name = "Evas_GL_X11_Test";
|
|
||||||
chint.res_class = "Main";
|
|
||||||
XSetClassHint(disp, win, &chint);
|
|
||||||
#if 0
|
|
||||||
szhints.flags = PMinSize | PMaxSize | PSize | USSize;
|
|
||||||
szhints.min_width = szhints.max_width = win_w;
|
|
||||||
szhints.min_height = szhints.max_height = win_h;
|
|
||||||
XSetWMNormalHints(disp, win, &szhints);
|
|
||||||
#endif
|
|
||||||
XMapWindow(disp, win);
|
|
||||||
XSync(disp, False);
|
|
||||||
|
|
||||||
setup();
|
|
||||||
|
|
||||||
orig_start_time = start_time = get_time();
|
|
||||||
for (;;)
|
|
||||||
{
|
|
||||||
XEvent ev;
|
|
||||||
|
|
||||||
while (XCheckMaskEvent(disp,
|
|
||||||
ExposureMask |
|
|
||||||
StructureNotifyMask |
|
|
||||||
KeyPressMask |
|
|
||||||
KeyReleaseMask |
|
|
||||||
ButtonPressMask |
|
|
||||||
ButtonReleaseMask | PointerMotionMask, &ev))
|
|
||||||
{
|
|
||||||
switch (ev.type)
|
|
||||||
{
|
|
||||||
case ButtonPress:
|
|
||||||
if (ev.xbutton.button == 3)
|
|
||||||
exit(0);
|
|
||||||
if (!pause_me)
|
|
||||||
pause_me = 1;
|
|
||||||
else if (pause_me == 1)
|
|
||||||
pause_me = 2;
|
|
||||||
else
|
|
||||||
pause_me = 1;
|
|
||||||
evas_event_feed_mouse_move(evas, ev.xbutton.x, ev.xbutton.y, 0, NULL);
|
|
||||||
evas_event_feed_mouse_down(evas, ev.xbutton.button, EVAS_BUTTON_NONE, 0, NULL);
|
|
||||||
break;
|
|
||||||
case ButtonRelease:
|
|
||||||
evas_event_feed_mouse_move(evas, ev.xbutton.x, ev.xbutton.y, 0, NULL);
|
|
||||||
evas_event_feed_mouse_up(evas, ev.xbutton.button, EVAS_BUTTON_NONE, 0, NULL);
|
|
||||||
break;
|
|
||||||
case MotionNotify:
|
|
||||||
evas_event_feed_mouse_move(evas, ev.xmotion.x, ev.xmotion.y, 0, NULL);
|
|
||||||
break;
|
|
||||||
case Expose:
|
|
||||||
evas_damage_rectangle_add(evas,
|
|
||||||
ev.xexpose.x,
|
|
||||||
ev.xexpose.y,
|
|
||||||
ev.xexpose.width,
|
|
||||||
ev.xexpose.height);
|
|
||||||
break;
|
|
||||||
case ConfigureNotify:
|
|
||||||
evas_output_size_set(evas,
|
|
||||||
ev.xconfigure.width,
|
|
||||||
ev.xconfigure.height);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!(pause_me == 1))
|
|
||||||
{
|
|
||||||
loop();
|
|
||||||
evas_render(evas);
|
|
||||||
XFlush(disp);
|
|
||||||
}
|
|
||||||
if (pause_me == 2)
|
|
||||||
usleep(100000);
|
|
||||||
}
|
|
||||||
evas_shutdown();
|
|
||||||
return 0;
|
|
||||||
}
|
|
|
@ -1,141 +0,0 @@
|
||||||
#ifndef QT_QWS_EBX
|
|
||||||
#define QT_QWS_EBX
|
|
||||||
#endif
|
|
||||||
#ifndef QT_QWS_CUSTOM
|
|
||||||
#define QT_QWS_CUSTOM
|
|
||||||
#endif
|
|
||||||
#ifndef QWS
|
|
||||||
#define QWS
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "evas_test_main.h"
|
|
||||||
#include <qpe/qpeapplication.h>
|
|
||||||
#include "evas_software_qtopia_main.h"
|
|
||||||
#include <qstring.h>
|
|
||||||
#include "Evas.h"
|
|
||||||
#include "Evas_Engine_Software_Qtopia.h"
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
EvasTargetWidget::EvasTargetWidget(QWidget *parent, const char *name)
|
|
||||||
: QWidget(parent, name)
|
|
||||||
{
|
|
||||||
this->setFocusPolicy(StrongFocus);
|
|
||||||
this->setBackgroundMode(NoBackground);
|
|
||||||
idleTimer = new QTimer(this);
|
|
||||||
connect(idleTimer, SIGNAL(timeout()), SLOT(idleHandler()));
|
|
||||||
idleTimer->start(0, FALSE);
|
|
||||||
fullscreen = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
QSizePolicy EvasTargetWidget::sizePolicy() const
|
|
||||||
{
|
|
||||||
return QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
|
||||||
}
|
|
||||||
|
|
||||||
void EvasTargetWidget::mousePressEvent(QMouseEvent *e)
|
|
||||||
{
|
|
||||||
if (fullscreen) disableFullscreen();
|
|
||||||
else enableFullscreen();
|
|
||||||
evas_event_feed_mouse_move(evas, e->x(), e->y(), NULL);
|
|
||||||
evas_event_feed_mouse_down(evas, e->button(), EVAS_BUTTON_NONE, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
void EvasTargetWidget::mouseReleaseEvent(QMouseEvent *e)
|
|
||||||
{
|
|
||||||
evas_event_feed_mouse_move(evas, e->x(), e->y(), NULL);
|
|
||||||
evas_event_feed_mouse_up(evas, e->button(). EVAS_BUTTON_NONE, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
void EvasTargetWidget::mouseMoveEvent(QMouseEvent *e)
|
|
||||||
{
|
|
||||||
evas_event_feed_mouse_move(evas, e->x(), e->y(), NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
void EvasTargetWidget::paintEvent(QPaintEvent *e)
|
|
||||||
{
|
|
||||||
QRect r = e->rect();
|
|
||||||
evas_damage_rectangle_add(evas, r.x(), r.y(), r.width(), r.height());
|
|
||||||
}
|
|
||||||
|
|
||||||
void EvasTargetWidget::resizeEvent(QResizeEvent *e)
|
|
||||||
{
|
|
||||||
QSize sz;
|
|
||||||
|
|
||||||
sz = e->size();
|
|
||||||
evas_output_size_set(evas, sz.width(), sz.height());
|
|
||||||
}
|
|
||||||
|
|
||||||
void EvasTargetWidget::idleHandler(void)
|
|
||||||
{
|
|
||||||
loop();
|
|
||||||
evas_render(evas);
|
|
||||||
}
|
|
||||||
|
|
||||||
void EvasTargetWidget::enableFullscreen(void)
|
|
||||||
{
|
|
||||||
fullscreen = 1;
|
|
||||||
setFixedSize(qApp->desktop()->size());
|
|
||||||
showNormal();
|
|
||||||
reparent(0, WStyle_Customize|WStyle_NoBorder, QPoint(0,0));
|
|
||||||
showFullScreen();
|
|
||||||
}
|
|
||||||
|
|
||||||
void EvasTargetWidget::disableFullscreen(void)
|
|
||||||
{
|
|
||||||
fullscreen = 0;
|
|
||||||
showNormal();
|
|
||||||
showMaximized();
|
|
||||||
}
|
|
||||||
|
|
||||||
EvasTestApp::EvasTestApp(QWidget *parent, const char *name, int wFlags)
|
|
||||||
: QMainWindow(parent, name, wFlags)
|
|
||||||
{
|
|
||||||
setCaption(tr("Evas Qtopia Demo"));
|
|
||||||
|
|
||||||
evas_target_widget = new EvasTargetWidget(this, "EvasTargetWidget");
|
|
||||||
|
|
||||||
evas_init();
|
|
||||||
evas = evas_new();
|
|
||||||
evas_output_method_set(evas, evas_render_method_lookup("software_qtopia"));
|
|
||||||
evas_output_size_set(evas, win_w, win_h);
|
|
||||||
evas_output_viewport_set(evas, 0, 0, win_w, win_h);
|
|
||||||
{
|
|
||||||
Evas_Engine_Info_Software_Qtopia *einfo;
|
|
||||||
|
|
||||||
einfo = (Evas_Engine_Info_Software_Qtopia *)evas_engine_info_get(evas);
|
|
||||||
|
|
||||||
/* the following is specific to the engine */
|
|
||||||
einfo->info.target = evas_target_widget;
|
|
||||||
evas_engine_info_set(evas, (Evas_Engine_Info *) einfo);
|
|
||||||
}
|
|
||||||
setup();
|
|
||||||
orig_start_time = start_time = get_time();
|
|
||||||
}
|
|
||||||
|
|
||||||
EvasTestApp::~EvasTestApp()
|
|
||||||
{
|
|
||||||
evas_shutdown();
|
|
||||||
}
|
|
||||||
|
|
||||||
QSizePolicy EvasTestApp::sizePolicy() const
|
|
||||||
{
|
|
||||||
return QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
|
||||||
}
|
|
||||||
|
|
||||||
void EvasTestApp::resizeEvent(QResizeEvent *e)
|
|
||||||
{
|
|
||||||
QSize sz;
|
|
||||||
|
|
||||||
sz = e->size();
|
|
||||||
evas_target_widget->resize(sz.width(), sz.height());
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
QPEApplication a(argc, argv);
|
|
||||||
EvasTestApp test_app;
|
|
||||||
a.showMainDocumentWidget(&test_app);
|
|
||||||
return a.exec();
|
|
||||||
}
|
|
|
@ -1,65 +0,0 @@
|
||||||
#ifndef EVAS_SOFTWARE_QTOPIA_MAIN_H
|
|
||||||
#define EVAS_SOFTWARE_QTOPIA_MAIN_H
|
|
||||||
|
|
||||||
#ifndef QT_QWS_EBX
|
|
||||||
#define QT_QWS_EBX
|
|
||||||
#endif
|
|
||||||
#ifndef QT_QWS_CUSTOM
|
|
||||||
#define QT_QWS_CUSTOM
|
|
||||||
#endif
|
|
||||||
#ifndef QWS
|
|
||||||
#define QWS
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <qwidget.h>
|
|
||||||
#include <qmainwindow.h>
|
|
||||||
#include <qpe/qlibrary.h>
|
|
||||||
#include <qtimer.h>
|
|
||||||
#include <qwidget.h>
|
|
||||||
#include <qwidgetstack.h>
|
|
||||||
#include <qpainter.h>
|
|
||||||
#include <qdirectpainter_qws.h>
|
|
||||||
|
|
||||||
class EvasTargetWidget : public QWidget
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
|
||||||
EvasTargetWidget(QWidget *parent=NULL, const char *name=NULL);
|
|
||||||
|
|
||||||
QSizePolicy sizePolicy() const;
|
|
||||||
|
|
||||||
void enableFullscreen(void);
|
|
||||||
void disableFullscreen(void);
|
|
||||||
int fullscreen;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
void mousePressEvent(QMouseEvent *);
|
|
||||||
void mouseReleaseEvent(QMouseEvent *);
|
|
||||||
void mouseMoveEvent(QMouseEvent *);
|
|
||||||
void paintEvent(QPaintEvent *);
|
|
||||||
void resizeEvent(QResizeEvent *);
|
|
||||||
|
|
||||||
private slots:
|
|
||||||
void idleHandler(void);
|
|
||||||
private:
|
|
||||||
QTimer *idleTimer;
|
|
||||||
};
|
|
||||||
|
|
||||||
class EvasTestApp : public QMainWindow
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
public:
|
|
||||||
EvasTestApp(QWidget *parent=0, const char *name=0, int wFlags=0);
|
|
||||||
~EvasTestApp();
|
|
||||||
|
|
||||||
QSizePolicy sizePolicy() const;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
void resizeEvent(QResizeEvent *);
|
|
||||||
|
|
||||||
EvasTargetWidget *evas_target_widget;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,2 +0,0 @@
|
||||||
Makefile.in
|
|
||||||
Makefile
|
|
|
@ -1,12 +0,0 @@
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
|
|
||||||
EXTRA_DIST = \
|
|
||||||
ReadMe.txt \
|
|
||||||
StdAfx.cpp \
|
|
||||||
StdAfx.h \
|
|
||||||
evas_software_win32.cpp \
|
|
||||||
evas_software_win32.rc \
|
|
||||||
evas_software_win32.h \
|
|
||||||
newres.h \
|
|
||||||
resource.h
|
|
||||||
|
|
|
@ -1,59 +0,0 @@
|
||||||
========================================================================
|
|
||||||
Windows CE APPLICATION : evas_software_win32
|
|
||||||
========================================================================
|
|
||||||
|
|
||||||
|
|
||||||
AppWizard has created this evas_software_win32 application for you.
|
|
||||||
|
|
||||||
This file contains a summary of what you will find in each of the files that
|
|
||||||
make up your evas_software_win32 application.
|
|
||||||
|
|
||||||
evas_software_win32.cpp
|
|
||||||
This is the main application source file.
|
|
||||||
|
|
||||||
evas_software_win32.h
|
|
||||||
This is the main header file for the application. It includes other
|
|
||||||
project specific headers (including Resource.h).
|
|
||||||
|
|
||||||
evas_software_win32.vcp
|
|
||||||
This file (the project file) contains information at the project level and
|
|
||||||
is used to build a single project or subproject. Other users can share the
|
|
||||||
project (.vcp) file, but they should export the makefiles locally.
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
AppWizard has created the following resources:
|
|
||||||
|
|
||||||
evas_software_win32.rc
|
|
||||||
This is a listing of all of the Microsoft Windows CE resources that the
|
|
||||||
program uses. This file can be directly edited in Microsoft
|
|
||||||
eMbedded Visual C++.
|
|
||||||
|
|
||||||
evas_software_win32.ico
|
|
||||||
This is an icon file, which is used as the application's icon (32x32).
|
|
||||||
This icon is included by the main resource file evas_software_win32.rc.
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
Other standard files:
|
|
||||||
|
|
||||||
StdAfx.h, StdAfx.cpp
|
|
||||||
These files are used to build a precompiled header (PCH) file
|
|
||||||
named evas_software_win32.pch and a precompiled types file named StdAfx.obj.
|
|
||||||
|
|
||||||
Resource.h
|
|
||||||
This is the standard header file, which defines new resource IDs.
|
|
||||||
Microsoft eMbedded Visual C++ reads and updates this file.
|
|
||||||
|
|
||||||
Newres.h
|
|
||||||
This header file is used to replace the ..\mfc\include\afxres.h.
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
Other notes:
|
|
||||||
|
|
||||||
AppWizard uses "TODO:" to indicate parts of the source code you
|
|
||||||
should add to or customize.
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
|
@ -1,8 +0,0 @@
|
||||||
// stdafx.cpp : source file that includes just the standard includes
|
|
||||||
// evas_software_win32.pch will be the pre-compiled header
|
|
||||||
// stdafx.obj will contain the pre-compiled type information
|
|
||||||
|
|
||||||
#include "stdafx.h"
|
|
||||||
|
|
||||||
// TODO: reference any additional headers you need in STDAFX.H
|
|
||||||
// and not in this file
|
|
|
@ -1,25 +0,0 @@
|
||||||
// stdafx.h : include file for standard system include files,
|
|
||||||
// or project specific include files that are used frequently, but
|
|
||||||
// are changed infrequently
|
|
||||||
//
|
|
||||||
|
|
||||||
#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
|
|
||||||
#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_
|
|
||||||
|
|
||||||
#if _MSC_VER > 1000
|
|
||||||
#pragma once
|
|
||||||
#endif // _MSC_VER > 1000
|
|
||||||
|
|
||||||
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
|
|
||||||
|
|
||||||
// Windows Header Files:
|
|
||||||
#include <windows.h>
|
|
||||||
|
|
||||||
// Local Header Files
|
|
||||||
|
|
||||||
// TODO: reference additional headers your program requires here
|
|
||||||
|
|
||||||
//{{AFX_INSERT_LOCATION}}
|
|
||||||
// Microsoft eMbedded Visual C++ will insert additional declarations immediately before the previous line.
|
|
||||||
|
|
||||||
#endif // !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
|
|
|
@ -1,323 +0,0 @@
|
||||||
// evas_software_win32.c : Defines the entry point for the application.
|
|
||||||
//
|
|
||||||
|
|
||||||
#include "stdafx.h"
|
|
||||||
#include "evas_software_win32.h"
|
|
||||||
#include <commctrl.h>
|
|
||||||
|
|
||||||
#include "Evas.h"
|
|
||||||
|
|
||||||
#include "evas_test_main.h"
|
|
||||||
|
|
||||||
#include "Evas_Engine_Software_win32_gdi.h"
|
|
||||||
|
|
||||||
|
|
||||||
#define MAX_LOADSTRING 100
|
|
||||||
|
|
||||||
|
|
||||||
// Global Variables:
|
|
||||||
HINSTANCE hInst; // The current instance
|
|
||||||
HWND hwndCB; // The command bar handle
|
|
||||||
|
|
||||||
// Forward declarations of functions included in this code module:
|
|
||||||
ATOM MyRegisterClass (HINSTANCE, LPTSTR);
|
|
||||||
BOOL InitInstance (HINSTANCE, int);
|
|
||||||
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);
|
|
||||||
LRESULT CALLBACK About (HWND, UINT, WPARAM, LPARAM);
|
|
||||||
|
|
||||||
int WINAPI WinMain( HINSTANCE hInstance,
|
|
||||||
HINSTANCE hPrevInstance,
|
|
||||||
LPTSTR lpCmdLine,
|
|
||||||
int nCmdShow)
|
|
||||||
{
|
|
||||||
MSG msg;
|
|
||||||
HACCEL hAccelTable;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Perform application initialization:
|
|
||||||
if (!InitInstance (hInstance, nCmdShow))
|
|
||||||
{
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_EVAS_SOFTWARE_WIN32);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
setup();
|
|
||||||
orig_start_time = start_time = get_time();
|
|
||||||
|
|
||||||
// Main message loop:
|
|
||||||
for (;;)
|
|
||||||
{
|
|
||||||
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
|
|
||||||
{
|
|
||||||
if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
|
|
||||||
{
|
|
||||||
TranslateMessage(&msg);
|
|
||||||
DispatchMessage(&msg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(msg.message == WM_QUIT)
|
|
||||||
return msg.wParam;
|
|
||||||
|
|
||||||
loop();
|
|
||||||
evas_render(evas);
|
|
||||||
}
|
|
||||||
|
|
||||||
return msg.wParam;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// FUNCTION: MyRegisterClass()
|
|
||||||
//
|
|
||||||
// PURPOSE: Registers the window class.
|
|
||||||
//
|
|
||||||
// COMMENTS:
|
|
||||||
//
|
|
||||||
// It is important to call this function so that the application
|
|
||||||
// will get 'well formed' small icons associated with it.
|
|
||||||
//
|
|
||||||
ATOM MyRegisterClass(HINSTANCE hInstance, LPTSTR szWindowClass)
|
|
||||||
{
|
|
||||||
WNDCLASS wc;
|
|
||||||
|
|
||||||
wc.style = CS_HREDRAW | CS_VREDRAW;
|
|
||||||
wc.lpfnWndProc = (WNDPROC) WndProc;
|
|
||||||
wc.cbClsExtra = 0;
|
|
||||||
wc.cbWndExtra = 0;
|
|
||||||
wc.hInstance = hInstance;
|
|
||||||
wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_EVAS_SOFTWARE_WIN32));
|
|
||||||
wc.hCursor = 0;
|
|
||||||
wc.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
|
|
||||||
wc.lpszMenuName = 0;
|
|
||||||
wc.lpszClassName = szWindowClass;
|
|
||||||
|
|
||||||
return RegisterClass(&wc);
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// FUNCTION: InitInstance(HANDLE, int)
|
|
||||||
//
|
|
||||||
// PURPOSE: Saves instance handle and creates main window
|
|
||||||
//
|
|
||||||
// COMMENTS:
|
|
||||||
//
|
|
||||||
// In this function, we save the instance handle in a global variable and
|
|
||||||
// create and display the main program window.
|
|
||||||
//
|
|
||||||
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
|
|
||||||
{
|
|
||||||
HWND hWnd;
|
|
||||||
TCHAR szTitle[MAX_LOADSTRING]; // The title bar text
|
|
||||||
TCHAR szWindowClass[MAX_LOADSTRING]; // The window class name
|
|
||||||
|
|
||||||
hInst = hInstance; // Store instance handle in our global variable
|
|
||||||
// Initialize global strings
|
|
||||||
LoadString(hInstance, IDC_EVAS_SOFTWARE_WIN32, szWindowClass, MAX_LOADSTRING);
|
|
||||||
MyRegisterClass(hInstance, szWindowClass);
|
|
||||||
|
|
||||||
LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
|
|
||||||
hWnd = CreateWindow(szWindowClass, szTitle, WS_VISIBLE|WS_CAPTION|WS_SYSMENU,
|
|
||||||
0, 0, (int)win_w, (int)win_h+24, NULL, NULL, hInstance, NULL);
|
|
||||||
|
|
||||||
if (!hWnd)
|
|
||||||
{
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
ShowWindow(hWnd, nCmdShow);
|
|
||||||
UpdateWindow(hWnd);
|
|
||||||
// if (hwndCB)
|
|
||||||
// CommandBar_Show(hwndCB, TRUE);
|
|
||||||
|
|
||||||
|
|
||||||
evas = evas_new();
|
|
||||||
evas_output_method_set(evas, evas_render_method_lookup("software_win32_gdi"));
|
|
||||||
evas_output_size_set(evas, win_w, win_h);
|
|
||||||
evas_output_viewport_set(evas, 0, 0, win_w, win_h);
|
|
||||||
|
|
||||||
{
|
|
||||||
Evas_Engine_Info_Software_Win32_GDI *einfo;
|
|
||||||
|
|
||||||
|
|
||||||
einfo = (Evas_Engine_Info_Software_Win32_GDI *)evas_engine_info_get(evas);
|
|
||||||
|
|
||||||
einfo->info.hwnd = hWnd;
|
|
||||||
einfo->info.rotation = 0;
|
|
||||||
|
|
||||||
|
|
||||||
{
|
|
||||||
HDC hdc;
|
|
||||||
int c;
|
|
||||||
|
|
||||||
|
|
||||||
hdc = GetDC(hWnd);
|
|
||||||
c = GetDeviceCaps(hdc,BITSPIXEL);
|
|
||||||
|
|
||||||
einfo->info.depth = c;
|
|
||||||
|
|
||||||
|
|
||||||
c = GetDeviceCaps(hdc,RASTERCAPS);
|
|
||||||
|
|
||||||
|
|
||||||
ReleaseDC(hWnd,hdc);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
evas_engine_info_set(evas, (Evas_Engine_Info *)einfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// FUNCTION: WndProc(HWND, unsigned, WORD, LONG)
|
|
||||||
//
|
|
||||||
// PURPOSE: Processes messages for the main window.
|
|
||||||
//
|
|
||||||
// WM_COMMAND - process the application menu
|
|
||||||
// WM_PAINT - Paint the main window
|
|
||||||
// WM_DESTROY - post a quit message and return
|
|
||||||
//
|
|
||||||
//
|
|
||||||
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|
||||||
{
|
|
||||||
HDC hdc;
|
|
||||||
int wmId, wmEvent;
|
|
||||||
PAINTSTRUCT ps;
|
|
||||||
TCHAR szHello[MAX_LOADSTRING];
|
|
||||||
RECT rect;
|
|
||||||
|
|
||||||
|
|
||||||
switch (message)
|
|
||||||
{
|
|
||||||
case WM_COMMAND:
|
|
||||||
wmId = LOWORD(wParam);
|
|
||||||
wmEvent = HIWORD(wParam);
|
|
||||||
// Parse the menu selections:
|
|
||||||
switch (wmId)
|
|
||||||
{
|
|
||||||
case IDM_HELP_ABOUT:
|
|
||||||
DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);
|
|
||||||
break;
|
|
||||||
case IDM_FILE_EXIT:
|
|
||||||
DestroyWindow(hWnd);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
return DefWindowProc(hWnd, message, wParam, lParam);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case WM_CREATE:
|
|
||||||
// hwndCB = CommandBar_Create(hInst, hWnd, 1);
|
|
||||||
// CommandBar_InsertMenubar(hwndCB, hInst, IDM_MENU, 0);
|
|
||||||
// CommandBar_AddAdornments(hwndCB, 0, 0);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case WM_LBUTTONDOWN:
|
|
||||||
evas_event_feed_mouse_move(evas, LOWORD(lParam), HIWORD(lParam));
|
|
||||||
evas_event_feed_mouse_down(evas, 1);
|
|
||||||
break;
|
|
||||||
|
|
||||||
|
|
||||||
case WM_LBUTTONUP:
|
|
||||||
evas_event_feed_mouse_move(evas, LOWORD(lParam), HIWORD(lParam));
|
|
||||||
evas_event_feed_mouse_up(evas, 1);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case WM_MOVE:
|
|
||||||
evas_event_feed_mouse_move(evas, LOWORD(lParam), HIWORD(lParam));
|
|
||||||
break;
|
|
||||||
|
|
||||||
case WM_SIZE:
|
|
||||||
evas_output_size_set(evas, LOWORD(lParam), HIWORD(lParam));
|
|
||||||
break;
|
|
||||||
|
|
||||||
/*
|
|
||||||
case WM_ERASEBKGND:
|
|
||||||
|
|
||||||
// Get window coordinates, and normalize.
|
|
||||||
GetWindowRect(hWnd, &rect);
|
|
||||||
rect.right = rect.right - rect.left; // Get width.
|
|
||||||
rect.bottom = rect.bottom - rect.top; // Get height.
|
|
||||||
rect.left = rect.top = 0;
|
|
||||||
|
|
||||||
evas_damage_rectangle_add(evas,
|
|
||||||
rect.left,
|
|
||||||
rect.top,
|
|
||||||
rect.right,
|
|
||||||
rect.bottom);
|
|
||||||
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
break;
|
|
||||||
*/
|
|
||||||
|
|
||||||
case WM_PAINT:
|
|
||||||
hdc = BeginPaint(hWnd, &ps);
|
|
||||||
rect.right = ps.rcPaint.right - ps.rcPaint.left; // Get width.
|
|
||||||
rect.bottom = ps.rcPaint.bottom - ps.rcPaint.top; // Get height.
|
|
||||||
rect.left = ps.rcPaint.left;
|
|
||||||
rect.top = ps.rcPaint.top;
|
|
||||||
ps.fErase = TRUE;
|
|
||||||
|
|
||||||
evas_damage_rectangle_add(evas,
|
|
||||||
rect.left,
|
|
||||||
rect.top,
|
|
||||||
rect.right,
|
|
||||||
rect.bottom);
|
|
||||||
EndPaint(hWnd, &ps);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case WM_DESTROY:
|
|
||||||
CommandBar_Destroy(hwndCB);
|
|
||||||
PostQuitMessage(0);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
return DefWindowProc(hWnd, message, wParam, lParam);
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Mesage handler for the About box.
|
|
||||||
LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
|
|
||||||
{
|
|
||||||
RECT rt, rt1;
|
|
||||||
int DlgWidth, DlgHeight; // dialog width and height in pixel units
|
|
||||||
int NewPosX, NewPosY;
|
|
||||||
|
|
||||||
switch (message)
|
|
||||||
{
|
|
||||||
case WM_INITDIALOG:
|
|
||||||
// trying to center the About dialog
|
|
||||||
if (GetWindowRect(hDlg, &rt1)) {
|
|
||||||
GetClientRect(GetParent(hDlg), &rt);
|
|
||||||
DlgWidth = rt1.right - rt1.left;
|
|
||||||
DlgHeight = rt1.bottom - rt1.top ;
|
|
||||||
NewPosX = (rt.right - rt.left - DlgWidth)/2;
|
|
||||||
NewPosY = (rt.bottom - rt.top - DlgHeight)/2;
|
|
||||||
|
|
||||||
// if the About box is larger than the physical screen
|
|
||||||
if (NewPosX < 0) NewPosX = 0;
|
|
||||||
if (NewPosY < 0) NewPosY = 0;
|
|
||||||
SetWindowPos(hDlg, 0, NewPosX, NewPosY,
|
|
||||||
0, 0, SWP_NOZORDER | SWP_NOSIZE);
|
|
||||||
}
|
|
||||||
return TRUE;
|
|
||||||
|
|
||||||
case WM_COMMAND:
|
|
||||||
if ((LOWORD(wParam) == IDOK) || (LOWORD(wParam) == IDCANCEL))
|
|
||||||
{
|
|
||||||
EndDialog(hDlg, LOWORD(wParam));
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
|
@ -1,12 +0,0 @@
|
||||||
|
|
||||||
#if !defined(AFX_EVAS_SOFTWARE_WIN32_H__16C4A65E_CA5A_452B_930E_842EC94AF401__INCLUDED_)
|
|
||||||
#define AFX_EVAS_SOFTWARE_WIN32_H__16C4A65E_CA5A_452B_930E_842EC94AF401__INCLUDED_
|
|
||||||
|
|
||||||
#if _MSC_VER > 1000
|
|
||||||
#pragma once
|
|
||||||
#endif // _MSC_VER > 1000
|
|
||||||
|
|
||||||
#include "resource.h"
|
|
||||||
|
|
||||||
|
|
||||||
#endif // !defined(AFX_EVAS_SOFTWARE_WIN32_H__16C4A65E_CA5A_452B_930E_842EC94AF401__INCLUDED_)
|
|
|
@ -1,152 +0,0 @@
|
||||||
//Microsoft eMbedded Visual C++ generated resource script.
|
|
||||||
//
|
|
||||||
#include "resource.h"
|
|
||||||
|
|
||||||
#define APSTUDIO_READONLY_SYMBOLS
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Generated from the TEXTINCLUDE 2 resource.
|
|
||||||
//
|
|
||||||
#include "newres.h"
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
#undef APSTUDIO_READONLY_SYMBOLS
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// English (U.S.) resources
|
|
||||||
|
|
||||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
|
||||||
#ifdef _WIN32
|
|
||||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
|
||||||
#pragma code_page(1252)
|
|
||||||
#endif //_WIN32
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Icon
|
|
||||||
//
|
|
||||||
|
|
||||||
// Icon with lowest ID value placed first to ensure application icon
|
|
||||||
// remains consistent on all systems.
|
|
||||||
IDI_EVAS_SOFTWARE_WIN32 ICON DISCARDABLE "evas_software_win32.ICO"
|
|
||||||
|
|
||||||
#ifdef APSTUDIO_INVOKED
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// TEXTINCLUDE
|
|
||||||
//
|
|
||||||
|
|
||||||
1 TEXTINCLUDE DISCARDABLE
|
|
||||||
BEGIN
|
|
||||||
"resource.h\0"
|
|
||||||
END
|
|
||||||
|
|
||||||
2 TEXTINCLUDE DISCARDABLE
|
|
||||||
BEGIN
|
|
||||||
"#include ""newres.h""\r\n"
|
|
||||||
"\0"
|
|
||||||
END
|
|
||||||
|
|
||||||
3 TEXTINCLUDE DISCARDABLE
|
|
||||||
BEGIN
|
|
||||||
"\r\n"
|
|
||||||
"\0"
|
|
||||||
END
|
|
||||||
|
|
||||||
#endif // APSTUDIO_INVOKED
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Menu
|
|
||||||
//
|
|
||||||
|
|
||||||
IDM_MENU MENU DISCARDABLE
|
|
||||||
BEGIN
|
|
||||||
POPUP "&File"
|
|
||||||
BEGIN
|
|
||||||
MENUITEM "E&xit", IDM_FILE_EXIT
|
|
||||||
END
|
|
||||||
POPUP "&Help"
|
|
||||||
BEGIN
|
|
||||||
MENUITEM "&About", IDM_HELP_ABOUT
|
|
||||||
END
|
|
||||||
END
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Dialog
|
|
||||||
//
|
|
||||||
|
|
||||||
IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 125, 55
|
|
||||||
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
|
||||||
EXSTYLE 0x80000000L
|
|
||||||
CAPTION "About evas_software_win32"
|
|
||||||
FONT 8, "System"
|
|
||||||
BEGIN
|
|
||||||
ICON IDI_EVAS_SOFTWARE_WIN32,IDC_STATIC,11,17,20,20
|
|
||||||
LTEXT "evas_software_win32 Version 1.0",IDC_STATIC,38,10,70,8,
|
|
||||||
SS_NOPREFIX
|
|
||||||
LTEXT "Copyright (C) 2002",IDC_STATIC,38,25,70,8
|
|
||||||
END
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// DESIGNINFO
|
|
||||||
//
|
|
||||||
|
|
||||||
#ifdef APSTUDIO_INVOKED
|
|
||||||
GUIDELINES DESIGNINFO DISCARDABLE
|
|
||||||
BEGIN
|
|
||||||
IDD_ABOUTBOX, DIALOG
|
|
||||||
BEGIN
|
|
||||||
LEFTMARGIN, 7
|
|
||||||
RIGHTMARGIN, 118
|
|
||||||
TOPMARGIN, 7
|
|
||||||
BOTTOMMARGIN, 48
|
|
||||||
END
|
|
||||||
END
|
|
||||||
#endif // APSTUDIO_INVOKED
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Accelerator
|
|
||||||
//
|
|
||||||
|
|
||||||
IDC_EVAS_SOFTWARE_WIN32 ACCELERATORS DISCARDABLE
|
|
||||||
BEGIN
|
|
||||||
"/", IDM_HELP_ABOUT, ASCII, ALT, NOINVERT
|
|
||||||
VK_F4, IDM_FILE_EXIT, VIRTKEY, ALT, NOINVERT
|
|
||||||
END
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// String Table
|
|
||||||
//
|
|
||||||
|
|
||||||
STRINGTABLE DISCARDABLE
|
|
||||||
BEGIN
|
|
||||||
IDS_APP_TITLE "WinCE EVAS Test"
|
|
||||||
IDS_HELLO "Hello World!"
|
|
||||||
IDC_EVAS_SOFTWARE_WIN32 "EVAS_SOFTWARE_WIN32"
|
|
||||||
END
|
|
||||||
|
|
||||||
#endif // English (U.S.) resources
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef APSTUDIO_INVOKED
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
//
|
|
||||||
// Generated from the TEXTINCLUDE 3 resource.
|
|
||||||
//
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
#endif // not APSTUDIO_INVOKED
|
|
||||||
|
|
|
@ -1,39 +0,0 @@
|
||||||
#ifndef __NEWRES_H__
|
|
||||||
#define __NEWRES_H__
|
|
||||||
|
|
||||||
#if !defined(UNDER_CE)
|
|
||||||
#define UNDER_CE _WIN32_WCE
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(_WIN32_WCE)
|
|
||||||
#if !defined(WCEOLE_ENABLE_DIALOGEX)
|
|
||||||
#define DIALOGEX DIALOG DISCARDABLE
|
|
||||||
#endif
|
|
||||||
#include <commctrl.h>
|
|
||||||
#define SHMENUBAR RCDATA
|
|
||||||
#if defined(WIN32_PLATFORM_PSPC) && (_WIN32_WCE >= 300)
|
|
||||||
#include <aygshell.h>
|
|
||||||
#else
|
|
||||||
#define I_IMAGENONE (-2)
|
|
||||||
#define NOMENU 0xFFFF
|
|
||||||
#define IDS_SHNEW 1
|
|
||||||
|
|
||||||
#define IDM_SHAREDNEW 10
|
|
||||||
#define IDM_SHAREDNEWDEFAULT 11
|
|
||||||
#endif
|
|
||||||
#endif // _WIN32_WCE
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef RC_INVOKED
|
|
||||||
#ifndef _INC_WINDOWS
|
|
||||||
#define _INC_WINDOWS
|
|
||||||
#include "winuser.h" // extract from windows header
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef IDC_STATIC
|
|
||||||
#undef IDC_STATIC
|
|
||||||
#endif
|
|
||||||
#define IDC_STATIC (-1)
|
|
||||||
|
|
||||||
#endif //__NEWRES_H__
|
|
|
@ -1,23 +0,0 @@
|
||||||
//{{NO_DEPENDENCIES}}
|
|
||||||
// Microsoft eMbedded Visual C++ generated include file.
|
|
||||||
// Used by EVAS_SOFTWARE_WIN32.RC
|
|
||||||
//
|
|
||||||
#define IDS_APP_TITLE 1
|
|
||||||
#define IDS_HELLO 2
|
|
||||||
#define IDC_EVAS_SOFTWARE_WIN32 3
|
|
||||||
#define IDI_EVAS_SOFTWARE_WIN32 101
|
|
||||||
#define IDM_MENU 102
|
|
||||||
#define IDD_ABOUTBOX 103
|
|
||||||
#define IDM_FILE_EXIT 40002
|
|
||||||
#define IDM_HELP_ABOUT 40003
|
|
||||||
|
|
||||||
// Next default values for new objects
|
|
||||||
//
|
|
||||||
#ifdef APSTUDIO_INVOKED
|
|
||||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
|
||||||
#define _APS_NEXT_RESOURCE_VALUE 104
|
|
||||||
#define _APS_NEXT_COMMAND_VALUE 40004
|
|
||||||
#define _APS_NEXT_CONTROL_VALUE 1001
|
|
||||||
#define _APS_NEXT_SYMED_VALUE 101
|
|
||||||
#endif
|
|
||||||
#endif
|
|
|
@ -1,248 +0,0 @@
|
||||||
#include "evas_test_main.h"
|
|
||||||
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <X11/Xlib.h>
|
|
||||||
#include <X11/Xutil.h>
|
|
||||||
|
|
||||||
#include "Evas.h"
|
|
||||||
#include "Evas_Engine_Software_X11.h"
|
|
||||||
|
|
||||||
int
|
|
||||||
main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
int pause_me = 0;
|
|
||||||
Display *disp;
|
|
||||||
Window win;
|
|
||||||
XSetWindowAttributes attr;
|
|
||||||
XClassHint chint;
|
|
||||||
|
|
||||||
disp = XOpenDisplay(NULL);
|
|
||||||
if (!disp)
|
|
||||||
{
|
|
||||||
printf("Error: cannot open display.\n");
|
|
||||||
exit(-1);
|
|
||||||
}
|
|
||||||
attr.backing_store = NotUseful;
|
|
||||||
attr.colormap = DefaultColormap(disp, DefaultScreen(disp));
|
|
||||||
attr.border_pixel = 0;
|
|
||||||
attr.background_pixmap = None;
|
|
||||||
attr.event_mask =
|
|
||||||
ExposureMask | ButtonPressMask | ButtonReleaseMask | PointerMotionMask |
|
|
||||||
StructureNotifyMask;
|
|
||||||
attr.bit_gravity = ForgetGravity;
|
|
||||||
win = XCreateWindow(disp, DefaultRootWindow(disp), 0, 0, win_w, win_h, 0,
|
|
||||||
DefaultDepth(disp, DefaultScreen(disp)), InputOutput,
|
|
||||||
DefaultVisual(disp, DefaultScreen(disp)),
|
|
||||||
CWBackingStore | CWColormap |
|
|
||||||
CWBackPixmap | CWBorderPixel |
|
|
||||||
CWBitGravity | CWEventMask, &attr);
|
|
||||||
XStoreName(disp, win, "Evas Software X11 Test");
|
|
||||||
chint.res_name = "Evas_Software_X11_Test";
|
|
||||||
chint.res_class = "Main";
|
|
||||||
XSetClassHint(disp, win, &chint);
|
|
||||||
#if 0
|
|
||||||
szhints.flags = PMinSize | PMaxSize | PSize | USSize;
|
|
||||||
szhints.min_width = szhints.max_width = win_w;
|
|
||||||
szhints.min_height = szhints.max_height = win_h;
|
|
||||||
XSetWMNormalHints(disp, win, &szhints);
|
|
||||||
#endif
|
|
||||||
XMapWindow(disp, win);
|
|
||||||
XSync(disp, False);
|
|
||||||
|
|
||||||
/* test evas_free.... :) */
|
|
||||||
evas_init();
|
|
||||||
evas = evas_new();
|
|
||||||
evas_output_method_set(evas, evas_render_method_lookup("software_x11"));
|
|
||||||
evas_output_size_set(evas, win_w, win_h);
|
|
||||||
evas_output_viewport_set(evas, 0, 0, win_w, win_h);
|
|
||||||
{
|
|
||||||
Evas_Engine_Info_Software_X11 *einfo;
|
|
||||||
|
|
||||||
einfo = (Evas_Engine_Info_Software_X11 *) evas_engine_info_get(evas);
|
|
||||||
|
|
||||||
/* the following is specific to the engine */
|
|
||||||
einfo->info.display = disp;
|
|
||||||
einfo->info.visual = DefaultVisual(disp, DefaultScreen(disp));
|
|
||||||
einfo->info.colormap = DefaultColormap(disp, DefaultScreen(disp));
|
|
||||||
einfo->info.drawable = win;
|
|
||||||
einfo->info.depth = DefaultDepth(disp, DefaultScreen(disp));
|
|
||||||
einfo->info.rotation = 0;
|
|
||||||
einfo->info.debug = 0;
|
|
||||||
evas_engine_info_set(evas, (Evas_Engine_Info *) einfo);
|
|
||||||
}
|
|
||||||
setup();
|
|
||||||
printf("################ evas free\n");
|
|
||||||
setdown();
|
|
||||||
evas_free(evas);
|
|
||||||
printf("evas freed. DONE\n");
|
|
||||||
|
|
||||||
evas = evas_new();
|
|
||||||
evas_output_method_set(evas, evas_render_method_lookup("software_x11"));
|
|
||||||
evas_output_size_set(evas, win_w, win_h);
|
|
||||||
evas_output_viewport_set(evas, 0, 0, win_w, win_h);
|
|
||||||
{
|
|
||||||
Evas_Engine_Info_Software_X11 *einfo;
|
|
||||||
|
|
||||||
einfo = (Evas_Engine_Info_Software_X11 *) evas_engine_info_get(evas);
|
|
||||||
|
|
||||||
/* the following is specific to the engine */
|
|
||||||
einfo->info.display = disp;
|
|
||||||
einfo->info.visual = DefaultVisual(disp, DefaultScreen(disp));
|
|
||||||
einfo->info.colormap = DefaultColormap(disp, DefaultScreen(disp));
|
|
||||||
einfo->info.drawable = win;
|
|
||||||
einfo->info.depth = DefaultDepth(disp, DefaultScreen(disp));
|
|
||||||
einfo->info.rotation = 0;
|
|
||||||
einfo->info.debug = 0;
|
|
||||||
evas_engine_info_set(evas, (Evas_Engine_Info *) einfo);
|
|
||||||
}
|
|
||||||
setup();
|
|
||||||
printf("################ evas free\n");
|
|
||||||
setdown();
|
|
||||||
evas_free(evas);
|
|
||||||
printf("evas freed. DONE\n");
|
|
||||||
|
|
||||||
evas = evas_new();
|
|
||||||
evas_output_method_set(evas, evas_render_method_lookup("software_x11"));
|
|
||||||
evas_output_size_set(evas, win_w, win_h);
|
|
||||||
evas_output_viewport_set(evas, 0, 0, win_w, win_h);
|
|
||||||
{
|
|
||||||
Evas_Engine_Info_Software_X11 *einfo;
|
|
||||||
|
|
||||||
einfo = (Evas_Engine_Info_Software_X11 *) evas_engine_info_get(evas);
|
|
||||||
|
|
||||||
/* the following is specific to the engine */
|
|
||||||
einfo->info.display = disp;
|
|
||||||
einfo->info.visual = DefaultVisual(disp, DefaultScreen(disp));
|
|
||||||
einfo->info.colormap = DefaultColormap(disp, DefaultScreen(disp));
|
|
||||||
einfo->info.drawable = win;
|
|
||||||
einfo->info.depth = DefaultDepth(disp, DefaultScreen(disp));
|
|
||||||
einfo->info.rotation = 0;
|
|
||||||
einfo->info.debug = 0;
|
|
||||||
evas_engine_info_set(evas, (Evas_Engine_Info *) einfo);
|
|
||||||
}
|
|
||||||
setup();
|
|
||||||
printf("################ evas free\n");
|
|
||||||
setdown();
|
|
||||||
evas_free(evas);
|
|
||||||
printf("evas freed. DONE\n");
|
|
||||||
|
|
||||||
evas = evas_new();
|
|
||||||
evas_output_method_set(evas, evas_render_method_lookup("software_x11"));
|
|
||||||
evas_output_size_set(evas, win_w, win_h);
|
|
||||||
evas_output_viewport_set(evas, 0, 0, win_w, win_h);
|
|
||||||
{
|
|
||||||
Evas_Engine_Info_Software_X11 *einfo;
|
|
||||||
|
|
||||||
einfo = (Evas_Engine_Info_Software_X11 *) evas_engine_info_get(evas);
|
|
||||||
|
|
||||||
/* the following is specific to the engine */
|
|
||||||
einfo->info.display = disp;
|
|
||||||
einfo->info.visual = DefaultVisual(disp, DefaultScreen(disp));
|
|
||||||
einfo->info.colormap = DefaultColormap(disp, DefaultScreen(disp));
|
|
||||||
einfo->info.drawable = win;
|
|
||||||
einfo->info.depth = DefaultDepth(disp, DefaultScreen(disp));
|
|
||||||
einfo->info.rotation = 0;
|
|
||||||
einfo->info.debug = 0;
|
|
||||||
evas_engine_info_set(evas, (Evas_Engine_Info *) einfo);
|
|
||||||
}
|
|
||||||
setup();
|
|
||||||
printf("################ evas free\n");
|
|
||||||
setdown();
|
|
||||||
evas_free(evas);
|
|
||||||
printf("evas freed. DONE\n");
|
|
||||||
|
|
||||||
evas = evas_new();
|
|
||||||
evas_output_method_set(evas, evas_render_method_lookup("software_x11"));
|
|
||||||
evas_output_size_set(evas, win_w, win_h);
|
|
||||||
evas_output_viewport_set(evas, 0, 0, win_w, win_h);
|
|
||||||
{
|
|
||||||
Evas_Engine_Info_Software_X11 *einfo;
|
|
||||||
|
|
||||||
einfo = (Evas_Engine_Info_Software_X11 *) evas_engine_info_get(evas);
|
|
||||||
|
|
||||||
/* the following is specific to the engine */
|
|
||||||
einfo->info.display = disp;
|
|
||||||
einfo->info.visual = DefaultVisual(disp, DefaultScreen(disp));
|
|
||||||
einfo->info.colormap = DefaultColormap(disp, DefaultScreen(disp));
|
|
||||||
einfo->info.drawable = win;
|
|
||||||
einfo->info.depth = DefaultDepth(disp, DefaultScreen(disp));
|
|
||||||
einfo->info.rotation = 0;
|
|
||||||
einfo->info.debug = 0;
|
|
||||||
evas_engine_info_set(evas, (Evas_Engine_Info *) einfo);
|
|
||||||
}
|
|
||||||
setup();
|
|
||||||
orig_start_time = start_time = get_time();
|
|
||||||
for (;;)
|
|
||||||
{
|
|
||||||
XEvent ev;
|
|
||||||
|
|
||||||
while (XCheckMaskEvent(disp,
|
|
||||||
ExposureMask |
|
|
||||||
StructureNotifyMask |
|
|
||||||
KeyPressMask |
|
|
||||||
KeyReleaseMask |
|
|
||||||
ButtonPressMask |
|
|
||||||
ButtonReleaseMask | PointerMotionMask, &ev))
|
|
||||||
{
|
|
||||||
switch (ev.type)
|
|
||||||
{
|
|
||||||
case ButtonPress:
|
|
||||||
if (ev.xbutton.button == 3)
|
|
||||||
{
|
|
||||||
setdown();
|
|
||||||
evas_free(evas);
|
|
||||||
XCloseDisplay(disp);
|
|
||||||
evas_shutdown();
|
|
||||||
exit(0);
|
|
||||||
}
|
|
||||||
#if 0
|
|
||||||
if (!pause_me)
|
|
||||||
pause_me = 1;
|
|
||||||
else if (pause_me == 1)
|
|
||||||
pause_me = 2;
|
|
||||||
else
|
|
||||||
pause_me = 1;
|
|
||||||
#endif
|
|
||||||
evas_event_feed_mouse_move(evas, ev.xbutton.x, ev.xbutton.y, 0, NULL);
|
|
||||||
evas_event_feed_mouse_down(evas, ev.xbutton.button, EVAS_BUTTON_NONE, 0, NULL);
|
|
||||||
break;
|
|
||||||
case ButtonRelease:
|
|
||||||
evas_event_feed_mouse_move(evas, ev.xbutton.x, ev.xbutton.y, 0, NULL);
|
|
||||||
evas_event_feed_mouse_up(evas, ev.xbutton.button, EVAS_BUTTON_NONE, 0, NULL);
|
|
||||||
break;
|
|
||||||
case MotionNotify:
|
|
||||||
evas_event_feed_mouse_move(evas, ev.xmotion.x, ev.xmotion.y, 0, NULL);
|
|
||||||
break;
|
|
||||||
case Expose:
|
|
||||||
evas_damage_rectangle_add(evas,
|
|
||||||
ev.xexpose.x,
|
|
||||||
ev.xexpose.y,
|
|
||||||
ev.xexpose.width,
|
|
||||||
ev.xexpose.height);
|
|
||||||
break;
|
|
||||||
case ConfigureNotify:
|
|
||||||
evas_output_size_set(evas,
|
|
||||||
ev.xconfigure.width,
|
|
||||||
ev.xconfigure.height);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!(pause_me == 1))
|
|
||||||
{
|
|
||||||
loop();
|
|
||||||
evas_render(evas);
|
|
||||||
XFlush(disp);
|
|
||||||
}
|
|
||||||
if (pause_me == 2)
|
|
||||||
usleep(100000);
|
|
||||||
}
|
|
||||||
|
|
||||||
setdown();
|
|
||||||
evas_free(evas);
|
|
||||||
XCloseDisplay(disp);
|
|
||||||
evas_shutdown();
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
|
@ -1,181 +0,0 @@
|
||||||
#include <X11/Xlib.h>
|
|
||||||
#include <X11/Xutil.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <math.h>
|
|
||||||
#include <sys/time.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
|
|
||||||
#include "Evas.h"
|
|
||||||
#include "Evas_Engine_Software_X11.h"
|
|
||||||
|
|
||||||
Display *disp = NULL;
|
|
||||||
Window win = 0;
|
|
||||||
|
|
||||||
Evas *evas = NULL;
|
|
||||||
|
|
||||||
int win_w = 240;
|
|
||||||
int win_h = 240;
|
|
||||||
|
|
||||||
int
|
|
||||||
main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
int exposed = 0;
|
|
||||||
|
|
||||||
XSetWindowAttributes attr;
|
|
||||||
XClassHint chint;
|
|
||||||
XSizeHints szhints;
|
|
||||||
|
|
||||||
disp = XOpenDisplay(NULL);
|
|
||||||
if (!disp)
|
|
||||||
{
|
|
||||||
printf("Error: cannot open display.\n");
|
|
||||||
exit(-1);
|
|
||||||
}
|
|
||||||
attr.backing_store = NotUseful;
|
|
||||||
attr.colormap = DefaultColormap(disp, DefaultScreen(disp));
|
|
||||||
attr.border_pixel = 0;
|
|
||||||
attr.background_pixmap = None;
|
|
||||||
attr.event_mask =
|
|
||||||
ExposureMask | ButtonPressMask | ButtonReleaseMask | PointerMotionMask;
|
|
||||||
attr.bit_gravity = ForgetGravity;
|
|
||||||
win = XCreateWindow(disp, DefaultRootWindow(disp), 0, 0, win_w, win_h, 0,
|
|
||||||
DefaultDepth(disp, DefaultScreen(disp)), InputOutput,
|
|
||||||
DefaultVisual(disp, DefaultScreen(disp)),
|
|
||||||
CWBackingStore | CWColormap |
|
|
||||||
CWBackPixmap | CWBorderPixel |
|
|
||||||
CWBitGravity | CWEventMask, &attr);
|
|
||||||
XStoreName(disp, win, "Evas Performance Test");
|
|
||||||
chint.res_name = "Evas_Test";
|
|
||||||
chint.res_class = "Main";
|
|
||||||
XSetClassHint(disp, win, &chint);
|
|
||||||
szhints.flags = PMinSize | PMaxSize | PSize | USSize;
|
|
||||||
szhints.max_width = win_w;
|
|
||||||
szhints.max_height = win_h;
|
|
||||||
szhints.min_width = win_w;
|
|
||||||
szhints.min_height = win_h;
|
|
||||||
XSetWMNormalHints(disp, win, &szhints);
|
|
||||||
XMapWindow(disp, win);
|
|
||||||
|
|
||||||
evas_init();
|
|
||||||
evas = evas_new();
|
|
||||||
evas_output_method_set(evas, evas_render_method_lookup("software_x11"));
|
|
||||||
evas_output_size_set(evas, win_w, win_h);
|
|
||||||
evas_output_viewport_set(evas, 0, 0, win_w, win_h);
|
|
||||||
{
|
|
||||||
Evas_Engine_Info_Software_X11 *einfo;
|
|
||||||
|
|
||||||
einfo = (Evas_Engine_Info_Software_X11 *) evas_engine_info_get(evas);
|
|
||||||
|
|
||||||
/* the following is specific to the engine */
|
|
||||||
einfo->info.display = disp;
|
|
||||||
einfo->info.visual = DefaultVisual(disp, DefaultScreen(disp));
|
|
||||||
einfo->info.colormap = DefaultColormap(disp, DefaultScreen(disp));
|
|
||||||
einfo->info.drawable = win;
|
|
||||||
einfo->info.depth = DefaultDepth(disp, DefaultScreen(disp));
|
|
||||||
einfo->info.rotation = 0;
|
|
||||||
|
|
||||||
evas_engine_info_set(evas, (Evas_Engine_Info *) einfo);
|
|
||||||
}
|
|
||||||
for (;;)
|
|
||||||
{
|
|
||||||
XEvent ev;
|
|
||||||
|
|
||||||
while (XCheckMaskEvent(disp,
|
|
||||||
ExposureMask |
|
|
||||||
StructureNotifyMask |
|
|
||||||
KeyPressMask |
|
|
||||||
KeyReleaseMask |
|
|
||||||
ButtonPressMask |
|
|
||||||
ButtonReleaseMask | PointerMotionMask, &ev))
|
|
||||||
{
|
|
||||||
switch (ev.type)
|
|
||||||
{
|
|
||||||
case ButtonPress:
|
|
||||||
/* evas_event_button_down(evas, ev.xbutton.x, ev.xbutton.y, ev.xbutton.button);*/
|
|
||||||
break;
|
|
||||||
case ButtonRelease:
|
|
||||||
/* evas_event_button_up(evas, ev.xbutton.x, ev.xbutton.y, ev.xbutton.button);*/
|
|
||||||
break;
|
|
||||||
case MotionNotify:
|
|
||||||
/* evas_event_move(evas, ev.xmotion.x, ev.xmotion.y);*/
|
|
||||||
break;
|
|
||||||
case Expose:
|
|
||||||
exposed = 1;
|
|
||||||
evas_damage_rectangle_add(evas,
|
|
||||||
ev.xexpose.x,
|
|
||||||
ev.xexpose.y,
|
|
||||||
ev.xexpose.width,
|
|
||||||
ev.xexpose.height);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
evas_render(evas);
|
|
||||||
XFlush(disp);
|
|
||||||
if (exposed)
|
|
||||||
{
|
|
||||||
Evas_Engine_Info_Software_X11 *einfo;
|
|
||||||
Evas_Performance *perf;
|
|
||||||
char buf[4096];
|
|
||||||
char *data, *key;
|
|
||||||
FILE *f;
|
|
||||||
|
|
||||||
data = NULL;
|
|
||||||
einfo =
|
|
||||||
(Evas_Engine_Info_Software_X11 *) evas_engine_info_get(evas);
|
|
||||||
perf =
|
|
||||||
einfo->func.performance_new(evas, disp,
|
|
||||||
DefaultVisual(disp,
|
|
||||||
DefaultScreen(disp)),
|
|
||||||
DefaultColormap(disp,
|
|
||||||
DefaultScreen
|
|
||||||
(disp)), win,
|
|
||||||
DefaultDepth(disp,
|
|
||||||
DefaultScreen(disp)));
|
|
||||||
key = einfo->func.performance_key_get(perf);
|
|
||||||
snprintf(buf, sizeof(buf), "%s/.evas/%s", getenv("HOME"), key);
|
|
||||||
free(key);
|
|
||||||
f = fopen(buf, "r");
|
|
||||||
if (f)
|
|
||||||
{
|
|
||||||
char buf[4096];
|
|
||||||
size_t sz;
|
|
||||||
|
|
||||||
sz = fread(buf, 1, 4000, f);
|
|
||||||
if (sz > 0)
|
|
||||||
{
|
|
||||||
data = malloc(sz + 1);
|
|
||||||
if (data)
|
|
||||||
{
|
|
||||||
strncpy(data, buf, sz);
|
|
||||||
data[sz] = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fclose(f);
|
|
||||||
}
|
|
||||||
if (data)
|
|
||||||
{
|
|
||||||
einfo->func.performance_build(perf, data);
|
|
||||||
einfo->func.performance_device_store(perf);
|
|
||||||
free(data);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
printf("No cached performance values for your display.\n");
|
|
||||||
printf("Please run evas_perf_test to generate them.\n");
|
|
||||||
einfo->func.performance_free(perf);
|
|
||||||
exit(-1);
|
|
||||||
}
|
|
||||||
einfo->func.performance_free(perf);
|
|
||||||
exit(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
evas_shutdown();
|
|
||||||
return 0;
|
|
||||||
}
|
|
|
@ -1,164 +0,0 @@
|
||||||
#include <X11/Xlib.h>
|
|
||||||
#include <X11/Xutil.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <math.h>
|
|
||||||
#include <sys/time.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
|
|
||||||
#include "Evas.h"
|
|
||||||
#include "Evas_Engine_Software_X11.h"
|
|
||||||
|
|
||||||
Display *disp = NULL;
|
|
||||||
Window win = 0;
|
|
||||||
|
|
||||||
Evas *evas = NULL;
|
|
||||||
|
|
||||||
int win_w = 240;
|
|
||||||
int win_h = 240;
|
|
||||||
|
|
||||||
int
|
|
||||||
main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
int exposed = 0;
|
|
||||||
|
|
||||||
XSetWindowAttributes attr;
|
|
||||||
XClassHint chint;
|
|
||||||
XSizeHints szhints;
|
|
||||||
|
|
||||||
disp = XOpenDisplay(NULL);
|
|
||||||
if (!disp)
|
|
||||||
{
|
|
||||||
printf("Error: cannot open display.\n");
|
|
||||||
exit(-1);
|
|
||||||
}
|
|
||||||
attr.backing_store = NotUseful;
|
|
||||||
attr.colormap = DefaultColormap(disp, DefaultScreen(disp));
|
|
||||||
attr.border_pixel = 0;
|
|
||||||
attr.background_pixmap = None;
|
|
||||||
attr.event_mask =
|
|
||||||
ExposureMask | ButtonPressMask | ButtonReleaseMask | PointerMotionMask;
|
|
||||||
attr.bit_gravity = ForgetGravity;
|
|
||||||
win = XCreateWindow(disp, DefaultRootWindow(disp), 0, 0, win_w, win_h, 0,
|
|
||||||
DefaultDepth(disp, DefaultScreen(disp)), InputOutput,
|
|
||||||
DefaultVisual(disp, DefaultScreen(disp)),
|
|
||||||
CWBackingStore | CWColormap |
|
|
||||||
CWBackPixmap | CWBorderPixel |
|
|
||||||
CWBitGravity | CWEventMask, &attr);
|
|
||||||
XStoreName(disp, win, "Evas Performance Test");
|
|
||||||
chint.res_name = "Evas_Test";
|
|
||||||
chint.res_class = "Main";
|
|
||||||
XSetClassHint(disp, win, &chint);
|
|
||||||
szhints.flags = PMinSize | PMaxSize | PSize | USSize;
|
|
||||||
szhints.max_width = win_w;
|
|
||||||
szhints.max_height = win_h;
|
|
||||||
szhints.min_width = win_w;
|
|
||||||
szhints.min_height = win_h;
|
|
||||||
XSetWMNormalHints(disp, win, &szhints);
|
|
||||||
XMapWindow(disp, win);
|
|
||||||
XSync(disp, False);
|
|
||||||
sleep(1);
|
|
||||||
|
|
||||||
evas_init();
|
|
||||||
evas = evas_new();
|
|
||||||
evas_output_method_set(evas, evas_render_method_lookup("software_x11"));
|
|
||||||
evas_output_size_set(evas, win_w, win_h);
|
|
||||||
evas_output_viewport_set(evas, 0, 0, win_w, win_h);
|
|
||||||
{
|
|
||||||
Evas_Engine_Info_Software_X11 *einfo;
|
|
||||||
|
|
||||||
einfo = (Evas_Engine_Info_Software_X11 *) evas_engine_info_get(evas);
|
|
||||||
|
|
||||||
/* the following is specific to the engine */
|
|
||||||
einfo->info.display = disp;
|
|
||||||
einfo->info.visual = DefaultVisual(disp, DefaultScreen(disp));
|
|
||||||
einfo->info.colormap = DefaultColormap(disp, DefaultScreen(disp));
|
|
||||||
einfo->info.drawable = win;
|
|
||||||
einfo->info.depth = DefaultDepth(disp, DefaultScreen(disp));
|
|
||||||
einfo->info.rotation = 0;
|
|
||||||
|
|
||||||
evas_engine_info_set(evas, (Evas_Engine_Info *) einfo);
|
|
||||||
}
|
|
||||||
for (;;)
|
|
||||||
{
|
|
||||||
XEvent ev;
|
|
||||||
|
|
||||||
while (XCheckMaskEvent(disp,
|
|
||||||
ExposureMask |
|
|
||||||
StructureNotifyMask |
|
|
||||||
KeyPressMask |
|
|
||||||
KeyReleaseMask |
|
|
||||||
ButtonPressMask |
|
|
||||||
ButtonReleaseMask | PointerMotionMask, &ev))
|
|
||||||
{
|
|
||||||
switch (ev.type)
|
|
||||||
{
|
|
||||||
case ButtonPress:
|
|
||||||
/* evas_event_button_down(evas, ev.xbutton.x, ev.xbutton.y, ev.xbutton.button);*/
|
|
||||||
break;
|
|
||||||
case ButtonRelease:
|
|
||||||
/* evas_event_button_up(evas, ev.xbutton.x, ev.xbutton.y, ev.xbutton.button);*/
|
|
||||||
break;
|
|
||||||
case MotionNotify:
|
|
||||||
/* evas_event_move(evas, ev.xmotion.x, ev.xmotion.y);*/
|
|
||||||
break;
|
|
||||||
case Expose:
|
|
||||||
exposed = 1;
|
|
||||||
evas_damage_rectangle_add(evas,
|
|
||||||
ev.xexpose.x,
|
|
||||||
ev.xexpose.y,
|
|
||||||
ev.xexpose.width,
|
|
||||||
ev.xexpose.height);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
evas_render(evas);
|
|
||||||
XFlush(disp);
|
|
||||||
if (exposed)
|
|
||||||
{
|
|
||||||
Evas_Engine_Info_Software_X11 *einfo;
|
|
||||||
Evas_Performance *perf;
|
|
||||||
char buf[4096];
|
|
||||||
char *data, *key;
|
|
||||||
static mode_t default_mode =
|
|
||||||
S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH |
|
|
||||||
S_IXOTH;
|
|
||||||
FILE *f;
|
|
||||||
|
|
||||||
einfo =
|
|
||||||
(Evas_Engine_Info_Software_X11 *) evas_engine_info_get(evas);
|
|
||||||
perf =
|
|
||||||
einfo->func.performance_test(evas, disp,
|
|
||||||
DefaultVisual(disp,
|
|
||||||
DefaultScreen(disp)),
|
|
||||||
DefaultColormap(disp,
|
|
||||||
DefaultScreen
|
|
||||||
(disp)), win,
|
|
||||||
DefaultDepth(disp,
|
|
||||||
DefaultScreen(disp)));
|
|
||||||
einfo->func.performance_device_store(perf);
|
|
||||||
data = einfo->func.performance_data_get(perf);
|
|
||||||
key = einfo->func.performance_key_get(perf);
|
|
||||||
snprintf(buf, sizeof(buf), "%s/.evas", getenv("HOME"));
|
|
||||||
mkdir(buf, default_mode);
|
|
||||||
snprintf(buf, sizeof(buf), "%s/.evas/%s", getenv("HOME"), key);
|
|
||||||
free(key);
|
|
||||||
f = fopen(buf, "w");
|
|
||||||
if (f)
|
|
||||||
{
|
|
||||||
fprintf(f, "%s", data);
|
|
||||||
free(data);
|
|
||||||
fclose(f);
|
|
||||||
}
|
|
||||||
einfo->func.performance_free(perf);
|
|
||||||
exit(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
evas_shutdown();
|
|
||||||
return 0;
|
|
||||||
}
|
|
|
@ -1,401 +0,0 @@
|
||||||
#include "evas_test_main.h"
|
|
||||||
|
|
||||||
#define X_H /* make sure we aren't using symbols from X.h */
|
|
||||||
|
|
||||||
#include <xcb/xcb.h>
|
|
||||||
#include <xcb/shm.h>
|
|
||||||
#include <xcb/xcb_icccm.h>
|
|
||||||
|
|
||||||
#include "Evas.h"
|
|
||||||
#include "Evas_Engine_Software_Xcb.h"
|
|
||||||
|
|
||||||
|
|
||||||
static xcb_visualtype_t *
|
|
||||||
visualtype_get(xcb_connection_t *conn, xcb_screen_t *screen)
|
|
||||||
{
|
|
||||||
xcb_depth_iterator_t iter_depth;
|
|
||||||
|
|
||||||
if (!conn || !screen) return NULL;
|
|
||||||
|
|
||||||
iter_depth = xcb_screen_allowed_depths_iterator(screen);
|
|
||||||
for (; iter_depth.rem; xcb_depth_next (&iter_depth))
|
|
||||||
{
|
|
||||||
xcb_visualtype_iterator_t iter_vis;
|
|
||||||
|
|
||||||
iter_vis = xcb_depth_visuals_iterator(iter_depth.data);
|
|
||||||
for (; iter_vis.rem; --screen, xcb_visualtype_next (&iter_vis))
|
|
||||||
{
|
|
||||||
if (screen->root_visual == iter_vis.data->visual_id)
|
|
||||||
return iter_vis.data;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
title_set (xcb_connection_t *c, xcb_window_t win, const char *title)
|
|
||||||
{
|
|
||||||
xcb_intern_atom_cookie_t cookie_encoding;
|
|
||||||
xcb_intern_atom_cookie_t cookie_property;
|
|
||||||
xcb_intern_atom_reply_t *rep;
|
|
||||||
xcb_atom_t encoding;
|
|
||||||
char *atom_name;
|
|
||||||
|
|
||||||
atom_name = "UTF8_STRING";
|
|
||||||
cookie_encoding = xcb_intern_atom (c,
|
|
||||||
0,
|
|
||||||
strlen (atom_name),
|
|
||||||
atom_name);
|
|
||||||
atom_name = "_NET_WM_NAME";
|
|
||||||
cookie_property = xcb_intern_atom (c,
|
|
||||||
0,
|
|
||||||
strlen (atom_name),
|
|
||||||
atom_name);
|
|
||||||
|
|
||||||
rep = xcb_intern_atom_reply (c, cookie_encoding, NULL);
|
|
||||||
encoding = rep->atom;
|
|
||||||
free (rep);
|
|
||||||
|
|
||||||
rep = xcb_intern_atom_reply (c, cookie_property, NULL);
|
|
||||||
|
|
||||||
xcb_change_property(c, XCB_PROP_MODE_REPLACE,
|
|
||||||
win,
|
|
||||||
rep->atom, encoding, 8, strlen (title), title);
|
|
||||||
free (rep);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
class_set (xcb_connection_t *c, xcb_window_t win, const char *name, const char *class)
|
|
||||||
{
|
|
||||||
xcb_intern_atom_cookie_t cookie_encoding;
|
|
||||||
xcb_intern_atom_cookie_t cookie_property;
|
|
||||||
xcb_intern_atom_reply_t *rep;
|
|
||||||
xcb_atom_t encoding;
|
|
||||||
char *atom_name;
|
|
||||||
char *class_str;
|
|
||||||
char *s;
|
|
||||||
int length_name;
|
|
||||||
int length_class;
|
|
||||||
|
|
||||||
length_name = strlen (name);
|
|
||||||
length_class = strlen (class);
|
|
||||||
class_str = (char *)malloc (sizeof (char) * (length_name + length_class + 2));
|
|
||||||
if (!class_str) return;
|
|
||||||
s = class_str;
|
|
||||||
memcpy (s, name, length_name);
|
|
||||||
s += length_name;
|
|
||||||
*s = '\0';
|
|
||||||
s++;
|
|
||||||
memcpy (s, class, length_class);
|
|
||||||
s += length_class;
|
|
||||||
*s = '\0';
|
|
||||||
|
|
||||||
atom_name = "UTF8_STRING";
|
|
||||||
cookie_encoding = xcb_intern_atom (c,
|
|
||||||
0,
|
|
||||||
strlen (atom_name),
|
|
||||||
atom_name);
|
|
||||||
atom_name = "_WM_CLASS";
|
|
||||||
cookie_property = xcb_intern_atom (c,
|
|
||||||
0,
|
|
||||||
strlen (atom_name),
|
|
||||||
atom_name);
|
|
||||||
|
|
||||||
rep = xcb_intern_atom_reply (c, cookie_encoding, NULL);
|
|
||||||
encoding = rep->atom;
|
|
||||||
free (rep);
|
|
||||||
|
|
||||||
rep = xcb_intern_atom_reply (c, cookie_property, NULL);
|
|
||||||
|
|
||||||
xcb_change_property(c, XCB_PROP_MODE_REPLACE,
|
|
||||||
win,
|
|
||||||
rep->atom, encoding, 8, strlen (class_str), class_str);
|
|
||||||
free (rep);
|
|
||||||
free (class_str);
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
int pause_me = 0;
|
|
||||||
xcb_connection_t *conn;
|
|
||||||
const xcb_query_extension_reply_t *rep_shm;
|
|
||||||
xcb_get_input_focus_reply_t *reply;
|
|
||||||
xcb_screen_t *screen = NULL;
|
|
||||||
xcb_screen_iterator_t iter_screen;
|
|
||||||
xcb_window_t win;
|
|
||||||
xcb_generic_event_t *e;
|
|
||||||
uint32_t mask;
|
|
||||||
uint32_t value[6];
|
|
||||||
int screen_nbr;
|
|
||||||
|
|
||||||
conn = xcb_connect (NULL, &screen_nbr);
|
|
||||||
if (!conn)
|
|
||||||
{
|
|
||||||
printf("Error: cannot open a connection.\n");
|
|
||||||
exit(-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* shm extension */
|
|
||||||
rep_shm = xcb_get_extension_data(conn, &xcb_shm_id);
|
|
||||||
|
|
||||||
iter_screen = xcb_setup_roots_iterator (xcb_get_setup (conn));
|
|
||||||
for (; iter_screen.rem; --screen_nbr, xcb_screen_next (&iter_screen))
|
|
||||||
if (screen == 0)
|
|
||||||
{
|
|
||||||
screen = iter_screen.data;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (!screen)
|
|
||||||
{
|
|
||||||
printf("Error: cannot get the screen.\n");
|
|
||||||
exit(-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
mask =
|
|
||||||
XCB_CW_BACK_PIXMAP | XCB_CW_BORDER_PIXEL |
|
|
||||||
XCB_CW_BIT_GRAVITY | XCB_CW_BACKING_STORE |
|
|
||||||
XCB_CW_EVENT_MASK | XCB_CW_COLORMAP;
|
|
||||||
|
|
||||||
value[0] = XCB_BACK_PIXMAP_NONE;
|
|
||||||
value[1] = 0;
|
|
||||||
value[2] = XCB_GRAVITY_BIT_FORGET;
|
|
||||||
value[3] = XCB_BACKING_STORE_NOT_USEFUL;
|
|
||||||
value[4] = XCB_EVENT_MASK_EXPOSURE | XCB_EVENT_MASK_BUTTON_PRESS | XCB_EVENT_MASK_BUTTON_RELEASE | XCB_EVENT_MASK_POINTER_MOTION | XCB_EVENT_MASK_STRUCTURE_NOTIFY;
|
|
||||||
value[5] = screen->default_colormap;
|
|
||||||
|
|
||||||
win = xcb_generate_id (conn);
|
|
||||||
xcb_create_window (conn,
|
|
||||||
screen->root_depth,
|
|
||||||
win, screen->root,
|
|
||||||
0, 0,
|
|
||||||
win_w, win_h,
|
|
||||||
0,
|
|
||||||
XCB_WINDOW_CLASS_INPUT_OUTPUT,
|
|
||||||
screen->root_visual,
|
|
||||||
mask, value);
|
|
||||||
|
|
||||||
title_set (conn, win, "Evas Software XCB Test");
|
|
||||||
class_set (conn, win, "Evas_Software_XCB_Test", "Main");
|
|
||||||
#if 0
|
|
||||||
szhints = AllocSizeHints();
|
|
||||||
SizeHintsSetMinSize(szhints, win_w, win_h);
|
|
||||||
SizeHintsSetMaxSize(szhints, win_w, win_h);
|
|
||||||
SizeHintsSetSize(szhints, 0, win_w, win_h);
|
|
||||||
SetWMNormalHints(conn, win.window, szhints);
|
|
||||||
FreeSizeHints(szhints);
|
|
||||||
#endif
|
|
||||||
xcb_map_window (conn, win);
|
|
||||||
/* we sync */
|
|
||||||
reply = xcb_get_input_focus_reply(conn,
|
|
||||||
xcb_get_input_focus_unchecked(conn),
|
|
||||||
NULL);
|
|
||||||
free(reply);
|
|
||||||
|
|
||||||
/* test evas_free.... :) */
|
|
||||||
evas_init();
|
|
||||||
evas = evas_new();
|
|
||||||
evas_output_method_set(evas, evas_render_method_lookup("software_xcb"));
|
|
||||||
evas_output_size_set(evas, win_w, win_h);
|
|
||||||
evas_output_viewport_set(evas, 0, 0, win_w, win_h);
|
|
||||||
{
|
|
||||||
Evas_Engine_Info_Software_Xcb *einfo;
|
|
||||||
|
|
||||||
einfo = (Evas_Engine_Info_Software_Xcb *) evas_engine_info_get(evas);
|
|
||||||
|
|
||||||
/* the following is specific to the engine */
|
|
||||||
einfo->info.conn = conn;
|
|
||||||
einfo->info.visual = visualtype_get(conn, screen);
|
|
||||||
einfo->info.colormap = screen->default_colormap;
|
|
||||||
einfo->info.drawable = win;
|
|
||||||
einfo->info.depth = screen->root_depth;
|
|
||||||
einfo->info.rotation = 0;
|
|
||||||
einfo->info.debug = 0;
|
|
||||||
evas_engine_info_set(evas, (Evas_Engine_Info *) einfo);
|
|
||||||
}
|
|
||||||
setup();
|
|
||||||
printf("################ evas free\n");
|
|
||||||
setdown();
|
|
||||||
evas_free(evas);
|
|
||||||
printf("evas freed. DONE\n");
|
|
||||||
|
|
||||||
evas = evas_new();
|
|
||||||
evas_output_method_set(evas, evas_render_method_lookup("software_xcb"));
|
|
||||||
evas_output_size_set(evas, win_w, win_h);
|
|
||||||
evas_output_viewport_set(evas, 0, 0, win_w, win_h);
|
|
||||||
{
|
|
||||||
Evas_Engine_Info_Software_Xcb *einfo;
|
|
||||||
|
|
||||||
einfo = (Evas_Engine_Info_Software_Xcb *) evas_engine_info_get(evas);
|
|
||||||
|
|
||||||
/* the following is specific to the engine */
|
|
||||||
einfo->info.conn = conn;
|
|
||||||
einfo->info.visual = visualtype_get(conn, screen);
|
|
||||||
einfo->info.colormap = screen->default_colormap;
|
|
||||||
einfo->info.drawable = win;
|
|
||||||
einfo->info.depth = screen->root_depth;
|
|
||||||
einfo->info.rotation = 0;
|
|
||||||
einfo->info.debug = 0;
|
|
||||||
evas_engine_info_set(evas, (Evas_Engine_Info *) einfo);
|
|
||||||
}
|
|
||||||
setup();
|
|
||||||
printf("################ evas free\n");
|
|
||||||
setdown();
|
|
||||||
evas_free(evas);
|
|
||||||
printf("evas freed. DONE\n");
|
|
||||||
|
|
||||||
evas = evas_new();
|
|
||||||
evas_output_method_set(evas, evas_render_method_lookup("software_xcb"));
|
|
||||||
evas_output_size_set(evas, win_w, win_h);
|
|
||||||
evas_output_viewport_set(evas, 0, 0, win_w, win_h);
|
|
||||||
{
|
|
||||||
Evas_Engine_Info_Software_Xcb *einfo;
|
|
||||||
|
|
||||||
einfo = (Evas_Engine_Info_Software_Xcb *) evas_engine_info_get(evas);
|
|
||||||
|
|
||||||
/* the following is specific to the engine */
|
|
||||||
einfo->info.conn = conn;
|
|
||||||
einfo->info.visual = visualtype_get(conn, screen);
|
|
||||||
einfo->info.colormap = screen->default_colormap;
|
|
||||||
einfo->info.drawable = win;
|
|
||||||
einfo->info.depth = screen->root_depth;
|
|
||||||
einfo->info.rotation = 0;
|
|
||||||
einfo->info.debug = 0;
|
|
||||||
evas_engine_info_set(evas, (Evas_Engine_Info *) einfo);
|
|
||||||
}
|
|
||||||
setup();
|
|
||||||
printf("################ evas free\n");
|
|
||||||
setdown();
|
|
||||||
evas_free(evas);
|
|
||||||
printf("evas freed. DONE\n");
|
|
||||||
|
|
||||||
evas = evas_new();
|
|
||||||
evas_output_method_set(evas, evas_render_method_lookup("software_xcb"));
|
|
||||||
evas_output_size_set(evas, win_w, win_h);
|
|
||||||
evas_output_viewport_set(evas, 0, 0, win_w, win_h);
|
|
||||||
{
|
|
||||||
Evas_Engine_Info_Software_Xcb *einfo;
|
|
||||||
|
|
||||||
einfo = (Evas_Engine_Info_Software_Xcb *) evas_engine_info_get(evas);
|
|
||||||
|
|
||||||
/* the following is specific to the engine */
|
|
||||||
einfo->info.conn = conn;
|
|
||||||
einfo->info.visual = visualtype_get(conn, screen);
|
|
||||||
einfo->info.colormap = screen->default_colormap;
|
|
||||||
einfo->info.drawable = win;
|
|
||||||
einfo->info.depth = screen->root_depth;
|
|
||||||
einfo->info.rotation = 0;
|
|
||||||
einfo->info.debug = 0;
|
|
||||||
evas_engine_info_set(evas, (Evas_Engine_Info *) einfo);
|
|
||||||
}
|
|
||||||
setup();
|
|
||||||
printf("################ evas free\n");
|
|
||||||
setdown();
|
|
||||||
evas_free(evas);
|
|
||||||
printf("evas freed. DONE\n");
|
|
||||||
|
|
||||||
evas = evas_new();
|
|
||||||
evas_output_method_set(evas, evas_render_method_lookup("software_xcb"));
|
|
||||||
evas_output_size_set(evas, win_w, win_h);
|
|
||||||
evas_output_viewport_set(evas, 0, 0, win_w, win_h);
|
|
||||||
{
|
|
||||||
Evas_Engine_Info_Software_Xcb *einfo;
|
|
||||||
|
|
||||||
einfo = (Evas_Engine_Info_Software_Xcb *) evas_engine_info_get(evas);
|
|
||||||
|
|
||||||
/* the following is specific to the engine */
|
|
||||||
einfo->info.conn = conn;
|
|
||||||
einfo->info.visual = visualtype_get(conn, screen);
|
|
||||||
einfo->info.colormap = screen->default_colormap;
|
|
||||||
einfo->info.drawable = win;
|
|
||||||
einfo->info.depth = screen->root_depth;
|
|
||||||
einfo->info.rotation = 0;
|
|
||||||
einfo->info.debug = 0;
|
|
||||||
evas_engine_info_set(evas, (Evas_Engine_Info *) einfo);
|
|
||||||
}
|
|
||||||
setup();
|
|
||||||
orig_start_time = start_time = get_time();
|
|
||||||
|
|
||||||
while (1)
|
|
||||||
{
|
|
||||||
e = xcb_poll_for_event(conn);
|
|
||||||
|
|
||||||
if (e) {
|
|
||||||
switch (e->response_type)
|
|
||||||
{
|
|
||||||
case XCB_BUTTON_PRESS: {
|
|
||||||
xcb_button_press_event_t *ev = (xcb_button_press_event_t *)e;
|
|
||||||
|
|
||||||
if (ev->detail == 3)
|
|
||||||
{
|
|
||||||
free(e);
|
|
||||||
goto exit;
|
|
||||||
}
|
|
||||||
#if 0
|
|
||||||
if (!pause_me)
|
|
||||||
pause_me = 1;
|
|
||||||
else if (pause_me == 1)
|
|
||||||
pause_me = 2;
|
|
||||||
else
|
|
||||||
pause_me = 1;
|
|
||||||
#endif
|
|
||||||
evas_event_feed_mouse_move(evas, ev->event_x, ev->event_y, 0, NULL);
|
|
||||||
evas_event_feed_mouse_down(evas, ev->state, EVAS_BUTTON_NONE, 0, NULL);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case XCB_BUTTON_RELEASE: {
|
|
||||||
xcb_button_release_event_t *ev = (xcb_button_release_event_t *)e;
|
|
||||||
|
|
||||||
evas_event_feed_mouse_move(evas, ev->event_x, ev->event_y, 0, NULL);
|
|
||||||
evas_event_feed_mouse_up(evas, ev->state, EVAS_BUTTON_NONE, 0, NULL);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case XCB_MOTION_NOTIFY: {
|
|
||||||
xcb_motion_notify_event_t *ev = (xcb_motion_notify_event_t *)e;
|
|
||||||
|
|
||||||
evas_event_feed_mouse_move(evas, ev->event_x, ev->event_y, 0, NULL);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case XCB_EXPOSE: {
|
|
||||||
xcb_expose_event_t *ev = (xcb_expose_event_t *)e;
|
|
||||||
|
|
||||||
evas_damage_rectangle_add(evas,
|
|
||||||
ev->x,
|
|
||||||
ev->y,
|
|
||||||
ev->width,
|
|
||||||
ev->height);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case XCB_CONFIGURE_NOTIFY: {
|
|
||||||
xcb_configure_notify_event_t *ev = (xcb_configure_notify_event_t *)e;
|
|
||||||
|
|
||||||
evas_output_size_set(evas,
|
|
||||||
ev->width,
|
|
||||||
ev->height);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
free (e);
|
|
||||||
}
|
|
||||||
if (!(pause_me == 1))
|
|
||||||
{
|
|
||||||
loop();
|
|
||||||
evas_render(evas);
|
|
||||||
xcb_flush(conn);
|
|
||||||
}
|
|
||||||
if (pause_me == 2)
|
|
||||||
usleep(100000);
|
|
||||||
}
|
|
||||||
|
|
||||||
exit:
|
|
||||||
setdown();
|
|
||||||
evas_free(evas);
|
|
||||||
xcb_disconnect(conn);
|
|
||||||
evas_shutdown();
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,324 +0,0 @@
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <math.h>
|
|
||||||
#include <sys/time.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
|
|
||||||
#define X_H /* make sure we aren't using symbols from X.h */
|
|
||||||
|
|
||||||
#include <xcb/xcb.h>
|
|
||||||
#include <xcb/xcb_icccm.h>
|
|
||||||
|
|
||||||
#include "Evas.h"
|
|
||||||
#include "Evas_Engine_Software_Xcb.h"
|
|
||||||
|
|
||||||
xcb_connection_t *c = NULL;
|
|
||||||
xcb_window_t win;
|
|
||||||
|
|
||||||
Evas *evas = NULL;
|
|
||||||
|
|
||||||
int win_w = 240;
|
|
||||||
int win_h = 240;
|
|
||||||
|
|
||||||
|
|
||||||
static xcb_visualtype_t *
|
|
||||||
visualtype_get(xcb_connection_t *conn, xcb_screen_t *screen)
|
|
||||||
{
|
|
||||||
xcb_depth_iterator_t iter_depth;
|
|
||||||
|
|
||||||
if (!conn || !screen) return NULL;
|
|
||||||
|
|
||||||
iter_depth = xcb_screen_allowed_depths_iterator(screen);
|
|
||||||
for (; iter_depth.rem; xcb_depth_next (&iter_depth))
|
|
||||||
{
|
|
||||||
xcb_visualtype_iterator_t iter_vis;
|
|
||||||
|
|
||||||
iter_vis = xcb_depth_visuals_iterator(iter_depth.data);
|
|
||||||
for (; iter_vis.rem; --screen, xcb_visualtype_next (&iter_vis))
|
|
||||||
{
|
|
||||||
if (screen->root_visual == iter_vis.data->visual_id)
|
|
||||||
return iter_vis.data;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
title_set (xcb_connection_t *c, xcb_window_t win, const char *title)
|
|
||||||
{
|
|
||||||
xcb_intern_atom_cookie_t cookie_encoding;
|
|
||||||
xcb_intern_atom_cookie_t cookie_property;
|
|
||||||
xcb_intern_atom_reply_t *rep;
|
|
||||||
xcb_atom_t encoding;
|
|
||||||
char *atom_name;
|
|
||||||
|
|
||||||
atom_name = "UTF8_STRING";
|
|
||||||
cookie_encoding = xcb_intern_atom (c,
|
|
||||||
0,
|
|
||||||
strlen (atom_name),
|
|
||||||
atom_name);
|
|
||||||
atom_name = "_NET_WM_NAME";
|
|
||||||
cookie_property = xcb_intern_atom (c,
|
|
||||||
0,
|
|
||||||
strlen (atom_name),
|
|
||||||
atom_name);
|
|
||||||
|
|
||||||
rep = xcb_intern_atom_reply (c, cookie_encoding, NULL);
|
|
||||||
encoding = rep->atom;
|
|
||||||
free (rep);
|
|
||||||
|
|
||||||
rep = xcb_intern_atom_reply (c, cookie_property, NULL);
|
|
||||||
|
|
||||||
xcb_change_property(c, XCB_PROP_MODE_REPLACE,
|
|
||||||
win,
|
|
||||||
rep->atom, encoding, 8, strlen (title), title);
|
|
||||||
free (rep);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
class_set (xcb_connection_t *c, xcb_window_t win, const char *name, const char *class)
|
|
||||||
{
|
|
||||||
xcb_intern_atom_cookie_t cookie_encoding;
|
|
||||||
xcb_intern_atom_cookie_t cookie_property;
|
|
||||||
xcb_intern_atom_reply_t *rep;
|
|
||||||
xcb_atom_t encoding;
|
|
||||||
char *atom_name;
|
|
||||||
char *class_str;
|
|
||||||
char *s;
|
|
||||||
int length_name;
|
|
||||||
int length_class;
|
|
||||||
|
|
||||||
length_name = strlen (name);
|
|
||||||
length_class = strlen (class);
|
|
||||||
class_str = (char *)malloc (sizeof (char) * (length_name + length_class + 2));
|
|
||||||
if (!class_str) return;
|
|
||||||
s = class_str;
|
|
||||||
memcpy (s, name, length_name);
|
|
||||||
s += length_name;
|
|
||||||
*s = '\0';
|
|
||||||
s++;
|
|
||||||
memcpy (s, class, length_class);
|
|
||||||
s += length_class;
|
|
||||||
*s = '\0';
|
|
||||||
|
|
||||||
atom_name = "UTF8_STRING";
|
|
||||||
cookie_encoding = xcb_intern_atom (c,
|
|
||||||
0,
|
|
||||||
strlen (atom_name),
|
|
||||||
atom_name);
|
|
||||||
atom_name = "_WM_CLASS";
|
|
||||||
cookie_property = xcb_intern_atom (c,
|
|
||||||
0,
|
|
||||||
strlen (atom_name),
|
|
||||||
atom_name);
|
|
||||||
|
|
||||||
rep = xcb_intern_atom_reply (c, cookie_encoding, NULL);
|
|
||||||
encoding = rep->atom;
|
|
||||||
free (rep);
|
|
||||||
|
|
||||||
rep = xcb_intern_atom_reply (c, cookie_property, NULL);
|
|
||||||
|
|
||||||
xcb_change_property(c, XCB_PROP_MODE_REPLACE,
|
|
||||||
win,
|
|
||||||
rep->atom, encoding, 8, strlen (class_str), class_str);
|
|
||||||
free (rep);
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
int exposed = 0;
|
|
||||||
xcb_screen_t *screen = NULL;
|
|
||||||
xcb_screen_iterator_t iter_screen;
|
|
||||||
xcb_generic_event_t *e;
|
|
||||||
uint32_t mask = 0;
|
|
||||||
uint32_t value[6];
|
|
||||||
SizeHints *szhints;
|
|
||||||
int screen_nbr;
|
|
||||||
|
|
||||||
c = xcb_connect (NULL, &screen_nbr);
|
|
||||||
if (!c)
|
|
||||||
{
|
|
||||||
printf("Error: cannot open a connection.\n");
|
|
||||||
exit(-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
iter_screen = xcb_setup_roots_iterator (xcb_get_setup (c));
|
|
||||||
for (; iter_screen.rem; --screen_nbr, xcb_screen_next (&iter_screen))
|
|
||||||
if (screen == 0)
|
|
||||||
{
|
|
||||||
screen = iter_screen.data;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (!screen)
|
|
||||||
{
|
|
||||||
printf("Error: cannot get the screen.\n");
|
|
||||||
exit(-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
mask =
|
|
||||||
XCB_CW_BACK_PIXMAP | XCB_CW_BORDER_PIXEL |
|
|
||||||
XCB_CW_BIT_GRAVITY | XCB_CW_BACKING_STORE |
|
|
||||||
XCB_CW_EVENT_MASK | XCB_CW_COLORMAP;
|
|
||||||
|
|
||||||
value[0] = XCB_BACK_PIXMAP_NONE;
|
|
||||||
value[1] = 0;
|
|
||||||
value[2] = XCB_GRAVITY_BIT_FORGET;
|
|
||||||
value[3] = XCB_BACKING_STORE_NOT_USEFUL;
|
|
||||||
value[4] = XCB_EVENT_MASK_EXPOSURE | XCB_EVENT_MASK_BUTTON_PRESS | XCB_EVENT_MASK_BUTTON_RELEASE | XCB_EVENT_MASK_POINTER_MOTION;
|
|
||||||
value[5] = screen->default_colormap;
|
|
||||||
|
|
||||||
win = xcb_generate_id (c);
|
|
||||||
xcb_create_window (c,
|
|
||||||
screen->root_depth,
|
|
||||||
win, screen->root,
|
|
||||||
0, 0,
|
|
||||||
win_w, win_h,
|
|
||||||
0,
|
|
||||||
XCB_WINDOW_CLASS_INPUT_OUTPUT,
|
|
||||||
screen->root_visual,
|
|
||||||
mask, value);
|
|
||||||
|
|
||||||
title_set (c, win, "Evas XCB Performance Test");
|
|
||||||
class_set (c, win, "Evas_XCB_Perf_Test", "Main");
|
|
||||||
|
|
||||||
szhints = AllocSizeHints();
|
|
||||||
SizeHintsSetMinSize(szhints, win_w, win_h);
|
|
||||||
SizeHintsSetMaxSize(szhints, win_w, win_h);
|
|
||||||
SizeHintsSetSize(szhints, 0, win_w, win_h);
|
|
||||||
SetWMNormalHints(c, win, szhints);
|
|
||||||
FreeSizeHints(szhints);
|
|
||||||
|
|
||||||
xcb_map_window (c, win);
|
|
||||||
|
|
||||||
evas_init();
|
|
||||||
evas = evas_new();
|
|
||||||
evas_output_method_set(evas, evas_render_method_lookup("software_xcb"));
|
|
||||||
evas_output_size_set(evas, win_w, win_h);
|
|
||||||
evas_output_viewport_set(evas, 0, 0, win_w, win_h);
|
|
||||||
{
|
|
||||||
Evas_Engine_Info_Software_Xcb *einfo;
|
|
||||||
|
|
||||||
einfo = (Evas_Engine_Info_Software_Xcb *) evas_engine_info_get(evas);
|
|
||||||
|
|
||||||
/* the following is specific to the engine */
|
|
||||||
einfo->info.conn = c;
|
|
||||||
einfo->info.visual = visualtype_get(c, screen);
|
|
||||||
einfo->info.colormap = screen->default_colormap;
|
|
||||||
einfo->info.drawable = win;
|
|
||||||
einfo->info.depth = screen->root_depth;
|
|
||||||
einfo->info.rotation = 0;
|
|
||||||
|
|
||||||
evas_engine_info_set(evas, (Evas_Engine_Info *) einfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
while (1)
|
|
||||||
{
|
|
||||||
e = xcb_poll_for_event(c);
|
|
||||||
|
|
||||||
if (e)
|
|
||||||
{
|
|
||||||
switch (e->response_type)
|
|
||||||
{
|
|
||||||
case XCB_BUTTON_PRESS: {
|
|
||||||
xcb_button_press_event_t *ev = (xcb_button_press_event_t *)e;
|
|
||||||
|
|
||||||
/* evas_event_button_down(evas, ev->event_x, ev->event_y, ev->detail.id);*/
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case XCB_BUTTON_RELEASE: {
|
|
||||||
xcb_button_release_event_t *ev = (xcb_button_release_event_t *)e;
|
|
||||||
|
|
||||||
/* evas_event_button_up(evas, ev->event_x, ev->event_y, ev->detail.id);*/
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case XCB_MOTION_NOTIFY: {
|
|
||||||
xcb_motion_notify_event_t *ev = (xcb_motion_notify_event_t *)e;
|
|
||||||
|
|
||||||
/* evas_event_move(evas, ev->event_x, ev->event_y);*/
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case XCB_EXPOSE: {
|
|
||||||
xcb_expose_event_t *ev = (xcb_expose_event_t *)e;
|
|
||||||
|
|
||||||
exposed = 1;
|
|
||||||
evas_damage_rectangle_add(evas,
|
|
||||||
ev->x,
|
|
||||||
ev->y,
|
|
||||||
ev->width,
|
|
||||||
ev->height);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
evas_render(evas);
|
|
||||||
xcb_flush(c);
|
|
||||||
|
|
||||||
if (exposed)
|
|
||||||
{
|
|
||||||
char buf[4096];
|
|
||||||
Evas_Engine_Info_Software_Xcb *einfo;
|
|
||||||
Evas_Performance *perf;
|
|
||||||
char *data, *key;
|
|
||||||
static mode_t default_mode =
|
|
||||||
S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH |
|
|
||||||
S_IXOTH;
|
|
||||||
FILE *f;
|
|
||||||
|
|
||||||
data = NULL;
|
|
||||||
einfo =
|
|
||||||
(Evas_Engine_Info_Software_Xcb *) evas_engine_info_get(evas);
|
|
||||||
perf =
|
|
||||||
einfo->func.performance_new(evas, c,
|
|
||||||
visualtype_get(c, screen),
|
|
||||||
screen->default_colormap,
|
|
||||||
win,
|
|
||||||
screen->root_depth);
|
|
||||||
key = einfo->func.performance_key_get(perf);
|
|
||||||
snprintf(buf, sizeof(buf), "%s/.evas/%s", getenv("HOME"), key);
|
|
||||||
free(key);
|
|
||||||
f = fopen(buf, "r");
|
|
||||||
if (f)
|
|
||||||
{
|
|
||||||
char buf[4096];
|
|
||||||
size_t sz;
|
|
||||||
|
|
||||||
sz = fread(buf, 1, 4000, f);
|
|
||||||
if (sz > 0)
|
|
||||||
{
|
|
||||||
data = malloc(sz + 1);
|
|
||||||
if (data)
|
|
||||||
{
|
|
||||||
strncpy(data, buf, sz);
|
|
||||||
data[sz] = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fclose(f);
|
|
||||||
}
|
|
||||||
if (data)
|
|
||||||
{
|
|
||||||
einfo->func.performance_build(perf, data);
|
|
||||||
einfo->func.performance_device_store(perf);
|
|
||||||
free(data);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
printf("No cached performance values for your display.\n");
|
|
||||||
printf("Please run evas_perf_test to generate them.\n");
|
|
||||||
einfo->func.performance_free(perf);
|
|
||||||
exit(-1);
|
|
||||||
}
|
|
||||||
einfo->func.performance_free(perf);
|
|
||||||
exit(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
evas_shutdown();
|
|
||||||
return 0;
|
|
||||||
}
|
|
|
@ -1,304 +0,0 @@
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <math.h>
|
|
||||||
#include <sys/time.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
|
|
||||||
#define X_H /* make sure we aren't using symbols from X.h */
|
|
||||||
|
|
||||||
#include <xcb/xcb.h>
|
|
||||||
#include <xcb/xcb_icccm.h>
|
|
||||||
|
|
||||||
#include "Evas.h"
|
|
||||||
#include "Evas_Engine_Software_Xcb.h"
|
|
||||||
|
|
||||||
xcb_connection_t *c = NULL;
|
|
||||||
xcb_window_t win;
|
|
||||||
|
|
||||||
Evas *evas = NULL;
|
|
||||||
|
|
||||||
int win_w = 240;
|
|
||||||
int win_h = 240;
|
|
||||||
|
|
||||||
|
|
||||||
static xcb_visualtype_t *
|
|
||||||
visualtype_get(xcb_connection_t *conn, xcb_screen_t *screen)
|
|
||||||
{
|
|
||||||
xcb_depth_iterator_t iter_depth;
|
|
||||||
|
|
||||||
if (!conn || !screen) return NULL;
|
|
||||||
|
|
||||||
iter_depth = xcb_screen_allowed_depths_iterator(screen);
|
|
||||||
for (; iter_depth.rem; xcb_depth_next (&iter_depth))
|
|
||||||
{
|
|
||||||
xcb_visualtype_iterator_t iter_vis;
|
|
||||||
|
|
||||||
iter_vis = xcb_depth_visuals_iterator(iter_depth.data);
|
|
||||||
for (; iter_vis.rem; --screen, xcb_visualtype_next (&iter_vis))
|
|
||||||
{
|
|
||||||
if (screen->root_visual == iter_vis.data->visual_id)
|
|
||||||
return iter_vis.data;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
title_set (xcb_connection_t *c, xcb_window_t win, const char *title)
|
|
||||||
{
|
|
||||||
xcb_intern_atom_cookie_t cookie_encoding;
|
|
||||||
xcb_intern_atom_cookie_t cookie_property;
|
|
||||||
xcb_intern_atom_reply_t *rep;
|
|
||||||
xcb_atom_t encoding;
|
|
||||||
char *atom_name;
|
|
||||||
|
|
||||||
atom_name = "UTF8_STRING";
|
|
||||||
cookie_encoding = xcb_intern_atom (c,
|
|
||||||
0,
|
|
||||||
strlen (atom_name),
|
|
||||||
atom_name);
|
|
||||||
atom_name = "_NET_WM_NAME";
|
|
||||||
cookie_property = xcb_intern_atom (c,
|
|
||||||
0,
|
|
||||||
strlen (atom_name),
|
|
||||||
atom_name);
|
|
||||||
|
|
||||||
rep = xcb_intern_atom_reply (c, cookie_encoding, NULL);
|
|
||||||
encoding = rep->atom;
|
|
||||||
free (rep);
|
|
||||||
|
|
||||||
rep = xcb_intern_atom_reply (c, cookie_property, NULL);
|
|
||||||
|
|
||||||
xcb_change_property(c, XCB_PROP_MODE_REPLACE,
|
|
||||||
win,
|
|
||||||
rep->atom, encoding, 8, strlen (title), title);
|
|
||||||
free (rep);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
class_set (xcb_connection_t *c, xcb_window_t win, const char *name, const char *class)
|
|
||||||
{
|
|
||||||
xcb_intern_atom_cookie_t cookie_encoding;
|
|
||||||
xcb_intern_atom_cookie_t cookie_property;
|
|
||||||
xcb_intern_atom_reply_t *rep;
|
|
||||||
xcb_atom_t encoding;
|
|
||||||
char *atom_name;
|
|
||||||
char *class_str;
|
|
||||||
char *s;
|
|
||||||
int length_name;
|
|
||||||
int length_class;
|
|
||||||
|
|
||||||
length_name = strlen (name);
|
|
||||||
length_class = strlen (class);
|
|
||||||
class_str = (char *)malloc (sizeof (char) * (length_name + length_class + 2));
|
|
||||||
if (!class_str) return;
|
|
||||||
s = class_str;
|
|
||||||
memcpy (s, name, length_name);
|
|
||||||
s += length_name;
|
|
||||||
*s = '\0';
|
|
||||||
s++;
|
|
||||||
memcpy (s, class, length_class);
|
|
||||||
s += length_class;
|
|
||||||
*s = '\0';
|
|
||||||
|
|
||||||
atom_name = "UTF8_STRING";
|
|
||||||
cookie_encoding = xcb_intern_atom (c,
|
|
||||||
0,
|
|
||||||
strlen (atom_name),
|
|
||||||
atom_name);
|
|
||||||
atom_name = "_WM_CLASS";
|
|
||||||
cookie_property = xcb_intern_atom (c,
|
|
||||||
0,
|
|
||||||
strlen (atom_name),
|
|
||||||
atom_name);
|
|
||||||
|
|
||||||
rep = xcb_intern_atom_reply (c, cookie_encoding, NULL);
|
|
||||||
encoding = rep->atom;
|
|
||||||
free (rep);
|
|
||||||
|
|
||||||
rep = xcb_intern_atom_reply (c, cookie_property, NULL);
|
|
||||||
|
|
||||||
xcb_change_property(c, XCB_PROP_MODE_REPLACE,
|
|
||||||
win,
|
|
||||||
rep->atom, encoding, 8, strlen (class_str), class_str);
|
|
||||||
free (rep);
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
int exposed = 0;
|
|
||||||
xcb_screen_t *screen = NULL;
|
|
||||||
xcb_screen_iterator_t iter_screen;
|
|
||||||
xcb_get_input_focus_reply_t *reply;
|
|
||||||
xcb_generic_event_t *e;
|
|
||||||
SizeHints *szhints;
|
|
||||||
uint32_t mask = 0;
|
|
||||||
uint32_t value[6];
|
|
||||||
int screen_nbr;
|
|
||||||
|
|
||||||
c = xcb_connect (NULL, &screen_nbr);
|
|
||||||
if (!c)
|
|
||||||
{
|
|
||||||
printf("Error: cannot open a connection.\n");
|
|
||||||
exit(-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
iter_screen = xcb_setup_roots_iterator (xcb_get_setup (c));
|
|
||||||
for (; iter_screen.rem; --screen_nbr, xcb_screen_next (&iter_screen))
|
|
||||||
if (screen == 0)
|
|
||||||
{
|
|
||||||
screen = iter_screen.data;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (!screen)
|
|
||||||
{
|
|
||||||
printf("Error: cannot get the screen.\n");
|
|
||||||
exit(-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
mask =
|
|
||||||
XCB_CW_BACK_PIXMAP | XCB_CW_BORDER_PIXEL |
|
|
||||||
XCB_CW_BIT_GRAVITY | XCB_CW_BACKING_STORE |
|
|
||||||
XCB_CW_EVENT_MASK | XCB_CW_COLORMAP;
|
|
||||||
|
|
||||||
value[0] = XCB_BACK_PIXMAP_NONE;
|
|
||||||
value[1] = 0;
|
|
||||||
value[2] = XCB_GRAVITY_BIT_FORGET;
|
|
||||||
value[3] = XCB_BACKING_STORE_NOT_USEFUL;
|
|
||||||
value[4] = XCB_EVENT_MASK_EXPOSURE | XCB_EVENT_MASK_BUTTON_PRESS | XCB_EVENT_MASK_BUTTON_RELEASE | XCB_EVENT_MASK_POINTER_MOTION;
|
|
||||||
value[5] = screen->default_colormap;
|
|
||||||
|
|
||||||
win = xcb_generate_id (c);
|
|
||||||
xcb_create_window (c,
|
|
||||||
screen->root_depth,
|
|
||||||
win, screen->root,
|
|
||||||
0, 0,
|
|
||||||
win_w, win_h,
|
|
||||||
0,
|
|
||||||
XCB_WINDOW_CLASS_INPUT_OUTPUT,
|
|
||||||
screen->root_visual,
|
|
||||||
mask, value);
|
|
||||||
title_set (c, win, "Evas XCB Performance Test");
|
|
||||||
class_set (c, win, "Evas_XCB_Perf_Test", "Main");
|
|
||||||
|
|
||||||
szhints = AllocSizeHints();
|
|
||||||
SizeHintsSetMinSize(szhints, win_w, win_h);
|
|
||||||
SizeHintsSetMaxSize(szhints, win_w, win_h);
|
|
||||||
SizeHintsSetSize(szhints, 0, win_w, win_h);
|
|
||||||
SetWMNormalHints(c, win, szhints);
|
|
||||||
FreeSizeHints(szhints);
|
|
||||||
|
|
||||||
xcb_map_window (c, win);
|
|
||||||
/* we sync */
|
|
||||||
reply = xcb_get_input_focus_reply(c,
|
|
||||||
xcb_get_input_focus_unchecked(c),
|
|
||||||
NULL);
|
|
||||||
free(reply);
|
|
||||||
sleep(1);
|
|
||||||
|
|
||||||
evas_init();
|
|
||||||
evas = evas_new();
|
|
||||||
evas_output_method_set(evas, evas_render_method_lookup("software_xcb"));
|
|
||||||
evas_output_size_set(evas, win_w, win_h);
|
|
||||||
evas_output_viewport_set(evas, 0, 0, win_w, win_h);
|
|
||||||
{
|
|
||||||
Evas_Engine_Info_Software_Xcb *einfo;
|
|
||||||
|
|
||||||
einfo = (Evas_Engine_Info_Software_Xcb *) evas_engine_info_get(evas);
|
|
||||||
|
|
||||||
/* the following is specific to the engine */
|
|
||||||
einfo->info.conn = c;
|
|
||||||
einfo->info.visual = visualtype_get(c, screen);
|
|
||||||
einfo->info.colormap = screen->default_colormap;
|
|
||||||
einfo->info.drawable = win;
|
|
||||||
einfo->info.depth = screen->root_depth;
|
|
||||||
einfo->info.rotation = 0;
|
|
||||||
|
|
||||||
evas_engine_info_set(evas, (Evas_Engine_Info *) einfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
while (1)
|
|
||||||
{
|
|
||||||
e = xcb_poll_for_event(c);
|
|
||||||
|
|
||||||
if (e)
|
|
||||||
{
|
|
||||||
switch (e->response_type)
|
|
||||||
{
|
|
||||||
case XCB_BUTTON_PRESS: {
|
|
||||||
xcb_button_press_event_t *ev = (xcb_button_press_event_t *)e;
|
|
||||||
|
|
||||||
/* evas_event_button_down(evas, ev->event_x, ev->event_y, ev->detail.id);*/
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case XCB_BUTTON_RELEASE: {
|
|
||||||
xcb_button_release_event_t *ev = (xcb_button_release_event_t *)e;
|
|
||||||
|
|
||||||
/* evas_event_button_up(evas, ev->event_x, ev->event_y, ev->detail.id);*/
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case XCB_EXPOSE: {
|
|
||||||
xcb_expose_event_t *ev = (xcb_expose_event_t *)e;
|
|
||||||
|
|
||||||
exposed = 1;
|
|
||||||
evas_damage_rectangle_add(evas,
|
|
||||||
ev->x,
|
|
||||||
ev->y,
|
|
||||||
ev->width,
|
|
||||||
ev->height);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
free (e);
|
|
||||||
}
|
|
||||||
|
|
||||||
evas_render(evas);
|
|
||||||
xcb_flush(c);
|
|
||||||
|
|
||||||
if (exposed)
|
|
||||||
{
|
|
||||||
char buf[4096];
|
|
||||||
Evas_Engine_Info_Software_Xcb *einfo;
|
|
||||||
Evas_Performance *perf;
|
|
||||||
char *data, *key;
|
|
||||||
static mode_t default_mode =
|
|
||||||
S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH |
|
|
||||||
S_IXOTH;
|
|
||||||
FILE *f;
|
|
||||||
|
|
||||||
einfo =
|
|
||||||
(Evas_Engine_Info_Software_Xcb *) evas_engine_info_get(evas);
|
|
||||||
perf =
|
|
||||||
einfo->func.performance_test(evas, c,
|
|
||||||
visualtype_get(c, screen),
|
|
||||||
screen->default_colormap,
|
|
||||||
win,
|
|
||||||
screen->root_depth);
|
|
||||||
einfo->func.performance_device_store(perf);
|
|
||||||
data = einfo->func.performance_data_get(perf);
|
|
||||||
key = einfo->func.performance_key_get(perf);
|
|
||||||
snprintf(buf, sizeof(buf), "%s/.evas", getenv("HOME"));
|
|
||||||
mkdir(buf, default_mode);
|
|
||||||
snprintf(buf, sizeof(buf), "%s/.evas/%s", getenv("HOME"), key);
|
|
||||||
free(key);
|
|
||||||
f = fopen(buf, "w");
|
|
||||||
if (f)
|
|
||||||
{
|
|
||||||
fprintf(f, "%s", data);
|
|
||||||
free(data);
|
|
||||||
fclose(f);
|
|
||||||
}
|
|
||||||
einfo->func.performance_free(perf);
|
|
||||||
exit(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
evas_shutdown();
|
|
||||||
return 0;
|
|
||||||
}
|
|
|
@ -1,50 +0,0 @@
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <math.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
#ifndef _WIN32_WCE
|
|
||||||
# include <sys/time.h>
|
|
||||||
#else
|
|
||||||
# include <time.h>
|
|
||||||
# include <windows.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "Evas.h"
|
|
||||||
|
|
||||||
|
|
||||||
//_WIN32_WCE
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
|
||||||
|
|
||||||
extern Evas *evas;
|
|
||||||
extern int win_w;
|
|
||||||
extern int win_h;
|
|
||||||
|
|
||||||
extern int loop_count;
|
|
||||||
extern int orig_loop_count;
|
|
||||||
|
|
||||||
extern double start_time;
|
|
||||||
extern double orig_start_time;
|
|
||||||
|
|
||||||
extern Evas_Object *r1, *r2, *r3, *g1, *g2, *c1, *l1, *p1;
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
|
||||||
|
|
||||||
double get_time(void);
|
|
||||||
void loop(void);
|
|
||||||
void setup(void);
|
|
||||||
|
|
||||||
void setdown(void);
|
|
||||||
void scroll_setdown(void);
|
|
||||||
void scroll_setup(void);
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -1,140 +0,0 @@
|
||||||
#include "evas_test_main.h"
|
|
||||||
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <X11/Xlib.h>
|
|
||||||
#include <X11/Xutil.h>
|
|
||||||
|
|
||||||
#include "Evas.h"
|
|
||||||
#include "Evas_Engine_XRender_X11.h"
|
|
||||||
|
|
||||||
int
|
|
||||||
main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
int pause_me = 0;
|
|
||||||
Display *disp;
|
|
||||||
Window win;
|
|
||||||
XSetWindowAttributes attr;
|
|
||||||
XClassHint chint;
|
|
||||||
|
|
||||||
disp = XOpenDisplay(NULL);
|
|
||||||
if (!disp)
|
|
||||||
{
|
|
||||||
printf("Error: cannot open display.\n");
|
|
||||||
exit(-1);
|
|
||||||
}
|
|
||||||
attr.backing_store = NotUseful;
|
|
||||||
attr.colormap = DefaultColormap(disp, DefaultScreen(disp));
|
|
||||||
attr.border_pixel = 0;
|
|
||||||
attr.background_pixmap = None;
|
|
||||||
attr.event_mask =
|
|
||||||
ExposureMask | ButtonPressMask | ButtonReleaseMask | PointerMotionMask |
|
|
||||||
StructureNotifyMask;
|
|
||||||
attr.bit_gravity = ForgetGravity;
|
|
||||||
win = XCreateWindow(disp, DefaultRootWindow(disp), 0, 0, win_w, win_h, 0,
|
|
||||||
DefaultDepth(disp, DefaultScreen(disp)), InputOutput,
|
|
||||||
DefaultVisual(disp, DefaultScreen(disp)),
|
|
||||||
CWBackingStore | CWColormap |
|
|
||||||
CWBackPixmap | CWBorderPixel |
|
|
||||||
CWBitGravity | CWEventMask, &attr);
|
|
||||||
XStoreName(disp, win, "Evas XRender X11 Test");
|
|
||||||
chint.res_name = "Evas_XRender_X11_Test";
|
|
||||||
chint.res_class = "Main";
|
|
||||||
XSetClassHint(disp, win, &chint);
|
|
||||||
#if 0
|
|
||||||
szhints.flags = PMinSize | PMaxSize | PSize | USSize;
|
|
||||||
szhints.min_width = szhints.max_width = win_w;
|
|
||||||
szhints.min_height = szhints.max_height = win_h;
|
|
||||||
XSetWMNormalHints(disp, win, &szhints);
|
|
||||||
#endif
|
|
||||||
XMapWindow(disp, win);
|
|
||||||
XSync(disp, False);
|
|
||||||
|
|
||||||
/* test evas_free.... :) */
|
|
||||||
evas_init();
|
|
||||||
evas = evas_new();
|
|
||||||
evas_output_method_set(evas, evas_render_method_lookup("xrender_x11"));
|
|
||||||
evas_output_size_set(evas, win_w, win_h);
|
|
||||||
evas_output_viewport_set(evas, 0, 0, win_w, win_h);
|
|
||||||
{
|
|
||||||
Evas_Engine_Info_XRender_X11 *einfo;
|
|
||||||
|
|
||||||
einfo = (Evas_Engine_Info_XRender_X11 *) evas_engine_info_get(evas);
|
|
||||||
|
|
||||||
/* the following is specific to the engine */
|
|
||||||
einfo->info.display = disp;
|
|
||||||
einfo->info.visual = DefaultVisual(disp, DefaultScreen(disp));
|
|
||||||
einfo->info.drawable = win;
|
|
||||||
evas_engine_info_set(evas, (Evas_Engine_Info *) einfo);
|
|
||||||
}
|
|
||||||
setup();
|
|
||||||
|
|
||||||
orig_start_time = start_time = get_time();
|
|
||||||
for (;;)
|
|
||||||
{
|
|
||||||
XEvent ev;
|
|
||||||
|
|
||||||
while (XCheckMaskEvent(disp,
|
|
||||||
ExposureMask |
|
|
||||||
StructureNotifyMask |
|
|
||||||
KeyPressMask |
|
|
||||||
KeyReleaseMask |
|
|
||||||
ButtonPressMask |
|
|
||||||
ButtonReleaseMask | PointerMotionMask, &ev))
|
|
||||||
{
|
|
||||||
switch (ev.type)
|
|
||||||
{
|
|
||||||
case ButtonPress:
|
|
||||||
if (ev.xbutton.button == 3)
|
|
||||||
goto exit;
|
|
||||||
#if 0
|
|
||||||
if (!pause_me)
|
|
||||||
pause_me = 1;
|
|
||||||
else if (pause_me == 1)
|
|
||||||
pause_me = 2;
|
|
||||||
else
|
|
||||||
pause_me = 1;
|
|
||||||
#endif
|
|
||||||
evas_event_feed_mouse_move(evas, ev.xbutton.x, ev.xbutton.y, 0, NULL);
|
|
||||||
evas_event_feed_mouse_down(evas, ev.xbutton.button, EVAS_BUTTON_NONE, 0, NULL);
|
|
||||||
break;
|
|
||||||
case ButtonRelease:
|
|
||||||
evas_event_feed_mouse_move(evas, ev.xbutton.x, ev.xbutton.y, 0, NULL);
|
|
||||||
evas_event_feed_mouse_up(evas, ev.xbutton.button, EVAS_BUTTON_NONE, 0, NULL);
|
|
||||||
break;
|
|
||||||
case MotionNotify:
|
|
||||||
evas_event_feed_mouse_move(evas, ev.xmotion.x, ev.xmotion.y, 0, NULL);
|
|
||||||
break;
|
|
||||||
case Expose:
|
|
||||||
evas_damage_rectangle_add(evas,
|
|
||||||
ev.xexpose.x,
|
|
||||||
ev.xexpose.y,
|
|
||||||
ev.xexpose.width,
|
|
||||||
ev.xexpose.height);
|
|
||||||
break;
|
|
||||||
case ConfigureNotify:
|
|
||||||
evas_output_size_set(evas,
|
|
||||||
ev.xconfigure.width,
|
|
||||||
ev.xconfigure.height);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!(pause_me == 1))
|
|
||||||
{
|
|
||||||
loop();
|
|
||||||
evas_render(evas);
|
|
||||||
XFlush(disp);
|
|
||||||
}
|
|
||||||
if (pause_me == 2)
|
|
||||||
usleep(100000);
|
|
||||||
}
|
|
||||||
|
|
||||||
exit:
|
|
||||||
setdown();
|
|
||||||
evas_free(evas);
|
|
||||||
XCloseDisplay(disp);
|
|
||||||
evas_shutdown();
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
|
@ -1,275 +0,0 @@
|
||||||
#include "evas_test_main.h"
|
|
||||||
|
|
||||||
#include <unistd.h>
|
|
||||||
|
|
||||||
#define X_H /* make sure we aren't using symbols from X.h */
|
|
||||||
|
|
||||||
#include <xcb/xcb.h>
|
|
||||||
#include <xcb/shm.h>
|
|
||||||
#include <xcb/render.h>
|
|
||||||
|
|
||||||
#include "Evas.h"
|
|
||||||
#include "Evas_Engine_XRender_Xcb.h"
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
title_set (xcb_connection_t *c, xcb_window_t win, const char *title)
|
|
||||||
{
|
|
||||||
xcb_intern_atom_cookie_t cookie_encoding;
|
|
||||||
xcb_intern_atom_cookie_t cookie_property;
|
|
||||||
xcb_intern_atom_reply_t *rep;
|
|
||||||
xcb_atom_t encoding;
|
|
||||||
char *atom_name;
|
|
||||||
|
|
||||||
atom_name = "UTF8_STRING";
|
|
||||||
cookie_encoding = xcb_intern_atom (c,
|
|
||||||
0,
|
|
||||||
strlen (atom_name),
|
|
||||||
atom_name);
|
|
||||||
atom_name = "_NET_WM_NAME";
|
|
||||||
cookie_property = xcb_intern_atom (c,
|
|
||||||
0,
|
|
||||||
strlen (atom_name),
|
|
||||||
atom_name);
|
|
||||||
|
|
||||||
rep = xcb_intern_atom_reply (c, cookie_encoding, NULL);
|
|
||||||
encoding = rep->atom;
|
|
||||||
free (rep);
|
|
||||||
|
|
||||||
rep = xcb_intern_atom_reply (c, cookie_property, NULL);
|
|
||||||
|
|
||||||
xcb_change_property(c, XCB_PROP_MODE_REPLACE,
|
|
||||||
win,
|
|
||||||
rep->atom, encoding, 8, strlen (title), title);
|
|
||||||
free (rep);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
class_set (xcb_connection_t *c, xcb_window_t win, const char *name, const char *class)
|
|
||||||
{
|
|
||||||
xcb_intern_atom_cookie_t cookie_encoding;
|
|
||||||
xcb_intern_atom_cookie_t cookie_property;
|
|
||||||
xcb_intern_atom_reply_t *rep;
|
|
||||||
xcb_atom_t encoding;
|
|
||||||
char *atom_name;
|
|
||||||
char *class_str;
|
|
||||||
char *s;
|
|
||||||
int length_name;
|
|
||||||
int length_class;
|
|
||||||
|
|
||||||
length_name = strlen (name);
|
|
||||||
length_class = strlen (class);
|
|
||||||
class_str = (char *)malloc (sizeof (char) * (length_name + length_class + 2));
|
|
||||||
if (!class_str) return;
|
|
||||||
s = class_str;
|
|
||||||
memcpy (s, name, length_name);
|
|
||||||
s += length_name;
|
|
||||||
*s = '\0';
|
|
||||||
s++;
|
|
||||||
memcpy (s, class, length_class);
|
|
||||||
s += length_class;
|
|
||||||
*s = '\0';
|
|
||||||
|
|
||||||
atom_name = "UTF8_STRING";
|
|
||||||
cookie_encoding = xcb_intern_atom (c,
|
|
||||||
0,
|
|
||||||
strlen (atom_name),
|
|
||||||
atom_name);
|
|
||||||
atom_name = "_WM_CLASS";
|
|
||||||
cookie_property = xcb_intern_atom (c,
|
|
||||||
0,
|
|
||||||
strlen (atom_name),
|
|
||||||
atom_name);
|
|
||||||
|
|
||||||
rep = xcb_intern_atom_reply (c, cookie_encoding, NULL);
|
|
||||||
encoding = rep->atom;
|
|
||||||
free (rep);
|
|
||||||
|
|
||||||
rep = xcb_intern_atom_reply (c, cookie_property, NULL);
|
|
||||||
|
|
||||||
xcb_change_property(c, XCB_PROP_MODE_REPLACE,
|
|
||||||
win,
|
|
||||||
rep->atom, encoding, 8, strlen (class_str), class_str);
|
|
||||||
free (rep);
|
|
||||||
free (class_str);
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
int pause_me = 0;
|
|
||||||
xcb_connection_t *conn;
|
|
||||||
const xcb_query_extension_reply_t *rep_shm;
|
|
||||||
const xcb_query_extension_reply_t *rep_xrender;
|
|
||||||
xcb_get_input_focus_reply_t *reply;
|
|
||||||
xcb_screen_t *screen = NULL;
|
|
||||||
xcb_screen_iterator_t iter_screen;
|
|
||||||
xcb_window_t win;
|
|
||||||
xcb_generic_event_t *e;
|
|
||||||
uint32_t mask;
|
|
||||||
uint32_t value[6];
|
|
||||||
int screen_nbr;
|
|
||||||
|
|
||||||
conn = xcb_connect (NULL, &screen_nbr);
|
|
||||||
if (!conn)
|
|
||||||
{
|
|
||||||
printf("Error: cannot open a connection.\n");
|
|
||||||
exit(-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
xcb_prefetch_extension_data (conn, &xcb_shm_id);
|
|
||||||
xcb_prefetch_extension_data (conn, &xcb_render_id);
|
|
||||||
rep_shm = xcb_get_extension_data(conn, &xcb_shm_id);
|
|
||||||
rep_xrender = xcb_get_extension_data(conn, &xcb_render_id);
|
|
||||||
|
|
||||||
iter_screen = xcb_setup_roots_iterator (xcb_get_setup (conn));
|
|
||||||
for (; iter_screen.rem; --screen_nbr, xcb_screen_next (&iter_screen))
|
|
||||||
if (screen == 0)
|
|
||||||
{
|
|
||||||
screen = iter_screen.data;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (!screen)
|
|
||||||
{
|
|
||||||
printf("Error: cannot get the screen.\n");
|
|
||||||
exit(-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
mask =
|
|
||||||
XCB_CW_BACK_PIXMAP | XCB_CW_BORDER_PIXEL |
|
|
||||||
XCB_CW_BIT_GRAVITY | XCB_CW_BACKING_STORE |
|
|
||||||
XCB_CW_EVENT_MASK | XCB_CW_COLORMAP;
|
|
||||||
|
|
||||||
value[0] = XCB_BACK_PIXMAP_NONE;
|
|
||||||
value[1] = 0;
|
|
||||||
value[2] = XCB_GRAVITY_BIT_FORGET;
|
|
||||||
value[3] = XCB_BACKING_STORE_NOT_USEFUL;
|
|
||||||
value[4] = XCB_EVENT_MASK_EXPOSURE | XCB_EVENT_MASK_BUTTON_PRESS | XCB_EVENT_MASK_BUTTON_RELEASE | XCB_EVENT_MASK_POINTER_MOTION | XCB_EVENT_MASK_STRUCTURE_NOTIFY;
|
|
||||||
value[5] = screen->default_colormap;
|
|
||||||
|
|
||||||
win = xcb_generate_id (conn);
|
|
||||||
xcb_create_window (conn,
|
|
||||||
screen->root_depth,
|
|
||||||
win, screen->root,
|
|
||||||
0, 0,
|
|
||||||
win_w, win_h,
|
|
||||||
0,
|
|
||||||
XCB_WINDOW_CLASS_INPUT_OUTPUT,
|
|
||||||
screen->root_visual,
|
|
||||||
mask, value);
|
|
||||||
title_set (conn, win, "Evas XRender Xcb Test");
|
|
||||||
class_set (conn, win, "Evas_XRender_XCB_Test", "Main");
|
|
||||||
#if 0
|
|
||||||
szhints.flags = PMinSize | PMaxSize | PSize | USSize;
|
|
||||||
szhints.min_width = szhints.max_width = win_w;
|
|
||||||
szhints.min_height = szhints.max_height = win_h;
|
|
||||||
XSetWMNormalHints(disp, win, &szhints);
|
|
||||||
#endif
|
|
||||||
xcb_map_window (conn, win);
|
|
||||||
/* we sync */
|
|
||||||
reply = xcb_get_input_focus_reply(conn,
|
|
||||||
xcb_get_input_focus_unchecked(conn),
|
|
||||||
NULL);
|
|
||||||
free(reply);
|
|
||||||
|
|
||||||
/* test evas_free.... :) */
|
|
||||||
evas_init();
|
|
||||||
evas = evas_new();
|
|
||||||
evas_output_method_set(evas, evas_render_method_lookup("xrender_xcb"));
|
|
||||||
evas_output_size_set(evas, win_w, win_h);
|
|
||||||
evas_output_viewport_set(evas, 0, 0, win_w, win_h);
|
|
||||||
{
|
|
||||||
Evas_Engine_Info_XRender_Xcb *einfo;
|
|
||||||
|
|
||||||
einfo = (Evas_Engine_Info_XRender_Xcb *) evas_engine_info_get(evas);
|
|
||||||
|
|
||||||
/* the following is specific to the engine */
|
|
||||||
einfo->info.conn = conn;
|
|
||||||
einfo->info.visual = screen->root_visual;
|
|
||||||
einfo->info.drawable = win;
|
|
||||||
evas_engine_info_set(evas, (Evas_Engine_Info *) einfo);
|
|
||||||
}
|
|
||||||
setup();
|
|
||||||
|
|
||||||
orig_start_time = start_time = get_time();
|
|
||||||
while (1)
|
|
||||||
{
|
|
||||||
e = xcb_poll_for_event(conn);
|
|
||||||
|
|
||||||
if (e) {
|
|
||||||
switch (e->response_type)
|
|
||||||
{
|
|
||||||
case XCB_BUTTON_PRESS: {
|
|
||||||
xcb_button_press_event_t *ev = (xcb_button_press_event_t *)e;
|
|
||||||
|
|
||||||
if (ev->detail == 3)
|
|
||||||
{
|
|
||||||
free(e);
|
|
||||||
goto exit;
|
|
||||||
}
|
|
||||||
#if 0
|
|
||||||
if (!pause_me)
|
|
||||||
pause_me = 1;
|
|
||||||
else if (pause_me == 1)
|
|
||||||
pause_me = 2;
|
|
||||||
else
|
|
||||||
pause_me = 1;
|
|
||||||
#endif
|
|
||||||
evas_event_feed_mouse_move(evas, ev->event_x, ev->event_y, 0, NULL);
|
|
||||||
evas_event_feed_mouse_down(evas, ev->state, EVAS_BUTTON_NONE, 0, NULL);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case XCB_BUTTON_RELEASE: {
|
|
||||||
xcb_button_release_event_t *ev = (xcb_button_release_event_t *)e;
|
|
||||||
|
|
||||||
evas_event_feed_mouse_move(evas, ev->event_x, ev->event_y, 0, NULL);
|
|
||||||
evas_event_feed_mouse_up(evas, ev->state, EVAS_BUTTON_NONE, 0, NULL);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case XCB_MOTION_NOTIFY: {
|
|
||||||
xcb_motion_notify_event_t *ev = (xcb_motion_notify_event_t *)e;
|
|
||||||
|
|
||||||
evas_event_feed_mouse_move(evas, ev->event_x, ev->event_y, 0, NULL);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case XCB_EXPOSE: {
|
|
||||||
xcb_expose_event_t *ev = (xcb_expose_event_t *)e;
|
|
||||||
|
|
||||||
evas_damage_rectangle_add(evas,
|
|
||||||
ev->x,
|
|
||||||
ev->y,
|
|
||||||
ev->width,
|
|
||||||
ev->height);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case XCB_CONFIGURE_NOTIFY: {
|
|
||||||
xcb_configure_notify_event_t *ev = (xcb_configure_notify_event_t *)e;
|
|
||||||
|
|
||||||
evas_output_size_set(evas,
|
|
||||||
ev->width,
|
|
||||||
ev->height);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
free (e);
|
|
||||||
}
|
|
||||||
if (!(pause_me == 1))
|
|
||||||
{
|
|
||||||
loop();
|
|
||||||
evas_render(evas);
|
|
||||||
xcb_flush(conn);
|
|
||||||
}
|
|
||||||
if (pause_me == 2)
|
|
||||||
usleep(100000);
|
|
||||||
}
|
|
||||||
|
|
||||||
exit:
|
|
||||||
setdown();
|
|
||||||
evas_free(evas);
|
|
||||||
xcb_disconnect(conn);
|
|
||||||
evas_shutdown();
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|