libvips/libvips/include/vips/draw.h
Kleis Auke Wolthuizen 07edfe37b1
Improve symbol visibility (#2688)
* Improve symbol visibility

* Decorate required internal symbols with VIPS_API

* Remove a couple of stray header decls

* Incorporate review comment

- Ensure symbol visibility is also set on static libraries.
- Prefer to use `cc.has_function_attribute('visibility:hidden')`.

* Don't export internal deprecated symbols

* Move deprecated symbols to vips7compat.h

* `IM_FORMAT_H` -> `VIPS_FORMAT_H`

* Move `vips_window_ref` compat stub to `vips7compat.c`

* Disable deprecation warnings internally

* `vips_image_get_kill` -> `vips_image_iskilled`

* Ensure API compatibility

* Add missing include directives

* Move `vips__init` decl to vips7compat

* Move `vips__get_sizeof_vipsobject` to vips7compat

* Fix introspection build

* Fix 2 introspection warnings

* Ensure compatibility with vipsdisp

/usr/bin/ld: tilesource.o: in function `tile_source_new_from_source':
vipsdisp/tilesource.c:1627: undefined reference to `vips__region_no_ownership'
2022-04-16 10:58:55 +01:00

114 lines
3.0 KiB
C

/* draw.h
*
* 3/11/09
* - from proto.h
*/
/*
This file is part of VIPS.
VIPS is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA
*/
/*
These files are distributed with VIPS - http://www.vips.ecs.soton.ac.uk
*/
#ifndef VIPS_DRAW_H
#define VIPS_DRAW_H
#include <glib.h>
#include <glib-object.h>
#include <vips/object.h>
#ifdef __cplusplus
extern "C" {
#endif /*__cplusplus*/
typedef enum {
VIPS_COMBINE_MODE_SET,
VIPS_COMBINE_MODE_ADD,
VIPS_COMBINE_MODE_LAST
} VipsCombineMode;
VIPS_API
int vips_draw_rect( VipsImage *image,
double *ink, int n, int left, int top, int width, int height, ... )
__attribute__((sentinel));
VIPS_API
int vips_draw_rect1( VipsImage *image,
double ink, int left, int top, int width, int height, ... )
__attribute__((sentinel));
VIPS_API
int vips_draw_point( VipsImage *image, double *ink, int n, int x, int y, ... )
__attribute__((sentinel));
VIPS_API
int vips_draw_point1( VipsImage *image, double ink, int x, int y, ... )
__attribute__((sentinel));
VIPS_API
int vips_draw_image( VipsImage *image, VipsImage *sub, int x, int y, ... )
__attribute__((sentinel));
VIPS_API
int vips_draw_mask( VipsImage *image,
double *ink, int n, VipsImage *mask, int x, int y, ... )
__attribute__((sentinel));
VIPS_API
int vips_draw_mask1( VipsImage *image,
double ink, VipsImage *mask, int x, int y, ... )
__attribute__((sentinel));
VIPS_API
int vips_draw_line( VipsImage *image,
double *ink, int n, int x1, int y1, int x2, int y2, ... )
__attribute__((sentinel));
VIPS_API
int vips_draw_line1( VipsImage *image,
double ink, int x1, int y1, int x2, int y2, ... )
__attribute__((sentinel));
VIPS_API
int vips_draw_circle( VipsImage *image,
double *ink, int n, int cx, int cy, int radius, ... )
__attribute__((sentinel));
VIPS_API
int vips_draw_circle1( VipsImage *image,
double ink, int cx, int cy, int radius, ... )
__attribute__((sentinel));
VIPS_API
int vips_draw_flood( VipsImage *image, double *ink, int n, int x, int y, ... )
__attribute__((sentinel));
VIPS_API
int vips_draw_flood1( VipsImage *image, double ink, int x, int y, ... )
__attribute__((sentinel));
VIPS_API
int vips_draw_smudge( VipsImage *image,
int left, int top, int width, int height, ... )
__attribute__((sentinel));
#ifdef __cplusplus
}
#endif /*__cplusplus*/
#endif /*VIPS_DRAW_H*/