home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!gumby!destroyer!cs.ubc.ca!lucille.cs.ubc.ca!not-for-mail
- From: samuel@cs.ubc.ca (Stephen Samuel)
- Newsgroups: comp.sys.sgi.misc
- Subject: ginv (was: Is there a command to tell you the amount of sys. mem.?)
- Date: 17 Dec 1992 18:19:23 -0800
- Organization: Computer Science, University of B.C., Vancouver, B.C., Canada
- Lines: 394
- Message-ID: <1grcfbINN5eh@lucille.cs.ubc.ca>
- References: <BzDG1F.168@news.cso.uiuc.edu> <1gobmmINN6ng@fido.asd.sgi.com>
- NNTP-Posting-Host: lucille.cs.ubc.ca
-
- jwag@moose.asd.sgi.com (Chris Wagner) writes:
-
- >In article <BzDG1F.168@news.cso.uiuc.edu>, th9708@meibm8.cen.uiuc.edu (Todd Lee Henderson) writes:
- >|> operator, installer, etc. is long gone. I would like to find out how much
- >|> system memory is in the machine, is there a command for this? I'm sure it
-
- >hinv(1) will tell you lots about your current hardware configuration
-
- and ginv(1) will tell you alot about the graphics hardware configuration.
- I've found it rather useful, at times.
-
- Hmm, it seems that ginv isn't an SGI product, but it is "anywhere" (read
- the source code!).
-
- Here it is:
-
- # ----------------- CUT HERE -----------------
- # then stuff the remainder thru sh ('sh < this.file').
- #
- # file Makefile
- sed -e 's/^\]//' -e '/<$/s/\<$//' << "++ENDFILE++" > Makefile
- ]ginv:
- ] cc -o ginv ginv.c -lfm_s -lgl_s -lc_s
- ++ENDFILE++
- # file ginv.c
- sed -e 's/^\]//' -e '/<$/s/\<$//' << "++ENDFILE++" > ginv.c
- ]/*
- ] * ginv.c
- ] *
- ] * ginv (Graphics Inventory)
- ] *
- ] * v1.0, May 1991
- ] *
- ] * (c) 1991 Rodney Hoinkes
- ] * Centre for Landscape Research
- ] * University of Toronto
- ] * rodney@dgp.utoronto.ca
- ] *
- ] * This software is released under the conventions of
- ] * 'anyware', meaning you can put it anyware, do anything,
- ] * or rm it as you please as long as you don't try to
- ] * get money for it (good luck if you want to try!).
- ] *
- ] * This software was written to test out the getgdesc
- ] * function and to see what different hardware configurations
- ] * look like to a graphics program that really wants to know.
- ] * The following data was gathered from some machines I have
- ] * access to for general info. <
- ] *
- ] * compile with: cc -o ginv ginv.c -lfm_s -lgl_s -lc_s
- ] * stripping the executable will greatly reduce its size
- ] * strip ginv
- ] *
- ] * If there is interest, I am working on a version to inform
- ] * the make process.
- ] *
- ] * A machine-independent version of psgl (GL->Postscript) is also
- ] * in the debugging stages since the current GL implementation
- ] * differs depending which machine you compile on, not just what
- ] * parameter set you use. This version does not require compile
- ] * definitions, but determines machine at run-time.
- ] *
- ] * If you have another type of
- ] * machine NOT listed here, please email me the output from
- ] * this program.
- ] *
- ] * IRIS 4D/20TG
- ] *
- ] * IRIS 4D Graphics Inventory (ginv v1.0)
- ] * --------------------------------------
- ] * Machine: 4DPIT running IRIX version 3.3
- ] * 1 Screen(s) Accessible on this machine.
- ] *
- ] * Screen Resolution: 1280 x 1024 pixels.
- ] * Zbuffer Resolution: 0xFF800000 min 0x7FFFFF max.
- ] * No Accumulation Buffer present.
- ] * Alpha bitplanes in DoubleBuffered: 0, SingleBuffered: 0
- ] * Red bitplanes in DoubleBuffered: 4, SingleBuffered: 8
- ] * Green bitplanes in DoubleBuffered: 4, SingleBuffered: 8
- ] * Blue bitplanes in DoubleBuffered: 4, SingleBuffered: 8
- ] * Zbuffer bitplanes present: 24
- ] * Stencil bitplanes present: 0
- ] * Overlay bitplanes present: 4
- ] * PopUp bitplanes present: 4
- ] * Underlay bitplanes present: 4
- ] * User-defined Clipping Planes present: 0
- ] * antialiased points available in colormap
- ] * antialiased points not available in RGB
- ] * antialiased lines available in colormap
- ] * antialiased lines not available in RGB
- ] * antialiased polygons not available in RGB
- ] * Number of verticies per polygon allowed: 256.
- ] *
- ] * FUNCTIONS AVAILABLE:
- ] * logicop, readsource AUTO/FONT/BACK, readsource ZBUFFER, subpixel points, subpixel lines, subpixel po
- ] * lygons. <
- ] *
- ] * FUNCTIONS NOT AVAILABLE:
- ] * afunction, fogvertex, two-sided lighting, blendfunction, scrbox, stereo, texture-mapping, polymode, <
- ] * 64x64 patterns. <
- ] *
- ] * IRIS 4D/70GT w/Alpha Planes
- ] *
- ] * IRIS 4D Graphics Inventory (ginv v1.0)
- ] * --------------------------------------
- ] * Machine: 4DGT running IRIX version 3.3
- ] * 1 Screen(s) Accessible on this machine.
- ] *
- ] * Screen Resolution: 1280 x 1024 pixels.
- ] * Zbuffer Resolution: 0x0 min 0x7FFFFF max.
- ] * No Accumulation Buffer present.
- ] * Alpha bitplanes in DoubleBuffered: 8, SingleBuffered: 8
- ] * Red bitplanes in DoubleBuffered: 8, SingleBuffered: 8
- ] * Green bitplanes in DoubleBuffered: 8, SingleBuffered: 8
- ] * Blue bitplanes in DoubleBuffered: 8, SingleBuffered: 8
- ] * Zbuffer bitplanes present: 23
- ] * Stencil bitplanes present: 0
- ] * Overlay bitplanes present: 4
- ] * PopUp bitplanes present: 2
- ] * Underlay bitplanes present: 4
- ] * User-defined Clipping Planes present: 0
- ] * antialiased points available in colormap
- ] * antialiased points available in RGB
- ] * antialiased lines available in colormap
- ] * antialiased lines available in RGB
- ] * antialiased polygons not available in RGB
- ] * Number of verticies per polygon allowed: 256.
- ] *
- ] * FUNCTIONS AVAILABLE:
- ] * blendfunction, readsource AUTO/FONT/BACK, readsource ZBUFFER, subpixel points, subpixel lines. <
- ] *
- ] * FUNCTIONS NOT AVAILABLE:
- ] * afunction, logicop, fogvertex, two-sided lighting, scrbox, subpixel polygons, stereo, texture-mappin
- ] * g, polymode, 64x64 patterns. <
- ] *
- ] * IRIS 4D/310VGX - 5span
- ] *
- ] * IRIS 4D Graphics Inventory (ginv v1.0)
- ] * --------------------------------------
- ] * Machine: 4DVGX running IRIX version 3.3
- ] * 1 Screen(s) Accessible on this machine.
- ] *
- ] * Screen Resolution: 1280 x 1024 pixels.
- ] * Zbuffer Resolution: 0xFF800000 min 0x7FFFFF max.
- ] * Software Accumulation Buffer with 16 bitplanes per colour component.
- ] * Alpha bitplanes in DoubleBuffered: 8, SingleBuffered: 8
- ] * Red bitplanes in DoubleBuffered: 8, SingleBuffered: 8
- ] * Green bitplanes in DoubleBuffered: 8, SingleBuffered: 8
- ] * Blue bitplanes in DoubleBuffered: 8, SingleBuffered: 8
- ] * Zbuffer bitplanes present: 24
- ] * Stencil bitplanes present: 8
- ] * Overlay bitplanes present: 8
- ] * PopUp bitplanes present: 2
- ] * Underlay bitplanes present: 8
- ] * User-defined Clipping Planes present: 6
- ] * antialiased points available in colormap
- ] * antialiased points available in RGB
- ] * antialiased lines available in colormap
- ] * antialiased lines available in RGB
- ] * antialiased polygons available in RGB
- ] * Number of verticies per polygon allowed: 256.
- ] *
- ] * FUNCTIONS AVAILABLE:
- ] * afunction, logicop, fogvertex, two-sided lighting, blendfunction, readsource AUTO/FONT/BACK, readsou
- ] * rce ZBUFFER, scrbox, subpixel points, subpixel lines, subpixel polygons, stereo, texture-mapping, po
- ] * lymode. <
- ] *
- ] * FUNCTIONS NOT AVAILABLE:
- ] * 64x64 patterns. <
- ] *
- ] */
- ]#include <stdio.h>
- ]#include <gl.h>
- ]#include <device.h>
- ]#include <fmclient.h>
-
- ]main(argc,argv)
- ]int argc;
- ]char *argv[];
- ]{
- ] register int i,j,c;
- ] short machinetype;
- ] float softversion;
- ] char version[40],software[6],machine[6];
- ] char buf[50][255];
- ] char opbuf[50][40], yes[4000], no[4000];
- ] char op[50];
- ] char showfonts = 0;
-
- ] /* check commandline parameters */
- ] if(argc == 2) {
- ] if(!strcmp(argv[1],"-h")) {
- ] printf("usage: %s [-h] [-f]\n",argv[0]);
- ] printf("\t-h\tThis help menu.\n");
- ] printf("\t-f\tShow list of installed fonts.\n");
- ] exit(1);
- ] }
- ] else if(!strcmp(argv[1],"-f")) showfonts = 1;
- ] }
- ] /* open program window and setup display settings */
- ] noport();
-
- ] foreground();
- ] winopen("SetupCheck");
- ] gconfig();
-
- ] /* get machine information */
- ] gversion(version);
- ] for(i=2;i<strlen(version);++i){
- ] if(version[i]=='-') break;
- ] machine[i-2]=version[i];
- ] }
- ] machine[i-2]='\0';
- ] software[0]=version[i+1];
- ] software[1]=version[i+2];
- ] software[2]=version[i+3];
- ] software[3]='\0';
- ] softversion = atof(software);
-
- ] printf("IRIS 4D Graphics Inventory (ginv v1.0)\n");
- ] printf("--------------------------------------\n");
- ] printf("Machine: %s running IRIX version %s\n",machine,software);
-
- ] printf("%d Screen(s) Accessible on this machine.\n\n",getgdesc(GD_NSCRNS));
-
- ] i = 0;
- ] sprintf(buf[i++],"Screen Resolution: %d x %d pixels.",getgdesc(GD_XPMAX),getgdesc(GD_YPMAX));
- ] sprintf(buf[i++],"Zbuffer Resolution: 0x%X min 0x%X max.",getgdesc(GD_ZMIN),getgdesc(GD_ZMAX));
-
- ] if(getgdesc(GD_BITS_ACBUF_HW))
- ] sprintf(buf[i++],"Hardware Accumulation Buffer with %d bitplanes per colour component.",getgdesc(GD_BITS_ACBUF_HW));
- ] else if(getgdesc(GD_BITS_ACBUF))
- ] sprintf(buf[i++],"Software Accumulation Buffer with %d bitplanes per colour component.",getgdesc(GD_BITS_ACBUF));
- ] else
- ] strcpy(buf[i++],"No Accumulation Buffer present.");
-
- ] sprintf(buf[i++],"Alpha bitplanes in DoubleBuffered: %d, SingleBuffered: %d",getgdesc(GD_BITS_NORM_DBL_ALPHA),getgdesc(GD_BITS_NORM_SNG_ALPHA));
- ] sprintf(buf[i++],"Red bitplanes in DoubleBuffered: %d, SingleBuffered: %d",getgdesc(GD_BITS_NORM_DBL_RED),getgdesc(GD_BITS_NORM_SNG_RED));
- ] sprintf(buf[i++],"Green bitplanes in DoubleBuffered: %d, SingleBuffered: %d",getgdesc(GD_BITS_NORM_DBL_GREEN),getgdesc(GD_BITS_NORM_SNG_GREEN));
- ] sprintf(buf[i++],"Blue bitplanes in DoubleBuffered: %d, SingleBuffered: %d",getgdesc(GD_BITS_NORM_DBL_BLUE),getgdesc(GD_BITS_NORM_SNG_BLUE));
- ] sprintf(buf[i++],"Zbuffer bitplanes present: %d",getgdesc(GD_BITS_NORM_ZBUFFER));
- ] sprintf(buf[i++],"Stencil bitplanes present: %d",getgdesc(GD_BITS_STENCIL));
- ] sprintf(buf[i++],"Overlay bitplanes present: %d",getgdesc(GD_BITS_OVER_SNG_CMODE));
- ] sprintf(buf[i++],"PopUp bitplanes present: %d",getgdesc(GD_BITS_PUP_SNG_CMODE));
- ] sprintf(buf[i++],"Underlay bitplanes present: %d",getgdesc(GD_BITS_UNDR_SNG_CMODE));
- ] sprintf(buf[i++],"User-defined Clipping Planes present: %d",getgdesc(GD_CLIPPLANES));
- ] if(getgdesc(GD_PNTSMOOTH_CMODE))
- ] sprintf(buf[i++],"antialiased points available in colormap");
- ] else
- ] sprintf(buf[i++],"antialiased points not available in colormap");
- ] if(getgdesc(GD_PNTSMOOTH_RGB))
- ] sprintf(buf[i++],"antialiased points available in RGB");
- ] else
- ] sprintf(buf[i++],"antialiased points not available in RGB");
- ] if(getgdesc(GD_LINESMOOTH_CMODE))
- ] sprintf(buf[i++],"antialiased lines available in colormap");
- ] else
- ] sprintf(buf[i++],"antialiased lines not available in colormap");
- ] if(getgdesc(GD_LINESMOOTH_RGB))
- ] sprintf(buf[i++],"antialiased lines available in RGB");
- ] else
- ] sprintf(buf[i++],"antialiased lines not available in RGB");
- ] if(getgdesc(GD_POLYSMOOTH))
- ] sprintf(buf[i++],"antialiased polygons available in RGB");
- ] else
- ] sprintf(buf[i++],"antialiased polygons not available in RGB");
- ] if(getgdesc(GD_NVERTEX_POLY) == GD_NOLIMIT)
- ] sprintf(buf[i++],"Number of verticies per polygon allowed: Unlimited.");
- ] else
- ] sprintf(buf[i++],"Number of verticies per polygon allowed: %d.",getgdesc(GD_NVERTEX_POLY));
-
- ] j = 0;
- ] sprintf(opbuf[j],"afunction");
- ] if(getgdesc(GD_AFUNCTION))
- ] op[j++] = 1;
- ] else
- ] op[j++] = 0;
-
- ] sprintf(opbuf[j],"logicop");
- ] if(getgdesc(GD_LOGICOP))
- ] op[j++] = 1;
- ] else
- ] op[j++] = 0;
-
- ] sprintf(opbuf[j],"fogvertex");
- ] if(getgdesc(GD_FOGVERTEX))
- ] op[j++] = 1;
- ] else
- ] op[j++] = 0;
-
- ] sprintf(opbuf[j],"two-sided lighting");
- ] if(getgdesc(GD_LIGHTING_TWOSIDE))
- ] op[j++] = 1;
- ] else
- ] op[j++] = 0;
-
- ] sprintf(opbuf[j],"blendfunction");
- ] if(getgdesc(GD_BLEND))
- ] op[j++] = 1;
- ] else
- ] op[j++] = 0;
-
- ] sprintf(opbuf[j],"readsource AUTO/FONT/BACK");
- ] if(getgdesc(GD_READSOURCE))
- ] op[j++] = 1;
- ] else
- ] op[j++] = 0;
-
- ] sprintf(opbuf[j],"readsource ZBUFFER");
- ] if(getgdesc(GD_READSOURCE_ZBUFFER))
- ] op[j++] = 1;
- ] else
- ] op[j++] = 0;
-
- ] sprintf(opbuf[j],"scrbox");
- ] if(getgdesc(GD_SCRBOX))
- ] op[j++] = 1;
- ] else
- ] op[j++] = 0;
-
- ] sprintf(opbuf[j],"subpixel points");
- ] if(getgdesc(GD_SUBPIXEL_PNT))
- ] op[j++] = 1;
- ] else
- ] op[j++] = 0;
-
- ] sprintf(opbuf[j],"subpixel lines");
- ] if(getgdesc(GD_SUBPIXEL_LINE))
- ] op[j++] = 1;
- ] else
- ] op[j++] = 0;
-
- ] sprintf(opbuf[j],"subpixel polygons");
- ] if(getgdesc(GD_SUBPIXEL_POLY))
- ] op[j++] = 1;
- ] else
- ] op[j++] = 0;
-
- ] sprintf(opbuf[j],"stereo");
- ] if(getgdesc(GD_STEREO))
- ] op[j++] = 1;
- ] else
- ] op[j++] = 0;
-
- ] sprintf(opbuf[j],"texture-mapping");
- ] if(getgdesc(GD_TEXTURE))
- ] op[j++] = 1;
- ] else
- ] op[j++] = 0;
-
- ] sprintf(opbuf[j],"polymode");
- ] if(getgdesc(GD_POLYMODE))
- ] op[j++] = 1;
- ] else
- ] op[j++] = 0;
-
- ] sprintf(opbuf[j],"64x64 patterns");
- ] if(getgdesc(GD_PATSIZE_64))
- ] op[j++] = 1;
- ] else
- ] op[j++] = 0;
-
-
-
- ] for(c=0;c<j;++c) {
- ] if(op[c]) {
- ] strcat(yes,opbuf[c]);
- ] strcat(yes,", ");
- ] } else {
- ] strcat(no,opbuf[c]);
- ] strcat(no,", ");
- ] }
- ] }
-
- ] for(c=0;c<i;++c) puts(buf[c]);
-
- ] yes[strlen(yes)-2] = '.';
- ] no[strlen(no)-2] = '.';
- ] printf("\nFUNCTIONS AVAILABLE:\n");
- ] puts(yes);
- ] printf("\nFUNCTIONS NOT AVAILABLE:\n");
- ] puts(no);
-
-
- ] if(showfonts) {
- ] printf("\nINSTALLED FONTS\n\n");
- ] fmenumerate(puts);
- ] }
- ]}
- ++ENDFILE++
- --
- --
- Stephen Samuel (604)822-9248 samuel@cs.ubc.ca
- The first prerequisite to winning is playing the game.
-