Compare commits
84 Commits
master
...
devs/felip
Author | SHA1 | Date |
---|---|---|
Savio Sena | 78fc05ac91 | |
Savio Sena | d7cfdd0557 | |
Savio Sena | 0afccbf4e1 | |
Savio Sena | e03125e56d | |
Savio Sena | c58e2e4047 | |
Savio Sena | 309e04e44a | |
Savio Sena | ef428b5c31 | |
Felipe Magno de Almeida | c3e798cfd0 | |
Savio S. Machado | bc5d56877e | |
Savio S. Machado | 3434b132b8 | |
Savio Sena | 2360632b37 | |
Savio Sena | 55a7eae96f | |
Savio Sena | 2a2cc7260c | |
Savio Sena | c9984a38ad | |
Savio Sena | 428f271bcf | |
Savio Sena | 93c095a3fb | |
Savio Sena | f097281c9d | |
Savio Sena | 08f95c4bfe | |
Savio Sena | 9dccf53084 | |
Savio Sena | fb28488bdc | |
Savio Sena | 691498bfa6 | |
Savio Sena | 3f1b05bd0b | |
Savio Sena | 9ee8b2a45b | |
Savio Sena | 4a6fb1ef93 | |
Savio Sena | f1ea8fafa1 | |
Savio Sena | d1d04667ad | |
Savio Sena | cc37a06018 | |
Savio Sena | c43478a984 | |
Savio Sena | b4070dde1c | |
Savio Sena | d810de418e | |
Savio Sena | a67e3ea4b9 | |
Savio Sena | 21216c5dff | |
Savio Sena | 46a88189ca | |
Savio Sena | ad066eb17e | |
Savio Sena | bbb7e27b03 | |
Savio Sena | 99d7f53948 | |
Savio Sena | a61c25ee27 | |
Savio Sena | 583d48e392 | |
Savio Sena | 365de8d7d3 | |
Savio Sena | 762466f0e0 | |
Savio Sena | f051eef702 | |
Savio Sena | d9a9594744 | |
Savio Sena | acc4a6f195 | |
Savio Sena | 26a234effd | |
Savio Sena | ce1d410301 | |
Savio Sena | 12e33a9c12 | |
Savio Sena | 95e8ec6f9e | |
Savio Sena | d90d23bdd6 | |
Savio Sena | 095e9141b7 | |
Savio Sena | 0691d96d6c | |
Savio Sena | ab1945dc31 | |
Savio Sena | e60ba2ee1f | |
Savio Sena | 7975d43856 | |
Savio Sena | 2edb6402d6 | |
Savio Sena | a6d52a1876 | |
Savio Sena | 7a3096883d | |
Savio Sena | 6940737f17 | |
Savio Sena | f1ce0c028f | |
Savio Sena | 7e8108ad75 | |
Savio Sena | a9145b99c8 | |
Savio Sena | 23aefd6470 | |
Savio Sena | 2351346646 | |
Savio Sena | 22f097ed64 | |
Savio Sena | 43516b12df | |
Savio Sena | e4c333f3eb | |
Savio Sena | f0dbeca426 | |
Savio Sena | 1a3b5e8d7d | |
Savio Sena | 9792784abd | |
Savio Sena | 1efc8c8a30 | |
Savio Sena | c895eba3fd | |
Savio Sena | 3f32d142fc | |
Savio Sena | bbb0568606 | |
Savio Sena | ef9f34edfd | |
Savio Sena | a35c3791ad | |
Savio Sena | c7cabe8da6 | |
Savio Sena | 07b4407c26 | |
Savio Sena | a4b7b0ba31 | |
Savio Sena | bab92da5cf | |
Savio Sena | 6b928ebec4 | |
Savio Sena | 155888f2c5 | |
Savio Sena | 37bbc4fae5 | |
Savio Sena | d29bf887ec | |
Savio Sena | bebe73caa4 | |
Savio Sena | 8682064e4c |
|
@ -1,6 +0,0 @@
|
||||||
{
|
|
||||||
"project_id" : "expedite",
|
|
||||||
"projects" : "expedite",
|
|
||||||
"conduit_uri" : "https://phab.enlightenment.org/",
|
|
||||||
"phabricator.uri" : "https://phab.enlightenment.org/"
|
|
||||||
}
|
|
2
AUTHORS
2
AUTHORS
|
@ -3,6 +3,6 @@ Tim Horton <hortont424@gmail.com>
|
||||||
Saumsung Electronics <tbd>
|
Saumsung Electronics <tbd>
|
||||||
Samsung SAIT <tbd>
|
Samsung SAIT <tbd>
|
||||||
Bruno Tarquini <btarquini@gmail.com>
|
Bruno Tarquini <btarquini@gmail.com>
|
||||||
Hermet Park <hermetpark@gmail.com>
|
ChunEon Park (Hermet) <hermet@hermet.pe.kr>
|
||||||
Eduardo Lima (Etrunko) <eblima@gmail.com>
|
Eduardo Lima (Etrunko) <eblima@gmail.com>
|
||||||
JaEun Choi <jaeun12.choi@samsung.com>
|
JaEun Choi <jaeun12.choi@samsung.com>
|
||||||
|
|
372
INSTALL
372
INSTALL
|
@ -1,368 +1,14 @@
|
||||||
Installation Instructions
|
COMPILING and INSTALLING:
|
||||||
*************************
|
|
||||||
|
|
||||||
Copyright (C) 1994-1996, 1999-2002, 2004-2016 Free Software
|
If you got a official release tar archive do:
|
||||||
Foundation, Inc.
|
./configure
|
||||||
|
|
||||||
Copying and distribution of this file, with or without modification,
|
( otherwise if you got this from enlightenment cvs do: ./autogen.sh )
|
||||||
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.
|
|
||||||
|
|
||||||
Basic Installation
|
Then to compile:
|
||||||
==================
|
make
|
||||||
|
|
||||||
Briefly, the shell command './configure && make && make install'
|
To install (run this as root, or the user who handles installs):
|
||||||
should configure, build, and install this package. The following
|
make install
|
||||||
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
|
NOTE: You MUST make install Expedite for it to run properly.
|
||||||
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.
|
|
||||||
|
|
92
configure.ac
92
configure.ac
|
@ -3,14 +3,14 @@ dnl Process this file with autoconf to produce a configure script.
|
||||||
# get rid of that stupid cache mechanism
|
# get rid of that stupid cache mechanism
|
||||||
rm -f config.cache
|
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_PREREQ([2.52])
|
||||||
AC_CONFIG_SRCDIR([configure.ac])
|
AC_CONFIG_SRCDIR([configure.ac])
|
||||||
AC_CONFIG_HEADERS([config.h])
|
AC_CONFIG_HEADERS([config.h])
|
||||||
AC_CANONICAL_BUILD
|
AC_CANONICAL_BUILD
|
||||||
AC_CANONICAL_HOST
|
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])])
|
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
||||||
|
|
||||||
PKG_PROG_PKG_CONFIG
|
PKG_PROG_PKG_CONFIG
|
||||||
|
@ -18,46 +18,104 @@ PKG_PROG_PKG_CONFIG
|
||||||
|
|
||||||
### Checks for programs
|
### 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
|
AC_PROG_CC
|
||||||
|
|
||||||
|
LT_PROG_RC
|
||||||
|
|
||||||
|
### Check for C++11
|
||||||
|
|
||||||
|
EFL_CXX_COMPILE_STDCXX_11([ext], [mandatory])
|
||||||
|
|
||||||
### Checks for libraries
|
### 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 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], 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)
|
||||||
|
|
||||||
PKG_CHECK_MODULES([EFL], [${requirement_expedite}])
|
|
||||||
|
|
||||||
EFL_ENABLE_EO_API_SUPPORT
|
EFL_ENABLE_EO_API_SUPPORT
|
||||||
EFL_ENABLE_BETA_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 header files
|
||||||
|
|
||||||
|
|
||||||
### Checks for types
|
### Checks for types
|
||||||
|
|
||||||
|
|
||||||
### Checks for structures
|
### Checks for structures
|
||||||
|
|
||||||
|
|
||||||
### Checks for compiler characteristics
|
### Checks for compiler characteristics
|
||||||
|
|
||||||
AC_PROG_CC_C99
|
AC_HEADER_STDC
|
||||||
|
AC_C_CONST
|
||||||
AM_PROG_CC_C_O
|
AM_PROG_CC_C_O
|
||||||
AC_C___ATTRIBUTE__
|
AC_C___ATTRIBUTE__
|
||||||
|
|
||||||
if test "x${ac_cv_prog_cc_c99}" = "xno" ; then
|
WIN32_CFLAGS=""
|
||||||
AC_MSG_ERROR([expedite requires a c99-capable compiler])
|
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
|
fi
|
||||||
|
CXXFLAGS="${CXXFLAGS} -std=c++11"
|
||||||
|
|
||||||
|
AC_LANG_POP([C++])
|
||||||
|
AC_SUBST(EXPEDITE_CXXFLAGS)
|
||||||
|
|
||||||
|
|
||||||
### Checks for linker characteristics
|
### 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
|
### Checks for library functions
|
||||||
|
|
||||||
AC_CHECK_FUNCS([sync])
|
AC_CHECK_FUNCS([sync])
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 9.6 KiB |
|
@ -55,7 +55,6 @@ data.png \
|
||||||
widgets.png \
|
widgets.png \
|
||||||
e-logo-2.png \
|
e-logo-2.png \
|
||||||
e-logo-mask.png \
|
e-logo-mask.png \
|
||||||
texture.png \
|
texture.png
|
||||||
vector.png
|
|
||||||
|
|
||||||
EXTRA_DIST = $(files_DATA)
|
EXTRA_DIST = $(files_DATA)
|
||||||
|
|
|
@ -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'))
|
|
BIN
data/stretch.png
BIN
data/stretch.png
Binary file not shown.
Before Width: | Height: | Size: 3.9 KiB |
BIN
data/vector.png
BIN
data/vector.png
Binary file not shown.
Before Width: | Height: | Size: 1.6 KiB |
|
@ -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
|
||||||
|
])
|
63
meson.build
63
meson.build
|
@ -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')
|
|
|
@ -6,11 +6,209 @@ AM_CPPFLAGS = \
|
||||||
-DPACKAGE_BIN_DIR=\"$(bindir)\" \
|
-DPACKAGE_BIN_DIR=\"$(bindir)\" \
|
||||||
-DPACKAGE_LIB_DIR=\"$(libdir)\" \
|
-DPACKAGE_LIB_DIR=\"$(libdir)\" \
|
||||||
-DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \
|
-DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \
|
||||||
@EFL_CFLAGS@
|
@EFL_CFLAGS@ \
|
||||||
|
@EFL_CXX_CFLAGS@ \
|
||||||
|
@EVIL_CFLAGS@
|
||||||
|
|
||||||
bin_PROGRAMS = expedite
|
bin_PROGRAMS = expedite
|
||||||
bin_SCRIPTS = expedite-cmp
|
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 = \
|
expedite_SOURCES = \
|
||||||
main.c main.h \
|
main.c main.h \
|
||||||
ui.c ui.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_same_scaled.c \
|
||||||
image_blend_smooth_solid_same_scaled.c \
|
image_blend_smooth_solid_same_scaled.c \
|
||||||
image_blend_border.c \
|
image_blend_border.c \
|
||||||
|
image_blend_border_recolor.c \
|
||||||
image_blend_solid_middle_border.c \
|
image_blend_solid_middle_border.c \
|
||||||
image_blend_solid_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_rotate.c \
|
||||||
image_map_solid_rotate.c \
|
image_map_solid_rotate.c \
|
||||||
image_map_nearest_rotate.c \
|
image_map_nearest_rotate.c \
|
||||||
|
@ -87,7 +283,6 @@ textblock_basic.c \
|
||||||
textblock_intl.c \
|
textblock_intl.c \
|
||||||
textblock_auto_align.c \
|
textblock_auto_align.c \
|
||||||
textblock_text_append.c \
|
textblock_text_append.c \
|
||||||
textblock_text_fill_format.c \
|
|
||||||
rect_blend.c \
|
rect_blend.c \
|
||||||
rect_blend_pow2.c \
|
rect_blend_pow2.c \
|
||||||
rect_solid.c \
|
rect_solid.c \
|
||||||
|
@ -110,35 +305,35 @@ poly_blend.c \
|
||||||
proxy_image.c \
|
proxy_image.c \
|
||||||
proxy_text_fixed.c \
|
proxy_text_fixed.c \
|
||||||
proxy_text_random.c \
|
proxy_text_random.c \
|
||||||
proxy_textblock.c \
|
|
||||||
proxy_image_clipped.c \
|
|
||||||
line_blend.c \
|
line_blend.c \
|
||||||
image_blend_many_smooth_same_scaled.c \
|
image_blend_many_smooth_same_scaled.c \
|
||||||
font_effect_blur_alpha.c \
|
font_effect_blur_alpha.c \
|
||||||
font_effect_blur_color.c \
|
font_effect_blur_color.c \
|
||||||
image_mask.c \
|
${cxx_sources}
|
||||||
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
|
|
||||||
# \
|
# \
|
||||||
|
# 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_14.c \
|
||||||
# image_mask_15.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)
|
EXTRA_DIST = $(bin_SCRIPTS)
|
||||||
|
|
|
@ -6,28 +6,32 @@ static void
|
||||||
_setup(void)
|
_setup(void)
|
||||||
{
|
{
|
||||||
Evas_Object *o;
|
Evas_Object *o;
|
||||||
|
Evas_Textblock_Style *st;
|
||||||
|
|
||||||
o = efl_add(EFL_CANVAS_TEXTBLOCK_CLASS, evas);
|
o = eo_add(EVAS_TEXTBLOCK_CLASS, G_evas);
|
||||||
efl_gfx_entity_position_set(o, EINA_POSITION2D(10, 40));
|
eo_do(o, evas_obj_position_set(10, 40),
|
||||||
efl_gfx_entity_size_set(o, EINA_SIZE2D(win_w - 20, win_h - 50));
|
evas_obj_size_set(win_w - 20, win_h - 50),
|
||||||
efl_gfx_entity_visible_set(o, EINA_TRUE);
|
evas_obj_visibility_set(EINA_TRUE));
|
||||||
|
st = evas_textblock_style_new();
|
||||||
efl_text_font_family_set(o, "Vera");
|
evas_textblock_style_set
|
||||||
efl_text_font_size_set(o, 10);
|
(st,
|
||||||
efl_text_color_set(o, 0, 0, 0, 255);
|
"DEFAULT='font=Vera font_size=8 align=left color=#000 wrap=word'"
|
||||||
efl_text_multiline_set(o, EINA_TRUE);
|
"center='+ font=Vera font_size=10 align=center'"
|
||||||
efl_text_horizontal_align_set(o, 0.5);
|
"/center='- \n \n'"
|
||||||
efl_text_wrap_set(o, EFL_TEXT_FORMAT_WRAP_WORD);
|
"p='+ font=Vera font_size=10 align=left'"
|
||||||
|
"/p='- \n \n'"
|
||||||
efl_text_markup_set
|
);
|
||||||
(o,
|
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 "
|
"Enlightenment used to be a window manager project, but "
|
||||||
"since has changed a lot to become a miniature desktop and mobile "
|
"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 "
|
"device environment all of its own. It is now made up of many "
|
||||||
"components (libraries and applications) that have specific uses. "
|
"components (libraries and applications) that have specific uses. "
|
||||||
"It is very large, and so requires more testing and demonstration."
|
"It is very large, and so requires more testing and demonstration."
|
||||||
"</center>"
|
"</center>"
|
||||||
"</br>"
|
|
||||||
"<center>"
|
"<center>"
|
||||||
"Expedite is a full test suite for Evas, which is one of the "
|
"Expedite is a full test suite for Evas, which is one of the "
|
||||||
"core components of the Enlightenment Foundation Libraries. Evas "
|
"core components of the Enlightenment Foundation Libraries. Evas "
|
||||||
|
@ -35,8 +39,10 @@ _setup(void)
|
||||||
"render to many targets, including framebuffer, X11, OpenGL, memory, "
|
"render to many targets, including framebuffer, X11, OpenGL, memory, "
|
||||||
"DirectFB and other targets to boot. It handles high level graphic "
|
"DirectFB and other targets to boot. It handles high level graphic "
|
||||||
"layout descriptions that applications set up, dealing with the hard "
|
"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;
|
o_text = o;
|
||||||
ui_fps(0.0);
|
ui_fps(0.0);
|
||||||
}
|
}
|
||||||
|
@ -44,7 +50,7 @@ _setup(void)
|
||||||
static void
|
static void
|
||||||
_cleanup(void)
|
_cleanup(void)
|
||||||
{
|
{
|
||||||
efl_del(o_text);
|
eo_del(o_text);
|
||||||
o_text = NULL;
|
o_text = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,7 +61,7 @@ _loop(double t EINA_UNUSED,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_key(const char *key)
|
_key(char *key)
|
||||||
{
|
{
|
||||||
if ((!strcmp(key, "Escape")) || (!strcmp(key, "q")) || (!strcmp(key, "Q")))
|
if ((!strcmp(key, "Escape")) || (!strcmp(key, "q")) || (!strcmp(key, "Q")))
|
||||||
{
|
{
|
||||||
|
@ -67,5 +73,6 @@ _key(const char *key)
|
||||||
void
|
void
|
||||||
about_start(void)
|
about_start(void)
|
||||||
{
|
{
|
||||||
ui_func_set(_key, _loop, _setup);
|
ui_func_set(_key, _loop);
|
||||||
|
_setup();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,14 @@
|
||||||
#ifndef ABOUT_H
|
#ifndef ABOUT_H
|
||||||
#define ABOUT_H
|
#define ABOUT_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
void about_start(void);
|
void about_start(void);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -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();
|
||||||
|
}
|
|
@ -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
|
|
@ -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();
|
||||||
|
}
|
|
@ -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
|
||||||
|
|
|
@ -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();
|
||||||
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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();
|
||||||
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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();
|
||||||
|
}
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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();
|
||||||
|
}
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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();
|
||||||
|
}
|
|
@ -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
|
|
@ -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();
|
||||||
|
}
|
|
@ -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
|
|
@ -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();
|
||||||
|
}
|
|
@ -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
|
|
@ -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();
|
||||||
|
}
|
|
@ -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
|
|
@ -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();
|
||||||
|
}
|
|
@ -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
|
|
@ -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();
|
||||||
|
}
|
|
@ -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
|
|
@ -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();
|
||||||
|
}
|
|
@ -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
|
|
@ -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();
|
||||||
|
}
|
|
@ -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
|
|
@ -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();
|
||||||
|
}
|
|
@ -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
|
|
@ -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();
|
||||||
|
}
|
|
@ -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
|
|
@ -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();
|
||||||
|
}
|
|
@ -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
|
|
@ -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();
|
||||||
|
}
|
|
@ -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
|
|
@ -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();
|
||||||
|
}
|
|
@ -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
|
|
@ -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();
|
||||||
|
}
|
|
@ -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
|
|
@ -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();
|
||||||
|
}
|
|
@ -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
|
|
@ -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();
|
||||||
|
}
|
|
@ -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
|
|
@ -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();
|
||||||
|
}
|
|
@ -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
|
|
@ -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();
|
||||||
|
}
|
|
@ -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
|
|
@ -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();
|
||||||
|
}
|
|
@ -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
|
|
@ -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();
|
||||||
|
}
|
|
@ -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
|
|
@ -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();
|
||||||
|
}
|
|
@ -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
|
|
@ -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();
|
||||||
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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();
|
||||||
|
}
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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();
|
||||||
|
}
|
|
@ -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
|
||||||
|
|
|
@ -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();
|
||||||
|
}
|
|
@ -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
|
|
@ -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();
|
||||||
|
}
|
|
@ -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
|
|
@ -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();
|
||||||
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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();
|
||||||
|
}
|
|
@ -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
|
|
@ -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();
|
||||||
|
}
|
|
@ -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
|
|
@ -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);
|
||||||
|
}
|
|
@ -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);
|
||||||
|
}
|
|
@ -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
|
|
@ -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
|
|
@ -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);
|
||||||
|
}
|
|
@ -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
|
|
@ -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();
|
||||||
|
}
|
|
@ -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
|
|
@ -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);
|
||||||
|
}
|
|
@ -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
|
|
@ -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();
|
||||||
|
}
|
|
@ -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
|
|
@ -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);
|
||||||
|
}
|
|
@ -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
|
|
@ -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);
|
||||||
|
}
|
|
@ -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
Loading…
Reference in New Issue