Personal tools
You are here: Home downloads Gem Documentation GemFAQ
Document Actions

GemFAQ

Up to Table of Contents
Frequently Asked Questions
Sections
  1. general
  2. installing
  3. using Gem
  4. viewing objects
  5. texture mapping
  6. working with Pd
  7. writing new Gem objects
  8. object specific
  9. Linux
  10. OS-X
  11. Windows
  12. IRIX

general

What is Gem?

GEM is the Graphics Environment for Multimedia. It was originally written by Mark Danks to generate real-time computer graphics, especially for audio-visual compositions. It originally ran under FTS/Max (which is why you might see some papers reference it), but all new development is under Pd.

You can get GEM at http://gem.iem.at/

GEM was sponsored by a grant from Intel (http://www.intel.com)

GEM was ported to linux by Günter Geiger

GEM is now maintained by IOhannes m zmölnig.

the core-development team consists of

  • chris clepper
  • günter geiger
  • daniel heckenberg
  • james tittle
  • IOhannes m zmölnig
lots of contributions are made by various people (thanks to all of them)

What is Pd?

Pd is a real-time environment for audio and MIDI. It was written by Miller Puckette, who created FTS/Max when he was at IRCAM. Basically, Pd can be seen as the next generation of real-time visual programming languages. GEM runs inside of the Pd environment.

You can get Pd at http://www.crca.ucsd.edu/~msp/software.html

The community site of Pd is hosted at http://puredata.info

What platforms do GEM and Pd run on?

GEM and Pd run on

  • Windows (95, 98, ME, NT 4.0, 2000, XP)
  • linux
  • macOS-X (>10.2).
  • SGI-Irix (> 6.2) used to be supported by Gem (but i don't have any prove that it still works).

What is a good intro to OpenGL?

The best book is the OpenGL Programming Manual by Mason and Woo. This is also called the "Red Book".

If you search the web, there are many sites on OpenGL.

A good starting point is http://www.opengl.org.

Also, Mark Kilgard (who used to work for SGI) has a wonderful site with lots of links (http://reality.sgi.com/mjk)

Also, Normal Lin has written another great book on 3D-graphics under linux

Are there any web sites for Pd or GEM?

Except for the ones noted above, there is the Japanese installation page at http://www.rinc.or.jp/~kotobuki/gem/index.htm

There is a Pd mailing list. Subscription info is on IEM's site

One of pd's unofficial home-pages is at http://pd.iem.at hosted by the Institute of Electronic Music and Acoustics, Graz, Austria

Also hosted by the iem is the site of the pd-community

An interesting place might also be Guenter Geiger's site

there are lot's of other cool pages (search the net...)

What libraries does GEM use?

What libraries does GEM use? (aka: Who do we want to thank?)

All copyrights and license info can be found in GEM.LICENSE.TERMS

libTiff
Thanks to Sam Leffner for libTiff, the TIFF image loader.

sam@engr.sgi.com

ftp://ftp.sgi.com/graphics/tiff/

fstimage
Thanks to Masayuki Matsumoto for fstimage for OpenGL, the SGI image loader.

matumot@dst.nk-exa.co.jp

libjpeg
Thanks to the Independent JPEG Group for libjpeg, the JPEG image loader.

jpeg-info@uunet.uu.net

ftp://ftp.simtel.net/pub/simtelnet/msdos/graphics/

glut
Thanks to Mark Kilgard at al. (and SGI) for glut, the openGL Utility Toolkit

http://www.pobox.com/~ndr

gltt
Thanks to Stephane Rehel for GLTT, the OpenGL TrueType render.

rehel@worldnet.fr

http://home.worldnet.fr/~rehel/gltt/gltt.html

freetype
Thanks to David Turner, Robert Wilhelm, and Werner Lemberg for Freetype, a TrueType font rendering engine.

turner@enst.fr

robert@physiol.med.tu-muenchen.de

a7971428@unet.univie.ac.at

http://www.physiol.med.tu-muenchen.de/~robert/freetype.html

mpeg
Thanks to the MPEG Software Simulation Group, for libmpeg, the MPEG-2 Encoder/Decoder

mssg@mpeg.org

http://www.mpeg.org/MSSG/

quicktime4linux
Thanks to Heroine for quicktime4linux a quickime Decoder and libmpeg3, another MPEG-2 Encoder/Decoder

http://heroinewarrior.com/

wintab
Thanks to LCS/Telegraphics for Wintab, the Windows tablet library.

wintab@pointing.com

particle
Thanks to David McAllister for the Particle System library.

davemc@cs.unc.edu

http://www.cs.unc.edu/~davemc/Particle/

libOrb
Thanks to John Stone for the Space Orb library, libOrb

j.stone@acm.org

http://www.umr.edu/~johns/projects/liborb/

Are there any restrictions on GEM?

GEM is under the Gnu Public License.

This basically means that it will always be free software. Check out http://www.gnu.org for more information and read the full license in GnuGPL.LICENSE in the GEM release.

How do I use GEM in a performance?

This is a constant problem, because there is no consistent way to display video on any platform. Also, you usually do not want to send the entire screen, but only the GEM window. It is also useful to be able to edit/control the Pd patch window while the patch is actually running.

On SGIs, the best way is to get a video out option. On the SGI O2, Impact, and Onyx (Mark has used all of these), there is a simple connector or breakout box to do video. If you run the video out program, then you will get a rectangle on your screen which shows what is being sent out the video connector. Make your GEM window a little larger than 640x480 and center it in the rectangle. You can now project this with a standard video projector.

On PCs it is a bit harder. Several modern video-cards have the possibility to output several screens (either 2 (or more) VGA-screens or 1 VGA-screen and 1 TV (Composite or S-HVS) or a combination with DFTs) If you have a Canopus Voodoo2 card it has a video and s-video output on it. As described in question 2.12, you can get a Voodoo to work with GEM. If any one else has a better solution, please let me know. The nVidia Riva TNTs require that you output the full screen, so this is not a very good option. You can use a video scan convertor. Some of them only display a part of the scene, which is exactly what you want.

With modern multi-headed cards it is more simple: Configure your card to display the desktop spread over your multiple screens (e.g.: from left-to-right). On windows and macOS you can do this via the display-properties dialog. On linux you will have to edit your /etc/X11/XF86Config-4 file either by hand or (if your system supports it) via an appropriate editor (yes, nowadays there are some). Now create your gem-window on the second screen: it should have the same dimensions as the 2nd screen (e.g: [dimen 800 600(). to place it at the second screen use the offset (e.g: if your primary sreen (the one you want for patch-editing) has the dimension 1024x768 use [offset 1024 0(, which will create the gem-window 1024 pixels right of the upper-left corner of the total screen (and 0 pixels below it), which is exactly the upper-left corner of the 2nd screen. You most probably want to turn off the borders with [border 0(. Note: some grafix-card have openGL-hardware-acceleration only on the 1st screen (so you should create the gem-window on the 1st screen and move your patches to the 2nd screen)

If you are using an XServer for displaying (under linux) you can also use another computer for rendering. You can specify the place where the gem-window should be created with something like [create <render.host>:0.0(

If you are doing audio with graphics, one solution to prevent clicking is to run 2 computers and have them communicate with [netsend]/[netreceive]. We are working on making Pd/GEM multi-processor friendly, so if you have a multi-processor system, you can run everything on one machine eventually.

How should I report a bug?

Gem doesn't work as it should! How can I help you solve my problem?

First of all, check whether this bug has not already been fixed in the latest version of Gem.

Check the bug-tracker to see, whether the bug is already known.

If you still believe, that you have discovered a new bug, please Submit a new bug-tracker.

Also, feel free to ask questions at one of the various mailing-lists

  • gem-dev for all kinds of bug-reports
  • Pd-list for more general bug-reports

While you are there, you can also search the mailing-list archives of pd-list and/or gem-dev for your problem

Information needed!

when reporting a bug (either via the bug-tracker or the mailinglist), please provide following information:

  • Operating System
    • linux,osx,w32,...
    • which release/distribution?
    • do you have any service-packs installed?
  • Hardware
    • which gfx-card are you using?
    • which driver?
  • Pure data
    • which version of Pd are you using?
    • Pd-extended or Pd-vanilla?
  • Gem
    • which exact version of Gem do you use? (you can get this information from the splash-screen when Gem get's loaded)
      • version number
      • compile date
    • where did you obtain Gem from?
      • Pd-extended
      • binary from the Gem-homepage
      • compiled yourself
      • other (e.g. provided by Debian)
  • other software?
    • can you use other software? which one?
    • if you have problems with openGL, does other openGL-application work?
    • if you have problems with video-input, can other software use the video-in?
    • ...
  • is the bug reproducible?
    • does it happen always or only under certain circumstances?
    • can you provide a minimal test-patch that (reliably) shows the wrong behaviour?
    • can you provide screenshots of what Gem shows does and what you expect?

installing

How do I install GEM and Pd on IRIX? !

See the readme for installing Pd.

GEM should be at pd/gem

If you run GEM.INSTALL.sh, then all of the example files and documention should be put in the correct locations.

This FAQ applies to: 0.70, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.80, 0.81, 0.82, 0.83

How do I install GEM and Pd on linux? !

See the readme for installing Pd.

GEM should be at

chdir to /src/Gnu and build Gem following the instructions in the README.build (./configure; make)

If you then make install, then all of the example files and documention should be put in the correct locations.

if you are using debian, Gem should be available via apt

if you are using an rpm-based distribution, check out the builds at planetCCRMA

This FAQ applies to: 0.80, 0.81, 0.82, 0.83, 0.84, 0.85, 0.86, 0.87, 0.888

How do I install GEM and Pd on WinNT?

See the readme for installing Pd.

unzip GEM so that it is at

pd\gem

If you run GEM.INSTALL.bat, then all of the example files and documentation should be put in the correct locations.
(Note that you eventually have to edit GEM.INSTALL.bat to match your local directory layout.)

There is also an installer for windows.

For Windows 8 and 10 there is a missing dll that is needed for GEM to run. If your system doesn't have msvcr71.dll already then find it on the Web and install it in the pd\bin folder.

This FAQ applies to: 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.80, 0.81, 0.82, 0.83, 0.84, 0.85, 0.87, 0.90.0, 0.90.1

How do I install GEM and Pd on Mac OS-X?

See the readme for installing Pd.

there is also an installer for macOS.

How do I make GEM run?

GEM is not an executable. It requires Pd to work and is loaded in at run time. For example, I have an alias on the SGI which does

/usr/people/mdanks/pd/bin/pd -lib /usr/people/mdanks/pd/gem/Gem

and on WinNT

\pdDir\pd\bin\pd -lib /pdDir/pd/gem/Gem

on UNIX-systems you will probably want to use a .pdrc file, where you can put the command-line arguments for pd that you "always" need.

If you don't see a startup message from GEM, then something went wrong.

Most people use use the command shell to start Pd. It is not very difficult to configure Pd to run from double-clicking on the icon.

Why doesn't GEM run?

Notice that the -lib flag always requires Unix styles slashes. This is the case even on Windows.

You may also want to use the -nosound flag. For instance, my PC has problems using audio (it leaks memory), so I just turn off the audio part of Pd. However, other people can't get GEM to work if the -nosound is used (on Win95). You can also try the -nodac or -noadc flags (for digital-analog-conversion only and analog-digital-conversion only).

How do I get GEM for linux?

There are no linux binaries available on the website...How do I get Gem for linux?

Since Gem has a lot of external dependencies and there are a lot of different linux distributions, many of them providing different libraries, there are usually no pre-built binaries for Gem on linux.

Instead, you are invited to get the latest sources of Gem and build it yourself.

Getting the sources:

  • if there is a source-package for a certain release, grab it, extract it, cd into the /src directory, and run
    • ./configure (optionally with some flags) and
    • make
  • if there is no source-package available get the latest and greatest sources via CVS, cd into the /src directory, and run
    • aclocal,
    • autoconf,
    • ./configure (optionally with some flags) and
    • make

How do I install GEM on WinXP?

Download the Gem-installer and run it.

You should install it into the "extra/Gem" directory of your local Pd-installation.

By default this is: %PROGRAMFILES%\Pd\extra\Gem, which should be fine if you have accepted the defaults when installing Pd.

That's it.

This FAQ applies to: 0.91.1, 0.91, 0.91.0

How do you compile Gem on OSX?

i want to compile Gem on my OSX machine, but wonder how to do? what are you (the upstream maintainer) using to compile Gem for the releases?

available build environemnts

you should be able to build Gem either using autoconf or XCode

autoconf

coming from a linux background (and often running builds on remote machines), i personally prefer the "autoconf" build-system

this is also used for the Pd-extended autobuilds

setup for Gem-0.92.0

  • PowerBook G4 running OSX 10.5.8
  • FTGL/freetype2 have been compiled statically into a universal binary beforehand (by somebody; the URL is dead by now; i happen to have a local copy on my machine)
  • all the rest seems to come with OSX
  • i used autoconf (rather than XCode) with the following configure-line::

    PKG_FTGL_CFLAGS="-I/Users/zmoelnig/Development/pd-gem/GemLibs/FTGL/freetype\ include/ -I/Users/zmoelnig/Development/pd-gem/GemLibs/FTGL/include/" PKG_FTGL_LIBS="/Users/zmoelnig/Development/pd-gem/GemLibs/FTGL/mac/build/Universal/libftgl.a" ./configure --with-pd=/Users/zmoelnig/Development/pure-data/pd --with-extension=d_fat --enable-fat-binary

notes on OSX-10.6 (aka "Snow Leopard")

  • since i only have a PowerBook, i cannot upgrade to 10.6 (which has dropped support for PowerPC)
  • users report that compilation works fine when forcing the build to be i386 only (OSX10.6 has no legacy support for ppc; Gem has no support for x86_64 on OSX yet). for this to work you have to specify --enable-fat-binary=i386

Xcode

in build/osx-xcode you can find a xcode-project for Gem

font-support

you need FTGL (which in turn needs freetype)

for downloadable Gem-binaries it is better to have FTGL (and freetype) linked statically!

freetype

  • get freetype-2.4.4 from e.g. sourceforge and unpack it
  • ./configure --disable-shared --enable-biarch-config CFLAGS="-arch ppc -arch i386"
  • make && sudo make install

FTGL

  • get FTGL from sourceforge (i did a checkout of the SVN trunk; today this was revision 1266)
  • ./configure --without-x --disable-shared --disable-dependency-tracking CFLAGS="-arch i386 -arch ppc" CXXFLAGS="-arch i386 -arch ppc" LDFLAGS="-arch i386 -arch ppc"
  • make && sudo make install

building Gem

these are the additional flags (rather environment variables) passed to Gem

  • ./configure --disable-dependency-tracking --enable-fat-binary=ppc,i386 PKG_FTGL_CFLAGS="-I/usr/local/include/FTGL $(freetype-config --cflags)" PKG_FTGL_LIBS="-L/usr/local/lib/ -lftgl -lfreetype"

This FAQ applies to: 0.92.3, 0.92.0, 0.92svn, 0.92.2, 0.92.4

How do you compile Gem on W32?

I want to compile Gem myself on a W32 system. How do I do that?

Building on W32 is a pain.

I happen to have a buildsystem running and try not to touch it, in case it breaks and i cannot create one again...

Visual Studio 2003

setup for building Gem-0.92

  • AMD64 laptop running XP (sp3 i think)
  • GemLibs: later check which version / incarnation
  • compiled using the project for Visual Studio 2003 (see build/win-vs2003)
  • installer is compiled using NSIS (build/win-nsis)

autoconf

in theory it should be possible to build Gem using autoconf on W32 using msys/cygwin

problems probably occur, due to the use of DirectShow for grabbing/decoding

This FAQ applies to: 0.92.0

How do i make library dependencies local?

I want to ship dependencies side-by-side with my external and not have to install in the "correct" path (e.g. /sw/lib/)

OSX

on OSX you can change the path where a library is searched for with the install_name_tool

using the special path @loader_path, the path where the external lives will be searched

here's a small script to make all /sw/lib/ dependencies "local":

  for f in *.pd_darwin
  do
   otool -L ${f} | grep sw | awk '{print $1}' | while read i
   do j=@loader_path/${i##*/}
     echo $f $i $j
     install_name_tool -change ${i} ${j} ${f}
   done
  done

Here is the script that is used in the readanysf~ library for including lots of libraries using the above technique: embed-MacOSX-dependencies.sh

How do I make fat binaries?

I'd like to create multi-arch (aka: fat) binaries

multi-arch binaries (aka "fat" or "universal" binaries) are only possible on OSX.

super simple solution:

  • pass the --enable-fat-binary flag to Gem's configure. by default, this will create fat binaries for PowerPC (ppc) and MacIntel (i386)
  • you can also specify the architectures, e.g. --enable-fat-binary=x86_64 will create a "fat" binary with one architecture (MacIntel 64bit)

using compiler/linker flags:

  • add "-arch " (multiple times, if you need multiple architectures) to your compiler & linker flags; really, the super simple solution does exactly that behind the scenes
  • e.g. adding -arch i386 -arch x86_64 to your CXXFLAGS and LDFLAGS will create fat binaries to run on MacIntel 32bit and 64bit

generating fat binaries from non-fat binaries:

  • sometimes it is simpler to merge a number of non-fat binaries into a single fat binary
  • using lipo for this:
        lipo -create <file1> <file2> <...> -output <file>
    
  • e.g.:
        lipo -create ppc/Gem.pd_darwin i386/Gem.pd_darwin ia64/Gem.pd_darwin -output Gem.d_fat
    

using Gem

How do I (???)

Many of the general usage questions are probably answered in the manual or release notes.

The pd mailing list is also a good place to find answers as well.

Why doesn't GEM run?

Notice that the -lib flag always requires Unix styles slashes. This is the case even on Windows.

You may also want to use the -nosound flag. For instance, my PC has problems using audio (it leaks memory), so I just turn off the audio part of Pd. However, other people can't get GEM to work if the -nosound is used (on Win95). You can also try the -nodac or -noadc flags (for digital-analog-conversion only and analog-digital-conversion only).

I've got it running. Now what?

Try out the manual. It will step you through the basics.

You will also want to look at the example files. Assuming that everything is installed correctly, you can get to the examples by going to the Help menu in Pd and selecting examples. A bunch of the patches should start with gem.

The best one is gem/01.basic/01.redSquare.pd It puts a red square up on the screen and allows you to rotate it.

gemImage.pd shows how to load in a TIFF file.

gem/03.lighting/04.moveSpheres.pd moves two spheres around the screen. Try the other ones. Most of the GEM objects have test patches which give some information about the various controls for the object.

On IRIX 5.3, why does GEM dump with an rld error? !

GEM only works under IRIX 6.2+. The rld error is probably something about not having glBindTextureEXT (or something). OpenGL 1.0 has some extensions to speed up texture mapping (which are an integral part of OpenGL 1.1). However, these don't exist on IRIX 5.3. If you recompile GEM (see the next question), things should work fine.

I don't have access to an IRIX machine, so don't expect any builds from me. Upgrading to IRIX 6.2+ is worth it.

This FAQ applies to: 0.70, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.80, 0.81, 0.82, 0.83, 0.84, 0.85

Why can't I compile GEM on IRIX 5.3? !

There was probably an error saying that the compiler couldn't find the file "dmedia/vl_vino.h" in pix_videoSGI.cpp. IRIX 6.2+ adds new functionality to the media libraries which makes life much easier. You cannot compile pix_video or pix_indycam as is under 5.3. You can remove them from the Pix/Makefile and from the linker part of the global Makefile. You will also need to recompile the Td and Tiff libraries.

There shouldn't be any problems doing this. I haven't tried any of this, so if it works for someone, please let me know.

This FAQ applies to: 0.70, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.80, 0.81, 0.82, 0.83

Why is GEM slow in general?

Examine what you are doing. If you are constantly changing textures, then this is probably your problem. If you have models with a million triangles, then this is probably the problem. Compare what you are doing with realistic specs on your system. Some systems slow down when they have to draw very large polygons (slow fill rate).

You can also turn on profiling to see how long it takes to render a frame. Send a profile message to the gemwin object. The number that is printed is the number of milliseconds one frame takes to render. 50 milliseconds is 20 frames per second. profile 2 is good if you want to see how long the image processing is taking.

  • profile 0 - turn off profiling
  • profile 1 - turn on profiling
  • profile 2 - turn on profiling and don't cache pixes

Why is GEM slow on IRIX? !

If you are having major slowdowns, then please let me know.

I have gotten very good performance on most machines (Indy, O2, Impact, Onyx2).

This FAQ applies to: 0.70, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.80, 0.81, 0.82, 0.83

Why is GEM slow on WinNT/Win95/Win2k/WinXP/...?

You probably don't have hardware acceleration.

You can use software rendering, but it basically useless except for extremely basic patches.

You can get a good graphics accelerator for really cheap these days. I recommend a card based on nVidia's chipsets, such as the TNT2 or GeForce, but there are other companies such as 3dfx and Matrox.

Make sure that you are running the latest drivers for your card. The basic drivers that come with the cards are usually very bad.

Also, PCs don't deal with lots of texture maps very well (they are bus limited, at least until AGP), so if you are trying to use lots of constantly changing texture maps (especially with [pix_multiimage], [pix_video] or [pix_film]), that will cause problems.

Why is GEM slow on Linux?

It is because you have to use Mesa, which might be running in software.

Mesa is an awesome package by "Brian Paul"mailto:brianp@avid.com which "emulates" OpenGL.

Basically, it is a fully compliant OpenGL package, but it isn't officially sanctioned by the OpenGL ARB, such, it is doesn't have the OpenGL name.

There is an acceleration package for the many graphics card, but I don't know anything about it.

nVidia is being very supportive of Linux: their TNT2 and GeForce cards work under Linux with hardware-acceleration of openGL. (but the drivers are proprietary)

radeon cards should also be supported very well under linux (even with open-source drivers)

If I resize the window, everything looks strange.

GEM doesn't trap resize events in IRIX or Linux (this is not a problem in WinNT).

This means that OpenGL doesn't have the correct information to render properly.

If you want to resize the window, send a dimen x y message to gemwin before you create the window.

Can GEM run on a 3Dfx Voodoo card? !

I (this is: Mark Danks) have a Voodoo2 card, which runs fine under WinNT.

I use the OpenGL beta driver from 3Dfx at work all the time without any problems and, except that the Voodoo takes over the full screen, it seems to work fine.

You will need to download the OpenGL Beta driver from 3Dfx's web site at http://www.3dfx.com and put the !OpenGL32.dll into the same directory as pd.exe (NOT gem.dll). Debugging patches is much easier if you have two monitors, one for the 3-D card and one for the 2-D card.

IMPORTANT: You must set the environment variable GEM_SINGLE_CONTEXT = 1

to make the Voodoo card work. It will make a window 640x480 (which is the correct size for TV video out on my Canopus V2 card). On WinNT, right click "My Computer" and go to "Properties". On the "Environment" tab, you need to add the variable GEM_SINGLE_CONTEXT with a value of 1. Resizing the GEM window with a Voodoo card is not a great idea. The Voodoo card can only display certain window sizes and will clip the graphics.

For the tech heads in the audience...

I create an OpenGL context at startup and never actually display its associated window.

This means that GEM objects can create display lists, call OpenGL commands, etc. in their constructors, even if no window is actually being displayed. However, with the Voodoo card, there can only be one OpenGL context. So, instead of creating one context and just holding onto it in the background, I create the normal GEM window and associate the OpenGL context with it... and the user can never destroy or close that window.

This FAQ applies to: 0.70, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.80, 0.81, 0.82, 0.83, 0.84, 0.85, 0.86, 0.87, 0.888

Will GEM support hardware transform and lighting (T&L) ?

Absolutely!

Unlike some other APIs, OpenGL will automatically use hardware accelerated transform and lighting if the card has it.

GEM gets great performance from cards like nVidia's GeForce.

I get an error "GEM needs Truecolor visual support".

This error means that your X display is running with paletted colors, which is the result of limited color depth. If you start the X display with startx !-- -bpp 16 or some higher number, then it should work fine. 32-bit color is the best.

Why does Gem crash when creating the Gem-window? !

When I try to create a Gem-window, my X-server crashes (or worse)? btw, I am using Ubuntu/hoary with fglrx drivers.

quick

try setting the environment variable GEM_SINGLE_CONTEXT to 1

explanation

Gem establishes an (invisible) openGL-context at startup, even if no Gem-window is created yet. When you create the Gem-window, a 2nd openGL-context is used (which shares some properties with the invisible context).

For some reasons this seems to be not possible with some gfx-drivers (e.g. ATI's proprietary fglrx drivers) and some window-managers (i suspect compiz/beryll), leading to crashes of the X-server and/or system freezes.

The current workaround is to set the environment variable GEM_SINGLE_CONTEXT=1, which prevents this dual-context magic.

how?

  • if you are starting Pd from the bash, you can start Pd/Gem with GEM_SINGLE_CONTEXT=1 pd -lib Gem
  • on bash, you can also set this permanently by adding a the line export GEM_SINGLE_CONTEXT=1 to either ~/.bashrc (the bash-configuration file in your home-directory) or to /etc/bash.bashrc (to set it for all users)

This FAQ applies to: 0.91

Why does Gem crash when sending [destroy( to [gemwin]?

After working a bit with Gem with my intel-graphics card, I incidentally closed the Gem-window by sending a [destroy( message to the [gemwin] object. This crashed Pd with a "Segmentation Fault".

Hmm, even though this question is frequently asked, there is no satisfying answer to it yet. Chances are high that something will change if you use the GEM_SINGLE_CONTEXT environmental variable, as described here

This FAQ applies to: 0.91.1

Why does Gem crash when closing the Gem-window? !

I made am running Gem in fullscreen mode. In order to be able to still access my patch after the Gem-window has taken full control over my desktop, i use [gemmouse] to trigger a [destroy( message whenever i click the right mouse-button. While this closes the Gem-window, it also crashes Pd :-(

This happened with older versions of Gem, and should be fixed at least since 0.91. Please upgrade!

The reason for this is, that [gemmouse] sends out all the events immediately when they appear, which is on the stack of a method from the Gem-window itself. Destroying the window in this instance of time will invalidate the stack. A quick fix is to use a [delay 0] message between the trigger event and the [destroy( message.

But again, this hack is unnecessary with recent versions of Gem.

This FAQ applies to: 0.888

viewing objects

Why does everything seem dim?

You probably turned on lighting but don't have any lights in the world.

Either add a light with [world_light] or [light] or turn lighting off by sending a message lighting 0 to the gemwin.

You can also send a reset message to gemwin to set it back to the startup state (which doesn't have any lighting).

Why does everything seem dark?

If you are using 'view' in your patch to change the viewpoint, you may not be pointing in the correct direction. You also might have translated everything outside of the current viewport. Also, if you have been using single buffering ('buffer 1' message to gemwin), then you might still be in that mode. Either send a 'buffer 2' message or a 'reset' message to gemwin. Then, destroy and create your window.

How do I enable Full Screen Antia-Aliasing (FSAA)?

Everything looks jagged und ugly. I want smooth images!

there are several ways:

  • on W32
    • ?? most likely you can set this with a driver-specific application
  • OSX
    • use the FSAA message to [gemwin]. the value specifies the number of multisamples used for anti-aliasing (AGL_SAMPLES_ARB)
  • linux
    • nvidia
      • you can use the FSAA message to [gemwin]. the exact values you should pass to FSAA are depending on your hardware and your driver. see the driver documentation for valid (and good) values.
      • use nvidia-settings (to eventually override the "FSAA" message)
    • ati/radeon
      • use ati-config
      • instally Catalyst from ATI and use the control center
    • other cards
      • see driver documentation

This FAQ applies to: 0.92.1

texture mapping

My image doesn't appear. What is going on?

Normally images have to be texture-mapped onto Geos. You have to use [pix_texture] to map the current image onto a Geo. "Current" means that any pix-manipulation that is done after texturing will not be displayed.

Any Geo has a color (which is initially set to white). If you have set the color to black, your Geo (including the image) might be very dark. If you are using alpha-blending, make sure that the Geo is not invisible.

Normally images that want to be texture mapped with openGL should have dimensions that are a power of 2 in both height and width. Now [pix_texture] will make this totally transparent to you (so normally you don't have to care about the size of the image). However with non-power-of-2 images pix_coordinate might not behave as expected, because these images need absolute texture-coordinates rather than normalized ones (as are used with power-of-2 images): so if the texture-coordinates are set to "(0,0) (1,0) (1,1) (0,1)" you might see only the first pixel of the image (which might be black).

Also, make sure that GEM can find your image (ie, that the path name is correct).

My image looks strange. What is going on?

GEM supports gray8, YUV, and RGBA images. If it sees that the number of bits per channel and the number of channels is something that it should be able to handle, it tries to load the raw data. If you have compressed or stored the pixel data in some "strange" format, then GEM will probably not read the information correctly. Also, if it is an RGBA image, then make sure that the alpha channel is something useful (this only matters if you are using the alpha channel, like in the alpha object or pix_mask).

Why does GEM say that it can't handle a gray image?

This error message occurs whenever a pix object receives a gray8 image and the implementor hasn't provided a way to deal with that format of image.

(Implementors often only provide functions for GEM's native color-format RGBA. Any other color-format (like BGR) will try to call the function for gray8 images, which might not be supported.)

If you do not want to change the image format with some extern image-programm (like Photoshop or the Gimp) you might want to try [pix_rgba] or harass whoever made the object to add the functionality.

What image formats can GEM handle?

GEM can read in TIFF, JPEG, and SGI images.

These can be in any color format. Gray scale images are loaded in as gray scale (ie, 1 byte per pixel). Everything else is loaded in or converted to an RGBA image (ie, 4 bytes per pixel).

If there is an alpha channel, then it will be respected. Otherwise, the alpha channel will be set to fully opaque (alpha == 255).

GEM can write TIFF and JPEG images. TIFF-images will be full RGBA-images, wheras JPEG-files only support (compressed) RGB.

What movie formats can GEM handle?

The movie formats GEM can handle (still) depend on the platform you are using.

On Windoze you can read all AVI-files you have codecs for

On linux the readable formats depend on the libraries you had installed when you compiled GEM. Currently there is (optional) support for AVI, quicktime (.MOV) and MPEG (.MPG) files. Not all quicktime-formats are supported. This is unfortunate but is due to linux restrictions. I highly recommend that you install the mpeg3-library from Heroine because it is much more stable than mpeg1 (which comes with many linux-distributions). If you have compiled in support for libavifile, you will be able to open Micro$oft-AVI-files. If you have installed the proper codecs (libavifile supports a mechanism for loading codecs from windows-DLLs?) you should be able to open almost any format. If you have serious problems, mail them to me. (Be ready to upload the movie-file that won't work)

On Mac os-X, just any format supported by that platform (this is basically QuickTime) should work fine.

Why is [pix_draw] so slow?

[pix_draw] is almost never hardware accelerated on PCs graphics accelerator. This means that it runs extremely slowly.

Always use [pix_texture], even if you are just displaying an image.

working with Pd

Why do I get clicks in the audio?

If you are getting a constant stream of clicks in your audio, then it is probably because you are trying to do graphics and audio in the same process.

Rendering a graphics frame usually takes longer than the size of the audio buffer, which is why you get clicks (the clicks are usually at 20Hz...the typical frame rate).

One way around this is to use two computers, one for graphics and one for audio. If you have enough processing power (or dual processors), then you can run two versions of Pd, one for graphics and one for audio. Just use [netsend] and [netreceive] to have the two versions of Pd talk to each other.

How do I get audio data to GEM?

One simple way to get raw audio values right now is to use [snapshot~] . Just set up a metro which bangs [snapshot~] and use the floating point value.

If you want "musical" information, then use objects such as [env~] .

You could write audio-data into tables and use that to control things via [tabread] .

You might also have a look at the [pix_sig2pix~] which interprets audio-data as pixels and its counterpart [pix_pix2sig~]

Why can't GEM find an image/model file?

This means that GEM can't locate the file. If you use an absolute path (with / for instance), then GEM will look there. Otherwise, GEM will look in the directory of where the patch is. Then pd/GEM will search the paths you specified at pd-startup with the -path flag.

Check the following:

  1. Does the file exist?
  2. Did you make a typo in the filename?
  3. Is the file in the search-path ?

How can I optimize my patches?

One of the biggest performance hits is having UI elements in your patch which have to be updated.

The biggest performance hog is the number box. While the number box is great for debugging, make sure that they are all gone from your "release" patch.

If you run a performance meter, you will see that whenever Tcl/Tk has to update the user interface, it sucks the entire processor. Another examples of this is when you move a lot of objects at once, everything jerks and slides across the screen. There are probably ways to improve this...

Another problem is doing unneccessary calculations. When you are throwing lots of numbers around, especially packing/unpacking, doing vector math, etc., they add up. If the calculations are going unused (for instance, that part of the patch is turned off), then do not trigger the math objects.

Use [spigot] and block the events early. This is especially important with objects that send a lot of numbers, like ~-objects or [line]/[tripleLine].

Why does Gem crash when closing the Gem-window? !

I made am running Gem in fullscreen mode. In order to be able to still access my patch after the Gem-window has taken full control over my desktop, i use [gemmouse] to trigger a [destroy( message whenever i click the right mouse-button. While this closes the Gem-window, it also crashes Pd :-(

This happened with older versions of Gem, and should be fixed at least since 0.91. Please upgrade!

The reason for this is, that [gemmouse] sends out all the events immediately when they appear, which is on the stack of a method from the Gem-window itself. Destroying the window in this instance of time will invalidate the stack. A quick fix is to use a [delay 0] message between the trigger event and the [destroy( message.

But again, this hack is unnecessary with recent versions of Gem.

This FAQ applies to: 0.888

writing new Gem objects

How do I write a new GEM object?

For the time being, you have to look at the code.

It is fairly well documented and straight forward (if you know C++ and OOP).

Start with an object which is similar to what you want and derive a new class.

The biggest issue right now is how to load in GEM as a DSO/DLL. For SGIs, you will need to setenv LD_LIBRARY_PATH. On NT, you will need to have your path include the directory with GEM.

What are the default OpenGL states?

GemMan (and by association, gemwin) disables alpha testing, alpha blending, culling, and lighting. Lighting defaults to two sided, with GL_COLOR_MATERIAL enabled. The viewport is set to:

 float xDivy = (float)m_width / (float)m_height;

 glMatrixMode(GL_PROJECTION);

 glLoadIdentity();

 glFrustum(-xDivy, xDivy, -1.0, 1.0, 1.0, 20.0);

 gluLookAt(0.0, 0.0, 4.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);

 glMatrixMode(GL_MODELVIEW);

 glViewport(0, 0, m_width, m_height);

which gives a range of about -4 to 4 in X and Y at the origin. This is a small range, but changing it now would break a lot of patches.

The specific functions to look at are:

GemMan::windowInit()

GemMan::resetValues()

gemhead::renderGL()

How do i find out the dylib dependencies of a binary?

How do i find out, against which dynamic libraries a certain binary (e.g. the Gem-binary) is linked?

This is not Gem-specific, but i keep forgetting it. So here is the answer:

linux

ldd <binary>

osx

otool -L <binary>

w32

??

object specific

Why doesn't <object> exist on <platform>?

Usually, this is because I don't have the resources to get the object running on that platform. If an object that you want doesn't exist on your platform, then ask for it! However, if it is tied to hardware, then it is much less likely that I will be able to do anything about it (unless someone donates the hardware to me...)

Why doesn't [gemtablet] work? !

[gemtablet] only works on WinNT.

I don't have drivers for IRIX or Linux

If GEM can find the tablet, then it will print a message at window creation time. If you don't see a message, then GEM doesn't think that you have a tablet.
The tablet is mapped to the size of the GEM graphics window.


[gemtablet] has been removed from Gem>0.90.
Use [hid] or other libraries to access special hardware from within Pd.

This FAQ applies to: 0.70, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.80, 0.81, 0.82, 0.83, 0.84, 0.85, 0.86, 0.87, 0.888

I don't want GEM to take over my tablet. How do I stop it? !

Set the environment variable GEM_NO_TABLET = 1

This FAQ applies to: 0.70, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.80, 0.81, 0.82, 0.83, 0.84, 0.85, 0.86, 0.87, 0.888

Why doesn't [gemmouse] work in IRIX? !

Basically, I don't have physical access to an SGI machine.

This makes it hard to do some of the OS specific work.

It should be straightforward to do the event handling, so if someone gets it working, I would love to include it (and give you credit). All you have to do is call the correct event functions from GemEvent.h and everything should just start to work (ie, gemmouse doesn't have any OS specific code in it).

This FAQ applies to: 0.70, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.80, 0.81, 0.82, 0.83, 0.84, 0.85, 0.86

Why doesn't [gemorb] work? !

You need to make sure that your SpaceOrb is hooked up correctly. I am using a library which isn't supported by SpaceTec so there can be problems, although I have not had any.

<RANT> When will companies wake up and actually provide drivers and support for their products under WinNT? </RANT>

[gemorb] has been removed from Gem>0.90.
Use [hid] or other libraries to access hardware from within Pd.

This FAQ applies to: 0.70, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.80, 0.81, 0.82, 0.83, 0.84, 0.85, 0.86, 0.87, 0.888

What is wrong with [pix_video] in WinNT? !

I haven't completely figured out how to get access to the video stream in WinNT.

I'm using Video for Windows with a Connectix QuickCam, as well as an Intel Video Capture Card, and it seems to assume that you are only writing to a file or previewing into a window.

Windows tries to take over the system and doesn't really provide any stable hooks (unlike IRIX). If anyone knows how to deal with this, please let me know.

This FAQ applies to: 0.70, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.80, 0.81, 0.82, 0.83, 0.84, 0.85, 0.86, 0.87, 0.888

Linux

How do I install GEM and Pd on linux? !

See the readme for installing Pd.

GEM should be at

chdir to /src/Gnu and build Gem following the instructions in the README.build (./configure; make)

If you then make install, then all of the example files and documention should be put in the correct locations.

if you are using debian, Gem should be available via apt

if you are using an rpm-based distribution, check out the builds at planetCCRMA

This FAQ applies to: 0.80, 0.81, 0.82, 0.83, 0.84, 0.85, 0.86, 0.87, 0.888

Why is GEM slow on Linux?

It is because you have to use Mesa, which might be running in software.

Mesa is an awesome package by "Brian Paul"mailto:brianp@avid.com which "emulates" OpenGL.

Basically, it is a fully compliant OpenGL package, but it isn't officially sanctioned by the OpenGL ARB, such, it is doesn't have the OpenGL name.

There is an acceleration package for the many graphics card, but I don't know anything about it.

nVidia is being very supportive of Linux: their TNT2 and GeForce cards work under Linux with hardware-acceleration of openGL. (but the drivers are proprietary)

radeon cards should also be supported very well under linux (even with open-source drivers)

If I resize the window, everything looks strange.

GEM doesn't trap resize events in IRIX or Linux (this is not a problem in WinNT).

This means that OpenGL doesn't have the correct information to render properly.

If you want to resize the window, send a dimen x y message to gemwin before you create the window.

How do I get GEM for linux?

There are no linux binaries available on the website...How do I get Gem for linux?

Since Gem has a lot of external dependencies and there are a lot of different linux distributions, many of them providing different libraries, there are usually no pre-built binaries for Gem on linux.

Instead, you are invited to get the latest sources of Gem and build it yourself.

Getting the sources:

  • if there is a source-package for a certain release, grab it, extract it, cd into the /src directory, and run
    • ./configure (optionally with some flags) and
    • make
  • if there is no source-package available get the latest and greatest sources via CVS, cd into the /src directory, and run
    • aclocal,
    • autoconf,
    • ./configure (optionally with some flags) and
    • make

Why does Gem crash when creating the Gem-window? !

When I try to create a Gem-window, my X-server crashes (or worse)? btw, I am using Ubuntu/hoary with fglrx drivers.

quick

try setting the environment variable GEM_SINGLE_CONTEXT to 1

explanation

Gem establishes an (invisible) openGL-context at startup, even if no Gem-window is created yet. When you create the Gem-window, a 2nd openGL-context is used (which shares some properties with the invisible context).

For some reasons this seems to be not possible with some gfx-drivers (e.g. ATI's proprietary fglrx drivers) and some window-managers (i suspect compiz/beryll), leading to crashes of the X-server and/or system freezes.

The current workaround is to set the environment variable GEM_SINGLE_CONTEXT=1, which prevents this dual-context magic.

how?

  • if you are starting Pd from the bash, you can start Pd/Gem with GEM_SINGLE_CONTEXT=1 pd -lib Gem
  • on bash, you can also set this permanently by adding a the line export GEM_SINGLE_CONTEXT=1 to either ~/.bashrc (the bash-configuration file in your home-directory) or to /etc/bash.bashrc (to set it for all users)

This FAQ applies to: 0.91

Why does Gem crash when sending [destroy( to [gemwin]?

After working a bit with Gem with my intel-graphics card, I incidentally closed the Gem-window by sending a [destroy( message to the [gemwin] object. This crashed Pd with a "Segmentation Fault".

Hmm, even though this question is frequently asked, there is no satisfying answer to it yet. Chances are high that something will change if you use the GEM_SINGLE_CONTEXT environmental variable, as described here

This FAQ applies to: 0.91.1

OS-X

How do I install GEM and Pd on Mac OS-X?

See the readme for installing Pd.

there is also an installer for macOS.

How do you compile Gem on OSX?

i want to compile Gem on my OSX machine, but wonder how to do? what are you (the upstream maintainer) using to compile Gem for the releases?

available build environemnts

you should be able to build Gem either using autoconf or XCode

autoconf

coming from a linux background (and often running builds on remote machines), i personally prefer the "autoconf" build-system

this is also used for the Pd-extended autobuilds

setup for Gem-0.92.0

  • PowerBook G4 running OSX 10.5.8
  • FTGL/freetype2 have been compiled statically into a universal binary beforehand (by somebody; the URL is dead by now; i happen to have a local copy on my machine)
  • all the rest seems to come with OSX
  • i used autoconf (rather than XCode) with the following configure-line::

    PKG_FTGL_CFLAGS="-I/Users/zmoelnig/Development/pd-gem/GemLibs/FTGL/freetype\ include/ -I/Users/zmoelnig/Development/pd-gem/GemLibs/FTGL/include/" PKG_FTGL_LIBS="/Users/zmoelnig/Development/pd-gem/GemLibs/FTGL/mac/build/Universal/libftgl.a" ./configure --with-pd=/Users/zmoelnig/Development/pure-data/pd --with-extension=d_fat --enable-fat-binary

notes on OSX-10.6 (aka "Snow Leopard")

  • since i only have a PowerBook, i cannot upgrade to 10.6 (which has dropped support for PowerPC)
  • users report that compilation works fine when forcing the build to be i386 only (OSX10.6 has no legacy support for ppc; Gem has no support for x86_64 on OSX yet). for this to work you have to specify --enable-fat-binary=i386

Xcode

in build/osx-xcode you can find a xcode-project for Gem

font-support

you need FTGL (which in turn needs freetype)

for downloadable Gem-binaries it is better to have FTGL (and freetype) linked statically!

freetype

  • get freetype-2.4.4 from e.g. sourceforge and unpack it
  • ./configure --disable-shared --enable-biarch-config CFLAGS="-arch ppc -arch i386"
  • make && sudo make install

FTGL

  • get FTGL from sourceforge (i did a checkout of the SVN trunk; today this was revision 1266)
  • ./configure --without-x --disable-shared --disable-dependency-tracking CFLAGS="-arch i386 -arch ppc" CXXFLAGS="-arch i386 -arch ppc" LDFLAGS="-arch i386 -arch ppc"
  • make && sudo make install

building Gem

these are the additional flags (rather environment variables) passed to Gem

  • ./configure --disable-dependency-tracking --enable-fat-binary=ppc,i386 PKG_FTGL_CFLAGS="-I/usr/local/include/FTGL $(freetype-config --cflags)" PKG_FTGL_LIBS="-L/usr/local/lib/ -lftgl -lfreetype"

This FAQ applies to: 0.92.3, 0.92.0, 0.92svn, 0.92.2, 0.92.4

How do i make library dependencies local?

I want to ship dependencies side-by-side with my external and not have to install in the "correct" path (e.g. /sw/lib/)

OSX

on OSX you can change the path where a library is searched for with the install_name_tool

using the special path @loader_path, the path where the external lives will be searched

here's a small script to make all /sw/lib/ dependencies "local":

  for f in *.pd_darwin
  do
   otool -L ${f} | grep sw | awk '{print $1}' | while read i
   do j=@loader_path/${i##*/}
     echo $f $i $j
     install_name_tool -change ${i} ${j} ${f}
   done
  done

Here is the script that is used in the readanysf~ library for including lots of libraries using the above technique: embed-MacOSX-dependencies.sh

How do I make fat binaries?

I'd like to create multi-arch (aka: fat) binaries

multi-arch binaries (aka "fat" or "universal" binaries) are only possible on OSX.

super simple solution:

  • pass the --enable-fat-binary flag to Gem's configure. by default, this will create fat binaries for PowerPC (ppc) and MacIntel (i386)
  • you can also specify the architectures, e.g. --enable-fat-binary=x86_64 will create a "fat" binary with one architecture (MacIntel 64bit)

using compiler/linker flags:

  • add "-arch " (multiple times, if you need multiple architectures) to your compiler & linker flags; really, the super simple solution does exactly that behind the scenes
  • e.g. adding -arch i386 -arch x86_64 to your CXXFLAGS and LDFLAGS will create fat binaries to run on MacIntel 32bit and 64bit

generating fat binaries from non-fat binaries:

  • sometimes it is simpler to merge a number of non-fat binaries into a single fat binary
  • using lipo for this:
        lipo -create <file1> <file2> <...> -output <file>
    
  • e.g.:
        lipo -create ppc/Gem.pd_darwin i386/Gem.pd_darwin ia64/Gem.pd_darwin -output Gem.d_fat
    

Windows

How do I install GEM and Pd on WinNT?

See the readme for installing Pd.

unzip GEM so that it is at

pd\gem

If you run GEM.INSTALL.bat, then all of the example files and documentation should be put in the correct locations.
(Note that you eventually have to edit GEM.INSTALL.bat to match your local directory layout.)

There is also an installer for windows.

For Windows 8 and 10 there is a missing dll that is needed for GEM to run. If your system doesn't have msvcr71.dll already then find it on the Web and install it in the pd\bin folder.

This FAQ applies to: 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.80, 0.81, 0.82, 0.83, 0.84, 0.85, 0.87, 0.90.0, 0.90.1

Why is GEM slow on WinNT/Win95/Win2k/WinXP/...?

You probably don't have hardware acceleration.

You can use software rendering, but it basically useless except for extremely basic patches.

You can get a good graphics accelerator for really cheap these days. I recommend a card based on nVidia's chipsets, such as the TNT2 or GeForce, but there are other companies such as 3dfx and Matrox.

Make sure that you are running the latest drivers for your card. The basic drivers that come with the cards are usually very bad.

Also, PCs don't deal with lots of texture maps very well (they are bus limited, at least until AGP), so if you are trying to use lots of constantly changing texture maps (especially with [pix_multiimage], [pix_video] or [pix_film]), that will cause problems.

I don't want GEM to take over my tablet. How do I stop it? !

Set the environment variable GEM_NO_TABLET = 1

This FAQ applies to: 0.70, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.80, 0.81, 0.82, 0.83, 0.84, 0.85, 0.86, 0.87, 0.888

What is wrong with [pix_video] in WinNT? !

I haven't completely figured out how to get access to the video stream in WinNT.

I'm using Video for Windows with a Connectix QuickCam, as well as an Intel Video Capture Card, and it seems to assume that you are only writing to a file or previewing into a window.

Windows tries to take over the system and doesn't really provide any stable hooks (unlike IRIX). If anyone knows how to deal with this, please let me know.

This FAQ applies to: 0.70, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.80, 0.81, 0.82, 0.83, 0.84, 0.85, 0.86, 0.87, 0.888

How do I install GEM on WinXP?

Download the Gem-installer and run it.

You should install it into the "extra/Gem" directory of your local Pd-installation.

By default this is: %PROGRAMFILES%\Pd\extra\Gem, which should be fine if you have accepted the defaults when installing Pd.

That's it.

This FAQ applies to: 0.91.1, 0.91, 0.91.0

How do you compile Gem on W32?

I want to compile Gem myself on a W32 system. How do I do that?

Building on W32 is a pain.

I happen to have a buildsystem running and try not to touch it, in case it breaks and i cannot create one again...

Visual Studio 2003

setup for building Gem-0.92

  • AMD64 laptop running XP (sp3 i think)
  • GemLibs: later check which version / incarnation
  • compiled using the project for Visual Studio 2003 (see build/win-vs2003)
  • installer is compiled using NSIS (build/win-nsis)

autoconf

in theory it should be possible to build Gem using autoconf on W32 using msys/cygwin

problems probably occur, due to the use of DirectShow for grabbing/decoding

This FAQ applies to: 0.92.0

IRIX

How do I install GEM and Pd on IRIX? !

See the readme for installing Pd.

GEM should be at pd/gem

If you run GEM.INSTALL.sh, then all of the example files and documention should be put in the correct locations.

This FAQ applies to: 0.70, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.80, 0.81, 0.82, 0.83

On IRIX 5.3, why does GEM dump with an rld error? !

GEM only works under IRIX 6.2+. The rld error is probably something about not having glBindTextureEXT (or something). OpenGL 1.0 has some extensions to speed up texture mapping (which are an integral part of OpenGL 1.1). However, these don't exist on IRIX 5.3. If you recompile GEM (see the next question), things should work fine.

I don't have access to an IRIX machine, so don't expect any builds from me. Upgrading to IRIX 6.2+ is worth it.

This FAQ applies to: 0.70, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.80, 0.81, 0.82, 0.83, 0.84, 0.85

Why can't I compile GEM on IRIX 5.3? !

There was probably an error saying that the compiler couldn't find the file "dmedia/vl_vino.h" in pix_videoSGI.cpp. IRIX 6.2+ adds new functionality to the media libraries which makes life much easier. You cannot compile pix_video or pix_indycam as is under 5.3. You can remove them from the Pix/Makefile and from the linker part of the global Makefile. You will also need to recompile the Td and Tiff libraries.

There shouldn't be any problems doing this. I haven't tried any of this, so if it works for someone, please let me know.

This FAQ applies to: 0.70, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.80, 0.81, 0.82, 0.83

Why is GEM slow on IRIX? !

If you are having major slowdowns, then please let me know.

I have gotten very good performance on most machines (Indy, O2, Impact, Onyx2).

This FAQ applies to: 0.70, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.80, 0.81, 0.82, 0.83

If I resize the window, everything looks strange.

GEM doesn't trap resize events in IRIX or Linux (this is not a problem in WinNT).

This means that OpenGL doesn't have the correct information to render properly.

If you want to resize the window, send a dimen x y message to gemwin before you create the window.

Why doesn't [gemmouse] work in IRIX? !

Basically, I don't have physical access to an SGI machine.

This makes it hard to do some of the OS specific work.

It should be straightforward to do the event handling, so if someone gets it working, I would love to include it (and give you credit). All you have to do is call the correct event functions from GemEvent.h and everything should just start to work (ie, gemmouse doesn't have any OS specific code in it).

This FAQ applies to: 0.70, 0.72, 0.73, 0.74, 0.75, 0.76, 0.77, 0.78, 0.79, 0.80, 0.81, 0.82, 0.83, 0.84, 0.85, 0.86

by IOhannes m zmoelnig last modified 2007-07-18 11:49 AM

Powered by IEM Powered by Plone Section 508 WCAG Valid XHTML Valid CSS Usable in any browser