Kleis Auke Wolthuizen
fc92290bb9
Try the new target API first in VImage::write_to_buffer
( #2511 )
...
Needed after PR #2499 .
2021-11-02 13:36:27 +00:00
John Cupitt
ab464e7b31
add clang-tidy rule
...
with a few rules
2021-10-29 19:04:42 +01:00
Rosen Penev
fde53df4da
use reserve instead of constructor
...
The constructor 0 initializes. reserve does not.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-07-11 17:31:17 -07:00
Rosen Penev
63f64c5055
cplusplus: fix for loop sizes
...
Array indeces are pointers and should use pointer sizes.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-07-11 17:31:11 -07:00
Rosen Penev
3f57c0a515
VImage: reserve vector before push_back loop
...
Avoids unnecessary resizes.
Found with clang-tidy's performance-inefficient-vector-operation
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-07-11 00:58:56 -07:00
John Cupitt
fd0a0905ff
note VImage::new_from_memory_steal() in ChangeLog
...
plus doxy commnets etc., see https://github.com/libvips/libvips/pull/1758/
2020-09-24 10:44:49 +01:00
John Cupitt
5faf9a6326
typo in recent cpp API improvements
...
We had G_VALUE_TYPE instead of G_OBJECT_TYPE, oops. Thanks @lovell.
see https://github.com/libvips/libvips/pull/1812
2020-09-14 13:10:00 +01:00
John Cupitt
b42f72cd56
add a README.md for cpp
2020-09-06 17:47:46 +01:00
John Cupitt
409301a200
improve C++ API
...
Make VObject inheritance public, so we can have a single set() for all
VObject-derived types.
2020-08-19 15:08:28 +01:00
John Cupitt
99313edb68
fix some unknown types
...
We were missing VipsInterpolate and guint64. Add guint64 set() as well.
see 636e265477 (commitcomment-41589463)
2020-08-19 14:36:50 +01:00
John Cupitt
9ea91810bb
revise docs for _inplace
...
We call vips_image_inplace() automatically now, so there's no need for
clients to use this.
see https://github.com/libvips/libvips/issues/1610
2020-04-16 12:09:07 +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
John Cupitt
e236f19f97
add fallbacks to new_from_stream
...
If the stream-based loaders fail, vips_image_new_from_stream() now falls
back to the old file and buffer loaders.
The file and buffer loaders already try the stream loaders first.
2019-12-10 17:19:12 +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
John Cupitt
42b4474356
stray decl
2019-11-10 18:03:38 +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
c397543c8e
Add a std::string overload function for new_from_buffer
2019-01-11 13:53:09 +01: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
John Cupitt
e52d2c9f7f
add composite shortcut to cpp
...
two composite just two images
2017-10-06 16:56:20 +01:00
John Cupitt
d601c5ee19
remmove extra null check
...
see https://github.com/jcupitt/libvips/issues/761
2017-10-01 19:08:51 +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
John Cupitt
2be0b97dce
switch to g_warning()_/g_info()
...
we had vips_warn() and vips_info(), but they are a bit crappy ... switch
to g_warning() and g_info() instead
see https://github.com/jcupitt/libvips/issues/544
2017-01-03 15:52:27 +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
0c7053bae1
Merge branch 'master' of github.com:jcupitt/libvips
2016-08-04 12:38:04 +01:00
John Cupitt
ad046680f7
tiny polish to cpp
2016-08-04 12:37:48 +01:00
John Cupitt
d78f87702d
missing unref in cpp binding
...
operation was not unreffed if build failed
2016-07-29 15:09:53 +01:00
John Cupitt
bd9cc25278
tiny
2016-07-29 10:16:33 +01:00
John Cupitt
28efdf1695
working!
2016-06-11 17:36:06 +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
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
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
01025328da
fix some cppcheck warnings
...
try:
$ cppcheck -f --enable=warning,performance,portability -j4 . 2> err.txt
there are still some left, see:
see https://github.com/jcupitt/libvips/issues/331
2015-09-28 22:01:15 +01:00
John Cupitt
db4ee8d6b6
fix a ref leak in the C++ API
...
see https://github.com/jcupitt/libvips/issues/290
thanks huskier
added a write-to-buffer example as well
2015-05-04 19:44:56 +01:00
John Cupitt
32625146db
cpp can set enums from strings
...
eg.
set("extend", "copy")->
2014-12-30 11:27:04 +00:00
John Cupitt
8267dd2621
naming improvements
...
and test_overloads.cpp has started working
2014-11-05 14:04:46 +00:00