Thanks, I'll make sure to add your corrections as well. Oh, and ggiJoinInputs isn't
nessessary ggiInit takes care of it. My problem was a bug in eather libggi or libgii (I
don't know which, gdb won't tell me) that requires me to explisitly tell libggi through
the GGI_DISPLAY environment variable to whatever target I wish to use.


Christoph Egger wrote:

> On 26 May 2000, Marcus Sundberg wrote:
>
> > Jay <[EMAIL PROTECTED]> writes:
> >
> > > I can't show everything just yet, but here is what I can. This is all of the gii
> > > stuff:
> >
> > Ok, should be enough.
> >
> > >     /* This is where I have to do stuff wrong or my keyboard doesn't work
> > >        Keep in mind I am useing the SVGALIB target; it might be the problem */
> > >     giiInit();
> > >     inp=giiOpen("input-null", NULL);
> > >     if (inp==NULL) {
> > >             fprintf(stderr, "Error in input libgii, bailing out...");
> > >             S9xExit();
> > >     }
> > >     kbd=giiOpen("input-linux-kbd",NULL);
> > >     if (kbd==NULL) {
> > >             fprintf(stderr, "Error getting keyboard, bailing out...");
> > >             S9xExit();
> > >     }
> > >     mouse=giiOpen("input-linux-mouse",NULL);
> > >     /* I don't think the mouse has ever accually worked */
> > >     if (mouse==NULL) {
> > >             fprintf(stderr, "Error getting mouse, oh well...");
> > >             inp=giiJoinInputs(inp, kbd);
> > >     } else {
> > >             inp=giiJoinInputs(inp, kbd);
> > >             inp=giiJoinInputs(inp, mouse);
> > >     }
> > >     ggiInit();
> > >     vis=ggiOpen(NULL);
> > >     if (vis==NULL) {
> > >             fprintf(stderr, "Error getting visual");
> > >             S9xExit();
> > >     }
> >
> > Ok, this code is utterly broken. You can't open inputs allready used
> > by LibGGI. Start by removing _all_ occurences of gii* functions. If
> > there's still a problem, run your program with GGI_DEBUG=255 and we
> > can start debugging things.
>
> Yes, and use ggiJoinInputs instead of giiJoinInputs.
>
> > >             if (ggiSetGraphMode(vis, 640, 480, 640, 480, GT_32BIT)) {
> > >                     fprintf(stderr, "Error getting visual");
> > >                     S9xExit();
> > >             }
> > >     } else {
> > >             halfxres=320/2;
> > >             halfyres=240/2;
> > >
> > >             if (ggiSetGraphMode(vis, 320, 240, 320, 240, GT_32BIT)) {
> > >                     fprintf(stderr, "Error getting visual");
> > >                     S9xExit();
> > >             }
> >
> > Also never hardcode values which you don't care about, like in this
> > case the virtual size.
>
> Yes, GGI_AUTO should be used instead...
> And it is recommended to check if the return-value of ggiSetGraphMode
> is < 0, because values < 0 always indicates an error. Values > 0 are
> AFAIK still undefined and reserved for future developments.
>
>
> Christoph Egger
> E-Mail: [EMAIL PROTECTED]

--

-Jay



Reply via email to