Up: SGI graphics Frequently Asked Questions (FAQ)
Next: -57- How can I translate screen (x,y) coords into world (x,y,z) coords?
Previous: -55- Can I use 4Dgifts code in my application?
Subject:   -56- What does ERR_WMANIPC mean?
Date: 07 May 1993 00:00:01 EST

  The "WMAN" in that message means "window manager."  However, this no
  longer means "window manager" such as 4Dwm, but rather the entire X
  Window system.  The error means that the GL program triggered a fatal
  X error.

  A GL program can get an X error, because all GL programs are actually
  X clients.  When a GL program does a winopen(), libgl actually calls
  XCreateWindow, etc.)

  When a GL program gets an X error, libgl prints out these X errors
  using this error message:

      GL: X request = maj.min,  error code = ercode

  where

      maj = major request code that caused the error
      min = minor request code
      ercode = X error code

  This turns out to be easy to interpret, so long as the request was a
  core X protocol request (e.g., a CreateWindow request).  In that
  case:

      1. You can look up the major code in /usr/include/X11/Xproto.h.
      2. The minor code is not used.
      3. The X error code can be found in /usr/include/X11/X.h.

  As you can see in Xproto.h, the core X protocol requests have request
  codes <= 127.

  However, if maj > 127, then the request is an X extension request.
  Unfortunately, it can be difficult to interpret this unless you built
  your program with a debugging libgl.a (compiled with -g).  The reason
  is that for an X extension, the major request code and the starting
  error code are copied from the X server during client startup, and
  these codes are saved in variables inside libgl.  With a debugging
  libgl, these variables can be printed out from within a debugger,
  such as dbx.

  If the major code indicates an X Input extension request, then the
  minor numbers then tell the X input request type, and these are found
  in /usr/include/X11/extensions/XIproto.h.

  Finally, the X Input Extension uses 132 as its "starting error code."
  The possible errors are found in /usr/include/X11/extensions/XI.h,
  where they're defined like this:

      #define XI_BadDevice   0
      #define XI_BadEvent    1
      #define XI_BadMode     2
      #define XI_DeviceBusy  3
      #define XI_BadClass    4

  If you add 132 to these numbers, you get the error that's reported by
  the libgl error message.

Up: SGI graphics Frequently Asked Questions (FAQ)
Next: -57- How can I translate screen (x,y) coords into world (x,y,z) coords?
Previous: -55- Can I use 4Dgifts code in my application?