Commit Graph

74 Commits

Author SHA1 Message Date
Michael Natterer 967cbb4fad app: use the GParamSpec's name in gimp_pdb_dump()
and remove gimp_pdb_compat_arg_type_from_gtype(). The core is now free
of PDB legacy code.
2019-08-30 11:43:53 +02:00
Michael Natterer 32ea28b6b1 app, libgimp, libgimpbase: plug-in and PDB protocol refactoring part two
- Change the wire protocol's GPProcInstall to transmit the entire
  information needed for constructing all GParamSpecs we use, don't
  use GimpPDBArgType in GPProcInstall but an enum private to the wire
  protocol plus the GParamSpec's GType name. Bump the wire protocol
  version.

- Add gimpgpparamspecs.[ch] in both app/plug-in/ and libgimp/ which
  take care of converting between GPParamDef and GParamSpec. They
  share code as far as possible.

- Change pluginrc writing and parsing to re-use GPParamDef and the
  utility functions from gimpgpparamspecs.

- Remove gimp_pdb_compat_param_spec() from app/pdb/gimp-pdb-compat.[ch],
  the entire core uses proper GParamSpecs from the wire protocol now,
  the whole file will follow down the drain once we use a GValue
  representation on the wire too.

- In gimp_plug_in_handle_proc_install(), change the "run-mode"
  parameter to a GParamSpecEnum(GIMP_TYPE_RUN_MODE) (if it is not
  already an enum). and change all places in app/ to treat it as an
  enum value.

- plug-ins: fix cml-explorer to register correctly, a typo in
  "run-mode" was never noticed until now.

- Add gimpgpcompat.[ch] in libgimp to deal with all the transforms
  between old-style wire communication and using GParamSpec and
  GValue, it contains some functions that are subject to change or
  even removal in the next steps.

- Change the libgimp GimpProcedure and GimpPlugIn in many ways to be
  able to actually install procedures the new way.

- plug-ins: change goat-exercise to completely use the new GimpPlugIn
  and GimpProcedure API, look here to see how plug-ins will look in
  the future, of course subject to change until this is finished.

- Next: changing GPParam to transmit all information about a GValue.
2019-07-28 17:34:40 +02:00
Michael Natterer e931895f7c Issue #3364 - make check fails with a linker error
Link tests against $(LIBARCHIVE_LIBS).
2019-05-25 16:02:00 +02:00
Ell 68b22d45ed app: link tests against libappfile-data 2019-02-12 13:54:24 -05:00
Ell 889e2e26ee app: remove gimp-scratch; replace with gegl-scratch
The scratch allocator has been moved to GEGL (commit
gegl@b99032d799dda3436ffa8c1cc28f8b0d34fb965d).  Remove gimp-
scratch, and replace all its uses with gegl-scratch.
2019-01-06 07:37:19 -05:00
Ell 471fa632cd app: fix gimp-scratch linking in tests/ 2018-12-01 07:24:50 -05:00
Oleksii Samorukov 7921b24a89 tests: implement gimp_test_utils_synthesize_key_event on OSX/QUARTZ
(cherry picked from commit 9ae19eb8ec)
2018-11-23 23:07:20 +01:00
Alex Samorukov 53f0f93556 add to fix test link on OSX
(cherry picked from commit d650e9f81f)
2018-11-23 10:56:52 +01:00
Ell 7cdd1ebeef app: add source location information to the Linux GimpBacktrace backend
When libbacktrace is available, use it to retrieve source location
information in the Linux GimpBacktrace backend.
2018-09-22 22:39:08 -04:00
Ell 7a02859d32 app: fix app/tests linking
Required since commit 80bf686c94.
2018-09-02 04:57:40 -04:00
Michael Natterer 6a7a010769 app: link tests against APPSTREAM_GLIB_LIBS 2018-07-06 13:26:07 +02:00
Michael Schumacher 599f4bfd8b app: fix .NOTPARALLEL: check target 2018-06-29 09:15:44 +00:00
Michael Schumacher c008ef7e85 app: Prevent parallel builds for the tests
The tests must not be run in parallel or in a different order as specified.
2018-06-29 07:49:06 +00:00
Michael Natterer e237d431de app: fix some stuff in tests, down to 3 failing
- set GIMP3_DIRECTORY env variable not GIMP2_DIRECTORY
- make sure the cursors resource gets compiled in
- remove tab autosizing test, that code is gone
2018-05-29 00:44:51 +02:00
Michael Natterer 4591452007 app: remove the gimp-2-6 session compatibility test
It was unreliable and a huge pain, and 2.6 is really old shit.
2018-05-20 20:02:13 +02:00
Ell 71bbd88e00 app: layer mode code shuffling
Commit 3635cf04ab moved the special
handling of bottom-layer compositing to GimpOperationLayerMode.
This required giving the op more control over the process()
function of its subclasses.  As a temporary workaround, the commit
bypassed the subclasses entirely, using "gimp:layer-mode" for all
modes.  This is the reckoning :)

Add a process() virtual function to GimpOperationLayerMode, which
its subclasses should override instead of
GeglOperationPointComposer3's process() functions.  Reinstate the
subclasses (by returning the correct op in
gimp_layer_mode_get_oepration()), and have them override this
function.

Improve the way gimp_operation_layer_mode_process() dispatches to
the actual process function, to slightly lower its overhead and
fix some thread-safety issues.

Remove the "function" field of the layer-mode info array, and have
gimp_layer_mode_get_function() return the
GimpOperationLayerMode::process() function of the corresponding
op's class (caching the result, to keep it cheap.)  This reduces
redundancy, allows us to make the ops' process() functions private,
and simplifies SSE dispatching (only used by NORMAL mode,
currently.)

Move the blend and composite functions of the non-specialized
layer modes to gimpoperationlayermode-{blend,composite}.[hc],
respectively, to improve code organization.

Move the SSE2 composite functions to a separate file, so that they
can be built as part of libapplayermodes_sse2, allowing
libapplayermodes to be built without SSE2 compiler flags.  This
allows building GIMP with SSE acceleration enabled, while running
the resulting binary on a target with no SSE accelration.

Add a "blend_function" field to the layer-mode info array, and use
it to specify the blend function for the non-specialized modes.
This replaces the separate switch() statement that we used
previously.

Remove the "affected_region" field of the layer-mode info array.
We don't need it anymore, since we can go back to using
GimpOperationLayerMode's virtual get_affected_region() function.

Last but not least, a bunch of code cleanups and consistency
adjustments.
2017-08-17 11:19:37 -04:00
Michael Natterer e8ee5475b7 app: move all propgui files from app/widgets/ to new folder app/propgui/
We are getting more and app/widgets/ is already too large.
2017-07-03 12:29:41 +02:00
Michael Natterer 2dbf1b46b2 app: rename gimp_layer_mode_is_linear() to gimp_layer_mode_wants_linear_data() 2017-01-31 01:43:48 +01:00
Michael Natterer dd3eec6198 app: change linking order of the sub-libs of app/operations
so layer-modes/ can use the enums in enums-types.h without failing to
link.
2017-01-17 14:28:40 +01:00
Michael Natterer 87e5d10ddb app: make tests build again 2017-01-15 18:52:43 +01:00
Michael Natterer 2ed8bd1fce app: use relative paths in tests/Makefile.am
Shorter and more readable.
2017-01-10 10:43:24 +01:00
Michael Natterer fd070eeb25 app: start moving layer modes into their own build directories
New directories:

operations/layer-modes/
operations/layer-modes-legacy/
2017-01-09 21:58:18 +01:00
Michael Natterer 0bfa402c1a Argh, this was meant to be squashed into the previous commit... 2016-05-26 22:18:50 +02:00
Michael Natterer 97ea600623 app: s/Default/Color/ in the testing icon theme Makefile rules 2016-01-11 20:35:32 +01:00
Michael Natterer 31a15570eb app: use less weird paths for creating the test icon theme 2016-01-04 00:10:30 +01:00
Daniel Sabo c97a529968 app: Change mypaint dependency from libmypaint-gegl to just libmypaint 2015-12-28 09:18:46 -08:00
Michael Natterer 5df4b07b04 app: fix icon theme location in tests 2015-12-22 21:27:20 +01:00
Michael Natterer 4266f86e08 app: remove tons of linker workarounds from Makefilea
either linkers got smarter or our structure got better, or this breaks
on whatever other linkers again...
2015-08-27 21:44:15 +02:00
Michael Natterer 46eef4d09d app: remove references to plug_in_icc_profile_apply_rgb() from Makefiles 2015-08-27 13:52:26 +02:00
Nils Philippsen 9171de3b80 tests: link against -lm
(see commit 4c7338c097)
2015-07-16 14:27:04 +02:00
Michael Natterer b4f85a0022 app: link tests to Z_LIBS 2015-04-15 13:13:47 +02:00
Michael Natterer 02fd23e3b8 app: link tests against LIBMYPAINTGEGL_LIBS 2015-04-13 02:14:28 +02:00
Jehan c4dbb34199 Fix make distcheck.
Use srcdir/abs_srcdir in Makefile.am for dealing with VPATH builds.
2014-08-16 18:59:30 +02:00
Jehan b1fc539f6c tests: build the test icon theme for all platforms.
In particular, we were not building these for win32, which has no
symbolic link concept. So let's use $(LN_S) defined by autoconf for this
purpose, as it will copy files for platforms without ln support.
Moreover this way, we don't create one such folder for each and every
test run and fill up the tmp directory with countless directories, that
we never clean up.
On Win32, this fixes 3 tests which were failing because of the missing
icons.
2014-08-15 21:21:41 +00:00
Mukund Sivaraman 81e955ed1b build: Add HarfBuzz dependency 2014-05-03 00:27:47 +05:30
Michael Natterer a0479e8d8b app: link the tests against lcms 2014-03-16 19:52:17 +01:00
Hartmut Kuhse 21bed1e2fb Completely rewrite metadata handling using gexiv2
Based on original patches from Hartmut Kuhse and modified
by Michael Natterer. Changes include:

- remove libexif dependency and add a hard dependency on gexiv2
- typedef GExiv2Metadata to GimpMetadata to avoid having to
  include gexiv2 globally
- add basic GimpMetadata handling functions to libgimpbase
- add image and image file specific metadata functions to libgimp,
  including the exif orientation image rotate dialog
- port plug-ins to use the new APIs
- port file-tiff-save's UI to GtkBuilder
- add new plug-in "metadata" to view the image's metadata
- keep metadata around as GimpImage member in the core
- update the image's metadata on image size, resolution and precision
  changes
- obsolete the old metadata parasites
- migrate the old parasites to new GimpMetadata object on XCF load
2013-10-27 01:02:17 +02:00
Michael Henning 2df4fa2d6f tests: fix running make check with both parallel make and xvfb
Before, the xvfbs would all try to be on DISPLAY=:99, which
caused issues.
2013-05-12 19:38:59 -04:00
Michael Natterer 6c025d52bf app: make app/tests/ build again 2012-06-20 22:13:06 +02:00
Michael Natterer 2bf48b5f19 app: remove leftover operation testing junk from tests Makefile.am 2012-06-17 00:22:48 +02:00
Ville Sokk e35427071b app: added test for gegl operations 2012-06-14 21:29:52 +03:00
Michael Natterer b058137145 Bug 676389 - Compilation fails using clang because of -u options passed to linker
Use -Wl,-u,symbol to makes things build instead of just -u symbol.
2012-05-20 19:29:44 +02:00
Michael Natterer 91392f85e5 app: make tests build again 2012-05-19 01:27:37 +02:00
Michael Natterer ba4034f8dc app: fix tests: must not link against libgimp 2012-05-10 22:48:37 +02:00
Martin Nordholts d7db79c2f2 app: Make tests build
In particular: link.
2012-05-10 22:12:58 +02:00
Martin Nordholts 1adfcfaf58 app/tests: Build and initialize GEGL
2 tests left that doesn't pass, will fix
2012-05-02 22:32:41 +02:00
Michael Natterer a9e60bf6ce app: make the tests build again 2012-05-02 17:51:03 +02:00
Martin Nordholts cb242a484e app: Add basic GimpTileBackendTileManager unit test
Add a super basic GimpTileBackendTileManager unit test and implement
GimpTileBackendTileManager enough to make it pass. Still a lot of work
left to do, this was just to get things up and running.
2011-09-30 12:00:40 +02:00
Martin Nordholts 172c3eb935 app/tests: Add single-window mode specific tests 2011-07-20 16:36:36 +02:00
Martin Nordholts f55f26c9b8 app/tests: Add single-window mode session files test
Rename and copy some session files and add a single-window mode
session files test.
2011-06-14 23:34:12 +02:00