Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!mcsun!ukc!tcdcs!swift.cs.tcd.ie!cjmchale From: cjmchale@swift.cs.tcd.ie Newsgroups: comp.windows.x Subject: XFillRectangle with Tile Vs. Manual Tiling Message-ID: <7302.2736bd63@swift.cs.tcd.ie> Date: 6 Nov 90 13:40:50 GMT Organization: Computer Science Department, Trinity College Dublin Lines: 602 I'm posting this on behalf of Afzal Ballim who at the moment can read but not post to the net. Either followup or reply to him (not me). ------------------------------------------------------------------- Newsgroups: comp.windows.x Subject: XFillRectangle with Tile Vs Manual Tiling Reply-To: afzal@cuisun.unige.ch (not sure if this got posted) Hi, I have a question regarding tiling rectangular areas of a drawable. In the course of writing a widget I have been considering the question of tiling a rectangular area of a drawable. I have tried the obvious way of doing this, i.e., setting the tile attribute of a gc, the ts_x_origin, ts_y_origin, and the fill style to FillTiled, and the not-so-obvious way, i.e., doing it yourself. In both cases I was using a Pixmap to tile a drawable. I found (much to my surprise) that the not-so-obvious way was MUCH faster (one my Sparcstation 1) with an area about twelve times the area of the tile. This seems bizzare to me, after all the obvious way requires one trip to the server, while the not-so-obvious way requires many trips. Has anyone else noticed such behaviour, or have I most likely overlooked something? The code is in a widget I am writing, so I do not include it here, however, I will go off now and try and reproduce this in straight Xlib calls. In the meantime, if anyone has advice, flames (:-), etc., I'll be happy to receive them, and will post a summary to the net if there is interest -Afzal Ballim (later....) I've written two raw Xlib programs to demonstrate the problem. (Compile with -lX11). +------------------------------cut here------------------------------+ #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh 'prob.c' <<'END_OF_FILE' X X#include X#include X#include X Xstatic char pixbits[] = { X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xab, 0xf4, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2f, 0x00, 0xa0, 0xf6, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, X 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0x3f, 0x00, 0x20, 0x00, 0x40, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x08, 0x01, 0x00, 0xfc, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x90, 0xba, 0x4a, 0x08, X 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x02, 0x00, X 0x54, 0x25, 0x01, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0x1f, 0x20, 0xa2, 0xd2, 0x02, 0x0a, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0x07, 0x00, 0x08, 0x88, 0x48, 0x00, 0x00, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x80, 0x02, 0x02, 0x00, X 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x92, X 0x10, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, X 0x00, 0x20, 0xa4, 0x02, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0x3f, 0x01, 0x88, 0x2a, 0x14, 0x80, 0x08, 0x00, 0x80, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0x00, 0x01, 0x5a, 0x04, 0x50, 0x82, X 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x50, 0xe0, 0x52, X 0x00, 0xa8, 0x08, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x13, X 0x00, 0x42, 0x05, 0x43, 0xb8, 0x24, 0x81, 0x00, 0xfc, 0xff, 0xff, 0xff, X 0xff, 0xff, 0x03, 0x00, 0x48, 0xf1, 0x06, 0x05, 0x41, 0x0a, 0x00, 0xf8, X 0xff, 0xff, 0xff, 0xff, 0xff, 0x0d, 0x09, 0x21, 0x5c, 0x01, 0x50, 0x2a, X 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x02, 0x00, 0x00, 0xc4, X 0x40, 0x85, 0x94, 0x0a, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x01, X 0x40, 0x04, 0x50, 0x91, 0x24, 0x14, 0x00, 0x08, 0xe0, 0xff, 0xff, 0xff, X 0xff, 0xbf, 0x01, 0x04, 0x01, 0x10, 0x60, 0x09, 0xa1, 0x48, 0x00, 0xc0, X 0xff, 0xff, 0xff, 0xff, 0xdf, 0x00, 0x20, 0x10, 0x02, 0xa6, 0x42, 0x08, X 0x00, 0x88, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x5f, 0x00, 0x09, 0x04, 0x40, X 0xae, 0x14, 0x20, 0x01, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x6f, 0x20, X 0x40, 0x88, 0x00, 0x57, 0x41, 0x15, 0x20, 0xa8, 0x11, 0xff, 0xff, 0xff, X 0xff, 0x37, 0x08, 0x20, 0x35, 0x10, 0x57, 0x2d, 0x52, 0x00, 0x09, 0x05, X 0xff, 0xff, 0xff, 0xff, 0x37, 0x40, 0xa2, 0x06, 0x44, 0xde, 0x4b, 0x15, X 0x00, 0x50, 0x01, 0xfe, 0xff, 0xff, 0xff, 0x3b, 0x02, 0xa0, 0xa5, 0x20, X 0xf4, 0xaa, 0x5a, 0x40, 0x04, 0x15, 0xfc, 0xff, 0xff, 0xff, 0x1b, 0x28, X 0x0d, 0x4a, 0x52, 0xed, 0xa8, 0x38, 0x04, 0x50, 0x25, 0xfc, 0xff, 0xff, X 0xff, 0x0d, 0x02, 0xae, 0xc3, 0x50, 0xea, 0xea, 0xe5, 0x00, 0x82, 0x0d, X 0xfc, 0xff, 0xff, 0xff, 0x1d, 0x11, 0x1d, 0xca, 0x05, 0xe1, 0xf8, 0xc1, X 0x01, 0x24, 0x83, 0xf0, 0xff, 0xff, 0xff, 0x8e, 0x54, 0x04, 0x41, 0x91, X 0xb4, 0x7b, 0x55, 0x4a, 0xc8, 0x13, 0xf8, 0xff, 0xff, 0xff, 0x1e, 0x11, X 0x29, 0xd0, 0x05, 0x2a, 0xff, 0x96, 0x05, 0x40, 0x83, 0xf8, 0xff, 0xff, X 0x7f, 0x7f, 0xad, 0x02, 0x00, 0x80, 0xfe, 0xd5, 0x77, 0x0f, 0xca, 0x15, X 0xf0, 0xff, 0xff, 0x7f, 0x5f, 0xa9, 0x0a, 0xe4, 0x20, 0xfe, 0xeb, 0xdb, X 0x97, 0xd0, 0x4b, 0xf1, 0xff, 0xff, 0x7f, 0xff, 0x82, 0x44, 0x13, 0xd2, X 0xfe, 0xe2, 0xad, 0x03, 0x2a, 0x84, 0xe0, 0xff, 0xff, 0xbf, 0xff, 0x29, X 0x14, 0x21, 0xa0, 0xfe, 0xd1, 0x9b, 0xab, 0xf8, 0x14, 0xe0, 0xff, 0xff, X 0xbf, 0xff, 0xa8, 0x8a, 0x8a, 0x7c, 0x3f, 0xe5, 0x76, 0x28, 0xb4, 0x00, X 0xe0, 0xff, 0xff, 0xbf, 0xff, 0x55, 0x0a, 0x21, 0xfa, 0x7f, 0xf1, 0x7a, X 0x55, 0x79, 0x25, 0xe0, 0xff, 0xff, 0xdf, 0xff, 0xab, 0x5c, 0x88, 0xfe, X 0x5f, 0xeb, 0x7e, 0x2c, 0xff, 0x10, 0xc0, 0xff, 0xff, 0xdf, 0xff, 0x7f, X 0x03, 0x72, 0xff, 0xff, 0xf1, 0xbe, 0x1a, 0xfe, 0x01, 0xc0, 0xff, 0xff, X 0xdf, 0xff, 0xdf, 0x5a, 0xf4, 0xff, 0xff, 0x6a, 0x3f, 0x0c, 0xf7, 0x91, X 0xc0, 0xff, 0xff, 0xdf, 0xff, 0xff, 0x87, 0xfb, 0xff, 0xfd, 0xb7, 0x4e, X 0x1d, 0x7f, 0x01, 0xc0, 0xff, 0xff, 0xdf, 0xff, 0xff, 0x25, 0xfe, 0xff, X 0xfd, 0x2e, 0x6e, 0x0c, 0xff, 0x50, 0x80, 0xff, 0xff, 0xef, 0xff, 0xff, X 0xff, 0xff, 0xef, 0xbf, 0xb7, 0x47, 0xfc, 0xbf, 0x00, 0xa0, 0xff, 0xff, X 0xef, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0xdf, 0x2b, 0xec, 0x7f, 0x04, X 0xa0, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0x9b, 0x05, X 0xfe, 0xbf, 0x90, 0xa0, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xdf, 0xab, 0x21, 0xfc, 0x3f, 0xa0, 0xa2, 0xff, 0xff, 0xef, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xbf, 0x09, 0x45, 0xfa, 0x1f, 0x80, 0x81, 0xff, 0xff, X 0xef, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xd7, 0x99, 0xde, 0x7f, 0x20, X 0xa0, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xb0, X 0x97, 0xbf, 0x80, 0xa0, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xf4, X 0x7f, 0xfe, 0xf5, 0x2b, 0x7a, 0x21, 0xa0, 0xff, 0xff, 0xef, 0xff, 0xff, X 0xff, 0xff, 0xf8, 0xff, 0xf4, 0xf9, 0x57, 0xfe, 0x00, 0xa2, 0xff, 0xff, X 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xfc, 0xff, 0xa3, 0xf8, 0x01, X 0xa0, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xfa, 0xff, X 0x0b, 0xfd, 0x85, 0xa0, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xbe, 0x7f, 0xa2, 0xfa, 0x15, 0xb0, 0xff, 0xff, 0xef, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd2, 0xfe, 0x4f, 0xb4, 0xff, 0xff, X 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xf4, 0x7f, 0x8b, X 0xb8, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xfd, 0xff, 0x2e, 0xba, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0x7f, 0xff, 0x7f, 0x08, 0xdf, 0xff, 0xff, 0xdf, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, X 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaa, X 0xdf, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xbf, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, X 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xef, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0x7f, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, X 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xf7, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xfd, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, X 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xfd, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xf7, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, X 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, X 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, X 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, X 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0x7f, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfe, 0xff, X 0xff, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0xff, 0xe3, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc1, X 0xff, 0x1f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0x3f, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff X}; X X X/* border width */ X#define BDW 4 X Xmain(argc, argv) Xint argc; Xchar *argv[]; X{ X/* declarations */ XDisplay *mydisplay; XWindow mywindow; XXGCValues gcvalues; XGC copygc,tilegc; XXSizeHints hints; Xint myscreen; Xunsigned long foreground,background; Xint i,j,k; /* :-) */ Xint done; X X/* Initialisation */ X Xmydisplay = XOpenDisplay(""); Xmyscreen = DefaultScreen(mydisplay); X X/* pixel values */ Xforeground = WhitePixel(mydisplay,myscreen); Xbackground = BlackPixel(mydisplay,myscreen); X X/* hints */ Xhints.x = 200; hints.y = 300; Xhints.width = 360; hints.height = 480; X Xhints.flags = PPosition | PSize; X X/* make a window */ X Xmywindow = XCreateSimpleWindow(mydisplay, X DefaultRootWindow(mydisplay), X hints.x,hints.y,hints.width,hints.height, X BDW,foreground,background); XXSetStandardProperties(mydisplay,mywindow,"Tile test","Tile test", X None,argv,argc,&hints); X X/* make the GCs */ X Xgcvalues.foreground= foreground; Xgcvalues.background= background; Xcopygc = XCreateGC(mydisplay,mywindow,GCBackground|GCForeground,&gcvalues); X Xgcvalues.fill_style = FillTiled; Xgcvalues.tile = XCreatePixmapFromBitmapData(mydisplay,mywindow, X pixbits,120,120,foreground,background, X DefaultDepth(mydisplay,myscreen)); Xtilegc = XXCreateGC(mydisplay,mywindow,GCBackground|GCForeground|GCTile|GCFillStyle, X &gcvalues); X X/* raise window */ XXMapRaised(mydisplay,mywindow); XXFlush(mydisplay); X X X/* main loop, don't care about events */ X X/* first tile the window twelve hundred times */ Xprintf("Tile the window twelve hundred times using XFillRectangle\n"); Xfor (i=0;i<1200;i++) { X /* set the TS origins here because in general what I want to X do requires this (scrolling over a pixmap) */ X gcvalues.ts_x_origin = i; X gcvalues.ts_y_origin = i; X XChangeGC(mydisplay,tilegc, X GCTileStipXOrigin|GCTileStipYOrigin,&gcvalues); X XFillRectangle(mydisplay,mywindow,tilegc, X 0,0,360,480); X XFlush(mydisplay); X} Xprintf("finished tiling with gc\n"); X X/* now manual tiling */ X XXFreeGC(mydisplay,copygc); XXFreeGC(mydisplay,tilegc); XXDestroyWindow(mydisplay,mywindow); XXCloseDisplay(mydisplay); Xexit(0); X X} END_OF_FILE if test 13428 -ne `wc -c <'prob.c'`; then echo shar: \"'prob.c'\" unpacked with wrong size! fi # end of 'prob.c' fi if test -f 'prob2.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'prob2.c'\" else echo shar: Extracting \"'prob2.c'\" \(13968 characters\) sed "s/^X//" >'prob2.c' <<'END_OF_FILE' X X#include X#include X#include X Xstatic char pixbits[] = { X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xab, 0xf4, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2f, 0x00, 0xa0, 0xf6, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, X 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0x3f, 0x00, 0x20, 0x00, 0x40, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x08, 0x01, 0x00, 0xfc, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x90, 0xba, 0x4a, 0x08, X 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x02, 0x00, X 0x54, 0x25, 0x01, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0x1f, 0x20, 0xa2, 0xd2, 0x02, 0x0a, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0x07, 0x00, 0x08, 0x88, 0x48, 0x00, 0x00, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x80, 0x02, 0x02, 0x00, X 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x92, X 0x10, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, X 0x00, 0x20, 0xa4, 0x02, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0x3f, 0x01, 0x88, 0x2a, 0x14, 0x80, 0x08, 0x00, 0x80, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0x00, 0x01, 0x5a, 0x04, 0x50, 0x82, X 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x50, 0xe0, 0x52, X 0x00, 0xa8, 0x08, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x13, X 0x00, 0x42, 0x05, 0x43, 0xb8, 0x24, 0x81, 0x00, 0xfc, 0xff, 0xff, 0xff, X 0xff, 0xff, 0x03, 0x00, 0x48, 0xf1, 0x06, 0x05, 0x41, 0x0a, 0x00, 0xf8, X 0xff, 0xff, 0xff, 0xff, 0xff, 0x0d, 0x09, 0x21, 0x5c, 0x01, 0x50, 0x2a, X 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x02, 0x00, 0x00, 0xc4, X 0x40, 0x85, 0x94, 0x0a, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x01, X 0x40, 0x04, 0x50, 0x91, 0x24, 0x14, 0x00, 0x08, 0xe0, 0xff, 0xff, 0xff, X 0xff, 0xbf, 0x01, 0x04, 0x01, 0x10, 0x60, 0x09, 0xa1, 0x48, 0x00, 0xc0, X 0xff, 0xff, 0xff, 0xff, 0xdf, 0x00, 0x20, 0x10, 0x02, 0xa6, 0x42, 0x08, X 0x00, 0x88, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x5f, 0x00, 0x09, 0x04, 0x40, X 0xae, 0x14, 0x20, 0x01, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x6f, 0x20, X 0x40, 0x88, 0x00, 0x57, 0x41, 0x15, 0x20, 0xa8, 0x11, 0xff, 0xff, 0xff, X 0xff, 0x37, 0x08, 0x20, 0x35, 0x10, 0x57, 0x2d, 0x52, 0x00, 0x09, 0x05, X 0xff, 0xff, 0xff, 0xff, 0x37, 0x40, 0xa2, 0x06, 0x44, 0xde, 0x4b, 0x15, X 0x00, 0x50, 0x01, 0xfe, 0xff, 0xff, 0xff, 0x3b, 0x02, 0xa0, 0xa5, 0x20, X 0xf4, 0xaa, 0x5a, 0x40, 0x04, 0x15, 0xfc, 0xff, 0xff, 0xff, 0x1b, 0x28, X 0x0d, 0x4a, 0x52, 0xed, 0xa8, 0x38, 0x04, 0x50, 0x25, 0xfc, 0xff, 0xff, X 0xff, 0x0d, 0x02, 0xae, 0xc3, 0x50, 0xea, 0xea, 0xe5, 0x00, 0x82, 0x0d, X 0xfc, 0xff, 0xff, 0xff, 0x1d, 0x11, 0x1d, 0xca, 0x05, 0xe1, 0xf8, 0xc1, X 0x01, 0x24, 0x83, 0xf0, 0xff, 0xff, 0xff, 0x8e, 0x54, 0x04, 0x41, 0x91, X 0xb4, 0x7b, 0x55, 0x4a, 0xc8, 0x13, 0xf8, 0xff, 0xff, 0xff, 0x1e, 0x11, X 0x29, 0xd0, 0x05, 0x2a, 0xff, 0x96, 0x05, 0x40, 0x83, 0xf8, 0xff, 0xff, X 0x7f, 0x7f, 0xad, 0x02, 0x00, 0x80, 0xfe, 0xd5, 0x77, 0x0f, 0xca, 0x15, X 0xf0, 0xff, 0xff, 0x7f, 0x5f, 0xa9, 0x0a, 0xe4, 0x20, 0xfe, 0xeb, 0xdb, X 0x97, 0xd0, 0x4b, 0xf1, 0xff, 0xff, 0x7f, 0xff, 0x82, 0x44, 0x13, 0xd2, X 0xfe, 0xe2, 0xad, 0x03, 0x2a, 0x84, 0xe0, 0xff, 0xff, 0xbf, 0xff, 0x29, X 0x14, 0x21, 0xa0, 0xfe, 0xd1, 0x9b, 0xab, 0xf8, 0x14, 0xe0, 0xff, 0xff, X 0xbf, 0xff, 0xa8, 0x8a, 0x8a, 0x7c, 0x3f, 0xe5, 0x76, 0x28, 0xb4, 0x00, X 0xe0, 0xff, 0xff, 0xbf, 0xff, 0x55, 0x0a, 0x21, 0xfa, 0x7f, 0xf1, 0x7a, X 0x55, 0x79, 0x25, 0xe0, 0xff, 0xff, 0xdf, 0xff, 0xab, 0x5c, 0x88, 0xfe, X 0x5f, 0xeb, 0x7e, 0x2c, 0xff, 0x10, 0xc0, 0xff, 0xff, 0xdf, 0xff, 0x7f, X 0x03, 0x72, 0xff, 0xff, 0xf1, 0xbe, 0x1a, 0xfe, 0x01, 0xc0, 0xff, 0xff, X 0xdf, 0xff, 0xdf, 0x5a, 0xf4, 0xff, 0xff, 0x6a, 0x3f, 0x0c, 0xf7, 0x91, X 0xc0, 0xff, 0xff, 0xdf, 0xff, 0xff, 0x87, 0xfb, 0xff, 0xfd, 0xb7, 0x4e, X 0x1d, 0x7f, 0x01, 0xc0, 0xff, 0xff, 0xdf, 0xff, 0xff, 0x25, 0xfe, 0xff, X 0xfd, 0x2e, 0x6e, 0x0c, 0xff, 0x50, 0x80, 0xff, 0xff, 0xef, 0xff, 0xff, X 0xff, 0xff, 0xef, 0xbf, 0xb7, 0x47, 0xfc, 0xbf, 0x00, 0xa0, 0xff, 0xff, X 0xef, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0xdf, 0x2b, 0xec, 0x7f, 0x04, X 0xa0, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0x9b, 0x05, X 0xfe, 0xbf, 0x90, 0xa0, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xdf, 0xab, 0x21, 0xfc, 0x3f, 0xa0, 0xa2, 0xff, 0xff, 0xef, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xbf, 0x09, 0x45, 0xfa, 0x1f, 0x80, 0x81, 0xff, 0xff, X 0xef, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xd7, 0x99, 0xde, 0x7f, 0x20, X 0xa0, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xb0, X 0x97, 0xbf, 0x80, 0xa0, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xf4, X 0x7f, 0xfe, 0xf5, 0x2b, 0x7a, 0x21, 0xa0, 0xff, 0xff, 0xef, 0xff, 0xff, X 0xff, 0xff, 0xf8, 0xff, 0xf4, 0xf9, 0x57, 0xfe, 0x00, 0xa2, 0xff, 0xff, X 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xfc, 0xff, 0xa3, 0xf8, 0x01, X 0xa0, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xfa, 0xff, X 0x0b, 0xfd, 0x85, 0xa0, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xbe, 0x7f, 0xa2, 0xfa, 0x15, 0xb0, 0xff, 0xff, 0xef, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd2, 0xfe, 0x4f, 0xb4, 0xff, 0xff, X 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xf4, 0x7f, 0x8b, X 0xb8, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xfd, 0xff, 0x2e, 0xba, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0x7f, 0xff, 0x7f, 0x08, 0xdf, 0xff, 0xff, 0xdf, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, X 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaa, X 0xdf, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xbf, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, X 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xef, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0x7f, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, X 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xf7, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xfd, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, X 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xfd, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xf7, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, X 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, X 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, X 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, X 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0x7f, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfe, 0xff, X 0xff, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0xff, 0xe3, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc1, X 0xff, 0x1f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0x3f, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, X 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff X}; X X X/* define MD, a macro similar to REMAINDER but with X different semantics. If MD(x,y) = z then it should X always be the case that z <= 0, and z is the difference X between the greatest number evenly divisible by y X that is NO GREATER THAN x, and the number x itself. */ X X#define MD(x,y) ((x < 0) ? -((y+(x%y))%y) : -(x%y)) X X/* end MD definition */ X X X/* border width */ X#define BDW 4 X X X/* just to minimise differences, change nothing except the X printing loop. */ X Xmain(argc, argv) Xint argc; Xchar *argv[]; X{ X/* declarations */ XDisplay *mydisplay; XWindow mywindow; XXGCValues gcvalues; XGC copygc,tilegc; XXSizeHints hints; Xint myscreen; Xunsigned long foreground,background; Xint i,j,k; /* :-) */ Xint done; X Xint tmpsx,tmpsy; XPixmap thepixmap; X X/* Initialisation */ X Xmydisplay = XOpenDisplay(""); Xmyscreen = DefaultScreen(mydisplay); X X/* pixel values */ Xforeground = WhitePixel(mydisplay,myscreen); Xbackground = BlackPixel(mydisplay,myscreen); X X/* hints */ Xhints.x = 200; hints.y = 300; Xhints.width = 360; hints.height = 480; X Xhints.flags = PPosition | PSize; X X/* make a window */ X Xmywindow = XCreateSimpleWindow(mydisplay, X DefaultRootWindow(mydisplay), X hints.x,hints.y,hints.width,hints.height, X BDW,foreground,background); XXSetStandardProperties(mydisplay,mywindow,"Tile test","Tile test", X None,argv,argc,&hints); X X/* make the GCs */ X Xgcvalues.foreground= foreground; Xgcvalues.background= background; Xcopygc = XCreateGC(mydisplay,mywindow,GCBackground|GCForeground,&gcvalues); X Xgcvalues.fill_style = FillTiled; Xthepixmap = gcvalues.tile = XCreatePixmapFromBitmapData(mydisplay,mywindow, X pixbits,120,120,foreground,background, X DefaultDepth(mydisplay,myscreen)); Xtilegc = XXCreateGC(mydisplay,mywindow,GCBackground|GCForeground|GCTile|GCFillStyle, X &gcvalues); X X/* raise window */ XXMapRaised(mydisplay,mywindow); XXFlush(mydisplay); X X X/* main loop, don't care about events */ X X/* first tile the window twelve hundred times */ Xprintf("Tile the window twelve hundred times using XCopyArea/Plane\n"); Xfor (i=0;i<1200;i++) { X for (tmpsx=MD(-i,120); tmpsx<360; tmpsx+=120) X for (tmpsy=MD(-i,120);tmpsy<480;tmpsy+=120) { X if (DefaultDepth(mydisplay,myscreen) == 1) X XCopyArea(mydisplay, thepixmap, mywindow, X copygc, 0, 0, 120, 120, tmpsx, tmpsy); X else X XCopyPlane(mydisplay, thepixmap, mywindow, X copygc, 0, 0, 120, 120, tmpsx, tmpsy); X } X XFlush(mydisplay); X} Xprintf("finished tiling manually\n"); X X/* now manual tiling */ X XXFreeGC(mydisplay,copygc); XXFreeGC(mydisplay,tilegc); XXDestroyWindow(mydisplay,mywindow); XXCloseDisplay(mydisplay); Xexit(0); X X} END_OF_FILE if test 13968 -ne `wc -c <'prob2.c'`; then echo shar: \"'prob2.c'\" unpacked with wrong size! fi # end of 'prob2.c' fi echo shar: End of shell archive. exit 0 ------------------------------------------------------------------- Remember, if replying by email then reply to Afzal Ballim rather than to me. Regards, Ciaran. -- Ciaran McHale "An inappropiate joke for every occasion" Department of Computer Science, Trinity College, Dublin 2, Ireland. Telephone: +353-1-772941 ext 1538 FAX: +353-1-772204 Telex: 93782 TCD EI email: cjmchale@cs.tcd.ie or cjmchale%cs.tcd.ie@cunyvm.cuny.edu My opinions are.