Compare commits

...

93 Commits

Author SHA1 Message Date
Wander Lairson Costa 9db3724e47 Skip ill formed lines
Summary:
Some lines reported by expedite are just informative, like the window
size. We skip lines that don't have the formatting we expect.

Fixes T8852

Reviewers: vtorri, raster

Reviewed By: raster

Maniphest Tasks: T8852

Differential Revision: https://phab.enlightenment.org/D12186
2020-11-10 08:31:13 +00:00
Vincent Torri 7c4bebe47e Windows: remove Evil dependency, general cleanup for Windows
Test Plan: compilation and execution

Reviewers: raster

Differential Revision: https://phab.enlightenment.org/D12039
2020-07-07 13:39:31 +01:00
Hermet Park d6a3eb3dec containing ui setup steps in the profiling again.
This change is for compatibility to compare the new measurement with the past existing ones.

Now we proprly fix the missing setup steps in the profiling.
2019-12-30 16:00:56 +09:00
Hermet Park 7746bbb039 Revert "Revert "Setup before starting fps measurement""
This reverts commit cac6ca6a9a.
2019-12-30 15:42:29 +09:00
Hermet Park 46e328404c update version properly.
We can upgrade version to 1.24 when efl 1.24 is released.
2019-12-30 15:36:16 +09:00
Hermet Park 1c16ed647b remove shadow(unused) variables. 2019-12-30 13:57:55 +09:00
Hermet Park 5ca60ccf22 fix xconfigure errors. 2019-12-30 13:51:41 +09:00
Hermet Park deb3905a32 bump up version 2019-12-30 13:29:21 +09:00
Hermet Park cac6ca6a9a Revert "Setup before starting fps measurement"
This reverts commit 7874ae718f.
2019-12-30 13:25:44 +09:00
Hermet Park b72d775b10 proxy_textblock: increase a factor to update animation properly. 2019-12-27 15:03:51 +09:00
Hermet Park aee23715a2 text_style_different_string: increase a factor to update animation properly. 2019-12-27 13:50:25 +09:00
Hermet Park 7dca83b4e5 add one more resolution item. 2019-12-27 13:37:25 +09:00
Hermet Park a4d6ef526a version up efl dependency.
Some new efl interfaces are applied.
2019-12-27 13:29:23 +09:00
Hermet Park b84865bb12 image_blend_occlude_few: increase a factor to update animation properly. 2019-12-26 17:50:26 +09:00
Hermet Park 67771fd4a6 textblock_intl: increase a factor to update animation properly. 2019-12-26 17:22:10 +09:00
Hermet Park 4828d1a5d5 textblock_basic: increase an factor to update animation properly. 2019-12-26 17:07:55 +09:00
Hermet Park f3e0448bd3 fix array bounds overflow. 2019-12-24 18:46:55 +09:00
Hermet Park d540c8420b add a resolution option 720p-p 2019-12-24 18:35:01 +09:00
Hermet Park 7874ae718f Setup before starting fps measurement
It's not good to include the setup in fps measurement,
Also, animator tick occur immediately when test item is selected.
We need to setup before it in order to avoid invalid objects access.
2019-12-24 15:14:51 +09:00
Hermet Park 03324357ed about: update to use new efl interface. 2019-12-24 14:37:16 +09:00
Hermet Park cf48e97379 proxy_textblock: update api call. 2019-12-24 14:33:58 +09:00
Hermet Park ae6cf1318b compare list item count properly,
and remove s9 resolution in the default list.
2019-12-23 21:39:09 +09:00
Hermet Park 9bb9dba018 ui: remove menu icon.
Unnecessary decoration that may cause user look it as a wrong display.
2019-12-23 21:10:25 +09:00
Hermet Park 858246e2dd fix broken menu selection.
booo. efl_input_pointer_mouse_get() doesn't work.

This is a temporary fix for expedite working back.
2019-12-23 20:57:51 +09:00
Hermet Park a2bc36a91d proxy_textblock: correct textblock class name. 2019-12-23 19:53:16 +09:00
Cedric BAIL 08dd13567e Migrate to new font family API. 2019-12-06 09:29:22 -08:00
Cedric Bail ac6a3bcb44 Updated to fit EFL 1.23 API. 2019-09-25 10:26:17 -07:00
Cedric Bail 105e6568a4 main: lookup for the right file thanks error warning in Efl! 2019-09-25 10:25:47 -07:00
Ali Alzyod dc6c931dc2 evas_textblock: add test for parsing styles time (fill_format)
speed test for setting parsing formats during layot_setup stage
this is related to D9536
Differential Revision: https://phab.enlightenment.org/D9541
2019-08-12 10:12:00 -07:00
Cedric BAIL 4e6dd92826 add new test for 9patch files. 2019-08-09 11:03:42 -07:00
Cedric BAIL 6c2c96b622 add new test for stretchable zone support on image object. 2019-08-09 11:03:42 -07:00
Mike Blumenkrantz ba687d4b20 mark clippers static in previous 3 tests
Reviewers: cedric

Reviewed By: cedric

Tags: #expedite

Differential Revision: https://phab.enlightenment.org/D8888
2019-08-09 12:40:21 -04:00
Mike Blumenkrantz 735ca81d6b add a clipped textblock proxy test
Summary:
this renders a classic text passage split in twain between a real textblock
and a proxy render of the textblock to mimic rendering only a textblock

also provides a define for easily testing against raw textblock render perf
Depends on D8877

Reviewers: cedric, Hermet

Reviewed By: Hermet

Subscribers: Hermet

Tags: #expedite

Differential Revision: https://phab.enlightenment.org/D8878
2019-05-13 07:57:08 -04:00
Mike Blumenkrantz 37093983bf add clipped image proxy test
Summary:
this is a test with lots of image proxies which have clippers
Depends on D8836

Reviewers: cedric

Reviewed By: cedric

Tags: #expedite

Differential Revision: https://phab.enlightenment.org/D8877
2019-05-13 07:56:56 -04:00
Mike Blumenkrantz 3a1058aab1 add test for a clipped masked image
Summary:
this test is the same as one of the other mask tests (I forgot which)
but it clips the mask and then moves/resizes the mask crazily to make
the performance really bad

Reviewers: cedric

Reviewed By: cedric

Tags: #expedite

Differential Revision: https://phab.enlightenment.org/D8836
2019-05-13 07:56:19 -04:00
Lauro Moura 9fd3c26a5e 2to3 modifications to expedite-cmp
Make expedite-cmp runnable with py3

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8700
2019-04-24 09:56:57 -07:00
Cedric BAIL b624cde117 enable git phab to work with expedite repo. 2019-04-24 09:56:56 -07:00
Cedric BAIL 555b18dbaa Update use of buffer map that must specify a valid buffer size now. 2019-03-22 16:21:59 -07:00
Cedric BAIL bbc29b232b Disable debugging code. 2019-03-22 16:15:50 -07:00
Cedric BAIL cd761e5093 Update use of VG API after EFL update. 2019-03-22 16:13:05 -07:00
Cedric BAIL bea0e934ad Last warning to fix. 2019-03-13 17:31:13 -07:00
Cedric BAIL 6feba0405c Stop computing useless number. 2019-03-13 17:24:32 -07:00
Cedric BAIL 0f1d9a77e5 efl: migrate to the new efl_gfx_stack_raise_to_top and efl_gfx_stack_lower_to_bottom. 2019-03-13 17:21:51 -07:00
Cedric BAIL 00ffe9ca86 efl: we now require the Efl_Ui.h header for all the new Eo object. 2019-03-13 17:19:06 -07:00
Cedric BAIL 153818c6bc efl: use new API efl_file_simple_load. 2019-03-13 17:19:06 -07:00
Cedric BAIL a12ab95df0 build: add support for meson build system. 2019-03-13 17:19:06 -07:00
Hermet Park 6a69955e71 up to date version dependency. 2018-06-19 08:18:03 +09:00
Mike Blumenkrantz 27e5e02370 update efl api usage to work with current master
this is a bit hacky in some places where I created wrappers to avoid
having to manually rewrite dozens of function calls in places where I was
unable to sed/awk the changes that were needed

this is a dead project, so submitting such a massive machine-generated patch
for review would be futile. any bugs will probably never be seen since this
app is no longer used

ref T7037
2018-06-18 18:20:58 -04:00
Hermet Park 1587f3e5ea update AUTHORS 2017-10-14 22:57:00 +08:00
Daniel Hirt 9cdc8c68a7 Textblock: fix textblock_basic test
Test's text was changed some time ago, changing the escaped strings e.g.
"&gt;" to "&gt" (i.e. without ";").
Thus, only the starting portion of the text got shown.
Now it's fixed.
2017-06-14 08:20:41 +03:00
Cedric BAIL fe8e23cbc6 make it possible to follow output tick. 2017-06-13 14:33:56 -07:00
Stefan Schmidt e7b11dd328 build: make sure we check for c99 during configure
We have some c99 code in expedite (loop initial declarations) and some
setups bail out when trying to use c89 here. EFL is already enforcing
c99 and compilers have catched up a long time ago.

Fixes T5440
2017-05-10 13:22:22 +02:00
Jean-Philippe Andre 0529ce56b6 images: Fix YUV and other image data tests 2017-01-11 11:10:41 +09:00
Cedric BAIL f59b164351 attempt to use the new buffer_copy_set API.
It does currently crash or fails. Seems to me like an evas issue.
2016-12-27 11:56:49 -08:00
Cedric BAIL cd80106f54 force maximum throughput with latest Ecore_Evas change. 2016-12-27 10:50:05 -08:00
Hermet Park e2a2ef4f86 fix build break.
replace efl_gfx_shape to efl_gfx_path.

Still expedite is screwed up at behaviors... :(
2016-12-02 11:15:35 +09:00
Carsten Haitzler 4ab2935364 expedite ui - stop using invalid argb values 2016-11-11 11:59:02 +09:00
Subhransu Mohanty 525879533a fixed the build break because of api change.
Summary: NOTE: need to check if the api replacements are correct or not

Reviewers: Hermet, jpeg

Differential Revision: https://phab.enlightenment.org/D4329
2016-10-10 14:09:23 +09:00
Hermet Park 46e58922fe ui: fix all eo_event syntax changes.
Eo_Event -> Efl_Event
2016-10-10 14:08:30 +09:00
Jean-Philippe Andre 19657b6d25 ui: Fix build break due to eo api changes (input events) 2016-08-30 15:45:39 +09:00
Hermet Park 05a29c965a fix eo break.
Its api are still unstable. make it work again.
2016-08-22 19:00:56 +09:00
Jean-Philippe Andre ffa005ea3d Switch back to eo_del.
This was a brutal eo_unref -> eo_del. Should be good enough.
2016-07-19 19:03:49 +09:00
Jean-Philippe Andre 95d6a6cd9a Fix compilation for git master (1.18-alpha) 2016-07-19 19:03:49 +09:00
Daniel Hirt e79517e490 Fix build after EFL_CANVAS_RECTANGLE_CLASS change 2016-06-08 10:02:08 +00:00
Jean-Philippe Andre 74007f65bc Fix compilation - use eo_unref and buffer map
Remove eo api usage for TEXT and LINE objects.
This is a very quickly made patch, in order to test. Expedite
tests might need to be fixed up a little bit more if we use eo_halt.

Running expedite spews out TONS of errors.
2016-05-26 18:48:51 +09:00
Tom Hacohen 9a98d6376b Adjust according to the eo event member changes. 2016-04-12 15:27:38 +01:00
Jean-Philippe Andre 185fe20e88 Remove efl_gfx_filled_set() as eo-created images are filled
This is a behaviour change between legacy and eo apis.
To be discussed, of course, if someone disagrees.
2016-03-18 15:02:37 +09:00
Jean-Philippe Andre f7fa84bf93 ui: add more keyboard controls (home/end/pageup/pagedown)
Add support for: up/down/pageup/pagedown/home/end
There behaviour kinda makes sense visually, not logically (ie.
up goes to the left, pageup also, home also).

I didn't add any hint on the ui, just press the keys and test :)
2016-03-18 15:00:29 +09:00
Cedric BAIL f8b38f6c24 migrate to new broken data_get/set api. 2016-03-17 16:54:20 -07:00
Cedric BAIL f9834c142c migrate to new snapshot object. 2016-03-17 16:54:05 -07:00
Cedric BAIL adea5d2b26 migrate to new proxy object. 2016-03-17 16:53:50 -07:00
Cedric BAIL 051a4ec0cf migrate to new efl api. 2016-03-17 16:53:27 -07:00
Cedric BAIL 24eca8a778 evas: use new efl interface polygon API 2016-03-14 15:12:25 -07:00
Tom Hacohen a927cdd1a4 Revert "Automatic migration to the new eo_add syntax."
We reverted those changes.

This reverts commit 1c99584bcb.
2016-03-11 12:40:21 +00:00
Tom Hacohen 1c99584bcb Automatic migration to the new eo_add syntax. 2016-03-09 16:31:15 +00:00
Tom Hacohen 088df1425e Adjust according to recent Eo4 changes. 2016-03-03 14:03:49 +00:00
Tom Hacohen 1c72554acc Eo events: Migrate to the new eo event cb signature. 2016-02-29 11:38:38 +00:00
Nicolas Aguirre 58857a657c expedite: Add 1080p portrait resolution. 2015-11-16 17:11:55 +01:00
Jean-Philippe Andre 91ca743b85 Fix filter in snapshot test
Snaphot objects are opaque. So a color with alpha < 255 is not
valid. I kinda wonder:
- if snapshot objects should really be opaque
- should this have been properly handled by the image object?
2015-10-12 16:56:16 +09:00
Cedric BAIL 9cf0688f99 vg: fix inapropriate parenting of gradient. 2015-09-15 07:45:13 +02:00
Jean-Philippe Andre 6c1e40666d snapshot: simplify filter code. 2015-08-06 11:14:50 +02:00
Cedric BAIL 8e8a079515 snapshot: add a test with blur. 2015-08-06 11:14:40 +02:00
Yakov Goldberg 3ce8b3f145 vector: add a basic circle test
Separate test for circle was added because results are quite
different for shapes/backends

For Cairo backend: rect == 0.72, circle = 0.32 -> 125% slower
For Freetype backend: rect == 2.81, circle = 2.26 -> 24% slower
2015-06-30 11:44:28 +03:00
Yakov Goldberg cc4fa8a76e vector: re-add a basic rect test 2015-06-30 11:44:23 +03:00
Yakov Goldberg 0d6c86f4ab Rename test: VG Basic -> Vg Basic Gradient 2015-06-30 10:58:01 +03:00
Cedric BAIL c290c2d15c expedite: add ability to dump any frame. 2015-06-25 18:30:26 +02:00
Cedric BAIL 014001fb20 font_effect: fix JP borking. 2015-06-25 17:56:26 +02:00
Cedric BAIL 7de69008b4 expedite: remove FIXME that is already fixed. 2015-06-25 17:27:53 +02:00
Yakov Goldberg b1931c5146 vector: add a scaling test 2015-06-23 17:11:48 +03:00
Yakov Goldberg 817b8c3500 Use premultiplied colors in stroke's color 2015-06-18 10:05:57 +03:00
Yakov Goldberg 4aa37445c5 vector: add a basic test (no change, just moving). 2015-06-16 17:25:43 +02:00
Cedric BAIL 9b7d97d503 move to EFL 1.14 interfaces. 2015-04-09 13:31:59 +02:00
Jean-Philippe Andre accb76125f Add arcconfig file
Differential Revision: https://phab.enlightenment.org/D1961
2015-02-12 11:47:23 +09:00
142 changed files with 4184 additions and 2939 deletions

6
.arcconfig Normal file
View File

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

View File

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

376
INSTALL
View File

@ -1,14 +1,368 @@
COMPILING and INSTALLING:
Installation Instructions
*************************
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
Copyright (C) 1994-1996, 1999-2002, 2004-2016 Free Software
Foundation, Inc.
To install (run this as root, or the user who handles installs):
make install
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.
NOTE: You MUST make install Expedite for it to run properly.
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.

View File

@ -3,14 +3,14 @@ dnl Process this file with autoconf to produce a configure script.
# get rid of that stupid cache mechanism
rm -f config.cache
AC_INIT([expedite], [1.11.99], [enlightenment-devel@lists.sourceforge.net])
AC_INIT([expedite], [1.23.0], [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-bzip2])
AM_INIT_AUTOMAKE([1.6 dist-xz])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
PKG_PROG_PKG_CONFIG
@ -18,97 +18,46 @@ 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
### 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}"
PKG_CHECK_MODULES([EFL], eina >= 1.7.99 efl >= 1.13.0 eo >= 1.7.99 evas >= 1.7.99 eet >= 1.7.99 ecore-evas >= 1.7.99 ecore >= 1.7.99)
AC_SUBST(requirement_expedite)
PKG_CHECK_MODULES([EFL], [${requirement_expedite}])
EFL_ENABLE_EO_API_SUPPORT
EFL_ENABLE_BETA_API_SUPPORT
### Checks for header files
### Checks for types
### Checks for structures
### Checks for compiler characteristics
AC_HEADER_STDC
AC_C_CONST
AC_PROG_CC_C99
AM_PROG_CC_C_O
AC_C___ATTRIBUTE__
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"
if test "x${ac_cv_prog_cc_c99}" = "xno" ; then
AC_MSG_ERROR([expedite requires a c99-capable compiler])
fi
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])

BIN
data/9patch_test.9.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

View File

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

61
data/meson.build Normal file
View File

@ -0,0 +1,61 @@
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 Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

BIN
data/vector.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

63
meson.build Normal file
View File

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

View File

@ -6,8 +6,7 @@ AM_CPPFLAGS = \
-DPACKAGE_BIN_DIR=\"$(bindir)\" \
-DPACKAGE_LIB_DIR=\"$(libdir)\" \
-DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \
@EFL_CFLAGS@ \
@EVIL_CFLAGS@
@EFL_CFLAGS@
bin_PROGRAMS = expedite
bin_SCRIPTS = expedite-cmp
@ -50,6 +49,8 @@ image_blend_smooth_solid_same_scaled.c \
image_blend_border.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 \
@ -86,6 +87,7 @@ 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 \
@ -108,6 +110,8 @@ 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 \
@ -124,17 +128,17 @@ image_mask_9.c \
image_mask_10.c \
image_mask_11.c \
image_mask_12.c \
image_mask_13.c
image_mask_13.c \
image_mask_clipped.c \
vg_basic_rect.c \
vg_basic_circle.c \
vg_basic_gradient.c \
vg_scaled.c \
snapshot_widgets_file_icons.c
# \
# image_mask_14.c \
# image_mask_15.c
expedite_CFLAGS = @WIN32_CFLAGS@
expedite_CXXFLAGS = @EXPEDITE_CXXFLAGS@
expedite_LDADD = @EFL_LIBS@ @EVIL_LIBS@ -lm
expedite_LDFLAGS = @lt_enable_auto_import@
.rc.lo:
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --tag=RC --mode=compile $(RC) $(RCFLAGS) $< -o $@
expedite_LDADD = @EFL_LIBS@ -lm
EXTRA_DIST = $(bin_SCRIPTS)

View File

@ -6,32 +6,28 @@ static void
_setup(void)
{
Evas_Object *o;
Evas_Textblock_Style *st;
o = eo_add(EVAS_TEXTBLOCK_CLASS, 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>"
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,
"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 "
@ -39,10 +35,8 @@ _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."
"</center>"
));
evas_textblock_style_free(st);
"work of doing the drawing for them.");
o_text = o;
ui_fps(0.0);
}
@ -50,7 +44,7 @@ _setup(void)
static void
_cleanup(void)
{
eo_del(o_text);
efl_del(o_text);
o_text = NULL;
}
@ -61,7 +55,7 @@ _loop(double t EINA_UNUSED,
}
static void
_key(char *key)
_key(const char *key)
{
if ((!strcmp(key, "Escape")) || (!strcmp(key, "q")) || (!strcmp(key, "Q")))
{
@ -73,6 +67,5 @@ _key(char *key)
void
about_start(void)
{
ui_func_set(_key, _loop);
_setup();
ui_func_set(_key, _loop, _setup);
}

View File

@ -1,288 +0,0 @@
#include "main.h"
#include <windowsx.h>
#include <Evas_Engine_Direct3D.h>
static HWND window;
static HINSTANCE instance;
static LRESULT CALLBACK
MainWndProc(HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam)
{
switch (uMsg)
{
case WM_CREATE:
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
case WM_CLOSE:
PostQuitMessage(0);
return 0;
case WM_PAINT: {
PAINTSTRUCT ps;
HDC hdc;
hdc = BeginPaint (window, &ps);
evas_damage_rectangle_add(evas,
ps.rcPaint.left, ps.rcPaint.top,
ps.rcPaint.right - ps.rcPaint.left,
ps.rcPaint.bottom - ps.rcPaint.top);
EndPaint(window, &ps);
return 0;
}
case WM_SIZING:
{
PRECT rect = (PRECT)lParam;
evas_output_viewport_set(evas, 0, 0,
rect->right - rect->left,
rect->bottom - rect->top);
evas_output_size_set(evas,
rect->right - rect->left,
rect->bottom - rect->top);
win_w = rect->right - rect->left;
win_h = rect->bottom - rect->top;
return 0;
}
case WM_RBUTTONDOWN:
evas_event_feed_mouse_move(evas, GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam), 0, NULL);
evas_event_feed_mouse_down(evas, 3, EVAS_BUTTON_NONE, 0, NULL);
return 0;
case WM_LBUTTONDOWN:
evas_event_feed_mouse_move(evas, GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam), 0, NULL);
evas_event_feed_mouse_down(evas, 1, EVAS_BUTTON_NONE, 0, NULL);
return 0;
case WM_LBUTTONUP:
evas_event_feed_mouse_move(evas, GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam), 0, NULL);
evas_event_feed_mouse_up(evas, 1, EVAS_BUTTON_NONE, 0, NULL);
return 0;
case WM_RBUTTONUP:
evas_event_feed_mouse_move(evas, GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam), 0, NULL);
evas_event_feed_mouse_up(evas, 3, EVAS_BUTTON_NONE, 0, NULL);
return 0;
case WM_MOUSEMOVE:
if (!evas_pointer_inside_get(evas)) evas_event_feed_mouse_in(evas, 0, NULL);
evas_event_feed_mouse_move(evas, GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam), 0, NULL);
return 0;
case WM_MOUSELEAVE:
evas_event_feed_mouse_out(evas, 0, NULL);
return 0;
/* FIXME : can't find an event when the mouse is entering */
case WM_KEYDOWN:
case WM_SYSKEYDOWN: {
int key;
key = LOWORD(wParam);
if ((key == VK_SHIFT) ||
(key == VK_LSHIFT) ||
(key == VK_RSHIFT))
evas_key_modifier_on(evas, "Shift");
if ((key == VK_CONTROL) ||
(key == VK_LCONTROL) ||
(key == VK_RCONTROL))
evas_key_modifier_on(evas, "Control");
if ((key == VK_MENU) ||
(key == VK_LMENU) ||
(key == VK_RMENU))
evas_key_modifier_on(evas, "Alt");
if ((key == VK_LWIN) ||
(key == VK_RWIN))
evas_key_modifier_on(evas, "Super");
if (key == VK_CAPITAL)
{
if (evas_key_lock_is_set(evas_key_lock_get(evas), "Caps_Lock"))
evas_key_lock_off(evas, "Caps_Lock");
else
evas_key_lock_on(evas, "Caps_Lock");
}
if (key == VK_NUMLOCK)
{
if (evas_key_lock_is_set(evas_key_lock_get(evas), "Num_Lock"))
evas_key_lock_off(evas, "Num_Lock");
else
evas_key_lock_on(evas, "Num_Lock");
}
if (key == VK_SCROLL)
{
if (evas_key_lock_is_set(evas_key_lock_get(evas), "Scroll_Lock"))
evas_key_lock_off(evas, "Scroll_Lock");
else
evas_key_lock_on(evas, "Scroll_Lock");
}
if (key == VK_ESCAPE)
evas_event_feed_key_down(evas, "Escape", "Escape", NULL, NULL, 0, NULL);
if (key == VK_RETURN)
evas_event_feed_key_down(evas, "Return", "Return", NULL, NULL, 0, NULL);
if (key == VK_LEFT)
evas_event_feed_key_down(evas, "Left", "Left", NULL, NULL, 0, NULL);
if (key == VK_RIGHT)
evas_event_feed_key_down(evas, "Right", "Right", NULL, NULL, 0, NULL);
if (key == 81)
evas_event_feed_key_down(evas, "Q", "Q", NULL, NULL, 0, NULL);
if (key == 113)
evas_event_feed_key_down(evas, "q", "q", NULL, NULL, 0, NULL);
return 0;
}
case WM_KEYUP:
case WM_SYSKEYUP: {
int key;
key = LOWORD(wParam);
if ((key == VK_SHIFT) ||
(key == VK_LSHIFT) ||
(key == VK_RSHIFT))
evas_key_modifier_off(evas, "Shift");
if ((key == VK_CONTROL) ||
(key == VK_LCONTROL) ||
(key == VK_RCONTROL))
evas_key_modifier_off(evas, "Control");
if ((key == VK_MENU) ||
(key == VK_LMENU) ||
(key == VK_RMENU))
evas_key_modifier_off(evas, "Alt");
if ((key == VK_LWIN) ||
(key == VK_RWIN))
evas_key_modifier_off(evas, "Super");
if (key == VK_ESCAPE)
evas_event_feed_key_up(evas, "Escape", "Escape", NULL, NULL, 0, NULL);
if (key == VK_RETURN)
evas_event_feed_key_up(evas, "Return", "Return", NULL, NULL, 0, NULL);
if (key == VK_LEFT)
evas_event_feed_key_up(evas, "Left", "Left", NULL, NULL, 0, NULL);
if (key == VK_RIGHT)
evas_event_feed_key_up(evas, "Right", "Right", NULL, NULL, 0, NULL);
if (key == 81)
evas_event_feed_key_up(evas, "Q", "Q", NULL, NULL, 0, NULL);
if (key == 113)
evas_event_feed_key_up(evas, "q", "q", NULL, NULL, 0, NULL);
return 0;
}
default:
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
}
Eina_Bool
engine_direct3d_args(const char *engine, int width, int height)
{
WNDCLASS wc;
RECT rect;
HDC dc;
MSG msg;
Evas_Engine_Info_Direct3D *einfo;
DWORD style;
int depth;
int i;
instance = GetModuleHandle(NULL);
if (!instance) return EINA_FALSE;
wc.style = 0;
wc.lpfnWndProc = MainWndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = instance;
wc.hIcon = LoadIcon (NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor (NULL, IDC_ARROW);
wc.hbrBackground = GetSysColorBrush(COLOR_BTNFACE);
wc.lpszMenuName = NULL;
wc.lpszClassName = "Evas_Direct3D_Test";
if(!RegisterClass(&wc))
goto free_library;
rect.left = 0;
rect.top = 0;
rect.right = width;
rect.bottom = height;
AdjustWindowRect (&rect, WS_OVERLAPPEDWINDOW | WS_SIZEBOX, FALSE);
window = CreateWindowEx(0,
"Evas_Direct3D_Test",
"Evas_Direct3D_Test",
WS_OVERLAPPEDWINDOW | WS_SIZEBOX,
CW_USEDEFAULT, CW_USEDEFAULT,
rect.right - rect.left, rect.bottom - rect.top,
NULL, NULL, instance, NULL);
if (!window)
goto unregister_class;
/* make the window non resizable */
style = GetWindowLong(window, GWL_STYLE);
style &= ~WS_THICKFRAME;
if (!SetWindowLong(window, GWL_STYLE, style))
goto unregister_class;
dc = GetDC(NULL);
if (!dc)
goto destroy_window;
depth = GetDeviceCaps(dc, BITSPIXEL);
ReleaseDC(NULL, dc);
evas_output_method_set(evas, evas_render_method_lookup("direct3d"));
einfo = (Evas_Engine_Info_Direct3D *)evas_engine_info_get(evas);
if (!einfo)
{
fprintf(stderr, "Evas does not support the Direct3D Engine\n");
goto destroy_window;
}
einfo->info.window = window;
einfo->info.depth = depth;
einfo->info.rotation = 0;
if (!evas_engine_info_set(evas, (Evas_Engine_Info *)einfo))
{
printf("Evas can not setup the informations of the Direct3D Engine\n");
goto destroy_window;
}
/* the second parameter is ignored, as it's the first call of ShowWindow */
ShowWindow(window, SW_SHOWDEFAULT);
UpdateWindow(window);
return EINA_TRUE;
destroy_window:
DestroyWindow(window);
unregister_class:
UnregisterClass("Evas_Direct3D_Test", instance);
free_library:
FreeLibrary(instance);
return EINA_FALSE;
}
void
engine_direct3d_loop(void)
{
MSG msg;
int res;
again:
if (!PeekMessage (&msg, window, 0, 0, PM_NOREMOVE))
return;
res = GetMessage (&msg, NULL, 0, 0);
TranslateMessage (&msg);
DispatchMessage (&msg);
goto again;
}
void
engine_direct3d_shutdown(void)
{
DestroyWindow(window);
UnregisterClass("Evas_Direct3D_Test", instance);
FreeLibrary(instance);
}

View File

@ -1 +0,0 @@
HI_RES_AWARE CEUX {1}

View File

@ -1,291 +0,0 @@
#include "main.h"
#include <windowsx.h>
#include <Evas_Engine_Software_DDraw.h>
static HWND window;
static HINSTANCE instance;
static LRESULT CALLBACK
MainWndProc(HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam)
{
switch (uMsg)
{
case WM_CREATE:
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
case WM_CLOSE:
PostQuitMessage(0);
return 0;
case WM_WINDOWPOSCHANGED: {
PAINTSTRUCT ps;
HDC hdc;
hdc = BeginPaint (window, &ps);
evas_damage_rectangle_add(evas,
ps.rcPaint.left, ps.rcPaint.top,
ps.rcPaint.right - ps.rcPaint.left,
ps.rcPaint.bottom - ps.rcPaint.top);
EndPaint(window, &ps);
return 0;
}
case WM_SIZING:
{
PRECT rect = (PRECT)lParam;
evas_output_viewport_set(evas, 0, 0,
rect->right - rect->left,
rect->bottom - rect->top);
evas_output_size_set(evas,
rect->right - rect->left,
rect->bottom - rect->top);
win_w = rect->right - rect->left;
win_h = rect->bottom - rect->top;
return 0;
}
case WM_RBUTTONDOWN:
evas_event_feed_mouse_move(evas, GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam), 0, NULL);
evas_event_feed_mouse_down(evas, 3, EVAS_BUTTON_NONE, 0, NULL);
return 0;
case WM_LBUTTONDOWN:
evas_event_feed_mouse_move(evas, GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam), 0, NULL);
evas_event_feed_mouse_down(evas, 1, EVAS_BUTTON_NONE, 0, NULL);
return 0;
case WM_LBUTTONUP:
evas_event_feed_mouse_move(evas, GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam), 0, NULL);
evas_event_feed_mouse_up(evas, 1, EVAS_BUTTON_NONE, 0, NULL);
return 0;
case WM_RBUTTONUP:
evas_event_feed_mouse_move(evas, GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam), 0, NULL);
evas_event_feed_mouse_up(evas, 3, EVAS_BUTTON_NONE, 0, NULL);
return 0;
case WM_MOUSEMOVE:
if (!evas_pointer_inside_get(evas)) evas_event_feed_mouse_in(evas, 0, NULL);
evas_event_feed_mouse_move(evas, GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam), 0, NULL);
return 0;
case WM_MOUSELEAVE:
evas_event_feed_mouse_out(evas, 0, NULL);
return 0;
/* FIXME : can't find an event when the mouse is entering */
case WM_KEYDOWN:
case WM_SYSKEYDOWN: {
int key;