view release on metacpan or search on metacpan
lib/Gimp/Lib.xs view on Meta::CPAN
INIT:
gimp_enums_init ();
gint n_type_names;
const gchar **etn;
int i;
PPCODE:
etn = gimp_enums_get_type_names (&n_type_names);
if (!etn) XSRETURN_EMPTY;
EXTEND(SP, n_type_names);
for (i = 0; i < n_type_names; i++) {
PUSHs(sv_2mortal(newSVpv(etn[i], 0)));
lib/Gimp/Lib.xs view on Meta::CPAN
const char *name
INIT:
GType enum_type;
GEnumClass *enum_class;
GEnumValue *value;
PPCODE:
if (!(enum_type = g_type_from_name (name)))
croak (__("gimp_enums_list_type(%s) invalid name"), name);
if (!(enum_class = g_type_class_peek (enum_type)))
croak (__("gimp_enums_list_type(%s) invalid class"), name);
for (value = enum_class->values; value->value_name; value++) {
lib/Gimp/Lib.xs view on Meta::CPAN
# get gimp procedure info
void
gimp_procedural_db_proc_info(proc_name)
char * proc_name
PPCODE:
{
char *proc_blurb;
char *proc_help;
char *proc_author;
char *proc_copyright;
lib/Gimp/Lib.xs view on Meta::CPAN
const char *proc_type
INIT:
gint num_matches;
gchar **procedure_names;
int i;
PPCODE:
if (!gimp_procedural_db_query (
name, blurb, help, author, copyright, date, proc_type, &num_matches,
&procedure_names
)) croak (__("gimp_procedural_db_proc_query failed"));
if (!num_matches) XSRETURN_EMPTY;
lib/Gimp/Lib.xs view on Meta::CPAN
}
void
gimp_call_procedure (proc_name, ...)
utf8_str proc_name
PPCODE:
{
char croak_str[MAX_STRING] = "";
char *proc_blurb;
char *proc_help;
char *proc_author;
lib/Gimp/Lib.xs view on Meta::CPAN
}
void
gimp_get_data(id)
SV * id;
PPCODE:
{
SV *data;
STRLEN dlen;
dlen = gimp_get_data_size (SvPV_nolen (id));
lib/Gimp/Lib.xs view on Meta::CPAN
#
void
gimp_patterns_get_pattern_data(name)
SV * name
PPCODE:
{
GimpParam *return_vals;
int nreturn_vals;
return_vals = gimp_run_procedure ("gimp_patterns_get_pattern_data",
view all matches for this distribution
view release on metacpan or search on metacpan
SV *class
PREINIT:
int ctx = GIMME_V;
PPCODE:
if (ctx != G_VOID) {
if (ctx == G_ARRAY) {
int features = git_libgit2_features();
mXPUSHs(newSVpv("threads", 0));
view all matches for this distribution
view release on metacpan or search on metacpan
GObjectIntrospection.xs view on Meta::CPAN
AV *global_functions;
HV *namespaced_functions;
HV *fields;
AV *interfaces;
AV *objects_with_vfuncs;
PPCODE:
repository = g_irepository_get_default ();
constants = newAV ();
global_functions = newAV ();
namespaced_functions = newHV ();
GObjectIntrospection.xs view on Meta::CPAN
GIRepository *repository;
GIObjectInfo *info;
GType gtype, object_gtype;
/* FIXME: we should export gperl_type_reg_quark from Glib */
GQuark reg_quark = g_quark_from_static_string ("__gperl_type_reg");
PPCODE:
repository = g_irepository_get_default ();
info = g_irepository_find_by_name (repository, basename, object_name);
g_assert (info && GI_IS_OBJECT_INFO (info));
gtype = gperl_object_type_from_package (target_package);
object_gtype = get_gtype (info);
GObjectIntrospection.xs view on Meta::CPAN
GIRepository *repository;
GType object_gtype, target_gtype;
gpointer object_klass, target_klass;
GIObjectInfo *object_info;
gint n_vfuncs, i;
PPCODE:
repository = g_irepository_get_default ();
target_gtype = gperl_object_type_from_package (target_package);
object_gtype = gperl_object_type_from_package (object_package);
g_assert (target_gtype && object_gtype);
target_klass = g_type_class_peek (target_gtype);
GObjectIntrospection.xs view on Meta::CPAN
GType gtype;
gpointer klass;
GIVFuncInfo *vfunc_info;
gint field_offset;
gpointer func_pointer;
PPCODE:
dwarn ("%s::%s, target = %s\n",
vfunc_package, vfunc_name, target_package);
gtype = gperl_object_type_from_package (target_package);
klass = g_type_class_peek (gtype);
g_assert (klass);
GObjectIntrospection.xs view on Meta::CPAN
UV internal_stack_offset = 4;
GIRepository *repository;
GIFunctionInfo *info;
gpointer func_pointer = NULL;
const gchar *symbol = NULL;
PPCODE:
repository = g_irepository_get_default ();
info = get_function_info (repository, basename, namespace, function);
symbol = g_function_info_get_symbol (info);
if (!g_typelib_symbol (g_base_info_get_typelib((GIBaseInfo *) info),
symbol, &func_pointer))
GObjectIntrospection.xs view on Meta::CPAN
void
_invoke (SV *code, ...)
PREINIT:
GPerlI11nCCallbackInfo *wrapper;
UV internal_stack_offset = 1;
PPCODE:
wrapper = INT2PTR (GPerlI11nCCallbackInfo*, SvIV (SvRV (code)));
if (!wrapper || !wrapper->func)
ccroak ("invalid reference encountered");
invoke_c_code (wrapper->interface, wrapper->func,
sp, ax, mark, items,
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Glib/GenPod.pm view on Meta::CPAN
at any point in this pod -- they are stripped after.
In fact, any pod is valid in here, until the =cut.
=cut
void foo (...)
PPCODE:
/* crazy code follows */
=item =for arg name (type) description
=item =for arg name description
lib/Glib/GenPod.pm view on Meta::CPAN
? (@outlist > 1
? "(".join (", ", @outlist).")"
: $outlist[0]
)." = "
: (defined $xsub->{codetype} and
$xsub->{codetype} eq 'PPCODE'
? 'list = '
: ''
);
"$retstr$call ".($argstr ? "($argstr)" : "");
view all matches for this distribution
view release on metacpan or search on metacpan
xs/GnomeCanvas.xs view on Meta::CPAN
GnomeCanvas *canvas
const char *spec
PREINIT:
int result;
GdkColor color;
PPCODE:
result = gnome_canvas_get_color (canvas, spec, &color);
EXTEND (sp, 2);
PUSHs (sv_2mortal (newSViv (result)));
PUSHs (sv_2mortal (newSVGdkColor (&color)));
xs/GnomeCanvas.xs view on Meta::CPAN
Fetch as a list the version of libgnomecanvas for which Gnome2::Canvas was
built.
=cut
void
GET_VERSION_INFO (class)
PPCODE:
EXTEND (SP, 3);
PUSHs (sv_2mortal (newSViv (GNOME_CANVAS_MAJOR_VERSION)));
PUSHs (sv_2mortal (newSViv (GNOME_CANVAS_MINOR_VERSION)));
PUSHs (sv_2mortal (newSViv (GNOME_CANVAS_MICRO_VERSION)));
PERL_UNUSED_VAR (ax);
view all matches for this distribution
view release on metacpan or search on metacpan
# --------------------------------------------------------------------------- #
void
GET_VERSION_INFO (class)
PPCODE:
EXTEND (SP, 3);
PUSHs (sv_2mortal (newSViv (DIACANVAS_MAJOR_VERSION)));
PUSHs (sv_2mortal (newSViv (DIACANVAS_MINOR_VERSION)));
PUSHs (sv_2mortal (newSViv (DIACANVAS_MICRO_VERSION)));
PERL_UNUSED_VAR (ax);
view all matches for this distribution
view release on metacpan or search on metacpan
can supply doctypes and give decent names to the unregistered
structures in the bindings. this requires an update to
ExtUtils::Depends 0.2 and bleeding edge Glib.
* xs/GConfClient.xs: use the new typemaps instead of hand-coded
PPCODE sections; this eliminates the need for several =for signature
directives in pod.
2004/02/20 14:15 (+0100) ebassi
* GConf,pm, README: version 0.91 - final beta cycle before API freeze
view all matches for this distribution
view release on metacpan or search on metacpan
xs/PanelApplet.xs view on Meta::CPAN
panel_applet_get_background (PanelApplet *applet)
PREINIT:
PanelAppletBackgroundType type;
GdkColor color;
GdkPixmap *pixmap = NULL;
PPCODE:
type = panel_applet_get_background (applet, &color, &pixmap);
EXTEND (sp, 3);
PUSHs (sv_2mortal (newSVPanelAppletBackgroundType (type)));
switch (type) {
case PANEL_NO_BACKGROUND:
xs/PanelApplet.xs view on Meta::CPAN
#endif
void
GET_VERSION_INFO (class)
PPCODE:
EXTEND (SP, 3);
PUSHs (sv_2mortal (newSViv (PANEL_APPLET_MAJOR_VERSION)));
PUSHs (sv_2mortal (newSViv (PANEL_APPLET_MINOR_VERSION)));
PUSHs (sv_2mortal (newSViv (PANEL_APPLET_MICRO_VERSION)));
PERL_UNUSED_VAR (ax);
view all matches for this distribution
view release on metacpan or search on metacpan
2003/11/29 18:45 (+0100) ebassi
* xs/GnomePrintJob.xs, xs/GnomeFont.xs, xs/GnomeFontFace.xs,
xs/GnomePrintConfig.xs, xs/GnomePrintDialog.xs: better apidoc for
PPCODE in methods.
2003/11/29 18:15 (+0100) ebassi
* t/*: updated tests for constants modules change, and for unused
variables.
get_version class method.
2003/11/28 19:00 (+0100) ebassi
* xs/GnomeFont.xs, xs/GnomePrintJob.xs, xs/GnomePrintDialog.xs: added
apidoc for PPCODE sections.
2003/11/28 18:34 (+0100) ebassi
* Makefile.PL, pm/Config.pm, pm/Font.pm, t/05.GnomeFont.t: moved
constants to another namespace to avoid collisions with the
view all matches for this distribution
view release on metacpan or search on metacpan
#include "register.xsh"
#include "boot.xsh"
void
GET_VERSION_INFO (class)
PPCODE:
EXTEND (SP, 3);
PUSHs (sv_2mortal (newSViv (LIBRSVG_MAJOR_VERSION)));
PUSHs (sv_2mortal (newSViv (LIBRSVG_MINOR_VERSION)));
PUSHs (sv_2mortal (newSViv (LIBRSVG_MICRO_VERSION)));
PERL_UNUSED_VAR (ax);
view all matches for this distribution
view release on metacpan or search on metacpan
ChangeLog.pre-git view on Meta::CPAN
* xs/GnomeVFS.xs: hush unused var warning in get_version_info.
* xs/GnomeVFSAsync.xs: looks like a couple of
s/VFS2PERL_GNOME_TYPE/GNOME_VFS_TYPE/ slipped through the cracks.
* xs/GnomeVFSDirectory.xs, xs/GnomeVFSOps.xs: if using PPCODE, the
return type should be void. this hushes some 'unused var RETVAL'
warnings.
* xs/GnomeVFSUtils.xs: disambiguating braces hush compiler warnings.
ChangeLog.pre-git view on Meta::CPAN
that it gets overwritten by the one generated by Gtk2::CodeGen.
* xs/GnomeVFSAsync.xs
* xs/GnomeVFSDirectory.xs
* xs/GnomeVFSOps.xs
* xs/GnomeVFSXfer.xs: Don't declare variables in CODE or PPCODE
sections, use PREINIT instead.
2003/11/23 21:52 (+0100) kaffeetisch
* Makefile.PL: Use custom prefixes for all GEnums and GFlags so
view all matches for this distribution
view release on metacpan or search on metacpan
#include "register.xsh"
#include "boot.xsh"
void
GET_VERSION_INFO (class)
PPCODE:
EXTEND (SP, 3);
PUSHs (sv_2mortal (newSViv (VTE_MAJOR_VERSION)));
PUSHs (sv_2mortal (newSViv (VTE_MINOR_VERSION)));
PUSHs (sv_2mortal (newSViv (VTE_MICRO_VERSION)));
PERL_UNUSED_VAR (ax);
view all matches for this distribution
view release on metacpan or search on metacpan
#include "register.xsh"
#include "boot.xsh"
void
GET_VERSION_INFO (class)
PPCODE:
EXTEND (SP, 3);
PUSHs (sv_2mortal (newSViv (WNCK_MAJOR_VERSION)));
PUSHs (sv_2mortal (newSViv (WNCK_MINOR_VERSION)));
PUSHs (sv_2mortal (newSViv (WNCK_MICRO_VERSION)));
PERL_UNUSED_VAR (ax);
view all matches for this distribution
view release on metacpan or search on metacpan
ChangeLog.pre-git view on Meta::CPAN
don't let RETVAL be used uninitialized in alias switches.
* xs/Gnome2.xs: mark ax unused in functions which don't touch the
input stack, to hush compiler warnings
* xs/GnomeScore.xs: return type on PPCODE xsubs must be void.
2003/12/29 16:32 (-0500) rwmcfa1
* perl-Gnome2.spec.in: use the new DATE replacement in conjunction with
VERSION to create the changlog on the fly, which is better.
view all matches for this distribution
view release on metacpan or search on metacpan
xs/goocanvas.xs view on Meta::CPAN
PREINIT:
gdouble left;
gdouble top;
gdouble right;
gdouble bottom;
PPCODE:
goo_canvas_get_bounds(canvas, &left, &top, &right, &bottom);
mXPUSHn(left);
mXPUSHn(top);
mXPUSHn(right);
mXPUSHn(bottom);
view all matches for this distribution
view release on metacpan or search on metacpan
lib/GooCanvas2/CairoTypes.xs view on Meta::CPAN
gperl_register_boxed_synonym(CAIRO_GOBJECT_TYPE_PATTERN, GOO_TYPE_CAIRO_PATTERN);
# I don't know how to do this transformation more implicitly, without changing the code to call weird functions
SV*
cairoize_pattern(SV* input)
PPCODE:
SV* result = gperl_new_boxed(gperl_get_boxed_check(input, GOO_TYPE_CAIRO_PATTERN), CAIRO_GOBJECT_TYPE_PATTERN, 0);
PUSHs(sv_2mortal(result));
view all matches for this distribution
view release on metacpan or search on metacpan
xsp/mapper.xsp view on Meta::CPAN
void
get_scalar(HV *self)
INIT:
dXSTARG;
gpd::MapperField *field = (gpd::MapperField *) CvXSUBANY(cv).any_ptr;
PPCODE:
PUSHs(field->get_scalar(self, TARG));
void
get_extension_scalar(HV *self, SV *extension)
INIT:
dXSTARG;
gpd::MapperField *field = gpd::MapperField::find_scalar_extension(aTHX_ cv, extension);
PPCODE:
PUSHs(field->get_scalar(self, TARG));
void
set_scalar(HV *self, SV *value)
INIT:
xsp/mapper.xsp view on Meta::CPAN
void
get_or_set_scalar(HV *self, SV *value = NULL)
INIT:
dXSTARG;
gpd::MapperField *field = (gpd::MapperField *) CvXSUBANY(cv).any_ptr;
PPCODE:
if (!value)
PUSHs(field->get_scalar(self, TARG));
else
field->set_scalar(self, value);
void
get_or_set_extension_scalar(HV *self, SV *extension, SV *value = NULL)
INIT:
dXSTARG;
gpd::MapperField *field = gpd::MapperField::find_scalar_extension(aTHX_ cv, extension);
PPCODE:
if (!value)
PUSHs(field->get_scalar(self, TARG));
else
field->set_scalar(self, value);
void
get_list_item(HV *self, IV index)
INIT:
dXSTARG;
gpd::MapperField *field = (gpd::MapperField *) CvXSUBANY(cv).any_ptr;
PPCODE:
PUSHs(field->get_item(self, index, TARG));
void
get_extension_item(HV *self, SV *extension, IV index)
INIT:
dXSTARG;
gpd::MapperField *field = gpd::MapperField::find_repeated_extension(aTHX_ cv, extension);
PPCODE:
PUSHs(field->get_item(self, index, TARG));
void
set_list_item(HV *self, IV index, SV *value)
INIT:
xsp/mapper.xsp view on Meta::CPAN
void
get_or_set_list_item(HV *self, IV index, SV *value = NULL)
INIT:
dXSTARG;
gpd::MapperField *field = (gpd::MapperField *) CvXSUBANY(cv).any_ptr;
PPCODE:
if (!value)
PUSHs(field->get_item(self, index, TARG));
else
field->set_item(self, index, value);
void
get_or_set_extension_item(HV *self, SV *extension, IV index, SV *value = NULL)
INIT:
dXSTARG;
gpd::MapperField *field = gpd::MapperField::find_scalar_extension(aTHX_ cv, extension);
PPCODE:
if (!value)
PUSHs(field->get_item(self, index, TARG));
else
field->set_item(self, index, value);
xsp/mapper.xsp view on Meta::CPAN
void
get_list(HV *self)
INIT:
gpd::MapperField *field = (gpd::MapperField *) CvXSUBANY(cv).any_ptr;
PPCODE:
PUSHs(field->get_list(self));
void
get_extension_list(HV *self, SV *extension)
INIT:
gpd::MapperField *field = gpd::MapperField::find_repeated_extension(aTHX_ cv, extension);
PPCODE:
PUSHs(field->get_list(self));
void
set_list(HV *self, SV *ref)
INIT:
xsp/mapper.xsp view on Meta::CPAN
void
get_or_set_list(HV *self, SV *ref = NULL)
INIT:
gpd::MapperField *field = (gpd::MapperField *) CvXSUBANY(cv).any_ptr;
PPCODE:
if (!ref)
PUSHs(field->get_list(self));
else
field->set_list(self, ref);
void
get_or_set_extension_list(HV *self, SV *extension, SV *ref = NULL)
INIT:
gpd::MapperField *field = gpd::MapperField::find_scalar_extension(aTHX_ cv, extension);
PPCODE:
if (!ref)
PUSHs(field->get_list(self));
else
field->set_list(self, ref);
void
get_map_item(HV *self, SV *key)
INIT:
dXSTARG;
gpd::MapperField *field = (gpd::MapperField *) CvXSUBANY(cv).any_ptr;
PPCODE:
PUSHs(field->get_item(self, key, TARG));
void
set_map_item(HV *self, SV *key, SV *value)
INIT:
xsp/mapper.xsp view on Meta::CPAN
void
get_or_set_map_item(HV *self, SV *key, SV *value = NULL)
INIT:
dXSTARG;
gpd::MapperField *field = (gpd::MapperField *) CvXSUBANY(cv).any_ptr;
PPCODE:
if (!value)
PUSHs(field->get_item(self, key, TARG));
else
field->set_item(self, key, value);
void
get_map(HV *self)
INIT:
gpd::MapperField *field = (gpd::MapperField *) CvXSUBANY(cv).any_ptr;
PPCODE:
PUSHs(field->get_map(self));
void
set_map(HV *self, SV *ref)
INIT:
xsp/mapper.xsp view on Meta::CPAN
void
get_or_set_map(HV *self, SV *ref = NULL)
INIT:
gpd::MapperField *field = (gpd::MapperField *) CvXSUBANY(cv).any_ptr;
PPCODE:
if (!ref)
PUSHs(field->get_map(self));
else
field->set_map(self, ref);
view all matches for this distribution
view release on metacpan or search on metacpan
Aesthetic.xs view on Meta::CPAN
void
neighbors(aglo_graph topology, aglo_vertex vertex)
PREINIT:
aglo_edge_record here, next;
PPCODE:
if (vertex >= topology->vertices)
croak("Vertex number %"UVuf" is invalid, there are only %"UVuf" in the topology",
(UV) vertex, (UV) topology->vertices);
here = topology->edge_table[vertex];
while (here) {
Aesthetic.xs view on Meta::CPAN
void
forward_neighbors(aglo_graph topology, aglo_vertex vertex)
PREINIT:
aglo_edge_record here, next;
PPCODE:
if (vertex >= topology->vertices)
croak("Vertex number %"UVuf" is invalid, there are only %"UVuf" in the topology",
(UV) vertex, (UV) topology->vertices);
here = topology->edge_table[vertex];
while (here) {
Aesthetic.xs view on Meta::CPAN
void
edges(aglo_graph topology)
PREINIT:
aglo_vertex i;
PPCODE:
for (i=0; i<topology->vertices; i++) {
aglo_edge_record here, next;
for (here = topology->edge_table[i]; here; here = next) {
next = here->next;
if (here->forward) {
Aesthetic.xs view on Meta::CPAN
void
add_edge(aglo_graph topology, aglo_vertex u, aglo_vertex v, aglo_boolean forward=1)
PREINIT:
aglo_edge_record f_edge, b_edge;
PPCODE:
if (topology->done) croak("Cannot add nodes to a finished topology");
if (u >= topology->vertices)
croak("Vertex number %"UVuf" is invalid, there are only %"UVuf" in the topology",
(UV) u, (UV) topology->vertices);
if (v >= topology->vertices)
Aesthetic.xs view on Meta::CPAN
b_edge->next = topology->edge_table[v];
topology->edge_table[v] = b_edge;
void
finish(aglo_graph topology)
PPCODE:
if (topology->done) croak("Topology is already finished");
topology->done = true;
aglo_boolean
finished(aglo_graph topology)
Aesthetic.xs view on Meta::CPAN
void
levels(aglo_graph topology)
PREINIT:
aglo_vertex i;
PPCODE:
at_setup_node_level(topology);
EXTEND(SP, topology->vertices);
for (i=0; i<topology->vertices; i++)
PUSHs(sv_2mortal(newSVnv(topology->at_level[i])));
void
user_data(aglo_graph topology, SV *new_user_data=0)
PPCODE:
if (GIMME_V != G_VOID)
XPUSHs(topology->user_data ? topology->user_data : &PL_sv_undef);
if (new_user_data) {
if (topology->user_data) sv_2mortal(topology->user_data);
topology->user_data = newSVsv(new_user_data);
}
void
_private_data(aglo_graph topology, SV *new_private_data=0)
PPCODE:
if (GIMME_V != G_VOID)
XPUSHs(topology->private_data ? topology->private_data : &PL_sv_undef);
if (new_private_data) {
if (topology->private_data) sv_2mortal(topology->private_data);
topology->private_data = newSVsv(new_private_data);
Aesthetic.xs view on Meta::CPAN
void
DESTROY(aglo_graph topology)
PREINIT:
aglo_vertex i;
PPCODE:
if (topology->user_data) sv_2mortal(topology->user_data);
if (topology->private_data) sv_2mortal(topology->private_data);
if (topology->at_level) Safefree(topology->at_level);
if (topology->level_sorted_vertex) Safefree(topology->level_sorted_vertex);
if (topology->level2nodes) Safefree(topology->level2nodes);
Aesthetic.xs view on Meta::CPAN
MODULE = Graph::Layout::Aesthetic PACKAGE = Graph::Layout::Aesthetic::Force
void
user_data(aglo_force force, SV *new_user_data=0)
PPCODE:
if (GIMME_V != G_VOID)
XPUSHs(force->user_data ? force->user_data : &PL_sv_undef);
if (new_user_data) {
if (force->user_data) sv_2mortal(force->user_data);
force->user_data = newSVsv(new_user_data);
}
void
_private_data(aglo_force force, SV *new_private_data=0)
PPCODE:
if (GIMME_V != G_VOID)
XPUSHs(force->private_data ? force->private_data : &PL_sv_undef);
if (new_private_data) {
if (force->private_data) sv_2mortal(force->private_data);
force->private_data = newSVsv(new_private_data);
}
void
DESTROY(aglo_force force)
PPCODE:
if (force->private_data) sv_2mortal(force->private_data);
if (force->user_data) sv_2mortal(force->user_data);
Safefree(force);
MODULE = Graph::Layout::Aesthetic PACKAGE = Graph::Layout::Aesthetic
Aesthetic.xs view on Meta::CPAN
OUTPUT:
RETVAL
void
paused(aglo_state state, aglo_boolean new_paused=0)
PPCODE:
if (GIMME_V != G_VOID) XPUSHs(state->paused ? &PL_sv_yes : &PL_sv_no);
if (items > 1) state->paused = new_paused;
aglo_unsigned
nr_dimensions(aglo_state state)
Aesthetic.xs view on Meta::CPAN
void
coordinates(aglo_state state, aglo_vertex vertex, ...)
PREINIT:
aglo_unsigned i, d;
aglo_point v;
PPCODE:
if (vertex >= state->graph->vertices)
croak("Vertex number %"UVuf" is invalid, there are only %"UVuf" in the topology",
(UV) vertex, (UV) state->graph->vertices);
d = state->dimensions;
v = state->point[vertex];
Aesthetic.xs view on Meta::CPAN
PREINIT:
aglo_unsigned j, d;
aglo_vertex i, v;
AV *coords;
aglo_point p;
PPCODE:
d = state->dimensions;
v = state->graph->vertices;
/* First push the result */
switch(GIMME_V) {
Aesthetic.xs view on Meta::CPAN
aglo_unsigned j, d;
aglo_graph graph;
aglo_point p;
aglo_edge_record here;
AV *rav, *av, *av_from, *av_to;
PPCODE:
d = state->dimensions;
graph = state->graph;
switch(GIMME_V) {
case G_ARRAY:
for (i=0; i<graph->vertices; i++) {
Aesthetic.xs view on Meta::CPAN
void
zero(aglo_state state)
PREINIT:
aglo_unsigned i, d;
aglo_vertex p, v;
PPCODE:
d = state->dimensions;
v = state->graph->vertices;
for (p=0; p<v; p++) {
aglo_real *here = state->point[p];
for (i=0; i<d; i++) here[i] = 0;
}
state->sequence++;
void
randomize(aglo_state state, aglo_real size = 1)
PPCODE:
aglo_randomize(aTHX_ state, size);
void
frame(aglo_state state)
PREINIT:
aglo_real *frame;
aglo_unsigned i, d;
AV *av;
PPCODE:
if (state->graph->vertices > 0) {
d = state->dimensions;
New(__LINE__, frame, 2*d, aglo_real);
aglo_frame_coordinates(state, frame, &frame[d]);
Aesthetic.xs view on Meta::CPAN
iso_frame(aglo_state state)
PREINIT:
aglo_real *frame;
aglo_unsigned i, d;
AV *av;
PPCODE:
if (state->graph->vertices > 0) {
d = state->dimensions;
New(__LINE__, frame, 2*d, aglo_real);
aglo_iso_frame_coordinates(state, frame, &frame[d]);
Aesthetic.xs view on Meta::CPAN
Safefree(frame);
}
void
normalize(aglo_state state)
PPCODE:
aglo_normalize_state(state);
void
jitter(aglo_state state, aglo_real distance=1e-5)
PPCODE:
jitter(aTHX_ state, distance);
void
_add_force(SV *state, SV *force, aglo_real weight=1)
PREINIT:
aglo_state st;
aglo_force fo;
use_force use;
void *private;
PPCODE:
/* This replaces force by what it references */
fo = C_OBJECT(force, "Graph::Layout::Aesthetic::Force", "force");
/* This replaces state by what it references */
st = C_OBJECT(state, "Graph::Layout::Aesthetic", "state");
Aesthetic.xs view on Meta::CPAN
void
forces(aglo_state state)
PREINIT:
use_force force;
PPCODE:
switch(GIMME_V) {
AV *rav;
case G_ARRAY:
for (force = state->forces; force; force = force->next) {
AV *av = newAV();
Aesthetic.xs view on Meta::CPAN
}
void
init_gloss(aglo_state state, aglo_real temperature, aglo_real end_temperature, aglo_signed iterations, aglo_real randomize_size=1)
PPCODE:
if (temperature <= 0)
croak("Temperature %"NVff" should be > 0", (NV) temperature);
if (end_temperature <= 0)
croak("End_temperature %"NVff" should be > 0", (NV) end_temperature);
if (temperature < end_temperature)
Aesthetic.xs view on Meta::CPAN
void
_gloss(aglo_state state, aglo_real pause_time=1e50)
PREINIT:
time_t now;
aglo_real lambda;
PPCODE:
if (state->iterations <= 0) croak("No more iterations left");
lambda = pow(state->temperature / state->end_temperature, 1.0 / state->iterations);
state->paused = 0;
while (state->iterations > 0 && !state->paused) {
aglo_step(aTHX_ state, state->temperature,
Aesthetic.xs view on Meta::CPAN
/* We lose the value anyways on exception in gradient,
but restore is just a nicity, not part of the API */
void
step(aglo_state state, aglo_real temperature = state->temperature, aglo_real jitter_size = 1e-5)
PPCODE:
if (items < 3 && temperature < jitter_size) jitter_size = temperature;
aglo_step(aTHX_ state, temperature, jitter_size);
void gradient(aglo_state state)
PREINIT:
aglo_unsigned i, d;
aglo_vertex p, v;
aglo_gradient gradient;
PPCODE:
calculate_aesth_forces(aTHX_ state);
gradient = state->gradient;
d = state->dimensions;
v = state->graph->vertices;
Aesthetic.xs view on Meta::CPAN
DESTROY(SV *state)
PREINIT:
use_force here;
aglo_state st;
aglo_boolean warned;
PPCODE:
/* This replaces state by what it references */
st = C_OBJECT(state, "Graph::Layout::Aesthetic", "state");
warned = 0;
ENTER;
Aesthetic.xs view on Meta::CPAN
clear_forces(aglo_state state)
PREINIT:
use_force here;
aglo_aesth_cleanup_fx *cleanup;
void *private;
PPCODE:
while (state->forces) {
here = state->forces;
/* Keep datastructure valid in case the cleanup call dies */
state->forces = here->next;
cleanup = here->force->aesth_cleanup;
view all matches for this distribution
view release on metacpan or search on metacpan
NewmanGirvan.xs view on Meta::CPAN
NewmanGirvan::set_vertex_weight(const char* vertex, double weight)
void
NewmanGirvan::compute()
PREINIT:
PPCODE:
std::map<std::string, int> result = THIS->run();
for (std::map<std::string, int>::const_iterator i = result.begin(); i != result.end(); ++i) {
mXPUSHs(newSVpvn(i->first.c_str(), i->first.size()));
mXPUSHs(newSVnv(i->second));
}
view all matches for this distribution
view release on metacpan or search on metacpan
SV *cbfn
PROTOTYPE: $$
PREINIT:
int c_rv = 0;
int count;
PPCODE:
if ( SvROK(cbfn) ) cbfn=SvRV(cbfn); // allow one level of deref
if ( SvTYPE(cbfn) != SVt_PVCV )
{
my_warn( "test_callback_fn: wrong type for callback function" );
XSRETURN_UNDEF;
void
mng_set_warn_category(offset)
unsigned long offset
PROTOTYPE: $
PPCODE:
warn_category = offset/2; // need to half the value for use in PERL guts
#===============================================================================
mng_int32 c_iExtra1 = 0;
mng_int32 c_iExtra2 = 0;
mng_pchar c_zErrortext = NULL;
mng_retcode c_rv;
SV* errortext = &PL_sv_undef;
PPCODE:
c_rv = mng_getlasterror ( hHandle,
&c_iSeverity,
&c_iChunkname,
&c_iChunkseq,
&c_iExtra1,
PREINIT:
mng_retcode c_rv;
mng_uint16 c_iRed;
mng_uint16 c_iGreen;
mng_uint16 c_iBlue;
PPCODE:
c_rv = mng_get_bgcolor(hHandle,&c_iRed,&c_iGreen,&c_iBlue);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_uint16 c_iRed = 0;
mng_uint16 c_iGreen = 0;
mng_uint16 c_iBlue = 0;
mng_uint8 c_iMandatory = 0;
PPCODE:
// this function was introduced in v1.0.3
c_rv = _MNG_GET_LASTBACKCHUNK(hHandle,&c_iRed,&c_iGreen,&c_iBlue,&c_iMandatory);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
mng_uint8 c_iBitdepth = 0;
mng_uint8 c_iColortype = 0;
mng_uint8 c_iCompression = 0;
mng_uint8 c_iFilter = 0;
mng_uint8 c_iInterlace = 0;
PPCODE:
c_rv = mng_getchunk_ihdr(hHandle,c_hChunk,&c_iWidth,&c_iHeight,&c_iBitdepth,&c_iColortype,&c_iCompression,&c_iFilter,&c_iInterlace);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
PREINIT:
mng_retcode c_rv;
mng_handle c_hChunk = (mng_handle) hChunk;
mng_uint32 c_iCount = 0;
mng_palette8 c_aPalette;
PPCODE:
c_rv = mng_getchunk_plte(hHandle,c_hChunk,&c_iCount,&c_aPalette);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_retcode c_rv;
mng_handle c_hChunk = (mng_handle) hChunk;
mng_uint32 c_iRawlen = 0;
mng_ptr c_pRawdata = NULL;
PPCODE:
c_rv = mng_getchunk_idat(hHandle,c_hChunk,&c_iRawlen,&c_pRawdata);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_uint16 c_iGreen = 0;
mng_uint16 c_iBlue = 0;
mng_uint32 c_iRawlen = 0;
mng_uint8arr c_aRawdata;
PPCODE:
c_rv = mng_getchunk_trns(hHandle,c_hChunk,&c_bEmpty,&c_bGlobal,&c_iType,&c_iCount,&c_aAlphas,&c_iGray,&c_iRed,&c_iGreen,&c_iBlue,&c_iRawlen,&c_aRawdata);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
mng_retcode c_rv;
mng_handle c_hChunk = (mng_handle) hChunk;
mng_bool c_bEmpty = FALSE;
mng_uint32 c_iGamma = 0;
PPCODE:
c_rv = mng_getchunk_gama(hHandle,c_hChunk,&c_bEmpty,&c_iGamma);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_uint32 c_iGreenx = 0;
mng_uint32 c_iGreeny = 0;
mng_uint32 c_iBluex = 0;
mng_uint32 c_iBluey = 0;
PPCODE:
c_rv = mng_getchunk_chrm(hHandle,c_hChunk, &c_bEmpty, &c_iWhitepointx, &c_iWhitepointy, &c_iRedx, &c_iRedy, &c_iGreenx, &c_iGreeny, &c_iBluex, &c_iBluey);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_retcode c_rv;
mng_handle c_hChunk = (mng_handle) hChunk;
mng_bool c_bEmpty = FALSE;
mng_uint8 c_iRenderingintent = 0;
PPCODE:
c_rv = mng_getchunk_srgb(hHandle,c_hChunk, &c_bEmpty, &c_iRenderingintent);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_pchar c_zName = NULL;
mng_uint8 c_iCompression = 0;
mng_uint32 c_iProfilesize = 0;
mng_ptr c_pProfile = NULL;
PPCODE:
c_rv = mng_getchunk_iccp(hHandle,c_hChunk, &c_bEmpty, &c_iNamesize, &c_zName, &c_iCompression, &c_iProfilesize, &c_pProfile);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_uint32 c_iKeywordsize = 0;
mng_pchar c_zKeyword = NULL;
mng_uint32 c_iTextsize = 0;
mng_pchar c_zText = NULL;
PPCODE:
c_rv = mng_getchunk_text(hHandle,c_hChunk,&c_iKeywordsize,&c_zKeyword,&c_iTextsize,&c_zText);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_pchar c_zKeyword = NULL;
mng_uint8 c_iCompression = 0;
mng_uint32 c_iTextsize = 0;
mng_pchar c_zText = NULL;
PPCODE:
c_rv = mng_getchunk_ztxt(hHandle,c_hChunk,&c_iKeywordsize,&c_zKeyword,&c_iCompression,&c_iTextsize,&c_zText);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_uint32 c_iTranslationsize = 0;
mng_pchar c_zTranslation = NULL;
mng_uint32 c_iTextsize = 0;
mng_pchar c_zText = NULL;
PPCODE:
c_rv = mng_getchunk_itxt(hHandle,c_hChunk,&c_iKeywordsize,&c_zKeyword,&c_iCompressionflag,&c_iCompressionmethod,&c_iLanguagesize,&c_zLanguage,&c_iTranslationsize,&c_zTranslation,&c_iTextsize,&c_zText);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_uint16 c_iGray = 0;
mng_uint16 c_iRed = 0;
mng_uint16 c_iGreen = 0;
mng_uint16 c_iBlue = 0;
PPCODE:
c_rv = mng_getchunk_bkgd(hHandle,c_hChunk,&c_bEmpty,&c_iType,&c_iIndex,&c_iGray,&c_iRed,&c_iGreen,&c_iBlue);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_bool c_bEmpty = FALSE;
mng_uint32 c_iSizex = 0;
mng_uint32 c_iSizey = 0;
mng_uint8 c_iUnit = 0;
PPCODE:
c_rv = mng_getchunk_phys(hHandle,c_hChunk,&c_bEmpty,&c_iSizex,&c_iSizey,&c_iUnit);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_handle c_hChunk = (mng_handle) hChunk;
mng_bool c_bEmpty = FALSE;
mng_uint8 c_iType = 0;
mng_uint8arr4 c_aBits;
PPCODE:
c_rv = mng_getchunk_sbit(hHandle,c_hChunk,&c_bEmpty,&c_iType,&c_aBits);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_pchar c_zName = NULL;
mng_uint8 c_iSampledepth = 0;
mng_uint32 c_iEntrycount = 0;
mng_ptr c_pEntries = NULL;
PPCODE:
c_rv = mng_getchunk_splt(hHandle,c_hChunk,&c_bEmpty,&c_iNamesize,&c_zName,&c_iSampledepth,&c_iEntrycount,&c_pEntries);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_retcode c_rv;
mng_handle c_hChunk = (mng_handle) hChunk;
mng_uint32 c_iEntrycount = 0;
mng_uint16arr c_aEntries;
PPCODE:
c_rv = mng_getchunk_hist(hHandle,c_hChunk,&c_iEntrycount,&c_aEntries);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_uint8 c_iDay = 0;
mng_uint8 c_iHour = 0;
mng_uint8 c_iMinute = 0;
mng_uint8 c_iSecond = 0;
PPCODE:
c_rv = mng_getchunk_time(hHandle,c_hChunk,&c_iYear,&c_iMonth,&c_iDay,&c_iHour,&c_iMinute,&c_iSecond);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_uint32 c_iLayercount = 0;
mng_uint32 c_iFramecount = 0;
mng_uint32 c_iPlaytime = 0;
mng_uint32 c_iSimplicity = 0;
PPCODE:
c_rv = mng_getchunk_mhdr(hHandle,c_hChunk,&c_iWidth,&c_iHeight,&c_iTicks,&c_iLayercount,&c_iFramecount,&c_iPlaytime,&c_iSimplicity);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_uint32 c_iItermin = 0;
mng_uint32 c_iItermax = 0;
mng_uint32 c_iCount = 0;
mng_uint32p c_pSignals = NULL;
PPCODE:
c_rv = mng_getchunk_loop(hHandle,c_hChunk,&c_iLevel,&c_iRepeat,&c_iTermination,&c_iItermin,&c_iItermax,&c_iCount,&c_pSignals);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_retcode c_rv;
mng_handle c_hChunk = (mng_handle) hChunk;
mng_uint8 c_iLevel = 0;
PPCODE:
c_rv = mng_getchunk_endl(hHandle,c_hChunk,&c_iLevel);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_int32 c_iLeftcb = 0;
mng_int32 c_iRightcb = 0;
mng_int32 c_iTopcb = 0;
mng_int32 c_iBottomcb = 0;
PPCODE:
c_rv = mng_getchunk_defi(hHandle,c_hChunk,&c_iObjectid,&c_iDonotshow,&c_iConcrete,&c_bHasloca,&c_iXlocation,&c_iYlocation,&c_bHasclip,&c_iLeftcb,&c_iRightcb,&c_iTopcb,&c_iBottomcb);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_uint16 c_iGreen = 0;
mng_uint16 c_iBlue = 0;
mng_uint16 c_iAlpha = 0;
mng_uint8 c_iViewable = 0;
PPCODE:
c_rv = mng_getchunk_basi(hHandle,c_hChunk,&c_iWidth,&c_iHeight,&c_iBitdepth,&c_iColortype,&c_iCompression,&c_iFilter,&c_iInterlace,&c_iRed,&c_iGreen,&c_iBlue,&c_iAlpha,&c_iViewable);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_bool c_bHasloca = FALSE;
mng_uint8 c_iLocationtype = 0;
mng_int32 c_iLocationx = 0;
mng_int32 c_iLocationy = 0;
PPCODE:
c_rv = mng_getchunk_clon(hHandle,c_hChunk,&c_iSourceid,&c_iCloneid,&c_iClonetype,&c_iDonotshow,&c_iConcrete,&c_bHasloca,&c_iLocationtype,&c_iLocationx,&c_iLocationy);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_uint8 c_iTargettype = 0;
mng_int32 c_iTargetx = 0;
mng_int32 c_iTargety = 0;
mng_uint32 c_iCount = 0;
PPCODE:
c_rv = mng_getchunk_past(hHandle,c_hChunk,&c_iDestid,&c_iTargettype,&c_iTargetx,&c_iTargety,&c_iCount);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_int32 c_iBoundaryl = 0;
mng_int32 c_iBoundaryr = 0;
mng_int32 c_iBoundaryt = 0;
mng_int32 c_iBoundaryb = 0;
PPCODE:
c_rv = mng_getchunk_past_src(hHandle,c_hChunk,iEntry,&c_iSourceid,&c_iComposition,&c_iOrientation,&c_iOffsettype,&c_iOffsetx,&c_iOffsety,&c_iBoundarytype,&c_iBoundaryl,&c_iBoundaryr,&c_iBoundaryt,&c_iBoundaryb);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_retcode c_rv;
mng_handle c_hChunk = (mng_handle) hChunk;
mng_uint32 c_iCount = 0;
mng_uint16p c_pObjectids = NULL;
PPCODE:
c_rv = mng_getchunk_disc(hHandle,c_hChunk,&c_iCount,&c_pObjectids);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_uint16 c_iBlue = 0;
mng_uint8 c_iMandatory = 0;
mng_uint16 c_iImageid = 0;
mng_uint8 c_iTile = 0;
PPCODE:
c_rv = mng_getchunk_back(hHandle,c_hChunk,&c_iRed,&c_iGreen,&c_iBlue,&c_iMandatory,&c_iImageid,&c_iTile);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_int32 c_iBoundaryt = 0;
mng_int32 c_iBoundaryb = 0;
mng_uint32 c_iCount = 0;
mng_uint32p c_pSyncids = NULL;
PPCODE:
c_rv = mng_getchunk_fram(hHandle,c_hChunk,&c_bEmpty,&c_iMode,&c_iNamesize,&c_zName,&c_iChangedelay,&c_iChangetimeout,&c_iChangeclipping,&c_iChangesyncid,&c_iDelay,&c_iTimeout,&c_iBoundarytype,&c_iBoundaryl,&c_iBoundaryr,&c_iBoundaryt,&c_iBounda...
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_uint16 c_iLastid = 0;
mng_uint8 c_iMovetype = 0;
mng_int32 c_iMovex = 0;
mng_int32 c_iMovey = 0;
PPCODE:
c_rv = mng_getchunk_move(hHandle,c_hChunk,&c_iFirstid,&c_iLastid,&c_iMovetype,&c_iMovex,&c_iMovey);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_int32 c_iClipr = 0;
mng_int32 c_iClipt = 0;
mng_int32 c_iClipb = 0;
PPCODE:
c_rv = mng_getchunk_clip(hHandle,c_hChunk,&c_iFirstid,&c_iLastid,&c_iCliptype,&c_iClipl,&c_iClipr,&c_iClipt,&c_iClipb);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_bool c_bEmpty = FALSE;
mng_uint16 c_iFirstid = 0;
mng_uint16 c_iLastid = 0;
mng_uint8 c_iMode = 0;
PPCODE:
c_rv = mng_getchunk_show(hHandle,c_hChunk,&c_bEmpty,&c_iFirstid,&c_iLastid,&c_iMode);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_uint8 c_iTermaction = 0;
mng_uint8 c_iIteraction = 0;
mng_uint32 c_iDelay = 0;
mng_uint32 c_iItermax = 0;
PPCODE:
c_rv = mng_getchunk_term(hHandle,c_hChunk,&c_iTermaction,&c_iIteraction,&c_iDelay,&c_iItermax);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_handle c_hChunk = (mng_handle) hChunk;
mng_bool c_bEmpty = FALSE;
mng_uint8 c_iOffsettype = 0;
mng_uint32 c_iCount = 0;
PPCODE:
c_rv = mng_getchunk_save(hHandle,c_hChunk,&c_bEmpty,&c_iOffsettype,&c_iCount);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_uint32 c_iLayernr = 0;
mng_uint32 c_iFramenr = 0;
mng_uint32 c_iNamesize = 0;
mng_pchar c_zName = NULL;
PPCODE:
c_rv = mng_getchunk_save_entry(hHandle,c_hChunk,iEntry,&c_iEntrytype,&c_aiOffset,&c_aiStarttime,&c_iLayernr,&c_iFramenr,&c_iNamesize,&c_zName);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_retcode c_rv;
mng_handle c_hChunk = (mng_handle) hChunk;
mng_uint32 c_iNamesize = 0;
mng_pchar c_zName = NULL;
PPCODE:
c_rv = mng_getchunk_seek(hHandle,c_hChunk,&c_iNamesize,&c_zName);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_handle c_hChunk = (mng_handle) hChunk;
mng_uint16 c_iSnapshotid = 0;
mng_uint32 c_iNamesize = 0;
mng_pchar c_zName = NULL;
PPCODE:
c_rv = mng_getchunk_expi(hHandle,c_hChunk,&c_iSnapshotid,&c_iNamesize,&c_zName);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_retcode c_rv;
mng_handle c_hChunk = (mng_handle) hChunk;
mng_uint8 c_iDeltatype = 0;
mng_uint8 c_iPriority = 0;
PPCODE:
c_rv = mng_getchunk_fpri(hHandle,c_hChunk,&c_iDeltatype,&c_iPriority);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_retcode c_rv;
mng_handle c_hChunk = (mng_handle) hChunk;
mng_uint32 c_iKeywordssize = 0;
mng_pchar c_zKeywords = NULL;
PPCODE:
c_rv = mng_getchunk_need(hHandle,c_hChunk,&c_iKeywordssize,&c_zKeywords);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_bool c_bEmpty = FALSE;
mng_uint32 c_iSizex = 0;
mng_uint32 c_iSizey = 0;
mng_uint8 c_iUnit = 0;
PPCODE:
c_rv = mng_getchunk_phyg(hHandle,c_hChunk,&c_bEmpty,&c_iSizex,&c_iSizey,&c_iUnit);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_uint8 c_iAlphasampledepth = 0;
mng_uint8 c_iAlphacompression = 0;
mng_uint8 c_iAlphafilter = 0;
mng_uint8 c_iAlphainterlace = 0;
PPCODE:
c_rv = mng_getchunk_jhdr(hHandle,c_hChunk,&c_iWidth,&c_iHeight,&c_iColortype,&c_iImagesampledepth,&c_iImagecompression,&c_iImageinterlace,&c_iAlphasampledepth,&c_iAlphacompression,&c_iAlphafilter,&c_iAlphainterlace);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_retcode c_rv;
mng_handle c_hChunk = (mng_handle) hChunk;
mng_uint32 c_iRawlen = 0;
mng_ptr c_pRawdata = NULL;
PPCODE:
c_rv = mng_getchunk_jdat(hHandle,c_hChunk,&c_iRawlen,&c_pRawdata);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_uint32 c_iBlockwidth = 0;
mng_uint32 c_iBlockheight = 0;
mng_uint32 c_iBlockx = 0;
mng_uint32 c_iBlocky = 0;
PPCODE:
c_rv = mng_getchunk_dhdr(hHandle,c_hChunk,&c_iObjectid,&c_iImagetype,&c_iDeltatype,&c_iBlockwidth,&c_iBlockheight,&c_iBlockx,&c_iBlocky);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_handle c_hChunk = (mng_handle) hChunk;
mng_uint8 c_iColortype = 0;
mng_uint8 c_iSampledepth = 0;
mng_uint8 c_iFilltype = 0;
PPCODE:
c_rv = mng_getchunk_prom(hHandle,c_hChunk,&c_iColortype,&c_iSampledepth,&c_iFilltype);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
PREINIT:
mng_retcode c_rv;
mng_handle c_hChunk = (mng_handle) hChunk;
mng_uint32 c_iCount = 0;
PPCODE:
c_rv = mng_getchunk_pplt(hHandle,c_hChunk,&c_iCount);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_uint16 c_iGreen = 0;
mng_uint16 c_iBlue = 0;
mng_uint16 c_iAlpha = 0;
mng_bool c_bUsed = FALSE;
PPCODE:
c_rv = mng_getchunk_pplt_entry(hHandle,c_hChunk,iEntry,&c_iRed,&c_iGreen,&c_iBlue,&c_iAlpha,&c_bUsed);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_retcode c_rv;
mng_handle c_hChunk = (mng_handle) hChunk;
mng_uint32 c_iCount = 0;
mng_chunkidp c_pChunknames = NULL;
PPCODE:
c_rv = mng_getchunk_drop(hHandle,c_hChunk,&c_iCount,&c_pChunknames);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_chunkid c_iChunkname = 0;
mng_uint8 c_iPolarity = 0;
mng_uint32 c_iKeywordssize = 0;
mng_pchar c_zKeywords = NULL;
PPCODE:
c_rv = mng_getchunk_dbyk(hHandle,c_hChunk,&c_iChunkname,&c_iPolarity,&c_iKeywordssize,&c_zKeywords);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
PREINIT:
mng_retcode c_rv;
mng_handle c_hChunk = (mng_handle) hChunk;
mng_uint32 c_iCount = 0;
PPCODE:
c_rv = mng_getchunk_ordr(hHandle,c_hChunk,&c_iCount);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_retcode c_rv;
mng_handle c_hChunk = (mng_handle) hChunk;
mng_chunkid c_iChunkname = 0;
mng_uint8 c_iOrdertype = 0;
PPCODE:
c_rv = mng_getchunk_ordr_entry(hHandle,c_hChunk,iEntry,&c_iChunkname,&c_iOrdertype);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_uint16 c_iMR = 0;
mng_uint16 c_iMT = 0;
mng_uint16 c_iMB = 0;
mng_uint16 c_iMethodY = 0;
PPCODE:
c_rv = mng_getchunk_magn(hHandle,c_hChunk,&c_iFirstid,&c_iLastid,&c_iMethodX,&c_iMX,&c_iMY,&c_iML,&c_iMR,&c_iMT,&c_iMB,&c_iMethodY);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
mng_handle c_hChunk = (mng_handle) hChunk;
mng_chunkid c_iChunkname = 0;
mng_uint32 c_iRawlen = 0;
mng_ptr c_pRawdata = NULL;
PPCODE:
c_rv = mng_getchunk_unknown(hHandle,c_hChunk,&c_iChunkname,&c_iRawlen,&c_pRawdata);
XPUSHs( sv_2mortal( newSViv( c_rv ) ) );
if ( c_rv == MNG_NOERROR )
{
view all matches for this distribution
view release on metacpan or search on metacpan
PLFLT ry
PREINIT:
PLFLT wx;
PLFLT wy;
PLINT window;
PPCODE:
c_plcalc_world( rx, ry, &wx, &wy, &window );
XPUSHs( sv_2mortal(newSVnv(wx)));
XPUSHs( sv_2mortal(newSVnv(wy)));
XPUSHs( sv_2mortal(newSViv(window)));
void
c_plgchr()
PREINIT:
PLFLT p_def;
PLFLT p_ht;
PPCODE:
c_plgchr( &p_def, &p_ht );
XPUSHs( sv_2mortal(newSVnv(p_def)));
XPUSHs( sv_2mortal(newSVnv(p_ht)));
void
PLINT icol0
PREINIT:
PLINT r;
PLINT g;
PLINT b;
PPCODE:
c_plgcol0( icol0, &r, &g, &b );
XPUSHs( sv_2mortal(newSViv(r)));
XPUSHs( sv_2mortal(newSViv(g)));
XPUSHs( sv_2mortal(newSViv(b)));
c_plgcolbg()
PREINIT:
PLINT r;
PLINT g;
PLINT b;
PPCODE:
c_plgcolbg( &r, &g, &b );
XPUSHs( sv_2mortal(newSViv(r)));
XPUSHs( sv_2mortal(newSViv(g)));
XPUSHs( sv_2mortal(newSViv(b)));
PREINIT:
PLFLT p_mar;
PLFLT p_aspect;
PLFLT p_jx;
PLFLT p_jy;
PPCODE:
c_plgdidev( &p_mar, &p_aspect, &p_jx, &p_jy );
XPUSHs( sv_2mortal(newSVnv(p_mar)));
XPUSHs( sv_2mortal(newSVnv(p_aspect)));
XPUSHs( sv_2mortal(newSVnv(p_jx)));
XPUSHs( sv_2mortal(newSVnv(p_jy)));
PREINIT:
PLFLT p_xmin;
PLFLT p_ymin;
PLFLT p_xmax;
PLFLT p_ymax;
PPCODE:
c_plgdiplt( &p_xmin, &p_ymin, &p_xmax, &p_ymax );
XPUSHs( sv_2mortal(newSVnv(p_xmin)));
XPUSHs( sv_2mortal(newSVnv(p_ymin)));
XPUSHs( sv_2mortal(newSVnv(p_xmax)));
XPUSHs( sv_2mortal(newSVnv(p_ymax)));
c_plgfam()
PREINIT:
PLINT fam;
PLINT num;
PLINT bmax;
PPCODE:
c_plgfam( &fam, &num, &bmax );
XPUSHs( sv_2mortal(newSViv(fam)));
XPUSHs( sv_2mortal(newSViv(num)));
XPUSHs( sv_2mortal(newSViv(bmax)));
PLFLT yp;
PLINT xleng;
PLINT yleng;
PLINT xoff;
PLINT yoff;
PPCODE:
c_plgpage( &xp, &yp, &xleng, &yleng, &xoff, &yoff);
XPUSHs( sv_2mortal(newSVnv(xp)));
XPUSHs( sv_2mortal(newSVnv(yp)));
XPUSHs( sv_2mortal(newSViv(xleng)));
XPUSHs( sv_2mortal(newSViv(yleng)));
PREINIT:
PLFLT xmin;
PLFLT ymin;
PLFLT xmax;
PLFLT ymax;
PPCODE:
c_plgspa( &xmin, &ymin, &xmax, &ymax );
XPUSHs( sv_2mortal(newSVnv(xmin)));
XPUSHs( sv_2mortal(newSVnv(ymin)));
XPUSHs( sv_2mortal(newSVnv(xmax)));
XPUSHs( sv_2mortal(newSVnv(ymax)));
PREINIT:
PLFLT p_xmin;
PLFLT p_xmax;
PLFLT p_ymin;
PLFLT p_ymax;
PPCODE:
c_plgvpd( &p_xmin, &p_xmax, &p_ymin, &p_ymax );
XPUSHs( sv_2mortal(newSVnv(p_xmin)));
XPUSHs( sv_2mortal(newSVnv(p_xmax)));
XPUSHs( sv_2mortal(newSVnv(p_ymin)));
XPUSHs( sv_2mortal(newSVnv(p_ymax)));
PREINIT:
PLFLT p_xmin;
PLFLT p_xmax;
PLFLT p_ymin;
PLFLT p_ymax;
PPCODE:
c_plgvpw( &p_xmin, &p_xmax, &p_ymin, &p_ymax );
XPUSHs( sv_2mortal(newSVnv(p_xmin)));
XPUSHs( sv_2mortal(newSVnv(p_xmax)));
XPUSHs( sv_2mortal(newSVnv(p_ymin)));
XPUSHs( sv_2mortal(newSVnv(p_ymax)));
void
c_plgxax()
PREINIT:
PLINT digmax;
PLINT digits;
PPCODE:
c_plgxax( &digmax, &digits );
XPUSHs( sv_2mortal(newSViv(digmax)));
XPUSHs( sv_2mortal(newSViv(digits)));
void
c_plgyax()
PREINIT:
PLINT digmax;
PLINT digits;
PPCODE:
c_plgyax( &digmax, &digits );
XPUSHs( sv_2mortal(newSViv(digmax)));
XPUSHs( sv_2mortal(newSViv(digits)));
void
c_plgzax()
PREINIT:
PLINT digmax;
PLINT digits;
PPCODE:
c_plgzax( &digmax, &digits );
XPUSHs( sv_2mortal(newSViv(digmax)));
XPUSHs( sv_2mortal(newSViv(digits)));
plgFileDevs()
PREINIT:
char ** menustr;
char ** devname;
int ndev;
PPCODE:
/* Guess at largest number of drivers !! */
menustr = get_mortalspace( 1024, 'v');
devname = get_mortalspace( 1024, 'v');
plgFileDevs(&menustr, &devname, &ndev);
XPUSHs( newRV_noinc( (SV*)unpack1Dchar( menustr, ndev) ));
plgDevs()
PREINIT:
char ** menustr;
char ** devname;
int ndev;
PPCODE:
/* Guess at largest number of drivers !! */
menustr = get_mortalspace( 1024, 'v');
devname = get_mortalspace( 1024, 'v');
plgDevs(&menustr, &devname, &ndev);
XPUSHs( newRV_noinc( (SV*)unpack1Dchar( menustr, ndev) ));
plParseOpts( argv, mode )
char ** argv
PLINT mode
PREINIT:
int status;
PPCODE:
/* $ARGV[0] is not the program name in perl */
status = plParseOpts( &ix_argv, argv, mode | PL_PARSE_NOPROGRAM );
XPUSHs( sv_2mortal(newSViv(status) ));
XPUSHs( newRV_noinc( (SV*)unpack1Dchar( argv, ix_argv) ));
void
plGetCursor()
PREINIT:
PLGraphicsIn gin;
int status;
PPCODE:
status = plGetCursor( &gin );
XPUSHs(sv_2mortal(newSVpv( "dX", 0 )));
XPUSHs(sv_2mortal(newSVnv( gin.dX )));
XPUSHs(sv_2mortal(newSVpv( "dY", 0 )));
XPUSHs(sv_2mortal(newSVnv( gin.dY )));
view all matches for this distribution
view release on metacpan or search on metacpan
Image img;
int literal_color = 0;
int currwidth = 0;
IntRectangle where = { 0, 0, 0, 0 };
ImageSet_t *my_ImageSet = ImageSet;
PPCODE:
if (!SvROK(array_ref) || SvTYPE(SvRV(array_ref)) != SVt_PVAV)
croak("expected ARRAY ref as first argument");
literal_color = !SvOK(color_cb);
if (!literal_color && (!SvROK(color_cb) || SvTYPE(SvRV(color_cb)) != SVt_PVCV))
croak("expected CODE ref as second argument");
view all matches for this distribution
view release on metacpan or search on metacpan
CODE:
sane_exit();
void
get_devices()
PPCODE:
SANE_Status sts;
const SANE_Device **list,*dev;
int cnt;
sts = sane_get_devices(&list,0);
if (sts)
view all matches for this distribution
view release on metacpan or search on metacpan
newCONSTSUB(stash, "TIFFPRINT_JPEGACTABLES", newSViv(TIFFPRINT_JPEGACTABLES));
newCONSTSUB(stash, "TIFFPRINT_JPEGDCTABLES", newSViv(TIFFPRINT_JPEGDCTABLES));
void
tiff_GetVersion (class)
PPCODE:
XPUSHs(sv_2mortal(newSVpv((char *) TIFFGetVersion(), 0)));
void
tiff_IsCODECConfigured (class, compression)
uint16_t compression
PPCODE:
XPUSHs(sv_2mortal(newSViv(TIFFIsCODECConfigured(compression))));
void
tiff__Open (class, path, flags)
const char* path
const char* flags
INIT:
TIFF *tif;
PPCODE:
tif = TIFFOpen(path, flags);
XPUSHs(sv_2mortal(newSViv(PTR2IV(tif))));
void
tiff_Close (tif)
TIFF *tif;
PPCODE:
TIFFClose(tif);
void
tiff_FileName (tif)
TIFF *tif;
PPCODE:
XPUSHs(sv_2mortal(newSVpv((char *) TIFFFileName(tif), 0)));
void
tiff_ReadDirectory (tif)
TIFF *tif;
PPCODE:
XPUSHs(sv_2mortal(newSViv(TIFFReadDirectory(tif))));
void
tiff_WriteDirectory (tif)
TIFF *tif;
PPCODE:
XPUSHs(sv_2mortal(newSViv(TIFFWriteDirectory(tif))));
void
tiff_ReadEXIFDirectory (tif, diroff)
TIFF *tif
toff_t diroff;
PPCODE:
XPUSHs(sv_2mortal(newSViv(TIFFReadEXIFDirectory(tif, diroff))));
void
tiff_NumberOfDirectories (tif)
TIFF *tif
PPCODE:
XPUSHs(sv_2mortal(newSViv(TIFFNumberOfDirectories(tif))));
void
tiff_SetDirectory (tif, dirnum)
TIFF *tif
uint16_t dirnum;
PPCODE:
XPUSHs(sv_2mortal(newSViv(TIFFSetDirectory(tif, dirnum))));
void
tiff_SetSubDirectory(tif, diroff)
TIFF *tif
uint64_t diroff;
PPCODE:
XPUSHs(sv_2mortal(newSViv(TIFFSetSubDirectory(tif, diroff))));
void
tiff_GetField (tif, tag)
TIFF *tif
uint32_t ui32;
uint64_t *aui;
float f;
float *af;
int nvals;
PPCODE:
/* See http://www.libtiff.org/man/TIFFGetField.3t.html */
switch (tag) {
/* byte single uint8 */
/* short single uint16 */
case TIFFTAG_BITSPERSAMPLE:
INIT:
uint16_t ui16, ui16_2, *aui16, *aui16_2, *aui16_3;
uint32_t ui32;
uint64_t *aui;
float f;
PPCODE:
switch (tag) {
/* byte single uint8 */
/* short single uint16 */
case TIFFTAG_BITSPERSAMPLE:
case TIFFTAG_COMPRESSION:
uint32_t tag
INIT:
uint16_t ui16, ui16_2;
uint32_t ui32;
float f;
PPCODE:
switch (tag) {
/* single float */
case TIFFTAG_XRESOLUTION:
case TIFFTAG_YRESOLUTION:
}
void
tiff_IsTiled (tif)
TIFF *tif
PPCODE:
XPUSHs(sv_2mortal(newSViv(TIFFIsTiled(tif))));
void
tiff_ScanlineSize (tif)
TIFF *tif
PPCODE:
XPUSHs(sv_2mortal(newSViv(TIFFScanlineSize(tif))));
void
tiff_StripSize (tif)
TIFF *tif
PPCODE:
XPUSHs(sv_2mortal(newSViv(TIFFStripSize(tif))));
void
tiff_NumberOfStrips (tif)
TIFF *tif
PPCODE:
XPUSHs(sv_2mortal(newSViv(TIFFNumberOfStrips(tif))));
void
tiff_TileSize (tif)
TIFF *tif
PPCODE:
XPUSHs(sv_2mortal(newSViv(TIFFTileSize(tif))));
void
tiff_TileRowSize (tif)
TIFF *tif
PPCODE:
XPUSHs(sv_2mortal(newSViv(TIFFTileRowSize(tif))));
void
tiff_ComputeStrip (tif, row, sample)
TIFF *tif
uint32_t row
uint16_t sample
PPCODE:
XPUSHs(sv_2mortal(newSViv(TIFFComputeStrip(tif, row, sample))));
void
tiff_ReadEncodedStrip (tif, strip, size)
TIFF *tif
uint32_t strip
tmsize_t size
INIT:
void *buf;
tmsize_t stripsize, bufsize;
PPCODE:
stripsize = TIFFStripSize(tif);
buf = _TIFFmalloc(stripsize);
bufsize = TIFFReadEncodedStrip(tif, strip, buf, size);
if (bufsize > 0) {
XPUSHs(sv_2mortal(newSVpvn(buf, bufsize)));
uint32_t strip
void* data
tmsize_t size
INIT:
tmsize_t stripsize;
PPCODE:
stripsize = TIFFWriteEncodedStrip(tif, strip, data, size);
XPUSHs(sv_2mortal(newSViv(stripsize)));
void
tiff_ReadRawStrip (tif, strip, size)
uint32_t strip
tmsize_t size
INIT:
void *buf;
tmsize_t stripsize, bufsize;
PPCODE:
stripsize = TIFFStripSize(tif);
buf = _TIFFmalloc(stripsize);
bufsize = TIFFReadRawStrip(tif, strip, buf, size);
if (bufsize > 0) {
XPUSHs(sv_2mortal(newSVpvn(buf, bufsize)));
uint32_t z
uint16_t s
INIT:
void *buf;
tmsize_t tilesize, bufsize;
PPCODE:
tilesize = TIFFTileSize(tif);
buf = _TIFFmalloc(tilesize);
bufsize = TIFFReadTile(tif, buf, x, y, z, s);
if (bufsize > 0) {
XPUSHs(sv_2mortal(newSVpvn(buf, bufsize)));
view all matches for this distribution
view release on metacpan or search on metacpan
* typemap: Fixed typemap
2002-10-20 09:18 cerney
* parseWrap, Common/Common.xs: Modified to not use PPCODE sections
in xs code. These are now emulated wih CODE sections and some extra
XS macros. For some reason, xsubpp did not like PPCODE sections in
multiple CASE section in a XS function. This made overridden methods
that return a list of values (e.g. vtkDataArray::GetRange)
impossible to implement in XS code.
2002-10-19 10:25 cerney
view all matches for this distribution
view release on metacpan or search on metacpan
OUTPUT:
RETVAL
IV is_connected (GraphiteXS_Object *self)
PPCODE:
mXPUSHi(self->is_connected ? 1 : 0);
XSRETURN(1);
IV connect (GraphiteXS_Object *self)
PPCODE:
connect_(self);
mXPUSHi(self->is_connected ? 1 : 0);
XSRETURN(1);
IV reconnect (GraphiteXS_Object *self)
PPCODE:
disconnect_(self);
connect_(self);
mXPUSHi(self->is_connected ? 1 : 0);
XSRETURN(1);
void disconnect (GraphiteXS_Object *self)
PPCODE:
disconnect_(self);
XSRETURN_EMPTY;
HV* get_bulk_metrics (GraphiteXS_Object *self)
OUTPUT:
RETVAL
SV* send_bulk (GraphiteXS_Object* self)
PPCODE:
IV is_success = 1;
if (self->is_connected) {
mXPUSHi(move(is_success));
XSRETURN(1);
SV* send_bulk_delegate (GraphiteXS_Object *self)
PPCODE:
const char *sender = SvPVX(self->sender_name);
if (!sender)
croak("No sender was specified");
OUTPUT:
RETVAL
void clear_bulk (GraphiteXS_Object *self)
PPCODE:
clear_bulk_(self);
XSRETURN_EMPTY;
void incr_bulk (GraphiteXS_Object *self, SV* key, NV value = 1)
PPCODE:
bool is_ok = false;
if (key != &PL_sv_undef) {
uint32_t key_type = SvTYPE(key);
if (key_type == SVt_PVLV || key_type == SVt_PVMG) {
// SVt_PVLV can be returned from substr
XSRETURN_EMPTY;
void append_bulk (GraphiteXS_Object *self, HV* hv, SV* prefix = &PL_sv_undef)
PPCODE:
if (SvTIED_mg((SV *) hv, PERL_MAGIC_tied))
croak("Tied hashes are not supported");
bool use_prefix = false;
XSRETURN_EMPTY;
SV* is_valid_key (GraphiteXS_Object *self, SV* key)
PPCODE:
bool is_valid = is_valid_key_(self, move(key));
mXPUSHi( move(is_valid ? 1 : 0) );
XSRETURN(1);
IV get_invalid_key_counter (GraphiteXS_Object *self)
PPCODE:
mXPUSHi( self->invalid_key_counter );
XSRETURN(1);
void check_and_bump_invalid_metric (GraphiteXS_Object *self, SV* key)
PPCODE:
if ( SVt_NULL != SvTYPE(key) ) {
uint32_t counter = move(self->invalid_key_counter);
self->invalid_key_counter = 0;
increment_hash_value_by( self->bulk_hv, move(key), move(counter) );
}
XSRETURN_EMPTY;
IV is_metric_blocked (GraphiteXS_Object *self, SV* key)
PPCODE:
bool is_blocked = false;
if ( is_valid_key_(self, key) )
is_blocked = is_metric_blocked_(self, move(key));
mXPUSHi( move(is_blocked ? 1 : 0) );
XSRETURN(1);
void set_blocked_metrics_re (GraphiteXS_Object *self, SV* block_re = &PL_sv_undef)
PPCODE:
set_blocked_metrics_re_(self, block_re);
XSRETURN_EMPTY;
void DESTROY (...)
PPCODE:
GraphiteXS_Object *self = (GraphiteXS_Object *) SvUV(SvRV(ST(0)));
if (PL_dirty) // global destruction
return;
if (self->sender_name && SvREFCNT(self->sender_name)) // sv_clear
SvREFCNT_dec_NN(self->sender_name);
view all matches for this distribution
view release on metacpan or search on metacpan
Transform.xs view on Meta::CPAN
void
grid (self, aref=0)
Grid::Transform self
SV *aref
PROTOTYPE: $;\@
PPCODE:
if (items == 2) {
AV *av = (AV *)SvRV(aref);
if (! (SvRV(aref) && SvTYPE(SvRV(aref)) == SVt_PVAV)) {
croak ("reference to an array expected");
}
Transform.xs view on Meta::CPAN
rotate_180 (self)
Grid::Transform self
PROTOTYPE: $
ALIAS:
rotate180 = 1
PPCODE:
FIX_DIRTY_GRID(self);
REVERSE_AV(self->grid);
XSRETURN(1);
void
Transform.xs view on Meta::CPAN
ALIAS:
rotate90 = 1
PREINIT:
SV **tmp;
IV n, i, row, col;
PPCODE:
FIX_DIRTY_GRID(self);
n = self->rows * self->columns;
New(0, tmp, n, SV*);
for (i=0, col=0; col<self->columns; col++) {
for (row=self->rows-1; row>=0; row--, i++) {
Transform.xs view on Meta::CPAN
ALIAS:
rotate270 = 1
PREINIT:
SV **tmp;
IV n, i, row, col;
PPCODE:
FIX_DIRTY_GRID(self);
n = self->rows * self->columns;
New(0, tmp, n, SV*);
for (i=0, col=self->columns-1; col>=0; col--) {
for (row=0; row<self->rows; row++, i++) {
Transform.xs view on Meta::CPAN
Grid::Transform self
PROTOTYPE: $
PREINIT:
SV **tmp;
IV n, i, row, col;
PPCODE:
FIX_DIRTY_GRID(self);
n = self->rows * self->columns;
New(0, tmp, n, SV*);
for (i=0, col=self->columns-1; col>=0; col--) {
for (row=self->rows-1; row>=0; row--, i++) {
Transform.xs view on Meta::CPAN
ALIAS:
countertranspose = 1
PREINIT:
SV **tmp;
IV n, i, row, col;
PPCODE:
FIX_DIRTY_GRID(self);
n = self->rows * self->columns;
New(0, tmp, n, SV*);
for (i=0, col=0; col<self->columns; col++) {
for (row=0; row<self->rows; row++, i++) {
Transform.xs view on Meta::CPAN
PROTOTYPE: $
ALIAS:
mirror_horizontal = 1
PREINIT:
IV row, lcol, rcol;
PPCODE:
FIX_DIRTY_GRID(self);
for (row=0; row<self->rows; row++) {
for (lcol=0, rcol=self->columns-1; lcol<rcol; lcol++, rcol--) {
SWAP(SV*, AvARRAY(self->grid)[lcol + row * self->columns],
AvARRAY(self->grid)[rcol + row * self->columns]);
Transform.xs view on Meta::CPAN
PROTOTYPE: $
ALIAS:
mirror_vertical = 1
PREINIT:
IV col, trow, brow;
PPCODE:
FIX_DIRTY_GRID(self);
for (col=0; col<self->columns; col++) {
for (trow=0, brow=self->rows-1; trow<brow; trow++, brow--) {
SWAP(SV*, AvARRAY(self->grid)[col + trow * self->columns],
AvARRAY(self->grid)[col + brow * self->columns]);
Transform.xs view on Meta::CPAN
Grid::Transform self
PROTOTYPE: $
PREINIT:
SV **tmp;
IV n, i, row, col, h;
PPCODE:
FIX_DIRTY_GRID(self);
n = self->rows * self->columns;
New(0, tmp, n, SV*);
h = self->columns >> 1;
for (i=0, row=0; row<self->rows; row++) {
Transform.xs view on Meta::CPAN
Grid::Transform self
PROTOTYPE: $
PREINIT:
SV **tmp;
IV n, i, row, col, h;
PPCODE:
FIX_DIRTY_GRID(self);
n = self->rows * self->columns;
New(0, tmp, n, SV*);
h = self->columns >> 1;
for (i=0, row=0; row<self->rows; row++) {
Transform.xs view on Meta::CPAN
PROTOTYPE: $
ALIAS:
alt_row_dir = 1
PREINIT:
IV row, lcol, rcol;
PPCODE:
FIX_DIRTY_GRID(self);
for (row=1; row<self->rows; row+=2) {
for (lcol=0, rcol=self->columns-1; lcol<rcol; lcol++, rcol--) {
SWAP(SV*, AvARRAY(self->grid)[lcol + row * self->columns],
AvARRAY(self->grid)[rcol + row * self->columns]);
Transform.xs view on Meta::CPAN
Grid::Transform self
PROTOTYPE: $
PREINIT:
SV **tmp;
IV n, i, idx, top, bottom, left, right;
PPCODE:
FIX_DIRTY_GRID(self);
n = self->rows * self->columns;
New(0, tmp, n, SV*);
idx = 0;
top = 0;
view all matches for this distribution
view release on metacpan or search on metacpan
Bonobo/xs/BonoboControlFrame.xs view on Meta::CPAN
Gnome::BonoboControlFrame control_frame
void
bonobo_control_frame_size_request (control_frame)
Gnome::BonoboControlFrame control_frame
PPCODE:
{
int desired_width, desired_height;
bonobo_control_frame_size_request (control_frame, &desired_width, &desired_height);
EXTEND(sp, 2);
PUSHs(sv_2mortal(newSViv(desired_width)));
view all matches for this distribution
view release on metacpan or search on metacpan
GdkImlib.xs view on Meta::CPAN
void
gdk_imlib_load_file_to_pixmap(Class, file)
SV * Class
char* file
PPCODE:
{
GdkPixmap * result = 0;
GdkBitmap * mask = 0;
int ret;
ret = gdk_imlib_load_file_to_pixmap(file, &result, &mask);
GdkImlib.xs view on Meta::CPAN
RETVAL
void
gdk_imlib_data_to_pixmap(Class, data, ...)
SV * data
PPCODE:
{
GdkPixmap * result = 0;
GdkBitmap * mask = 0;
int ret;
char ** lines = (char**)malloc(sizeof(char*)*(items-1));
view all matches for this distribution
view release on metacpan or search on metacpan
ChangeLog.pre-git view on Meta::CPAN
* t/GtkTreeView.t: Use true values to test functions that
return/take a boolean. Only test stuff inside the cell_data_func
once.
* xs/GtkClipboard.xs: Use void for the return value of
wait_for_targets - it uses PPCODE. Check targets for NULL instead
of n_targets.
* xs/GtkCalendar.xs
* xs/GtkComboBox.xs: Mark ix as unused.
ChangeLog.pre-git view on Meta::CPAN
2004/01/04 11:49 (-0500) rwmcfa1
* xs/GdkWindow.xs: for some reason get_pointer was having issues with
certian versions of perl/xsubpp. it seemed to be related to the both
having a return value and having OUTLIST's. this implements it as a
PPCODE section doing the same thing.
2004/01/04 02:50 (+0100) kaffeetisch
* t/10.GtkProgressBar.t: Test get_orientation, get_fraction,
[sg]et_text, and [sg]et_pulse_step.
ChangeLog.pre-git view on Meta::CPAN
xs/GtkColorSelection.xs, xs/GtkCurve.xs, xs/GtkEditable.xs,
xs/GtkFileSelection.xs, xs/GtkIconFactory.xs, xs/GtkLabel.xs,
xs/GtkRadioMenuItem.xs, xs/GtkSelection.xs, xs/GtkStock.xs,
xs/GtkTextBuffer.xs, xs/GtkTreeModel.xs, xs/GtkTreeSortable.xs,
xs/GtkTreeViewColumn.xs, xs/PangoLayout.xs, xs/PangoTabs.xs: apidoc
added, almost all PPCODE xsubs now have it
* xs/GtkTreeDnd.xs: gtk_tree_get_row_drag_data had the outlist params
in the prototype. apidoc added, almost all PPCODE xsubs now have it
* xs/GtkContainer.xs: PPCODE -> CODE, return was always void. apidoc
added, almost all PPCODE xsubs now have it
* xs/GdkSelection.xs: added a class parameter to
gdk_selection_property_get. apidoc added, almost all PPCODE xsubs now
have it
2003/11/17 16:27 (-0500) muppetman
* xs/GdkPixbuf.xs: i borked the get_from_(drawable|image) xsubs...
ChangeLog.pre-git view on Meta::CPAN
* xs/GdkPixbuf.xs: formatting cleanup
* xs/GdkWindow.xs: quited warning about invalid paramter type
* xs/GtkIconFactory.xs: non-void paramter with PPCODE, fixed
* xs/GtkTearoffMenuItem.xs: teamoff -> tearoff, big bug
* xs/GtkTreeModel.xs: looking for -1 list terminator incorrectly,
bug-fix
view all matches for this distribution