Sign up

Wrapping librsvg.

I want to wrap a couple of C functions that take a cairo_t* as an argument. But in the gtkd cairo.Context class, that pointer is protected, and DMD seems to do a pretty good job at protection.

How do I work round that?

Re: Wrapping librsvg.

On 11/27/2013 09:39 AM, Steve Teale wrote:

I want to wrap a couple of C functions that take a cairo_t* as an argument. But in the gtkd cairo.Context class, that pointer is protected, and DMD seems to do a pretty good job at protection.

How do I work round that?

You can use Context.getContextStruct() witch returns the wrapped cairo_t.

Re: Wrapping librsvg.

On Wed, 27 Nov 2013 19:24:36 +0100, Mike Wey wrote:

On 11/27/2013 09:39 AM, Steve Teale wrote:

I want to wrap a couple of C functions that take a cairo_t* as an argument. But in the gtkd cairo.Context class, that pointer is protected, and DMD seems to do a pretty good job at protection.

How do I work round that?

You can use Context.getContextStruct() witch returns the wrapped cairo_t.

Undocumented feature? Do all gtkd types have one of these?

Re: Wrapping librsvg.

On 11/28/2013 06:50 AM, Steve Teale wrote:

On Wed, 27 Nov 2013 19:24:36 +0100, Mike Wey wrote:

On 11/27/2013 09:39 AM, Steve Teale wrote:

I want to wrap a couple of C functions that take a cairo_t* as an argument. But in the gtkd cairo.Context class, that pointer is protected, and DMD seems to do a pretty good job at protection.

How do I work round that?

You can use Context.getContextStruct() witch returns the wrapped cairo_t.

Undocumented feature? Do all gtkd types have one of these?

Yes every type has one, i thin they were originally meant for internal
use only. I'll add some documentation to these.