Path: utzoo!attcan!uunet!mcsun!cernvax!chx400!ugun2b!ugun2a!afzal From: afzal@uni2a.unige.ch Newsgroups: comp.windows.x Subject: XFillRectangle with Tile Vs Manual tiling Message-ID: <723@uni2a.unige.ch> Date: 6 Nov 90 12:30:10 GMT Organization: University of Geneva, Switzerland Lines: 590 Newsgroups: comp.windows.x Subject: XFillRectangle with Tile Vs Manual Tiling Expires: References: Sender: Reply-To: afzal@cuisun.unige.ch () Followup-To: Organization: University of Geneva, Switzerland Keywords: (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