[net.micro.pc] pc graphics packages

muswiz@sunybcs.UUCP (Steve Levine) (03/15/86)

	I get the impression that graphics function libs on the pc has not
really progressed much since the beginning.  I am using (attempting to) halo
and lattice-c on the pc.  I have found that the documentation is so poor, and
the interface to lattice, just as bad, that it is almost impossible to use.

The main problems is that linking to the libraries , ie; \lc\lc.lib+halo.lib
takes forever, even with a ram-disk and fast hard-disk.  That makes experi-
mentation (to decipher the manual explainations) pretty painfull.  I had hoped
that the functions as specified, would be straightforward and work as described,
but alas, to no avail, they don't.  So rather than spend a lot of time ditzing
around with this, I plea for advice.

  Has anyone tried to use world and viewport on halo 2.x ?
If so, how do you get it to work?  I am using an 8087 and the large model of
lattice.  The program looks like this :




/* 
	just a test for drawing 
	3/12/86 s.l. 
*/

struct view_port {
	double Vx0,Vy0,Vx1,Vy1;
} vp[] = {
			{	.1,.1,.4,.4 },
			{   .1,.5,.4,.9 },
			{   .5,.1,.9,.4 },
			{   .5,.5,.9,.9 }
		};

main()
{
	double wx0,wy0,wx1,wy1;
	float	vx0,vy0,vx1,vy1;
	int format = 1, mode = 1;
	int color = 1, radius = 400;
	int x1 ,y1 , i,j;
	int border = 1, clear = 0;

	wx0 = wy0 = 0; wx1 = wy1 = 1000;
	vx0 = vy0 = 0.04; vx1 = vy1 = .97;

	setieee(&format);
	initgraphics(&mode);
	setworld(&wx0,&wy0,&wx1,&wy1);
	setviewport(&vx0,&vy0,&vx1,&vy1,&border,&clear);

		for(i = 0;i <4;i++)
		{
			vx0 = vp[i].Vx0; vy0 = vp[i].Vy0;
			vx1 = vp[i].Vx1; vy1 = vp[i].Vy1;
			setviewport(&vx0,&vy0,&vx1,&vy1,&border,&clear);
			movabs(&x1,&y1);
			cir(&radius);
		}

		inqworld(&wx0,&wy0,&wx1,&wy1);
		inqviewport(&vx0,&vy0,&vx1,&vy1);
		inqgcur(&x1,&y1,&color);

	for(i=0;i<32000;i++){
	for(j = 0; j< 4 ; j++);
	}
	closegraphics();

	printf("world_coords : %f %f %f %f\n",wx0,wy0,wx1,wy1);
	printf("view_coords : %f %f %f %f\n",vx0,vy0,vx1,vy1);
	printf("gcur_coords : %f %f %d\n",x1,y1,color);
}

All of the inquire functions return the correct values.  the program
gives me a blank screen.  ????

Does anyone know of a package which works well?  How about the Digital Research
"GSS" advertised in Byte, march 86, page 205 ?

Thanks in advance,

Steve Levine (ihnp4!sunybcs!muswiz)

lpm@lanl.ARPA (Lauren McGavran) (03/17/86)

Steve Levine writes of problems with HALO;  I have had rather marginal
performance from this package, too.  Steve's complaints are
	1. It links too slowly,
	2. in large model, it does not seem to work as advertised, and
	3. the interface and documentation are lousy.

I would agree it links slowly, but with Microsoft's latest linker and
an Iomega Bernoulli system the link time is tolerable.  It is just a
huge library.

I, too, am having really bad problems with the large model (Microsoft,
not Lattice C); I have spent a couple of weeks trying to isolate the
problem and make absolutely certain that my code is clean.  All the
evidence points to a pointer getting a segment of zero; I suspect the
authors have been careless with pointer declarations.

Version 2.25 comes with a really nice manual, and I have not found
any functions that do not perform as stated, when they work at all.
And usually they work; they have always worked for me in small model
programs.

I have talked to a couple of technical people at Media Cybernetics (the
ones who wrote HALO), and they have always been pleasant.  The answer I
always seem to get is, "Oh, that's an old version.  Let us send you the
latest and see if it fixes the problem."  I just received 2.25 and am
going to see if it really did fix the problem; I doubt if it did.

In summary, Media Cybernetics seems willing to try to help, but I would
still rate HALO as marginal.  I have not had as many problems as Steve
has; until I tried to create files for a pen plotter and drive an EGA,
I thought everything was fine.  Clearly, though, the large model support
is defective.

(Steve - I will try your problem and mail you more details.  But you
should set the device with setdev(file name) where file name is in the
same path that you are running from, or an accessible path (via PATH,
Filepath, etc.), and is of the form haloxxxx.dev)

Lauren McGavran
Computer Research and Applications; MS B265
Los Alamos National Laboratory
Los Alamos, NM 87545
(505)667-8386
FTS 843-8386

rb@ccivax.UUCP (rex ballard) (03/20/86)

Have you looked at GEM?  The price is good ($50 for desktop and GEM,
14.95 for programmers reference guide).  The early developers in
net.micro.atari did their initial developement on IBM compatibles.
I have been told that most of the Atari source (C source, that is)
runs on IBM/GEM compatibles.  Note that GEM compatible is a subset
of IBM compatible, so if GEM is available for that machine, you can
use GEM 'C' source code.  Appearantly GEM eats a lot of memory, so
make sure you've got 640K (too bad that's the limit).