more docs stuff

This commit is contained in:
John Cupitt 2014-08-08 17:34:30 +01:00
parent 2b086cfe6e
commit 78a50f6ec5
4 changed files with 32 additions and 24 deletions

View File

@ -17,7 +17,7 @@
<refsect1 id="binding-goi">
<title>Binding and gobject-introspection</title>
<para>
Stuff about goi.
Write this section once the vips8 Python binding is done.
</para>
</refsect1>

View File

@ -17,8 +17,22 @@
<refsect1 id="extending-subclassing">
<title>Adding operations to VIPS</title>
<para>
all about subclassing.
All about subclassing. Copy-paste from the blog post about extending
vips8.
</para>
<para>
If you are writing a language binding, you won't need these. Instead, make
a new operation with vips_operation_new() (all it does is look up the
operation by name with vips_type_find(), then call g_object_new() for you),
then use vips_argument_map() and friends to loop over the operation's
arguments setting them. Once you have set all arguments, use
vips_cache_operation_build() to look up the operation in the cache and
either build or dup it. If something goes wrong, you'll need to use
vips_object_unref_outputs() and g_object_unref() to free the
partially-built object.
</para>
</refsect1>
</refentry>

View File

@ -131,16 +131,13 @@
* 3. #VipsObject::postclose. This runs right at the end. The object
* pointer is still valid, but nothing else is.
*
* ## The #VipsOperation cache
* ## #VipsArgument
*
* Because all #VipsObject are immutable, they can be cached. The cache is
* very simple to use: instead of calling vips_object_build(), instead call
* vips_cache_operation_build(). This function calculates a hash from the
* operations's input arguments and looks it up in table of all recent
* operations. If there's a hit, the new operation is unreffed, the old
* operation reffed, and the old operation returned in place of the new one.
* libvips has a simple mechanism for automating at least some aspects of
* %GObject properties. You add a set of macros to your _class_init() which
* describe the arguments, and set the get and set functions to the vips ones.
*
* The cache size is controlled with vips_cache_set_max() and friends.
* See <link linkend="extending">extending</link> for a complete example.
*
* ## The #VipsObject reference counting convention
*

View File

@ -60,8 +60,7 @@
* on #VipsObject to provide the introspection and command-line interface to
* libvips.
*
* It also maintains a cache of recent operations. You can tune the cache
* behaviour in various ways, see vips_cache_set_max() and friends.
* It also maintains a cache of recent operations. See below.
*
* vips_call(), vips_call_split() and vips_call_split_option_string() are used
* by vips to implement the C API. They can execute any #VipsOperation,
@ -86,18 +85,6 @@
* }
* ]|
*
* If you are writing a language binding, you won't need these. Instead, make
* a new operation with vips_operation_new() (all it does is look up the
* operation by name with vips_type_find(), then call g_object_new() for you),
* then use vips_argument_map() and friends to loop over the operation's
* arguments setting them. Once you have set all arguments, use
* vips_cache_operation_build() to look up the operation in the cache and
* either build or dup it. If something goes wrong, you'll need to use
* vips_object_unref_outputs() and g_object_unref() to free the
* partially-built object. See
* <link linkend="binding">binding</link> for an introduction to libvips
* introspection.
*
* Use vips_call_argv() to run any vips operation from a command-line style
* argc/argv array. This is the thing used by the vips main program to
* implement the vips command-line interface.
@ -157,6 +144,16 @@
* (or #VipsImage, in this case) where when @parent is freed, all non-NULL
* #VipsObject in the array are also unreffed.
*
* ## The #VipsOperation cache
*
* Because all #VipsObject are immutable, they can be cached. The cache is
* very simple to use: instead of calling vips_object_build(), instead call
* vips_cache_operation_build(). This function calculates a hash from the
* operations's input arguments and looks it up in table of all recent
* operations. If there's a hit, the new operation is unreffed, the old
* operation reffed, and the old operation returned in place of the new one.
*
* The cache size is controlled with vips_cache_set_max() and friends.
*/
/**