I haven't checked your patches yet but here are some patches for
xcpustate which fix the 16/32bpp problem and also fixes the problem.
of resource initialisation.
just using base==0 for XtGetApplicationResources() is not portable
when sizeof(int) < sizeof (void*). I've tested the patch below on
i386 too.
> Harald, now I have a bug report for you (or any X-server hacker, I
> suppose): xcpustate prints the bar-chart all in black when running the
> latest XF86_S3 server in 16bpp mode. In 8bpp mode, the stippling
> works just fine. Bug or feature?
client bug; patch see below. I don't like this b/w display so I never
run xcpustate other than for a quick compilation check (which almost
ever happens on 8bpp as my default depth).
-------------------------------------------------------------------------------
--- procps-1.01/xcpustate/xcpustate.c.orig Mon Jun 17 09:49:00 1996
+++ procps-1.01/xcpustate/xcpustate.c Mon Jun 17 11:03:06 1996
@@ -28,9 +28,9 @@
/* Application Resources - no particular widget */
static XtResource application_resources[] = {
{"interval", "Interval", XtRInt, sizeof(int),
- (Cardinal)&interval, XtRInt, (caddr_t) &defaultInterval},
+ 0, XtRInt, (caddr_t) &defaultInterval},
{"count", "Count", XtRInt, sizeof(int),
- (Cardinal)&count, XtRInt, (caddr_t) &defaultCount},
+ 0, XtRInt, (caddr_t) &defaultCount},
};
/*
@@ -147,8 +147,13 @@
if (argc > 1)
usage();
-
- XtGetApplicationResources(topLevel, 0, application_resources,
+
+ application_resources[0].resource_offset =
+ (Cardinal)&interval - (Cardinal)&application_resources;
+ application_resources[1].resource_offset =
+ (Cardinal)&count - (Cardinal)&application_resources;
+
+ XtGetApplicationResources(topLevel, application_resources, application_resources,
XtNumber(application_resources), NULL, 0 );
form = XtCreateManagedWidget("form", formWidgetClass, topLevel,
--- procps-1.01/xcpustate/Bar.c.orig Mon Jun 17 11:14:51 1996
+++ procps-1.01/xcpustate/Bar.c Mon Jun 17 11:45:43 1996
@@ -160,15 +160,15 @@
bcp->gray = (Pixmap *) XtMalloc(MAXGRAY * sizeof(Pixmap));
for(i = 0; i < MAXGRAY; i++) {
bcp->gray[i] = XCreatePixmapFromBitmapData(XtDisplay(new),
- DefaultRootWindow(XtDisplay(new)), gray_bits[i], 3, 3,
- WhitePixelOfScreen(XtScreen(new)),
- BlackPixelOfScreen(XtScreen(new)), 1);
+ DefaultRootWindow(XtDisplay(new)), gray_bits[i], 3, 3, 1, 0, 1);
}
}
gcValues.stipple = bcp->gray[0];
gcValues.fill_style = FillOpaqueStippled;
+ gcValues.foreground = BlackPixelOfScreen(XtScreen(new));
+ gcValues.background = WhitePixelOfScreen(XtScreen(new));
w->bar.gc = XCreateGC(XtDisplay(new), DefaultRootWindow(XtDisplay(new)),
- GCFillStyle | GCStipple, &gcValues);
+ GCFillStyle | GCStipple | GCForeground | GCBackground, &gcValues);
/* Width and height override length and thickness */
if (w->bar.length == def_dimension)
w->bar.length = DEF_LENGTH;
--
All SCSI disks will from now on ___ _____
be required to send an email notice 0--,| /OOOOOOO\
24 hours prior to complete hardware failure! <_/ / /OOOOOOOOOOO\
\ \/OOOOOOOOOOOOOOO\
\ OOOOOOOOOOOOOOOOO|//
Harald Koenig, \/\/\/\/\/\/\/\/\/
Inst.f.Theoret.Astrophysik // / \\ \
koenig@tat.physik.uni-tuebingen.de ^^^^^ ^^^^^