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>
|
||||
Samsung SAIT <tbd>
|
||||
Bruno Tarquini <btarquini@gmail.com>
|
||||
Hermet Park <hermetpark@gmail.com>
|
||||
ChunEon Park (Hermet) <hermet@hermet.pe.kr>
|
||||
Eduardo Lima (Etrunko) <eblima@gmail.com>
|
||||
JaEun Choi <jaeun12.choi@samsung.com>
|
||||
|
|
376
INSTALL
376
INSTALL
|
@ -1,368 +1,14 @@
|
|||
Installation Instructions
|
||||
*************************
|
||||
COMPILING and INSTALLING:
|
||||
|
||||
Copyright (C) 1994-1996, 1999-2002, 2004-2016 Free Software
|
||||
Foundation, Inc.
|
||||
If you got a official release tar archive do:
|
||||
./configure
|
||||
|
||||
( otherwise if you got this from enlightenment cvs do: ./autogen.sh )
|
||||
|
||||
Then to compile:
|
||||
make
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved. This file is offered as-is,
|
||||
without warranty of any kind.
|
||||
To install (run this as root, or the user who handles installs):
|
||||
make install
|
||||
|
||||
Basic Installation
|
||||
==================
|
||||
|
||||
Briefly, the shell command './configure && make && make install'
|
||||
should configure, build, and install this package. The following
|
||||
more-detailed instructions are generic; see the 'README' file for
|
||||
instructions specific to this package. Some packages provide this
|
||||
'INSTALL' file but do not implement all of the features documented
|
||||
below. The lack of an optional feature in a given package is not
|
||||
necessarily a bug. More recommendations for GNU packages can be found
|
||||
in *note Makefile Conventions: (standards)Makefile Conventions.
|
||||
|
||||
The 'configure' shell script attempts to guess correct values for
|
||||
various system-dependent variables used during compilation. It uses
|
||||
those values to create a 'Makefile' in each directory of the package.
|
||||
It may also create one or more '.h' files containing system-dependent
|
||||
definitions. Finally, it creates a shell script 'config.status' that
|
||||
you can run in the future to recreate the current configuration, and a
|
||||
file 'config.log' containing compiler output (useful mainly for
|
||||
debugging 'configure').
|
||||
|
||||
It can also use an optional file (typically called 'config.cache' and
|
||||
enabled with '--cache-file=config.cache' or simply '-C') that saves the
|
||||
results of its tests to speed up reconfiguring. Caching is disabled by
|
||||
default to prevent problems with accidental use of stale cache files.
|
||||
|
||||
If you need to do unusual things to compile the package, please try
|
||||
to figure out how 'configure' could check whether to do them, and mail
|
||||
diffs or instructions to the address given in the 'README' so they can
|
||||
be considered for the next release. If you are using the cache, and at
|
||||
some point 'config.cache' contains results you don't want to keep, you
|
||||
may remove or edit it.
|
||||
|
||||
The file 'configure.ac' (or 'configure.in') is used to create
|
||||
'configure' by a program called 'autoconf'. You need 'configure.ac' if
|
||||
you want to change it or regenerate 'configure' using a newer version of
|
||||
'autoconf'.
|
||||
|
||||
The simplest way to compile this package is:
|
||||
|
||||
1. 'cd' to the directory containing the package's source code and type
|
||||
'./configure' to configure the package for your system.
|
||||
|
||||
Running 'configure' might take a while. While running, it prints
|
||||
some messages telling which features it is checking for.
|
||||
|
||||
2. Type 'make' to compile the package.
|
||||
|
||||
3. Optionally, type 'make check' to run any self-tests that come with
|
||||
the package, generally using the just-built uninstalled binaries.
|
||||
|
||||
4. Type 'make install' to install the programs and any data files and
|
||||
documentation. When installing into a prefix owned by root, it is
|
||||
recommended that the package be configured and built as a regular
|
||||
user, and only the 'make install' phase executed with root
|
||||
privileges.
|
||||
|
||||
5. Optionally, type 'make installcheck' to repeat any self-tests, but
|
||||
this time using the binaries in their final installed location.
|
||||
This target does not install anything. Running this target as a
|
||||
regular user, particularly if the prior 'make install' required
|
||||
root privileges, verifies that the installation completed
|
||||
correctly.
|
||||
|
||||
6. You can remove the program binaries and object files from the
|
||||
source code directory by typing 'make clean'. To also remove the
|
||||
files that 'configure' created (so you can compile the package for
|
||||
a different kind of computer), type 'make distclean'. There is
|
||||
also a 'make maintainer-clean' target, but that is intended mainly
|
||||
for the package's developers. If you use it, you may have to get
|
||||
all sorts of other programs in order to regenerate files that came
|
||||
with the distribution.
|
||||
|
||||
7. Often, you can also type 'make uninstall' to remove the installed
|
||||
files again. In practice, not all packages have tested that
|
||||
uninstallation works correctly, even though it is required by the
|
||||
GNU Coding Standards.
|
||||
|
||||
8. Some packages, particularly those that use Automake, provide 'make
|
||||
distcheck', which can by used by developers to test that all other
|
||||
targets like 'make install' and 'make uninstall' work correctly.
|
||||
This target is generally not run by end users.
|
||||
|
||||
Compilers and Options
|
||||
=====================
|
||||
|
||||
Some systems require unusual options for compilation or linking that
|
||||
the 'configure' script does not know about. Run './configure --help'
|
||||
for details on some of the pertinent environment variables.
|
||||
|
||||
You can give 'configure' initial values for configuration parameters
|
||||
by setting variables in the command line or in the environment. Here is
|
||||
an example:
|
||||
|
||||
./configure CC=c99 CFLAGS=-g LIBS=-lposix
|
||||
|
||||
*Note Defining Variables::, for more details.
|
||||
|
||||
Compiling For Multiple Architectures
|
||||
====================================
|
||||
|
||||
You can compile the package for more than one kind of computer at the
|
||||
same time, by placing the object files for each architecture in their
|
||||
own directory. To do this, you can use GNU 'make'. 'cd' to the
|
||||
directory where you want the object files and executables to go and run
|
||||
the 'configure' script. 'configure' automatically checks for the source
|
||||
code in the directory that 'configure' is in and in '..'. This is known
|
||||
as a "VPATH" build.
|
||||
|
||||
With a non-GNU 'make', it is safer to compile the package for one
|
||||
architecture at a time in the source code directory. After you have
|
||||
installed the package for one architecture, use 'make distclean' before
|
||||
reconfiguring for another architecture.
|
||||
|
||||
On MacOS X 10.5 and later systems, you can create libraries and
|
||||
executables that work on multiple system types--known as "fat" or
|
||||
"universal" binaries--by specifying multiple '-arch' options to the
|
||||
compiler but only a single '-arch' option to the preprocessor. Like
|
||||
this:
|
||||
|
||||
./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
|
||||
CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
|
||||
CPP="gcc -E" CXXCPP="g++ -E"
|
||||
|
||||
This is not guaranteed to produce working output in all cases, you
|
||||
may have to build one architecture at a time and combine the results
|
||||
using the 'lipo' tool if you have problems.
|
||||
|
||||
Installation Names
|
||||
==================
|
||||
|
||||
By default, 'make install' installs the package's commands under
|
||||
'/usr/local/bin', include files under '/usr/local/include', etc. You
|
||||
can specify an installation prefix other than '/usr/local' by giving
|
||||
'configure' the option '--prefix=PREFIX', where PREFIX must be an
|
||||
absolute file name.
|
||||
|
||||
You can specify separate installation prefixes for
|
||||
architecture-specific files and architecture-independent files. If you
|
||||
pass the option '--exec-prefix=PREFIX' to 'configure', the package uses
|
||||
PREFIX as the prefix for installing programs and libraries.
|
||||
Documentation and other data files still use the regular prefix.
|
||||
|
||||
In addition, if you use an unusual directory layout you can give
|
||||
options like '--bindir=DIR' to specify different values for particular
|
||||
kinds of files. Run 'configure --help' for a list of the directories
|
||||
you can set and what kinds of files go in them. In general, the default
|
||||
for these options is expressed in terms of '${prefix}', so that
|
||||
specifying just '--prefix' will affect all of the other directory
|
||||
specifications that were not explicitly provided.
|
||||
|
||||
The most portable way to affect installation locations is to pass the
|
||||
correct locations to 'configure'; however, many packages provide one or
|
||||
both of the following shortcuts of passing variable assignments to the
|
||||
'make install' command line to change installation locations without
|
||||
having to reconfigure or recompile.
|
||||
|
||||
The first method involves providing an override variable for each
|
||||
affected directory. For example, 'make install
|
||||
prefix=/alternate/directory' will choose an alternate location for all
|
||||
directory configuration variables that were expressed in terms of
|
||||
'${prefix}'. Any directories that were specified during 'configure',
|
||||
but not in terms of '${prefix}', must each be overridden at install time
|
||||
for the entire installation to be relocated. The approach of makefile
|
||||
variable overrides for each directory variable is required by the GNU
|
||||
Coding Standards, and ideally causes no recompilation. However, some
|
||||
platforms have known limitations with the semantics of shared libraries
|
||||
that end up requiring recompilation when using this method, particularly
|
||||
noticeable in packages that use GNU Libtool.
|
||||
|
||||
The second method involves providing the 'DESTDIR' variable. For
|
||||
example, 'make install DESTDIR=/alternate/directory' will prepend
|
||||
'/alternate/directory' before all installation names. The approach of
|
||||
'DESTDIR' overrides is not required by the GNU Coding Standards, and
|
||||
does not work on platforms that have drive letters. On the other hand,
|
||||
it does better at avoiding recompilation issues, and works well even
|
||||
when some directory options were not specified in terms of '${prefix}'
|
||||
at 'configure' time.
|
||||
|
||||
Optional Features
|
||||
=================
|
||||
|
||||
If the package supports it, you can cause programs to be installed
|
||||
with an extra prefix or suffix on their names by giving 'configure' the
|
||||
option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'.
|
||||
|
||||
Some packages pay attention to '--enable-FEATURE' options to
|
||||
'configure', where FEATURE indicates an optional part of the package.
|
||||
They may also pay attention to '--with-PACKAGE' options, where PACKAGE
|
||||
is something like 'gnu-as' or 'x' (for the X Window System). The
|
||||
'README' should mention any '--enable-' and '--with-' options that the
|
||||
package recognizes.
|
||||
|
||||
For packages that use the X Window System, 'configure' can usually
|
||||
find the X include and library files automatically, but if it doesn't,
|
||||
you can use the 'configure' options '--x-includes=DIR' and
|
||||
'--x-libraries=DIR' to specify their locations.
|
||||
|
||||
Some packages offer the ability to configure how verbose the
|
||||
execution of 'make' will be. For these packages, running './configure
|
||||
--enable-silent-rules' sets the default to minimal output, which can be
|
||||
overridden with 'make V=1'; while running './configure
|
||||
--disable-silent-rules' sets the default to verbose, which can be
|
||||
overridden with 'make V=0'.
|
||||
|
||||
Particular systems
|
||||
==================
|
||||
|
||||
On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC
|
||||
is not installed, it is recommended to use the following options in
|
||||
order to use an ANSI C compiler:
|
||||
|
||||
./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
|
||||
|
||||
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
|
||||
|
||||
HP-UX 'make' updates targets which have the same time stamps as their
|
||||
prerequisites, which makes it generally unusable when shipped generated
|
||||
files such as 'configure' are involved. Use GNU 'make' instead.
|
||||
|
||||
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
|
||||
parse its '<wchar.h>' header file. The option '-nodtk' can be used as a
|
||||
workaround. If GNU CC is not installed, it is therefore recommended to
|
||||
try
|
||||
|
||||
./configure CC="cc"
|
||||
|
||||
and if that doesn't work, try
|
||||
|
||||
./configure CC="cc -nodtk"
|
||||
|
||||
On Solaris, don't put '/usr/ucb' early in your 'PATH'. This
|
||||
directory contains several dysfunctional programs; working variants of
|
||||
these programs are available in '/usr/bin'. So, if you need '/usr/ucb'
|
||||
in your 'PATH', put it _after_ '/usr/bin'.
|
||||
|
||||
On Haiku, software installed for all users goes in '/boot/common',
|
||||
not '/usr/local'. It is recommended to use the following options:
|
||||
|
||||
./configure --prefix=/boot/common
|
||||
|
||||
Specifying the System Type
|
||||
==========================
|
||||
|
||||
There may be some features 'configure' cannot figure out
|
||||
automatically, but needs to determine by the type of machine the package
|
||||
will run on. Usually, assuming the package is built to be run on the
|
||||
_same_ architectures, 'configure' can figure that out, but if it prints
|
||||
a message saying it cannot guess the machine type, give it the
|
||||
'--build=TYPE' option. TYPE can either be a short name for the system
|
||||
type, such as 'sun4', or a canonical name which has the form:
|
||||
|
||||
CPU-COMPANY-SYSTEM
|
||||
|
||||
where SYSTEM can have one of these forms:
|
||||
|
||||
OS
|
||||
KERNEL-OS
|
||||
|
||||
See the file 'config.sub' for the possible values of each field. If
|
||||
'config.sub' isn't included in this package, then this package doesn't
|
||||
need to know the machine type.
|
||||
|
||||
If you are _building_ compiler tools for cross-compiling, you should
|
||||
use the option '--target=TYPE' to select the type of system they will
|
||||
produce code for.
|
||||
|
||||
If you want to _use_ a cross compiler, that generates code for a
|
||||
platform different from the build platform, you should specify the
|
||||
"host" platform (i.e., that on which the generated programs will
|
||||
eventually be run) with '--host=TYPE'.
|
||||
|
||||
Sharing Defaults
|
||||
================
|
||||
|
||||
If you want to set default values for 'configure' scripts to share,
|
||||
you can create a site shell script called 'config.site' that gives
|
||||
default values for variables like 'CC', 'cache_file', and 'prefix'.
|
||||
'configure' looks for 'PREFIX/share/config.site' if it exists, then
|
||||
'PREFIX/etc/config.site' if it exists. Or, you can set the
|
||||
'CONFIG_SITE' environment variable to the location of the site script.
|
||||
A warning: not all 'configure' scripts look for a site script.
|
||||
|
||||
Defining Variables
|
||||
==================
|
||||
|
||||
Variables not defined in a site shell script can be set in the
|
||||
environment passed to 'configure'. However, some packages may run
|
||||
configure again during the build, and the customized values of these
|
||||
variables may be lost. In order to avoid this problem, you should set
|
||||
them in the 'configure' command line, using 'VAR=value'. For example:
|
||||
|
||||
./configure CC=/usr/local2/bin/gcc
|
||||
|
||||
causes the specified 'gcc' to be used as the C compiler (unless it is
|
||||
overridden in the site shell script).
|
||||
|
||||
Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an
|
||||
Autoconf limitation. Until the limitation is lifted, you can use this
|
||||
workaround:
|
||||
|
||||
CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
|
||||
|
||||
'configure' Invocation
|
||||
======================
|
||||
|
||||
'configure' recognizes the following options to control how it
|
||||
operates.
|
||||
|
||||
'--help'
|
||||
'-h'
|
||||
Print a summary of all of the options to 'configure', and exit.
|
||||
|
||||
'--help=short'
|
||||
'--help=recursive'
|
||||
Print a summary of the options unique to this package's
|
||||
'configure', and exit. The 'short' variant lists options used only
|
||||
in the top level, while the 'recursive' variant lists options also
|
||||
present in any nested packages.
|
||||
|
||||
'--version'
|
||||
'-V'
|
||||
Print the version of Autoconf used to generate the 'configure'
|
||||
script, and exit.
|
||||
|
||||
'--cache-file=FILE'
|
||||
Enable the cache: use and save the results of the tests in FILE,
|
||||
traditionally 'config.cache'. FILE defaults to '/dev/null' to
|
||||
disable caching.
|
||||
|
||||
'--config-cache'
|
||||
'-C'
|
||||
Alias for '--cache-file=config.cache'.
|
||||
|
||||
'--quiet'
|
||||
'--silent'
|
||||
'-q'
|
||||
Do not print messages saying which checks are being made. To
|
||||
suppress all normal output, redirect it to '/dev/null' (any error
|
||||
messages will still be shown).
|
||||
|
||||
'--srcdir=DIR'
|
||||
Look for the package's source code in directory DIR. Usually
|
||||
'configure' can determine that directory automatically.
|
||||
|
||||
'--prefix=DIR'
|
||||
Use DIR as the installation prefix. *note Installation Names:: for
|
||||
more details, including other options available for fine-tuning the
|
||||
installation locations.
|
||||
|
||||
'--no-create'
|
||||
'-n'
|
||||
Run the configure checks, but stop before creating any output
|
||||
files.
|
||||
|
||||
'configure' also accepts some other, not widely useful, options. Run
|
||||
'configure --help' for more details.
|
||||
NOTE: You MUST make install Expedite for it to run properly.
|
||||
|
|
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
|
||||
rm -f config.cache
|
||||
|
||||
AC_INIT([expedite], [1.23.0], [enlightenment-devel@lists.sourceforge.net])
|
||||
AC_INIT([expedite], [1.11.99], [enlightenment-devel@lists.sourceforge.net])
|
||||
AC_PREREQ([2.52])
|
||||
AC_CONFIG_SRCDIR([configure.ac])
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
AC_CANONICAL_BUILD
|
||||
AC_CANONICAL_HOST
|
||||
|
||||
AM_INIT_AUTOMAKE([1.6 dist-xz])
|
||||
AM_INIT_AUTOMAKE([1.6 dist-bzip2 subdir-objects])
|
||||
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
||||
|
||||
PKG_PROG_PKG_CONFIG
|
||||
|
@ -18,46 +18,104 @@ PKG_PROG_PKG_CONFIG
|
|||
|
||||
### Checks for programs
|
||||
|
||||
AC_ISC_POSIX
|
||||
m4_ifdef([AC_PROG_OBJC],
|
||||
[
|
||||
AC_PROG_OBJC
|
||||
_AM_DEPENDENCIES(OBJC)
|
||||
],
|
||||
[
|
||||
AC_CHECK_TOOL([OBJC], [gcc])
|
||||
AC_SUBST([OBJC])
|
||||
AC_SUBST([OBJCFLAGS])
|
||||
]
|
||||
)
|
||||
AC_PROG_CXX
|
||||
AC_PROG_CC
|
||||
|
||||
LT_PROG_RC
|
||||
|
||||
### Check for C++11
|
||||
|
||||
EFL_CXX_COMPILE_STDCXX_11([ext], [mandatory])
|
||||
|
||||
### Checks for libraries
|
||||
|
||||
# Evil library for compilation on Windows
|
||||
|
||||
case "$host_os" in
|
||||
mingw32*)
|
||||
PKG_CHECK_MODULES([EVIL], [evil >= 1.7.99])
|
||||
AC_DEFINE(HAVE_EVIL, 1, [Set to 1 if Evil library is installed])
|
||||
;;
|
||||
esac
|
||||
|
||||
# EFL dependencies
|
||||
efl_version="1.23.0"
|
||||
requirement_expedite=" \
|
||||
eo >= ${efl_version} \
|
||||
efl >= ${efl_version} \
|
||||
eina >= ${efl_version} \
|
||||
evas >= ${efl_version} \
|
||||
eet >= ${efl_version} \
|
||||
ecore-evas >= ${efl_version} \
|
||||
ecore >= ${efl_version}"
|
||||
|
||||
AC_SUBST(requirement_expedite)
|
||||
|
||||
PKG_CHECK_MODULES([EFL], [${requirement_expedite}])
|
||||
PKG_CHECK_MODULES([EFL], eina >= 1.7.99 efl >= 1.11.99 eo >= 1.7.99 evas >= 1.7.99 eet >= 1.7.99 ecore-evas >= 1.7.99 ecore >= 1.7.99)
|
||||
|
||||
EFL_ENABLE_EO_API_SUPPORT
|
||||
EFL_ENABLE_BETA_API_SUPPORT
|
||||
|
||||
# EFL++ dependencies
|
||||
|
||||
PKG_CHECK_MODULES([EFL_CXX], efl-cxx >= 1.11.99 eina-cxx >= 1.11.99 eo-cxx >= 1.11.99 evas-cxx >= 1.11.99 eet-cxx >= 1.11.99)
|
||||
|
||||
### Checks for header files
|
||||
|
||||
|
||||
### Checks for types
|
||||
|
||||
|
||||
### Checks for structures
|
||||
|
||||
|
||||
### Checks for compiler characteristics
|
||||
|
||||
AC_PROG_CC_C99
|
||||
AC_HEADER_STDC
|
||||
AC_C_CONST
|
||||
AM_PROG_CC_C_O
|
||||
AC_C___ATTRIBUTE__
|
||||
|
||||
if test "x${ac_cv_prog_cc_c99}" = "xno" ; then
|
||||
AC_MSG_ERROR([expedite requires a c99-capable compiler])
|
||||
WIN32_CFLAGS=""
|
||||
case "$host_os" in
|
||||
cegcc*)
|
||||
WIN32_CFLAGS="-mwin32"
|
||||
;;
|
||||
esac
|
||||
AC_SUBST(WIN32_CFLAGS)
|
||||
|
||||
EXPEDITE_CXXFLAGS=""
|
||||
AC_LANG_PUSH([C++])
|
||||
CXXFLAGS_save="${CXXFLAGS}"
|
||||
CXXFLAGS="${CXXFLAGS} -fno-rtti -fno-exceptions"
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM([[]])],
|
||||
[have_cxx_flags="yes"],
|
||||
[have_cxx_flags="no"])
|
||||
AC_MSG_CHECKING([whether the compiler supports -fno-rtti -fno-exceptions])
|
||||
AC_MSG_RESULT([${have_cxx_flags}])
|
||||
CXXFLAGS="${CXXFLAGS_save}"
|
||||
if test "x${have_cxx_flags}" = "xyes" ; then
|
||||
EXPEDITE_CXXFLAGS="-fno-rtti -fno-exceptions -DEFL_CXX_NO_EXCEPTIONS"
|
||||
fi
|
||||
CXXFLAGS="${CXXFLAGS} -std=c++11"
|
||||
|
||||
AC_LANG_POP([C++])
|
||||
AC_SUBST(EXPEDITE_CXXFLAGS)
|
||||
|
||||
|
||||
### Checks for linker characteristics
|
||||
|
||||
lt_enable_auto_import=""
|
||||
case "$host_os" in
|
||||
mingw* | cegcc*)
|
||||
lt_enable_auto_import="-Wl,--enable-auto-import"
|
||||
;;
|
||||
esac
|
||||
AC_SUBST(lt_enable_auto_import)
|
||||
|
||||
|
||||
### Checks for library functions
|
||||
|
||||
AC_CHECK_FUNCS([sync])
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 9.6 KiB |
|
@ -55,7 +55,6 @@ data.png \
|
|||
widgets.png \
|
||||
e-logo-2.png \
|
||||
e-logo-mask.png \
|
||||
texture.png \
|
||||
vector.png
|
||||
texture.png
|
||||
|
||||
EXTRA_DIST = $(files_DATA)
|
||||
|
|
|
@ -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_LIB_DIR=\"$(libdir)\" \
|
||||
-DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \
|
||||
@EFL_CFLAGS@
|
||||
@EFL_CFLAGS@ \
|
||||
@EFL_CXX_CFLAGS@ \
|
||||
@EVIL_CFLAGS@
|
||||
|
||||
bin_PROGRAMS = expedite
|
||||
bin_SCRIPTS = expedite-cmp
|
||||
|
||||
# XXX
|
||||
cxx_sources = \
|
||||
cxx/image_blend_border.cc \
|
||||
cxx/image_blend_border_capi.h \
|
||||
cxx/image_blend_border_recolor.cc \
|
||||
cxx/image_blend_border_recolor_capi.h \
|
||||
cxx/image_blend_fade_pow2_unscaled.cc \
|
||||
cxx/image_blend_fade_pow2_unscaled_capi.h \
|
||||
cxx/image_blend_fade_unscaled.cc \
|
||||
cxx/image_blend_fade_unscaled_capi.h \
|
||||
cxx/image_blend_many_smooth_same_scaled.cc \
|
||||
cxx/image_blend_many_smooth_same_scaled_capi.h \
|
||||
cxx/image_blend_nearest_same_scaled.cc \
|
||||
cxx/image_blend_nearest_same_scaled_capi.h \
|
||||
cxx/image_blend_nearest_scaled.cc \
|
||||
cxx/image_blend_nearest_scaled_capi.h \
|
||||
cxx/image_blend_nearest_solid_same_scaled.cc \
|
||||
cxx/image_blend_nearest_solid_same_scaled_capi.h \
|
||||
cxx/image_blend_nearest_solid_scaled.cc \
|
||||
cxx/image_blend_nearest_solid_scaled_capi.h \
|
||||
cxx/image_blend_occlude1.cc \
|
||||
cxx/image_blend_occlude1_capi.h \
|
||||
cxx/image_blend_occlude1_few.cc \
|
||||
cxx/image_blend_occlude1_few_capi.h \
|
||||
cxx/image_blend_occlude1_many.cc \
|
||||
cxx/image_blend_occlude1_many_capi.h \
|
||||
cxx/image_blend_occlude1_very_many.cc \
|
||||
cxx/image_blend_occlude1_very_many_capi.h \
|
||||
cxx/image_blend_occlude2.cc \
|
||||
cxx/image_blend_occlude2_capi.h \
|
||||
cxx/image_blend_occlude2_few.cc \
|
||||
cxx/image_blend_occlude2_few_capi.h \
|
||||
cxx/image_blend_occlude2_many.cc \
|
||||
cxx/image_blend_occlude2_many_capi.h \
|
||||
cxx/image_blend_occlude2_very_many.cc \
|
||||
cxx/image_blend_occlude2_very_many_capi.h \
|
||||
cxx/image_blend_occlude3.cc \
|
||||
cxx/image_blend_occlude3_capi.h \
|
||||
cxx/image_blend_occlude3_few.cc \
|
||||
cxx/image_blend_occlude3_few_capi.h \
|
||||
cxx/image_blend_occlude3_many.cc \
|
||||
cxx/image_blend_occlude3_many_capi.h \
|
||||
cxx/image_blend_occlude3_very_many.cc \
|
||||
cxx/image_blend_occlude3_very_many_capi.h \
|
||||
cxx/image_blend_occlude_capi.h \
|
||||
cxx/image_blend_smooth_same_scaled.cc \
|
||||
cxx/image_blend_smooth_same_scaled_capi.h \
|
||||
cxx/image_blend_smooth_scaled.cc \
|
||||
cxx/image_blend_smooth_scaled_capi.h \
|
||||
cxx/image_blend_smooth_solid_same_scaled.cc \
|
||||
cxx/image_blend_smooth_solid_same_scaled_capi.h \
|
||||
cxx/image_blend_smooth_solid_scaled.cc \
|
||||
cxx/image_blend_smooth_solid_scaled_capi.h \
|
||||
cxx/image_blend_solid_border.cc \
|
||||
cxx/image_blend_solid_border_capi.h \
|
||||
cxx/image_blend_solid_fade_pow2_unscaled.cc \
|
||||
cxx/image_blend_solid_fade_pow2_unscaled_capi.h \
|
||||
cxx/image_blend_solid_fade_unscaled.cc \
|
||||
cxx/image_blend_solid_fade_unscaled_capi.h \
|
||||
cxx/image_blend_solid_middle_border.cc \
|
||||
cxx/image_blend_solid_middle_border_capi.h \
|
||||
cxx/image_blend_solid_middle_unscaled.cc \
|
||||
cxx/image_blend_solid_middle_unscaled_capi.h \
|
||||
cxx/image_blend_solid_unscaled.cc \
|
||||
cxx/image_blend_solid_unscaled_capi.h \
|
||||
cxx/image_blend_unscaled.cc \
|
||||
cxx/image_blend_unscaled_capi.h \
|
||||
cxx/image_crossfade.cc \
|
||||
cxx/image_crossfade_capi.h \
|
||||
cxx/image_data_argb.cc \
|
||||
cxx/image_data_argb_alpha.cc \
|
||||
cxx/image_data_argb_alpha_capi.h \
|
||||
cxx/image_data_argb_capi.h \
|
||||
cxx/image_data_ycbcr601pl.cc \
|
||||
cxx/image_data_ycbcr601pl_capi.h \
|
||||
cxx/image_data_ycbcr601pl_map_nearest_solid_rotate.cc \
|
||||
cxx/image_data_ycbcr601pl_map_nearest_solid_rotate_capi.h \
|
||||
cxx/image_data_ycbcr601pl_map_solid_rotate.cc \
|
||||
cxx/image_data_ycbcr601pl_map_solid_rotate_capi.h \
|
||||
cxx/image_data_ycbcr601pl_wide_stride.cc \
|
||||
cxx/image_data_ycbcr601pl_wide_stride_capi.h \
|
||||
cxx/image_map_3d_1.cc \
|
||||
cxx/image_map_3d_1_capi.h \
|
||||
cxx/image_map_3d_2.cc \
|
||||
cxx/image_map_3d_2_capi.h \
|
||||
cxx/image_map_3d_3.cc \
|
||||
cxx/image_map_3d_3_capi.h \
|
||||
cxx/image_map_3d_4.cc \
|
||||
cxx/image_map_3d_4_capi.h \
|
||||
cxx/image_map_3d_5.cc \
|
||||
cxx/image_map_3d_5_capi.h \
|
||||
cxx/image_map_3d_6.cc \
|
||||
cxx/image_map_3d_6_capi.h \
|
||||
cxx/image_map_3d_flow.cc \
|
||||
cxx/image_map_3d_flow_capi.h \
|
||||
cxx/image_map_color_alpha_nearest_rotate.cc \
|
||||
cxx/image_map_color_alpha_nearest_rotate_capi.h \
|
||||
cxx/image_map_color_alpha_nearest_solid_rotate.cc \
|
||||
cxx/image_map_color_alpha_nearest_solid_rotate_capi.h \
|
||||
cxx/image_map_color_alpha_rotate.cc \
|
||||
cxx/image_map_color_alpha_rotate_capi.h \
|
||||
cxx/image_map_color_alpha_solid_rotate.cc \
|
||||
cxx/image_map_color_alpha_solid_rotate_capi.h \
|
||||
cxx/image_map_color_nearest_rotate.cc \
|
||||
cxx/image_map_color_nearest_rotate_capi.h \
|
||||
cxx/image_map_color_nearest_solid_rotate.cc \
|
||||
cxx/image_map_color_nearest_solid_rotate_capi.h \
|
||||
cxx/image_map_color_rotate.cc \
|
||||
cxx/image_map_color_rotate_capi.h \
|
||||
cxx/image_map_color_solid_rotate.cc \
|
||||
cxx/image_map_color_solid_rotate_capi.h \
|
||||
cxx/image_map_nearest_rotate.cc \
|
||||
cxx/image_map_nearest_rotate_capi.h \
|
||||
cxx/image_map_nearest_solid_rotate.cc \
|
||||
cxx/image_map_nearest_solid_rotate_capi.h \
|
||||
cxx/image_map_rotate.cc \
|
||||
cxx/image_map_rotate_capi.h \
|
||||
cxx/image_map_solid_rotate.cc \
|
||||
cxx/image_map_solid_rotate_capi.h \
|
||||
cxx/image_quality_scale.cc \
|
||||
cxx/image_quality_scale_capi.h \
|
||||
cxx/poly_blend.cc \
|
||||
cxx/poly_blend_capi.h \
|
||||
cxx/line_blend.cc \
|
||||
cxx/line_blend_capi.h \
|
||||
cxx/proxy_image.cc \
|
||||
cxx/proxy_image_capi.h \
|
||||
cxx/proxy_image_offscreen.cc \
|
||||
cxx/proxy_image_offscreen_capi.h \
|
||||
cxx/proxy_text_fixed.cc \
|
||||
cxx/proxy_text_fixed_capi.h \
|
||||
cxx/proxy_text_random.cc \
|
||||
cxx/proxy_text_random_capi.h \
|
||||
cxx/rect_blend.cc \
|
||||
cxx/rect_blend_capi.h \
|
||||
cxx/rect_blend_few.cc \
|
||||
cxx/rect_blend_few_capi.h \
|
||||
cxx/rect_blend_pow2.cc \
|
||||
cxx/rect_blend_pow2_capi.h \
|
||||
cxx/rect_blend_pow2_few.cc \
|
||||
cxx/rect_blend_pow2_few_capi.h \
|
||||
cxx/rect_solid.cc \
|
||||
cxx/rect_solid_capi.h \
|
||||
cxx/rect_solid_few.cc \
|
||||
cxx/rect_solid_few_capi.h \
|
||||
cxx/text_basic.cc \
|
||||
cxx/text_basic_capi.h \
|
||||
cxx/text_change.cc \
|
||||
cxx/text_change_capi.h \
|
||||
cxx/text_styles.cc \
|
||||
cxx/text_styles_capi.h \
|
||||
cxx/text_styles_different_strings.cc \
|
||||
cxx/text_styles_different_strings_capi.h \
|
||||
cxx/textblock_auto_align.cc \
|
||||
cxx/textblock_auto_align_capi.h \
|
||||
cxx/textblock_basic.cc \
|
||||
cxx/textblock_basic_capi.h \
|
||||
cxx/textblock_intl.cc \
|
||||
cxx/textblock_intl_capi.h \
|
||||
cxx/textblock_text_append.cc \
|
||||
cxx/textblock_text_append_capi.h \
|
||||
cxx/widgets_file_icons.cc \
|
||||
cxx/widgets_file_icons_2.cc \
|
||||
cxx/widgets_file_icons_2_capi.h \
|
||||
cxx/widgets_file_icons_2_grouped.cc \
|
||||
cxx/widgets_file_icons_2_grouped_capi.h \
|
||||
cxx/widgets_file_icons_2_same.cc \
|
||||
cxx/widgets_file_icons_2_same_capi.h \
|
||||
cxx/widgets_file_icons_2_same_grouped.cc \
|
||||
cxx/widgets_file_icons_2_same_grouped_capi.h \
|
||||
cxx/widgets_file_icons_3.cc \
|
||||
cxx/widgets_file_icons_3_capi.h \
|
||||
cxx/widgets_file_icons_4.cc \
|
||||
cxx/widgets_file_icons_4_capi.h \
|
||||
cxx/widgets_file_icons_capi.h \
|
||||
cxx/widgets_list_1.cc \
|
||||
cxx/widgets_list_1_capi.h \
|
||||
cxx/widgets_list_1_grouped.cc \
|
||||
cxx/widgets_list_1_grouped_capi.h \
|
||||
cxx/widgets_list_2.cc \
|
||||
cxx/widgets_list_2_capi.h \
|
||||
cxx/widgets_list_2_grouped.cc \
|
||||
cxx/widgets_list_2_grouped_capi.h \
|
||||
cxx/widgets_list_3.cc \
|
||||
cxx/widgets_list_3_capi.h \
|
||||
cxx/widgets_list_3_grouped.cc \
|
||||
cxx/widgets_list_3_grouped_capi.h \
|
||||
cxx/widgets_list_4.cc \
|
||||
cxx/widgets_list_4_capi.h \
|
||||
cxx/widgets_list_4_grouped.cc \
|
||||
cxx/widgets_list_4_grouped_capi.h \
|
||||
cxx/font_effect_blur_alpha.cc \
|
||||
cxx/font_effect_blur_alpha_capi.h \
|
||||
cxx/font_effect_blur_color.cc \
|
||||
cxx/font_effect_blur_color_capi.h
|
||||
|
||||
expedite_SOURCES = \
|
||||
main.c main.h \
|
||||
ui.c ui.h \
|
||||
|
@ -47,11 +245,9 @@ image_blend_nearest_solid_same_scaled.c \
|
|||
image_blend_smooth_same_scaled.c \
|
||||
image_blend_smooth_solid_same_scaled.c \
|
||||
image_blend_border.c \
|
||||
image_blend_border_recolor.c \
|
||||
image_blend_solid_middle_border.c \
|
||||
image_blend_solid_border.c \
|
||||
image_blend_solid_stretch.c \
|
||||
image_blend_solid_9patch.c \
|
||||
image_blend_border_recolor.c \
|
||||
image_map_rotate.c \
|
||||
image_map_solid_rotate.c \
|
||||
image_map_nearest_rotate.c \
|
||||
|
@ -87,7 +283,6 @@ textblock_basic.c \
|
|||
textblock_intl.c \
|
||||
textblock_auto_align.c \
|
||||
textblock_text_append.c \
|
||||
textblock_text_fill_format.c \
|
||||
rect_blend.c \
|
||||
rect_blend_pow2.c \
|
||||
rect_solid.c \
|
||||
|
@ -110,35 +305,35 @@ poly_blend.c \
|
|||
proxy_image.c \
|
||||
proxy_text_fixed.c \
|
||||
proxy_text_random.c \
|
||||
proxy_textblock.c \
|
||||
proxy_image_clipped.c \
|
||||
line_blend.c \
|
||||
image_blend_many_smooth_same_scaled.c \
|
||||
font_effect_blur_alpha.c \
|
||||
font_effect_blur_color.c \
|
||||
image_mask.c \
|
||||
image_mask_2.c \
|
||||
image_mask_3.c \
|
||||
image_mask_4.c \
|
||||
image_mask_5.c \
|
||||
image_mask_6.c \
|
||||
image_mask_7.c \
|
||||
image_mask_8.c \
|
||||
image_mask_9.c \
|
||||
image_mask_10.c \
|
||||
image_mask_11.c \
|
||||
image_mask_12.c \
|
||||
image_mask_13.c \
|
||||
image_mask_clipped.c \
|
||||
vg_basic_rect.c \
|
||||
vg_basic_circle.c \
|
||||
vg_basic_gradient.c \
|
||||
vg_scaled.c \
|
||||
snapshot_widgets_file_icons.c
|
||||
# \
|
||||
${cxx_sources}
|
||||
|
||||
# \
|
||||
# image_mask.c \
|
||||
# image_mask_2.c \
|
||||
# image_mask_3.c \
|
||||
# image_mask_4.c \
|
||||
# image_mask_5.c \
|
||||
# image_mask_6.c \
|
||||
# image_mask_7.c \
|
||||
# image_mask_8.c \
|
||||
# image_mask_9.c \
|
||||
# image_mask_10.c \
|
||||
# image_mask_11.c \
|
||||
# image_mask_12.c \
|
||||
# image_mask_13.c \
|
||||
# image_mask_14.c \
|
||||
# image_mask_15.c
|
||||
|
||||
expedite_LDADD = @EFL_LIBS@ -lm
|
||||
expedite_CFLAGS = @WIN32_CFLAGS@
|
||||
expedite_CXXFLAGS = @EXPEDITE_CXXFLAGS@
|
||||
expedite_LDADD = @EFL_LIBS@ @EFL_CXX_LIBS@ @EVIL_LIBS@ -lm
|
||||
expedite_LDFLAGS = @lt_enable_auto_import@
|
||||
|
||||
.rc.lo:
|
||||
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --tag=RC --mode=compile $(RC) $(RCFLAGS) $< -o $@
|
||||
|
||||
EXTRA_DIST = $(bin_SCRIPTS)
|
||||
|
|
|
@ -6,28 +6,32 @@ static void
|
|||
_setup(void)
|
||||
{
|
||||
Evas_Object *o;
|
||||
Evas_Textblock_Style *st;
|
||||
|
||||
o = efl_add(EFL_CANVAS_TEXTBLOCK_CLASS, evas);
|
||||
efl_gfx_entity_position_set(o, EINA_POSITION2D(10, 40));
|
||||
efl_gfx_entity_size_set(o, EINA_SIZE2D(win_w - 20, win_h - 50));
|
||||
efl_gfx_entity_visible_set(o, EINA_TRUE);
|
||||
|
||||
efl_text_font_family_set(o, "Vera");
|
||||
efl_text_font_size_set(o, 10);
|
||||
efl_text_color_set(o, 0, 0, 0, 255);
|
||||
efl_text_multiline_set(o, EINA_TRUE);
|
||||
efl_text_horizontal_align_set(o, 0.5);
|
||||
efl_text_wrap_set(o, EFL_TEXT_FORMAT_WRAP_WORD);
|
||||
|
||||
efl_text_markup_set
|
||||
(o,
|
||||
o = eo_add(EVAS_TEXTBLOCK_CLASS, G_evas);
|
||||
eo_do(o, evas_obj_position_set(10, 40),
|
||||
evas_obj_size_set(win_w - 20, win_h - 50),
|
||||
evas_obj_visibility_set(EINA_TRUE));
|
||||
st = evas_textblock_style_new();
|
||||
evas_textblock_style_set
|
||||
(st,
|
||||
"DEFAULT='font=Vera font_size=8 align=left color=#000 wrap=word'"
|
||||
"center='+ font=Vera font_size=10 align=center'"
|
||||
"/center='- \n \n'"
|
||||
"p='+ font=Vera font_size=10 align=left'"
|
||||
"/p='- \n \n'"
|
||||
);
|
||||
eo_do(o, evas_obj_textblock_style_set(st),
|
||||
evas_obj_textblock_clear(),
|
||||
evas_obj_textblock_text_markup_set
|
||||
("<center>"
|
||||
"Enlightenment used to be a window manager project, but "
|
||||
"since has changed a lot to become a miniature desktop and mobile "
|
||||
"device environment all of its own. It is now made up of many "
|
||||
"components (libraries and applications) that have specific uses. "
|
||||
"It is very large, and so requires more testing and demonstration."
|
||||
"</center>"
|
||||
"</br>"
|
||||
|
||||
"<center>"
|
||||
"Expedite is a full test suite for Evas, which is one of the "
|
||||
"core components of the Enlightenment Foundation Libraries. Evas "
|
||||
|
@ -35,8 +39,10 @@ _setup(void)
|
|||
"render to many targets, including framebuffer, X11, OpenGL, memory, "
|
||||
"DirectFB and other targets to boot. It handles high level graphic "
|
||||
"layout descriptions that applications set up, dealing with the hard "
|
||||
"work of doing the drawing for them.");
|
||||
|
||||
"work of doing the drawing for them."
|
||||
"</center>"
|
||||
));
|
||||
evas_textblock_style_free(st);
|
||||
o_text = o;
|
||||
ui_fps(0.0);
|
||||
}
|
||||
|
@ -44,7 +50,7 @@ _setup(void)
|
|||
static void
|
||||
_cleanup(void)
|
||||
{
|
||||
efl_del(o_text);
|
||||
eo_del(o_text);
|
||||
o_text = NULL;
|
||||
}
|
||||
|
||||
|
@ -55,7 +61,7 @@ _loop(double t EINA_UNUSED,
|
|||
}
|
||||
|
||||
static void
|
||||
_key(const char *key)
|
||||
_key(char *key)
|
||||
{
|
||||
if ((!strcmp(key, "Escape")) || (!strcmp(key, "q")) || (!strcmp(key, "Q")))
|
||||
{
|
||||
|
@ -67,5 +73,6 @@ _key(const char *key)
|
|||
void
|
||||
about_start(void)
|
||||
{
|
||||
ui_func_set(_key, _loop, _setup);
|
||||
ui_func_set(_key, _loop);
|
||||
_setup();
|
||||
}
|
||||
|
|
|
@ -1,6 +1,14 @@
|
|||
#ifndef ABOUT_H
|
||||
#define ABOUT_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
void about_start(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#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