Commit Graph

55 Commits

Author SHA1 Message Date
John Cupitt
78f927e606 revide comments in cpp binding 2020-03-27 11:42:58 +00:00
jaubourg
28b4c918b6 allow null image as source for assignment and copy constructor: fixes #1595 2020-03-27 02:46:57 +01:00
John Cupitt
95444d0849 rename stuff in the C++ API for stream -> source 2019-12-30 17:49:41 +00:00
John Cupitt
4c5873809f experiment with renaming stream
rename as VipsConnection, VipsSource, VipsTarget etc.

see https://github.com/libvips/libvips/issues/1494#issuecomment-569498619

renamed with this script:

```

set -e

edit() {
        sed -i -E "$1" rename
}

for i in $*; do
        cp $i rename

        edit s/VIPS_STREAMOU/VIPS_TARGET_CUSTOM/g
        edit s/VIPS_STREAMO/VIPS_TARGET/g
        edit s/VIPS_STREAMIU/VIPS_SOURCE_CUSTOM/g
        edit s/VIPS_STREAMI/VIPS_SOURCE/g
        edit s/VIPS_STREAM/VIPS_CONNECTION/g

        edit s/vips_streamou/vips_target_custom/g
        edit s/vips_streamo/vips_target/g
        edit s/vips_streamiu/vips_source_custom/g
        edit s/vips_streami/vips_source/g
        edit s/vips_stream/vips_connection/g

        edit s/VipsStreamou/VipsTargetCustom/g
        edit s/VipsStreamo/VipsTarget/g
        edit s/VipsStreamiu/VipsSourceCustom/g
        edit s/VipsStreami/VipsSource/g
        edit s/VipsStream/VipsConnection/g

        # eg. VIPS_TYPE_STREAM or VIPS_IS_STREAM
        edit "s/VIPS_([A-Z]+)_STREAMOU/VIPS_\1_TARGET_CUSTOM/g"
        edit "s/VIPS_([A-Z]+)_STREAMO/VIPS_\1_TARGET/g"
        edit "s/VIPS_([A-Z]+)_STREAMIU/VIPS_\1_SOURCE_CUSTOM/g"
        edit "s/VIPS_([A-Z]+)_STREAMI/VIPS_\1_SOURCE/g"
        edit "s/VIPS_([A-Z]+)_STREAM/VIPS_\1_CONNECTION/g"

        edit s/streamou/target_custom/g
        edit s/streamo/target/g
        edit s/streamiu/source_custom/g
        edit s/streami/source/g

        # various identifiers which also change
        edit s/is_a_stream/is_a_source/g
        edit s/find_load_stream/find_load_source/g
        edit s/find_save_stream/find_save_target/g
        edit s/new_from_stream/new_from_source/g
        edit s/write_to_stream/write_to_target/g
        edit s/vips_thumbnail_stream/vips_thumbnail_source/g

        # eg. vips_webpload_stream
        edit "s/vips_([a-z]+)load_stream/vips_\1load_source/g"

        # eg. vips_webpsave_stream
        edit "s/vips_([a-z]+)save_stream/vips_\1save_target/g"

        mv rename $i
done
```
2019-12-29 21:40:21 +00:00
Kleis Auke Wolthuizen
2499b38403 Update C++ binding and function list
The generators use the new Introspect class of pyvips.
2019-11-29 14:51:03 +01:00
John Cupitt
123c52be70 revert to call-by-value for c++ API 2019-11-13 08:44:59 +00:00
Kleis Auke Wolthuizen
b49910d270 Add support for streaming in the C++ binding
See: libvips/libvips#1443.
2019-11-10 13:46:29 +01:00
Kleis Auke Wolthuizen
42bb8f51b9 Support std::vector within the image_get/set_array_int functions 2019-07-15 15:29:19 +02:00
Tomáš Szabo
1b54684650
Add set and get for an array of ints 2019-07-05 17:29:11 +02:00
John Cupitt
75ebb162f9 Merge branch 'master' into add-icc-fallbacks 2019-01-12 13:58:30 +00:00
Kleis Auke Wolthuizen
c397543c8e Add a std::string overload function for new_from_buffer 2019-01-11 13:53:09 +01:00
Kleis Auke Wolthuizen
bd5711ef8e Add remove function to the C++ binding
To remove an item of metadata.
2019-01-10 17:39:45 +01:00
Kleis Auke Wolthuizen
cd340d0ace Add missing C++ functions
The functions has_alpha() and copy_memory() were missing from the C++ binding.
2019-01-10 14:56:04 +01:00
John Cupitt
b8a158b69b seems to work
added some more consts as well
2019-01-03 13:34:13 +00:00
John Cupitt
26d0e312c6 add bandand/or/eor to the cpp binding
oops, they had been dropped

thanks clcaalu

see https://github.com/libvips/libvips/issues/1165
2018-11-16 13:10:22 +00:00
Fingolfin1196
c7f828e968
Update VImage8.h
Should fix the “nullptr undeclared” issue.
2018-10-10 15:57:50 +02:00
Fingolfin1196
b0f21d2727
Update VImage8.h
VObject now has an is_null check, which is then used in VImage.
2018-10-10 15:48:23 +02:00
John Cupitt
0e3cac1a72 make cpp overloads const
all overloads are declared const now, where possible

also revised cpp examples and ran them to check

see https://github.com/jcupitt/libvips/issues/983
2018-06-11 15:24:11 +01:00
John Cupitt
ca6410e1a6 make members and getters "const" in cpp api
eg. VImage::width() is now

	int VImage::width() const;

ie. it does not alter the image objects. In factr we can mark almost all
members const.

see https://github.com/jcupitt/libvips/issues/983
2018-06-11 14:30:17 +01:00
Lovell Fuller
cea15b2d8f Prevent compiler warning with size_t to int cast 2018-02-03 18:05:07 +00:00
John Cupitt
e52d2c9f7f add composite shortcut to cpp
two composite just two images
2017-10-06 16:56:20 +01:00
Lovell Fuller
8bd2208e5e cplusplus: offset coords are int rather than double 2017-09-14 10:25:15 +01:00
John Cupitt
1504fb0249 use bandjoin_const from cpp 2017-04-29 10:17:38 +01:00
John Cupitt
7882602dfe C/C++ done
python next
2017-04-26 14:52:28 +01:00
John Cupitt
8062a4b1e6 update cpp API for arg order changes
hopefully user code won't see this
2017-03-13 13:28:37 +00:00
John Cupitt
b140c18a37 various tweaks to calm coverity
passes cleanly now
2017-01-20 08:55:13 +00:00
Lovell Fuller
e1aef0445b MSVC requires __declspec first for return by reference
Ensure consistent modifier order across all exported functions
Move assignment operators to be "outside" definitions to aid export
2016-10-15 22:02:24 +01:00
John Cupitt
eb7768ff61 Merge branch 'master' into add-assignment-overloads 2016-06-11 20:15:42 +01:00
John Cupitt
28efdf1695 working! 2016-06-11 17:36:06 +01:00
John Cupitt
8667dd0d18 VImage::ifthenelse() fix
the prototype was missing =0 on options for scalar constant forms
2016-06-10 17:34:41 +01:00
John Cupitt
93951fd04a start adding 2016-06-10 14:57:46 +01:00
John Cupitt
ad56c57830 add implementation for VImage::write()
oops, it was missing

also, change the return type from void to VImage. This makes chaining
possible, eg.:

   VImage memory = im.write( Viameg::new_memory() );
2016-06-10 14:22:08 +01:00
Lovell Fuller
baa175c4c0 Allow MSVC to link CPP overloads introduced in da43a40 2016-04-15 22:16:29 +01:00
John Cupitt
da43a4041f move cpp overloads outside class
so they are true functions and we can take their address

see https://github.com/jcupitt/libvips/issues/409
2016-03-25 06:09:07 +00:00
Lovell Fuller
20ae80397d Enable compilation of vips8 C++ bindings with MSVC
Add VIPS_CPLUSPLUS_API macro to allow DLL creation
2016-01-11 17:56:02 +00:00
John Cupitt
50db131865 VImage::get_typeof() returns GType
it was int, causing some compiler warnings on some platforms.

see https://github.com/jcupitt/libvips/issues/362
2016-01-09 20:27:14 +00:00
John Cupitt
66373e9b41 remove exception specs from vips8 C++ interface
We had exception specs on the C++ interface, but C++11 does not support
them and some compilers have never honoured them. Remove all specs.
Thanks Lovell.

See https://github.com/jcupitt/libvips/issues/362
2016-01-09 14:52:05 +00:00
John Cupitt
ad017dc56f add more C++ convenience functions
flipver() etc.
2015-04-24 10:10:44 +01:00
John Cupitt
ded01df512 c++: add [], change ()
() used to return element zero, just return a vector

add [] overload
2015-03-01 10:43:02 +00:00
John Cupitt
367819b5cc oops 2015-02-28 22:56:09 +00:00
John Cupitt
5d912fdbbb add [] overload to python
index and slice image bands
2015-02-28 16:53:06 +00:00
John Cupitt
ce557ba6de add VInterpolate wrapper class
to cplusplus, see https://github.com/jcupitt/libvips/issues/230
2015-01-30 21:19:58 +00:00
John Cupitt
6f101ae86b remove VImage::scale()
it clashed with the VipsScale operator, see

https://github.com/jcupitt/libvips/pull/213
2015-01-06 12:00:11 +00:00
John Cupitt
8267dd2621 naming improvements
and test_overloads.cpp has started working
2014-11-05 14:04:46 +00:00
John Cupitt
ca6eb088f3 add () overload for read pixel 2014-10-31 20:24:40 +00:00
John Cupitt
5694bf6f4c add all new() and write() methods
VImage::new_from_buffer() etc.
2014-10-31 19:15:29 +00:00
John Cupitt
2a992375fe add more type conversions
so we automatically do int and double -> doublevec and intvec
2014-10-31 18:11:26 +00:00
John Cupitt
35bcd4eaa0 reformat 2014-10-30 22:11:43 +00:00
John Cupitt
d6a6d7ae71 set of overloads for new cpp API
all the usual ones .. compiles, but untested
2014-10-30 21:53:24 +00:00
John Cupitt
4173ddfa9c add make constant image 2014-10-29 12:39:25 +00:00