display_width, display_height);
display_width, display_height, ic->dest_width, ic->dest_height);
IL_DisplaySubImage(IL_ImageReq *image_req, int x, int y, int x_offset,                   int y_offset, int width, int height){    IL_GroupContext *img_cx;    void *dpy_cx;    il_container *ic;    IL_Rect *displayable_rect;    NI_PixmapHeader *img_header;        /* If we were passed a NULL image handle, don't do anything. */    if (!image_req)        return;    /* Determine the image context and the display context for this display       operation. */    img_cx = image_req->img_cx;    dpy_cx = img_cx->dpy_cx;    if (!dpy_cx)        return;        /* Determine the image container. */    ic = image_req->ic;	    if (!ic )	return;    /* Perform the drawing operation, but only do so for displayable areas       of the image pixmap. */    displayable_rect = &ic->displayable_rect;    img_header = &ic->image->header;            if (displayable_rect->width < img_header->width ||        displayable_rect->height < img_header->height) {        /* The image pixmap is only partially displayable (since the image           is only partially decoded,) so draw the intersection of the           requested area with the displayable area.  The client will           receive observer notification as the pixmap is updated, and it           is expected to call the image library again to display the           updated area.  Note that tiling operations are not performed           unless the entire image pixmap is displayable. */        int32 display_left, display_top, display_bottom, display_right;        int32 display_width, display_height;                    /* Determine the intersection of the requested area and the           displayable area, in pixmap coordinates. */        display_left = MAX(x_offset, displayable_rect->x_origin);        display_top = MAX(y_offset, displayable_rect->y_origin);        display_right = MIN(x_offset + width, displayable_rect->x_origin                            + displayable_rect->width);        display_bottom = MIN(y_offset + height, displayable_rect->y_origin                             + displayable_rect->height);        display_width = display_right - display_left;        display_height = display_bottom - display_top;                /* Draw the intersection of the requested area and the displayable           area. */        if ((display_width > 0) && (display_height > 0))            IMGCBIF_DisplayPixmap(img_cx->img_cb, dpy_cx, ic->image, ic->mask,                                  x, y, display_left, display_top,                                  display_width, display_height);    }    else {        /* The entire image pixmap is displayable, (although this does not           necessarily mean that the image has finished decoding,) so draw           the entire area requested.  In the event that the requested           area extends beyond the bounds of the image pixmap, tiling will           be performed. */        if (width && height)            IMGCBIF_DisplayPixmap(img_cx->img_cb, dpy_cx, ic->image, ic->mask,                                  x, y, x_offset, y_offset, width, height);    }}