[Gs-devel] Forwarding devices

Raph Levien raph at levien.com
Tue Feb 27 09:20:27 PST 2001


On Tue, Feb 27, 2001 at 03:41:42PM +0100, Juliusz Chroboczek wrote:
> Hi,
> 
> Given a gx_device, how do I find out if it's a forwarding device?
> 
> Explanation: in the DPS extension, X-specific data (such as which
> window to render to) is held in the gx_device_dps.  There are some PS
> operators that can be used to find out this data.
> 
> This works fine if the current device is a DPS device.  However, the
> current device may be a forwarding device that points at a DPS device.
> How do I find out the underlying device in that case?
> 
> Unless there's already a way to do that, I'm thinking of adding a new
> field to gx_device_common.
> 
> By the way, please note that I'm working with 6.01.

This code should work:

    const gx_device_procs *procs = dev->static_procs;

    if (procs == 0)
	procs = &dev->procs;
    if (procs->get_xfont_procs == gx_forward_get_xfont_procs)

That fragment is taken from gx_device_make_struct_type() in gsdevice.c,
so it's "official".

Raph



More information about the gs-devel mailing list