Compare commits

..

84 Commits

Author SHA1 Message Date
Savio Sena 78fc05ac91 expedite-cxx: Fix deadlock. 2014-10-22 02:31:43 -02:00
Savio Sena d7cfdd0557 expedite-cxx: Port last missing test.
This one passed for some reason, it was still in C.
2014-10-22 02:31:15 -02:00
Savio Sena 0afccbf4e1 expedite-cxx: Just tag a comment so we can keep track of warts. 2014-10-22 02:30:39 -02:00
Savio Sena e03125e56d expedite-cxx: Increase samples count to make measures a bit more steady. 2014-10-20 19:43:49 -02:00
Savio Sena c58e2e4047 expedite-cxx: Rephrase a test to better perform. 2014-10-20 19:43:22 -02:00
Savio Sena 309e04e44a expedite-cxx: Add missing C++ tests. 2014-10-20 19:43:08 -02:00
Savio Sena ef428b5c31 expedite-cxx: Merge Felipe's c3e798c with local changes. 2014-10-13 14:55:39 -03:00
Felipe Magno de Almeida c3e798cfd0 Re-add C tests together with C++ so it is easier to compare
Conflicts:
	src/bin/cxx/tests.h
2014-10-13 14:53:03 -03:00
Savio S. Machado bc5d56877e expedite-cxx: Remove XXX and made some minor improvements. 2014-10-13 12:35:40 -03:00
Savio S. Machado 3434b132b8 expedite-cxx: Added remaining tests. 2014-10-13 12:27:58 -03:00
Savio Sena 2360632b37 expedite-cxx: Unfinished widget tests. 2014-10-06 20:28:38 -03:00
Savio Sena 55a7eae96f expedite-cxx: Finished textblock tests. 2014-10-06 18:37:03 -03:00
Savio Sena 2a2cc7260c expedite-cxx: Finished all image, line, rect, font and text tests.
missing: widgets and textblock.
2014-10-06 13:18:47 -03:00
Savio Sena c9984a38ad expedite-cxx: Fixed more tests.
No tests are crashing anymore.
2014-10-02 19:15:27 -03:00
Savio Sena 428f271bcf expedite-cxx: Fix bug in image_crossfade.cc 2014-10-02 18:08:30 -03:00
Savio Sena 93c095a3fb expedite-cxx: Fix some bugs. 2014-10-02 17:44:34 -03:00
Savio Sena f097281c9d Use C++ style loops. 2014-10-02 17:34:55 -03:00
Savio Sena 08f95c4bfe expedite-cxx: Add parent_set(nullptr) to all _cleanups. 2014-10-02 13:24:54 -03:00
Savio Sena 9dccf53084 expedite-cxx: Fix size_set. 2014-09-29 19:50:55 -03:00
Savio Sena fb28488bdc expedite-cxx: Fix position_set. 2014-09-29 19:48:07 -03:00
Savio Sena 691498bfa6 expedite-cxx: Get rid of global pointer.
Use an instance of efl::eina::list instead.
2014-09-29 19:20:59 -03:00
Savio Sena 3f1b05bd0b expedite-cxx: image_blend_* globals as pointers, not instances. 2014-09-29 14:43:26 +00:00
Savio Sena 9ee8b2a45b Add a comment. 2014-09-28 02:22:30 -03:00
Savio Sena 4a6fb1ef93 Fix variable name.
Previous merge should have this changes but I forgot.
2014-09-28 02:21:35 -03:00
Savio Sena f1ea8fafa1 Merge branch 'local-rebase' into github-master 2014-09-28 02:03:38 -03:00
Savio Sena d1d04667ad Enabled all tests. 2014-09-28 01:35:25 -03:00
Savio Sena cc37a06018 Temporarily disable tests on hold. 2014-09-24 07:39:53 -03:00
Savio Sena c43478a984 More translation. Now compiling. 2014-09-24 07:03:33 -03:00
Savio Sena b4070dde1c Fix wrong API. 2014-09-24 04:29:51 -03:00
Savio Sena d810de418e Fixed some casts. 2014-09-24 04:29:44 -03:00
Savio Sena a67e3ea4b9 Disable 3d temporarily. 2014-09-24 04:14:17 -03:00
Savio Sena 21216c5dff Translated some _loops and _setups to C++. 2014-09-24 04:14:08 -03:00
Savio Sena 46a88189ca Enable only image tests. 2014-09-23 23:51:13 -03:00
Savio Sena ad066eb17e Add missing _loop and FNAME.
Convert o_texts[] to eina::list<evas::text>.
Convert o_icons[] to eina::list<evas::image>.
2014-09-23 23:45:43 -03:00
Savio Sena bbb7e27b03 Convert _cleanup. 2014-09-23 22:23:59 -03:00
Savio Sena 99d7f53948 Minor changes.
- Temporarily marked test as DONE.
- Removed extra line, that could ruin my macros :P
2014-09-23 22:06:41 -03:00
Savio Sena a61c25ee27 Mark trick as XXX. 2014-09-23 22:01:47 -03:00
Savio Sena 583d48e392 partially convert _setup implementation. 2014-09-23 21:47:37 -03:00
Savio Sena 365de8d7d3 Use "includes" instead of <includes>. 2014-09-23 21:30:43 -03:00
Savio Sena 762466f0e0 Add #undef ICON_SIZE. 2014-09-23 21:23:18 -03:00
Savio Sena f051eef702 Updated and fixed test listing. 2014-09-23 21:22:58 -03:00
Savio Sena d9a9594744 Add missing FNAME(void) definition. 2014-09-23 12:48:22 -03:00
Savio Sena acc4a6f195 Add missing include files. 2014-09-23 12:40:56 -03:00
Savio Sena 26a234effd Prepend "(C++)" to all test titles. 2014-09-23 12:35:56 -03:00
Savio Sena ce1d410301 Delete bad files. 2014-09-23 12:33:45 -03:00
Savio Sena 12e33a9c12 Convert all o_images to efl::evas::list<evas::image>. 2014-09-23 04:16:23 -03:00
Savio Sena 95e8ec6f9e Added more test.
It`s still incomplete and not yet compiling.
2014-09-23 03:58:25 -03:00
Savio Sena d90d23bdd6 Initial listing of remaining tests. 2014-09-20 04:45:06 -03:00
Savio Sena 095e9141b7 expedite-cxx: Set visibility to hidden upon destruction. 2014-09-18 00:33:33 -03:00
Savio Sena 0691d96d6c Rebased branch 'master' of enlightenment into github-master 2014-09-16 19:35:31 -03:00
Savio Sena ab1945dc31 Add EFL_CXX_NO_EXCEPTIONS flag to compilation. 2014-09-16 19:35:20 -03:00
Savio Sena e60ba2ee1f Added more image/C++ tests. 2014-09-16 19:35:20 -03:00
Savio Sena 7975d43856 Added more image/C++ tests. 2014-09-16 19:35:19 -03:00
Savio Sena 2edb6402d6 Added more image/C++ tests. 2014-09-16 19:35:19 -03:00
Savio Sena a6d52a1876 Added missing function. 2014-09-16 19:35:19 -03:00
Savio Sena 7a3096883d Added C++ image_blend_border_recolor. 2014-09-16 19:35:19 -03:00
Savio Sena 6940737f17 Fixed evas image example. 2014-09-16 19:35:19 -03:00
Savio Sena f1ce0c028f Refactored around a bit. 2014-09-16 19:35:18 -03:00
Savio Sena 7e8108ad75 Add some logs to help investigating evas::image. 2014-09-16 19:35:18 -03:00
Savio Sena a9145b99c8 Fixed global variables. 2014-09-16 19:35:18 -03:00
Savio Sena 23aefd6470 Removed include-once guards from test file. 2014-09-16 19:35:18 -03:00
Savio Sena 2351346646 Fixed cxx/image_blend_border test. 2014-09-16 19:35:18 -03:00
Savio Sena 22f097ed64 Fixed missing evas -> G_evas. 2014-09-16 19:35:17 -03:00
Savio Sena 43516b12df Deleted main.hh. We can now work properly with main.h. 2014-09-16 19:35:17 -03:00
Savio Sena e4c333f3eb Renamed global variable evas to G_evas. 2014-09-16 19:35:17 -03:00
Savio Sena f0dbeca426 expedite++: First C++ test. 2014-09-16 19:35:17 -03:00
Savio Sena 1a3b5e8d7d autotools: Introduce C++11 requirement. 2014-09-16 19:35:17 -03:00
Savio Sena 9792784abd Add EFL_CXX_NO_EXCEPTIONS flag to compilation. 2014-09-16 19:23:19 -03:00
Savio Sena 1efc8c8a30 Added more image/C++ tests. 2014-08-28 19:32:39 -03:00
Savio Sena c895eba3fd Added more image/C++ tests. 2014-08-28 18:54:18 -03:00
Savio Sena 3f32d142fc Added more image/C++ tests. 2014-08-28 18:03:08 -03:00
Savio Sena bbb0568606 Added missing function. 2014-08-27 05:48:40 -03:00
Savio Sena ef9f34edfd Added C++ image_blend_border_recolor. 2014-08-27 05:44:59 -03:00
Savio Sena a35c3791ad Fixed evas image example. 2014-08-27 05:02:35 -03:00
Savio Sena c7cabe8da6 Refactored around a bit. 2014-08-27 02:52:20 -03:00
Savio Sena 07b4407c26 Add some logs to help investigating evas::image. 2014-08-24 23:14:31 -03:00
Savio Sena a4b7b0ba31 Fixed global variables. 2014-08-24 23:09:00 -03:00
Savio Sena bab92da5cf Removed include-once guards from test file. 2014-08-24 12:18:20 -03:00
Savio Sena 6b928ebec4 Fixed cxx/image_blend_border test. 2014-08-24 08:21:57 -03:00
Savio Sena 155888f2c5 Fixed missing evas -> G_evas. 2014-08-24 08:20:43 -03:00
Savio Sena 37bbc4fae5 Deleted main.hh. We can now work properly with main.h. 2014-08-24 08:20:00 -03:00
Savio Sena d29bf887ec Renamed global variable evas to G_evas. 2014-08-24 07:49:56 -03:00
Savio Sena bebe73caa4 expedite++: First C++ test. 2014-08-24 07:49:32 -03:00
Savio Sena 8682064e4c autotools: Introduce C++11 requirement. 2014-08-23 00:19:23 -03:00
336 changed files with 16513 additions and 5501 deletions

View File

@ -1,6 +0,0 @@
{
"project_id" : "expedite",
"projects" : "expedite",
"conduit_uri" : "https://phab.enlightenment.org/",
"phabricator.uri" : "https://phab.enlightenment.org/"
}

View File

@ -3,6 +3,6 @@ Tim Horton <hortont424@gmail.com>
Saumsung Electronics <tbd>
Samsung SAIT <tbd>
Bruno Tarquini <btarquini@gmail.com>
Hermet Park <hermetpark@gmail.com>
ChunEon Park (Hermet) <hermet@hermet.pe.kr>
Eduardo Lima (Etrunko) <eblima@gmail.com>
JaEun Choi <jaeun12.choi@samsung.com>

376
INSTALL
View File

@ -1,368 +1,14 @@
Installation Instructions
*************************
COMPILING and INSTALLING:
Copyright (C) 1994-1996, 1999-2002, 2004-2016 Free Software
Foundation, Inc.
If you got a official release tar archive do:
./configure
( otherwise if you got this from enlightenment cvs do: ./autogen.sh )
Then to compile:
make
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. This file is offered as-is,
without warranty of any kind.
To install (run this as root, or the user who handles installs):
make install
Basic Installation
==================
Briefly, the shell command './configure && make && make install'
should configure, build, and install this package. The following
more-detailed instructions are generic; see the 'README' file for
instructions specific to this package. Some packages provide this
'INSTALL' file but do not implement all of the features documented
below. The lack of an optional feature in a given package is not
necessarily a bug. More recommendations for GNU packages can be found
in *note Makefile Conventions: (standards)Makefile Conventions.
The 'configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
those values to create a 'Makefile' in each directory of the package.
It may also create one or more '.h' files containing system-dependent
definitions. Finally, it creates a shell script 'config.status' that
you can run in the future to recreate the current configuration, and a
file 'config.log' containing compiler output (useful mainly for
debugging 'configure').
It can also use an optional file (typically called 'config.cache' and
enabled with '--cache-file=config.cache' or simply '-C') that saves the
results of its tests to speed up reconfiguring. Caching is disabled by
default to prevent problems with accidental use of stale cache files.
If you need to do unusual things to compile the package, please try
to figure out how 'configure' could check whether to do them, and mail
diffs or instructions to the address given in the 'README' so they can
be considered for the next release. If you are using the cache, and at
some point 'config.cache' contains results you don't want to keep, you
may remove or edit it.
The file 'configure.ac' (or 'configure.in') is used to create
'configure' by a program called 'autoconf'. You need 'configure.ac' if
you want to change it or regenerate 'configure' using a newer version of
'autoconf'.
The simplest way to compile this package is:
1. 'cd' to the directory containing the package's source code and type
'./configure' to configure the package for your system.
Running 'configure' might take a while. While running, it prints
some messages telling which features it is checking for.
2. Type 'make' to compile the package.
3. Optionally, type 'make check' to run any self-tests that come with
the package, generally using the just-built uninstalled binaries.
4. Type 'make install' to install the programs and any data files and
documentation. When installing into a prefix owned by root, it is
recommended that the package be configured and built as a regular
user, and only the 'make install' phase executed with root
privileges.
5. Optionally, type 'make installcheck' to repeat any self-tests, but
this time using the binaries in their final installed location.
This target does not install anything. Running this target as a
regular user, particularly if the prior 'make install' required
root privileges, verifies that the installation completed
correctly.
6. You can remove the program binaries and object files from the
source code directory by typing 'make clean'. To also remove the
files that 'configure' created (so you can compile the package for
a different kind of computer), type 'make distclean'. There is
also a 'make maintainer-clean' target, but that is intended mainly
for the package's developers. If you use it, you may have to get
all sorts of other programs in order to regenerate files that came
with the distribution.
7. Often, you can also type 'make uninstall' to remove the installed
files again. In practice, not all packages have tested that
uninstallation works correctly, even though it is required by the
GNU Coding Standards.
8. Some packages, particularly those that use Automake, provide 'make
distcheck', which can by used by developers to test that all other
targets like 'make install' and 'make uninstall' work correctly.
This target is generally not run by end users.
Compilers and Options
=====================
Some systems require unusual options for compilation or linking that
the 'configure' script does not know about. Run './configure --help'
for details on some of the pertinent environment variables.
You can give 'configure' initial values for configuration parameters
by setting variables in the command line or in the environment. Here is
an example:
./configure CC=c99 CFLAGS=-g LIBS=-lposix
*Note Defining Variables::, for more details.
Compiling For Multiple Architectures
====================================
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you can use GNU 'make'. 'cd' to the
directory where you want the object files and executables to go and run
the 'configure' script. 'configure' automatically checks for the source
code in the directory that 'configure' is in and in '..'. This is known
as a "VPATH" build.
With a non-GNU 'make', it is safer to compile the package for one
architecture at a time in the source code directory. After you have
installed the package for one architecture, use 'make distclean' before
reconfiguring for another architecture.
On MacOS X 10.5 and later systems, you can create libraries and
executables that work on multiple system types--known as "fat" or
"universal" binaries--by specifying multiple '-arch' options to the
compiler but only a single '-arch' option to the preprocessor. Like
this:
./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
CPP="gcc -E" CXXCPP="g++ -E"
This is not guaranteed to produce working output in all cases, you
may have to build one architecture at a time and combine the results
using the 'lipo' tool if you have problems.
Installation Names
==================
By default, 'make install' installs the package's commands under
'/usr/local/bin', include files under '/usr/local/include', etc. You
can specify an installation prefix other than '/usr/local' by giving
'configure' the option '--prefix=PREFIX', where PREFIX must be an
absolute file name.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
pass the option '--exec-prefix=PREFIX' to 'configure', the package uses
PREFIX as the prefix for installing programs and libraries.
Documentation and other data files still use the regular prefix.
In addition, if you use an unusual directory layout you can give
options like '--bindir=DIR' to specify different values for particular
kinds of files. Run 'configure --help' for a list of the directories
you can set and what kinds of files go in them. In general, the default
for these options is expressed in terms of '${prefix}', so that
specifying just '--prefix' will affect all of the other directory
specifications that were not explicitly provided.
The most portable way to affect installation locations is to pass the
correct locations to 'configure'; however, many packages provide one or
both of the following shortcuts of passing variable assignments to the
'make install' command line to change installation locations without
having to reconfigure or recompile.
The first method involves providing an override variable for each
affected directory. For example, 'make install
prefix=/alternate/directory' will choose an alternate location for all
directory configuration variables that were expressed in terms of
'${prefix}'. Any directories that were specified during 'configure',
but not in terms of '${prefix}', must each be overridden at install time
for the entire installation to be relocated. The approach of makefile
variable overrides for each directory variable is required by the GNU
Coding Standards, and ideally causes no recompilation. However, some
platforms have known limitations with the semantics of shared libraries
that end up requiring recompilation when using this method, particularly
noticeable in packages that use GNU Libtool.
The second method involves providing the 'DESTDIR' variable. For
example, 'make install DESTDIR=/alternate/directory' will prepend
'/alternate/directory' before all installation names. The approach of
'DESTDIR' overrides is not required by the GNU Coding Standards, and
does not work on platforms that have drive letters. On the other hand,
it does better at avoiding recompilation issues, and works well even
when some directory options were not specified in terms of '${prefix}'
at 'configure' time.
Optional Features
=================
If the package supports it, you can cause programs to be installed
with an extra prefix or suffix on their names by giving 'configure' the
option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'.
Some packages pay attention to '--enable-FEATURE' options to
'configure', where FEATURE indicates an optional part of the package.
They may also pay attention to '--with-PACKAGE' options, where PACKAGE
is something like 'gnu-as' or 'x' (for the X Window System). The
'README' should mention any '--enable-' and '--with-' options that the
package recognizes.
For packages that use the X Window System, 'configure' can usually
find the X include and library files automatically, but if it doesn't,
you can use the 'configure' options '--x-includes=DIR' and
'--x-libraries=DIR' to specify their locations.
Some packages offer the ability to configure how verbose the
execution of 'make' will be. For these packages, running './configure
--enable-silent-rules' sets the default to minimal output, which can be
overridden with 'make V=1'; while running './configure
--disable-silent-rules' sets the default to verbose, which can be
overridden with 'make V=0'.
Particular systems
==================
On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC
is not installed, it is recommended to use the following options in
order to use an ANSI C compiler:
./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
HP-UX 'make' updates targets which have the same time stamps as their
prerequisites, which makes it generally unusable when shipped generated
files such as 'configure' are involved. Use GNU 'make' instead.
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
parse its '<wchar.h>' header file. The option '-nodtk' can be used as a
workaround. If GNU CC is not installed, it is therefore recommended to
try
./configure CC="cc"
and if that doesn't work, try
./configure CC="cc -nodtk"
On Solaris, don't put '/usr/ucb' early in your 'PATH'. This
directory contains several dysfunctional programs; working variants of
these programs are available in '/usr/bin'. So, if you need '/usr/ucb'
in your 'PATH', put it _after_ '/usr/bin'.
On Haiku, software installed for all users goes in '/boot/common',
not '/usr/local'. It is recommended to use the following options:
./configure --prefix=/boot/common
Specifying the System Type
==========================
There may be some features 'configure' cannot figure out
automatically, but needs to determine by the type of machine the package
will run on. Usually, assuming the package is built to be run on the
_same_ architectures, 'configure' can figure that out, but if it prints
a message saying it cannot guess the machine type, give it the
'--build=TYPE' option. TYPE can either be a short name for the system
type, such as 'sun4', or a canonical name which has the form:
CPU-COMPANY-SYSTEM
where SYSTEM can have one of these forms:
OS
KERNEL-OS
See the file 'config.sub' for the possible values of each field. If
'config.sub' isn't included in this package, then this package doesn't
need to know the machine type.
If you are _building_ compiler tools for cross-compiling, you should
use the option '--target=TYPE' to select the type of system they will
produce code for.
If you want to _use_ a cross compiler, that generates code for a
platform different from the build platform, you should specify the
"host" platform (i.e., that on which the generated programs will
eventually be run) with '--host=TYPE'.
Sharing Defaults
================
If you want to set default values for 'configure' scripts to share,
you can create a site shell script called 'config.site' that gives
default values for variables like 'CC', 'cache_file', and 'prefix'.
'configure' looks for 'PREFIX/share/config.site' if it exists, then
'PREFIX/etc/config.site' if it exists. Or, you can set the
'CONFIG_SITE' environment variable to the location of the site script.
A warning: not all 'configure' scripts look for a site script.
Defining Variables
==================
Variables not defined in a site shell script can be set in the
environment passed to 'configure'. However, some packages may run
configure again during the build, and the customized values of these
variables may be lost. In order to avoid this problem, you should set
them in the 'configure' command line, using 'VAR=value'. For example:
./configure CC=/usr/local2/bin/gcc
causes the specified 'gcc' to be used as the C compiler (unless it is
overridden in the site shell script).
Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an
Autoconf limitation. Until the limitation is lifted, you can use this
workaround:
CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
'configure' Invocation
======================
'configure' recognizes the following options to control how it
operates.
'--help'
'-h'
Print a summary of all of the options to 'configure', and exit.
'--help=short'
'--help=recursive'
Print a summary of the options unique to this package's
'configure', and exit. The 'short' variant lists options used only
in the top level, while the 'recursive' variant lists options also
present in any nested packages.
'--version'
'-V'
Print the version of Autoconf used to generate the 'configure'
script, and exit.
'--cache-file=FILE'
Enable the cache: use and save the results of the tests in FILE,
traditionally 'config.cache'. FILE defaults to '/dev/null' to
disable caching.
'--config-cache'
'-C'
Alias for '--cache-file=config.cache'.
'--quiet'
'--silent'
'-q'
Do not print messages saying which checks are being made. To
suppress all normal output, redirect it to '/dev/null' (any error
messages will still be shown).
'--srcdir=DIR'
Look for the package's source code in directory DIR. Usually
'configure' can determine that directory automatically.
'--prefix=DIR'
Use DIR as the installation prefix. *note Installation Names:: for
more details, including other options available for fine-tuning the
installation locations.
'--no-create'
'-n'
Run the configure checks, but stop before creating any output
files.
'configure' also accepts some other, not widely useful, options. Run
'configure --help' for more details.
NOTE: You MUST make install Expedite for it to run properly.

View File

@ -3,14 +3,14 @@ dnl Process this file with autoconf to produce a configure script.
# get rid of that stupid cache mechanism
rm -f config.cache
AC_INIT([expedite], [1.23.0], [enlightenment-devel@lists.sourceforge.net])
AC_INIT([expedite], [1.11.99], [enlightenment-devel@lists.sourceforge.net])
AC_PREREQ([2.52])
AC_CONFIG_SRCDIR([configure.ac])
AC_CONFIG_HEADERS([config.h])
AC_CANONICAL_BUILD
AC_CANONICAL_HOST
AM_INIT_AUTOMAKE([1.6 dist-xz])
AM_INIT_AUTOMAKE([1.6 dist-bzip2 subdir-objects])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
PKG_PROG_PKG_CONFIG
@ -18,46 +18,104 @@ PKG_PROG_PKG_CONFIG
### Checks for programs
AC_ISC_POSIX
m4_ifdef([AC_PROG_OBJC],
[
AC_PROG_OBJC
_AM_DEPENDENCIES(OBJC)
],
[
AC_CHECK_TOOL([OBJC], [gcc])
AC_SUBST([OBJC])
AC_SUBST([OBJCFLAGS])
]
)
AC_PROG_CXX
AC_PROG_CC
LT_PROG_RC
### Check for C++11
EFL_CXX_COMPILE_STDCXX_11([ext], [mandatory])
### Checks for libraries
# Evil library for compilation on Windows
case "$host_os" in
mingw32*)
PKG_CHECK_MODULES([EVIL], [evil >= 1.7.99])
AC_DEFINE(HAVE_EVIL, 1, [Set to 1 if Evil library is installed])
;;
esac
# EFL dependencies
efl_version="1.23.0"
requirement_expedite=" \
eo >= ${efl_version} \
efl >= ${efl_version} \
eina >= ${efl_version} \
evas >= ${efl_version} \
eet >= ${efl_version} \
ecore-evas >= ${efl_version} \
ecore >= ${efl_version}"
AC_SUBST(requirement_expedite)
PKG_CHECK_MODULES([EFL], [${requirement_expedite}])
PKG_CHECK_MODULES([EFL], eina >= 1.7.99 efl >= 1.11.99 eo >= 1.7.99 evas >= 1.7.99 eet >= 1.7.99 ecore-evas >= 1.7.99 ecore >= 1.7.99)
EFL_ENABLE_EO_API_SUPPORT
EFL_ENABLE_BETA_API_SUPPORT
# EFL++ dependencies
PKG_CHECK_MODULES([EFL_CXX], efl-cxx >= 1.11.99 eina-cxx >= 1.11.99 eo-cxx >= 1.11.99 evas-cxx >= 1.11.99 eet-cxx >= 1.11.99)
### Checks for header files
### Checks for types
### Checks for structures
### Checks for compiler characteristics
AC_PROG_CC_C99
AC_HEADER_STDC
AC_C_CONST
AM_PROG_CC_C_O
AC_C___ATTRIBUTE__
if test "x${ac_cv_prog_cc_c99}" = "xno" ; then
AC_MSG_ERROR([expedite requires a c99-capable compiler])
WIN32_CFLAGS=""
case "$host_os" in
cegcc*)
WIN32_CFLAGS="-mwin32"
;;
esac
AC_SUBST(WIN32_CFLAGS)
EXPEDITE_CXXFLAGS=""
AC_LANG_PUSH([C++])
CXXFLAGS_save="${CXXFLAGS}"
CXXFLAGS="${CXXFLAGS} -fno-rtti -fno-exceptions"
AC_LINK_IFELSE(
[AC_LANG_PROGRAM([[]])],
[have_cxx_flags="yes"],
[have_cxx_flags="no"])
AC_MSG_CHECKING([whether the compiler supports -fno-rtti -fno-exceptions])
AC_MSG_RESULT([${have_cxx_flags}])
CXXFLAGS="${CXXFLAGS_save}"
if test "x${have_cxx_flags}" = "xyes" ; then
EXPEDITE_CXXFLAGS="-fno-rtti -fno-exceptions -DEFL_CXX_NO_EXCEPTIONS"
fi
CXXFLAGS="${CXXFLAGS} -std=c++11"
AC_LANG_POP([C++])
AC_SUBST(EXPEDITE_CXXFLAGS)
### Checks for linker characteristics
lt_enable_auto_import=""
case "$host_os" in
mingw* | cegcc*)
lt_enable_auto_import="-Wl,--enable-auto-import"
;;
esac
AC_SUBST(lt_enable_auto_import)
### Checks for library functions
AC_CHECK_FUNCS([sync])

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.6 KiB

View File

@ -55,7 +55,6 @@ data.png \
widgets.png \
e-logo-2.png \
e-logo-mask.png \
texture.png \
vector.png
texture.png
EXTRA_DIST = $(files_DATA)

View File

@ -1,61 +0,0 @@
files = [ 'Kochi.ttf',
'Vera.ttf',
'VeraBI.ttf',
'VeraBd.ttf',
'VeraIt.ttf',
'VeraMoBI.ttf',
'VeraMoBd.ttf',
'VeraMoIt.ttf',
'VeraMono.ttf',
'VeraSe.ttf',
'VeraSeBd.ttf',
'fonts.alias',
'fonts.dir',
'logo.png',
'e-logo.png',
'e.png',
'image.png',
'bar.png',
'frame.png',
'stretch.png',
'9patch_test.9.png',
'pan.png',
'tp.png',
'tp.yuv',
'icon_sel.png',
'text_sel.png',
'exit.png',
'watch.png',
'bug.png',
'bulb.png',
'camera.png',
'colorbox.png',
'error.png',
'flower.png',
'house.png',
'mushroom.png',
'pulse.png',
'typewriter.png',
'warning.png',
'im1.png',
'im2.png',
'cube1.png',
'cube2.png',
'cube3.png',
'cube4.png',
'cube5.png',
'cube6.png',
'text.png',
'rect.png',
'blend.png',
'map.png',
'3d.png',
'data.png',
'widgets.png',
'e-logo-2.png',
'e-logo-mask.png',
'texture.png',
'vector.png' ]
install_data(files, install_dir: join_paths(get_option('datadir'),
meson.project_name(), 'data'))

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

136
m4/efl_stdcxx_11.m4 Normal file
View File

@ -0,0 +1,136 @@
# ============================================================================
# http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_11.html
# ============================================================================
#
# SYNOPSIS
#
# AX_CXX_COMPILE_STDCXX_11([ext|noext],[mandatory|optional])
#
# DESCRIPTION
#
# Check for baseline language coverage in the compiler for the C++11
# standard; if necessary, add switches to CXXFLAGS to enable support.
#
# The first argument, if specified, indicates whether you insist on an
# extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g.
# -std=c++11). If neither is specified, you get whatever works, with
# preference for an extended mode.
#
# The second argument, if specified 'mandatory' or if left unspecified,
# indicates that baseline C++11 support is required and that the macro
# should error out if no mode with that support is found. If specified
# 'optional', then configuration proceeds regardless, after defining
# HAVE_CXX11 if and only if a supporting mode is found.
#
# LICENSE
#
# Copyright (c) 2008 Benjamin Kosnik <bkoz@redhat.com>
# Copyright (c) 2012 Zack Weinberg <zackw@panix.com>
# Copyright (c) 2013 Roy Stogner <roystgnr@ices.utexas.edu>
#
# Copying and distribution of this file, with or without modification, are
# permitted in any medium without royalty provided the copyright notice
# and this notice are preserved. This file is offered as-is, without any
# warranty.
#serial 3
m4_define([_EFL_CXX_COMPILE_STDCXX_11_testbody], [
template <typename T>
struct check
{
static_assert(sizeof(int) <= sizeof(T), "not big enough");
};
typedef check<check<bool>> right_angle_brackets;
int a;
decltype(a) b;
typedef check<int> check_type;
check_type c;
check_type&& cr = static_cast<check_type&&>(c);
struct A { A(int); };
struct B : A { using A::A; }; // inheriting constructors
auto d = a;
])
AC_DEFUN([EFL_CXX_COMPILE_STDCXX_11], [dnl
m4_if([$1], [], [],
[$1], [ext], [],
[$1], [noext], [],
[m4_fatal([invalid argument `$1' to AX_CXX_COMPILE_STDCXX_11])])dnl
m4_if([$2], [], [ax_cxx_compile_cxx11_required=true],
[$2], [mandatory], [ax_cxx_compile_cxx11_required=true],
[$2], [optional], [ax_cxx_compile_cxx11_required=false],
[m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX_11])])dnl
AC_LANG_PUSH([C++])dnl
ac_success=no
AC_CACHE_CHECK(whether $CXX supports C++11 features by default,
ax_cv_cxx_compile_cxx11,
[AC_COMPILE_IFELSE([AC_LANG_SOURCE([_EFL_CXX_COMPILE_STDCXX_11_testbody])],
[ax_cv_cxx_compile_cxx11=yes],
[ax_cv_cxx_compile_cxx11=no])])
if test x$ax_cv_cxx_compile_cxx11 = xyes; then
ac_success=yes
fi
m4_if([$1], [noext], [], [dnl
if test x$ac_success = xno; then
for switch in -std=gnu++11; do
cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx11_$switch])
AC_CACHE_CHECK(whether $CXX supports C++11 features with $switch,
$cachevar,
[ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS="$CXXFLAGS $switch"
AC_COMPILE_IFELSE([AC_LANG_SOURCE([_EFL_CXX_COMPILE_STDCXX_11_testbody])],
[eval $cachevar=yes],
[eval $cachevar=no])
CXXFLAGS="$ac_save_CXXFLAGS"])
if eval test x\$$cachevar = xyes; then
CXXFLAGS="$CXXFLAGS $switch"
ac_success=yes
break
fi
done
fi])
m4_if([$1], [ext], [], [dnl
if test x$ac_success = xno; then
for switch in -std=c++11; do
cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx11_$switch])
AC_CACHE_CHECK(whether $CXX supports C++11 features with $switch,
$cachevar,
[ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS="$CXXFLAGS $switch"
AC_COMPILE_IFELSE([AC_LANG_SOURCE([_EFL_CXX_COMPILE_STDCXX_11_testbody])],
[eval $cachevar=yes],
[eval $cachevar=no])
CXXFLAGS="$ac_save_CXXFLAGS"])
if eval test x\$$cachevar = xyes; then
CXXFLAGS="$CXXFLAGS $switch"
ac_success=yes
break
fi
done
fi])
AC_LANG_POP([C++])
if test x$ax_cxx_compile_cxx11_required = xtrue; then
if test x$ac_success = xno; then
AC_MSG_ERROR([*** A compiler with support for C++11 language features is required.])
fi
else
if test x$ac_success = xno; then
HAVE_CXX11=0
AC_MSG_NOTICE([No compiler with C++11 support was found])
else
HAVE_CXX11=1
AC_DEFINE(HAVE_CXX11,1,
[define if the compiler supports basic C++11 syntax])
fi
AC_SUBST(HAVE_CXX11)
fi
])

View File

@ -1,63 +0,0 @@
project('expedite', 'c',
version: '1.23.0',
default_options: ['c_std=gnu99'],
license: 'BSD')
cc = meson.get_compiler('c')
prefix = get_option('prefix')
add_global_arguments('-DHAVE_CONFIG_H=1', language: 'c')
config_data = configuration_data()
config_data.set('EFL_BETA_API_SUPPORT', 1)
config_data.set_quoted('PACKAGE_VERSION', meson.project_version())
config_data.set_quoted('PACKAGE', meson.project_name())
config_data.set_quoted('PACKAGE_BUGREPORT',
'enlightenment-devel@lists.sourceforge.net')
config_data.set_quoted('PACKAGE_NAME', meson.project_name())
config_data.set_quoted('PACKAGE_TARNAME', meson.project_name())
config_data.set_quoted('PACKAGE_URL',
'https://www.enlightenment.org/')
config_data.set_quoted('PACKAGE_BIN_DIR',
join_paths(prefix, get_option('bindir')))
config_data.set_quoted('PACKAGE_DATA_DIR',
join_paths(prefix, get_option('datadir'),
meson.project_name()))
config_data.set_quoted('PACKAGE_LIB_DIR',
join_paths(prefix, get_option('libdir')))
config_data.set_quoted('LOCALEDIR', join_paths(prefix, get_option('localedir')))
host_os = host_machine.system()
if host_os == 'linux'
config_data.set('_GNU_SOURCE', 1)
config_data.set('__EXTENSIONS__', 1)
config_data.set('_POSIX_PTHREAD_SEMANTICS', 1)
config_data.set('_TANDEM_SOURCE', 1)
config_data.set('_ALL_SOURCE', 1)
config_data.set('_POSIX_SOURCE', 1)
config_data.set('_POSIX_1_SOURCE', 1)
endif
efl_version = '1.23.0'
efl_deps = ['eina',
'eet',
'eo',
'efl',
'evas',
'ecore',
'ecore-evas',
'elementary']
expedite_dependencies = []
foreach efl_dep: efl_deps
dep = dependency(efl_dep, version: '>=' + efl_version)
expedite_dependencies += [dep]
endforeach
configure_file(output: 'config.h',
configuration: config_data)
config_dir = include_directories('.')
subdir('src/bin')
subdir('data')

View File

@ -6,11 +6,209 @@ AM_CPPFLAGS = \
-DPACKAGE_BIN_DIR=\"$(bindir)\" \
-DPACKAGE_LIB_DIR=\"$(libdir)\" \
-DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \
@EFL_CFLAGS@
@EFL_CFLAGS@ \
@EFL_CXX_CFLAGS@ \
@EVIL_CFLAGS@
bin_PROGRAMS = expedite
bin_SCRIPTS = expedite-cmp
# XXX
cxx_sources = \
cxx/image_blend_border.cc \
cxx/image_blend_border_capi.h \
cxx/image_blend_border_recolor.cc \
cxx/image_blend_border_recolor_capi.h \
cxx/image_blend_fade_pow2_unscaled.cc \
cxx/image_blend_fade_pow2_unscaled_capi.h \
cxx/image_blend_fade_unscaled.cc \
cxx/image_blend_fade_unscaled_capi.h \
cxx/image_blend_many_smooth_same_scaled.cc \
cxx/image_blend_many_smooth_same_scaled_capi.h \
cxx/image_blend_nearest_same_scaled.cc \
cxx/image_blend_nearest_same_scaled_capi.h \
cxx/image_blend_nearest_scaled.cc \
cxx/image_blend_nearest_scaled_capi.h \
cxx/image_blend_nearest_solid_same_scaled.cc \
cxx/image_blend_nearest_solid_same_scaled_capi.h \
cxx/image_blend_nearest_solid_scaled.cc \
cxx/image_blend_nearest_solid_scaled_capi.h \
cxx/image_blend_occlude1.cc \
cxx/image_blend_occlude1_capi.h \
cxx/image_blend_occlude1_few.cc \
cxx/image_blend_occlude1_few_capi.h \
cxx/image_blend_occlude1_many.cc \
cxx/image_blend_occlude1_many_capi.h \
cxx/image_blend_occlude1_very_many.cc \
cxx/image_blend_occlude1_very_many_capi.h \
cxx/image_blend_occlude2.cc \
cxx/image_blend_occlude2_capi.h \
cxx/image_blend_occlude2_few.cc \
cxx/image_blend_occlude2_few_capi.h \
cxx/image_blend_occlude2_many.cc \
cxx/image_blend_occlude2_many_capi.h \
cxx/image_blend_occlude2_very_many.cc \
cxx/image_blend_occlude2_very_many_capi.h \
cxx/image_blend_occlude3.cc \
cxx/image_blend_occlude3_capi.h \
cxx/image_blend_occlude3_few.cc \
cxx/image_blend_occlude3_few_capi.h \
cxx/image_blend_occlude3_many.cc \
cxx/image_blend_occlude3_many_capi.h \
cxx/image_blend_occlude3_very_many.cc \
cxx/image_blend_occlude3_very_many_capi.h \
cxx/image_blend_occlude_capi.h \
cxx/image_blend_smooth_same_scaled.cc \
cxx/image_blend_smooth_same_scaled_capi.h \
cxx/image_blend_smooth_scaled.cc \
cxx/image_blend_smooth_scaled_capi.h \
cxx/image_blend_smooth_solid_same_scaled.cc \
cxx/image_blend_smooth_solid_same_scaled_capi.h \
cxx/image_blend_smooth_solid_scaled.cc \
cxx/image_blend_smooth_solid_scaled_capi.h \
cxx/image_blend_solid_border.cc \
cxx/image_blend_solid_border_capi.h \
cxx/image_blend_solid_fade_pow2_unscaled.cc \
cxx/image_blend_solid_fade_pow2_unscaled_capi.h \
cxx/image_blend_solid_fade_unscaled.cc \
cxx/image_blend_solid_fade_unscaled_capi.h \
cxx/image_blend_solid_middle_border.cc \
cxx/image_blend_solid_middle_border_capi.h \
cxx/image_blend_solid_middle_unscaled.cc \
cxx/image_blend_solid_middle_unscaled_capi.h \
cxx/image_blend_solid_unscaled.cc \
cxx/image_blend_solid_unscaled_capi.h \
cxx/image_blend_unscaled.cc \
cxx/image_blend_unscaled_capi.h \
cxx/image_crossfade.cc \
cxx/image_crossfade_capi.h \
cxx/image_data_argb.cc \
cxx/image_data_argb_alpha.cc \
cxx/image_data_argb_alpha_capi.h \
cxx/image_data_argb_capi.h \
cxx/image_data_ycbcr601pl.cc \
cxx/image_data_ycbcr601pl_capi.h \
cxx/image_data_ycbcr601pl_map_nearest_solid_rotate.cc \
cxx/image_data_ycbcr601pl_map_nearest_solid_rotate_capi.h \
cxx/image_data_ycbcr601pl_map_solid_rotate.cc \
cxx/image_data_ycbcr601pl_map_solid_rotate_capi.h \
cxx/image_data_ycbcr601pl_wide_stride.cc \
cxx/image_data_ycbcr601pl_wide_stride_capi.h \
cxx/image_map_3d_1.cc \
cxx/image_map_3d_1_capi.h \
cxx/image_map_3d_2.cc \
cxx/image_map_3d_2_capi.h \
cxx/image_map_3d_3.cc \
cxx/image_map_3d_3_capi.h \
cxx/image_map_3d_4.cc \
cxx/image_map_3d_4_capi.h \
cxx/image_map_3d_5.cc \
cxx/image_map_3d_5_capi.h \
cxx/image_map_3d_6.cc \
cxx/image_map_3d_6_capi.h \
cxx/image_map_3d_flow.cc \
cxx/image_map_3d_flow_capi.h \
cxx/image_map_color_alpha_nearest_rotate.cc \
cxx/image_map_color_alpha_nearest_rotate_capi.h \
cxx/image_map_color_alpha_nearest_solid_rotate.cc \
cxx/image_map_color_alpha_nearest_solid_rotate_capi.h \
cxx/image_map_color_alpha_rotate.cc \
cxx/image_map_color_alpha_rotate_capi.h \
cxx/image_map_color_alpha_solid_rotate.cc \
cxx/image_map_color_alpha_solid_rotate_capi.h \
cxx/image_map_color_nearest_rotate.cc \
cxx/image_map_color_nearest_rotate_capi.h \
cxx/image_map_color_nearest_solid_rotate.cc \
cxx/image_map_color_nearest_solid_rotate_capi.h \
cxx/image_map_color_rotate.cc \
cxx/image_map_color_rotate_capi.h \
cxx/image_map_color_solid_rotate.cc \
cxx/image_map_color_solid_rotate_capi.h \
cxx/image_map_nearest_rotate.cc \
cxx/image_map_nearest_rotate_capi.h \
cxx/image_map_nearest_solid_rotate.cc \
cxx/image_map_nearest_solid_rotate_capi.h \
cxx/image_map_rotate.cc \
cxx/image_map_rotate_capi.h \
cxx/image_map_solid_rotate.cc \
cxx/image_map_solid_rotate_capi.h \
cxx/image_quality_scale.cc \
cxx/image_quality_scale_capi.h \
cxx/poly_blend.cc \
cxx/poly_blend_capi.h \
cxx/line_blend.cc \
cxx/line_blend_capi.h \
cxx/proxy_image.cc \
cxx/proxy_image_capi.h \
cxx/proxy_image_offscreen.cc \
cxx/proxy_image_offscreen_capi.h \
cxx/proxy_text_fixed.cc \
cxx/proxy_text_fixed_capi.h \
cxx/proxy_text_random.cc \
cxx/proxy_text_random_capi.h \
cxx/rect_blend.cc \
cxx/rect_blend_capi.h \
cxx/rect_blend_few.cc \
cxx/rect_blend_few_capi.h \
cxx/rect_blend_pow2.cc \
cxx/rect_blend_pow2_capi.h \
cxx/rect_blend_pow2_few.cc \
cxx/rect_blend_pow2_few_capi.h \
cxx/rect_solid.cc \
cxx/rect_solid_capi.h \
cxx/rect_solid_few.cc \
cxx/rect_solid_few_capi.h \
cxx/text_basic.cc \
cxx/text_basic_capi.h \
cxx/text_change.cc \
cxx/text_change_capi.h \
cxx/text_styles.cc \
cxx/text_styles_capi.h \
cxx/text_styles_different_strings.cc \
cxx/text_styles_different_strings_capi.h \
cxx/textblock_auto_align.cc \
cxx/textblock_auto_align_capi.h \
cxx/textblock_basic.cc \
cxx/textblock_basic_capi.h \
cxx/textblock_intl.cc \
cxx/textblock_intl_capi.h \
cxx/textblock_text_append.cc \
cxx/textblock_text_append_capi.h \
cxx/widgets_file_icons.cc \
cxx/widgets_file_icons_2.cc \
cxx/widgets_file_icons_2_capi.h \
cxx/widgets_file_icons_2_grouped.cc \
cxx/widgets_file_icons_2_grouped_capi.h \
cxx/widgets_file_icons_2_same.cc \
cxx/widgets_file_icons_2_same_capi.h \
cxx/widgets_file_icons_2_same_grouped.cc \
cxx/widgets_file_icons_2_same_grouped_capi.h \
cxx/widgets_file_icons_3.cc \
cxx/widgets_file_icons_3_capi.h \
cxx/widgets_file_icons_4.cc \
cxx/widgets_file_icons_4_capi.h \
cxx/widgets_file_icons_capi.h \
cxx/widgets_list_1.cc \
cxx/widgets_list_1_capi.h \
cxx/widgets_list_1_grouped.cc \
cxx/widgets_list_1_grouped_capi.h \
cxx/widgets_list_2.cc \
cxx/widgets_list_2_capi.h \
cxx/widgets_list_2_grouped.cc \
cxx/widgets_list_2_grouped_capi.h \
cxx/widgets_list_3.cc \
cxx/widgets_list_3_capi.h \
cxx/widgets_list_3_grouped.cc \
cxx/widgets_list_3_grouped_capi.h \
cxx/widgets_list_4.cc \
cxx/widgets_list_4_capi.h \
cxx/widgets_list_4_grouped.cc \
cxx/widgets_list_4_grouped_capi.h \
cxx/font_effect_blur_alpha.cc \
cxx/font_effect_blur_alpha_capi.h \
cxx/font_effect_blur_color.cc \
cxx/font_effect_blur_color_capi.h
expedite_SOURCES = \
main.c main.h \
ui.c ui.h \
@ -47,11 +245,9 @@ image_blend_nearest_solid_same_scaled.c \
image_blend_smooth_same_scaled.c \
image_blend_smooth_solid_same_scaled.c \
image_blend_border.c \
image_blend_border_recolor.c \
image_blend_solid_middle_border.c \
image_blend_solid_border.c \
image_blend_solid_stretch.c \
image_blend_solid_9patch.c \
image_blend_border_recolor.c \
image_map_rotate.c \
image_map_solid_rotate.c \
image_map_nearest_rotate.c \
@ -87,7 +283,6 @@ textblock_basic.c \
textblock_intl.c \
textblock_auto_align.c \
textblock_text_append.c \
textblock_text_fill_format.c \
rect_blend.c \
rect_blend_pow2.c \
rect_solid.c \
@ -110,35 +305,35 @@ poly_blend.c \
proxy_image.c \
proxy_text_fixed.c \
proxy_text_random.c \
proxy_textblock.c \
proxy_image_clipped.c \
line_blend.c \
image_blend_many_smooth_same_scaled.c \
font_effect_blur_alpha.c \
font_effect_blur_color.c \
image_mask.c \
image_mask_2.c \
image_mask_3.c \
image_mask_4.c \
image_mask_5.c \
image_mask_6.c \
image_mask_7.c \
image_mask_8.c \
image_mask_9.c \
image_mask_10.c \
image_mask_11.c \
image_mask_12.c \
image_mask_13.c \
image_mask_clipped.c \
vg_basic_rect.c \
vg_basic_circle.c \
vg_basic_gradient.c \
vg_scaled.c \
snapshot_widgets_file_icons.c
# \
${cxx_sources}
# \
# image_mask.c \
# image_mask_2.c \
# image_mask_3.c \
# image_mask_4.c \
# image_mask_5.c \
# image_mask_6.c \
# image_mask_7.c \
# image_mask_8.c \
# image_mask_9.c \
# image_mask_10.c \
# image_mask_11.c \
# image_mask_12.c \
# image_mask_13.c \
# image_mask_14.c \
# image_mask_15.c
expedite_LDADD = @EFL_LIBS@ -lm
expedite_CFLAGS = @WIN32_CFLAGS@
expedite_CXXFLAGS = @EXPEDITE_CXXFLAGS@
expedite_LDADD = @EFL_LIBS@ @EFL_CXX_LIBS@ @EVIL_LIBS@ -lm
expedite_LDFLAGS = @lt_enable_auto_import@
.rc.lo:
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --tag=RC --mode=compile $(RC) $(RCFLAGS) $< -o $@
EXTRA_DIST = $(bin_SCRIPTS)

View File

@ -6,28 +6,32 @@ static void
_setup(void)
{
Evas_Object *o;
Evas_Textblock_Style *st;
o = efl_add(EFL_CANVAS_TEXTBLOCK_CLASS, evas);
efl_gfx_entity_position_set(o, EINA_POSITION2D(10, 40));
efl_gfx_entity_size_set(o, EINA_SIZE2D(win_w - 20, win_h - 50));
efl_gfx_entity_visible_set(o, EINA_TRUE);
efl_text_font_family_set(o, "Vera");
efl_text_font_size_set(o, 10);
efl_text_color_set(o, 0, 0, 0, 255);
efl_text_multiline_set(o, EINA_TRUE);
efl_text_horizontal_align_set(o, 0.5);
efl_text_wrap_set(o, EFL_TEXT_FORMAT_WRAP_WORD);
efl_text_markup_set
(o,
o = eo_add(EVAS_TEXTBLOCK_CLASS, G_evas);
eo_do(o, evas_obj_position_set(10, 40),
evas_obj_size_set(win_w - 20, win_h - 50),
evas_obj_visibility_set(EINA_TRUE));
st = evas_textblock_style_new();
evas_textblock_style_set
(st,
"DEFAULT='font=Vera font_size=8 align=left color=#000 wrap=word'"
"center='+ font=Vera font_size=10 align=center'"
"/center='- \n \n'"
"p='+ font=Vera font_size=10 align=left'"
"/p='- \n \n'"
);
eo_do(o, evas_obj_textblock_style_set(st),
evas_obj_textblock_clear(),
evas_obj_textblock_text_markup_set
("<center>"
"Enlightenment used to be a window manager project, but "
"since has changed a lot to become a miniature desktop and mobile "
"device environment all of its own. It is now made up of many "
"components (libraries and applications) that have specific uses. "
"It is very large, and so requires more testing and demonstration."
"</center>"
"</br>"
"<center>"
"Expedite is a full test suite for Evas, which is one of the "
"core components of the Enlightenment Foundation Libraries. Evas "
@ -35,8 +39,10 @@ _setup(void)
"render to many targets, including framebuffer, X11, OpenGL, memory, "
"DirectFB and other targets to boot. It handles high level graphic "
"layout descriptions that applications set up, dealing with the hard "
"work of doing the drawing for them.");
"work of doing the drawing for them."
"</center>"
));
evas_textblock_style_free(st);
o_text = o;
ui_fps(0.0);
}
@ -44,7 +50,7 @@ _setup(void)
static void
_cleanup(void)
{
efl_del(o_text);
eo_del(o_text);
o_text = NULL;
}
@ -55,7 +61,7 @@ _loop(double t EINA_UNUSED,
}
static void
_key(const char *key)
_key(char *key)
{
if ((!strcmp(key, "Escape")) || (!strcmp(key, "q")) || (!strcmp(key, "Q")))
{
@ -67,5 +73,6 @@ _key(const char *key)
void
about_start(void)
{
ui_func_set(_key, _loop, _setup);
ui_func_set(_key, _loop);
_setup();
}

View File

@ -1,6 +1,14 @@
#ifndef ABOUT_H
#define ABOUT_H
#ifdef __cplusplus
extern "C" {
#endif
void about_start(void);
#ifdef __cplusplus
}
#endif
#endif

View File

@ -0,0 +1,72 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "font_effect_blur_alpha_capi.h"
/* standard var */
static int done = 0;
extern int win_w, win_h;
/* private data */
static evas::text *text;
static const int MAX_BLUR = 100;
/* setup */
static void _setup(void)
{
int w,h;
evas::canvas canvas(::eo_ref(G_evas));
evas::text *o = new evas::text(efl::eo::parent = canvas);
o->evas::object::color_set(0, 0, 0, 255);
o->font_set("Vera-Bold", 80);
o->text_set("Font Effect");
o->visibility_set(true);
o->evas::object::size_get(&w, &h);
o->evas::object::position_set((win_w / 2) - (w / 2) - MAX_BLUR, (win_h / 2) - (h / 2) - MAX_BLUR);
text = o;
done = 0;
}
/* cleanup */
static void _cleanup(void)
{
text->visibility_set(false);
delete text;
}
/* loop - do things */
static void _loop(double t, int f)
{
if (text)
{
char buf[256];
char *str = "padding_set(%d);blur(%d,color=black);";
sprintf(buf, str, MAX_BLUR, ((f % MAX_BLUR) + 1));
text->filter_program_set(buf);
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME font_effect_blur_alpha_cxx_start
#define NAME "(C++) Font Effect Blur (Alpha)"
#define ICON "text.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,72 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "font_effect_blur_color_capi.h"
/* standard var */
static int done = 0;
extern int win_w, win_h;
/* private data */
static evas::text *text;
static const int MAX_BLUR = 100;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
int w, h;
evas::text *o = new evas::text(efl::eo::parent = canvas);
o->evas::object::color_set(0, 0, 0, 255);
o->font_set("Vera-Bold", 80);
o->text_set("Font Effect");
o->visibility_set(true);
o->evas::object::size_get(&w, &h);
o->evas::object::position_set((win_w / 2) - (w / 2) - MAX_BLUR, (win_h / 2) - (h / 2) - MAX_BLUR);
text = o;
done = 0;
}
/* cleanup */
static void _cleanup(void)
{
text->visibility_set(false);
delete text;
}
/* loop - do things */
static void _loop(double t, int f)
{
if (text)
{
char buf[256];
const char *str = "buffer:a(rgba);padding_set(%d);blend(dst=a,color=darkblue);blur(%d,src=a);";
sprintf(buf, str, MAX_BLUR, ((f % MAX_BLUR) + 1));
text->filter_program_set(buf);
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,31 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME font_effect_blur_color_cxx_start
#define NAME "(C++) Font Effect Blur (Color)"
#define ICON "text.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,80 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_blend_border_capi.h"
static efl::eina::list<evas::image> images;
/* standard var */
static int done = 0;
/* setup */
static void _setup()
{
evas::canvas canvas(::eo_ref(G_evas));
for (int i = 0; i < OBNUM; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
eo_do(o._eo_ptr(), efl_file_set(build_path("bar.png"), NULL)); // XXX
o.border_set(6, 6, 6, 6);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup()
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
Evas_Coord x, y, w, h, w0, h0;
int i = 0;
for (evas::image& img : images)
{
w0 = 80;
h0 = 80;
w = 5 + ((1.0 + cos((double)(f + (i * 10)) / (7.4 * SLOW) )) * w0 * 2);
h = 5 + ((1.0 + sin((double)(f + (i * 19)) / (12.6 * SLOW) )) * h0 * 2);
x = (win_w / 2) - (w / 2);
x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w0 / 2);
y = (win_h / 2) - (h / 2);
y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h0 / 2);
img.evas::object::position_set(x, y);
img.evas::object::size_set(w, h);
img.fill_set(0, 0, w, h);
++i;
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,32 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_blend_border_cxx_start
#define NAME "(C++) Image Blend Border (C++)"
#define ICON "blend.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,81 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_blend_border_recolor_capi.h"
efl::eina::list<evas::image> images;
/* standard var */
static int done = 0;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
for (int i = 0; i < OBNUM; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
eo_do(o._eo_ptr(), efl_file_set(::build_path("pan.png"), NULL)); // XXX
o.color_set(64, 64, 64, 255);
o.border_set(3, 3, 3, 3);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup(void)
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
int i = 0;
Evas_Coord x, y, w, h, w0, h0;
for (auto it = images.begin(), end = images.end(); it != end; it++, i++)
{
w0 = 80;
h0 = 80;
w = 5 + ((1.0 + cos((double)(f + (i * 10)) / (7.4 * SLOW) )) * w0 * 2);
h = 5 + ((1.0 + sin((double)(f + (i * 19)) / (12.6 * SLOW) )) * h0 * 2);
x = (win_w / 2) - (w / 2);
x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w0 / 2);
y = (win_h / 2) - (h / 2);
y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h0 / 2);
(*it).position_set(x, y);
(*it).evas::object::size_set(w, h);
(*it).fill_set(0, 0, w, h);
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,32 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_blend_border_recolor_cxx_start
#define NAME "(C++) Image Blend Border Recolor (C++)"
#define ICON "blend.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,81 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_blend_fade_pow2_unscaled_capi.h"
static efl::eina::list<evas::image> images;
/* standard var */
static int done = 0;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
for (int i = 0; i < OBNUM; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
eo_do(o._eo_ptr(), efl_file_set(::build_path("logo.png"), NULL)); // XXX
o.fill_set(0, 0, 120, 160);
o.evas::object::size_set(120, 160);
int a = 256 - (1 << ((rnd() % 8) + 1));
if (a < 128) a = 128;
o.color_set(a, a, a, a);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup(void)
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
int i = 0;
Evas_Coord x, y, w, h;
for (auto it = images.begin(), end = images.end(); it != end; it++, i++)
{
w = 120;
h = 160;
x = (win_w / 2) - (w / 2);
x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w / 2);
y = (win_h / 2) - (h / 2);
y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h / 2);
(*it).position_set(x, y);
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,33 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_blend_fade_pow2_unscaled_cxx_start
#define NAME "(C++) Image Blend Fade Power 2 Unscaled (C++)"
#define ICON "blend.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,78 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_blend_fade_unscaled_capi.h"
/* standard var */
static int done = 0;
/* private data */
static efl::eina::list<evas::image> images;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
for (int i = 0; i < OBNUM; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
eo_do(o._eo_ptr(), efl_file_set(::build_path("logo.png"), NULL)); // XXX
o.fill_set(0, 0, 120, 160);
o.evas::object::size_set(120, 160);
int a = rnd()&0xff;
o.color_set(a, a, a, a);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup(void)
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
int i = 0;
Evas_Coord x, y, w, h;
for (auto it = images.begin(), end = images.end(); it != end; it++, i++)
{
w = 120;
h = 160;
x = (win_w / 2) - (w / 2);
x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w / 2);
y = (win_h / 2) - (h / 2);
y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h / 2);
(*it).position_set(x, y);
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,33 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_blend_fade_unscaled_cxx_start
#define NAME "(C++) Image Blend Fade Unscaled (C++)"
#define ICON "blend.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,80 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_blend_many_smooth_same_scaled_capi.h"
#define MANYNUM 8192
/* standard var */
static int done = 0;
/* private data */
static efl::eina::list<evas::image> images;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
for (int i = 0; i < MANYNUM; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
int n = rnd() % 100;
int w = 3 + ((n * (60 - 3)) / 100);
int h = 4 + ((n * (80 - 4)) / 100);
eo_do(o._eo_ptr(), efl_file_set(build_path("logo.png"), NULL)); // XXX
o.smooth_scale_set(1);
o.evas::object::size_set(w, h);
o.fill_set(0, 0, w, h);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup()
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
int i = 0;
for (evas::image& img : images)
{
Evas_Coord w, h;
img.evas::object::size_get(&w, &h);
Evas_Coord x = (win_w / 2) - (w / 2);
x += ::sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (win_w / 2);
Evas_Coord y = (win_h / 2) - (h / 2);
y += ::cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (win_h / 2);
img.evas::object::position_set(x, y);
++i;
}
FPS_STD(NAME);
}
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_blend_many_smooth_same_scaled_cxx_start
#define NAME "(C++) Image Blend Many Smooth Down Scaled"
#define ICON "blend.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,78 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_blend_nearest_same_scaled_capi.h"
/* standard var */
static int done = 0;
/* private data */
static efl::eina::list<evas::image> images;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
for (int i = 0; i < OBNUM; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
eo_do(o._eo_ptr(), efl_file_set(build_path("logo.png"), NULL)); // XXX
o.smooth_scale_set(0);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup()
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
int i = 0;
for (evas::image& img : images)
{
Evas_Coord w0 = 80;
Evas_Coord h0 = 80;
Evas_Coord w = 40 + ((i % 3) * (w0 / 2));
Evas_Coord h = 40 + ((i % 3) * (h0 / 2));
Evas_Coord x = (win_w / 2) - (w / 2);
x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w0 / 2);
Evas_Coord y = (win_h / 2) - (h / 2);
y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h0 / 2);
img.evas::object::position_set(x, y);
img.evas::object::size_set(w, h);
img.fill_set(0, 0, w, h);
++i;
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_blend_nearest_same_scaled_cxx_start
#define NAME "(C++) Image Blend Nearest Same Scaled"
#define ICON "blend.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,78 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_blend_nearest_scaled_capi.h"
/* standard var */
static int done = 0;
/* private data */
static efl::eina::list<evas::image> images;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
for (int i = 0; i < OBNUM; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
eo_do(o._eo_ptr(), efl_file_set(build_path("logo.png"), NULL)); // XXX
o.smooth_scale_set(0);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup()
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
int i = 0;
for (evas::image& img : images)
{
Evas_Coord w0 = 80;
Evas_Coord h0 = 80;
Evas_Coord w = 5 + ((1.0 + cos((double)(f + (i * 10)) / (7.4 * SLOW) )) * w0 * 2);
Evas_Coord h = 5 + ((1.0 + sin((double)(f + (i * 19)) / (12.6 * SLOW) )) * h0 * 2);
Evas_Coord x = (win_w / 2) - (w / 2);
Evas_Coord y = (win_h / 2) - (h / 2);
x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w0 / 2);
y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h0 / 2);
img.evas::object::position_set(x, y);
img.evas::object::size_set(w, h);
img.fill_set(0, 0, w, h);
++i;
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_blend_nearest_scaled_cxx_start
#define NAME "(C++) Image Blend Nearest Scaled"
#define ICON "blend.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,78 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_blend_nearest_solid_same_scaled_capi.h"
/* standard var */
static int done = 0;
/* private data */
static efl::eina::list<evas::image> images;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
for (int i = 0; i < OBNUM; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
eo_do(o._eo_ptr(), efl_file_set(build_path("image.png"), NULL)); // XXX
o.smooth_scale_set(0);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup()
{
for (evas::image& img : images)
img.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
int i = 0;
for (evas::image& img : images)
{
Evas_Coord w0 = 80;
Evas_Coord h0 = 80;
Evas_Coord w = 40 + ((i % 3) * (w0 / 2));
Evas_Coord h = 40 + ((i % 3) * (h0 / 2));
Evas_Coord x = (win_w / 2) - (w / 2);
x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w0 / 2);
Evas_Coord y = (win_h / 2) - (h / 2);
y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h0 / 2);
img.evas::object::position_set(x, y);
img.evas::object::size_set(w, h);
img.fill_set(0, 0, w, h);
++i;
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_blend_nearest_solid_same_scaled_cxx_start
#define NAME "(C++) Image Blend Nearest Solid Same Scaled"
#define ICON "blend.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,78 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_blend_nearest_solid_scaled_capi.h"
/* standard var */
static int done = 0;
/* private data */
static efl::eina::list<evas::image> images;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
for (int i = 0; i < OBNUM; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
eo_do(o._eo_ptr(), efl_file_set(build_path("image.png"), NULL)); // XXX
o.smooth_scale_set(0);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup()
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
int i = 0;
for (evas::image& img : images)
{
Evas_Coord w0 = 80;
Evas_Coord h0 = 80;
Evas_Coord w = 5 + ((1.0 + cos((double)(f + (i * 10)) / (7.4 * SLOW) )) * w0 * 2);
Evas_Coord h = 5 + ((1.0 + sin((double)(f + (i * 19)) / (12.6 * SLOW) )) * h0 * 2);
Evas_Coord x = (win_w / 2) - (w / 2);
x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w0 / 2);
Evas_Coord y = (win_h / 2) - (h / 2);
y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h0 / 2);
img.evas::object::position_set(x, y);
img.evas::object::size_set(w, h);
img.fill_set(0, 0, w, h);
++i;
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_blend_nearest_solid_scaled_cxx_start
#define NAME "(C++) Image Blend Nearest Solid Scaled"
#define ICON "blend.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,91 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_blend_occlude1_capi.h"
/* standard var */
static int done = 0;
/* private data */
static efl::eina::list<evas::image> images;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
srnd();
for (int i = 0; i < OBNUM; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
if (i < (OBNUM / 2))
{
eo_do(o._eo_ptr(), efl_file_set(build_path("logo.png"), NULL)); // XXX
}
else
{
Evas_Coord x, y;
x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8);
y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8);
eo_do(o._eo_ptr(), efl_file_set(build_path("image.png"), NULL)); // XXX
o.evas::object::position_set(x, y);
}
o.fill_set(0, 0, 120, 160);
o.evas::object::size_set(120, 160);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup()
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
int i = 0;
for (evas::image& img : images)
{
if (i < (OBNUM / 2))
{
Evas_Coord w = 120;
Evas_Coord h = 160;
Evas_Coord x = (win_w / 2) - (w / 2);
x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w / 2);
Evas_Coord y = (win_h / 2) - (h / 2);
y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h / 2);
img.evas::object::position_set(x, y);
}
++i;
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_blend_occlude1_cxx_start
#define NAME "(C++) Image Blend Occlude 1"
#define ICON "blend.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,94 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_blend_occlude1_few_capi.h"
#undef OBNUM
#define OBNUM 32
/* standard var */
static int done = 0;
/* private data */
static efl::eina::list<evas::image> images;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
srnd();
for (int i = 0; i < OBNUM; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
if (i < (OBNUM / 2))
{
eo_do(o._eo_ptr(), efl_file_set(PACKAGE_DATA_DIR"/data/logo.png", NULL)); // XXX
}
else
{
Evas_Coord x, y;
x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8);
y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8);
eo_do(o._eo_ptr(), efl_file_set(PACKAGE_DATA_DIR"/data/image.png", NULL)); // XXX
o.evas::object::position_set(x, y);
}
o.fill_set(0, 0, 120, 160);
o.evas::object::size_set(120, 160);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup()
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
int i = 0;
for (evas::image& img : images)
{
if (i < (OBNUM / 2))
{
Evas_Coord w = 120;
Evas_Coord h = 160;
Evas_Coord x = (win_w / 2) - (w / 2);
Evas_Coord y = (win_h / 2) - (h / 2);
x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w / 2);
y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h / 2);
img.evas::object::position_set(x, y);
}
++i;
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_blend_occlude1_few_cxx_start
#define NAME "(C++) Image Blend Occlude 1 Few"
#define ICON "blend.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,93 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_blend_occlude1_many_capi.h"
#undef OBNUM
#define OBNUM 320
/* standard var */
static int done = 0;
/* private data */
static efl::eina::list<evas::image> images;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
srnd();
for (int i = 0; i < OBNUM; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
if (i < (OBNUM / 2))
{
eo_do(o._eo_ptr(), efl_file_set(build_path("logo.png"), NULL)); // XXX
}
else
{
Evas_Coord x, y;
x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8);
y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8);
eo_do(o._eo_ptr(), efl_file_set(build_path("image.png"), NULL)); // XXX
o.evas::object::position_set(x, y);
}
o.fill_set(0, 0, 120, 160);
o.evas::object::size_set(120, 160);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup()
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
int i = 0;
for (evas::image& img : images)
{
if (i < (OBNUM / 2))
{
Evas_Coord w = 120;
Evas_Coord h = 160;
Evas_Coord x = (win_w / 2) - (w / 2);
Evas_Coord y = (win_h / 2) - (h / 2);
x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w / 2);
y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h / 2);
img.evas::object::position_set(x, y);
}
++i;
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_blend_occlude1_many_cxx_start
#define NAME "(C++) Image Blend Occlude 1 Many"
#define ICON "blend.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,94 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_blend_occlude1_very_many_capi.h"
#include "main.h"
#undef OBNUM
#define OBNUM 1600
/* standard var */
static int done = 0;
/* private data */
static efl::eina::list<evas::image> images;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
srnd();
for (int i = 0; i < OBNUM; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
if (i < (OBNUM / 2))
{
eo_do(o._eo_ptr(), efl_file_set(build_path("logo.png"), NULL)); // XXX
}
else
{
Evas_Coord x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8);
Evas_Coord y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8);
eo_do(o._eo_ptr(), efl_file_set(build_path("image.png"), NULL)); // XXX
o.evas::object::position_set(x, y);
}
o.fill_set(0, 0, 120, 160);
o.evas::object::size_set(120, 160);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup()
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
int i = 0;
for (evas::image& img : images)
{
if (i < (OBNUM / 2))
{
Evas_Coord w = 120;
Evas_Coord h = 160;
Evas_Coord x = (win_w / 2) - (w / 2);
x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w / 2);
Evas_Coord y = (win_h / 2) - (h / 2);
y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h / 2);
img.evas::object::position_set(x, y);
}
++i;
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_blend_occlude1_very_many_cxx_start
#define NAME "(C++) Image Blend Occlude 1 Very Many"
#define ICON "blend.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,92 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_blend_occlude2_capi.h"
#include "main.h"
/* standard var */
static int done = 0;
/* private data */
static efl::eina::list<evas::image> images;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
srnd();
for (int i = 0; i < OBNUM; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
if (i & 0x1)
{
eo_do(o._eo_ptr(), efl_file_set(build_path("logo.png"), NULL)); // XXX
}
else
{
Evas_Coord x, y;
x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8);
y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8);
eo_do(o._eo_ptr(), efl_file_set(build_path("image.png"), NULL)); // XXX
o.evas::object::position_set(x, y);
}
o.fill_set(0, 0, 120, 160);
o.evas::object::size_set(120, 160);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup()
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
int i = 0;
for (evas::image& img : images)
{
if (i & 0x1)
{
Evas_Coord w = 120;
Evas_Coord h = 160;
Evas_Coord x = (win_w / 2) - (w / 2);
x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w / 2);
Evas_Coord y = (win_h / 2) - (h / 2);
y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h / 2);
img.evas::object::position_set(x, y);
}
++i;
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_blend_occlude2_cxx_start
#define NAME "(C++) Image Blend Occlude 2"
#define ICON "blend.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,94 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_blend_occlude2_few_capi.h"
#include "main.h"
#undef OBNUM
#define OBNUM 32
/* standard var */
static int done = 0;
/* private data */
static efl::eina::list<evas::image> images;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
srnd();
for (int i = 0; i < OBNUM; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
if (i & 0x1)
{
eo_do(o._eo_ptr(), efl_file_set(build_path("logo.png"), NULL)); // XXX
}
else
{
Evas_Coord x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8);
Evas_Coord y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8);
eo_do(o._eo_ptr(), efl_file_set(build_path("image.png"), NULL)); // XXX
o.evas::object::position_set(x, y);
}
o.fill_set(0, 0, 120, 160);
o.evas::object::size_set(120, 160);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup()
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
int i = 0;
for (evas::image& img : images)
{
if (i & 0x1)
{
Evas_Coord w = 120;
Evas_Coord h = 160;
Evas_Coord x = (win_w / 2) - (w / 2);
x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w / 2);
Evas_Coord y = (win_h / 2) - (h / 2);
y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h / 2);
img.evas::object::position_set(x, y);
}
++i;
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_blend_occlude2_few_cxx_start
#define NAME "(C++) Image Blend Occlude 2 Few"
#define ICON "blend.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,96 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_blend_occlude2_many_capi.h"
#include "main.h"
#undef OBNUM
#define OBNUM 320
/* standard var */
static int done = 0;
/* private data */
static efl::eina::list<evas::image> images;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
srnd();
for (int i = 0; i < OBNUM; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
if (i & 0x1)
{
eo_do(o._eo_ptr(), efl_file_set(build_path("logo.png"), NULL)); // XXX
}
else
{
Evas_Coord x, y;
x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8);
y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8);
eo_do(o._eo_ptr(), efl_file_set(build_path("image.png"), NULL)); // XXX
o.evas::object::position_set(x, y);
}
o.fill_set(0, 0, 120, 160);
o.evas::object::size_set(120, 160);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup()
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
int i = 0;
for (evas::image& img : images)
{
if (i & 0x1)
{
Evas_Coord w = 120;
Evas_Coord h = 160;
Evas_Coord x = (win_w / 2) - (w / 2);
x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w / 2);
Evas_Coord y = (win_h / 2) - (h / 2);
y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h / 2);
img.evas::object::position_set(x, y);
}
++i;
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_blend_occlude2_many_cxx_start
#define NAME "(C++) Image Blend Occlude 2 Many"
#define ICON "blend.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,94 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_blend_occlude2_very_many_capi.h"
#include "main.h"
#undef OBNUM
#define OBNUM 1600
/* standard var */
static int done = 0;
/* private data */
static efl::eina::list<evas::image> images;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
srnd();
for (int i = 0; i < OBNUM; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
if (i & 0x1)
{
eo_do(o._eo_ptr(), efl_file_set(build_path("logo.png"), NULL)); // XXX
}
else
{
Evas_Coord x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8);
Evas_Coord y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8);
eo_do(o._eo_ptr(), efl_file_set(build_path("image.png"), NULL)); // XXX
o.evas::object::position_set(x, y);
}
o.fill_set(0, 0, 120, 160);
o.evas::object::size_set(120, 160);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup()
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
int i = 0;
for (evas::image& img : images)
{
if (i & 0x1)
{
Evas_Coord w = 120;
Evas_Coord h = 160;
Evas_Coord x = (win_w / 2) - (w / 2);
x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w / 2);
Evas_Coord y = (win_h / 2) - (h / 2);
y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h / 2);
img.evas::object::position_set(x, y);
}
++i;
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_blend_occlude2_very_many_cxx_start
#define NAME "(C++) Image Blend Occlude 2 Very Many"
#define ICON "blend.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,93 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_blend_occlude3_capi.h"
#include "main.h"
/* standard var */
static int done = 0;
/* private data */
static efl::eina::list<evas::image> images;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
srnd();
for (int i = 0; i < OBNUM; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
if (i > (OBNUM / 2))
{
eo_do(o._eo_ptr(), efl_file_set(build_path("logo.png"), NULL)); // XXX
}
else
{
Evas_Coord x, y;
x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8);
y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8);
eo_do(o._eo_ptr(), efl_file_set(build_path("image.png"), NULL)); // XXX
o.evas::object::position_set(x, y);
}
o.fill_set(0, 0, 120, 160);
o.evas::object::size_set(120, 160);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup()
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
int i = 0;
for (evas::image& img : images)
{
if (i > (OBNUM / 2))
{
Evas_Coord w = 120;
Evas_Coord h = 160;
Evas_Coord x = (win_w / 2) - (w / 2);
x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w / 2);
Evas_Coord y = (win_h / 2) - (h / 2);
y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h / 2);
img.evas::object::position_set(x, y);
}
++i;
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_blend_occlude3_cxx_start
#define NAME "(C++) Image Blend Occlude 3"
#define ICON "blend.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,96 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_blend_occlude3_few_capi.h"
#include "main.h"
#undef OBNUM
#define OBNUM 32
/* standard var */
static int done = 0;
/* private data */
static efl::eina::list<evas::image> images;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
srnd();
for (int i = 0; i < OBNUM; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
if (i > (OBNUM / 2))
{
eo_do(o._eo_ptr(), efl_file_set(build_path("logo.png"), NULL)); // XXX
}
else
{
Evas_Coord x, y;
x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8);
y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8);
eo_do(o._eo_ptr(), efl_file_set(build_path("image.png"), NULL)); // XXX
o.evas::object::position_set(x, y);
}
o.fill_set(0, 0, 120, 160);
o.evas::object::size_set(120, 160);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup()
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
int i = 0;
for (evas::image& img : images)
{
if (i > (OBNUM / 2))
{
Evas_Coord w = 120;
Evas_Coord h = 160;
Evas_Coord x = (win_w / 2) - (w / 2);
x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w / 2);
Evas_Coord y = (win_h / 2) - (h / 2);
y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h / 2);
img.evas::object::position_set(x, y);
}
++i;
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_blend_occlude3_few_cxx_start
#define NAME "(C++) Image Blend Occlude 3 Few"
#define ICON "blend.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,92 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_blend_occlude3_many_capi.h"
#undef OBNUM
#define OBNUM 320
/* standard var */
static int done = 0;
/* private data */
static efl::eina::list<evas::image> images;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
srnd();
for (int i = 0; i < OBNUM; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
if (i > (OBNUM / 2))
{
eo_do(o._eo_ptr(), efl_file_set(build_path("logo.png"), NULL)); // XXX
}
else
{
Evas_Coord x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8);
Evas_Coord y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8);
eo_do(o._eo_ptr(), efl_file_set(build_path("image.png"), NULL)); // XXX
o.evas::object::position_set(x, y);
}
o.fill_set(0, 0, 120, 160);
o.evas::object::size_set(120, 160);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup()
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
int i = 0;
for (evas::image& img : images)
{
if (i > (OBNUM / 2))
{
Evas_Coord w = 120;
Evas_Coord h = 160;
Evas_Coord x = (win_w / 2) - (w / 2);
x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w / 2);
Evas_Coord y = (win_h / 2) - (h / 2);
y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h / 2);
img.evas::object::position_set(x, y);
}
++i;
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_blend_occlude3_many_cxx_start
#define NAME "(C++) Image Blend Occlude 3 Many"
#define ICON "blend.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,93 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_blend_occlude3_very_many_capi.h"
#undef OBNUM
#define OBNUM 1600
/* standard var */
static int done = 0;
/* private data */
static efl::eina::list<evas::image> images;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
srnd();
for (int i = 0; i < OBNUM; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
if (i > (OBNUM / 2))
{
eo_do(o._eo_ptr(), efl_file_set(build_path("logo.png"), NULL)); // XXX
}
else
{
Evas_Coord x = (win_w / 4) + (((rnd() & 0xff) * ((win_w / 2) - 120)) >> 8);
Evas_Coord y = (win_h / 4) + (((rnd() & 0xff) * ((win_h / 2) - 120)) >> 8);
eo_do(o._eo_ptr(), efl_file_set(build_path("image.png"), NULL)); // XXX
o.evas::object::position_set(x, y);
}
o.fill_set(0, 0, 120, 160);
o.evas::object::size_set(120, 160);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup()
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
int i = 0;
for (evas::image& img : images)
{
if (i > (OBNUM / 2))
{
Evas_Coord w = 120;
Evas_Coord h = 160;
Evas_Coord x = (win_w / 2) - (w / 2);
x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w / 2);
Evas_Coord y = (win_h / 2) - (h / 2);
y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h / 2);
img.evas::object::position_set(x, y);
}
++i;
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_blend_occlude3_very_many_cxx_start
#define NAME "(C++) Image Blend Occlude 3 Very Many"
#define ICON "blend.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,79 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_blend_smooth_same_scaled_capi.h"
/* standard var */
static int done = 0;
/* private data */
static efl::eina::list<evas::image> images;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
for (int i = 0; i < OBNUM; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
eo_do(o._eo_ptr(), efl_file_set(build_path("logo.png"), NULL)); // XXX
o.smooth_scale_set(1);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup()
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
int i = 0;
for (evas::image& img : images)
{
Evas_Coord w0 = 80;
Evas_Coord h0 = 80;
Evas_Coord w = 40 + ((i % 3) * (w0 / 2));
Evas_Coord h = 40 + ((i % 3) * (h0 / 2));
Evas_Coord x = (win_w / 2) - (w / 2);
x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w0 / 2);
Evas_Coord y = (win_h / 2) - (h / 2);
y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h0 / 2);
img.evas::object::position_set(x, y);
img.evas::object::size_set(w, h);
img.fill_set(0, 0, w, h);
++i;
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_blend_smooth_same_scaled_cxx_start
#define NAME "(C++) Image Blend Smooth Same Scaled"
#define ICON "blend.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,78 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_blend_smooth_scaled_capi.h"
/* standard var */
static int done = 0;
/* private data */
static efl::eina::list<evas::image> images;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
for (int i = 0; i < OBNUM; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
eo_do(o._eo_ptr(), efl_file_set(build_path("logo.png"), NULL)); // XXX
o.smooth_scale_set(1);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup()
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
int i = 0;
for (evas::image& img : images)
{
Evas_Coord w0 = 80;
Evas_Coord h0 = 80;
Evas_Coord w = 5 + ((1.0 + cos((double)(f + (i * 10)) / (7.4 * SLOW) )) * w0 * 2);
Evas_Coord h = 5 + ((1.0 + sin((double)(f + (i * 19)) / (12.6 * SLOW) )) * h0 * 2);
Evas_Coord x = (win_w / 2) - (w / 2);
x += ::sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w0 / 2);
Evas_Coord y = (win_h / 2) - (h / 2);
y += ::cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h0 / 2);
img.evas::object::position_set(x, y);
img.evas::object::size_set(w, h);
img.fill_set(0, 0, w, h);
++i;
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_blend_smooth_scaled_cxx_start
#define NAME "(C++) Image Blend Smooth Scaled"
#define ICON "blend.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,78 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_blend_smooth_solid_same_scaled_capi.h"
/* standard var */
static int done = 0;
/* private data */
static efl::eina::list<evas::image> images;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
for (int i = 0; i < OBNUM; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
eo_do(o._eo_ptr(), efl_file_set(build_path("image.png"), NULL)); // XXX
o.smooth_scale_set(1);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup()
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
int i = 0;
for (evas::image& img : images)
{
Evas_Coord w0 = 80;
Evas_Coord h0 = 80;
Evas_Coord w = 40 + ((i % 3) * (w0 / 2));
Evas_Coord h = 40 + ((i % 3) * (h0 / 2));
Evas_Coord x = (win_w / 2) - (w / 2);
x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w0 / 2);
Evas_Coord y = (win_h / 2) - (h / 2);
y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h0 / 2);
img.evas::object::position_set(x, y);
img.evas::object::size_set(w, h);
img.fill_set(0, 0, w, h);
++i;
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_blend_smooth_solid_same_scaled_cxx_start
#define NAME "(C++) Image Blend Smooth Solid Same Scaled"
#define ICON "blend.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,78 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_blend_smooth_solid_scaled_capi.h"
/* standard var */
static int done = 0;
/* private data */
static efl::eina::list<evas::image> images;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
for (int i = 0; i < OBNUM; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
eo_do(o._eo_ptr(), efl_file_set(build_path("image.png"), NULL)); // XXX
o.smooth_scale_set(1);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup()
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
int i = 0;
for (evas::image& img : images)
{
Evas_Coord w0 = 80;
Evas_Coord h0 = 80;
Evas_Coord w = 5 + ((1.0 + cos((double)(f + (i * 10)) / (7.4 * SLOW) )) * w0 * 2);
Evas_Coord h = 5 + ((1.0 + sin((double)(f + (i * 19)) / (12.6 * SLOW) )) * h0 * 2);
Evas_Coord x = (win_w / 2) - (w / 2);
x += ::sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w0 / 2);
Evas_Coord y = (win_h / 2) - (h / 2);
y += ::cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h0 / 2);
img.evas::object::position_set(x, y);
img.evas::object::size_set(w, h);
img.fill_set(0, 0, w, h);
++i;
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_blend_smooth_solid_scaled_cxx_start
#define NAME "(C++) Image Blend Smooth Solid Scaled"
#define ICON "blend.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,79 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_blend_solid_border_capi.h"
static efl::eina::list<evas::image> images;
/* standard var */
static int done = 0;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
for (int i = 0; i < OBNUM; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
eo_do(o._eo_ptr(), efl_file_set(::build_path("frame.png"), NULL)); // XXX
o.border_set(8, 8, 8, 8);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup(void)
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
int i = 0;
Evas_Coord x, y, w, h, w0, h0;
for (auto it = images.begin(), end = images.end(); it != end; it++, i++)
{
w0 = 80;
h0 = 80;
w = 5 + ((1.0 + cos((double)(f + (i * 10)) / (7.4 * SLOW))) * w0 * 2);
h = 5 + ((1.0 + sin((double)(f + (i * 19)) / (12.6 * SLOW))) * h0 * 2);
x = (win_w / 2) - (w / 2);
x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w0 / 2);
y = (win_h / 2) - (h / 2);
y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h0 / 2);
(*it).position_set(x, y);
(*it).evas::object::size_set(w, h);
(*it).fill_set(0, 0, w, h);
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,34 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_blend_solid_border_cxx_start
#define NAME "(C++) Image Blend Solid Border (C++)"
#define ICON "blend.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,78 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_blend_solid_fade_pow2_unscaled_capi.h"
static efl::eina::list<evas::image> images;
/* standard var */
static int done = 0;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
for (int i = 0; i < OBNUM; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
eo_do(o._eo_ptr(), efl_file_set(::build_path("image.png"), NULL)); // XXX
o.fill_set(0, 0, 120, 160);
o.evas::object::size_set(120, 160);
int a = 256 - (1 << ((rnd() % 8) + 1));
if (a < 128) a = 128;
o.color_set(a, a, a, a);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup(void)
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
int i = 0;
Evas_Coord x, y, w, h;
for (auto it = images.begin(), end = images.end(); it != end; it++, i++)
{
w = 120;
h = 160;
x = (win_w / 2) - (w / 2);
x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w / 2);
y = (win_h / 2) - (h / 2);
y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h / 2);
(*it).position_set(x, y);
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,33 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_blend_solid_fade_pow2_unscaled_cxx_start
#define NAME "(C++) Image Blend Solid Fade Power 2 Unscaled (C++)"
#define ICON "blend.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,78 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_blend_solid_fade_unscaled_capi.h"
static efl::eina::list<evas::image> images;
/* standard var */
static int done = 0;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
for (int i = 0; i < OBNUM; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
eo_do(o._eo_ptr(), efl_file_set(::build_path("image.png"), NULL)); // XXX
o.fill_set(0, 0, 120, 160);
o.evas::object::size_set(120, 160);
int a = rnd()&0xff;
o.color_set(a, a, a, a);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup(void)
{
for (evas::image& img : images)
img.visibility_set(false); // XXX
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
int i = 0;
Evas_Coord x, y, w, h;
for (auto it = images.begin(), end = images.end(); it != end; it++, i++)
{
w = 120;
h = 160;
x = (win_w / 2) - (w / 2);
x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w / 2);
y = (win_h / 2) - (h / 2);
y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h / 2);
(*it).position_set(x, y);
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,32 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_blend_solid_fade_unscaled_cxx_start
#define NAME "(C++) Image Blend Solid Fade Unscaled (C++)"
#define ICON "blend.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,79 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_blend_solid_middle_border_capi.h"
/* standard var */
static int done = 0;
/* private data */
static efl::eina::list<evas::image> images;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
for (int i = 0; i < OBNUM; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
eo_do(o._eo_ptr(), efl_file_set(build_path("bar.png"), NULL)); // XXX
o.border_set(6, 6, 6, 6);
o.border_center_fill_set(EVAS_BORDER_FILL_SOLID);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup()
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
int i = 0;
for (evas::image& img : images)
{
Evas_Coord w0 = 80;
Evas_Coord h0 = 80;
Evas_Coord w = 5 + ((1.0 + cos((double)(f + (i * 10)) / (7.4 * SLOW) )) * w0 * 2);
Evas_Coord h = 5 + ((1.0 + sin((double)(f + (i * 19)) / (12.6 * SLOW) )) * h0 * 2);
Evas_Coord x = (win_w / 2) - (w / 2);
x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w0 / 2);
Evas_Coord y = (win_h / 2) - (h / 2);
y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h0 / 2);
img.evas::object::position_set(x, y);
img.evas::object::size_set(w, h);
img.fill_set(0, 0, w, h);
++i;
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_blend_solid_middle_border_cxx_start
#define NAME "(C++) Image Blend Solid Middle Border"
#define ICON "blend.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,77 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_blend_solid_middle_unscaled_capi.h"
/* standard var */
static int done = 0;
/* private data */
static efl::eina::list<evas::image> images;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
for (int i = 0; i < OBNUM; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
eo_do(o._eo_ptr(), efl_file_set(build_path("logo.png"), NULL)); // XXX
o.fill_set(0, 0, 120, 160);
o.evas::object::size_set(120, 160);
o.border_set(43, 48, 48, 83);
o.border_center_fill_set(EVAS_BORDER_FILL_SOLID);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup()
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
int i = 0;
for (evas::image& img : images)
{
Evas_Coord w = 120;
Evas_Coord h = 160;
Evas_Coord x = (win_w / 2) - (w / 2);
x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w / 2);
Evas_Coord y = (win_h / 2) - (h / 2);
y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h / 2);
img.evas::object::position_set(x, y);
++i;
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_blend_solid_middle_unscaled_cxx_start
#define NAME "(C++) Image Blend Solid Middle Unscaled"
#define ICON "blend.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,76 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_blend_solid_unscaled_capi.h"
static efl::eina::list<evas::image> images;
/* standard var */
static int done = 0;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
for (int i = 0; i < OBNUM; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
eo_do(o._eo_ptr(), efl_file_set(::build_path("image.png"), NULL)); // XXX
o.fill_set(0, 0, 120, 160);
o.evas::object::size_set(120, 160);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup(void)
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
int i = 0;
Evas_Coord x, y, w, h;
for (auto it = images.begin(), end = images.end(); it != end; it++, i++)
{
w = 120;
h = 160;
x = (win_w / 2) - (w / 2);
x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w / 2);
y = (win_h / 2) - (h / 2);
y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h / 2);
(*it).position_set(x, y);
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,32 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_blend_solid_unscaled_cxx_start
#define NAME "(C++) Image Blend Solid Unscaled (C++)"
#define ICON "blend.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,75 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_blend_unscaled_capi.h"
/* standard var */
static int done = 0;
/* private data */
static efl::eina::list<evas::image> images;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
for (int i = 0; i < OBNUM; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
eo_do(o._eo_ptr(), efl_file_set(build_path("logo.png"), NULL)); // XXX
o.fill_set(0, 0, 120, 160);
o.evas::object::size_set(120, 160);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup()
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
int i = 0;
for (evas::image& img : images)
{
Evas_Coord w = 120;
Evas_Coord h = 160;
Evas_Coord x = (win_w / 2) - (w / 2);
x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (w / 2);
Evas_Coord y = (win_h / 2) - (h / 2);
y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (h / 2);
img.evas::object::position_set(x, y);
++i;
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_blend_unscaled_cxx_start
#define NAME "(C++) Image Blend Unscaled"
#define ICON "blend.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,77 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_crossfade_capi.h"
/* standard var */
static int done = 0;
/* private data */
static efl::eina::list<evas::image> images;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
evas::image o1(efl::eo::parent = canvas);
images.push_back(o1);
eo_do(o1._eo_ptr(), efl_file_set(build_path("im1.png"), NULL)); // XXX
o1.fill_set(0, 0, 720, 420);
o1.evas::object::size_set(720, 420);
o1.visibility_set(true);
evas::image o2(efl::eo::parent = canvas);
images.push_back(o2);
eo_do(o2._eo_ptr(), efl_file_set(build_path("im2.png"), NULL)); // XXX
o2.fill_set(0, 0, 720, 420);
o2.evas::object::size_set(720, 420);
o2.visibility_set(true);
done = 0;
}
/* cleanup */
static void _cleanup(void)
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
if (!images.empty())
{
int a = f & 0x1f;
a = ((a << 3) | (a >> 2)) & 0xff;
evas::image img = images.back();
img.evas::object::color_set(a, a, a, a);
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_crossfade_cxx_start
#define NAME "(C++) Image Crossfade"
#define ICON "blend.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,94 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_data_argb_capi.h"
/* standard var */
static int done = 0;
/* private data */
static efl::eina::list<evas::image> images;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
for (int i = 0; i < 1; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
o.content_hint_set(EVAS_IMAGE_CONTENT_HINT_DYNAMIC);
o.colorspace_set(EVAS_COLORSPACE_ARGB8888);
o.size_set(640, 480);
o.alpha_set(0);
o.fill_set(0, 0, 640, 480);
o.evas::object::size_set(640, 480);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup(void)
{
for (evas::image& img : images)
img.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
int st;
for (evas::image& img : images)
{
unsigned int *data, *p;
Evas_Coord w = 640;
Evas_Coord h = 480;
Evas_Coord x = (win_w / 2) - (w / 2);
Evas_Coord y = (win_h / 2) - (h / 2);
img.evas::object::position_set(x, y);
img.evas::object::size_set(w, h);
img.fill_set(0, 0, w, h);
data = static_cast<unsigned int*>(img.data_get(1));
st = img.stride_get();
st = st >> 2;
p = data;
for (y = 0; y < h; y++)
{
for (x = 0; x < w; x++)
{
*p = ((((x * y) + f) << 8) ^ (x - y - f)) | 0xff000000;
p++;
}
p += (st - w);
}
img.data_set(data);
img.data_update_add( 0, 0, w, h);
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
_setup();
ui_func_set(_key, _loop);
}

View File

@ -0,0 +1,103 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_data_argb_alpha_capi.h"
/* standard var */
static int done = 0;
/* private data */
static efl::eina::list<evas::image> images;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
for (int i = 0; i < 1; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
o.content_hint_set(EVAS_IMAGE_CONTENT_HINT_DYNAMIC);
o.colorspace_set(EVAS_COLORSPACE_ARGB8888);
o.size_set(640, 480);
o.alpha_set(1);
o.fill_set(0, 0, 640, 480);
o.evas::object::size_set(640, 480);
o.visibility_set(true);
}
done = 0;
}
/* cleanup */
static void _cleanup(void)
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
}
/* loop - do things */
static void _loop(double t, int f)
{
for (evas::image& img : images)
{
int a, r, g, b;
Evas_Coord w = 640;
Evas_Coord h = 480;
Evas_Coord x = (win_w / 2) - (w / 2);
Evas_Coord y = (win_h / 2) - (h / 2);
img.evas::object::position_set(x, y);
img.evas::object::size_set(w, h);
img.fill_set(0, 0, w, h);
unsigned int *data = reinterpret_cast<unsigned int*>(img.data_get(1));
int st = img.stride_get() >> 2;
unsigned int *p = data;
for (y = 0; y < h; y++)
{
for (x = 0; x < w; x++)
{
r = (x * y / 7) + f;
g = (x / 2);
b = (y / 2);
a = (x + y);
r &= 0xff;
g &= 0xff;
b &= 0xff;
a &= 0xff;
r = (a * r) / 255;
g = (a * g) / 255;
b = (a * b) / 255;
*p = (a << 24) | (r << 16) | (g << 8) | b;
p++;
}
p += (st - w);
}
img.data_set(data);
img.data_update_add( 0, 0, w, h);
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
_setup();
ui_func_set(_key, _loop);
}

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_data_argb_alpha_cxx_start
#define NAME "(C++) Image Data ARGB Alpha"
#define ICON "data.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_data_argb_cxx_start
#define NAME "(C++) Image Data ARGB"
#define ICON "data.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,112 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_data_ycbcr601pl_capi.h"
/* standard var */
static int done = 0;
/* private data */
static efl::eina::list<evas::image> images;
static unsigned char *yp = NULL, *up = NULL, *vp = NULL;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
for (int i = 0; i < 1; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
o.content_hint_set(EVAS_IMAGE_CONTENT_HINT_DYNAMIC);
o.colorspace_set(EVAS_COLORSPACE_YCBCR422P601_PL);
o.size_set(640, 480);
o.alpha_set(0);
o.fill_set(0, 0, 640, 480);
o.evas::object::size_set(640, 480);
o.visibility_set(true);
yp = new unsigned char[640 * 480];
up = new unsigned char[320 * 240];
vp = new unsigned char[320 * 240];
FILE *f = fopen(build_path("tp.yuv"), "rb");
if (f)
{
fread(yp, 640 * 480, 1, f);
fread(up, 320 * 240, 1, f);
fread(vp, 320 * 240, 1, f);
fclose(f);
}
unsigned char **data = static_cast<unsigned char**>(o.data_get(1));
unsigned char **lp = data;
for (int y = 0; y < 480; y++)
{
*lp = yp + (y * 640);
lp++;
}
for (int y = 0; y < 240; y++)
{
*lp = up + (y * 320);
lp++;
}
for (int y = 0; y < 240; y++)
{
*lp = vp + (y * 320);
lp++;
}
o.data_set(data);
}
done = 0;
}
/* cleanup */
static void _cleanup(void)
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
delete yp;
delete up;
delete vp;
}
/* loop - do things */
static void _loop(double t, int f)
{
for (evas::image& img : images)
{
Evas_Coord w = 640;
Evas_Coord h = 480;
Evas_Coord x = (win_w / 2) - (w / 2);
Evas_Coord y = (win_h / 2) - (h / 2);
img.evas::object::position_set(x, y);
img.evas::object::size_set(w, h);
img.fill_set(0, 0, w, h);
img.data_update_add( 0, 0, 640, 480);
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
_setup();
ui_func_set(_key, _loop);
}

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_data_ycbcr601pl_cxx_start
#define NAME "(C++) Image Data YCbCr 601 Pointer List"
#define ICON "data.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,116 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_data_ycbcr601pl_map_nearest_solid_rotate_capi.h"
/* standard var */
static int done = 0;
/* private data */
static efl::eina::list<evas::image> images;
static unsigned char *yp = NULL, *up = NULL, *vp = NULL;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
for (int i = 0; i < 1; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
o.content_hint_set(EVAS_IMAGE_CONTENT_HINT_DYNAMIC);
o.colorspace_set(EVAS_COLORSPACE_YCBCR422P601_PL);
o.size_set(640, 480);
o.alpha_set(0);
o.fill_set(0, 0, 640, 480);
o.evas::object::size_set(640, 480);
o.smooth_scale_set(0);
o.visibility_set(true);
yp = new unsigned char[640 * 480];
up = new unsigned char[320 * 240];
vp = new unsigned char[320 * 240];
FILE *f = fopen(build_path("tp.yuv"), "rb");
if (f)
{
fread(yp, 640 * 480, 1, f);
fread(up, 320 * 240, 1, f);
fread(vp, 320 * 240, 1, f);
fclose(f);
}
unsigned char **data = static_cast<unsigned char**>(o.data_get(1));
unsigned char **lp = data;
for (int y = 0; y < 480; y++)
{
*lp = yp + (y * 640);
lp++;
}
for (int y = 0; y < 240; y++)
{
*lp = up + (y * 320);
lp++;
}
for (int y = 0; y < 240; y++)
{
*lp = vp + (y * 320);
lp++;
}
o.data_set(data);
}
done = 0;
}
/* cleanup */
static void _cleanup(void)
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
delete yp;
delete up;
delete vp;
}
/* loop - do things */
static void _loop(double t, int f)
{
static Evas_Map *m = NULL;
if (!m) m = evas_map_new(4);
evas_map_smooth_set(m, 0);
for (evas::image& img : images)
{
Evas_Coord w = 640;
Evas_Coord h = 480;
Evas_Coord x = (win_w / 2) - (w / 2);
Evas_Coord y = (win_h / 2) - (h / 2);
evas_map_util_points_populate_from_geometry(m, x, y, w, h, 0);
evas_map_util_rotate(m, f, x + (w / 2), y + (h / 2));
img.map_enable_set(1);
img.map_set(m);
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_data_ycbcr601pl_map_nearest_solid_rotate_cxx_start
#define NAME "(C++) Image Data YCbCr 601 Pointer List Map Nearest Solid Rotate"
#define ICON "data.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,116 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_data_ycbcr601pl_map_solid_rotate_capi.h"
/* standard var */
static int done = 0;
/* private data */
static efl::eina::list<evas::image> images;
static unsigned char *yp = NULL, *up = NULL, *vp = NULL;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
for (int i = 0; i < 1; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
o.content_hint_set(EVAS_IMAGE_CONTENT_HINT_DYNAMIC);
o.colorspace_set(EVAS_COLORSPACE_YCBCR422P601_PL);
o.size_set(640, 480);
o.alpha_set(0);
o.fill_set(0, 0, 640, 480);
o.evas::object::size_set(640, 480);
o.evas::object::visibility_set(true);
yp = new unsigned char[640 * 480];
up = new unsigned char[320 * 240];
vp = new unsigned char[320 * 240];
FILE *f = fopen(build_path("tp.yuv"), "rb");
if (f)
{
fread(yp, 640 * 480, 1, f);
fread(up, 320 * 240, 1, f);
fread(vp, 320 * 240, 1, f);
fclose(f);
}
unsigned char **data = static_cast<unsigned char**>(o.data_get(1));
unsigned char **lp = data;
for (int y = 0; y < 480; y++)
{
*lp = yp + (y * 640);
lp++;
}
for (int y = 0; y < 240; y++)
{
*lp = up + (y * 320);
lp++;
}
for (int y = 0; y < 240; y++)
{
*lp = vp + (y * 320);
lp++;
}
o.data_set(data);
}
done = 0;
}
/* cleanup */
static void _cleanup(void)
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
delete yp;
delete up;
delete vp;
}
/* loop - do things */
static void _loop(double t, int f)
{
static Evas_Map *m = NULL;
if (!m) m = evas_map_new(4);
for (evas::image& img : images)
{
Evas_Coord w = 640;
Evas_Coord h = 480;
Evas_Coord x = (win_w / 2) - (w / 2);
Evas_Coord y = (win_h / 2) - (h / 2);
evas_map_util_points_populate_from_geometry(m, x, y, w, h, 0);
evas_map_util_rotate(m, f, x + (w / 2), y + (h / 2));
img.map_enable_set(1);
img.map_set(m);
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
_setup();
ui_func_set(_key, _loop);
}

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_data_ycbcr601pl_map_solid_rotate_cxx_start
#define NAME "(C++) Image Data YCbCr 601 Pointer List Map Solid Rotate"
#define ICON "data.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,145 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_data_ycbcr601pl_wide_stride_capi.h"
/* standard var */
static int done = 0;
/* private data */
static efl::eina::list<evas::image> images;
static unsigned char *yp = NULL, *up = NULL, *vp = NULL;
/* setup */
static void _setup(void)
{
evas::canvas canvas(::eo_ref(G_evas));
for (int i = 0; i < 1; i++)
{
evas::image o(efl::eo::parent = canvas);
images.push_back(o);
o.content_hint_set(EVAS_IMAGE_CONTENT_HINT_DYNAMIC);
o.colorspace_set(EVAS_COLORSPACE_YCBCR422P601_PL);
o.size_set(320, 480);
o.alpha_set(0);
o.fill_set(0, 0, 640, 480);
o.evas::object::size_set(640, 480);
o.evas::object::visibility_set(true);
yp = new unsigned char[640 * 480];
up = new unsigned char[320 * 240];
vp = new unsigned char[320 * 240];
FILE *f = fopen(build_path("tp.yuv"), "rb");
if (f)
{
fread(yp, 640 * 480, 1, f);
fread(up, 320 * 240, 1, f);
fread(vp, 320 * 240, 1, f);
fclose(f);
}
unsigned char **data = static_cast<unsigned char**>(o.data_get(1));
if (data)
{
unsigned char **lp = data;
for (int y = 0; y < 480; y++)
{
*lp = yp + (y * 640);
lp++;
}
for (int y = 0; y < 240; y++)
{
*lp = up + (y * 320);
lp++;
}
for (int y = 0; y < 240; y++)
{
*lp = vp + (y * 320);
lp++;
}
o.data_set(data);
o.data_update_add( 0, 0, 320, 480);
}
}
done = 0;
}
/* cleanup */
static void _cleanup(void)
{
for (evas::image& i : images)
i.parent_set(efl::eo::base(nullptr));
images.clear();
delete yp;
delete up;
delete vp;
}
/* loop - do things */
static void _loop(double t, int f)
{
for (evas::image& img : images)
{
Evas_Coord w = 640;
Evas_Coord h = 480;
Evas_Coord x = (win_w / 2) - (w / 2);
Evas_Coord y = (win_h / 2) - (h / 2);
img.evas::object::position_set(x, y);
img.evas::object::size_set(w, h);
img.fill_set(0, 0, w, h);
w = 320 - 16 + f;
if (w < 1) w = 1;
else if (w > 640) w = 640;
w &= ~0x1;
img.size_set(w, 480);
unsigned char **data = static_cast<unsigned char**>(img.data_get(1));
if (data)
{
unsigned char **lp = data;
for (int y = 0; y < 480; y++)
{
*lp = yp + (y * 640);
lp++;
}
for (int y = 0; y < 240; y++)
{
*lp = up + (y * 320);
lp++;
}
for (int y = 0; y < 240; y++)
{
*lp = vp + (y * 320);
lp++;
}
img.data_set(data);
img.data_update_add(0, 0, w, 480);
}
}
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
ui_func_set(_key, _loop);
_setup();
}

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_data_ycbcr601pl_wide_stride_cxx_start
#define NAME "(C++) Image Data YCbCr 601 Pointer List Wide Stride"
#define ICON "data.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,234 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_map_3d_1_capi.h"
typedef struct _Point
{
Evas_Coord x, y, z, u, v;
} Point;
typedef struct _Side
{
evas::image *o;
Point pt[4];
} Side;
typedef struct _Cube
{
Side side[6];
} Cube;
/* standard var */
static int done = 0;
/* private data */
static Cube *cubes[5];
#define POINT(n, p, xx, yy, zz, uu, vv) \
c->side[n].pt[p].x = xx; \
c->side[n].pt[p].y = yy; \
c->side[n].pt[p].z = zz; \
c->side[n].pt[p].u = uu; \
c->side[n].pt[p].v = vv
static Cube *
_cube_new(Evas_Coord w, Evas_Coord h, Evas_Coord d)
{
evas::canvas canvas(::eo_ref(G_evas));
w -= (w / 2);
h -= (h / 2);
d -= (d / 2);
Cube *c = new Cube {};
for (int i = 0; i < 6; i++)
{
char buf[256];
c->side[i].o = new evas::image(efl::eo::parent = canvas);
snprintf(buf, sizeof(buf), "cube%i.png", i + 1);
eo_do(c->side[i].o->_eo_ptr(), efl_file_set(build_path(buf), NULL)); // XXX
c->side[i].o->fill_set(0, 0, 256, 256);
c->side[i].o->evas::object::size_set(256, 256);
c->side[i].o->smooth_scale_set(0);
c->side[i].o->visibility_set(true);
}
POINT(0, 0, -w, -h, -d, 0, 0);
POINT(0, 1, w, -h, -d, 256, 0);
POINT(0, 2, w, h, -d, 256, 256);
POINT(0, 3, -w, h, -d, 0, 256);
POINT(1, 0, w, -h, -d, 0, 0);
POINT(1, 1, w, -h, d, 256, 0);
POINT(1, 2, w, h, d, 256, 256);
POINT(1, 3, w, h, -d, 0, 256);
POINT(2, 0, w, -h, d, 0, 0);
POINT(2, 1, -w, -h, d, 256, 0);
POINT(2, 2, -w, h, d, 256, 256);
POINT(2, 3, w, h, d, 0, 256);
POINT(3, 0, -w, -h, d, 0, 0);
POINT(3, 1, -w, -h, -d, 256, 0);
POINT(3, 2, -w, h, -d, 256, 256);
POINT(3, 3, -w, h, d, 0, 256);
POINT(4, 0, -w, -h, d, 0, 0);
POINT(4, 1, w, -h, d, 256, 0);
POINT(4, 2, w, -h, -d, 256, 256);
POINT(4, 3, -w, -h, -d, 0, 256);
POINT(5, 0, -w, h, -d, 0, 0);
POINT(5, 1, w, h, -d, 256, 0);
POINT(5, 2, w, h, d, 256, 256);
POINT(5, 3, -w, h, d, 0, 256);
return c;
}
static void
_cube_pos(Cube *c,
Evas_Coord x, Evas_Coord y, Evas_Coord z,
double dx, double dy, double dz)
{
static Evas_Map *m = NULL;
int i, j, order[6], sorted;
Evas_Coord mz[6];
if (!m) m = ::evas_map_new(4);
::evas_map_smooth_set(m, 0);
for (i = 0; i < 6; i++)
{
Evas_Coord tz[4];
for (j = 0; j < 4; j++)
{
::evas_map_point_coord_set(m, j,
c->side[i].pt[j].x + x,
c->side[i].pt[j].y + y,
c->side[i].pt[j].z + z);
::evas_map_point_image_uv_set(m, j,
c->side[i].pt[j].u,
c->side[i].pt[j].v);
::evas_map_point_color_set(m, j, 255, 255, 255, 255);
}
::evas_map_util_3d_rotate(m, dx, dy, dz, x, y, z);
::evas_map_util_3d_lighting(m, -1000, -1000, -1000,
255, 255, 255,
20, 20, 20);
::evas_map_util_3d_perspective(m, (win_w / 2), (win_h / 2), 0, 512);
if (evas_map_util_clockwise_get(m))
{
c->side[i].o->map_enable_set(1);
c->side[i].o->map_set(m);
c->side[i].o->visibility_set(true);
}
else
{
c->side[i].o->visibility_set(false);
}
order[i] = i;
for (j = 0; j < 4; j++)
::evas_map_point_coord_get(m, j, NULL, NULL, &(tz[j]));
mz[i] = (tz[0] + tz[1] + tz[2] + tz[3]) / 4;
}
sorted = 0;
do
{
sorted = 1;
for (i = 0; i < 5; i++)
{
if (mz[order[i]] > mz[order[i + 1]])
{
j = order[i];
order[i] = order[i + 1];
order[i + 1] = j;
sorted = 0;
}
}
}
while (!sorted);
c->side[order[0]].o->evas::object::raise();
for (i = 1; i < 6; i++)
c->side[order[i]].o->evas::object::stack_below(*c->side[order[i - 1]].o);
}
static void
_cube_free(Cube *c)
{
for (int i = 0; i < 6; i++)
{
c->side[i].o->visibility_set(false); // XXX
c->side[i].o->parent_set(efl::eo::base(nullptr));
delete c->side[i].o;
}
delete c;
}
/* setup */
static void _setup(void)
{
cubes[0] = _cube_new(128, 128, 256);
cubes[1] = _cube_new(256, 128, 128);
cubes[2] = _cube_new(256, 256, 128);
cubes[3] = _cube_new(128, 256, 128);
cubes[4] = _cube_new(256, 256, 256);
done = 0;
}
/* cleanup */
static void _cleanup(void)
{
_cube_free(cubes[0]);
_cube_free(cubes[1]);
_cube_free(cubes[2]);
_cube_free(cubes[3]);
_cube_free(cubes[4]);
}
/* loop - do things */
static void _loop(double t, int f)
{
_cube_pos(cubes[0],
(win_w / 2) - 640, (win_h / 2) - 256, 512,
f / 2.0, f, f / 3.0);
_cube_pos(cubes[1],
(win_w / 2) + 512, (win_h / 2) - 128, 384,
f / 3.0, f / 2.0, f / 4.0);
_cube_pos(cubes[2],
(win_w / 2) - 384, (win_h / 2) + 128, 256,
f / 2.0, f / 3.0, f);
_cube_pos(cubes[3],
(win_w / 2) + 256, (win_h / 2) + 64, 128,
f, f / 5.0, f / 2.0);
_cube_pos(cubes[4],
(win_w / 2), (win_h / 2), 0,
f / 4.0, f / 3.0, f / 5.0);
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
_setup();
ui_func_set(_key, _loop);
}

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_map_3d_1_cxx_start
#define NAME "(C++) Image Map 3D 1"
#define ICON "3d.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,232 @@
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "Eo.h"
#include "Evas.h"
#include "Eo.hh"
#include "Eina.hh"
#include "Evas.hh"
#include "main.h"
#define EXPEDITE_CXX_TEST_IMPL
#include "image_map_3d_2_capi.h"
typedef struct _Point
{
Evas_Coord x, y, z, u, v;
} Point;
typedef struct _Side
{
evas::image *o;
Point pt[4];
} Side;
typedef struct _Cube
{
Side side[6];
} Cube;
/* standard var */
static int done = 0;
/* private data */
static Cube *cubes[5];
#define POINT(n, p, xx, yy, zz, uu, vv) \
c->side[n].pt[p].x = xx; \
c->side[n].pt[p].y = yy; \
c->side[n].pt[p].z = zz; \
c->side[n].pt[p].u = uu; \
c->side[n].pt[p].v = vv
static Cube *
_cube_new(Evas_Coord w, Evas_Coord h, Evas_Coord d)
{
evas::canvas canvas(::eo_ref(G_evas));
w -= (w / 2);
h -= (h / 2);
d -= (d / 2);
Cube *c = new Cube {};
for (int i = 0; i < 6; i++)
{
char buf[256];
c->side[i].o = new evas::image(efl::eo::parent = canvas);
snprintf(buf, sizeof(buf), "cube%i.png", i + 1);
eo_do(c->side[i].o->_eo_ptr(), efl_file_set(build_path(buf), NULL)); // XXX
c->side[i].o->fill_set(0, 0, 256, 256);
c->side[i].o->evas::object::size_set(256, 256);
c->side[i].o->evas::object::visibility_set(true);
}
POINT(0, 0, -w, -h, -d, 0, 0);
POINT(0, 1, w, -h, -d, 256, 0);
POINT(0, 2, w, h, -d, 256, 256);
POINT(0, 3, -w, h, -d, 0, 256);
POINT(1, 0, w, -h, -d, 0, 0);
POINT(1, 1, w, -h, d, 256, 0);
POINT(1, 2, w, h, d, 256, 256);
POINT(1, 3, w, h, -d, 0, 256);
POINT(2, 0, w, -h, d, 0, 0);
POINT(2, 1, -w, -h, d, 256, 0);
POINT(2, 2, -w, h, d, 256, 256);
POINT(2, 3, w, h, d, 0, 256);
POINT(3, 0, -w, -h, d, 0, 0);
POINT(3, 1, -w, -h, -d, 256, 0);
POINT(3, 2, -w, h, -d, 256, 256);
POINT(3, 3, -w, h, d, 0, 256);
POINT(4, 0, -w, -h, d, 0, 0);
POINT(4, 1, w, -h, d, 256, 0);
POINT(4, 2, w, -h, -d, 256, 256);
POINT(4, 3, -w, -h, -d, 0, 256);
POINT(5, 0, -w, h, -d, 0, 0);
POINT(5, 1, w, h, -d, 256, 0);
POINT(5, 2, w, h, d, 256, 256);
POINT(5, 3, -w, h, d, 0, 256);
return c;
}
static void
_cube_pos(Cube *c,
Evas_Coord x, Evas_Coord y, Evas_Coord z,
double dx, double dy, double dz)
{
static Evas_Map *m = NULL;
int i, j, order[6], sorted;
Evas_Coord mz[6];
if (!m) m = evas_map_new(4);
for (i = 0; i < 6; i++)
{
Evas_Coord tz[4];
for (j = 0; j < 4; j++)
{
::evas_map_point_coord_set(m, j,
c->side[i].pt[j].x + x,
c->side[i].pt[j].y + y,
c->side[i].pt[j].z + z);
::evas_map_point_image_uv_set(m, j,
c->side[i].pt[j].u,
c->side[i].pt[j].v);
::evas_map_point_color_set(m, j, 255, 255, 255, 255);
}
::evas_map_util_3d_rotate(m, dx, dy, dz, x, y, z);
::evas_map_util_3d_lighting(m, -1000, -1000, -1000,
255, 255, 255,
20, 20, 20);
::evas_map_util_3d_perspective(m, (win_w / 2), (win_h / 2), 0, 512);
if (::evas_map_util_clockwise_get(m))
{
c->side[i].o->map_enable_set(1);
c->side[i].o->map_set(m);
c->side[i].o->visibility_set(true);
}
else
{
c->side[i].o->visibility_set(false);
}
order[i] = i;
for (j = 0; j < 4; j++)
::evas_map_point_coord_get(m, j, NULL, NULL, &(tz[j]));
mz[i] = (tz[0] + tz[1] + tz[2] + tz[3]) / 4;
}
sorted = 0;
do
{
sorted = 1;
for (i = 0; i < 5; i++)
{
if (mz[order[i]] > mz[order[i + 1]])
{
j = order[i];
order[i] = order[i + 1];
order[i + 1] = j;
sorted = 0;
}
}
}
while (!sorted);
c->side[order[0]].o->raise();
for (i = 1; i < 6; i++)
c->side[order[i]].o->stack_below(*c->side[order[i - 1]].o);
}
static void
_cube_free(Cube *c)
{
for (int i = 0; i < 6; i++)
{
c->side[i].o->visibility_set(false); // XXX
c->side[i].o->parent_set(efl::eo::base(nullptr));
delete c->side[i].o;
}
delete c;
}
/* setup */
static void _setup(void)
{
cubes[0] = _cube_new(128, 128, 256);
cubes[1] = _cube_new(256, 128, 128);
cubes[2] = _cube_new(256, 256, 128);
cubes[3] = _cube_new(128, 256, 128);
cubes[4] = _cube_new(256, 256, 256);
done = 0;
}
/* cleanup */
static void _cleanup(void)
{
_cube_free(cubes[0]);
_cube_free(cubes[1]);
_cube_free(cubes[2]);
_cube_free(cubes[3]);
_cube_free(cubes[4]);
}
/* loop - do things */
static void _loop(double t, int f)
{
_cube_pos(cubes[0],
(win_w / 2) - 640, (win_h / 2) - 256, 512,
f / 2.0, f, f / 3.0);
_cube_pos(cubes[1],
(win_w / 2) + 512, (win_h / 2) - 128, 384,
f / 3.0, f / 2.0, f / 4.0);
_cube_pos(cubes[2],
(win_w / 2) - 384, (win_h / 2) + 128, 256,
f / 2.0, f / 3.0, f);
_cube_pos(cubes[3],
(win_w / 2) + 256, (win_h / 2) + 64, 128,
f, f / 5.0, f / 2.0);
_cube_pos(cubes[4],
(win_w / 2), (win_h / 2), 0,
f / 4.0, f / 3.0, f / 5.0);
FPS_STD(NAME);
}
/* prepend special key handlers if interactive (before STD) */
static void _key(char *key)
{
KEY_STD;
}
extern "C" void FNAME(void)
{
_setup();
ui_func_set(_key, _loop);
}

View File

@ -0,0 +1,30 @@
#ifdef __cplusplus
extern "C" {
#endif
#undef FNAME
#undef NAME
#undef ICON
/* metadata */
#define FNAME image_map_3d_2_cxx_start
#define NAME "(C++) Image Map 3D 2"
#define ICON "3d.png"
#ifdef UI
_ui_menu_item_add(ICON, NAME, FNAME);
#endif
#ifdef PROTO
void FNAME(void);
#endif
#ifndef EXPEDITE_CXX_TEST_IMPL
#undef FNAME
#undef NAME
#undef ICON
#endif
#ifdef __cplusplus
}
#endif

Some files were not shown because too many files have changed in this diff Show More