diff --git a/Gem/COPYING.txt b/Gem/COPYING.txt new file mode 100644 index 0000000..e54306d --- /dev/null +++ b/Gem/COPYING.txt @@ -0,0 +1,48 @@ +GEM - Graphics Environment for Multimedia +Copyright © 1997-2000 Mark Danks +Copyright © Günter Geiger +Copyright © 2001-2011 IOhannes m zmölnig, +Copyright © 2003-2007 James Tittle II, +Copyright © 2003-2008 Chris Clepper + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program. If not, see . + +In the official GEM distribution, the GNU General Public License is +in the file GnuGPL.LICENSE + +--------------------------------------------------------- + + ACKNOWLEDGMENTS + +--------------------------------------------------------- +Not all of the source code provided here has entirely been written by me. +I would like to point at the great openGL-tutorials at http://nehe.gamedev.net +Since these are tutorials, there is no copyright notice here. +Some of the pix_fx code is borrowed from effecTV by Kentarou Fukuchi et al. +at http://effectv.sourceforge.net released under the Gnu GPL, some other pix_fx +code has been ported from Pete Warden's fine collection of FreeFrame plugins at +http://petewarden.com released under the Gnu GPL. + +--------------------------------------------------------- + + OTHER COPYRIGHT NOTICES + +--------------------------------------------------------- + +particle: + Author: David McAllister + davemc[AT]cs.unc.edu + http://www.cs.unc.edu/~davemc/Particle/ + Copyright (c) 1998 David K. McAllister + diff --git a/Gem/ChangeLog b/Gem/ChangeLog new file mode 100644 index 0000000..e65fc91 --- /dev/null +++ b/Gem/ChangeLog @@ -0,0 +1,12942 @@ +2007-06-05 23:44 cclepper + + * src/Pixes/recordQT.cpp: fixed looooong first frame bug. added + detection for colorspace and image flipping. + +2007-05-31 19:52 zmoelnig + + * src/Pixes/pix_buffer.cpp: make old-images tiny (almost free them) + when resizing the array: important when you resize large arrays; + TODO: do not resize buffers that already have the correct size + +2007-05-31 17:18 zmoelnig + + * src/Pixes/: pix_buffer.cpp, pix_buffer.h: added "resize" message + +2007-05-30 16:49 zmoelnig + + * src/Pixes/: pix_buffer.cpp, pix_buffer.h: added "resize" message + +2007-04-02 17:27 zmoelnig + + * src/Pixes/: pix_videoNEW.cpp, videoV4L2.cpp: fixed v4l2-code as + to set the "m_capturing"-flag whenever we exit the capturing + thread (not just when we power it down); + + in pix_videoNEW do not startTransfer() in the constructor phase + +2007-04-02 12:24 zmoelnig + + * src/Base/TextBase.h: incidentially deleted the "using + std::string;" line...now it is back + +2007-04-02 12:18 zmoelnig + + * src/README.linux: updated documentation a bit + +2007-04-02 09:36 zmoelnig + + * src/: Base/TextBase.cpp, Base/TextBase.h, Base/config.h, + Base/configGeneric.h.in, Base/configLinux.h.in, Base/configNT.h, + Geos/text2d.cpp, Geos/text2d.h, Geos/text3d.cpp, Geos/text3d.h, + Geos/textextruded.cpp, Geos/textoutline.cpp, Geos/textoutline.h: + removed GLTT support; added wide-character support for FTGL (at + least in "string" mode) + +2007-04-02 09:34 zmoelnig + + * src/configure.ac: removed GLTT support; added wide character + support for FTGL-font rendering (at least in "string" mode) + +2007-03-14 11:57 zmoelnig + + * src/Pixes/videoDV4L.cpp: minor issue with using fprintf() without + carriage return; this solution uses verbose(), though i am not + sure whether this is really thread safe... have i really + forgotten to check this in...? + +2007-03-12 10:15 zmoelnig + + * src/Pixes/: pix_offset.cpp, pix_offset.h: added saturated logic + and made it default (is the LATTER a good idea?) + +2007-02-20 11:13 zmoelnig + + * src/Base/GemGL.h: fixed typos in comment + +2007-02-20 11:11 zmoelnig + + * src/Base/GemGL.h: fixed comment + +2007-02-20 10:58 zmoelnig + + * src/: configure.ac, Base/GemGL.h, Base/configDarwin.h.in, + Base/configLinux.h.in: added a configure-flag to specify the + maximum openGL-version to use. use this information in GemGL.h + to exclude certain parts of the openGL-headers thanks ico for the + suggestion + +2007-02-20 10:56 zmoelnig + + * src/openGL/GEMglBlendEquation.cpp: glBlendEquation() needs + openGL-1.2 + +2007-02-20 10:43 zmoelnig + + * src/Pixes/pix_texture.cpp: glActiveTexture() is not always + defined + +2007-02-20 10:42 zmoelnig + + * src/Pixes/video.h: indentation + +2007-02-19 12:29 zmoelnig + + * src/Pixes/: pix_videoNEW.cpp, videoDV4L.cpp, videoV4L.cpp: + applied ico's patches in order to stabilize dv4l (note: use + delete[] on ~pix_videoNEW) + +2007-02-13 14:10 zmoelnig + + * src/: Pixes/filmQT.h, Pixes/pix_filmDarwin.h, Pixes/pix_filmQT.h, + Pixes/pix_videoDarwin.h, Base/GemMan.cpp, + Base/GemPixImageLoad.cpp: fixed cases for os-x includes (fixes + bug#1613373) + +2007-02-12 23:33 tigital + + * src/Base/GemPixUtil.cpp: small changes to get correct colors on + intel macs + +2007-02-12 22:43 tigital + + * src/Pixes/pix_write.cpp: small change to get correct colors on + intel macs + +2007-01-07 23:32 tigital + + * src/Manips/: glsl_fragment.cpp, glsl_program.cpp, glsl_program.h, + glsl_vertex.cpp, glsl_vertex.h: added GL_VERSION_2_0 compile path + for non-ARB glsl functions + +2007-01-07 20:52 zmoelnig + + * src/Vertex/: vertex_add.cpp, vertex_combine.cpp: proper calling + of CPPExtern::error() in the static member functions + +2006-12-07 19:19 cclepper + + * src/Pixes/pix_convolve.cpp: quick fix for YUV 3x3 on x86. for + now it just does the generic loop. + +2006-12-06 21:08 cclepper + + * src/Pixes/pix_filmNEW.cpp: added an ifdef to make sure this is + not compiled on OSX. pix_filmDarwin is used instead + +2006-12-06 20:56 cclepper + + * src/Pixes/pix_movieNEW.cpp: added an ifdef to make sure this is + not compiled on OSX. pix_movieDarwin is used instead + +2006-12-06 20:44 cclepper + + * src/Pixes/pix_movie.cpp: added another ifdef to make sure this is + not compiled on OSX + +2006-12-04 16:35 zmoelnig + + * src/Geos/scopeXYZ.cpp: sped things up a bit; cleaned up post() + +2006-12-04 10:11 zmoelnig + + * help/depth.pd: added comment about initial state and a note, that + you now can set this initial state via arguments + +2006-12-04 10:09 zmoelnig + + * src/Manips/: depth.cpp, depth.h: add an optional argument to the + object, so the initial state can be given at object creation + (thanks cyrille for the request) + +2006-11-25 21:04 zmoelnig + + * src/Pixes/: pix_gain.cpp, pix_gain.h: added "saturate" message to + turn saturation on/off; fixed bug in MMX code with gains>1; added + initial arguments + +2006-11-21 13:10 zmoelnig + + * src/Base/GemPixConvert.h: less warnings when compiling + +2006-11-21 13:00 zmoelnig + + * GEM_RELUNIX.sh: nobody uses this and if they do, it wouldn't work + anyhow + +2006-11-21 12:58 zmoelnig + + * GEM.README: updated documentation a tiny bit... + +2006-11-21 12:57 zmoelnig + + * src/: Base/GemPixDualObj.cpp, Base/GemPixObj.cpp, + Controls/gemframebuffer.cpp, Manips/glsl_program.cpp, + Manips/glsl_vertex.cpp, Manips/vertex_program.cpp, + Pixes/pix_buffer_read.cpp, Pixes/pix_buffer_write.cpp, + Pixes/pix_fiducialtrack.cpp, Pixes/pix_multitexture.cpp, + Pixes/pix_rgba.cpp, Pixes/pix_texture.cpp, + openGL/GEMglBlendEquation.cpp: minor code cleanup + +2006-11-21 11:10 zmoelnig + + * src/Pixes/pix_artoolkit.cpp: bail out when using wrong messages + +2006-11-15 12:12 zmoelnig + + * src/Base/GemPixConvert.h: fixed typo (it is __GNUC__ and not + __GNUC___) + +2006-11-15 12:08 zmoelnig + + * src/Base/GemPixConvert.h: more verbosity when disabling the + culprit altivec stuff (since the code does not seem to work and i + don't know why...watch out for the autobuild logs tomorrow...) + +2006-11-14 11:58 zmoelnig + + * src/Base/: GemPixConvert.h, GemPixConvertAltivec.cpp: disable + YUV422_to_YV12_altivec() for gcc<4.0 via the + NO_VECTORINT_TO_VECTORUNSIGNEDINT define (the fix yesterday + coukdn't have worked); btw YUV422_to_YV12_altivec() is really + _unused_ in the current sources!! + +2006-11-14 11:34 zmoelnig + + * src/Pixes/: pix_artoolkit.cpp, pix_artoolkit.h: can't use methods + with "float, symbol" type; have to use A_GIMME instead + +2006-11-13 16:49 zmoelnig + + * src/Base/GemPixConvertAltivec.cpp: disabling __VEC__ for older + gcc's (<4); LATER fix the code + +2006-11-12 16:20 zmoelnig + + * src/Pixes/pix_artoolkit.cpp: print credits on first object + creation + +2006-11-12 16:14 zmoelnig + + * src/Pixes/pix_artoolkit.cpp: removed the default + "HAVE_ARTOOLKIT"; this is checked by configure + +2006-11-12 16:05 zmoelnig + + * src/Pixes/: pix_artoolkit.cpp, pix_artoolkit.h: added shigeyuki's + [pix_artoolkit] + +2006-11-12 16:04 zmoelnig + + * src/: configure.ac, Base/configLinux.h.in: checks for artoolkit + +2006-11-08 21:30 zmoelnig + + * examples/07.texture/10.framebuffer.pd: added example file for the + use of [gemframebuffer]; note that i use [pix_texture] instead of + [pix_multitexture] + +2006-11-08 20:24 zmoelnig + + * examples/07.texture/09.sharedTextures.pd: removed the + [pix_coordinate] stuff, since it is now unneccessary (i thought i + removed this already...) + +2006-11-06 18:39 zmoelnig + + * src/Pixes/filmFFMPEG.cpp: fail to load movie when fps get's + weird... (LATER fix the ffmpeg code) + +2006-11-06 17:48 zmoelnig + + * src/Pixes/: film.cpp, film.h, pix_filmNEW.cpp: made film::m_auto + protected; from outside it can now only be set via setAuto(); + this should make it easier to make optimized decoding paths for + sequential reading (e.g. non-random-access) + +2006-11-06 17:40 zmoelnig + + * src/Pixes/filmFFMPEG.cpp: better handling of decoding errors... + +2006-11-03 17:50 zmoelnig + + * src/Pixes/pix_videoDarwin.cpp: fixed calls to post() + +2006-11-03 09:37 zmoelnig + + * src/Pixes/pix_freeframe.cpp: fixed calls to ::error() and + ::post() + +2006-11-03 09:32 zmoelnig + + * src/: Base/CPPExtern.cpp, Base/CPPExtern.h, Base/GemBase.cpp, + Base/GemGluObj.cpp, Base/GemPixDualObj.cpp, Base/GemPixUtil.cpp, + Base/GemPixUtil.h, Base/TextBase.cpp, + Controls/gemframebuffer.cpp, Controls/gemwin.cpp, + Nongeos/world_light.cpp, Particles/part_color.cpp, + Pixes/pix_background.cpp, Pixes/pix_buffer.cpp, + Pixes/pix_color.cpp, Pixes/pix_film.cpp, Pixes/pix_filmNEW.cpp, + Pixes/pix_halftone.cpp, Pixes/pix_multitexture.cpp, + Pixes/pix_rds.cpp, Pixes/pix_record.cpp, Pixes/pix_record.h, + Pixes/pix_share_write.cpp, Pixes/pix_sig2pix.cpp, + Pixes/pix_videoNEW.cpp: added post() method to CPPExtern.cpp + which automatically prepends the object's name (if available); + accordingly had to change a lot of uses uses of post() where + either the object's name was hard- or softcoded or ::post() was + used (in the callback functions) + +2006-11-03 09:26 zmoelnig + + * src/Pixes/: pix_texture.cpp, pix_texture.h: extended the + texture-sharing message to: textureID, texCoords, type, flags + +2006-11-03 09:25 zmoelnig + + * src/Pixes/: videoV4L.cpp, videoV4L2.cpp, videoV4L2.h: fixed v4l-1 + to work with my usb-2u-cam; v4l-2 starts to work too... + +2006-11-03 09:24 zmoelnig + + * src/: BUGS, README.linux, TODO.091: updated info-files + +2006-11-01 23:33 tigital + + * src/: Pixes/pix_multitexture.cpp, Pixes/pix_multitexture.h, + Base/GemShape.cpp, Base/GemState.cpp, Base/GemState.h: + [pix_multitexture] now works as expected! - new [dimen x y< + message needed so that it can determine texcoords - GemShape's + SetVertex() has been modified to loop thru glMultiTexCoord2f, + when needed - GemState has new variable: state->multiTexCoords, + which is 0 by default, but set in pix_multitexture based on the # + of texUnits requested + +2006-10-30 21:57 tigital + + * src/Base/GemPixConvertAltivec.cpp: more attempts at fixes for bad + type-ing of vec's on 10.3 + +2006-10-30 19:51 zmoelnig + + * src/configure.ac: added option to disable "-fPIC" + +2006-10-30 19:45 zmoelnig + + * src/configure.ac: make "-Os" the default on Darwin + +2006-10-30 19:37 zmoelnig + + * src/configure.ac: added more tests for compiler-flags as + suggested by tigital (-mpowerpc-gfxopt is turned OFF by default; + LATER think about the "-Os" flag on os-x) + +2006-10-30 19:24 zmoelnig + + * src/Base/GemPixConvertAltivec.cpp: reverted the type changes + (while this still breaks compilation with older gcc's, at least + it is functional) + +2006-10-30 09:47 zmoelnig + + * src/configure.ac: oops, fixed typo + +2006-10-30 09:46 zmoelnig + + * src/configure.ac: added check for "-fpascal-strings" which allows + us to use pascal-strings (containing '\p') on os-x + +2006-10-30 09:26 zmoelnig + + * src/Base/GemPixConvertAltivec.cpp: tried to fix another error + with types; NEEDS TESTING + +2006-10-26 22:04 tigital + + * src/Base/GemPixConvertAltivec.cpp: fixes for bad type comparisons + in some vec_sl()/vec_add and loop comparisons + +2006-10-26 22:00 tigital + + * src/Base/CPPExtern.h: fix for gcc4 warning "'GemException' has + virtual functions but non-virtual destructor" + +2006-10-22 21:51 zmoelnig + + * src/configure: finally removed "configure" since it really should + be generated (and therefore happens to get out of sync with + configure.ac too often) + +2006-10-20 19:48 zmoelnig + + * src/Manips/glsl_program.cpp: only call glUseProgramObjectARB() in + postrender() when we have a linked module (less crashy on systems + that don't really support shaders...) + +2006-10-20 19:40 zmoelnig + + * src/Base/TextBase.cpp: changed type of for-loop variable from + (size_t) to (singed long long), since unsigned numbers never get + negative! + +2006-10-18 15:49 zmoelnig + + * src/: Make.config.in, Makefile, configure.ac: store the + CONFIGUREFLAGS in Make.config, so that automatic calls to + "configure" produce the same results; additionally this should + make it possible to just call: + 'CONFIGUREFLAGS="--with-pd=/bi/ba/bo" make" in a distclean + environment and it will build everything; LATER remove + configure/aclocal.m4 + +2006-10-18 13:06 zmoelnig + + * src/Pixes/videoV4L.cpp: setNorm() now has an effect even if + capturing is currently not running; LATER think about making the + "mode " message work again (it seems like this is + some threading problem) + +2006-10-18 13:05 zmoelnig + + * src/Pixes/pix_videoNEW.cpp: fixed if/else at the "mode" message + +2006-10-18 12:53 zmoelnig + + * src/Pixes/videoV4L2.cpp: hmm... + +2006-10-18 12:52 zmoelnig + + * src/Base/GemWinCreateXWin.cpp: made it a tiny bit more readable; + added accumbuffer-bits to window-creation + +2006-10-18 12:50 zmoelnig + + * examples/07.texture/09.sharedTextures.pd: example for + texture-sharing + +2006-10-18 12:46 zmoelnig + + * examples/08.io/04.UseOrb.pd: dont use markEx-objects anymore; + LATER remove this example altogether + +2006-10-18 12:44 zmoelnig + + * examples/06.particle/: 04.combo.pd, 05.twoSrc.pd, 08.info.pd: + dont use markEx-objects anymore + +2006-10-18 12:43 zmoelnig + + * examples/05.text/: 01.Text.pd, 01.TextNoLoadBang.pd, + 03.ChangeText.pd, 03.ChangeTextNoLoadBang.pd, arial.ttf, + vera.ttf: updated to use vera.ttf instead of arial.ttf and to not + use markEx-objects anymore + +2006-10-18 12:40 zmoelnig + + * examples/04.pix/: 05.movie.pd, 18.Curves.pd: dont use + markEx-objects anymore + +2006-10-18 12:39 zmoelnig + + * examples/02.advanced/: 03.View_OSD.pd, 08.Snapshot2.pd: updated + to use vera.ttf instead of arial.ttf and to not use + markEx-objects anymore + +2006-10-06 16:53 cclepper + + * src/Pixes/pix_filmDarwin.cpp: updated RGBA pixel packings for Mac + Intel + +2006-10-06 16:50 cclepper + + * src/Base/GemPixImageLoad.cpp: update for proper Mac Intel pixel + packing + +2006-10-04 13:38 zmoelnig + + * src/Pixes/pix_fiducialtrack.cpp: proper initialization + (memset(0)) for fidtrackerx (used to crash on my x64_64) + +2006-10-03 17:13 zmoelnig + + * src/configure.ac: hopefully fixed the check whether + OpenGL-framework is used + +2006-10-03 17:08 zmoelnig + + * src/configure.ac: disable checks for libGL and libGLU if we use + the OpenGL-framework + +2006-10-03 13:51 zmoelnig + + * src/configure.ac: disable checks for lqt and libquicktime if + QuickTime-framework is being used + +2006-09-27 14:55 zmoelnig + + * tests/all/objects.txt: deleted obsoleted objects from this list + +2006-09-27 14:53 zmoelnig + + * tests/all/existence.sh: make pd-binary settable via the PD + variable + +2006-09-27 12:11 zmoelnig + + * src/: configure, configure.ac: removed the test for + AC_PROG_GCC_TRADITIONAL since we use c++ instead of cc + +2006-09-27 11:53 zmoelnig + + * src/: configure, configure.ac: hopefully fixed the FFMPEG-thing + (the AVCodecContext-check was broken since i changed the language + from "C" to "C++") + +2006-09-27 11:04 zmoelnig + + * src/: configure, configure.ac: added some magic for FTGL and + ffmpeg + +2006-09-26 11:56 zmoelnig + + * src/Base/GemGL.h: use our own glew.h (if so) + +2006-09-26 11:55 zmoelnig + + * src/Manips/vertex_program.cpp: glProgramEnvParameter4fvARB() can + only be used if GL_ARB_vertex_program is defined + (GL_NV_vertex_program doesn't matter) + +2006-09-26 11:27 zmoelnig + + * src/configure.ac: removed check for "-no-builtin" gcc-flags, + since this prevents us from building with older gcc-version + +2006-09-25 15:28 zmoelnig + + * src/: README.glew, importGLEW.sh, Base/glew.cpp, Base/glew.h, + Base/glxew.h, Base/wglew.h: regenerated glew from 1.3.4 sources; + fixed importGLEW.sh so that it automatically adds the "#ifdef + USE_GLEW" clauses around the code + +2006-09-21 21:36 zmoelnig + + * src/: configure, configure.ac: added checks for the + not-deprecated linking flags on OSX; disabled altivec on x86_64 + machines + +2006-09-21 16:38 zmoelnig + + * src/Pixes/pix_deinterlace.cpp: added newline at end of file + +2006-09-21 16:32 zmoelnig + + * src/Pixes/: pix_multitexture.cpp, pix_multitexture.h: add generic + inlets for each textureunit + +2006-09-21 16:31 zmoelnig + + * src/Base/: CPPExtern.cpp, CPPExtern.h: added PDerror() which + calls pd_error() without having to worry about the object + ("ourselves") + +2006-09-20 17:57 zmoelnig + + * src/: Make.config.in, acinclude.m4, configure, configure.ac: + disabled Vertex by default (since it is very experimental) + disabled SSE2 by default (since most processors do not yet + support it) + +2006-09-20 17:56 cclepper + + * src/Controls/gemframebuffer.cpp: added glfrustum call with GEM + default setting. Uncommented some of the matirx calls which get + closer to correct rendering. + +2006-09-20 17:51 zmoelnig + + * src/Base/GemGL.h: indentation of preprocessor-directives, so i + can read them + +2006-09-20 09:55 zmoelnig + + * src/Vertex/vertex_model.cpp: removed the legacy + HaveValidContext() function call (since it does no longer exist) + +2006-09-19 22:48 cclepper + + * src/Controls/gemframebuffer.cpp: init m_FBOcolor not m_color + +2006-09-19 22:42 cclepper + + * src/Controls/: gemframebuffer.h, gemframebuffer.cpp: added a + color message to set the background color. + +2006-09-18 13:09 zmoelnig + + * src/Manips/glsl_vertex.cpp: another check for illegal filenames + +2006-09-18 12:39 zmoelnig + + * help/: alternate.pd, average.pd, counter.pd, hsv2rgb.pd, + invert.pd, oneshot.pd, randomF.pd, rgb2hsv.pd, tripleLine.pd, + tripleRand.pd, v+.pd, v-.pd, vector+.pd, vector-.pd: removed + MarkEx from Gem + +2006-09-18 12:39 zmoelnig + + * help/: pix_kaleidoscope.pd, pix_multiblob.pd: removed dependency + on [v+] and friends (which are no longer part of Gem) + +2006-09-17 17:41 zmoelnig + + * src/Pixes/recordQT.h: put "float seconds;" in the + platform-independent section, since it is used by both __APPLE__ + and __WIN32__ + +2006-09-15 20:15 tigital + + * src/Pixes/pix_image.cpp: [OSX] small fix for close() definition + +2006-09-14 11:44 zmoelnig + + * src/Vertex/vertex_draw.cpp: hopefully made this work with older + openGL-headers + +2006-09-14 11:20 zmoelnig + + * src/Base/: GemMan.cpp, GemVersion.h: put the authors into + GemVersion.h and removed the OS-information (since this is + blurry) + +2006-09-14 11:00 zmoelnig + + * tests/all/existence.bat: w32 batch file for testing; LATER make + this via make + +2006-09-13 00:38 cclepper + + * src/Pixes/: recordQT.cpp, recordQT.h: updated to include timers + and matrix flipping on windows + +2006-09-12 21:58 cclepper + + * src/Pixes/pix_recordQT.h: adds a timer for the movie framerate on + windows. also flips the image around when a directshow source is + used. + +2006-09-12 21:54 cclepper + + * src/Pixes/pix_recordQT.cpp: adds a timer for the movie framerate + on windows. also flips the image around when a directshow source + is used. + +2006-09-12 21:44 cclepper + + * src/Base/GemGL.h: added header for GLEW + +2006-09-12 21:42 cclepper + + * src/Base/: GemMan.cpp, GemMan.h: Quicktime init on first launch + for Windows. This could possibly go in GemWinCreateNT, but it + works fine here. + +2006-09-12 21:40 cclepper + + * src/Base/GemWinCreateNT.cpp: GLEW init code for Windows + +2006-09-12 21:37 cclepper + + * src/Base/GemSIMD.cpp: added a working SIMD feature check for + Windows. + +2006-09-11 23:56 cclepper + + * src/Pixes/pix_filmNEW.cpp: m_auto is passed to the handle. + useful for DirectShow and Quicktime which are more efficient + handling auto play than just incrementing a frame counter. + +2006-09-11 23:55 cclepper + + * src/Pixes/film.h: moved m_auto to public member variable + +2006-09-11 23:53 cclepper + + * src/Pixes/filmDS.cpp: added right inlet frame handling and auto + now sets rate + +2006-09-07 23:28 cclepper + + * src/Geos/rectangle.cpp: fixed error in SetVertex that made + everything square + +2006-09-05 17:27 tigital + + * src/Pixes/pix_texture.cpp: added more informative output when + changing mode + +2006-09-03 18:50 zmoelnig + + * src/Base/CPPExtern.h: removed inheritance of GemException from + std::exception to not set up M$VC; hope this works + +2006-09-02 20:37 zmoelnig + + * src/Pixes/: pix_image.cpp, pix_movieDS.cpp: use "-path" for + searching images + +2006-09-02 20:37 zmoelnig + + * src/Makefile: added installabs target for installing + abstractions; install Gem.${EXT} into pd/extra/Gem/ + +2006-08-31 21:45 cclepper + + * src/Pixes/: pix_deinterlace.cpp, pix_deinterlace.h: added a + message apative to set the threshold for deinterlacing. also + attempted to make the deinterlacing a little nicer looking for + RGBA. + +2006-08-31 21:36 cclepper + + * src/Geos/rectangle.cpp: changed drawing to use SetVertex() which + allows for texturing from texture units other than 0 + +2006-08-31 20:47 cclepper + + * src/Pixes/: pix_texture.cpp, pix_texture.h: added texunit message + and handling of multiple texture units + +2006-08-29 17:34 zmoelnig + + * src/Base/GemVersion.h: added "cvs" to the version string + +2006-08-29 16:46 zmoelnig + + * src/Makefile: removed the tailing slash from BUILDDIR (avoid + double-slashes in paths) + +2006-08-29 09:35 zmoelnig + + * src/Pixes/: filmDS.cpp, filmDS.h: fixed compilation issue on + systems without HAVE_DIRECTSHOW + +2006-08-24 23:20 cclepper + + * src/Pixes/pix_filmNEW.cpp: added HAVE_DIRECTSHOW define to select + filmDS or filmAVI + +2006-08-24 23:15 cclepper + + * src/Pixes/: filmDS.h, filmDS.cpp: changed defines to add + HAVE_DIRECTSHOW + +2006-08-24 22:54 cclepper + + * src/Pixes/: filmDS.cpp, filmDS.h: DirectShow class for pix_film + on Windows. + +2006-08-22 14:05 zmoelnig + + * abstractions/pix_blobtracker-help.pd: replaced [v+] and friends + with pd-objects + +2006-08-22 14:03 zmoelnig + + * abstractions/: gemorb.pd, gemtablet.pd: dummy objects that print + an error when being instantiated, telling the user that the real + objects ceased to exist + +2006-08-22 13:52 zmoelnig + + * examples/09.openGL/03.stencilBuffer.pd: cyrille's stencil buffer + patch + +2006-08-22 09:52 zmoelnig + + * src/Controls/gemframebuffer.cpp: newline at end of file (after + all, C++ MUST have a newline at the EOF) + +2006-08-22 09:40 zmoelnig + + * src/Pixes/: pix_movieDS.cpp, pix_movieDS.h, pix_videoDS.cpp, + pix_videoDS.h: put the DirectShow code into #ifdef's to prevent + it from bulding on other platforms; dos2unix + +2006-08-21 23:21 cclepper + + * src/Pixes/: pix_videoDS.cpp, pix_videoDS.h: Changed callback to + GetCurrentBuffer. Added method to record video to disk in native + format (useful for DV capture). + +2006-08-21 23:16 cclepper + + * src/Pixes/: pix_movieDS.cpp, pix_movieDS.h: Object for loading + DirectShow files on Windows + +2006-08-21 20:48 cclepper + + * src/openGL/: GEMglClearDepth.cpp, GEMglClearDepth.h: fixed cast + to GLclampd for depth flag + +2006-08-17 13:08 zmoelnig + + * src/Pixes/pix_movieNEW.cpp: remove the 2nd inlet inherited from + [pix_texture] since this object always has its own texture + +2006-08-17 13:07 zmoelnig + + * src/Pixes/: pix_texture.cpp, pix_texture.h: added a second inlet + for setting a "remote" texture, which is used optionally if no + image is present + +2006-08-17 11:13 zmoelnig + + * src/Pixes/pix_snap2tex.cpp: deleted commented out leftovers; use + window-dimensions when given dimensions <=0 (instead of <0) + +2006-08-17 10:22 zmoelnig + + * examples/07.texture/08.MotionBlur.pd: an example on how to use + full-screen motion-bluring with feedback-textures + +2006-08-16 14:40 zmoelnig + + * src/TODO.091: autoconf working on OSX + +2006-08-16 14:39 zmoelnig + + * src/Controls/: orb.h, orbserial.cpp, orbserial.h, gemorb.cpp, + gemorb.h, gemtablet.cpp, gemtablet.h, orb.cpp: deleted [gemorb] + and [gemtablet] + +2006-08-16 14:31 zmoelnig + + * src/: configure, configure.ac: removed MarkEx from Gem; added + Vertex-branch to configure + +2006-08-16 14:27 zmoelnig + + * src/MarkEx/: MarkExSetup.cpp, README.txt, abs.cpp, average.cpp, + counter.cpp, hsvrgb.cpp, m_control.cpp, multiselect.cpp, + randomF.cpp, reson.cpp, strcat.cpp, tripleLine.cpp, vector.cpp: + removed MarkEx from Gem + +2006-08-16 12:03 zmoelnig + + * src/Base/: CPPExtern.cpp, CPPExtern.h: better(?) declarations of + exceptions... + +2006-08-14 17:32 zmoelnig + + * src/Pixes/pix_fiducialtrack.cpp: removed debugging printout + +2006-08-14 17:31 zmoelnig + + * src/Pixes/pix_fiducialtrack.cpp: initialization of treeidmap + +2006-08-14 17:07 zmoelnig + + * tests/all/objects.txt: more arguments to objects that need it + +2006-08-14 16:58 zmoelnig + + * tests/all/: existence.pd, objects.txt: allow arguments to objects + +2006-08-14 16:37 zmoelnig + + * src/openGL/: GEMglProgramStringARB.cpp, GEMglProgramStringARB.h: + changed this object to A_GIMME, since default args do not like + symbols to come after floats... LATER: this object should refuse + from being created, if the arguments do not match what we expect + LATER: there are other objects who also suffer from this... + +2006-08-09 19:15 zmoelnig + + * src/: configure, configure.ac: rearranged a bit, so that it is + possible to find the "--with-pd" flag in the help... + +2006-08-09 19:08 zmoelnig + + * src/: configure, configure.ac: this might work on os-x! changed + the behaviour of "--with-pd" so that it's argument should direct + to the base-path of pd, where we can find both headers + (/src) and libraries (/bin) + +2006-08-09 18:44 zmoelnig + + * src/Pixes/recordQT.cpp: use "0" instead of NULL for setting + characters + +2006-08-09 18:40 zmoelnig + + * src/Pixes/filmQT4L.cpp: protect the inclusion of + with HAVE_QUICKTIME4LINUX + +2006-07-27 18:00 zmoelnig + + * src/Base/TextBase.cpp: use "vera.ttf" as default font (whoa, this + could break things!) + +2006-07-27 17:59 zmoelnig + + * src/Controls/gemhead.cpp: use GemState->reset() instead of + resetting things manually + +2006-07-27 17:58 zmoelnig + + * src/Base/: GemState.cpp, GemState.h: removed the "stereo" + membervariable: this is handled by "tickTime"; added a "reset()" + method (to be used in [gemhead] instead of resetting things + manually) + +2006-07-27 17:56 zmoelnig + + * src/Base/GemMan.cpp: replaced setting GemState->stereo by setting + GemState->tickTime; + +2006-07-27 14:12 zmoelnig + + * src/Pixes/pix_freeframe.cpp: removed an unconditional exception + thrown in the constructor + +2006-07-25 18:37 zmoelnig + + * src/Particles/: part_color.cpp, part_damp.cpp, part_draw.cpp, + part_follow.cpp, part_gravity.cpp, part_info.cpp, + part_killold.cpp, part_killslow.cpp, part_orbitpoint.cpp, + part_render.cpp, part_sink.cpp, part_size.cpp, part_source.cpp, + part_targetcolor.cpp, part_targetsize.cpp, part_velcone.cpp, + part_velocity.cpp, part_velsphere.cpp, part_vertex.cpp: use + "state->tickTime" instead of "state->stereo" for (not) updating + movements + +2006-07-25 16:47 zmoelnig + + * examples/09.openGL/02.displayList.pd: made the warning go away. a + bit more text... + +2006-07-20 20:45 tigital + + * src/Controls/gemframebuffer.cpp: removed + "GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT" from fbo + status checking because it has been removed from the spec + +2006-07-20 19:09 tigital + + * help/ortho.pd: add info about compat message + +2006-07-12 06:47 tigital + + * src/Controls/: gemframebuffer.cpp, gemframebuffer.h: replaced + "colorspace" with separate "type" and "format" messages (also can + affect creation args): default type=GL_UNSIGNED_BYTE and + format=GL_RGB; more informative (and more gem-like) error + reporting; better setup of fbo's; switchable textureType + (default=GL_TEXTURE_2D); better cleanup + +2006-07-12 06:26 tigital + + * src/Base/GemPixUtil.cpp: [osx] "type = ..._REV" or not: + compile-time check for __BIG_ENDIAN__, to help support intel-macs + +2006-07-12 06:22 tigital + + * src/Base/GemSIMD.cpp: [osx] start of code to detect altivec at + runtime + +2006-07-12 06:21 tigital + + * src/Base/GemWinCreateMac.cpp: [osx] possibility of using generic + float (software) renderer: should come up with a way to switch + between renderer's at runtime + +2006-07-12 06:19 tigital + + * src/Pixes/pix_freeframe.cpp: [osx] check for resource's existence + before releasing them + +2006-07-12 06:17 tigital + + * src/Pixes/pix_multitexture.cpp: added glTexParameteri()'s; + removed auto texcoord generation (for now...); better support for + older GL's; seems to work (atm) with geo's + +2006-07-12 06:04 tigital + + * src/Vertex/: vertex_tabread.cpp, vertex_tabread.h: starting to + merge in vertex_array stuff (finally) - accepts tables in this + order atm: vertex, color, normal, texcoord + +2006-07-12 06:00 tigital + + * src/: Vertex/vertex_draw.cpp, Vertex/vertex_draw.h, + Base/GemVertex.cpp, Base/GemVertex.h: starting to merge in + vertex_array stuff (finally) + +2006-07-12 04:58 tigital + + * src/: Controls/gemhead.cpp, Base/GemCache.cpp, Base/GemCache.h, + Base/GemState.cpp, Base/GemState.h: starting to merge in + vertex_array stuff (finally) + +2006-07-04 16:48 zmoelnig + + * src/Pixes/: filmAVIPLAY.cpp, filmQT4L.cpp: use setCSizeByFormat() + +2006-07-04 16:47 zmoelnig + + * src/Pixes/pix_filmNEW.cpp: use a define for the debug-printout at + decoder-instantiation: makes code much more readable + +2006-07-04 16:46 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: the convert(To|From) + routines now also work without an explicit colorspace; if none is + given, the already set cs of the destination is taken; if this is + unset, the default cs is used + +2006-07-03 11:06 zmoelnig + + * src/Pixes/: pix_fiducialtrack.cpp, pix_freeframe.cpp, + recordQT.cpp, videoV4L.cpp: replaced sprintf() by snprintf(); + replaced printf() by post()/error() + +2006-07-03 10:45 zmoelnig + + * src/Pixes/filmAVIPLAY.cpp: lowered the threshold of insecurity by + replacing usleep() with select() + +2006-07-03 10:44 zmoelnig + + * src/Pixes/videoDV4L.cpp: lowered the threshold of insecurity with + snprintf(), select(),... + +2006-06-26 04:28 tigital + + * GEM_darwin.xcodeproj/project.pbxproj: xcode 2.3 project file, + makes dynamiclib + +2006-06-20 11:03 zmoelnig + + * src/: configure, configure.ac: forgot to remove the debugging + "read"s... + +2006-06-14 12:20 zmoelnig + + * src/configure: generated from configure.ac + +2006-06-14 12:20 zmoelnig + + * src/configure.ac: the SIMD-tests are only done if required + explicitely by the user (e.g. --enable-mmx) or the compiling + hardware seems to support it (naive test: if ARCH="i686" we want + "sse2" and "mmx" but not "altivec" and the like); LATER make + better tests (query processor capabilities) + +2006-06-14 12:17 zmoelnig + + * src/aclocal.m4: generated from acinclude.m4 (with automake-1.9) + +2006-06-14 12:16 zmoelnig + + * src/acinclude.m4: the GEM_ARG_WITH macro family now doesn't + explicitely set the default value, unless a 3rd argument is given + and a non-empty string (like "force") + +2006-06-14 11:25 zmoelnig + + * src/Pixes/: pix_filmDarwinYUV.cpp, pix_filmDarwinYUV.h, + pix_filmYUV.cpp, pix_filmYUV.h, pix_movieYUV.cpp, pix_movieYUV.h: + why...these files should have been deleted a long time ago... + +2006-06-14 11:02 zmoelnig + + * examples/data/: COPYING.txt, arial.ttf, cour.ttf, times.ttf, + vera.ttf: removed non-free fonts and added one free replacement; + added a COPYING.txt which discusses licensing. LATER think about + changing the default font to "vera.ttf" + +2006-06-14 10:56 zmoelnig + + * src/: configure, configure.ac: oops, forgot to check in the + changes for fain-grained control over SIMD-optimization + +2006-06-14 00:45 cclepper + + * src/Base/GemMan.cpp: commented out the fps post() on the Mac + since that goes out the outlet + +2006-06-14 00:41 cclepper + + * src/Pixes/pix_recordQT.cpp: used #if 0 to remove the object from + the build process. need to use some proper defines until the new + version works as well as the old + +2006-06-14 00:31 cclepper + + * src/Pixes/recordQT.cpp: should work for Mac/Win now + +2006-06-14 00:30 cclepper + + * src/Pixes/recordQT.h: moved m_recordStart and m_recordStop to the + base class. commented out the not implemented getCodecName and + getCodecDescription + +2006-06-14 00:28 cclepper + + * src/Pixes/record.h: moved m_recordStart and m_recordStop to the + base class + +2006-06-14 00:25 cclepper + + * src/Pixes/pix_record.cpp: Used one #ifdef to keep from crashing + on Mac/Win. m_automatic is now true by default. + +2006-06-13 23:31 cclepper + + * src/Pixes/pix_filmDarwinYUV.cpp: Added a very clever #if 0 to + remove this file from compilation. + +2006-06-13 23:29 cclepper + + * src/Pixes/pix_movieDarwin.h: updated header file for volume + function + +2006-06-13 23:26 cclepper + + * src/Pixes/: pix_movieYUV.cpp, pix_filmYUV.cpp: Added a very + clever #if 0 to remove this file from compilation. + +2006-06-09 21:07 cclepper + + * src/Base/GemMan.cpp: changed maxStackDepth declarations to match. + both are GLint + +2006-06-09 21:05 cclepper + + * src/Pixes/pix_videoDarwin.h: updated header file for quality + function + +2006-06-09 21:04 cclepper + + * src/Pixes/pix_filmDarwin.h: updated header file for volume + function + +2006-06-09 15:06 zmoelnig + + * src/Base/GemPixUtil.cpp: cleaned up setCSizeByFormat() to only + one big (#ifdef __APPLE__ #else) instead of 6 of them: should be + more readable + +2006-06-08 17:36 zmoelnig + + * src/Pixes/pix_share_write.cpp: clean up shared memory needed when + the segment already exists but is smaller than what we requested + +2006-06-08 13:55 zmoelnig + + * src/Pixes/pix_share_read.cpp: removed freeShm() from the + destructor since the parent's destructor already handles this: + the joys of inheritance + +2006-06-01 15:58 zmoelnig + + * src/Pixes/: videoV4L2.cpp, videoV4L2.h: prefixed V4L2-specific + defines with V42L_; added loads of debugging stuff but still + couldn't make it work... + +2006-06-01 15:55 zmoelnig + + * src/Pixes/: videoV4L.cpp, videoV4L.h: prefixed V4L-specific + defines with V4L_; better checks on stopTransfer() + +2006-06-01 15:52 zmoelnig + + * src/Pixes/FreeFrame.h: added some more tests for defines when we + are on w32 + +2006-05-31 16:05 zmoelnig + + * src/Base/GemMan.cpp: reschedule a rendering-cycle when changing + the framerate from 0.0 to something valid (normally the framerate + change only takes effect at the next render-cycle; with + framerate==0.0 this can take a long time) + +2006-05-31 16:05 zmoelnig + + * src/Controls/gemwin.cpp: cancel pending destroy-requests on + "create" + +2006-05-31 15:54 zmoelnig + + * src/Controls/gemwin.cpp: reschedule a rendering-cycle when + changing the framerate from 0.0 to something valid (normally the + framerate change only takes effect at the next render-cycle; with + framerate==0.0 this can take a long time) + +2006-05-24 19:18 cclepper + + * src/Pixes/: pix_movieDarwin.cpp, pix_videoDarwin.cpp: added + defines for Intel. + +2006-05-24 19:17 cclepper + + * src/Pixes/pix_filmDarwin.cpp: added defines for Intel. fixed + stupid looping bug. + +2006-05-16 14:00 zmoelnig + + * src/Base/TextBase.cpp: changed the return type of string.find() + from (size_t) to (unsigned long) in order to make a valid test + for (pos<0): this prevents hanging... + +2006-05-07 12:04 zmoelnig + + * src/Base/TextBase.cpp: use (size_t) where appropriate + +2006-05-07 12:03 zmoelnig + + * src/Pixes/pix_share_write.h: made m_size of type (size_t) instead + of just (int) + +2006-05-07 12:03 zmoelnig + + * src/Pixes/recordQT.cpp: include + +2006-05-07 12:00 zmoelnig + + * src/Pixes/libfidtrack_fidtrackX.cpp: explicit casts to (float) to + shut up warnings + +2006-05-07 11:58 zmoelnig + + * src/Manips/vertex_program.h: made m_size of type (size_t) instead + of just (int) + +2006-05-04 21:04 zmoelnig + + * src/Geos/sphere3d.cpp: respect m_size (via glScale() and + glPush/glPop) + +2006-05-04 20:54 zmoelnig + + * src/Controls/gemwin.cpp: use GemMan::destroyWindowSoon() for + window destruction: this allows to directly connect [gemmouse] to + [destroy( without crashing (previously a [del 0] was needed to + decouple the window-event-grabbing from the window-destruction) + +2006-05-04 20:52 zmoelnig + + * src/Base/: GemMan.cpp, GemMan.h: added a destroyWindowSoon() + function that issues a delayed windows destruction (destruction + is done at the beginning of the next render cycle which is + rescheduled to be within 0.0 ms); this is useful when the + destruction is initiated via window-events which would otherwise + crash pd + +2006-05-04 19:53 zmoelnig + + * src/Base/: GemGluObj.cpp, GemGluObj.h: the slice-input now also + accepts a pair of numbers for different numSlices and numStacks; + currently only used by [sphere3d] + +2006-05-04 19:43 zmoelnig + + * src/Geos/: sphere3d.cpp, sphere3d.h: added a spherical object for + deformation (similar to [curve3d], but only control-points for + now + +2006-05-03 15:34 zmoelnig + + * src/Geos/sphere.cpp: fixed memory-leak + +2006-05-03 06:24 tigital + + * src/Manips/: glsl_program.cpp, glsl_program.h: now we correctly + get the location of uniform variables: how it worked before, I + have no idea... + +2006-04-28 16:34 zmoelnig + + * src/Base/sgiimage.cpp: use memset() instead of bzero(); use + __WIN32__ instead of WIN32; include config.h for this to work + +2006-04-28 16:33 zmoelnig + + * src/Base/GemMath.h: inlcude config.h for __WIN32__ + +2006-04-28 16:18 zmoelnig + + * src/Manips/glsl_vertex.cpp: include instead of + on w32 + +2006-04-28 16:16 zmoelnig + + * src/Controls/gemwin.h: just include CPPExtern.h: this will + include m_pd.h, so we don't need to do it here + +2006-04-28 16:13 zmoelnig + + * src/Base/CPPExtern.h: include GemExportDef before m_pd.h: this + way we only have to pragma-disable the vc-warnings once: less + code cluttering! + +2006-04-28 16:12 zmoelnig + + * src/Base/GemExportDef.h: use _MSC_VER instead of __WIN32__ for + w32-specific things (the used pragmas are vc-only; i am not that + sure about the declspec()-things) + +2006-04-28 15:57 zmoelnig + + * src/Base/GemPBuffer.cpp: moved all includes to top of the file; + use GemGL.h to include the gl-headers + +2006-04-28 15:51 zmoelnig + + * src/Base/GemGL.h: added wglext.h for w32; shouldn't the + agl-headers be included here too? + +2006-04-28 15:35 zmoelnig + + * src/Base/config.h: automatically define __WIN32__ if _MSC_VER is + defined + +2006-04-28 15:33 zmoelnig + + * src/Base/GemGLUtil.cpp: removed test for GL_WIN32_MEAN_AND_LEAN + (there is no such thing) + +2006-04-28 15:32 zmoelnig + + * src/Base/: GemMan.cpp, GemWinCreate.h: use "#ifdef __WIN32__" + instead of "#if __WIN32__" + +2006-04-28 15:30 zmoelnig + + * src/Pixes/pix_vpaint.cpp: protected the use of defines via + #ifdef; better bracketing; + +2006-04-28 15:29 zmoelnig + + * src/Pixes/pix_share_write.cpp: don't use freeShm() on __WIN32__ + +2006-04-28 15:29 zmoelnig + + * src/Pixes/pix_texture.cpp: protected the use of defines via + #ifdef + +2006-04-28 15:27 zmoelnig + + * src/Pixes/pix_recordQT.cpp: use HAVE_QUICKTIME (and added a not + about where it should be defined properly) + +2006-04-28 15:26 zmoelnig + + * src/Pixes/: pix_colorreduce.cpp, pix_kaleidoscope.cpp, + pix_sig2pix.cpp: use double for sqrt() + +2006-04-28 15:24 zmoelnig + + * src/Manips/: glsl_vertex.cpp, vertex_program.cpp: on w32 include + instead of + +2006-04-28 15:22 zmoelnig + + * src/Geos/pqtorusknots.cpp: check if GL_TEXTURE0_ARB is defined + before using it + +2006-04-27 14:35 zmoelnig + + * src/Pixes/videoV4L2.cpp: it has been a long time since i compiled + that...fixed some minor typos... + +2006-04-27 14:07 zmoelnig + + * src/: configure, configure.ac, Base/configLinux.h.in: added + checks for video4linux-2; this is disabled by default (enable it + with "--with-v4l2") + +2006-04-27 13:21 zmoelnig + + * src/TODO.091: added the bug reported by cyrille regarding + pix_video and philips webcams + +2006-04-26 17:37 zmoelnig + + * src/TODO.091: fixed the [vertex_program]-bug; opened the + freeframe-64bit issue + +2006-04-26 17:34 zmoelnig + + * src/Manips/vertex_program.cpp: made "param" an alias for + "parameter", since this is the keyword most objects use... + +2006-04-26 17:33 zmoelnig + + * src/Manips/: fragment_program.cpp, fragment_program.h, + vertex_program.cpp, vertex_program.h: fixed a bug where m_envNum + was not properly initialized when [vertex_program] was called + with an argument; moved "parameter" to vertex_program.cpp, so + both objects can set the parameter; LATER think about multiple + parameters... + +2006-04-26 14:22 zmoelnig + + * src/Pixes/pix_dot.cpp: proper initialization prevents crashes in + destructor... + +2006-04-26 11:35 zmoelnig + + * src/openGL/: GEMglDeleteTextures.cpp, GEMglGenProgramsARB.cpp, + GEMglProgramStringARB.cpp, GEMglTexSubImage2D.cpp: did some + proper initializing of pointers to prevent crashes (why has + nobody thought about that in the generation process!??) + +2006-04-26 10:30 zmoelnig + + * tests/all/: existence.pd, existence.sh: trigger the quitting from + outside (that is: the script) + +2006-04-26 10:20 zmoelnig + + * tests/all/: existence.pd, existence.sh, objects.txt: a simple + test that tests for all Gem objects (as listed in objects.txt); + no tests are performed on vertex/-objects and on markEx/-objects + +2006-04-26 09:47 zmoelnig + + * src/: BUGS, TODO, TODO.091: fixed the [separator] bug; found + other ways to trigger the [vertex_program] bug + +2006-04-26 09:41 zmoelnig + + * src/Manips/separator.cpp: before pushing to the stacks, check + whether the stacks are already full; this leads to less errors + when chaining more than 1 [separator] + +2006-04-26 09:40 zmoelnig + + * src/Base/: GemState.cpp, GemState.h: added a variable for the + current depth of the matrix-stacks + +2006-04-26 09:39 zmoelnig + + * src/Base/: GemMan.cpp, GemMan.h: query the number of supported + stacks for the various matrix-modes (important for [separator]; + text whether GL_NV_multisample_texture_hint is supported before + setting the hint; + +2006-04-25 19:18 zmoelnig + + * abstractions/: rgb2yuv.pd, yuv2rgb.pd: normalized input and + output values; still no clamping + +2006-04-25 18:58 zmoelnig + + * abstractions/: rgb2yuv-help.pd, rgb2yuv.pd, yuv2rgb-help.pd, + yuv2rgb.pd: yuv2rgb and vice versa conversion abstractions + +2006-04-24 21:16 zmoelnig + + * src/Base/GemPixUtil.cpp: use "size_t" for alignment-magic, since + sizeof(int)!=sizeof(unsigned char*) on x86_64; btw, this should + be used in pd's m_simd.h and in the freeframe specs too... + +2006-04-11 11:33 zmoelnig + + * src/Base/GemMan.cpp: moved the window-destruction in render() + before the m_windowState check: this fixes issues with lights + when destroying the windows from "outside" + +2006-04-07 17:12 tigital + + * src/TODO.091: [osx] uyvy/bgra/yv12 conversions altivec'd (DONE) + +2006-04-07 05:49 tigital + + * src/Base/: GemPixConvertAltivec.cpp, GemPixUtil.cpp, + GemPixUtil.h: yuv422_to_bgra_altivec() now works; fixed some + typos; re-corrected #include's + +2006-04-05 13:29 zmoelnig + + * configure: removed this pseudo-configure script since it is + totally outdated; the (pseudo) Makefile in here should call + configure in src/ if needed + +2006-04-05 13:27 zmoelnig + + * src/Base/GemMan.cpp: removed the call to glClearColor() in the + reset()-routine since it might crash pd/Gem when no valid context + is available (LATER: think what will happen when someone clicks + on "reset" while rendering) + +2006-03-28 11:40 zmoelnig + + * src/Pixes/recordQT4L.h: reverted the include-change by jamie. + this should really be handled by configure and NOT in here since + we don't know whether the quicktime-headers are in lqt/ or + quicktime/ or... + +2006-03-28 05:20 tigital + + * src/Pixes/: pix_chroma_key.h, recordQT4L.cpp, recordQT4L.h: fixed + header inclusion + +2006-03-27 18:46 tigital + + * src/Pixes/: pix_chroma_key.cpp, pix_chroma_key.h: CLAMP() is + inlined from GemFuncUtil.h + +2006-03-27 16:48 zmoelnig + + * src/Pixes/: pix_chroma_key.cpp, pix_composite.cpp, pix_mix.cpp, + pix_motionblur.cpp, pix_multiply.cpp, pix_subtract.cpp: replaced + "nil" by "null64" in MMX routines, since this makes problems with + QuickTime-framework (on macintel) + +2006-03-27 16:47 zmoelnig + + * src/Pixes/: pix_2grey.cpp, pix_2grey.h: added SSE2 processing for + YUV (but most of the time is spent in memory-fetching anyhow, so + not much of a speed gain) + +2006-03-27 09:52 zmoelnig + + * src/TODO.091: updated TODO-list: opened new bugs for [separator], + missing objects on w32, and the shader-objects + +2006-03-24 16:16 zmoelnig + + * src/Base/: GemPixObj.cpp, GemPixUtil.cpp: initialize (and modify) + m_simd via GemSIMD and select optimized algorithms at runtime. + +2006-03-24 16:12 zmoelnig + + * src/Base/GemMan.cpp: instantiate a GemSIMD class in order to + query the CPU only once. + +2006-03-24 16:10 zmoelnig + + * src/Base/: GemSIMD.cpp, GemSIMD.h: implemented a small static + class GemSIMD which is used to query the SIMD-capabilities of the + current CPUs: this should bring us away from (not) using SIMD via + preprocessors. + +2006-03-24 00:08 zmoelnig + + * src/Pixes/pix_dot.cpp: weird: compiling with SSE2 (on a system + that doesn't support it!), yields to crashes when casting + "double" to "int"; using "float" works fine, so i enforced floats + here... + +2006-03-23 23:51 zmoelnig + + * src/Pixes/pix_convolve.cpp: removed "done..." printout in + destructor + +2006-03-23 18:07 zmoelnig + + * src/: configure, configure.ac: added check for sse2 + +2006-03-23 18:05 zmoelnig + + * src/Base/: GemPixConvert.h, GemPixConvertSSE2.cpp, + GemPixUtil.cpp: added YUV->RGB24 routine (its not really faster + than YUV->RGB32) + +2006-03-23 18:03 zmoelnig + + * src/Base/GemSIMD.h: put GEM_VECTORALIGNMENT in here + +2006-03-23 15:25 zmoelnig + + * src/Base/GemPixConvertSSE2.cpp: further improved the SSE2-code: + less shuffling done (in YUV2RGBA) and cache optimization on + writing + +2006-03-23 15:07 zmoelnig + + * src/Base/GemPixUtil.cpp: use macros for the timing code: this + makes things much more readable (no more ifdef's within the + actual code to time) + +2006-03-23 00:07 tigital + + * src/Controls/gemwin.cpp: typo with no effect + +2006-03-23 00:06 tigital + + * src/Base/GemPixObj.cpp: var initializing re-ordering + +2006-03-22 23:50 tigital + + * src/Manips/glsl_program.cpp: added "#ifdef GL_ARB_shader_objects" + to linkCallback() + +2006-03-22 23:47 tigital + + * src/Base/: GemPixConvert.h, GemPixConvertAltivec.cpp: added + YUV422_to_YV12_altivec(); changed function var's to + YV12_to_YUV422_altivec() so it works in the new file; started + YUV422_to_BGRA_altivec(), but non-functioning atm + +2006-03-22 23:43 tigital + + * src/Base/GemPixObj.h: re-ordering + +2006-03-22 23:40 tigital + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: GemPixConvert.h + switcheroo + +2006-03-22 18:41 zmoelnig + + * src/Base/GemPixUtil.cpp: use the YUV2RGBA routines; on + reallocate() make sure that a pointer to the aligned memory is + returned + +2006-03-22 18:35 zmoelnig + + * src/Base/: GemPixConvert.h, GemPixConvertSSE2.cpp: initial + SSE2-optimized YUV2RGBA conversion: there is still a lot to be + done here (e.g. get a real grip on SIMD-programming!) + +2006-03-22 13:59 zmoelnig + + * src/Base/: GemPixConvert.h, GemPixConvertAltivec.cpp, + GemPixConvertSSE2.cpp, GemPixUtil.cpp, GemPixUtil.h: added + SSE2-optimized RGBA2YUV conversion; since GemPixUtil.cpp has + grownso huge, i have outsourced the optimized color conversion + routines into separate files GemPixConvertAltivec.cpp, + GemPixConvertSSE2.cpp; obviously this has only been tested on + linux and mightwork (or not) on osx + +2006-03-20 22:32 zmoelnig + + * examples/02.advanced/18.gl_shading_language.pd: did i check this + in already? + +2006-03-20 21:53 zmoelnig + + * examples/: 02.advanced/18.gl_shading_language.pd, data/Toon.frag, + data/Toon.vert: a toon-shader done with glsl + +2006-03-20 16:02 tigital + + * src/Manips/glsl_program.cpp: "#ifdef GL_ARB_shader_objects" added + to createArrays() + +2006-03-19 19:25 zmoelnig + + * src/TODO.091: i think the separator-issue is almost fixed + +2006-03-19 19:25 tigital + + * src/Geos/: rubber.cpp, rubber.h: remembered to member variables + (masses, springs), so now we have actual object autonomy + +2006-03-18 21:36 tigital + + * src/Pixes/pix_movieDarwin.h: fixed typo, now compiles + +2006-03-18 15:21 zmoelnig + + * src/Pixes/: pix_coordinate.cpp, pix_coordinate.h, pix_film.cpp, + pix_film.h, pix_filmYUV.cpp, pix_filmYUV.h, pix_movie.cpp, + pix_movie.h, pix_movieDarwin.cpp, pix_movieDarwin.h, + pix_movieYUV.cpp, pix_movieYUV.h, pix_multitexture.cpp, + pix_multitexture.h, pix_snap2tex.cpp, pix_snap2tex.h, + pix_texture.cpp, pix_texture.h: in theory these changes should + fix the memleak problem with the [separator]: while i was extra + careful, i hope that my changes will be compiling and (what's + more) be functional on other platforms! + +2006-03-16 10:34 zmoelnig + + * help/: light.pd, linear_path.pd, primTri.pd, scale.pd, + scaleXYZ.pd, separator.pd, shearYZ.pd, shearZX.pd, + spline_path.pd, spot_light.pd: updated help-patches (mostly + xchanged the [destroy( message with [create() + +2006-03-16 09:55 zmoelnig + + * src/Pixes/pix_texture.cpp: FIXED: not using client-storage on + machines that do not support it led to a "invalid enumerant" + GL-error (due to setting GL_UNPACK_CLIENT_STORAGE_APPLE via + glPixelStore to _some_ value); + +2006-03-15 20:49 tigital + + * src/TODO.091: updated based on what was committed yesterday, plus + some other things + +2006-03-15 18:09 zmoelnig + + * src/TODO.091: updated since a help-patch for [pix_record] is now + available + +2006-03-15 17:51 zmoelnig + + * src/Pixes/: pix_share.h, pix_share_read.cpp, pix_share_read.h, + pix_share_write.cpp, pix_share_write.h: new implementation that + allows switching of the attached shm-segment via a "set" message. + +2006-03-15 16:42 zmoelnig + + * src/Controls/gemframebuffer.cpp: things removed for osX needed to + be removed on linux too + +2006-03-15 11:37 zmoelnig + + * help/pix_record.pd: a help-patch + +2006-03-15 11:35 zmoelnig + + * src/Pixes/pix_record.cpp: cleaned up a bit (less verbosity; local + variables should not be called m_...; ...) + +2006-03-14 21:04 tigital + + * src/Pixes/: pix_multitexture.cpp, pix_multitexture.h: [osx]: + removed HaveValidContext() checks, because we now have a master + context created via GemMan::initGem()...also initial code (not + fully working) intended to allow auto-texcoord generation and + setTexCoords() + +2006-03-14 20:59 tigital + + * src/Controls/: gemframebuffer.cpp, gemframebuffer.h: [osx]: + removed HaveValidContext() checks, because we now have a master + context created via GemMan::initGem()...also changed to + GL_NEAREST filtering to prevent fallback to software + renderer...and initial (not fully working) code to allow + colorspace request (ie. FLOAT, RGB, RGBA) + +2006-03-14 20:53 tigital + + * src/Manips/fragment_program.cpp: [osx]: removed + HaveValidContext() checks, because we now have a master context + created via GemMan::initGem() + +2006-03-14 20:49 tigital + + * src/Manips/: glsl_fragment.cpp, glsl_program.cpp, + glsl_vertex.cpp, vertex_program.cpp: [osx]: removed + HaveValidContext() checks, because we now have a master context + created via GemMan::initGem() + +2006-03-14 20:25 tigital + + * src/Geos/: imageVert.cpp, text2d.cpp, text3d.cpp, + textoutline.cpp, model.cpp: [osx]: removed HaveValidContext() + checks, because we now have a master context created via + GemMan::initGem() + +2006-03-14 20:17 tigital + + * src/: Base/GemGL.h, Base/GemMan.cpp, Base/GemWinCreateMac.cpp, + Base/TextBase.h, Nongeos/world_light.cpp: [osx]: removed + HaveValidContext() checks, because we now have a master context + created via GemMan::initGem() + +2006-03-14 19:23 tigital + + * help/imageVert.pd: corrected path to initial image + +2006-03-14 16:35 zmoelnig + + * src/: TODO.091, Manips/glsl_vertex.cpp: glsl_vertex and + glsl_fragment now respect pd's search path; updated TODO since + some help-patches are now done + +2006-03-14 16:32 zmoelnig + + * help/: fragment_program.pd, glsl_fragment.pd, glsl_program.pd, + glsl_vertex.pd, vertex_program.pd: updated and new help-patches + for shaders + +2006-03-14 15:25 tigital + + * src/Geos/: rubber.cpp, rubber.h: [size $1< works, and it's + centered; removed CLIP_* limitations, so now it's like a normal + gem object; some cleanup + +2006-03-14 15:20 tigital + + * src/Pixes/pix_freeframe.cpp: added setModified() to parmMess: + where is this really necessary (and not)? + +2006-03-14 15:19 zmoelnig + + * src/Manips/: glsl_program.cpp, glsl_program.h: link now + optionally takes a list of module-id's: [link 3 2( is the same as + [shader 3 2, link( + +2006-03-14 15:17 zmoelnig + + * src/Manips/: fragment_program.cpp, vertex_program.cpp: repsect + pd's search path when opening shaders; fewer openGL errors; + +2006-03-14 15:17 tigital + + * src/Base/: GemPBuffer.cpp, GemPBuffer.h: cleanup: removed unused + function bindTexture() + +2006-03-14 14:20 zmoelnig + + * src/Pixes/pix_freeframe.cpp: removed printout of plugin address; + made param# larger and end the param-string with \0 + +2006-03-14 14:18 zmoelnig + + * help/: fragment_program.pd, pix_freeframe.pd, vertex_program.pd: + added help-files for ARB shaders; made the [pix_freeframe] object + theoretically functional + +2006-03-14 13:33 zmoelnig + + * src/Geos/: GemSplash.cpp, GemSplash.h: empty(!still!) class for a + splash screen; this object is aliased "Gem", so that when people + create a [Gem] object, it doesn't fail + +2006-03-14 11:40 zmoelnig + + * src/: TODO.091, Pixes/pix_share_read.cpp: mark shm-segment for + deletion when object is destroyed; [TODO]: marked pix_share_* as + done + +2006-03-14 11:38 zmoelnig + + * help/: pix_share_read.pd, pix_share_write.pd: added help patches + +2006-03-14 11:14 zmoelnig + + * src/Pixes/: pix_share_read.cpp, pix_share_read.h, + pix_share_write.cpp, pix_share_write.h: made it work on linux + (even without crashes!); now you can also specify the 4th + argument (color) as symbolic name like "RGBA" or "YUV": + +2006-03-14 09:58 zmoelnig + + * src/TODO.091: updated status + +2006-03-14 09:53 zmoelnig + + * src/TODO.091: what we still have to-do to make the gem-0.91 + release + +2006-03-13 21:27 zmoelnig + + * src/Base/: GemMan.cpp, GemMan.h, GemWinCreate.h, + GemWinCreateXWin.cpp: added a handle for Destroy-Event on linux; + whenever the window is closed (by clicking on the "x") the + gem-context will be destroyed; this needs to be done outside of + the event-loop to avoid crashes + +2006-03-13 20:38 zmoelnig + + * src/Pixes/pix_convert.cpp: convert from cs other than RGBA + +2006-03-13 18:47 zmoelnig + + * src/Base/: GemWinCreate.h, GemWinCreateXWin.cpp: registered the + WM_DELETE_WINDOW protocol in order to disable the user-closing of + the Window: LATER think about closing the window, when the user + requests it. + +2006-03-13 18:20 zmoelnig + + * src/Base/GemPixImageSave.cpp: respect the upside-down flag when + in mem2jpegImage(): however on my machine the images written seem + to be correct anyhow... + +2006-03-13 17:56 zmoelnig + + * src/Pixes/pix_record.cpp: do not instantiate recordQT4L when + HAVE_LQT_ADD_VIDEO_TRACK is not defined + +2006-03-12 21:37 zmoelnig + + * abstractions/: hsv2rgb-help.pd, rgb2hsv-help.pd: added + help-patches for the hsv2rgb (and vice versa) abstraction: these + are just copies from Gem/help/ + +2006-03-12 21:34 zmoelnig + + * abstractions/: hsv2rgb.pd, rgb2hsv.pd: new abstractions in case + we get rid of MarkEx + +2006-03-12 20:33 zmoelnig + + * help/pqtorusknots.pd: added new help-file + +2006-03-12 20:07 zmoelnig + + * help/: pix_contrast.pd, pix_convert.pd, pix_deinterlace.pd, + pix_freeframe.pd, pix_mean_color.pd: new help-files + +2006-03-06 12:23 zmoelnig + + * src/Base/: GemWinCreateXWin.cpp, GemWinCreateNT.cpp: added + stencil-buffer for glx (tested) and wgl (NOT tested) + +2006-03-04 01:52 tigital + + * src/Base/GemWinCreateMac.cpp: added stencil buffer on creation + +2006-03-03 21:42 tigital + + * help/pix_texture.pd, src/Pixes/pix_texture.cpp, + src/Pixes/pix_texture.h: added env message; cleanups in + setUpTextureState() + +2006-03-02 15:55 zmoelnig + + * src/Pixes/pix_snap.cpp: set "upsidedown" to false: while this is + the default on most systems, it is not on OSX (where quicktime + makes flipped images); however pix_snap will always make + "upright" images, so we have to make sure this is set here; this + should close #1096651 at the sf-tracker (but i haven't tested it + on OSX) additionally use setCsizeByFormat(); additionally enable + the __APPLE__'ed code for all platforms (its nothing + apple-specific in there) + +2006-02-28 18:40 zmoelnig + + * src/Manips/: glsl_program.cpp, glsl_program.h: who need m_name + and m_length ? not me... + +2006-02-28 18:39 zmoelnig + + * src/Manips/: glsl_program.cpp, glsl_program.h: whoa! finally + found the bug that made Gem crash on re-loading a shader (or + loading another one...); lots of cleanups, like using C++ "new" + instead of "malloc" and more terse output and and ... + +2006-02-27 17:00 tigital + + * src/Manips/glsl_program.cpp: free arrays in getVariables() before + getting the new m_uniformCount + +2006-02-27 16:09 zmoelnig + + * src/Geos/: pqtorusknots.cpp, pqtorusknots.h: finally found the + type that made a) the object crash and b) it look weird; only + regenerate the vertices,... when needed (e.g. something has + changed) + +2006-02-27 15:25 zmoelnig + + * src/: configure, configure.ac: added better (probably working) + tests for ARB and NV extensions + +2006-02-27 15:09 zmoelnig + + * src/: configure, configure.ac: added a better (probably working) + test for "lqt_add_video_track" + +2006-02-27 14:36 zmoelnig + + * src/Geos/rubber.cpp: added missing curly bracket + +2006-02-27 14:35 zmoelnig + + * src/Geos/: pqtorusknots.cpp, pqtorusknots.h: initialized the + index-array to "0": this keeps us from crashing! + +2006-02-24 16:14 tigital + + * src/Geos/: rubber.cpp, rubber.h: added messages: "drag"(default + 0.5) and "spring" (default 0.3); some cleanup + +2006-02-23 18:34 zmoelnig + + * src/Pixes/: pix_buffer.cpp, pix_buffer.h: added support for + writing specified slots to disk (not very well tested) + +2006-02-23 18:33 zmoelnig + + * src/Base/GemPixImageSave.cpp: support for other colorspaces than + RGB when writing with imagemagick (YUV not yet supported; libtiff + and libjpeg not tested at all!) + +2006-02-23 16:33 zmoelnig + + * src/Pixes/: pix_snap2tex.cpp, recordQT4L.cpp, recordQT4L.h: only + compile if HAVE_LQT_ADD_VIDEO_TRACKS is defined (which should be + defined by configure) + +2006-02-23 16:29 zmoelnig + + * src/Controls/gemmouse.cpp: removed the inlet + +2006-02-23 16:29 zmoelnig + + * src/Base/CPPExtern.h: allow to set the class-flags by defining + GEM_CLASSFLAGS + +2006-02-21 15:01 zmoelnig + + * src/configure.ac: define HAVE_CONFIG_GENERIC_H if we don't have + another config*.h.in file + +2006-02-21 15:00 zmoelnig + + * src/Base/config.h: include configGeneric.h instead of os-specific + config-file if HAVE_CONFIG_GENERIC_H is defined (at the command + line) + +2006-02-21 14:27 zmoelnig + + * src/Base/configGeneric.h.in: a generic fallback (a la long we can + replace all the os-specific config.h.in files) + +2006-02-21 14:25 zmoelnig + + * src/: configure, configure.ac: added a test for + lqt_add_video_track() + +2006-02-21 14:01 zmoelnig + + * src/Base/configLinux.h.in: added HAVE_LQT_ADD_VIDEO_TRACK, since + older versions of libquicktime don't have this... + +2006-02-21 12:05 zmoelnig + + * src/Geos/: pqtorusknots.cpp, pqtorusknots.h: tried to make it + more stable; it is till crashing when: a) switching from + non-texture to texture (it works when the texture is present when + rendering is started); b) switching the lighting-state + +2006-02-21 12:02 zmoelnig + + * src/Base/glew.cpp: #ifdef'ed everything with USE_GLEW (currently + glew is not used, so try to avoid any interference) + +2006-02-17 06:22 tigital + + * src/Manips/glsl_fragment.cpp: removed an unused outlet + +2006-02-16 20:53 tigital + + * src/openGL/: GEMglTexGenfv.cpp, GEMglTexGenfv.h: useful for + automatic texture-coordinate generation + +2006-02-16 00:05 tigital + + * src/Pixes/pix_freeframe.cpp: [osx] one last hack to make it work + like the other platforms + +2006-02-15 21:54 zmoelnig + + * src/Pixes/pix_freeframe.cpp: oops! for testing i used __linux__ + instead of __APPLE__ and forgot to revert it... + +2006-02-15 21:34 zmoelnig + + * src/Pixes/pix_freeframe.cpp: some string magic to get the correct + name of the plugin within an osX-bundle + +2006-02-15 19:32 zmoelnig + + * src/openGL/GEMglBlendEquation.cpp: fixed use of + DONT_HAVE_GLBLENDEQUATION (it was used as HAVE_GLBLENDEQUATION) + +2006-02-13 22:49 zmoelnig + + * src/Pixes/pix_fiducialtrack.cpp: removed the 2nd inlet (why was + it there at all?) + +2006-02-13 17:58 tigital + + * help/pix_fiducialtrack.pd: corrected all.trees path to work from + help + +2006-02-10 16:20 zmoelnig + + * Makefile: use MAKECMDGOALS when calling the Makefile in src/ + +2006-02-10 14:32 zmoelnig + + * src/Pixes/: pix_contrast.cpp, pix_contrast.h: added inlets for + contrast and saturation + +2006-02-10 14:26 zmoelnig + + * src/Pixes/: pix_contrast.cpp, pix_deinterlace.cpp, + pix_deinterlace.h: added Grayscale processing avoid processing in + [pix_contrast] if both m_contrast and m_saturate are 1.f (in + greyscale ignore m_saturate) + +2006-02-09 01:32 tigital + + * src/Pixes/pix_freeframe.cpp: [osx] new loader code that works + with freeframe 1.0 SDK; note that the plugin will be looked for + in the same directory as the patch, and currently you must append + ".frf" to the end of the plugin's name + +2006-02-08 23:39 tigital + + * src/Base/GemPixUtil.cpp: cleaned up + imageStruct::setCsizeByFormat() so that it no longer does + "default" switch before hitting the various case's + +2006-02-08 23:27 cclepper + + * src/Pixes/: pix_deinterlace.h, pix_deinterlace.cpp: Added RGBA + version and tested on Windows. + +2006-02-08 23:26 cclepper + + * src/Pixes/: pix_contrast.cpp, pix_contrast.h: Added RGBA version + and tested on Windows. Works except for negative contrasrt and + saturarion values. + +2006-02-07 17:16 zmoelnig + + * src/Pixes/: pix_contrast.cpp, pix_contrast.h, + pix_deinterlace.cpp: renamed processYUV_Altivec() to + processYUVAltivec() so it gets automatically called by + GemPixObj's render(); put initializing of class-variables into + the constructor-header + +2006-02-07 04:34 cclepper + + * src/Pixes/pix_contrast.h: added #ifdef __VEC__ + +2006-02-07 04:30 cclepper + + * src/Pixes/pix_deinterlace.cpp: added #ifdef __VEC__ + +2006-02-06 22:46 cclepper + + * src/Pixes/: pix_contrast.h, pix_contrast.cpp, pix_deinterlace.h, + pix_deinterlace.cpp: initial YUV version with Altivec + +2006-02-06 18:20 cclepper + + * src/Pixes/: pix_recordQT.h, pix_recordQT.cpp: brings the old + pix_record up to date + +2006-02-06 15:14 zmoelnig + + * src/Pixes/recordQT.cpp: implemented the setCodec(int) as a no-op + +2006-02-06 14:41 zmoelnig + + * src/Base/TextBase.h: better indentation to see what is included + when + +2006-02-06 11:15 zmoelnig + + * src/Pixes/: pix_recordQT.cpp, pix_recordQT.h: this is the + original pix_record, now renamed to pix_recordQT while we have + the two concurrent objects, how should we make this compatible? + create an abstraction?? make hacks like in [pix_filmNT]??? + +2006-02-06 10:58 zmoelnig + + * src/Pixes/: recordQT.cpp, recordQT.h: at least made it compile on + os-x + +2006-02-05 20:23 zmoelnig + + * src/Pixes/pix_record.cpp: made "record"-message work again + +2006-02-05 20:22 zmoelnig + + * src/Pixes/recordQT4L.cpp: now it produces something... + +2006-02-05 19:51 zmoelnig + + * src/Pixes/: recordQT4L.cpp, recordQT4L.h: updated to use lqt-api + instead of old quicktime4linux api. although it somehow produces + just noise right now (but hey - it did work 10 minutes ago) + +2006-02-05 19:49 zmoelnig + + * src/Pixes/recordQT.h: removed the dummy implementation of + putFrame(): it is pure virtual in record.cpp and should not be + filled with dummies + +2006-02-04 19:16 tigital + + * ChangeLog: update + +2006-02-04 13:47 zmoelnig + + * src/Base/config.h: define HAVE_QUICKTIME for __APPLE__ (later + think about using autoconf for this) + +2006-02-04 13:44 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: added convertTo() and + convertFrom() functions to the imageStruct-class for generic + cs-conversion. + +2006-02-03 22:53 zmoelnig + + * src/Pixes/: pix_record.cpp, pix_record.h: pix_record which is + independent of the used API (like pix_filmNEW,...) + +2006-02-03 22:52 zmoelnig + + * src/Pixes/recordQT.cpp: blind fixes to match record.h + +2006-02-03 22:40 zmoelnig + + * src/Pixes/: record.cpp, record.h, recordQT.cpp, recordQT.h, + recordQT4L.cpp, recordQT4L.h: implementation classes for + pix-record APIs. so far the recordQT4L (quicktime-for-linux) is + tested, but not totally stable the recordQT (Apple's QuickTime + API) has been copy'n'pasted from the original pix_record.cpp code + - i am pretty sure i introduced some problems: at least the + codec-querying and (more important) setting has certainly been + broken. + +2006-02-03 16:33 tigital + + * src/Base/GemMan.cpp: [osx]: shutup gcc warning in initGem() + +2006-02-01 19:38 zmoelnig + + * src/Pixes/: pix_vpaint.cpp, pix_vpaint.h: replaced printf() by + error() (it's more pdish and doesn't throw an error) + +2006-02-01 19:37 zmoelnig + + * src/Base/GemPBuffer.cpp: at least it compiles here on linux... + +2006-02-01 19:21 zmoelnig + + * src/Controls/gemframebuffer.cpp: probably a new-line at EOF + +2006-02-01 19:21 zmoelnig + + * src/Geos/: pqtorusknots.cpp, pqtorusknots.h: cleaned up code a + bit (so i can read it :-)) should perform a bit faster as well + fixed a crash on my machine added type message + + still very crashy i _think_ there is a bug (most likely: a memory + leak) in here + +2006-02-01 17:53 tigital + + * src/Base/GemPBuffer.cpp: forgot header change to other platforms: + this'll be cleaned and put in the correct spot (ie. the top of + the file) sometime + +2006-02-01 16:43 tigital + + * src/Geos/: pqtorusknots.cpp, pqtorusknots.h: initial commit: + novel mathematical structure + +2006-02-01 16:42 tigital + + * src/Pixes/: pix_vpaint.cpp, pix_vpaint.h: initial commit: takes + an image and creates a "voronoi region" painting out of + it...works on OSX, but relies on GemPBuffer code, so other + platforms can use this to test that code... + +2006-02-01 16:39 tigital + + * src/Base/: GemPBuffer.cpp, GemPBuffer.h: initial commit: works + on OSX (still needs some serious cleanup!), but untested on other + platforms: code is there, but is it really equivalently + functional? + +2006-02-01 16:37 tigital + + * src/Manips/glsl_program.cpp: added check for a loaded program to + the paramMess code; prevents crashing when sending parameters to + the object but no program is actually loaded! + +2006-02-01 16:36 tigital + + * src/Manips/glsl_fragment.cpp: error code reporting cleanup + +2006-02-01 16:34 tigital + + * src/Controls/gemwin.cpp: [OSX] changed NULL to 0 to shutup gcc + +2006-02-01 16:33 tigital + + * src/Base/GemMan.h: added header for glReportError(); [OSX] added + "masterContext" + +2006-02-01 16:31 tigital + + * src/Controls/gemframebuffer.cpp: cleanup; added setModified(); + +2006-02-01 16:04 zmoelnig + + * src/Pixes/pix_image.cpp: changed "#define unix" to "#define + __unix__" + +2006-02-01 16:03 zmoelnig + + * src/Pixes/pix_sig2pix.h: changed "#define unix" to "#define + __unix__" removed unneccessary headers from inclusion + +2006-02-01 15:59 zmoelnig + + * src/Base/: GemMan.cpp, GemWinCreate.h, GemWinCreateXWin.cpp: + changed "#define unix" to "#define __unix__" moved the check for + glx-support to GemWinCreateXWin.h + +2006-02-01 15:58 tigital + + * src/Base/GemWinCreateMac.cpp: [OSX] added "masterContext", which + gets rid of need for HaveValidContext()...needs non-jamie testing + ;-) + +2006-02-01 15:53 tigital + + * src/Base/GemMan.cpp: cleanups; added TODO questions; [OSX] added + "masterContext", which gets rid of need for + HaveValidContext()...needs non-jamie testing ;-) + +2006-02-01 14:24 zmoelnig + + * src/Base/GemMan.cpp: only create constContext when its not + already created + +2006-02-01 14:23 zmoelnig + + * src/Base/GemWinCreateXWin.cpp: applied patch from cesare to avoid + crashes on closing the window + +2006-01-30 14:12 zmoelnig + + * src/Base/: GemPixUtil.h, GemPixUtil.cpp: added constructor for + pixBlock-class (which properly initalizes newfilm and newimage to + "false") moved constructor/destructor of imageStruct and pixBlock + from header into the cpp-files to avoid unneccessary + recompilation on changes) + +2006-01-26 15:47 zmoelnig + + * src/: README.glew, importGLEW.sh: made a script (which will + hopefully hardly ever be needed) to import glew mention it in the + README.glew + +2006-01-26 15:07 zmoelnig + + * src/: README.glew, Base/glew.cpp, Base/glew.h, Base/glxew.h, + Base/wglew.h: added glew-files (+ a readme how i got them) + +2006-01-23 12:08 zmoelnig + + * examples/06.particle/: 01.simple.pd, 02.fountain.pd, 03.orbit.pd, + 04.combo.pd, 05.twoSrc.pd, 06.target.pd, 07.render.pd, + 08.info.pd: changed [part_velsphere] to [part_velocity sphere] + +2006-01-23 12:07 zmoelnig + + * src/Base/configNT.h: define DONT_HAVE_GLBLENDQUATION + + i think, this file should be used only for M$VC; LATER we can put + #pragma's in here to enable linking with special libraries based + on the configuration (or should we rather do it in the files that + need these libraries??) + +2006-01-23 12:05 zmoelnig + + * src/openGL/GEMglBlendEquation.cpp: use a DONT_HAVE_GLBLENDQUATION + rather than __WIN32__ to determine whether this objects needs to + be disabled + +2006-01-22 22:43 zmoelnig + + * debian/control: added alternative dependencies for magick++6 and + avifile-0.7 + +2006-01-22 22:41 zmoelnig + + * src/gem.dsp: added newly added files + +2006-01-22 22:40 zmoelnig + + * src/: Controls/gemwin.h, Pixes/pix_share_read.cpp, + Pixes/pix_share_read.h, Pixes/pix_share_write.cpp, + Pixes/pix_share_write.h: minor changes (line.breaks) + +2006-01-22 22:37 zmoelnig + + * src/Pixes/pix_fiducialtrack.cpp: on w32 we have to include + to be able to use "close(int)" + +2006-01-22 22:32 zmoelnig + + * src/Pixes/libfidtrack_treeidmap.cpp: fixed string-template issues + with vc6 + +2006-01-22 22:29 zmoelnig + + * src/Pixes/libfidtrack_fidtrackX.cpp: changed 0.5 to 0.5f to make + floats instead of doubles (amd thus reduce warnings about + conversion) + +2006-01-22 22:27 zmoelnig + + * src/Pixes/pix_multitexture.cpp: disabled if GL_TEXTURE0_ARB is + undefined (another candidate for GLEW) + +2006-01-22 22:26 zmoelnig + + * src/Pixes/pix_hit.h: removed definition of DEBUG=0 since it is + not needed anyhow + +2006-01-22 22:25 zmoelnig + + * src/openGL/GEMglBlendEquation.cpp: turn glBlendEquation OFF on + w32 (stupid restriction, but faster than finding anything more + sophisticated) + +2006-01-22 22:23 zmoelnig + + * src/Manips/vertex_program.cpp: only set glParameterEnvArg if + vertexprograms are supported by the headers + +2006-01-22 22:17 zmoelnig + + * src/Base/GemExportDef.h: disable more warnings (here: + switch-statement without case (only default); this is possible is + all cases are turned off by #ifdefs) + + NOTE: these pragmas should be within __MSC_VER_ instead of + __WIN32__ + +2006-01-18 13:10 zmoelnig + + * src/Particles/part_sink.cpp, src/Particles/part_sink.h, + examples/06.particle/09.sink.pd, help/part_sink.pd: found this + lying around on my harddisk + +2006-01-18 12:22 zmoelnig + + * src/Geos/circle.h: made circle::NUM_PTS a define rather than a + const static variable + +2006-01-18 12:13 zmoelnig + + * src/Geos/: circle.cpp, tube.h: removed unused variables made + circle::NUM_PTS a define rather than a const static variable + +2006-01-18 11:54 zmoelnig + + * src/: configure, configure.ac: set a variable when an + apple-framework is found use it in the status-report (so + apple-users don't get confused about no QuickTime even if the + framework is installed) in "configure" the removal of + "local"/"locale" is also applied + +2006-01-18 11:52 zmoelnig + + * src/: acinclude.m4, aclocal.m4: fixed typo "locale" should read + "local"; however, since the tests are not expanded into + functions, this does not work so i removed the "locale" entirely + and replaced it by a pseudo-localized variable (appending stuff + derived from the arguments) + +2006-01-18 11:24 zmoelnig + + * src/Pixes/pix_filmDarwin.cpp: properly ifdef the usage of + "kDVCPROHD720pCodecType" + +2006-01-18 11:18 zmoelnig + + * src/Pixes/filmQT.h: declare getFPS() (inherited from film.h) + +2006-01-18 11:15 zmoelnig + + * src/Pixes/pix_videoDarwin.cpp: include for open() + +2006-01-18 11:02 zmoelnig + + * src/Manips/glsl_fragment.cpp: disable more code, if + GL_ARB_shader_objects is not defined (mostly cosmetic) + +2006-01-18 11:00 zmoelnig + + * src/Manips/: glsl_program.cpp, glsl_program.h, glsl_vertex.cpp, + glsl_vertex.h: disable most of the code if + "GL_ARB_shader_objects" is not defined + +2006-01-18 10:13 zmoelnig + + * src/openGL/: GEMglUseProgramObjectARB.cpp, + GEMglUseProgramObjectARB.h: avoid using m_program if + "GL_ARB_shader_objects" is not defined + +2006-01-17 12:01 zmoelnig + + * src/Base/GemGL.h: prevent ARB-GLSL + +2005-12-27 20:03 tigital + + * help/spot_light.pd: initial helpfile + +2005-12-15 18:45 zmoelnig + + * src/Pixes/: pix_hit.cpp, pix_hit.h: removed loading/saving + removed "point" area-type changed (float) to (unsigned char) + where possible (at least where it was obvious to do) + +2005-12-15 14:09 zmoelnig + + * debian/: changelog, control, copyright, files, rules: updated a + bit so we can build a debian-package + +2005-12-15 13:17 zmoelnig + + * src/Pixes/: pix_hit.cpp, pix_hit.h: added davide's hit-object + +2005-12-15 11:54 zmoelnig + + * src/Pixes/: video.cpp, videoV4L.cpp: initialized more variables + moved initialization (from body of constructor) into + initialization-block of constructor + +2005-12-15 01:43 tigital + + * src/Manips/glsl_program.cpp: clean up in render loop + +2005-12-15 00:19 cclepper + + * src/Pixes/pix_record.h: works on windows. sorta. only a few + changes needed from the mac code. + +2005-12-15 00:15 cclepper + + * src/Pixes/pix_record.cpp: works on windows. sorta. only a few + changes needed from the mac code. + +2005-12-14 16:53 tigital + + * src/Manips/: vertex_program.cpp, vertex_program.h: string buffer + is now member variable; more detailed reporting when program is + outside hardware limits + +2005-12-14 14:34 zmoelnig + + * examples/data/all.trees: TreeIdMap for reacTable*'s fiducials + +2005-12-14 14:29 zmoelnig + + * src/Makefile.subdir: dont build depend-files when doing "make + clean" or "make distclean" + +2005-12-14 14:29 zmoelnig + + * src/Makefile: don't try to generate configure, Make.config and + the like when doing a "make clean" or "make distclean" + +2005-12-14 14:28 zmoelnig + + * src/Make.include: newline at end of file... + +2005-12-14 14:26 zmoelnig + + * src/Particles/part_orbitpoint.h: fixed + header-inclusion-prevention-defines (ye, my mother-tongue is + German) + +2005-12-14 14:24 zmoelnig + + * GEM.LICENSE.TERMS: included Ross and Martin for the reacTIVision + system replaced "@" by "[AT]" + +2005-12-14 14:15 zmoelnig + + * help/: pix_fiducialtrack.pd, pix_threshold_bernsen.pd: + help-patches for the fiducial-tracker (and the binarizing + thresholder) + +2005-12-14 14:14 zmoelnig + + * src/Pixes/: libfidtrack_fidtrackX.cpp, libfidtrack_fidtrackX.h, + libfidtrack_segment.cpp, libfidtrack_segment.h, + libfidtrack_treeidmap.cpp, libfidtrack_treeidmap.h, + pix_fiducialtrack.cpp, pix_fiducialtrack.h: fiducial-tracking as + used in reacTIVision thanks to martin kaltenbrunner and ross + bencina (and the mtg@upf) for releasing their code under (L)GPL + +2005-12-14 14:13 zmoelnig + + * src/Pixes/: pix_threshold_bernsen.cpp, pix_threshold_bernsen.h: + binarizing adaptive tiled thresholder + +2005-12-14 14:07 zmoelnig + + * src/Pixes/: pix_videoNEW.cpp, pix_videoNEW.h: better check + whether switching to another driver succeeds + +2005-12-10 20:45 tigital + + * src/Base/: GemGLUtil.cpp, GemGLUtil.h: added glReportError() for + helping debug + +2005-12-10 19:40 zmoelnig + + * src/Base/: GemGL.h, GemPixUtil.h: moved GLdefine's from + GemPixUtil to GemGL + +2005-12-10 17:01 tigital + + * src/Nongeos/spot_light.cpp: corrected spotlight direction + initialization; placed limits on light parameters (as supported + by GL) + +2005-12-10 01:20 tigital + + * src/Geos/sphere.cpp: removed spurious glEnd() called in + createSphere: it was causing a glError... + +2005-12-09 23:52 cclepper + + * src/Manips/: vertex_program.h, vertex_program.cpp: added + parameter message + +2005-12-09 23:49 cclepper + + * src/Manips/: fragment_program.cpp, fragment_program.h: added + parameter message + +2005-12-07 17:40 cclepper + + * src/Pixes/filmQT.cpp: fixed QT crashing on Windows, but the fix + introduces a small memory leak when loading new movies. Also, + removed a redundant memcpy() in getFrame. + +2005-12-07 17:17 tigital + + * src/Pixes/: pix_snap2tex.cpp, pix_snap2tex.h: - added mode & + repeat messages (like [pix_texture], same defaults) - added + outlet for texture info: ID, width, height, type + +2005-12-06 07:40 tigital + + * src/Controls/: gemframebuffer.cpp, gemframebuffer.h: initial + commit: - allows offscreen rendering on a per [gemhead] basis - + defaults to 256x256, but can be set with [dimen x y< - float RGB + only, atm - right outlet outputs list: texID, width, height, type + - type can be switched with [mode 0/1< (ie. TEXTURE_2D or + TEXTURE_RECTANGLE) + +2005-12-06 06:56 tigital + + * src/openGL/: GEMglUseProgramObjectARB.h, + GEMglUseProgramObjectARB.cpp: renamed inlet for some unknown + reason + +2005-12-06 05:01 tigital + + * src/Manips/glsl_vertex.cpp: don't need to enable/disable + shader_arb; added check and better clean up for re-loaded shaders + +2005-12-04 23:45 tigital + + * src/Manips/: glsl_program.cpp, glsl_program.h: added outlet for + programID + +2005-12-04 17:15 tigital + + * src/openGL/: GEMglUseProgramObjectARB.cpp, + GEMglUseProgramObjectARB.h: useful glWrapper which allows one to + use a glsl_program that was linked in an earlier chain in a later + chain; but don't forget to frame it's usage with an ending call + with value zero, or the program affects all later chains + +2005-12-04 02:17 tigital + + * src/Manips/glsl_program.cpp: individual shader objects are now + responsible for cleaning up after themselves; also, made + initialized length=0 + +2005-12-04 02:13 tigital + + * src/Manips/glsl_vertex.cpp: object is now responsible for + cleaning up after itself; also discovered that we don't need to + glEnable the *_SHADER_ARB's + +2005-11-30 07:55 tigital + + * src/Manips/: glsl_program.cpp, glsl_program.h: auto-magic uniform + variable discovery working; shaderMess() fixes; lotsa cleanup in + general (& stuff) + +2005-11-30 01:12 tigital + + * src/Manips/: glsl_vertex.cpp, glsl_vertex.h: clean-up, & better + initialization + +2005-11-30 00:55 tigital + + * src/Manips/glsl_program.cpp: corrected shaderMess behavior; added + OSX check for hardware/software execution + +2005-11-29 05:52 tigital + + * src/Pixes/pix_videoDarwin.cpp: miscellaneous fixes of warnings, + misspellings, and debug messages + +2005-11-29 00:29 cclepper + + * src/Pixes/: pix_videoDarwin.h, pix_videoDarwin.cpp: added + SequenceGrabber recording + +2005-11-27 15:30 zmoelnig + + * src/Pixes/pix_image.cpp: thread fixes: + better initializing + + more freeing + filenames given as argument are now opened via + thread too + +2005-11-27 11:24 zmoelnig + + * src/Base/GemPixImageLoad.cpp: reduced verbosity a bit made rest + of error messages a bit more findable ("error: GemImageLoad" + instead of just "erro: GEM") + +2005-11-26 22:17 zmoelnig + + * src/Manips/: glsl_program.cpp, glsl_program.h: added dynamic + methods for uniform parameters + +2005-11-26 20:13 cclepper + + * src/Pixes/pix_filmDarwin.h: Added the first check for HD format + clips to deal with their trickster frame sizes. Also, a fix for + sound continuing after rendering stops. + +2005-11-26 17:19 zmoelnig + + * src/Manips/: glsl_program.cpp, glsl_program.h: use a #define for + defining the max number of shaders fixed some typos and minor + bugs + +2005-11-26 16:36 zmoelnig + + * src/Pixes/pix_image.cpp: on creating the child-thread wait until + it has set the m_thread_running (so we can use that in + openMess()) + +2005-11-26 14:12 zmoelnig + + * src/Pixes/pix_image.cpp: reduced verbosity + +2005-11-26 13:48 zmoelnig + + * src/Manips/: glsl_program.cpp, glsl_program.h: hmm: define + "t_GLshaderObj" to whatever type the shaderobj should be; made it + compile on linux (and not crash) + +2005-11-26 13:45 zmoelnig + + * src/Manips/glsl_vertex.cpp: include stdlib (for malloc, free) + replace printf() by post() + +2005-11-26 06:08 cclepper + + * src/Pixes/pix_filmDarwin.cpp: Added the first check for HD format + clips to deal with their trickster frame sizes. Also, a fix for + sound continuing after rendering stops. + +2005-11-26 01:50 tigital + + * src/openGL/: GEMglUniform1fARB.cpp, GEMglUniform1fARB.h: initial + wrapper support for GLSL support (ARB based): - there should be a + whole host of these, but right now I'm only up to writing the + one, for input of one indexed float ;-) + +2005-11-25 23:56 tigital + + * src/Manips/: glsl_fragment.cpp, glsl_fragment.h, + glsl_program.cpp, glsl_program.h, glsl_vertex.cpp, glsl_vertex.h: + initial GLSL support (ARB based): - load individual shaders via + glsl_vertex or glsl_fragment - combine multiple shader's right + output into a [shader $1 $2...< and send into [glsl_program] - + send [link< to [glsl_program] to actually link the objects: this + was done because we don't want to re-link objects every + render-timeslice... - each object accepts a [print< to give + info, , and [glsl_program] will also report linked program's + uniform variables, names, indices... - uniform variable indices + can be used with [GEMglUniform...] to change variables (but maybe + there should be more auto-discovery in [glsl_program]?) - + object's will also report a shader's compile-time error log (if + any) to console (not pd's tk console): need to figure out how to + parse infolog into post()-friendly format... + +2005-11-23 14:08 zmoelnig + + * src/Base/: configDarwin.h.in, configLinux.h.in: added check for + GLsizeiptrARB + +2005-11-23 14:07 zmoelnig + + * src/: configure, configure.ac: die at the end of configure if no + openGL has been found check for typedef of GLsizeiptrARB + +2005-11-21 15:31 zmoelnig + + * src/Pixes/: pix_image.cpp, pix_image.h: threaded image loading + +2005-11-15 15:24 zmoelnig + + * help/: curve3d.pd, pix_buffer.pd: updated help-files + +2005-11-15 15:22 zmoelnig + + * examples/04.pix/25.buffer.pd: show how to load an image into the + buffer + +2005-11-15 15:21 zmoelnig + + * src/openGL/: GEMglBlendEquation.cpp, GEMglBlendEquation.h, + GEMglClipPlane.cpp, GEMglClipPlane.h: added some more wrappers + (thanks to cyrille) + +2005-11-10 15:50 zmoelnig + + * src/Pixes/: video.cpp, videoV4L.cpp: initialize m_devicename to + NULL in order to not produce random crashes. fixed printf() + security-hole + +2005-11-09 04:08 tigital + + * src/Pixes/pix_filmDarwin.cpp: cleaned up headers, initialization; + also added code to pad rowbytes for dimensions not multitples of + 16 or 32 (helps GL_STORAGE_SHARED_APPLE) + +2005-11-09 00:01 cclepper + + * src/Pixes/pix_filmDarwin.cpp: added a little hack to bang when + film reaches the end in auto mode + +2005-10-31 17:04 tigital + + * ChangeLog: update + +2005-10-28 10:59 zmoelnig + + * src/Pixes/: pix_threshold.cpp, pix_threshold.h: use proper + inheritance for the altivec function + +2005-10-28 00:13 tigital + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: added + imageStruct.fromGray( short*) version, so now we can import + luminance images from pdp2gem... + +2005-10-27 23:30 cclepper + + * src/Pixes/: pix_threshold.cpp, pix_threshold.h: added Altivec YUV + function + +2005-10-26 15:54 zmoelnig + + * examples/04.pix/23.gravity.pd: fixed path and case of images to + load + +2005-10-25 22:37 cclepper + + * src/Pixes/pix_coordinate.cpp: commented out lines in postrender + which removes memory leak in [separator] + +2005-10-25 12:01 zmoelnig + + * src/Pixes/pix_multitexture.cpp: throw an exception when no + texture-units are defined at startup time (prevents + object-creation) enforce 2 arguments in the texUnit-message + +2005-10-25 11:54 zmoelnig + + * src/Pixes/pix_multitexture.cpp: bugfix: added A_NULL as + terminating argument to the texUnit-callback + +2005-10-22 22:50 tigital + + * src/openGL/GEMglIsEnabled.cpp: GL_VERSION_1_1 check only (there's + no GL_VERSION_1_0_ on osx!) + +2005-10-21 14:49 zmoelnig + + * src/Pixes/: pix_filmNEW.cpp, pix_movieNEW.cpp: improved threaded + movie-player: use select() instead of usleep() (should be more + portable) when the grabThread returns no frame (NULL), a "bang" + is emitted at render-time. the user gets a chance to immediately + react on that and reset the frame# to something valid. when + threaded, this will force the changed frame to be read in the + main-thread (luckily the grabthread is locked by the mutex) + +2005-10-21 10:55 zmoelnig + + * src/configure: changes in configure.ac + +2005-10-21 10:55 zmoelnig + + * src/: configure.ac, Base/configLinux.h.in, Pixes/filmFFMPEG.cpp: + check whether ffmpeg's (AVStream)->codec is of type + "AVCodecContext" or "*AVCodecContext" + +2005-10-21 10:03 zmoelnig + + * src/Gnu/: Makefile.clean, Makefile.in, Makefile.subdir, + README.build, README.txt, WHATSNEW, acinclude.m4, aclocal.m4, + config.guess, config.sub, configure.in, install-sh, makeauxlibs, + makesource, missing, mkinstalldirs, undocumented_objects: removed + contents of src/Gnu (since people keep building Gem from there) + +2005-10-20 18:03 zmoelnig + + * src/Base/configLinux.h.in: check for posix-threads removed + HAVE_SIMD things (as we should rather use the __MMX__,... that + are autodefined by the compiler) + +2005-10-20 18:02 zmoelnig + + * src/: configure, configure.ac: check for posixthreads (as in pd) + +2005-10-20 15:41 zmoelnig + + * src/Pixes/: pix_filmNEW.cpp, pix_filmNEW.h, pix_movieNEW.cpp: + (optional) threaded reading of movies + +2005-10-20 15:38 zmoelnig + + * src/Pixes/: pix_multitexture.cpp, pix_share_write.cpp, + pix_share_write.h: shut up compiler warnings; explicit casts from + t_float to GLint + +2005-10-20 12:03 zmoelnig + + * src/Pixes/: pix_videoNEW.cpp, pix_videoNEW.h: added method for + "device" with symbolic device-names + +2005-10-20 11:59 zmoelnig + + * src/Pixes/pix_movieNEW.cpp: 2 lines of comment... + +2005-10-20 11:53 zmoelnig + + * GEM.README: fixed docu-bug that led people to try to compile Gem + from src/Gnu instead of src/ + +2005-10-19 14:48 tigital + + * src/Pixes/pix_multitexture.h: initial commit: - accepts a + creation arg to set # of texture units to deal with, or it + defaults to the maximum # on the card - [texUnit 1 $2< assigns to + texture Unit 1 the texID input via $2 - [mode 0/1< switches + between TEXTURE_RECTANGLE and TEXTURE_2D + +2005-10-19 06:17 tigital + + * src/Pixes/pix_multitexture.cpp: initial commit: - accepts a + creation arg to set # of texture units to deal with, or it + defaults to the maximum # on the card - [texUnit 1 $2< assigns to + texture Unit 1 the texID input via $2 - [mode 0/1< switches + between TEXTURE_RECTANGLE and TEXTURE_2D + +2005-10-19 01:59 tigital + + * src/Base/GemGLUtil.cpp: more GLdefine's for multitexture and + combiners... + +2005-10-14 09:54 zmoelnig + + * src/Controls/gemwin.h: disabled warnings on __WIN32__ + +2005-10-08 18:24 zmoelnig + + * src/Particles/part_vector.h: wow! this file has been unused for + quite a long time now; since i cannot find any reference to it + anywhere (except in the 1.1.1.1 or so revision of papi.h) i + delete it. + +2005-10-07 19:03 zmoelnig + + * src/Pixes/: pix_film.cpp, pix_film.h: removed the disabling of + the entire code when FILM_NEW is defined (oh this is really ugly) + +2005-10-07 19:02 zmoelnig + + * src/Pixes/filmFFMPEG.cpp: enabled the weird hack i made for a + current CVS snapshot of ffmpeg, since the debian/sid package now + uses the new API + +2005-10-07 18:53 zmoelnig + + * src/: Makefile, Makefile.subdir: remove "-f" (less errors if + files are already removed) + +2005-10-07 18:52 zmoelnig + + * src/gem.dsp: updated w32 compile environment + +2005-10-07 18:51 zmoelnig + + * src/Pixes/filmAVI.cpp: fixed typo + +2005-10-07 18:50 zmoelnig + + * src/Pixes/: pix_filmNT.cpp, pix_filmNT.h: only cimpileif we don't + want FILM_NEW (i got an error when compiling in the vfw.h file + and i didn't want to fix it in a deprecated file); LATER remove + these files + +2005-10-07 18:49 zmoelnig + + * src/Pixes/: pix_share_read.cpp, pix_share_read.h, + pix_share_write.cpp, pix_share_write.h: no shared memory (via + shm) on w32; disabled on that platform + +2005-10-07 18:47 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h, GemWinCreate.h, + TextBase.h: defined pragmas to make compiler a bit less verbose + +2005-10-07 18:47 zmoelnig + + * src/Base/GemMath.h: hacked together a version of drand48(); how + comes drand48() does not exist on w32 even though these files are + in here for years ? (LATER) + +2005-10-07 18:44 zmoelnig + + * src/Base/: CPPExtern.h, GemGLUtil.cpp: defined pragmas (on w32) + to shut up compiler warnings (e.g. because of unknown pragmas) + +2005-10-07 18:43 zmoelnig + + * src/Manips/fragment_program.cpp: on w32 GL_ARB_fragment_program + mightbe defined even if there is no ARB-program support...(we + really should switch to glew) + +2005-10-07 18:42 zmoelnig + + * src/Particles/: partlib_actions.cpp, partlib_system.cpp: include + instead of even on w32 (to use the "new" + stdlib) + +2005-10-06 11:25 zmoelnig + + * src/Base/GemPixUtil.cpp: merged with SIMD: don't copy the + "datasize" with copy2imageStruct - as it should only be used + internally for pdata; (there is a captialized warning about + breaking things in the SIMD-branch log about this; however, i + don't believe that it is that dangerous) + +2005-10-05 18:35 zmoelnig + + * src/Pixes/: pix_2grey.h, pix_gain.cpp: fixed typo + +2005-10-05 18:22 zmoelnig + + * src/Pixes/: pix_gain.cpp, pix_gain.h, pix_invert.cpp, + pix_invert.h, pix_mask.cpp, pix_mask.h, pix_mix.cpp, pix_mix.h, + pix_motionblur.cpp, pix_motionblur.h, pix_movement.cpp, + pix_movement.h, pix_multiply.cpp, pix_multiply.h, pix_offset.cpp, + pix_offset.h, pix_rds.cpp, pix_subtract.cpp, pix_subtract.h, + pix_tIIR.cpp, pix_tIIR.h, pix_takealpha.h, pix_2grey.cpp, + pix_2grey.h, pix_add.cpp, pix_add.h, pix_background.cpp, + pix_background.h, pix_biquad.cpp, pix_biquad.h, pix_bitmask.cpp, + pix_bitmask.h, pix_chroma_key.cpp, pix_chroma_key.h, + pix_compare.cpp, pix_compare.h, pix_composite.cpp, + pix_composite.h, pix_diff.cpp, pix_diff.h: merged with + SIMD-branch + +2005-10-05 18:14 zmoelnig + + * src/Base/: GemFuncUtil.h, GemPixDualObj.cpp, GemPixDualObj.h, + GemPixObj.cpp, GemPixObj.h, GemSIMD.h: merged with SIMD + +2005-10-05 18:02 zmoelnig + + * src/Pixes/pix_halftone.cpp: merged in changes from SIMD-branch + +2005-10-05 17:42 zmoelnig + + * src/Base/configDarwin.h.in: updated + +2005-10-05 17:35 zmoelnig + + * src/configure: changes from configure.ac + +2005-10-05 17:22 zmoelnig + + * src/Makefile.subdir: remove depend-files when "clean" + +2005-10-05 17:14 zmoelnig + + * src/configure.ac: propery escaped test-string + +2005-10-05 16:45 zmoelnig + + * src/Make.config.in: use the CXX provided by configure + +2005-10-05 16:38 zmoelnig + + * src/configure.ac: use AC_CHECK_FUNC rather than AC_CHECK_LIB to + check for glBindProgram{NV,ARB} since on osX we don't have a + library libGL but rather use the OpenGL-framework + + NOTE: the test for glBindProgramNV fails to detect the + nvidia-extensions on osX why ? because you have to explicitely + request them by defining GL_NV_vertex_program before including + the glext.h file on osX on linux (mesaGL,...) it is different: + the extensions are only included, if GL_NV_vertex_program is NOT + already defined + +2005-10-05 16:14 zmoelnig + + * src/Base/GemFuncUtil.h: a compile on osX revealed that somewhere + MIN and MAX are defined as preprocessor directives; this stopped + compiling the inline functions with the same name; FIXED + +2005-10-03 22:19 cclepper + + * src/Pixes/: pix_share_read.cpp, pix_share_read.h: initial commit. + object for reading shared pixel memory between processes. + +2005-10-03 22:18 cclepper + + * src/Pixes/: pix_share_write.h, pix_share_write.cpp: initial + commit. object for creating shared pixel memory between + processes. + +2005-10-03 14:17 zmoelnig + + * src/Pixes/: video.cpp, video.h, videoDV4L.cpp, videoDV4L.h, + videoV4L.cpp, videoV4L.h, videoV4L2.cpp, videoV4L2.h: added + support for devicenames given as strings (like "/dev/video") + +2005-10-03 12:38 zmoelnig + + * src/Pixes/: pix_image.cpp, pix_image.h: removed the caching + mechanism; if you want to load a set of images and access from + RAM, use [pix_buffer] instead + +2005-10-02 18:41 zmoelnig + + * src/: Make.config.in, Makefile: made checking for changes in + Base/config`uname -s`.h.in a bit better + +2005-10-02 15:52 zmoelnig + + * src/Base/: GemMan.h, GemPixImageLoad.cpp, GemPixUtil.h, + GemState.cpp: moved inclusion of openGL-headers to Base/GemGL.h + +2005-10-02 15:49 zmoelnig + + * src/: Controls/gemwin.cpp, Geos/TexFont.h, Geos/model_loader.h, + Particles/partlib_opengl.cpp: moved inclusion of openGL-headers + to Base/GemGL.h + +2005-10-02 15:48 zmoelnig + + * src/Base/GemGL.h: removed boolean-hack for buggy nvidia-headers + (should get fixed upstream) + +2005-10-01 21:31 zmoelnig + + * src/Base/configLinux.h.in: checking for nvidia-extensions (can be + disabled with "--disable-NV") + +2005-10-01 21:30 zmoelnig + + * src/: Make.config.in, Makefile, configure, configure.ac: checking + for nvidia-extensions (can be disabled with "--disable-NV") added + the system-specific config-file to the dependencies to do a + ./configure + +2005-10-01 21:15 zmoelnig + + * src/Manips/: fragment_program.cpp, vertex_program.cpp: test for + definition of GL_{ARB,NV}_{vertex,fragment}_program before using + extensions. + +2005-10-01 21:14 zmoelnig + + * src/Manips/fragment_program.h: moved the openGL-magic into + Base/GemGL.h + +2005-10-01 21:13 zmoelnig + + * src/Base/: GemBase.h, GemGL.h: moved the inclusion of + openGL-headers and the openGL-magic into a separate file GemGL.h + (this should be included instead of the system-specific + openGL-header files) + +2005-09-30 21:25 zmoelnig + + * src/Manips/: fragment_program.cpp, fragment_program.h, + vertex_program.cpp, vertex_program.h: now we can give the + filename as argument and it gets loaded on startRendering() + reordered everything a bit (and made fragment_program a child of + vertex_program: there's loads of similar code) + +2005-09-28 06:29 cclepper + + * src/Pixes/pix_snap2tex.cpp: made sure glTexSubImage2D is called + instead of the power of two texturing + +2005-09-27 19:56 zmoelnig + + * examples/02.advanced/17.fragment_program.pd: a fragment-shader + demo that adds some b/w-noise... + +2005-09-27 19:55 zmoelnig + + * examples/data/random.fp: a fragment shader that produces noise... + +2005-09-27 19:04 zmoelnig + + * examples/02.advanced/16.vertex_program.pd: added vertex_program + demo + +2005-09-27 19:04 zmoelnig + + * examples/data/toon.vp: added toon-shader for the vertex_program + demo + +2005-09-27 19:02 zmoelnig + + * examples/data/64shade.tif: added texture for the vertex_program + demo + +2005-09-27 18:34 zmoelnig + + * examples/04.video/: 03.movement_detection.pd, 04.videoRTX.pd: + removed the "64 64" arguments to [pix_video] as this makes the + patches under windows unusable (pix_videoDS thinks the first + argument is the deviceID, not the dimension) + +2005-09-27 17:44 zmoelnig + + * src/Pixes/: pix_filmLinux.cpp, pix_filmLinux.h: leftovers from + pre pix_filmNEW aera. deleted because i don't (want to) maintain + this code any more + +2005-09-27 17:42 zmoelnig + + * src/Pixes/: pix_film.cpp, pix_film.h, pix_filmYUV.cpp, + pix_filmYUV.h, pix_movie.cpp, pix_movie.h, pix_movieYUV.cpp, + pix_movieYUV.h: disable if FILM_NEW is defined in Base/config.h + (then pix_filmNEW and friends are used) + +2005-09-27 07:17 tigital + + * src/openGL/GEMglIsEnabled.cpp: added check for GL_VERSION_1_1, + which is the lowest GL_VERSION osx defines + +2005-09-27 07:12 tigital + + * src/Base/GemGLUtil.cpp: added define for + GL_TEXTURE_RECTANGLE_EXT, duh + +2005-09-26 19:47 zmoelnig + + * src/Pixes/: pix_filmFFMPEG.cpp, pix_filmFFMPEG.h: + [pix_filmFFMPEG] is covered by [pix_filmNEW]+filmFFMPEG + +2005-09-26 19:43 zmoelnig + + * src/Pixes/filmFFMPEG.cpp: made it _compile_ against the current + CVS-version of ffmpeg (not really tested whether it works though) + you have to actually change an ifdef at the beginning of + filmFFMPEG.cpp in order to make it compatible with the CVS-ffmpeg + (haven't found out yet, how to do this in a more generic way + (apart from hacking configure again) btw, configure would need a + lot of tweaking to recognize a current ffmpeg (and link against + all the needed libraries) ffmpeg sucks + +2005-09-22 19:41 zmoelnig + + * src/Base/TextBase.cpp: added fix to be able to display floats as + numbers again (instead of "float") + +2005-09-22 10:32 zmoelnig + + * src/Base/: TextBase.cpp, TextBase.h: added moocows changes (+ + linebreaking) fixed the bug that prevented TextBase.cpp to build + if you were not using FTGL (gltt or no-font) + +2005-09-21 20:41 tigital + + * src/Base/GemPixImageSave.cpp: cleanup apple headers + +2005-09-21 20:37 tigital + + * src/Geos/scopeXYZ.h: reordering to shut up gcc4 warnings + +2005-09-21 19:45 tigital + + * src/Geos/text2d.h: #ifdef'ed GLTTPixmapFont *m_afont like in + text2d.cpp + +2005-09-21 16:56 zmoelnig + + * src/Base/TextBase.cpp: committed tim's fix to prevent escaping of + pd-special characters (like ",") + +2005-09-15 12:25 zmoelnig + + * src/Geos/: curve3d.cpp, curve3d.h: removed the pre-defined + maximum of control/grid-points: now we can have curve3d's of any + preecision + +2005-09-11 18:06 zmoelnig + + * src/Pixes/: film.cpp, film.h, filmAVIPLAY.cpp, filmFFMPEG.cpp, + filmMPEG3.cpp, filmQT4L.cpp, videoDV4L.cpp, pix_blur.cpp, + pix_buffer_read.cpp, pix_filmFFMPEG.cpp, pix_filmNEW.cpp, + pix_freeframe.cpp, pix_halftone.cpp, pix_mean_color.cpp, + pix_movement2.cpp, pix_multiblob.cpp: shut up compiler warnings: + the changes are mostly removal of unused variables, re-ordering + of initialization of member-variables, (un)signedness and proper + bracketing when doing comparisions + +2005-09-11 18:02 zmoelnig + + * src/: Base/GemGLUtil.cpp, Base/GemMan.cpp, Base/GemPixUtil.cpp, + Base/GemShape.cpp, Base/TextBase.cpp, openGL/GEMglNewList.cpp, + Geos/scopeXYZ.cpp, Geos/text2d.cpp, Geos/torus.cpp, + Geos/tube.cpp, Geos/tube.h: shut up compiler warnings: the + changes are mostly removal of unused variables, re-ordering of + initialization of member-variables and (un)signedness + +2005-09-11 12:29 zmoelnig + + * src/Base/: GemWinCreate.h, GemWinCreateXWin.cpp, + configLinux.h.in: enable fullscreen on X only if libXxf86vm is + present + +2005-09-11 12:25 zmoelnig + + * src/Controls/gemwin.cpp: removed a bit of verbosity + +2005-09-07 17:42 tigital + + * src/Pixes/: pix_videoDarwin.cpp, pix_videoDarwin.h: finally fixed + sequence grabber dialog, so now OSX users can select input + devices! + +2005-09-04 21:35 zmoelnig + + * src/: Base/TextBase.cpp, Base/TextBase.h, Geos/text2d.cpp, + Geos/text3d.cpp, Geos/text2d.h, Geos/text3d.h, + Geos/textextruded.cpp, Geos/textextruded.h, Geos/textoutline.cpp, + Geos/textoutline.h: added multiline-support (for FTGL) based on + georg holzmann's code however, multilines have to be broken into + lines outside of the [text]-objects; linebreaks are denoted with + "\n" (10) + +2005-09-04 20:27 zmoelnig + + * src/Pixes/: videoV4L2.cpp, videoV4L2.h: initial video4linux-2 + support; right now, it seems to be rather slow! a lot of + functionality is not implemented yet (like setting the channel) + + not yet for use! + +2005-09-04 20:21 zmoelnig + + * src/Makefile: GEM_OBJECTS are now a general {GEM_TARGETS}/*.o + rather than each object listed separately (some systems don't + support such a long list of arguments) + +2005-09-02 23:58 cclepper + + * src/Pixes/pix_record.cpp: added loop to match codecType and codec + value. makes pjpeg default work on any machine. + +2005-08-31 23:25 cclepper + + * src/Pixes/pix_movieDarwin.cpp: added check for m_haveMovie in + setRate to prevent crashing + +2005-08-30 18:27 zmoelnig + + * src/Pixes/pix_videoNEW.cpp: a bit more verbosity on startup, so + people will no what to send to "driver" + +2005-08-29 04:26 tigital + + * src/Pixes/: pix_texture.cpp, pix_texture.h: added outlet to + output texture ID, which is useful for multitexturing and + ARB_programs... + +2005-08-27 22:35 zmoelnig + + * src/Pixes/pix_image.cpp: maybe a hack to fix the tiny memory leak + that i suspect to be in the cache LATER: really fix the cache (or + remove it entirely) + +2005-08-27 15:12 zmoelnig + + * src/Pixes/pix_buffer.cpp: free image-data when loading (after the + image has been copied into the buffer) + +2005-08-26 18:40 zmoelnig + + * src/: aclocal.m4, configure: "binaries" for the latest changes to + acinclude.m4 and configure.ac + +2005-08-26 18:39 zmoelnig + + * src/configure.ac: also make a check for package "lqt" (which is + libquicktime), since there might be an "lqt"-config installed. + +2005-08-26 18:37 zmoelnig + + * src/acinclude.m4: (hopefully) even better library checking: if + pkg-config cannot find , we try -config to get + the cflags and libs. + +2005-08-26 15:54 zmoelnig + + * src/configure.ac: test for libquicktime instead of quicktime + (there exits a pkg-config for libquicktime on debian) do not + automatically add "-lavcodec" when successfully testing for + avformat: either the pkg-config test succeeds or the user should + really provide PKG_FFMPEG_LIBS to get it right + +2005-08-26 15:51 zmoelnig + + * src/acinclude.m4: a bit better: if PKG__LIBS is defined + from outside but pkg-config fails, we do not test with + AC_CHECK_PKG but trust the user + +2005-08-26 15:50 zmoelnig + + * src/Pixes/: filmQT4L.h, pix_filmLinux.h: include + rather than the path may change and + should be reported by autoconf + +2005-08-26 14:31 zmoelnig + + * src/Pixes/: pix_freeframe.cpp, pix_freeframe.h: no freeframe + support if sizeof(void*)!=sizeof(unsigned int) + +2005-08-26 14:25 zmoelnig + + * src/: configure.ac, Base/configLinux.h.in: added checks for the + size of (void*) and (unsigned int) (on x86_64 they are not the + same (8 vs 4) and so casts won't work (needed for pix_freeframe) + +2005-08-26 14:22 zmoelnig + + * src/README.linux: some information on how to workaround to get + PIC-versions of certain libraries (ffmpeg, ftgl) + +2005-08-26 13:23 zmoelnig + + * src/Pixes/pix_buffer_read.h: forgot to remove update_pix_buffer() + remove m_buffer (since this is only used locally) + +2005-08-26 00:37 cclepper + + * src/Pixes/: pix_videoDarwin.cpp, pix_videoDarwin.h: added regular + and IIDC controls for video adjustment. tinkering with vdig + settings for capture rects. + +2005-08-26 00:35 cclepper + + * src/Pixes/: pix_record.cpp, pix_record.h: more cleaning. fixed + possible memory leak + +2005-08-26 00:34 cclepper + + * src/Manips/separator.cpp: fixed memory leak + +2005-08-25 18:55 zmoelnig + + * src/Pixes/pix_buffer_read.cpp: further performance improvements + (without crashes) + +2005-08-25 17:59 zmoelnig + + * src/Pixes/filmFFMPEG.cpp: another attempt to get the fps from + ffmpeg (the different versions of this library with the same + version-number are driving me...) + +2005-08-25 11:18 zmoelnig + + * src/Pixes/filmFFMPEG.cpp: there seem to be different versions of + ffmpeg-4.0.9 around: one (from CVS!) which takes an extra + flags-argument for av_seek_frame() and one that does not. so i + did an extra ifdef, whether the AV_SEEK_FLAGS are defined + +2005-08-24 15:20 zmoelnig + + * src/Pixes/: pix_buffer_read.cpp, pix_buffer_read.h: implemented + (similar to) georg's implementation (but made it less crash + prone) should be faster, but if the content of the pix_buffer + changes, this is not automatically reflected on pix_buffer_read's + outlet (you must retrigger the index) + +2005-08-24 14:34 zmoelnig + + * src/Pixes/: pix_buffer.cpp, pix_buffer.h: added "open"-message to + read images (no movies yet) + +2005-08-24 13:47 zmoelnig + + * src/Pixes/videoDV4L.cpp: verbosity now also states something + about where it comes from ("DV4L: closed" instead of "closed") + +2005-08-24 13:45 zmoelnig + + * src/Pixes/pix_videoNEW.cpp: removed ifdef's; they should be + handled by inheritance + +2005-08-24 13:34 zmoelnig + + * src/Pixes/pix_filmNEW.cpp: query the FPS and report it to the + info-outlet (now we have: "list + "; should we split it into separate messages with prepends + like "fps " ??) + +2005-08-24 13:29 zmoelnig + + * src/Pixes/: film.cpp, film.h, filmAVI.cpp, filmAVIPLAY.cpp, + filmFFMPEG.cpp, filmMPEG1.cpp, filmMPEG3.cpp, filmQT4L.cpp: added + a getFPS()-message to query the frames-per-second (as reported by + the decoding unit) + +2005-08-23 17:01 zmoelnig + + * src/Pixes/filmQT4L.cpp: compiler shutups + +2005-08-23 14:28 zmoelnig + + * src/Pixes/filmFFMPEG.cpp: started to crash again and then stopped + (??); anyhow did some more initialization + +2005-08-22 19:06 zmoelnig + + * src/Pixes/pix_filmNEW.cpp: added some comments on why which + decoding-library is placed where moved FFMPEG backwards (as it + fails more often than not and is not really stable) + +2005-08-22 18:43 zmoelnig + + * src/Pixes/filmFFMPEG.cpp: even more bug-fixes + +2005-08-22 16:05 zmoelnig + + * src/Pixes/: filmFFMPEG.cpp, filmFFMPEG.h: bug-fix: now it is + possible to decode some movies (i don't think the code worked at + all before) more bug-fix: doesn't crash so easily anymore even + more bug-fix: allow seeking of frames when possible (but this is + rather seldom) + +2005-08-22 16:03 zmoelnig + + * src/Pixes/film.cpp: use initialization outside of constructor + +2005-08-19 21:17 zmoelnig + + * src/Vertex/: fragment_program.cpp, fragment_program.h, + vertex_program.cpp, vertex_program.h: these have moved to + src/Manips in HEAD + +2005-08-19 19:26 zmoelnig + + * src/Manips/fragment_program.cpp: fixed small type + +2005-08-19 17:52 zmoelnig + + * src/Base/GemBase.h: added [{fragment,vertex}_program] from the + vertex_array-branch. (if DONT_USE_ARB is set, neither fragment- + nor vertex-programs should be build) a bit of re-ordering of the + include-files taken from the vertex_array-branch: just in case we + ever need to include GL/gl.h in GemState.h, this would break all + the weird glext-stuff, because GL/gl.h would be included _before_ + we do our magic; now it should work + +2005-08-19 17:49 zmoelnig + + * src/Manips/: fragment_program.cpp, fragment_program.h, + vertex_program.cpp, vertex_program.h: added + [{fragmen,vertex}_program] from the vertex_array-branch. + +2005-08-19 16:18 zmoelnig + + * src/: Make.config.in, Make.include, Makefile, Makefile.subdir, + README.linux, TODO, acinclude.m4, aclocal.m4, config.guess, + config.sub, configure, configure.ac, gem.dsp, install-sh, + Base/GemMath.h, Base/GemSIMD.h, Base/GemVector.cpp, + Base/GemVector.h: added files from MAIN (20050819) + +2005-08-19 16:12 zmoelnig + + * src/Base/: GemBase.h, GemCache.cpp, GemMan.cpp, GemState.cpp, + GemState.h: merged with MAIN (20050819) + +2005-08-19 14:52 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h, GemShape.cpp, + configNT.h: updated to MAIN (20050819) + +2005-08-19 14:46 zmoelnig + + * src/Base/: CPPExtern.cpp, CPPExtern.h, GemExportDef.h, + GemFuncUtil.h, GemGLUtil.cpp, GemGLUtil.h, GemGluObj.cpp, + GemGluObj.h, GemMan.h, GemPathBase.cpp, GemPixImageLoad.cpp, + GemPixImageSave.cpp, GemWinCreate.h, GemWinCreateMac.cpp, + GemWinCreateNT.cpp, GemWinCreateXWin.cpp, Matrix.cpp, + TextBase.cpp, config.h, sgiimage.cpp: updated to MAIN (20050819) + +2005-08-19 14:32 zmoelnig + + * src/: Geos/circle.cpp, Geos/colorSquare.cpp, Geos/cube.cpp, + Geos/cuboid.cpp, Geos/cuboid.h, Geos/curve.cpp, Geos/curve3d.cpp, + Geos/cylinder.cpp, Geos/disk.cpp, Geos/model_loader.cpp, + Geos/model_loader.h, Geos/newWave.cpp, Geos/newWave.h, + Geos/polygon.cpp, Geos/primTri.cpp, Geos/rectangle.cpp, + Geos/ripple.cpp, Geos/ripple.h, Geos/rubber.cpp, Geos/rubber.h, + Geos/slideSquares.cpp, Geos/sphere.cpp, Geos/square.cpp, + Geos/teapot.cpp, Geos/text2d.cpp, Geos/textoutline.cpp, + Geos/triangle.cpp, Geos/tube.cpp, Geos/tube.h, Manips/camera.cpp, + Manips/camera.h, Manips/ortho.cpp, MarkEx/MarkExSetup.cpp, + MarkEx/abs.cpp, MarkEx/average.cpp, MarkEx/counter.cpp, + MarkEx/hsvrgb.cpp, MarkEx/m_control.cpp, MarkEx/multiselect.cpp, + MarkEx/randomF.cpp, MarkEx/reson.cpp, MarkEx/strcat.cpp, + MarkEx/tripleLine.cpp, MarkEx/vector.cpp, Nongeos/light.cpp, + Nongeos/light.h, Nongeos/world_light.cpp, Nongeos/world_light.h, + Particles/papi.h, Particles/part_vector.h, + Particles/partlib_actions.cpp, Particles/partlib_opengl.cpp, + Particles/partlib_system.cpp, Particles/partlib_vector.h, + Pixes/dv1394.h, Pixes/filmAVI.cpp, Pixes/filmAVI.h, + Pixes/filmAVIPLAY.cpp, Pixes/filmAVIPLAY.h, Pixes/filmFFMPEG.cpp, + Pixes/filmFFMPEG.h, Pixes/filmMPEG1.cpp, Pixes/filmMPEG3.cpp, + Pixes/filmQT.cpp, Pixes/filmQT.h, Pixes/filmQT4L.cpp, + Pixes/pix_buffer.cpp, Pixes/pix_buffer.h, + Pixes/pix_buffer_read.h, Pixes/pix_colorreduce.cpp, + Pixes/pix_colorreduce.h, Pixes/pix_convert.h, + Pixes/pix_coordinate.cpp, Pixes/pix_coordinate.h, + Pixes/pix_crop.cpp, Pixes/pix_film.cpp, Pixes/pix_film.h, + Pixes/pix_filmDarwin.cpp, Pixes/pix_filmFFMPEG.h, + Pixes/pix_filmNEW.cpp, Pixes/pix_filmNEW.h, Pixes/pix_filmNT.cpp, + Pixes/pix_filmQT.cpp, Pixes/pix_filmQT.h, Pixes/pix_halftone.cpp, + Pixes/pix_halftone.h, Pixes/pix_imageInPlace.cpp, + Pixes/pix_kaleidoscope.cpp, Pixes/pix_kaleidoscope.h, + Pixes/pix_movie.cpp, Pixes/pix_movie.h, + Pixes/pix_movieDarwin.cpp, Pixes/pix_movieDarwin.h, + Pixes/pix_movieYUV.cpp, Pixes/pix_movieYUV.h, + Pixes/pix_resize.cpp, Pixes/pix_resize.h, Pixes/pix_rgba.h, + Pixes/pix_rtx.cpp, Pixes/pix_sig2pix.cpp, Pixes/pix_sig2pix.h, + Pixes/pix_texture.cpp, Pixes/pix_video.cpp, Pixes/pix_video.h, + Pixes/pix_videoDS.cpp, Pixes/pix_videoDarwin.cpp, + Pixes/pix_videoDarwin.h, Pixes/pix_videoNEW.cpp, + Pixes/pix_videoNEW.h, Pixes/pix_videoNT.cpp, Pixes/pix_yuv.h, + Pixes/videoDV4L.cpp, Pixes/videoDV4L.h, Pixes/videoV4L.cpp, + Pixes/videoV4L.h: updated to MAIN (20050819) + +2005-08-19 14:28 zmoelnig + + * src/: openGL/GEMglAreTexturesResident.cpp, + openGL/GEMglAreTexturesResident.h, openGL/GEMglCallList.h, + openGL/GEMglGetString.cpp, + openGL/GEMglProgramEnvParameter4fvARB.cpp, openGL/GLdefine.cpp, + openGL/GLdefine.h, openGL/GEMglActiveTextureARB.cpp, + openGL/GEMglActiveTextureARB.h, openGL/GEMglBindProgramARB.cpp, + openGL/GEMglBindProgramARB.h, openGL/GEMglEndList.cpp, + openGL/GEMglEndList.h, openGL/GEMglGenProgramsARB.cpp, + openGL/GEMglGenProgramsARB.h, openGL/GEMglGetFloatv.cpp, + openGL/GEMglGetFloatv.h, openGL/GEMglLoadMatrixd.cpp, + openGL/GEMglLoadMatrixd.h, openGL/GEMglLoadMatrixf.cpp, + openGL/GEMglLoadMatrixf.h, openGL/GEMglLoadTransposeMatrixd.cpp, + openGL/GEMglLoadTransposeMatrixd.h, + openGL/GEMglLoadTransposeMatrixf.cpp, + openGL/GEMglLoadTransposeMatrixf.h, openGL/GEMglMultMatrixd.cpp, + openGL/GEMglMultMatrixd.h, openGL/GEMglMultMatrixf.cpp, + openGL/GEMglMultMatrixf.h, openGL/GEMglMultTransposeMatrixd.cpp, + openGL/GEMglMultTransposeMatrixd.h, + openGL/GEMglMultTransposeMatrixf.cpp, + openGL/GEMglMultTransposeMatrixf.h, + openGL/GEMglMultiTexCoord2fARB.cpp, + openGL/GEMglMultiTexCoord2fARB.h, openGL/GEMglNewList.cpp, + openGL/GEMglNewList.h, openGL/GEMglProgramEnvParameter4dARB.cpp, + openGL/GEMglProgramEnvParameter4dARB.h, + openGL/GEMglProgramLocalParameter4fvARB.cpp, + openGL/GEMglProgramLocalParameter4fvARB.h, + openGL/GEMglProgramStringARB.cpp, openGL/GEMglProgramStringARB.h, + openGL/GEMgluPerspective.cpp, openGL/GEMgluPerspective.h, + Controls/gemhead.cpp, Controls/gemwin.cpp, Controls/gemwin.h, + Controls/orbserial.cpp: updated to MAIN (20050819) + +2005-08-17 16:51 cclepper + + * src/Pixes/pix_filmDarwin.cpp: changed some of the file loading + code. should be faster to load a movie now. + +2005-08-17 16:49 cclepper + + * src/Pixes/pix_record.cpp: removed some debug lines + +2005-08-17 10:12 zmoelnig + + * Makefile: call the Makefile in src/ rather than src/Gnu + +2005-08-16 06:39 tigital + + * src/: Controls/gemwin.cpp, Controls/gemwin.h, Base/GemMan.cpp, + Base/GemMan.h: [OSX] added menubar message to [gemwin]: 1 = show + 0 = hide everything (full "kiosk" mode) -1 = hide menubar, but + autoShow with mouse at screen top - this is only effective when + gemwindow has "focus" + +2005-08-01 21:13 cclepper + + * src/Pixes/: pix_videoDarwin.cpp, pix_videoDarwin.h: device + selection works. started VDIG functions + +2005-08-01 21:12 cclepper + + * src/Pixes/: pix_record.cpp, pix_record.h: new frame count outlet + +2005-07-22 00:34 cclepper + + * src/Pixes/: pix_record.h, pix_record.cpp: added the basics for + message based compression settings. Fixed quite a few things + +2005-07-21 19:59 zmoelnig + + * src/Makefile: file Makefile was added on branch vertex_array on + 2005-08-19 14:18:07 +0000 + +2005-07-21 19:59 zmoelnig + + * src/Makefile: fixed the "clean" target + +2005-07-20 00:55 cclepper + + * src/Pixes/: pix_record.h, pix_record.cpp: added ifdef for + _APPLE__ + +2005-07-20 00:35 cclepper + + * src/Pixes/: pix_record.cpp, pix_record.h: initial commit + +2005-07-16 19:36 zmoelnig + + * src/: configure, configure.ac: do checking for ARB even if + specified explicitely (this also turns on the check if you don't + specify whether you want ARB or not) + +2005-07-16 19:36 zmoelnig + + * src/configure: file configure was added on branch vertex_array on + 2005-08-19 14:18:07 +0000 + +2005-07-16 19:36 zmoelnig + + * src/configure.ac: file configure.ac was added on branch + vertex_array on 2005-08-19 14:18:07 +0000 + +2005-07-15 15:29 zmoelnig + + * src/: acinclude.m4, aclocal.m4, configure, configure.ac: (changed + 2 files, committed 4...) a mechanism for finding files from + optional libraries (those that can be turned off with + "--without-BLA") "--with-BLA-includes=/bi/ba/bo" will add + "-I/bi/ba/bo" to the CXXFLAGS "--with-BLA-libs=/foo/bar" will add + "-L/foo/bar" to the LIBS if the support for this library is + turned OFF (--without-BLA), then these flags will do nothing. + the arguments need be paths (a check is performed whether the + given directory exists) however, they can also be relative paths! + +2005-07-15 15:29 zmoelnig + + * src/acinclude.m4: file acinclude.m4 was added on branch + vertex_array on 2005-08-19 14:18:07 +0000 + +2005-07-15 15:29 zmoelnig + + * src/aclocal.m4: file aclocal.m4 was added on branch vertex_array + on 2005-08-19 14:18:07 +0000 + +2005-07-15 12:11 zmoelnig + + * src/: acinclude.m4, aclocal.m4, configure, configure.ac: checking + for X-infrastructure on OS-X only if explicitely desired by the + user (with "--with-x"); by default it is turned off added alias + "--with-imagemagick" for "--with-ImageMagick" fixed BUG, that + prevented configure from checking for optional libraries: if the + checking for 1 library was turned off, all consectuive libraries + were automatically turned off too (i guess it was the same with + truning ON, but haven't tested) + +2005-07-14 22:45 zmoelnig + + * src/: configure, configure.ac: more quoting in configure.ac + checked in configure, so people don't have to go through the + hazzle of autoconf + +2005-07-14 22:38 zmoelnig + + * src/configure.ac: made the strip-test less verbose + +2005-07-07 15:03 zmoelnig + + * src/Pixes/pix_filmNT.cpp: use std::max() instead of max() as + suggested by T.Schulze to make it compile on windows with gcc; + hope this doesn't break M$VC-compilation btw: pix_filmNT should + NOT be used; use pix_filmNEW instead + +2005-07-07 13:37 zmoelnig + + * src/configure.ac: added "--with-pd" flag for the bundle-loader; + if neither this flag is given nor PD_BINARY is set, $(which pd) + is used (so the path pd should be in $PATH) + +2005-07-07 13:30 zmoelnig + + * src/: acinclude.m4, aclocal.m4: fixed GEM_CHECK_LDFLAGS: better + detection whether sucess or not fixed GEM_CHECK_FRAMEWORK: + "-framwork" is a linker flag instead of a compiler flag. adapted + changes to GEM_CHECK_LDFLAGS + + also included acinclude.m4, since this is really just a copy of + aclocal.m4 (with my automake) and adding this files removes a + dependency on automake + +2005-07-07 13:25 zmoelnig + + * src/Makefile.subdir: delete depen-files + +2005-07-07 13:25 zmoelnig + + * src/Makefile.subdir: file Makefile.subdir was added on branch + vertex_array on 2005-08-19 14:18:07 +0000 + +2005-07-07 13:24 zmoelnig + + * src/Makefile: use "-C"-flag to make instead of "cd" when + (dist)cleaning subdirectories + +2005-07-07 13:22 zmoelnig + + * src/Base/GemMath.h: file GemMath.h was added on branch + vertex_array on 2005-08-19 14:18:07 +0000 + +2005-07-07 13:22 zmoelnig + + * src/: Particles/partlib_actions.cpp, Controls/gemwin.cpp, + Particles/partlib_vector.h, Pixes/pix_halftone.h, + Base/GemFuncUtil.h, Base/GemMath.h: moved stuff from + GemLibs/darwinStuff/ into GemMath.h reflect this in the files + that included the old files + +2005-07-07 09:34 zmoelnig + + * src/Pixes/filmQT.cpp: moved variable declarations to the + beginning of the open()-function, so they are not crossed by + goto-jumps + +2005-07-07 09:28 zmoelnig + + * src/Pixes/pix_freeframe.cpp: removed call to + class_set_extern_dir() in __APPLE__ + +2005-07-04 20:05 zmoelnig + + * src/README.linux: copied from Gnu/README.build and added more + information + +2005-07-04 20:05 zmoelnig + + * src/README.linux: file README.linux was added on branch + vertex_array on 2005-08-19 14:18:07 +0000 + +2005-07-04 14:11 zmoelnig + + * src/Base/TextBase.cpp: set glNormal3f() before rendering, so + [text3d] becomes robust against changing the normal from outside + (e.g. like [textextruded]) is this is a bug in ftgl ? + +2005-07-04 14:10 zmoelnig + + * src/Pixes/FreeFrame.h: changed __apple__ to __APPLE__ + +2005-07-04 13:54 zmoelnig + + * src/Pixes/: filmAVI.cpp, filmAVIPLAY.cpp, filmFFMPEG.cpp, + filmMPEG1.cpp, filmMPEG3.cpp, filmQT.cpp, filmQT4L.cpp, + pix_filmNEW.cpp: more beautiful (?) output on failure... + +2005-07-04 13:17 zmoelnig + + * src/Pixes/pix_videoNEW.cpp: use HAVE_VIDEO4LINUX rather than + __linux__ + +2005-07-04 13:16 zmoelnig + + * src/Pixes/: videoV4L.cpp, videoV4L.h: use HAVE_VIDEO4LINUX rather + than __linux__ commented out some verbosity + +2005-07-04 13:05 zmoelnig + + * src/Pixes/pix_filmNEW.cpp: turn of debug mode + +2005-07-04 11:22 zmoelnig + + * src/Pixes/: pix_filmNEW.cpp, pix_filmNEW.h: you can now specify a + preferred library for decoding a file. if one is specified, it + is tried as the first lib. if it fails, all libs are tried in the + default order (read: the specified lib is tried twice: once as + the preferred lib, and once as part of all libs) + +2005-07-04 11:20 zmoelnig + + * src/Pixes/: filmAVI.cpp, filmAVIPLAY.cpp, filmMPEG1.cpp, + filmMPEG3.cpp, filmQT.cpp, filmQT4L.cpp: print " failed" + when not being able to open instead of " unsupported" + +2005-07-04 11:18 zmoelnig + + * src/Pixes/filmFFMPEG.cpp: fixed codec initialization + +2005-07-04 10:43 zmoelnig + + * src/acinclude.m4: renamed GEM_WITH_TARGET to GEM_TARGET (and use + AC_ARG_ENABLE instead of AC_ARG_WITH) + +2005-07-04 10:42 zmoelnig + + * src/Makefile: Gem.${EXT} depends on subdirs + +2005-07-04 10:40 zmoelnig + + * src/configure.ac: added flag for videofilm-new removed "Base" + from the selectable modules + +2005-07-04 10:36 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: added a function for + swapping Red and Blue that works in-place + +2005-07-04 10:35 zmoelnig + + * src/Base/configLinux.h.in: added comments added NEW_VIDEOFILM + +2005-07-03 21:03 zmoelnig + + * src/: Make.config.in, Makefile.subdir, configure.ac: added check + for "dos2unix" + +2005-07-03 21:03 zmoelnig + + * src/Make.config.in: file Make.config.in was added on branch + vertex_array on 2005-08-19 14:18:07 +0000 + +2005-07-03 20:53 zmoelnig + + * src/: Make.config.in, Makefile.subdir, configure.ac: use "-MM" + for "make depend" with gnu-preprocessors + +2005-07-03 20:42 zmoelnig + + * src/Make.include: file Make.include was added on branch + vertex_array on 2005-08-19 14:18:07 +0000 + +2005-07-03 20:42 zmoelnig + + * src/: Make.config.in, Make.include, Makefile, Makefile.subdir, + configure.ac: updated build-system after having a look at the + Gnu-make documentation what's better: SOURCES are generated on + the fly .cpp-files containing whitespaces are ignored + (rather than crashing the build.process) dependencies are + calculated on a per-file basis (rather than via Make.depend) + better subdirectory handling (not for "clean"ing though) + better check for "strip" (partly taken from wine) + +2005-06-29 17:44 zmoelnig + + * src/Pixes/pix_rtx.cpp: use size_t for datasize + +2005-06-29 16:45 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: use "size_t" for + dataSize instead of "int" or "long" or "unsigned char" ... + +2005-06-27 18:11 zmoelnig + + * src/configure.ac: fixed typo + +2005-06-26 20:03 zmoelnig + + * src/configure.ac: prettier results better handling of "strip" + +2005-06-26 19:38 zmoelnig + + * src/: Make.config.in, Makefile, configure.ac: use configure to + set the extension -"- to set reference-path -"- to set STRIP (on + real check though) + +2005-06-26 17:33 zmoelnig + + * src/: acinclude.m4, configure.ac: added checks for LDFLAGS + +2005-06-26 17:11 zmoelnig + + * src/Base/configLinux.h.in: HAVE_LIBAV{format,codec} is now + convered by HAVE_FFMPEG additionally we now have a + HAVE_VIDEO4LINUX + +2005-06-26 17:07 zmoelnig + + * src/: acinclude.m4, configure.ac: framework-checks and + cxxflags-checks + +2005-06-26 14:46 zmoelnig + + * src/Makefile: "configure"-target + +2005-06-26 14:39 zmoelnig + + * src/install-sh: file install-sh was added on branch vertex_array + on 2005-08-19 14:18:07 +0000 + +2005-06-26 14:39 zmoelnig + + * src/: acinclude.m4, configure.ac, install-sh: works better (still + not yet where we want to be) + +2005-06-25 18:49 zmoelnig + + * src/config.guess: file config.guess was added on branch + vertex_array on 2005-08-19 14:18:07 +0000 + +2005-06-25 18:49 zmoelnig + + * src/config.sub: file config.sub was added on branch vertex_array + on 2005-08-19 14:18:07 +0000 + +2005-06-25 18:49 zmoelnig + + * src/: Make.config.in, Makefile, Makefile.subdir, config.guess, + config.sub, configure.ac: first try of a new build-system based + on gnters code, autoconf>2.57 and that gets rid of the + Gnu-directory + +2005-06-20 16:47 zmoelnig + + * help/scopeXYZ~.pd: updated documentation + +2005-06-20 16:47 zmoelnig + + * help/: pix_resize.pd, pix_video.pd: updated documentation (thanks + to georg holzmann) + +2005-06-20 16:41 zmoelnig + + * src/Base/GemPixUtil.cpp: fixed documentation + +2005-06-20 16:41 zmoelnig + + * src/openGL/GEMglMultiTexCoord2fARB.h: added newline to end of + file + +2005-06-20 16:41 zmoelnig + + * src/openGL/GEMglMultiTexCoord2fARB.h: file + GEMglMultiTexCoord2fARB.h was added on branch vertex_array on + 2005-08-19 12:29:56 +0000 + +2005-06-19 20:45 zmoelnig + + * src/: Base/CPPExtern.h, Base/GemBase.h, Base/GemExportDef.h, + Base/GemGluObj.h, Base/GemMan.cpp, Base/GemMan.h, + Base/GemPathBase.cpp, Base/GemPixImageLoad.cpp, + Base/GemPixImageSave.cpp, Base/GemPixUtil.cpp, Base/GemPixUtil.h, + Base/GemState.cpp, Base/GemWinCreate.h, Base/GemWinCreateMac.cpp, + Base/GemWinCreateNT.cpp, Base/TextBase.cpp, Base/config.h, + Base/sgiimage.cpp, Controls/gemwin.cpp, Controls/gemwin.h, + Controls/orbserial.cpp, Geos/model_loader.h, Manips/camera.h, + Manips/shearXY.cpp, Manips/shearXY.h, Manips/shearXZ.cpp, + Manips/shearXZ.h, Manips/shearYX.cpp, Manips/shearYX.h, + Manips/shearYZ.cpp, Manips/shearYZ.h, Manips/shearZX.cpp, + Manips/shearZX.h, Manips/shearZY.cpp, Manips/shearZY.h, + MarkEx/abs.cpp, MarkEx/average.cpp, MarkEx/counter.cpp, + MarkEx/hsvrgb.cpp, MarkEx/m_control.cpp, MarkEx/multiselect.cpp, + MarkEx/randomF.cpp, MarkEx/reson.cpp, MarkEx/strcat.cpp, + MarkEx/tripleLine.cpp, MarkEx/vector.cpp: replaced WIN32 (or NT) + (or _WINDOWS) (or...) by __WIN32__ + +2005-06-19 20:41 zmoelnig + + * src/Particles/: papi.h, part_vector.h, partlib_actions.cpp, + partlib_opengl.cpp, partlib_system.cpp, partlib_vector.h: + replaced WIN32 with __WIN32__ + +2005-06-19 20:38 zmoelnig + + * src/gem.dsp: unix2dos (m$vc does _not_ like unix-linebreaks in + the dsp-file) added newer files use __WIN32__ instead of other + windows-defines + +2005-06-19 20:36 zmoelnig + + * src/Base/configNT.h: added DONT_INCLUDE_GLEXT (i think this is + the default on most windows-compile-machines, and currently it + fails to work on my setting, when i have time to fix it, i will + re-enable glext on w32) + +2005-06-19 20:34 zmoelnig + + * src/Pixes/: filmAVI.cpp, filmAVI.h, filmAVIPLAY.h, filmQT.cpp, + filmQT.h, pix_buffer.h, pix_film.cpp, pix_filmNT.cpp, + pix_filmQT.h, pix_freeframe.cpp, pix_freeframe.h, + pix_kaleidoscope.h, pix_movie.cpp, pix_movie.h, + pix_movieDarwin.h, pix_movieYUV.cpp, pix_movieYUV.h, + pix_video.cpp, pix_videoDS.cpp, pix_videoNT.cpp: renamed defines + "NT", "WIN32" and "_WINDOWS" by "__WIN32__" + +2005-06-19 20:32 zmoelnig + + * src/openGL/GEMgluPerspective.cpp: file GEMgluPerspective.cpp was + added on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2005-06-19 20:32 zmoelnig + + * src/openGL/GEMgluPerspective.h: file GEMgluPerspective.h was + added on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2005-06-19 20:32 zmoelnig + + * src/openGL/: GEMgluPerspective.cpp, GEMgluPerspective.h: suddenly + m$vc didn't like variables "near" and "far", so i renamed them to + "m_near" and "m_far" + +2005-06-19 19:11 zmoelnig + + * src/Pixes/FreeFrame.h: ifdef'ed (re)definition of + WIN32_LEAN_AND_MEAN + +2005-06-19 19:10 zmoelnig + + * src/Pixes/pix_multiblob.cpp: fixed recursion-bug with distance() + +2005-06-19 18:58 zmoelnig + + * src/Base/GemGluObj.h: added re-definition of GLU_SILHOUETTE + _after_ including the openGL-headers + +2005-06-14 08:57 zmoelnig + + * src/Base/sgiimage.cpp: fixed a bug discovered (and fixed) by + matju, where image-files that opened but turned out to be a + non-sgi-image, where not closed again. + +2005-06-09 18:09 ggeiger + + * src/gem.dsp: Replaced "Programme" with PROGRAMFILES environment + variable for finding m_pd.h + +2005-06-09 17:35 ggeiger + + * GEM_INSTALL.bat: use ProgramFiles variable to detect path to pd + +2005-06-03 11:29 zmoelnig + + * src/Pixes/: pix_videoLinux.cpp, pix_videoLinux.h: on linux, we + are using pix_videoNEW instead of pix_videoLinux for ages, it's + time to remove it. hopefully we can do this for other platforms + sometime as well + +2005-06-03 11:20 zmoelnig + + * src/Base/: GemDag.cpp, GemDag.h: GemDAG has been obsoleted for + years, it's time to remove it. (probably something similar will + reappear once we have threaded rendering to multiple windows) + +2005-06-03 11:10 zmoelnig + + * src/Gnu/configure: removed: people should (well, now they "must") + run autoconf in order to generate their own configure-script + +2005-06-03 11:09 zmoelnig + + * src/Gnu/README.build: added a note that tells people to run + "autoconf" before "./configure" + +2005-06-03 10:57 zmoelnig + + * src/Controls/: gemwin.cpp, gemwin.h: colors can now be RGB or + (new:) RGBA + +2005-06-03 08:55 zmoelnig + + * src/Base/GemWinCreateXWin.cpp: commented out XCloseDisplay() + which keeps Gem from freezing but is only a direty workaround + (memory-leak + X-server hates too many open displays) added a big + warning to not forget it.... + +2005-06-03 08:54 zmoelnig + + * src/Base/GemBase.h: HELPSYMBOL_BASE must be defined _before_ + including CPPExtern.h to have any effect + +2005-06-02 13:25 zmoelnig + + * src/Pixes/: pix_mean_color.cpp, pix_mean_color.h: added + YUV-support normalized output to 0..1 (instead of 0..255) always + output RGBA-values (even for grayscale and YUV; alpha defaults to + 1.0) + +2005-06-01 18:42 tigital + + * src/Pixes/: pix_convert.h, pix_resize.cpp, pix_rgba.h: [OSX] + OpenGL headers are now centrally located in Base/GemMan.h + +2005-06-01 18:40 tigital + + * src/Pixes/pix_yuv.h: corrected description + +2005-06-01 18:35 tigital + + * src/Pixes/: pix_movie.cpp, pix_movieDarwin.cpp, pix_movieYUV.cpp: + [OSX] OpenGL headers are in Base/GemMan.h + +2005-06-01 18:34 tigital + + * src/Pixes/pix_videoDarwin.cpp: [OSX] correct call to + dialogCallback, not dialogMess (shuts up gcc4.0 warning); small + header change + +2005-06-01 18:28 tigital + + * src/Pixes/: pix_halftone.cpp, pix_halftone.h: [NEW] added scale + variable for scale of halftone [OSX] compile-time check (via + AvailabilityMacros.h) for support of sinf() & friends in math.h + (now defined in >10.4.x) + +2005-06-01 17:57 tigital + + * src/Pixes/: pix_filmQT.cpp, pix_filmQT.h: [OSX] converted the + last of the MACOSX to __APPLE__ ifdef's? + +2005-06-01 17:48 tigital + + * src/Pixes/FreeFrame.h: coalesced #ifdef between linux & apple + (since they are the same typedefs) + +2005-06-01 17:46 tigital + + * src/Pixes/FreeFrame.h: [OSX] corrected #ifdef and added LPVOID + define + +2005-06-01 17:43 tigital + + * src/Particles/: partlib_actions.cpp, partlib_vector.h: [OSX] + compile-time check (via AvailabilityMacros.h) for support of + sinf() & friends in math.h (now defined in >10.4.x) + +2005-06-01 17:40 tigital + + * src/Manips/ortho.cpp: header includes now centralized in + Base/GemMan.h + +2005-06-01 17:38 tigital + + * src/Geos/: text2d.cpp, textoutline.cpp: [OSX] converted the last + of the MACOSX to __APPLE__ ifdef's? + +2005-06-01 17:36 tigital + + * src/Geos/sphere.cpp: more readable formatting + +2005-06-01 17:32 tigital + + * src/Controls/gemwin.cpp: [OSX] compile-time check (via + AvailabilityMacros.h) for support of sinf() & friends in math.h + (now defined in >10.4.x) + +2005-06-01 17:26 tigital + + * src/: Geos/square.cpp, Base/GemShape.cpp, Base/GemShape.h: + corrected spelling of SetVertex() + +2005-06-01 17:20 tigital + + * src/Base/GemMan.h: now includes all OpenGL/ headers for OSX + +2005-06-01 17:16 tigital + + * src/Base/GemPixUtil.cpp: switched from vec_unpack2sh() (which + apparently never existed, yet worked prior to 10.4.x!) to + vec_mergeh(); new #ifdef __TIMING__ for timing frame process of + altivec vs. scalar color conversions + +2005-06-01 17:08 tigital + + * src/Base/GemWinCreateXWin.cpp: added "#ifdef unix" so osx doesn't + try compiling it (at least until the future?) + +2005-06-01 17:06 tigital + + * src/Base/GemWinCreateMac.cpp: gcc4.0 fixes and miscellaneous + cleanups: AGL's swapinterval now set in BuildGLContext() + +2005-06-01 16:59 tigital + + * src/Base/configDarwin.h.in: needed for proper Darwin + configure-ing + +2005-06-01 16:56 tigital + + * src/Gnu/configure.in: added Darwin configure stuff + +2005-06-01 16:54 tigital + + * src/Gnu/Makefile.in: replaced ".pd_linux" with $(TARGET) so that + we can use this on more than one platform + +2005-05-30 21:54 zmoelnig + + * src/Gnu/configure.in: use "ffmpeg-config --plugin-libs" instead + of "ffmpeg-config --libs" this allows us to link on x86_64 + without problems + +2005-05-25 20:44 zmoelnig + + * src/Pixes/: pix_film.cpp, pix_film.h, pix_video.cpp: looked at + the ugly #define-hacks and got some things right note: these + classes should vanish altogether on all platforms and be replaced + by the NEW-thingie. + +2005-05-23 17:03 zmoelnig + + * src/Gnu/: configure, configure.in: made libjpeg and libtiff + OPTIONAL libraries (which are used by default if available) so + platforms that dont have these libs (like OSX) don't fail to + configure any more + +2005-05-23 17:01 zmoelnig + + * src/Base/configNT.h: added HAVE_LIBJPEG and HAVE_LIBTIFF in order + to compile with image reading/writing support + +2005-05-23 16:58 zmoelnig + + * src/Base/: GemPixImageLoad.cpp, GemPixImageSave.cpp, + configLinux.h.in: made JPEG and TIFF reading/writing a + compile-option this removes the _hard_ dependency on libjpeg and + libtiff, which should make the configure easier on platforms that + don't need libjpeg/libtiff + +2005-05-23 14:11 zmoelnig + + * src/Gnu/: configure.in, configure: enforcing of the presence of + libtiff, libjpeg and libpng is only need on linux (btw, it + shouldn't be enforced here too!) + +2005-05-23 13:59 zmoelnig + + * src/: Base/config.h, Base/configLinux.h.in, Gnu/configure.in, + Pixes/filmFFMPEG.cpp, Pixes/filmFFMPEG.h, Pixes/pix_filmFFMPEG.h: + better detection for FFMPEG (now we also have autodetection; i + hope ffmpeg has stabilized the API enough, so this won't break + for some months) + +2005-05-23 13:56 zmoelnig + + * src/Gnu/Makefile.subdir: added preprocessor-flags CPPFLAGS to the + compiler-flags + +2005-05-23 11:29 zmoelnig + + * src/Gnu/configure.in: enforce X only on Linux (Darwin can do + without) + +2005-05-23 11:02 zmoelnig + + * src/Gnu/Makefile.subdir: on "distclean" remove ALL .o (and .obj) + files, even those that are not in Make.source + +2005-05-21 04:34 tigital + + * src/Gnu/makesource: corrected spelling + +2005-05-19 13:41 zmoelnig + + * src/Gnu/: acinclude.m4, aclocal.m4, configure: did better + quoting, this should fix the issues with autoconf>2.53 + +2005-05-17 16:00 zmoelnig + + * src/Gnu/configure.in: changed uname-flags "--machine" and + "--kernel-name" to "-m" and "-s" (which should work on osX too + +2005-05-17 02:24 tigital + + * src/Gnu/: config.guess, config.sub: updates for config system + that identify darwin 10.4 + +2005-05-13 21:48 zmoelnig + + * src/Pixes/pix_crop.cpp: [pix_crop] now straights images that are + upside down (this is: if you have the same pix-material as both + "normal" and "upsidedown", the same parameters to [pix_crop] will + now produce the same results this change has the same performance + as the old one, it just makes life easier + +2005-05-10 18:51 zmoelnig + + * src/Nongeos/: light.cpp, light.h, spot_light.cpp, spot_light.h, + world_light.cpp, world_light.h: added [spot_light] by + Pierre-Oliver Charlebois; did some changes to make it use the + world_light parent-class instead of reinventing the wheel. hope + this doesn't break anything with the original version + +2005-05-04 20:31 zmoelnig + + * src/Pixes/: pix_buffer.h, pix_buffer_read.cpp, + pix_buffer_write.cpp: fixed the "external" pix_buffer_class + +2005-05-04 15:22 zmoelnig + + * src/Base/CPPExtern.h: added a flag to declare the + pdclass-definition non-static (so we can findbyclass() from other + objects) + +2005-05-04 15:21 zmoelnig + + * src/Pixes/: pix_buffer.cpp, pix_buffer.h, pix_buffer_read.cpp, + pix_buffer_read.h, pix_buffer_write.cpp: finally made + [pix_buffer_read] and [pix_buffer_write] to be in their own + source-files added automatic playback and cyclic reading of + [pix_buffer_read] (based on an idea of Florian Grond & Lasse + Scherffig) + +2005-05-03 19:32 zmoelnig + + * src/Base/configLinux.h.in: entry for DONT_USE_ARB + +2005-05-03 19:31 zmoelnig + + * src/Gnu/configure.in: added runtime-checking for glBindProgramARB + the results are displayed in Base/configLinux.h rather than via + command-line args to the compiler + +2005-05-03 17:47 zmoelnig + + * src/Gnu/configure.in: added some verbose output at the end of + configuration, so the user will know what is going on + +2005-05-03 13:35 zmoelnig + + * src/Pixes/: pix_freeframe.cpp, pix_freeframe.h: on windows (and + maybe osX too?) the host-side interface looks a bit different + than on linux a couple of #define's should fix that. + + fixed an error on windows+osX that came from stupid copy'n'paste + from the pd-sources for dynamic loading + + the FreeFrame-specs said something about a "maximum" of 8 + parameters, which is exceeded by some plugins as i just noticed; + removed the clamping of numparams to 8 (don't know why it was + there in the first place) + + i hope this includes the changes needed to make it compile on osX + haven't tested these changes on windows yet, but after my + experiences i made yesterday when i booted into windows, it + _should_ work + +2005-04-27 11:26 zmoelnig + + * src/Pixes/: pix_coordinate.cpp, pix_coordinate.h: changed + behaviour for rectangle textures to be conformant to the + behaviour with non-rectangle textures:: "1,1" always denotes the + upper-right corner of the pixel-buffer, so the user need not care + what kind of texture they are using + +2005-04-27 11:24 zmoelnig + + * src/Pixes/pix_texture.cpp: set "state->texture" to "2", when + using rectangle textures don't overwrite "m_repeat" with + "GL_CLAMP" when doing rectangle-textures, as they will ignore + that flag anyhow + +2005-04-27 11:21 zmoelnig + + * src/Base/GemState.h: more advanced usage of the "texture": + 2==rectangle (so we can react on the specifics of + rectangle-textures in downstream objects) + +2005-04-26 05:34 tigital + + * src/Base/GemPixUtil.cpp: corrected yv12 to rgb on osx, yv12 to + rgba/bgra, and error reporting for copy2ImageStruct + +2005-04-26 03:58 tigital + + * src/Pixes/pix_movement2.h: changed boolean to bool, which is + osx-compilable and more in line with the rest of gem's codebase + +2005-04-25 19:01 zmoelnig + + * help/pix_movement2.pd: help-patch for [pix_movement2] + +2005-04-25 19:00 zmoelnig + + * src/Pixes/: pix_movement2.cpp, pix_movement2.h: another object + that tries to get the movement within an image-stream + +2005-04-24 23:59 cclepper + + * src/Pixes/pix_coordinate.cpp: added check for state->texture and + that actual coordinates exist in the render method + +2005-04-21 16:58 zmoelnig + + * src/Pixes/pix_freeframe.cpp: initial support for loading plugins + un windows and osX (still not tested) + +2005-04-21 14:05 zmoelnig + + * src/Gnu/configure.in: fixed... + +2005-04-21 13:46 zmoelnig + + * src/Gnu/configure.in: added an enable-flag for + --freg-struct-return (for FreeFrame-plugins) since i am not sure + what this will break it is disabled by default; if you want to + use the FreeFrame-plugins, the option is either to compile Gem + with this flag or to recompile the plugins without... + +2005-04-21 11:42 zmoelnig + + * src/Pixes/pix_freeframe.cpp: fixed bug that crashed pd/Gem when + an exception was thrown (wrong type...) fixed bug with a + parameter-offset of 1 + +2005-04-20 19:31 zmoelnig + + * src/Pixes/: FreeFrame.h, pix_freeframe.cpp, pix_freeframe.h, + pix_imageInPlace.cpp: initial support for FreeFrame-plugins + currently i have only tested this on linux + +2005-04-18 19:06 zmoelnig + + * src/Base/GemBase.h: usage of the "--disable-ARB" to disable + ARB-vertex-shaders + +2005-04-18 19:02 zmoelnig + + * src/Gnu/: configure, configure.in: adding a "--disable-ARB" flag + for disabling the build of ARB-vertex-programs + +2005-04-18 17:59 zmoelnig + + * src/Gnu/: configure, configure.in: added feed-back when checking + for avifile (before, there was nothing indicating that libavifile + will be used if (and only if) it was found) + +2005-04-18 17:52 zmoelnig + + * src/Base/: GemPixImageLoad.cpp, GemPixImageSave.cpp, + configLinux.h.in: added support for ImageMagick++ (used here for + loading and saving images) + +2005-04-18 17:51 zmoelnig + + * src/Gnu/: acinclude.m4, aclocal.m4, configure, configure.in: + added support for ImageMagick (currently used for loading/writing + images) + +2005-04-18 16:08 zmoelnig + + * src/Geos/: circle.cpp, curve.cpp, curve3d.cpp, cylinder.cpp, + disk.cpp, newWave.cpp, ripple.cpp, rubber.cpp, sphere.cpp, + teapot.cpp, torus.cpp, tube.cpp: fixed a bug that crashed Gem + when using this object with [pix_imageInPlace]: the + texcoord-array was accessed without checking the size of it + first!! + +2005-04-18 15:17 zmoelnig + + * src/Gnu/: configure, configure.in: regrouped things even more + (put type-checks before library-checks) + +2005-04-18 14:52 zmoelnig + + * src/Gnu/: Makefile.in, Makefile.subdir, acinclude.m4, aclocal.m4, + configure, configure.in: cleaned up autoconf a bit + prelaminary + support for icc + grouped header/library search together + + FIRST search whether headers are present, THEN look for matching + libraries + hopefully fixed bug, where compile stopped when no + font-rendering-libs where installed + +2005-04-13 19:33 zmoelnig + + * src/Pixes/: filmQT.cpp, videoDV4L.cpp: a function that claims to + return an integer should return an integer + +2005-04-11 18:14 tigital + + * src/openGL/GEMglBindProgramARB.cpp: [stupid]correct name in + header + +2005-04-11 18:14 zmoelnig + + * src/openGL/GEMglBindProgramARB.cpp: file GEMglBindProgramARB.cpp + was added on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2005-04-07 14:52 zmoelnig + + * examples/09.openGL/02.displayList.pd: an example for using + display-lists + +2005-04-07 13:06 zmoelnig + + * help/scopeXYZ~.pd: help for [scopeXYZ~] + +2005-04-06 21:02 zmoelnig + + * src/Geos/scopeXYZ.cpp: made [scopeXYZ~] work (although there is + still one single point left that sometimes occurs at 0/0/0) + +2005-04-05 12:52 zmoelnig + + * src/openGL/GEMglGetFloatv.cpp: file GEMglGetFloatv.cpp was added + on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2005-04-05 12:52 zmoelnig + + * src/openGL/GEMglGetFloatv.h: file GEMglGetFloatv.h was added on + branch vertex_array on 2005-08-19 12:29:56 +0000 + +2005-04-05 12:52 zmoelnig + + * src/openGL/GEMglNewList.cpp: file GEMglNewList.cpp was added on + branch vertex_array on 2005-08-19 12:29:56 +0000 + +2005-04-05 12:52 zmoelnig + + * src/openGL/GEMglNewList.h: file GEMglNewList.h was added on + branch vertex_array on 2005-08-19 12:29:56 +0000 + +2005-04-05 12:52 zmoelnig + + * src/openGL/: GEMglEndList.cpp, GEMglEndList.h, + GEMglGetFloatv.cpp, GEMglGetFloatv.h, GEMglNewList.cpp, + GEMglNewList.h: added wrapper for glEndList() and glNewList(): + this is cool as it allows to makeuser defined display-lists + (performance boost) + +2005-04-05 12:52 zmoelnig + + * src/openGL/GEMglEndList.cpp: file GEMglEndList.cpp was added on + branch vertex_array on 2005-08-19 12:29:56 +0000 + +2005-04-05 12:52 zmoelnig + + * src/openGL/GEMglEndList.h: file GEMglEndList.h was added on + branch vertex_array on 2005-08-19 12:29:56 +0000 + +2005-04-04 18:50 zmoelnig + + * help/pix_multiblob.pd: a help-patch + +2005-04-04 18:27 zmoelnig + + * abstractions/: pix_blobtracker-help.pd, pix_blobtracker.pd: + adapted to the longer feature-vectors of [pix_multiblob]; a first + help-patch + +2005-04-04 18:24 zmoelnig + + * src/Pixes/: pix_multiblob.cpp, pix_multiblob.h: output more + information (like minX/Y, weighted position,...) weighted + position produces more stable tracking + +2005-04-01 09:45 zmoelnig + + * src/Base/GemPixUtil.cpp: #ifdef'ed the altivec code properly, so + it will compile on other systems as well + +2005-04-01 03:26 tigital + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: initial altivec speedups + to: bgra to yuv; yv12 to yuv + +2005-03-31 18:25 zmoelnig + + * help/: colorSquare.pd, torus.pd, teapot.pd: updated documentation + a bit + +2005-03-31 18:07 zmoelnig + + * src/Base/GemGluObj.cpp: missed a "break" in a case-loop. + +2005-03-31 17:58 zmoelnig + + * src/Base/GemGluObj.cpp: use "GL_DEFAULT_GEM" instead of "-1" as + the default drawType (negative values are a bad idea for GLenum) + + (and fix the parsing of the drawstyle a big) + +2005-03-31 17:55 zmoelnig + + * src/Base/GemShape.cpp: use "GL_DEFAULT_GEM" instead of "-1" as + the default drawType (negative values are a bad idea for GLenum) + +2005-03-31 17:47 zmoelnig + + * abstractions/pix_blobtracker.pd: a blobtracker based on + [pix_multiblob] and some objects from "iemmatrix" + +2005-03-31 17:00 zmoelnig + + * src/Geos/: circle.cpp, colorSquare.cpp, cube.cpp, cuboid.cpp, + curve.cpp, curve3d.cpp, cylinder.cpp, disk.cpp, newWave.cpp, + polygon.cpp, primTri.cpp, rectangle.cpp, scopeXYZ.cpp, + slideSquares.cpp, sphere.cpp, square.cpp, teapot.cpp, torus.cpp, + triangle.cpp, tube.cpp: use "GL_DEFAULT_GEM" instead of "-1" as + the default drawType (negative values are a bad idea for GLenum) + +2005-03-31 16:58 zmoelnig + + * src/Base/GemBase.h: added a new drawType "GL_DEFAULT_GEM" (since + using "-1" was a bad idea for GLenum) + +2005-03-31 16:40 zmoelnig + + * src/Gnu/: configure, configure.in: changed LIBS="-Wl,-shared + -Wl,-export-dynamic $LIBS" to LIBS="-shared -Wl,-export-dynamic + $LIBS" this should fix the problem with FC3 + +2005-03-31 08:42 zmoelnig + + * src/Base/GemPixUtil.cpp: there are even better conversions (at + least you can control all YUV<->RGB conversion on a central + point) + +2005-03-30 22:02 zmoelnig + + * src/Pixes/: pix_multiblob.cpp, pix_multiblob.h: a detector for + multiple blobs (no tracking! as this should be done externally); + the output-data is in zexy/iemmatrix's "matrix" format; i am not + sure whether this is really good (as it makes libraries + interdependent and of course i favour my own libs) but it is much + more elegant than anything else i could think of + +2005-03-30 21:48 zmoelnig + + * src/Geos/: scopeXYZ.cpp, scopeXYZ.h, torus.cpp, torus.h: new + Geos: [scopeXYZ~] and [torus] + +2005-03-30 20:58 zmoelnig + + * src/: Base/GemPixUtil.h, Base/GemShape.cpp, Geos/circle.cpp, + Geos/colorSquare.cpp, Geos/cube.cpp, Geos/cuboid.cpp, + Geos/curve.cpp, Geos/curve3d.cpp, Geos/cylinder.cpp, + Geos/disk.cpp, Geos/newWave.cpp, Geos/polygon.cpp, + Geos/primTri.cpp, Geos/rectangle.cpp, Geos/ripple.cpp, + Geos/rubber.cpp, Geos/slideSquares.cpp, Geos/sphere.cpp, + Geos/square.cpp, Geos/teapot.cpp, Geos/triangle.cpp, + Geos/tube.cpp: added "default"-drawtype + +2005-03-22 21:41 zmoelnig + + * src/Base/GemPixUtil.cpp: changed RGB<->YUV conversion to be more + standards-compliant; clamped the results + +2005-03-22 03:48 tigital + + * src/openGL/: GEMglActiveTextureARB.cpp, GEMglActiveTextureARB.h, + GEMglMultiTexCoord2fARB.cpp, GEMglMultiTexCoord2fARB.h, + GEMgluPerspective.cpp, GEMgluPerspective.h: more OpenGL wrappers + I've had sitting on my drive + +2005-03-22 03:48 zmoelnig + + * src/openGL/GEMglActiveTextureARB.cpp: file + GEMglActiveTextureARB.cpp was added on branch vertex_array on + 2005-08-19 12:29:56 +0000 + +2005-03-22 03:48 zmoelnig + + * src/openGL/GEMglActiveTextureARB.h: file GEMglActiveTextureARB.h + was added on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2005-03-22 03:48 zmoelnig + + * src/openGL/GEMglMultiTexCoord2fARB.cpp: file + GEMglMultiTexCoord2fARB.cpp was added on branch vertex_array on + 2005-08-19 12:29:56 +0000 + +2005-03-09 01:24 tigital + + * src/Base/GemMan.cpp: IOhannes: the gl headers and such are in + GemMan.h: why would you want to put them in GemMan.cpp? I'm a + big fan of including headers in, um, the header :-) Btw, the + "GL/ vs. OpenGL/" thing is due to apple's use of framework's... + +2005-03-07 16:33 zmoelnig + + * src/Base/GemPixUtil.h: use DONT_INCLUDE_GLEXT rather than the + INCLUDE_GLEXT (which is nowhere defined) + +2005-03-07 16:31 zmoelnig + + * src/Base/GemMan.cpp: properly include GL/glext.h (btw, wtfh are + apple's openGL-headers in openGL/ instead of GL/ ... nevermind) + +2005-03-07 10:19 zmoelnig + + * src/Base/CPPExtern.h: include to enable the use of real C++ + constructors + +2005-03-06 12:21 zmoelnig + + * src/MarkEx/: MarkExSetup.cpp, m_control.cpp: removed [change] (is + in pd for some times) + +2005-02-28 02:15 tigital + + * src/Base/GemPixUtil.h: - added support for YV12(short*) for + pdp2gem - added support for RGB/BGR to setCsizeByFormat - began + altivec support (non-functional atm) + +2005-02-28 01:05 tigital + + * src/Base/GemPixUtil.cpp: - added support for YV12(short*) for + pdp2gem - added support for RGB/BGR to setCsizeByFormat - began + altivec support (non-functional atm) + +2005-02-07 19:18 zmoelnig + + * src/openGL/: GEMglAreTexturesResident.cpp, + GEMglAreTexturesResident.h, GEMglCallList.h: cleaned up, and + removed crashes + +2005-02-07 16:56 zmoelnig + + * src/openGL/GEMglGetString.cpp: fixed bug that crashed pd when + NULL was returned by glGetString() + +2005-02-07 16:31 zmoelnig + + * src/Controls/: gemlist_info.cpp, gemlist_info.h: cleaned up a bit + +2005-02-07 16:07 zmoelnig + + * src/Pixes/: dv1394.h, videoDV4L.h: using own "dv1394.h", since + libdv4-dev has skipped this file + +2005-02-07 16:05 zmoelnig + + * src/Geos/: tube.cpp, tube.h: windoze does not like array-sizes + that are determined at runtime + +2005-02-07 14:59 zmoelnig + + * src/Base/GemWinCreateXWin.cpp: catching errors that might get + thrown by glx + +2005-02-07 14:42 zmoelnig + + * src/Base/GemWinCreateXWin.cpp: catching errors that might get + thrown by glx + +2005-02-07 14:21 zmoelnig + + * src/Manips/: camera.cpp, camera.h: use Base/GemVector instead of + own CVector3 + +2005-02-07 14:20 zmoelnig + + * src/Base/GemVector.h: file GemVector.h was added on branch + vertex_array on 2005-08-19 14:18:07 +0000 + +2005-02-07 14:20 zmoelnig + + * src/Base/: GemVector.cpp, GemVector.h: a class for 3D-vectors + (formerly found in Manips/camera) + +2005-02-07 14:20 zmoelnig + + * src/Base/GemVector.cpp: file GemVector.cpp was added on branch + vertex_array on 2005-08-19 14:18:07 +0000 + +2005-02-07 13:46 zmoelnig + + * src/Nongeos/setup.h: oh, it's here again... + +2005-02-07 13:45 zmoelnig + + * src/Pixes/: pix_dv.cpp, pix_dv.h, pix_dvLinux.cpp, pix_dvLinux.h: + [pix_dv] is covered by [pix_video] + +2005-02-07 13:43 zmoelnig + + * src/Gnu/README.build: updated a bit + +2005-02-07 13:04 zmoelnig + + * src/Base/GemBase.h: hopefully really fixed the including of + GL/glext.h: use DONT_INCLUDE_GLEXT instead of INCLUDE_GLEXT + additionally use GL_GLEXT_LEGACY, as this auto-includes glext.h + on some sytems (mesa) + +2005-02-07 13:02 zmoelnig + + * src/Base/configNT.h: use FILM__NEW instead of __FILM__NEW use + DONT_INCLUDE_GLEXT instead of INCLUDE_GLEXT + +2005-02-07 13:00 zmoelnig + + * src/openGL/GEMglLoadTransposeMatrixf.cpp: file + GEMglLoadTransposeMatrixf.cpp was added on branch vertex_array on + 2005-08-19 12:29:56 +0000 + +2005-02-07 13:00 zmoelnig + + * src/openGL/GEMglMultTransposeMatrixd.cpp: file + GEMglMultTransposeMatrixd.cpp was added on branch vertex_array on + 2005-08-19 12:29:56 +0000 + +2005-02-07 13:00 zmoelnig + + * src/openGL/GEMglMultTransposeMatrixf.cpp: file + GEMglMultTransposeMatrixf.cpp was added on branch vertex_array on + 2005-08-19 12:29:56 +0000 + +2005-02-07 13:00 zmoelnig + + * src/openGL/GEMglProgramEnvParameter4dARB.cpp: file + GEMglProgramEnvParameter4dARB.cpp was added on branch + vertex_array on 2005-08-19 12:29:56 +0000 + +2005-02-07 13:00 zmoelnig + + * src/openGL/GEMglProgramLocalParameter4fvARB.cpp: file + GEMglProgramLocalParameter4fvARB.cpp was added on branch + vertex_array on 2005-08-19 12:29:56 +0000 + +2005-02-07 13:00 zmoelnig + + * src/openGL/GEMglProgramStringARB.cpp: file + GEMglProgramStringARB.cpp was added on branch vertex_array on + 2005-08-19 12:29:56 +0000 + +2005-02-07 13:00 zmoelnig + + * src/openGL/GEMglLoadTransposeMatrixd.cpp: file + GEMglLoadTransposeMatrixd.cpp was added on branch vertex_array on + 2005-08-19 12:29:56 +0000 + +2005-02-07 13:00 zmoelnig + + * src/openGL/: GEMglLoadTransposeMatrixd.cpp, + GEMglLoadTransposeMatrixf.cpp, GEMglMultTransposeMatrixd.cpp, + GEMglMultTransposeMatrixf.cpp, GEMglProgramEnvParameter4dARB.cpp, + GEMglProgramEnvParameter4fvARB.cpp, + GEMglProgramLocalParameter4fvARB.cpp, GEMglProgramStringARB.cpp: + fixed defines: gl*TransposeMatrix() are available onle on + openGL>=1.3 (not >=1.1 as it was) gl*ARB() were used only, if + GL_ARB_vertex_program was un(!)defined... + +2005-01-31 21:26 tigital + + * src/Base/GemWinCreateMac.cpp: now functional on osx + +2005-01-31 18:50 tigital + + * GEM_darwin.pbproj/project.pbxproj: updated to my setup + +2005-01-14 09:54 zmoelnig + + * src/Gnu/configure.in: added the missing " to the NEW_VIDEOFILM + definition + +2005-01-14 09:53 zmoelnig + + * src/Gnu/makesource: ./configure does not call "makesource" but + includes it; thus the "$@" is not as expected an (empty) list of + directories for which we should generate Make.source but rather + "dummy sh"; now we check, whether the running script ($0) is + "*configure", and if so, we assume that the "passed" list is 0. + +2005-01-12 20:20 zmoelnig + + * src/Gnu/configure: oops again; forgot a " + +2005-01-12 19:12 zmoelnig + + * src/Gnu/configure: oops; should run again (note: this is just + rev1.27 with __NEW__ replaced by NEW_VIDEOFILM) + +2005-01-11 12:44 zmoelnig + + * src/: Gnu/configure, Gnu/configure.in, Pixes/pix_film.h, + Pixes/pix_filmNEW.h, Pixes/pix_video.h, Pixes/pix_videoNEW.h, + Base/config.h: who the f**k used "__NEW__" to enable/disable + different film/movie-objects ??? preprocessor-defines starting + with "__" are system only!! i have renamed __NEW__ to + NEW_VIDEOFILM __FILM __NEW to FILM_NEW and __VIDEO__NEW to + VIDEO_NEW + +2005-01-11 11:22 zmoelnig + + * src/Base/: CPPExtern.cpp, CPPExtern.h: added Exceptions: whenever + we don't want an object to be created because of + boundary-conditions (e.g. wrong arguments) we can now throw a + GemException("errorstring") which is caught by the setup-routine + and prevents the object from being created; + + fixed the m_objectname thing: now even the constructor of a + GemObject will now the name that was used to create it (as far as + we can tell) + +2004-12-26 18:43 tigital + + * src/Geos/model_loader.h: oops! shouldn't include + "Base/GemFuncUtil.h" after #ifdef __cplusplus extern "C" {...} + +2004-12-24 10:54 timblech + + * src/Pixes/pix_mean_color.cpp: fixed bug + +2004-12-22 19:03 tigital + + * src/Nongeos/world_light.h: - header consolidation: #includes + should go in headers (or in this case, already are)! + +2004-12-22 18:49 tigital + + * src/Pixes/: pix_colorreduce.cpp, pix_colorreduce.h: ppc only: + sqrt speed up via assembly instruction (at least 2x) - header + consolidation: #includes should go in headers! - correctly + converts YUV to RGBA and back, if needed + +2004-12-22 18:48 tigital + + * src/Manips/: camera.cpp, camera.h: ppc only: sqrt speed up via + assembly instruction (at least 2x) - header consolidation: + #includes should go in headers! - now fills/uses Gem's + gluLookAt() + +2004-12-22 18:44 tigital + + * src/: Particles/part_vector.h, Particles/partlib_actions.cpp, + Particles/partlib_vector.h, Base/GemFuncUtil.h, Base/Matrix.cpp, + Geos/model_loader.cpp, Geos/model_loader.h, Geos/newWave.cpp, + Geos/newWave.h, Geos/ripple.cpp, Geos/ripple.h, Geos/rubber.cpp, + Geos/rubber.h, Pixes/pix_kaleidoscope.cpp, + Pixes/pix_kaleidoscope.h, Pixes/pix_sig2pix.cpp, + Pixes/pix_sig2pix.h, Controls/gemlist_info.cpp, + Controls/gemlist_info.h: ppc only: sqrt speed up via assembly + instruction (at least 2x) - header consolidation: #includes + should go in headers! + +2004-12-22 18:00 tigital + + * src/Base/GemBase.h: rearrange/coalesce headers, added glu.h + +2004-12-22 17:58 tigital + + * src/Base/CPPExtern.h: add functions for 5 arguments + +2004-12-15 15:02 zmoelnig + + * src/Pixes/pix_gain.cpp: fixed to compile under win/lin again + +2004-12-15 07:21 tigital + + * src/Pixes/pix_videoDarwin.h: cleanup dialogMess + +2004-12-15 07:17 tigital + + * src/Pixes/pix_videoDarwin.cpp: fixed crash bug when changing + dimen or colorspace while rendering: some header cleanup, too + +2004-12-14 01:49 tigital + + * src/Controls/gemwindow.cpp: minimal OSX-only changes for + multiple_window branch, now it compiles :-) + +2004-12-14 01:40 tigital + + * src/Base/GemWinCreateMac.cpp: OSX-only changes for + multiple_window branch: added topmostGemWindow() (but don't know + what it's really supposed to do: this is just a copy of the + XWindows function), and added window bounds output to mouse + messages + +2004-12-14 01:30 tigital + + * src/Base/GemOutput.cpp: OSX-only changes: now it compiles + +2004-12-14 01:02 tigital + + * GEM_darwin.pbproj/project.pbxproj: update to my setup + +2004-12-14 00:41 tigital + + * src/Pixes/pix_gain.cpp: typo correction in altivec function name + +2004-12-14 00:25 tigital + + * src/Pixes/pix_2grey.h: type correction in altivec function name + +2004-12-13 18:51 zmoelnig + + * src/Output/gemextwin.cpp: added check whether there is a valid + display before destroying it... + +2004-12-13 14:22 zmoelnig + + * examples/04.video/01.VideoPaint.pd: fixed the patch; how comes it + is broken at all ? a check ensured, that even the example-patch + from gem-0.70 has the same weirdnesses - so the problem seems to + be a change in the pd-fileformat rather than the patch itself; + this should work now (although i am not sure, whether it really + does what it is supposed to do...) wow, what a long changelog.... + +2004-12-07 16:05 timblech + + * src/Pixes/pix_mean_color.cpp: simplified outlet + +2004-12-07 14:24 timblech + + * src/Pixes/: pix_mean_color.cpp, pix_mean_color.h: initial checkin + pix_mean_color + +2004-12-07 12:52 zmoelnig + + * src/Controls/gemwindow.cpp: output events through the outlet + instead of dedicated objects ([gemmouse]) + +2004-12-07 12:50 zmoelnig + + * src/Base/GemWinCreateXWin.cpp: changed the EventMask to get + focus-events + +2004-12-07 12:48 zmoelnig + + * src/Controls/gemwindow.h: added infoMess() to output information + +2004-12-07 12:47 zmoelnig + + * src/Base/: GemOutput.cpp, GemOutput.h: added an outlet for events + (and some comments) + +2004-12-06 14:58 zmoelnig + + * src/Vertex/vertex_draw.cpp: oops, last checkin had VBO + disabled... + +2004-12-06 14:43 zmoelnig + + * src/Vertex/: vertex_VBR.cpp, vertex_VBR.h: vector-based rotation + on a per-vertex basis; hard to handle though... + +2004-12-06 14:41 zmoelnig + + * src/Vertex/: vertex_tabread.cpp, vertex_tabread.h, + vertex_tabwrite.cpp, vertex_tabwrite.h: objects to read/write + data from/to tables; data is interleaved (e.g. vertex-data is + stored in the table as [x1 y1 z1 w1 x2 y2 z2 w2 ...]; probably + there is a need for [vertex_tabread4] that uses 4 tables for + non-interleaved data (x, y, z and w) + +2004-12-06 14:39 zmoelnig + + * src/Vertex/: vertex_draw.cpp, vertex_model.cpp: made all arrays + have 4 components; this enables us to use the color-array as + vertex-array and so on; thus is make any sense ? + +2004-12-06 10:38 zmoelnig + + * src/Gnu/makesource: merged in the changes from HEAD that allows + to give the subdirectories for which we want Make.source to be + created + +2004-12-06 10:34 zmoelnig + + * src/Pixes/: dv1394.h, videoDV4L.cpp: use the provided dv1394.h + instead of an external one + +2004-12-06 10:29 zmoelnig + + * src/Pixes/videoDV4L.h: use the local dv1394.h file + +2004-12-06 10:02 zmoelnig + + * src/openGL/setup.h: now it's gone in this galaxis; where will it + re-appear like undead ? + +2004-12-03 13:15 zmoelnig + + * src/Geos/cuboid.cpp: added newline at end of file + +2004-11-28 01:00 tigital + + * src/openGL/: GEMglBindProgramARB.cpp, GEMglBindProgramARB.h, + GEMglGenProgramsARB.cpp, GEMglGenProgramsARB.h, + GEMglProgramEnvParameter4dARB.cpp, + GEMglProgramEnvParameter4dARB.h, + GEMglProgramEnvParameter4fvARB.cpp, + GEMglProgramEnvParameter4fvARB.h, + GEMglProgramLocalParameter4fvARB.cpp, + GEMglProgramLocalParameter4fvARB.h, GEMglProgramStringARB.cpp, + GEMglProgramStringARB.h: some wrappers for gl "program" stuff: + should be ok for any GL with ARB_vertex_program and/or + ARB_fragment_program defined + +2004-11-28 01:00 zmoelnig + + * src/openGL/GEMglBindProgramARB.h: file GEMglBindProgramARB.h was + added on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2004-11-28 01:00 zmoelnig + + * src/openGL/GEMglGenProgramsARB.cpp: file GEMglGenProgramsARB.cpp + was added on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2004-11-28 01:00 zmoelnig + + * src/openGL/GEMglGenProgramsARB.h: file GEMglGenProgramsARB.h was + added on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2004-11-28 01:00 zmoelnig + + * src/openGL/GEMglProgramEnvParameter4dARB.h: file + GEMglProgramEnvParameter4dARB.h was added on branch vertex_array + on 2005-08-19 12:29:56 +0000 + +2004-11-28 01:00 zmoelnig + + * src/openGL/GEMglProgramLocalParameter4fvARB.h: file + GEMglProgramLocalParameter4fvARB.h was added on branch + vertex_array on 2005-08-19 12:29:56 +0000 + +2004-11-28 01:00 zmoelnig + + * src/openGL/GEMglProgramStringARB.h: file GEMglProgramStringARB.h + was added on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2004-11-28 00:51 tigital + + * src/openGL/: GEMglLoadMatrixd.cpp, GEMglLoadMatrixd.h, + GEMglLoadMatrixf.cpp, GEMglLoadMatrixf.h, + GEMglLoadTransposeMatrixd.cpp, GEMglLoadTransposeMatrixd.h, + GEMglLoadTransposeMatrixf.cpp, GEMglLoadTransposeMatrixf.h, + GEMglMultMatrixd.cpp, GEMglMultMatrixd.h, GEMglMultMatrixf.cpp, + GEMglMultMatrixf.h, GEMglMultTransposeMatrixd.cpp, + GEMglMultTransposeMatrixd.h, GEMglMultTransposeMatrixf.cpp, + GEMglMultTransposeMatrixf.h: wrappers for gl matrix stuff: + should be ok for all opengl versions since 1.1? + +2004-11-28 00:51 zmoelnig + + * src/openGL/GEMglLoadMatrixd.cpp: file GEMglLoadMatrixd.cpp was + added on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2004-11-28 00:51 zmoelnig + + * src/openGL/GEMglLoadMatrixd.h: file GEMglLoadMatrixd.h was added + on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2004-11-28 00:51 zmoelnig + + * src/openGL/GEMglLoadMatrixf.cpp: file GEMglLoadMatrixf.cpp was + added on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2004-11-28 00:51 zmoelnig + + * src/openGL/GEMglLoadMatrixf.h: file GEMglLoadMatrixf.h was added + on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2004-11-28 00:51 zmoelnig + + * src/openGL/GEMglLoadTransposeMatrixd.h: file + GEMglLoadTransposeMatrixd.h was added on branch vertex_array on + 2005-08-19 12:29:56 +0000 + +2004-11-28 00:51 zmoelnig + + * src/openGL/GEMglLoadTransposeMatrixf.h: file + GEMglLoadTransposeMatrixf.h was added on branch vertex_array on + 2005-08-19 12:29:56 +0000 + +2004-11-28 00:51 zmoelnig + + * src/openGL/GEMglMultMatrixd.cpp: file GEMglMultMatrixd.cpp was + added on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2004-11-28 00:51 zmoelnig + + * src/openGL/GEMglMultMatrixd.h: file GEMglMultMatrixd.h was added + on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2004-11-28 00:51 zmoelnig + + * src/openGL/GEMglMultMatrixf.cpp: file GEMglMultMatrixf.cpp was + added on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2004-11-28 00:51 zmoelnig + + * src/openGL/GEMglMultMatrixf.h: file GEMglMultMatrixf.h was added + on branch vertex_array on 2005-08-19 12:29:56 +0000 + +2004-11-28 00:51 zmoelnig + + * src/openGL/GEMglMultTransposeMatrixd.h: file + GEMglMultTransposeMatrixd.h was added on branch vertex_array on + 2005-08-19 12:29:56 +0000 + +2004-11-28 00:51 zmoelnig + + * src/openGL/GEMglMultTransposeMatrixf.h: file + GEMglMultTransposeMatrixf.h was added on branch vertex_array on + 2005-08-19 12:29:56 +0000 + +2004-11-28 00:47 tigital + + * src/openGL/: GLdefine.cpp, GLdefine.h: pedantic changes to header + & descriptions :-) + +2004-11-28 00:46 tigital + + * src/Base/: GemGLUtil.cpp, GemGLUtil.h: added defines for + multitexture, vertex/fragment programs, and matrix stuff...plus + pragma's to more easily find the numerical seperations + +2004-11-25 11:08 zmoelnig + + * src/Base/GemWinCreateNT.cpp: when we receive a + window-resize-event, we need not get the new dimensions + explicitly, as they are already given in the arguments... + +2004-11-24 16:53 zmoelnig + + * src/Controls/: gemlist_info.cpp, gemlist_info.h: Cyrille's + [gemlist_info] that gets the current transformation-matrix (why + have i not added this long before ???) + +2004-11-24 16:46 zmoelnig + + * src/Pixes/: pix_resize.cpp, pix_resize.h: made the new size + settable; LATER think about using a *faster* algorithm... + +2004-11-24 16:43 zmoelnig + + * src/Geos/square.cpp: fixed to match jamies spelling-correction in + Base/GemShape + +2004-11-24 16:37 zmoelnig + + * src/Controls/: gem_pdpin.cpp, gem_pdpin.h, gem_pdpout.cpp, + gem_pdpout.h: added templates for the gem2pdp-bridge + +2004-11-05 15:33 tigital + + * help/alpha.pd: added comments about auto message + +2004-11-05 15:30 tigital + + * src/Geos/: cuboid.cpp, cuboid.h: added blend message + +2004-10-27 12:53 zmoelnig + + * src/Base/GemBase.h: hacked a bit to get the glext-prototypes + loaded correctly with nvidia's headers... + +2004-10-27 12:43 zmoelnig + + * src/Vertex/fragment_program.cpp: added a lot of defines to + prevent from compiling on machines that don't support it... + +2004-10-26 02:58 tigital + + * src/Base/: GemShape.cpp, GemShape.h: spelling correction! + +2004-10-26 02:52 tigital + + * src/Base/GemState.h: updated to correct GemState for vbo's + +2004-10-26 02:42 tigital + + * GEM_darwin.pbproj/project.pbxproj: update to relative paths for + files; added new files (vertex_ & fragment_program & such) to + compile + +2004-10-26 02:40 tigital + + * src/Controls/gemhead.cpp: __APPLE__ instead of MACOSX + +2004-10-26 02:37 tigital + + * src/Vertex/vertex_draw.cpp: update to VBO version + +2004-10-26 02:35 tigital + + * src/Vertex/: fragment_program.cpp, vertex_program.cpp: fixed bad + header, added some debug info beyond just the "MAX_PROGRAM_*" + returns + +2004-10-22 15:44 tigital + + * examples/: data/64shade.bmp, data/toon.vp, + 02.advanced/16.vertex_program.pd: [no log message] + +2004-10-22 15:39 tigital + + * src/: Vertex/fragment_program.cpp, Vertex/fragment_program.h, + Vertex/vertex_program.cpp, Vertex/vertex_program.h, + openGL/GEMglProgramEnvParameter4fvARB.cpp, + openGL/GEMglProgramEnvParameter4fvARB.h: [no log message] + +2004-10-20 16:10 tigital + + * src/Base/GemFuncUtil.h: // powerOfTwo() optimization from + "Hacker's Delight": much faster! + +2004-10-12 20:34 zmoelnig + + * src/Pixes/: videoDV4L.cpp, videoDV4L.h: use the provided dv1394.h + instead of an external one + +2004-10-12 20:34 zmoelnig + + * src/Pixes/dv1394.h: added dv1394.h from "dvgrab"-sources + +2004-10-12 13:49 zmoelnig + + * src/Pixes/: videoDV4L.cpp, videoDV4L.h: use the dv1394.h from the + kernel and not the deprecated-one from libdv-dev + +2004-10-11 11:11 zmoelnig + + * src/Base/GemMan.cpp: [gemkeyname] under linux now behaves more + like pd's [keyname] (e.g. uniform keynames); thanks to gerard van + dongen + +2004-10-08 16:47 zmoelnig + + * src/: openGL/setup.h, Particles/setup.h, Pixes/setup.h: we don't + want this anymore: all objects are autoregistering + +2004-10-08 16:44 zmoelnig + + * src/: Manips/setup.h, Nongeos/setup.h: don't want this anymore: + objects are auto-registering themselves! + +2004-10-08 16:29 zmoelnig + + * src/Geos/setup.h: don't want this anymore: objects are + auto-registering themselves! + +2004-10-08 16:26 zmoelnig + + * src/Controls/setup.h: don't want this anymore: objects are + auto-registering themselves! + +2004-10-08 16:08 zmoelnig + + * src/Geos/curve.cpp: as cyrille requested: doing one more point... + (hope this doesn't break anything, but i guess cyrille is the + only one who really cares about such features) + +2004-10-08 15:35 zmoelnig + + * src/Geos/: newWave.cpp, newWave.h: fixed argument handling: 1 + argument: gridX=gridY 2 arguments: gridX, gridY 3 arguments: + gridX, gridY, height + +2004-09-15 17:41 zmoelnig + + * help/: gemlist_info.pd, newWave.pd, shearXY.pd, shearXZ.pd, + shearYX.pd, shearYZ.pd, shearZX.pd, shearZY.pd, tube.pd: new and + updated help-patches (thanks cyrille) + +2004-09-15 17:18 zmoelnig + + * src/Manips/: shearXY.cpp, shearXY.h, shearXZ.cpp, shearXZ.h, + shearYX.cpp, shearYX.h, shearYZ.cpp, shearYZ.h, shearZX.cpp, + shearZX.h, shearZY.cpp, shearZY.h: initial addition (thanks + cyrille) + +2004-09-15 17:06 zmoelnig + + * src/openGL/: GEMglGetFloatv.cpp, GEMglGetFloatv.h: initial + addition (thanks cyrille) + +2004-09-15 16:50 zmoelnig + + * src/Geos/: newWave.cpp, newWave.h: merged the newWave_texture in; + incorporated cyrilles changes: added dither-noise against + denormalization phenomenons: wouldn't it be better clamp + denormals to 0 like with PD_BADLFOAT ?? + +2004-09-15 15:15 zmoelnig + + * src/Geos/: tube.cpp, tube.h: cyrilles changes: made the number of + faces settable via a message#9 + +2004-09-06 14:13 zmoelnig + + * src/Vertex/: vertex_sub.cpp, vertex_sub.h: subtract to + vertex-arrays + +2004-09-06 14:12 zmoelnig + + * src/Vertex/: vertex_resize.cpp, vertex_resize.h: resize a + vertex-array: the resampling is rather poor (no interpolation) + +2004-09-06 14:12 zmoelnig + + * src/Vertex/: vertex_matrix.cpp, vertex_matrix.h: multiply a + vertex-array by a constant matrix + +2004-08-30 16:47 zmoelnig + + * src/Vertex/: vertex_draw.cpp, vertex_draw.h: rebuild the VBO if + the arrays are dirty (is this necessary on osX ?) removed a lot + of variables lingering around and doing nothing; inherit from + GemVertex instead of GemBase + +2004-08-30 16:44 zmoelnig + + * src/Vertex/: vertex_add.cpp, vertex_add.h: use of setModified(); + inherit from GemVertex instead of GemBase + +2004-08-30 16:44 zmoelnig + + * src/Vertex/vertex_grid.cpp: use of setModified(); allow 0x0-grids + +2004-08-30 16:42 zmoelnig + + * src/Vertex/: vertex_grid.h, vertex_info.h: inherit from GemVertex + instead of GemBase; + +2004-08-30 16:40 zmoelnig + + * src/Vertex/: vertex_model.cpp, vertex_model.h: inherit from + GemVertex instead of GemBase; use of setModified() + +2004-08-30 16:40 zmoelnig + + * src/Vertex/: vertex_combine.h, vertex_quad.h: inherit from + GemVertex instead of GemBase + +2004-08-30 16:39 zmoelnig + + * src/Vertex/: vertex_offset.cpp, vertex_set.cpp: use of + setModified() + +2004-08-30 16:39 zmoelnig + + * src/Vertex/: vertex_scale.cpp, vertex_scale.h: inherit from + GemVertex instead of GemBase; use of setModified(); renamed the + "mode"-message to "type" (now it is the same as for + DualVertex-manipulators) + +2004-08-30 16:36 zmoelnig + + * src/Geos/: color_set.cpp, color_set.h, vertex_combine.cpp, + vertex_combine.h, vertex_draw.cpp, vertex_draw.h, + vertex_grid.cpp, vertex_grid.h, vertex_info.cpp, vertex_info.h, + vertex_model.cpp, vertex_model.h, vertex_offset.cpp, + vertex_offset.h, vertex_quad.cpp, vertex_quad.h: moved to + src/Vertex + +2004-08-30 16:34 zmoelnig + + * src/Controls/gemhead.cpp: handle the "dirtyVertex" of GemState + and GemCache + +2004-08-30 16:33 zmoelnig + + * src/Base/: GemVertex.cpp, GemVertex.h: GemVertex is now the + parent-class of all the vertex-stuff; the main thing that is done + here is re-defining setModified() to tell the cache, that the + vertex-arrays have changed + +2004-08-30 15:22 zmoelnig + + * src/Base/: GemCache.cpp, GemCache.h, GemState.cpp, GemState.h: + added VertexDirty to indicate whether one of the vertex-arrays + has changed LATER: think about a flag for each vertex-array to + avoid uploading of unchanged arrays + +2004-08-27 17:31 tigital + + * src/Vertex/vertex_draw.cpp: forgot a coupla GL_DYNAMIC_DRAW_ARB's + +2004-08-27 16:34 tigital + + * src/Vertex/vertex_draw.cpp: cached VBO buffers better + +2004-08-27 08:51 zmoelnig + + * src/Manips/: vertex_scale.cpp, vertex_scale.h: this is now in + src/Vertex/ + +2004-08-27 08:49 zmoelnig + + * src/Vertex/: vertex_draw.cpp, vertex_draw.h: moved jamies changes + from src/Geos to src/Vertex; made it compile on linux (and i + guess on windows too) disabled VBO for non-macs as it slows down + the system by numbers... + +2004-08-27 08:47 zmoelnig + + * src/Vertex/glVBO_ext.h: moved from src/Geos to src/Vertex; + include instead of on non-apples + +2004-08-27 05:54 tigital + + * src/Geos/glVBO_ext.h: VBO support + +2004-08-27 05:50 tigital + + * src/Geos/: vertex_draw.h, vertex_draw.cpp: VBO support + +2004-08-26 14:21 zmoelnig + + * src/Vertex/: vertex_add.cpp, vertex_add.h, vertex_combine.cpp, + vertex_combine.h, vertex_draw.cpp, vertex_draw.h, + vertex_grid.cpp, vertex_grid.h, vertex_info.cpp, vertex_info.h, + vertex_model.cpp, vertex_model.h, vertex_mul.cpp, vertex_mul.h, + vertex_offset.cpp, vertex_offset.h, vertex_quad.cpp, + vertex_quad.h, vertex_scale.cpp, vertex_scale.h, vertex_set.cpp, + vertex_set.h: moved all the vertex_-objects from src/Geos to + src/Vertex; added vertex_mul, vertex_add vertex_offset,... now + work on all arrays + +2004-08-17 18:44 zmoelnig + + * src/Manips/: vertex_scale.cpp, vertex_scale.h: initial + [vertex_scale]: supports scaling of texcoords, normals, vertices, + color + +2004-08-17 17:27 zmoelnig + + * src/Base/: configNT.h, GemBase.h, GemMan.cpp, GemPixUtil.cpp, + GemPixUtil.h, GemVersion.h: merged with HEAD + +2004-08-17 17:13 zmoelnig + + * src/Pixes/: filmQT.cpp, pix_dot.cpp, pix_halftone.cpp, + pix_halftone.h, pix_texture.cpp, pix_texture.h, pix_texture2.cpp, + pix_texture2.h, videoV4L.cpp: merged with HEAD + +2004-08-17 16:45 zmoelnig + + * src/yuv/yuv_mask.cpp: src/yuv is deprecated + +2004-08-17 16:11 zmoelnig + + * src/Output/: gemextwin.cpp, gemextwin.h: this shouldn't have been + in the SIMD branch + +2004-08-17 15:27 zmoelnig + + * abstractions/gemwin.pd: a wrapper around [gemcontrol] and + [gemwindow] to provide compatibility with older patches + +2004-08-17 15:04 zmoelnig + + * src/Gnu/: configure, configure.in: updated version + +2004-08-17 14:59 zmoelnig + + * src/Controls/: gemwin.cpp, gemwin.h: [gemwin] is replaced by + [gemcontrol]+[gemwindow] + +2004-08-17 14:55 zmoelnig + + * src/Gnu/makesource: fixed a bug when no directory-list is given + at command-line (merged from HEAD) + +2004-08-17 14:53 zmoelnig + + * src/Gnu/makesource: fixed a bug when no directory-list is given + at command-line + +2004-08-17 14:45 zmoelnig + + * src/Base/GemFuncUtil.h: include GemSIMD (yes i know, that this is + branch multiple_window, but i have somehow cranked up the Pixes/ + when branching : Pixes/ were branched to "multiple_window" when + already in "SIMD"; so this allows at least to compile again + +2004-08-17 14:27 zmoelnig + + * src/Base/GemOutput.h: made all the non-static message-handlers + "virtual" so they can be overridden (e.g. if we don't want them) + +2004-08-17 14:10 zmoelnig + + * src/Base/GemMan.cpp: try to share display_lists (however, this + needs a LOT of re-thinking) + +2004-08-17 14:04 zmoelnig + + * src/Output/Makefile: hopefully this is now in BRANCH instead of + TAGged + +2004-08-17 14:01 zmoelnig + + * src/Output/GemExtContext.h: this has vanished entirely (i just + don't know how to check files into a branch) + +2004-08-17 13:40 zmoelnig + + * src/Output/GemExtContext.h: removed because the idea behind this + file was really nonsense (cannot share pointers across + applications) + +2004-08-14 21:59 zmoelnig + + * src/Output/: gemextwin.cpp, gemextwin.h: made it compile under + windows (though not really functional yet...) + +2004-08-14 15:36 zmoelnig + + * src/Base/GemState.h: merged in the vertex_array -branch (why: + because i have f**ed up the multiple_window-branch by mixing with + vertices and there is not much harm in changing this file) + +2004-08-14 15:14 zmoelnig + + * src/Output/: gemextwin.cpp, gemextwin.h: prelaminary windoze + support (not tested at all, just from guessing) + +2004-08-10 14:42 zmoelnig + + * src/Output/GemExtContext.h: do not use GEM_EXPORT (as it needs + other GemExportDef.h to be included + +2004-08-10 11:43 zmoelnig + + * src/Output/: GemExtContext.h, gemextwin.cpp, gemextwin.h: an + object to render into external displays (this is: the context is + *not* handled by Gem but by an external application) + +2004-08-10 11:40 zmoelnig + + * src/Output/: Makefile, gemwindow_qtExt.cpp, gemwindow_qtExt.h: + oje: "tagged" instead of "branched" (anyhow gemwindow_qtExt is + already deprecated) + +2004-08-09 19:36 zmoelnig + + * src/Output/Makefile: initial makefile for [gemwindow_qtExt] + +2004-08-09 19:36 zmoelnig + + * src/Output/: gemwindow_qtExt.cpp, gemwindow_qtExt.h: initial + output-module: [gemwindow_qtExt] (what an ugly name!) to render + to external qt-contexts + +2004-08-09 13:23 zmoelnig + + * src/Controls/gemwindow.cpp: re-enabled checking, whether we + already have a const context + +2004-08-09 11:19 zmoelnig + + * src/Base/GemOutput.cpp: oops: bufferMess() was doubled + +2004-08-09 10:34 zmoelnig + + * src/Base/GemOutput.cpp: implementation of bufferMess + +2004-08-09 10:33 zmoelnig + + * src/Controls/gemwindow.cpp: enabled use of shared contexts on + platforms other than osX (which had it already) + +2004-08-08 19:49 zmoelnig + + * src/Controls/: gemwindow.cpp, gemwindow.h: removed unneeded + variables (like m_windowRun and m_windowNumber) + +2004-08-08 19:24 zmoelnig + + * src/Pixes/: pix_snap2tex.cpp, pix_snap2tex.h, pix_write.cpp, + pix_write.h: use GemState->screenWidth instead of GemMan::m_width + (and vice versa for m_height) + +2004-08-08 14:38 zmoelnig + + * src/: Particles/part_color.cpp, Particles/part_damp.cpp, + Particles/part_draw.cpp, Particles/part_follow.cpp, + Particles/part_gravity.cpp, Particles/part_info.cpp, + Particles/part_killold.cpp, Particles/part_killslow.cpp, + Particles/part_orbitpoint.cpp, Particles/part_render.cpp, + Particles/part_size.cpp, Particles/part_source.cpp, + Particles/part_targetcolor.cpp, Particles/part_targetsize.cpp, + Particles/part_velcone.cpp, Particles/part_velocity.cpp, + Particles/part_velsphere.cpp, Particles/part_vertex.cpp, + Base/GemMan.cpp, Base/GemState.cpp, Base/GemState.h: changed + GemState->stereo to GemState->doUpdate + +2004-08-08 14:01 zmoelnig + + * src/Geos/: ripple.cpp, rubber.cpp: removed traces of GemMan + +2004-08-08 13:51 zmoelnig + + * src/Manips/ortho.cpp: set the viewpoint use + GemState->windowWidth/Height instead of GemMan::width/height + +2004-08-08 13:45 zmoelnig + + * src/Manips/camera.cpp: set the viewpoint immediately (do *not* + use GemMan::m_view) + +2004-08-08 13:39 zmoelnig + + * src/Base/GemState.h: add field for window-dimensions to the + GemState + +2004-08-08 13:37 zmoelnig + + * src/Base/GemOutput.cpp: add the window-dimensions to the GemState + +2004-08-07 19:29 zmoelnig + + * src/Controls/: gemwindow.cpp, gemwindow.h: made it run under NT + +2004-08-07 18:18 zmoelnig + + * src/Base/GemWinCreateNT.cpp: made the mousemotion-callback work + under nt + +2004-08-07 10:25 zmoelnig + + * src/: Base/GemEvent.cpp, Base/GemEvent.h, Controls/gemmouse.cpp, + Controls/gemmouse.h: the motionCallback for mouse) now reports + the window-dimensions too (for scaling/normalization) + +2004-08-07 10:24 zmoelnig + + * src/: Controls/gemwindow.cpp, Controls/gemwindow.h, + Base/GemOutput.cpp, Base/GemOutput.h: changed (renamed) the + render-functions a bit + +2004-08-07 09:16 zmoelnig + + * src/Controls/: gemcontrol.cpp, gemcontrol.h: forgot to add + [gemcontrol] (?) + +2004-08-06 18:51 zmoelnig + + * src/Controls/: gemwindow.cpp, gemwindow.h: trying to save the + constContext (LATER think about "sharing" contexts) + +2004-08-06 18:07 zmoelnig + + * src/Base/GemMan.cpp: stop rendering when the last [gemcontrol] + has vanished + +2004-08-06 17:18 zmoelnig + + * src/Base/: GemOutput.cpp, GemOutput.h: "lighting" now works + individually for each GemOutput + +2004-08-06 17:17 zmoelnig + + * src/Controls/: gemwindow.cpp, gemwindow.h: added "fsaa" + +2004-08-06 16:08 zmoelnig + + * src/Base/: GemMan.cpp, GemMan.h: [gemcontrol] now registers to + GemMan to get the render-clock + +2004-08-06 16:07 zmoelnig + + * src/Base/: GemOutput.cpp, GemOutput.h: "reset"-message + +2004-08-06 16:03 zmoelnig + + * src/Controls/: gemwindow.cpp, gemwindow.h: callbacks working + under linux + +2004-08-06 12:20 zmoelnig + + * src/Base/: GemMan.cpp, GemMan.h: stripped down and moved a lot of + code into GemOutput and [gemwindow] + +2004-08-06 12:20 zmoelnig + + * src/Base/: GemOutput.cpp, GemOutput.h: loads of functionality + from [gemwin] and GemBase moved into this one: + color,fog,viewpoint,.... + +2004-08-06 12:18 zmoelnig + + * src/Controls/: gemwindow.cpp, gemwindow.h: first output... + +2004-08-05 19:57 zmoelnig + + * src/Controls/gemhead.cpp: drawType reset to 0 instead of NULL + +2004-08-05 14:33 zmoelnig + + * src/Base/: GemOutput.cpp, GemOutput.h: put the actual + render-callback into doRender() + +2004-08-05 14:32 zmoelnig + + * src/Geos/: vertex_grid.cpp, vertex_grid.h: added object-arguments + for initial xsize/ysize + +2004-08-05 14:19 zmoelnig + + * src/Geos/vertex_draw.cpp: add a check whether we have a + NormalsArray (prevents crashes with [vertex_quad] and + [vertex_grid]) + +2004-08-04 09:19 zmoelnig + + * src/Geos/: vertex_offset.cpp, vertex_offset.h: made the + "offset"-message understand 2(X,Y,0,0), 3(X,Y,Z,0) or 4(X,Y,Z,W) + arguments + +2004-08-04 09:18 zmoelnig + + * src/Geos/: vertex_info.cpp, vertex_info.h: removed code that came + apparently from [vertex_offset] (and was not used anyhow) + +2004-08-04 09:17 zmoelnig + + * src/Geos/: color_set.cpp, color_set.h: now color_set inherits + from GemBase instead of GemShape; "color" can now have 1 + (greyscale), 3(RGB) or 4(rgba) values + +2004-08-04 08:35 zmoelnig + + * src/Geos/: vertex_info.h, vertex_offset.h: fixed typos which + prevented vc6 to succeed + +2004-08-04 08:32 zmoelnig + + * src/Gnu/makesource: now you can give a list of directories on the + command-line to override the default directories where we want + the Make.source,... to be built + +2004-08-04 08:29 zmoelnig + + * src/Base/GemState.h: on windows we have to include + before ,... + +2004-08-04 07:52 zmoelnig + + * src/Pixes/filmQT.cpp: fixed broken merge + +2004-08-03 21:56 zmoelnig + + * src/Geos/: vertex_combine.cpp, vertex_combine.h, vertex_draw.cpp, + vertex_draw.h, vertex_grid.cpp, vertex_grid.h, vertex_info.cpp, + vertex_info.h, vertex_model.cpp, vertex_model.h, + vertex_offset.cpp, vertex_offset.h, vertex_quad.cpp, + vertex_quad.h: removed dependency on GemShape (replaced by + GemBase) + +2004-08-03 21:35 zmoelnig + + * src/Geos/vertex_draw.cpp: made it compile under linux + +2004-08-03 21:35 zmoelnig + + * src/Geos/: vertex_combine.h, vertex_draw.h, vertex_grid.h, + vertex_info.h, vertex_model.h, vertex_offset.h, vertex_quad.h: + included Base/GemVertex.h instead of GemShape.h; btw. i don't + think that GemShape is a good parent-class + +2004-08-03 21:33 zmoelnig + + * src/Base/GemVertex.h: removed some stupidities + +2004-08-03 21:25 zmoelnig + + * src/Base/GemState.h: fixed apple-specific code + +2004-08-03 21:24 zmoelnig + + * src/Base/GemVertex.h: GemVertex.h to be included by all + vertex_-geos + +2004-08-03 19:03 zmoelnig + + * src/Base/: GemOutput.cpp, GemOutput.h: don't render if + m_outputState is false; made inheritance work + +2004-08-03 19:02 zmoelnig + + * src/Controls/gemwindow.cpp: moved m_windowState to GemOutput; + moved static variables into class + +2004-08-03 19:01 zmoelnig + + * src/Controls/gemwindow.h: moved m_windowState to GemOutput + +2004-08-03 18:52 zmoelnig + + * src/Controls/gemwindow.h: really inherit from GemOutput + +2004-08-03 18:40 cclepper + + * src/: Base/GemState.h, Controls/gemhead.cpp: update to include + vertex_array data + +2004-08-03 18:38 cclepper + + * src/Geos/: color_set.cpp, color_set.h, vertex_combine.cpp, + vertex_combine.h, vertex_draw.cpp, vertex_draw.h, + vertex_grid.cpp, vertex_grid.h, vertex_info.cpp, vertex_info.h, + vertex_model.cpp, vertex_model.h, vertex_offset.cpp, + vertex_offset.h, vertex_quad.cpp, vertex_quad.h: Initial commit + of basic vertex_array geos + +2004-08-03 17:51 zmoelnig + + * src/Controls/: gemwindow.cpp, gemwindow.h: initial functionality: + create/destroy window (no rendering yet) + +2004-08-03 16:07 zmoelnig + + * src/Controls/: gemwindow.cpp, gemwindow.h: an output-object to + replace [gemwin] on the long-run; no functionality yet!! + +2004-08-03 15:52 zmoelnig + + * src/Base/: GemOutput.cpp, GemOutput.h: the parent-class for + different output-objects + +2004-08-03 09:17 zmoelnig + + * src/Pixes/: DSgrabber.cpp, pix_videoDS.cpp: the Release-binary + under windoze used to crash when a pix_video was created; + defining "DEBUG" on the correct place gets rid of this. (indeed + an ugly workaround) + +2004-08-03 09:15 zmoelnig + + * src/Pixes/pix_rds.cpp: type-cast 0xFF to shut up vc6 + +2004-08-03 09:11 zmoelnig + + * src/Pixes/: pix_2grey.cpp, pix_background.cpp, pix_compare.cpp, + pix_composite.cpp, pix_halftone.cpp, pix_multiply.cpp: type-cast + 0xFF to shut up vc6 + +2004-08-03 08:22 zmoelnig + + * src/Pixes/pix_chroma_key.cpp: type-cast 0xFF to shut up vc6 + +2004-07-29 20:21 zmoelnig + + * src/Pixes/: pix_composite.cpp, pix_composite.h: initial MMX + (faster when alpha is set to anything; BUT slower if alpha is + 0x00 or 0xFF) + +2004-07-29 13:28 zmoelnig + + * src/Pixes/: pix_mask.cpp, pix_mask.h: a bit faster and YUV + support + +2004-07-29 13:04 zmoelnig + + * src/Pixes/: pix_diff.cpp, pix_multiply.cpp, pix_multiply.h, + pix_subtract.cpp, pix_takealpha.h: more MMX + +2004-07-29 11:06 zmoelnig + + * src/Pixes/pix_add.cpp: made YUV behave better + +2004-07-29 10:28 zmoelnig + + * src/gem.dsp: added __MMX__ + +2004-07-29 10:16 zmoelnig + + * src/Pixes/pix_tIIR.cpp: round() is not available on vc6; using + (short)-casts instead + +2004-07-28 14:24 zmoelnig + + * src/Base/GemSIMD.h: added some hints for compilers + +2004-07-28 11:19 zmoelnig + + * src/Pixes/: pix_chroma_key.cpp, pix_chroma_key.h: MMX for YUV + +2004-07-28 11:18 zmoelnig + + * src/Base/GemPixDualObj.h: if ne SSE2 is defined, it defaults to + MMX + +2004-07-27 22:16 zmoelnig + + * src/Pixes/pix_movement.cpp: a bit of a comment + +2004-07-27 22:06 zmoelnig + + * src/Pixes/: pix_chroma_key.cpp, pix_chroma_key.h: initial + MMX-support (RGBA only; seems to be slower than generic code !!!) + +2004-07-27 21:00 zmoelnig + + * src/Pixes/: pix_compare.cpp, pix_compare.h, pix_mix.cpp, + pix_mix.h, pix_subtract.cpp, pix_subtract.h: initial MMX-support + +2004-07-27 15:58 zmoelnig + + * src/Pixes/: pix_add.cpp, pix_add.h: initial MMX-support (not very + fast though) + +2004-07-27 11:51 zmoelnig + + * src/Base/: GemPixDualObj.cpp, GemPixDualObj.h: initial + MMX-support for DualPix + +2004-07-27 11:50 zmoelnig + + * src/Pixes/: pix_diff.cpp, pix_diff.h: initial MMX-support + +2004-07-27 10:02 zmoelnig + + * src/Pixes/: pix_background.cpp, pix_background.h: more + MMX-support (RGBA, YUV) + +2004-07-27 08:52 zmoelnig + + * src/Pixes/: pix_background.cpp, pix_background.h: initial + MMX-support (Grayscale only for now) + +2004-07-26 19:17 zmoelnig + + * src/Pixes/: pix_background.cpp, pix_background.h: using an + imageStruct instead of allocating by hand + +2004-07-26 18:37 zmoelnig + + * src/Pixes/: pix_movement.cpp, pix_movement.h: initial MMX-support + (grayscale only) + +2004-07-26 18:36 zmoelnig + + * src/Pixes/pix_2grey.cpp: made it YUV-MMX faster (???) + +2004-07-24 20:08 zmoelnig + + * src/Pixes/: pix_tIIR.cpp, pix_tIIR.h: initial MMX-support; note + however, that it is slower than i expected; furthermore negative + coefficients are not handled correctly + +2004-07-24 18:42 zmoelnig + + * src/Base/GemPixUtil.cpp: don't copy the "datasize" with + copy2imageStruct - as it should only be used internally for + pdata; (THIS MIGHT BREAK THINGS!!) + +2004-07-23 18:36 zmoelnig + + * src/Pixes/: pix_biquad.cpp, pix_biquad.h: fixed MMX code for + RGBA/YUV/Gray + +2004-07-23 17:26 zmoelnig + + * src/Pixes/: pix_motionblur.cpp, pix_motionblur.h: added MMX code + for RGBA/YUV/Gray + +2004-07-23 11:51 zmoelnig + + * src/Pixes/pix_2grey.cpp: fixed RGBA-MMX code + +2004-07-23 10:25 zmoelnig + + * src/Gnu/aclocal.m4, src/Pixes/pix_2grey.cpp, + src/Pixes/pix_2grey.h, src/Pixes/pix_biquad.cpp, + src/Pixes/pix_biquad.h, Makefile, configure: added top-level + makefile and configure-script (since src/Gnu is hard to find) + +2004-07-09 15:22 zmoelnig + + * src/Pixes/: pix_offset.cpp, pix_offset.h: MMX for YUV and Gray + +2004-07-08 18:15 zmoelnig + + * src/Pixes/: pix_gain.cpp, pix_gain.h, pix_offset.cpp, + pix_offset.h: first MMX-support (RGBA only right now) + +2004-07-06 15:09 zmoelnig + + * src/Base/GemPixUtil.cpp: fixed typo in comment + +2004-07-02 18:17 zmoelnig + + * src/TODO: new things to do + +2004-07-02 18:15 zmoelnig + + * src/Base/GemSIMD.h: fixed #ifdef's + +2004-07-02 18:02 zmoelnig + + * src/Pixes/: pix_bitmask.cpp, pix_bitmask.h: initial MMX support + +2004-07-01 21:00 zmoelnig + + * src/Base/GemSIMD.h: file GemSIMD.h was added on branch + vertex_array on 2005-08-19 14:18:07 +0000 + +2004-07-01 21:00 zmoelnig + + * src/Base/GemSIMD.h: initial MMX-code; includes for the various + platforms/SIMD-optimization should be handled in here + +2004-07-01 20:58 zmoelnig + + * src/Base/: GemFuncUtil.h, GemPixObj.cpp, GemPixObj.h: initial + MMX-code; SIMD-optimized functions are called directly from + GemPixObj; if they are not overridden by the child, the default + function for this colourspace is called + +2004-07-01 20:57 zmoelnig + + * src/Pixes/: pix_invert.cpp, pix_invert.h: initial MMX-code + +2004-07-01 15:59 zmoelnig + + * src/Geos/newWave.cpp: replace GL_LINE_LOOP with GL_LINE_STRIP + (thanks to cyrille) made the "draw"-message-handling a bit more + flexible + +2004-06-30 16:34 zmoelnig + + * src/Geos/newWave.cpp: when reset()ing, use the current action + instead of HILLFOUR + +2004-06-30 16:32 zmoelnig + + * src/Pixes/pix_texture.cpp: rebuild the texture when switching + between rectangle and normalized textures + +2004-06-30 14:18 zmoelnig + + * src/Geos/: newWave.cpp, newWave.h: hopefully fixed the texturing + for rectangle textures; added a "texture"-message to choose + between normal and spheric texturing + +2004-06-30 14:13 zmoelnig + + * src/Pixes/pix_texture.cpp: used debug() instead of post() for the + "client-storage"-message + +2004-06-30 14:11 zmoelnig + + * src/Pixes/videoV4L.cpp: using RGB24 instead of RGB32, because the + alpha-channel is set to 0 by RGB32(!!) + +2004-06-25 19:38 zmoelnig + + * src/Geos/: newWave.cpp, newWave.h: fixed a bug that did not + texture rectangle images correctly texture mode can now be set + via a "texture"-mess (spherical or not) texturing of line/point + enabled (buggy output ?) + +2004-06-25 19:31 zmoelnig + + * src/Pixes/pix_texture.cpp: "not using client-texture" is now a + debug-message (instead of post()) + +2004-05-28 13:50 zmoelnig + + * GEM.README: updated for 0.90 + +2004-05-26 12:59 zmoelnig + + * src/gem.dsp: now the "release" compiles + +2004-05-26 12:35 zmoelnig + + * doc/gem.release_notes.txt: changed version from 0.888 to 0.90 + +2004-05-26 12:34 zmoelnig + + * GEM_INSTALL.bat: fixed "installation" for on windows + +2004-05-26 12:34 zmoelnig + + * src/Base/GemVersion.h: changed from 0.888pre2 to 0.90 + +2004-05-19 17:57 zmoelnig + + * src/Pixes/pix_halftone.cpp: changed the shifts to SHIFT_* to make + it cross-platform + +2004-05-19 17:25 tigital + + * ChangeLog: [no log message] + +2004-05-19 17:17 tigital + + * src/Pixes/: pix_halftone.cpp, pix_halftone.h: here's what I came + up with: luma seems more sensitive, and makes a better image, + tho different than the rgba version + +2004-05-16 21:22 zmoelnig + + * src/Base/: GemBase.h, GemMan.cpp, GemPixUtil.h, configNT.h: fixed + some issues with compiling Gem on windows with nvidia's + openGL-headers (have to include glext.h) + +2004-05-15 19:59 zmoelnig + + * doc/gem.known_bugs.txt, help/pix_lumaoffset.pd: noted that + pix_lumaoffset might crash with high offset-factors + +2004-05-14 19:20 zmoelnig + + * src/Pixes/: pix_texture.cpp, pix_texture.h: added a "yuv"-message + to turn off direct YUV-texturing even if it is available (because + our G4 with a geforce4MX says that it can do GL_ycbcr but + actually the images look weird + +2004-05-14 19:05 zmoelnig + + * src/Pixes/pix_lumaoffset.cpp: added range-checking for the offset + when doing smoothed & filled processing; this should fix the + crashes at very high offsets on all colorspaces + +2004-05-14 17:42 zmoelnig + + * src/Pixes/pix_dot.cpp: fixed YUV on big-endians + +2004-05-13 19:25 zmoelnig + + * src/Base/GemPixUtil.cpp: don't copy "pdata" with + copyImage2Struct; pdata should always(!) be a pointer to some + data that is owned by the image itself! this fixes the abiding + crashes when deleting pix_-objects + +2004-05-10 10:08 zmoelnig + + * src/Pixes/filmQT.cpp: added additional error-checks and a + sanity-check on close(); should run now on QT-6.5 (as (un)stable + as with QT-6.4) + +2004-05-10 07:03 cclepper + + * src/Pixes/: pix_levels.cpp, pix_levels.h: First step at + separating the color-space functions in order to have them work + properly. RGBA is still ok, and now YUV works on 'uniform' + adjustments. + +2004-05-10 05:54 cclepper + + * src/Pixes/pix_colorreduce.cpp: #ifdef to remove YUV code on OSX. + maybe someone will write a version that doesn't crash? + +2004-05-09 09:03 cclepper + + * src/Pixes/pix_halftone.cpp: changed the shifts for YUV output. + now 100% less green. + +2004-05-08 06:19 cclepper + + * src/Pixes/pix_kaleidoscope.cpp: fixed the 'it's oh so green' YUV + problem on OSX + +2004-05-07 19:51 zmoelnig + + * src/Base/GemPixPete.h: made defines for shifts on mac/non-mac + (although they don't do much now) + +2004-05-07 19:48 zmoelnig + + * src/Base/GemPixPete.h: added U8 as another type + +2004-05-07 19:41 zmoelnig + + * src/Base/GemPixUtil.cpp: using ch*-constants rather than + hardcoded positions of channel-data (e.g: chRed instead of 0) + +2004-05-07 19:37 zmoelnig + + * src/Pixes/: pix_backlight.cpp, pix_buf.cpp, pix_dot.cpp, + pix_texture.cpp, pix_halftone.cpp, pix_lumaoffset.cpp: shut up + macOS-gcc compiler warnings + +2004-05-07 17:42 zmoelnig + + * src/Base/GemWinCreateMac.cpp: type fixing to shut down the + compiler + +2004-05-07 15:52 zmoelnig + + * src/Pixes/: pix_lumaoffset.cpp, pix_lumaoffset.h, + pix_metaimage.cpp, pix_metaimage.h: made Grey work + +2004-05-07 14:02 zmoelnig + + * src/Pixes/: pix_dot.cpp, pix_dot.h: made YUV and Grey work + +2004-05-07 10:41 zmoelnig + + * src/Pixes/: pix_refraction.cpp, pix_kaleidoscope.cpp: use + setCsizeByFormat use reallocate() instead of clear() and + allocate() and complicated checks + +2004-05-07 10:40 zmoelnig + + * src/Pixes/pix_halftone.cpp: fixed stupid typo + +2004-05-07 10:40 zmoelnig + + * src/Pixes/pix_lumaoffset.cpp: replaced hardcoded shift-amount by + SHIFT_Y. use setCsizeByFormat use reallocate() instead of + clear() and allocate() + +2004-05-07 10:30 zmoelnig + + * src/Pixes/: pix_dot.cpp, pix_dot.h: use setCsizeByFormat use + reallocate() instead of clear() and allocate() removed unused + variable + +2004-05-07 10:29 zmoelnig + + * src/Pixes/pix_delay.cpp: use setCsizeByFormat use reallocate() + instead of clear() and allocate() + +2004-05-07 10:28 zmoelnig + + * src/Pixes/: pix_backlight.cpp, pix_backlight.h: removed the + commented out the processGray-function (and not only it's body); + use setCsizeByFormat + +2004-05-07 10:14 zmoelnig + + * src/Pixes/: pix_grey.cpp, pix_rgba.cpp, pix_yuv.cpp: don't + initialize to small images (64x64) any more as this is only for + memory fragmentation + +2004-05-07 10:12 zmoelnig + + * src/Pixes/pix_halftone.cpp: using setCsizeByFormat rather than + setting csize/format/type directly + +2004-05-07 10:11 zmoelnig + + * src/Pixes/pix_metaimage.cpp: made YUV work on PCs (and used + better namings (like "U" instead of "Red") + +2004-05-06 12:01 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: setting the + csize/format/type of the image more intelligently + +2004-05-06 11:36 zmoelnig + + * src/Pixes/: pix_halftone.cpp, pix_halftone.h: another step + towards a working version. now yuv/rgba/grey almost(!) behave + the same + +2004-05-06 11:35 zmoelnig + + * src/Base/GemPixPete.h: the RGBA2LUMA conversion was wrong + +2004-05-05 16:56 zmoelnig + + * src/Pixes/: pix_halftone.cpp, pix_halftone.h: made YUV work + correctly + +2004-05-05 16:56 zmoelnig + + * src/Pixes/pix_texture.cpp: use run-time checks for YUV-texturing + +2004-05-05 16:55 zmoelnig + + * src/Base/: GemMan.cpp, GemMan.h: added run-time checks for + GL_APPLE_ycbcr_422 (YUV-texturing) + +2004-05-05 16:54 zmoelnig + + * src/Base/GemPixUtil.cpp: use normal memory-allocation (no + alignment tricks as these produces weird output) LATER make sure + that memory is aligned correctly + +2004-05-04 22:20 zmoelnig + + * src/Pixes/: pix_colorreduce.cpp, pix_colorreduce.h: quick hack to + make Grey/YUV work + +2004-05-04 17:30 zmoelnig + + * src/Pixes/pix_buf.cpp: initialized orgPixBlock to NULL (should + fix crashes when no upstream image is present) + +2004-05-04 14:46 zmoelnig + + * src/Pixes/: pix_levels.cpp, pix_levels.h: seems to work now with + RGBA/YUV/Grayscale + +2004-05-04 10:15 zmoelnig + + * doc/gem.known_bugs.txt: added bugs concerning win32-movie-loading + +2004-05-03 18:27 zmoelnig + + * src/Pixes/pix_halftone.cpp: used SHIFT_Y1,... (from GemPixPete.h) + as my images were green ;-) + +2004-05-03 18:26 zmoelnig + + * src/Base/GemPixPete.h: defined SHIFT_Y1,... for YUV-shifting + +2004-05-03 08:15 cclepper + + * src/Pixes/pix_backlight.cpp: fixed up the YUV code - rolled a new + black function and tests for proper pixel values + +2004-05-03 08:14 tigital + + * src/Pixes/: pix_halftone.cpp, pix_halftone.h: YUV works better: + but it's about half the width resolution as it should be...at + least it's not green ;-) + +2004-05-03 04:08 tigital + + * src/Pixes/pix_videoDarwin.cpp: removed void to shut up gcc + +2004-05-03 03:42 tigital + + * src/Pixes/: pix_metaimage.cpp, pix_metaimage.h: YUV processing + functions correctly now + +2004-04-29 07:55 cclepper + + * src/Pixes/pix_lumaoffset.cpp: YUV smoothing now works + +2004-04-27 07:07 tigital + + * src/Pixes/: pix_lumaoffset.cpp, pix_lumaoffset.h: YUV works + better, except for "smooth" line filling + +2004-04-24 17:02 zmoelnig + + * src/Pixes/filmQT4L.cpp: removed some more verbosity... + +2004-04-23 16:41 zmoelnig + + * src/Base/GemMan.cpp: moved some fsaa-code from apple-only to + openGL-dependent code (read: changed ifdefs) + +2004-04-21 06:32 tigital + + * src/Pixes/pix_lumaoffset.cpp: YUV is almost fixed: at least + we're dealing with true luma...but there still seems to be a + pixel skipping problem + +2004-04-21 05:52 cclepper + + * src/Base/GemPixPete.h: changed GetLuminance() coefficients to + correct vaules + +2004-04-20 19:55 zmoelnig + + * help/gemwin.pd: fixed the default viewpoint-values to the correct + ones "0 0 4" instead of "0 0 -4" + +2004-04-10 02:13 tigital + + * src/Base/GemFuncUtil.h: [OSX] added header for definition of + UInt32 after the mass movement of functions + +2004-04-09 11:38 zmoelnig + + * src/Pixes/pix_texture.cpp: added the [pix_texture2]-alias again. + why has it vanished ? + +2004-04-08 14:20 zmoelnig + + * src/Pixes/: pix_filmDarwin.cpp, pix_filmDarwinYUV.cpp, + pix_filmQT.cpp, pix_movieDarwin.cpp, pix_videoDarwin.cpp: moved + utility functions (namely: powerOfTwo()) into Base/GemFuncUtil + +2004-04-08 13:57 zmoelnig + + * src/Geos/newWave.cpp: moved utility functions (namely: + powerOfTwo()) into Base/GemFuncUtil + +2004-04-08 13:54 zmoelnig + + * src/Base/: GemFuncUtil.h, GemPixObj.h, GemPixPete.h, + GemPixUtil.h: structured the location of functions a bit: + GemPixObj does not hold any utility functions GemFuncUtil holds + general untilities (like powerOfTwo()) GemPixUtil holds utility + functions for image manipulation (only!) GemPixPete (NEW) holds + functions from pete's_plugins (specialzied PixUtil-functions) + +2004-04-08 13:51 zmoelnig + + * src/Pixes/pix_rgba.cpp: added some comments + +2004-04-08 13:51 zmoelnig + + * src/Pixes/: pix_hsv2rgb.cpp, pix_image.cpp, pix_movie.cpp, + pix_movieYUV.cpp, pix_rgb2hsv.cpp, pix_sig2pix.cpp, + pix_snap2tex.cpp, pix_texture.cpp: moved utility functions + (namely: powerOfTwo()) into Base/GemFuncUtil + +2004-04-08 13:46 zmoelnig + + * src/Pixes/: pix_a_2grey.cpp, pix_aging.cpp, pix_backlight.cpp, + pix_colorreduce.cpp, pix_compare.cpp, pix_convert.cpp, + pix_curve.cpp, pix_dot.cpp, pix_duotone.cpp, pix_halftone.cpp, + pix_histo.cpp, pix_kaleidoscope.cpp, pix_levels.cpp, + pix_lumaoffset.cpp, pix_metaimage.cpp, pix_mix.cpp, + pix_posterize.cpp, pix_puzzle.cpp, pix_rds.cpp, + pix_refraction.cpp, pix_roll.cpp, pix_scanline.cpp, pix_tIIR.cpp: + added setPixModified() where apropriate so that the + pull-mechanism works + +2004-04-08 13:43 zmoelnig + + * help/: pix_2grey.pd, pix_a_2grey.pd, pix_alpha.pd, + pix_backlight.pd, pix_bitmask.pd, pix_chroma_key.pd, + pix_color.pd, pix_coloralpha.pd, pix_colormatrix.pd, + pix_colorreduce.pd, pix_compare.pd, pix_convolve.pd, pix_crop.pd, + pix_curve.pd, pix_dot.pd, pix_duotone.pd, pix_flip.pd, + pix_gain.pd, pix_grey.pd, pix_halftone.pd, pix_histo.pd, + pix_hsv2rgb.pd, pix_imageInPlace.pd, pix_invert.pd, + pix_kaleidoscope.pd, pix_levels.pd, pix_lumaoffset.pd, + pix_metaimage.pd, pix_mix.pd, pix_movement.pd, pix_normalize.pd, + pix_offset.pd, pix_posterize.pd, pix_puzzle.pd, pix_rds.pd, + pix_rectangle.pd, pix_refraction.pd, pix_rgb2hsv.pd, pix_rgba.pd, + pix_roll.pd, pix_scanline.pd, pix_sig2pix~.pd, pix_takealpha.pd, + pix_threshold.pd, pix_yuv.pd: removed the [pix_buf] entirely from + the example-patches. i must have been somewhere else when i + added them + +2004-04-07 19:35 zmoelnig + + * src/Base/GemWinCreateMac.cpp: removed unused variables + +2004-04-07 19:33 zmoelnig + + * help/pix_rds.pd: fixed documentation + +2004-04-07 19:20 zmoelnig + + * src/Pixes/: filmMPEG3.cpp, pix_halftone.cpp, pix_metaimage.cpp, + pix_rds.cpp: fixed the alpha-channel + +2004-04-07 19:20 zmoelnig + + * src/Pixes/pix_rgba.cpp: added some more verbosity on errors (so + we know, where the error occured) + +2004-04-07 18:09 tigital + + * help/camera.pd: quick n'dirty camera help patch...will flesh out + tonight? + +2004-04-07 18:08 zmoelnig + + * src/Pixes/pix_rgba.cpp: fixed the bug that kept cs-converters + from working on apple + +2004-04-07 18:07 zmoelnig + + * src/Pixes/pix_rds.cpp: removed unused variable G + +2004-04-07 18:04 tigital + + * src/Pixes/: pix_backlight.h, pix_halftone.cpp, pix_levels.cpp, + pix_lumaoffset.cpp, pix_lumaoffset.h, pix_metaimage.cpp, + pix_backlight.cpp, pix_halftone.h, pix_levels.h, pix_metaimage.h: + added YUV support (kinda): it works, but isn't precisely correct + yet (especially in pix_objects that are color based; displacement + objects are less-obviously incorrect) + +2004-04-07 18:02 tigital + + * src/Pixes/: pix_refraction.cpp, pix_refraction.h: added YUV + support (kinda): it works, but isn't precisely correct yet + +2004-04-07 16:47 zmoelnig + + * src/Base/: GemMan.cpp, GemWinCreateXWin.cpp: added switchable + support for FSAA under linux with nvidia-cards + +2004-04-07 16:03 zmoelnig + + * src/Geos/imageVert.cpp: removed the genList from the + new()-function and put it into render() (this was default on + macOS already) + +2004-04-07 16:01 zmoelnig + + * src/Geos/newWave.cpp: removed verbose output + +2004-04-07 16:00 zmoelnig + + * src/Pixes/: pix_2grey.cpp, pix_a_2grey.cpp, pix_grey.cpp: added + US-english alias-name ("gray") + +2004-04-07 15:58 zmoelnig + + * src/: Manips/color.cpp, Manips/colorRGB.cpp, Pixes/pix_color.cpp, + Pixes/pix_coloralpha.cpp, Pixes/pix_colormatrix.cpp, + Pixes/pix_colorreduce.cpp: added british alias-name + +2004-04-07 13:19 zmoelnig + + * examples/07.texture/07.feedback.pd: an example for + texture-feedbacking + +2004-04-07 13:09 zmoelnig + + * src/Geos/: teapot.cpp, teapot.h: added 2nd argument for number of + slices fixed the draw-type + +2004-04-07 13:08 zmoelnig + + * src/Geos/: sphere.cpp, sphere.h: added second argument (number of + slices) the re-creation of the sphere is now triggered by a + change in state->texture too + +2004-04-07 12:28 zmoelnig + + * src/Pixes/: pix_alpha.cpp, pix_alpha.h: the processGray tried to + convert the image from RGB to RGBA in-place. i have no idea, how + this code made it into the [pix_alpha] + +2004-04-07 11:12 zmoelnig + + * src/Controls/gemwin.cpp: removed the non-mac specific part in the + fullscreen-message (no one really cares if the fullscreen-flag is + bool or int) + +2004-04-07 11:03 zmoelnig + + * src/Base/: CPPExtern.cpp, CPPExtern.h, GemBase.cpp, + GemPixDualObj.cpp, GemPixObj.cpp: all the CPPExtern-objects now + no their own class-name, which is stored in m_objectname + error-messages report this name + +2004-04-06 04:43 tigital + + * src/Base/GemPixImageSave.cpp: [OSX] cleaned up warnings and + consolidated a previously used function + +2004-04-05 05:06 cclepper + + * src/Pixes/pix_videoDarwin.h: removed commenting out of + m_colorspace + +2004-04-04 19:45 cclepper + + * src/Pixes/pix_texture.cpp: client_storage is now off by default + to avoid texture corruption problems when using pix_film in 'auto + 1' mode on OSX. setting individual frames still works fine with + client_storage however. + +2004-04-04 19:43 cclepper + + * src/Controls/gemwin.cpp: added OSX specific handling of the + 'fullscreen' message to accommodate multiple displays + +2004-04-03 20:34 zmoelnig + + * help/: pix_2grey.pd, pix_a_2grey.pd, pix_add.pd, pix_alpha.pd, + pix_background.pd, pix_backlight.pd, pix_bitmask.pd, pix_buf.pd, + pix_chroma_key.pd, pix_color.pd, pix_coloralpha.pd, + pix_colormatrix.pd, pix_colorreduce.pd, pix_compare.pd, + pix_composite.pd, pix_convolve.pd, pix_coordinate.pd, + pix_crop.pd, pix_curve.pd, pix_diff.pd, pix_dot.pd, pix_draw.pd, + pix_dump.pd, pix_duotone.pd, pix_flip.pd, pix_gain.pd, + pix_grey.pd, pix_halftone.pd, pix_histo.pd, pix_hsv2rgb.pd, + pix_info.pd, pix_invert.pd, pix_kaleidoscope.pd, pix_levels.pd, + pix_lumaoffset.pd, pix_mask.pd, pix_metaimage.pd, pix_mix.pd, + pix_multiply.pd, pix_normalize.pd, pix_offset.pd, + pix_pix2sig~.pd, pix_posterize.pd, pix_puzzle.pd, + pix_rectangle.pd, pix_refraction.pd, pix_rgb2hsv.pd, pix_rgba.pd, + pix_roll.pd, pix_scanline.pd, pix_subtract.pd, pix_takealpha.pd, + pix_threshold.pd, pix_videoDS.pd, pix_yuv.pd: fixed the + help-patches (mainly removed the "auto 1" message from [pix_buf] + as it was absolutely non-sense + +2004-04-03 02:06 cclepper + + * src/Pixes/: pix_videoDarwin.h, pix_videoDarwin.cpp: removed most + of the debug messages. + +2004-04-03 01:27 cclepper + + * src/: Base/GemPixImageSave.cpp, Base/GemPixImageSave.h, + Pixes/pix_write.cpp: now has functioning code on OSX + +2004-04-02 11:11 zmoelnig + + * src/Pixes/: DSgrabber.cpp, filmAVI.cpp, filmQT.cpp, filmQT4L.cpp, + pix_filmNEW.cpp, pix_videoDS.cpp: removed some verbosity + +2004-04-02 11:05 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: moved implementation + code from header-file to cpp-file + +2004-04-02 11:04 zmoelnig + + * src/Base/TextBase.cpp: fixed some includes (?) + +2004-04-02 08:43 zmoelnig + + * src/Pixes/: DSgrabber.cpp, pix_videoDS.cpp: included the + Base/config.h so we get the HAVE_DIRECTSHOW define when + appropriate set the help-symbol of the directshow-version of + pix_video to [pix_videoDS] (since the api is so different) + +2004-04-02 00:00 tigital + + * src/Base/GemWinCreateMac.cpp: [OSX] now the mouse can be + hidden/shown via the cursor 0/1 message + +2004-04-01 20:52 tigital + + * src/Base/GemWinCreateMac.cpp: [OSX] finally figure out how to get + mouse coords to be the same whether or not there is a title bar, + and no matter where the window is on the desktop...also solves + the "go to {0,0} when mouse leaves window" problem! + +2004-03-31 07:33 tigital + + * src/Pixes/pix_motionblur.cpp: shut up a warning: can't have /* + inside a comment + +2004-03-31 07:25 tigital + + * src/Base/GemWinCreateMac.cpp: [OSX] shut up some warnings + +2004-03-29 20:57 zmoelnig + + * src/TODO: i guess we should release rather sooner than later + +2004-03-29 20:48 zmoelnig + + * src/yuv/: setup.h, yuv_add.cpp, yuv_add.h, yuv_adjust.cpp, + yuv_adjust.h, yuv_average.cpp, yuv_average.h, yuv_bandw.cpp, + yuv_bandw.h, yuv_bitshift.cpp, yuv_bitshift.h, yuv_bitwise.cpp, + yuv_bitwise.h, yuv_blank.cpp, yuv_blank.h, yuv_blur.cpp, + yuv_blur.h, yuv_chroma_key.cpp, yuv_chroma_key.h, yuv_clamp.cpp, + yuv_clamp.h, yuv_compare.cpp, yuv_compare.h, yuv_difference.cpp, + yuv_difference.h, yuv_dual.cpp, yuv_dual.h, yuv_emboss.cpp, + yuv_emboss.h, yuv_film.cpp, yuv_film.h, yuv_filmDarwin.cpp, + yuv_filmDarwin.h, yuv_gain.cpp, yuv_gain.h, yuv_invert.cpp, + yuv_invert.h, yuv_luma_key.cpp, yuv_luma_key.h, yuv_mask.cpp, + yuv_mask.h, yuv_mix.cpp, yuv_mix.h, yuv_movie.cpp, yuv_movie.h, + yuv_mult.cpp, yuv_mult.h, yuv_pixel_average.cpp, + yuv_pixel_average.h, yuv_pixel_data.cpp, yuv_pixel_data.h, + yuv_pixel_isolate.cpp, yuv_pixel_isolate.h, + yuv_pixel_replace.cpp, yuv_pixel_replace.h, yuv_posterize.cpp, + yuv_posterize.h, yuv_set.cpp, yuv_set.h, yuv_split.cpp, + yuv_split.h, yuv_subtract.cpp, yuv_subtract.h, yuv_swap.cpp, + yuv_swap.h, yuv_video.cpp, yuv_video.h, yuv_videoDarwin.cpp, + yuv_videoDarwin.h: finally removed the YUV-stuff (should have + been done for ages) + +2004-03-29 20:45 zmoelnig + + * doc/gem.release_notes.txt: fixed line-breaks + +2004-03-29 20:32 zmoelnig + + * examples/99.games/puzzle.pd: re-added as binary (pd-files + shouldn't be text) + +2004-03-29 20:32 zmoelnig + + * examples/99.games/puzzle.pd: removed "text"-pd files (should be + binary) + +2004-03-29 20:29 zmoelnig + + * examples/: 07.texture/01.texture.pd, 07.texture/02.TexCoord.pd, + 07.texture/04.moveImages.pd, 07.texture/05.newWave.pd, + 07.texture/06.ripple.pd, 08.io/01.Mouse.pd, 08.io/02.Tablet.pd, + 08.io/03.Orb.pd, 08.io/04.UseOrb.pd, 09.openGL/01.primQuad.pd: + re-added as binary (pd-files shouldn't be text) + +2004-03-29 20:29 zmoelnig + + * examples/: 07.texture/01.texture.pd, 07.texture/02.TexCoord.pd, + 07.texture/04.moveImages.pd, 07.texture/05.newWave.pd, + 07.texture/06.ripple.pd, 08.io/01.Mouse.pd, 08.io/02.Tablet.pd, + 08.io/03.Orb.pd, 08.io/04.UseOrb.pd, 09.openGL/01.primQuad.pd: + removed "text"-pd files (should be binary) + +2004-03-29 20:25 zmoelnig + + * examples/: 05.text/01.Text.pd, 05.text/01.TextNoLoadBang.pd, + 05.text/03.ChangeText.pd, 05.text/03.ChangeTextNoLoadBang.pd, + 05.text/arial.ttf, 06.particle/01.simple.pd, + 06.particle/02.fountain.pd, 06.particle/03.orbit.pd, + 06.particle/04.combo.pd, 06.particle/05.twoSrc.pd, + 06.particle/06.target.pd, 06.particle/07.render.pd, + 06.particle/08.info.pd: re-added as binary (pd-files shouldn't be + text) + +2004-03-29 20:25 zmoelnig + + * examples/: 05.text/01.Text.pd, 05.text/01.TextNoLoadBang.pd, + 05.text/03.ChangeText.pd, 05.text/03.ChangeTextNoLoadBang.pd, + 05.text/arial.ttf, 06.particle/01.simple.pd, + 06.particle/02.fountain.pd, 06.particle/03.orbit.pd, + 06.particle/04.combo.pd, 06.particle/05.twoSrc.pd, + 06.particle/06.target.pd, 06.particle/07.render.pd, + 06.particle/08.info.pd: removed "text"-pd files (should be + binary) + +2004-03-29 20:22 zmoelnig + + * examples/: 03.lighting/01.world_light.pd, + 03.lighting/02.light.pd, 03.lighting/03.controlLights.pd, + 03.lighting/04.moveSpheres.pd, 03.lighting/05.materials.pd, + 04.pix/01.image.pd, 04.pix/02.multiimage.pd, + 04.pix/04.ImageInPlace.pd, 04.pix/05.film.pd, 04.pix/05.movie.pd, + 04.pix/06.PixRect.pd, 04.pix/07.PixSet.pd, 04.pix/08.PixDump.pd, + 04.pix/09.Histogram.pd, 04.pix/10.PixDataSimple.pd, + 04.pix/11.PixDataComplex.pd, 04.pix/12.add.pd, + 04.pix/12.blending.pd, 04.pix/12.composite.pd, + 04.pix/12.pix_multiply.pd, 04.pix/13.maskDancer.pd, + 04.pix/14.takeAlpha.pd, 04.pix/15.pix_alpha.pd, + 04.pix/16.alphaGrey.pd, 04.pix/16.pix_2grey.pd, + 04.pix/17.pix_gain.pd, 04.pix/18.Curves.pd, + 04.pix/19.colorMatrix.pd, 04.pix/20.convolve.pd, + 04.pix/22.biquad.pd, 04.pix/23.gravity.pd, + 04.pix/24.time-filtering.pd, 04.pix/25.buffer.pd, + 04.video/00.SimpleVideo.pd, 04.video/01.VideoPaint.pd, + 04.video/02.VideoSphere.pd, 04.video/03.movement_detection.pd, + 04.video/04.videoRTX.pd: re-added as binary (pd-files shouldn't + be text) + +2004-03-29 20:21 zmoelnig + + * examples/: 03.lighting/01.world_light.pd, + 03.lighting/02.light.pd, 03.lighting/03.controlLights.pd, + 03.lighting/04.moveSpheres.pd, 03.lighting/05.materials.pd, + 04.pix/01.image.pd, 04.pix/02.multiimage.pd, + 04.pix/04.ImageInPlace.pd, 04.pix/05.film.pd, 04.pix/05.movie.pd, + 04.pix/06.PixRect.pd, 04.pix/07.PixSet.pd, 04.pix/08.PixDump.pd, + 04.pix/09.Histogram.pd, 04.pix/10.PixDataSimple.pd, + 04.pix/11.PixDataComplex.pd, 04.pix/12.add.pd, + 04.pix/12.blending.pd, 04.pix/12.composite.pd, + 04.pix/12.pix_multiply.pd, 04.pix/13.maskDancer.pd, + 04.pix/14.takeAlpha.pd, 04.pix/15.pix_alpha.pd, + 04.pix/16.alphaGrey.pd, 04.pix/16.pix_2grey.pd, + 04.pix/17.pix_gain.pd, 04.pix/18.Curves.pd, + 04.pix/19.colorMatrix.pd, 04.pix/20.convolve.pd, + 04.pix/22.biquad.pd, 04.pix/23.gravity.pd, + 04.pix/24.time-filtering.pd, 04.pix/25.buffer.pd, + 04.video/00.SimpleVideo.pd, 04.video/01.VideoPaint.pd, + 04.video/02.VideoSphere.pd, 04.video/03.movement_detection.pd, + 04.video/04.videoRTX.pd: removed "text"-pd files (should be + binary) + +2004-03-29 20:19 zmoelnig + + * examples/: 01.basic/01.redSquare.pd, + 01.basic/02.blueRectangle.pd, 01.basic/03.disk.pd, + 01.basic/04.PrimTri.pd, 01.basic/05.cube.pd, + 01.basic/06.sphere.pd, 01.basic/07.cylinder.pd, + 01.basic/08.model.pd, 01.basic/09.yelloTeapot.pd, + 02.advanced/01.Separator.pd, 02.advanced/02.Ortho.pd, + 02.advanced/03.View.pd, 02.advanced/03.View_OSD.pd, + 02.advanced/04.Fog.pd, 02.advanced/05.Stereo.pd, + 02.advanced/06.StereoParticle.pd, 02.advanced/07.Snapshot1.pd, + 02.advanced/08.Snapshot2.pd, 02.advanced/09.SnapshotSave.pd, + 02.advanced/10.LinearPath.pd, 02.advanced/11.SplinePath.pd, + 02.advanced/12.Hsv.pd, 02.advanced/13.ModelRescale.pd, + 02.advanced/14.RenderOrder.pd, 02.advanced/15.GemWin.pd: re-added + as binary (pd-files shouldn't be text) + +2004-03-29 20:17 zmoelnig + + * examples/: 01.basic/01.redSquare.pd, + 01.basic/02.blueRectangle.pd, 01.basic/03.disk.pd, + 01.basic/04.PrimTri.pd, 01.basic/05.cube.pd, + 01.basic/06.sphere.pd, 01.basic/07.cylinder.pd, + 01.basic/08.model.pd, 01.basic/09.yelloTeapot.pd, + 02.advanced/01.Separator.pd, 02.advanced/02.Ortho.pd, + 02.advanced/03.View.pd, 02.advanced/03.View_OSD.pd, + 02.advanced/04.Fog.pd, 02.advanced/05.Stereo.pd, + 02.advanced/06.StereoParticle.pd, 02.advanced/07.Snapshot1.pd, + 02.advanced/08.Snapshot2.pd, 02.advanced/09.SnapshotSave.pd, + 02.advanced/10.LinearPath.pd, 02.advanced/11.SplinePath.pd, + 02.advanced/12.Hsv.pd, 02.advanced/13.ModelRescale.pd, + 02.advanced/14.RenderOrder.pd, 02.advanced/15.GemWin.pd: removed + "text"-pd files (should be binary) + +2004-03-29 20:15 zmoelnig + + * help/: accumrotate.pd, alpha.pd, alternate.pd, ambient.pd, + ambientRGB.pd, average.pd, circle.pd, color.pd, colorRGB.pd, + colorSquare.pd, cone.pd, counter.pd, cube.pd, cylinder.pd, + depth.pd, diffuse.pd, diffuseRGB.pd, disk.pd, emission.pd, + emissionRGB.pd, gemhead.pd, gemkeyboard.pd, gemkeyname.pd, + gemmouse.pd, gemorb.pd, gemtablet.pd, gemwin.pd, hsv2rgb.pd, + imageVert.pd, light.pd, linear_path.pd, model.pd, multimodel.pd, + oneshot.pd, ortho.pd, part_color.pd, part_damp.pd, part_draw.pd, + part_follow.pd, part_gravity.pd, part_head.pd, part_killold.pd, + part_killslow.pd, part_orbitpoint.pd, part_size.pd, + part_source.pd, part_targetcolor.pd, part_targetsize.pd, + part_velcone.pd, part_velocity.pd, part_velsphere.pd, + part_vertex.pd, pix_background.pd, pix_blob.pd, + pix_clearblock.pd, pix_compare.pd, pix_data.pd, pix_film.pd, + pix_halftone.pd, pix_indycam.pd, pix_kaleidoscope.pd, pix_mix.pd, + pix_motionblur.pd, pix_movement.pd, pix_resize.pd, pix_roll.pd, + pix_scanline.pd, pix_sig2pix~.pd, pix_snap.pd, pix_texture.pd, + pix_video.pd, pix_videoDS.pd, pix_write.pd, pix_zoom.pd, + polygon.pd, primTri.pd, randomF.pd, rectangle.pd, + render_trigger.pd, rgb2hsv.pd, rotate.pd, rotateXYZ.pd, scale.pd, + scaleXYZ.pd, separator.pd, specular.pd, specularRGB.pd, + sphere.pd, spline_path.pd, square.pd, text2d.pd, text3d.pd, + textextruded.pd, textoutline.pd, translate.pd, translateXYZ.pd, + triangle.pd, tripleLine.pd, tripleRand.pd, v+.pd, v-.pd, + vector+.pd, vector-.pd, world_light.pd: readded as binary + +2004-03-29 20:14 zmoelnig + + * help/: pix_add.pd, pix_biquad.pd, pix_buf.pd, pix_chroma_key.pd, + pix_composite.pd, pix_diff.pd, pix_imageInPlace.pd, pix_mask.pd, + pix_multiimage.pd, pix_multiply.pd, pix_subtract.pd, + pix_takealpha.pd, shininess.pd: added as binary + +2004-03-29 20:12 zmoelnig + + * help/: pix_add.pd, pix_biquad.pd, pix_buf.pd, pix_chroma_key.pd, + pix_composite.pd, pix_diff.pd, pix_imageInPlace.pd, pix_mask.pd, + pix_multiimage.pd, pix_multiply.pd, pix_subtract.pd, + pix_takealpha.pd, shininess.pd, accumrotate.pd, alpha.pd, + alternate.pd, ambient.pd, ambientRGB.pd, average.pd, circle.pd, + color.pd, colorRGB.pd, colorSquare.pd, cone.pd, counter.pd, + cube.pd, cylinder.pd, depth.pd, diffuse.pd, diffuseRGB.pd, + disk.pd, emission.pd, emissionRGB.pd, gemhead.pd, gemkeyboard.pd, + gemkeyname.pd, gemmouse.pd, gemorb.pd, gemtablet.pd, gemwin.pd, + hsv2rgb.pd, imageVert.pd, light.pd, linear_path.pd, model.pd, + multimodel.pd, oneshot.pd, ortho.pd, part_color.pd, part_damp.pd, + part_draw.pd, part_follow.pd, part_gravity.pd, part_head.pd, + part_killold.pd, part_killslow.pd, part_orbitpoint.pd, + part_size.pd, part_source.pd, part_targetcolor.pd, + part_targetsize.pd, part_velcone.pd, part_velocity.pd, + part_velsphere.pd, part_vertex.pd, pix_background.pd, + pix_blob.pd, pix_clearblock.pd, pix_compare.pd, pix_data.pd, + pix_film.pd, pix_halftone.pd, pix_indycam.pd, + pix_kaleidoscope.pd, pix_mix.pd, pix_motionblur.pd, + pix_movement.pd, pix_resize.pd, pix_roll.pd, pix_scanline.pd, + pix_sig2pix~.pd, pix_snap.pd, pix_texture.pd, pix_video.pd, + pix_videoDS.pd, pix_write.pd, pix_zoom.pd, polygon.pd, + primTri.pd, randomF.pd, rectangle.pd, render_trigger.pd, + rgb2hsv.pd, rotate.pd, rotateXYZ.pd, scale.pd, scaleXYZ.pd, + separator.pd, specular.pd, specularRGB.pd, sphere.pd, + spline_path.pd, square.pd, text2d.pd, text3d.pd, textextruded.pd, + textoutline.pd, translate.pd, translateXYZ.pd, triangle.pd, + tripleLine.pd, tripleRand.pd, v+.pd, v-.pd, vector+.pd, + vector-.pd, world_light.pd: removed "text"-pd files (should be + binary) + +2004-03-29 20:11 zmoelnig + + * help/pix_image.pd: new help-patch + +2004-03-29 18:10 zmoelnig + + * help/gemhead.pd: updated documentation + +2004-03-29 18:09 zmoelnig + + * src/gem.dsp: compiled under windoze and thus updated my + project-file + +2004-03-29 18:08 zmoelnig + + * src/Base/GemVersion.h: version is now ReleaseCandidate-1 + +2004-03-29 18:05 zmoelnig + + * src/Pixes/: pix_backlight.cpp, pix_blur.cpp, pix_dot.cpp: removed + unneeded variables to silence macOS-gcc + +2004-03-29 18:03 zmoelnig + + * src/Geos/: curve.cpp, disk.cpp, newWave.cpp, slideSquares.cpp: + removed unneeded variables to shut down macOS-gcc + +2004-03-29 18:02 zmoelnig + + * src/Base/GemWinCreateMac.cpp: accidentially the button-state was + reported to be "1" when released (like on press); fixed + +2004-03-29 18:01 zmoelnig + + * src/Base/GemPixImageSave.cpp: type change to get rid of + compiler-warning under macOS + +2004-03-29 18:00 zmoelnig + + * GEM_darwin.pbproj/: project.pbxproj, zmoelnig.pbxuser: compiled + it and therefore updated my project files + +2004-03-29 08:43 zmoelnig + + * src/Base/TextBase.cpp: added includes for NT + +2004-03-29 08:12 cclepper + + * src/Geos/: sphere.cpp, sphere.h: changed the render function to + only calculate the geometry when the geometry changes. results + in at least a 3X speedup. + +2004-03-26 07:40 cclepper + + * src/Pixes/pix_offset.cpp: initialized the Y,U,V variables to 0. + no more random color fields on loading a patch with pix_offset. + +2004-03-25 20:57 tigital + + * src/Base/GemWinCreateMac.cpp: [OSX]-only: standardized mouse + location to "window relative": however, remember that (0,0) is + always the top left corner, whether or not there is a title + bar/border + +2004-03-25 18:22 zmoelnig + + * src/: Base/GemBase.cpp, Base/GemCache.cpp, Base/GemCache.h, + Base/GemPixDualObj.cpp, Base/GemPixObj.cpp, + Pixes/pix_clearblock.cpp, Pixes/pix_image.cpp, + Pixes/pix_multiimage.cpp, Pixes/pix_snap.cpp: added a + magic-number to the GemCache to ensure that the cache is valid + +2004-03-25 13:12 zmoelnig + + * src/Controls/gemhead.cpp: initialize GemCache on creation, so we + can dynamically create [gemhead]s and they will start rendering + without having to restart the engine + +2004-03-25 11:03 zmoelnig + + * src/Geos/model.cpp: removed another post() + +2004-03-24 22:11 zmoelnig + + * src/Geos/model.cpp: removed the "drawing all groups" messages + +2004-03-24 22:10 zmoelnig + + * src/Base/: GemCache.cpp, GemCache.h: added a reset()-method to + re-set an instance without having to destroy and re-create it + (see [gemhead]) + +2004-03-24 22:08 zmoelnig + + * src/Controls/gemhead.cpp: each gemhead now has an instance of the + GemCache that is only reset when rendering is started (instead of + being destroyed and re-created) hopefully this fixes some memory + bug. + +2004-03-24 18:27 zmoelnig + + * src/openGL/: GEMglCallList.cpp, GEMglCallList.h: added, since + needed for debugging + +2004-03-24 14:20 zmoelnig + + * src/Controls/gemhead.cpp: fixed initial materials (ambient, + specular, diffuse, shininess, emission) + +2004-03-24 12:47 zmoelnig + + * src/Base/: TextBase.cpp, TextBase.h: added auto-(re)loading of + fonts when rendering is started fixed some cleanup-issues + +2004-03-24 12:41 zmoelnig + + * src/Geos/text2d.cpp: removed "done" message + +2004-03-22 23:31 tigital + + * src/Base/GemWinCreateMac.cpp: [OSX]-only: [gemwin] now correctly + responds to the following messages: border & title; also fixed + keyboard character input for [gemkeyname] + +2004-03-21 20:58 zmoelnig + + * help/: curve.pd, invert.pd, pix_2grey.pd, pix_a_2grey.pd, + pix_aging.pd, pix_alpha.pd, pix_bitmask.pd, pix_coloralpha.pd, + pix_colormatrix.pd, pix_convolve.pd, pix_coordinate.pd, + pix_curve.pd, pix_draw.pd, pix_dump.pd, pix_flip.pd, pix_gain.pd, + pix_histo.pd, pix_hsv2rgb.pd, pix_image.pd, pix_invert.pd, + pix_metaimage.pd, pix_movie.pd, pix_normalize.pd, pix_offset.pd, + pix_pix2sig~.pd, pix_puzzle.pd, pix_rectangle.pd, + pix_refraction.pd, pix_rgb2hsv.pd, pix_rgba.pd, pix_rtx.pd, + pix_set.pd, pix_threshold.pd, teapot.pd: readded help-patches + +2004-03-21 20:53 zmoelnig + + * help/: curve.pd, invert.pd, pix_2grey.pd, pix_a_2grey.pd, + pix_aging.pd, pix_alpha.pd, pix_bitmask.pd, pix_coloralpha.pd, + pix_colormatrix.pd, pix_convolve.pd, pix_coordinate.pd, + pix_curve.pd, pix_draw.pd, pix_dump.pd, pix_flip.pd, pix_gain.pd, + pix_histo.pd, pix_hsv2rgb.pd, pix_image.pd, pix_invert.pd, + pix_metaimage.pd, pix_movie.pd, pix_normalize.pd, pix_offset.pd, + pix_pix2sig~.pd, pix_puzzle.pd, pix_rectangle.pd, + pix_refraction.pd, pix_rgb2hsv.pd, pix_rgba.pd, pix_rtx.pd, + pix_set.pd, pix_threshold.pd, teapot.pd: removed to check in as + "binary" again + +2004-03-21 20:52 zmoelnig + + * help/: pix_grey.pd, pix_yuv.pd: updated help-patches + +2004-03-21 14:39 zmoelnig + + * src/Geos/: curve.cpp, curve.h: fixed rectangle textureing + +2004-03-20 21:42 zmoelnig + + * doc/gem.known_bugs.txt: fixed bugs + +2004-03-20 21:36 zmoelnig + + * src/: Base/GemGluObj.cpp, Base/GemGluObj.h, Geos/cone.cpp, + Geos/cone.h, Geos/cylinder.cpp, Geos/cylinder.h, Geos/disk.cpp, + Geos/sphere.cpp, Geos/sphere.h: rolled the GLU code directly into + the objects to enable rectangle textures + +2004-03-20 17:42 zmoelnig + + * src/: Geos/teapot.cpp, Geos/teapot.h, Gnu/configure: cleaned + GLUT-removal code a bit + +2004-03-20 17:06 zmoelnig + + * src/: Geos/teapot.cpp, Geos/teapot.h, Gnu/configure.in, + Base/GemGlutObj.cpp, Base/GemGlutObj.h, Base/configLinux.h.in: + removed dependencies on GLUT [teapot] is now "built-in" + +2004-03-19 20:52 zmoelnig + + * help/: pix_texture.pd, pix_texture2.pd, pix_videoDS.pd: updated + help-patches removed all traces of [pix_texture2] + +2004-03-19 20:12 zmoelnig + + * help/: curve.pd, polygon.pd: updated help-patches + +2004-03-19 20:09 zmoelnig + + * src/Pixes/: pix_compare.cpp, pix_compare.h, pix_diff.cpp, + pix_diff.h: added grayscale support + +2004-03-19 18:00 zmoelnig + + * src/Geos/: polygon.cpp, polygon.h: removed the "maximum number of + control points" restriction (so now, we can have 1000s of control + points in polygon/curve) + +2004-03-19 16:01 zmoelnig + + * help/: alternate.pd, colorSquare.pd, curve.pd, gemhead.pd, + gemkeyboard.pd, gemkeyname.pd, gemmouse.pd, gemtablet.pd, + hsv2rgb.pd, imageVert.pd, invert.pd, light.pd, linear_path.pd, + model.pd, multimodel.pd, oneshot.pd, ortho.pd, polygon.pd, + primTri.pd, rectangle.pd, render_trigger.pd, rotate.pd, + rotateXYZ.pd, scale.pd, scaleXYZ.pd, separator.pd, specular.pd, + specularRGB.pd, square.pd, text2d.pd, text3d.pd, textextruded.pd, + textoutline.pd, translate.pd, translateXYZ.pd, triangle.pd, + tripleLine.pd, v+.pd, world_light.pd: new help-patches (e.g: + working examples) + +2004-03-19 16:00 zmoelnig + + * src/Geos/polygon.cpp: added a method "width" for the linewidth + (compatibility with other geos) + +2004-03-19 15:58 zmoelnig + + * src/MarkEx/hsvrgb.cpp: changed the helpsymbol + +2004-03-19 15:54 zmoelnig + + * src/Base/GemWinCreateMac.cpp: got the mapping from mac-buttons to + gem-buttons right (hopefully) + +2004-03-19 12:47 zmoelnig + + * help/randF.pd: randF is only an alias for randomF; there + shouldn't be a separate help-file + +2004-03-18 17:51 zmoelnig + + * src/: Base/GemWinCreateMac.cpp, Controls/gemmouse.cpp: the + mac-spefific button-offset has been moved to GemWinCreateMac + +2004-03-17 21:04 zmoelnig + + * src/Pixes/: pix_filmNEW.h, pix_videoNEW.h: force auto-registering + when appropriate + +2004-03-17 21:02 zmoelnig + + * src/Pixes/: film.cpp, film.h, filmAVIPLAY.cpp, filmMPEG1.cpp, + filmMPEG3.cpp, filmQT4L.cpp: set the "newfilm"-flag when a new + film is loaded + +2004-03-17 20:58 zmoelnig + + * src/Geos/curve3d.cpp: tried to fix rectangle textures + +2004-03-16 20:41 zmoelnig + + * src/Geos/: circle.cpp, newWave.cpp, newWave.h, ripple.cpp, + ripple.h, rubber.cpp, rubber.h, slideSquares.cpp, tube.cpp: tried + to fix rectangle textures + +2004-03-16 02:16 tigital + + * src/Base/GemMan.cpp: OSX only: forgot to "return noErr" in event + loop! + +2004-03-15 14:35 zmoelnig + + * src/Pixes/pix_tIIR.cpp: small bug-fix: a unity gain of "1" was + translated to 255>>8 (which is less than 1 and led to fading + feed-backs) + +2004-03-13 10:10 cclepper + + * src/Pixes/pix_movement.cpp: fixed #ifdefs + +2004-03-10 18:32 zmoelnig + + * src/Gnu/: aclocal.m4, configure, configure.in: changed the + configure-process GemLibs can now be specified with "--gemlibs" + additional search-paths for ALL libraries can be specified with + "--libdir" + +2004-03-10 18:07 zmoelnig + + * src/Pixes/pix_movement.cpp: ifdef'd the altivec code with __VEC__ + +2004-03-10 18:03 zmoelnig + + * src/: Controls/gemhead.h, Controls/gemkeyboard.h, + Controls/gemkeyname.h, Controls/gemmouse.h, Controls/gemorb.h, + Controls/gemtablet.h, Controls/gemwin.h, openGL/GLdefine.h, + Pixes/pix_buffer.h: added the HELPSYMBOL-BASE "Gem/", so the + help-patches will work, even though this object inherits from + CPPExtern and not from GemBase + +2004-03-10 17:55 zmoelnig + + * src/Pixes/: pix_depot.cpp, pix_depot.h, pix_get.h, pix_put.h: + pix_depot and friends are now in pix_buffer et al. + +2004-03-10 17:04 zmoelnig + + * src/Base/: TextBase.cpp, TextBase.h: added a new justification + "BASE" that does no justification at all; usefull, if you want a + constant base-line. + +2004-03-07 19:49 cclepper + + * src/Base/GemWinCreateMac.cpp: new fullscreen code for 10.3 which + is good. the window deletion routine does crash every 10-20 + iterations though, which is bad. + +2004-03-01 02:29 cclepper + + * src/Pixes/pix_background.cpp: added some more cache hints - 45% + percent faster + +2004-03-01 02:02 cclepper + + * src/Pixes/: pix_film.cpp, pix_film.h, pix_filmDarwin.cpp, + pix_filmDarwin.h: I think this fixes the majority of playback + problems on OSX. Movie loading is faster, playback is smoother + using 'rate $1'. + +2004-03-01 01:58 cclepper + + * src/Pixes/pix_gain.cpp: just a cleaning + +2004-03-01 01:55 cclepper + + * src/Pixes/pix_motionblur.cpp: slightly tweaked Altivec (load + hoisting) + +2004-03-01 01:52 cclepper + + * src/Pixes/: pix_movement.cpp, pix_movement.h: added some Altivec + for YUV + +2004-03-01 01:50 cclepper + + * src/Pixes/pix_offset.cpp: slightly better altivec. + +2004-02-29 06:24 cclepper + + * src/Base/GemWinCreateMac.cpp: an improved window bounds fix. + still need to find a workaround for the fullscreen on 10.3 though + +2004-02-25 07:25 cclepper + + * src/Pixes/: pix_biquad.cpp, pix_biquad.h: split processing into + RGBA and YUV portions. added Altivec for YUV. + +2004-02-16 20:07 zmoelnig + + * src/Base/TextBase.cpp: added path-searching for fonts. so you + can add your systems favorite font-path and get a lot of other + TrueType-faces + +2004-02-16 05:06 cclepper + + * src/Pixes/pix_blob.cpp: changed float to int processing in the + YUV code - now 10X faster. + +2004-02-15 19:32 cclepper + + * src/Base/GemWinCreateMac.cpp: this should fix the window bounds + problem. + +2004-02-13 15:09 zmoelnig + + * GEM_darwin.pbproj/project.pbxproj: hopefully got the + reference-types allright ("relative" instead of "absolute") + +2004-02-13 15:06 zmoelnig + + * GEM_darwin.pbproj/zmoelnig.pbxuser: updated my project + +2004-02-12 18:31 zmoelnig + + * src/Pixes/pix_filmNEW.cpp: fixed a bug with filename-searching + +2004-02-12 18:28 zmoelnig + + * src/Pixes/: pix_videoNEW.cpp, pix_videoNEW.h, video.cpp, video.h, + videoDV4L.cpp, videoDV4L.h: added better support for firewire + under linux (thanks to franz hildgen) + +2004-02-12 18:25 zmoelnig + + * src/Base/GemWinCreateXWin.cpp: fixed a type that prevented this + from being compiled + +2004-02-10 13:36 zmoelnig + + * src/Base/GemWinCreateXWin.cpp: now the gemwindow can be created + even if we only have DirectColor (instead of TrueColor); however + i haven't bothered yet with setting up the Palettes. + +2004-02-10 13:27 zmoelnig + + * src/Controls/gemwin.cpp: added a newline at end of file + +2004-02-10 13:24 zmoelnig + + * src/Base/GemMan.cpp: more friendly output of the "create window" + message + +2004-02-10 11:47 zmoelnig + + * src/Base/GemWinCreateXWin.cpp: - added ErrorHandling, so Gem + doesn't crash if the display-/window-context has vanished before + we try to destroy the gemwindow - removed checking for ModLines + on remote displays; this used to crash; unfortunately this + disables fullscreen on remote displays + +2004-02-10 11:23 zmoelnig + + * src/Base/GemMan.cpp: added and disabled Guenter at the + splash-screen (again) + +2004-02-06 13:10 zmoelnig + + * src/Geos/model.cpp: BUGFIX: used to crash when no model was + loaded and trying to apply a texture. (at least if NDEBUG was + not defined) + +2004-02-06 13:08 zmoelnig + + * src/Manips/: ortho.cpp, ortho.h: as ben has pointed out, there + seems to be a bug when rendering to non-square windows: + everything get's distorted (say: on 640x480 a square would be a + rectangle with a 4/3-aspect); since i think this might break a + lot of things (?), i have left the old default behaviour but you + can turn off compatibility with "compat 0" + +2004-02-05 19:17 zmoelnig + + * src/: gem.dsp, gem_vc6.dsw: updated my vc-project it now compiles + with FTGL + +2004-02-05 19:16 zmoelnig + + * src/Base/: config.h, TextBase.h, configDarwin.h, configNT.h: + moved the defines for the platforms (e.g: whether macos uses + FTGL) into the appropriate config*.h files + +2004-02-02 12:19 zmoelnig + + * src/TODO: all docu is done; but we need to compile it under + windows with FTGL support (i failed...) + +2004-02-02 12:18 zmoelnig + + * src/gem.dsp: updated my project + +2004-02-02 12:15 zmoelnig + + * src/Pixes/pix_filmNEW.cpp: put QT-loader *after* the AVI-loader, + because QT sometimes crashes when having loaded AVI's and tries + to load QT's afterwards. so AVI is now handled by the built in + (for win) routines, and QuickTime is only used if it fails + +2004-02-02 12:13 zmoelnig + + * src/Pixes/videoV4L.cpp: post "video4linux" and remove post of + "fish" ;-) + +2004-02-02 12:12 zmoelnig + + * src/Pixes/videoDV4L.cpp: added some support for devices not + handled by devfs; added upside-down flag decode RGBA by hand + (since otherwise we would decode YUV->RGB->RGBA, all in + software...) + +2004-02-02 12:11 zmoelnig + + * src/Pixes/video.h: ifdef'ed the inclusion of m_pd.h to make sure + it is not included double (breaks with old version of pd) + +2004-02-02 12:08 zmoelnig + + * src/Manips/camera.h: exported the CVector class, since vc + complaint about this (probably this will break future things...) + +2004-02-02 12:06 zmoelnig + + * src/Base/GemPixUtil.cpp: hopefully fixed fromUYVY since it did + mix up U and V when decoding dv-streams + +2004-02-02 12:04 zmoelnig + + * src/Geos/model_loader.cpp: fixed types to keep compiler silent + +2004-02-02 12:03 zmoelnig + + * src/Pixes/pix_movieDarwin.cpp: ifdef'ed everything to be + __APPLE__ only + +2004-01-31 07:55 cclepper + + * src/Pixes/: pix_movieDarwin.cpp, pix_movieDarwin.h: new pix_movie + for OSX. uses an optimized path for movie playing and texturing. + +2004-01-29 02:59 tigital + + * src/Pixes/: pix_kaleidoscope.cpp, pix_colorreduce.cpp: + initialized variables to shutup compiler warnings + +2004-01-28 17:06 tigital + + * src/Base/GemMan.cpp: OSX only: added carbon event processing to + dispatchGemWindowMessages() (Finally!) + +2004-01-28 17:02 tigital + + * src/: Base/GemEvent.cpp, Base/GemEvent.h, Controls/gemmouse.h: + added mouse wheel support, though there is no outlet (yet) + +2004-01-28 16:59 tigital + + * src/Controls/gemmouse.cpp: added mouse wheel support OSX only: + added support for correct mouse buttons + +2004-01-28 16:54 tigital + + * src/Base/GemWinCreateMac.cpp: OSX only: added event handler + support for window, mouse and keyboard events (ie. [gemmouse] and + [gemkeyboard]), plus the window now behaves in a standard gui + manner + +2004-01-28 05:46 cclepper + + * src/Pixes/pix_filmDarwin.h: fixed a little problem with newImage + being multiply defined + +2004-01-27 18:13 zmoelnig + + * src/Pixes/: pix_texture2.cpp, pix_texture2.h: re-removed them + (somehow they reappeared in the CVS; guess it has to do with + sourceforge's server-sync) + +2004-01-21 17:50 zmoelnig + + * src/Geos/: model.cpp, model_loader.cpp, model_loader.h: added + support for rectangle textures even with sphereMaps ("texture 1") + +2004-01-20 09:13 cclepper + + * src/Geos/: model.cpp, model.h, multimodel.cpp, model_loader.cpp, + model_loader.h: added support for rectangle textures to glm + +2004-01-09 11:32 zmoelnig + + * src/gem.dsp: updated my vc-project + +2004-01-09 11:31 zmoelnig + + * src/BUGS: updated fixed bugs + +2004-01-09 06:09 tigital + + * src/Pixes/pix_filmDarwin.h: values should be "TimeValue", not + int's (shuts up compiler warnings) + +2004-01-09 05:27 tigital + + * src/Geos/model_loader.cpp: added (int *) casts to fscanf() calls + to shutup compiler (someone had to do it!) + +2004-01-08 20:16 zmoelnig + + * src/Geos/model_loader.h: hmm: probably new linebreaks + +2004-01-08 20:07 zmoelnig + + * src/Pixes/: pix_kaleidoscope.cpp, pix_kaleidoscope.h: YUV-support + fixed (the image looks "different" (squashed) than RGBA, but at + least it is functional and not crashing any more), Grayscale + works great + +2004-01-08 20:03 zmoelnig + + * src/Gnu/undocumented_objects: i think, all objects are documented + (somehow: some help-patches are rather crude) + +2004-01-08 20:02 zmoelnig + + * src/Geos/: ripple.cpp, ripple.h, rubber.cpp, rubber.h: several + BUG-fixes (esp: put the pivot-point of rubber/ripple into the + center; made the sizeMess-work; use normalized coordinates for + rubber (now independent of the window-dimensions) + +2004-01-08 19:58 zmoelnig + + * examples/07.texture/06.ripple.pd, help/newWave.pd, + help/pix_kaleidoscope.pd, help/ripple.pd, help/rubber.pd: updated + documentation + +2004-01-05 20:13 zmoelnig + + * examples/07.texture/05.newWave.pd, help/newWave.pd: updated docs + +2004-01-05 20:08 zmoelnig + + * help/pix_background.pd: use a movie rather than an image for + demonstrating this + +2004-01-05 19:37 zmoelnig + + * src/Pixes/pix_filmDarwin.h: added newImage-variable since it was + needed + +2004-01-05 19:35 zmoelnig + + * src/Pixes/pix_colorreduce.cpp: removed a debug message + +2004-01-05 19:34 zmoelnig + + * src/Geos/model_loader.h: added an include for windows + +2004-01-05 19:20 zmoelnig + + * src/Geos/: newWave.cpp, newWave.h: re-added inlets for height, + size and mode transformed and scaled the newWave so that it + behaves exactly like a square of the same dimension when there is + no motion. + + ASK: why is this "blend" function in there ? + +2004-01-05 12:08 zmoelnig + + * src/Gnu/: configure, configure.in: better checks for pd-version + +2004-01-05 11:18 zmoelnig + + * examples/04.pix/24.time-filtering.pd: glu-objects (like sphere) + have a bit of a problem with non-power-of-2 textures + +2004-01-05 10:58 zmoelnig + + * examples/04.video/00.SimpleVideo.pd: updated documentation + +2004-01-05 10:42 zmoelnig + + * GEM_darwin.pbproj/zmoelnig.pbxuser: my project-builder project + has been updated + +2004-01-05 10:41 zmoelnig + + * GEM.README, GEM_INSTALL.bat, GEM_INSTALL.sh, GEM_RELUNIX.sh: + updated doc + +2004-01-05 10:28 zmoelnig + + * src/openGL/README: fixed typos + +2004-01-05 10:23 zmoelnig + + * src/Pixes/pix_normalize.cpp: use integer calcs rather than + floating point + +2004-01-04 19:56 zmoelnig + + * src/Pixes/: videoV4L.cpp, videoV4L.h: bugfix (videoV4L crashed + when you tried to open a non-existant device) + +2004-01-04 19:53 zmoelnig + + * src/Gnu/: Makefile.in, configure, configure.in, makesource: added + checks for the pd-version (because of reference install-paths) + +2004-01-04 19:51 zmoelnig + + * manual/: BasicObj.html, GemFaq.html, GemWPd.html, Gloss.html, + Images.html, Lighting.html, ListObjects.html, Pixes.html, + Texture.html, WriteCode.html: updated documentation + +2004-01-04 19:48 zmoelnig + + * doc/gem.known_bugs.txt, doc/gem.release_notes.txt, + doc/gem.todo.txt, examples/04.pix/05.film.pd, + examples/04.pix/07.PixSet.pd, examples/04.pix/12.pix_multiply.pd, + examples/04.pix/24.time-filtering.pd, + examples/04.video/00.SimpleVideo.pd, + examples/07.texture/06.ripple.pd, examples/99.games/puzzle.pd: + updated documentation + +2003-12-31 03:54 cclepper + + * src/Geos/: model.cpp, model.h, model_loader.cpp, model_loader.h: + added support for groups + +2003-12-31 03:49 cclepper + + * src/Pixes/: pix_filmDarwin.cpp, pix_filmDarwin.h: yet another + rewrite of the QT tasking code. this should hopefully give the + 'best of both worlds'. + +2003-12-17 07:21 cclepper + + * src/Pixes/: pix_filmDarwin.cpp, pix_filmDarwin.h: added the real + frame counting method and made improvements to using the counter + method of playback - no double processed frames + +2003-12-17 07:13 tigital + + * src/Pixes/: pix_biquad.h, pix_film.h: rearranged variables to + shut up gcc 3.3 about initialization + +2003-12-17 07:13 tigital + + * src/Pixes/pix_2grey.cpp: removed unused vector to shut up gcc 3.3 + +2003-12-17 07:11 tigital + + * src/Geos/newWave.h, examples/07.texture/05.newWave.pd: added + Cyrille's changes: now it's more controllable (and useful): see + examples/07.texture/05.newWave.pd + +2003-12-17 07:05 tigital + + * src/Geos/newWave.cpp: added Cyrille's changes: now it's more + controllable (and useful): see examples/07.texture/05.newWave.pd + +2003-12-12 19:21 zmoelnig + + * src/MarkEx/abs.cpp: dos2unix -- linebreaks + +2003-12-10 03:18 cclepper + + * src/Pixes/: pix_filmDarwin.h, pix_filmDarwin.cpp: rewrite to make + playback using 'auto' more efficient. 'rate' message sets the + playback speed when using 'auto' mode. the movie rate is + properly set for correct qt playback. new doDebug for handling + internal state info display to the console. + +2003-12-08 07:02 cclepper + + * src/Pixes/: pix_filmDarwin.cpp, pix_filmDarwin.h: added hiquality + message to deal with DV streams (yeah i know it's ass backwards + to disable hiquality to make DV streams look good) + +2003-12-07 03:47 cclepper + + * src/Pixes/pix_texture.cpp: changed internal texture format back + to RGBA so now alpha works in textures + +2003-12-06 06:04 cclepper + + * src/Pixes/pix_videoDarwin.cpp: default is now set to YUV + colorspace + +2003-12-04 18:57 zmoelnig + + * help/curve3d.pd: new help-patch from cyrille + +2003-12-04 18:53 zmoelnig + + * help/: alpha.pd, ambientRGB.pd, diffuseRGB.pd, gemhead.pd, + gemkeyboard.pd, gemkeyname.pd, gemmouse.pd, gemwin.pd, + imageVert.pd, light.pd, part_color.pd, part_damp.pd, + part_draw.pd, part_follow.pd, part_killold.pd, part_killslow.pd, + part_targetcolor.pd, part_targetsize.pd, pix_2grey.pd, + pix_a_2grey.pd, pix_add.pd, polygon.pd, rectangle.pd, + separator.pd, square.pd, triangle.pd: reviewed help-patches + +2003-12-04 14:18 zmoelnig + + * src/: Base/GemShape.cpp, Base/GemShape.h, Geos/polygon.cpp, + Geos/polygon.h, Geos/primTri.cpp: bugfix: one additional inlet + was created for [primTri], [curve] and [polygon] by GemShape. i + have added a new creator for GemShape (without arguments) that + will not create the "size"-inlet - this is for objects that want + only the "draw" and "width" message + +2003-12-04 13:19 zmoelnig + + * src/Pixes/pix_mix.h: the bugfix for Grey-support needs a + header-file too... + +2003-12-03 14:21 zmoelnig + + * src/Pixes/pix_mix.cpp: BUGFIX: grayscale was missing + +2003-12-03 08:18 cclepper + + * src/Pixes/: pix_texture.cpp, pix_texture.h: made client_storage a + user defined option. this is a temporary workaround to some + texture corruption issues. + +2003-12-02 16:26 zmoelnig + + * src/gem.dsp: my new windows-project + +2003-12-02 16:26 zmoelnig + + * src/BUGS: filed YUV-bug of pix_kaleidoscope + +2003-12-02 16:22 zmoelnig + + * src/Pixes/: pix_videoNEW.cpp, pix_videoNEW.h: added dummy + messages for "enumerate" and "dialog" (used by pix_videoDS, in + the future probably by others...) + +2003-12-02 16:21 zmoelnig + + * src/Pixes/: pix_videoDS.cpp, pix_videoDS.h: "dialog" with no args + is now the same as "setup" ("setup" message should be deprecated) + +2003-12-02 16:20 zmoelnig + + * src/Pixes/: pix_video.cpp, pix_video.h: added dummy messages for + "enumerate" and "dialog" (used by pix_videoDS) + +2003-12-02 16:19 zmoelnig + + * src/Pixes/pix_filmQT.cpp: upside down + +2003-12-02 16:18 zmoelnig + + * src/Pixes/: pix_filmNT.cpp, pix_filmNT.h: support for + colour-space switching + +2003-12-02 16:18 zmoelnig + + * src/Pixes/: pix_filmNEW.cpp, pix_filmNEW.h: use __NEW_FILM rather + than __NEW__ + +2003-12-02 16:17 zmoelnig + + * src/Pixes/pix_filmDarwin.cpp: colourspace-switching with GL_* + rather than 0 (YUV) and 1 (RGBA) + +2003-12-02 16:16 zmoelnig + + * src/Pixes/: pix_film.cpp, pix_film.h: a bit of support for + colourspace-switching + +2003-12-02 16:15 zmoelnig + + * src/Pixes/: filmQT.cpp, filmQT.h: made it a bit more stable on + windos + +2003-12-02 16:14 zmoelnig + + * src/Pixes/pix_biquad.cpp: added some braces to make execution + order clearer + +2003-12-02 15:57 zmoelnig + + * src/Base/: config.h, configNT.h: split __NEW__ in __VIDEO_NEW and + __FILM_NEW + +2003-12-02 07:36 cclepper + + * src/Pixes/pix_sig2pix.cpp: changed in to GLint to match prototype + of csMess + +2003-12-02 06:38 cclepper + + * src/Pixes/pix_videoDarwin.cpp: fixed error in code - it now + compiles + +2003-12-01 15:48 zmoelnig + + * src/gem.dsp: once in a while i compile under NT... + +2003-12-01 15:47 zmoelnig + + * src/Base/configLinux.h: configLinux.h should be generated for all + machines by the configure-script. don't know, how this came into + the CVS + +2003-12-01 15:27 zmoelnig + + * src/BUGS: another bug fixed for NT + +2003-12-01 15:19 zmoelnig + + * src/Gnu/configure: rebuilt configure to add the "-l" flags + +2003-12-01 15:05 zmoelnig + + * src/Gnu/aclocal.m4: rebuilt it with another version of "aclocal" + +2003-12-01 14:55 zmoelnig + + * src/BUGS: another bugfix (pix_videoDS) reported + +2003-12-01 14:52 zmoelnig + + * src/BUGS: updated bugfixes ("create" on remote X-servers works + for most but my machine) + +2003-12-01 14:48 zmoelnig + + * src/Gnu/: acinclude.m4, aclocal.m4: bugfix: configure wouldn't + add "-l" flags for "standard" libraries found with AC_FIND_LIB + +2003-12-01 11:09 zmoelnig + + * src/Pixes/: pix_videoDS.cpp, pix_videoDS.h: removed swapMess() + and dimenMess() - should be handled by the parent-class + + removed explicit-call to the parent's setupCallback; should be + handled via CPPExtern. + + turned on capturing for device 0 by default. + + Callback() now returns NOERROR instead of S_FALSE: i don't know + why we would want to stop grabbing::i only got 1 frame and it + stopped; now i can grab moving images ! messages: + + the pixBlock-array is now called m_pixBlockBuf[]; m_pixBlock is + another pixBlock that gets the data on "render()" via fromBGR(). + LATER: add other functions to let users select the color-space + via the setup-dialog + + added a "colorspace" message, that sets the output-colorspace + (not the capturing one!) + + made the "device" message an alias for "open" (because of + compatibility to pix_videoNEW) made the "dialog"-message (without + arguments) an alias for "setup", because this gives us one (1) + interface to popup-dialogs. + + LATER: make "dimen", "norm", "channel" work + +2003-12-01 10:59 zmoelnig + + * src/Pixes/pix_videoDarwin.cpp: changed the m_colorspace, to not + only be 0 (for YUV) and 1(for RGBA) but rather GL_YCBCR422_GEM + and GL_RGBA + +2003-12-01 10:56 zmoelnig + + * src/Pixes/pix_video.h: if we HAVE_DIRECTSHOW, we disable the + AUTO_REGISTER stuff, if(!) DO_AUTO_REGISTER_CLASS is not + defined. pix_videoDS will define the DO_AUTO..., to register + itself + + this is *very* ugly LATER rethink this + +2003-12-01 10:52 zmoelnig + + * src/Pixes/: pix_videoNT.cpp, pix_videoNT.h: removed offsetMess() + and swapMess(); should be handled by the parent-class use + fromBGR() rather than doing it by hand. this enables other + color-spaces too! added a colorspace-message + +2003-12-01 10:50 zmoelnig + + * src/Gnu/: acinclude.m4, aclocal.m4, configure, configure.in: + changed the configure a bit to make more intelligent searches in + the search-paths, for both libs and headers we now search + /usr/local/src and /usr/local/include instead of whole /usr/local + (at least for headers) + +2003-11-28 19:19 ggeiger + + * src/Manips/alpha.cpp: fixed alpha depthtest default value + +2003-11-25 18:38 zmoelnig + + * src/Pixes/: pix_pix2sig.cpp, pix_pix2sig.h: support for different + colour-spaces + +2003-11-25 18:38 zmoelnig + + * src/Pixes/: pix_sig2pix.cpp, pix_sig2pix.h: support for different + colour-spaces (use "colorspace"-message) + +2003-11-25 17:54 zmoelnig + + * src/Pixes/: pix_sig2pix.cpp, pix_sig2pix.h: using + setCsizeByFormat() instead of doing this by hand also there is + now a m_reqFormat defining the colourspace (but only GL_RGBA is + supported....) + +2003-11-25 17:52 zmoelnig + + * src/Base/GemPixUtil.cpp: setCsizeByFormat now also sets the + "type" (pixel alignment) on __APPLE__ the default is yuv, + everywhere else it is rgba + +2003-11-25 17:51 zmoelnig + + * src/Pixes/videoV4L.cpp: using setCsizeByFormat instead of doing + it by hand + +2003-11-25 17:28 zmoelnig + + * src/Pixes/: pix_biquad.cpp, pix_biquad.h: fixed a stupid bug, + that was blacking the "last" buffer each cycle. added + object-arguments as initial parameters take care of + colorspace-changes + +2003-11-25 16:16 zmoelnig + + * src/Pixes/pix_filmNEW.h: disabled the auto_registering if __NEW__ + is not defined exclude "Base/config.h" since it is already + included by film.h + +2003-11-25 16:14 zmoelnig + + * src/Pixes/pix_filmNEW.cpp: set the helpsymbol to "pix_film" + instead of "pix_filmNEW" uncommented the use of + canvas_getfilename since it makes problems with internet-streams + (as far as i remember) + +2003-11-25 16:09 zmoelnig + + * src/Pixes/pix_video.cpp: moved the disabling of auto-register to + pix_video.h + +2003-11-25 16:07 zmoelnig + + * src/Pixes/pix_filmYUV.h: include "Base/config.h" for all OS + (since the config.h will separate the sysdependent things) + +2003-11-25 16:06 zmoelnig + + * src/Pixes/pix_film.cpp: rewrote the "colorspace"-callback + +2003-11-25 16:05 zmoelnig + + * src/Pixes/pix_film.h: disabled the auto_registering if __NEW__ is + defined + +2003-11-25 16:04 zmoelnig + + * src/Pixes/pix_movieNEW.cpp: set the help-symbol to "pix_movie" + (instead of "pix_movieNEW") + +2003-11-25 16:03 zmoelnig + + * src/Pixes/pix_videoLinux.cpp: moved the disabling of + auto-register to pix_video.h + +2003-11-25 16:02 zmoelnig + + * src/Pixes/pix_videoNEW.cpp: set the help-symbol to "pix_video" + (instead of "pix_videoNEW") + +2003-11-25 16:01 zmoelnig + + * src/Pixes/pix_videoNEW.h: disabled the auto_registering if + __NEW__ is not defined + +2003-11-25 16:00 zmoelnig + + * src/Pixes/pix_video.h: disabled the auto_registering if __NEW__ + is defined + +2003-11-25 15:59 zmoelnig + + * src/Pixes/pix_sig2pix.cpp: used setBlack() instead of memset(); + use reallocate() + +2003-11-25 15:57 zmoelnig + + * src/Pixes/videoV4L.cpp: setting newfilm to 0 (shouldn't do + anything since we are on linux (?)) + +2003-11-25 15:55 zmoelnig + + * src/Pixes/video.h: include "Base/config.h" for all OS (since the + config.h will separate the sysdependent things) exclude + "GemBase.h" and use "m_pd.h" instead (shouldn't be needed either, + if it wasn't for post()) + +2003-11-25 15:54 zmoelnig + + * src/Pixes/: pix_info.cpp, pix_info.h: get more information the + last outlet (data) is still the last outlet (but now there are 6 + instead of 4). this shouldn't break anything, since who can do + something with it ? + +2003-11-25 15:53 zmoelnig + + * src/Pixes/film.h: include "Base/config.h" for all OS (since the + config.h will separate the sysdependent things) + +2003-11-25 15:51 zmoelnig + + * src/Gnu/: configure, configure.in: added "--disable-new" for + "old" behaviour with pix_film/pix_video and friends under linux + this the config.h.in for linux-autoconf has moved to + configLinux.h.in + +2003-11-25 15:48 zmoelnig + + * src/Base/config.h.in: made config.h system-independent. this the + config.h.in for linux-autoconf has moved to configLinux.h.in + +2003-11-25 15:46 zmoelnig + + * src/Base/: config.h, configDarwin.h, configLinux.h, + configLinux.h.in, configNT.h: made config.h system-independent. + the system-bound configurations are stored in separate files + (like Base/configLinux.h) which are included by config.h + (depending on __linux__ and friends) + +2003-11-25 15:43 zmoelnig + + * src/Base/GemPixObj.cpp: initialized newfilm/newimage to 0 + +2003-11-25 15:41 zmoelnig + + * src/Base/GemBase.h: added support for HELPSYMBOL_BASE (which is + defined as "Gem/") -- used in CPPExtern.h + +2003-11-25 15:41 zmoelnig + + * src/Base/CPPExtern.h: added HELPSYMBOL to set an alternate + helpsymbol (it crashes, when more than 1 help-symbols are + specified and we already do it here) added support for + HELPSYMBOL_BASE (which is defined as "Gem/" in GemBase.h) + +2003-11-23 20:27 zmoelnig + + * src/Pixes/videoV4L.cpp: set notowned=false when color-conversion + is done (which is the truth) + +2003-11-19 09:53 zmoelnig + + * GEM_darwin.pbproj/zmoelnig.pbxuser: this is my + macOS-projectmaker-project + +2003-11-18 20:53 zmoelnig + + * help/: curve3d.pd, tube.pd: help-patches for [curve3d] and [tube] + +2003-11-18 19:21 zmoelnig + + * src/Pixes/pix_texture.cpp: changed "post()" to "debug()" which is + a define to either "post()" or nothing, so we can do some + debug-information on demand + +2003-11-18 19:18 zmoelnig + + * src/Pixes/pix_videoLinux.cpp: removed the auto-registering + +2003-11-18 19:12 zmoelnig + + * src/Pixes/pix_videoNEW.cpp: added an alias for + "colorspace"-message + +2003-11-18 18:47 cclepper + + * GEM_darwin.pbproj/: cgc.pbxuser, project.pbxproj: new pbproj + +2003-11-18 16:39 zmoelnig + + * src/Base/: GemMan.cpp, GemWinCreateXWin.cpp: made XWin be aware + of resizes. however, it doesn't really work yet :-( + +2003-11-18 16:36 zmoelnig + + * src/Base/GemFuncUtil.h: added MIN and MAX functions + +2003-11-18 16:25 zmoelnig + + * src/Geos/: curve3d.cpp, curve3d.h, tube.cpp, tube.h: added + curve3d and tube + +2003-11-18 16:21 zmoelnig + + * help/pix_film.pd: updated documentation + +2003-11-18 16:20 zmoelnig + + * src/Pixes/pix_histo.cpp: removed unneeded variables + +2003-11-18 16:18 zmoelnig + + * src/Pixes/film.h: include "config.h" only on linux note: this + should be changed LATER to include "config.h" on all platforms. + config.h should then include platform-specific config-files (that + can be generated with configure or whatever) + +2003-11-18 16:17 zmoelnig + + * src/Pixes/pix_video.cpp: defined NO_AUTO_REGISTER_CLASS to not + register this class with pd on __linux__, __APPLE__ and NT + +2003-11-18 16:14 zmoelnig + + * src/Base/CPPExtern.h: put the auto_register code in a separate + define whichcan be switched off by defining + NO_AUTO_REGISTER_CLASS before including the CPPExtern.h + +2003-11-17 19:53 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: swapped 2 variables in + class-definition (apple's gcc likes it better this way) removed + unused code + +2003-11-15 04:26 cclepper + + * src/Pixes/: pix_diff.cpp, pix_diff.h: added Altivec function for + both RGB and YUV + +2003-11-14 15:43 zmoelnig + + * src/Geos/text2d.h: added curve3d and tube + +2003-11-14 11:26 zmoelnig + + * src/Controls/: gemmouse.cpp, gemmouse.h: added scaling for the + mouse-coordinates. this allows output that is independant of the + window-size + +2003-11-14 08:21 cclepper + + * src/Pixes/pix_add.h: removed the extraneous RGB_Altivec prototype + +2003-11-14 08:19 cclepper + + * src/Pixes/pix_2grey.cpp: a dst tweak and bug fix + +2003-11-13 05:26 cclepper + + * src/Pixes/pix_2grey.cpp: slight change to RGB vector code + +2003-11-13 04:38 cclepper + + * src/Pixes/: pix_2grey.h, pix_2grey.cpp: added Altivec + +2003-11-12 19:11 zmoelnig + + * src/Base/TextBase.cpp: removed the check, whether the first atom + of the text-list is a symbol. now we can print numbers too. + +2003-11-12 18:57 zmoelnig + + * src/Pixes/: pix_add.cpp, pix_add.h: changed processRGB_Altivec to + processRGBA_Altivec + +2003-11-12 18:55 zmoelnig + + * src/MarkEx/: average.cpp, counter.cpp, hsvrgb.cpp, m_control.cpp, + multiselect.cpp, randomF.cpp, reson.cpp, strcat.cpp, + tripleLine.cpp, vector.cpp: fixed linefeed + +2003-11-11 08:31 cclepper + + * src/Pixes/pix_add.h: added RGB Altivec + +2003-11-11 08:04 cclepper + + * src/Pixes/pix_add.h: added RGB Altivec + +2003-11-10 07:37 cclepper + + * src/Pixes/: pix_a_2grey.cpp, pix_coloralpha.cpp: changed from + float to int processing + +2003-11-10 07:18 cclepper + + * src/Pixes/pix_2grey.cpp: changed from float to int processing of + grey value + +2003-11-10 07:17 cclepper + + * src/Pixes/: pix_subtract.cpp, pix_subtract.h: added RGB Altivec + +2003-11-10 07:09 cclepper + + * src/Pixes/pix_add.cpp: added RGB Altivec + +2003-11-10 04:23 cclepper + + * src/Pixes/: pix_gain.cpp, pix_motionblur.cpp, pix_offset.cpp, + pix_subtract.cpp: changed Altivec defines + +2003-11-10 03:11 cclepper + + * src/Pixes/: pix_add.cpp, pix_background.cpp, pix_blur.cpp, + pix_chroma_key.cpp, pix_compare.cpp, pix_convolve.cpp, + pix_invert.cpp, pix_mix.cpp: changed Altivec defines + +2003-11-03 13:15 zmoelnig + + * src/Manips/camera.cpp: changed (bool) to (int), since vc6 doesn't + like assigning a boolean-value to an integer. + +2003-11-03 13:14 zmoelnig + + * src/MarkEx/: abs.cpp, average.cpp, counter.cpp, hsvrgb.cpp, + m_control.cpp, multiselect.cpp, randomF.cpp, reson.cpp, + strcat.cpp, tripleLine.cpp, vector.cpp: added no-warn-flags for + vc6 + +2003-11-03 13:13 zmoelnig + + * src/Pixes/: filmFFMPEG.cpp, filmFFMPEG.h: made it compile with + ffmpeg-0.4.8 (however i wasn't yet able to load a movie...) + +2003-11-03 13:12 zmoelnig + + * src/Pixes/: filmQT.cpp, filmQT.h: made it work under windows; + however it likes crashing sometimes and i haven't found out yet + why... + +2003-10-24 20:38 zmoelnig + + * src/BUGS: fixed some BUGS... + +2003-10-24 20:32 zmoelnig + + * src/Gnu/: configure, configure.in: added "--with-aviplay" as an + alias for "--with-avi" + +2003-10-24 20:31 zmoelnig + + * src/Base/TextBase.cpp: added some comment to the render() for + neither FTGL/GLTT support (while trying to find out + +2003-10-23 10:10 zmoelnig + + * src/Pixes/pix_buffer.cpp: fixed another possible bug (check for + NULL-images) + +2003-10-22 13:01 zmoelnig + + * src/MarkEx/MarkExSetup.cpp: added the self-registering code, so + that MarkEx will stay available + +2003-10-22 11:06 zmoelnig + + * src/Pixes/filmQT.cpp: further changes, but far from working yet + +2003-10-22 10:35 zmoelnig + + * src/Pixes/pix_buffer.cpp: fixed bugs in + pix_buffer_read/pix_buffer_write when no or unknown pix_buffers + were specifified + +2003-10-22 10:34 zmoelnig + + * src/Base/GemWinCreate.h: added "fsaa" to the WindowHints-class + +2003-10-22 07:32 cclepper + + * src/: Base/GemMan.cpp, Base/GemMan.h, Base/GemWinCreateMac.cpp, + Controls/gemwin.cpp, Controls/gemwin.h: added FSAA + +2003-10-21 20:15 ggeiger + + * src/Base/: CPPExtern.h, GemSetup.cpp: remove setup() function + this is done through a static class structure now, that is + created for each object Gem objects are added automatically to pd + as soon as they are compiled in + +2003-10-21 20:14 ggeiger + + * src/Base/GemBase.cpp: re-used continueRender() function + +2003-10-21 20:13 ggeiger + + * src/Base/GemMan.cpp: removed my name from startup + +2003-10-21 16:44 ggeiger + + * src/Particles/partlib_actions.cpp: distribute particles according + to their velocity if there is more than one particle per frame + +2003-10-21 16:21 ggeiger + + * help/: ambient.pd, ambientRGB.pd: added numberbox to rotate light + (cube seems to be very dark with 180) + +2003-10-21 16:19 ggeiger + + * help/alpha.pd: added auto message description + +2003-10-21 16:17 ggeiger + + * help/: alpha.pd, ambient.pd, ambientRGB.pd, change.pd, + part_color.pd, part_damp.pd, part_draw.pd, part_follow.pd: change + is in pd already + +2003-10-21 15:50 ggeiger + + * src/Controls/gemhead.cpp: bang on gemhead triggers a render cycle + (was broken) + +2003-10-15 21:07 zmoelnig + + * src/Pixes/videoV4L.cpp: set the upside-down flag to true. (hope + this is alright) + +2003-10-15 21:05 zmoelnig + + * src/Pixes/filmQT.h: temporarily added some variables (like + m_auto) these should be gone when i really have access to a + machine where quicktime4win is installed + +2003-10-15 21:04 zmoelnig + + * src/Gnu/: configure, configure.in: fixed a bug when searching for + the linker/compiler flags for libavifile: not "avifile-config" is + used if available + +2003-10-15 21:03 zmoelnig + + * src/BUGS: new bugs (pix_buffer, libavifile, remote display) + +2003-10-10 14:52 zmoelnig + + * src/Pixes/pix_filmNEW.cpp: added filmQT changed "#define DEBUG" + to "#define debug" + +2003-10-10 14:16 zmoelnig + + * src/Pixes/pix_kaleidoscope.h: disabled pete's "static"-hack with + NO_HACK (default on windows) + +2003-10-10 14:12 zmoelnig + + * src/Pixes/pix_colorreduce.cpp: vc6 doesn't like statical arrays + with variable sizes + +2003-10-10 13:15 zmoelnig + + * src/: gem.dsp, gem_vc6.dsw: updated my vc6-projects + +2003-10-10 13:14 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: disabled warnings on vc6 + +2003-10-10 13:13 zmoelnig + + * src/Gnu/: configure, configure.in: search for libavifile-headers + rather than assuming they are in /usr/include/avifile + +2003-10-10 13:11 zmoelnig + + * src/Pixes/: filmQT.cpp, filmQT.h: first attempt of a port from + [pix_filmQT] to the film*-class. however i have + quicktime4windows not installed, so i had no way to compile this + yet.... + +2003-10-10 13:10 zmoelnig + + * src/Pixes/: filmAVI.h, filmAVI.cpp: made filmAVI work. a first + step for pix_filmNEW to run on windows... + +2003-10-10 13:09 zmoelnig + + * src/Pixes/: filmAVIPLAY.h, pix_filmLinux.h: for libavifile we + used to include ; since the headers for + libavifile-0.7 is located in /usr/include/avifile-0.7/, we now + search for the correct path in the "configure" and include only + "avifile.h" + +2003-10-10 13:07 zmoelnig + + * src/Pixes/filmAVIPLAY.cpp: is only included if + HAVE_LIBAVIPLAY is defined + +2003-10-10 13:04 zmoelnig + + * src/Pixes/pix_filmNEW.h: removed "m_film", since it is not needed + +2003-10-10 13:03 zmoelnig + + * src/Particles/: partlib_actions.cpp, partlib_system.cpp: my + vc6-dos-compiler doesn't like because it makes it like + against some "new" io-libs while it rather needs "old" ones which + are requested by + +2003-10-10 13:02 zmoelnig + + * src/Manips/camera.h: commented out namespace std for windows (vc6 + complained about this) + +2003-10-10 13:00 zmoelnig + + * examples/04.pix/06.PixRect.pd: now you see something after the + first coordinate-change... + +2003-10-10 12:59 zmoelnig + + * examples/04.pix/12.blending.pd: now using [pix_buf] instead of + re-loading the image for each blending-change + +2003-10-08 19:33 zmoelnig + + * examples/04.pix/05.film.pd: removed the [pix_rgba], since now + [pix_film] should output only RGBA/YUV/Grayscale + +2003-10-08 18:55 zmoelnig + + * src/BUGS: reported bugfix of filmQT4L + +2003-10-08 18:52 zmoelnig + + * src/Pixes/: setup.h, pix_movieNEW.cpp, pix_movieNEW.h: this is + how [pix_movie] looks like if derived from [pix_filmNEW] (and + [pix_texture]) + +2003-10-08 18:51 zmoelnig + + * src/Pixes/: filmMPEG1.cpp, filmMPEG1.h: using "upsidedown" from + imageStruct; added YUV support + +2003-10-08 18:09 zmoelnig + + * src/Pixes/: filmAVIPLAY.cpp, filmMPEG3.cpp, filmQT4L.cpp: using + "upsidedown" from imageStruct; + +2003-10-08 18:06 zmoelnig + + * src/Pixes/pix_texture.cpp: using "upsidedown" from imageStruct; + added this flag to setTexCoords() to indicate whether the + texture-coordinates should be flipped or not. the __APPLE__ + define for flipping is therefore obsoleted. + +2003-10-08 18:04 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: added "upsidedown" to + imageStruct; this is meant for texture-flipping of the image + (most movies are loaded the "wrong" way) upsidedown defaults to + true on __APPLE__; false elsewhere + +2003-10-08 17:01 zmoelnig + + * src/Pixes/pix_texture.h: made [pix_movieNEW] (for now; of course + this should [pix_movie] LATER a friend of [pix_texture] this will + let us use the sophisticated texturing mechanism of [pix_texture] + for [pix_movie] + +2003-10-07 18:10 zmoelnig + + * src/Pixes/setup.h: moved the pix_film things up a bit, because i + had a hard time making [pix_film] an alias for [pix_filmNEW] + +2003-10-07 18:09 zmoelnig + + * src/Pixes/pix_filmNEW.h: added "colorspace"-method + +2003-10-07 18:09 zmoelnig + + * src/Pixes/pix_filmNEW.cpp: some bug fixing added + "colorspace"-method "post" becomes "DEBUG" which can be turned + off. some reordering of decode-libs: libmpeg3 is better in + decoding mpegs then libavifile (less crashes) + +2003-10-07 17:47 zmoelnig + + * src/Pixes/filmMPEG3.cpp: open() now utilizes setCsizeByFormat() + +2003-10-07 17:46 zmoelnig + + * src/Pixes/filmAVIPLAY.cpp: made the openStream sleep a bit. still + opening streamed-files sometimes crashes added support for more + colour-formats + +2003-10-07 17:44 zmoelnig + + * src/Pixes/: filmAVI.cpp, filmAVI.h: put quite everything (but + constructor/destructor) between one huge #ifdef. the rest should + be filled with defaults by the film-class. + +2003-10-07 17:43 zmoelnig + + * src/Pixes/filmQT4L.cpp: added colour-change on the fly + +2003-10-07 17:40 zmoelnig + + * src/Pixes/film.cpp: open() now returns false (to make the skip to + next api work) + +2003-10-07 17:39 zmoelnig + + * src/Pixes/film.h: requestColor() now sets "m_wantedFormat" + +2003-10-07 17:38 zmoelnig + + * src/Base/GemPixUtil.cpp: a bit of code-cleanup + +2003-10-07 14:01 zmoelnig + + * src/Pixes/setup.h: rewrote a bit in the #ifdef clauses and put + them all together. it is really ugly on linux pix_filmNEW is now + the default + +2003-10-07 13:47 zmoelnig + + * src/Pixes/: filmAVIPLAY.cpp, filmAVIPLAY.h: encapsuled everything + but constructor/destructor within one big "#ifdef HAVE_QT4L" + (using inheritance) made getFrame() return frames of all three + colour-spaces. fixed several bugs + +2003-10-07 10:58 zmoelnig + + * src/Pixes/: filmQT4L.cpp, filmQT4L.h: encapsuled everything but + constructor/destructor within one big "#ifdef HAVE_QT4L" (using + inheritance) made getFrame() return frames of all three + colour-spaces. BAD: we only get RGB-images from the + qt4l-library. this means: + video(YUV)->buffer(RGB)->gem_image(RGBA/YUV/Gray). but what + should i do ? + +2003-10-07 10:55 zmoelnig + + * src/Pixes/filmMPEG3.cpp: rewrote the getFrame() to: a) get frames + of different colour-spaces b) decode YUV/Gray really fast + (directly access the decoding Y/U/V-planes) + +2003-10-07 10:51 zmoelnig + + * src/Pixes/film.h: added some thoughts about requested/forced + colourspaces. i think, that film* should at least return + colour-spaces that could be handled by Gem/openGL itself. (it + doesnt make sense for [pix_film] to handle IMG_FMT_RGB15) so the + cs-request should really be a force and not just a suggestion + +2003-10-07 10:46 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: added fromRGB16() to + retrieve data from 16bit encoded RGB. added fromYV12(Y,U,V) + which does not assume that the U and V planes are directly after + the Y plane. this is handy if we have independent planes + +2003-10-03 16:28 zmoelnig + + * src/Base/GemBase.h: GL_RGBA is not defined at openGL<1.2 (i + think); furthermore the include-check for CPPExtern.h is already + made in CPPExtern.h + +2003-10-03 15:59 zmoelnig + + * src/Pixes/: filmMPEG1.cpp, filmMPEG1.h: put quite everything (but + constructor/destructor) between one huge #ifdef. the rest should + be filled with defaults by the film-class. + +2003-10-03 15:59 zmoelnig + + * src/Pixes/: filmMPEG3.cpp, filmMPEG3.h: put quite everything (but + constructor/destructor) between one huge #ifdef. the rest should + be filled with defaults by the film-class. on close() the + filehandler is set to NULL (caused to crash on multiple closes) + +2003-10-02 16:47 zmoelnig + + * src/Manips/: camera.cpp, camera.h: removed #include + (it is included in GemBase anyhow) ifdef'ed the #include + to __APPLE__ (else + +2003-09-30 20:16 zmoelnig + + * src/BUGS: filmQT4L procuces RGB if RGBA is not supported by the + codec + +2003-09-30 20:11 zmoelnig + + * src/Pixes/: pix_posterize.cpp, pix_posterize.h: removed the + processRGBAImage-call (anyhow, it didn't do anything) + +2003-09-30 20:11 zmoelnig + + * src/Pixes/: pix_flip.cpp, pix_flip.h: added YUV support split + processImage into processRGBAImage and processGrayImage + +2003-09-29 05:26 tigital + + * help/: pix_dot.pd, pix_rds.pd: corrected text + +2003-09-29 05:11 tigital + + * src/Manips/setup.h: added camera_setup() + +2003-09-29 05:10 tigital + + * src/Manips/: camera.cpp, camera.h: initial commit + +2003-09-24 06:51 tigital + + * src/Pixes/: pix_dot.cpp, pix_dot.h: more work on yuv processing, + but it still doesn't work + +2003-09-24 06:46 tigital + + * src/Pixes/pix_kaleidoscope.cpp: removed some unused code, cleanup + +2003-09-24 06:44 tigital + + * src/Pixes/pix_kaleidoscope.h: removed some unused code + +2003-09-24 06:42 tigital + + * src/Pixes/pix_halftone.h: added __APPLE__ "macosx_math.h", some + unused cleanup + +2003-09-24 06:38 tigital + + * src/Pixes/: pix_lumaoffset.cpp, pix_lumaoffset.h: fixed + "comparison between signed & unsigned int" warning on line 117, + in processRGBAImage() + +2003-09-24 06:33 tigital + + * src/Particles/partlib_vector.h: replaced __APPLE__ define with + macosx_math.h + +2003-09-24 06:32 tigital + + * src/Particles/partlib_actions.cpp: added default: break; to + PAAvoid::Execute() & PABounce::Execute, because PDPoint, PDLine, + PDBox, PDCylinder, PDCone, and PDBlob aren't taken care of...also + replaced __APPLE__ defines with macosx_math.h + +2003-09-24 06:27 tigital + + * src/Particles/partlib_system.cpp: added default: break; to + _pCallActionList(), because PAHeaderID isn't taken care of + +2003-09-23 05:21 tigital + + * src/Pixes/pix_snap.cpp: added glFinish() & several + glPixelStorei()'s for __APPLE__ for speed up?: is this + applicable to all platforms? + +2003-09-23 05:16 tigital + + * src/Pixes/pix_lumaoffset.cpp: removed unused variables + +2003-09-23 04:50 tigital + + * src/Controls/gemkeyboard.cpp: changed comment from "mousePressed" + to "KeyBoardPressed" + +2003-09-23 04:47 tigital + + * src/Base/TextBase.cpp: reordered initializers to shut up gcc + warning + +2003-09-22 12:04 zmoelnig + + * help/: pix_halftone.pd, pix_movement.pd: updated documentation + +2003-09-22 12:03 zmoelnig + + * src/Pixes/: pix_rds.cpp, pix_rds.h: added Gray-support + YUV-support is still under construction (but now does something + (stupid) instead of nothing) + +2003-09-22 12:02 zmoelnig + + * src/Pixes/pix_metaimage.cpp: added an inlet for the size of the + metaimage + +2003-09-22 12:01 zmoelnig + + * src/Pixes/: pix_convolve.cpp, pix_convolve.h: added Gray-support + split the processImage into processRGBAImage and processGrayImage + +2003-09-22 11:59 zmoelnig + + * src/Pixes/: pix_movement.cpp, pix_movement.h: added YUV-Support + (like grayscale: the difference image is written on the + luma-channel; colour is discarded) + +2003-09-22 11:58 zmoelnig + + * src/Pixes/: pix_scanline.cpp, pix_scanline.h: added Gray-support + (RGBA & Gray are in processImage, while YUV has a separate + function) + +2003-09-22 11:56 zmoelnig + + * src/Pixes/: pix_blur.h, pix_blur.cpp, pix_halftone.cpp, + pix_halftone.h, pix_motionblur.cpp, pix_motionblur.h: added + Gray-support + +2003-09-22 11:55 zmoelnig + + * src/Base/GemPixUtil.cpp: fixed setBlack() and setWhite() for YUV + +2003-09-17 15:23 zmoelnig + + * help/: pix_background.pd, pix_compare.pd, pix_mix.pd, + pix_motionblur.pd, pix_roll.pd, pix_scanline.pd, pix_duotone.pd: + added some documentation + +2003-09-17 15:09 zmoelnig + + * src/BUGS: more bugs to come + +2003-09-17 15:08 zmoelnig + + * src/Gnu/Makefile.in: fixed install on linux + +2003-09-17 15:08 zmoelnig + + * src/Gnu/undocumented_objects: documented a lot ;-) + +2003-09-17 15:07 zmoelnig + + * src/Pixes/pix_film.cpp: fixed the "toupper()" BUG: include + + +2003-09-17 15:07 zmoelnig + + * src/Pixes/pix_duotone.cpp: result of merge + +2003-09-17 15:07 zmoelnig + + * src/Pixes/pix_mix.cpp: allow arguments and an intelligent gain + handler + +2003-09-17 15:05 zmoelnig + + * src/Pixes/pix_background.cpp: made the inlet do something + intelligent: set the range (normalized 0..1) + +2003-09-17 15:03 zmoelnig + + * src/Pixes/pix_background.cpp: added methods for Grey + +2003-09-17 15:02 zmoelnig + + * src/Pixes/pix_background.cpp: code cleanup to make merge easier + +2003-09-17 14:43 zmoelnig + + * src/Pixes/pix_mix.h: allow arguments and an intelligent gain + handler + +2003-09-17 14:42 zmoelnig + + * src/Pixes/pix_motionblur.cpp: new indentation ? + +2003-09-17 14:40 zmoelnig + + * src/Pixes/pix_alpha.cpp: i think i've found a bug in GREY + +2003-09-17 14:39 zmoelnig + + * src/Pixes/pix_compare.cpp: cleaned up the code a bit. default + behaviour is no ON (used to be OFF) RGBAcomparision is now done + on luminance instead of each channel separately + +2003-09-17 14:38 zmoelnig + + * src/Pixes/pix_chroma_key.cpp: cleaned up the code a bit. default + behaviour is no ON (used to be OFF) + +2003-09-17 14:35 zmoelnig + + * src/Pixes/pix_backlight.cpp: changed ranges from 0..255 to + 0.0..1.0 added some inlets + +2003-09-17 14:35 zmoelnig + + * src/Pixes/pix_colorreduce.cpp: added checks for control-range + added some inlets + +2003-09-17 14:33 zmoelnig + + * src/Pixes/: pix_posterize.cpp, pix_posterize.h: added comments + about ranges of the internal variables. also changed the range + from 0..255 to 0.f..1.f + +2003-09-17 14:32 zmoelnig + + * src/Pixes/pix_buffer.cpp: BUG: the first incoming frame is + captured automatically --> FIXED (nothing is done, if no frame is + specified) + +2003-09-17 14:31 zmoelnig + + * src/Pixes/pix_snap2tex.cpp: grabbed texture-size defaults to the + gemwin-size + +2003-09-17 14:29 zmoelnig + + * src/Pixes/pix_tIIR.h: added a comment, saying what this object is + for + +2003-09-17 14:28 zmoelnig + + * src/Pixes/: pix_rectangle.cpp, pix_normalize.cpp, + pix_normalize.h, pix_rectangle.h: added methods for YUV + +2003-09-17 14:28 zmoelnig + + * src/Pixes/: pix_lumaoffset.cpp, pix_lumaoffset.h: fixed the bug + with filledLines + +2003-09-17 14:26 zmoelnig + + * src/Pixes/: pix_refraction.cpp, pix_refraction.h: removed + overwrites of the virtual functions for yuv/grey-colourspace. + Why do we have inheritance ? + +2003-09-17 14:25 zmoelnig + + * src/Pixes/: pix_dot.cpp, pix_dot.h: added inlet for size of dots + +2003-09-17 14:22 zmoelnig + + * src/Pixes/pix_background.h: added methods for grey + +2003-09-17 14:21 zmoelnig + + * src/Pixes/: pix_roll.cpp, pix_roll.h: added methods for RGBA/grey + +2003-09-17 14:20 zmoelnig + + * src/Pixes/: pix_color.cpp, pix_color.h, pix_crop.cpp, pix_crop.h, + pix_curve.cpp, pix_curve.h, pix_histo.cpp, pix_histo.h, + pix_levels.cpp, pix_levels.h: added methods for YUV/grey + +2003-09-17 14:19 zmoelnig + + * src/Pixes/: pix_2grey.cpp, pix_2grey.h, pix_bitmask.cpp, + pix_bitmask.h, pix_blob.cpp, pix_blob.h: added methods for YUV + +2003-09-17 14:17 zmoelnig + + * src/Geos/: newWave.cpp, newWave.h: made some inlets made the + heightMess do something + +2003-09-17 14:16 zmoelnig + + * src/Geos/: ripple.cpp, ripple.h, rubber.cpp, rubber.h: made some + inlets made the heightMess do something arguments specify the + grid-size + +2003-09-17 13:45 zmoelnig + + * src/Base/GemPixObj.h: packed the code a little bit (to make it + more readable to me) + +2003-09-17 13:45 zmoelnig + + * src/Base/GemShape.h: new indentation + +2003-09-17 13:44 zmoelnig + + * src/Base/GemVersion.h: version is now 0.888-pre1 + +2003-09-17 13:40 zmoelnig + + * help/: cuboid.pd, newWave.pd, part_info.pd, part_render.pd, + pix_backlight.pd, pix_buffer.pd, pix_buffer_read.pd, + pix_buffer_write.pd, pix_color.pd, pix_colorreduce.pd, + pix_crop.pd, pix_delay.pd, pix_dot.pd, pix_grey.pd, pix_info.pd, + pix_levels.pd, pix_lumaoffset.pd, pix_posterize.pd, pix_rds.pd, + pix_snap2tex.pd, pix_tIIR.pd, pix_yuv.pd, polygon_smooth.pd, + ripple.pd, rubber.pd, slideSquares.pd: new help patches + +2003-09-17 13:30 zmoelnig + + * help/pix_movement.pd: result of merge + +2003-09-17 13:08 zmoelnig + + * help/: accumrotate.pd, alpha.pd, ambient.pd, ambientRGB.pd, + circle.pd, color.pd, colorRGB.pd, cone.pd, cube.pd, cylinder.pd, + diffuse.pd, diffuseRGB.pd, disk.pd, emission.pd, emissionRGB.pd, + pix_rgba.pd, pix_sig2pix~.pd, sphere.pd, teapot.pd: updated some + reference patches + +2003-09-15 06:48 tigital + + * src/Base/GemMan.cpp: - added texture_range_supported flag + (default=0, ie. off) and extension check + +2003-09-15 06:45 tigital + + * src/Base/GemMan.h: - added texture_range_supported flag + +2003-09-15 06:40 tigital + + * src/Pixes/pix_texture.cpp: - added texture_range usage on OSX, + where available: speed gain? - fixed problem with power of 2 + textures not taking fastest paths (rectangle_textures), if + available + +2003-09-15 02:39 cclepper + + * help/: pix_rtx.pd, pix_movement.pd, pix_biquad.pd: change tv_ to + pix_ + +2003-09-15 01:24 cclepper + + * src/Pixes/pix_convert.h: changed #ifdef MACOSX to __APPLE__ + +2003-09-15 01:18 cclepper + + * src/Pixes/: pix_buffer_read.h, pix_buffer_write.h, pix_buffer.h: + added a better description + +2003-09-15 01:07 cclepper + + * src/Pixes/pix_scanline.h: added a better description + +2003-09-15 01:05 cclepper + + * src/Pixes/: pix_duotone.cpp, pix_duotone.h: removed processGrey + +2003-09-15 01:00 cclepper + + * src/Pixes/pix_mix.h: changed gain + +2003-09-15 00:56 cclepper + + * src/Pixes/: pix_videoDarwin.cpp, pix_videoDarwin.h: changed the + colorspace message to match pix_film, dimension message now works + +2003-09-15 00:31 cclepper + + * src/Pixes/pix_write.cpp: changed #ifdef MACOSX to __APPLE__ + +2003-09-15 00:30 cclepper + + * src/Pixes/pix_texture.cpp: fixed commenting error + +2003-09-15 00:24 cclepper + + * src/Pixes/: pix_texture.cpp, pix_texture.h, pix_texture2.h, + pix_texture2.cpp: changed #ifdef MACOSX to __APPLE__ + +2003-09-15 00:21 cclepper + + * src/Pixes/: pix_rgba.cpp, pix_snap.cpp: changed #ifdef MACOSX to + __APPLE__ + +2003-09-15 00:10 cclepper + + * src/Pixes/pix_rgba.h: changed #ifdef MACOSX to __APPLE__ + +2003-09-14 23:59 cclepper + + * src/Pixes/: pix_movieYUV.cpp, pix_movieYUV.h, pix_resize.cpp: + changed #ifdef MACOSX to __APPLE__ + +2003-09-14 23:56 cclepper + + * src/Pixes/: pix_filmDarwinYUV.cpp, pix_filmYUV.cpp, + pix_imageInPlace.cpp, pix_movie.cpp, pix_movie.h: changed #ifdef + MACOSX to __APPLE__ + +2003-09-14 23:55 cclepper + + * src/Pixes/: pix_filmDarwin.cpp, pix_filmDarwin.h: added ram + message, made YUV default colorspace + +2003-09-14 23:45 cclepper + + * src/Pixes/: pix_film.cpp, pix_film.h: added colorspace message + +2003-09-14 23:04 cclepper + + * src/Pixes/: pix_chroma_key.cpp, pix_motionblur.cpp, + pix_compare.cpp: added #ifdef for PPC970/G5 + +2003-09-14 23:01 cclepper + + * src/Pixes/: pix_subtract.cpp, pix_blur.cpp, pix_mix.cpp, + pix_background.cpp: added #ifdef for PPC970/G5 + +2003-09-14 22:56 cclepper + + * src/Pixes/: pix_invert.cpp, pix_offset.cpp: added #ifdef for + PPC970/G5 + +2003-09-14 22:52 cclepper + + * src/Pixes/: pix_convolve.cpp, pix_gain.cpp: added #ifdef for + PPC970/G5 + +2003-09-14 22:49 cclepper + + * src/Pixes/pix_add.cpp: added #ifdef for PPC970/G5 + +2003-09-14 22:47 cclepper + + * src/Particles/part_vector.h: changed #ifdef MACOSX to __APPLE__ + +2003-09-14 22:29 cclepper + + * src/Nongeos/: world_light.h, world_light.cpp: changed #ifdef + MACOSX to __APPLE__ + +2003-09-14 22:28 cclepper + + * src/Manips/polygon_smooth.cpp: added GL_LINE_SMOOTH + +2003-09-14 22:23 cclepper + + * src/Manips/ortho.cpp: changed #ifdef MACOSX to __APPLE__ + +2003-09-14 22:18 cclepper + + * src/Geos/: ripple.h, rubber.h, slideSquares.cpp: changed #ifdef + MACOSX to __APPLE__ + +2003-09-14 22:02 cclepper + + * src/Geos/: model.cpp, newWave.h: changed #ifdef MACOSX to + __APPLE__ + +2003-09-14 21:59 cclepper + + * help/: pix_scanline.pd, pix_roll.pd: initial commit + +2003-09-14 21:41 cclepper + + * help/pix_motionblur.pd: initial commit + +2003-09-14 20:57 cclepper + + * help/pix_mix.pd: initial commit + +2003-09-14 19:53 cclepper + + * help/pix_compare.pd: initial commit + +2003-09-14 19:42 cclepper + + * help/pix_chroma_key.pd: initial commit + +2003-09-14 19:21 cclepper + + * help/pix_background.pd: initial commit + +2003-09-14 18:10 cclepper + + * src/Geos/: cuboid.cpp, imageVert.cpp: changed #ifdef MACOSX to + __APPLE__ + +2003-09-14 18:06 cclepper + + * src/Controls/setup.h: changed #ifdef MACOSX to __APPLE__ + +2003-09-14 18:02 cclepper + + * src/: Base/GemWinCreateMac.cpp, Base/sgiimage.cpp, + Controls/gemwin.cpp: changed #ifdef MACOSX to __APPLE__ + +2003-09-14 17:54 cclepper + + * src/Base/: GemState.cpp, GemWinCreate.h: changed #ifdef MACOSX to + __APPLE__ + +2003-09-14 17:54 cclepper + + * src/Base/GemShape.cpp: added a few more drawTypes + +2003-09-14 17:38 cclepper + + * src/Base/GemSetup.cpp: changed #ifdef MACOSX to __APPLE__ and + commented out yuv_setup() + +2003-09-14 17:29 cclepper + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: changed #ifdef MACOSX to + __APPLE__ + +2003-09-14 17:25 cclepper + + * src/Base/: GemMan.h, GemPixImageLoad.cpp, GemPixImageSave.cpp, + GemPixObj.h: changed #ifdef MACOSX to __APPLE__ + +2003-09-14 17:21 cclepper + + * src/Base/: GemBase.h, GemGluObj.h, GemGLUtil.h, GemGlutObj.h, + GemMan.cpp: changed #ifdef MACOSX to __APPLE__ + +2003-09-11 17:34 zmoelnig + + * src/: Gnu/undocumented_objects, TODO: made a list of undocumented + objects + +2003-09-11 17:05 zmoelnig + + * src/Pixes/pix_texture.cpp: removed debugging output + +2003-09-11 13:11 zmoelnig + + * src/Pixes/filmQT4L.cpp: removed debugging output + +2003-09-11 12:54 zmoelnig + + * src/Pixes/pix_filmLinux.cpp: added a comment + +2003-09-11 12:06 zmoelnig + + * src/Gnu/Makefile.in: hopefully fixed a bit on installing the + examples for linux + +2003-07-27 01:14 ggeiger + + * src/Manips/: alpha.cpp, alpha.h: disable depth test for alpha + blended render chains. I think this is the correct way how alpha + should work, still there is a message *auto* to turn it off + +2003-07-22 21:16 zmoelnig + + * src/Particles/: part_render.cpp, part_render.h: added + postrender() hack, to prevent the "source-object" to be drawn + +2003-07-22 21:00 ggeiger + + * src/Pixes/: pix_filmFFMPEG.cpp, pix_filmFFMPEG.h: fix compilation + bugs, removed ifdefs for ffmeg version + +2003-07-22 20:37 zmoelnig + + * src/Pixes/pix_resize.cpp: fixed the crash however, this is very + slow. we'll have to write a faster routine ourselves + +2003-07-22 20:27 zmoelnig + + * src/Pixes/pix_scanline.cpp: if m_interlace was 0, this used to + crash my machine with a floating-point exception. thus + "if(interleave<=0)interleave=1;" + +2003-07-22 20:15 zmoelnig + + * src/Pixes/: pix_biquad.cpp, pix_biquad.h: removed the + create/destroy/blank routines for the buffer + +2003-07-22 20:14 zmoelnig + + * src/Pixes/: pix_movement.cpp, pix_movement.h: added + greyscale-support addedsome checks before destroy[]. hope this + will fix the bug + +2003-07-22 20:04 zmoelnig + + * src/Pixes/: pix_aging.cpp, pix_background.cpp, pix_biquad.cpp, + pix_buffer.cpp, pix_coordinate.cpp, pix_delay.cpp, pix_dump.cpp, + pix_motionblur.cpp, pix_resize.cpp, pix_roll.cpp, pix_rtx.cpp, + pix_scanline.cpp: added checks before delete[] (just in case) + +2003-07-22 10:36 zmoelnig + + * src/Pixes/: pix_filmQT.cpp, pix_snap2tex.h: dos2unix (changed + linefeed/carriage-returns) + +2003-07-22 10:35 zmoelnig + + * src/Pixes/: pix_colorreduce.cpp, pix_colorreduce.h, + pix_levels.cpp, pix_levels.h: removed empty functions for + YUV/YUValtivec/Grey images (why do we have classes ?) + +2003-07-22 10:34 zmoelnig + + * src/Pixes/: pix_kaleidoscope.cpp, pix_kaleidoscope.h, + pix_lumaoffset.cpp, pix_lumaoffset.h, pix_metaimage.cpp, + pix_metaimage.h: removed functions for YUV/YUValtivec/Grey images + (why do we have classes ?) + +2003-07-22 10:31 zmoelnig + + * src/Pixes/: pix_halftone.cpp, pix_halftone.h: removed functions + for YUV/YUValtivec/Grey images (why do we have classes ?) added + an include for , this might break compilation on other + platforms, if so, please ifdef it to __linux__ + +2003-07-22 10:29 zmoelnig + + * src/Pixes/: pix_backlight.cpp, pix_backlight.h: removed functions + for YUV/YUValtivec/Grey images (why do we have classes ?) + +2003-07-22 10:26 zmoelnig + + * src/Geos/cube.cpp: added a newline at end of file ;-) + +2003-07-22 09:45 zmoelnig + + * src/Pixes/: pix_rgba.cpp, pix_rgba.h, pix_grey.cpp, pix_grey.h, + pix_yuv.cpp, pix_yuv.h: use the color-conversion from GemPixUtil; + pix_grey and pix_yuv are childs of pix_rgba (reduces code + dramatically!) + +2003-07-22 09:42 zmoelnig + + * src/Base/GemPixUtil.cpp: fixed several bugs in the + color-conversion routines + +2003-07-21 09:51 dheck + + * src/Pixes/pix_rtx.cpp: Added explicit reset of column index to 0 + to fix invalid access bug. + +2003-07-20 21:28 tigital + + * src/Geos/text2d.h: small typo fix to allow compiling on OSX + (space between FTFont* & makeFont(...) + +2003-07-20 00:41 tigital + + * src/Base/TextBase.h: small typo fix to allow compiling on OSX + +2003-07-19 22:40 tigital + + * src/Geos/: cube.cpp, cube.h: added blend message + +2003-07-19 19:30 zmoelnig + + * src/BUGS: general entry for pix-bugs + +2003-07-19 18:36 zmoelnig + + * src/Particles/: part_source.cpp, part_source.h: the particle-rate + is now float instead of integer (let's you emit 0.5 particles per + rendering cycle) + +2003-07-19 18:30 zmoelnig + + * src/Geos/model.cpp_: model.cpp_ seems to have been committed to + the CVS. it was just a backup for work... + +2003-07-19 18:20 zmoelnig + + * src/: Geos/text2d.cpp, Geos/text2d.h, Geos/text3d.cpp, + Geos/text3d.h, Geos/textextruded.cpp, Geos/textextruded.h, + Geos/textoutline.cpp, Geos/textoutline.h, Base/TextBase.cpp, + Base/TextBase.h: added FTGL-2.04 -- support + +2003-07-16 07:17 tigital + + * src/Base/GemWinCreateMac.cpp: added return to DestroyGemWindow() + to prevent crashing on window close in some circumstances + +2003-07-16 06:11 cclepper + + * src/Pixes/: pix_blur.cpp, pix_blur.h: fixed up some altivec + +2003-07-16 05:49 tigital + + * help/: pix_halftone.pd, pix_kaleidoscope.pd, pix_metaimage.pd, + pix_refraction.pd: initial commit + +2003-07-16 05:27 tigital + + * src/Pixes/: pix_backlight.cpp, pix_backlight.h, + pix_colorreduce.cpp, pix_colorreduce.h, pix_halftone.cpp, + pix_halftone.h, pix_kaleidoscope.cpp, pix_kaleidoscope.h, + pix_levels.cpp, pix_levels.h, pix_lumaoffset.cpp, + pix_lumaoffset.h, pix_metaimage.cpp, pix_metaimage.h, + pix_refraction.cpp, pix_refraction.h: initial import of + Pete's_Plugins ports (RGBA only so far): pix_colorreduce, + pix_halftone, pix_kaleidoscope, pix_levels, pix_lumaoffset, + pix_metaimage, pix_refraction, and pix_backlight + +2003-07-16 05:07 tigital + + * src/Pixes/setup.h: alphabetized functions; also added new setup + functions: pix_colorreduce, pix_halftone, pix_kaleidoscope, + pix_levels, pix_lumaoffset, pix_metaimage, pix_refraction, and + pix_backlight + +2003-07-16 05:02 tigital + + * src/Pixes/: pix_filmDarwin.cpp, pix_filmDarwinYUV.cpp: fixed + cast problem (UInt8* instead of Str255) + +2003-07-16 04:57 tigital + + * src/Base/GemPixObj.h: added PeteHelpers.h stuff (defines, inline + functions) + +2003-07-16 04:55 tigital + + * src/Base/GemPixImageLoad.cpp: cleanup, changed to __APPLE__, + solved casting problem + +2003-07-15 18:26 zmoelnig + + * src/Pixes/pix_rtx.cpp: added support for grey and yuv images. + (not tested) + +2003-07-15 13:50 zmoelnig + + * src/Particles/: part_source.cpp, part_source.h: added settable + domains+arguments + +2003-07-15 13:48 zmoelnig + + * src/Particles/: part_velcone.cpp, part_velsphere.cpp: + [part_velcone] and [part_velsphere] are obsoleted by + [part_velocity] added an "obsolete"-warning + +2003-07-15 13:47 zmoelnig + + * src/Particles/: part_veldomain.cpp, part_veldomain.h, + part_velocity.cpp, part_velocity.h, setup.h: [part_veldomain] has + been replaced by [part_velocity] + +2003-07-15 13:46 zmoelnig + + * help/: part_source.pd, part_velcone.pd, part_veldomain.pd, + part_velocity.pd, part_velsphere.pd: updated reference-patches. + [part_veldomain] is replaced by [part_velocity] + +2003-07-15 10:01 zmoelnig + + * doc/GemPrimer.pdf: a started (in April) primer for Gem, however, + far from being finished + +2003-07-15 09:58 zmoelnig + + * examples/04.pix/24.time-filtering.pd: a an example for how to use + [pix_tIIR] + +2003-07-15 09:58 zmoelnig + + * examples/04.pix/25.buffer.pd: a an example for how to use + [pix_buffer], [pix_buffer_read], [pix_buffer_write] + +2003-07-15 09:55 zmoelnig + + * examples/04.video/00.SimpleVideo.pd: just render a video onto a + geo + +2003-07-15 09:53 zmoelnig + + * help/: part_veldomain.pd, part_velocity.pd, part_vertex.pd, + pix_biquad.pd, pix_movement.pd, pix_rtx.pd, textextruded.pd: help + for the resp. object + +2003-07-15 09:39 zmoelnig + + * src/Gnu/: configure, configure.in: added checks for FTGL + +2003-07-15 09:39 cclepper + + * src/Pixes/: pix_videoDarwin.cpp, pix_videoDarwin.h, + pix_filmDarwin.cpp, pix_filmDarwin.h: now does color-space + switching + +2003-07-15 09:38 zmoelnig + + * src/Particles/setup.h: added [part_vertex], [part_velocity], + [part_veldomain] + +2003-07-15 09:38 zmoelnig + + * src/Particles/: part_vertex.cpp, part_vertex.h: [part_vertex] + adds one particle each rendering cycle at a certain position -- + useful for moving particle sources (but alas, only one particle + at a time) + +2003-07-15 09:36 zmoelnig + + * src/Particles/: part_veldomain.cpp, part_veldomain.h: + [part_veldomain] sets the velocity into a specified domain (like + sphere, triangle or whatever) + +2003-07-15 09:36 zmoelnig + + * src/Particles/: part_velocity.cpp, part_velocity.h: + [part_velocity] sets the velocity into a specified direction + +2003-07-15 09:34 zmoelnig + + * src/Particles/: partlib_actions.cpp, partlib_system.cpp: include + rather than + +2003-07-15 09:32 zmoelnig + + * src/Particles/: part_source.cpp, part_source.h: you can now set + the domain of the source TODO: make the argument vector settable + too (not much use without) + +2003-07-15 09:30 zmoelnig + + * src/Geos/: setup.h, textextruded.cpp, textextruded.h: added a new + object for extruded text (FTGL only) + +2003-07-15 09:21 zmoelnig + + * src/: Base/TextBase.cpp, Base/TextBase.h, Base/config.h.in, + Geos/text2d.cpp, Geos/text2d.h, Geos/text3d.cpp, Geos/text3d.h, + Geos/textoutline.cpp, Geos/textoutline.h: added FTGL support for + text-rendering under macOS i have made FTGL the default (not + knowing whether it will break) under windos GLTT is still the + default (although FTGL should work too) under linux the configure + script decides what to take, but prefers FTGL rather than GLTT + +2003-07-15 04:30 cclepper + + * src/Pixes/: pix_background.cpp, pix_background.h: added Altivec + YUV function + +2003-07-13 08:13 tigital + + * src/Base/GemWinCreateMac.cpp: stupid cleanup of commented-out + stuff + +2003-07-13 08:11 tigital + + * src/Nongeos/world_light.cpp: added OSX glcontext check to + destructor to stop crashes when patch is opened/manipulated, but + no glcontext is created + +2003-07-13 08:09 tigital + + * src/Pixes/pix_blur.cpp: vector long has been deprecated: now + it's vector int's + +2003-07-12 08:25 cclepper + + * src/Pixes/: pix_chroma_key.h, pix_chroma_key.cpp: added some + Altivec + +2003-07-12 08:22 cclepper + + * src/Pixes/pix_convolve.cpp: more Altivec tweaks + +2003-07-11 17:20 zmoelnig + + * src/Pixes/: videoDV4L.cpp, videoDV4L.h: still some cvs-merge + errors, probably they are gone now... + +2003-07-11 16:58 zmoelnig + + * src/Base/GemPixImageSave.cpp: added a newline at the end of the + file + +2003-07-11 16:55 zmoelnig + + * src/Pixes/: pix_videoNEW.cpp, videoDV4L.cpp, videoDV4L.h, + videoV4L.cpp: got some problems with the cvs-update on another + machine. hope it's ok now + +2003-07-11 16:06 zmoelnig + + * src/Gnu/: aclocal.m4, configure, configure.in: added checks for + mmx-extension of gcc + +2003-07-11 15:58 zmoelnig + + * src/Pixes/videoDV4L.cpp: filedescriptors may also be 0! i only + closed the device, if the fd was>0. fixed. + +2003-07-11 15:55 zmoelnig + + * src/Base/: GemMan.cpp, GemWinCreate.h, GemWinCreateXWin.cpp: + added a flag to WindowInfo, whether a constant context has been + established. the destroyWindow depends partly on this (because + my laptop (with an ati mobility l6) crashed when destroying a + non-constant context. also changed the line "do not continue" to + "continue at your own risk" + +2003-07-09 14:07 zmoelnig + + * src/Gnu/WHATSNEW: added some advice for video1394 under linux + +2003-07-09 13:17 zmoelnig + + * src/Gnu/: configure, configure.in: oops, i'm getting tired. + another typo + +2003-07-09 13:10 zmoelnig + + * src/Gnu/: configure, configure.in: oops, made a type "libdv" + instead of "dv" + +2003-07-09 13:05 zmoelnig + + * src/: gem.dsp, Base/Make.depend, Base/config.h.in, + Controls/Make.depend, Geos/Make.depend, Gnu/Makefile, + Manips/Make.depend, MarkEx/Make.depend, Nongeos/Make.depend, + Particles/Make.depend, Pixes/Make.depend, Pixes/pix_test.cpp, + Pixes/pix_test.h, openGL/Make.depend: removed the Makefile.depend + . they are not really needed in CVS + +2003-07-09 12:59 zmoelnig + + * src/Pixes/pix_dot.cpp: use image.reallocate() rather than + image.clear() + image.allocate() + +2003-07-09 12:58 zmoelnig + + * src/Pixes/: pix_videoNEW.cpp, pix_videoNEW.h: it seems like this + is only used under linux for now. however, i have added the + videoDV4L support. and there is now a "driver" message, that + let's you choose between various drivers (like video4linux and + video1394) yes, the way the modules are registered is really BAD. + have to change this soon + +2003-07-09 12:56 zmoelnig + + * src/Pixes/: videoDV4L.cpp, videoDV4L.h: hopefully this is a real + support for video over ieee1394 (firewire/dv) under linux! + +2003-07-09 12:51 zmoelnig + + * src/Pixes/video.cpp: changed the error-message (like for setting + the device) slightly + +2003-07-09 12:42 zmoelnig + + * src/Gnu/: configure.in, configure: fixed the dv-checking. force + the headers to be there, when the library is found too + +2003-07-09 12:41 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: added some more + yuv-conversions. (following a new naming-scheme after the FOURCC) + fromUYVY, fromYUY2 (=YUYV), fromYVYU, fromYV12; fromYUV422() is + now an alias for fromUYVY() fromYUV420P() is now an alias for + fromYV12() + +2003-06-24 07:59 cclepper + + * src/Pixes/: pix_motionblur.cpp, pix_motionblur.h: improved + altivec code + PPC scheduling + +2003-06-23 19:43 cclepper + + * src/Pixes/pix_mix.cpp: improved altivec code + +2003-06-23 09:05 cclepper + + * src/Pixes/: pix_texture.cpp, pix_texture.h: improved rectangle + texturing + +2003-06-23 08:59 cclepper + + * src/Base/: GemPixObj.cpp, GemPixUtil.h: added newfilm to + state->image + +2003-06-23 08:58 cclepper + + * src/Base/GemPixObj.h: fixed Ian's prefetch code + +2003-06-23 08:57 cclepper + + * src/Pixes/: pix_filmDarwinYUV.cpp, pix_filmDarwinYUV.h: fixed + inaccurate estimation of film length, trying yet another way to + do getFrame() + +2003-06-23 08:52 cclepper + + * src/Pixes/: pix_filmYUV.cpp, pix_filmYUV.h, pix_film.cpp, + pix_film.h: added newfilm to state to tell when a film has been + changed - mostly for faster rectangle texturing at this point + +2003-06-23 08:17 cclepper + + * src/Pixes/: pix_mix.cpp, pix_mix.h: improvements to YUV code + +2003-06-23 08:11 cclepper + + * src/Pixes/pix_snap.cpp: removed debug post() + +2003-06-23 07:59 cclepper + + * src/Pixes/pix_add.cpp: tweaked some altivec + +2003-06-18 17:23 zmoelnig + + * src/Pixes/pix_compare.h: set the include to + "Base/GemPixDualObj.h" (the Base/ was missing) + +2003-06-11 22:23 zmoelnig + + * src/Pixes/pix_invert.cpp: commented out the ALTIVEC after + "#endif" (gcc doesn't like this) + +2003-06-09 18:11 tigital + + * src/Pixes/pix_snap2tex.cpp: reordered declarations to shutup gcc + +2003-05-28 05:26 cclepper + + * src/Pixes/: pix_compare.h, pix_compare.cpp: initial commit + +2003-05-27 06:16 dheck + + * GEM_darwin.pbproj/project.pbxproj: Added project builder project + for Mac OS X + +2003-05-26 15:36 dheck + + * src/Pixes/: pix_filmQT.cpp, pix_filmQT.h, setup.h: Added a + Quicktime for Windows film loader. + +2003-05-24 18:30 zmoelnig + + * src/Pixes/pix_snap2tex.cpp: shouldn't the "snap" message be + replaced by a "bang". (at least i have *add*ed it) + +2003-05-24 18:27 zmoelnig + + * src/Pixes/setup.h: put the [pix_grey] back in again (why isn't it + there ?) + +2003-05-24 17:54 zmoelnig + + * src/Pixes/: pix_blob.cpp, pix_blob.h: added greyscale-support for + pix_blur + +2003-05-24 17:50 zmoelnig + + * src/Pixes/: pix_movement.cpp, pix_movement.h: since movement is + stored in the Alpha-channel, i hchanged processImage to + processRGBA image. i have to think about how to store movement + in other colour-spaces. grayscale: just in the image yuv : ??? + +2003-05-23 10:13 cclepper + + * src/Pixes/: pix_biquad.cpp, pix_biquad.h: new integer processing + mode - 4x faster than float + +2003-05-22 09:33 cclepper + + * src/Pixes/: pix_invert.cpp, pix_invert.h: added Altivec + +2003-05-21 07:24 cclepper + + * src/Base/GemMan.cpp: fixed TEXTURE_RECTANGLE_EXT code for OSX + +2003-05-20 23:22 tigital + + * src/Pixes/pix_dot.h: added "scale" message to inc/dec size of + dots, plus some cleanup into the destructor; also made + inline_RGB2Y() protected + +2003-05-20 23:21 tigital + + * src/Pixes/pix_dot.cpp: added "scale" message to inc/dec size of + dots, plus some cleanup into the destructor + +2003-05-20 09:48 cclepper + + * src/Pixes/pix_texture.cpp: made CLAMP_TO_EDGE the repeat for + TEXTURE_RECTANGLE_EXT + +2003-05-20 02:24 tigital + + * src/Pixes/setup.h: commented out call to pix_film_setup(): is + this needed on any platform (seems like we went thru this + before)?... + +2003-05-20 02:21 tigital + + * src/Particles/partlib_opengl.cpp: add #ifdef __APPLE__ to + correctly include headers + +2003-05-19 06:03 cclepper + + * src/Pixes/pix_snap.cpp: now works on OSX + +2003-05-19 05:50 cclepper + + * src/Pixes/pix_write.cpp: now works on OSX + +2003-05-18 21:44 zmoelnig + + * src/Pixes/pix_multiply.cpp: we now have chY1,.... for + YUV-offsets, i have used this now + +2003-05-18 21:36 zmoelnig + + * src/Pixes/pix_dump.h: added method for grey-images + +2003-05-18 21:36 zmoelnig + + * src/Pixes/pix_crop.cpp: bug-fix: there was weird-behaviour, when + the offset was bigger than the size of the cropped(!) image + +2003-05-18 21:32 zmoelnig + + * src/Pixes/: pix_curve.cpp, pix_dump.cpp, pix_curve.h: added + method for grey-images + +2003-05-18 21:29 zmoelnig + + * src/Base/GemPixUtil.h: "#elif def" doesn't compile under linux, + but "#elif defined" does... + +2003-05-18 21:20 zmoelnig + + * src/: BUGS, TODO: updated + +2003-05-18 11:13 cclepper + + * src/Base/GemPixImageSave.cpp: initial OSX version of mem2image() + +2003-05-18 05:31 tigital + + * examples/data/: blob0.tif, blob1.tif, blob2.tif: needed for some + example patches (like pix_gravity) + +2003-05-17 22:33 tigital + + * src/Pixes/setup.h: added pix_rds_setup() + +2003-05-17 22:20 tigital + + * src/Pixes/pix_dot.cpp: cleanup a bit + +2003-05-17 22:19 tigital + + * src/Pixes/: pix_rds.cpp, pix_rds.h: initial port: RGB only (so + far) :-( + +2003-05-17 20:47 tigital + + * src/Base/GemPixDualObj.cpp: correct casting in sprintf's to + shutup compiler warning + +2003-05-17 20:45 tigital + + * src/Base/GemPixUtil.h: #elifdef doesn't compile on OSX, but #elif + def does + +2003-05-16 20:57 zmoelnig + + * src/Gnu/BUGS: moved BUGS to Gem/src (../) + +2003-05-16 20:57 zmoelnig + + * src/: BUGS, TODO: file bugs under BUGS, and things that have to + be done under TODO + +2003-05-16 20:53 zmoelnig + + * src/Gnu/BUGS: added a BUGS file + +2003-05-16 16:58 zmoelnig + + * src/Pixes/: videoDV4L.cpp, videoDV4L.h: #ifdef'ed everything with + HAVE_DV (so it won't compile if there are no libdv/dv.h headers) + +2003-05-16 16:40 zmoelnig + + * src/Gnu/configure: fixed a typo that searched in "search_libs" + instead of expanding $search_libs + +2003-05-16 16:38 zmoelnig + + * src/Gnu/configure.in: fixed a typo that searched for "searchlibs" + instead of "$searchlibs" + +2003-05-16 14:36 zmoelnig + + * debian/: changelog, control, copyright, dirs, docs, files, rules: + Initial revision + +2003-05-16 14:36 zmoelnig + + * debian/: changelog, control, copyright, dirs, docs, files, rules: + debian package managing module: for creation of debs + +2003-05-16 13:10 zmoelnig + + * src/Base/GemPixObj.cpp: commited result of merge + +2003-05-16 13:07 zmoelnig + + * src/Base/: GemFuncUtil.h, GemPixUtil.h: moved macors for + image-processing from GemPixUtil to GemFuncUtil (since they are + functions, although they probably have not much use for things + other than PixProcessing (GemPixFun.h ?) + +2003-05-16 12:53 zmoelnig + + * src/Pixes/: pix_posterize.cpp, pix_posterize.h, setup.h: copied + yuv_posterize to pix_posterize. YUV only. hope this works as it + should + +2003-05-16 12:52 zmoelnig + + * src/Pixes/videoV4L.cpp: switched back from PALETTE_YUV422 to + PALETTE_YUV420P. it seems as if video4linux means something + different with YUV422 (or similar formats). too bad, conversions + (copying!) again + +2003-05-14 11:01 zmoelnig + + * src/Pixes/pix_texture2.cpp: ifdefed the use of + GL_UNPACK_CLIENT_STORAGE_APPLE obviously some other changes, + which i hope do not break anything, but i guess most of it is new + indentation + +2003-05-14 10:58 zmoelnig + + * help/: tv_biquad.pd, tv_movement.pd, tv_rtx.pd: removed tv_* + help-patches, since they are not used any more + +2003-05-14 10:03 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: added data-acquisition + "fromYUV422" added offsets chY0, chY1, chU, chV for UYVY + interleaved data added a string2format converter (like 'rgba' to + GL_RGBA), only Grey, YUV, and RGBA are supported + +2003-05-14 09:59 zmoelnig + + * src/Base/GemWinCreateXWin.cpp: added a topmostMess (a nop) + +2003-05-14 09:58 zmoelnig + + * src/Base/GemMan.cpp: ifdef'ed the call for openGL-extension + "rectangle-texture", since there were problems when Gem was + compiled without rectangle-texture-support, but the drivers + supported it (namely nvidia-driver) + +2003-05-14 09:50 zmoelnig + + * src/Pixes/videoV4L.cpp: oops, missed one thing: when yuv was + requested, we didn't directly captured to yuv422 but rather to + yuv420p. fixed + +2003-05-14 09:48 zmoelnig + + * src/Pixes/videoV4L.cpp: for testing i had hardcorded requests for + some "wrong" colour-spaces. hopefully this is removed now + +2003-05-14 09:46 zmoelnig + + * src/Pixes/: pix_texture.cpp, pix_texture.h: on platform that do + not support yuv422-openGL-renderings (i haven't managed to make + my geforce behave the way i expected, and of course there are + other cards that will never support yuv-textures), we now have + implicit yuv2rgb-conversion + +2003-05-14 09:44 zmoelnig + + * src/Pixes/: pix_emboss.cpp, pix_emboss.h: copy and pasted the + yuv_emboss into the Pixes source. for now, only yuv is supported + +2003-05-14 09:44 zmoelnig + + * src/Pixes/: pix_convert.cpp, pix_convert.h: yet another + colour-space converter ??? don't know whether this makes sense + (remove it LATER) + +2003-05-14 09:33 zmoelnig + + * src/Pixes/setup.h: added convert and emboss + +2003-05-14 09:32 zmoelnig + + * src/Pixes/pix_buffer.cpp: added aliases for [pix_depot] and + friends + +2003-05-14 09:32 zmoelnig + + * src/Pixes/pix_depot.cpp: [pix_put]: the frame# is now deleted + after an image has been written into the depot. the next incoming + image will not be stored until another frame# is given. + +2003-05-13 04:06 tigital + + * src/Particles/partlib_actions.cpp: added #define for logf(), + expf(), sinf(), & cosf() on OS X (sin() et. al. are already done + w/double precision) + +2003-05-13 04:00 tigital + + * src/Particles/partlib_vector.h: added #define for sqrtf() on OS X + +2003-05-13 03:59 tigital + + * src/Base/GemPixUtil.h: reordered variables to reduce compiler + warnings added glext.h to compile on OS X + +2003-05-13 02:54 cclepper + + * src/Base/GemPixImageLoad.cpp: fixed the OSX image loading code + +2003-05-12 23:54 tigital + + * src/Pixes/: pix_filmDarwin.cpp, pix_filmDarwinYUV.cpp: removed + unused variables + +2003-05-12 12:27 dheck + + * src/: gem.vcproj, Base/GemPixObj.cpp, Base/GemPixObj.h, + Base/GemPixUtil.cpp, Particles/papi.h, + Particles/part_targetsize.h, Particles/partlib_system.cpp, + Pixes/pix_duotone.cpp, Pixes/pix_duotone.h, Pixes/pix_gain.cpp, + Pixes/pix_texture.cpp, Pixes/pix_texture2.cpp: Minor changes for + Win32 compilation. + +2003-05-12 11:48 cclepper + + * src/Pixes/: filmDarwin.cpp, filmDarwin.h: initial 'working' + version + +2003-05-12 11:43 cclepper + + * src/Pixes/pix_gain.cpp: removed unused variables, added registers + +2003-05-12 11:37 cclepper + + * src/Pixes/pix_mix.cpp: removed unused variable + +2003-05-12 11:36 cclepper + + * src/Pixes/pix_convolve.cpp: added vec_dst for dst stream + +2003-05-12 11:03 cclepper + + * src/Pixes/pix_roll.cpp: removed pointless macro + +2003-05-12 10:59 cclepper + + * src/Pixes/: pix_texture.cpp, pix_texture.h: added 'mode' message + to switch between power-of-2 and rectangle textures + +2003-05-11 16:36 dheck + + * src/: gem.vcproj, Pixes/pix_snap2tex.cpp, Pixes/pix_snap2tex.h, + Pixes/setup.h: Added pix_snap2tex for snapping directly to a + texture. This may need some experimentation with appropriate + pixel formats for each platform to achieve good performance. + +2003-05-11 08:01 cclepper + + * src/Pixes/pix_rgba.cpp: changed the Mac format to GL_BGRA_EXT + +2003-05-07 19:24 zmoelnig + + * src/Pixes/: pix_buffer.cpp, pix_buffer.h, pix_buffer_read.h, + pix_buffer_write.h: renamed [pix_depot] and fellows to + [pix_buffer] et al. + +2003-05-07 13:10 zmoelnig + + * src/Pixes/: pix_videoNEW.cpp, pix_videoNEW.h: added a deviceMess + for setting which device to use + +2003-05-07 13:07 zmoelnig + + * src/Pixes/pix_rgba.cpp: set output format to GL_ARGB_EXT on + macOS. i hope this works, but maybe not + +2003-05-07 13:06 zmoelnig + + * src/Pixes/pix_buf.cpp: added alias for [pix_separator] + +2003-05-07 13:05 zmoelnig + + * src/Pixes/: videoV4L.cpp, videoV4L.h: first attempt to support my + Philips Quickcam (720/40) + +2003-05-07 13:03 zmoelnig + + * src/Pixes/: pix_add.cpp, pix_add.h, pix_subtract.cpp, + pix_subtract.h: added Grey-Grey support + +2003-05-07 12:56 zmoelnig + + * src/Pixes/pix_buf.cpp: there is now an alias for [pix_separator] + +2003-05-07 12:55 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: added colourConversion + routines to GemPixUtils (for now only non-optimized) maybe they + should rather be in GemPixConvert ? datasize is now private + +2003-05-07 12:38 zmoelnig + + * src/Pixes/pix_tIIR.cpp: since datasize in imageStruct is now + private, we use setBlack() to delete the image-buffer + +2003-05-07 12:35 zmoelnig + + * src/Pixes/: pix_info.cpp, pix_info.h: used to crash when the + data-pointer was zero + +2003-05-07 12:19 zmoelnig + + * src/Base/: GemBase.cpp, GemBase.h: i once uncommented the + "realStopRendering" things, because i didn't know what it was + for. trying to compile gem2pdp i noticed that this was needed. + yes, i don't like it either, when changes are made to the + repository wihtout documentation + +2003-05-07 12:11 zmoelnig + + * src/Particles/: part_color.cpp, part_color.h, part_info.cpp, + part_info.h, part_render.cpp, part_size.cpp, part_size.h, + part_targetsize.cpp, part_targetsize.h: upgraded to + libarticle-1.20 this effects some of the [part_*] objects (eg: + [part_info] now has another output for the age of the + particle,...) + +2003-05-07 12:10 zmoelnig + + * src/Particles/papi.h: upgraded to 1.20 + +2003-05-07 12:09 zmoelnig + + * src/Particles/: partlib_actionapi.cpp, partlib_actions.cpp, + partlib_general.h, partlib_opengl.cpp, partlib_system.cpp, + partlib_vector.h: upgraded to libparticle-1.20 + +2003-05-07 11:56 zmoelnig + + * src/Pixes/film.h: added some comments (is this enough + documentation ?) + +2003-05-06 01:58 cclepper + + * src/Pixes/: pix_motionblur.cpp, pix_motionblur.h: initial commit + - replacement for pix_blur with a much better algo + +2003-04-28 23:56 tigital + + * src/Geos/text2d.h: switched ordering of variables to appease + compiler + +2003-04-28 21:46 zmoelnig + + * src/Pixes/pix_add.cpp: stupid bug when adding to grey images + +2003-04-28 20:06 zmoelnig + + * examples/06.particle/: 07.render.pd, 08.info.pd: examples for + user-defined particles + +2003-04-28 19:48 zmoelnig + + * src/Pixes/: videoDV4L.cpp, videoDV4L.h: a not yet working + ieee1394-videoIN under linux + +2003-04-28 19:44 zmoelnig + + * src/Pixes/: pix_texture.cpp, pix_texture.h: merged pix_texture + and pix_texture2 and made rectangle-textures work with nvidia + (hope it works...) + +2003-04-28 19:43 zmoelnig + + * src/Pixes/pix_videoNEW.h: played with the colour-spaces + +2003-04-28 19:41 zmoelnig + + * src/Pixes/: pix_normalize.cpp, pix_normalize.h: added a method + for Gray + +2003-04-28 19:39 zmoelnig + + * src/Pixes/: pix_videoLinux.cpp, pix_videoNEW.cpp, videoV4L.cpp, + videoV4L.h: played with the colour-spaces + +2003-04-28 19:38 zmoelnig + + * src/Pixes/: pix_filmNT.h, pix_videoDS.cpp: new indentation ;-) + +2003-04-28 19:38 zmoelnig + + * src/Pixes/pix_filmLinux.h: fixed things with old libaviplay, that + doesn't work (since it only decodes audio) + +2003-04-28 19:34 zmoelnig + + * src/Pixes/pix_yuv.cpp: added a comment + +2003-04-28 19:34 zmoelnig + + * src/Pixes/: pix_convolve.cpp, pix_depot.cpp, pix_duotone.cpp, + pix_subtract.cpp: new indentation ;-) + +2003-04-28 19:33 zmoelnig + + * src/Pixes/: pix_rgb2hsv.cpp, pix_blur.cpp, pix_histo.cpp, + pix_dot.cpp, pix_chroma_key.cpp: removed unused variables and + initialized used ones. + +2003-04-28 19:32 zmoelnig + + * src/Pixes/: pix_movie.cpp, pix_movieYUV.cpp: ifdef'ed + GL_UNPACK_CLIENT_STORAGE_APPLE + +2003-04-28 19:27 zmoelnig + + * src/Pixes/: video.cpp, video.h: added a method for changing the + color-space + +2003-04-28 19:26 zmoelnig + + * src/Pixes/setup.h: [no log message] + +2003-04-28 19:25 zmoelnig + + * src/Pixes/: film.cpp, filmAVI.cpp, filmAVIPLAY.cpp, + filmDarwin.cpp, filmFFMPEG.cpp, filmMPEG1.cpp, filmMPEG3.cpp: + made film-stuff compile with gcc-3.2 without warnings... (hope + that is all) + +2003-04-28 19:24 zmoelnig + + * src/Pixes/: film.h, filmAVI.h, filmAVIPLAY.h, filmDarwin.h, + filmFFMPEG.h, filmMPEG3.h: nothing, but made the constructor + virtual (since the class is virtual too) + +2003-04-28 19:22 zmoelnig + + * src/Gnu/: Makefile.subdir, configure: ??? + +2003-04-28 19:21 zmoelnig + + * src/Gnu/: Makefile.in, configure.in: a new flag "--with-ieee1394" + for linux-compiles (doesn't do anything yet...) + +2003-04-28 19:19 zmoelnig + + * src/Base/GemWinCreateXWin.cpp: cursorMessage should return + something. it does so now. + +2003-04-28 19:17 zmoelnig + + * src/Base/GemPixUtil.h: tried to add the nvidia-specific defines + for yuv422 and rectangle-texturing (however, the yuv-thing still + doesn't work) + +2003-04-28 19:16 zmoelnig + + * src/Base/: GemPixImageLoad.cpp, GemPixImageSave.cpp: (nothing), + like dos2unix... + +2003-04-28 19:15 zmoelnig + + * src/Base/: GemBase.cpp, GemBase.h: added the continueRender() + function (important to output several gemlists (like with + [part_render]) uncommented the stoprender() thing. what is it for + ? + +2003-04-28 19:13 zmoelnig + + * src/Base/GemMan.cpp: made texture_rectangle_supported work with + nvidia... found a bug @ parsing the openGL-extension when no + openGL-context was yet valid + +2003-04-28 19:12 zmoelnig + + * src/Base/sgiimage.cpp: initialized a variable + +2003-04-28 19:10 zmoelnig + + * src/Controls/: orb.cpp, orbserial.cpp: new indentation ;-) + +2003-04-28 19:09 zmoelnig + + * src/Geos/text2d.h: swapped 2 lines (GLTTBitmapFont and + GLTTPixmapFont) because gcc-3.2 would complain + +2003-04-28 19:08 zmoelnig + + * src/Geos/: ripple.cpp, rubber.cpp: removed unused variables and + initialized used ones + +2003-04-28 19:07 zmoelnig + + * src/Geos/newWave.cpp: removed some unused variables + +2003-04-28 19:06 zmoelnig + + * src/Geos/model_loader.cpp: (nothing) + +2003-04-28 19:05 zmoelnig + + * src/MarkEx/hsvrgb.cpp: initialized some values (gcc-3.2 would + complain) + +2003-04-28 18:20 zmoelnig + + * src/Particles/: part_info.cpp, part_info.h, part_render.cpp, + part_render.h, setup.h: [part_render] let you render any gemlists + as particles [part_info] is similar, but doesn't actually + rotate/translate/... the gemlist, but outputs the data on the + right outlets + +2003-04-28 18:19 zmoelnig + + * src/Particles/part_vector.h: suddenly i discovered that gcc-3.2 + (?) didn't want to compile this... + +2003-04-22 07:11 cclepper + + * src/Pixes/pix_convolve.cpp: added optimizations to YUV and a + first try at an altivec function + +2003-04-22 05:20 cclepper + + * src/Pixes/: pix_convolve.cpp, pix_convolve.h: added optimizations + to YUV and a first try at an altivec function + +2003-04-22 05:18 cclepper + + * src/Pixes/: pix_scanline.h, pix_scanline.cpp: initial commit + +2003-04-14 16:57 zmoelnig + + * src/Pixes/: video.cpp, video.h: changed the API a little bit... + +2003-04-14 16:56 zmoelnig + + * src/Pixes/: pix_videoNEW.cpp, pix_videoNEW.h, videoV4L.cpp, + videoV4L.h: what to say ? making it work + +2003-04-14 10:57 zmoelnig + + * src/Pixes/pix_dot.cpp: made an explicit cast from float to + integer during the processing + +2003-04-14 10:56 zmoelnig + + * src/Pixes/: pix_add.cpp, pix_add.h, pix_composite.cpp, + pix_composite.h, pix_mask.cpp, pix_takealpha.cpp: (refined) + RGBA_Gray-support for PixDualObjects + +2003-04-14 02:19 dheck + + * src/gem.vcproj: Made GEM release build include DirectShow support + by default. + +2003-04-14 01:39 dheck + + * src/Pixes/pix_videoDS.cpp: Added alias to old external name + (interim measure... should remove it eventually) + +2003-04-13 16:42 dheck + + * src/: gem.vcproj, Pixes/pix_filmNT.cpp: More error checking + tweaks + +2003-04-12 20:33 cclepper + + * src/Pixes/pix_rgba.cpp: fixed the OSX format #ifdef + +2003-04-11 12:09 dheck + + * src/Pixes/pix_videoDS.cpp: Added DirectShow graph exporting for + debugging with GraphEdit + +2003-04-11 02:28 tigital + + * src/Pixes/: pix_dot.cpp, pix_dot.h: removed unused variables, + started work on processYUVimage + +2003-04-10 22:13 zmoelnig + + * src/Pixes/pix_flip.cpp: this is BUGGY ? (i think) + +2003-04-10 16:53 zmoelnig + + * src/Pixes/: pix_videoNEW.cpp, pix_videoNEW.h: oh i think + pix_videoNEW is really buggy. + +2003-04-10 10:34 zmoelnig + + * src/Gnu/Makefile.subdir: added a dos2unix on make distclean + +2003-04-10 10:32 zmoelnig + + * src/Base/GemMan.cpp: new startup-logo with more authors + +2003-04-10 10:27 zmoelnig + + * src/Pixes/: pix_background.cpp, pix_roll.cpp: added #include + + +2003-04-10 10:25 zmoelnig + + * src/Pixes/: pix_dot.cpp, pix_filmNEW.cpp, pix_filmNT.cpp, + pix_videoLinux.cpp, pix_videoLinux.h, setup.h: though i fixed the + linux-Video thing but someone did this for me... there was a + missing in pix_dot.cpp + +2003-04-10 06:58 dheck + + * src/Pixes/filmQT4L.cpp: Fixed problems with previous commit: + avoid memory leaks due to alternate return paths. + +2003-04-10 06:49 dheck + + * src/Pixes/filmQT4L.cpp: Changed automatic non-const array + allocation to heap allocated array for compiler compatibility. + +2003-04-10 06:46 dheck + + * src/Pixes/pix_dot.cpp: Fixed return in void function. + +2003-04-09 20:17 cclepper + + * src/Base/GemPixUtil.h: added #include + +2003-04-09 10:07 cclepper + + * src/Controls/: gemwin.cpp, gemwin.h: added fps message and outlet + +2003-04-09 09:59 cclepper + + * src/Base/GemWinCreateMac.cpp: changed secondscreen to use a + minimum of 640x480 + +2003-04-09 09:56 cclepper + + * src/Base/: GemMan.h, GemMan.cpp: added fps message + +2003-04-09 09:38 cclepper + + * src/Geos/: newWave.h, newWave.cpp: changed speed message to take + all float values + +2003-04-09 09:01 cclepper + + * src/Geos/polygon.cpp: added the rest of the GL drawing modes + +2003-04-09 08:42 cclepper + + * src/Pixes/setup.h: new pix_objects + +2003-04-09 08:32 cclepper + + * src/Pixes/pix_texture.cpp: added buffer zeroing for YUV textures + +2003-04-09 08:31 cclepper + + * src/Pixes/: pix_background.cpp, pix_background.h: initial commit + +2003-04-09 07:14 cclepper + + * src/Pixes/: pix_duotone.cpp, pix_duotone.h: initial commit + +2003-04-09 07:03 cclepper + + * src/Pixes/pix_blur.cpp: fixed a potential crash + +2003-04-09 06:08 cclepper + + * src/Pixes/: pix_roll.cpp, pix_roll.h: initial commit + +2003-04-09 06:03 cclepper + + * src/Pixes/pix_threshold.h: added yuv + +2003-04-09 05:59 cclepper + + * src/Pixes/pix_texture2.cpp: removed memset + +2003-04-09 05:03 cclepper + + * src/Pixes/pix_threshold.cpp: added YUV function + +2003-04-09 01:34 cclepper + + * src/Pixes/: pix_filmYUV.h, pix_filmYUV.cpp: added fps timing + outlet + +2003-04-09 01:33 tigital + + * src/Pixes/pix_filmDarwin.h: removed unused (now) media variable + +2003-04-09 01:31 tigital + + * examples/05.text/: 01.TextNoLoadBang.pd, + 03.ChangeTextNoLoadBang.pd: removed loadBang so the patches will + not crash on OSX: again, OSX needs a glContext before making any + glCalls! + +2003-04-09 01:30 tigital + + * src/Pixes/: pix_filmDarwinYUV.h, pix_filmDarwinYUV.cpp: cleaned + up unused code, including removal of media timescale calculation, + which could cause crashes, and is not currently necessary + +2003-04-09 00:22 tigital + + * src/Pixes/pix_filmDarwin.cpp: cleaned up unused code, including + removal of media timescale calculation, which could cause + crashes, and is not currently necessary + +2003-04-09 00:20 tigital + + * src/Pixes/: pix_dot.cpp, pix_dot.h: now it works! RGBA only now, + but YUV on it's way...from the EffectTV collection + +2003-04-09 00:18 tigital + + * src/Pixes/setup.h: uncommented pix_dot_setup stuff, because now + it works! + +2003-04-08 19:06 zmoelnig + + * src/Pixes/pix_filmNEW.cpp: added filmQT4L + +2003-04-08 19:04 zmoelnig + + * src/Pixes/pix_gain.cpp: fixed the float2int bug (haven't i + submitted this 4 times today ?) + +2003-04-08 19:03 zmoelnig + + * src/Pixes/videoV4L.cpp: double default argument fixed + +2003-04-08 19:02 zmoelnig + + * src/Pixes/pix_depot.cpp: added some casts to integer (warnings on + gcc-3.2) + +2003-04-08 19:00 zmoelnig + + * src/Pixes/filmMPEG3.cpp: fixed a bug on close + +2003-04-08 19:00 zmoelnig + + * src/Pixes/: filmMPEG1.cpp, filmFFMPEG.cpp: added newlines at EOF + +2003-04-08 18:58 zmoelnig + + * src/Pixes/: filmQT4L.cpp, filmQT4L.h: the quicktime4linux + movie-loader class + +2003-04-08 18:57 zmoelnig + + * src/Pixes/: DSgrabber.cpp, DSgrabber.h: [no log message] + +2003-04-08 18:54 zmoelnig + + * src/Pixes/: pix_videoLinux.cpp, pix_videoLinux.h: the capturing + is now threaded + +2003-04-08 11:12 zmoelnig + + * src/Pixes/pix_depot.cpp: fixed a bug in the destructor + +2003-04-08 10:40 zmoelnig + + * src/Pixes/pix_depot.cpp: can't remember (maybe only some + tab-indents) + +2003-04-08 10:34 zmoelnig + + * src/Pixes/: pix_pix2sig.cpp, pix_pix2sig.h: added support for + other colour-spaces (though YUV might produced interlaced + signals) + +2003-04-08 10:32 zmoelnig + + * src/Pixes/: pix_videoDS.cpp, pix_videoDS.h: dos2unix + +2003-04-08 10:29 zmoelnig + + * src/Pixes/pix_videoLinux.cpp: just a debugging output + +2003-04-08 10:27 zmoelnig + + * src/Pixes/pix_rgba.cpp: set the notowned flag to 0 (because we + own the rgba-image) + +2003-04-08 10:26 zmoelnig + + * src/Pixes/: pix_info.cpp, pix_info.h: changed the base class from + GemPixObj to GemBase (so we have info on every image). maybe this + was not a great idea ...( but not that bad either) + +2003-04-08 10:22 zmoelnig + + * src/Pixes/: video.cpp, video.h: the parent class for os/lib + dependent video-grabbing (childs include videoV4L, hopefully will + include video1394, videoDS, videoWDM,...) + +2003-04-08 10:17 zmoelnig + + * src/: Geos/model_loader.h, Geos/newWave.cpp, Geos/rubber.h, + Manips/ortho.cpp, Nongeos/world_light.h: nothing i know of + +2003-04-08 08:58 cclepper + + * src/Pixes/: pix_filmDarwinYUV.cpp, pix_filmDarwinYUV.h: added + LoadRam() + +2003-04-08 08:11 cclepper + + * src/Pixes/pix_filmDarwin.cpp: added LoadRam() + +2003-04-08 07:43 cclepper + + * src/Pixes/: pix_filmDarwin.cpp, pix_filmDarwin.h: added LoadRam() + +2003-04-08 07:18 tigital + + * src/Pixes/pix_filmDarwin.cpp: forgot to remove getFrame() + variable duration! Thanks to the vigilent cgc + +2003-04-08 05:15 cclepper + + * src/Pixes/pix_rgba.cpp: put OSX ifdef back in + +2003-04-08 05:01 cclepper + + * src/Pixes/pix_dump.cpp: added yuv code + +2003-04-08 04:58 cclepper + + * src/Pixes/: pix_convolve.cpp, pix_convolve.h: new 3x3 yuv code + +2003-04-07 14:35 dheck + + * src/: Base/GemMan.cpp, Base/GemMan.h, Controls/gemwin.cpp, + Controls/gemwin.h: Added "clear_mask" method to [gemwin]. Uses + with the GLdefine object to generate GLbitfields for the gemwin's + glClear. + +2003-04-07 01:06 dheck + + * src/: gem.vcproj, Base/GemMan.cpp, Base/GemMan.h, + Controls/gemwin.cpp, Controls/gemwin.h, Pixes/pix_filmNT.cpp: + Added a "render" message to gemwin to allow a single graph + rendering to be done. Also changed "frame" message to allow a + frame rate of 0. + +2003-04-06 21:27 zmoelnig + + * src/Base/: GemBase.cpp, GemGLUtil.cpp, GemGluObj.h, + GemPixObj.cpp, GemState.cpp: GemPixObj: i think there was a bug + with not initializing pointers the rest is no real changes (only + "visiting" the files) + +2003-04-06 21:24 zmoelnig + + * src/Pixes/: videoV4L.cpp, videoV4L.h: a threaded class for video + capturing under linux + +2003-04-06 21:22 zmoelnig + + * src/Pixes/: film.cpp, filmAVI.cpp, filmAVIPLAY.cpp, + filmDarwin.cpp, filmFFMPEG.cpp, film.h, filmAVI.h, filmAVIPLAY.h, + filmDarwin.h, filmFFMPEG.h, filmMPEG1.cpp, filmMPEG3.cpp, + filmMPEG1.h, filmMPEG3.h, pix_filmNEW.cpp, pix_filmNEW.h: a "new" + concept of how os/library dependant code should look like. do + not make the pd-object-class OS-dependent but a helper class. + +2003-04-06 10:06 dheck + + * src/Base/GemWinCreateNT.cpp: Fixed topmost message implementation + for that topmost properly would be applied to windows created + after a previous was destroyed. + +2003-04-06 07:58 dheck + + * src/: Base/GemMan.cpp, Base/GemMan.h, Base/GemWinCreate.h, + Base/GemWinCreateNT.cpp, Controls/gemwin.cpp, Controls/gemwin.h: + Added topmost message to keep gemwin on top of other windows. + Implemented for win32 only. + +2003-04-06 04:16 tigital + + * src/Base/GemPixUtil.h: rearranged initializers to stop compile + warnings + +2003-04-06 04:14 dheck + + * src/: gem.dsw, gem.vcproj, gem_vc6.dsw, gem_vc7.sln, + Pixes/pix_filmNT.cpp, Pixes/pix_filmNT.h: Added VC++ 7 workspace + and project. Modified pix_filmNT to provide more robust error + handling and to support recent CVS change in pix_film frame + loading behaviour + +2003-04-04 16:58 ggeiger + + * src/Gnu/: configure, configure.in, makeauxlibs: moved orb into + Gem + +2003-04-04 16:56 ggeiger + + * src/Controls/: orb.cpp, orb.h, orbserial.cpp, orbserial.h: Moved + from GemLibs + +2003-04-03 17:36 zmoelnig + + * src/openGL/GEMglAreTexturesResident.cpp: changed a type from bool + to GLboolean (why ? i guess for vc6) + +2003-04-03 17:35 zmoelnig + + * src/Controls/gemhead.cpp: set the state->image to zero before + rendering + +2003-04-03 17:35 zmoelnig + + * src/Controls/gemwin.cpp: added a boolean cast (for vc6) + +2003-04-03 17:33 zmoelnig + + * src/Base/GemGLUtil.cpp: [no log message] + +2003-04-03 17:29 zmoelnig + + * src/Base/: GemBase.cpp, GemWinCreateNT.cpp: some casts to bool + (vc6 didn't like it the way it was done) + +2003-04-03 17:28 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: allocate() now allocates + data according to xsize/ysize/csize type is automatically set + (depending on OS) + +2003-04-03 17:23 zmoelnig + + * src/Pixes/pix_buf.cpp: nothing that matters (just a boolean cast + at autoMess) + +2003-04-03 17:22 zmoelnig + + * src/Pixes/pix_texture2.cpp: really nothing (maybe some blank + lines) + +2003-04-03 17:21 zmoelnig + + * src/Pixes/: pix_filmFFMPEG.cpp, pix_filmFFMPEG.h: some ifdefs to + compile on my version of ffmpeg + +2003-04-03 17:20 zmoelnig + + * src/Pixes/setup.h: [no log message] + +2003-04-03 17:19 zmoelnig + + * src/Pixes/pix_aging.cpp: removed to redundant lines (mainly a + label "BREAK") + +2003-04-03 17:17 zmoelnig + + * src/Pixes/: pix_get.h, pix_put.h, pix_depot.cpp, pix_depot.h: + [pix_depot] can store images (any size, fixed number) (TODO: add + a way to load decompress movies directly into [pix_depot]). it is + like [table] [pix_get] gets frames from [pix_depot] (like + [tabread]) [pix_put] writes frames to [pix_depot] (like + [tabwrite]) + +2003-04-01 07:25 tigital + + * src/Pixes/: pix_filmDarwin.cpp, pix_filmDarwin.h, + pix_filmDarwinYUV.h, pix_filmDarwinYUV.cpp: OSX only: turns out + that SampleNumToMediaTime() only worked when 1 movie was + loaded...switched to a much simpler method of calculating + m_reqFrame's m_movieTime...which works with at least five + simultaneously running films! + +2003-03-31 18:46 tigital + + * src/Pixes/pix_filmDarwin.cpp: OSX only: forgot to set one flag + correctly + +2003-03-31 08:37 tigital + + * src/Pixes/: pix_filmDarwin.cpp, pix_filmDarwin.h, + pix_filmDarwinYUV.cpp, pix_filmDarwinYUV.h: OSX only: changed + getFrame() for non-auto-processing, so now we get much smoother + playback using metro/counter, in addition to allowing + scrubbing/random frame access via a number box! Finally! + +2003-03-31 00:09 tigital + + * src/Pixes/: pix_film.cpp, pix_filmYUV.cpp: switched order of + getFrame() and "m_curFrame = m_reqFrame"...also added an idle + MoviesTask() on OSX + +2003-03-31 00:01 tigital + + * src/Geos/imageVert.cpp: fixed OSX crash: needed check for + GLcontext before executing glGenLists() + +2003-03-16 04:25 dheck + + * help/pix_videoDS.pd, src/gem.dsp, src/Pixes/DSgrabber.cpp, + src/Pixes/DSgrabber.h, src/Pixes/pix_videoDS.cpp, + src/Pixes/pix_videoDS.h, src/Pixes/setup.h: Added pix_videoDS, a + DirectShow based video input object for Windows + +2003-03-15 05:27 cclepper + + * src/Pixes/pix_movie.cpp: removed post() in postrender + +2003-03-13 03:37 dheck + + * src/: gem.dsp, Pixes/setup.h: Added pix_chroma_key to the pix + setup function and added the source files to the Visual Studio + project. + +2003-03-10 10:56 dheck + + * src/: gem.dsp, Base/GemPixUtil.h, Base/GemSetup.cpp: Excluded + config.h from Windows builds + +2003-03-08 00:08 tigital + + * src/Geos/model_loader.h: added #ifdef for OpenGL/gl.h on OSX + +2003-03-08 00:07 tigital + + * src/yuv/yuv_chroma_key.cpp: added #ifdef DEBUG to post() in + processYUV_YUV() + +2003-03-08 00:05 tigital + + * src/Pixes/: pix_filmFFMPEG.cpp, pix_dvLinux.cpp: is + "Base/config.h" used by anyone anymore? #ifdef'd for linux + because it was stopping OSX build + +2003-03-07 23:57 tigital + + * src/Base/TextBase.h: is "Base/config.h" used by anyone anymore? + #ifdef'd for linux because it was stopping OSX build + +2003-03-07 23:55 tigital + + * src/Base/GemGlutObj.h: is "Base/config.h" used by anyone anymore? + +2003-03-07 18:23 ggeiger + + * src/Gnu/: configure, configure.in: fixed avcodec check bug + +2003-03-07 17:43 ggeiger + + * src/Gnu/: Makefile.in, configure, configure.in: added FFMPEG + library checks + +2003-03-07 17:41 ggeiger + + * src/Pixes/: pix_add.cpp, pix_convolve.cpp, pix_convolve.h, + pix_subtract.cpp: checked in int/unfolded pix operations + +2003-03-07 17:40 ggeiger + + * src/Base/: GemPixObj.cpp, GemPixUtil.cpp, GemPixUtil.h: remove + MMX routines + +2003-03-07 17:40 ggeiger + + * src/Base/config.h.in: added HAVE_LIBAVCODEC,HAVE_LIBAVFORMAT + +2003-03-07 17:37 ggeiger + + * src/Pixes/setup.h: added pix_filmFFMPEG setup + +2003-03-07 17:29 ggeiger + + * src/Pixes/: pix_filmFFMPEG.cpp, pix_filmFFMPEG.h: added new + FFMPEG version of pix_film + +2003-03-07 10:58 ggeiger + + * src/Gnu/: configure.in, configure: removed search for particle + and glm + +2003-03-07 10:57 ggeiger + + * src/Gnu/makeauxlibs: particle and glm are in Gem now + +2003-03-07 10:55 ggeiger + + * src/Particles/: papi.h, part_draw.cpp, part_draw.h, + part_vector.h, partlib_actionapi.cpp, partlib_actions.cpp, + partlib_system.cpp: included particle library stuff + +2003-03-07 10:47 ggeiger + + * src/Geos/: model.h, model_loader.cpp, model_loader.h, + multimodel.h: moved glm.c into model_loader.cpp + +2003-03-07 10:43 ggeiger + + * src/Base/config.h: config.h will be autogenerated from config.in + +2003-03-07 06:23 cclepper + + * src/yuv/: yuv_videoDarwin.cpp, yuv_videoDarwin.h: added quality + modes + +2003-03-07 05:28 cclepper + + * src/Pixes/: pix_videoDarwin.cpp, pix_videoDarwin.h: added quality + modes + +2003-03-07 00:30 cclepper + + * src/Base/GemMan.h: added secondscreen message to enable/disable + fullscreen on a 2nd display + +2003-03-06 23:44 cclepper + + * src/Base/: GemMan.h, GemMan.cpp, GemWinCreate.h, + GemWinCreateMac.cpp: added secondscreen message to enable/disable + fullscreen on a 2nd display + +2003-03-06 23:37 cclepper + + * src/Controls/: gemwin.cpp, gemwin.h: added secondscreen message + to enable/disable fullscreen on a 2nd display + +2003-03-06 18:26 zmoelnig + + * src/Base/: GemBase.cpp, GemCache.cpp, GemMan.cpp, GemMan.h, + GemPixObj.cpp, GemPixUtil.cpp, TextBase.cpp, TextBase.h: ??? + +2003-03-06 18:25 zmoelnig + + * src/Geos/: model.cpp, newWave.h, ripple.cpp, ripple.h, + rubber.cpp, rubber.h, square.cpp, text2d.cpp, text2d.h, + text3d.cpp, text3d.h, textoutline.cpp, textoutline.h: changed + text-object, so they can be disabled... + +2003-03-06 18:24 zmoelnig + + * src/Manips/: alpha.cpp, alpha.h, separator.cpp: bugfixed + separator + +2003-03-06 18:23 zmoelnig + + * src/Pixes/: pix_buf.cpp, pix_buf.h, pix_crop.cpp, + pix_pix2sig.cpp, pix_pix2sig.h, pix_rgba.cpp, pix_rtx.cpp, + pix_sig2pix.cpp, pix_sig2pix.h: some bug-fixes; esp [pix_buf] + +2003-03-06 18:22 zmoelnig + + * src/Gnu/Makefile: checked in Makefile again... + +2003-03-06 18:19 zmoelnig + + * src/Gnu/: Makefile, acinclude.m4, aclocal.m4, configure: updated + configure.... + +2003-03-03 23:44 dheck + + * src/Pixes/pix_rgba.cpp: Reverted GL_BGR[A] to GL_BGR[A]_EXT to + allow compilation on Windows (openGL 1.1) + +2003-03-03 18:00 zmoelnig + + * src/Pixes/: pix_crop.cpp, pix_crop.h: pix_crop takes sub-images + of images + +2003-03-03 17:59 zmoelnig + + * examples/data/venus.obj: the object file for venus was missing... + +2003-03-01 19:16 zmoelnig + + * src/Gnu/Makefile.in: fixed a bug with SYSTEMDOCS and made + pd/extra the default installation-dir (not pd/externs) + +2003-03-01 11:18 zmoelnig + + * src/Gnu/: configure, configure.in: added avifile support + +2003-03-01 11:18 zmoelnig + + * src/Base/: config.h, config.h.in: added AVIPLAY (for linux) and + (not yet functioning) GLTT defines + +2003-03-01 11:16 zmoelnig + + * src/Pixes/: pix_biquad.cpp, pix_movement.cpp, pix_rtx.cpp, + pix_rtx.h: somehow these were not properly updated ... + +2003-03-01 11:10 zmoelnig + + * src/Pixes/: pix_film.cpp, pix_filmLinux.cpp, pix_filmLinux.h, + pix_rgba.cpp: added libavifile-support under linux + +2003-03-01 09:29 cclepper + + * src/Pixes/: pix_convolve.cpp, pix_convolve.h: added yuv and + optimizations + +2003-02-28 11:00 ggeiger + + * src/: Geos/newWave.cpp, Pixes/pix_convolve.cpp: changed "for (int + i=0; ..)" scoping + +2003-02-28 08:17 cclepper + + * src/Base/GemMan.cpp: added VBLsync for OSX + +2003-02-27 05:25 cclepper + + * src/Pixes/: pix_chroma_key.cpp, pix_chroma_key.h: initial commit + +2003-02-27 05:20 cclepper + + * src/Pixes/: pix_subtract.h, pix_subtract.cpp, pix_blur.cpp, + pix_blur.h, pix_mix.cpp, pix_mix.h: added altivec function + +2003-02-27 05:16 cclepper + + * src/Pixes/: pix_gain.h, pix_gain.cpp, pix_offset.h, + pix_offset.cpp: added altivec function + +2003-02-27 02:09 dheck + + * src/Base/GemPixUtil.h: Added 31 bytes to imageStruct buffer + allocation to allow realignment without causing buffer overruns. + +2003-02-26 05:05 dheck + + * src/: gem.dsp, gem.dsw: Incorporated source structure changes in + CVS (TV->pix) and new source files + +2003-02-26 05:02 dheck + + * src/: gem.dsp, gem.dsw: Updated Visual Studio project and + workspace to build current CVS source. + +2003-02-26 04:59 dheck + + * src/: Base/GemGluObj.h, Base/GemPixUtil.cpp, Base/GemShape.cpp, + Base/GemShape.h, Base/GemState.cpp, Geos/newWave.cpp, + Geos/newWave.h, Geos/ripple.h, Geos/rubber.h, Manips/ortho.cpp, + Nongeos/world_light.h, Pixes/pix_convolve.cpp, + Pixes/pix_videoNT.cpp, yuv/yuv_posterize.cpp: Fixed Win32 + compilation issues. + +2003-02-26 02:11 tigital + + * src/Base/GemPixUtil.h: reordered member initializers to + "...datasize(0),pdata(0)..." to remove gcc 3.1 warnings + +2003-02-26 01:30 tigital + + * src/Pixes/setup.h: added *_setup() for objects from tv_* to pix_* + +2003-02-26 01:29 tigital + + * src/Pixes/: pix_biquad.cpp, pix_biquad.h, pix_delay.cpp, + pix_delay.h, pix_movement.cpp, pix_movement.h, pix_rtx.cpp, + pix_rtx.h: moved from tv_* to pix_* + +2003-02-24 19:53 zmoelnig + + * src/Gnu/README.build: updated a link + +2003-02-24 19:41 zmoelnig + + * src/Manips/: alpha.cpp, alpha.h, setup.h: now the alpha-blending + function can be set by hand: 0 .. GL_ONE_MINUS_SRC_ALPHA 1 .. + GL_ONE + +2003-02-24 19:40 zmoelnig + + * src/Manips/: polygon_smooth.cpp, polygon_smooth.h: polygon_smooth + enables GL-polygon-smoothing (like it has been proposed by the + mac-people) + +2003-02-24 14:12 zmoelnig + + * src/TV/: Make.depend, setup.h, tv_biquad.cpp, tv_biquad.h, + tv_delay.cpp, tv_delay.h, tv_movement.cpp, tv_movement.h, + tv_rtx.cpp, tv_rtx.h, tv_test.cpp, tv_test.h: removing TV + +2003-02-24 14:10 zmoelnig + + * src/: Base/GemSetup.cpp, Pixes/pix_test.cpp, Pixes/pix_test.h, + Pixes/setup.h: removed TV-class + +2003-02-24 14:09 zmoelnig + + * src/Gnu/: Makefile.in, WHATSNEW, configure, configure.in, + makesource: removing TV-class + +2003-02-24 13:47 zmoelnig + + * src/Pixes/: pix_blur.cpp, pix_mix.cpp, setup.h: [no log message] + +2003-02-24 13:44 zmoelnig + + * src/Pixes/: pix_tIIR.cpp, pix_tIIR.h: another IIR-filter + (time-domain) for pixes: very much like [pix_blur] and + [pix_biquad], but more flexible + +2003-02-24 12:45 zmoelnig + + * src/Pixes/pix_videoLinux.h: removed the default width/height from + the constructor (this is done in the cpp-file) + +2003-02-24 12:40 zmoelnig + + * src/Base/: GemPixUtil.cpp, GemPixUtil.h: added a reallocate() + message to imageStruct. This does only allocate memory, if the + previous buffer is smaller than the needed one. there is a "int + datasize" that describes the length of the buffer. + +2003-02-19 21:28 zmoelnig + + * src/Gnu/: Makefile.subdir, README.build: updated the README.build + (for the new configure) + +2003-02-19 19:41 zmoelnig + + * examples/09.openGL/01.primQuad.pd: Added an example for the + openGL-wrapper stuff + +2003-02-19 19:41 zmoelnig + + * examples/09.openGL/01.primQuad.pd: Initial revision + +2003-02-19 19:25 zmoelnig + + * src/openGL/: GLdefine.cpp, GLdefine.h, setup.h: GLdefines maps + symbols (like GL_FLAT) to corresponding floats (like 7424) + +2003-02-19 19:23 zmoelnig + + * src/Geos/slideSquares.cpp: undef'ed the MacOS-specific + Carbon-include + +2003-02-19 19:17 zmoelnig + + * src/Base/GemGLUtil.cpp: redefined _GL_UNDEFINED to -1 (instead of + -10) + +2003-02-17 09:18 cclepper + + * src/Pixes/pix_data.cpp: added YUV + +2003-02-15 05:44 cclepper + + * src/yuv/yuv_blur.cpp: added altivec function + +2003-02-15 05:16 cclepper + + * src/Pixes/: pix_add.h, pix_add.cpp: added altivec function + +2003-02-15 05:11 cclepper + + * src/Pixes/: pix_mix.h, pix_mix.cpp: added pix_mix + +2003-02-14 04:54 tigital + + * src/Geos/: ripple.cpp, ripple.h, slideSquares.cpp, + slideSquares.h, rubber.h, rubber.cpp: - doesn't require textures + now ;-) - added glBlend message + +2003-02-14 04:53 tigital + + * src/Geos/: newWave.cpp, newWave.h: - doesn't require textures now + ;-) - finally centered! + +2003-02-10 03:24 cclepper + + * src/Base/GemPixObj.h: added Altivec cache function + +2003-02-10 03:13 cclepper + + * src/Pixes/pix_filmDarwin.cpp: hq for DV added + +2003-02-10 03:10 cclepper + + * src/Pixes/pix_filmDarwinYUV.cpp: hq for DV added + +2003-02-10 01:18 tigital + + * examples/07.texture/06.ripple.pd: example patch for [ripple] + controls + +2003-02-10 01:17 tigital + + * examples/07.texture/05.newWave.pd: example patch for [newWave] + controls + +2003-02-10 01:14 tigital + + * src/Pixes/pix_texture2.cpp: changed gl setup calls to float (from + integer): they should all be one or the other, right? + +2003-02-10 01:12 tigital + + * src/Geos/setup.h: added setup for ripple, rubber, and + slideSquares + +2003-02-10 01:10 tigital + + * src/Geos/: rubber.cpp, rubber.h: rubber: bang "grabs" image, x/y + input the can pull/distort image, 2nd bang releases image, which + rebounds back to flat + +2003-02-10 01:08 tigital + + * src/Geos/: slideSquares.cpp, slideSquares.h: slideSquare: creates + a field of squares which reaveal texture while moving left to + right + +2003-02-10 01:07 tigital + + * src/Geos/: ripple.cpp, ripple.h: ripple: bang to inlet causes + image rippling, center of ripple is movable via x and y input: + see example/07.texture/ + +2003-02-10 00:53 tigital + + * src/Geos/: newWave.cpp, newWave.h: now has controls for size, + speed, and mode; currently only works with [pix_texture]; also + requires rotateXYZ, scale, transposeXYZ for centering (see + example/texture) + +2003-02-09 23:21 tigital + + * src/Geos/rectangle.h: added glBlend + +2003-02-09 23:20 tigital + + * src/Geos/rectangle.cpp: removed redundant m_linewidth call; added + glBlend + +2003-02-09 23:18 tigital + + * src/Geos/square.cpp: removed redundant m_linewidth call + +2003-02-08 06:56 cclepper + + * src/yuv/: yuv_gain.cpp, yuv_gain.h, yuv_subtract.cpp, + yuv_mix.cpp: added altivec code + +2003-02-08 06:53 cclepper + + * src/yuv/: yuv_add.cpp, yuv_adjust.cpp: added altivec code + +2003-02-06 23:38 tigital + + * src/TV/tv_rtx.cpp: updated to current "IMAGE_CLASS" memory + functions (ie. buffer.clear() & buffer.allocate( dataSize) + +2003-02-06 23:36 tigital + + * src/TV/setup.h: added tv_delay_setup + +2003-02-06 05:55 cclepper + + * src/Geos/: square.h, square.cpp: added blending + +2003-02-06 02:20 tigital + + * src/Pixes/pix_texture2.cpp: cleanup + +2003-02-06 02:17 tigital + + * src/Base/GemGlutObj.h: removed HAVE_LIBGLUT for MACOSX + +2003-02-05 09:55 cclepper + + * src/Pixes/pix_blur.cpp: added pix_blur + +2003-02-05 09:40 cclepper + + * src/: yuv/yuv_filmDarwin.cpp, yuv/yuv_filmDarwin.h, + Pixes/pix_filmDarwin.cpp, Pixes/pix_filmDarwin.h, + Pixes/pix_filmDarwinYUV.cpp, Pixes/pix_filmDarwinYUV.h: improved + quicktime performance and DV quality + +2003-02-05 09:13 cclepper + + * src/Pixes/: setup.h, pix_blur.h, pix_blur.cpp: added pix_blur + +2003-02-05 09:01 cclepper + + * src/Pixes/pix_gain.cpp: optimized pix_gain RGBA code + +2003-02-04 05:46 cclepper + + * src/yuv/: yuv_split.cpp, yuv_split.h, yuv_swap.cpp, yuv_swap.h, + yuv_video.cpp, yuv_video.h: added missing yuv objects + +2003-02-04 01:32 zmoelnig + + * src/Gnu/: Makefile, Makefile.subdir: added optimization to the + Makefiles: "-O3 -funroll-loops -ffast-math" + +2003-02-04 01:16 zmoelnig + + * src/Gnu/: Makefile, Makefile.subdir: changed the behaviour of + $(CXXFLAGS): you can now set CXXFLAGS via the command-line and it + it added to the c++-flags $(cxxflags) + +2003-02-03 17:55 zmoelnig + + * src/openGL/GEMglIsList.cpp: changed the identifier for the + list-ID from "list" to "gllist", because pd would complain about + this ("list" is reserved for pd-lists) + +2003-02-03 17:47 zmoelnig + + * src/openGL/README: added this README, so you know what the + openGL-stuff is about... + +2003-02-03 17:43 zmoelnig + + * src/: Pixes/pix_draw.cpp, Pixes/pix_image.cpp, Pixes/setup.h, + Geos/imageVert.cpp, Geos/newWave.cpp, Geos/setup.h: [no log + message] + +2003-02-03 17:43 zmoelnig + + * src/Pixes/: pix_film.cpp, pix_filmLinux.cpp, pix_filmLinux.h: + because of the new configure, some ifdef's have changed there + names (HAVE_MPEG becomes HAVE_LIBMPEG etc) + +2003-02-03 17:42 zmoelnig + + * src/Pixes/: pix_grey.cpp, pix_grey.h: added the anything2grey + converter + +2003-02-03 17:40 zmoelnig + + * src/Base/GemSetup.cpp: added the openGL-stuff + +2003-02-03 17:40 zmoelnig + + * src/Base/GemGlutObj.cpp: there are new ifdef's because of the new + configure spit out a warning when compiled without GLUT (is this + new ?) + +2003-02-03 17:37 zmoelnig + + * src/Base/: GemBase.cpp, GemBase.h: added an "m_modified" flag. + this might double some code, but it was surely quickto do + +2003-02-03 17:34 zmoelnig + + * src/Base/: config.h, config.h.in: rewrote the configure-thing + hopefully it works now... + +2003-02-03 17:32 zmoelnig + + * src/Gnu/: Makefile.in, acinclude.m4, aclocal.m4, config.guess, + configure, configure.in: rewrote the configure-thing hopefully it + will work now... + +2003-02-03 17:29 zmoelnig + + * src/openGL/: GEMglAreTexturesResident.cpp, + GEMglAreTexturesResident.h, GEMglArrayElement.cpp, + GEMglArrayElement.h, GEMglBindTexture.cpp, GEMglBindTexture.h, + GEMglCopyTexImage1D.cpp, GEMglCopyTexImage1D.h, + GEMglCopyTexImage2D.cpp, GEMglCopyTexImage2D.h, + GEMglCopyTexSubImage1D.cpp, GEMglCopyTexSubImage1D.h, + GEMglCopyTexSubImage2D.cpp, GEMglCopyTexSubImage2D.h, + GEMglDeleteTextures.cpp, GEMglDeleteTextures.h, + GEMglDisableClientState.cpp, GEMglDisableClientState.h, + GEMglDrawArrays.cpp, GEMglDrawArrays.h, GEMglDrawElements.cpp, + GEMglDrawElements.h, GEMglEnableClientState.cpp, + GEMglEnableClientState.h, GEMglEvalCoord1d.cpp, + GEMglEvalCoord1d.h, GEMglEvalCoord1dv.cpp, GEMglEvalCoord1dv.h, + GEMglEvalCoord1f.cpp, GEMglEvalCoord1f.h, GEMglEvalCoord1fv.cpp, + GEMglEvalCoord1fv.h, GEMglEvalCoord2d.cpp, GEMglEvalCoord2d.h, + GEMglEvalCoord2dv.cpp, GEMglEvalCoord2dv.h, GEMglEvalCoord2f.cpp, + GEMglEvalCoord2f.h, GEMglEvalCoord2fv.cpp, GEMglEvalCoord2fv.h, + GEMglEvalMesh1.cpp, GEMglEvalMesh1.h, GEMglEvalMesh2.cpp, + GEMglEvalMesh2.h, GEMglEvalPoint1.cpp, GEMglEvalPoint1.h, + GEMglEvalPoint2.cpp, GEMglEvalPoint2.h, GEMglFeedbackBuffer.cpp, + GEMglFeedbackBuffer.h, GEMglFogf.cpp, GEMglFogf.h, + GEMglFogfv.cpp, GEMglFogfv.h, GEMglFogi.cpp, GEMglFogi.h, + GEMglFogiv.cpp, GEMglFogiv.h, GEMglGenLists.cpp, GEMglGenLists.h, + GEMglGenTextures.cpp, GEMglGenTextures.h, GEMglGetError.cpp, + GEMglGetError.h, GEMglGetMapdv.cpp, GEMglGetMapdv.h, + GEMglGetMapfv.cpp, GEMglGetMapfv.h, GEMglGetMapiv.cpp, + GEMglGetMapiv.h, GEMglGetPointerv.cpp, GEMglGetPointerv.h, + GEMglGetString.cpp, GEMglGetString.h, GEMglIndexdv.cpp, + GEMglIndexdv.h, GEMglIndexfv.cpp, GEMglIndexfv.h, + GEMglIndexiv.cpp, GEMglIndexiv.h, GEMglIndexsv.cpp, + GEMglIndexsv.h, GEMglIndexub.cpp, GEMglIndexub.h, + GEMglIndexubv.cpp, GEMglIndexubv.h, GEMglInitNames.cpp, + GEMglInitNames.h, GEMglIsEnabled.cpp, GEMglIsEnabled.h, + GEMglIsList.cpp, GEMglIsList.h, GEMglIsTexture.cpp, + GEMglIsTexture.h, GEMglLoadName.cpp, GEMglLoadName.h, + GEMglMap1d.cpp, GEMglMap1d.h, GEMglMap1f.cpp, GEMglMap1f.h, + GEMglMap2d.cpp, GEMglMap2d.h, GEMglMap2f.cpp, GEMglMap2f.h, + GEMglMapGrid1d.cpp, GEMglMapGrid1d.h, GEMglMapGrid1f.cpp, + GEMglMapGrid1f.h, GEMglMapGrid2d.cpp, GEMglMapGrid2d.h, + GEMglMapGrid2f.cpp, GEMglMapGrid2f.h, GEMglPassThrough.cpp, + GEMglPassThrough.h, GEMglPopClientAttrib.cpp, + GEMglPopClientAttrib.h, GEMglPopName.cpp, GEMglPopName.h, + GEMglPrioritizeTextures.cpp, GEMglPrioritizeTextures.h, + GEMglPushClientAttrib.cpp, GEMglPushClientAttrib.h, + GEMglPushName.cpp, GEMglPushName.h, GEMglRenderMode.cpp, + GEMglRenderMode.h, GEMglSelectBuffer.cpp, GEMglSelectBuffer.h, + GEMglTexSubImage1D.cpp, GEMglTexSubImage1D.h, + GEMglTexSubImage2D.cpp, GEMglTexSubImage2D.h, makesource: added + openGL-wrapper objects (mainly openGL-1.1) + +2003-02-03 17:27 zmoelnig + + * src/openGL/: GEMglAccum.cpp, GEMglAccum.h, GEMglAlphaFunc.cpp, + GEMglAlphaFunc.h, GEMglBegin.cpp, GEMglBegin.h, GEMglBitmap.cpp, + GEMglBitmap.h, GEMglBlendFunc.cpp, GEMglBlendFunc.h, + GEMglClear.cpp, GEMglClear.h, GEMglClearAccum.cpp, + GEMglClearAccum.h, GEMglClearColor.cpp, GEMglClearColor.h, + GEMglClearDepth.cpp, GEMglClearDepth.h, GEMglClearIndex.cpp, + GEMglClearIndex.h, GEMglClearStencil.cpp, GEMglClearStencil.h, + GEMglColor3b.cpp, GEMglColor3b.h, GEMglColor3bv.cpp, + GEMglColor3bv.h, GEMglColor3d.cpp, GEMglColor3d.h, + GEMglColor3dv.cpp, GEMglColor3dv.h, GEMglColor3f.cpp, + GEMglColor3f.h, GEMglColor3fv.cpp, GEMglColor3fv.h, + GEMglColor3i.cpp, GEMglColor3i.h, GEMglColor3iv.cpp, + GEMglColor3iv.h, GEMglColor3s.cpp, GEMglColor3s.h, + GEMglColor3sv.cpp, GEMglColor3sv.h, GEMglColor3ub.cpp, + GEMglColor3ub.h, GEMglColor3ubv.cpp, GEMglColor3ubv.h, + GEMglColor3ui.cpp, GEMglColor3ui.h, GEMglColor3uiv.cpp, + GEMglColor3uiv.h, GEMglColor3us.cpp, GEMglColor3us.h, + GEMglColor3usv.cpp, GEMglColor3usv.h, GEMglColor4b.cpp, + GEMglColor4b.h, GEMglColor4bv.cpp, GEMglColor4bv.h, + GEMglColor4d.cpp, GEMglColor4d.h, GEMglColor4dv.cpp, + GEMglColor4dv.h, GEMglColor4f.cpp, GEMglColor4f.h, + GEMglColor4fv.cpp, GEMglColor4fv.h, GEMglColor4i.cpp, + GEMglColor4i.h, GEMglColor4iv.cpp, GEMglColor4iv.h, + GEMglColor4s.cpp, GEMglColor4s.h, GEMglColor4sv.cpp, + GEMglColor4sv.h, GEMglColor4ub.cpp, GEMglColor4ub.h, + GEMglColor4ubv.cpp, GEMglColor4ubv.h, GEMglColor4ui.cpp, + GEMglColor4ui.h, GEMglColor4uiv.cpp, GEMglColor4uiv.h, + GEMglColor4us.cpp, GEMglColor4us.h, GEMglColor4usv.cpp, + GEMglColor4usv.h, GEMglColorMask.cpp, GEMglColorMask.h, + GEMglColorMaterial.cpp, GEMglColorMaterial.h, + GEMglCopyPixels.cpp, GEMglCopyPixels.h, GEMglCullFace.cpp, + GEMglCullFace.h, GEMglDepthFunc.cpp, GEMglDepthFunc.h, + GEMglDepthMask.cpp, GEMglDepthMask.h, GEMglDepthRange.cpp, + GEMglDepthRange.h, GEMglDisable.cpp, GEMglDisable.h, + GEMglDrawBuffer.cpp, GEMglDrawBuffer.h, GEMglEdgeFlag.cpp, + GEMglEdgeFlag.h, GEMglEnable.cpp, GEMglEnable.h, GEMglEnd.cpp, + GEMglEnd.h, GEMglFinish.cpp, GEMglFinish.h, GEMglFlush.cpp, + GEMglFlush.h, GEMglFrontFace.cpp, GEMglFrontFace.h, + GEMglFrustum.cpp, GEMglFrustum.h, GEMglHint.cpp, GEMglHint.h, + GEMglIndexMask.cpp, GEMglIndexMask.h, GEMglIndexd.cpp, + GEMglIndexd.h, GEMglIndexf.cpp, GEMglIndexf.h, GEMglIndexi.cpp, + GEMglIndexi.h, GEMglIndexs.cpp, GEMglIndexs.h, + GEMglLightModelf.cpp, GEMglLightModelf.h, GEMglLightModeli.cpp, + GEMglLightModeli.h, GEMglLightf.cpp, GEMglLightf.h, + GEMglLighti.cpp, GEMglLighti.h, GEMglLineStipple.cpp, + GEMglLineStipple.h, GEMglLineWidth.cpp, GEMglLineWidth.h, + GEMglLoadIdentity.cpp, GEMglLoadIdentity.h, GEMglLogicOp.cpp, + GEMglLogicOp.h, GEMglMaterialf.cpp, GEMglMaterialf.h, + GEMglMateriali.cpp, GEMglMateriali.h, GEMglMatrixMode.cpp, + GEMglMatrixMode.h, GEMglNormal3b.cpp, GEMglNormal3b.h, + GEMglNormal3bv.cpp, GEMglNormal3bv.h, GEMglNormal3d.cpp, + GEMglNormal3d.h, GEMglNormal3dv.cpp, GEMglNormal3dv.h, + GEMglNormal3f.cpp, GEMglNormal3f.h, GEMglNormal3fv.cpp, + GEMglNormal3fv.h, GEMglNormal3i.cpp, GEMglNormal3i.h, + GEMglNormal3iv.cpp, GEMglNormal3iv.h, GEMglNormal3s.cpp, + GEMglNormal3s.h, GEMglNormal3sv.cpp, GEMglNormal3sv.h, + GEMglOrtho.cpp, GEMglOrtho.h, GEMglPixelStoref.cpp, + GEMglPixelStoref.h, GEMglPixelStorei.cpp, GEMglPixelStorei.h, + GEMglPixelTransferf.cpp, GEMglPixelTransferf.h, + GEMglPixelTransferi.cpp, GEMglPixelTransferi.h, + GEMglPixelZoom.cpp, GEMglPixelZoom.h, GEMglPointSize.cpp, + GEMglPointSize.h, GEMglPolygonMode.cpp, GEMglPolygonMode.h, + GEMglPolygonOffset.cpp, GEMglPolygonOffset.h, GEMglPopAttrib.cpp, + GEMglPopAttrib.h, GEMglPopMatrix.cpp, GEMglPopMatrix.h, + GEMglPushAttrib.cpp, GEMglPushAttrib.h, GEMglPushMatrix.cpp, + GEMglPushMatrix.h, GEMglRasterPos2d.cpp, GEMglRasterPos2d.h, + GEMglRasterPos2dv.cpp, GEMglRasterPos2dv.h, GEMglRasterPos2f.cpp, + GEMglRasterPos2f.h, GEMglRasterPos2fv.cpp, GEMglRasterPos2fv.h, + GEMglRasterPos2i.cpp, GEMglRasterPos2i.h, GEMglRasterPos2iv.cpp, + GEMglRasterPos2iv.h, GEMglRasterPos2s.cpp, GEMglRasterPos2s.h, + GEMglRasterPos2sv.cpp, GEMglRasterPos2sv.h, GEMglRasterPos3d.cpp, + GEMglRasterPos3d.h, GEMglRasterPos3dv.cpp, GEMglRasterPos3dv.h, + GEMglRasterPos3f.cpp, GEMglRasterPos3f.h, GEMglRasterPos3fv.cpp, + GEMglRasterPos3fv.h, GEMglRasterPos3i.cpp, GEMglRasterPos3i.h, + GEMglRasterPos3iv.cpp, GEMglRasterPos3iv.h, GEMglRasterPos3s.cpp, + GEMglRasterPos3s.h, GEMglRasterPos3sv.cpp, GEMglRasterPos3sv.h, + GEMglRasterPos4d.cpp, GEMglRasterPos4d.h, GEMglRasterPos4dv.cpp, + GEMglRasterPos4dv.h, GEMglRasterPos4f.cpp, GEMglRasterPos4f.h, + GEMglRasterPos4fv.cpp, GEMglRasterPos4fv.h, GEMglRasterPos4i.cpp, + GEMglRasterPos4i.h, GEMglRasterPos4iv.cpp, GEMglRasterPos4iv.h, + GEMglRasterPos4s.cpp, GEMglRasterPos4s.h, GEMglRasterPos4sv.cpp, + GEMglRasterPos4sv.h, GEMglRectd.cpp, GEMglRectd.h, + GEMglRectf.cpp, GEMglRectf.h, GEMglRecti.cpp, GEMglRecti.h, + GEMglRects.cpp, GEMglRects.h, GEMglRotated.cpp, GEMglRotated.h, + GEMglRotatef.cpp, GEMglRotatef.h, GEMglScaled.cpp, GEMglScaled.h, + GEMglScalef.cpp, GEMglScalef.h, GEMglScissor.cpp, GEMglScissor.h, + GEMglShadeModel.cpp, GEMglShadeModel.h, GEMglStencilFunc.cpp, + GEMglStencilFunc.h, GEMglStencilMask.cpp, GEMglStencilMask.h, + GEMglStencilOp.cpp, GEMglStencilOp.h, GEMglTexCoord1d.cpp, + GEMglTexCoord1d.h, GEMglTexCoord1dv.cpp, GEMglTexCoord1dv.h, + GEMglTexCoord1f.cpp, GEMglTexCoord1f.h, GEMglTexCoord1fv.cpp, + GEMglTexCoord1fv.h, GEMglTexCoord1i.cpp, GEMglTexCoord1i.h, + GEMglTexCoord1iv.cpp, GEMglTexCoord1iv.h, GEMglTexCoord1s.cpp, + GEMglTexCoord1s.h, GEMglTexCoord1sv.cpp, GEMglTexCoord1sv.h, + GEMglTexCoord2d.cpp, GEMglTexCoord2d.h, GEMglTexCoord2dv.cpp, + GEMglTexCoord2dv.h, GEMglTexCoord2f.cpp, GEMglTexCoord2f.h, + GEMglTexCoord2fv.cpp, GEMglTexCoord2fv.h, GEMglTexCoord2i.cpp, + GEMglTexCoord2i.h, GEMglTexCoord2iv.cpp, GEMglTexCoord2iv.h, + GEMglTexCoord2s.cpp, GEMglTexCoord2s.h, GEMglTexCoord2sv.cpp, + GEMglTexCoord2sv.h, GEMglTexCoord3d.cpp, GEMglTexCoord3d.h, + GEMglTexCoord3dv.cpp, GEMglTexCoord3dv.h, GEMglTexCoord3f.cpp, + GEMglTexCoord3f.h, GEMglTexCoord3fv.cpp, GEMglTexCoord3fv.h, + GEMglTexCoord3i.cpp, GEMglTexCoord3i.h, GEMglTexCoord3iv.cpp, + GEMglTexCoord3iv.h, GEMglTexCoord3s.cpp, GEMglTexCoord3s.h, + GEMglTexCoord3sv.cpp, GEMglTexCoord3sv.h, GEMglTexCoord4d.cpp, + GEMglTexCoord4d.h, GEMglTexCoord4dv.cpp, GEMglTexCoord4dv.h, + GEMglTexCoord4f.cpp, GEMglTexCoord4f.h, GEMglTexCoord4fv.cpp, + GEMglTexCoord4fv.h, GEMglTexCoord4i.cpp, GEMglTexCoord4i.h, + GEMglTexCoord4iv.cpp, GEMglTexCoord4iv.h, GEMglTexCoord4s.cpp, + GEMglTexCoord4s.h, GEMglTexCoord4sv.cpp, GEMglTexCoord4sv.h, + GEMglTexEnvf.cpp, GEMglTexEnvf.h, GEMglTexEnvi.cpp, + GEMglTexEnvi.h, GEMglTexGend.cpp, GEMglTexGend.h, + GEMglTexGenf.cpp, GEMglTexGenf.h, GEMglTexGeni.cpp, + GEMglTexGeni.h, GEMglTexParameterf.cpp, GEMglTexParameterf.h, + GEMglTexParameteri.cpp, GEMglTexParameteri.h, + GEMglTranslated.cpp, GEMglTranslated.h, GEMglTranslatef.cpp, + GEMglTranslatef.h, GEMglVertex2d.cpp, GEMglVertex2d.h, + GEMglVertex2dv.cpp, GEMglVertex2dv.h, GEMglVertex2f.cpp, + GEMglVertex2f.h, GEMglVertex2fv.cpp, GEMglVertex2fv.h, + GEMglVertex2i.cpp, GEMglVertex2i.h, GEMglVertex2iv.cpp, + GEMglVertex2iv.h, GEMglVertex2s.cpp, GEMglVertex2s.h, + GEMglVertex2sv.cpp, GEMglVertex2sv.h, GEMglVertex3d.cpp, + GEMglVertex3d.h, GEMglVertex3dv.cpp, GEMglVertex3dv.h, + GEMglVertex3f.cpp, GEMglVertex3f.h, GEMglVertex3fv.cpp, + GEMglVertex3fv.h, GEMglVertex3i.cpp, GEMglVertex3i.h, + GEMglVertex3iv.cpp, GEMglVertex3iv.h, GEMglVertex3s.cpp, + GEMglVertex3s.h, GEMglVertex3sv.cpp, GEMglVertex3sv.h, + GEMglVertex4d.cpp, GEMglVertex4d.h, GEMglVertex4dv.cpp, + GEMglVertex4dv.h, GEMglVertex4f.cpp, GEMglVertex4f.h, + GEMglVertex4fv.cpp, GEMglVertex4fv.h, GEMglVertex4i.cpp, + GEMglVertex4i.h, GEMglVertex4iv.cpp, GEMglVertex4iv.h, + GEMglVertex4s.cpp, GEMglVertex4s.h, GEMglVertex4sv.cpp, + GEMglVertex4sv.h, GEMglViewport.cpp, GEMglViewport.h, setup.h: + rewrote (regenerated) the openGL-wrapping stuff + +2003-01-29 09:57 cclepper + + * src/Pixes/: pix_offset.h, pix_offset.cpp: added yuv processing + +2003-01-29 09:02 cclepper + + * src/Pixes/pix_add.cpp: added yuv processing + +2003-01-29 08:59 cclepper + + * src/Pixes/: pix_diff.h, pix_diff.cpp, pix_add.h: added yuv + processing + +2003-01-29 08:52 cclepper + + * src/Pixes/: pix_subtract.h, pix_subtract.cpp, pix_multiply.h, + pix_multiply.cpp: added yuv processing + +2003-01-26 05:39 tigital + + * src/Pixes/pix_texture.cpp: fixed bug which prevented + non-powerOfTwo textures from texturing correctly (m_coords are + now set and passed into state->texCoords) + +2003-01-26 05:15 cclepper + + * src/Pixes/pix_gain.cpp: fixed YUV code in pix_gain + +2003-01-26 00:55 cclepper + + * src/Base/GemPixUtil.h: changed the color channel order for OSX + +2003-01-25 23:38 cclepper + + * src/Pixes/setup.h: fixed/added some yuv stuff + +2003-01-25 23:35 cclepper + + * src/yuv/: yuv_bitwise.cpp, yuv_bitwise.h, yuv_blur.cpp, + yuv_blur.h, yuv_mask.cpp, yuv_mask.h, yuv_mix.cpp, yuv_mix.h, + yuv_pixel_average.cpp, yuv_pixel_average.h: fixed/added some yuv + stuff + +2003-01-25 23:31 cclepper + + * src/yuv/setup.h: fixed/added some yuv stuff + +2003-01-25 21:34 cclepper + + * src/yuv/yuv_set.cpp: test for yuv update + +2003-01-13 15:50 tigital + + * src/Base/: GemBase.h, GemPixImageLoad.cpp: added gl.h & glext.h + to allow compile on OS X + +2003-01-09 23:40 tigital + + * src/Base/GemMan.cpp: made s_windowClock=NULL on DestroyWindow to + address possible memory leak + +2003-01-09 20:26 zmoelnig + + * examples/01.basic/09.yelloTeapot.pd: [no log message] + +2003-01-09 20:25 zmoelnig + + * examples/04.video/: 03.movement_detection.pd, 04.videoRTX.pd: + added movement_detection videoRTX + +2003-01-07 19:59 zmoelnig + + * examples/04.pix/: 05.film.pd, 07.PixSet.pd, 08.PixDump.pd, + 09.Histogram.pd, 12.add.pd, 12.blending.pd, 12.pix_multiply.pd, + 14.takeAlpha.pd, 16.pix_2grey.pd, 18.Curves.pd, 22.biquad.pd, + 23.gravity.pd: added some examples for 04.pix; they were missing? + +2002-12-16 18:59 zmoelnig + + * src/yuv/: setup.h, yuv_chroma_key.cpp, yuv_chroma_key.h, + yuv_emboss.cpp, yuv_emboss.h: yuv_*: (think) i changed these to + the new process*Image() functions + +2002-12-16 18:54 zmoelnig + + * src/Pixes/: pix_2grey.cpp, pix_alpha.cpp, pix_alpha.h, + pix_buf.cpp, pix_buf.h, pix_dv.cpp, pix_dv.h, pix_film.cpp, + pix_film.h, pix_filmYUV.cpp, pix_filmYUV.h, pix_gain.cpp, + pix_image.cpp, pix_image.h, pix_info.cpp, pix_info.h, + pix_movie.cpp, pix_multiimage.cpp, pix_multiimage.h, + pix_rgba.cpp, pix_set.cpp, pix_set.h, pix_sig2pix.cpp, + pix_sig2pix.h, pix_snap.cpp, pix_snap.h, pix_texture.cpp, + pix_texture2.cpp, pix_video.cpp, pix_video.h, + pix_videoDarwin.cpp, pix_videoDarwin.h, pix_videoNT.h, + pix_yuv.cpp, pix_yuv.h, setup.h: pix_info: get information on + pixes (xsize, ysize, csize, format, data) pix_yuv : convert + images to YUV (for now only RGBA); needs testing pix_rgba: + provides a function for YUV; needs testing * : new + process*Image() functions for RGBA, YUV,... + +2002-12-16 18:40 zmoelnig + + * src/Geos/: setup.h, teapot.cpp, teapot.h, text2d.cpp: teapot: if + !HAVE_GLUT we still support [teapot], only the rendering is void + text2d: the mac-#ifdefs didn't compile on linux, so i fixed them + +2002-12-16 18:36 zmoelnig + + * src/Base/: GemGlutObj.cpp, GemGlutObj.h, GemPixDualObj.cpp, + GemPixDualObj.h, GemPixObj.cpp, GemPixObj.h, GemPixUtil.cpp, + GemPixUtil.h: GemPix*Obj: hopefully fixed the bug that appeared + when deleting pix_fx now we cache the whole + pixBuf-structure and return it on postrendering GemPixUtil: now + provides a function for copying imageStruct-information + GemGlutObj: if !HAVE_GLUT, we only throw an error at + object-creation + +2002-12-14 05:43 tigital + + * src/yuv/yuv_chroma_key.cpp: corrected rangeMess inputs + +2002-12-14 05:40 tigital + + * src/Base/GemWinCreateMac.cpp: fixed a coupla possible leaks + +2002-12-14 05:36 tigital + + * src/Pixes/: pix_puzzle.h, pix_puzzle.cpp: added + processYUVImage(), so it works with yuv now! + +2002-12-12 08:30 tigital + + * src/yuv/: yuv_videoDarwin.cpp, yuv_videoDarwin.h: added yuv video + input for MacOSX; cleanup unused variables + +2002-12-12 08:27 tigital + + * src/Pixes/: pix_videoDarwin.cpp, pix_videoDarwin.h: cleanup + unused variables + +2002-12-10 06:55 tigital + + * src/TV/tv_rtx.cpp: removed unused variable "count" + +2002-12-10 06:52 tigital + + * src/Base/: TextBase.h, TextBase.cpp: added MACOSX support + +2002-12-09 12:36 zmoelnig + + * src/: Base/GemPixDualObj.cpp, Base/GemPixDualObj.h, + Base/GemPixObj.cpp, Base/GemPixObj.h, Base/GemPixUtil.h, + Gnu/Makefile, Pixes/pix_2grey.cpp, Pixes/pix_2grey.h, + Pixes/pix_a_2grey.cpp, Pixes/pix_a_2grey.h, Pixes/pix_add.cpp, + Pixes/pix_add.h, Pixes/pix_aging.cpp, Pixes/pix_aging.h, + Pixes/pix_alpha.cpp, Pixes/pix_alpha.h, Pixes/pix_bitmask.cpp, + Pixes/pix_bitmask.h, Pixes/pix_blob.cpp, Pixes/pix_blob.h, + Pixes/pix_color.cpp, Pixes/pix_color.h, Pixes/pix_coloralpha.cpp, + Pixes/pix_coloralpha.h, Pixes/pix_colormatrix.cpp, + Pixes/pix_colormatrix.h, Pixes/pix_composite.cpp, + Pixes/pix_composite.h, Pixes/pix_convolve.cpp, + Pixes/pix_curve.cpp, Pixes/pix_curve.h, Pixes/pix_data.h, + Pixes/pix_diff.cpp, Pixes/pix_diff.h, Pixes/pix_dot.cpp, + Pixes/pix_dot.h, Pixes/pix_fx.cpp, Pixes/pix_fx.h, + Pixes/pix_gain.cpp, Pixes/pix_gain.h, Pixes/pix_histo.cpp, + Pixes/pix_histo.h, Pixes/pix_hsv2rgb.cpp, Pixes/pix_hsv2rgb.h, + Pixes/pix_invert.cpp, Pixes/pix_invert.h, Pixes/pix_mask.cpp, + Pixes/pix_mask.h, Pixes/pix_multiply.cpp, Pixes/pix_multiply.h, + Pixes/pix_normalize.cpp, Pixes/pix_normalize.h, + Pixes/pix_offset.cpp, Pixes/pix_offset.h, Pixes/pix_pix2sig.cpp, + Pixes/pix_pix2sig.h, Pixes/pix_puzzle.cpp, Pixes/pix_puzzle.h, + Pixes/pix_rectangle.cpp, Pixes/pix_rectangle.h, + Pixes/pix_resize.cpp, Pixes/pix_rgb2hsv.cpp, Pixes/pix_rgb2hsv.h, + Pixes/pix_rgba.cpp, Pixes/pix_rgba.h, Pixes/pix_set.cpp, + Pixes/pix_set.h, Pixes/pix_subtract.cpp, Pixes/pix_subtract.h, + Pixes/pix_takealpha.cpp, Pixes/pix_takealpha.h, + Pixes/pix_test.cpp, Pixes/pix_test.h, Pixes/pix_threshold.cpp, + Pixes/pix_threshold.h, Pixes/setup.h, TV/tv_delay.cpp, + TV/tv_delay.h, openGL/GEMglAccum.cpp, openGL/GEMglAccum.h, + openGL/GEMglAlphaFunc.cpp, openGL/GEMglAlphaFunc.h, + openGL/GEMglBegin.cpp, openGL/GEMglBegin.h, + openGL/GEMglBitmap.cpp: rewrote the -callers. + processImage is now used for images of any(!) format. thus the + programmer has to care for the format him/herself the format + specific functions are processImageRGBA and similar the + same goes for PixDualObjects (processRGBA_Gray etc...) deleted + pix_fx the pix_fx functionality is now in GemPixObj this + functionality is: save the image-state before it is processed + and reconstruct it in the postrender function so we can change + size/format and even bend the data-pointer and objects + "before" will not notice (and crash) revised 3 openGL objects + (urgh: lots of work to do still) + +2002-12-08 22:41 tigital + + * src/Geos/: TexFont.h, text2d.cpp, text2d.h, text3d.cpp, text3d.h, + textoutline.cpp, textoutline.h: added support for MACOSX + +2002-12-08 22:39 tigital + + * src/Geos/model.h: reordered variables to shutup gcc3.1 + +2002-12-08 21:10 zmoelnig + + * src/TV/: tv_delay.cpp, tv_delay.h: added framewise delay! + +2002-12-04 06:19 tigital + + * src/Base/GemMan.cpp: GL_EXTENSIONS formatting same for all + platforms + +2002-12-02 18:14 zmoelnig + + * src/: Base/GemMan.cpp, Base/GemPixObj.cpp, Gnu/Makefile: new + image-processing calls (processRGBAImage) + +2002-11-27 21:22 zmoelnig + + * src/: Controls/setup.h, Geos/setup.h, Manips/setup.h, + Nongeos/setup.h, Particles/setup.h, Pixes/setup.h, TV/setup.h: a + new (simpler?) setup-logistic + +2002-11-27 21:18 zmoelnig + + * src/: openGL/Make.depend, openGL/makesetup, yuv/setup.h: [no log + message] + +2002-11-27 21:09 zmoelnig + + * src/openGL/: GEMglAccum.cpp, GEMglAccum.h, GEMglAlphaFunc.cpp, + GEMglAlphaFunc.h, GEMglBegin.cpp, GEMglBegin.h, GEMglBitmap.cpp, + GEMglBitmap.h, GEMglBlendFunc.cpp, GEMglBlendFunc.h, + GEMglClear.cpp, GEMglClear.h, GEMglClearAccum.cpp, + GEMglClearAccum.h, GEMglClearColor.cpp, GEMglClearColor.h, + GEMglClearDepth.cpp, GEMglClearDepth.h, GEMglClearIndex.cpp, + GEMglClearIndex.h, GEMglClearStencil.cpp, GEMglClearStencil.h, + GEMglColor3b.cpp, GEMglColor3b.h, GEMglColor3bv.cpp, + GEMglColor3bv.h, GEMglColor3d.cpp, GEMglColor3d.h, + GEMglColor3dv.cpp, GEMglColor3dv.h, GEMglColor3f.cpp, + GEMglColor3f.h, GEMglColor3fv.cpp, GEMglColor3fv.h, + GEMglColor3i.cpp, GEMglColor3i.h, GEMglColor3iv.cpp, + GEMglColor3iv.h, GEMglColor3s.cpp, GEMglColor3s.h, + GEMglColor3sv.cpp, GEMglColor3sv.h, GEMglColor3ub.cpp, + GEMglColor3ub.h, GEMglColor3ubv.cpp, GEMglColor3ubv.h, + GEMglColor3ui.cpp, GEMglColor3ui.h, GEMglColor3uiv.cpp, + GEMglColor3uiv.h, GEMglColor3us.cpp, GEMglColor3us.h, + GEMglColor3usv.cpp, GEMglColor3usv.h, GEMglColor4b.cpp, + GEMglColor4b.h, GEMglColor4bv.cpp, GEMglColor4bv.h, + GEMglColor4d.cpp, GEMglColor4d.h, GEMglColor4dv.cpp, + GEMglColor4dv.h, GEMglColor4f.cpp, GEMglColor4f.h, + GEMglColor4fv.cpp, GEMglColor4fv.h, GEMglColor4i.cpp, + GEMglColor4i.h, GEMglColor4iv.cpp, GEMglColor4iv.h, + GEMglColor4s.cpp, GEMglColor4s.h, GEMglColor4sv.cpp, + GEMglColor4sv.h, GEMglColor4ub.cpp, GEMglColor4ub.h, + GEMglColor4ubv.cpp, GEMglColor4ubv.h, GEMglColor4ui.cpp, + GEMglColor4ui.h, GEMglColor4uiv.cpp, GEMglColor4uiv.h, + GEMglColor4us.cpp, GEMglColor4us.h, GEMglColor4usv.cpp, + GEMglColor4usv.h, GEMglColorMask.cpp, GEMglColorMask.h, + GEMglColorMaterial.cpp, GEMglColorMaterial.h, + GEMglCopyPixels.cpp, GEMglCopyPixels.h, GEMglCullFace.cpp, + GEMglCullFace.h, GEMglDepthFunc.cpp, GEMglDepthFunc.h, + GEMglDepthMask.cpp, GEMglDepthMask.h, GEMglDepthRange.cpp, + GEMglDepthRange.h, GEMglDisable.cpp, GEMglDisable.h, + GEMglDrawBuffer.cpp, GEMglDrawBuffer.h, GEMglEdgeFlag.cpp, + GEMglEdgeFlag.h, GEMglEnable.cpp, GEMglEnable.h, GEMglEnd.cpp, + GEMglEnd.h, GEMglFinish.cpp, GEMglFinish.h, GEMglFlush.cpp, + GEMglFlush.h, GEMglFrontFace.cpp, GEMglFrontFace.h, + GEMglFrustum.cpp, GEMglFrustum.h, GEMglHint.cpp, GEMglHint.h, + GEMglIndexMask.cpp, GEMglIndexMask.h, GEMglIndexd.cpp, + GEMglIndexd.h, GEMglIndexf.cpp, GEMglIndexf.h, GEMglIndexi.cpp, + GEMglIndexi.h, GEMglIndexs.cpp, GEMglIndexs.h, + GEMglLightModelf.cpp, GEMglLightModelf.h, GEMglLightModeli.cpp, + GEMglLightModeli.h, GEMglLightf.cpp, GEMglLightf.h, + GEMglLighti.cpp, GEMglLighti.h, GEMglLineStipple.cpp, + GEMglLineStipple.h, GEMglLineWidth.cpp, GEMglLineWidth.h, + GEMglLoadIdentity.cpp, GEMglLoadIdentity.h, GEMglLogicOp.cpp, + GEMglLogicOp.h, GEMglMaterialf.cpp, GEMglMaterialf.h, + GEMglMateriali.cpp, GEMglMateriali.h, GEMglMatrixMode.cpp, + GEMglMatrixMode.h, GEMglNormal3b.cpp, GEMglNormal3b.h, + GEMglNormal3bv.cpp, GEMglNormal3bv.h, GEMglNormal3d.cpp, + GEMglNormal3d.h, GEMglNormal3dv.cpp, GEMglNormal3dv.h, + GEMglNormal3f.cpp, GEMglNormal3f.h, GEMglNormal3fv.cpp, + GEMglNormal3fv.h, GEMglNormal3i.cpp, GEMglNormal3i.h, + GEMglNormal3iv.cpp, GEMglNormal3iv.h, GEMglNormal3s.cpp, + GEMglNormal3s.h, GEMglNormal3sv.cpp, GEMglNormal3sv.h, + GEMglOrtho.cpp, GEMglOrtho.h, GEMglPixelStoref.cpp, + GEMglPixelStoref.h, GEMglPixelStorei.cpp, GEMglPixelStorei.h, + GEMglPixelTransferf.cpp, GEMglPixelTransferf.h, + GEMglPixelTransferi.cpp, GEMglPixelTransferi.h, + GEMglPixelZoom.cpp, GEMglPixelZoom.h, GEMglPointSize.cpp, + GEMglPointSize.h, GEMglPolygonMode.cpp, GEMglPolygonMode.h, + GEMglPolygonOffset.cpp, GEMglPolygonOffset.h, GEMglPopAttrib.cpp, + GEMglPopAttrib.h, GEMglPopMatrix.cpp, GEMglPopMatrix.h, + GEMglPushAttrib.cpp, GEMglPushAttrib.h, GEMglPushMatrix.cpp, + GEMglPushMatrix.h, GEMglRasterPos2d.cpp, GEMglRasterPos2d.h, + GEMglRasterPos2dv.cpp, GEMglRasterPos2dv.h, GEMglRasterPos2f.cpp, + GEMglRasterPos2f.h, GEMglRasterPos2fv.cpp, GEMglRasterPos2fv.h, + GEMglRasterPos2i.cpp, GEMglRasterPos2i.h, GEMglRasterPos2iv.cpp, + GEMglRasterPos2iv.h, GEMglRasterPos2s.cpp, GEMglRasterPos2s.h, + GEMglRasterPos2sv.cpp, GEMglRasterPos2sv.h, GEMglRasterPos3d.cpp, + GEMglRasterPos3d.h, GEMglRasterPos3dv.cpp, GEMglRasterPos3dv.h, + GEMglRasterPos3f.cpp, GEMglRasterPos3f.h, GEMglRasterPos3fv.cpp, + GEMglRasterPos3fv.h, GEMglRasterPos3i.cpp, GEMglRasterPos3i.h, + GEMglRasterPos3iv.cpp, GEMglRasterPos3iv.h, GEMglRasterPos3s.cpp, + GEMglRasterPos3s.h, GEMglRasterPos3sv.cpp, GEMglRasterPos3sv.h, + GEMglRasterPos4d.cpp, GEMglRasterPos4d.h, GEMglRasterPos4dv.cpp, + GEMglRasterPos4dv.h, GEMglRasterPos4f.cpp, GEMglRasterPos4f.h, + GEMglRasterPos4fv.cpp, GEMglRasterPos4fv.h, GEMglRasterPos4i.cpp, + GEMglRasterPos4i.h, GEMglRasterPos4iv.cpp, GEMglRasterPos4iv.h, + GEMglRasterPos4s.cpp, GEMglRasterPos4s.h, GEMglRasterPos4sv.cpp, + GEMglRasterPos4sv.h, GEMglRectd.cpp, GEMglRectd.h, + GEMglRectf.cpp, GEMglRectf.h, GEMglRecti.cpp, GEMglRecti.h, + GEMglRects.cpp, GEMglRects.h, GEMglRotated.cpp, GEMglRotated.h, + GEMglRotatef.cpp, GEMglRotatef.h, GEMglScaled.cpp, GEMglScaled.h, + GEMglScalef.cpp, GEMglScalef.h, GEMglScissor.cpp, GEMglScissor.h, + GEMglShadeModel.cpp, GEMglShadeModel.h, GEMglStencilFunc.cpp, + GEMglStencilFunc.h, GEMglStencilMask.cpp, GEMglStencilMask.h, + GEMglStencilOp.cpp, GEMglStencilOp.h, GEMglTexCoord1d.cpp, + GEMglTexCoord1d.h, GEMglTexCoord1dv.cpp, GEMglTexCoord1dv.h, + GEMglTexCoord1f.cpp, GEMglTexCoord1f.h, GEMglTexCoord1fv.cpp, + GEMglTexCoord1fv.h, GEMglTexCoord1i.cpp, GEMglTexCoord1i.h, + GEMglTexCoord1iv.cpp, GEMglTexCoord1iv.h, GEMglTexCoord1s.cpp, + GEMglTexCoord1s.h, GEMglTexCoord1sv.cpp, GEMglTexCoord1sv.h, + GEMglTexCoord2d.cpp, GEMglTexCoord2d.h, GEMglTexCoord2dv.cpp, + GEMglTexCoord2dv.h, GEMglTexCoord2f.cpp, GEMglTexCoord2f.h, + GEMglTexCoord2fv.cpp, GEMglTexCoord2fv.h, GEMglTexCoord2i.cpp, + GEMglTexCoord2i.h, GEMglTexCoord2iv.cpp, GEMglTexCoord2iv.h, + GEMglTexCoord2s.cpp, GEMglTexCoord2s.h, GEMglTexCoord2sv.cpp, + GEMglTexCoord2sv.h, GEMglTexCoord3d.cpp, GEMglTexCoord3d.h, + GEMglTexCoord3dv.cpp, GEMglTexCoord3dv.h, GEMglTexCoord3f.cpp, + GEMglTexCoord3f.h, GEMglTexCoord3fv.cpp, GEMglTexCoord3fv.h, + GEMglTexCoord3i.cpp, GEMglTexCoord3i.h, GEMglTexCoord3iv.cpp, + GEMglTexCoord3iv.h, GEMglTexCoord3s.cpp, GEMglTexCoord3s.h, + GEMglTexCoord3sv.cpp, GEMglTexCoord3sv.h, GEMglTexCoord4d.cpp, + GEMglTexCoord4d.h, GEMglTexCoord4dv.cpp, GEMglTexCoord4dv.h, + GEMglTexCoord4f.cpp, GEMglTexCoord4f.h, GEMglTexCoord4fv.cpp, + GEMglTexCoord4fv.h, GEMglTexCoord4i.cpp, GEMglTexCoord4i.h, + GEMglTexCoord4iv.cpp, GEMglTexCoord4iv.h, GEMglTexCoord4s.cpp, + GEMglTexCoord4s.h, GEMglTexCoord4sv.cpp, GEMglTexCoord4sv.h, + GEMglTexEnvf.cpp, GEMglTexEnvf.h, GEMglTexEnvi.cpp, + GEMglTexEnvi.h, GEMglTexGend.cpp, GEMglTexGend.h, + GEMglTexGenf.cpp, GEMglTexGenf.h, GEMglTexGeni.cpp, + GEMglTexGeni.h, GEMglTexParameterf.cpp, GEMglTexParameterf.h, + GEMglTexParameteri.cpp, GEMglTexParameteri.h, + GEMglTranslated.cpp, GEMglTranslated.h, GEMglTranslatef.cpp, + GEMglTranslatef.h, GEMglVertex2d.cpp, GEMglVertex2d.h, + GEMglVertex2dv.cpp, GEMglVertex2dv.h, GEMglVertex2f.cpp, + GEMglVertex2f.h, GEMglVertex2fv.cpp, GEMglVertex2fv.h, + GEMglVertex2i.cpp, GEMglVertex2i.h, GEMglVertex2iv.cpp, + GEMglVertex2iv.h, GEMglVertex2s.cpp, GEMglVertex2s.h, + GEMglVertex2sv.cpp, GEMglVertex2sv.h, GEMglVertex3d.cpp, + GEMglVertex3d.h, GEMglVertex3dv.cpp, GEMglVertex3dv.h, + GEMglVertex3f.cpp, GEMglVertex3f.h, GEMglVertex3fv.cpp, + GEMglVertex3fv.h, GEMglVertex3i.cpp, GEMglVertex3i.h, + GEMglVertex3iv.cpp, GEMglVertex3iv.h, GEMglVertex3s.cpp, + GEMglVertex3s.h, GEMglVertex3sv.cpp, GEMglVertex3sv.h, + GEMglVertex4d.cpp, GEMglVertex4d.h, GEMglVertex4dv.cpp, + GEMglVertex4dv.h, GEMglVertex4f.cpp, GEMglVertex4f.h, + GEMglVertex4fv.cpp, GEMglVertex4fv.h, GEMglVertex4i.cpp, + GEMglVertex4i.h, GEMglVertex4iv.cpp, GEMglVertex4iv.h, + GEMglVertex4s.cpp, GEMglVertex4s.h, GEMglVertex4sv.cpp, + GEMglVertex4sv.h, GEMglViewport.cpp, GEMglViewport.h, setup.h: + added a lot of openGL stuff... + +2002-11-27 21:02 zmoelnig + + * src/: Controls/gemwin.cpp, Geos/cuboid.cpp, Geos/cuboid.h, + Manips/ortho.cpp, Gnu/Makefile.in, Gnu/configure, + Gnu/configure.in, Gnu/makesource, Nongeos/world_light.h, + Pixes/pix_aging.cpp, Pixes/pix_blob.cpp, Pixes/pix_convolve.cpp, + Pixes/pix_filmDarwin.cpp, Pixes/pix_filmDarwinYUV.cpp, + Pixes/pix_fx.cpp, Pixes/pix_movie.cpp, Pixes/pix_movieYUV.cpp, + Pixes/pix_movieYUV.h, Pixes/pix_puzzle.cpp, Pixes/pix_resize.cpp, + Pixes/pix_texture.cpp, Pixes/pix_texture.h, + Pixes/pix_texture2.cpp, Pixes/pix_video.cpp, + Pixes/pix_videoDarwin.cpp, Pixes/pix_videoLinux.cpp: made CVS + compile under linux again + +2002-11-27 21:00 zmoelnig + + * src/: yuv/yuv_chroma_key.cpp, yuv/yuv_difference.cpp, + yuv/yuv_dual.cpp, yuv/yuv_filmDarwin.cpp, yuv/yuv_gain.cpp, + yuv/yuv_luma_key.cpp, yuv/yuv_movie.cpp, Base/GemBase.h, + Base/GemGLUtil.cpp, Base/GemGLUtil.h, Base/GemGluObj.h, + Base/GemMan.cpp, Base/GemMan.h, Base/GemPixImageLoad.cpp, + Base/GemPixObj.h, Base/GemPixUtil.cpp, Base/GemPixUtil.h, + Base/GemSetup.cpp, Base/GemWinCreateMac.cpp, + Base/GemWinCreateXWin.cpp, Base/sgiimage.cpp: made the CVS + compile under linux again + +2002-11-27 02:28 tigital + + * GEM_darwin.pbproj.sit: [no log message] + +2002-11-27 02:19 tigital + + * src/yuv/: yuv_adjust.cpp, yuv_adjust.h, yuv_average.cpp, + yuv_average.h, yuv_bandw.cpp, yuv_bandw.h, yuv_bitshift.cpp, + yuv_bitshift.h, yuv_blank.cpp, yuv_blank.h, yuv_chroma_key.cpp, + yuv_chroma_key.h, yuv_clamp.cpp, yuv_clamp.h, yuv_compare.cpp, + yuv_compare.h, yuv_difference.cpp, yuv_difference.h, + yuv_dual.cpp, yuv_dual.h, yuv_emboss.cpp, yuv_emboss.h, + yuv_film.cpp, yuv_film.h, yuv_filmDarwin.cpp, yuv_filmDarwin.h, + yuv_gain.cpp, yuv_gain.h, yuv_invert.cpp, yuv_invert.h, + yuv_luma_key.cpp, yuv_luma_key.h, yuv_movie.cpp, yuv_movie.h, + yuv_mult.cpp, yuv_mult.h, yuv_pixel_data.cpp, yuv_pixel_data.h, + yuv_pixel_isolate.cpp, yuv_pixel_isolate.h, + yuv_pixel_replace.cpp, yuv_pixel_replace.h, yuv_posterize.cpp, + yuv_posterize.h, yuv_set.cpp, yuv_set.h, yuv_subtract.cpp, + yuv_subtract.h: added MACOSX support; initial YUV support + +2002-11-27 02:16 tigital + + * src/yuv/yuv_add.h: added MACOSX support; initial YUV support + +2002-11-27 02:10 tigital + + * src/yuv/yuv_add.cpp: added MACOSX support; initial YUV support + +2002-11-27 02:00 tigital + + * src/TV/: tv_biquad.cpp, tv_movement.cpp: removed unused variables + +2002-11-27 01:57 tigital + + * src/Pixes/: pix_test.h, pix_texture.cpp, pix_texture.h, + pix_texture2.cpp, pix_texture2.h, pix_video.cpp, pix_threshold.h, + pix_threshold.cpp: added MACOSX support; initial YUV support + +2002-11-27 01:03 tigital + + * src/Pixes/: pix_sig2pix.cpp, pix_subtract.cpp, pix_subtract.h, + pix_takealpha.cpp, pix_takealpha.h, pix_test.cpp: added MACOSX + support; initial YUV support + +2002-11-27 01:00 tigital + + * src/Pixes/: pix_rgba.cpp, pix_rgba.h, pix_set.h: added MACOSX + support; initial YUV support + +2002-11-27 00:55 tigital + + * src/Pixes/: pix_normalize.cpp, pix_normalize.h, pix_offset.cpp, + pix_offset.h, pix_pix2sig.cpp, pix_pix2sig.h, pix_rectangle.cpp, + pix_rectangle.h, pix_resize.cpp, pix_rgb2hsv.h: added MACOSX + support; initial YUV support + +2002-11-27 00:51 tigital + + * src/Pixes/: pix_invert.h, pix_mask.cpp, pix_mask.h, + pix_movie.cpp, pix_movie.h, pix_multiimage.h, pix_multiply.cpp, + pix_multiply.h: added MACOSX support; initial YUV support + +2002-11-27 00:46 tigital + + * src/Pixes/: pix_gain.cpp, pix_gain.h, pix_histo.cpp, pix_histo.h, + pix_hsv2rgb.h, pix_imageInPlace.cpp, pix_invert.cpp: added MACOSX + support; initial YUV support + +2002-11-27 00:42 tigital + + * src/Pixes/: pix_write.cpp, pix_movieYUV.cpp, pix_movieYUV.h, + pix_flip.cpp, pix_flip.h, pix_fx.cpp, pix_fx.h: added MACOSX + support; initial YUV support + +2002-11-27 00:39 tigital + + * src/Pixes/: pix_filmYUV.h, pix_videoDarwin.h, + pix_videoDarwin.cpp: added MACOSX support; initial YUV support + +2002-11-27 00:36 tigital + + * src/Pixes/: pix_dump.h, pix_film.cpp, pix_film.h, + pix_filmDarwin.cpp, pix_filmDarwin.h, pix_filmDarwinYUV.cpp, + pix_filmDarwinYUV.h, pix_filmYUV.cpp: added MACOSX support; + initial YUV support + +2002-11-27 00:33 tigital + + * src/Pixes/: pix_data.cpp, pix_data.h, pix_diff.cpp, pix_diff.h, + pix_dot.cpp, pix_dot.h, pix_dump.cpp: added MACOSX support; + initial YUV support + +2002-11-27 00:29 tigital + + * src/Pixes/: pix_composite.h, pix_convolve.cpp, pix_convolve.h, + pix_curve.cpp, pix_curve.h: added MACOSX support; initial YUV + support + +2002-11-27 00:23 tigital + + * src/Pixes/: pix_clearblock.h, pix_color.cpp, pix_color.h, + pix_coloralpha.cpp, pix_coloralpha.h, pix_colormatrix.cpp, + pix_colormatrix.h, pix_composite.cpp: added MACOSX support; + initial YUV support + +2002-11-27 00:19 tigital + + * src/Pixes/: pix_add.h, pix_aging.cpp, pix_aging.h, pix_alpha.cpp, + pix_alpha.h, pix_bitmask.cpp, pix_bitmask.h, pix_blob.cpp, + pix_blob.h: added MACOSX support; initial YUV support + +2002-11-27 00:16 tigital + + * src/Pixes/: pix_2grey.cpp, pix_2grey.h, pix_a_2grey.cpp, + pix_a_2grey.h, pix_add.cpp: added MACOSX support; initial YUV + support + +2002-11-27 00:13 tigital + + * src/: Geos/teapot.cpp, Geos/teapot.h, Nongeos/world_light.h: + added MACOSX support + +2002-11-27 00:13 tigital + + * src/: Geos/square.cpp, MarkEx/abs.cpp: removed unused variable + +2002-11-27 00:10 tigital + + * src/Geos/: imageVert.cpp, imageVert.h: added MACOSX support; + initial YUV support + +2002-11-27 00:09 tigital + + * src/Base/GemBase.cpp: reordered variable to shut up gcc 3.1 + +2002-11-27 00:08 tigital + + * src/Base/GemSetup.cpp: added MACOSX & YUV support + +2002-11-27 00:07 tigital + + * src/Controls/gemkeyboard.cpp: added MACOSX support; cleaned up + unused variables + +2002-11-27 00:05 tigital + + * src/Base/GemWinCreateMac.cpp: added for MACOSX; initial YUV + support + +2002-11-27 00:04 tigital + + * src/Base/: GemMan.cpp, GemPixObj.cpp, GemState.cpp: added MACOSX; + initial YUV support + +2002-11-27 00:03 tigital + + * src/Base/GemFuncUtil.h: added MACOSX + +2002-11-26 20:57 tigital + + * src/Base/GemSetup.cpp: added MACOSX, YUV support via #ifdef's + +2002-11-25 16:28 tigital + + * src/Base/GemPixDualObj.cpp: standardized to processDualGray() & + processDualYUV() + +2002-11-25 16:22 tigital + + * src/Base/: GemPixDualObj.cpp, GemPixDualObj.h: standardized to + processDualGray() & processDualYUV() + +2002-11-25 16:00 tigital + + * src/Base/: GemMan.h, GemMan.cpp: added MACOSX support + +2002-11-25 15:58 tigital + + * src/Base/GemPixObj.cpp: added MACOSX support; processYUVImage() + +2002-11-25 07:02 tigital + + * src/Base/GemWinCreate.h: added MACOSX support + +2002-11-25 07:01 tigital + + * src/Base/GemWinCreateMac.cpp: initial contribution + +2002-11-24 18:49 tigital + + * src/Manips/ortho.cpp: added MACOSX support + +2002-11-24 02:47 tigital + + * src/Geos/imageVert.cpp: added MACOSX support + +2002-11-24 02:43 tigital + + * src/Geos/: newWave.h, newWave.cpp: initial commit + +2002-11-24 02:40 tigital + + * src/Geos/: model.h, model.cpp: add support for MACOSX + +2002-11-24 02:14 tigital + + * src/: Controls/gemhead.cpp, Controls/gemhead.h, Geos/cuboid.cpp: + add support for MACOSX + +2002-11-24 02:09 tigital + + * src/: Base/GemPixUtil.h, Base/GemPixUtil.cpp, + Controls/gemwin.cpp: added support for MACOSX + +2002-11-24 02:07 tigital + + * src/Base/: GemPixObj.h, GemPixObj.cpp: added support for MACOSX + and YUV processing + +2002-11-24 02:06 tigital + + * src/Base/GemPixImageLoad.cpp: added support for MACOSX + +2002-11-24 02:01 tigital + + * src/Base/: GemPixDualObj.cpp, GemPixDualObj.h: added support for + YUV processing + +2002-11-24 01:58 tigital + + * src/Base/sgiimage.cpp: add MACOSX specific changes + +2002-11-24 01:54 tigital + + * src/Base/: GemGluObj.h, GemGLUtil.h, GemGlutObj.cpp, + GemGlutObj.h: add MACOSX specific changes + +2002-11-24 01:51 tigital + + * src/Base/GemBase.h: add MACOSX specific changes + +2002-11-14 10:13 ggeiger + + * src/: Base/GemPixUtil.h, Base/GemSetup.cpp, Gnu/Makefile.in, + Gnu/Makefile.subdir, Gnu/configure, Gnu/configure.in, + Pixes/pix_filmFFMPEG.cpp, Pixes/pix_filmFFMPEG.h, + Pixes/pix_movie.cpp, Pixes/pix_movie.h: experimental ffmpeg movie + player + +2002-11-05 19:12 zmoelnig + + * doc/gem.todo.txt: [no log message] + +2002-11-05 16:32 zmoelnig + + * src/Gnu/: Makefile, Makefile.in: Makefiles should be distclean on + CVS ...? + +2002-11-04 18:12 zmoelnig + + * src/: Base/GemSetup.cpp, Geos/cuboid.cpp, Geos/cuboid.h, + Gnu/Makefile: added erich's [cuboid] object, so he doesn't have + to worry any more... + +2002-11-04 17:28 zmoelnig + + * examples/: 01.basic/01.redSquare.pd, 02.advanced/03.View_OSD.pd, + 02.advanced/09.SnapshotSave.pd, 02.advanced/14.RenderOrder.pd, + 02.advanced/15.GemWin.pd: don't remember: added some + example-patches i had forgotten before fixed the pix_subtract bug + (which nobody had reported yet) + +2002-11-04 17:22 zmoelnig + + * src/: Geos/circle.cpp, Geos/circle.h, Geos/colorSquare.cpp, + Geos/colorSquare.h, Geos/cube.cpp, Geos/cube.h, Geos/curve.cpp, + Geos/curve.h, Geos/polygon.cpp, Geos/polygon.h, Geos/primTri.cpp, + Geos/primTri.h, Geos/square.cpp, Geos/square.h, Geos/teapot.cpp, + Geos/teapot.h, Geos/triangle.cpp, Geos/triangle.h, Gnu/configure, + Gnu/configure.in, Gnu/makeauxlibs, Pixes/pix_add.cpp, + Pixes/pix_buf.cpp, Pixes/pix_composite.cpp, + Pixes/pix_convolve.cpp, Pixes/pix_convolve.h, Pixes/pix_dot.cpp, + Pixes/pix_dv.cpp, Pixes/pix_flip.cpp, Pixes/pix_image.cpp, + Pixes/pix_image.h, Pixes/pix_multiimage.cpp, + Pixes/pix_multiimage.h, Pixes/pix_puzzle.cpp, + Pixes/pix_resize.cpp, Pixes/pix_rgba.cpp, Pixes/pix_set.cpp, + Pixes/pix_sig2pix.cpp, Pixes/pix_snap.cpp, + Pixes/pix_subtract.cpp, Pixes/pix_test.cpp, + Pixes/pix_texture.cpp, Pixes/pix_texture.h, Pixes/pix_video.cpp, + Pixes/pix_videoLinux.cpp, Pixes/pix_videoNT.cpp, + Pixes/pix_videoSGI.cpp, Pixes/pix_write.cpp: oops, last checkin i + forgot some things.... ok: applied guenter's MMX changes to + pix_* + +2002-11-04 17:21 zmoelnig + + * src/Base/: GemGLUtil.cpp, GemGLUtil.h, GemGlutObj.cpp, + GemGlutObj.h, GemMan.cpp, GemMan.h, GemPixDualObj.cpp, + GemPixImageLoad.cpp, GemPixObj.cpp, GemPixObj.h, GemPixUtil.cpp, + GemPixUtil.h, GemSetup.cpp, GemShape.cpp, GemShape.h, + GemState.cpp, GemState.h, GemVersion.h, config.h, config.h.in: + applied guenter's MMX changes to some pix things (?) + +2002-10-28 16:24 zmoelnig + + * GEM.README, doc/gem.known_bugs.txt, + examples/01.basic/01.redSquare.pd, + examples/01.basic/02.blueRectangle.pd, + examples/01.basic/03.disk.pd, examples/01.basic/04.PrimTri.pd, + examples/01.basic/05.cube.pd, examples/01.basic/06.sphere.pd, + examples/01.basic/07.cylinder.pd, examples/01.basic/08.model.pd, + examples/01.basic/09.yelloTeapot.pd, + examples/02.advanced/01.Separator.pd, + examples/02.advanced/02.Ortho.pd, + examples/02.advanced/03.View.pd, examples/02.advanced/04.Fog.pd, + examples/02.advanced/05.Stereo.pd, + examples/02.advanced/06.StereoParticle.pd, + examples/02.advanced/07.Snapshot1.pd, + examples/02.advanced/08.Snapshot2.pd, + examples/02.advanced/10.LinearPath.pd, + examples/02.advanced/11.SplinePath.pd, + examples/02.advanced/12.Hsv.pd, + examples/02.advanced/13.ModelRescale.pd, + examples/03.lighting/01.world_light.pd, + examples/03.lighting/02.light.pd, + examples/03.lighting/03.controlLights.pd, + examples/03.lighting/04.moveSpheres.pd, + examples/03.lighting/05.materials.pd, + examples/04.pix/01.image.pd, examples/04.pix/02.multiimage.pd, + examples/04.pix/04.ImageInPlace.pd, examples/04.pix/05.film.pd, + examples/04.pix/05.movie.pd, examples/04.pix/06.PixRect.pd, + examples/04.pix/10.PixDataSimple.pd, + examples/04.pix/11.PixDataComplex.pd, + examples/04.pix/12.composite.pd, + examples/04.pix/12.pix_multiply.pd, + examples/04.pix/13.maskDancer.pd, + examples/04.pix/15.pix_alpha.pd, examples/04.pix/16.alphaGrey.pd, + examples/04.pix/17.pix_gain.pd, + examples/04.pix/19.colorMatrix.pd, + examples/04.pix/20.convolve.pd, + examples/04.video/01.VideoPaint.pd, + examples/04.video/02.VideoSphere.pd, examples/05.text/01.Text.pd, + examples/05.text/03.ChangeText.pd, + examples/06.particle/01.simple.pd, + examples/06.particle/02.fountain.pd, + examples/06.particle/03.orbit.pd, + examples/06.particle/04.combo.pd, + examples/06.particle/05.twoSrc.pd, + examples/06.particle/06.target.pd, + examples/07.texture/01.texture.pd, + examples/07.texture/02.TexCoord.pd, + examples/07.texture/04.moveImages.pd, examples/08.io/01.Mouse.pd, + examples/08.io/02.Tablet.pd, examples/08.io/03.Orb.pd, + examples/08.io/04.UseOrb.pd, examples/99.games/puzzle.pd, + src/gem.dsp, src/Base/GemBase.cpp, src/Base/GemBase.h, + src/Base/GemCache.cpp, src/Base/GemCache.h, src/Base/GemMan.cpp, + src/Base/GemMan.h, src/Base/GemPixDualObj.cpp, + src/Base/GemPixDualObj.h, src/Base/GemPixImageLoad.cpp, + src/Base/GemPixImageSave.cpp, src/Base/GemSetup.cpp, + src/Controls/gemhead.cpp, src/Controls/gemhead.h, + src/Controls/gemwin.cpp, src/Controls/gemwin.h, + src/Geos/model.cpp, src/Gnu/README.build, src/Gnu/WHATSNEW, + src/Pixes/pix_film.cpp, src/Pixes/pix_filmNT.cpp, + src/Pixes/pix_image.cpp, src/Pixes/pix_imageInPlace.cpp, + src/Pixes/pix_video.cpp, src/Pixes/pix_video.h, + src/Pixes/pix_videoLinux.cpp, src/Pixes/pix_videoLinux.h, + src/Pixes/pix_videoNT.cpp: - edited some example-patches (very + minor changes) - rewrote the render-chain mechanism: now the + render-chain is not built statically when the rendering is + started but dynamically (each gem.object is "banged" (with some + gem_state pointers) at run-time gosh: why do we have a + message-system in pd, if it is not used ? - the priority of the + [gemhead]s can now be changed dynamically + +2002-10-21 11:29 zmoelnig + + * src/Base/: GemBase.cpp, GemBase.h, GemDag.cpp, GemDag.h, + GemPixDualObj.cpp, GemPixDualObj.h: applied Daniel Heckenberg's + patch for DualPix-Objects + +2002-10-21 10:35 zmoelnig + + * src/Gnu/Makefile.in: fixed the install-things + +2002-10-21 09:45 zmoelnig + + * GEM.LICENSE.TERMS, GEM.README, GEM_INSTALL.bat, GEM_INSTALL.sh, + GEM_RELUNIX.sh, GnuGPL.LICENSE, doc/cMatrix.html, + doc/gem.known_bugs.txt, doc/gem.todo.txt, + doc/gem.release_notes.txt, src/gem.dsp, src/gem.dsw, + src/Base/CPPExtern.cpp, src/Base/CPPExtern.h, + src/Base/GemBase.cpp, src/Base/GemBase.h, src/Base/GemCache.cpp, + src/Base/GemCache.h, src/Base/GemDag.cpp, src/Base/GemDag.h, + src/Base/GemEvent.cpp, src/Base/GemEvent.h, + src/Base/GemExportDef.h, src/Base/GemFuncUtil.cpp, + src/Base/GemFuncUtil.h, src/Base/GemGluObj.cpp, + src/Base/GemGluObj.h, src/Base/GemGlutObj.cpp, + src/Base/GemGlutObj.h, src/Base/GemLoadObj.cpp, + src/Base/GemLoadObj.h, src/Base/GemMan.cpp, src/Base/GemMan.h, + src/Base/GemModelData.cpp, src/Base/GemModelData.h, + src/Base/GemPathBase.cpp, src/Base/GemPathBase.h, + src/Base/GemPixDualObj.cpp, src/Base/GemPixDualObj.h, + src/Base/GemPixImageLoad.cpp, src/Base/GemPixImageLoad.h, + src/Base/GemPixImageSave.cpp, src/Base/GemPixImageSave.h, + src/Base/GemPixObj.cpp, src/Base/GemPixObj.h, + src/Base/GemPixUtil.cpp, src/Base/GemPixUtil.h, + src/Base/GemSetup.cpp, src/Base/GemShape.cpp, + src/Base/GemShape.h, src/Base/GemState.cpp, src/Base/GemState.h, + src/Base/GemVersion.h, src/Base/GemWinCreate.h, + src/Base/GemWinCreateNT.cpp, src/Base/GemWinCreateXWin.cpp, + src/Base/Make.depend, src/Base/Matrix.cpp, src/Base/Matrix.h, + src/Base/TextBase.cpp, src/Base/TextBase.h, src/Base/config.h, + src/Base/config.h.in, src/Base/sgiimage.cpp, src/Base/sgiimage.h, + src/Controls/Make.depend, src/Controls/gemhead.cpp, + src/Controls/gemhead.h, src/Controls/gemkeyboard.cpp, + src/Controls/gemkeyboard.h, src/Controls/gemkeyname.cpp, + src/Controls/gemkeyname.h, src/Controls/gemmouse.cpp, + src/Controls/gemmouse.h, src/Controls/gemorb.cpp, + src/Controls/gemorb.h, src/Controls/gemtablet.cpp, + src/Controls/gemtablet.h, src/Controls/gemwin.cpp, + src/Controls/gemwin.h, src/Controls/render_trigger.cpp, + src/Controls/render_trigger.h, src/Geos/Make.depend, + src/Geos/TexFont.h, src/Geos/circle.cpp, src/Geos/circle.h, + src/Geos/colorSquare.cpp, src/Geos/colorSquare.h, + src/Geos/cone.cpp, src/Geos/cone.h, src/Geos/cube.cpp, + src/Geos/cube.h, src/Geos/curve.cpp, src/Geos/curve.h, + src/Geos/cylinder.cpp, src/Geos/cylinder.h, src/Geos/disk.cpp, + src/Geos/disk.h, src/Geos/imageVert.cpp, src/Geos/imageVert.h, + src/Geos/model.cpp, src/Geos/model.cpp_, src/Geos/model.h, + src/Geos/multimodel.cpp, src/Geos/multimodel.h, + src/Geos/polygon.cpp, src/Geos/polygon.h, src/Geos/primTri.cpp, + src/Geos/primTri.h, src/Geos/rectangle.cpp, src/Geos/rectangle.h, + src/Geos/sphere.cpp, src/Geos/sphere.h, src/Geos/square.cpp, + src/Geos/square.h, src/Geos/teapot.cpp, src/Geos/teapot.h, + src/Geos/text2d.cpp, src/Geos/text2d.h, src/Geos/text3d.cpp, + src/Geos/text3d.h, src/Geos/textoutline.cpp, + src/Geos/textoutline.h, src/Geos/triangle.cpp, + src/Geos/triangle.h, src/Gnu/Makefile, src/Gnu/Makefile.clean, + src/Gnu/Makefile.in, src/Gnu/Makefile.subdir, + src/Gnu/README.build, src/Gnu/WHATSNEW, src/Gnu/acinclude.m4, + src/Gnu/aclocal.m4, src/Gnu/config.guess, src/Gnu/config.sub, + src/Gnu/configure, src/Gnu/configure.in, src/Gnu/install-sh, + src/Gnu/makeauxlibs, src/Gnu/makesource, src/Gnu/missing, + src/Gnu/mkinstalldirs, src/Manips/Make.depend, + src/Manips/accumrotate.cpp, src/Manips/accumrotate.h, + src/Manips/alpha.cpp, src/Manips/alpha.h, src/Manips/ambient.cpp, + src/Manips/ambient.h, src/Manips/ambientRGB.cpp, + src/Manips/ambientRGB.h, src/Manips/color.cpp, + src/Manips/color.h, src/Manips/colorRGB.cpp, + src/Manips/colorRGB.h, src/Manips/depth.cpp, src/Manips/depth.h, + src/Manips/diffuse.cpp, src/Manips/diffuse.h, + src/Manips/diffuseRGB.cpp, src/Manips/diffuseRGB.h, + src/Manips/emission.cpp, src/Manips/emission.h, + src/Manips/emissionRGB.cpp, src/Manips/emissionRGB.h, + src/Manips/linear_path.cpp, src/Manips/linear_path.h, + src/Manips/ortho.cpp, src/Manips/ortho.h, src/Manips/rotate.cpp, + src/Manips/rotate.h, src/Manips/rotateXYZ.cpp, + src/Manips/rotateXYZ.h, src/Manips/scale.cpp, src/Manips/scale.h, + src/Manips/scaleXYZ.cpp, src/Manips/scaleXYZ.h, + src/Manips/separator.cpp, src/Manips/separator.h, + src/Manips/shininess.cpp, src/Manips/shininess.h, + src/Manips/specular.cpp, src/Manips/specular.h, + src/Manips/specularRGB.cpp, src/Manips/specularRGB.h, + src/Manips/spline_path.cpp, src/Manips/spline_path.h, + src/Manips/translate.cpp, src/Manips/translate.h, + src/Manips/translateXYZ.cpp, src/Manips/translateXYZ.h, + src/MarkEx/Make.depend, src/MarkEx/MarkExSetup.cpp, + src/MarkEx/abs.cpp, src/MarkEx/average.cpp, + src/MarkEx/counter.cpp, src/MarkEx/hsvrgb.cpp, + src/MarkEx/m_control.cpp, src/MarkEx/multiselect.cpp, + src/MarkEx/randomF.cpp, src/MarkEx/reson.cpp, + src/MarkEx/strcat.cpp, src/MarkEx/tripleLine.cpp, + src/MarkEx/vector.cpp, src/Nongeos/Make.depend, + src/Nongeos/light.cpp, src/Nongeos/light.h, + src/Nongeos/world_light.cpp, src/Nongeos/world_light.h, + src/Particles/Make.depend, src/Particles/part_color.cpp, + src/Particles/part_color.h, src/Particles/part_damp.cpp, + src/Particles/part_damp.h, src/Particles/part_draw.cpp, + src/Particles/part_draw.h, src/Particles/part_follow.cpp, + src/Particles/part_follow.h, src/Particles/part_gravity.cpp, + src/Particles/part_gravity.h, src/Particles/part_head.cpp, + src/Particles/part_head.h, src/Particles/part_killold.cpp, + src/Particles/part_killold.h, src/Particles/part_killslow.cpp, + src/Particles/part_killslow.h, src/Particles/part_orbitpoint.cpp, + src/Particles/part_orbitpoint.h, src/Particles/part_size.cpp, + src/Particles/part_size.h, src/Particles/part_source.cpp, + src/Particles/part_source.h, src/Particles/part_targetcolor.cpp, + src/Particles/part_targetcolor.h, + src/Particles/part_targetsize.cpp, + src/Particles/part_targetsize.h, src/Particles/part_velcone.cpp, + src/Particles/part_velcone.h, src/Particles/part_velsphere.cpp, + src/Particles/part_velsphere.h, src/Pixes/Make.depend, + src/Pixes/pix_2grey.cpp, src/Pixes/pix_2grey.h, + src/Pixes/pix_a_2grey.cpp, src/Pixes/pix_a_2grey.h, + src/Pixes/pix_add.cpp, src/Pixes/pix_add.h, + src/Pixes/pix_aging.cpp, src/Pixes/pix_aging.h, + src/Pixes/pix_alpha.cpp, src/Pixes/pix_alpha.h, + src/Pixes/pix_bitmask.cpp, src/Pixes/pix_bitmask.h, + src/Pixes/pix_blob.cpp, src/Pixes/pix_blob.h, + src/Pixes/pix_buf.cpp, src/Pixes/pix_buf.h, + src/Pixes/pix_clearblock.cpp, src/Pixes/pix_clearblock.h, + src/Pixes/pix_color.cpp, src/Pixes/pix_color.h, + src/Pixes/pix_coloralpha.cpp, src/Pixes/pix_coloralpha.h, + src/Pixes/pix_colormatrix.cpp, src/Pixes/pix_colormatrix.h, + src/Pixes/pix_composite.cpp, src/Pixes/pix_composite.h, + src/Pixes/pix_convolve.cpp, src/Pixes/pix_convolve.h, + src/Pixes/pix_coordinate.cpp, src/Pixes/pix_coordinate.h, + src/Pixes/pix_curve.cpp, src/Pixes/pix_curve.h, + src/Pixes/pix_data.cpp, src/Pixes/pix_data.h, + src/Pixes/pix_diff.cpp, src/Pixes/pix_diff.h, + src/Pixes/pix_dot.cpp, src/Pixes/pix_dot.h, + src/Pixes/pix_draw.cpp, src/Pixes/pix_draw.h, + src/Pixes/pix_dump.cpp, src/Pixes/pix_dump.h, + src/Pixes/pix_dv.cpp, src/Pixes/pix_dv.h, + src/Pixes/pix_dvLinux.cpp, src/Pixes/pix_dvLinux.h, + src/Pixes/pix_film.cpp, src/Pixes/pix_film.h, + src/Pixes/pix_filmLinux.cpp, src/Pixes/pix_filmLinux.h, + src/Pixes/pix_filmNT.cpp, src/Pixes/pix_filmNT.h, + src/Pixes/pix_flip.cpp, src/Pixes/pix_flip.h, + src/Pixes/pix_fx.cpp, src/Pixes/pix_fx.h, src/Pixes/pix_gain.cpp, + src/Pixes/pix_gain.h, src/Pixes/pix_histo.cpp, + src/Pixes/pix_histo.h, src/Pixes/pix_hsv2rgb.cpp, + src/Pixes/pix_hsv2rgb.h, src/Pixes/pix_image.cpp, + src/Pixes/pix_image.h, src/Pixes/pix_imageInPlace.cpp, + src/Pixes/pix_imageInPlace.h, src/Pixes/pix_indycam.cpp, + src/Pixes/pix_indycam.h, src/Pixes/pix_invert.cpp, + src/Pixes/pix_invert.h, src/Pixes/pix_mask.cpp, + src/Pixes/pix_mask.h, src/Pixes/pix_movie.cpp, + src/Pixes/pix_movie.h, src/Pixes/pix_multiimage.cpp, + src/Pixes/pix_multiimage.h, src/Pixes/pix_multiply.cpp, + src/Pixes/pix_multiply.h, src/Pixes/pix_normalize.cpp, + src/Pixes/pix_normalize.h, src/Pixes/pix_offset.cpp, + src/Pixes/pix_offset.h, src/Pixes/pix_pix2sig.cpp, + src/Pixes/pix_pix2sig.h, src/Pixes/pix_puzzle.cpp, + src/Pixes/pix_puzzle.h, src/Pixes/pix_rectangle.cpp, + src/Pixes/pix_rectangle.h, src/Pixes/pix_resize.cpp, + src/Pixes/pix_resize.h, src/Pixes/pix_rgb2hsv.cpp, + src/Pixes/pix_rgb2hsv.h, src/Pixes/pix_rgba.cpp, + src/Pixes/pix_rgba.h, src/Pixes/pix_set.cpp, src/Pixes/pix_set.h, + src/Pixes/pix_sig2pix.cpp, src/Pixes/pix_sig2pix.h, + src/Pixes/pix_snap.cpp, src/Pixes/pix_snap.h, + src/Pixes/pix_subtract.cpp, src/Pixes/pix_subtract.h, + src/Pixes/pix_takealpha.cpp, src/Pixes/pix_takealpha.h, + src/Pixes/pix_test.cpp, src/Pixes/pix_test.h, + src/Pixes/pix_texture.cpp, src/Pixes/pix_texture.h, + src/Pixes/pix_texture2.cpp, src/Pixes/pix_texture2.h, + src/Pixes/pix_threshold.cpp, src/Pixes/pix_threshold.h, + src/Pixes/pix_video.cpp, src/Pixes/pix_video.h, + src/Pixes/pix_videoLinux.cpp, src/Pixes/pix_videoLinux.h, + src/Pixes/pix_videoNT.cpp, src/Pixes/pix_videoNT.h, + src/Pixes/pix_videoSGI.cpp, src/Pixes/pix_videoSGI.h, + src/Pixes/pix_write.cpp, src/Pixes/pix_write.h, + src/Pixes/pix_zoom.cpp, src/Pixes/pix_zoom.h, src/TV/Make.depend, + src/TV/tv_biquad.h, help/accumrotate.pd, help/alpha.pd, + help/alternate.pd, help/ambient.pd, help/ambientRGB.pd, + help/average.pd, help/change.pd, help/circle.pd, help/color.pd, + help/colorRGB.pd, help/colorSquare.pd, help/cone.pd, + help/counter.pd, help/cube.pd, help/curve.pd, help/cylinder.pd, + help/depth.pd, help/diffuse.pd, help/diffuseRGB.pd, help/disk.pd, + help/emission.pd, help/emissionRGB.pd, help/gemhead.pd, + help/gemkeyboard.pd, help/gemkeyname.pd, help/gemmouse.pd, + help/gemorb.pd, help/gemtablet.pd, help/gemwin.pd, + help/hsv2rgb.pd, help/imageVert.pd, help/invert.pd, + help/light.pd, help/linear_path.pd, help/model.pd, + help/multimodel.pd, help/oneshot.pd, help/ortho.pd, + help/part_color.pd, help/part_damp.pd, help/part_draw.pd, + help/part_follow.pd, help/part_gravity.pd, help/part_head.pd, + help/part_killold.pd, help/part_killslow.pd, + help/part_orbitpoint.pd, help/part_size.pd, help/part_source.pd, + help/part_targetcolor.pd, help/part_targetsize.pd, + help/part_velcone.pd, help/part_velsphere.pd, help/pix_2grey.pd, + help/pix_a_2grey.pd, help/pix_add.pd, help/pix_aging.pd, + help/pix_alpha.pd, help/pix_bitmask.pd, help/pix_blob.pd, + help/pix_buf.pd, help/pix_clearblock.pd, help/pix_coloralpha.pd, + help/pix_colormatrix.pd, help/pix_composite.pd, + help/pix_convolve.pd, help/pix_coordinate.pd, help/pix_curve.pd, + help/pix_data.pd, help/pix_diff.pd, help/pix_draw.pd, + help/pix_dump.pd, help/pix_film.pd, help/pix_flip.pd, + help/pix_gain.pd, help/pix_histo.pd, help/pix_hsv2rgb.pd, + help/pix_image.pd, help/pix_imageInPlace.pd, help/pix_indycam.pd, + help/pix_invert.pd, help/pix_mask.pd, help/pix_movie.pd, + help/pix_multiimage.pd, help/pix_multiply.pd, + help/pix_normalize.pd, help/pix_offset.pd, help/pix_pix2sig~.pd, + help/pix_puzzle.pd, help/pix_rectangle.pd, help/pix_resize.pd, + help/pix_rgb2hsv.pd, help/pix_rgba.pd, help/pix_set.pd, + help/pix_sig2pix~.pd, help/pix_snap.pd, help/pix_subtract.pd, + help/pix_takealpha.pd, help/pix_texture.pd, help/pix_texture2.pd, + help/pix_threshold.pd, help/pix_video.pd, help/pix_write.pd, + help/pix_zoom.pd, help/polygon.pd, help/primTri.pd, + help/randF.pd, help/randomF.pd, help/rectangle.pd, + help/render_trigger.pd, help/rgb2hsv.pd, help/rotate.pd, + help/rotateXYZ.pd, help/scale.pd, help/scaleXYZ.pd, + help/separator.pd, help/shininess.pd, help/specular.pd, + help/specularRGB.pd, help/sphere.pd, help/spline_path.pd, + help/square.pd, help/teapot.pd, help/text2d.pd, help/text3d.pd, + help/textoutline.pd, help/translate.pd, help/translateXYZ.pd, + help/triangle.pd, help/tripleLine.pd, help/tripleRand.pd, + help/tv_biquad.pd, help/tv_movement.pd, help/tv_rtx.pd, + help/v+.pd, help/v-.pd, help/vector+.pd, help/vector-.pd, + help/world_light.pd, manual/Advanced.html, manual/BasicObj.html, + manual/GemFaq.html, manual/GemWPd.html, manual/Gloss.html, + manual/Images.html, manual/Input.html, manual/Intro.html, + manual/Lighting.html, manual/ListObjects.html, + manual/Particles.html, manual/Pixes.html, manual/Texture.html, + manual/Utility.html, manual/WriteCode.html, manual/add.jpg, + manual/addResult.jpg, manual/gemwin.jpg, manual/index.html, + manual/invert.jpg, manual/invertFrac.jpg, manual/light.jpg, + manual/maskResult.jpg, manual/pixImage.jpg, manual/redSquare.jpg, + manual/sphere15.jpg, manual/sphere5.jpg, manual/transXYZ.jpg, + manual/tribar.gif, manual/tripleLine.jpg, manual/tripleRand.jpg, + src/TV/tv_biquad.cpp, src/TV/tv_movement.cpp, + src/TV/tv_movement.h, src/TV/tv_rtx.cpp, src/TV/tv_rtx.h, + src/TV/tv_test.cpp, src/TV/tv_test.h, examples/08.io/01.Mouse.pd, + examples/08.io/02.Tablet.pd, examples/08.io/03.Orb.pd, + examples/08.io/04.UseOrb.pd, examples/data/alea.mpg, + examples/data/valmotion.tab, manual/basicCube.jpg, + manual/counter.jpg, manual/mask.jpg, manual/normalFrac.jpg, + manual/texture.jpg, manual/world_light.jpg, + examples/data/cour.ttf, examples/data/dancer.JPG, + examples/data/times.ttf, examples/data/valcolor.tab, + examples/data/venus.mtl, examples/data/homer.avi, + examples/data/temp2.JPG, examples/data/arial.ttf, + examples/data/fractal.JPG, examples/data/fractalAlpha.TIF, + examples/data/temp0.JPG, examples/data/temp1.JPG, + examples/01.basic/01.redSquare.pd, + examples/01.basic/02.blueRectangle.pd, + examples/01.basic/03.disk.pd, examples/01.basic/04.PrimTri.pd, + examples/01.basic/05.cube.pd, examples/01.basic/06.sphere.pd, + examples/01.basic/07.cylinder.pd, examples/01.basic/08.model.pd, + examples/01.basic/09.yelloTeapot.pd, + examples/02.advanced/01.Separator.pd, + examples/02.advanced/02.Ortho.pd, + examples/02.advanced/03.View.pd, examples/02.advanced/04.Fog.pd, + examples/02.advanced/05.Stereo.pd, + examples/02.advanced/06.StereoParticle.pd, + examples/02.advanced/07.Snapshot1.pd, + examples/02.advanced/08.Snapshot2.pd, + examples/02.advanced/10.LinearPath.pd, + examples/02.advanced/11.SplinePath.pd, + examples/02.advanced/12.Hsv.pd, + examples/02.advanced/13.ModelRescale.pd, + examples/03.lighting/01.world_light.pd, + examples/03.lighting/02.light.pd, + examples/03.lighting/03.controlLights.pd, + examples/03.lighting/04.moveSpheres.pd, + examples/03.lighting/05.materials.pd, + examples/04.pix/01.image.pd, examples/04.pix/02.multiimage.pd, + examples/04.pix/04.ImageInPlace.pd, examples/04.pix/05.film.pd, + examples/04.pix/05.movie.pd, examples/04.pix/06.PixRect.pd, + examples/04.pix/10.PixDataSimple.pd, + examples/04.pix/11.PixDataComplex.pd, + examples/04.pix/12.composite.pd, + examples/04.pix/12.pix_multiply.pd, + examples/04.pix/13.maskDancer.pd, + examples/04.pix/15.pix_alpha.pd, examples/04.pix/16.alphaGrey.pd, + examples/04.pix/17.pix_gain.pd, + examples/04.pix/19.colorMatrix.pd, + examples/04.pix/20.convolve.pd, + examples/04.video/01.VideoPaint.pd, + examples/04.video/02.VideoSphere.pd, + examples/05.text/03.ChangeText.pd, + examples/06.particle/01.simple.pd, + examples/06.particle/02.fountain.pd, + examples/06.particle/03.orbit.pd, + examples/06.particle/04.combo.pd, + examples/06.particle/05.twoSrc.pd, + examples/06.particle/06.target.pd, + examples/07.texture/01.texture.pd, + examples/07.texture/02.TexCoord.pd, + examples/07.texture/04.moveImages.pd, + examples/99.games/puzzle.pd, examples/data/anim-1.mov, + examples/05.text/01.Text.pd, examples/05.text/arial.ttf: Initial + revision + +2002-10-21 09:45 zmoelnig + + * GEM.LICENSE.TERMS, GEM.README, GEM_INSTALL.bat, GEM_INSTALL.sh, + GEM_RELUNIX.sh, GnuGPL.LICENSE, doc/cMatrix.html, + doc/gem.known_bugs.txt, doc/gem.todo.txt, + doc/gem.release_notes.txt, src/gem.dsp, src/gem.dsw, + src/Base/CPPExtern.cpp, src/Base/CPPExtern.h, + src/Base/GemBase.cpp, src/Base/GemBase.h, src/Base/GemCache.cpp, + src/Base/GemCache.h, src/Base/GemDag.cpp, src/Base/GemDag.h, + src/Base/GemEvent.cpp, src/Base/GemEvent.h, + src/Base/GemExportDef.h, src/Base/GemFuncUtil.cpp, + src/Base/GemFuncUtil.h, src/Base/GemGluObj.cpp, + src/Base/GemGluObj.h, src/Base/GemGlutObj.cpp, + src/Base/GemGlutObj.h, src/Base/GemLoadObj.cpp, + src/Base/GemLoadObj.h, src/Base/GemMan.cpp, src/Base/GemMan.h, + src/Base/GemModelData.cpp, src/Base/GemModelData.h, + src/Base/GemPathBase.cpp, src/Base/GemPathBase.h, + src/Base/GemPixDualObj.cpp, src/Base/GemPixDualObj.h, + src/Base/GemPixImageLoad.cpp, src/Base/GemPixImageLoad.h, + src/Base/GemPixImageSave.cpp, src/Base/GemPixImageSave.h, + src/Base/GemPixObj.cpp, src/Base/GemPixObj.h, + src/Base/GemPixUtil.cpp, src/Base/GemPixUtil.h, + src/Base/GemSetup.cpp, src/Base/GemShape.cpp, + src/Base/GemShape.h, src/Base/GemState.cpp, src/Base/GemState.h, + src/Base/GemVersion.h, src/Base/GemWinCreate.h, + src/Base/GemWinCreateNT.cpp, src/Base/GemWinCreateXWin.cpp, + src/Base/Make.depend, src/Base/Matrix.cpp, src/Base/Matrix.h, + src/Base/TextBase.cpp, src/Base/TextBase.h, src/Base/config.h, + src/Base/config.h.in, src/Base/sgiimage.cpp, src/Base/sgiimage.h, + src/Controls/Make.depend, src/Controls/gemhead.cpp, + src/Controls/gemhead.h, src/Controls/gemkeyboard.cpp, + src/Controls/gemkeyboard.h, src/Controls/gemkeyname.cpp, + src/Controls/gemkeyname.h, src/Controls/gemmouse.cpp, + src/Controls/gemmouse.h, src/Controls/gemorb.cpp, + src/Controls/gemorb.h, src/Controls/gemtablet.cpp, + src/Controls/gemtablet.h, src/Controls/gemwin.cpp, + src/Controls/gemwin.h, src/Controls/render_trigger.cpp, + src/Controls/render_trigger.h, src/Geos/Make.depend, + src/Geos/TexFont.h, src/Geos/circle.cpp, src/Geos/circle.h, + src/Geos/colorSquare.cpp, src/Geos/colorSquare.h, + src/Geos/cone.cpp, src/Geos/cone.h, src/Geos/cube.cpp, + src/Geos/cube.h, src/Geos/curve.cpp, src/Geos/curve.h, + src/Geos/cylinder.cpp, src/Geos/cylinder.h, src/Geos/disk.cpp, + src/Geos/disk.h, src/Geos/imageVert.cpp, src/Geos/imageVert.h, + src/Geos/model.cpp, src/Geos/model.cpp_, src/Geos/model.h, + src/Geos/multimodel.cpp, src/Geos/multimodel.h, + src/Geos/polygon.cpp, src/Geos/polygon.h, src/Geos/primTri.cpp, + src/Geos/primTri.h, src/Geos/rectangle.cpp, src/Geos/rectangle.h, + src/Geos/sphere.cpp, src/Geos/sphere.h, src/Geos/square.cpp, + src/Geos/square.h, src/Geos/teapot.cpp, src/Geos/teapot.h, + src/Geos/text2d.cpp, src/Geos/text2d.h, src/Geos/text3d.cpp, + src/Geos/text3d.h, src/Geos/textoutline.cpp, + src/Geos/textoutline.h, src/Geos/triangle.cpp, + src/Geos/triangle.h, src/Gnu/Makefile, src/Gnu/Makefile.clean, + src/Gnu/Makefile.in, src/Gnu/Makefile.subdir, + src/Gnu/README.build, src/Gnu/WHATSNEW, src/Gnu/acinclude.m4, + src/Gnu/aclocal.m4, src/Gnu/config.guess, src/Gnu/config.sub, + src/Gnu/configure, src/Gnu/configure.in, src/Gnu/install-sh, + src/Gnu/makeauxlibs, src/Gnu/makesource, src/Gnu/missing, + src/Gnu/mkinstalldirs, src/Manips/Make.depend, + src/Manips/accumrotate.cpp, src/Manips/accumrotate.h, + src/Manips/alpha.cpp, src/Manips/alpha.h, src/Manips/ambient.cpp, + src/Manips/ambient.h, src/Manips/ambientRGB.cpp, + src/Manips/ambientRGB.h, src/Manips/color.cpp, + src/Manips/color.h, src/Manips/colorRGB.cpp, + src/Manips/colorRGB.h, src/Manips/depth.cpp, src/Manips/depth.h, + src/Manips/diffuse.cpp, src/Manips/diffuse.h, + src/Manips/diffuseRGB.cpp, src/Manips/diffuseRGB.h, + src/Manips/emission.cpp, src/Manips/emission.h, + src/Manips/emissionRGB.cpp, src/Manips/emissionRGB.h, + src/Manips/linear_path.cpp, src/Manips/linear_path.h, + src/Manips/ortho.cpp, src/Manips/ortho.h, src/Manips/rotate.cpp, + src/Manips/rotate.h, src/Manips/rotateXYZ.cpp, + src/Manips/rotateXYZ.h, src/Manips/scale.cpp, src/Manips/scale.h, + src/Manips/scaleXYZ.cpp, src/Manips/scaleXYZ.h, + src/Manips/separator.cpp, src/Manips/separator.h, + src/Manips/shininess.cpp, src/Manips/shininess.h, + src/Manips/specular.cpp, src/Manips/specular.h, + src/Manips/specularRGB.cpp, src/Manips/specularRGB.h, + src/Manips/spline_path.cpp, src/Manips/spline_path.h, + src/Manips/translate.cpp, src/Manips/translate.h, + src/Manips/translateXYZ.cpp, src/Manips/translateXYZ.h, + src/MarkEx/Make.depend, src/MarkEx/MarkExSetup.cpp, + src/MarkEx/abs.cpp, src/MarkEx/average.cpp, + src/MarkEx/counter.cpp, src/MarkEx/hsvrgb.cpp, + src/MarkEx/m_control.cpp, src/MarkEx/multiselect.cpp, + src/MarkEx/randomF.cpp, src/MarkEx/reson.cpp, + src/MarkEx/strcat.cpp, src/MarkEx/tripleLine.cpp, + src/MarkEx/vector.cpp, src/Nongeos/Make.depend, + src/Nongeos/light.cpp, src/Nongeos/light.h, + src/Nongeos/world_light.cpp, src/Nongeos/world_light.h, + src/Particles/Make.depend, src/Particles/part_color.cpp, + src/Particles/part_color.h, src/Particles/part_damp.cpp, + src/Particles/part_damp.h, src/Particles/part_draw.cpp, + src/Particles/part_draw.h, src/Particles/part_follow.cpp, + src/Particles/part_follow.h, src/Particles/part_gravity.cpp, + src/Particles/part_gravity.h, src/Particles/part_head.cpp, + src/Particles/part_head.h, src/Particles/part_killold.cpp, + src/Particles/part_killold.h, src/Particles/part_killslow.cpp, + src/Particles/part_killslow.h, src/Particles/part_orbitpoint.cpp, + src/Particles/part_orbitpoint.h, src/Particles/part_size.cpp, + src/Particles/part_size.h, src/Particles/part_source.cpp, + src/Particles/part_source.h, src/Particles/part_targetcolor.cpp, + src/Particles/part_targetcolor.h, + src/Particles/part_targetsize.cpp, + src/Particles/part_targetsize.h, src/Particles/part_velcone.cpp, + src/Particles/part_velcone.h, src/Particles/part_velsphere.cpp, + src/Particles/part_velsphere.h, src/Pixes/Make.depend, + src/Pixes/pix_2grey.cpp, src/Pixes/pix_2grey.h, + src/Pixes/pix_a_2grey.cpp, src/Pixes/pix_a_2grey.h, + src/Pixes/pix_add.cpp, src/Pixes/pix_add.h, + src/Pixes/pix_aging.cpp, src/Pixes/pix_aging.h, + src/Pixes/pix_alpha.cpp, src/Pixes/pix_alpha.h, + src/Pixes/pix_bitmask.cpp, src/Pixes/pix_bitmask.h, + src/Pixes/pix_blob.cpp, src/Pixes/pix_blob.h, + src/Pixes/pix_buf.cpp, src/Pixes/pix_buf.h, + src/Pixes/pix_clearblock.cpp, src/Pixes/pix_clearblock.h, + src/Pixes/pix_color.cpp, src/Pixes/pix_color.h, + src/Pixes/pix_coloralpha.cpp, src/Pixes/pix_coloralpha.h, + src/Pixes/pix_colormatrix.cpp, src/Pixes/pix_colormatrix.h, + src/Pixes/pix_composite.cpp, src/Pixes/pix_composite.h, + src/Pixes/pix_convolve.cpp, src/Pixes/pix_convolve.h, + src/Pixes/pix_coordinate.cpp, src/Pixes/pix_coordinate.h, + src/Pixes/pix_curve.cpp, src/Pixes/pix_curve.h, + src/Pixes/pix_data.cpp, src/Pixes/pix_data.h, + src/Pixes/pix_diff.cpp, src/Pixes/pix_diff.h, + src/Pixes/pix_dot.cpp, src/Pixes/pix_dot.h, + src/Pixes/pix_draw.cpp, src/Pixes/pix_draw.h, + src/Pixes/pix_dump.cpp, src/Pixes/pix_dump.h, + src/Pixes/pix_dv.cpp, src/Pixes/pix_dv.h, + src/Pixes/pix_dvLinux.cpp, src/Pixes/pix_dvLinux.h, + src/Pixes/pix_film.cpp, src/Pixes/pix_film.h, + src/Pixes/pix_filmLinux.cpp, src/Pixes/pix_filmLinux.h, + src/Pixes/pix_filmNT.cpp, src/Pixes/pix_filmNT.h, + src/Pixes/pix_flip.cpp, src/Pixes/pix_flip.h, + src/Pixes/pix_fx.cpp, src/Pixes/pix_fx.h, src/Pixes/pix_gain.cpp, + src/Pixes/pix_gain.h, src/Pixes/pix_histo.cpp, + src/Pixes/pix_histo.h, src/Pixes/pix_hsv2rgb.cpp, + src/Pixes/pix_hsv2rgb.h, src/Pixes/pix_image.cpp, + src/Pixes/pix_image.h, src/Pixes/pix_imageInPlace.cpp, + src/Pixes/pix_imageInPlace.h, src/Pixes/pix_indycam.cpp, + src/Pixes/pix_indycam.h, src/Pixes/pix_invert.cpp, + src/Pixes/pix_invert.h, src/Pixes/pix_mask.cpp, + src/Pixes/pix_mask.h, src/Pixes/pix_movie.cpp, + src/Pixes/pix_movie.h, src/Pixes/pix_multiimage.cpp, + src/Pixes/pix_multiimage.h, src/Pixes/pix_multiply.cpp, + src/Pixes/pix_multiply.h, src/Pixes/pix_normalize.cpp, + src/Pixes/pix_normalize.h, src/Pixes/pix_offset.cpp, + src/Pixes/pix_offset.h, src/Pixes/pix_pix2sig.cpp, + src/Pixes/pix_pix2sig.h, src/Pixes/pix_puzzle.cpp, + src/Pixes/pix_puzzle.h, src/Pixes/pix_rectangle.cpp, + src/Pixes/pix_rectangle.h, src/Pixes/pix_resize.cpp, + src/Pixes/pix_resize.h, src/Pixes/pix_rgb2hsv.cpp, + src/Pixes/pix_rgb2hsv.h, src/Pixes/pix_rgba.cpp, + src/Pixes/pix_rgba.h, src/Pixes/pix_set.cpp, src/Pixes/pix_set.h, + src/Pixes/pix_sig2pix.cpp, src/Pixes/pix_sig2pix.h, + src/Pixes/pix_snap.cpp, src/Pixes/pix_snap.h, + src/Pixes/pix_subtract.cpp, src/Pixes/pix_subtract.h, + src/Pixes/pix_takealpha.cpp, src/Pixes/pix_takealpha.h, + src/Pixes/pix_test.cpp, src/Pixes/pix_test.h, + src/Pixes/pix_texture.cpp, src/Pixes/pix_texture.h, + src/Pixes/pix_texture2.cpp, src/Pixes/pix_texture2.h, + src/Pixes/pix_threshold.cpp, src/Pixes/pix_threshold.h, + src/Pixes/pix_video.cpp, src/Pixes/pix_video.h, + src/Pixes/pix_videoLinux.cpp, src/Pixes/pix_videoLinux.h, + src/Pixes/pix_videoNT.cpp, src/Pixes/pix_videoNT.h, + src/Pixes/pix_videoSGI.cpp, src/Pixes/pix_videoSGI.h, + src/Pixes/pix_write.cpp, src/Pixes/pix_write.h, + src/Pixes/pix_zoom.cpp, src/Pixes/pix_zoom.h, src/TV/Make.depend, + src/TV/tv_biquad.h, help/accumrotate.pd, help/alpha.pd, + help/alternate.pd, help/ambient.pd, help/ambientRGB.pd, + help/average.pd, help/change.pd, help/circle.pd, help/color.pd, + help/colorRGB.pd, help/colorSquare.pd, help/cone.pd, + help/counter.pd, help/cube.pd, help/curve.pd, help/cylinder.pd, + help/depth.pd, help/diffuse.pd, help/diffuseRGB.pd, help/disk.pd, + help/emission.pd, help/emissionRGB.pd, help/gemhead.pd, + help/gemkeyboard.pd, help/gemkeyname.pd, help/gemmouse.pd, + help/gemorb.pd, help/gemtablet.pd, help/gemwin.pd, + help/hsv2rgb.pd, help/imageVert.pd, help/invert.pd, + help/light.pd, help/linear_path.pd, help/model.pd, + help/multimodel.pd, help/oneshot.pd, help/ortho.pd, + help/part_color.pd, help/part_damp.pd, help/part_draw.pd, + help/part_follow.pd, help/part_gravity.pd, help/part_head.pd, + help/part_killold.pd, help/part_killslow.pd, + help/part_orbitpoint.pd, help/part_size.pd, help/part_source.pd, + help/part_targetcolor.pd, help/part_targetsize.pd, + help/part_velcone.pd, help/part_velsphere.pd, help/pix_2grey.pd, + help/pix_a_2grey.pd, help/pix_add.pd, help/pix_aging.pd, + help/pix_alpha.pd, help/pix_bitmask.pd, help/pix_blob.pd, + help/pix_buf.pd, help/pix_clearblock.pd, help/pix_coloralpha.pd, + help/pix_colormatrix.pd, help/pix_composite.pd, + help/pix_convolve.pd, help/pix_coordinate.pd, help/pix_curve.pd, + help/pix_data.pd, help/pix_diff.pd, help/pix_draw.pd, + help/pix_dump.pd, help/pix_film.pd, help/pix_flip.pd, + help/pix_gain.pd, help/pix_histo.pd, help/pix_hsv2rgb.pd, + help/pix_image.pd, help/pix_imageInPlace.pd, help/pix_indycam.pd, + help/pix_invert.pd, help/pix_mask.pd, help/pix_movie.pd, + help/pix_multiimage.pd, help/pix_multiply.pd, + help/pix_normalize.pd, help/pix_offset.pd, help/pix_pix2sig~.pd, + help/pix_puzzle.pd, help/pix_rectangle.pd, help/pix_resize.pd, + help/pix_rgb2hsv.pd, help/pix_rgba.pd, help/pix_set.pd, + help/pix_sig2pix~.pd, help/pix_snap.pd, help/pix_subtract.pd, + help/pix_takealpha.pd, help/pix_texture.pd, help/pix_texture2.pd, + help/pix_threshold.pd, help/pix_video.pd, help/pix_write.pd, + help/pix_zoom.pd, help/polygon.pd, help/primTri.pd, + help/randF.pd, help/randomF.pd, help/rectangle.pd, + help/render_trigger.pd, help/rgb2hsv.pd, help/rotate.pd, + help/rotateXYZ.pd, help/scale.pd, help/scaleXYZ.pd, + help/separator.pd, help/shininess.pd, help/specular.pd, + help/specularRGB.pd, help/sphere.pd, help/spline_path.pd, + help/square.pd, help/teapot.pd, help/text2d.pd, help/text3d.pd, + help/textoutline.pd, help/translate.pd, help/translateXYZ.pd, + help/triangle.pd, help/tripleLine.pd, help/tripleRand.pd, + help/tv_biquad.pd, help/tv_movement.pd, help/tv_rtx.pd, + help/v+.pd, help/v-.pd, help/vector+.pd, help/vector-.pd, + help/world_light.pd, manual/Advanced.html, manual/BasicObj.html, + manual/GemFaq.html, manual/GemWPd.html, manual/Gloss.html, + manual/Images.html, manual/Input.html, manual/Intro.html, + manual/Lighting.html, manual/ListObjects.html, + manual/Particles.html, manual/Pixes.html, manual/Texture.html, + manual/Utility.html, manual/WriteCode.html, manual/add.jpg, + manual/addResult.jpg, manual/gemwin.jpg, manual/index.html, + manual/invert.jpg, manual/invertFrac.jpg, manual/light.jpg, + manual/maskResult.jpg, manual/pixImage.jpg, manual/redSquare.jpg, + manual/sphere15.jpg, manual/sphere5.jpg, manual/transXYZ.jpg, + manual/tribar.gif, manual/tripleLine.jpg, manual/tripleRand.jpg, + src/TV/tv_biquad.cpp, src/TV/tv_movement.cpp, + src/TV/tv_movement.h, src/TV/tv_rtx.cpp, src/TV/tv_rtx.h, + src/TV/tv_test.cpp, src/TV/tv_test.h, examples/08.io/01.Mouse.pd, + examples/08.io/02.Tablet.pd, examples/08.io/03.Orb.pd, + examples/08.io/04.UseOrb.pd, examples/data/alea.mpg, + examples/data/valmotion.tab, manual/basicCube.jpg, + manual/counter.jpg, manual/mask.jpg, manual/normalFrac.jpg, + manual/texture.jpg, manual/world_light.jpg, + examples/data/cour.ttf, examples/data/dancer.JPG, + examples/data/times.ttf, examples/data/valcolor.tab, + examples/data/venus.mtl, examples/data/homer.avi, + examples/data/temp2.JPG, examples/data/arial.ttf, + examples/data/fractal.JPG, examples/data/fractalAlpha.TIF, + examples/data/temp0.JPG, examples/data/temp1.JPG, + examples/01.basic/01.redSquare.pd, + examples/01.basic/02.blueRectangle.pd, + examples/01.basic/03.disk.pd, examples/01.basic/04.PrimTri.pd, + examples/01.basic/05.cube.pd, examples/01.basic/06.sphere.pd, + examples/01.basic/07.cylinder.pd, examples/01.basic/08.model.pd, + examples/01.basic/09.yelloTeapot.pd, + examples/02.advanced/01.Separator.pd, + examples/02.advanced/02.Ortho.pd, + examples/02.advanced/03.View.pd, examples/02.advanced/04.Fog.pd, + examples/02.advanced/05.Stereo.pd, + examples/02.advanced/06.StereoParticle.pd, + examples/02.advanced/07.Snapshot1.pd, + examples/02.advanced/08.Snapshot2.pd, + examples/02.advanced/10.LinearPath.pd, + examples/02.advanced/11.SplinePath.pd, + examples/02.advanced/12.Hsv.pd, + examples/02.advanced/13.ModelRescale.pd, + examples/03.lighting/01.world_light.pd, + examples/03.lighting/02.light.pd, + examples/03.lighting/03.controlLights.pd, + examples/03.lighting/04.moveSpheres.pd, + examples/03.lighting/05.materials.pd, + examples/04.pix/01.image.pd, examples/04.pix/02.multiimage.pd, + examples/04.pix/04.ImageInPlace.pd, examples/04.pix/05.film.pd, + examples/04.pix/05.movie.pd, examples/04.pix/06.PixRect.pd, + examples/04.pix/10.PixDataSimple.pd, + examples/04.pix/11.PixDataComplex.pd, + examples/04.pix/12.composite.pd, + examples/04.pix/12.pix_multiply.pd, + examples/04.pix/13.maskDancer.pd, + examples/04.pix/15.pix_alpha.pd, examples/04.pix/16.alphaGrey.pd, + examples/04.pix/17.pix_gain.pd, + examples/04.pix/19.colorMatrix.pd, + examples/04.pix/20.convolve.pd, + examples/04.video/01.VideoPaint.pd, + examples/04.video/02.VideoSphere.pd, + examples/05.text/03.ChangeText.pd, + examples/06.particle/01.simple.pd, + examples/06.particle/02.fountain.pd, + examples/06.particle/03.orbit.pd, + examples/06.particle/04.combo.pd, + examples/06.particle/05.twoSrc.pd, + examples/06.particle/06.target.pd, + examples/07.texture/01.texture.pd, + examples/07.texture/02.TexCoord.pd, + examples/07.texture/04.moveImages.pd, + examples/99.games/puzzle.pd, examples/data/anim-1.mov, + examples/05.text/01.Text.pd, examples/05.text/arial.ttf: initial + CVS release (0.87) + diff --git a/Gem/Gem-meta.pd.in b/Gem/Gem-meta.pd.in new file mode 100644 index 0000000..420d614 --- /dev/null +++ b/Gem/Gem-meta.pd.in @@ -0,0 +1,10 @@ +#N canvas 1 51 320 90 10; +#N canvas 1 51 382 134 META 1; +#X text 10 10 NAME Gem; +#X text 10 30 VERSION @PACKAGE_VERSION@; +#X text 10 50 DESCRIPTION Graphics Environment for Multimedia; +#X text 10 70 AUTHOR IOhannes m zmölnig & the Gem development team +; +#X text 10 90 LICENSE GPL-2+; +#X restore 43 36 pd META; +#X text 39 15 Gem: Graphics Environment for Multimedia; diff --git a/Gem/Gem.pc.in b/Gem/Gem.pc.in new file mode 100644 index 0000000..cf0532a --- /dev/null +++ b/Gem/Gem.pc.in @@ -0,0 +1,14 @@ +# Gem pkg-config file + +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +############################### +# core configuration +Name: Gem +Description: Gem plugins and externals +Version: @PACKAGE_VERSION@ +Cflags: -I${includedir}/@PACKAGE@ @GEM_EXTERNAL_CPPFLAGS@ @GEM_EXTERNAL_CFLAGS@ +Libs: -L${libdir}/@PACKAGE@ @GEM_EXTERNAL_LIBS@ diff --git a/Gem/GnuGPL.LICENSE.txt b/Gem/GnuGPL.LICENSE.txt new file mode 100644 index 0000000..fa0bef4 --- /dev/null +++ b/Gem/GnuGPL.LICENSE.txt @@ -0,0 +1,290 @@ +GNU GENERAL PUBLIC LICENSE + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom +to share and change it. By contrast, the GNU General Public License is +intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This General +Public License applies to most of the Free Software Foundation's +software and to any other program whose authors commit to using it. +(Some other Free Software Foundation software is covered by the +GNU Library General Public License instead.) You can apply it to your +programs, too. + +When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new free +programs; and that you know you can do these things. + +To protect your rights, we need to make restrictions that forbid anyone +to deny you these rights or to ask you to surrender the rights. These +restrictions translate to certain responsibilities for you if you distribute +copies of the software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis +or for a fee, you must give the recipients all the rights that you have. You +must make sure that they, too, receive or can get the source code. And +you must show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + +Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, +we want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + +Finally, any free program is threatened constantly by software patents. +We wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program +proprietary. To prevent this, we have made it clear that any patent must +be licensed for everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and +modification follow. + +TERMS AND CONDITIONS FOR +COPYING, DISTRIBUTION AND +MODIFICATION + +0. This License applies to any program or other work which contains a +notice placed by the copyright holder saying it may be distributed under +the terms of this General Public License. The "Program", below, refers +to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, either +verbatim or with modifications and/or translated into another language. +(Hereinafter, translation is included without limitation in the term +"modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of running +the Program is not restricted, and the output from the Program is +covered only if its contents constitute a work based on the Program +(independent of having been made by running the Program). Whether +that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the notices +that refer to this License and to the absence of any warranty; and give +any other recipients of the Program a copy of this License along with the +Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide a + warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, and +can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based on +the Program, the distribution of the whole must be on the terms of this +License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based +on the Program. + +In addition, mere aggregation of another work not based on the +Program with the Program (or with a work based on the Program) on a +volume of a storage or distribution medium does not bring the other +work under the scope of this License. + +3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding + machine-readable source code, which must be distributed under + the terms of Sections 1 and 2 above on a medium customarily + used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your cost + of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a + medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with + such an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to control +compilation and installation of the executable. However, as a special +exception, the source code distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies the +executable. + +If distribution of executable or object code is made by offering access to +copy from a designated place, then offering equivalent access to copy +the source code from the same place counts as distribution of the source +code, even though third parties are not compelled to copy the source +along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt otherwise +to copy, modify, sublicense or distribute the Program is void, and will +automatically terminate your rights under this License. However, parties +who have received copies, or rights, from you under this License will not +have their licenses terminated so long as such parties remain in full +compliance. + +5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and all +its terms and conditions for copying, distributing or modifying the +Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the original +licensor to copy, distribute or modify the Program subject to these terms +and conditions. You may not impose any further restrictions on the +recipients' exercise of the rights granted herein. You are not responsible +for enforcing compliance by third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot distribute +so as to satisfy simultaneously your obligations under this License and +any other pertinent obligations, then as a consequence you may not +distribute the Program at all. For example, if a patent license would not +permit royalty-free redistribution of the Program by all those who +receive copies directly or indirectly through you, then the only way you +could satisfy both it and this License would be to refrain entirely from +distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents +or other property right claims or to contest validity of any such claims; +this section has the sole purpose of protecting the integrity of the free +software distribution system, which is implemented by public license +practices. Many people have made generous contributions to the wide +range of software distributed through that system in reliance on +consistent application of that system; it is up to the author/donor to +decide if he or she is willing to distribute software through any other +system and a licensee cannot impose that choice. + +This section is intended to make thoroughly clear what is believed to be +a consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an +explicit geographical distribution limitation excluding those countries, so +that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + +9. The Free Software Foundation may publish revised and/or new +versions of the General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may differ in +detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number +of this License, you may choose any version ever published by the Free +Software Foundation. + +10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we +sometimes make exceptions for this. Our decision will be guided by the +two goals of preserving the free status of all derivatives of our free +software and of promoting the sharing and reuse of software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF +CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, +TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT +WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, +EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD +THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE +COST OF ALL NECESSARY SERVICING, REPAIR OR +CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW +OR AGREED TO IN WRITING WILL ANY COPYRIGHT +HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED +ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING +ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT +LIMITED TO LOSS OF DATA OR DATA BEING RENDERED +INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE +WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR +OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY +OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS diff --git a/Gem/Makefile.am b/Gem/Makefile.am new file mode 100644 index 0000000..0c6c610 --- /dev/null +++ b/Gem/Makefile.am @@ -0,0 +1,34 @@ +AUTOMAKE_OPTIONS = foreign +ACLOCAL_AMFLAGS = -I m4 + +SUBDIRS =src abstractions +SUBDIRS+=help doc examples +SUBDIRS+=build + +## plugins +SUBDIRS+=plugins + +## window objects +SUBDIRS+=src/Output + +## extra objects +SUBDIRS+=extra + +#pkg-config support +## this is a bit hacky: we abused $(libdir) to point to .../lib/pd/extra +## so we cannot use it for the pkgconfigdir +## instead, we have to build it crom scratch +#pkgconfigdir = $(libdir)/pkgconfig +pkgconfigdir = ${exec_prefix}/lib/pkgconfig +pkgconfig_DATA = Gem.pc + +gemdir=$(pkglibdir) + +dist_gem_DATA = \ + Gem-meta.pd \ + ChangeLog \ + COPYING.txt \ + GnuGPL.LICENSE.txt \ + README.txt + +EXTRA_DIST = autogen.sh diff --git a/Gem/README.txt b/Gem/README.txt new file mode 100644 index 0000000..7da9b44 --- /dev/null +++ b/Gem/README.txt @@ -0,0 +1,184 @@ +This is GEM - Graphics Environment for Multimedia +================================================= +You can get the current distribution from: +http://gem.iem.at +http://sourceforge.net/projects/pd-gem + +if you want to compile the newest (bleeding edge, and possibly unstable) source +code yourself, you can get a copy from the public git repository on sourceforge: + + read-only access: git://pd-gem.git.sourceforge.net/gitroot/pd-gem/Gem + read-write access: ssh://pd-gem.git.sourceforge.net/gitroot/pd-gem/Gem + +usually, you will only need the read-only repository, which you can get with + +$ git clone git://pd-gem.git.sourceforge.net/gitroot/pd-gem/Gem + +============================================= +NEW::: +------ + +Gem is now supported by W32, linux and macOS-X +the IRIX version might work (but most probably will not): if you want to use Gem +under IRIX, feel free to make it work and report failure and success to me, so i +can incorporate any needed changes into the main Gem-trunk. + +for installation instructions see below + + +NEW (Gem>=0.87)::: +----------------- +(note: this NEWs only refer to the packaging, not to features of Gem) + +As with GEM-0.87, i have broken the distribution into various packages +Gem-.tgz :: quite everything (except binaries and auxiliary libraries) +Gem-doc-.tgz :: example-patches, manual, ... +Gem-bin-.zip :: W32-binary (containing a single file "Gem.dll") +Gem-bin-doc-.zip :: W32-binary + documentation + +GemLibs--.tgz :: auxiliary libraries (used to be "AuxLibs") + +1) the core Gem-packages: +the core Gem-packages all extract into the same directory Gem-/ +there are install-scripts for windoze (and probably IRIX) +these will install the documentation... + + +2) the GemLib-package: +Gem supports many 3rd party libraries, bundling all of them seems like a waste +of space and might impose legal issues. OTOH, it makes it much easier to setup +an environment to build Gem (esp. on systems that don't have package managers) +GemLibs is a small collections of libraries that can add some capabilities to +Gem, which it would lack otherwise (e.g. support for a given image format). It +is far from complete and most likely outdated, so usually you are better off, if +you just install any needed libraries manually. +Most of these libraries are only needed to build certain plugins. + +GemLibs have their own version numbering, starting with 1. +You can get the newest GemLib from the place mentioned above + + +------------------------------------- +------------------------------------- + +INSTALLATION: +============= + +------------------------------------- +To install GEM on linux/OSX/...: +run +$ ./configure +$ make +$ make install + +note that you might want to help Gem to find the Pd-headers, e.g. by doing +$ ./configure --with-pd=/usr/include/pd +try +$ ./configure --help to see more options + +------------------------------------- +To install GEM on W32: +a) installer (preferred method) + use the installer executable to install Gem into ...\pd\extra + (to _build_ the installer you will have to have NSIS installed + see build/win-nsis for details) + +b) archive (do it by hand) + + 1) unzip the GEM package + + 2) put the subfolders of Gem-\ into a directory where Pd will + find it. If you are using an up-to-date version of Pd (>=0.43), put them + into the folder "Application Data\Pd\" in your home directory. + For older versions of Pd, put them into the "extra" folder of your Pd + installation. + e.g. if you installed Pd as "C:\Program Files\Pd-0.43-0" you should + end up with: + "C:\Program Files\Pd-0.43-0\extra\Gem" + and eventually with + "C:\Program Files\Pd-0.43-0\extra\pix_drum" + "C:\Program Files\Pd-0.43-0\extra\pix_mano" + ... + + there is no need to copy the README.txt found in Gem-\ + + 3) please note that the archive comes with all plugins + in most cases, you won't need all of them, and having plugins + installed that you don't need, will considerably slow down load + time of patches and might leed to undesired side-effects. + therefore, if loading is too slow (or you experience weird + things), it might be a good idea to disable plugins you don't + need. + disabling plugins is as simple as deleting them (or moving them + into a subfolder) + + plugins are files of the form: "gem_.dll" + e.g. "gem_filmQT.dll" is a plugin for reading films using the + QuickTime framework. + in order to use videoPYLON, videoHALCON and videoAVT, you need + to install proprietary libraries yourself; if you haven't done + so or don't own a device that can interact with those libraries, + you can safely remove these plugins. + if you have no clue what this is about, these plugins are most + likely not for you (so remove them) + + + +------------------------------------- +------------------------------------- + +RUNNING: +======== + +just installing Gem is not enough ! +you will have to tell pd that it should load that library !! +you cannot create any Gem-objects without having loaded the Gem-library into pd !!! + +make sure you have the proper binary for you OS + - windows: Gem.dll, Gem.m_i386, Gem.m_* + - macOS-X: Gem.pd_darwin, Gem.d_fat, Gem.d_ppc, Gem.d_* + - linux : Gem.pd_linux, Gem.l_i386, Gem.l_ia64, Gem.l_* + - freeBSD: Gem.pd_freebsd, Gem.b_i386, Gem.b_* + - irix : Gem.pd_irix + - ... + +when starting pd, tell it to load Gem with the "-lib" flag +if your Gem-binary lives in pd/extra/, you could just try "pd -lib Gem" +if your Gem-binary lives somewhere else use something like "pd -lib /path/to/my/Gem" +you could also use "pd -path /path/to/my -lib Gem" +after loading Gem you will see a bit of a welcome message on the konsole + +NOTE: there *must not* be any file extension with the "-lib"-flag. + e.g. this will fail miserably: + "pd -lib Gem.dll" +NOTE: please note the spelling: it is "Gem" and not "gem" nor "GEM" + +if you have problems loading any library including Gem, have a look at the +pd-documentation. +if you have problems loading just Gem (but other libraries work), send me a +bug-report (see below) + +BUG-REPORTS: +============ +please do not hesitate to report any crashes, weirdnesses or other issues, using +the bugtracker at sourceforge: +http://sourceforge.net/projects/pd-gem/ +or the gem-dev mailinglist (subscription at http://lists.puredata.info) + +if your mail only says "hey, it does not work !", it is an annoyance and no bug-report +please specify at least the following things: + Operating-System (kernel-version,...) + video-card, driver + other hardware that is related to your problem (e.g.: camera) + does your system work with similar applications (e.g.: capture-software, + openGL (games, "glxgears") + what is the output of pd when you start it with the "-verbose" flag + (e.g.:"pd -verbose -lib Gem") + +please do not use the puredata bugtracker for reporting Gem-specific bugs. + +---- +have fun + +zmoelnig@iem.at + diff --git a/Gem/TODO b/Gem/TODO new file mode 100644 index 0000000..ab29d32 --- /dev/null +++ b/Gem/TODO @@ -0,0 +1,77 @@ +General: + osx: carbon/QuickTime not supported anymore since 10.6 + +Optimization: + use a more performant float2int conversion as described in + http://www.mega-nerd.com/FPcast/ + +Output: + multiple output + "external" windows + alpha in gemwindow? + + linux: sometimes window freezes on "destroy"; (JMZ: i experience this sometimes on improper shutdown, but after some (up to 30) seconds, the window finally gets destroyed and pd exits fine; if this is the same as the reported bug, than it is rather an inconvenience than a real bug; does this also happens with Output/ objects or only with the old code?) + linux: resizing the window yields weird results + osx: [gemcocoawindow] compatible with [gemmacwindow]? + + +Controls: + selectables + +Geos: + vertex stuff + +Manips: + +Nongeos: + add other light-types + check for the maximum number of lights during runtime + +Pixes: + windows movie loader (have a look at guliverkli?; use gmerlin?) + + upsidedown: pix_rectangle does not respect the upside-down flag and thus sometimes the rectangle appears in the upper-left corner and sometimes in the lower-left corner + generally all images on all platforms should have the same (upsidedown!) orientation + see http://stackoverflow.com/questions/443086/opengl-topdown-bottomup-textures + + + pix_rtx: flickering on OSX/ppc in mode#0; + how to prevent execessive memory usage? + + pix_threshold: intial arguments + + pix_crop: arguments/inlets differ! + + pix_freeframe not supported on x86_64 architectures (newer versions of FF support x86_64; check whether this is compatible) + + videopipes: + W32:AVIsynth/frameserver (http://www.debugmode.com/frameserver/) + W32:VirtualCamera + OSX:Syphon (http://syphon.v002.info/) + + osx: pix_movie flickers (check whether this is still true) + w32: [pix_share_*] does not exist since the shared-memory concept has not made it to redmond yet + w32: crashes when texturing movies (related to GLEW?) + + + +dreaming: + Pd-callbacks: + remove the entire callback-stuff for Pd-messages from the obj_realSetup() + instead this should be handled centrally in CPPExtern + - each member function called Mess() provides a method for "" + - dispatching can be done by Pd or Gem (the latter being easier) + info/ideas + - http://www.codeproject.com/KB/winsdk/callback_adapter.aspx + - Qt slot concept (http://sigslot.sourceforge.net/) + - reflection/inspection + - function-name demangling: http://publib.boulder.ibm.com/infocenter/comphelp/v8v101/index.jsp?topic=/com.ibm.xlcpp8a.doc/proguide/ref/rkcxxflt.htm + + wrap the entire Pd thing into C++: + GemOutlet()->send(int val); + +BUGS: + look into flext conflict (i guess it's related to "new/delete") + + single-object externals will run the setup-function twice; this gives nasty warnings in Pd-0.42 + diff --git a/Gem/abstractions/Makefile.am b/Gem/abstractions/Makefile.am new file mode 100644 index 0000000..d092a46 --- /dev/null +++ b/Gem/abstractions/Makefile.am @@ -0,0 +1,29 @@ +AUTOMAKE_OPTIONS = foreign + +SUFFIXES = .pd + +gemabsdir=$(pkglibdir) + +nodist_gemabs_DATA = \ + gemdefaultwindow.pd + +dist_gemabs_DATA = \ + gemhead.pd \ + gemmouse.pd \ + gemorb.pd \ + gemtablet.pd \ + gemwin.pd \ + hsv2rgb-help.pd \ + hsv2rgb.pd \ + pix_blobtracker-help.pd \ + pix_blobtracker.pd \ + pix_buffer_filmopen-help.pd \ + pix_buffer_filmopen.pd \ + pix_write.pd \ + rgb2hsv-help.pd \ + rgb2hsv.pd \ + rgb2yuv-help.pd \ + rgb2yuv.pd \ + yuv2rgb-help.pd \ + yuv2rgb.pd + diff --git a/Gem/abstractions/gemdefaultwindow.pd.in b/Gem/abstractions/gemdefaultwindow.pd.in new file mode 100644 index 0000000..0e2ce01 --- /dev/null +++ b/Gem/abstractions/gemdefaultwindow.pd.in @@ -0,0 +1,17 @@ +#N canvas 3 45 450 300 10; +#X obj 125 66 inlet; +#X obj 125 243 outlet; +#X obj 125 145 t a a; +#X obj 175 187 route bang; +#X obj 175 167 spigot; +#X obj 208 143 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 232 208 print gem\$0win; +#X obj 125 100 @GEM_DEFAULT_WINDOW@; +#X connect 0 0 7 0; +#X connect 2 0 1 0; +#X connect 2 1 4 0; +#X connect 3 1 6 0; +#X connect 4 0 3 0; +#X connect 5 0 4 1; +#X connect 7 0 2 0; diff --git a/Gem/abstractions/gemhead.pd b/Gem/abstractions/gemhead.pd new file mode 100644 index 0000000..59923cb --- /dev/null +++ b/Gem/abstractions/gemhead.pd @@ -0,0 +1,90 @@ +#N canvas 255 164 769 392 10; +#N canvas 443 22 581 526 gemreceive 0; +#X obj 109 413 outlet; +#X obj 288 58 inlet order; +#X obj 288 177 select 0; +#X msg 288 198 50; +#X obj 109 365 spigot 1; +#X obj 109 390 t a; +#X obj 288 222 t f f f; +#X obj 334 275 t f f; +#X obj 334 301 > 0; +#X obj 366 301 < 0; +#X obj 313 365 spigot 0; +#X obj 520 283 abs; +#X obj 109 342 gemreceive __gem_render \$1; +#X obj 313 342 gemreceive __gem_render_osd \$1; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 6 0; +#X connect 3 0 6 0; +#X connect 4 0 5 0; +#X connect 5 0 0 0; +#X connect 6 0 12 1; +#X connect 6 1 11 0; +#X connect 6 2 7 0; +#X connect 7 0 8 0; +#X connect 7 1 9 0; +#X connect 8 0 4 1; +#X connect 9 0 10 1; +#X connect 10 0 5 0; +#X connect 11 0 13 1; +#X connect 12 0 4 0; +#X connect 13 0 10 0; +#X restore 170 69 pd gemreceive; +#X obj 170 155 gemlist; +#N canvas 602 92 635 363 material 0; +#X obj 98 88 inlet gemlist; +#X obj 98 258 outlet gemlist; +#X obj 98 117 GEMglColor4f 1 1 1 1; +#X obj 98 143 GEMglMaterialfv GL_FRONT_AND_BACK GL_AMBIENT 0.2 0.2 +0.2 1; +#X obj 98 163 GEMglMaterialfv GL_FRONT_AND_BACK GL_DIFFUSE 0.8 0.8 +0.8 1; +#X obj 98 183 GEMglMaterialfv GL_FRONT_AND_BACK GL_EMISSION 0 0 0 1 +; +#X obj 98 203 GEMglMaterialfv GL_FRONT_AND_BACK GL_SPECULAR 0 0 0 1 +; +#X obj 98 223 GEMglMaterialfv GL_FRONT_AND_BACK GL_SHININESS 0; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 7 0 1 0; +#X restore 170 197 pd material; +#X obj 170 221 t a a a; +#X obj 216 242 GEMglPushMatrix; +#X obj 170 282 GEMglPopMatrix; +#X obj 193 306 outlet gemlist; +#X obj 130 18 inlet control; +#X obj 130 40 route bang float set; +#X obj 223 94 i; +#X obj 170 116 spigot 1; +#N canvas 0 0 650 510 defaultarg 0; +#X obj 134 132 loadbang; +#X obj 134 265 outlet; +#X obj 134 157 f \$1; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X restore 286 39 pd defaultarg; +#X obj 71 174 GEMglFlush; +#X obj 71 122 gemlist; +#X obj 71 144 t a a; +#X connect 0 0 10 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 5 0; +#X connect 3 1 6 0; +#X connect 3 2 4 0; +#X connect 7 0 8 0; +#X connect 8 0 13 0; +#X connect 8 1 9 0; +#X connect 8 2 0 0; +#X connect 9 0 10 1; +#X connect 10 0 1 0; +#X connect 11 0 0 0; +#X connect 13 0 14 0; +#X connect 14 0 12 0; +#X connect 14 1 2 0; diff --git a/Gem/abstractions/gemmouse.pd b/Gem/abstractions/gemmouse.pd new file mode 100644 index 0000000..adf6bb2 --- /dev/null +++ b/Gem/abstractions/gemmouse.pd @@ -0,0 +1,154 @@ +#N canvas 0 0 786 465 10; +#X obj 60 327 outlet x; +#X obj 130 327 outlet y; +#X obj 250 327 outlet Left; +#X obj 360 327 outlet Middle; +#X obj 470 327 outlet Right; +#N canvas 340 91 557 430 arguments 1; +#X obj 139 87 inlet reset; +#X obj 139 110 t b; +#N canvas 0 0 877 440 argcount 0; +#X obj 32 46 inlet; +#X obj 50 178 select s; +#X obj 50 128 t b b; +#X obj 156 155 makefilename $%d-test; +#X obj 50 155 symbol \$1-test; +#X msg 156 135 1; +#X obj 570 178 select s; +#X obj 570 128 t b b; +#X obj 676 155 makefilename $%d-test; +#X msg 676 135 3; +#X obj 50 242 t f; +#X obj 32 306 f; +#X obj 32 74 t b b b; +#X msg 78 279 -1; +#X obj 32 360 outlet; +#X obj 570 155 symbol \$3-test; +#X msg 50 199 0; +#X obj 310 178 select s; +#X obj 310 128 t b b; +#X obj 416 155 makefilename $%d-test; +#X msg 416 135 2; +#X obj 310 155 symbol \$2-test; +#X msg 310 199 1; +#X msg 570 199 2; +#X obj 287 101 t b b b; +#X connect 0 0 12 0; +#X connect 1 0 16 0; +#X connect 2 0 4 0; +#X connect 2 1 5 0; +#X connect 3 0 1 1; +#X connect 4 0 1 0; +#X connect 5 0 3 0; +#X connect 6 0 23 0; +#X connect 7 0 15 0; +#X connect 7 1 9 0; +#X connect 8 0 6 1; +#X connect 9 0 8 0; +#X connect 10 0 11 1; +#X connect 11 0 14 0; +#X connect 12 0 11 0; +#X connect 12 1 24 0; +#X connect 12 2 13 0; +#X connect 13 0 11 1; +#X connect 15 0 6 0; +#X connect 16 0 10 0; +#X connect 17 0 22 0; +#X connect 18 0 21 0; +#X connect 18 1 20 0; +#X connect 19 0 17 1; +#X connect 20 0 19 0; +#X connect 21 0 17 0; +#X connect 22 0 10 0; +#X connect 23 0 10 0; +#X connect 24 0 2 0; +#X connect 24 1 18 0; +#X connect 24 2 7 0; +#X restore 139 134 pd argcount; +#X obj 139 182 select 0 1 2; +#X obj 253 352 outlet yscale; +#X obj 139 322 outlet yscale; +#X obj 139 160 i; +#X obj 253 323 /; +#X obj 201 201 t b b; +#X obj 166 223 f \$1; +#X obj 201 223 f \$1; +#X obj 233 223 f \$2; +#X obj 366 142 unpack 0 0; +#X obj 334 121 t b l; +#X obj 166 244 pack 0 500; +#X obj 139 270 pack 500 500; +#X obj 253 300 pack 500 500; +#X obj 139 293 /; +#X obj 334 97 inlet dimen; +#X floatatom 65 186 5 0 0 0 - - -; +#X msg 77 87 bang; +#X msg 139 203 1 1; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 6 0; +#X connect 3 0 21 0; +#X connect 3 1 9 0; +#X connect 3 2 8 0; +#X connect 6 0 3 0; +#X connect 6 0 19 0; +#X connect 7 0 4 0; +#X connect 8 0 10 0; +#X connect 8 1 11 0; +#X connect 9 0 14 0; +#X connect 10 0 15 0; +#X connect 11 0 16 0; +#X connect 12 0 15 1; +#X connect 12 0 17 1; +#X connect 12 1 14 1; +#X connect 12 1 16 1; +#X connect 13 0 6 0; +#X connect 13 1 12 0; +#X connect 14 0 15 0; +#X connect 14 0 16 0; +#X connect 15 0 17 0; +#X connect 16 0 7 0; +#X connect 17 0 5 0; +#X connect 18 0 13 0; +#X connect 20 0 1 0; +#X connect 21 0 15 0; +#X connect 21 0 16 0; +#X restore 147 173 pd arguments; +#X obj 60 241 * 1; +#X obj 130 241 * 1; +#X obj 147 148 loadbang; +#X obj 104 31 r __gem; +#X obj 104 52 route mouse dimen; +#X obj 396 88 route motion button; +#X obj 364 67 t b a; +#X obj 396 111 unpack; +#X obj 196 277 pack 0 0 0 0 0; +#X obj 196 303 unpack 0 0 0 0 0; +#X obj 166 277 f; +#X obj 234 207 del 0; +#X obj 243 245 route 0 1 2; +#X connect 5 0 6 1; +#X connect 5 1 7 1; +#X connect 6 0 16 1; +#X connect 7 0 14 1; +#X connect 8 0 5 0; +#X connect 9 0 10 0; +#X connect 10 0 12 0; +#X connect 10 1 5 1; +#X connect 11 0 13 0; +#X connect 11 1 18 0; +#X connect 12 0 17 0; +#X connect 12 1 11 0; +#X connect 13 0 6 0; +#X connect 13 1 7 0; +#X connect 14 0 15 0; +#X connect 15 0 0 0; +#X connect 15 1 1 0; +#X connect 15 2 2 0; +#X connect 15 3 3 0; +#X connect 15 4 4 0; +#X connect 16 0 14 0; +#X connect 17 0 16 0; +#X connect 18 0 14 2; +#X connect 18 1 14 3; +#X connect 18 2 14 4; diff --git a/Gem/abstractions/gemorb.pd b/Gem/abstractions/gemorb.pd new file mode 100644 index 0000000..6700a9c --- /dev/null +++ b/Gem/abstractions/gemorb.pd @@ -0,0 +1,22 @@ +#N canvas 66 407 682 381 10; +#X text 53 56 the object has been taken out of Gem \, since Gem is +a graphics library \, and not a hardware-interfacing library.; +#X text 49 98 you should be able to build a functional replacement +using the [hid] external.; +#X text 54 36 this is a fake replacement of Gem's [gemorb].; +#X obj 41 341 outlet Position (x y z); +#X obj 231 341 outlet Rotation (x y z); +#X obj 421 341 outlet Buttons (a b c d e f g); +#X obj 172 142 loadbang; +#X obj 172 278 print error; +#X msg 172 244 [gemorb] is no longer available! \, use [hid] or similar +for interfacing a SpaceOrb; +#X obj 26 143 inlet; +#X obj 26 163 t b; +#X msg 26 182 you are interfacing a dummy replacement of [gemorb]! +\, please build your own [gemorb]; +#X connect 6 0 8 0; +#X connect 8 0 7 0; +#X connect 9 0 10 0; +#X connect 10 0 11 0; +#X connect 11 0 7 0; diff --git a/Gem/abstractions/gemtablet.pd b/Gem/abstractions/gemtablet.pd new file mode 100644 index 0000000..76a272f --- /dev/null +++ b/Gem/abstractions/gemtablet.pd @@ -0,0 +1,21 @@ +#N canvas 24 279 928 367 10; +#X obj 107 178 loadbang; +#X obj 107 250 print error; +#X msg 107 207 [gemtablet] is no longer available! \, use [hid] or +similar for interfacing a graph-tablet; +#X obj 127 312 outlet X-pos; +#X obj 137 331 outlet Y-pos; +#X obj 287 282 outlet Pressure; +#X obj 297 302 outlet Azimuth; +#X obj 307 322 outlet Altitude; +#X obj 317 342 outlet Twist; +#X obj 537 302 outlet Middle-Buttoh; +#X obj 547 322 outlet Right-Button; +#X obj 527 282 outlet Left-Button; +#X text 54 36 this is a fake replacement of Gem's [gemtablet].; +#X text 53 56 the object has been taken out of Gem \, since Gem is +a graphics library \, and not a hardware-interfacing library.; +#X text 51 98 you should be able to build a functional replacement +using the [hid] external.; +#X connect 0 0 2 0; +#X connect 2 0 1 0; diff --git a/Gem/abstractions/gemwin.pd b/Gem/abstractions/gemwin.pd new file mode 100644 index 0000000..313e59d --- /dev/null +++ b/Gem/abstractions/gemwin.pd @@ -0,0 +1,2802 @@ +#N canvas 84 45 937 526 10; +#X obj 126 104 inlet; +#X obj 119 508 outlet; +#N canvas 3 45 1018 458 argument 0; +#X obj 291 213 list append \$1; +#X obj 291 234 route float; +#X obj 312 33 inlet; +#X obj 291 256 * -1; +#X obj 291 276 moses; +#X obj 291 298 * -1; +#X msg 365 303 20; +#X obj 365 278 t b; +#X obj 291 337 t f; +#X obj 291 375 s \$0-rate; +#X obj 678 271 list prepend \$2; +#X obj 599 388 symbol; +#X obj 599 151 t b b; +#X obj 599 225 select sym; +#X obj 599 203 symbol \$2_; +#X obj 670 203 makefilename %s2_; +#X msg 670 176 symbol $; +#X msg 599 347 __gem_render; +#X msg 678 347 __gem_render\$1; +#X obj 678 249 t b; +#X obj 291 98 t b b; +#X obj 599 410 s \$0-gemheadbasename; +#X connect 0 0 1 0; +#X connect 1 0 3 0; +#X connect 1 1 7 0; +#X connect 2 0 20 0; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 4 1 6 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 6 0; +#X connect 8 0 9 0; +#X connect 10 0 18 0; +#X connect 11 0 21 0; +#X connect 12 0 14 0; +#X connect 12 1 16 0; +#X connect 13 0 17 0; +#X connect 13 1 19 0; +#X connect 14 0 13 0; +#X connect 15 0 13 1; +#X connect 16 0 15 0; +#X connect 17 0 11 0; +#X connect 18 0 11 0; +#X connect 19 0 10 0; +#X connect 20 0 0 0; +#X connect 20 1 12 0; +#X restore 390 87 pd argument; +#N canvas 1569 63 991 633 messages 0; +#X text 94 19 bang float render title create createStereo createstereo +buffer fullscreen menubar secondscreen dimen offset color clearmask +perspec view fog fogcolor fogmode ambient specular shininess cursor +blur reset destroy print profile lighting stereo stereoSep stereosep +stereoFoc stereofoc stereoLine stereoline border frame fps topmost +FSAA; +#X text 66 132 window specific:; +#X text 113 152 title create buffer fullscreen menubar secondscreen +dimen offset cursor reset destroy print border topmost FSAA; +#X text 121 217 createStereo createstereo stereo stereoSep stereosep +stereoFoc stereofoc stereoLine stereoline; +#X text 72 339 lighting/color:; +#X text 128 293 view perspec; +#X text 120 356 color clearmask ambient specular shininess lighting +; +#X text 106 413 fog fogcolor fogmode; +#X text 73 390 fog:; +#X text 70 275 viewpoint:; +#X text 66 203 stereo:; +#X text 80 471 bang float render buffer blur reset destroy print profile +frame fps; +#X text 72 452 misc:; +#X text 66 524 multiple:; +#X text 106 544 buffer reset print; +#X text 71 589 unused:; +#X text 112 604 blur; +#X restore 230 59 pd messages; +#N canvas 124 50 901 630 window 0; +#X obj 282 340 t a; +#X obj 282 389 t a; +#X obj 282 574 outlet; +#X text 417 23 messages to be understood:; +#N canvas 0 0 450 300 messages 0; +#X text 22 100 create destroy dimen offset secondscreen fullscreen +cursor menubar border title topmost buffer reset print FSAA; +#X restore 639 19 pd messages; +#X text 458 91 create destroy; +#X text 459 112 cursor menubar topmost; +#X text 459 51 dimen offset secondscreen fullscreen border title; +#X text 459 71 buffer FSAA; +#X text 460 131 reset; +#X text 462 150 print; +#X text 350 70 rendercontext:; +#X text 335 92 window creation:; +#X text 333 111 live decoration:; +#X text 318 50 window-decoration:; +#X text 333 131 default:; +#X text 333 154 info:; +#N canvas 0 0 450 399 creation/destruction 0; +#X obj 96 221 list prepend create; +#X obj 96 303 outlet gemwin; +#X obj 96 272 t a; +#X obj 96 196 r \$0-create; +#X obj 275 197 r \$0-destroy; +#X msg 275 221 destroy; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X connect 3 0 0 0; +#X connect 4 0 5 0; +#X connect 5 0 2 0; +#X restore 124 201 pd creation/destruction; +#N canvas 271 109 611 377 window-decoration 0; +#X obj 451 282 outlet gemwin; +#X text 125 101 size; +#X text 112 167 position; +#X text 112 229 decoration; +#X obj 204 88 r \$0-dimen; +#X msg 204 116 dimen \$1 \$2; +#X obj 301 88 r \$0-fullscreen; +#X msg 301 116 fullscreen \$1; +#X obj 206 151 r \$0-offset; +#X msg 206 179 offset \$1 \$2; +#X obj 303 151 r \$0-secondscreen; +#X msg 303 179 secondscreen \$1; +#X obj 206 211 r \$0-border; +#X msg 206 239 border \$1; +#X obj 303 211 r \$0-title; +#X obj 303 238 list prepend title; +#X obj 451 100 t a; +#X obj 451 160 t a; +#X obj 451 223 t a; +#X connect 4 0 5 0; +#X connect 5 0 16 0; +#X connect 6 0 7 0; +#X connect 7 0 16 0; +#X connect 8 0 9 0; +#X connect 9 0 17 0; +#X connect 10 0 11 0; +#X connect 11 0 17 0; +#X connect 12 0 13 0; +#X connect 13 0 18 0; +#X connect 14 0 15 0; +#X connect 15 0 18 0; +#X connect 16 0 17 0; +#X connect 17 0 18 0; +#X connect 18 0 0 0; +#X restore 124 172 pd window-decoration; +#N canvas 401 296 464 399 live 0; +#X obj 92 273 outlet gemwin; +#X obj 92 235 t a; +#X text 44 67 appearance that is changeable after window has been made +; +#X obj 92 123 r \$0-cursor; +#X msg 92 147 cursor \$1; +#X obj 182 123 r \$0-menubar; +#X msg 182 147 menubar \$1; +#X obj 277 123 r \$0-topmost; +#X msg 277 147 topmost \$1; +#X connect 1 0 0 0; +#X connect 3 0 4 0; +#X connect 4 0 1 0; +#X connect 5 0 6 0; +#X connect 6 0 1 0; +#X connect 7 0 8 0; +#X connect 8 0 1 0; +#X restore 124 241 pd live decoration; +#X obj 282 502 t b; +#X text 113 485 context established \, now draw!; +#X obj 439 557 route mouse keyboard dimen offset info; +#X obj 439 535 outlet info; +#X obj 282 288 t a; +#X obj 282 309 list trim; +#X text 435 479 info callbacks; +#X text 449 495 (LATER: trigger these by sending their name (without +args) into the object); +#N canvas 1331 424 855 424 default 0; +#X obj 56 80 inlet; +#X obj 56 122 route reset; +#X obj 31 186 outlet; +#X obj 195 216 outlet gemwin; +#X obj 195 154 t b; +#X msg 195 177 dimen 500 500 \, offset 0 0 \, fullscreen 0 \, title +GEM \, buffer 2 \, cursor 1 \, topmost 0; +#X connect 0 0 1 0; +#X connect 1 0 4 0; +#X connect 1 1 2 0; +#X connect 4 0 5 0; +#X connect 5 0 2 0; +#X restore 34 166 pd default; +#N canvas 0 0 450 300 info 0; +#X obj 195 216 outlet gemwin; +#X obj 195 189 list prepend print; +#X obj 195 159 r \$0-print; +#X connect 1 0 0 0; +#X connect 2 0 1 0; +#X restore 124 262 pd info; +#X obj 282 361 gemdefaultwindow; +#X obj 565 431 s \$0-realdimen; +#X obj 333 254 inlet; +#X obj 282 425 route bang; +#X obj 348 449 t a a; +#X obj 460 411 route mouse keyboard dimen offset info; +#X connect 0 0 30 0; +#X connect 1 0 33 0; +#X connect 17 0 24 0; +#X connect 18 0 24 0; +#X connect 19 0 24 0; +#X connect 20 0 2 0; +#X connect 24 0 25 0; +#X connect 25 0 0 0; +#X connect 29 0 24 0; +#X connect 30 0 1 0; +#X connect 32 0 0 0; +#X connect 33 0 20 0; +#X connect 33 1 34 0; +#X connect 34 0 23 0; +#X connect 34 1 35 0; +#X connect 35 2 31 0; +#X restore 131 210 pd window; +#X text 55 19 meant as a modular replacement for the internal [gemwin] +; +#X text 53 38 TODO: quite everything; +#X obj 390 60 loadbang; +#N canvas 0 0 450 300 keyboard 0; +#X obj 122 32 inlet; +#X obj 122 189 s __gem_keyboard; +#X obj 265 191 s __gem_mouse; +#X obj 122 109 route keyboard mouse; +#X obj 181 269 outlet; +#X obj 122 65 s __gem; +#X connect 0 0 5 0; +#X connect 3 0 1 0; +#X connect 3 1 2 0; +#X connect 3 2 4 0; +#X restore 637 371 pd keyboard & mouse; +#N canvas 64 81 1119 651 README 0; +#X text 34 30 a new gemwin; +#X text 67 145 this has some major drawbacks:; +#X text 66 57 for legacy reasons \, [gemwin] is the interface to:; +#X text 79 72 - the rendering context (e.g. window creation); +#X text 79 84 - the general rendering engine (e.g. turning on/off rendering) +; +#X text 80 110 - global settings of the rendered scene (e.g. background +colour); +#X text 95 190 - non-modular; +#X text 94 160 - blackbox for the users (no way to change how certain +things work without hacking the C++-code); +#X text 94 207 - single-window; +#X text 50 252 make it better:; +#X text 94 292 - [gemwindow]: low level interface to the window manager +; +#X text 73 271 [gemwin] now consists of several modules; +#X text 94 333 - Pd-(sub)patches for global render settings; +#X text 94 313 - Pd-(sub)patches for render-control; +#X text 77 495 mouse/keyboard events are now handled by the window +itself and [s]ent to the (compat) [gemmouse] and [gemkeyboard] objects +on a global receiver.; +#X text 56 476 user-interaction:; +#X text 80 542 however \, users can as well grab the mouse/keyboard +data directly from the [gemwindow] object \, so this info can be attached +to a certain window.; +#X text 57 376 rendering:; +#X text 74 392 rendering is now done by explicitely sending bangs via +global receivers to the [gemhead] abstractions.; +#X text 77 427 users can implement their own [gemhead]s (and senders +for that matter as well) \, in order to (e.g.) render certain parts +of the graph into a specific window/framebuffer/...; +#X text 628 371 modularity:; +#X text 642 387 obviously \, users can modify the default [gemwin] +abstractions to strip it from whatever they don't need (and add whatever +they do need).; +#X text 641 450 the sole purpose of this abstraction is to provide +a minimum compatibility with old patches; +#X restore 592 3 pd README; +#N canvas 165 0 544 526 callbacks 0; +#N canvas 61 12 963 457 viewpoint 0; +#X obj 476 254 t l l; +#X obj 508 277 list length; +#X obj 508 300 select 6; +#X obj 476 347 spigot 0; +#X msg 508 326 1; +#X msg 547 346 0; +#X obj 561 324 t b f; +#X obj 593 367 print error; +#X msg 593 348 perspec message needs 6 arguments (got \$1); +#X obj 476 367 s \$0-perspec; +#N canvas 0 0 450 300 9-args 0; +#X obj 67 60 inlet; +#X obj 67 239 outlet; +#X connect 0 0 1 0; +#X restore 163 275 pd 9-args; +#X obj 163 316 t a; +#N canvas 1414 250 827 534 345-args 0; +#X obj 72 36 inlet; +#X obj 72 379 outlet; +#X obj 72 81 pack 0 0 0 0 0; +#X msg 143 59 0; +#X text 179 81 x y z azm elv; +#X obj 72 344 pack 0 0 0 0 0 0 0 0 0; +#X text 234 347 eyeX eyeY eyeZ centerX centerY centerZ upX upY upZ +; +#X obj 72 117 t f l; +#X obj 104 144 unpack 0 0 0 0 0; +#N canvas 694 467 450 300 dx 0; +#X obj 52 32 inlet azm; +#X obj 269 52 inlet elv; +#X obj 52 190 outlet dX; +#X obj 131 190 outlet dY; +#X obj 210 190 outlet dZ; +#X obj 342 54 / 45; +#X obj 251 94 * 0.0174533; +#X obj 342 31 atan; +#X msg 342 10 1; +#X obj 251 74 f; +#X obj 52 94 * 0.0174533; +#X obj 52 53 t f b b; +#X obj 52 130 expr cos($f2)*sin($f1) \; sin($f2) \; -cos($f2)*cos($f1) +; +#X connect 0 0 11 0; +#X connect 1 0 9 1; +#X connect 5 0 6 1; +#X connect 5 0 10 1; +#X connect 6 0 12 1; +#X connect 7 0 5 0; +#X connect 8 0 7 0; +#X connect 9 0 6 0; +#X connect 10 0 12 0; +#X connect 11 0 10 0; +#X connect 11 1 9 0; +#X connect 11 2 8 0; +#X connect 12 0 2 0; +#X connect 12 1 3 0; +#X connect 12 2 4 0; +#X restore 185 167 pd dx dy dz; +#N canvas 488 175 450 300 up 0; +#X obj 84 48 inlet dX; +#X obj 84 238 outlet upX; +#X obj 184 48 inlet dY; +#X obj 184 238 outlet upY; +#X obj 294 48 inlet dZ; +#X obj 294 238 outlet upZ; +#X obj 84 121 expr -$f1*$f2 \; $f1*$f1+$f3*$f3 \; -$f2*$f3; +#X connect 0 0 6 0; +#X connect 2 0 6 1; +#X connect 4 0 6 2; +#X connect 6 0 1 0; +#X connect 6 1 3 0; +#X connect 6 2 5 0; +#X restore 227 312 pd up; +#X obj 146 269 * 1; +#X obj 128 288 +; +#X obj 337 187 t f f f; +#X obj 176 269 * 1; +#X obj 158 288 +; +#X obj 206 269 * 1; +#X obj 188 288 +; +#X obj 72 60 t l b b; +#X obj 356 36 inlet stereoFocal; +#X obj 338 103 * -1; +#X obj 338 125 moses; +#X obj 338 146 * -1; +#X msg 372 146 1; +#X obj 337 165 t f; +#X obj 338 81 f; +#X connect 0 0 18 0; +#X connect 2 0 7 0; +#X connect 3 0 2 3; +#X connect 3 0 2 4; +#X connect 5 0 1 0; +#X connect 7 0 5 0; +#X connect 7 1 8 0; +#X connect 8 0 12 0; +#X connect 8 1 5 1; +#X connect 8 1 15 0; +#X connect 8 2 5 2; +#X connect 8 2 17 0; +#X connect 8 3 9 0; +#X connect 8 4 9 1; +#X connect 9 0 10 0; +#X connect 9 0 11 0; +#X connect 9 1 10 1; +#X connect 9 1 14 0; +#X connect 9 2 10 2; +#X connect 9 2 16 0; +#X connect 10 0 5 6; +#X connect 10 1 5 7; +#X connect 10 2 5 8; +#X connect 11 0 12 1; +#X connect 12 0 5 3; +#X connect 13 0 11 1; +#X connect 13 1 14 1; +#X connect 13 2 16 1; +#X connect 14 0 15 1; +#X connect 15 0 5 4; +#X connect 16 0 17 1; +#X connect 17 0 5 5; +#X connect 18 0 2 0; +#X connect 18 1 3 0; +#X connect 18 2 25 0; +#X connect 19 0 25 1; +#X connect 20 0 21 0; +#X connect 21 0 22 0; +#X connect 21 1 23 0; +#X connect 22 0 24 0; +#X connect 23 0 24 0; +#X connect 24 0 13 0; +#X connect 25 0 20 0; +#X restore 251 275 pd 345-args; +#N canvas 0 0 789 408 demux 0; +#X obj 119 92 t l l; +#X obj 151 112 list length; +#X obj 119 246 spigot 0; +#X obj 250 246 spigot 0; +#X obj 119 216 t l l l; +#X obj 370 246 spigot 0; +#X obj 151 133 t f b; +#X msg 304 187 0; +#X msg 423 195 1; +#X msg 179 215 1; +#X msg 276 218 1; +#X obj 370 313 print error; +#X obj 119 47 inlet; +#X obj 151 156 select 9 3 4 5; +#X obj 197 181 t b; +#X obj 119 295 outlet 9-args; +#X obj 250 355 outlet 345-args; +#X msg 370 285 view message needs 3 4 5 or 9 arguments; +#X connect 0 0 4 0; +#X connect 0 1 1 0; +#X connect 1 0 6 0; +#X connect 2 0 15 0; +#X connect 3 0 16 0; +#X connect 4 0 2 0; +#X connect 4 1 3 0; +#X connect 4 2 5 0; +#X connect 5 0 17 0; +#X connect 6 0 13 0; +#X connect 6 1 7 0; +#X connect 7 0 2 1; +#X connect 7 0 3 1; +#X connect 7 0 5 1; +#X connect 8 0 5 1; +#X connect 9 0 2 1; +#X connect 10 0 3 1; +#X connect 12 0 0 0; +#X connect 13 0 9 0; +#X connect 13 1 14 0; +#X connect 13 2 14 0; +#X connect 13 3 14 0; +#X connect 13 4 8 0; +#X connect 14 0 10 0; +#X connect 17 0 11 0; +#X restore 163 246 pd demux; +#X obj 325 253 r \$0-stereoFocal; +#X obj 163 339 s \$0-viewpoint; +#X obj 163 155 route view perspec; +#X obj 163 115 inlet; +#X obj 286 115 outlet; +#X obj 313 295 r \$0-reset; +#X msg 313 316 0 0 4 0 0 0 0 1 0; +#X obj 612 302 r \$0-reset; +#X msg 612 322 -1 1 -1 1 1 20; +#X connect 0 0 3 0; +#X connect 0 1 1 0; +#X connect 1 0 2 0; +#X connect 2 0 4 0; +#X connect 2 1 6 0; +#X connect 3 0 9 0; +#X connect 4 0 3 1; +#X connect 5 0 3 1; +#X connect 6 0 5 0; +#X connect 6 1 8 0; +#X connect 8 0 7 0; +#X connect 10 0 11 0; +#X connect 11 0 15 0; +#X connect 12 0 11 0; +#X connect 13 0 10 0; +#X connect 13 1 12 0; +#X connect 14 0 12 1; +#X connect 16 0 13 0; +#X connect 16 1 0 0; +#X connect 16 2 18 0; +#X connect 17 0 16 0; +#X connect 19 0 20 0; +#X connect 20 0 15 0; +#X connect 21 0 22 0; +#X connect 22 0 9 0; +#X restore 118 148 pd viewpoint; +#X obj 118 31 inlet message; +#N canvas 437 175 450 364 fog 0; +#X obj 79 130 select 1 2 3; +#X obj 79 169 GLdefine GL_LINEAR; +#X obj 108 188 GLdefine GL_EXP; +#X obj 136 209 GLdefine GL_EXP2; +#X obj 79 85 route fogmode fog fogcolor; +#X obj 79 109 i; +#N canvas 0 0 694 400 fogMess 0; +#X obj 119 66 inlet; +#X obj 119 92 t l l; +#X obj 151 112 list length; +#X obj 119 246 spigot 0; +#X obj 250 246 spigot 0; +#X obj 250 272 pack 0 0; +#X obj 119 271 f 0; +#X obj 119 216 t l l l; +#X obj 370 246 spigot 0; +#X obj 151 133 t f b; +#X msg 304 187 0; +#X obj 151 156 select 1 2; +#X msg 423 195 1; +#X msg 179 215 1; +#X msg 276 218 1; +#X obj 370 313 print error; +#X msg 370 285 fog message needs 1 or 2 arguments; +#X obj 119 312 s \$0-fogDensity; +#X obj 250 313 s \$0-fogRange; +#X connect 0 0 1 0; +#X connect 1 0 7 0; +#X connect 1 1 2 0; +#X connect 2 0 9 0; +#X connect 3 0 6 0; +#X connect 4 0 5 0; +#X connect 5 0 18 0; +#X connect 6 0 17 0; +#X connect 7 0 3 0; +#X connect 7 1 4 0; +#X connect 7 2 8 0; +#X connect 8 0 16 0; +#X connect 9 0 11 0; +#X connect 9 1 10 0; +#X connect 10 0 3 1; +#X connect 10 0 4 1; +#X connect 10 0 8 1; +#X connect 11 0 13 0; +#X connect 11 1 14 0; +#X connect 11 2 12 0; +#X connect 12 0 8 1; +#X connect 13 0 3 1; +#X connect 14 0 4 1; +#X connect 16 0 15 0; +#X restore 209 134 pd fogMess; +#N canvas 173 78 694 400 fogColorMess 0; +#X obj 119 66 inlet; +#X obj 151 112 list length; +#X obj 119 246 spigot 0; +#X obj 370 246 spigot 0; +#X obj 151 133 t f b; +#X msg 304 187 0; +#X msg 423 195 1; +#X msg 179 215 1; +#X obj 370 313 print error; +#X obj 151 156 select 3 4; +#X msg 370 285 fogcolor needs 3 or 4 arguments; +#X obj 119 92 t l l b; +#X obj 119 316 pack 0 0 0 1; +#X obj 119 216 t l l; +#X msg 200 297 1; +#X obj 119 362 s \$0-fogColor; +#X connect 0 0 11 0; +#X connect 1 0 4 0; +#X connect 2 0 12 0; +#X connect 3 0 10 0; +#X connect 4 0 9 0; +#X connect 4 1 5 0; +#X connect 5 0 2 1; +#X connect 5 0 3 1; +#X connect 6 0 3 1; +#X connect 7 0 2 1; +#X connect 9 0 7 0; +#X connect 9 1 7 0; +#X connect 9 2 6 0; +#X connect 10 0 8 0; +#X connect 11 0 13 0; +#X connect 11 1 1 0; +#X connect 11 2 14 0; +#X connect 12 0 15 0; +#X connect 13 0 2 0; +#X connect 13 1 3 0; +#X connect 14 0 12 3; +#X restore 299 134 pd fogColorMess; +#X obj 79 59 inlet; +#X obj 283 62 outlet; +#X obj 233 304 s \$0-fog; +#X obj 98 232 t f b; +#X msg 200 277 1; +#X msg 233 277 0; +#X obj 98 291 s \$0-fogMode; +#X connect 0 0 1 0; +#X connect 0 1 2 0; +#X connect 0 2 3 0; +#X connect 0 3 13 0; +#X connect 1 0 11 0; +#X connect 2 0 11 0; +#X connect 3 0 11 0; +#X connect 4 0 5 0; +#X connect 4 1 6 0; +#X connect 4 2 7 0; +#X connect 4 3 9 0; +#X connect 5 0 0 0; +#X connect 8 0 4 0; +#X connect 11 0 14 0; +#X connect 11 1 12 0; +#X connect 12 0 10 0; +#X connect 13 0 10 0; +#X restore 118 172 pd fog; +#N canvas 574 76 450 300 reset 0; +#X obj 118 57 route reset; +#X obj 118 78 t b; +#X obj 118 100 s \$0-reset; +#X obj 118 28 inlet; +#X obj 209 27 outlet; +#X connect 0 0 1 0; +#X connect 0 1 4 0; +#X connect 1 0 2 0; +#X connect 3 0 0 0; +#X restore 118 54 pd reset; +#N canvas 0 0 975 410 lighting 0; +#X obj 97 48 inlet; +#X obj 97 69 route lighting ambient specular shininess; +#X obj 97 97 i; +#X obj 97 122 > 0; +#X obj 97 149 s \$0-lighting; +#X obj 488 53 r \$0-reset; +#X msg 204 215 0.1 0.1 0.1 1; +#X obj 84 213 pack 0 0 0 1; +#X obj 84 186 t l b; +#X msg 165 188 1; +#X obj 84 234 s \$0-ambient; +#X obj 84 289 pack 0 0 0 1; +#X obj 84 262 t l b; +#X msg 165 264 1; +#X msg 273 255 1 1 1 1; +#X obj 84 314 s \$0-specular; +#X msg 543 128 100; +#X obj 436 133 f; +#X obj 436 159 s \$0-shininess; +#X obj 356 48 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 1 8 0; +#X connect 1 2 12 0; +#X connect 1 3 17 0; +#X connect 1 4 19 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 5 0 6 0; +#X connect 5 0 14 0; +#X connect 5 0 16 0; +#X connect 6 0 8 0; +#X connect 7 0 10 0; +#X connect 8 0 7 0; +#X connect 8 1 9 0; +#X connect 9 0 7 3; +#X connect 11 0 15 0; +#X connect 12 0 11 0; +#X connect 12 1 13 0; +#X connect 13 0 11 3; +#X connect 14 0 12 0; +#X connect 16 0 17 0; +#X connect 17 0 18 0; +#X restore 118 193 pd lighting; +#N canvas 0 0 1001 529 window 0; +#X obj 111 53 inlet; +#X obj 700 421 outlet; +#X obj 111 109 route create destroy; +#X text 300 17 create destroy \; dimen fullscreen offset secondscreen +\; border title \; cursor topmost menubar \; buffer \; FSAA; +#X obj 111 163 route dimen fullscreen offset secondscreen; +#X obj 111 283 route border title; +#X obj 111 403 route cursor topmost menubar; +#X obj 570 420 route buffer FSAA; +#N canvas 0 0 666 297 buffer 0; +#X obj 71 47 inlet; +#X obj 71 84 select 1 2; +#X obj 71 193 s \$0-buffer; +#X msg 71 162 1; +#X msg 104 162 2; +#X obj 203 183 print error; +#X msg 203 158 "buffer" must be 1 (single-buffered) or 2 (double-buffered) +; +#X connect 0 0 1 0; +#X connect 1 0 3 0; +#X connect 1 1 4 0; +#X connect 1 2 6 0; +#X connect 3 0 2 0; +#X connect 4 0 2 0; +#X connect 6 0 5 0; +#X restore 570 443 pd buffer; +#N canvas 0 0 666 297 FSAA 0; +#X obj 71 47 inlet; +#X obj 71 193 s \$0-FSAA; +#X obj 71 131 i; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X restore 639 443 pd FSAA; +#X obj 111 135 s \$0-create; +#X obj 191 135 s \$0-destroy; +#X obj 111 478 s \$0-cursor; +#X obj 111 434 i; +#X obj 111 456 != 0; +#X obj 191 434 i; +#X obj 191 456 != 0; +#X obj 191 478 s \$0-topmost; +#X obj 281 434 i; +#X obj 281 478 s \$0-menubar; +#X obj 111 311 i; +#X obj 111 333 != 0; +#X obj 111 355 s \$0-border; +#X obj 201 354 s \$0-title; +#X obj 605 99 r \$0-reset; +#N canvas 487 195 450 300 dimen 0; +#X obj 80 14 inlet; +#X obj 80 242 s \$0-dimen; +#X obj 170 73 unpack 0 0; +#X obj 170 98 > 0; +#X obj 237 100 > 0; +#X obj 170 120 *; +#X obj 80 169 spigot; +#X obj 170 147 t f f; +#X obj 218 147 select 0; +#X obj 218 211 print error; +#X msg 218 190 dimensions must be > 0; +#X obj 80 48 t l l b; +#X msg 188 44 0; +#X connect 0 0 11 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 1; +#X connect 5 0 7 0; +#X connect 6 0 1 0; +#X connect 7 0 6 1; +#X connect 7 1 8 0; +#X connect 8 0 10 0; +#X connect 10 0 9 0; +#X connect 11 0 6 0; +#X connect 11 1 2 0; +#X connect 11 2 12 0; +#X connect 12 0 5 1; +#X connect 12 0 6 1; +#X restore 111 216 pd dimen; +#X obj 183 184 i; +#X obj 183 206 != 0; +#X obj 183 228 s \$0-fullscreen; +#N canvas 487 195 450 300 offset 0; +#X obj 80 14 inlet; +#X obj 80 148 unpack; +#X obj 80 169 pack; +#X obj 80 97 t l b; +#X msg 112 119 0; +#X obj 80 242 s \$0-offset; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 1 1 2 1; +#X connect 2 0 5 0; +#X connect 3 0 1 0; +#X connect 3 1 4 0; +#X connect 4 0 2 1; +#X restore 256 191 pd offset; +#X obj 329 186 i; +#X obj 329 208 != 0; +#X obj 329 230 s \$0-secondscreen; +#X msg 606 120 border 1 \, title GEM \, cursor 1 \, topmost 0 \, menubar +0 \, buffer 2 \, FSAA 0 \, dimen 500 500 \, fullscreen 0 \, offset +-1 -1 \, secondscreen 0; +#X connect 0 0 2 0; +#X connect 2 0 10 0; +#X connect 2 1 11 0; +#X connect 2 2 4 0; +#X connect 4 0 25 0; +#X connect 4 1 26 0; +#X connect 4 2 29 0; +#X connect 4 3 30 0; +#X connect 4 4 5 0; +#X connect 5 0 20 0; +#X connect 5 1 23 0; +#X connect 5 2 6 0; +#X connect 6 0 13 0; +#X connect 6 1 15 0; +#X connect 6 2 18 0; +#X connect 6 3 7 0; +#X connect 7 0 8 0; +#X connect 7 1 9 0; +#X connect 7 2 1 0; +#X connect 13 0 14 0; +#X connect 14 0 12 0; +#X connect 15 0 16 0; +#X connect 16 0 17 0; +#X connect 18 0 19 0; +#X connect 20 0 21 0; +#X connect 21 0 22 0; +#X connect 24 0 33 0; +#X connect 26 0 27 0; +#X connect 27 0 28 0; +#X connect 30 0 31 0; +#X connect 31 0 32 0; +#X connect 33 0 4 0; +#X restore 118 106 pd window; +#N canvas 0 0 450 300 print 0; +#X obj 118 78 t b; +#X obj 118 28 inlet; +#X obj 209 27 outlet; +#X obj 118 57 route print; +#X obj 118 100 s \$0-print; +#X connect 0 0 4 0; +#X connect 1 0 3 0; +#X connect 3 0 0 0; +#X connect 3 1 2 0; +#X restore 118 77 pd print; +#N canvas 1521 50 810 323 stereo 0; +#X obj 101 28 inlet; +#X obj 258 31 outlet; +#X obj 109 80 route createStereo createstereo stereo stereoSep stereosep +stereoFoc stereofoc stereoLine stereoline; +#X obj 243 117 t f; +#X obj 332 172 t f; +#X obj 422 125 t f; +#X obj 198 141 s \$0-stereo; +#X obj 422 167 s \$0-stereoLine; +#X obj 332 192 s \$0-stereoFocal; +#X obj 243 216 s \$0-stereoSeparation; +#X obj 109 164 t b; +#X msg 109 208 createStereo?; +#X obj 109 239 print error; +#X obj 422 146 != 0; +#X obj 198 118 i; +#X connect 0 0 2 0; +#X connect 2 0 10 0; +#X connect 2 1 10 0; +#X connect 2 2 14 0; +#X connect 2 3 3 0; +#X connect 2 4 3 0; +#X connect 2 5 4 0; +#X connect 2 6 4 0; +#X connect 2 7 5 0; +#X connect 2 8 5 0; +#X connect 2 9 1 0; +#X connect 3 0 9 0; +#X connect 4 0 8 0; +#X connect 5 0 13 0; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X connect 13 0 7 0; +#X connect 14 0 6 0; +#X restore 118 216 pd stereo; +#N canvas 366 300 658 300 clearmask 0; +#X obj 57 51 inlet; +#X obj 57 72 route clearmask; +#X obj 173 69 outlet; +#X obj 57 121 s \$0-clearmask; +#X obj 57 97 t f; +#X obj 222 110 r \$0-reset; +#X obj 226 200 GLdefine GL_COLOR_BUFFER_BIT; +#X obj 255 223 GLdefine GL_DEPTH_BUFFER_BIT; +#X obj 256 249 GLdefine GL_STENCIL_BUFFER_BIT; +#X obj 239 271 |; +#X obj 226 249 |; +#X obj 222 169 t b b b; +#X msg 246 133 bang; +#X obj 317 108 loadbang; +#X connect 0 0 1 0; +#X connect 1 0 4 0; +#X connect 1 1 2 0; +#X connect 4 0 3 0; +#X connect 5 0 11 0; +#X connect 6 0 10 0; +#X connect 7 0 10 1; +#X connect 8 0 9 1; +#X connect 9 0 3 0; +#X connect 10 0 9 0; +#X connect 11 0 6 0; +#X connect 11 1 7 0; +#X connect 11 2 8 0; +#X connect 12 0 11 0; +#X connect 13 0 11 0; +#X restore 118 241 pd clearmask; +#X text 291 333 misc:; +#X text 285 405 multiple:; +#X text 325 425 buffer reset print; +#X text 290 470 unused:; +#X text 331 485 blur; +#N canvas 574 300 450 300 color 0; +#X obj 67 38 inlet; +#X obj 211 41 outlet; +#X obj 67 190 pack 0 0 0 1; +#X obj 67 163 t l b; +#X msg 148 165 1; +#X msg 90 138 0 0 0 1; +#X obj 90 114 r \$0-reset; +#X obj 67 214 s \$0-color; +#X obj 67 66 route color; +#X connect 0 0 8 0; +#X connect 2 0 7 0; +#X connect 3 0 2 0; +#X connect 3 1 4 0; +#X connect 4 0 2 3; +#X connect 5 0 3 0; +#X connect 6 0 5 0; +#X connect 8 0 3 0; +#X connect 8 1 1 0; +#X restore 118 272 pd color; +#N canvas 0 0 749 300 render 0; +#X obj 31 38 inlet; +#X obj 143 36 outlet; +#X obj 31 189 s \$0-render; +#X obj 31 153 > 0; +#X obj 127 172 print error; +#X msg 127 147 TODO: implement bang render; +#X obj 180 91 s \$0-rate; +#X obj 31 63 route float bang render frame; +#X obj 394 86 > 0; +#X obj 394 107 select 0; +#X msg 394 129 negative fps...; +#X obj 394 153 print error; +#X obj 394 63 r \$0-rate; +#X obj 348 205 r \$0-destroy; +#X msg 348 230 0; +#X connect 0 0 7 0; +#X connect 3 0 2 0; +#X connect 5 0 4 0; +#X connect 7 0 3 0; +#X connect 7 1 5 0; +#X connect 7 2 5 0; +#X connect 7 3 6 0; +#X connect 7 4 1 0; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 10 0 11 0; +#X connect 12 0 8 0; +#X connect 13 0 14 0; +#X connect 14 0 3 0; +#X restore 118 301 pd render; +#X text 299 352 blur print profile frame fps; +#X connect 0 0 2 0; +#X connect 1 0 3 0; +#X connect 2 0 4 0; +#X connect 3 0 6 0; +#X connect 4 0 7 0; +#X connect 5 0 0 0; +#X connect 6 0 5 0; +#X connect 7 0 8 0; +#X connect 8 0 14 0; +#X connect 14 0 15 0; +#X restore 126 127 pd callbacks; +#N canvas 1830 466 450 333 resetValues 0; +#N canvas 1854 534 377 366 viewpoint 0; +#X obj 144 37 inlet gemlist; +#X obj 144 298 outlet gemlist; +#N canvas 76 86 399 310 view 0; +#X obj 24 59 GEMglMatrixMode GL_MODELVIEW; +#X obj 66 133 unpack 0 0 0 0 0 0 0 0 0; +#X obj 24 25 inlet gemlist; +#X obj 24 257 outlet gemlist; +#X obj 24 156 GEMgluLookAt 0 0 4 0 0 0 0 1 0; +#X obj 66 109 r \$0-viewpoint; +#X obj 24 81 GEMglLoadIdentity; +#X connect 0 0 6 0; +#X connect 1 0 4 1; +#X connect 1 1 4 2; +#X connect 1 2 4 3; +#X connect 1 3 4 4; +#X connect 1 4 4 5; +#X connect 1 5 4 6; +#X connect 1 6 4 7; +#X connect 1 7 4 8; +#X connect 1 8 4 9; +#X connect 2 0 0 0; +#X connect 4 0 3 0; +#X connect 5 0 1 0; +#X connect 6 0 4 0; +#X restore 144 219 pd view; +#N canvas 444 106 518 344 perspec 0; +#X obj 144 79 GEMglMatrixMode GL_PROJECTION; +#X obj 144 104 GEMglLoadIdentity; +#X obj 144 37 inlet gemlist; +#X obj 144 268 outlet gemlist; +#X obj 144 245 GEMglFrustum -1 1 -1 1 1 20; +#X obj 207 170 unpack 0 0 0 0 0 0; +#X obj 207 150 r \$0-perspec; +#X obj 175 221 * 1; +#X obj 175 200 f -1; +#X obj 206 221 * 1; +#X obj 206 200 f 1; +#X obj 387 97 r \$0-realdimen; +#X obj 387 122 /; +#X obj 378 155 t b f f; +#X obj 164 151 t b b; +#X connect 0 0 1 0; +#X connect 1 0 4 0; +#X connect 2 0 0 0; +#X connect 4 0 3 0; +#X connect 5 0 8 0; +#X connect 5 1 10 0; +#X connect 5 2 4 3; +#X connect 5 3 4 4; +#X connect 5 4 4 5; +#X connect 5 5 4 6; +#X connect 6 0 5 0; +#X connect 7 0 4 1; +#X connect 8 0 7 0; +#X connect 9 0 4 2; +#X connect 10 0 9 0; +#X connect 11 0 12 0; +#X connect 12 0 13 0; +#X connect 13 0 14 0; +#X connect 13 1 7 1; +#X connect 13 2 9 1; +#X connect 14 0 8 0; +#X connect 14 1 10 0; +#X restore 144 166 pd perspec; +#N canvas 1900 93 450 229 viewport 0; +#X obj 87 93 inlet; +#X obj 87 157 outlet; +#X obj 87 126 GEMglViewport 0 0 500 500; +#X obj 222 96 unpack 0 0; +#X obj 222 42 r \$0-realdimen; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X connect 3 0 2 3; +#X connect 3 1 2 4; +#X connect 4 0 3 0; +#X restore 144 105 pd viewport; +#X connect 0 0 4 0; +#X connect 2 0 1 0; +#X connect 3 0 2 0; +#X connect 4 0 3 0; +#X restore 115 160 pd viewpoint; +#N canvas 1543 180 685 625 fog 0; +#X obj 71 73 inlet; +#X obj 71 507 outlet; +#X obj 71 98 t a a; +#X obj 71 246 spigot 1; +#X obj 71 273 GEMglDisable GL_FOG; +#X obj 71 428 t a; +#X obj 261 273 GEMglEnable GL_FOG; +#X obj 261 246 spigot 0; +#X obj 165 223 t f f; +#X obj 165 199 == 0; +#N canvas 0 0 450 300 density 0; +#X obj 100 113 inlet; +#X obj 100 234 outlet; +#X obj 100 203 GEMglFogf; +#X obj 238 82 inlet value; +#X obj 238 139 t b f; +#X obj 130 169 GLdefine GL_FOG_DENSITY; +#X obj 238 112 f 0.5; +#X obj 336 78 r \$0-reset; +#X msg 336 101 0.5; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X connect 3 0 6 0; +#X connect 4 0 5 0; +#X connect 4 1 2 2; +#X connect 5 0 2 1; +#X connect 6 0 4 0; +#X connect 7 0 8 0; +#X connect 8 0 6 1; +#X restore 261 326 pd density; +#N canvas 0 0 450 300 mode 0; +#X obj 149 191 GEMglFogf; +#X obj 192 144 t b f; +#X obj 192 166 GLdefine GL_FOG_MODE; +#X obj 149 106 inlet; +#X obj 149 231 outlet; +#X obj 192 106 inlet value; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 1 1 0 2; +#X connect 2 0 0 1; +#X connect 3 0 0 0; +#X connect 5 0 1 0; +#X restore 261 300 pd mode; +#N canvas 299 157 450 300 start 0; +#X obj 100 113 inlet; +#X obj 100 234 outlet; +#X obj 100 203 GEMglFogf; +#X obj 238 82 inlet value; +#X obj 238 139 t b f; +#X obj 130 169 GLdefine GL_FOG_START; +#X obj 238 112 f 1; +#X obj 336 78 r \$0-reset; +#X msg 336 101 1; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X connect 3 0 6 0; +#X connect 4 0 5 0; +#X connect 4 1 2 2; +#X connect 5 0 2 1; +#X connect 6 0 4 0; +#X connect 7 0 8 0; +#X connect 8 0 6 1; +#X restore 261 346 pd start; +#N canvas 0 0 450 300 end 0; +#X obj 100 113 inlet; +#X obj 100 234 outlet; +#X obj 100 203 GEMglFogf; +#X obj 238 82 inlet value; +#X obj 238 139 t b f; +#X obj 130 169 GLdefine GL_FOG_END; +#X obj 336 78 r \$0-reset; +#X obj 238 112 f 20; +#X msg 336 101 20; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X connect 3 0 7 0; +#X connect 4 0 5 0; +#X connect 4 1 2 2; +#X connect 5 0 2 1; +#X connect 6 0 8 0; +#X connect 7 0 4 0; +#X connect 8 0 7 1; +#X restore 261 366 pd end; +#N canvas 0 0 450 300 color 0; +#X obj 100 113 inlet; +#X obj 100 234 outlet; +#X obj 238 42 inlet value; +#X obj 100 203 GEMglFogfv; +#X obj 133 169 GLdefine GL_FOG_COLOR; +#X obj 238 139 t b l; +#X obj 238 64 route bang; +#X obj 280 92 t b l; +#X obj 368 68 r \$0-reset; +#X msg 368 91 1 1 1 1; +#X obj 238 112 list append 1 1 1 1; +#X connect 0 0 3 0; +#X connect 2 0 6 0; +#X connect 3 0 1 0; +#X connect 4 0 3 1; +#X connect 5 0 4 0; +#X connect 5 1 3 2; +#X connect 6 0 10 0; +#X connect 6 1 7 0; +#X connect 7 0 10 0; +#X connect 7 1 10 1; +#X connect 8 0 9 0; +#X connect 9 0 10 1; +#X connect 10 0 5 0; +#X restore 261 386 pd color; +#X obj 485 324 unpack; +#X obj 165 174 r \$0-fog; +#X obj 307 219 r \$0-fogMode; +#X obj 347 307 r \$0-fogDensity; +#X obj 485 301 r \$0-fogRange; +#X obj 365 368 r \$0-fogColor; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 7 0; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 1 0; +#X connect 6 0 11 0; +#X connect 7 0 6 0; +#X connect 8 0 3 1; +#X connect 8 1 7 1; +#X connect 9 0 8 0; +#X connect 10 0 12 0; +#X connect 11 0 10 0; +#X connect 12 0 13 0; +#X connect 13 0 14 0; +#X connect 14 0 5 0; +#X connect 15 0 12 1; +#X connect 15 1 13 1; +#X connect 16 0 9 0; +#X connect 17 0 11 1; +#X connect 18 0 10 1; +#X connect 19 0 15 0; +#X connect 20 0 14 1; +#X restore 115 186 pd fog; +#N canvas 302 60 722 526 lighting 0; +#X obj 71 168 t a a; +#X obj 71 196 spigot 1; +#X obj 361 216 spigot 0; +#X obj 175 149 == 0; +#X obj 71 286 GEMglDisable GL_COLOR_MATERIAL; +#X obj 71 306 GEMglDisable GL_AUTO_NORMAL; +#X obj 71 326 GEMglDisable GL_NORMALIZE; +#X obj 71 350 GEMglShadeModel GL_FLAT; +#N canvas 0 0 735 347 lightmodel 0; +#X obj 71 266 GEMglLightModeli; +#X obj 125 235 GLdefine GL_LIGHT_MODEL_TWO_SIDE; +#X obj 361 235 GLdefine GL_FALSE; +#X obj 71 171 inlet; +#X obj 71 303 outlet; +#X obj 141 209 t b b; +#X obj 277 164 inlet; +#X connect 0 0 4 0; +#X connect 1 0 0 1; +#X connect 2 0 0 2; +#X connect 3 0 0 0; +#X connect 5 0 1 0; +#X connect 5 1 2 0; +#X connect 6 0 5 0; +#X restore 71 262 pd lightmodel; +#X obj 71 444 t a; +#X obj 71 467 outlet gemlist; +#X obj 71 143 inlet gemlist; +#N canvas 0 0 735 347 lightmodel 0; +#X obj 71 266 GEMglLightModeli; +#X obj 125 235 GLdefine GL_LIGHT_MODEL_TWO_SIDE; +#X obj 71 171 inlet; +#X obj 71 303 outlet; +#X obj 141 209 t b b; +#X obj 277 164 inlet; +#X obj 361 235 GLdefine GL_TRUE; +#X connect 0 0 3 0; +#X connect 1 0 0 1; +#X connect 2 0 0 0; +#X connect 4 0 1 0; +#X connect 4 1 6 0; +#X connect 5 0 4 0; +#X connect 6 0 0 2; +#X restore 361 262 pd lightmodel; +#X obj 361 236 GEMglEnable GL_LIGHTING; +#X obj 361 286 GEMglEnable GL_COLOR_MATERIAL; +#X obj 361 376 GEMglEnable GL_AUTO_NORMAL; +#X obj 361 396 GEMglEnable GL_NORMALIZE; +#X obj 361 420 GEMglShadeModel GL_SMOOTH; +#N canvas 1355 50 986 299 ambient 0; +#X obj 89 194 outlet gemlist; +#X obj 89 128 inlet gemlist; +#X obj 89 161 GEMglMaterialfv GL_FRONT_AND_BACK GL_AMBIENT 0.1 0.1 +0.1 1; +#X obj 492 133 r \$0-ambient; +#X connect 1 0 2 0; +#X connect 2 0 0 0; +#X connect 3 0 2 3; +#X restore 361 309 pd ambient; +#N canvas 1355 50 986 299 specular 0; +#X obj 89 194 outlet gemlist; +#X obj 89 128 inlet gemlist; +#X obj 89 161 GEMglMaterialfv GL_FRONT_AND_BACK GL_SPECULAR 1 1 1 1 +; +#X obj 457 133 r \$0-specular; +#X connect 1 0 2 0; +#X connect 2 0 0 0; +#X connect 3 0 2 3; +#X restore 361 329 pd specular; +#N canvas 1355 50 986 299 shininess 0; +#X obj 89 194 outlet gemlist; +#X obj 89 128 inlet gemlist; +#X obj 89 161 GEMglMaterialfv GL_FRONT_AND_BACK GL_SHININESS 100; +#X obj 436 133 r \$0-shininess; +#X connect 1 0 2 0; +#X connect 2 0 0 0; +#X connect 3 0 2 3; +#X restore 361 349 pd shininess; +#X obj 175 173 t f f b; +#X obj 292 232 t b b; +#X obj 292 208 loadbang; +#X obj 175 126 r \$0-lighting; +#X obj 320 84 print light; +#X obj 71 235 GEMglDisable GL_LIGHTING; +#X floatatom 437 214 5 0 0 0 - - -; +#X floatatom 242 149 5 0 0 0 - - -; +#X obj 414 191 == 0; +#X connect 0 0 1 0; +#X connect 0 1 2 0; +#X connect 1 0 26 0; +#X connect 2 0 13 0; +#X connect 3 0 21 0; +#X connect 3 0 28 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 7 0 9 0; +#X connect 8 0 4 0; +#X connect 9 0 10 0; +#X connect 11 0 0 0; +#X connect 12 0 14 0; +#X connect 13 0 12 0; +#X connect 14 0 18 0; +#X connect 15 0 16 0; +#X connect 16 0 17 0; +#X connect 17 0 9 0; +#X connect 18 0 19 0; +#X connect 19 0 20 0; +#X connect 20 0 15 0; +#X connect 21 0 1 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 0 8 1; +#X connect 22 1 12 1; +#X connect 23 0 22 0; +#X connect 24 0 3 0; +#X connect 26 0 8 0; +#X connect 29 0 2 1; +#X connect 29 0 27 0; +#X restore 115 138 pd lighting; +#X obj 115 63 inlet; +#X obj 115 260 outlet; +#X text 116 42 GemMan::resetValues(); +#N canvas 5 50 393 417 color 0; +#X obj 56 52 inlet; +#X obj 56 361 outlet; +#X obj 102 192 GEMglClearColor; +#X obj 134 153 unpack 0 0 0 0; +#X obj 102 129 t a b; +#X msg 165 106 0; +#X obj 165 54 r \$0-color; +#X obj 165 76 t a b; +#X msg 192 106 1; +#X obj 102 106 spigot 1; +#X obj 56 85 t a a a; +#X obj 172 309 r \$0-clearmask; +#X obj 79 269 spigot 1; +#X obj 124 218 r \$0-buffer; +#X obj 124 240 == 2; +#X obj 79 339 GEMglClear 17664; +#X obj 165 128 t f; +#X connect 0 0 10 0; +#X connect 3 0 2 1; +#X connect 3 1 2 2; +#X connect 3 2 2 3; +#X connect 3 3 2 4; +#X connect 4 0 2 0; +#X connect 4 1 5 0; +#X connect 5 0 16 0; +#X connect 6 0 7 0; +#X connect 7 0 3 0; +#X connect 7 1 8 0; +#X connect 8 0 16 0; +#X connect 9 0 4 0; +#X connect 10 0 1 0; +#X connect 10 1 12 0; +#X connect 10 2 9 0; +#X connect 11 0 15 1; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 12 1; +#X connect 16 0 9 1; +#X restore 115 91 pd color; +#X connect 0 0 1 0; +#X connect 1 0 4 0; +#X connect 2 0 0 0; +#X connect 3 0 6 0; +#X connect 6 0 2 0; +#X restore 131 259 pd resetValues; +#N canvas 319 85 450 300 normalRendering 0; +#X obj 95 115 t a a; +#X obj 95 70 inlet; +#X obj 95 168 GEMglMatrixMode GL_MODELVIEW; +#X obj 95 197 GEMglLoadIdentity; +#X obj 95 227 GEMgluLookAt 0 0 4 0 0 0 0 1 0; +#X obj 95 252 outlet osd; +#X obj 194 253 outlet render; +#X connect 0 0 2 0; +#X connect 0 1 6 0; +#X connect 1 0 0 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X restore 163 400 pd normalRendering; +#N canvas 4 50 596 529 2screenStereo 0; +#X obj 95 70 inlet; +#X obj 95 90 t a b; +#X obj 163 92 list append 500 500; +#X obj 163 141 unpack; +#X obj 163 164 / 2; +#X obj 163 187 t f f; +#X obj 195 208 /; +#X obj 163 231 pack; +#X obj 95 284 t a a; +#N canvas 593 153 450 602 stereoline 0; +#X obj 118 62 inlet gemlist; +#X obj 118 102 GEMglDisable GL_LIGHTING; +#X obj 118 137 GEMglViewport 0 0 500 500; +#X obj 309 27 inlet width height; +#X obj 309 79 unpack; +#X obj 118 180 GEMglMatrixMode GL_PROJECTION; +#X obj 118 200 GEMglLoadIdentity; +#X obj 118 294 GEMgluLookAt 0 0 4 0 0 0 0 1 0; +#X obj 118 222 GEMglFrustum -1 1 -1 1 1 20; +#X obj 118 274 GEMglLoadIdentity; +#X obj 118 254 GEMglMatrixMode GL_MODELVIEW; +#X obj 118 330 GEMglLineWidth 2; +#X obj 118 353 GEMglColor3f 1 1 1; +#X obj 118 374 GEMglBegin GL_LINES; +#X obj 118 399 GEMglVertex2f 0 -6; +#X obj 118 419 GEMglVertex2f 0 6; +#X obj 118 448 GEMglEnd; +#X obj 118 475 GEMglLineWidth 1; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 5 0; +#X connect 3 0 4 0; +#X connect 4 0 2 3; +#X connect 4 1 2 4; +#X connect 5 0 6 0; +#X connect 6 0 8 0; +#X connect 7 0 11 0; +#X connect 8 0 10 0; +#X connect 9 0 7 0; +#X connect 10 0 9 0; +#X connect 11 0 12 0; +#X connect 12 0 13 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 17 0; +#X restore 95 360 pd stereoline; +#X obj 163 120 t l l; +#X obj 156 312 r \$0-stereoLine; +#X obj 95 327 spigot 1; +#X obj 293 65 r \$0-realdimen; +#X obj 453 369 outlet render; +#X obj 358 374 outlet osd; +#N canvas 352 49 672 526 render-2screen 0; +#N canvas 354 89 886 440 viewport 0; +#X obj 87 146 GEMglMatrixMode GL_PROJECTION; +#X obj 87 166 GEMglLoadIdentity; +#X obj 118 247 unpack 0 0 0 0 0 0; +#X obj 87 337 GEMglFrustum -1 1 -1 1 1 20; +#X obj 285 197 t f f; +#X obj 87 126 GEMglViewport 0 0 250 500; +#X obj 87 98 inlet gemlist; +#X obj 87 365 outlet gemlist; +#X obj 222 43 inlet viewport; +#X obj 222 66 unpack 0 0 0 0; +#X obj 428 48 inlet xDivY; +#X obj 118 224 r \$0-perspec; +#X obj 237 197 t b b; +#X obj 118 280 f -1; +#X obj 159 280 f 1; +#X obj 118 312 * 0.5; +#X obj 159 312 * 0.5; +#X obj 237 175 t b f; +#X connect 0 0 1 0; +#X connect 1 0 3 0; +#X connect 2 0 13 0; +#X connect 2 1 14 0; +#X connect 2 2 3 3; +#X connect 2 3 3 4; +#X connect 2 4 3 5; +#X connect 2 5 3 6; +#X connect 3 0 7 0; +#X connect 4 0 15 1; +#X connect 4 1 16 1; +#X connect 5 0 0 0; +#X connect 6 0 5 0; +#X connect 8 0 9 0; +#X connect 9 0 5 1; +#X connect 9 1 5 2; +#X connect 9 2 5 3; +#X connect 9 3 5 4; +#X connect 10 0 17 0; +#X connect 11 0 2 0; +#X connect 12 0 13 0; +#X connect 12 1 14 0; +#X connect 13 0 15 0; +#X connect 14 0 16 0; +#X connect 15 0 3 1; +#X connect 16 0 3 2; +#X connect 17 0 12 0; +#X connect 17 1 4 0; +#X restore 271 181 pd viewport; +#X msg 308 154 0 0 \$1 \$2; +#N canvas 0 0 1146 300 lookat 0; +#X obj 145 108 GEMglMatrixMode GL_MODELVIEW; +#X obj 145 127 GEMglLoadIdentity; +#X obj 145 227 GEMgluLookAt 0 0 4 0 0 0 0 1 0; +#X obj 187 153 unpack 0 0 4 0 0 0 0 1 0; +#X obj 145 77 inlet gemlist; +#X obj 145 261 outlet gemlist; +#X obj 468 65 inlet stereoSep; +#X obj 598 65 inlet stereoFoc; +#X obj 317 60 inlet view; +#X obj 283 198 +; +#X obj 186 173 t b f; +#X obj 294 178 t b f; +#X obj 168 193 + 0.15; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 5 0; +#X connect 3 0 12 0; +#X connect 3 1 2 2; +#X connect 3 2 2 3; +#X connect 3 3 2 4; +#X connect 3 4 2 5; +#X connect 3 5 9 0; +#X connect 3 6 2 7; +#X connect 3 7 2 8; +#X connect 3 8 2 9; +#X connect 4 0 0 0; +#X connect 6 0 10 0; +#X connect 7 0 11 0; +#X connect 8 0 3 0; +#X connect 9 0 2 6; +#X connect 10 0 12 0; +#X connect 10 1 12 1; +#X connect 11 0 9 0; +#X connect 11 1 9 1; +#X connect 12 0 2 1; +#X restore 271 238 pd lookat; +#X obj 464 110 / 100; +#X obj 291 207 r \$0-viewpoint; +#N canvas 138 89 886 440 viewport 0; +#X obj 87 146 GEMglMatrixMode GL_PROJECTION; +#X obj 87 166 GEMglLoadIdentity; +#X obj 118 247 unpack 0 0 0 0 0 0; +#X obj 87 337 GEMglFrustum -1 1 -1 1 1 20; +#X obj 285 197 t f f; +#X obj 87 126 GEMglViewport 0 0 250 500; +#X obj 87 98 inlet gemlist; +#X obj 87 365 outlet gemlist; +#X obj 222 43 inlet viewport; +#X obj 222 66 unpack 0 0 0 0; +#X obj 428 48 inlet xDivY; +#X obj 118 224 r \$0-perspec; +#X obj 237 197 t b b; +#X obj 118 280 f -1; +#X obj 159 280 f 1; +#X obj 118 312 * 0.5; +#X obj 159 312 * 0.5; +#X obj 237 175 t b f; +#X connect 0 0 1 0; +#X connect 1 0 3 0; +#X connect 2 0 13 0; +#X connect 2 1 14 0; +#X connect 2 2 3 3; +#X connect 2 3 3 4; +#X connect 2 4 3 5; +#X connect 2 5 3 6; +#X connect 3 0 7 0; +#X connect 4 0 15 1; +#X connect 4 1 16 1; +#X connect 5 0 0 0; +#X connect 6 0 5 0; +#X connect 8 0 9 0; +#X connect 9 0 5 1; +#X connect 9 1 5 2; +#X connect 9 2 5 3; +#X connect 9 3 5 4; +#X connect 10 0 17 0; +#X connect 11 0 2 0; +#X connect 12 0 13 0; +#X connect 12 1 14 0; +#X connect 13 0 15 0; +#X connect 14 0 16 0; +#X connect 15 0 3 1; +#X connect 16 0 3 2; +#X connect 17 0 12 0; +#X connect 17 1 4 0; +#X restore 118 165 pd viewport; +#N canvas 0 0 1146 300 lookat 0; +#X obj 145 108 GEMglMatrixMode GL_MODELVIEW; +#X obj 145 127 GEMglLoadIdentity; +#X obj 145 227 GEMgluLookAt 0 0 4 0 0 0 0 1 0; +#X obj 187 153 unpack 0 0 4 0 0 0 0 1 0; +#X obj 145 77 inlet gemlist; +#X obj 145 261 outlet gemlist; +#X obj 468 65 inlet stereoSep; +#X obj 598 65 inlet stereoFoc; +#X obj 317 60 inlet view; +#X obj 283 198 +; +#X obj 186 173 t b f; +#X obj 294 178 t b f; +#X obj 168 193 + -0.15; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 5 0; +#X connect 3 0 12 0; +#X connect 3 1 2 2; +#X connect 3 2 2 3; +#X connect 3 3 2 4; +#X connect 3 4 2 5; +#X connect 3 5 9 0; +#X connect 3 6 2 7; +#X connect 3 7 2 8; +#X connect 3 8 2 9; +#X connect 4 0 0 0; +#X connect 6 0 10 0; +#X connect 7 0 11 0; +#X connect 8 0 3 0; +#X connect 9 0 2 6; +#X connect 10 0 12 0; +#X connect 10 1 12 1; +#X connect 11 0 9 0; +#X connect 11 1 9 1; +#X connect 12 0 2 1; +#X restore 118 238 pd lookat; +#X obj 138 191 r \$0-viewpoint; +#X obj 155 94 t l l; +#X msg 155 142 \$1 0 \$1 \$2; +#X text 297 110 LEFT; +#X text 138 121 RIGHT; +#X obj 458 171 * -1; +#X obj 402 402 t a; +#X obj 155 59 inlet width height; +#X obj 354 67 inlet width/height; +#X obj 356 92 t f f; +#X obj 37 66 inlet gemlist; +#X obj 37 132 t a a; +#X obj 402 444 outlet gemlist; +#X obj 74 434 outlet gemlist (OSD); +#X obj 74 405 t a; +#X obj 271 289 t a a; +#N canvas 0 0 1146 300 lookat 0; +#X obj 145 108 GEMglMatrixMode GL_MODELVIEW; +#X obj 145 127 GEMglLoadIdentity; +#X obj 145 227 GEMgluLookAt 0 0 4 0 0 0 0 1 0; +#X obj 187 153 unpack 0 0 4 0 0 0 0 1 0; +#X obj 145 77 inlet gemlist; +#X obj 145 261 outlet gemlist; +#X obj 468 65 inlet stereoSep; +#X obj 598 65 inlet stereoFoc; +#X obj 317 60 inlet view; +#X obj 283 198 +; +#X obj 186 173 t b f; +#X obj 294 178 t b f; +#X obj 168 193 + 0.15; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 5 0; +#X connect 3 0 12 0; +#X connect 3 1 2 2; +#X connect 3 2 2 3; +#X connect 3 3 2 4; +#X connect 3 4 2 5; +#X connect 3 5 9 0; +#X connect 3 6 2 7; +#X connect 3 7 2 8; +#X connect 3 8 2 9; +#X connect 4 0 0 0; +#X connect 6 0 10 0; +#X connect 7 0 11 0; +#X connect 8 0 3 0; +#X connect 9 0 2 6; +#X connect 10 0 12 0; +#X connect 10 1 12 1; +#X connect 11 0 9 0; +#X connect 11 1 9 1; +#X connect 12 0 2 1; +#X restore 271 351 pd lookat; +#X obj 92 284 t a a; +#N canvas 0 0 1146 300 lookat 0; +#X obj 145 108 GEMglMatrixMode GL_MODELVIEW; +#X obj 145 127 GEMglLoadIdentity; +#X obj 145 227 GEMgluLookAt 0 0 4 0 0 0 0 1 0; +#X obj 187 153 unpack 0 0 4 0 0 0 0 1 0; +#X obj 145 77 inlet gemlist; +#X obj 145 261 outlet gemlist; +#X obj 468 65 inlet stereoSep; +#X obj 598 65 inlet stereoFoc; +#X obj 317 60 inlet view; +#X obj 283 198 +; +#X obj 186 173 t b f; +#X obj 294 178 t b f; +#X obj 168 193 + -0.15; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 5 0; +#X connect 3 0 12 0; +#X connect 3 1 2 2; +#X connect 3 2 2 3; +#X connect 3 3 2 4; +#X connect 3 4 2 5; +#X connect 3 5 9 0; +#X connect 3 6 2 7; +#X connect 3 7 2 8; +#X connect 3 8 2 9; +#X connect 4 0 0 0; +#X connect 6 0 10 0; +#X connect 7 0 11 0; +#X connect 8 0 3 0; +#X connect 9 0 2 6; +#X connect 10 0 12 0; +#X connect 10 1 12 1; +#X connect 11 0 9 0; +#X connect 11 1 9 1; +#X connect 12 0 2 1; +#X restore 176 354 pd lookat; +#X obj 158 215 t f f; +#X obj 199 215 t f f; +#X obj 457 193 t f f; +#X obj 521 188 t f f; +#X obj 525 134 t f f; +#X obj 457 132 t f f; +#X obj 509 110 r \$0-stereoFocal; +#X obj 464 89 r \$0-stereoSeparation; +#N canvas 1545 229 751 300 GemState 0; +#X obj 138 134 gemlist; +#X obj 138 18 inlet bang; +#X obj 138 224 outlet gemlist; +#X msg 150 111 lighting \$1; +#X obj 150 92 r \$0-lighting; +#X msg 347 139 ticktime \$1; +#X obj 347 96 t b b; +#X obj 347 116 timer; +#X obj 138 66 t b b; +#X obj 372 23 r \$0-buffer; +#X obj 347 46 i 2; +#X obj 347 72 select 2; +#X msg 400 116 50; +#X connect 0 0 2 0; +#X connect 1 0 8 0; +#X connect 3 0 0 0; +#X connect 4 0 3 0; +#X connect 5 0 0 0; +#X connect 6 0 7 0; +#X connect 6 1 7 1; +#X connect 7 0 5 0; +#X connect 8 0 0 0; +#X connect 8 1 10 0; +#X connect 9 0 10 1; +#X connect 10 0 11 0; +#X connect 11 0 6 0; +#X connect 11 1 12 0; +#X connect 12 0 5 0; +#X restore 271 268 pd GemState; +#N canvas 1545 229 751 300 GemState0 0; +#X obj 138 134 gemlist; +#X obj 138 18 inlet bang; +#X obj 138 224 outlet gemlist; +#X msg 150 111 lighting \$1; +#X obj 150 92 r \$0-lighting; +#X obj 138 66 t b b; +#X msg 251 91 ticktime 0; +#X connect 0 0 2 0; +#X connect 1 0 5 0; +#X connect 3 0 0 0; +#X connect 4 0 3 0; +#X connect 5 0 0 0; +#X connect 5 1 6 0; +#X connect 6 0 0 0; +#X restore 92 263 pd GemState0; +#X connect 0 0 2 0; +#X connect 1 0 0 1; +#X connect 2 0 34 0; +#X connect 3 0 31 0; +#X connect 4 0 2 1; +#X connect 5 0 6 0; +#X connect 6 0 35 0; +#X connect 7 0 6 1; +#X connect 8 0 9 0; +#X connect 8 1 1 0; +#X connect 9 0 5 1; +#X connect 12 0 28 0; +#X connect 13 0 19 0; +#X connect 14 0 8 0; +#X connect 15 0 16 0; +#X connect 16 0 5 2; +#X connect 16 1 0 2; +#X connect 17 0 18 0; +#X connect 18 0 5 0; +#X connect 18 1 0 0; +#X connect 21 0 20 0; +#X connect 22 0 23 0; +#X connect 22 1 13 0; +#X connect 23 0 21 0; +#X connect 24 0 25 0; +#X connect 24 1 13 0; +#X connect 25 0 21 0; +#X connect 26 0 6 2; +#X connect 26 1 25 2; +#X connect 27 0 6 3; +#X connect 27 1 25 3; +#X connect 28 0 2 2; +#X connect 28 1 23 2; +#X connect 29 0 2 3; +#X connect 29 1 23 3; +#X connect 30 0 27 0; +#X connect 30 1 29 0; +#X connect 31 0 26 0; +#X connect 31 1 12 0; +#X connect 32 0 30 0; +#X connect 33 0 3 0; +#X connect 34 0 22 0; +#X connect 35 0 24 0; +#X restore 401 324 pd render-2screen; +#X connect 0 0 1 0; +#X connect 1 0 8 0; +#X connect 1 1 2 0; +#X connect 2 0 10 0; +#X connect 3 0 4 0; +#X connect 3 1 6 1; +#X connect 3 1 7 1; +#X connect 4 0 5 0; +#X connect 5 0 7 0; +#X connect 5 1 6 0; +#X connect 6 0 16 2; +#X connect 7 0 16 1; +#X connect 8 0 12 0; +#X connect 8 1 16 0; +#X connect 10 0 3 0; +#X connect 10 1 9 1; +#X connect 11 0 12 1; +#X connect 12 0 9 0; +#X connect 13 0 2 1; +#X connect 16 0 15 0; +#X connect 16 1 14 0; +#X restore 194 376 pd 2screenStereo; +#N canvas 334 50 600 410 stereoDemux 0; +#X obj 61 67 inlet gemlist; +#X obj 61 335 outlet normal; +#X obj 172 338 outlet stereo2; +#X obj 288 338 outlet anaglyph; +#X obj 428 338 outlet crystaleye; +#X obj 481 219 r \$0-stereo; +#X obj 61 304 spigot 1; +#X obj 114 283 == 0; +#X obj 61 201 t a a a a; +#X obj 172 304 spigot 0; +#X obj 225 283 == 1; +#X obj 288 304 spigot 0; +#X obj 341 283 == 2; +#X obj 428 304 spigot 0; +#X obj 481 283 == 3; +#N canvas 1765 302 450 467 crystaleyetest 0; +#X obj 91 53 inlet; +#X obj 214 54 r \$0-stereo; +#X obj 91 123 spigot 0; +#X obj 91 149 t a b; +#X msg 134 149 0; +#X obj 214 79 select 3; +#X msg 144 97 1; +#X obj 91 252 select 0; +#X obj 91 321 s \$0-stereo; +#X obj 91 277 t b b; +#X obj 208 309 print error; +#X msg 208 274 CrystalGlasses stereo not supported by your gfx-card! +\, falling back to NO stereo; +#X obj 91 176 GEMglGetFloatv GL_STEREO; +#X obj 91 210 t f; +#X msg 91 300 0; +#X connect 0 0 2 0; +#X connect 1 0 5 0; +#X connect 2 0 3 0; +#X connect 3 0 12 0; +#X connect 3 1 4 0; +#X connect 4 0 2 1; +#X connect 5 0 6 0; +#X connect 6 0 2 1; +#X connect 7 0 9 0; +#X connect 9 0 14 0; +#X connect 9 1 11 0; +#X connect 11 0 10 0; +#X connect 12 1 13 0; +#X connect 13 0 7 0; +#X connect 14 0 8 0; +#X restore 93 174 pd crystaleyetest; +#X obj 61 149 t a a; +#X connect 0 0 16 0; +#X connect 5 0 7 0; +#X connect 5 0 10 0; +#X connect 5 0 12 0; +#X connect 5 0 14 0; +#X connect 6 0 1 0; +#X connect 7 0 6 1; +#X connect 8 0 6 0; +#X connect 8 1 9 0; +#X connect 8 2 11 0; +#X connect 8 3 13 0; +#X connect 9 0 2 0; +#X connect 10 0 9 1; +#X connect 11 0 3 0; +#X connect 12 0 11 1; +#X connect 13 0 4 0; +#X connect 14 0 13 1; +#X connect 16 0 8 0; +#X connect 16 1 15 0; +#X restore 163 316 pd stereoDemux; +#N canvas 4 50 436 529 anaglyphStereo 0; +#X obj 95 70 inlet; +#X obj 95 90 t a b; +#X obj 146 142 list append 500 500; +#X obj 276 122 pack 0 0; +#X obj 146 182 /; +#X obj 54 177 t a a; +#X obj 54 362 GEMglColorMask 1 1 1 1; +#X obj 276 100 r \$0-realdimen; +#X obj 282 271 outlet render; +#X obj 146 265 outlet osd; +#N canvas 346 0 672 526 renderAnaglyph 0; +#N canvas 354 89 886 440 viewport 0; +#X obj 118 247 unpack 0 0 0 0 0 0; +#X obj 87 337 GEMglFrustum -1 1 -1 1 1 20; +#X obj 285 197 t f f; +#X obj 87 98 inlet gemlist; +#X obj 87 365 outlet gemlist; +#X obj 428 48 inlet xDivY; +#X obj 118 224 r \$0-perspec; +#X obj 237 197 t b b; +#X obj 118 280 f -1; +#X obj 159 280 f 1; +#X obj 118 312 * 0.5; +#X obj 159 312 * 0.5; +#X obj 237 175 t b f; +#X connect 0 0 8 0; +#X connect 0 1 9 0; +#X connect 0 2 1 3; +#X connect 0 3 1 4; +#X connect 0 4 1 5; +#X connect 0 5 1 6; +#X connect 1 0 4 0; +#X connect 2 0 10 1; +#X connect 2 1 11 1; +#X connect 3 0 1 0; +#X connect 5 0 12 0; +#X connect 6 0 0 0; +#X connect 7 0 8 0; +#X connect 7 1 9 0; +#X connect 8 0 10 0; +#X connect 9 0 11 0; +#X connect 10 0 1 1; +#X connect 11 0 1 2; +#X connect 12 0 7 0; +#X connect 12 1 2 0; +#X restore 271 251 pd viewport; +#N canvas 0 0 1146 300 lookat 0; +#X obj 145 108 GEMglMatrixMode GL_MODELVIEW; +#X obj 145 127 GEMglLoadIdentity; +#X obj 145 227 GEMgluLookAt 0 0 4 0 0 0 0 1 0; +#X obj 187 153 unpack 0 0 4 0 0 0 0 1 0; +#X obj 145 77 inlet gemlist; +#X obj 145 261 outlet gemlist; +#X obj 468 65 inlet stereoSep; +#X obj 598 65 inlet stereoFoc; +#X obj 317 60 inlet view; +#X obj 283 198 +; +#X obj 186 173 t b f; +#X obj 294 178 t b f; +#X obj 168 193 + 0.15; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 5 0; +#X connect 3 0 12 0; +#X connect 3 1 2 2; +#X connect 3 2 2 3; +#X connect 3 3 2 4; +#X connect 3 4 2 5; +#X connect 3 5 9 0; +#X connect 3 6 2 7; +#X connect 3 7 2 8; +#X connect 3 8 2 9; +#X connect 4 0 0 0; +#X connect 6 0 10 0; +#X connect 7 0 11 0; +#X connect 8 0 3 0; +#X connect 9 0 2 6; +#X connect 10 0 12 0; +#X connect 10 1 12 1; +#X connect 11 0 9 0; +#X connect 11 1 9 1; +#X connect 12 0 2 1; +#X restore 271 308 pd lookat; +#X obj 464 60 / 100; +#X obj 291 277 r \$0-viewpoint; +#N canvas 430 24 886 440 viewport 0; +#X obj 118 247 unpack 0 0 0 0 0 0; +#X obj 87 337 GEMglFrustum -1 1 -1 1 1 20; +#X obj 285 197 t f f; +#X obj 87 98 inlet gemlist; +#X obj 87 365 outlet gemlist; +#X obj 428 48 inlet xDivY; +#X obj 118 224 r \$0-perspec; +#X obj 237 197 t b b; +#X obj 118 280 f -1; +#X obj 159 280 f 1; +#X obj 118 312 * 0.5; +#X obj 159 312 * 0.5; +#X obj 237 175 t b f; +#X connect 0 0 8 0; +#X connect 0 1 9 0; +#X connect 0 2 1 3; +#X connect 0 3 1 4; +#X connect 0 4 1 5; +#X connect 0 5 1 6; +#X connect 1 0 4 0; +#X connect 2 0 10 1; +#X connect 2 1 11 1; +#X connect 3 0 1 0; +#X connect 5 0 12 0; +#X connect 6 0 0 0; +#X connect 7 0 8 0; +#X connect 7 1 9 0; +#X connect 8 0 10 0; +#X connect 9 0 11 0; +#X connect 10 0 1 1; +#X connect 11 0 1 2; +#X connect 12 0 7 0; +#X connect 12 1 2 0; +#X restore 118 235 pd viewport; +#N canvas 0 0 1146 300 lookat 0; +#X obj 145 108 GEMglMatrixMode GL_MODELVIEW; +#X obj 145 127 GEMglLoadIdentity; +#X obj 145 227 GEMgluLookAt 0 0 4 0 0 0 0 1 0; +#X obj 187 153 unpack 0 0 4 0 0 0 0 1 0; +#X obj 145 77 inlet gemlist; +#X obj 145 261 outlet gemlist; +#X obj 468 65 inlet stereoSep; +#X obj 598 65 inlet stereoFoc; +#X obj 317 60 inlet view; +#X obj 283 198 +; +#X obj 186 173 t b f; +#X obj 294 178 t b f; +#X obj 168 193 + -0.15; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 5 0; +#X connect 3 0 12 0; +#X connect 3 1 2 2; +#X connect 3 2 2 3; +#X connect 3 3 2 4; +#X connect 3 4 2 5; +#X connect 3 5 9 0; +#X connect 3 6 2 7; +#X connect 3 7 2 8; +#X connect 3 8 2 9; +#X connect 4 0 0 0; +#X connect 6 0 10 0; +#X connect 7 0 11 0; +#X connect 8 0 3 0; +#X connect 9 0 2 6; +#X connect 10 0 12 0; +#X connect 10 1 12 1; +#X connect 11 0 9 0; +#X connect 11 1 9 1; +#X connect 12 0 2 1; +#X restore 118 308 pd lookat; +#X obj 138 261 r \$0-viewpoint; +#X text 297 60 LEFT; +#X text 138 71 RIGHT; +#X obj 458 121 * -1; +#X obj 326 453 t a; +#X obj 354 17 inlet width/height; +#X obj 356 42 t f f; +#X obj 37 16 inlet gemlist; +#X obj 326 495 outlet gemlist; +#X obj 176 497 outlet gemlist (OSD); +#X obj 176 468 t a; +#X obj 271 359 t a a; +#N canvas 0 0 1146 300 lookat 0; +#X obj 145 108 GEMglMatrixMode GL_MODELVIEW; +#X obj 145 127 GEMglLoadIdentity; +#X obj 145 227 GEMgluLookAt 0 0 4 0 0 0 0 1 0; +#X obj 187 153 unpack 0 0 4 0 0 0 0 1 0; +#X obj 145 77 inlet gemlist; +#X obj 145 261 outlet gemlist; +#X obj 468 65 inlet stereoSep; +#X obj 598 65 inlet stereoFoc; +#X obj 317 60 inlet view; +#X obj 283 198 +; +#X obj 186 173 t b f; +#X obj 294 178 t b f; +#X obj 168 193 + 0.15; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 5 0; +#X connect 3 0 12 0; +#X connect 3 1 2 2; +#X connect 3 2 2 3; +#X connect 3 3 2 4; +#X connect 3 4 2 5; +#X connect 3 5 9 0; +#X connect 3 6 2 7; +#X connect 3 7 2 8; +#X connect 3 8 2 9; +#X connect 4 0 0 0; +#X connect 6 0 10 0; +#X connect 7 0 11 0; +#X connect 8 0 3 0; +#X connect 9 0 2 6; +#X connect 10 0 12 0; +#X connect 10 1 12 1; +#X connect 11 0 9 0; +#X connect 11 1 9 1; +#X connect 12 0 2 1; +#X restore 271 421 pd lookat; +#X obj 92 354 t a a; +#N canvas 0 0 1146 300 lookat 0; +#X obj 145 108 GEMglMatrixMode GL_MODELVIEW; +#X obj 145 127 GEMglLoadIdentity; +#X obj 145 227 GEMgluLookAt 0 0 4 0 0 0 0 1 0; +#X obj 187 153 unpack 0 0 4 0 0 0 0 1 0; +#X obj 145 77 inlet gemlist; +#X obj 145 261 outlet gemlist; +#X obj 468 65 inlet stereoSep; +#X obj 598 65 inlet stereoFoc; +#X obj 317 60 inlet view; +#X obj 283 198 +; +#X obj 186 173 t b f; +#X obj 294 178 t b f; +#X obj 168 193 + -0.15; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 5 0; +#X connect 3 0 12 0; +#X connect 3 1 2 2; +#X connect 3 2 2 3; +#X connect 3 3 2 4; +#X connect 3 4 2 5; +#X connect 3 5 9 0; +#X connect 3 6 2 7; +#X connect 3 7 2 8; +#X connect 3 8 2 9; +#X connect 4 0 0 0; +#X connect 6 0 10 0; +#X connect 7 0 11 0; +#X connect 8 0 3 0; +#X connect 9 0 2 6; +#X connect 10 0 12 0; +#X connect 10 1 12 1; +#X connect 11 0 9 0; +#X connect 11 1 9 1; +#X connect 12 0 2 1; +#X restore 176 424 pd lookat; +#X obj 158 285 t f f; +#X obj 199 285 t f f; +#X obj 457 143 t f f; +#X obj 521 138 t f f; +#X obj 525 84 t f f; +#X obj 457 82 t f f; +#X obj 509 60 r \$0-stereoFocal; +#X obj 464 39 r \$0-stereoSeparation; +#N canvas 0 0 450 300 colormask 0; +#X obj 67 232 outlet gemlist; +#X obj 67 32 inlet gemlist; +#X obj 246 35 inlet colormask; +#X obj 90 132 unpack 0 0 0 0; +#X obj 67 165 GEMglColorMask 1 1 1 1; +#X connect 1 0 4 0; +#X connect 2 0 3 0; +#X connect 3 0 4 1; +#X connect 3 1 4 2; +#X connect 3 2 4 3; +#X connect 3 3 4 4; +#X connect 4 0 0 0; +#X restore 116 200 pd colormask; +#N canvas 0 0 450 300 colormask 0; +#X obj 67 232 outlet gemlist; +#X obj 67 32 inlet gemlist; +#X obj 246 35 inlet colormask; +#X obj 90 132 unpack 0 0 0 0; +#X obj 67 165 GEMglColorMask 1 1 1 1; +#X connect 1 0 4 0; +#X connect 2 0 3 0; +#X connect 3 0 4 1; +#X connect 3 1 4 2; +#X connect 3 2 4 3; +#X connect 3 3 4 4; +#X connect 4 0 0 0; +#X restore 271 206 pd colormask; +#X msg 147 162 1 0 0 1; +#X msg 297 168 0 1 0 1; +#X obj 198 136 t b b; +#X obj 37 82 t a a b; +#N canvas 183 181 841 300 clearmask 0; +#X obj 113 55 inlet; +#X obj 113 215 outlet; +#X obj 113 110 GEMglClear; +#X obj 113 130 GEMglClear; +#X obj 113 150 GEMglClear; +#X obj 113 170 GEMglClear; +#X obj 483 109 r \$0-clearmask; +#X obj 191 110 GLdefine GL_COLOR_BUFFER_BIT; +#X obj 483 129 r \$0-clearmask; +#X obj 483 149 r \$0-clearmask; +#X obj 483 169 r \$0-clearmask; +#X obj 196 79 t b b b b; +#X obj 191 130 GLdefine GL_DEPTH_BUFFER_BIT; +#X obj 191 150 GLdefine GL_STENCIL_BUFFER_BIT; +#X obj 191 170 GLdefine GL_ACCUM_BUFFER_BIT; +#X obj 415 109 & 16348; +#X obj 415 129 & 256; +#X obj 415 149 & 1024; +#X obj 415 169 & 512; +#X obj 113 83 t a b; +#X connect 0 0 19 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 1 0; +#X connect 6 0 15 1; +#X connect 7 0 15 0; +#X connect 8 0 16 1; +#X connect 9 0 17 1; +#X connect 10 0 18 1; +#X connect 11 0 7 0; +#X connect 11 1 12 0; +#X connect 11 2 13 0; +#X connect 11 3 14 0; +#X connect 12 0 16 0; +#X connect 13 0 17 0; +#X connect 14 0 18 0; +#X connect 15 0 2 1; +#X connect 16 0 3 1; +#X connect 17 0 4 1; +#X connect 18 0 5 1; +#X connect 19 0 2 0; +#X connect 19 1 11 0; +#X restore 37 57 pd clearmask; +#N canvas 1545 229 751 300 GemState 0; +#X obj 138 134 gemlist; +#X obj 138 18 inlet bang; +#X obj 138 224 outlet gemlist; +#X msg 150 111 lighting \$1; +#X obj 150 92 r \$0-lighting; +#X msg 347 139 ticktime \$1; +#X obj 347 96 t b b; +#X obj 347 116 timer; +#X obj 138 66 t b b; +#X obj 372 23 r \$0-buffer; +#X obj 347 46 i 2; +#X obj 347 72 select 2; +#X msg 400 116 50; +#X connect 0 0 2 0; +#X connect 1 0 8 0; +#X connect 3 0 0 0; +#X connect 4 0 3 0; +#X connect 5 0 0 0; +#X connect 6 0 7 0; +#X connect 6 1 7 1; +#X connect 7 0 5 0; +#X connect 8 0 0 0; +#X connect 8 1 10 0; +#X connect 9 0 10 1; +#X connect 10 0 11 0; +#X connect 11 0 6 0; +#X connect 11 1 12 0; +#X connect 12 0 5 0; +#X restore 271 333 pd GemState; +#N canvas 1545 229 751 300 GemState0 0; +#X obj 138 134 gemlist; +#X obj 138 18 inlet bang; +#X obj 138 224 outlet gemlist; +#X msg 150 111 lighting \$1; +#X obj 150 92 r \$0-lighting; +#X obj 138 66 t b b; +#X msg 251 91 ticktime 0; +#X connect 0 0 2 0; +#X connect 1 0 5 0; +#X connect 3 0 0 0; +#X connect 4 0 3 0; +#X connect 5 0 0 0; +#X connect 5 1 6 0; +#X connect 6 0 0 0; +#X restore 92 331 pd GemState0; +#X connect 0 0 1 0; +#X connect 1 0 36 0; +#X connect 2 0 26 0; +#X connect 3 0 1 1; +#X connect 4 0 5 0; +#X connect 5 0 37 0; +#X connect 6 0 5 1; +#X connect 9 0 23 0; +#X connect 10 0 14 0; +#X connect 11 0 12 0; +#X connect 12 0 4 1; +#X connect 12 1 0 1; +#X connect 13 0 35 0; +#X connect 16 0 15 0; +#X connect 17 0 18 0; +#X connect 17 1 10 0; +#X connect 18 0 16 0; +#X connect 19 0 20 0; +#X connect 19 1 10 0; +#X connect 20 0 16 0; +#X connect 21 0 5 2; +#X connect 21 1 20 2; +#X connect 22 0 5 3; +#X connect 22 1 20 3; +#X connect 23 0 1 2; +#X connect 23 1 18 2; +#X connect 24 0 1 3; +#X connect 24 1 18 3; +#X connect 25 0 22 0; +#X connect 25 1 24 0; +#X connect 26 0 21 0; +#X connect 26 1 9 0; +#X connect 27 0 25 0; +#X connect 28 0 2 0; +#X connect 29 0 4 0; +#X connect 30 0 0 0; +#X connect 31 0 29 1; +#X connect 32 0 30 1; +#X connect 33 0 31 0; +#X connect 33 1 32 0; +#X connect 34 0 29 0; +#X connect 34 1 30 0; +#X connect 34 2 33 0; +#X connect 35 0 34 0; +#X connect 36 0 17 0; +#X connect 37 0 19 0; +#X restore 86 229 pd renderAnaglyph; +#X connect 0 0 1 0; +#X connect 1 0 5 0; +#X connect 1 1 2 0; +#X connect 2 0 4 0; +#X connect 3 0 2 1; +#X connect 4 0 10 1; +#X connect 5 0 6 0; +#X connect 5 1 10 0; +#X connect 7 0 3 0; +#X connect 10 0 9 0; +#X connect 10 1 8 0; +#X restore 226 356 pd anaglyphStereo; +#N canvas 519 50 506 526 CrystalEyeStereo 0; +#X obj 95 70 inlet; +#X obj 95 90 t a b; +#X obj 146 142 list append 500 500; +#X obj 276 122 pack 0 0; +#X obj 146 182 /; +#X obj 54 177 t a a; +#X obj 54 362 GEMglColorMask 1 1 1 1; +#X obj 276 100 r \$0-realdimen; +#X obj 86 265 outlet osd; +#X obj 216 271 outlet render; +#N canvas 352 0 672 526 renderCrystalEye 0; +#N canvas 465 62 886 440 viewport 0; +#X obj 118 247 unpack 0 0 0 0 0 0; +#X obj 87 337 GEMglFrustum -1 1 -1 1 1 20; +#X obj 285 197 t f f; +#X obj 87 98 inlet gemlist; +#X obj 87 365 outlet gemlist; +#X obj 428 48 inlet xDivY; +#X obj 118 224 r \$0-perspec; +#X obj 237 197 t b b; +#X obj 118 280 f -1; +#X obj 159 280 f 1; +#X obj 118 312 * 0.5; +#X obj 159 312 * 0.5; +#X obj 237 175 t b f; +#X obj 87 124 GEMglMatrixMode GL_PROJECTION; +#X obj 87 145 GEMglLoadIdentity; +#X connect 0 0 8 0; +#X connect 0 1 9 0; +#X connect 0 2 1 3; +#X connect 0 3 1 4; +#X connect 0 4 1 5; +#X connect 0 5 1 6; +#X connect 1 0 4 0; +#X connect 2 0 10 1; +#X connect 2 1 11 1; +#X connect 3 0 13 0; +#X connect 5 0 12 0; +#X connect 6 0 0 0; +#X connect 7 0 8 0; +#X connect 7 1 9 0; +#X connect 8 0 10 0; +#X connect 9 0 11 0; +#X connect 10 0 1 1; +#X connect 11 0 1 2; +#X connect 12 0 7 0; +#X connect 12 1 2 0; +#X connect 13 0 14 0; +#X connect 14 0 1 0; +#X restore 271 151 pd viewport; +#N canvas 1263 50 1146 410 lookat 0; +#X obj 145 227 GEMglLoadIdentity; +#X obj 145 327 GEMgluLookAt 0 0 4 0 0 0 0 1 0; +#X obj 187 253 unpack 0 0 4 0 0 0 0 1 0; +#X obj 145 77 inlet gemlist; +#X obj 145 361 outlet gemlist; +#X obj 468 65 inlet stereoSep; +#X obj 598 65 inlet stereoFoc; +#X obj 317 60 inlet view; +#X obj 283 298 +; +#X obj 186 273 t b f; +#X obj 294 278 t b f; +#X obj 168 293 + 0.15; +#X connect 0 0 1 0; +#X connect 1 0 4 0; +#X connect 2 0 11 0; +#X connect 2 1 1 2; +#X connect 2 2 1 3; +#X connect 2 3 1 4; +#X connect 2 4 1 5; +#X connect 2 5 8 0; +#X connect 2 6 1 7; +#X connect 2 7 1 8; +#X connect 2 8 1 9; +#X connect 3 0 0 0; +#X connect 5 0 9 0; +#X connect 6 0 10 0; +#X connect 7 0 2 0; +#X connect 8 0 1 6; +#X connect 9 0 11 0; +#X connect 9 1 11 1; +#X connect 10 0 8 0; +#X connect 10 1 8 1; +#X connect 11 0 1 1; +#X restore 271 248 pd lookat; +#X obj 464 110 / 100; +#X obj 291 217 r \$0-viewpoint; +#N canvas 138 136 886 440 viewport 0; +#X obj 118 247 unpack 0 0 0 0 0 0; +#X obj 87 337 GEMglFrustum -1 1 -1 1 1 20; +#X obj 285 197 t f f; +#X obj 87 98 inlet gemlist; +#X obj 87 365 outlet gemlist; +#X obj 428 48 inlet xDivY; +#X obj 118 224 r \$0-perspec; +#X obj 237 197 t b b; +#X obj 118 280 f -1; +#X obj 159 280 f 1; +#X obj 118 312 * 0.5; +#X obj 159 312 * 0.5; +#X obj 237 175 t b f; +#X obj 87 124 GEMglMatrixMode GL_PROJECTION; +#X obj 87 144 GEMglLoadIdentity; +#X connect 0 0 8 0; +#X connect 0 1 9 0; +#X connect 0 2 1 3; +#X connect 0 3 1 4; +#X connect 0 4 1 5; +#X connect 0 5 1 6; +#X connect 1 0 4 0; +#X connect 2 0 10 1; +#X connect 2 1 11 1; +#X connect 3 0 13 0; +#X connect 5 0 12 0; +#X connect 6 0 0 0; +#X connect 7 0 8 0; +#X connect 7 1 9 0; +#X connect 8 0 10 0; +#X connect 9 0 11 0; +#X connect 10 0 1 1; +#X connect 11 0 1 2; +#X connect 12 0 7 0; +#X connect 12 1 2 0; +#X connect 13 0 14 0; +#X connect 14 0 1 0; +#X restore 118 125 pd viewport; +#N canvas 0 0 1146 300 lookat 0; +#X obj 145 127 GEMglLoadIdentity; +#X obj 145 227 GEMgluLookAt 0 0 4 0 0 0 0 1 0; +#X obj 187 153 unpack 0 0 4 0 0 0 0 1 0; +#X obj 145 77 inlet gemlist; +#X obj 145 261 outlet gemlist; +#X obj 468 65 inlet stereoSep; +#X obj 598 65 inlet stereoFoc; +#X obj 317 60 inlet view; +#X obj 283 198 +; +#X obj 186 173 t b f; +#X obj 294 178 t b f; +#X obj 168 193 + -0.15; +#X connect 0 0 1 0; +#X connect 1 0 4 0; +#X connect 2 0 11 0; +#X connect 2 1 1 2; +#X connect 2 2 1 3; +#X connect 2 3 1 4; +#X connect 2 4 1 5; +#X connect 2 5 8 0; +#X connect 2 6 1 7; +#X connect 2 7 1 8; +#X connect 2 8 1 9; +#X connect 3 0 0 0; +#X connect 5 0 9 0; +#X connect 6 0 10 0; +#X connect 7 0 2 0; +#X connect 8 0 1 6; +#X connect 9 0 11 0; +#X connect 9 1 11 1; +#X connect 10 0 8 0; +#X connect 10 1 8 1; +#X connect 11 0 1 1; +#X restore 118 248 pd lookat; +#X obj 138 201 r \$0-viewpoint; +#X text 297 60 LEFT; +#X obj 458 171 * -1; +#X obj 450 378 t a; +#X obj 354 67 inlet width/height; +#X obj 356 92 t f f; +#X obj 37 66 inlet gemlist; +#X obj 450 420 outlet gemlist; +#X obj 176 437 outlet gemlist (OSD); +#X obj 176 408 t a; +#X obj 271 299 t a a; +#N canvas 0 0 1146 300 lookat 0; +#X obj 145 108 GEMglMatrixMode GL_MODELVIEW; +#X obj 145 127 GEMglLoadIdentity; +#X obj 145 227 GEMgluLookAt 0 0 4 0 0 0 0 1 0; +#X obj 187 153 unpack 0 0 4 0 0 0 0 1 0; +#X obj 145 77 inlet gemlist; +#X obj 145 261 outlet gemlist; +#X obj 468 65 inlet stereoSep; +#X obj 598 65 inlet stereoFoc; +#X obj 317 60 inlet view; +#X obj 283 198 +; +#X obj 186 173 t b f; +#X obj 294 178 t b f; +#X obj 168 193 + 0.15; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 5 0; +#X connect 3 0 12 0; +#X connect 3 1 2 2; +#X connect 3 2 2 3; +#X connect 3 3 2 4; +#X connect 3 4 2 5; +#X connect 3 5 9 0; +#X connect 3 6 2 7; +#X connect 3 7 2 8; +#X connect 3 8 2 9; +#X connect 4 0 0 0; +#X connect 6 0 10 0; +#X connect 7 0 11 0; +#X connect 8 0 3 0; +#X connect 9 0 2 6; +#X connect 10 0 12 0; +#X connect 10 1 12 1; +#X connect 11 0 9 0; +#X connect 11 1 9 1; +#X connect 12 0 2 1; +#X restore 271 361 pd lookat; +#X obj 92 294 t a a; +#N canvas 0 0 1146 300 lookat 0; +#X obj 145 108 GEMglMatrixMode GL_MODELVIEW; +#X obj 145 127 GEMglLoadIdentity; +#X obj 145 227 GEMgluLookAt 0 0 4 0 0 0 0 1 0; +#X obj 187 153 unpack 0 0 4 0 0 0 0 1 0; +#X obj 145 77 inlet gemlist; +#X obj 145 261 outlet gemlist; +#X obj 468 65 inlet stereoSep; +#X obj 598 65 inlet stereoFoc; +#X obj 317 60 inlet view; +#X obj 283 198 +; +#X obj 186 173 t b f; +#X obj 294 178 t b f; +#X obj 168 193 + -0.15; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 5 0; +#X connect 3 0 12 0; +#X connect 3 1 2 2; +#X connect 3 2 2 3; +#X connect 3 3 2 4; +#X connect 3 4 2 5; +#X connect 3 5 9 0; +#X connect 3 6 2 7; +#X connect 3 7 2 8; +#X connect 3 8 2 9; +#X connect 4 0 0 0; +#X connect 6 0 10 0; +#X connect 7 0 11 0; +#X connect 8 0 3 0; +#X connect 9 0 2 6; +#X connect 10 0 12 0; +#X connect 10 1 12 1; +#X connect 11 0 9 0; +#X connect 11 1 9 1; +#X connect 12 0 2 1; +#X restore 176 364 pd lookat; +#X obj 158 225 t f f; +#X obj 199 225 t f f; +#X obj 457 193 t f f; +#X obj 521 188 t f f; +#X obj 525 134 t f f; +#X obj 457 132 t f f; +#X obj 509 110 r \$0-stereoFocal; +#X obj 464 89 r \$0-stereoSeparation; +#N canvas 558 127 450 370 left 0; +#X obj 90 158 GEMglDrawBuffer GL_BACK_LEFT; +#X obj 90 252 GEMglClear; +#X obj 157 203 GLdefine GL_COLOR_BUFFER_BIT; +#X obj 157 227 |; +#X obj 157 181 t b b; +#X obj 189 227 GLdefine GL_DEPTH_BUFFER_BIT; +#X obj 90 181 t a b; +#X obj 90 86 inlet gemlist; +#X obj 90 282 outlet gemlist; +#X obj 90 118 GEMglMatrixMode GL_MODELVIEW; +#X connect 0 0 6 0; +#X connect 1 0 8 0; +#X connect 2 0 3 0; +#X connect 3 0 1 1; +#X connect 4 0 2 0; +#X connect 4 1 5 0; +#X connect 5 0 3 1; +#X connect 6 0 1 0; +#X connect 6 1 4 0; +#X connect 7 0 9 0; +#X connect 9 0 0 0; +#X restore 271 181 pd left; +#N canvas 517 117 450 370 right 0; +#X obj 90 76 inlet gemlist; +#X obj 90 282 outlet gemlist; +#X obj 90 158 GEMglDrawBuffer GL_BACK_RIGHT; +#X obj 90 252 GEMglClear; +#X obj 157 203 GLdefine GL_COLOR_BUFFER_BIT; +#X obj 157 227 |; +#X obj 157 181 t b b; +#X obj 189 227 GLdefine GL_DEPTH_BUFFER_BIT; +#X obj 90 181 t a b; +#X obj 90 108 GEMglMatrixMode GL_MODELVIEW; +#X connect 0 0 9 0; +#X connect 2 0 8 0; +#X connect 3 0 1 0; +#X connect 4 0 5 0; +#X connect 5 0 3 1; +#X connect 6 0 4 0; +#X connect 6 1 7 0; +#X connect 7 0 5 1; +#X connect 8 0 3 0; +#X connect 8 1 6 0; +#X connect 9 0 2 0; +#X restore 118 165 pd right; +#N canvas 0 0 450 300 clear 0; +#X obj 90 252 GEMglClear; +#X obj 157 204 GLdefine GL_DEPTH_BUFFER_BIT; +#X obj 90 181 t a b; +#X obj 157 227 & 256; +#X obj 216 182 r \$0-clearmask; +#X obj 90 148 inlet gemlist; +#X obj 90 278 outlet gemlist; +#X connect 0 0 6 0; +#X connect 1 0 3 0; +#X connect 2 0 0 0; +#X connect 2 1 1 0; +#X connect 3 0 0 1; +#X connect 4 0 3 1; +#X connect 5 0 2 0; +#X restore 118 93 pd clear; +#X obj 37 88 t a a; +#X text 130 78 RIGHT; +#N canvas 1545 229 751 300 GemState 0; +#X obj 138 134 gemlist; +#X obj 138 18 inlet bang; +#X obj 138 224 outlet gemlist; +#X msg 150 111 lighting \$1; +#X obj 150 92 r \$0-lighting; +#X msg 347 139 ticktime \$1; +#X obj 347 96 t b b; +#X obj 347 116 timer; +#X obj 138 66 t b b; +#X obj 372 23 r \$0-buffer; +#X obj 347 46 i 2; +#X obj 347 72 select 2; +#X msg 400 116 50; +#X connect 0 0 2 0; +#X connect 1 0 8 0; +#X connect 3 0 0 0; +#X connect 4 0 3 0; +#X connect 5 0 0 0; +#X connect 6 0 7 0; +#X connect 6 1 7 1; +#X connect 7 0 5 0; +#X connect 8 0 0 0; +#X connect 8 1 10 0; +#X connect 9 0 10 1; +#X connect 10 0 11 0; +#X connect 11 0 6 0; +#X connect 11 1 12 0; +#X connect 12 0 5 0; +#X restore 271 279 pd GemState; +#N canvas 1545 229 751 300 GemState0 0; +#X obj 138 134 gemlist; +#X obj 138 18 inlet bang; +#X obj 138 224 outlet gemlist; +#X msg 150 111 lighting \$1; +#X obj 150 92 r \$0-lighting; +#X obj 138 66 t b b; +#X msg 251 91 ticktime 0; +#X connect 0 0 2 0; +#X connect 1 0 5 0; +#X connect 3 0 0 0; +#X connect 4 0 3 0; +#X connect 5 0 0 0; +#X connect 5 1 6 0; +#X connect 6 0 0 0; +#X restore 92 274 pd GemState0; +#X connect 0 0 28 0; +#X connect 1 0 33 0; +#X connect 2 0 25 0; +#X connect 3 0 1 1; +#X connect 4 0 29 0; +#X connect 5 0 34 0; +#X connect 6 0 5 1; +#X connect 8 0 22 0; +#X connect 9 0 13 0; +#X connect 10 0 11 0; +#X connect 11 0 4 1; +#X connect 11 1 0 1; +#X connect 12 0 31 0; +#X connect 15 0 14 0; +#X connect 16 0 17 0; +#X connect 16 1 9 0; +#X connect 17 0 15 0; +#X connect 18 0 19 0; +#X connect 18 1 9 0; +#X connect 19 0 15 0; +#X connect 20 0 5 2; +#X connect 20 1 19 2; +#X connect 21 0 5 3; +#X connect 21 1 19 3; +#X connect 22 0 1 2; +#X connect 22 1 17 2; +#X connect 23 0 1 3; +#X connect 23 1 17 3; +#X connect 24 0 21 0; +#X connect 24 1 23 0; +#X connect 25 0 20 0; +#X connect 25 1 8 0; +#X connect 26 0 24 0; +#X connect 27 0 2 0; +#X connect 28 0 1 0; +#X connect 29 0 5 0; +#X connect 30 0 4 0; +#X connect 31 0 30 0; +#X connect 31 1 0 0; +#X connect 33 0 16 0; +#X connect 34 0 18 0; +#X restore 86 229 pd renderCrystalEye; +#X connect 0 0 1 0; +#X connect 1 0 5 0; +#X connect 1 1 2 0; +#X connect 2 0 4 0; +#X connect 3 0 2 1; +#X connect 4 0 10 1; +#X connect 5 0 6 0; +#X connect 5 1 10 0; +#X connect 7 0 3 0; +#X connect 10 0 8 0; +#X connect 10 1 9 0; +#X restore 258 336 pd CrystalEyeStereo; +#X obj 131 476 GEMglReportError; +#X msg 390 149 1000 \$1; +#X obj 390 171 /; +#X obj 131 189 metro 20; +#N canvas 274 226 751 300 GemState 0; +#X obj 138 134 gemlist; +#X obj 138 18 inlet bang; +#X obj 138 224 outlet gemlist; +#X msg 149 112 lighting \$1; +#X obj 150 92 r \$0-lighting; +#X msg 347 139 ticktime \$1; +#X obj 347 96 t b b; +#X obj 347 116 timer; +#X obj 138 66 t b b; +#X obj 372 23 r \$0-buffer; +#X obj 347 46 i 2; +#X obj 347 72 select 2; +#X msg 400 116 50; +#X connect 0 0 2 0; +#X connect 1 0 8 0; +#X connect 3 0 0 0; +#X connect 4 0 3 0; +#X connect 5 0 0 0; +#X connect 6 0 7 0; +#X connect 6 1 7 1; +#X connect 7 0 5 0; +#X connect 8 0 0 0; +#X connect 8 1 10 0; +#X connect 9 0 10 1; +#X connect 10 0 11 0; +#X connect 11 0 6 0; +#X connect 11 1 12 0; +#X connect 12 0 5 0; +#X restore 131 230 pd GemState; +#X obj 390 126 r \$0-rate; +#X obj 131 168 r \$0-render; +#X obj 131 279 t a a; +#X obj 163 429 t a; +#X obj 303 429 t a; +#N canvas 3 45 682 270 send2gemhead 1; +#X obj 83 46 inlet OSD; +#X obj 323 42 inlet view; +#X obj 173 68 r \$0-gemheadbasename; +#X obj 173 90 symbol; +#X msg 173 134 symbol \$1_osd; +#X obj 83 179 s; +#X obj 323 179 s; +#X obj 173 112 t s s; +#X connect 0 0 5 0; +#X connect 1 0 6 0; +#X connect 2 0 3 0; +#X connect 3 0 7 0; +#X connect 4 0 5 1; +#X connect 7 0 4 0; +#X connect 7 1 6 1; +#X restore 192 455 pd send2gemhead; +#X connect 0 0 10 0; +#X connect 4 0 21 0; +#X connect 4 1 8 0; +#X connect 7 0 2 0; +#X connect 11 0 24 0; +#X connect 12 0 25 0; +#X connect 12 1 26 0; +#X connect 13 0 25 0; +#X connect 13 1 26 0; +#X connect 14 0 12 0; +#X connect 14 1 13 0; +#X connect 14 2 15 0; +#X connect 14 3 16 0; +#X connect 15 0 25 0; +#X connect 15 1 26 0; +#X connect 16 0 25 0; +#X connect 16 1 26 0; +#X connect 18 0 19 0; +#X connect 19 0 20 1; +#X connect 20 0 4 0; +#X connect 21 0 11 0; +#X connect 22 0 18 0; +#X connect 23 0 20 0; +#X connect 24 0 17 0; +#X connect 24 1 14 0; +#X connect 25 0 27 0; +#X connect 26 0 27 1; diff --git a/Gem/abstractions/hsv2rgb-help.pd b/Gem/abstractions/hsv2rgb-help.pd new file mode 100644 index 0000000..10716fb --- /dev/null +++ b/Gem/abstractions/hsv2rgb-help.pd @@ -0,0 +1,65 @@ +#N canvas 172 190 600 500 10; +#X text 418 26 GEM object; +#X text 89 388 convert between RGB colorspace and HSV colorspace; +#X text 91 412 RGB is red \, green \, blue; +#X text 91 434 HSV is hue \, saturation \, value (luminance); +#X obj 119 207 cnv 15 70 40 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 123 218 rgb2hsv; +#X msg 163 182 1 0 0; +#X msg 155 156 0 0.2 0.5; +#X obj 123 257 unpack 0 0 0; +#X floatatom 202 279 5 0 0 1 Value - -; +#X floatatom 162 299 5 0 0 1 Saturation - -; +#X floatatom 123 322 5 0 0 1 Hue - -; +#X obj 321 206 cnv 15 70 40 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 325 256 unpack 0 0 0; +#X floatatom 404 278 5 0 0 1 Blue - -; +#X floatatom 364 298 5 0 0 1 Green - -; +#X floatatom 325 321 5 0 0 1 Red - -; +#X obj 325 217 hsv2rgb; +#X msg 365 152 0 1 1; +#X msg 387 176 0.6 1 0.5; +#X floatatom 178 84 5 0 1 1 Blue - -; +#X floatatom 141 67 5 0 1 1 Green - -; +#X floatatom 123 49 5 0 1 1 Red - -; +#X obj 123 122 pack 0 0 0; +#X floatatom 380 94 5 0 1 1 Value - -; +#X floatatom 343 76 5 0 1 1 Saturation - -; +#X floatatom 325 58 5 0 1 1 Hue - -; +#X obj 141 103 t b f; +#X obj 178 103 t b f; +#X obj 325 130 pack 0 0 0; +#X obj 343 111 t b f; +#X obj 380 111 t b f; +#X text 83 9 [rgb2hsv]; +#X text 175 11 [hsv2rgb]; +#X connect 5 0 8 0; +#X connect 6 0 5 0; +#X connect 7 0 5 0; +#X connect 8 0 11 0; +#X connect 8 1 10 0; +#X connect 8 2 9 0; +#X connect 13 0 16 0; +#X connect 13 1 15 0; +#X connect 13 2 14 0; +#X connect 17 0 13 0; +#X connect 18 0 17 0; +#X connect 19 0 17 0; +#X connect 20 0 28 0; +#X connect 21 0 27 0; +#X connect 22 0 23 0; +#X connect 23 0 5 0; +#X connect 24 0 31 0; +#X connect 25 0 30 0; +#X connect 26 0 29 0; +#X connect 27 0 23 0; +#X connect 27 1 23 1; +#X connect 28 0 23 0; +#X connect 28 1 23 2; +#X connect 29 0 17 0; +#X connect 30 0 29 0; +#X connect 30 1 29 1; +#X connect 31 0 29 0; +#X connect 31 1 29 2; diff --git a/Gem/abstractions/hsv2rgb.pd b/Gem/abstractions/hsv2rgb.pd new file mode 100644 index 0000000..158aece --- /dev/null +++ b/Gem/abstractions/hsv2rgb.pd @@ -0,0 +1,143 @@ +#N canvas 206 49 450 568 10; +#X obj 187 84 route 0; +#X msg 187 56 \$2 \$3 \$1; +#X obj 187 409 f; +#X obj 231 111 unpack 0 0 0; +#X text 250 71 svh; +#X obj 187 28 inlet hsv; +#X obj 187 520 outlet rgb; +#X obj 401 149 * 6; +#X obj 380 196 % 6; +#X obj 350 173 t f f; +#X msg 350 149 0; +#X text 406 196 i; +#X obj 350 219 -; +#X obj 231 217 *; +#X obj 231 178 - 1; +#X obj 231 198 * -1; +#X obj 263 330 *; +#X obj 263 291 - 1; +#X obj 263 311 * -1; +#X obj 263 269 *; +#X obj 350 240 t f f; +#X obj 380 262 - 1; +#X obj 380 283 * -1; +#X obj 302 356 *; +#X obj 302 317 - 1; +#X obj 302 337 * -1; +#X obj 302 295 *; +#X obj 231 151 t f f f; +#X obj 241 392 pack 0 0 0 0; +#N canvas 387 255 646 315 select 0; +#X obj 290 37 inlet; +#X obj 16 247 outlet; +#X obj 92 104 t b l; +#X obj 125 128 unpack 0 0 0 0; +#X obj 89 43 inlet p q t v; +#X obj 92 128 i; +#X obj 92 151 select 0 1 2 3 4 5; +#X obj 16 223 pack 0 0 0; +#X obj 16 203 f; +#X obj 96 223 pack 0 0 0; +#X obj 96 203 f; +#X obj 176 223 pack 0 0 0; +#X obj 176 203 f; +#X obj 256 223 pack 0 0 0; +#X obj 256 203 f; +#X obj 336 223 pack 0 0 0; +#X obj 336 203 f; +#X obj 416 223 pack 0 0 0; +#X obj 416 203 f; +#X connect 0 0 5 1; +#X connect 2 0 5 0; +#X connect 2 1 3 0; +#X connect 3 0 7 2; +#X connect 3 0 9 2; +#X connect 3 0 12 1; +#X connect 3 0 14 1; +#X connect 3 0 15 1; +#X connect 3 0 17 1; +#X connect 3 1 10 1; +#X connect 3 1 13 1; +#X connect 3 1 17 2; +#X connect 3 2 7 1; +#X connect 3 2 11 2; +#X connect 3 2 16 1; +#X connect 3 3 8 1; +#X connect 3 3 9 1; +#X connect 3 3 11 1; +#X connect 3 3 13 2; +#X connect 3 3 15 2; +#X connect 3 3 18 1; +#X connect 4 0 2 0; +#X connect 5 0 6 0; +#X connect 6 0 8 0; +#X connect 6 1 10 0; +#X connect 6 2 12 0; +#X connect 6 3 14 0; +#X connect 6 4 16 0; +#X connect 6 5 18 0; +#X connect 7 0 1 0; +#X connect 8 0 7 0; +#X connect 9 0 1 0; +#X connect 10 0 9 0; +#X connect 11 0 1 0; +#X connect 12 0 11 0; +#X connect 13 0 1 0; +#X connect 14 0 13 0; +#X connect 15 0 1 0; +#X connect 16 0 15 0; +#X connect 17 0 1 0; +#X connect 18 0 17 0; +#X restore 241 416 pd select; +#X msg 187 478 \$1 \$1 \$1; +#X obj 187 450 clip 0 1; +#X obj 231 131 clip 0 1; +#X obj 270 173 clip 0 1; +#X obj 350 109 clip 0 1; +#X obj 350 129 select 1; +#X connect 0 0 2 0; +#X connect 0 1 3 0; +#X connect 1 0 0 0; +#X connect 2 0 31 0; +#X connect 3 0 32 0; +#X connect 3 1 33 0; +#X connect 3 2 34 0; +#X connect 5 0 1 0; +#X connect 7 0 9 0; +#X connect 8 0 12 1; +#X connect 8 0 29 1; +#X connect 9 0 12 0; +#X connect 9 1 8 0; +#X connect 10 0 9 0; +#X connect 12 0 20 0; +#X connect 13 0 28 0; +#X connect 14 0 15 0; +#X connect 15 0 13 0; +#X connect 16 0 28 1; +#X connect 17 0 18 0; +#X connect 18 0 16 0; +#X connect 19 0 17 0; +#X connect 20 0 19 1; +#X connect 20 1 21 0; +#X connect 21 0 22 0; +#X connect 22 0 26 1; +#X connect 23 0 28 2; +#X connect 24 0 25 0; +#X connect 25 0 23 0; +#X connect 26 0 24 0; +#X connect 27 0 14 0; +#X connect 27 1 19 0; +#X connect 27 2 26 0; +#X connect 28 0 29 0; +#X connect 29 0 6 0; +#X connect 30 0 6 0; +#X connect 31 0 30 0; +#X connect 32 0 27 0; +#X connect 33 0 13 1; +#X connect 33 0 28 3; +#X connect 33 0 16 1; +#X connect 33 0 23 1; +#X connect 34 0 35 0; +#X connect 35 0 10 0; +#X connect 35 1 7 0; diff --git a/Gem/abstractions/pix_blobtracker-help.pd b/Gem/abstractions/pix_blobtracker-help.pd new file mode 100644 index 0000000..c715fa7 --- /dev/null +++ b/Gem/abstractions/pix_blobtracker-help.pd @@ -0,0 +1,420 @@ +#N canvas 35 25 662 452 10; +#X text 452 8 GEM object; +#X obj 9 265 cnv 15 430 135 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 40 267 Inlets:; +#X text 39 362 Outlets:; +#X obj 9 227 cnv 15 430 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 18 226 Arguments:; +#X obj 8 56 cnv 15 430 165 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 449 77 cnv 15 200 320 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X text 453 60 Example:; +#X obj 544 330 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X msg 67 70 set destroy; +#X msg 132 112 create \, 1; +#X msg 198 112 destroy; +#X msg 156 71 set create; +#X obj 67 41 route create; +#X connect 2 0 7 0; +#X connect 3 0 1 0; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X connect 6 0 1 0; +#X connect 7 0 3 0; +#X connect 7 0 4 0; +#X connect 7 1 6 0; +#X connect 7 1 5 0; +#X restore 549 369 pd gemwin; +#X msg 549 350 create; +#X text 545 329 Create window:; +#X obj 451 173 cnv 15 185 120 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 451 83 gemhead; +#X text 17 376 Outlet 1: gemlist; +#X text 24 281 Inlet 1: gemlist; +#X obj 451 300 pix_texture; +#X obj 451 151 pix_film; +#X obj 515 151 t f; +#X obj 464 103 bng 25 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#N canvas 0 0 450 300 open 0; +#X obj 85 49 inlet; +#X obj 85 237 outlet; +#X obj 85 145 openpanel; +#X msg 85 179 open \$1; +#X msg 259 213 auto 1; +#X obj 259 189 loadbang; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 1 0; +#X connect 4 0 1 0; +#X connect 5 0 4 0; +#X restore 464 131 pd open; +#X text 505 77 open a supported; +#X text 506 88 movie-clip; +#X text 523 114 macOS: quicktime; +#X text 516 104 windos: *.AVI; +#X text 523 124 linux: depends...; +#X floatatom 463 190 3 0 100 2 threshold - -; +#X obj 463 207 / 100; +#X text 50 12 Synopsis: [pix_blobtracker]; +#X text 71 31 Class: pix object (analysis); +#X text 29 57 Description: blob detector and tracker; +#X obj 451 262 pix_blobtracker; +#X obj 451 322 square 4; +#X msg 463 228 threshold \$1; +#X floatatom 553 190 3 0 100 2 blobsize - -; +#X obj 553 207 / 100; +#X msg 553 228 blobSize \$1; +#N canvas 0 0 450 300 showblobs 0; +#X obj 67 113 route 0 1 2 3 4 5; +#N canvas 0 0 451 339 showblob 0; +#X obj 76 184 gemhead; +#X obj 76 266 translateXYZ; +#X obj 102 58 pack; +#X obj 102 34 inlet x|y; +#X obj 76 225 color 1 1 1; +#X obj 219 75 loadbang; +#X obj 219 122 random 256; +#X obj 219 143 / 256; +#X obj 219 185 hsv2rgb; +#X msg 219 166 \$1 1 1; +#X obj 219 97 t b b; +#X obj 76 286 sphere 0.2; +#X msg 249 233 0; +#X msg 216 233 0.2; +#X obj 216 254 f; +#X obj 298 47 t b; +#X obj 298 24 inlet reset; +#X obj 139 183 t f b; +#X obj 102 85 unpack; +#X obj 102 108 * 8; +#X obj 102 131 - 4; +#X obj 145 106 * 8; +#X obj 145 129 - 4; +#X connect 0 0 4 0; +#X connect 1 0 11 0; +#X connect 2 0 18 0; +#X connect 3 0 2 0; +#X connect 4 0 1 0; +#X connect 5 0 10 0; +#X connect 6 0 7 0; +#X connect 7 0 9 0; +#X connect 8 0 4 1; +#X connect 9 0 8 0; +#X connect 10 0 6 0; +#X connect 10 1 12 0; +#X connect 12 0 14 0; +#X connect 13 0 14 0; +#X connect 14 0 11 1; +#X connect 15 0 12 0; +#X connect 16 0 15 0; +#X connect 17 0 1 2; +#X connect 17 1 13 0; +#X connect 18 0 19 0; +#X connect 18 1 21 0; +#X connect 19 0 20 0; +#X connect 20 0 1 1; +#X connect 21 0 22 0; +#X connect 22 0 17 0; +#X restore 67 136 pd showblob; +#N canvas 0 0 451 339 showblob 0; +#X obj 76 184 gemhead; +#X obj 76 266 translateXYZ; +#X obj 102 58 pack; +#X obj 102 34 inlet x|y; +#X obj 76 225 color 1 1 1; +#X obj 219 75 loadbang; +#X obj 219 122 random 256; +#X obj 219 143 / 256; +#X obj 219 185 hsv2rgb; +#X msg 219 166 \$1 1 1; +#X obj 219 97 t b b; +#X obj 76 286 sphere 0.2; +#X msg 249 233 0; +#X msg 216 233 0.2; +#X obj 216 254 f; +#X obj 298 47 t b; +#X obj 298 24 inlet reset; +#X obj 139 183 t f b; +#X obj 102 85 unpack; +#X obj 102 108 * 8; +#X obj 102 131 - 4; +#X obj 145 106 * 8; +#X obj 145 129 - 4; +#X connect 0 0 4 0; +#X connect 1 0 11 0; +#X connect 2 0 18 0; +#X connect 3 0 2 0; +#X connect 4 0 1 0; +#X connect 5 0 10 0; +#X connect 6 0 7 0; +#X connect 7 0 9 0; +#X connect 8 0 4 1; +#X connect 9 0 8 0; +#X connect 10 0 6 0; +#X connect 10 1 12 0; +#X connect 12 0 14 0; +#X connect 13 0 14 0; +#X connect 14 0 11 1; +#X connect 15 0 12 0; +#X connect 16 0 15 0; +#X connect 17 0 1 2; +#X connect 17 1 13 0; +#X connect 18 0 19 0; +#X connect 18 1 21 0; +#X connect 19 0 20 0; +#X connect 20 0 1 1; +#X connect 21 0 22 0; +#X connect 22 0 17 0; +#X restore 86 155 pd showblob; +#N canvas 0 0 451 339 showblob 0; +#X obj 76 184 gemhead; +#X obj 76 266 translateXYZ; +#X obj 102 58 pack; +#X obj 102 34 inlet x|y; +#X obj 76 225 color 1 1 1; +#X obj 219 75 loadbang; +#X obj 219 122 random 256; +#X obj 219 143 / 256; +#X obj 219 185 hsv2rgb; +#X msg 219 166 \$1 1 1; +#X obj 219 97 t b b; +#X obj 76 286 sphere 0.2; +#X msg 249 233 0; +#X msg 216 233 0.2; +#X obj 216 254 f; +#X obj 298 47 t b; +#X obj 298 24 inlet reset; +#X obj 139 183 t f b; +#X obj 102 92 unpack; +#X obj 102 115 * 8; +#X obj 102 138 - 4; +#X obj 145 113 * 8; +#X obj 145 136 - 4; +#X connect 0 0 4 0; +#X connect 1 0 11 0; +#X connect 2 0 18 0; +#X connect 3 0 2 0; +#X connect 4 0 1 0; +#X connect 5 0 10 0; +#X connect 6 0 7 0; +#X connect 7 0 9 0; +#X connect 8 0 4 1; +#X connect 9 0 8 0; +#X connect 10 0 6 0; +#X connect 10 1 12 0; +#X connect 12 0 14 0; +#X connect 13 0 14 0; +#X connect 14 0 11 1; +#X connect 15 0 12 0; +#X connect 16 0 15 0; +#X connect 17 0 1 2; +#X connect 17 1 13 0; +#X connect 18 0 19 0; +#X connect 18 1 21 0; +#X connect 19 0 20 0; +#X connect 20 0 1 1; +#X connect 21 0 22 0; +#X connect 22 0 17 0; +#X restore 105 174 pd showblob; +#N canvas 0 0 451 339 showblob 0; +#X obj 76 184 gemhead; +#X obj 76 266 translateXYZ; +#X obj 102 58 pack; +#X obj 102 34 inlet x|y; +#X obj 76 225 color 1 1 1; +#X obj 219 75 loadbang; +#X obj 219 122 random 256; +#X obj 219 143 / 256; +#X obj 219 185 hsv2rgb; +#X msg 219 166 \$1 1 1; +#X obj 219 97 t b b; +#X obj 76 286 sphere 0.2; +#X msg 249 233 0; +#X msg 216 233 0.2; +#X obj 216 254 f; +#X obj 298 47 t b; +#X obj 298 24 inlet reset; +#X obj 139 183 t f b; +#X obj 102 85 unpack; +#X obj 102 108 * 8; +#X obj 102 131 - 4; +#X obj 145 106 * 8; +#X obj 145 129 - 4; +#X connect 0 0 4 0; +#X connect 1 0 11 0; +#X connect 2 0 18 0; +#X connect 3 0 2 0; +#X connect 4 0 1 0; +#X connect 5 0 10 0; +#X connect 6 0 7 0; +#X connect 7 0 9 0; +#X connect 8 0 4 1; +#X connect 9 0 8 0; +#X connect 10 0 6 0; +#X connect 10 1 12 0; +#X connect 12 0 14 0; +#X connect 13 0 14 0; +#X connect 14 0 11 1; +#X connect 15 0 12 0; +#X connect 16 0 15 0; +#X connect 17 0 1 2; +#X connect 17 1 13 0; +#X connect 18 0 19 0; +#X connect 18 1 21 0; +#X connect 19 0 20 0; +#X connect 20 0 1 1; +#X connect 21 0 22 0; +#X connect 22 0 17 0; +#X restore 124 193 pd showblob; +#N canvas 0 0 451 339 showblob 0; +#X obj 76 184 gemhead; +#X obj 76 266 translateXYZ; +#X obj 102 60 pack; +#X obj 102 34 inlet x|y; +#X obj 76 225 color 1 1 1; +#X obj 219 75 loadbang; +#X obj 219 122 random 256; +#X obj 219 143 / 256; +#X obj 219 185 hsv2rgb; +#X msg 219 166 \$1 1 1; +#X obj 219 97 t b b; +#X obj 76 286 sphere 0.2; +#X msg 249 233 0; +#X msg 216 233 0.2; +#X obj 216 254 f; +#X obj 298 47 t b; +#X obj 298 24 inlet reset; +#X obj 139 183 t f b; +#X obj 102 85 unpack; +#X obj 102 108 * 8; +#X obj 102 131 - 4; +#X obj 145 106 * 8; +#X obj 145 129 - 4; +#X connect 0 0 4 0; +#X connect 1 0 11 0; +#X connect 2 0 18 0; +#X connect 3 0 2 0; +#X connect 4 0 1 0; +#X connect 5 0 10 0; +#X connect 6 0 7 0; +#X connect 7 0 9 0; +#X connect 8 0 4 1; +#X connect 9 0 8 0; +#X connect 10 0 6 0; +#X connect 10 1 12 0; +#X connect 12 0 14 0; +#X connect 13 0 14 0; +#X connect 14 0 11 1; +#X connect 15 0 12 0; +#X connect 16 0 15 0; +#X connect 17 0 1 2; +#X connect 17 1 13 0; +#X connect 18 0 19 0; +#X connect 18 1 21 0; +#X connect 19 0 20 0; +#X connect 20 0 1 1; +#X connect 21 0 22 0; +#X connect 22 0 17 0; +#X restore 143 212 pd showblob; +#N canvas 0 0 451 339 showblob 0; +#X obj 76 184 gemhead; +#X obj 76 266 translateXYZ; +#X obj 102 58 pack; +#X obj 102 34 inlet x|y; +#X obj 76 225 color 1 1 1; +#X obj 219 75 loadbang; +#X obj 219 122 random 256; +#X obj 219 143 / 256; +#X obj 219 185 hsv2rgb; +#X msg 219 166 \$1 1 1; +#X obj 219 97 t b b; +#X obj 76 286 sphere 0.2; +#X msg 249 233 0; +#X msg 216 233 0.2; +#X obj 216 254 f; +#X obj 298 47 t b; +#X obj 298 24 inlet reset; +#X obj 139 183 t f b; +#X obj 102 85 unpack; +#X obj 102 108 * 8; +#X obj 102 131 - 4; +#X obj 145 106 * 8; +#X obj 145 129 - 4; +#X connect 0 0 4 0; +#X connect 1 0 11 0; +#X connect 2 0 18 0; +#X connect 3 0 2 0; +#X connect 4 0 1 0; +#X connect 5 0 10 0; +#X connect 6 0 7 0; +#X connect 7 0 9 0; +#X connect 8 0 4 1; +#X connect 9 0 8 0; +#X connect 10 0 6 0; +#X connect 10 1 12 0; +#X connect 12 0 14 0; +#X connect 13 0 14 0; +#X connect 14 0 11 1; +#X connect 15 0 12 0; +#X connect 16 0 15 0; +#X connect 17 0 1 2; +#X connect 17 1 13 0; +#X connect 18 0 19 0; +#X connect 18 1 21 0; +#X connect 19 0 20 0; +#X connect 20 0 1 1; +#X connect 21 0 22 0; +#X connect 22 0 17 0; +#X restore 162 231 pd showblob; +#X obj 67 86 inlet blobinformation; +#X connect 0 0 1 0; +#X connect 0 1 2 0; +#X connect 0 2 3 0; +#X connect 0 3 4 0; +#X connect 0 4 5 0; +#X connect 0 5 6 0; +#X connect 7 0 0 0; +#X restore 541 301 pd showblobs; +#X text 17 78 [pix_blobtracker] is able to detect multiple blobs within +an image and tries to keep track of which blob is which to keep indices +consistant while the blobs are moving.; +#X text 16 127 [pix_blobtracker] is an abstraction based on [pix_multiblob] +for blob-detection and some mtx-objects from "iemmatrix" (which you +need to have installed on your system!) to do the actual tracking. +; +#X text 64 237 int: max number of blobs to detect; +#X text 21 187 like [pix_multiblob] this object only takes the luminance +into account for blob-tracking; +#X text 20 408 see also:; +#X obj 104 405 pix_multiblob; +#X text 24 296 Inlet 1: threshold : minimum luminance of a pixel +to be considered part of a blob. (default=0.04); +#X text 24 325 Inlet 1: blobSize : minimum relative size of +a blob. (default=0.1); +#X connect 10 0 11 0; +#X connect 11 0 10 0; +#X connect 14 0 18 0; +#X connect 17 0 33 0; +#X connect 18 0 32 0; +#X connect 18 2 19 0; +#X connect 19 0 18 1; +#X connect 20 0 21 0; +#X connect 21 0 18 0; +#X connect 27 0 28 0; +#X connect 28 0 34 0; +#X connect 32 0 17 0; +#X connect 32 1 38 0; +#X connect 34 0 32 0; +#X connect 35 0 36 0; +#X connect 36 0 37 0; +#X connect 37 0 32 0; diff --git a/Gem/abstractions/pix_blobtracker.pd b/Gem/abstractions/pix_blobtracker.pd new file mode 100644 index 0000000..dcdbf20 --- /dev/null +++ b/Gem/abstractions/pix_blobtracker.pd @@ -0,0 +1,132 @@ +#N canvas 77 45 654 552 10; +#X declare -lib Gem -lib iemmatrix; +#N canvas 0 0 571 399 matrix->indexlist 0; +#X obj 133 90 inlet; +#X obj 133 298 outlet; +#X obj 133 163 mtx; +#X msg 133 137 row; +#X obj 133 109 t b a b; +#X obj 212 227 i; +#X obj 239 228 + 1; +#X obj 133 248 pack 0 0 0 0; +#X obj 133 210 t l b; +#X msg 133 273 \$4 \$1 \$2 \$3; +#X msg 228 206 0; +#X msg 133 189 \$1 \$2 \$3; +#X connect 0 0 4 0; +#X connect 2 0 11 0; +#X connect 3 0 2 0; +#X connect 4 0 3 0; +#X connect 4 1 2 1; +#X connect 4 2 10 0; +#X connect 5 0 6 0; +#X connect 5 0 7 3; +#X connect 6 0 5 1; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 5 0; +#X connect 9 0 1 0; +#X connect 10 0 5 1; +#X connect 11 0 8 0; +#X restore 324 518 pd matrix->indexlist; +#X obj 97 197 inlet gemlist; +#X obj 97 402 outlet gemlist; +#X obj 231 429 t a; +#X obj 231 343 t a a; +#X obj 324 428 mtx_mul; +#X obj 354 490 outlet numblobs; +#X obj 324 449 t a a; +#X obj 354 471 mtx_size; +#X obj 231 363 mtx_resize \$1 2; +#N canvas 0 0 518 479 mtx_matcher 0; +#X obj 61 200 mtx_distance2; +#X obj 61 176 t a a; +#X obj 61 244 t a a; +#X obj 61 279 mtx_mul; +#X obj 61 325 outlet matched; +#X obj 171 325 outlet matcher; +#X obj 147 177 inlet dest; +#X obj 61 149 inlet source; +#X text 25 105 both "source" and "dest" must have the same number of +columns (dimension in feature-space); +#N canvas 0 0 618 479 mtx_rowpermutate 0; +#X obj 150 214 t b a; +#X obj 150 235 mtx; +#X obj 150 256 mtx_mul; +#X obj 111 192 mtx_pivot -1; +#X text 17 19 this unfortunately does not guarantee to give as a minimum +trace of the result!; +#X obj 150 309 outlet rowpermutator; +#X obj 111 141 inlet permutans; +#X connect 0 0 1 0; +#X connect 0 1 2 1; +#X connect 1 0 2 0; +#X connect 2 0 5 0; +#X connect 3 1 0 0; +#X connect 3 2 1 1; +#X connect 6 0 3 0; +#X restore 61 221 pd mtx_rowpermutate; +#X text 34 383 this algorithm is _far_ from being perfect! the [mtx_rowpermutate] +does not really guarantee that the trace of the result is a global +mimimum \; if it is not \, than the match will be sub-optimal! this +will be even worse \, if there are several _equal_ (sub)minima in the +distance-matrix.; +#X text 158 194 greater distances have an extra penalty (^2) \; is +this ok?; +#X text 32 52 we calculate the euclidean distance between the vectors +of the 2 sets and try to find a trace with minimum penalty; +#X text 32 22 this tries to get the best (weighted) match between 2 +sets of feature-vectors.; +#X connect 0 0 9 0; +#X connect 1 0 0 0; +#X connect 1 1 3 1; +#X connect 2 0 3 0; +#X connect 2 1 5 0; +#X connect 3 0 4 0; +#X connect 6 0 0 1; +#X connect 7 0 1 0; +#X connect 9 0 2 0; +#X restore 231 397 pd mtx_matcher; +#X text 91 114 this blobtracker is far from being perfect. for an explanation +read the comments in [pd mtx_matcher]; +#X text 93 536 we don't want to output "matrix" \, but pure pd-lists +instead; +#X obj 324 566 outlet bloblists; +#X text 344 402 this is the work-horse for the tracking; +#X text 95 10 part of Gem; +#X text 51 253 the work-horse for detection; +#X obj 301 224 loadbang; +#X obj 301 243 f \$1; +#X obj 301 262 moses 1; +#X msg 331 343 6 2; +#X obj 301 281 t b b; +#X text 56 155 TODO: output only those blobs that are really detected +; +#X obj 231 322 mtx_resize \$1 0; +#X msg 331 302 6 0; +#X obj 97 269 pix_multiblob \$1; +#X obj 97 30 declare -lib Gem -lib iemmatrix; +#X text 92 66 copyright (c) IOhannes m zmoelnig \, 2005 \; you may +use this under the terms of the GnuGPL v2.0 or later; +#X connect 0 0 13 0; +#X connect 1 0 25 0; +#X connect 3 0 10 1; +#X connect 4 0 9 0; +#X connect 4 1 5 1; +#X connect 5 0 7 0; +#X connect 7 0 0 0; +#X connect 7 1 8 0; +#X connect 8 0 6 0; +#X connect 9 0 10 0; +#X connect 10 0 3 0; +#X connect 10 1 5 0; +#X connect 17 0 18 0; +#X connect 18 0 19 0; +#X connect 19 0 21 0; +#X connect 20 0 9 1; +#X connect 21 0 20 0; +#X connect 21 1 24 0; +#X connect 23 0 4 0; +#X connect 24 0 23 1; +#X connect 25 0 2 0; +#X connect 25 1 23 0; diff --git a/Gem/abstractions/pix_buffer_filmopen-help.pd b/Gem/abstractions/pix_buffer_filmopen-help.pd new file mode 100644 index 0000000..2fcbdf0 --- /dev/null +++ b/Gem/abstractions/pix_buffer_filmopen-help.pd @@ -0,0 +1,86 @@ +#N canvas 621 114 691 473 10; +#X obj 9 265 cnv 15 430 185 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 40 267 Inlets:; +#X obj 9 227 cnv 15 430 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 18 226 Arguments:; +#X obj 8 56 cnv 15 430 165 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 449 77 cnv 15 200 280 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X text 453 60 Example:; +#X obj 536 293 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X msg 67 70 set destroy; +#X msg 132 112 create \, 1; +#X msg 198 112 destroy; +#X msg 156 71 set create; +#X obj 67 41 route create; +#X connect 2 0 7 0; +#X connect 3 0 1 0; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X connect 6 0 1 0; +#X connect 7 0 3 0; +#X connect 7 0 4 0; +#X connect 7 1 6 0; +#X connect 7 1 5 0; +#X restore 541 332 pd gemwin; +#X msg 541 313 create; +#X text 537 292 Create window:; +#X obj 461 206 cnv 15 180 30 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X text 71 31 Class: pix object; +#X text 64 237 list: ; +#X text 26 312 Inlet 1: message: set : write to another +buffer.; +#X text 440 363 see also:; +#X obj 508 382 pix_buffer_read; +#X obj 461 84 bng 25 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 461 112 openpanel; +#X msg 461 156 open \$1 \$2; +#X obj 461 135 pack s 0; +#X msg 474 182 set depot; +#X obj 507 362 pix_buffer depot 10; +#X text 50 12 Synopsis: [pix_buffer_filmopen]; +#X text 29 57 Description: reads a movie into a [pix_buffer]; +#X text 11 79 [pix_buffer_filmopen] reads a movie into a named buffer +in the [pix_buffer] object \, starting at an (optional) bufferindex +(defaults to 0). The film is read as fast as possible and the entire +film is read \, so you might get clicks.; +#X text 13 151 This object is meant to be used at initialzation time. +; +#X text 26 280 Inlet 1: message: open : read +a filename into buffer starting at index.; +#X text 15 172 This object needs the gemwindow to be created.; +#X obj 461 212 pix_buffer_filmopen depot; +#X obj 461 242 unpack f f f; +#X floatatom 461 264 5 0 0 0 - - -; +#X floatatom 495 264 5 0 0 0 - - -; +#X floatatom 530 264 5 0 0 0 - - -; +#X obj 632 262 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X text 49 341 Outlets:; +#X text 26 356 Outlet 1: list: : gets the +dimensions (in fps and pixels) of a film when it gets loaded. if length +is not available (video-streams) -1 is returned.; +#X text 26 413 Outlet 2: bangs when finished loading; +#X text 452 8 GEM abstraction; +#X connect 8 0 9 0; +#X connect 9 0 8 0; +#X connect 17 0 18 0; +#X connect 18 0 20 0; +#X connect 19 0 29 0; +#X connect 20 0 19 0; +#X connect 21 0 29 0; +#X connect 29 0 30 0; +#X connect 29 1 34 0; +#X connect 30 0 31 0; +#X connect 30 1 32 0; +#X connect 30 2 33 0; diff --git a/Gem/abstractions/pix_buffer_filmopen.pd b/Gem/abstractions/pix_buffer_filmopen.pd new file mode 100644 index 0000000..96c82c5 --- /dev/null +++ b/Gem/abstractions/pix_buffer_filmopen.pd @@ -0,0 +1,78 @@ +#N canvas 1416 206 863 652 10; +#X obj 79 77 inlet; +#X obj 122 240 gemhead; +#X msg 153 263 open \$1; +#X obj 122 288 pix_film; +#X obj 180 382 until; +#X obj 180 342 t f b; +#X obj 180 402 i; +#X obj 213 403 + 1; +#X msg 122 215 0; +#X obj 122 193 loadbang; +#X obj 79 100 route set open; +#X msg 79 142 set \$1; +#X obj 122 503 pix_buffer_write \$1; +#X obj 153 158 unpack s 0; +#X obj 153 132 t a b; +#X obj 226 184 t f; +#X msg 231 158 0; +#X msg 219 80 open data/homer.avi 5; +#X obj 79 121 symbol; +#X obj 180 425 t b f f f; +#X msg 294 129 set myImages; +#X obj 220 451 + 0; +#X msg 225 382 0; +#X text 379 81 open film "data/homer.avi" and write it into buffer +starting at bufferposition "5"; +#X text 392 132 set the buffer to write to; +#X text 63 29 read a film into a buffer; +#X text 356 244 TODO:; +#X text 401 244 set upper limit to write to; +#X text 400 259 guess write-limit from pix_buffer size; +#X text 361 328 ATTENTION:; +#X text 446 328 this object will only work with rendering turned on +; +#X obj 148 542 outlet info; +#X obj 277 542 outlet finished; +#X obj 223 344 t b; +#X text 413 451 (c) copyleft 2009 Max Neupert; +#X obj 148 316 t a a; +#X obj 148 465 t a b; +#X text 412 433 (c) copyleft 2008-2009 IOhannes m zmoelnig \, IEM \, +KUG; +#X connect 0 0 10 0; +#X connect 1 0 3 0; +#X connect 2 0 3 0; +#X connect 3 0 12 0; +#X connect 3 1 35 0; +#X connect 3 2 33 0; +#X connect 4 0 6 0; +#X connect 5 0 4 0; +#X connect 5 1 22 0; +#X connect 6 0 7 0; +#X connect 6 0 19 0; +#X connect 7 0 6 1; +#X connect 8 0 1 0; +#X connect 9 0 8 0; +#X connect 10 0 18 0; +#X connect 10 1 14 0; +#X connect 11 0 12 0; +#X connect 13 0 2 0; +#X connect 13 1 15 0; +#X connect 14 0 13 0; +#X connect 14 1 16 0; +#X connect 15 0 21 1; +#X connect 16 0 15 0; +#X connect 17 0 10 0; +#X connect 18 0 11 0; +#X connect 19 0 1 0; +#X connect 19 1 3 1; +#X connect 19 2 21 0; +#X connect 20 0 10 0; +#X connect 21 0 12 1; +#X connect 22 0 6 1; +#X connect 33 0 4 1; +#X connect 35 0 36 0; +#X connect 35 1 5 0; +#X connect 36 0 31 0; +#X connect 36 1 32 0; diff --git a/Gem/abstractions/pix_write.pd b/Gem/abstractions/pix_write.pd new file mode 100644 index 0000000..b65da99 --- /dev/null +++ b/Gem/abstractions/pix_write.pd @@ -0,0 +1,197 @@ +#N canvas 1638 263 859 513 10; +#X obj 81 82 inlet gemlist; +#X obj 351 471 outlet gemlist; +#X obj 351 439 pix_writer; +#X obj 351 298 pix_snap; +#X obj 669 133 loadbang; +#N canvas 0 0 450 300 once 0; +#X obj 82 68 inlet; +#X obj 82 136 spigot; +#X obj 82 163 t a b; +#X msg 122 108 0; +#X obj 270 61 inlet reset; +#X obj 270 90 t b; +#X msg 269 113 1; +#X obj 82 197 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 7 0; +#X connect 2 1 3 0; +#X connect 3 0 1 1; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 1 1; +#X restore 374 245 pd once; +#X obj 351 192 t a b b; +#X msg 374 265 snap; +#X obj 420 224 i 0; +#X obj 438 198 r \$0-auto; +#X obj 460 223 r \$0-banged; +#X obj 81 204 s \$0-banged; +#X obj 81 182 t b; +#X obj 395 400 r \$0-banged; +#X obj 81 155 route bang auto file vert_size vert_pos; +#X obj 135 227 i; +#X obj 135 247 != 0; +#X obj 135 267 s \$0-auto; +#X obj 189 325 list prepend file; +#X obj 189 350 list trim; +#X obj 189 370 t a; +#X obj 474 59 inlet size; +#X obj 619 61 inlet pos; +#N canvas 1530 407 698 419 arguments 0; +#X obj 112 44 inlet init; +#X text 252 61 4: xoff yoff width height; +#X text 254 79 2: width height; +#X text 254 95 0:; +#N canvas 52 114 1249 422 argcount 0; +#X obj 69 46 inlet; +#X obj 50 178 select s; +#X obj 50 128 t b b; +#X obj 156 155 makefilename $%d-test; +#X obj 50 155 symbol \$1-test; +#X msg 156 135 1; +#X obj 570 178 select s; +#X obj 570 128 t b b; +#X obj 676 155 makefilename $%d-test; +#X obj 850 178 select s; +#X obj 850 128 t b b; +#X obj 956 155 makefilename $%d-test; +#X obj 1120 178 select s; +#X obj 1120 128 t b b; +#X obj 1226 155 makefilename $%d-test; +#X msg 676 135 3; +#X msg 956 135 4; +#X msg 1226 135 5; +#X obj 50 242 t f; +#X obj 27 306 f; +#X obj 322 61 t b b b b b; +#X obj 27 74 t b b b; +#X msg 73 291 -1; +#X obj 27 360 outlet; +#X obj 570 155 symbol \$3-test; +#X obj 850 155 symbol \$4-test; +#X obj 1120 155 symbol \$5-test; +#X msg 50 199 0; +#X obj 310 178 select s; +#X obj 310 128 t b b; +#X obj 416 155 makefilename $%d-test; +#X msg 416 135 2; +#X obj 310 155 symbol \$2-test; +#X msg 310 199 1; +#X msg 570 199 2; +#X msg 850 199 3; +#X msg 1120 199 4; +#X connect 0 0 21 0; +#X connect 1 0 27 0; +#X connect 2 0 4 0; +#X connect 2 1 5 0; +#X connect 3 0 1 1; +#X connect 4 0 1 0; +#X connect 5 0 3 0; +#X connect 6 0 34 0; +#X connect 7 0 24 0; +#X connect 7 1 15 0; +#X connect 8 0 6 1; +#X connect 9 0 35 0; +#X connect 10 0 25 0; +#X connect 10 1 16 0; +#X connect 11 0 9 1; +#X connect 12 0 36 0; +#X connect 13 0 26 0; +#X connect 13 1 17 0; +#X connect 14 0 12 1; +#X connect 15 0 8 0; +#X connect 16 0 11 0; +#X connect 17 0 14 0; +#X connect 18 0 19 1; +#X connect 19 0 23 0; +#X connect 20 0 2 0; +#X connect 20 1 29 0; +#X connect 20 2 7 0; +#X connect 20 3 10 0; +#X connect 20 4 13 0; +#X connect 21 0 19 0; +#X connect 21 1 20 0; +#X connect 21 2 22 0; +#X connect 22 0 19 1; +#X connect 24 0 6 0; +#X connect 25 0 9 0; +#X connect 26 0 12 0; +#X connect 27 0 18 0; +#X connect 28 0 33 0; +#X connect 29 0 32 0; +#X connect 29 1 31 0; +#X connect 30 0 28 1; +#X connect 31 0 30 0; +#X connect 32 0 28 0; +#X connect 33 0 18 0; +#X connect 34 0 18 0; +#X connect 35 0 18 0; +#X connect 36 0 18 0; +#X restore 112 118 pd argcount; +#X obj 112 181 list append \$1 \$2 \$3 \$4; +#X obj 112 142 select 4 2 0; +#X obj 112 312 pack 0 0 0 0; +#X obj 112 337 t l l; +#X obj 112 385 outlet offset; +#X obj 232 386 outlet size; +#X msg 112 362 \$1 \$2; +#X msg 232 362 \$3 \$4; +#X obj 139 211 list append 0 0 \$1 \$2; +#X obj 112 290 t a; +#X msg 193 255 0 0 128 128; +#X obj 193 232 t b b; +#X obj 283 275 print error; +#X msg 283 255 [pix_write] needs 0 2 or 4 arguments; +#X connect 0 0 4 0; +#X connect 4 0 6 0; +#X connect 5 0 14 0; +#X connect 6 0 5 0; +#X connect 6 1 13 0; +#X connect 6 3 16 0; +#X connect 7 0 8 0; +#X connect 8 0 11 0; +#X connect 8 1 12 0; +#X connect 11 0 9 0; +#X connect 12 0 10 0; +#X connect 13 0 14 0; +#X connect 14 0 7 0; +#X connect 15 0 14 0; +#X connect 16 0 15 0; +#X connect 16 1 18 0; +#X connect 18 0 17 0; +#X restore 669 152 pd arguments; +#X obj 538 364 r \$0-auto; +#X msg 538 385 auto \$1; +#X connect 0 0 14 0; +#X connect 2 0 1 0; +#X connect 3 0 2 0; +#X connect 4 0 23 0; +#X connect 5 0 7 0; +#X connect 6 0 3 0; +#X connect 6 1 5 0; +#X connect 6 2 8 0; +#X connect 7 0 3 0; +#X connect 8 0 5 1; +#X connect 9 0 8 1; +#X connect 10 0 5 1; +#X connect 12 0 11 0; +#X connect 13 0 2 0; +#X connect 14 0 12 0; +#X connect 14 1 15 0; +#X connect 14 2 18 0; +#X connect 14 3 3 1; +#X connect 14 4 3 2; +#X connect 14 5 6 0; +#X connect 15 0 16 0; +#X connect 16 0 17 0; +#X connect 18 0 19 0; +#X connect 19 0 20 0; +#X connect 20 0 2 0; +#X connect 21 0 3 1; +#X connect 22 0 3 2; +#X connect 23 0 3 2; +#X connect 23 1 3 1; +#X connect 24 0 25 0; +#X connect 25 0 2 0; diff --git a/Gem/abstractions/pix_writer.pd b/Gem/abstractions/pix_writer.pd new file mode 100644 index 0000000..2e07c03 --- /dev/null +++ b/Gem/abstractions/pix_writer.pd @@ -0,0 +1,150 @@ +#N canvas 253 66 836 530 10; +#X obj 110 23 inlet gemlist; +#X obj 227 125 outlet gemlist; +#X obj 537 418 pix_buffer \$0-buf 1; +#X obj 254 199 pix_buffer_write \$0-buf; +#X obj 227 102 t a a; +#X obj 453 88 unpack s 0; +#X obj 510 139 t f f; +#N canvas 1 51 450 300 spigot 0; +#X obj 49 62 inlet gemlist; +#X obj 49 242 spigot; +#X obj 49 272 outlet gemlist; +#X obj 193 63 inlet; +#N canvas 1 51 450 300 bang 0; +#X obj 187 163 i; +#X obj 187 183 t f b; +#X msg 214 162 0; +#X msg 202 144 1; +#X obj 279 85 inlet; +#X obj 279 105 t b; +#X obj 74 84 inlet; +#X obj 187 203 outlet; +#X connect 0 0 1 0; +#X connect 1 0 7 0; +#X connect 1 1 2 0; +#X connect 2 0 0 1; +#X connect 3 0 0 1; +#X connect 4 0 5 0; +#X connect 5 0 3 0; +#X connect 6 0 0 0; +#X restore 154 166 pd bang; +#X obj 193 83 route bang float; +#X obj 154 145 t b b; +#N canvas 1 51 450 300 float 0; +#X obj 187 163 i; +#X obj 279 85 inlet; +#X obj 74 84 inlet; +#X obj 187 203 outlet; +#X connect 0 0 3 0; +#X connect 1 0 0 1; +#X connect 2 0 0 0; +#X restore 204 166 pd float; +#X obj 154 186 &&; +#X obj 49 82 t a b; +#X connect 0 0 9 0; +#X connect 1 0 2 0; +#X connect 3 0 5 0; +#X connect 4 0 8 0; +#X connect 5 0 4 1; +#X connect 5 1 7 1; +#X connect 6 0 4 0; +#X connect 6 1 7 0; +#X connect 7 0 8 1; +#X connect 8 0 1 1; +#X connect 9 0 1 0; +#X connect 9 1 6 0; +#X restore 254 160 pd spigot; +#X obj 254 180 t a b; +#X msg 389 180 0; +#X obj 254 219 t b; +#X obj 254 239 i; +#X obj 254 259 t f f; +#X obj 281 239 + 1; +#X obj 254 279 makefilename gem%05d.tif; +#X obj 510 159 select 0; +#X msg 510 179 tif; +#X msg 555 179 jpg; +#X obj 510 199 symbol; +#X obj 453 220 pack s s; +#X obj 537 337 t f b; +#X msg 537 377 setProps quality \$1; +#X obj 537 357 select 0; +#X msg 601 357 clearProps; +#X obj 510 115 clip 0 100; +#X msg 254 363 save \$1 0; +#X obj 537 396 t a a; +#X msg 453 260 set \$1%05d.\$2; +#X obj 453 240 t l b; +#X msg 284 220 0; +#X text 104 427 (c) 2011 Jack/RYBN; +#X text 104 437 (c) 2011 IOhannes m zmölnig; +#X obj 537 438 s \$0-info; +#X obj 709 477 outlet info; +#X obj 110 63 f; +#X obj 152 63 t b; +#X obj 110 83 t a; +#X obj 110 43 route auto bang; +#X obj 209 43 route file; +#X obj 277 43 route enumProps clearProps setProps; +#X obj 277 62 t b; +#X obj 346 62 t b; +#X msg 461 357 enumProps; +#X obj 682 357 list prepend setProps; +#X obj 682 377 list trim; +#X obj 709 458 r \$0-info; +#X connect 0 0 37 0; +#X connect 2 0 32 0; +#X connect 3 0 10 0; +#X connect 4 0 1 0; +#X connect 4 1 7 0; +#X connect 5 0 19 0; +#X connect 5 1 24 0; +#X connect 6 0 15 0; +#X connect 6 1 20 0; +#X connect 7 0 8 0; +#X connect 8 0 3 0; +#X connect 8 1 9 0; +#X connect 9 0 3 1; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X connect 12 0 14 0; +#X connect 12 1 13 0; +#X connect 13 0 11 1; +#X connect 14 0 25 0; +#X connect 15 0 16 0; +#X connect 15 1 17 0; +#X connect 16 0 18 0; +#X connect 17 0 18 0; +#X connect 18 0 19 1; +#X connect 19 0 28 0; +#X connect 20 0 22 0; +#X connect 20 1 23 0; +#X connect 21 0 26 0; +#X connect 22 1 21 0; +#X connect 23 0 26 0; +#X connect 24 0 6 0; +#X connect 25 0 26 0; +#X connect 26 0 2 0; +#X connect 27 0 14 0; +#X connect 28 0 27 0; +#X connect 28 1 29 0; +#X connect 29 0 11 1; +#X connect 34 0 36 0; +#X connect 35 0 36 0; +#X connect 36 0 7 1; +#X connect 37 0 34 0; +#X connect 37 1 35 0; +#X connect 37 2 38 0; +#X connect 38 0 5 0; +#X connect 38 1 39 0; +#X connect 39 0 40 0; +#X connect 39 1 41 0; +#X connect 39 2 43 0; +#X connect 39 3 4 0; +#X connect 40 0 42 0; +#X connect 41 0 23 0; +#X connect 42 0 26 0; +#X connect 43 0 44 0; +#X connect 44 0 26 0; +#X connect 45 0 33 0; diff --git a/Gem/abstractions/rgb2hsv-help.pd b/Gem/abstractions/rgb2hsv-help.pd new file mode 100644 index 0000000..1d8b9a8 --- /dev/null +++ b/Gem/abstractions/rgb2hsv-help.pd @@ -0,0 +1,21 @@ +#N canvas 172 190 600 500 10; +#X text 124 68 GEM object; +#X text 138 23 rgb2hsv; +#X text 89 388 convert between RGB colorspace and HSV colorspace; +#X text 91 412 RGB is red \, green \, blue; +#X text 91 434 HSV is hue \, saturation \, value (luminance); +#X obj 123 220 rgb2hsv; +#X msg 122 156 1 0 0; +#X msg 357 160 0 1 1; +#X obj 123 299 print hsv; +#X obj 357 303 print rgb; +#X obj 357 226 hsv2rgb; +#X msg 414 159 0.6 1 0.5; +#X msg 185 155 0 0.2 0.5; +#X text 215 21 hsv2rgb; +#X connect 5 0 8 0; +#X connect 6 0 5 0; +#X connect 7 0 10 0; +#X connect 10 0 9 0; +#X connect 11 0 10 0; +#X connect 12 0 5 0; diff --git a/Gem/abstractions/rgb2hsv.pd b/Gem/abstractions/rgb2hsv.pd new file mode 100644 index 0000000..9546881 --- /dev/null +++ b/Gem/abstractions/rgb2hsv.pd @@ -0,0 +1,301 @@ +#N canvas 359 28 479 587 10; +#X obj 186 29 inlet; +#X obj 196 551 outlet; +#X obj 249 303 unpack 0 0 0; +#X obj 196 529 pack 0 0 0; +#X obj 186 142 t f f; +#X obj 186 163 t f f; +#X obj 186 185 -; +#X obj 186 224 /; +#X obj 186 244 t f f; +#X obj 145 266 select 0; +#X msg 145 286 0; +#X obj 186 204 t f f; +#N canvas 0 0 450 515 sort3 0; +#X obj 55 109 inlet; +#X obj 55 375 outlet; +#X obj 205 375 outlet; +#X obj 55 313 unpack; +#X obj 105 313 unpack; +#X obj 155 313 unpack; +#X msg 55 156 \$1 0; +#X msg 97 155 \$1 1; +#X msg 145 156 \$1 2; +#X obj 55 132 unpack 0 0 0; +#X obj 55 352 pack 0 0 0; +#X obj 205 352 pack 0 0 0; +#N canvas 0 0 489 412 sort_header 0; +#X obj 67 27 inlet; +#X obj 67 318 outlet; +#X obj 212 318 outlet; +#X obj 67 79 t f l; +#X obj 157 27 inlet; +#X obj 157 79 t f l; +#X obj 67 119 >; +#X obj 67 149 select 0 1; +#X obj 67 181 t b b; +#X obj 227 175 t b b; +#X obj 67 291 pack; +#X obj 83 250 unpack; +#X obj 67 271 f; +#X obj 117 291 pack; +#X obj 133 250 unpack; +#X obj 117 271 f; +#X obj 227 291 pack; +#X obj 243 250 unpack; +#X obj 227 271 f; +#X obj 277 291 pack; +#X obj 293 250 unpack; +#X obj 277 271 f; +#X connect 0 0 3 0; +#X connect 3 0 6 0; +#X connect 3 1 11 0; +#X connect 3 1 20 0; +#X connect 4 0 5 0; +#X connect 5 0 6 1; +#X connect 5 1 14 0; +#X connect 5 1 17 0; +#X connect 6 0 7 0; +#X connect 7 0 8 0; +#X connect 7 1 9 0; +#X connect 8 0 12 0; +#X connect 8 1 15 0; +#X connect 9 0 18 0; +#X connect 9 1 21 0; +#X connect 10 0 1 0; +#X connect 11 0 12 1; +#X connect 11 1 10 1; +#X connect 12 0 10 0; +#X connect 13 0 2 0; +#X connect 14 0 15 1; +#X connect 14 1 13 1; +#X connect 15 0 13 0; +#X connect 16 0 1 0; +#X connect 17 0 18 1; +#X connect 17 1 16 1; +#X connect 18 0 16 0; +#X connect 19 0 2 0; +#X connect 20 0 21 1; +#X connect 20 1 19 1; +#X connect 21 0 19 0; +#X restore 110 178 pd sort_header; +#N canvas 0 0 450 300 sort_header 0; +#X obj 67 27 inlet; +#X obj 67 318 outlet; +#X obj 212 318 outlet; +#X obj 67 79 t f l; +#X obj 157 27 inlet; +#X obj 157 79 t f l; +#X obj 67 119 >; +#X obj 67 149 select 0 1; +#X obj 67 181 t b b; +#X obj 227 175 t b b; +#X obj 67 291 pack; +#X obj 83 250 unpack; +#X obj 67 271 f; +#X obj 117 291 pack; +#X obj 133 250 unpack; +#X obj 117 271 f; +#X obj 227 291 pack; +#X obj 243 250 unpack; +#X obj 227 271 f; +#X obj 277 291 pack; +#X obj 293 250 unpack; +#X obj 277 271 f; +#X connect 0 0 3 0; +#X connect 3 0 6 0; +#X connect 3 1 11 0; +#X connect 3 1 20 0; +#X connect 4 0 5 0; +#X connect 5 0 6 1; +#X connect 5 1 14 0; +#X connect 5 1 17 0; +#X connect 6 0 7 0; +#X connect 7 0 8 0; +#X connect 7 1 9 0; +#X connect 8 0 12 0; +#X connect 8 1 15 0; +#X connect 9 0 18 0; +#X connect 9 1 21 0; +#X connect 10 0 1 0; +#X connect 11 0 12 1; +#X connect 11 1 10 1; +#X connect 12 0 10 0; +#X connect 13 0 2 0; +#X connect 14 0 15 1; +#X connect 14 1 13 1; +#X connect 15 0 13 0; +#X connect 16 0 1 0; +#X connect 17 0 18 1; +#X connect 17 1 16 1; +#X connect 18 0 16 0; +#X connect 19 0 2 0; +#X connect 20 0 21 1; +#X connect 20 1 19 1; +#X connect 21 0 19 0; +#X restore 55 205 pd sort_header; +#N canvas 0 0 450 300 sort_header 0; +#X obj 67 27 inlet; +#X obj 67 318 outlet; +#X obj 212 318 outlet; +#X obj 67 79 t f l; +#X obj 157 27 inlet; +#X obj 157 79 t f l; +#X obj 67 119 >; +#X obj 67 149 select 0 1; +#X obj 67 181 t b b; +#X obj 227 175 t b b; +#X obj 67 291 pack; +#X obj 83 250 unpack; +#X obj 67 271 f; +#X obj 117 291 pack; +#X obj 133 250 unpack; +#X obj 117 271 f; +#X obj 227 291 pack; +#X obj 243 250 unpack; +#X obj 227 271 f; +#X obj 277 291 pack; +#X obj 293 250 unpack; +#X obj 277 271 f; +#X connect 0 0 3 0; +#X connect 3 0 6 0; +#X connect 3 1 11 0; +#X connect 3 1 20 0; +#X connect 4 0 5 0; +#X connect 5 0 6 1; +#X connect 5 1 14 0; +#X connect 5 1 17 0; +#X connect 6 0 7 0; +#X connect 7 0 8 0; +#X connect 7 1 9 0; +#X connect 8 0 12 0; +#X connect 8 1 15 0; +#X connect 9 0 18 0; +#X connect 9 1 21 0; +#X connect 10 0 1 0; +#X connect 11 0 12 1; +#X connect 11 1 10 1; +#X connect 12 0 10 0; +#X connect 13 0 2 0; +#X connect 14 0 15 1; +#X connect 14 1 13 1; +#X connect 15 0 13 0; +#X connect 16 0 1 0; +#X connect 17 0 18 1; +#X connect 17 1 16 1; +#X connect 18 0 16 0; +#X connect 19 0 2 0; +#X connect 20 0 21 1; +#X connect 20 1 19 1; +#X connect 21 0 19 0; +#X restore 116 236 pd sort_header; +#X connect 0 0 9 0; +#X connect 3 0 10 0; +#X connect 3 1 11 0; +#X connect 4 0 10 1; +#X connect 4 1 11 1; +#X connect 5 0 10 2; +#X connect 5 1 11 2; +#X connect 6 0 13 0; +#X connect 7 0 12 0; +#X connect 8 0 12 1; +#X connect 9 0 6 0; +#X connect 9 1 7 0; +#X connect 9 2 8 0; +#X connect 10 0 1 0; +#X connect 11 0 2 0; +#X connect 12 0 13 1; +#X connect 12 1 14 1; +#X connect 13 0 3 0; +#X connect 13 1 14 0; +#X connect 14 0 4 0; +#X connect 14 1 5 0; +#X restore 186 77 pd sort3; +#X msg 186 98 \$3 \$1; +#X obj 186 121 unpack; +#X msg 239 98 \$3; +#X obj 196 398 -; +#X obj 240 379 t f f f; +#X obj 233 438 + 2; +#X obj 233 398 -; +#X obj 268 398 -; +#X obj 268 418 /; +#X obj 233 418 /; +#X obj 196 418 /; +#X obj 268 438 + 4; +#N canvas 0 0 450 300 select3 0; +#X obj 106 87 inlet; +#X obj 234 85 inlet; +#X obj 115 222 outlet; +#X obj 232 107 unpack 0 0 0; +#X obj 117 194 f; +#X obj 180 192 f; +#X obj 240 190 f; +#X obj 110 137 select 0 1 2; +#X obj 184 224 outlet; +#X obj 236 222 outlet; +#X connect 0 0 7 0; +#X connect 1 0 3 0; +#X connect 3 0 4 1; +#X connect 3 1 5 1; +#X connect 3 2 6 1; +#X connect 4 0 2 0; +#X connect 5 0 8 0; +#X connect 6 0 9 0; +#X connect 7 0 5 0; +#X connect 7 1 6 0; +#X connect 7 2 4 0; +#X restore 196 329 pd select3; +#X obj 196 287 b; +#X obj 196 307 i; +#X obj 186 55 t l l l; +#X obj 196 480 moses 0; +#X obj 196 459 / 6; +#X obj 196 500 + 1; +#X connect 0 0 28 0; +#X connect 2 0 19 1; +#X connect 2 1 20 1; +#X connect 2 2 16 1; +#X connect 3 0 1 0; +#X connect 4 0 5 0; +#X connect 4 1 3 2; +#X connect 5 0 6 0; +#X connect 5 1 7 1; +#X connect 6 0 11 0; +#X connect 7 0 8 0; +#X connect 8 0 9 0; +#X connect 8 1 3 1; +#X connect 9 0 10 0; +#X connect 9 1 26 0; +#X connect 10 0 3 0; +#X connect 11 0 7 0; +#X connect 11 1 17 0; +#X connect 12 0 13 0; +#X connect 12 1 15 0; +#X connect 13 0 14 0; +#X connect 14 0 4 0; +#X connect 14 1 6 1; +#X connect 15 0 27 1; +#X connect 16 0 23 0; +#X connect 17 0 23 1; +#X connect 17 1 22 1; +#X connect 17 2 21 1; +#X connect 18 0 30 0; +#X connect 19 0 22 0; +#X connect 20 0 21 0; +#X connect 21 0 24 0; +#X connect 22 0 18 0; +#X connect 23 0 30 0; +#X connect 24 0 30 0; +#X connect 25 0 20 0; +#X connect 25 1 16 0; +#X connect 25 2 19 0; +#X connect 26 0 27 0; +#X connect 27 0 25 0; +#X connect 28 0 12 0; +#X connect 28 1 2 0; +#X connect 28 2 25 1; +#X connect 29 0 31 0; +#X connect 29 1 3 0; +#X connect 30 0 29 0; +#X connect 31 0 3 0; diff --git a/Gem/abstractions/rgb2yuv-help.pd b/Gem/abstractions/rgb2yuv-help.pd new file mode 100644 index 0000000..6205d51 --- /dev/null +++ b/Gem/abstractions/rgb2yuv-help.pd @@ -0,0 +1,36 @@ +#N canvas 457 99 472 501 10; +#X text 333 19 GEM object; +#X text 91 412 RGB is red \, green \, blue; +#X text 91 434 YUV is luma and chroma; +#X obj 119 207 cnv 15 70 40 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 123 218 rgb2yuv; +#X msg 163 182 1 0 0; +#X msg 155 156 0 0.2 0.5; +#X obj 123 257 unpack 0 0 0; +#X floatatom 178 84 5 0 1 1 Blue - -; +#X floatatom 141 67 5 0 1 1 Green - -; +#X floatatom 123 49 5 0 1 1 Red - -; +#X obj 123 122 pack 0 0 0; +#X obj 141 103 t b f; +#X obj 178 103 t b f; +#X text 83 9 [rgb2yuv]; +#X text 175 11 [yuv2rgb]; +#X text 89 388 convert between RGB colorspace and YUV colorspace; +#X floatatom 190 284 5 0 1 1 V=ChromaR - -; +#X floatatom 156 305 5 0 1 1 U=ChromaB - -; +#X floatatom 123 327 5 0 1 1 Y=Luma - -; +#X connect 4 0 7 0; +#X connect 5 0 4 0; +#X connect 6 0 4 0; +#X connect 7 0 19 0; +#X connect 7 1 18 0; +#X connect 7 2 17 0; +#X connect 8 0 13 0; +#X connect 9 0 12 0; +#X connect 10 0 11 0; +#X connect 11 0 4 0; +#X connect 12 0 11 0; +#X connect 12 1 11 1; +#X connect 13 0 11 0; +#X connect 13 1 11 2; diff --git a/Gem/abstractions/rgb2yuv.pd b/Gem/abstractions/rgb2yuv.pd new file mode 100644 index 0000000..dfb7c3f --- /dev/null +++ b/Gem/abstractions/rgb2yuv.pd @@ -0,0 +1,105 @@ +#N canvas 236 111 450 476 10; +#N canvas 286 158 450 300 rgb2y 0; +#X obj 82 57 inlet; +#X obj 82 236 outlet; +#X obj 82 119 * 65.738; +#X obj 143 120 * 129.075; +#X obj 215 119 * 25.064; +#X obj 82 142 +; +#X obj 82 164 +; +#X obj 82 207 + 16; +#X obj 82 186 / 256; +#X obj 143 57 inlet; +#X obj 215 57 inlet; +#X connect 0 0 2 0; +#X connect 2 0 5 0; +#X connect 3 0 5 1; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 6 0 8 0; +#X connect 7 0 1 0; +#X connect 8 0 7 0; +#X connect 9 0 3 0; +#X connect 10 0 4 0; +#X restore 103 206 pd rgb2y; +#N canvas 286 158 450 300 rgb2u 0; +#X obj 82 57 inlet; +#X obj 82 236 outlet; +#X obj 82 142 +; +#X obj 82 164 +; +#X obj 82 186 / 256; +#X obj 82 119 * -37.945; +#X obj 143 120 * -74.494; +#X obj 215 119 * 112.439; +#X obj 82 207 + 128; +#X obj 143 57 inlet; +#X obj 215 57 inlet; +#X connect 0 0 5 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 8 0; +#X connect 5 0 2 0; +#X connect 6 0 2 1; +#X connect 7 0 3 1; +#X connect 8 0 1 0; +#X connect 9 0 6 0; +#X connect 10 0 7 0; +#X restore 163 206 pd rgb2u; +#N canvas 286 158 450 300 rgb2v 0; +#X obj 82 57 inlet; +#X obj 82 236 outlet; +#X obj 82 142 +; +#X obj 82 164 +; +#X obj 82 186 / 256; +#X obj 82 207 + 128; +#X obj 82 119 * 112.439; +#X obj 143 120 * -94.154; +#X obj 215 119 * -18.285; +#X obj 143 57 inlet; +#X obj 215 57 inlet; +#X connect 0 0 6 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 1 0; +#X connect 6 0 2 0; +#X connect 7 0 2 1; +#X connect 8 0 3 1; +#X connect 9 0 7 0; +#X connect 10 0 8 0; +#X restore 224 207 pd rgb2v; +#X text 106 37 convert RGB to YUV; +#X obj 103 245 pack 0 0 0; +#X obj 103 69 inlet RGB; +#X obj 103 104 pack \$1 \$2 \$3; +#X obj 103 353 outlet YUV; +#X obj 103 226 / 256; +#X obj 163 226 / 256; +#X obj 224 226 / 256; +#X obj 103 125 unpack 0 0 0; +#X obj 103 166 t f f f; +#X obj 103 146 * 256; +#X obj 136 146 * 256; +#X obj 170 146 * 256; +#X connect 0 0 8 0; +#X connect 1 0 9 0; +#X connect 2 0 10 0; +#X connect 4 0 7 0; +#X connect 5 0 6 0; +#X connect 6 0 11 0; +#X connect 8 0 4 0; +#X connect 9 0 4 1; +#X connect 10 0 4 2; +#X connect 11 0 13 0; +#X connect 11 1 14 0; +#X connect 11 2 15 0; +#X connect 12 0 0 0; +#X connect 12 1 1 0; +#X connect 12 2 2 0; +#X connect 13 0 12 0; +#X connect 14 0 0 1; +#X connect 14 0 1 1; +#X connect 14 0 2 1; +#X connect 15 0 2 2; +#X connect 15 0 1 2; +#X connect 15 0 0 2; diff --git a/Gem/abstractions/yuv2rgb-help.pd b/Gem/abstractions/yuv2rgb-help.pd new file mode 100644 index 0000000..1e9505a --- /dev/null +++ b/Gem/abstractions/yuv2rgb-help.pd @@ -0,0 +1,35 @@ +#N canvas 172 190 600 500 10; +#X text 418 26 GEM object; +#X text 91 412 RGB is red \, green \, blue; +#X text 91 434 YUV is luma and chroma; +#X obj 121 206 cnv 15 70 40 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 125 256 unpack 0 0 0; +#X floatatom 204 278 5 0 0 1 Blue - -; +#X floatatom 164 298 5 0 0 1 Green - -; +#X floatatom 125 321 5 0 0 1 Red - -; +#X obj 125 217 yuv2rgb; +#X msg 165 152 0 1 1; +#X msg 187 176 0.6 1 0.5; +#X floatatom 180 94 5 0 1 1 V=ChromaR - -; +#X floatatom 143 76 5 0 1 1 U=ChromaB - -; +#X floatatom 125 58 5 0 1 1 Y=Luma - -; +#X obj 125 130 pack 0 0 0; +#X obj 143 111 t b f; +#X obj 180 111 t b f; +#X text 175 11 [yuv2rgb]; +#X text 89 388 convert between YUV colorspace and RGB colorspace; +#X connect 4 0 7 0; +#X connect 4 1 6 0; +#X connect 4 2 5 0; +#X connect 8 0 4 0; +#X connect 9 0 8 0; +#X connect 10 0 8 0; +#X connect 11 0 16 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 8 0; +#X connect 15 0 14 0; +#X connect 15 1 14 1; +#X connect 16 0 14 0; +#X connect 16 1 14 2; diff --git a/Gem/abstractions/yuv2rgb.pd b/Gem/abstractions/yuv2rgb.pd new file mode 100644 index 0000000..a84c15d --- /dev/null +++ b/Gem/abstractions/yuv2rgb.pd @@ -0,0 +1,84 @@ +#N canvas 574 31 450 414 10; +#X obj 103 96 unpack 0 0 0; +#X obj 103 140 - 16; +#X obj 136 140 - 128; +#X obj 170 140 - 128; +#X obj 103 163 * 298.082; +#X obj 136 186 pack; +#N canvas 0 0 450 300 yu2r 0; +#X obj 128 46 inlet; +#X obj 130 234 outlet; +#X obj 128 69 unpack; +#X obj 130 110 * 408.583; +#X connect 0 0 2 0; +#X connect 2 1 3 0; +#X connect 3 0 1 0; +#X restore 136 234 pd yu2r; +#N canvas 0 0 450 300 yu2g 0; +#X obj 128 46 inlet; +#X obj 128 164 outlet; +#X obj 128 69 unpack; +#X obj 159 108 * -208.12; +#X obj 128 89 * -100.291; +#X obj 128 135 +; +#X connect 0 0 2 0; +#X connect 2 0 4 0; +#X connect 2 1 3 0; +#X connect 3 0 5 1; +#X connect 4 0 5 0; +#X connect 5 0 1 0; +#X restore 186 234 pd yu2g; +#N canvas 0 0 450 300 yu2b 0; +#X obj 128 46 inlet; +#X obj 128 234 outlet; +#X obj 128 69 unpack; +#X obj 128 110 * 516.411; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 1 0; +#X restore 257 234 pd yu2b; +#X obj 136 207 t l l l; +#X obj 103 289 +; +#X obj 103 263 t f f f; +#X obj 173 289 +; +#X obj 244 289 +; +#X obj 103 74 pack \$1 \$2 \$3; +#X obj 103 49 inlet YUV; +#X obj 103 341 pack 0 0 0; +#X obj 103 380 outlet RGB; +#X obj 103 118 * 256; +#X obj 136 118 * 256; +#X obj 170 118 * 256; +#X obj 103 312 / 65536; +#X obj 173 312 / 65536; +#X obj 244 312 / 65536; +#X text 102 26 convert YUV to RGB (everything is 0..1); +#X connect 0 0 18 0; +#X connect 0 1 19 0; +#X connect 0 2 20 0; +#X connect 1 0 4 0; +#X connect 2 0 5 0; +#X connect 3 0 5 1; +#X connect 4 0 11 0; +#X connect 5 0 9 0; +#X connect 6 0 10 1; +#X connect 7 0 12 1; +#X connect 8 0 13 1; +#X connect 9 0 6 0; +#X connect 9 1 7 0; +#X connect 9 2 8 0; +#X connect 10 0 21 0; +#X connect 11 0 10 0; +#X connect 11 1 12 0; +#X connect 11 2 13 0; +#X connect 12 0 22 0; +#X connect 13 0 23 0; +#X connect 14 0 0 0; +#X connect 15 0 14 0; +#X connect 16 0 17 0; +#X connect 18 0 1 0; +#X connect 19 0 2 0; +#X connect 20 0 3 0; +#X connect 21 0 16 0; +#X connect 22 0 16 1; +#X connect 23 0 16 2; diff --git a/Gem/autogen.sh b/Gem/autogen.sh new file mode 100755 index 0000000..004f3a7 --- /dev/null +++ b/Gem/autogen.sh @@ -0,0 +1,165 @@ +#!/bin/sh + +package=Gem + +KERN=$(uname -s) + +# debugging output to see which path is in effect +echo PATH: $PATH + +IEM_AUTORECONF=$(which autoreconf) + +IEM_AUTOHEADER=$(which autoheader) +IEM_AUTOMAKE=$(which automake) +IEM_ACLOCAL=$(which aclocal) +IEM_LIBTOOL=$(which libtool) +IEM_LIBTOOLIZE=$(which libtoolize) +IEM_AUTOCONF=$(which autoconf) + +case "${KERN}" in + MINGW*) +## on MinGW autoreconf is (still?) known to be somewhat broken + IEM_AUTORECONF="" + ;; + *) + ;; +esac + +## debug printout to see which build scripts we are (or might be) using +echo "AUTORECONF: $IEM_AUTORECONF" +echo "AUTOHEADER: $IEM_AUTOHEADER" +echo "AUTOMAKE : $IEM_AUTOMAKE" +echo "ACLOCAL : $IEM_ACLOCAL" +echo "LIBTOOL : $IEM_LIBTOOL" +echo "LIBTOOLIZE: $IEM_LIBTOOLIZE" +echo "AUTOCONF : $IEM_AUTOCONF" + + +#check whether the system supports pushd/popd +if pushd . > /dev/null 2>&1 +then + popd > /dev/null 2>&1 +else +## some shells (namely dash) don't support pushd/popd +## here we provide some dummies +pushd () { + echo "ignoring pushd to $@" +} + +popd () { + echo "ignoring popd ..." +} +fi + + +autoconf_getsubdirs () { + if [ -e configure.ac ]; then + cat configure.ac | sed -e 's|#.*$||' | grep AC_CONFIG_SUBDIRS | \ + sed -e 's|^.*AC_CONFIG_SUBDIRS(\[\(.*\)\]).*$|\1|' + fi +} + +runit () { +echo " $@" +$@ +} + +manual_autoreconf_doit () { + echo faking autoreconf for $1 + pushd $1 + + runit $IEM_ACLOCAL -I . -I $BASEDIR/m4 || exit 1 + + runit $IEM_LIBTOOLIZE --automake -c || exit 1 + + runit $IEM_AUTOCONF || exit 1 + + if test -e configure.ac && grep AC_CONFIG_HEADER configure.ac > /dev/null 2>&1; then + runit $IEM_AUTOHEADER --force || exit 1 + fi + + if [ -e Makefile.am ]; then + runit $IEM_AUTOMAKE --add-missing -c || exit 1 + fi + popd +} + +manual_autoreconf () { + echo faking autoreconf.. + BASEDIR=${0%/*} + pushd $BASEDIR + BASEDIR=$(pwd) + popd + + if [ "x${SUBDIRS}" = "x" ]; then + #SUBDIRS=autoconf_getsubdirs + + SUBDIRS="." + SUBDIRS="${SUBDIRS} plugins/videoAVT plugins/videoHALCON plugins/videoPYLON" + SUBDIRS="${SUBDIRS} extra extra/pix_artoolkit" + fi + + +# check for all the needed helpers + DIE=0 +($IEM_AUTOCONF --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "You must have autoconf installed to compile $package." + echo "Download the appropriate package for your distribution," + echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" + DIE=1 +} + +($IEM_AUTOMAKE --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "You must have automake installed to compile $package." + echo "Download the appropriate package for your system," + echo "or get the source from one of the GNU ftp sites" + echo "listed in http://www.gnu.org/order/ftp.html" + DIE=1 +} + +($IEM_ACLOCAL --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "You must have aclocal installed to compile $package." + echo "Download the appropriate package for your system," + echo "or get the source from one of the GNU ftp sites" + echo "listed in http://www.gnu.org/order/ftp.html" + DIE=1 +} + +($IEM_LIBTOOL --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "You must have libtool installed to compile $package." + echo "Download the appropriate package for your system," + echo "or get the source from one of the GNU ftp sites" + echo "listed in http://www.gnu.org/order/ftp.html" + DIE=1 +} +($IEM_LIBTOOLIZE --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "You must have libtoolize installed to compile $package." + echo "Download the appropriate package for your system," + echo "or get the source from one of the GNU ftp sites" + echo "listed in http://www.gnu.org/order/ftp.html" + DIE=1 +} + +if test "$DIE" -eq 1; then + exit 1 +fi + +for s in ${SUBDIRS}; do + manual_autoreconf_doit ${BASEDIR}/${s} +done +} + + +if test x$IEM_AUTORECONF != x; then + echo running autoreconf + $IEM_AUTORECONF --force --verbose --install +else + echo "not running autoreconf...falling back to" + + manual_autoreconf +fi diff --git a/Gem/build/Makefile.am b/Gem/build/Makefile.am new file mode 100644 index 0000000..5714e59 --- /dev/null +++ b/Gem/build/Makefile.am @@ -0,0 +1,50 @@ +AUTOMAKE_OPTIONS = foreign + +EXTRA_DIST = \ + osx-projectbuilder/Gem.pbproj/project.pbxproj \ + win-nsis/Gem.nsi \ + win-nsis/buildinstaller.bat \ + win-nsis/uninstaller1.nsi \ + win-nsis/uninstaller2.nsi \ + win-vs2003/installer.vcproj \ + win-vs2003/README_W32.txt.template \ + win-vs2003/installer.bat \ + win-vs2003/Gem.sln \ + win-vs2003/release.bat \ + win-vs2003/Gem.vcproj \ + win-vs2003/libraries.txt \ + win-vs2003/installerCVS.bat \ + win-vs6/gem_vc6.dsw \ + win-vs6/README.txt \ + win-vs6/gem.dsp \ + win-vs7/gem_vc7.sln \ + win-vs7/gem.vcproj \ + win-vs7/README.txt \ + win-vs2008/Gem.sln \ + win-vs2008/Gem.vcproj \ + win-vs2008/Debug.vsprops \ + win-vs2008/DirectShow.vsprops \ + win-vs2008/extraCommon.vsprops \ + win-vs2008/extra.vsprops \ + win-vs2008/FTGL_Debug.vsprops \ + win-vs2008/FTGL_Release.vsprops \ + win-vs2008/FTGL.vsprops \ + win-vs2008/GemInternal.vsprops \ + win-vs2008/Gem.vsprops \ + win-vs2008/pluginCommon.vsprops \ + win-vs2008/plugin.vsprops \ + win-vs2008/pthread.vsprops \ + win-vs2008/puredata.vsprops \ + win-vs2008/QuickTime.vsprops \ + win-vs2008/Release.vsprops \ + win-vs2008/SIMD.vsprops \ + win-vs2008/VFW.vsprops \ + win-vs2008/w32.vsprops \ + win-vs2008/installer.vcproj \ + win-vs2008/installer.bat \ + win-vs2008/installerCVS.bat \ + win-vs2008/release.bat \ + win-vs2008/README_W32.txt.template \ + osx-xcode/Gem.xcodeproj/project.pbxproj \ + autoconf/README.txt + diff --git a/Gem/build/autoconf/README.txt b/Gem/build/autoconf/README.txt new file mode 100644 index 0000000..c01a14a --- /dev/null +++ b/Gem/build/autoconf/README.txt @@ -0,0 +1,33 @@ +building Gem using autoconf +=========================== + +autoconf is the preferred way to build Gem. + +#0 preparation + if you installed Gem from a released version, just go to the .../Gem directory + if you grabbed a development snapshot of Gem, you have to generate the autotools + first; just go to the .../Gem directory and do + .../Gem$ ./autogen.sh + + +#1 configuration step + run configure with the appropriate options + .../Gem$ ./configure + + for a complete list of options try + .../Gem$ ./configure --help=recursive + + a typical call would look like: + .../Gem$ ./configure --with-pd=/usr/include/pd --prefix=/usr -C CXXFLAGS="-g -O2" + + +#2 build + once configuration succeeded (it will not succeed if you miss crucial libraries + like openGL), build Gem: + .../Gem$ make + +#3 finally install + .../Gem$ make install + + this will install Gem e.g. into /usr/lib/pd/extra/Gem/ + diff --git a/Gem/build/autoconf/configure.mingw32 b/Gem/build/autoconf/configure.mingw32 new file mode 100644 index 0000000..735c41a --- /dev/null +++ b/Gem/build/autoconf/configure.mingw32 @@ -0,0 +1,37 @@ +#!/bin/sh + +## this is for documentary purposes +## how i configured Gem on mingw to build with a number of external libraries +## TODO: QuickTime, ImageMagick, GMerlin +## TODO: avt, halcon, pylon + +PROGRAMFILES=/home/zmoelnig/programfiles/i386 +GEMLIBS=/home/zmoelnig/src/GemLibs + + +## where to find pd headers and lib +PDPATH="${PROGRAMFILES}/pd" + +## image loading +JPEG="${GEMLIBS}/libjpeg-turbo-gcc" +TIFF="${GEMLIBS}/tiff-4.0.0/libtiff" +IMAGEMAGICK="${GEMLIBS}/ImageMagick-6.7.2-gcc" + +## video capture +VLC="${PROGRAMFILES}/VideoLAN/VLC" + +## model loading +ASSIMP="/home/zmoelnig/src/assimp--2.0.863-sdk" + +./configure --with-pd=${PDPATH} \ + PKG_JPEG_CFLAGS="-I${JPEG}/include " \ + PKG_JPEG_LIBS="-L${JPEG}/lib -ljpeg " \ + PKG_TIFF_CFLAGS="-I${TIFF} " \ + PKG_TIFF_LIBS="-L${TIFF} -ltiff" \ + PKG_IMAGEMAGICK_CFLAGS="-I${IMAGEMAGICK} " \ + PKG_IMAGEMAGICK_LIBS="-L${IMAGEMAGICK}/magick -lMagickCore" \ + PKG_LIBVLC_CFLAGS="-I${VLC}/sdk/include " \ + PKG_LIBVLC_LIBS="-L${VLC} -lvlc " \ + PKG_ASSIMP_CFLAGS="-I${ASSIMP}/include -DHAVE_ASSIMP_H" \ + PKG_ASSIMP_LIBS="-L${ASSIMP}/bin/assimp_release-dll_win32 -Xlinker -l:Assimp32.dll " \ + diff --git a/Gem/build/osx-dmginstaller/DS_Store b/Gem/build/osx-dmginstaller/DS_Store new file mode 100644 index 0000000..abfb08f Binary files /dev/null and b/Gem/build/osx-dmginstaller/DS_Store differ diff --git a/Gem/build/osx-dmginstaller/buildinstaller.sh b/Gem/build/osx-dmginstaller/buildinstaller.sh new file mode 100755 index 0000000..6c60553 --- /dev/null +++ b/Gem/build/osx-dmginstaller/buildinstaller.sh @@ -0,0 +1,52 @@ +#!/bin/sh +## this is shamelessly taken from Pd-extended... + +SRCDIR=$1 +PACKAGE_NAME=${SRCDIR%/} +VOLUME_NAME="${PACKAGE_NAME}" +VOLUME_NAME="Gem Installer" + +DESTDIR="/Volumes/${VOLUME_NAME}" + +if [ -d "${SRCDIR}" ]; then + echo "creating Gem installer from ${SRCDIR}" +else + echo "please provide a valid /path/to/Gem" 1>&2 + exit 1 +fi + + +hdiutil create -format UDRW -fs HFS+ -srcfolder "${SRCDIR}" -volname "${VOLUME_NAME}" build.dmg +# detach one with the same name first +hdiutil detach "${DESTDIR}" +hdiutil attach build.dmg +#install -p ${SRCDIR}${manualsdir}/Pd/ReadMe.html "${DESTDIR}" + +# add link to /Library/Pd for easy install +SYSTEMINSTALLER="${DESTDIR}/Gem System-wide Installer.app" +/usr/bin/osacompile -o "${SYSTEMINSTALLER}" installer_system.applescript +./icon2app "${SYSTEMINSTALLER}" /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/GroupFolder.icns + +## add link to ~/Library/Pd for easy install +USERINSTALLER="${DESTDIR}/Gem User-specific Installer.app" +/usr/bin/osacompile -o "${USERINSTALLER}" installer_user.applescript +./icon2app "${USERINSTALLER}" /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/UsersFolderIcon.icns + +# a manually crafted .DS_Store file +test -e DS_Store && install -p DS_Store "${DESTDIR}/.DS_Store" + +# To enable the local image icon +#install -p VolumeIcon.icns "${DESTDIR}/.VolumeIcon.icns" +#/Developer/Tools/SetFile -a C "${DESTDIR}/.VolumeIcon.icns" "${DESTDIR}" + +chmod -R a-w "${DESTDIR}/${PD_APP_NAME}.app/Contents/Resources" + +hdiutil detach $(mount | grep "${VOLUME_NAME}" | cut -d ' ' -f 1) +echo "now creating RO-image ${PACKAGE_NAME}.dmg from build.dmg" +hdiutil convert -format UDZO -o "${PACKAGE_NAME}.dmg" build.dmg && rm -f build.dmg + +# install license +hdiutil unflatten "${PACKAGE_NAME}.dmg" +/Developer/Tools/Rez /Developer/Headers/FlatCarbon/*.r SLA.r -a -o "${PACKAGE_NAME}.dmg" +hdiutil flatten "${PACKAGE_NAME}.dmg" + diff --git a/Gem/build/osx-dmginstaller/droplet_system.applescript b/Gem/build/osx-dmginstaller/droplet_system.applescript new file mode 100644 index 0000000..18daa5d --- /dev/null +++ b/Gem/build/osx-dmginstaller/droplet_system.applescript @@ -0,0 +1,11 @@ +#compile this with +# > /usr/bin/osacompile -o droplet.app droplet.as + +on open thefiles + set outputFolder to (path to library folder as text) & "Pd:" + do shell script "/bin/mkdir -p " & quoted form of POSIX path of outputFolder + tell application "Finder" + duplicate thefiles to outputFolder replacing true + end tell +end open + diff --git a/Gem/build/osx-dmginstaller/droplet_user.applescript b/Gem/build/osx-dmginstaller/droplet_user.applescript new file mode 100644 index 0000000..9263cd5 --- /dev/null +++ b/Gem/build/osx-dmginstaller/droplet_user.applescript @@ -0,0 +1,11 @@ +#compile this with +# > /usr/bin/osacompile -o droplet.app droplet.as + +on open thefiles + set outputFolder to (path to library folder from user domain as text) & "Pd:" + do shell script "/bin/mkdir -p " & quoted form of POSIX path of outputFolder + tell application "Finder" + duplicate thefiles to outputFolder replacing true + end tell +end open + diff --git a/Gem/build/osx-dmginstaller/icon2app b/Gem/build/osx-dmginstaller/icon2app new file mode 100755 index 0000000..2ec084e --- /dev/null +++ b/Gem/build/osx-dmginstaller/icon2app @@ -0,0 +1,97 @@ +#!/bin/sh + +## OSX cmdline utility +## changes the icon of an app (or any other folder) + +# example iconfile: /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/HomeFolderIcon.icns + +OLDDIR=$(pwd) + +usage () { + echo "$0 " 1>&2 + exit 1 +} + +mywhich() { + for i in $@ + do + if [ -x "$(which $i)" ]; then + echo "$(which $i)" + return + fi + done + echo "unable to find executable: $@" 1>&2 + exit 1 +} + +APP=$1 +ICON=$2 + +DEVTOOLS=/Developer/Tools +REZ=$(mywhich Rez ${DEVTOOLS}/Rez) +SETFILE=$(mywhich SetFile ${DEVTOOLS}/SetFile) + +if [ "x${REZ}" = "x" ]; then exit 1; fi +if [ "x${SETFILE}" = "x" ]; then exit 1; fi + +if [ -f "${ICON}" ]; then + : +else + if [ -f "${OLDDIR}/${ICON}" ]; then + ICON="${OLDDIR}/${ICON}" + else + usage + fi +fi + +if [ -d "${APP}" ]; then + # this is the output file + ICONFILE=$'Icon\r' + RSRCFILE="${ICONFILE}" + DIR=${APP} +else + if [ -f "${APP}" ]; then + : + else + usage + fi + DIR=${APP%/*} + if [ "x${DIR}" = "x" ]; then + DIR=. + fi + if [ "x${DIR}" = "x${APP}" ]; then + DIR=. + fi + + # this is the output file + ICONFILE=${APP##*/} + RSRCFILE="${ICONFILE}.r" +fi + +echo DIR $DIR +echo ICO $ICONFILE +echo RSR $RSRCFILE + +cd "${DIR}" + +touch "${RSRCFILE}" || usage +cat << EOF > "${RSRCFILE}" +/* + * process this file with: + * ${REZ} -o + * after that, enable the icon with + * ${SETFILE} -a C + */ +read 'icns' (-16455) "${ICON}"; +EOF + +Rez "${RSRCFILE}" -o "${ICONFILE}" +if [ "x${RSRCFILE}" = "x${ICONFILE}" ]; then + # we are woriking on a directory + SetFile -a C . +else + # we are woriking on a file + SetFile -a C "${ICONFILE}" + rm "${RSRCFILE}" +fi + diff --git a/Gem/build/osx-dmginstaller/installer_system.applescript b/Gem/build/osx-dmginstaller/installer_system.applescript new file mode 100644 index 0000000..3210b07 --- /dev/null +++ b/Gem/build/osx-dmginstaller/installer_system.applescript @@ -0,0 +1,31 @@ +try + -- create the output folder if necessary + set outputFolder to (path to library folder as text) & "Pd:" + do shell script "/bin/mkdir -p " & quoted form of POSIX path of outputFolder + + -- find the directories on the dmg disk + set myPath to path to me + tell application "Finder" + set myContainer to container of myPath + set installDirs to (folders of myContainer) as alias list + end tell + + -- copy the templates to the output folder + -- NOTE: the script will error if any of the templates already exist + -- therefore we use a repeat loop and duplicate each file separately with a try block + -- around it to avoid errors in case some templates have already been installed. + tell application "Finder" + repeat with aDir in installDirs + try + duplicate aDir to folder outputFolder with replacing + end try + end repeat + end tell + + -- tell the user everything was OK + tell me to activate + display dialog "Gem and friends were successfully installed! You may now use them in Pd." buttons {"OK"} default button 1 with title "Gem System-wide Installer" with icon note +on error + tell me to activate + display dialog "There was an error installing Gem and friends. Please manually install them by copying" & (installDirs) & "to the following folder." & return & return & (POSIX path of outputFolder) buttons {"OK"} default button 1 with title "Gem System-wide Installer" +end try diff --git a/Gem/build/osx-dmginstaller/installer_user.applescript b/Gem/build/osx-dmginstaller/installer_user.applescript new file mode 100644 index 0000000..14259e4 --- /dev/null +++ b/Gem/build/osx-dmginstaller/installer_user.applescript @@ -0,0 +1,31 @@ +try + -- create the output folder if necessary + set outputFolder to (path to library folder from user domain as text) & "Pd:" + do shell script "/bin/mkdir -p " & quoted form of POSIX path of outputFolder + + -- find the directories on the dmg disk + set myPath to path to me + tell application "Finder" + set myContainer to container of myPath + set installDirs to (folders of myContainer) as alias list + end tell + + -- copy the templates to the output folder + -- NOTE: the script will error if any of the templates already exist + -- therefore we use a repeat loop and duplicate each file separately with a try block + -- around it to avoid errors in case some templates have already been installed. + tell application "Finder" + repeat with aDir in installDirs + try + duplicate aDir to folder outputFolder with replacing + end try + end repeat + end tell + + -- tell the user everything was OK + tell me to activate + display dialog "Gem and friends were successfully installed! You may now use them in Pd." buttons {"OK"} default button 1 with title "Gem User-specific Installer" with icon note +on error + tell me to activate + display dialog "There was an error installing Gem and friends. Please manually install them by copying" & (installDirs) & "to the following folder." & return & return & (POSIX path of outputFolder) buttons {"OK"} default button 1 with title "Gem User-specific Installer" +end try diff --git a/Gem/build/osx-projectbuilder/Gem.pbproj/project.pbxproj b/Gem/build/osx-projectbuilder/Gem.pbproj/project.pbxproj new file mode 100644 index 0000000..1587ea8 --- /dev/null +++ b/Gem/build/osx-projectbuilder/Gem.pbproj/project.pbxproj @@ -0,0 +1,17940 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 39; + objects = { + 3A276ED0056B63C500A80785 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = tube.cpp; + refType = 4; + sourceTree = ""; + }; + 3A276ED1056B63C500A80785 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = tube.h; + refType = 4; + sourceTree = ""; + }; + 3A276ED2056B63C500A80785 = { + fileRef = 3A276ED0056B63C500A80785; + isa = PBXBuildFile; + settings = { + }; + }; + 3A276ED3056B63C500A80785 = { + fileRef = 3A276ED1056B63C500A80785; + isa = PBXBuildFile; + settings = { + }; + }; + 3A276ED4056B63EE00A80785 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = curve3d.cpp; + refType = 4; + sourceTree = ""; + }; + 3A276ED5056B63EE00A80785 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = curve3d.h; + refType = 4; + sourceTree = ""; + }; + 3A276ED6056B63EE00A80785 = { + fileRef = 3A276ED4056B63EE00A80785; + isa = PBXBuildFile; + settings = { + }; + }; + 3A276ED7056B63EE00A80785 = { + fileRef = 3A276ED5056B63EE00A80785; + isa = PBXBuildFile; + settings = { + }; + }; + 3A276ED8056B643500A80785 = { + children = ( + CAB79E5005577CB200A80164, + CAB79E5A05577CB200A80164, + CAB79E5B05577CB200A80164, + CAB79E5C05577CB200A80164, + CAB79E5D05577CB200A80164, + CAB79E5E05577CB200A80164, + CAB79E5F05577CB200A80164, + ); + isa = PBXGroup; + name = libparticle; + refType = 4; + sourceTree = ""; + }; + 3ADDEE1A061860A600A80785 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglCallList.cpp; + refType = 4; + sourceTree = ""; + }; + 3ADDEE1B061860A600A80785 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglCallList.h; + refType = 4; + sourceTree = ""; + }; + 3ADDEE1C061860A600A80785 = { + fileRef = 3ADDEE1A061860A600A80785; + isa = PBXBuildFile; + settings = { + }; + }; + 3ADDEE1D061860A600A80785 = { + fileRef = 3ADDEE1B061860A600A80785; + isa = PBXBuildFile; + settings = { + }; + }; +//3A0 +//3A1 +//3A2 +//3A3 +//3A4 +//CA0 +//CA1 +//CA2 +//CA3 +//CA4 + CA6D35CC0558D47300A80164 = { + children = ( + CAB20E620558C6DC00A80164, + CA6D35DF0558D47300A80164, + ); + isa = PBXGroup; + name = FTGL; + path = ../../GemLibs/FTGL; + refType = 2; + sourceTree = SOURCE_ROOT; + }; + CA6D35DF0558D47300A80164 = { + children = ( + CA6D35E00558D47300A80164, + CA6D35E10558D47300A80164, + CA6D35E20558D47300A80164, + CA6D35E30558D47300A80164, + CA6D35E40558D47300A80164, + CA6D35E50558D47300A80164, + CA6D35E60558D47300A80164, + CA6D35E70558D47300A80164, + CA6D35E80558D47300A80164, + CA6D35E90558D47300A80164, + CA6D35EA0558D47300A80164, + CA6D35EB0558D47300A80164, + CA6D35EC0558D47300A80164, + CA6D35ED0558D47300A80164, + CA6D35EE0558D47300A80164, + CA6D35EF0558D47300A80164, + CA6D35F00558D47300A80164, + CA6D35F10558D47300A80164, + CA6D35F20558D47300A80164, + CA6D35F30558D47300A80164, + CA6D35F40558D47300A80164, + CA6D35F50558D47300A80164, + CA6D35F60558D47300A80164, + CA6D35F70558D47300A80164, + CA6D35F80558D47300A80164, + CA6D35F90558D47300A80164, + CA6D35FA0558D47300A80164, + ); + isa = PBXGroup; + path = include; + refType = 4; + sourceTree = ""; + }; + CA6D35E00558D47300A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = FTBBox.h; + refType = 4; + sourceTree = ""; + }; + CA6D35E10558D47300A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = FTBitmapGlyph.h; + refType = 4; + sourceTree = ""; + }; + CA6D35E20558D47300A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = FTCharmap.h; + refType = 4; + sourceTree = ""; + }; + CA6D35E30558D47300A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = FTCharToGlyphIndexMap.h; + refType = 4; + sourceTree = ""; + }; + CA6D35E40558D47300A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = FTContour.h; + refType = 4; + sourceTree = ""; + }; + CA6D35E50558D47300A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = FTExtrdGlyph.h; + refType = 4; + sourceTree = ""; + }; + CA6D35E60558D47300A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = FTFace.h; + refType = 4; + sourceTree = ""; + }; + CA6D35E70558D47300A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = FTFont.h; + refType = 4; + sourceTree = ""; + }; + CA6D35E80558D47300A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = FTGL.h; + refType = 4; + sourceTree = ""; + }; + CA6D35E90558D47300A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = FTGLBitmapFont.h; + refType = 4; + sourceTree = ""; + }; + CA6D35EA0558D47300A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = FTGLExtrdFont.h; + refType = 4; + sourceTree = ""; + }; + CA6D35EB0558D47300A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = FTGLOutlineFont.h; + refType = 4; + sourceTree = ""; + }; + CA6D35EC0558D47300A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = FTGLPixmapFont.h; + refType = 4; + sourceTree = ""; + }; + CA6D35ED0558D47300A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = FTGLPolygonFont.h; + refType = 4; + sourceTree = ""; + }; + CA6D35EE0558D47300A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = FTGLTextureFont.h; + refType = 4; + sourceTree = ""; + }; + CA6D35EF0558D47300A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = FTGlyph.h; + refType = 4; + sourceTree = ""; + }; + CA6D35F00558D47300A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = FTGlyphContainer.h; + refType = 4; + sourceTree = ""; + }; + CA6D35F10558D47300A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = FTLibrary.h; + refType = 4; + sourceTree = ""; + }; + CA6D35F20558D47300A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = FTList.h; + refType = 4; + sourceTree = ""; + }; + CA6D35F30558D47300A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = FTOutlineGlyph.h; + refType = 4; + sourceTree = ""; + }; + CA6D35F40558D47300A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = FTPixmapGlyph.h; + refType = 4; + sourceTree = ""; + }; + CA6D35F50558D47300A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = FTPoint.h; + refType = 4; + sourceTree = ""; + }; + CA6D35F60558D47300A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = FTPolyGlyph.h; + refType = 4; + sourceTree = ""; + }; + CA6D35F70558D47300A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = FTSize.h; + refType = 4; + sourceTree = ""; + }; + CA6D35F80558D47300A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = FTTextureGlyph.h; + refType = 4; + sourceTree = ""; + }; + CA6D35F90558D47300A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = FTVector.h; + refType = 4; + sourceTree = ""; + }; + CA6D35FA0558D47300A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = FTVectoriser.h; + refType = 4; + sourceTree = ""; + }; + CA6D36900558D47300A80164 = { + fileRef = CA6D35E00558D47300A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D36910558D47300A80164 = { + fileRef = CA6D35E10558D47300A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D36920558D47300A80164 = { + fileRef = CA6D35E20558D47300A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D36930558D47300A80164 = { + fileRef = CA6D35E30558D47300A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D36940558D47300A80164 = { + fileRef = CA6D35E40558D47300A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D36950558D47300A80164 = { + fileRef = CA6D35E50558D47300A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D36960558D47300A80164 = { + fileRef = CA6D35E60558D47300A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D36970558D47300A80164 = { + fileRef = CA6D35E70558D47300A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D36980558D47300A80164 = { + fileRef = CA6D35E80558D47300A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D36990558D47300A80164 = { + fileRef = CA6D35E90558D47300A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D369A0558D47300A80164 = { + fileRef = CA6D35EA0558D47300A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D369B0558D47300A80164 = { + fileRef = CA6D35EB0558D47300A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D369C0558D47300A80164 = { + fileRef = CA6D35EC0558D47300A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D369D0558D47300A80164 = { + fileRef = CA6D35ED0558D47300A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D369E0558D47300A80164 = { + fileRef = CA6D35EE0558D47300A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D369F0558D47300A80164 = { + fileRef = CA6D35EF0558D47300A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D36A00558D47300A80164 = { + fileRef = CA6D35F00558D47300A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D36A10558D47300A80164 = { + fileRef = CA6D35F10558D47300A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D36A20558D47300A80164 = { + fileRef = CA6D35F20558D47300A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D36A30558D47300A80164 = { + fileRef = CA6D35F30558D47300A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D36A40558D47300A80164 = { + fileRef = CA6D35F40558D47300A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D36A50558D47300A80164 = { + fileRef = CA6D35F50558D47300A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D36A60558D47300A80164 = { + fileRef = CA6D35F60558D47300A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D36A70558D47300A80164 = { + fileRef = CA6D35F70558D47300A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D36A80558D47300A80164 = { + fileRef = CA6D35F80558D47300A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D36A90558D47300A80164 = { + fileRef = CA6D35F90558D47300A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D36AA0558D47300A80164 = { + fileRef = CA6D35FA0558D47300A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D36F00558D4F200A80164 = { + children = ( + CAB20E680558D39800A80164, + CA6D36F10558D4F200A80164, + CA6D373C0558D4F200A80164, + ); + isa = PBXGroup; + name = include; + path = "freetype-2.1.9/include"; + refType = 4; + sourceTree = ""; + }; + CA6D36F10558D4F200A80164 = { + children = ( + CA6D36F20558D4F200A80164, + CA6D36FA0558D4F200A80164, + CA6D37000558D4F200A80164, + CA6D37010558D4F200A80164, + CA6D37020558D4F200A80164, + CA6D37030558D4F200A80164, + CA6D37040558D4F200A80164, + CA6D37050558D4F200A80164, + CA6D37060558D4F200A80164, + CA6D37070558D4F200A80164, + CA6D37080558D4F200A80164, + CA6D37090558D4F200A80164, + CA6D370A0558D4F200A80164, + CA6D370B0558D4F200A80164, + CA6D370C0558D4F200A80164, + CA6D370D0558D4F200A80164, + CA6D370E0558D4F200A80164, + CA6D37100558D4F200A80164, + CA6D37110558D4F200A80164, + CA6D37120558D4F200A80164, + CA6D37130558D4F200A80164, + CA6D37140558D4F200A80164, + CA6D37160558D4F200A80164, + CA6D37170558D4F200A80164, + CA6D37180558D4F200A80164, + CA6D37190558D4F200A80164, + CA6D371A0558D4F200A80164, + CA6D371B0558D4F200A80164, + CA6D371C0558D4F200A80164, + CA6D371D0558D4F200A80164, + CA6D37380558D4F200A80164, + CA6D37390558D4F200A80164, + CA6D373A0558D4F200A80164, + CA6D373B0558D4F200A80164, + ); + isa = PBXGroup; + path = freetype; + refType = 4; + sourceTree = ""; + }; + CA6D36F20558D4F200A80164 = { + children = ( + CA6D36F30558D4F200A80164, + CA6D36F40558D4F200A80164, + CA6D36F50558D4F200A80164, + CA6D36F60558D4F200A80164, + CA6D36F70558D4F200A80164, + CA6D36F80558D4F200A80164, + ); + isa = PBXGroup; + path = cache; + refType = 4; + sourceTree = ""; + }; + CA6D36F30558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftccache.h; + refType = 4; + sourceTree = ""; + }; + CA6D36F40558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftccmap.h; + refType = 4; + sourceTree = ""; + }; + CA6D36F50558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftcglyph.h; + refType = 4; + sourceTree = ""; + }; + CA6D36F60558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftcimage.h; + refType = 4; + sourceTree = ""; + }; + CA6D36F70558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftcmanag.h; + refType = 4; + sourceTree = ""; + }; + CA6D36F80558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftcsbits.h; + refType = 4; + sourceTree = ""; + }; + CA6D36FA0558D4F200A80164 = { + children = ( + CA6D36FB0558D4F200A80164, + CA6D36FC0558D4F200A80164, + CA6D36FD0558D4F200A80164, + CA6D36FE0558D4F200A80164, + CA6D36FF0558D4F200A80164, + ); + isa = PBXGroup; + path = config; + refType = 4; + sourceTree = ""; + }; + CA6D36FB0558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftconfig.h; + refType = 4; + sourceTree = ""; + }; + CA6D36FC0558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftheader.h; + refType = 4; + sourceTree = ""; + }; + CA6D36FD0558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftmodule.h; + refType = 4; + sourceTree = ""; + }; + CA6D36FE0558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftoption.h; + refType = 4; + sourceTree = ""; + }; + CA6D36FF0558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftstdlib.h; + refType = 4; + sourceTree = ""; + }; + CA6D37000558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = freetype.h; + refType = 4; + sourceTree = ""; + }; + CA6D37010558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftbbox.h; + refType = 4; + sourceTree = ""; + }; + CA6D37020558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftbdf.h; + refType = 4; + sourceTree = ""; + }; + CA6D37030558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftcache.h; + refType = 4; + sourceTree = ""; + }; + CA6D37040558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftchapters.h; + refType = 4; + sourceTree = ""; + }; + CA6D37050558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = fterrdef.h; + refType = 4; + sourceTree = ""; + }; + CA6D37060558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = fterrors.h; + refType = 4; + sourceTree = ""; + }; + CA6D37070558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftglyph.h; + refType = 4; + sourceTree = ""; + }; + CA6D37080558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftgzip.h; + refType = 4; + sourceTree = ""; + }; + CA6D37090558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftimage.h; + refType = 4; + sourceTree = ""; + }; + CA6D370A0558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftincrem.h; + refType = 4; + sourceTree = ""; + }; + CA6D370B0558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftlist.h; + refType = 4; + sourceTree = ""; + }; + CA6D370C0558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftmac.h; + refType = 4; + sourceTree = ""; + }; + CA6D370D0558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftmm.h; + refType = 4; + sourceTree = ""; + }; + CA6D370E0558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftmoderr.h; + refType = 4; + sourceTree = ""; + }; + CA6D37100558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftoutln.h; + refType = 4; + sourceTree = ""; + }; + CA6D37110558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftpfr.h; + refType = 4; + sourceTree = ""; + }; + CA6D37120558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftrender.h; + refType = 4; + sourceTree = ""; + }; + CA6D37130558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftsizes.h; + refType = 4; + sourceTree = ""; + }; + CA6D37140558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftsnames.h; + refType = 4; + sourceTree = ""; + }; + CA6D37160558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftsynth.h; + refType = 4; + sourceTree = ""; + }; + CA6D37170558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftsysio.h; + refType = 4; + sourceTree = ""; + }; + CA6D37180558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftsysmem.h; + refType = 4; + sourceTree = ""; + }; + CA6D37190558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftsystem.h; + refType = 4; + sourceTree = ""; + }; + CA6D371A0558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = fttrigon.h; + refType = 4; + sourceTree = ""; + }; + CA6D371B0558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = fttypes.h; + refType = 4; + sourceTree = ""; + }; + CA6D371C0558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftxf86.h; + refType = 4; + sourceTree = ""; + }; + CA6D371D0558D4F200A80164 = { + children = ( + CA6D371E0558D4F200A80164, + CA6D37220558D4F200A80164, + CA6D37240558D4F200A80164, + CA6D37250558D4F200A80164, + CA6D37270558D4F200A80164, + CA6D37290558D4F200A80164, + CA6D372B0558D4F200A80164, + CA6D372C0558D4F200A80164, + CA6D372D0558D4F200A80164, + CA6D372E0558D4F200A80164, + CA6D372F0558D4F200A80164, + CA6D37310558D4F200A80164, + CA6D37320558D4F200A80164, + CA6D37340558D4F200A80164, + CA6D37350558D4F200A80164, + CA6D37370558D4F200A80164, + ); + isa = PBXGroup; + path = internal; + refType = 4; + sourceTree = ""; + }; + CA6D371E0558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = autohint.h; + refType = 4; + sourceTree = ""; + }; + CA6D37220558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftcalc.h; + refType = 4; + sourceTree = ""; + }; + CA6D37240558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftdebug.h; + refType = 4; + sourceTree = ""; + }; + CA6D37250558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftdriver.h; + refType = 4; + sourceTree = ""; + }; + CA6D37270558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftgloadr.h; + refType = 4; + sourceTree = ""; + }; + CA6D37290558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftmemory.h; + refType = 4; + sourceTree = ""; + }; + CA6D372B0558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftobjs.h; + refType = 4; + sourceTree = ""; + }; + CA6D372C0558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ftstream.h; + refType = 4; + sourceTree = ""; + }; + CA6D372D0558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = fttrace.h; + refType = 4; + sourceTree = ""; + }; + CA6D372E0558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = internal.h; + refType = 4; + sourceTree = ""; + }; + CA6D372F0558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pcftypes.h; + refType = 4; + sourceTree = ""; + }; + CA6D37310558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = psaux.h; + refType = 4; + sourceTree = ""; + }; + CA6D37320558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pshints.h; + refType = 4; + sourceTree = ""; + }; + CA6D37340558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = sfnt.h; + refType = 4; + sourceTree = ""; + }; + CA6D37350558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = t1types.h; + refType = 4; + sourceTree = ""; + }; + CA6D37370558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = tttypes.h; + refType = 4; + sourceTree = ""; + }; + CA6D37380558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = t1tables.h; + refType = 4; + sourceTree = ""; + }; + CA6D37390558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ttnameid.h; + refType = 4; + sourceTree = ""; + }; + CA6D373A0558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = tttables.h; + refType = 4; + sourceTree = ""; + }; + CA6D373B0558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = tttags.h; + refType = 4; + sourceTree = ""; + }; + CA6D373C0558D4F200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ft2build.h; + refType = 4; + sourceTree = ""; + }; + CA6D373D0558D4F200A80164 = { + fileRef = CA6D36F30558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D373E0558D4F200A80164 = { + fileRef = CA6D36F40558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D373F0558D4F200A80164 = { + fileRef = CA6D36F50558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37400558D4F200A80164 = { + fileRef = CA6D36F60558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37410558D4F200A80164 = { + fileRef = CA6D36F70558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37420558D4F200A80164 = { + fileRef = CA6D36F80558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37440558D4F200A80164 = { + fileRef = CA6D36FB0558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37450558D4F200A80164 = { + fileRef = CA6D36FC0558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37460558D4F200A80164 = { + fileRef = CA6D36FD0558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37470558D4F200A80164 = { + fileRef = CA6D36FE0558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37480558D4F200A80164 = { + fileRef = CA6D36FF0558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37490558D4F200A80164 = { + fileRef = CA6D37000558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D374A0558D4F200A80164 = { + fileRef = CA6D37010558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D374B0558D4F200A80164 = { + fileRef = CA6D37020558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D374C0558D4F200A80164 = { + fileRef = CA6D37030558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D374D0558D4F200A80164 = { + fileRef = CA6D37040558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D374E0558D4F200A80164 = { + fileRef = CA6D37050558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D374F0558D4F200A80164 = { + fileRef = CA6D37060558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37500558D4F200A80164 = { + fileRef = CA6D37070558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37510558D4F200A80164 = { + fileRef = CA6D37080558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37520558D4F200A80164 = { + fileRef = CA6D37090558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37530558D4F200A80164 = { + fileRef = CA6D370A0558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37540558D4F200A80164 = { + fileRef = CA6D370B0558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37550558D4F200A80164 = { + fileRef = CA6D370C0558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37560558D4F200A80164 = { + fileRef = CA6D370D0558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37570558D4F200A80164 = { + fileRef = CA6D370E0558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37590558D4F200A80164 = { + fileRef = CA6D37100558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D375A0558D4F200A80164 = { + fileRef = CA6D37110558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D375B0558D4F200A80164 = { + fileRef = CA6D37120558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D375C0558D4F200A80164 = { + fileRef = CA6D37130558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D375D0558D4F200A80164 = { + fileRef = CA6D37140558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D375F0558D4F200A80164 = { + fileRef = CA6D37160558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37600558D4F200A80164 = { + fileRef = CA6D37170558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37610558D4F200A80164 = { + fileRef = CA6D37180558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37620558D4F200A80164 = { + fileRef = CA6D37190558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37630558D4F200A80164 = { + fileRef = CA6D371A0558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37640558D4F200A80164 = { + fileRef = CA6D371B0558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37650558D4F200A80164 = { + fileRef = CA6D371C0558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37660558D4F200A80164 = { + fileRef = CA6D371E0558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D376A0558D4F200A80164 = { + fileRef = CA6D37220558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D376C0558D4F200A80164 = { + fileRef = CA6D37240558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D376D0558D4F200A80164 = { + fileRef = CA6D37250558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D376F0558D4F200A80164 = { + fileRef = CA6D37270558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37710558D4F200A80164 = { + fileRef = CA6D37290558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37730558D4F200A80164 = { + fileRef = CA6D372B0558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37740558D4F200A80164 = { + fileRef = CA6D372C0558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37750558D4F200A80164 = { + fileRef = CA6D372D0558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37760558D4F200A80164 = { + fileRef = CA6D372E0558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37770558D4F200A80164 = { + fileRef = CA6D372F0558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37790558D4F200A80164 = { + fileRef = CA6D37310558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D377A0558D4F200A80164 = { + fileRef = CA6D37320558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D377C0558D4F200A80164 = { + fileRef = CA6D37340558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D377D0558D4F200A80164 = { + fileRef = CA6D37350558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D377F0558D4F200A80164 = { + fileRef = CA6D37370558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37800558D4F200A80164 = { + fileRef = CA6D37380558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37810558D4F200A80164 = { + fileRef = CA6D37390558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37820558D4F200A80164 = { + fileRef = CA6D373A0558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37830558D4F200A80164 = { + fileRef = CA6D373B0558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37840558D4F200A80164 = { + fileRef = CA6D373C0558D4F200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D3795055CD0F700A80164 = { + fileRef = F521B51703898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D3796055CD0F900A80164 = { + fileRef = F521B51603898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37B9055F103500A80164 = { + fileRef = F521B47503898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37BA055F103500A80164 = { + fileRef = F521B47603898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37BB055F103600A80164 = { + fileRef = F521B47703898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37BC055F103700A80164 = { + fileRef = F521B47803898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37BD055F103700A80164 = { + fileRef = F521B47903898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37BE055F103800A80164 = { + fileRef = F521B47A03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37BF055F103900A80164 = { + fileRef = F521B47B03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37C0055F11DF00A80164 = { + fileRef = CAB79E4605577C3A00A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA6D37C1055F11DF00A80164 = { + fileRef = CAB79E4705577C3A00A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA71244603ECF98E00A80164 = { + fileEncoding = 4; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_blur.h; + refType = 4; + sourceTree = ""; + }; + CA71244703ECF98E00A80164 = { + fileEncoding = 4; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_blur.cpp; + refType = 4; + sourceTree = ""; + }; + CA71244803ECF98E00A80164 = { + fileRef = CA71244603ECF98E00A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA71244903ECF98E00A80164 = { + fileRef = CA71244703ECF98E00A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E403403F7486100A80164 = { + children = ( + CA8E403503F7486100A80164, + CA8E403603F7486100A80164, + CA8E403703F7486100A80164, + CA8E403803F7486100A80164, + CA8E403903F7486100A80164, + CA8E403A03F7486100A80164, + CA8E403B03F7486100A80164, + CA8E403C03F7486100A80164, + CA8E403D03F7486100A80164, + CA8E403E03F7486100A80164, + CA8E403F03F7486100A80164, + CA8E404003F7486100A80164, + CA8E404103F7486100A80164, + CA8E404203F7486100A80164, + CA8E404303F7486100A80164, + CA8E404403F7486100A80164, + CA8E404503F7486100A80164, + CA8E404603F7486100A80164, + CA8E404703F7486100A80164, + CA8E404803F7486100A80164, + CA8E404903F7486100A80164, + CA8E404A03F7486100A80164, + CA8E404B03F7486100A80164, + CA8E404C03F7486100A80164, + CA8E404D03F7486100A80164, + CA8E404E03F7486100A80164, + CA8E404F03F7486100A80164, + CA8E405003F7486100A80164, + CA8E405103F7486100A80164, + CA8E405203F7486100A80164, + CA8E405303F7486100A80164, + CA8E405403F7486100A80164, + CA8E405503F7486100A80164, + CA8E405603F7486100A80164, + CA8E405703F7486100A80164, + CA8E405803F7486100A80164, + CA8E405903F7486100A80164, + CA8E405A03F7486100A80164, + CA8E405B03F7486100A80164, + CA8E405C03F7486100A80164, + CA8E405D03F7486100A80164, + CA8E405E03F7486100A80164, + CA8E405F03F7486100A80164, + CA8E406003F7486100A80164, + CA8E406103F7486100A80164, + CA8E406203F7486100A80164, + CA8E406303F7486100A80164, + CA8E406403F7486100A80164, + CA8E406503F7486100A80164, + CA8E406603F7486100A80164, + CA8E406703F7486100A80164, + CA8E406803F7486100A80164, + CA8E406903F7486100A80164, + CA8E406A03F7486100A80164, + CA8E406B03F7486100A80164, + CA8E406C03F7486100A80164, + CA8E406D03F7486100A80164, + CA8E406E03F7486100A80164, + CA8E406F03F7486100A80164, + CA8E407003F7486100A80164, + CA8E407103F7486100A80164, + CA8E407203F7486100A80164, + CA8E407303F7486100A80164, + CA8E407403F7486100A80164, + CA8E407503F7486100A80164, + CA8E407603F7486100A80164, + CA8E407703F7486100A80164, + CA8E407803F7486100A80164, + CA8E407903F7486100A80164, + CA8E407A03F7486100A80164, + CA8E407B03F7486100A80164, + CA8E407C03F7486100A80164, + CA8E407D03F7486100A80164, + CA8E407E03F7486100A80164, + CA8E407F03F7486100A80164, + CA8E408003F7486100A80164, + CA8E408103F7486100A80164, + CA8E408203F7486100A80164, + CA8E408303F7486100A80164, + CA8E408403F7486100A80164, + CA8E408503F7486100A80164, + CA8E408603F7486100A80164, + CA8E408703F7486100A80164, + CA8E408803F7486100A80164, + CA8E408903F7486100A80164, + CA8E408A03F7486100A80164, + CA8E408B03F7486100A80164, + CA8E408C03F7486100A80164, + CA8E408D03F7486100A80164, + CA8E408E03F7486100A80164, + CA8E408F03F7486100A80164, + CA8E409003F7486100A80164, + CA8E409103F7486100A80164, + CA8E409203F7486100A80164, + CA8E409303F7486100A80164, + CA8E409403F7486100A80164, + CA8E409503F7486100A80164, + CA8E409603F7486100A80164, + CA8E409703F7486100A80164, + CA8E409803F7486100A80164, + CA8E409903F7486100A80164, + CA8E409A03F7486100A80164, + CA8E409B03F7486100A80164, + CA8E409C03F7486100A80164, + CA8E409D03F7486100A80164, + CA8E409E03F7486100A80164, + CA8E409F03F7486100A80164, + CA8E40A003F7486100A80164, + CA8E40A103F7486100A80164, + CA8E40A203F7486100A80164, + CA8E40A303F7486100A80164, + CA8E40A403F7486100A80164, + CA8E40A503F7486100A80164, + CA8E40A603F7486100A80164, + CA8E40A703F7486100A80164, + CA8E40A803F7486100A80164, + CA8E40A903F7486100A80164, + CA8E40AA03F7486100A80164, + CA8E40AB03F7486100A80164, + CA8E40AC03F7486100A80164, + CA8E40AD03F7486100A80164, + CA8E40AE03F7486100A80164, + CA8E40AF03F7486100A80164, + CA8E40B003F7486100A80164, + CA8E40B103F7486100A80164, + CA8E40B203F7486100A80164, + CA8E40B303F7486100A80164, + CA8E40B403F7486100A80164, + CA8E40B503F7486100A80164, + CA8E40B603F7486100A80164, + CA8E40B703F7486100A80164, + CA8E40B803F7486100A80164, + CA8E40B903F7486100A80164, + CA8E40BA03F7486100A80164, + CA8E40BB03F7486100A80164, + CA8E40BC03F7486100A80164, + CA8E40BD03F7486100A80164, + CA8E40BE03F7486100A80164, + CA8E40BF03F7486100A80164, + CA8E40C003F7486100A80164, + CA8E40C103F7486100A80164, + CA8E40C203F7486100A80164, + CA8E40C303F7486100A80164, + CA8E40C403F7486100A80164, + CA8E40C503F7486100A80164, + CA8E40C603F7486100A80164, + CA8E40C703F7486100A80164, + CA8E40C803F7486100A80164, + CA8E40C903F7486100A80164, + CA8E40CA03F7486100A80164, + CA8E40CB03F7486100A80164, + CA8E40CC03F7486100A80164, + CA8E40CD03F7486100A80164, + CA8E40CE03F7486100A80164, + CA8E40CF03F7486100A80164, + CA8E40D003F7486100A80164, + CA8E40D103F7486100A80164, + CA8E40D203F7486100A80164, + CA8E40D303F7486100A80164, + CA8E40D403F7486100A80164, + CA8E40D503F7486100A80164, + CA8E40D603F7486100A80164, + CA8E40D703F7486100A80164, + CA8E40D803F7486100A80164, + CA8E40D903F7486100A80164, + CA8E40DA03F7486100A80164, + CA8E40DB03F7486100A80164, + CA8E40DC03F7486100A80164, + CA8E40DD03F7486100A80164, + CA8E40DE03F7486100A80164, + CA8E40DF03F7486100A80164, + CA8E40E003F7486100A80164, + CA8E40E103F7486100A80164, + CA8E40E203F7486100A80164, + CA8E40E303F7486100A80164, + CA8E40E403F7486100A80164, + CA8E40E503F7486100A80164, + CA8E40E603F7486100A80164, + CA8E40E703F7486100A80164, + CA8E40E803F7486100A80164, + CA8E40E903F7486100A80164, + CA8E40EA03F7486100A80164, + CA8E40EB03F7486100A80164, + CA8E40EC03F7486100A80164, + CA8E40ED03F7486100A80164, + CA8E40EE03F7486100A80164, + CA8E40EF03F7486100A80164, + CA8E40F003F7486100A80164, + CA8E40F103F7486100A80164, + CA8E40F203F7486100A80164, + CA8E40F303F7486100A80164, + CA8E40F403F7486100A80164, + CA8E40F503F7486100A80164, + CA8E40F603F7486100A80164, + CA8E40F703F7486100A80164, + CA8E40F803F7486100A80164, + CA8E40F903F7486100A80164, + CA8E40FA03F7486100A80164, + CA8E40FB03F7486100A80164, + CA8E40FC03F7486100A80164, + CA8E40FD03F7486100A80164, + CA8E40FE03F7486100A80164, + CA8E40FF03F7486100A80164, + CA8E410003F7486100A80164, + CA8E410103F7486100A80164, + CA8E410203F7486100A80164, + CA8E410303F7486100A80164, + CA8E410403F7486100A80164, + CA8E410503F7486100A80164, + CA8E410603F7486100A80164, + CA8E410703F7486100A80164, + CA8E410803F7486100A80164, + CA8E410903F7486100A80164, + CA8E410A03F7486100A80164, + CA8E410B03F7486100A80164, + CA8E410C03F7486100A80164, + CA8E410D03F7486100A80164, + CA8E410E03F7486100A80164, + CA8E410F03F7486100A80164, + CA8E411003F7486100A80164, + CA8E411103F7486100A80164, + CA8E411203F7486100A80164, + CA8E411303F7486100A80164, + CA8E411403F7486100A80164, + CA8E411503F7486100A80164, + CA8E411603F7486100A80164, + CA8E411703F7486100A80164, + CA8E411803F7486100A80164, + CA8E411903F7486100A80164, + CA8E411A03F7486100A80164, + CA8E411B03F7486100A80164, + CA8E411C03F7486100A80164, + CA8E411D03F7486100A80164, + CA8E411E03F7486100A80164, + CA8E411F03F7486100A80164, + CA8E412003F7486100A80164, + CA8E412103F7486100A80164, + CA8E412203F7486100A80164, + CA8E412303F7486100A80164, + CA8E412403F7486100A80164, + CA8E412503F7486100A80164, + CA8E412603F7486100A80164, + CA8E412703F7486100A80164, + CA8E412803F7486100A80164, + CA8E412903F7486100A80164, + CA8E412A03F7486100A80164, + CA8E412B03F7486100A80164, + CA8E412C03F7486100A80164, + CA8E412D03F7486100A80164, + CA8E412E03F7486100A80164, + CA8E412F03F7486100A80164, + CA8E413003F7486100A80164, + CA8E413103F7486100A80164, + CA8E413203F7486100A80164, + CA8E413303F7486100A80164, + CA8E413403F7486100A80164, + CA8E413503F7486100A80164, + CA8E413603F7486100A80164, + CA8E413703F7486100A80164, + CA8E413803F7486100A80164, + CA8E413903F7486100A80164, + CA8E413A03F7486100A80164, + CA8E413B03F7486100A80164, + CA8E413C03F7486100A80164, + CA8E413D03F7486100A80164, + CA8E413E03F7486100A80164, + CA8E413F03F7486100A80164, + CA8E414003F7486100A80164, + CA8E414103F7486100A80164, + CA8E414203F7486100A80164, + CA8E414303F7486100A80164, + CA8E414403F7486100A80164, + CA8E414503F7486100A80164, + CA8E414603F7486100A80164, + CA8E414703F7486100A80164, + CA8E414803F7486100A80164, + CA8E414903F7486100A80164, + CA8E414A03F7486100A80164, + CA8E414B03F7486100A80164, + CA8E414C03F7486100A80164, + CA8E414D03F7486100A80164, + CA8E414E03F7486100A80164, + CA8E414F03F7486100A80164, + CA8E415003F7486100A80164, + CA8E415103F7486100A80164, + CA8E415203F7486100A80164, + CA8E415303F7486100A80164, + CA8E415403F7486100A80164, + CA8E415503F7486100A80164, + CA8E415603F7486100A80164, + CA8E415703F7486100A80164, + CA8E415803F7486100A80164, + CA8E415903F7486100A80164, + CA8E415A03F7486100A80164, + CA8E415B03F7486100A80164, + CA8E415C03F7486100A80164, + CA8E415D03F7486100A80164, + CA8E415E03F7486100A80164, + CA8E415F03F7486100A80164, + CA8E416003F7486100A80164, + CA8E416103F7486100A80164, + CA8E416203F7486100A80164, + CA8E416303F7486100A80164, + CA8E416403F7486100A80164, + CA8E416503F7486100A80164, + CA8E416603F7486100A80164, + CA8E416703F7486100A80164, + CA8E416803F7486100A80164, + CA8E416903F7486100A80164, + CA8E416A03F7486100A80164, + CA8E416B03F7486100A80164, + CA8E416C03F7486100A80164, + CA8E416D03F7486100A80164, + CA8E416E03F7486100A80164, + CA8E416F03F7486100A80164, + CA8E417003F7486100A80164, + CA8E417103F7486100A80164, + CA8E417203F7486100A80164, + CA8E417303F7486100A80164, + CA8E417403F7486100A80164, + CA8E417503F7486100A80164, + CA8E417603F7486100A80164, + CA8E417703F7486100A80164, + CA8E417803F7486100A80164, + CA8E417903F7486100A80164, + CA8E417A03F7486100A80164, + CA8E417B03F7486100A80164, + CA8E417C03F7486100A80164, + CA8E417D03F7486100A80164, + CA8E417E03F7486100A80164, + CA8E417F03F7486100A80164, + CA8E418003F7486100A80164, + CA8E418103F7486100A80164, + CA8E418203F7486100A80164, + CA8E418303F7486100A80164, + CA8E418403F7486100A80164, + CA8E418503F7486100A80164, + CA8E418603F7486100A80164, + CA8E418703F7486100A80164, + CA8E418803F7486100A80164, + CA8E418903F7486100A80164, + CA8E418A03F7486100A80164, + CA8E418B03F7486100A80164, + CA8E418C03F7486100A80164, + CA8E418D03F7486100A80164, + CA8E418E03F7486100A80164, + CA8E418F03F7486100A80164, + CA8E419003F7486100A80164, + CA8E419103F7486100A80164, + CA8E419203F7486100A80164, + CA8E419303F7486100A80164, + CA8E419403F7486100A80164, + CA8E419503F7486100A80164, + CA8E419603F7486100A80164, + CA8E419703F7486100A80164, + CA8E419803F7486100A80164, + CA8E419903F7486100A80164, + CA8E419A03F7486100A80164, + CA8E419B03F7486100A80164, + CA8E419C03F7486100A80164, + CA8E419D03F7486100A80164, + CA8E419E03F7486100A80164, + CA8E419F03F7486100A80164, + CA8E41A003F7486100A80164, + CA8E41A103F7486100A80164, + CA8E41A203F7486100A80164, + CA8E41A303F7486100A80164, + CA8E41A403F7486100A80164, + CA8E41A503F7486100A80164, + CA8E41A603F7486100A80164, + CA8E41A703F7486100A80164, + CA8E41A803F7486100A80164, + CA8E41A903F7486100A80164, + CA8E41AA03F7486100A80164, + CA8E41AB03F7486100A80164, + CA8E41AC03F7486100A80164, + CA8E41AD03F7486100A80164, + CA8E41AE03F7486100A80164, + CA8E41AF03F7486100A80164, + CA8E41B003F7486100A80164, + CA8E41B103F7486100A80164, + CA8E41B203F7486100A80164, + CA8E41B303F7486100A80164, + CA8E41B403F7486100A80164, + CA8E41B503F7486100A80164, + CA8E41B603F7486100A80164, + CA8E41B703F7486100A80164, + CA8E41B803F7486100A80164, + CA8E41B903F7486100A80164, + CA8E41BA03F7486100A80164, + CA8E41BB03F7486100A80164, + CA8E41BC03F7486100A80164, + CA8E41BD03F7486100A80164, + CA8E41BE03F7486100A80164, + CA8E41BF03F7486100A80164, + CA8E41C003F7486100A80164, + CA8E41C103F7486100A80164, + CA8E41C203F7486100A80164, + CA8E41C303F7486100A80164, + CA8E41C403F7486100A80164, + CA8E41C503F7486100A80164, + CA8E41C603F7486100A80164, + CA8E41C703F7486100A80164, + CA8E41C803F7486100A80164, + CA8E41C903F7486100A80164, + CA8E41CA03F7486100A80164, + CA8E41CB03F7486100A80164, + CA8E41CC03F7486100A80164, + CA8E41CD03F7486100A80164, + CA8E41CE03F7486100A80164, + CA8E41CF03F7486100A80164, + CA8E41D003F7486100A80164, + CA8E41D103F7486100A80164, + CA8E41D203F7486100A80164, + CA8E41D303F7486100A80164, + CA8E41D403F7486100A80164, + CA8E41D503F7486100A80164, + CA8E41D603F7486100A80164, + CA8E41D703F7486100A80164, + CA8E41D803F7486100A80164, + CA8E41D903F7486100A80164, + CA8E41DA03F7486100A80164, + CA8E41DB03F7486100A80164, + CA8E41DC03F7486100A80164, + CA8E41DD03F7486100A80164, + CA8E41DE03F7486100A80164, + CA8E41DF03F7486100A80164, + CA8E41E003F7486100A80164, + CA8E41E103F7486100A80164, + CA8E41E203F7486100A80164, + CA8E41E303F7486100A80164, + CA8E41E403F7486100A80164, + CA8E41E503F7486100A80164, + CA8E41E603F7486100A80164, + CA8E41E703F7486100A80164, + CA8E41E803F7486100A80164, + CA8E41E903F7486100A80164, + CA8E41EA03F7486100A80164, + CA8E41EB03F7486100A80164, + CA8E41EC03F7486100A80164, + CA8E41ED03F7486100A80164, + CA8E41EE03F7486100A80164, + CA8E41EF03F7486100A80164, + CA8E41F003F7486100A80164, + CA8E41F103F7486100A80164, + CA8E41F203F7486100A80164, + CA8E41F303F7486100A80164, + CA8E41F403F7486100A80164, + CA8E41F503F7486100A80164, + CA8E41F603F7486100A80164, + CA8E41F703F7486200A80164, + CA8E41F803F7486200A80164, + CA8E41F903F7486200A80164, + CA8E41FA03F7486200A80164, + CA8E41FB03F7486200A80164, + CA8E41FC03F7486200A80164, + CA8E41FD03F7486200A80164, + CA8E41FE03F7486200A80164, + CA8E41FF03F7486200A80164, + CA8E420003F7486200A80164, + CA8E420103F7486200A80164, + CA8E420203F7486200A80164, + CA8E420303F7486200A80164, + CA8E420403F7486200A80164, + CA8E420503F7486200A80164, + CA8E420603F7486200A80164, + CA8E420703F7486200A80164, + CA8E420803F7486200A80164, + CA8E420903F7486200A80164, + CA8E420A03F7486200A80164, + CA8E420B03F7486200A80164, + CA8E420C03F7486200A80164, + CA8E420D03F7486200A80164, + CA8E420E03F7486200A80164, + CA8E420F03F7486200A80164, + CA8E421003F7486200A80164, + CA8E421103F7486200A80164, + CA8E421203F7486200A80164, + CA8E421303F7486200A80164, + CA8E421403F7486200A80164, + CA8E421503F7486200A80164, + CA8E421603F7486200A80164, + CA8E421703F7486200A80164, + CA8E421803F7486200A80164, + CA8E421903F7486200A80164, + CA8E421A03F7486200A80164, + CA8E421B03F7486200A80164, + CA8E421C03F7486200A80164, + CA8E421D03F7486200A80164, + CA8E421E03F7486200A80164, + CA8E421F03F7486200A80164, + CA8E422003F7486200A80164, + CA8E422103F7486200A80164, + CA8E422203F7486200A80164, + CA8E422303F7486200A80164, + CA8E422403F7486200A80164, + CA8E422503F7486200A80164, + CA8E422603F7486200A80164, + CA8E422703F7486200A80164, + CA8E422803F7486200A80164, + CA8E422903F7486200A80164, + CA8E422A03F7486200A80164, + CA8E422B03F7486200A80164, + CA8E422C03F7486200A80164, + CA8E422D03F7486200A80164, + CA8E422E03F7486200A80164, + CA8E422F03F7486200A80164, + CA8E423003F7486200A80164, + CA8E423103F7486200A80164, + CA8E423203F7486200A80164, + CA8E423303F7486200A80164, + CA8E423403F7486200A80164, + CA8E423503F7486200A80164, + CA8E423603F7486200A80164, + CA8E423703F7486200A80164, + CA8E423803F7486200A80164, + CA8E423903F7486200A80164, + CA8E423A03F7486200A80164, + CA8E423B03F7486200A80164, + CA8E423C03F7486200A80164, + CA8E423D03F7486200A80164, + CA8E423E03F7486200A80164, + CA8E423F03F7486200A80164, + CA8E424003F7486200A80164, + CA8E424103F7486200A80164, + CA8E424203F7486200A80164, + CA8E424303F7486200A80164, + CA8E424403F7486200A80164, + CA8E424503F7486200A80164, + CA8E424603F7486200A80164, + CA8E424703F7486200A80164, + CA8E424803F7486200A80164, + CA8E424903F7486200A80164, + CA8E424A03F7486200A80164, + CA8E424B03F7486200A80164, + CA8E424C03F7486200A80164, + CA8E424D03F7486200A80164, + CA8E424E03F7486200A80164, + CA8E424F03F7486200A80164, + CA8E425003F7486200A80164, + CA8E425103F7486200A80164, + CAB02C07040B27D200A80164, + CAB02C08040B27D200A80164, + 3ADDEE1A061860A600A80785, + 3ADDEE1B061860A600A80785, + ); + isa = PBXGroup; + name = openGL; + path = src/openGL; + refType = 2; + sourceTree = SOURCE_ROOT; + }; + CA8E403503F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglAccum.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E403603F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglAccum.h; + refType = 4; + sourceTree = ""; + }; + CA8E403703F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglAlphaFunc.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E403803F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglAlphaFunc.h; + refType = 4; + sourceTree = ""; + }; + CA8E403903F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglAreTexturesResident.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E403A03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglAreTexturesResident.h; + refType = 4; + sourceTree = ""; + }; + CA8E403B03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglArrayElement.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E403C03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglArrayElement.h; + refType = 4; + sourceTree = ""; + }; + CA8E403D03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglBegin.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E403E03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglBegin.h; + refType = 4; + sourceTree = ""; + }; + CA8E403F03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglBindTexture.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E404003F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglBindTexture.h; + refType = 4; + sourceTree = ""; + }; + CA8E404103F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglBitmap.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E404203F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglBitmap.h; + refType = 4; + sourceTree = ""; + }; + CA8E404303F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglBlendFunc.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E404403F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglBlendFunc.h; + refType = 4; + sourceTree = ""; + }; + CA8E404503F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglClear.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E404603F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglClear.h; + refType = 4; + sourceTree = ""; + }; + CA8E404703F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglClearAccum.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E404803F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglClearAccum.h; + refType = 4; + sourceTree = ""; + }; + CA8E404903F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglClearColor.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E404A03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglClearColor.h; + refType = 4; + sourceTree = ""; + }; + CA8E404B03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglClearDepth.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E404C03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglClearDepth.h; + refType = 4; + sourceTree = ""; + }; + CA8E404D03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglClearIndex.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E404E03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglClearIndex.h; + refType = 4; + sourceTree = ""; + }; + CA8E404F03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglClearStencil.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E405003F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglClearStencil.h; + refType = 4; + sourceTree = ""; + }; + CA8E405103F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColor3b.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E405203F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColor3b.h; + refType = 4; + sourceTree = ""; + }; + CA8E405303F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColor3bv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E405403F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColor3bv.h; + refType = 4; + sourceTree = ""; + }; + CA8E405503F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColor3d.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E405603F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColor3d.h; + refType = 4; + sourceTree = ""; + }; + CA8E405703F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColor3dv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E405803F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColor3dv.h; + refType = 4; + sourceTree = ""; + }; + CA8E405903F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColor3f.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E405A03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColor3f.h; + refType = 4; + sourceTree = ""; + }; + CA8E405B03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColor3fv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E405C03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColor3fv.h; + refType = 4; + sourceTree = ""; + }; + CA8E405D03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColor3i.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E405E03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColor3i.h; + refType = 4; + sourceTree = ""; + }; + CA8E405F03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColor3iv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E406003F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColor3iv.h; + refType = 4; + sourceTree = ""; + }; + CA8E406103F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColor3s.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E406203F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColor3s.h; + refType = 4; + sourceTree = ""; + }; + CA8E406303F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColor3sv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E406403F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColor3sv.h; + refType = 4; + sourceTree = ""; + }; + CA8E406503F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColor3ub.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E406603F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColor3ub.h; + refType = 4; + sourceTree = ""; + }; + CA8E406703F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColor3ubv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E406803F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColor3ubv.h; + refType = 4; + sourceTree = ""; + }; + CA8E406903F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColor3ui.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E406A03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColor3ui.h; + refType = 4; + sourceTree = ""; + }; + CA8E406B03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColor3uiv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E406C03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColor3uiv.h; + refType = 4; + sourceTree = ""; + }; + CA8E406D03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColor3us.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E406E03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColor3us.h; + refType = 4; + sourceTree = ""; + }; + CA8E406F03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColor3usv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E407003F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColor3usv.h; + refType = 4; + sourceTree = ""; + }; + CA8E407103F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColor4b.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E407203F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColor4b.h; + refType = 4; + sourceTree = ""; + }; + CA8E407303F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColor4bv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E407403F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColor4bv.h; + refType = 4; + sourceTree = ""; + }; + CA8E407503F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColor4d.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E407603F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColor4d.h; + refType = 4; + sourceTree = ""; + }; + CA8E407703F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColor4dv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E407803F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColor4dv.h; + refType = 4; + sourceTree = ""; + }; + CA8E407903F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColor4f.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E407A03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColor4f.h; + refType = 4; + sourceTree = ""; + }; + CA8E407B03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColor4fv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E407C03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColor4fv.h; + refType = 4; + sourceTree = ""; + }; + CA8E407D03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColor4i.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E407E03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColor4i.h; + refType = 4; + sourceTree = ""; + }; + CA8E407F03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColor4iv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E408003F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColor4iv.h; + refType = 4; + sourceTree = ""; + }; + CA8E408103F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColor4s.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E408203F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColor4s.h; + refType = 4; + sourceTree = ""; + }; + CA8E408303F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColor4sv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E408403F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColor4sv.h; + refType = 4; + sourceTree = ""; + }; + CA8E408503F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColor4ub.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E408603F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColor4ub.h; + refType = 4; + sourceTree = ""; + }; + CA8E408703F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColor4ubv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E408803F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColor4ubv.h; + refType = 4; + sourceTree = ""; + }; + CA8E408903F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColor4ui.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E408A03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColor4ui.h; + refType = 4; + sourceTree = ""; + }; + CA8E408B03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColor4uiv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E408C03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColor4uiv.h; + refType = 4; + sourceTree = ""; + }; + CA8E408D03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColor4us.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E408E03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColor4us.h; + refType = 4; + sourceTree = ""; + }; + CA8E408F03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColor4usv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E409003F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColor4usv.h; + refType = 4; + sourceTree = ""; + }; + CA8E409103F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColorMask.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E409203F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColorMask.h; + refType = 4; + sourceTree = ""; + }; + CA8E409303F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglColorMaterial.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E409403F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglColorMaterial.h; + refType = 4; + sourceTree = ""; + }; + CA8E409503F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglCopyPixels.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E409603F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglCopyPixels.h; + refType = 4; + sourceTree = ""; + }; + CA8E409703F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglCopyTexImage1D.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E409803F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglCopyTexImage1D.h; + refType = 4; + sourceTree = ""; + }; + CA8E409903F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglCopyTexImage2D.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E409A03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglCopyTexImage2D.h; + refType = 4; + sourceTree = ""; + }; + CA8E409B03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglCopyTexSubImage1D.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E409C03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglCopyTexSubImage1D.h; + refType = 4; + sourceTree = ""; + }; + CA8E409D03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglCopyTexSubImage2D.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E409E03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglCopyTexSubImage2D.h; + refType = 4; + sourceTree = ""; + }; + CA8E409F03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglCullFace.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40A003F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglCullFace.h; + refType = 4; + sourceTree = ""; + }; + CA8E40A103F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglDeleteTextures.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40A203F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglDeleteTextures.h; + refType = 4; + sourceTree = ""; + }; + CA8E40A303F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglDepthFunc.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40A403F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglDepthFunc.h; + refType = 4; + sourceTree = ""; + }; + CA8E40A503F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglDepthMask.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40A603F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglDepthMask.h; + refType = 4; + sourceTree = ""; + }; + CA8E40A703F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglDepthRange.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40A803F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglDepthRange.h; + refType = 4; + sourceTree = ""; + }; + CA8E40A903F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglDisable.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40AA03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglDisable.h; + refType = 4; + sourceTree = ""; + }; + CA8E40AB03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglDisableClientState.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40AC03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglDisableClientState.h; + refType = 4; + sourceTree = ""; + }; + CA8E40AD03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglDrawArrays.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40AE03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglDrawArrays.h; + refType = 4; + sourceTree = ""; + }; + CA8E40AF03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglDrawBuffer.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40B003F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglDrawBuffer.h; + refType = 4; + sourceTree = ""; + }; + CA8E40B103F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglDrawElements.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40B203F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglDrawElements.h; + refType = 4; + sourceTree = ""; + }; + CA8E40B303F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglEdgeFlag.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40B403F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglEdgeFlag.h; + refType = 4; + sourceTree = ""; + }; + CA8E40B503F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglEnable.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40B603F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglEnable.h; + refType = 4; + sourceTree = ""; + }; + CA8E40B703F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglEnableClientState.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40B803F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglEnableClientState.h; + refType = 4; + sourceTree = ""; + }; + CA8E40B903F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglEnd.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40BA03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglEnd.h; + refType = 4; + sourceTree = ""; + }; + CA8E40BB03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglEvalCoord1d.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40BC03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglEvalCoord1d.h; + refType = 4; + sourceTree = ""; + }; + CA8E40BD03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglEvalCoord1dv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40BE03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglEvalCoord1dv.h; + refType = 4; + sourceTree = ""; + }; + CA8E40BF03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglEvalCoord1f.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40C003F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglEvalCoord1f.h; + refType = 4; + sourceTree = ""; + }; + CA8E40C103F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglEvalCoord1fv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40C203F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglEvalCoord1fv.h; + refType = 4; + sourceTree = ""; + }; + CA8E40C303F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglEvalCoord2d.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40C403F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglEvalCoord2d.h; + refType = 4; + sourceTree = ""; + }; + CA8E40C503F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglEvalCoord2dv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40C603F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglEvalCoord2dv.h; + refType = 4; + sourceTree = ""; + }; + CA8E40C703F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglEvalCoord2f.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40C803F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglEvalCoord2f.h; + refType = 4; + sourceTree = ""; + }; + CA8E40C903F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglEvalCoord2fv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40CA03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglEvalCoord2fv.h; + refType = 4; + sourceTree = ""; + }; + CA8E40CB03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglEvalMesh1.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40CC03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglEvalMesh1.h; + refType = 4; + sourceTree = ""; + }; + CA8E40CD03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglEvalMesh2.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40CE03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglEvalMesh2.h; + refType = 4; + sourceTree = ""; + }; + CA8E40CF03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglEvalPoint1.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40D003F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglEvalPoint1.h; + refType = 4; + sourceTree = ""; + }; + CA8E40D103F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglEvalPoint2.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40D203F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglEvalPoint2.h; + refType = 4; + sourceTree = ""; + }; + CA8E40D303F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglFeedbackBuffer.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40D403F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglFeedbackBuffer.h; + refType = 4; + sourceTree = ""; + }; + CA8E40D503F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglFinish.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40D603F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglFinish.h; + refType = 4; + sourceTree = ""; + }; + CA8E40D703F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglFlush.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40D803F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglFlush.h; + refType = 4; + sourceTree = ""; + }; + CA8E40D903F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglFogf.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40DA03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglFogf.h; + refType = 4; + sourceTree = ""; + }; + CA8E40DB03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglFogfv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40DC03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglFogfv.h; + refType = 4; + sourceTree = ""; + }; + CA8E40DD03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglFogi.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40DE03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglFogi.h; + refType = 4; + sourceTree = ""; + }; + CA8E40DF03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglFogiv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40E003F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglFogiv.h; + refType = 4; + sourceTree = ""; + }; + CA8E40E103F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglFrontFace.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40E203F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglFrontFace.h; + refType = 4; + sourceTree = ""; + }; + CA8E40E303F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglFrustum.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40E403F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglFrustum.h; + refType = 4; + sourceTree = ""; + }; + CA8E40E503F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglGenLists.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40E603F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglGenLists.h; + refType = 4; + sourceTree = ""; + }; + CA8E40E703F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglGenTextures.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40E803F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglGenTextures.h; + refType = 4; + sourceTree = ""; + }; + CA8E40E903F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglGetError.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40EA03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglGetError.h; + refType = 4; + sourceTree = ""; + }; + CA8E40EB03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglGetMapdv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40EC03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglGetMapdv.h; + refType = 4; + sourceTree = ""; + }; + CA8E40ED03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglGetMapfv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40EE03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglGetMapfv.h; + refType = 4; + sourceTree = ""; + }; + CA8E40EF03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglGetMapiv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40F003F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglGetMapiv.h; + refType = 4; + sourceTree = ""; + }; + CA8E40F103F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglGetPointerv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40F203F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglGetPointerv.h; + refType = 4; + sourceTree = ""; + }; + CA8E40F303F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglGetString.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40F403F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglGetString.h; + refType = 4; + sourceTree = ""; + }; + CA8E40F503F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglHint.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40F603F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglHint.h; + refType = 4; + sourceTree = ""; + }; + CA8E40F703F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglIndexd.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40F803F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglIndexd.h; + refType = 4; + sourceTree = ""; + }; + CA8E40F903F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglIndexdv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40FA03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglIndexdv.h; + refType = 4; + sourceTree = ""; + }; + CA8E40FB03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglIndexf.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40FC03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglIndexf.h; + refType = 4; + sourceTree = ""; + }; + CA8E40FD03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglIndexfv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E40FE03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglIndexfv.h; + refType = 4; + sourceTree = ""; + }; + CA8E40FF03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglIndexi.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E410003F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglIndexi.h; + refType = 4; + sourceTree = ""; + }; + CA8E410103F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglIndexiv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E410203F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglIndexiv.h; + refType = 4; + sourceTree = ""; + }; + CA8E410303F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglIndexMask.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E410403F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglIndexMask.h; + refType = 4; + sourceTree = ""; + }; + CA8E410503F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglIndexs.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E410603F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglIndexs.h; + refType = 4; + sourceTree = ""; + }; + CA8E410703F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglIndexsv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E410803F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglIndexsv.h; + refType = 4; + sourceTree = ""; + }; + CA8E410903F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglIndexub.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E410A03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglIndexub.h; + refType = 4; + sourceTree = ""; + }; + CA8E410B03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglIndexubv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E410C03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglIndexubv.h; + refType = 4; + sourceTree = ""; + }; + CA8E410D03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglInitNames.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E410E03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglInitNames.h; + refType = 4; + sourceTree = ""; + }; + CA8E410F03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglIsEnabled.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E411003F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglIsEnabled.h; + refType = 4; + sourceTree = ""; + }; + CA8E411103F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglIsList.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E411203F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglIsList.h; + refType = 4; + sourceTree = ""; + }; + CA8E411303F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglIsTexture.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E411403F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglIsTexture.h; + refType = 4; + sourceTree = ""; + }; + CA8E411503F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglLightf.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E411603F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglLightf.h; + refType = 4; + sourceTree = ""; + }; + CA8E411703F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglLighti.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E411803F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglLighti.h; + refType = 4; + sourceTree = ""; + }; + CA8E411903F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglLightModelf.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E411A03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglLightModelf.h; + refType = 4; + sourceTree = ""; + }; + CA8E411B03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglLightModeli.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E411C03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglLightModeli.h; + refType = 4; + sourceTree = ""; + }; + CA8E411D03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglLineStipple.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E411E03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglLineStipple.h; + refType = 4; + sourceTree = ""; + }; + CA8E411F03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglLineWidth.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E412003F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglLineWidth.h; + refType = 4; + sourceTree = ""; + }; + CA8E412103F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglLoadIdentity.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E412203F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglLoadIdentity.h; + refType = 4; + sourceTree = ""; + }; + CA8E412303F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglLoadName.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E412403F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglLoadName.h; + refType = 4; + sourceTree = ""; + }; + CA8E412503F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglLogicOp.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E412603F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglLogicOp.h; + refType = 4; + sourceTree = ""; + }; + CA8E412703F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglMap1d.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E412803F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglMap1d.h; + refType = 4; + sourceTree = ""; + }; + CA8E412903F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglMap1f.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E412A03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglMap1f.h; + refType = 4; + sourceTree = ""; + }; + CA8E412B03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglMap2d.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E412C03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglMap2d.h; + refType = 4; + sourceTree = ""; + }; + CA8E412D03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglMap2f.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E412E03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglMap2f.h; + refType = 4; + sourceTree = ""; + }; + CA8E412F03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglMapGrid1d.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E413003F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglMapGrid1d.h; + refType = 4; + sourceTree = ""; + }; + CA8E413103F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglMapGrid1f.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E413203F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglMapGrid1f.h; + refType = 4; + sourceTree = ""; + }; + CA8E413303F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglMapGrid2d.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E413403F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglMapGrid2d.h; + refType = 4; + sourceTree = ""; + }; + CA8E413503F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglMapGrid2f.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E413603F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglMapGrid2f.h; + refType = 4; + sourceTree = ""; + }; + CA8E413703F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglMaterialf.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E413803F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglMaterialf.h; + refType = 4; + sourceTree = ""; + }; + CA8E413903F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglMateriali.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E413A03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglMateriali.h; + refType = 4; + sourceTree = ""; + }; + CA8E413B03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglMatrixMode.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E413C03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglMatrixMode.h; + refType = 4; + sourceTree = ""; + }; + CA8E413D03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglNormal3b.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E413E03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglNormal3b.h; + refType = 4; + sourceTree = ""; + }; + CA8E413F03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglNormal3bv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E414003F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglNormal3bv.h; + refType = 4; + sourceTree = ""; + }; + CA8E414103F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglNormal3d.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E414203F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglNormal3d.h; + refType = 4; + sourceTree = ""; + }; + CA8E414303F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglNormal3dv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E414403F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglNormal3dv.h; + refType = 4; + sourceTree = ""; + }; + CA8E414503F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglNormal3f.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E414603F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglNormal3f.h; + refType = 4; + sourceTree = ""; + }; + CA8E414703F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglNormal3fv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E414803F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglNormal3fv.h; + refType = 4; + sourceTree = ""; + }; + CA8E414903F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglNormal3i.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E414A03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglNormal3i.h; + refType = 4; + sourceTree = ""; + }; + CA8E414B03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglNormal3iv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E414C03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglNormal3iv.h; + refType = 4; + sourceTree = ""; + }; + CA8E414D03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglNormal3s.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E414E03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglNormal3s.h; + refType = 4; + sourceTree = ""; + }; + CA8E414F03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglNormal3sv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E415003F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglNormal3sv.h; + refType = 4; + sourceTree = ""; + }; + CA8E415103F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglOrtho.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E415203F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglOrtho.h; + refType = 4; + sourceTree = ""; + }; + CA8E415303F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglPassThrough.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E415403F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglPassThrough.h; + refType = 4; + sourceTree = ""; + }; + CA8E415503F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglPixelStoref.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E415603F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglPixelStoref.h; + refType = 4; + sourceTree = ""; + }; + CA8E415703F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglPixelStorei.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E415803F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglPixelStorei.h; + refType = 4; + sourceTree = ""; + }; + CA8E415903F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglPixelTransferf.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E415A03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglPixelTransferf.h; + refType = 4; + sourceTree = ""; + }; + CA8E415B03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglPixelTransferi.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E415C03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglPixelTransferi.h; + refType = 4; + sourceTree = ""; + }; + CA8E415D03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglPixelZoom.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E415E03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglPixelZoom.h; + refType = 4; + sourceTree = ""; + }; + CA8E415F03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglPointSize.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E416003F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglPointSize.h; + refType = 4; + sourceTree = ""; + }; + CA8E416103F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglPolygonMode.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E416203F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglPolygonMode.h; + refType = 4; + sourceTree = ""; + }; + CA8E416303F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglPolygonOffset.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E416403F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglPolygonOffset.h; + refType = 4; + sourceTree = ""; + }; + CA8E416503F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglPopAttrib.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E416603F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglPopAttrib.h; + refType = 4; + sourceTree = ""; + }; + CA8E416703F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglPopClientAttrib.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E416803F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglPopClientAttrib.h; + refType = 4; + sourceTree = ""; + }; + CA8E416903F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglPopMatrix.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E416A03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglPopMatrix.h; + refType = 4; + sourceTree = ""; + }; + CA8E416B03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglPopName.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E416C03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglPopName.h; + refType = 4; + sourceTree = ""; + }; + CA8E416D03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglPrioritizeTextures.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E416E03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglPrioritizeTextures.h; + refType = 4; + sourceTree = ""; + }; + CA8E416F03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglPushAttrib.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E417003F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglPushAttrib.h; + refType = 4; + sourceTree = ""; + }; + CA8E417103F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglPushClientAttrib.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E417203F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglPushClientAttrib.h; + refType = 4; + sourceTree = ""; + }; + CA8E417303F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglPushMatrix.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E417403F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglPushMatrix.h; + refType = 4; + sourceTree = ""; + }; + CA8E417503F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglPushName.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E417603F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglPushName.h; + refType = 4; + sourceTree = ""; + }; + CA8E417703F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglRasterPos2d.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E417803F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglRasterPos2d.h; + refType = 4; + sourceTree = ""; + }; + CA8E417903F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglRasterPos2dv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E417A03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglRasterPos2dv.h; + refType = 4; + sourceTree = ""; + }; + CA8E417B03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglRasterPos2f.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E417C03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglRasterPos2f.h; + refType = 4; + sourceTree = ""; + }; + CA8E417D03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglRasterPos2fv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E417E03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglRasterPos2fv.h; + refType = 4; + sourceTree = ""; + }; + CA8E417F03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglRasterPos2i.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E418003F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglRasterPos2i.h; + refType = 4; + sourceTree = ""; + }; + CA8E418103F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglRasterPos2iv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E418203F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglRasterPos2iv.h; + refType = 4; + sourceTree = ""; + }; + CA8E418303F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglRasterPos2s.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E418403F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglRasterPos2s.h; + refType = 4; + sourceTree = ""; + }; + CA8E418503F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglRasterPos2sv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E418603F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglRasterPos2sv.h; + refType = 4; + sourceTree = ""; + }; + CA8E418703F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglRasterPos3d.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E418803F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglRasterPos3d.h; + refType = 4; + sourceTree = ""; + }; + CA8E418903F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglRasterPos3dv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E418A03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglRasterPos3dv.h; + refType = 4; + sourceTree = ""; + }; + CA8E418B03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglRasterPos3f.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E418C03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglRasterPos3f.h; + refType = 4; + sourceTree = ""; + }; + CA8E418D03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglRasterPos3fv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E418E03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglRasterPos3fv.h; + refType = 4; + sourceTree = ""; + }; + CA8E418F03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglRasterPos3i.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E419003F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglRasterPos3i.h; + refType = 4; + sourceTree = ""; + }; + CA8E419103F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglRasterPos3iv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E419203F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglRasterPos3iv.h; + refType = 4; + sourceTree = ""; + }; + CA8E419303F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglRasterPos3s.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E419403F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglRasterPos3s.h; + refType = 4; + sourceTree = ""; + }; + CA8E419503F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglRasterPos3sv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E419603F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglRasterPos3sv.h; + refType = 4; + sourceTree = ""; + }; + CA8E419703F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglRasterPos4d.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E419803F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglRasterPos4d.h; + refType = 4; + sourceTree = ""; + }; + CA8E419903F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglRasterPos4dv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E419A03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglRasterPos4dv.h; + refType = 4; + sourceTree = ""; + }; + CA8E419B03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglRasterPos4f.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E419C03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglRasterPos4f.h; + refType = 4; + sourceTree = ""; + }; + CA8E419D03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglRasterPos4fv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E419E03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglRasterPos4fv.h; + refType = 4; + sourceTree = ""; + }; + CA8E419F03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglRasterPos4i.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41A003F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglRasterPos4i.h; + refType = 4; + sourceTree = ""; + }; + CA8E41A103F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglRasterPos4iv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41A203F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglRasterPos4iv.h; + refType = 4; + sourceTree = ""; + }; + CA8E41A303F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglRasterPos4s.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41A403F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglRasterPos4s.h; + refType = 4; + sourceTree = ""; + }; + CA8E41A503F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglRasterPos4sv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41A603F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglRasterPos4sv.h; + refType = 4; + sourceTree = ""; + }; + CA8E41A703F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglRectd.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41A803F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglRectd.h; + refType = 4; + sourceTree = ""; + }; + CA8E41A903F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglRectf.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41AA03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglRectf.h; + refType = 4; + sourceTree = ""; + }; + CA8E41AB03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglRecti.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41AC03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglRecti.h; + refType = 4; + sourceTree = ""; + }; + CA8E41AD03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglRects.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41AE03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglRects.h; + refType = 4; + sourceTree = ""; + }; + CA8E41AF03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglRenderMode.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41B003F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglRenderMode.h; + refType = 4; + sourceTree = ""; + }; + CA8E41B103F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglRotated.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41B203F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglRotated.h; + refType = 4; + sourceTree = ""; + }; + CA8E41B303F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglRotatef.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41B403F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglRotatef.h; + refType = 4; + sourceTree = ""; + }; + CA8E41B503F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglScaled.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41B603F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglScaled.h; + refType = 4; + sourceTree = ""; + }; + CA8E41B703F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglScalef.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41B803F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglScalef.h; + refType = 4; + sourceTree = ""; + }; + CA8E41B903F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglScissor.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41BA03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglScissor.h; + refType = 4; + sourceTree = ""; + }; + CA8E41BB03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglSelectBuffer.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41BC03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglSelectBuffer.h; + refType = 4; + sourceTree = ""; + }; + CA8E41BD03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglShadeModel.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41BE03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglShadeModel.h; + refType = 4; + sourceTree = ""; + }; + CA8E41BF03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglStencilFunc.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41C003F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglStencilFunc.h; + refType = 4; + sourceTree = ""; + }; + CA8E41C103F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglStencilMask.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41C203F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglStencilMask.h; + refType = 4; + sourceTree = ""; + }; + CA8E41C303F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglStencilOp.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41C403F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglStencilOp.h; + refType = 4; + sourceTree = ""; + }; + CA8E41C503F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexCoord1d.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41C603F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexCoord1d.h; + refType = 4; + sourceTree = ""; + }; + CA8E41C703F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexCoord1dv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41C803F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexCoord1dv.h; + refType = 4; + sourceTree = ""; + }; + CA8E41C903F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexCoord1f.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41CA03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexCoord1f.h; + refType = 4; + sourceTree = ""; + }; + CA8E41CB03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexCoord1fv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41CC03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexCoord1fv.h; + refType = 4; + sourceTree = ""; + }; + CA8E41CD03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexCoord1i.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41CE03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexCoord1i.h; + refType = 4; + sourceTree = ""; + }; + CA8E41CF03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexCoord1iv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41D003F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexCoord1iv.h; + refType = 4; + sourceTree = ""; + }; + CA8E41D103F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexCoord1s.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41D203F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexCoord1s.h; + refType = 4; + sourceTree = ""; + }; + CA8E41D303F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexCoord1sv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41D403F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexCoord1sv.h; + refType = 4; + sourceTree = ""; + }; + CA8E41D503F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexCoord2d.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41D603F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexCoord2d.h; + refType = 4; + sourceTree = ""; + }; + CA8E41D703F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexCoord2dv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41D803F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexCoord2dv.h; + refType = 4; + sourceTree = ""; + }; + CA8E41D903F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexCoord2f.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41DA03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexCoord2f.h; + refType = 4; + sourceTree = ""; + }; + CA8E41DB03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexCoord2fv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41DC03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexCoord2fv.h; + refType = 4; + sourceTree = ""; + }; + CA8E41DD03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexCoord2i.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41DE03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexCoord2i.h; + refType = 4; + sourceTree = ""; + }; + CA8E41DF03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexCoord2iv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41E003F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexCoord2iv.h; + refType = 4; + sourceTree = ""; + }; + CA8E41E103F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexCoord2s.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41E203F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexCoord2s.h; + refType = 4; + sourceTree = ""; + }; + CA8E41E303F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexCoord2sv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41E403F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexCoord2sv.h; + refType = 4; + sourceTree = ""; + }; + CA8E41E503F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexCoord3d.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41E603F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexCoord3d.h; + refType = 4; + sourceTree = ""; + }; + CA8E41E703F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexCoord3dv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41E803F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexCoord3dv.h; + refType = 4; + sourceTree = ""; + }; + CA8E41E903F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexCoord3f.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41EA03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexCoord3f.h; + refType = 4; + sourceTree = ""; + }; + CA8E41EB03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexCoord3fv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41EC03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexCoord3fv.h; + refType = 4; + sourceTree = ""; + }; + CA8E41ED03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexCoord3i.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41EE03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexCoord3i.h; + refType = 4; + sourceTree = ""; + }; + CA8E41EF03F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexCoord3iv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41F003F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexCoord3iv.h; + refType = 4; + sourceTree = ""; + }; + CA8E41F103F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexCoord3s.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41F203F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexCoord3s.h; + refType = 4; + sourceTree = ""; + }; + CA8E41F303F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexCoord3sv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41F403F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexCoord3sv.h; + refType = 4; + sourceTree = ""; + }; + CA8E41F503F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexCoord4d.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41F603F7486100A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexCoord4d.h; + refType = 4; + sourceTree = ""; + }; + CA8E41F703F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexCoord4dv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41F803F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexCoord4dv.h; + refType = 4; + sourceTree = ""; + }; + CA8E41F903F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexCoord4f.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41FA03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexCoord4f.h; + refType = 4; + sourceTree = ""; + }; + CA8E41FB03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexCoord4fv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41FC03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexCoord4fv.h; + refType = 4; + sourceTree = ""; + }; + CA8E41FD03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexCoord4i.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E41FE03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexCoord4i.h; + refType = 4; + sourceTree = ""; + }; + CA8E41FF03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexCoord4iv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E420003F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexCoord4iv.h; + refType = 4; + sourceTree = ""; + }; + CA8E420103F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexCoord4s.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E420203F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexCoord4s.h; + refType = 4; + sourceTree = ""; + }; + CA8E420303F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexCoord4sv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E420403F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexCoord4sv.h; + refType = 4; + sourceTree = ""; + }; + CA8E420503F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexEnvf.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E420603F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexEnvf.h; + refType = 4; + sourceTree = ""; + }; + CA8E420703F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexEnvi.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E420803F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexEnvi.h; + refType = 4; + sourceTree = ""; + }; + CA8E420903F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexGend.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E420A03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexGend.h; + refType = 4; + sourceTree = ""; + }; + CA8E420B03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexGenf.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E420C03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexGenf.h; + refType = 4; + sourceTree = ""; + }; + CA8E420D03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexGeni.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E420E03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexGeni.h; + refType = 4; + sourceTree = ""; + }; + CA8E420F03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexParameterf.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E421003F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexParameterf.h; + refType = 4; + sourceTree = ""; + }; + CA8E421103F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexParameteri.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E421203F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexParameteri.h; + refType = 4; + sourceTree = ""; + }; + CA8E421303F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexSubImage1D.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E421403F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexSubImage1D.h; + refType = 4; + sourceTree = ""; + }; + CA8E421503F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTexSubImage2D.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E421603F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTexSubImage2D.h; + refType = 4; + sourceTree = ""; + }; + CA8E421703F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTranslated.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E421803F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTranslated.h; + refType = 4; + sourceTree = ""; + }; + CA8E421903F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglTranslatef.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E421A03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglTranslatef.h; + refType = 4; + sourceTree = ""; + }; + CA8E421B03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglVertex2d.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E421C03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglVertex2d.h; + refType = 4; + sourceTree = ""; + }; + CA8E421D03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglVertex2dv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E421E03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglVertex2dv.h; + refType = 4; + sourceTree = ""; + }; + CA8E421F03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglVertex2f.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E422003F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglVertex2f.h; + refType = 4; + sourceTree = ""; + }; + CA8E422103F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglVertex2fv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E422203F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglVertex2fv.h; + refType = 4; + sourceTree = ""; + }; + CA8E422303F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglVertex2i.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E422403F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglVertex2i.h; + refType = 4; + sourceTree = ""; + }; + CA8E422503F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglVertex2iv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E422603F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglVertex2iv.h; + refType = 4; + sourceTree = ""; + }; + CA8E422703F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglVertex2s.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E422803F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglVertex2s.h; + refType = 4; + sourceTree = ""; + }; + CA8E422903F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglVertex2sv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E422A03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglVertex2sv.h; + refType = 4; + sourceTree = ""; + }; + CA8E422B03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglVertex3d.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E422C03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglVertex3d.h; + refType = 4; + sourceTree = ""; + }; + CA8E422D03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglVertex3dv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E422E03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglVertex3dv.h; + refType = 4; + sourceTree = ""; + }; + CA8E422F03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglVertex3f.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E423003F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglVertex3f.h; + refType = 4; + sourceTree = ""; + }; + CA8E423103F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglVertex3fv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E423203F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglVertex3fv.h; + refType = 4; + sourceTree = ""; + }; + CA8E423303F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglVertex3i.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E423403F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglVertex3i.h; + refType = 4; + sourceTree = ""; + }; + CA8E423503F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglVertex3iv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E423603F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglVertex3iv.h; + refType = 4; + sourceTree = ""; + }; + CA8E423703F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglVertex3s.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E423803F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglVertex3s.h; + refType = 4; + sourceTree = ""; + }; + CA8E423903F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglVertex3sv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E423A03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglVertex3sv.h; + refType = 4; + sourceTree = ""; + }; + CA8E423B03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglVertex4d.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E423C03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglVertex4d.h; + refType = 4; + sourceTree = ""; + }; + CA8E423D03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglVertex4dv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E423E03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglVertex4dv.h; + refType = 4; + sourceTree = ""; + }; + CA8E423F03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglVertex4f.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E424003F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglVertex4f.h; + refType = 4; + sourceTree = ""; + }; + CA8E424103F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglVertex4fv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E424203F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglVertex4fv.h; + refType = 4; + sourceTree = ""; + }; + CA8E424303F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglVertex4i.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E424403F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglVertex4i.h; + refType = 4; + sourceTree = ""; + }; + CA8E424503F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglVertex4iv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E424603F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglVertex4iv.h; + refType = 4; + sourceTree = ""; + }; + CA8E424703F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglVertex4s.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E424803F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglVertex4s.h; + refType = 4; + sourceTree = ""; + }; + CA8E424903F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglVertex4sv.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E424A03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglVertex4sv.h; + refType = 4; + sourceTree = ""; + }; + CA8E424B03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GEMglViewport.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E424C03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GEMglViewport.h; + refType = 4; + sourceTree = ""; + }; + CA8E424D03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = file; + path = Make.depend; + refType = 4; + sourceTree = ""; + }; + CA8E424E03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = text.script.sh; + path = makesetup; + refType = 4; + sourceTree = ""; + }; + CA8E424F03F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = text.script.sh; + path = makesource; + refType = 4; + sourceTree = ""; + }; + CA8E425003F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = text; + path = README; + refType = 4; + sourceTree = ""; + }; + CA8E425103F7486200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = setup.h; + refType = 4; + sourceTree = ""; + }; + CA8E425203F7486200A80164 = { + fileRef = CA8E403503F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E425303F7486200A80164 = { + fileRef = CA8E403603F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E425403F7486200A80164 = { + fileRef = CA8E403703F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E425503F7486200A80164 = { + fileRef = CA8E403803F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E425603F7486200A80164 = { + fileRef = CA8E403903F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E425703F7486200A80164 = { + fileRef = CA8E403A03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E425803F7486200A80164 = { + fileRef = CA8E403B03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E425903F7486200A80164 = { + fileRef = CA8E403C03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E425A03F7486200A80164 = { + fileRef = CA8E403D03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E425B03F7486200A80164 = { + fileRef = CA8E403E03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E425C03F7486200A80164 = { + fileRef = CA8E403F03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E425D03F7486200A80164 = { + fileRef = CA8E404003F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E425E03F7486200A80164 = { + fileRef = CA8E404103F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E425F03F7486200A80164 = { + fileRef = CA8E404203F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E426003F7486200A80164 = { + fileRef = CA8E404303F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E426103F7486200A80164 = { + fileRef = CA8E404403F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E426203F7486200A80164 = { + fileRef = CA8E404503F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E426303F7486200A80164 = { + fileRef = CA8E404603F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E426403F7486200A80164 = { + fileRef = CA8E404703F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E426503F7486200A80164 = { + fileRef = CA8E404803F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E426603F7486200A80164 = { + fileRef = CA8E404903F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E426703F7486200A80164 = { + fileRef = CA8E404A03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E426803F7486200A80164 = { + fileRef = CA8E404B03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E426903F7486200A80164 = { + fileRef = CA8E404C03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E426A03F7486200A80164 = { + fileRef = CA8E404D03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E426B03F7486200A80164 = { + fileRef = CA8E404E03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E426C03F7486200A80164 = { + fileRef = CA8E404F03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E426D03F7486200A80164 = { + fileRef = CA8E405003F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E426E03F7486200A80164 = { + fileRef = CA8E405103F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E426F03F7486200A80164 = { + fileRef = CA8E405203F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E427003F7486200A80164 = { + fileRef = CA8E405303F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E427103F7486200A80164 = { + fileRef = CA8E405403F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E427203F7486200A80164 = { + fileRef = CA8E405503F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E427303F7486200A80164 = { + fileRef = CA8E405603F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E427403F7486200A80164 = { + fileRef = CA8E405703F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E427503F7486200A80164 = { + fileRef = CA8E405803F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E427603F7486200A80164 = { + fileRef = CA8E405903F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E427703F7486200A80164 = { + fileRef = CA8E405A03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E427803F7486200A80164 = { + fileRef = CA8E405B03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E427903F7486200A80164 = { + fileRef = CA8E405C03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E427A03F7486200A80164 = { + fileRef = CA8E405D03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E427B03F7486200A80164 = { + fileRef = CA8E405E03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E427C03F7486200A80164 = { + fileRef = CA8E405F03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E427D03F7486200A80164 = { + fileRef = CA8E406003F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E427E03F7486200A80164 = { + fileRef = CA8E406103F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E427F03F7486200A80164 = { + fileRef = CA8E406203F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E428003F7486200A80164 = { + fileRef = CA8E406303F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E428103F7486200A80164 = { + fileRef = CA8E406403F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E428203F7486200A80164 = { + fileRef = CA8E406503F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E428303F7486200A80164 = { + fileRef = CA8E406603F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E428403F7486200A80164 = { + fileRef = CA8E406703F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E428503F7486200A80164 = { + fileRef = CA8E406803F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E428603F7486200A80164 = { + fileRef = CA8E406903F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E428703F7486200A80164 = { + fileRef = CA8E406A03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E428803F7486200A80164 = { + fileRef = CA8E406B03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E428903F7486200A80164 = { + fileRef = CA8E406C03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E428A03F7486200A80164 = { + fileRef = CA8E406D03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E428B03F7486200A80164 = { + fileRef = CA8E406E03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E428C03F7486200A80164 = { + fileRef = CA8E406F03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E428D03F7486200A80164 = { + fileRef = CA8E407003F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E428E03F7486200A80164 = { + fileRef = CA8E407103F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E428F03F7486200A80164 = { + fileRef = CA8E407203F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E429003F7486200A80164 = { + fileRef = CA8E407303F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E429103F7486200A80164 = { + fileRef = CA8E407403F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E429203F7486200A80164 = { + fileRef = CA8E407503F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E429303F7486200A80164 = { + fileRef = CA8E407603F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E429403F7486200A80164 = { + fileRef = CA8E407703F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E429503F7486200A80164 = { + fileRef = CA8E407803F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E429603F7486200A80164 = { + fileRef = CA8E407903F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E429703F7486200A80164 = { + fileRef = CA8E407A03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E429803F7486200A80164 = { + fileRef = CA8E407B03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E429903F7486200A80164 = { + fileRef = CA8E407C03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E429A03F7486200A80164 = { + fileRef = CA8E407D03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E429B03F7486200A80164 = { + fileRef = CA8E407E03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E429C03F7486200A80164 = { + fileRef = CA8E407F03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E429D03F7486200A80164 = { + fileRef = CA8E408003F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E429E03F7486200A80164 = { + fileRef = CA8E408103F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E429F03F7486200A80164 = { + fileRef = CA8E408203F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42A003F7486200A80164 = { + fileRef = CA8E408303F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42A103F7486200A80164 = { + fileRef = CA8E408403F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42A203F7486200A80164 = { + fileRef = CA8E408503F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42A303F7486200A80164 = { + fileRef = CA8E408603F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42A403F7486200A80164 = { + fileRef = CA8E408703F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42A503F7486200A80164 = { + fileRef = CA8E408803F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42A603F7486200A80164 = { + fileRef = CA8E408903F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42A703F7486200A80164 = { + fileRef = CA8E408A03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42A803F7486200A80164 = { + fileRef = CA8E408B03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42A903F7486200A80164 = { + fileRef = CA8E408C03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42AA03F7486200A80164 = { + fileRef = CA8E408D03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42AB03F7486200A80164 = { + fileRef = CA8E408E03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42AC03F7486200A80164 = { + fileRef = CA8E408F03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42AD03F7486200A80164 = { + fileRef = CA8E409003F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42AE03F7486200A80164 = { + fileRef = CA8E409103F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42AF03F7486200A80164 = { + fileRef = CA8E409203F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42B003F7486200A80164 = { + fileRef = CA8E409303F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42B103F7486200A80164 = { + fileRef = CA8E409403F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42B203F7486200A80164 = { + fileRef = CA8E409503F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42B303F7486200A80164 = { + fileRef = CA8E409603F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42B403F7486200A80164 = { + fileRef = CA8E409703F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42B503F7486200A80164 = { + fileRef = CA8E409803F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42B603F7486200A80164 = { + fileRef = CA8E409903F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42B703F7486200A80164 = { + fileRef = CA8E409A03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42B803F7486200A80164 = { + fileRef = CA8E409B03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42B903F7486200A80164 = { + fileRef = CA8E409C03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42BA03F7486200A80164 = { + fileRef = CA8E409D03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42BB03F7486200A80164 = { + fileRef = CA8E409E03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42BC03F7486200A80164 = { + fileRef = CA8E409F03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42BD03F7486200A80164 = { + fileRef = CA8E40A003F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42BE03F7486200A80164 = { + fileRef = CA8E40A103F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42BF03F7486200A80164 = { + fileRef = CA8E40A203F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42C003F7486200A80164 = { + fileRef = CA8E40A303F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42C103F7486200A80164 = { + fileRef = CA8E40A403F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42C203F7486200A80164 = { + fileRef = CA8E40A503F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42C303F7486200A80164 = { + fileRef = CA8E40A603F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42C403F7486200A80164 = { + fileRef = CA8E40A703F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42C503F7486200A80164 = { + fileRef = CA8E40A803F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42C603F7486200A80164 = { + fileRef = CA8E40A903F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42C703F7486200A80164 = { + fileRef = CA8E40AA03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42C803F7486200A80164 = { + fileRef = CA8E40AB03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42C903F7486200A80164 = { + fileRef = CA8E40AC03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42CA03F7486200A80164 = { + fileRef = CA8E40AD03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42CB03F7486200A80164 = { + fileRef = CA8E40AE03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42CC03F7486200A80164 = { + fileRef = CA8E40AF03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42CD03F7486200A80164 = { + fileRef = CA8E40B003F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42CE03F7486200A80164 = { + fileRef = CA8E40B103F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42CF03F7486200A80164 = { + fileRef = CA8E40B203F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42D003F7486200A80164 = { + fileRef = CA8E40B303F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42D103F7486200A80164 = { + fileRef = CA8E40B403F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42D203F7486200A80164 = { + fileRef = CA8E40B503F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42D303F7486200A80164 = { + fileRef = CA8E40B603F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42D403F7486200A80164 = { + fileRef = CA8E40B703F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42D503F7486200A80164 = { + fileRef = CA8E40B803F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42D603F7486200A80164 = { + fileRef = CA8E40B903F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42D703F7486200A80164 = { + fileRef = CA8E40BA03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42D803F7486200A80164 = { + fileRef = CA8E40BB03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42D903F7486200A80164 = { + fileRef = CA8E40BC03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42DA03F7486200A80164 = { + fileRef = CA8E40BD03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42DB03F7486200A80164 = { + fileRef = CA8E40BE03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42DC03F7486200A80164 = { + fileRef = CA8E40BF03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42DD03F7486200A80164 = { + fileRef = CA8E40C003F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42DE03F7486200A80164 = { + fileRef = CA8E40C103F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42DF03F7486200A80164 = { + fileRef = CA8E40C203F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42E003F7486200A80164 = { + fileRef = CA8E40C303F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42E103F7486200A80164 = { + fileRef = CA8E40C403F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42E203F7486200A80164 = { + fileRef = CA8E40C503F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42E303F7486200A80164 = { + fileRef = CA8E40C603F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42E403F7486200A80164 = { + fileRef = CA8E40C703F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42E503F7486200A80164 = { + fileRef = CA8E40C803F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42E603F7486200A80164 = { + fileRef = CA8E40C903F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42E703F7486200A80164 = { + fileRef = CA8E40CA03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42E803F7486200A80164 = { + fileRef = CA8E40CB03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42E903F7486200A80164 = { + fileRef = CA8E40CC03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42EA03F7486200A80164 = { + fileRef = CA8E40CD03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42EB03F7486200A80164 = { + fileRef = CA8E40CE03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42EC03F7486200A80164 = { + fileRef = CA8E40CF03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42ED03F7486200A80164 = { + fileRef = CA8E40D003F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42EE03F7486200A80164 = { + fileRef = CA8E40D103F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42EF03F7486200A80164 = { + fileRef = CA8E40D203F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42F003F7486200A80164 = { + fileRef = CA8E40D303F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42F103F7486200A80164 = { + fileRef = CA8E40D403F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42F203F7486200A80164 = { + fileRef = CA8E40D503F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42F303F7486200A80164 = { + fileRef = CA8E40D603F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42F403F7486200A80164 = { + fileRef = CA8E40D703F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42F503F7486200A80164 = { + fileRef = CA8E40D803F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42F603F7486200A80164 = { + fileRef = CA8E40D903F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42F703F7486200A80164 = { + fileRef = CA8E40DA03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42F803F7486200A80164 = { + fileRef = CA8E40DB03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42F903F7486200A80164 = { + fileRef = CA8E40DC03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42FA03F7486200A80164 = { + fileRef = CA8E40DD03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42FB03F7486200A80164 = { + fileRef = CA8E40DE03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42FC03F7486200A80164 = { + fileRef = CA8E40DF03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42FD03F7486200A80164 = { + fileRef = CA8E40E003F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42FE03F7486200A80164 = { + fileRef = CA8E40E103F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E42FF03F7486200A80164 = { + fileRef = CA8E40E203F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E430003F7486200A80164 = { + fileRef = CA8E40E303F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E430103F7486200A80164 = { + fileRef = CA8E40E403F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E430203F7486200A80164 = { + fileRef = CA8E40E503F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E430303F7486200A80164 = { + fileRef = CA8E40E603F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E430403F7486200A80164 = { + fileRef = CA8E40E703F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E430503F7486200A80164 = { + fileRef = CA8E40E803F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E430603F7486200A80164 = { + fileRef = CA8E40E903F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E430703F7486200A80164 = { + fileRef = CA8E40EA03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E430803F7486200A80164 = { + fileRef = CA8E40EB03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E430903F7486200A80164 = { + fileRef = CA8E40EC03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E430A03F7486200A80164 = { + fileRef = CA8E40ED03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E430B03F7486200A80164 = { + fileRef = CA8E40EE03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E430C03F7486200A80164 = { + fileRef = CA8E40EF03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E430D03F7486200A80164 = { + fileRef = CA8E40F003F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E430E03F7486200A80164 = { + fileRef = CA8E40F103F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E430F03F7486200A80164 = { + fileRef = CA8E40F203F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E431003F7486200A80164 = { + fileRef = CA8E40F303F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E431103F7486200A80164 = { + fileRef = CA8E40F403F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E431203F7486200A80164 = { + fileRef = CA8E40F503F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E431303F7486200A80164 = { + fileRef = CA8E40F603F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E431403F7486200A80164 = { + fileRef = CA8E40F703F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E431503F7486200A80164 = { + fileRef = CA8E40F803F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E431603F7486200A80164 = { + fileRef = CA8E40F903F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E431703F7486200A80164 = { + fileRef = CA8E40FA03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E431803F7486200A80164 = { + fileRef = CA8E40FB03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E431903F7486200A80164 = { + fileRef = CA8E40FC03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E431A03F7486200A80164 = { + fileRef = CA8E40FD03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E431B03F7486200A80164 = { + fileRef = CA8E40FE03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E431C03F7486200A80164 = { + fileRef = CA8E40FF03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E431D03F7486200A80164 = { + fileRef = CA8E410003F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E431E03F7486200A80164 = { + fileRef = CA8E410103F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E431F03F7486200A80164 = { + fileRef = CA8E410203F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E432003F7486200A80164 = { + fileRef = CA8E410303F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E432103F7486200A80164 = { + fileRef = CA8E410403F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E432203F7486200A80164 = { + fileRef = CA8E410503F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E432303F7486200A80164 = { + fileRef = CA8E410603F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E432403F7486200A80164 = { + fileRef = CA8E410703F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E432503F7486200A80164 = { + fileRef = CA8E410803F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E432603F7486200A80164 = { + fileRef = CA8E410903F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E432703F7486200A80164 = { + fileRef = CA8E410A03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E432803F7486200A80164 = { + fileRef = CA8E410B03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E432903F7486200A80164 = { + fileRef = CA8E410C03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E432A03F7486200A80164 = { + fileRef = CA8E410D03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E432B03F7486200A80164 = { + fileRef = CA8E410E03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E432C03F7486200A80164 = { + fileRef = CA8E410F03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E432D03F7486200A80164 = { + fileRef = CA8E411003F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E432E03F7486200A80164 = { + fileRef = CA8E411103F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E432F03F7486200A80164 = { + fileRef = CA8E411203F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E433003F7486200A80164 = { + fileRef = CA8E411303F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E433103F7486200A80164 = { + fileRef = CA8E411403F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E433203F7486200A80164 = { + fileRef = CA8E411503F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E433303F7486200A80164 = { + fileRef = CA8E411603F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E433403F7486200A80164 = { + fileRef = CA8E411703F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E433503F7486200A80164 = { + fileRef = CA8E411803F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E433603F7486200A80164 = { + fileRef = CA8E411903F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E433703F7486200A80164 = { + fileRef = CA8E411A03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E433803F7486200A80164 = { + fileRef = CA8E411B03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E433903F7486200A80164 = { + fileRef = CA8E411C03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E433A03F7486200A80164 = { + fileRef = CA8E411D03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E433B03F7486200A80164 = { + fileRef = CA8E411E03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E433C03F7486200A80164 = { + fileRef = CA8E411F03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E433D03F7486200A80164 = { + fileRef = CA8E412003F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E433E03F7486200A80164 = { + fileRef = CA8E412103F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E433F03F7486200A80164 = { + fileRef = CA8E412203F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E434003F7486200A80164 = { + fileRef = CA8E412303F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E434103F7486200A80164 = { + fileRef = CA8E412403F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E434203F7486200A80164 = { + fileRef = CA8E412503F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E434303F7486200A80164 = { + fileRef = CA8E412603F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E434403F7486200A80164 = { + fileRef = CA8E412703F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E434503F7486200A80164 = { + fileRef = CA8E412803F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E434603F7486200A80164 = { + fileRef = CA8E412903F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E434703F7486200A80164 = { + fileRef = CA8E412A03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E434803F7486200A80164 = { + fileRef = CA8E412B03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E434903F7486200A80164 = { + fileRef = CA8E412C03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E434A03F7486200A80164 = { + fileRef = CA8E412D03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E434B03F7486200A80164 = { + fileRef = CA8E412E03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E434C03F7486200A80164 = { + fileRef = CA8E412F03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E434D03F7486200A80164 = { + fileRef = CA8E413003F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E434E03F7486200A80164 = { + fileRef = CA8E413103F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E434F03F7486200A80164 = { + fileRef = CA8E413203F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E435003F7486200A80164 = { + fileRef = CA8E413303F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E435103F7486200A80164 = { + fileRef = CA8E413403F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E435203F7486200A80164 = { + fileRef = CA8E413503F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E435303F7486200A80164 = { + fileRef = CA8E413603F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E435403F7486200A80164 = { + fileRef = CA8E413703F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E435503F7486200A80164 = { + fileRef = CA8E413803F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E435603F7486200A80164 = { + fileRef = CA8E413903F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E435703F7486200A80164 = { + fileRef = CA8E413A03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E435803F7486200A80164 = { + fileRef = CA8E413B03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E435903F7486200A80164 = { + fileRef = CA8E413C03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E435A03F7486200A80164 = { + fileRef = CA8E413D03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E435B03F7486200A80164 = { + fileRef = CA8E413E03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E435C03F7486200A80164 = { + fileRef = CA8E413F03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E435D03F7486200A80164 = { + fileRef = CA8E414003F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E435E03F7486200A80164 = { + fileRef = CA8E414103F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E435F03F7486200A80164 = { + fileRef = CA8E414203F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E436003F7486200A80164 = { + fileRef = CA8E414303F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E436103F7486200A80164 = { + fileRef = CA8E414403F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E436203F7486200A80164 = { + fileRef = CA8E414503F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E436303F7486200A80164 = { + fileRef = CA8E414603F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E436403F7486200A80164 = { + fileRef = CA8E414703F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E436503F7486200A80164 = { + fileRef = CA8E414803F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E436603F7486200A80164 = { + fileRef = CA8E414903F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E436703F7486200A80164 = { + fileRef = CA8E414A03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E436803F7486200A80164 = { + fileRef = CA8E414B03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E436903F7486200A80164 = { + fileRef = CA8E414C03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E436A03F7486200A80164 = { + fileRef = CA8E414D03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E436B03F7486200A80164 = { + fileRef = CA8E414E03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E436C03F7486200A80164 = { + fileRef = CA8E414F03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E436D03F7486200A80164 = { + fileRef = CA8E415003F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E436E03F7486200A80164 = { + fileRef = CA8E415103F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E436F03F7486200A80164 = { + fileRef = CA8E415203F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E437003F7486200A80164 = { + fileRef = CA8E415303F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E437103F7486200A80164 = { + fileRef = CA8E415403F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E437203F7486200A80164 = { + fileRef = CA8E415503F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E437303F7486200A80164 = { + fileRef = CA8E415603F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E437403F7486200A80164 = { + fileRef = CA8E415703F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E437503F7486200A80164 = { + fileRef = CA8E415803F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E437603F7486200A80164 = { + fileRef = CA8E415903F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E437703F7486200A80164 = { + fileRef = CA8E415A03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E437803F7486200A80164 = { + fileRef = CA8E415B03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E437903F7486200A80164 = { + fileRef = CA8E415C03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E437A03F7486200A80164 = { + fileRef = CA8E415D03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E437B03F7486200A80164 = { + fileRef = CA8E415E03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E437C03F7486200A80164 = { + fileRef = CA8E415F03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E437D03F7486200A80164 = { + fileRef = CA8E416003F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E437E03F7486200A80164 = { + fileRef = CA8E416103F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E437F03F7486200A80164 = { + fileRef = CA8E416203F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E438003F7486200A80164 = { + fileRef = CA8E416303F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E438103F7486200A80164 = { + fileRef = CA8E416403F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E438203F7486200A80164 = { + fileRef = CA8E416503F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E438303F7486200A80164 = { + fileRef = CA8E416603F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E438403F7486200A80164 = { + fileRef = CA8E416703F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E438503F7486200A80164 = { + fileRef = CA8E416803F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E438603F7486200A80164 = { + fileRef = CA8E416903F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E438703F7486200A80164 = { + fileRef = CA8E416A03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E438803F7486200A80164 = { + fileRef = CA8E416B03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E438903F7486200A80164 = { + fileRef = CA8E416C03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E438A03F7486200A80164 = { + fileRef = CA8E416D03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E438B03F7486200A80164 = { + fileRef = CA8E416E03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E438C03F7486200A80164 = { + fileRef = CA8E416F03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E438D03F7486200A80164 = { + fileRef = CA8E417003F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E438E03F7486200A80164 = { + fileRef = CA8E417103F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E438F03F7486200A80164 = { + fileRef = CA8E417203F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E439003F7486200A80164 = { + fileRef = CA8E417303F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E439103F7486200A80164 = { + fileRef = CA8E417403F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E439203F7486200A80164 = { + fileRef = CA8E417503F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E439303F7486200A80164 = { + fileRef = CA8E417603F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E439403F7486200A80164 = { + fileRef = CA8E417703F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E439503F7486200A80164 = { + fileRef = CA8E417803F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E439603F7486200A80164 = { + fileRef = CA8E417903F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E439703F7486200A80164 = { + fileRef = CA8E417A03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E439803F7486200A80164 = { + fileRef = CA8E417B03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E439903F7486200A80164 = { + fileRef = CA8E417C03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E439A03F7486200A80164 = { + fileRef = CA8E417D03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E439B03F7486200A80164 = { + fileRef = CA8E417E03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E439C03F7486200A80164 = { + fileRef = CA8E417F03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E439D03F7486200A80164 = { + fileRef = CA8E418003F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E439E03F7486200A80164 = { + fileRef = CA8E418103F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E439F03F7486200A80164 = { + fileRef = CA8E418203F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43A003F7486200A80164 = { + fileRef = CA8E418303F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43A103F7486200A80164 = { + fileRef = CA8E418403F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43A203F7486200A80164 = { + fileRef = CA8E418503F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43A303F7486200A80164 = { + fileRef = CA8E418603F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43A403F7486200A80164 = { + fileRef = CA8E418703F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43A503F7486200A80164 = { + fileRef = CA8E418803F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43A603F7486200A80164 = { + fileRef = CA8E418903F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43A703F7486200A80164 = { + fileRef = CA8E418A03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43A803F7486200A80164 = { + fileRef = CA8E418B03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43A903F7486200A80164 = { + fileRef = CA8E418C03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43AA03F7486200A80164 = { + fileRef = CA8E418D03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43AB03F7486200A80164 = { + fileRef = CA8E418E03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43AC03F7486200A80164 = { + fileRef = CA8E418F03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43AD03F7486200A80164 = { + fileRef = CA8E419003F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43AE03F7486200A80164 = { + fileRef = CA8E419103F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43AF03F7486200A80164 = { + fileRef = CA8E419203F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43B003F7486200A80164 = { + fileRef = CA8E419303F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43B103F7486200A80164 = { + fileRef = CA8E419403F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43B203F7486200A80164 = { + fileRef = CA8E419503F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43B303F7486200A80164 = { + fileRef = CA8E419603F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43B403F7486200A80164 = { + fileRef = CA8E419703F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43B503F7486200A80164 = { + fileRef = CA8E419803F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43B603F7486200A80164 = { + fileRef = CA8E419903F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43B703F7486200A80164 = { + fileRef = CA8E419A03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43B803F7486200A80164 = { + fileRef = CA8E419B03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43B903F7486200A80164 = { + fileRef = CA8E419C03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43BA03F7486200A80164 = { + fileRef = CA8E419D03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43BB03F7486200A80164 = { + fileRef = CA8E419E03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43BC03F7486200A80164 = { + fileRef = CA8E419F03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43BD03F7486200A80164 = { + fileRef = CA8E41A003F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43BE03F7486200A80164 = { + fileRef = CA8E41A103F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43BF03F7486200A80164 = { + fileRef = CA8E41A203F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43C003F7486200A80164 = { + fileRef = CA8E41A303F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43C103F7486200A80164 = { + fileRef = CA8E41A403F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43C203F7486200A80164 = { + fileRef = CA8E41A503F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43C303F7486200A80164 = { + fileRef = CA8E41A603F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43C403F7486200A80164 = { + fileRef = CA8E41A703F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43C503F7486200A80164 = { + fileRef = CA8E41A803F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43C603F7486200A80164 = { + fileRef = CA8E41A903F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43C703F7486200A80164 = { + fileRef = CA8E41AA03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43C803F7486200A80164 = { + fileRef = CA8E41AB03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43C903F7486200A80164 = { + fileRef = CA8E41AC03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43CA03F7486200A80164 = { + fileRef = CA8E41AD03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43CB03F7486200A80164 = { + fileRef = CA8E41AE03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43CC03F7486200A80164 = { + fileRef = CA8E41AF03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43CD03F7486200A80164 = { + fileRef = CA8E41B003F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43CE03F7486200A80164 = { + fileRef = CA8E41B103F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43CF03F7486200A80164 = { + fileRef = CA8E41B203F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43D003F7486200A80164 = { + fileRef = CA8E41B303F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43D103F7486200A80164 = { + fileRef = CA8E41B403F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43D203F7486200A80164 = { + fileRef = CA8E41B503F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43D303F7486200A80164 = { + fileRef = CA8E41B603F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43D403F7486200A80164 = { + fileRef = CA8E41B703F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43D503F7486200A80164 = { + fileRef = CA8E41B803F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43D603F7486200A80164 = { + fileRef = CA8E41B903F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43D703F7486200A80164 = { + fileRef = CA8E41BA03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43D803F7486200A80164 = { + fileRef = CA8E41BB03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43D903F7486200A80164 = { + fileRef = CA8E41BC03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43DA03F7486200A80164 = { + fileRef = CA8E41BD03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43DB03F7486200A80164 = { + fileRef = CA8E41BE03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43DC03F7486200A80164 = { + fileRef = CA8E41BF03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43DD03F7486200A80164 = { + fileRef = CA8E41C003F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43DE03F7486200A80164 = { + fileRef = CA8E41C103F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43DF03F7486200A80164 = { + fileRef = CA8E41C203F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43E003F7486200A80164 = { + fileRef = CA8E41C303F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43E103F7486200A80164 = { + fileRef = CA8E41C403F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43E203F7486200A80164 = { + fileRef = CA8E41C503F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43E303F7486200A80164 = { + fileRef = CA8E41C603F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43E403F7486200A80164 = { + fileRef = CA8E41C703F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43E503F7486200A80164 = { + fileRef = CA8E41C803F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43E603F7486200A80164 = { + fileRef = CA8E41C903F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43E703F7486200A80164 = { + fileRef = CA8E41CA03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43E803F7486200A80164 = { + fileRef = CA8E41CB03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43E903F7486200A80164 = { + fileRef = CA8E41CC03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43EA03F7486200A80164 = { + fileRef = CA8E41CD03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43EB03F7486200A80164 = { + fileRef = CA8E41CE03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43EC03F7486200A80164 = { + fileRef = CA8E41CF03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43ED03F7486200A80164 = { + fileRef = CA8E41D003F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43EE03F7486200A80164 = { + fileRef = CA8E41D103F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43EF03F7486200A80164 = { + fileRef = CA8E41D203F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43F003F7486200A80164 = { + fileRef = CA8E41D303F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43F103F7486200A80164 = { + fileRef = CA8E41D403F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43F203F7486200A80164 = { + fileRef = CA8E41D503F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43F303F7486200A80164 = { + fileRef = CA8E41D603F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43F403F7486200A80164 = { + fileRef = CA8E41D703F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43F503F7486200A80164 = { + fileRef = CA8E41D803F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43F603F7486200A80164 = { + fileRef = CA8E41D903F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43F703F7486200A80164 = { + fileRef = CA8E41DA03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43F803F7486200A80164 = { + fileRef = CA8E41DB03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43F903F7486200A80164 = { + fileRef = CA8E41DC03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43FA03F7486200A80164 = { + fileRef = CA8E41DD03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43FB03F7486200A80164 = { + fileRef = CA8E41DE03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43FC03F7486200A80164 = { + fileRef = CA8E41DF03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43FD03F7486200A80164 = { + fileRef = CA8E41E003F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43FE03F7486200A80164 = { + fileRef = CA8E41E103F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E43FF03F7486200A80164 = { + fileRef = CA8E41E203F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E440003F7486200A80164 = { + fileRef = CA8E41E303F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E440103F7486200A80164 = { + fileRef = CA8E41E403F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E440203F7486200A80164 = { + fileRef = CA8E41E503F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E440303F7486200A80164 = { + fileRef = CA8E41E603F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E440403F7486200A80164 = { + fileRef = CA8E41E703F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E440503F7486200A80164 = { + fileRef = CA8E41E803F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E440603F7486200A80164 = { + fileRef = CA8E41E903F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E440703F7486200A80164 = { + fileRef = CA8E41EA03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E440803F7486200A80164 = { + fileRef = CA8E41EB03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E440903F7486200A80164 = { + fileRef = CA8E41EC03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E440A03F7486200A80164 = { + fileRef = CA8E41ED03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E440B03F7486200A80164 = { + fileRef = CA8E41EE03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E440C03F7486200A80164 = { + fileRef = CA8E41EF03F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E440D03F7486200A80164 = { + fileRef = CA8E41F003F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E440E03F7486200A80164 = { + fileRef = CA8E41F103F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E440F03F7486200A80164 = { + fileRef = CA8E41F203F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E441003F7486200A80164 = { + fileRef = CA8E41F303F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E441103F7486200A80164 = { + fileRef = CA8E41F403F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E441203F7486200A80164 = { + fileRef = CA8E41F503F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E441303F7486200A80164 = { + fileRef = CA8E41F603F7486100A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E441403F7486200A80164 = { + fileRef = CA8E41F703F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E441503F7486200A80164 = { + fileRef = CA8E41F803F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E441603F7486200A80164 = { + fileRef = CA8E41F903F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E441703F7486200A80164 = { + fileRef = CA8E41FA03F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E441803F7486200A80164 = { + fileRef = CA8E41FB03F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E441903F7486200A80164 = { + fileRef = CA8E41FC03F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E441A03F7486200A80164 = { + fileRef = CA8E41FD03F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E441B03F7486200A80164 = { + fileRef = CA8E41FE03F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E441C03F7486200A80164 = { + fileRef = CA8E41FF03F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E441D03F7486200A80164 = { + fileRef = CA8E420003F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E441E03F7486200A80164 = { + fileRef = CA8E420103F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E441F03F7486200A80164 = { + fileRef = CA8E420203F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E442003F7486200A80164 = { + fileRef = CA8E420303F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E442103F7486200A80164 = { + fileRef = CA8E420403F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E442203F7486200A80164 = { + fileRef = CA8E420503F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E442303F7486200A80164 = { + fileRef = CA8E420603F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E442403F7486200A80164 = { + fileRef = CA8E420703F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E442503F7486200A80164 = { + fileRef = CA8E420803F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E442603F7486200A80164 = { + fileRef = CA8E420903F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E442703F7486200A80164 = { + fileRef = CA8E420A03F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E442803F7486200A80164 = { + fileRef = CA8E420B03F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E442903F7486200A80164 = { + fileRef = CA8E420C03F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E442A03F7486200A80164 = { + fileRef = CA8E420D03F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E442B03F7486200A80164 = { + fileRef = CA8E420E03F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E442C03F7486200A80164 = { + fileRef = CA8E420F03F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E442D03F7486200A80164 = { + fileRef = CA8E421003F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E442E03F7486200A80164 = { + fileRef = CA8E421103F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E442F03F7486200A80164 = { + fileRef = CA8E421203F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E443003F7486200A80164 = { + fileRef = CA8E421303F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E443103F7486200A80164 = { + fileRef = CA8E421403F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E443203F7486200A80164 = { + fileRef = CA8E421503F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E443303F7486200A80164 = { + fileRef = CA8E421603F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E443403F7486200A80164 = { + fileRef = CA8E421703F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E443503F7486200A80164 = { + fileRef = CA8E421803F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E443603F7486200A80164 = { + fileRef = CA8E421903F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E443703F7486200A80164 = { + fileRef = CA8E421A03F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E443803F7486200A80164 = { + fileRef = CA8E421B03F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E443903F7486200A80164 = { + fileRef = CA8E421C03F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E443A03F7486200A80164 = { + fileRef = CA8E421D03F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E443B03F7486200A80164 = { + fileRef = CA8E421E03F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E443C03F7486200A80164 = { + fileRef = CA8E421F03F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E443D03F7486200A80164 = { + fileRef = CA8E422003F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E443E03F7486200A80164 = { + fileRef = CA8E422103F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E443F03F7486200A80164 = { + fileRef = CA8E422203F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E444003F7486200A80164 = { + fileRef = CA8E422303F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E444103F7486200A80164 = { + fileRef = CA8E422403F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E444203F7486200A80164 = { + fileRef = CA8E422503F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E444303F7486200A80164 = { + fileRef = CA8E422603F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E444403F7486200A80164 = { + fileRef = CA8E422703F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E444503F7486200A80164 = { + fileRef = CA8E422803F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E444603F7486200A80164 = { + fileRef = CA8E422903F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E444703F7486200A80164 = { + fileRef = CA8E422A03F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E444803F7486200A80164 = { + fileRef = CA8E422B03F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E444903F7486200A80164 = { + fileRef = CA8E422C03F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E444A03F7486200A80164 = { + fileRef = CA8E422D03F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E444B03F7486200A80164 = { + fileRef = CA8E422E03F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E444C03F7486200A80164 = { + fileRef = CA8E422F03F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E444D03F7486200A80164 = { + fileRef = CA8E423003F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E444E03F7486200A80164 = { + fileRef = CA8E423103F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E444F03F7486200A80164 = { + fileRef = CA8E423203F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E445003F7486200A80164 = { + fileRef = CA8E423303F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E445103F7486200A80164 = { + fileRef = CA8E423403F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E445203F7486200A80164 = { + fileRef = CA8E423503F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E445303F7486200A80164 = { + fileRef = CA8E423603F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E445403F7486200A80164 = { + fileRef = CA8E423703F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E445503F7486200A80164 = { + fileRef = CA8E423803F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E445603F7486200A80164 = { + fileRef = CA8E423903F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E445703F7486200A80164 = { + fileRef = CA8E423A03F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E445803F7486200A80164 = { + fileRef = CA8E423B03F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E445903F7486200A80164 = { + fileRef = CA8E423C03F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E445A03F7486200A80164 = { + fileRef = CA8E423D03F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E445B03F7486200A80164 = { + fileRef = CA8E423E03F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E445C03F7486200A80164 = { + fileRef = CA8E423F03F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E445D03F7486200A80164 = { + fileRef = CA8E424003F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E445E03F7486200A80164 = { + fileRef = CA8E424103F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E445F03F7486200A80164 = { + fileRef = CA8E424203F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E446003F7486200A80164 = { + fileRef = CA8E424303F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E446103F7486200A80164 = { + fileRef = CA8E424403F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E446203F7486200A80164 = { + fileRef = CA8E424503F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E446303F7486200A80164 = { + fileRef = CA8E424603F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E446403F7486200A80164 = { + fileRef = CA8E424703F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E446503F7486200A80164 = { + fileRef = CA8E424803F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E446603F7486200A80164 = { + fileRef = CA8E424903F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E446703F7486200A80164 = { + fileRef = CA8E424A03F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E446803F7486200A80164 = { + fileRef = CA8E424B03F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E446903F7486200A80164 = { + fileRef = CA8E424C03F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E446A03F7486200A80164 = { + fileRef = CA8E425103F7486200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E446B03F7489000A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = rubber.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E446C03F7489000A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = rubber.h; + refType = 4; + sourceTree = ""; + }; + CA8E446D03F7489000A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = slideSquares.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E446E03F7489000A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = slideSquares.h; + refType = 4; + sourceTree = ""; + }; + CA8E446F03F7489000A80164 = { + fileRef = CA8E446B03F7489000A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E447003F7489000A80164 = { + fileRef = CA8E446C03F7489000A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E447103F7489000A80164 = { + fileRef = CA8E446D03F7489000A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E447203F7489000A80164 = { + fileRef = CA8E446E03F7489000A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E447303F748C200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_grey.cpp; + refType = 4; + sourceTree = ""; + }; + CA8E447403F748C200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_grey.h; + refType = 4; + sourceTree = ""; + }; + CA8E447503F748C200A80164 = { + fileRef = CA8E447303F748C200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CA8E447603F748C200A80164 = { + fileRef = CA8E447403F748C200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB02BFF040B21AB00A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = polygon_smooth.cpp; + refType = 4; + sourceTree = ""; + }; + CAB02C00040B21AB00A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = polygon_smooth.h; + refType = 4; + sourceTree = ""; + }; + CAB02C01040B21AB00A80164 = { + fileRef = CAB02BFF040B21AB00A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB02C02040B21AB00A80164 = { + fileRef = CAB02C00040B21AB00A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB02C03040B21EA00A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_tIIR.cpp; + refType = 4; + sourceTree = ""; + }; + CAB02C04040B21EA00A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_tIIR.h; + refType = 4; + sourceTree = ""; + }; + CAB02C05040B21EA00A80164 = { + fileRef = CAB02C03040B21EA00A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB02C06040B21EA00A80164 = { + fileRef = CAB02C04040B21EA00A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB02C07040B27D200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GLdefine.cpp; + refType = 4; + sourceTree = ""; + }; + CAB02C08040B27D200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GLdefine.h; + refType = 4; + sourceTree = ""; + }; + CAB02C09040B27D200A80164 = { + fileRef = CAB02C07040B27D200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB02C0A040B27D200A80164 = { + fileRef = CAB02C08040B27D200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB20E320558955600A80164 = { + fileRef = F521B42503898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + CAB20E330558955600A80164 = { + fileRef = F521B42603898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + CAB20E620558C6DC00A80164 = { + isa = PBXFileReference; + lastKnownFileType = archive.ar; + name = libftgl.a; + path = mac/build/libftgl.a; + refType = 4; + sourceTree = ""; + }; + CAB20E630558C6DC00A80164 = { + fileRef = CAB20E620558C6DC00A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB20E640558C71400A80164 = { + fileRef = F521B43A03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + CAB20E650558C71400A80164 = { + fileRef = F521B43B03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + CAB20E680558D39800A80164 = { + isa = PBXFileReference; + lastKnownFileType = archive.ar; + name = libfreetype.a; + path = "../../GemLibs/freetype-2.1.9/objs/.libs/libfreetype.a"; + refType = 2; + sourceTree = SOURCE_ROOT; + }; + CAB20E690558D39800A80164 = { + fileRef = CAB20E680558D39800A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79E3B05577B0B00A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = orb.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E3C05577B0B00A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = orb.h; + refType = 4; + sourceTree = ""; + }; + CAB79E3D05577B0B00A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = orbserial.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E3E05577B0B00A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = orbserial.h; + refType = 4; + sourceTree = ""; + }; + CAB79E4405577C3A00A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = model_loader.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E4505577C3A00A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = model_loader.h; + refType = 4; + sourceTree = ""; + }; + CAB79E4605577C3A00A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = textextruded.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E4705577C3A00A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = textextruded.h; + refType = 4; + sourceTree = ""; + }; + CAB79E4805577C3A00A80164 = { + fileRef = CAB79E4405577C3A00A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79E4905577C3A00A80164 = { + fileRef = CAB79E4505577C3A00A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79E4C05577C6000A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = camera.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E4D05577C6000A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = camera.h; + refType = 4; + sourceTree = ""; + }; + CAB79E4E05577C6000A80164 = { + fileRef = CAB79E4C05577C6000A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79E4F05577C6000A80164 = { + fileRef = CAB79E4D05577C6000A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79E5005577CB200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = papi.h; + path = src/Particles/papi.h; + refType = 2; + sourceTree = SOURCE_ROOT; + }; + CAB79E5105577CB200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = part_info.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E5205577CB200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = part_info.h; + refType = 4; + sourceTree = ""; + }; + CAB79E5305577CB200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = part_render.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E5405577CB200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = part_render.h; + refType = 4; + sourceTree = ""; + }; + CAB79E5605577CB200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = part_velocity.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E5705577CB200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = part_velocity.h; + refType = 4; + sourceTree = ""; + }; + CAB79E5805577CB200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = part_vertex.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E5905577CB200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = part_vertex.h; + refType = 4; + sourceTree = ""; + }; + CAB79E5A05577CB200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = partlib_actionapi.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E5B05577CB200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = partlib_actions.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E5C05577CB200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = partlib_general.h; + refType = 4; + sourceTree = ""; + }; + CAB79E5D05577CB200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = partlib_opengl.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E5E05577CB200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = partlib_system.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E5F05577CB200A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = partlib_vector.h; + refType = 4; + sourceTree = ""; + }; + CAB79E6005577CB200A80164 = { + fileRef = CAB79E5005577CB200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79E6105577CB200A80164 = { + fileRef = CAB79E5105577CB200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79E6205577CB200A80164 = { + fileRef = CAB79E5205577CB200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79E6305577CB200A80164 = { + fileRef = CAB79E5305577CB200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79E6405577CB200A80164 = { + fileRef = CAB79E5405577CB200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79E6605577CB200A80164 = { + fileRef = CAB79E5605577CB200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79E6705577CB200A80164 = { + fileRef = CAB79E5705577CB200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79E6805577CB200A80164 = { + fileRef = CAB79E5805577CB200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79E6905577CB200A80164 = { + fileRef = CAB79E5905577CB200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79E6A05577CB200A80164 = { + fileRef = CAB79E5A05577CB200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79E6B05577CB200A80164 = { + fileRef = CAB79E5B05577CB200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79E6C05577CB200A80164 = { + fileRef = CAB79E5C05577CB200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79E6D05577CB200A80164 = { + fileRef = CAB79E5D05577CB200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79E6E05577CB200A80164 = { + fileRef = CAB79E5E05577CB200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79E6F05577CB200A80164 = { + fileRef = CAB79E5F05577CB200A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79E7005577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = DSgrabber.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E7105577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = DSgrabber.h; + refType = 4; + sourceTree = ""; + }; + CAB79E7205577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = film.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E7305577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = film.h; + refType = 4; + sourceTree = ""; + }; + CAB79E7405577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = filmAVI.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E7505577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = filmAVI.h; + refType = 4; + sourceTree = ""; + }; + CAB79E7605577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = filmAVIPLAY.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E7705577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = filmAVIPLAY.h; + refType = 4; + sourceTree = ""; + }; + CAB79E7805577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = filmDarwin.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E7905577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = filmDarwin.h; + refType = 4; + sourceTree = ""; + }; + CAB79E7A05577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = filmFFMPEG.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E7B05577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = filmFFMPEG.h; + refType = 4; + sourceTree = ""; + }; + CAB79E7C05577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = filmMPEG1.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E7D05577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = filmMPEG1.h; + refType = 4; + sourceTree = ""; + }; + CAB79E7E05577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = filmMPEG3.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E7F05577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = filmMPEG3.h; + refType = 4; + sourceTree = ""; + }; + CAB79E8005577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = filmQT.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E8105577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = filmQT.h; + refType = 4; + sourceTree = ""; + }; + CAB79E8205577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = filmQT4L.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E8305577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = filmQT4L.h; + refType = 4; + sourceTree = ""; + }; + CAB79E8405577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_backlight.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E8505577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_backlight.h; + refType = 4; + sourceTree = ""; + }; + CAB79E8605577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_biquad.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E8705577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_biquad.h; + refType = 4; + sourceTree = ""; + }; + CAB79E8805577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_buffer_read.h; + refType = 4; + sourceTree = ""; + }; + CAB79E8905577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_buffer_write.h; + refType = 4; + sourceTree = ""; + }; + CAB79E8A05577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_buffer.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E8B05577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_buffer.h; + refType = 4; + sourceTree = ""; + }; + CAB79E8C05577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_colorreduce.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E8D05577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_colorreduce.h; + refType = 4; + sourceTree = ""; + }; + CAB79E8E05577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_compare.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E8F05577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_compare.h; + refType = 4; + sourceTree = ""; + }; + CAB79E9005577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_convert.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E9105577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_convert.h; + refType = 4; + sourceTree = ""; + }; + CAB79E9205577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_crop.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E9305577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_crop.h; + refType = 4; + sourceTree = ""; + }; + CAB79E9405577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_delay.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E9505577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_delay.h; + refType = 4; + sourceTree = ""; + }; + CAB79E9805577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_duotone.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E9905577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_duotone.h; + refType = 4; + sourceTree = ""; + }; + CAB79E9A05577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_emboss.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E9B05577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_emboss.h; + refType = 4; + sourceTree = ""; + }; + CAB79E9C05577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_filmFFMPEG.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E9D05577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_filmFFMPEG.h; + refType = 4; + sourceTree = ""; + }; + CAB79E9E05577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_filmNEW.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79E9F05577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_filmNEW.h; + refType = 4; + sourceTree = ""; + }; + CAB79EA005577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_filmQT.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79EA105577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_filmQT.h; + refType = 4; + sourceTree = ""; + }; + CAB79EA305577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_halftone.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79EA405577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_halftone.h; + refType = 4; + sourceTree = ""; + }; + CAB79EA505577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_kaleidoscope.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79EA605577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_kaleidoscope.h; + refType = 4; + sourceTree = ""; + }; + CAB79EA705577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_levels.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79EA805577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_levels.h; + refType = 4; + sourceTree = ""; + }; + CAB79EA905577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_lumaoffset.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79EAA05577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_lumaoffset.h; + refType = 4; + sourceTree = ""; + }; + CAB79EAB05577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_metaimage.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79EAC05577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_metaimage.h; + refType = 4; + sourceTree = ""; + }; + CAB79EAD05577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_motionblur.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79EAE05577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_motionblur.h; + refType = 4; + sourceTree = ""; + }; + CAB79EAF05577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_movement.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79EB005577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_movement.h; + refType = 4; + sourceTree = ""; + }; + CAB79EB105577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_movieNEW.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79EB205577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_movieNEW.h; + refType = 4; + sourceTree = ""; + }; + CAB79EB305577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_posterize.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79EB405577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_posterize.h; + refType = 4; + sourceTree = ""; + }; + CAB79EB605577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_rds.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79EB705577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_rds.h; + refType = 4; + sourceTree = ""; + }; + CAB79EB805577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_refraction.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79EB905577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_refraction.h; + refType = 4; + sourceTree = ""; + }; + CAB79EBA05577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_roll.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79EBB05577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_roll.h; + refType = 4; + sourceTree = ""; + }; + CAB79EBC05577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_rtx.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79EBD05577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_rtx.h; + refType = 4; + sourceTree = ""; + }; + CAB79EBE05577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_scanline.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79EBF05577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_scanline.h; + refType = 4; + sourceTree = ""; + }; + CAB79EC005577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_snap2tex.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79EC105577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_snap2tex.h; + refType = 4; + sourceTree = ""; + }; + CAB79EC205577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_videoDS.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79EC305577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_videoDS.h; + refType = 4; + sourceTree = ""; + }; + CAB79EC405577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_videoNEW.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79EC505577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_videoNEW.h; + refType = 4; + sourceTree = ""; + }; + CAB79EC605577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = video.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79EC705577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = video.h; + refType = 4; + sourceTree = ""; + }; + CAB79EC805577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = videoDV4L.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79EC905577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = videoDV4L.h; + refType = 4; + sourceTree = ""; + }; + CAB79ECA05577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = videoV4L.cpp; + refType = 4; + sourceTree = ""; + }; + CAB79ECB05577D4700A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = videoV4L.h; + refType = 4; + sourceTree = ""; + }; + CAB79EE005577D4700A80164 = { + fileRef = CAB79E8405577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79EE105577D4700A80164 = { + fileRef = CAB79E8505577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79EE205577D4700A80164 = { + fileRef = CAB79E8605577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79EE305577D4700A80164 = { + fileRef = CAB79E8705577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79EE405577D4700A80164 = { + fileRef = CAB79E8805577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79EE505577D4700A80164 = { + fileRef = CAB79E8905577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79EE605577D4700A80164 = { + fileRef = CAB79E8A05577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79EE705577D4700A80164 = { + fileRef = CAB79E8B05577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79EE805577D4700A80164 = { + fileRef = CAB79E8C05577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79EE905577D4700A80164 = { + fileRef = CAB79E8D05577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79EEA05577D4700A80164 = { + fileRef = CAB79E8E05577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79EEB05577D4700A80164 = { + fileRef = CAB79E8F05577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79EEC05577D4700A80164 = { + fileRef = CAB79E9005577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79EED05577D4700A80164 = { + fileRef = CAB79E9105577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79EEE05577D4700A80164 = { + fileRef = CAB79E9205577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79EEF05577D4700A80164 = { + fileRef = CAB79E9305577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79EF005577D4700A80164 = { + fileRef = CAB79E9405577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79EF105577D4700A80164 = { + fileRef = CAB79E9505577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79EF405577D4700A80164 = { + fileRef = CAB79E9805577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79EF505577D4700A80164 = { + fileRef = CAB79E9905577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79EF605577D4700A80164 = { + fileRef = CAB79E9A05577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79EF705577D4700A80164 = { + fileRef = CAB79E9B05577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79EFF05577D4700A80164 = { + fileRef = CAB79EA305577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79F0005577D4700A80164 = { + fileRef = CAB79EA405577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79F0105577D4700A80164 = { + fileRef = CAB79EA505577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79F0205577D4700A80164 = { + fileRef = CAB79EA605577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79F0305577D4700A80164 = { + fileRef = CAB79EA705577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79F0405577D4700A80164 = { + fileRef = CAB79EA805577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79F0505577D4700A80164 = { + fileRef = CAB79EA905577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79F0605577D4700A80164 = { + fileRef = CAB79EAA05577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79F0705577D4700A80164 = { + fileRef = CAB79EAB05577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79F0805577D4700A80164 = { + fileRef = CAB79EAC05577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79F0905577D4700A80164 = { + fileRef = CAB79EAD05577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79F0A05577D4700A80164 = { + fileRef = CAB79EAE05577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79F0B05577D4700A80164 = { + fileRef = CAB79EAF05577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79F0C05577D4700A80164 = { + fileRef = CAB79EB005577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79F0F05577D4700A80164 = { + fileRef = CAB79EB305577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79F1005577D4700A80164 = { + fileRef = CAB79EB405577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79F1205577D4700A80164 = { + fileRef = CAB79EB605577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79F1305577D4700A80164 = { + fileRef = CAB79EB705577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79F1405577D4700A80164 = { + fileRef = CAB79EB805577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79F1505577D4700A80164 = { + fileRef = CAB79EB905577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79F1605577D4700A80164 = { + fileRef = CAB79EBA05577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79F1705577D4700A80164 = { + fileRef = CAB79EBB05577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79F1805577D4700A80164 = { + fileRef = CAB79EBC05577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79F1905577D4700A80164 = { + fileRef = CAB79EBD05577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79F1A05577D4700A80164 = { + fileRef = CAB79EBE05577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79F1B05577D4700A80164 = { + fileRef = CAB79EBF05577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79F1C05577D4700A80164 = { + fileRef = CAB79EC005577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAB79F1D05577D4700A80164 = { + fileRef = CAB79EC105577D4700A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CABA04AB0405EB4D00A80164 = { + fileEncoding = 4; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_chroma_key.h; + refType = 4; + sourceTree = ""; + }; + CABA04AC0405EB4D00A80164 = { + fileEncoding = 4; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_chroma_key.cpp; + refType = 4; + sourceTree = ""; + }; + CABA04AD0405EB4D00A80164 = { + fileRef = CABA04AB0405EB4D00A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CABA04AE0405EB4D00A80164 = { + fileRef = CABA04AC0405EB4D00A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CACE9BA703FA2DB400A80164 = { + fileEncoding = 4; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_mix.h; + refType = 4; + sourceTree = ""; + }; + CACE9BA803FA2DB400A80164 = { + fileEncoding = 4; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_mix.cpp; + refType = 4; + sourceTree = ""; + }; + CACE9BA903FA2DB400A80164 = { + fileRef = CACE9BA703FA2DB400A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CACE9BAA03FA2DB400A80164 = { + fileRef = CACE9BA803FA2DB400A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CACE9BAB03FB6BC900A80164 = { + fileEncoding = 4; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_background.h; + refType = 4; + sourceTree = ""; + }; + CACE9BAC03FB6BC900A80164 = { + fileEncoding = 4; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_background.cpp; + refType = 4; + sourceTree = ""; + }; + CACE9BAD03FB6BC900A80164 = { + fileRef = CACE9BAB03FB6BC900A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CACE9BAE03FB6BC900A80164 = { + fileRef = CACE9BAC03FB6BC900A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAD1CCA603F37FD400A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = ripple.cpp; + refType = 4; + sourceTree = ""; + }; + CAD1CCA703F37FD400A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ripple.h; + refType = 4; + sourceTree = ""; + }; + CAD1CCA803F37FD400A80164 = { + fileRef = CAD1CCA603F37FD400A80164; + isa = PBXBuildFile; + settings = { + }; + }; + CAD1CCA903F37FD400A80164 = { + fileRef = CAD1CCA703F37FD400A80164; + isa = PBXBuildFile; + settings = { + }; + }; +//CA0 +//CA1 +//CA2 +//CA3 +//CA4 +//F50 +//F51 +//F52 +//F53 +//F54 + F521B3F503898A4A019165F0 = { + children = ( + F521B40103898BAC019165F0, + F521B40203898BB7019165F0, + F521B40003898A71019165F0, + F5BDD20A0389F0EC0175848A, + ); + comments = "this is the project for the current CVS of GEM"; + isa = PBXGroup; + refType = 4; + sourceTree = ""; + }; + F521B3F703898A4A019165F0 = { + buildSettings = { + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + ZERO_LINK = YES; + }; + isa = PBXBuildStyle; + name = Development; + }; + F521B3F803898A4A019165F0 = { + buildSettings = { + COPY_PHASE_STRIP = YES; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + OPTIMIZATION_CFLAGS = "\U0001-O3"; + ZERO_LINK = NO; + }; + isa = PBXBuildStyle; + name = Deployment; + }; + F521B3F903898A4A019165F0 = { + buildSettings = { + MACOSX_DEPLOYMENT_TARGET = 10.2; + SDKROOT = /Developer/SDKs/MacOSX10.2.8.sdk; + }; + buildStyles = ( + F521B3F703898A4A019165F0, + F521B3F803898A4A019165F0, + ); + hasScannedForEncodings = 1; + isa = PBXProject; + mainGroup = F521B3F503898A4A019165F0; + productRefGroup = F521B40003898A71019165F0; + projectDirPath = ""; + targets = ( + F521B3FE03898A71019165F0, + ); + }; + F521B3FA03898A71019165F0 = { + buildActionMask = 2147483647; + files = ( + F521B5AC03898BE3019165F0, + F521B5AE03898BE3019165F0, + F521B5B003898BE3019165F0, + F521B5B203898BE3019165F0, + F521B5B403898BE3019165F0, + F521B5B503898BE3019165F0, + F521B5B703898BE3019165F0, + F521B5B903898BE3019165F0, + F521B5BB03898BE3019165F0, + F521B5BF03898BE3019165F0, + F521B5C103898BE3019165F0, + F521B5C303898BE3019165F0, + F521B5C503898BE3019165F0, + F521B5C703898BE3019165F0, + F521B5C903898BE3019165F0, + F521B5CD03898BE3019165F0, + F521B5CF03898BE3019165F0, + F521B5D203898BE3019165F0, + F521B5D403898BE3019165F0, + F521B5D503898BE3019165F0, + F521B5D603898BE3019165F0, + F521B5DB03898BE3019165F0, + F521B5DD03898BE3019165F0, + F521B5E103898BE3019165F0, + F521B5E303898BE3019165F0, + F521B5E503898BE3019165F0, + F521B5E703898BE3019165F0, + F521B5EF03898BE3019165F0, + F521B5F103898BE3019165F0, + F521B5F303898BE3019165F0, + F521B5F503898BE3019165F0, + F521B5F703898BE3019165F0, + F521B5F903898BE3019165F0, + F521B5FB03898BE3019165F0, + F521B5FD03898BE3019165F0, + F521B5FF03898BE3019165F0, + F521B60103898BE3019165F0, + F521B60303898BE3019165F0, + F521B60503898BE3019165F0, + F521B60703898BE3019165F0, + F521B60903898BE3019165F0, + F521B60B03898BE3019165F0, + F521B60D03898BE3019165F0, + F521B60F03898BE3019165F0, + F521B61103898BE3019165F0, + F521B61303898BE3019165F0, + F521B61C03898BE3019165F0, + F521B61E03898BE3019165F0, + F521B62003898BE3019165F0, + F521B62203898BE3019165F0, + F521B62403898BE3019165F0, + F521B62603898BE3019165F0, + F521B62803898BE3019165F0, + F521B62A03898BE3019165F0, + F521B62C03898BE3019165F0, + F521B62E03898BE3019165F0, + F521B63003898BE3019165F0, + F521B63203898BE3019165F0, + F521B63403898BE3019165F0, + F521B63603898BE3019165F0, + F521B63803898BE3019165F0, + F521B63A03898BE3019165F0, + F521B63C03898BE3019165F0, + F521B63E03898BE3019165F0, + F521B64003898BE3019165F0, + F521B64203898BE3019165F0, + F521B64403898BE3019165F0, + F521B64603898BE3019165F0, + F521B64803898BE3019165F0, + F521B64A03898BE3019165F0, + F521B64C03898BE3019165F0, + F521B65A03898BE3019165F0, + F521B65C03898BE3019165F0, + F521B65E03898BE3019165F0, + F521B66003898BE3019165F0, + F521B66203898BE3019165F0, + F521B66403898BE3019165F0, + F521B66603898BE3019165F0, + F521B66803898BE3019165F0, + F521B66A03898BE3019165F0, + F521B66C03898BE3019165F0, + F521B66E03898BE3019165F0, + F521B67003898BE3019165F0, + F521B67203898BE3019165F0, + F521B67403898BE3019165F0, + F521B67603898BE3019165F0, + F521B67803898BE3019165F0, + F521B67A03898BE3019165F0, + F521B67C03898BE3019165F0, + F521B67E03898BE3019165F0, + F521B68003898BE3019165F0, + F521B68203898BE3019165F0, + F521B68403898BE3019165F0, + F521B68603898BE3019165F0, + F521B68803898BE3019165F0, + F521B68A03898BE3019165F0, + F521B68C03898BE3019165F0, + F521B68E03898BE3019165F0, + F521B69003898BE3019165F0, + F521B69203898BE3019165F0, + F521B69403898BE3019165F0, + F521B69603898BE3019165F0, + F521B69803898BE3019165F0, + F521B69A03898BE3019165F0, + F521B69C03898BE3019165F0, + F521B69E03898BE3019165F0, + F521B6A003898BE3019165F0, + F521B6A203898BE3019165F0, + F521B6A403898BE3019165F0, + F521B6A603898BE3019165F0, + F521B6AA03898BE3019165F0, + F521B6AE03898BE3019165F0, + F521B6B403898BE3019165F0, + F521B6B603898BE3019165F0, + F521B6BA03898BE3019165F0, + F521B6BC03898BE3019165F0, + F521B6BE03898BE3019165F0, + F521B6C003898BE3019165F0, + F521B6C203898BE3019165F0, + F521B6C603898BE3019165F0, + F521B6C803898BE3019165F0, + F521B6CC03898BE3019165F0, + F521B6CE03898BE3019165F0, + F521B6D003898BE3019165F0, + F521B6D203898BE3019165F0, + F521B6D403898BE3019165F0, + F521B6D603898BE3019165F0, + F521B6D803898BE3019165F0, + F521B6DA03898BE3019165F0, + F521B6DC03898BE3019165F0, + F521B6DE03898BE3019165F0, + F521B6E003898BE3019165F0, + F521B6E203898BE3019165F0, + F521B6E403898BE3019165F0, + F521B6E603898BE3019165F0, + F521B6E803898BE3019165F0, + F521B6EA03898BE3019165F0, + F521B6EC03898BE3019165F0, + F521B6EE03898BE3019165F0, + F521B6F203898BE3019165F0, + F521B6F403898BE3019165F0, + F521B6F603898BE3019165F0, + F521B6FE03898BE3019165F0, + F521B70003898BE3019165F0, + F5D2CF770389DD7201AC9AE7, + F5675F1B03E336E101A80164, + F5675F2A03E3386E01A80164, + CA71244803ECF98E00A80164, + CAD1CCA903F37FD400A80164, + CA8E425303F7486200A80164, + CA8E425503F7486200A80164, + CA8E425703F7486200A80164, + CA8E425903F7486200A80164, + CA8E425B03F7486200A80164, + CA8E425D03F7486200A80164, + CA8E425F03F7486200A80164, + CA8E426103F7486200A80164, + CA8E426303F7486200A80164, + CA8E426503F7486200A80164, + CA8E426703F7486200A80164, + CA8E426903F7486200A80164, + CA8E426B03F7486200A80164, + CA8E426D03F7486200A80164, + CA8E426F03F7486200A80164, + CA8E427103F7486200A80164, + CA8E427303F7486200A80164, + CA8E427503F7486200A80164, + CA8E427703F7486200A80164, + CA8E427903F7486200A80164, + CA8E427B03F7486200A80164, + CA8E427D03F7486200A80164, + CA8E427F03F7486200A80164, + CA8E428103F7486200A80164, + CA8E428303F7486200A80164, + CA8E428503F7486200A80164, + CA8E428703F7486200A80164, + CA8E428903F7486200A80164, + CA8E428B03F7486200A80164, + CA8E428D03F7486200A80164, + CA8E428F03F7486200A80164, + CA8E429103F7486200A80164, + CA8E429303F7486200A80164, + CA8E429503F7486200A80164, + CA8E429703F7486200A80164, + CA8E429903F7486200A80164, + CA8E429B03F7486200A80164, + CA8E429D03F7486200A80164, + CA8E429F03F7486200A80164, + CA8E42A103F7486200A80164, + CA8E42A303F7486200A80164, + CA8E42A503F7486200A80164, + CA8E42A703F7486200A80164, + CA8E42A903F7486200A80164, + CA8E42AB03F7486200A80164, + CA8E42AD03F7486200A80164, + CA8E42AF03F7486200A80164, + CA8E42B103F7486200A80164, + CA8E42B303F7486200A80164, + CA8E42B503F7486200A80164, + CA8E42B703F7486200A80164, + CA8E42B903F7486200A80164, + CA8E42BB03F7486200A80164, + CA8E42BD03F7486200A80164, + CA8E42BF03F7486200A80164, + CA8E42C103F7486200A80164, + CA8E42C303F7486200A80164, + CA8E42C503F7486200A80164, + CA8E42C703F7486200A80164, + CA8E42C903F7486200A80164, + CA8E42CB03F7486200A80164, + CA8E42CD03F7486200A80164, + CA8E42CF03F7486200A80164, + CA8E42D103F7486200A80164, + CA8E42D303F7486200A80164, + CA8E42D503F7486200A80164, + CA8E42D703F7486200A80164, + CA8E42D903F7486200A80164, + CA8E42DB03F7486200A80164, + CA8E42DD03F7486200A80164, + CA8E42DF03F7486200A80164, + CA8E42E103F7486200A80164, + CA8E42E303F7486200A80164, + CA8E42E503F7486200A80164, + CA8E42E703F7486200A80164, + CA8E42E903F7486200A80164, + CA8E42EB03F7486200A80164, + CA8E42ED03F7486200A80164, + CA8E42EF03F7486200A80164, + CA8E42F103F7486200A80164, + CA8E42F303F7486200A80164, + CA8E42F503F7486200A80164, + CA8E42F703F7486200A80164, + CA8E42F903F7486200A80164, + CA8E42FB03F7486200A80164, + CA8E42FD03F7486200A80164, + CA8E42FF03F7486200A80164, + CA8E430103F7486200A80164, + CA8E430303F7486200A80164, + CA8E430503F7486200A80164, + CA8E430703F7486200A80164, + CA8E430903F7486200A80164, + CA8E430B03F7486200A80164, + CA8E430D03F7486200A80164, + CA8E430F03F7486200A80164, + CA8E431103F7486200A80164, + CA8E431303F7486200A80164, + CA8E431503F7486200A80164, + CA8E431703F7486200A80164, + CA8E431903F7486200A80164, + CA8E431B03F7486200A80164, + CA8E431D03F7486200A80164, + CA8E431F03F7486200A80164, + CA8E432103F7486200A80164, + CA8E432303F7486200A80164, + CA8E432503F7486200A80164, + CA8E432703F7486200A80164, + CA8E432903F7486200A80164, + CA8E432B03F7486200A80164, + CA8E432D03F7486200A80164, + CA8E432F03F7486200A80164, + CA8E433103F7486200A80164, + CA8E433303F7486200A80164, + CA8E433503F7486200A80164, + CA8E433703F7486200A80164, + CA8E433903F7486200A80164, + CA8E433B03F7486200A80164, + CA8E433D03F7486200A80164, + CA8E433F03F7486200A80164, + CA8E434103F7486200A80164, + CA8E434303F7486200A80164, + CA8E434503F7486200A80164, + CA8E434703F7486200A80164, + CA8E434903F7486200A80164, + CA8E434B03F7486200A80164, + CA8E434D03F7486200A80164, + CA8E434F03F7486200A80164, + CA8E435103F7486200A80164, + CA8E435303F7486200A80164, + CA8E435503F7486200A80164, + CA8E435703F7486200A80164, + CA8E435903F7486200A80164, + CA8E435B03F7486200A80164, + CA8E435D03F7486200A80164, + CA8E435F03F7486200A80164, + CA8E436103F7486200A80164, + CA8E436303F7486200A80164, + CA8E436503F7486200A80164, + CA8E436703F7486200A80164, + CA8E436903F7486200A80164, + CA8E436B03F7486200A80164, + CA8E436D03F7486200A80164, + CA8E436F03F7486200A80164, + CA8E437103F7486200A80164, + CA8E437303F7486200A80164, + CA8E437503F7486200A80164, + CA8E437703F7486200A80164, + CA8E437903F7486200A80164, + CA8E437B03F7486200A80164, + CA8E437D03F7486200A80164, + CA8E437F03F7486200A80164, + CA8E438103F7486200A80164, + CA8E438303F7486200A80164, + CA8E438503F7486200A80164, + CA8E438703F7486200A80164, + CA8E438903F7486200A80164, + CA8E438B03F7486200A80164, + CA8E438D03F7486200A80164, + CA8E438F03F7486200A80164, + CA8E439103F7486200A80164, + CA8E439303F7486200A80164, + CA8E439503F7486200A80164, + CA8E439703F7486200A80164, + CA8E439903F7486200A80164, + CA8E439B03F7486200A80164, + CA8E439D03F7486200A80164, + CA8E439F03F7486200A80164, + CA8E43A103F7486200A80164, + CA8E43A303F7486200A80164, + CA8E43A503F7486200A80164, + CA8E43A703F7486200A80164, + CA8E43A903F7486200A80164, + CA8E43AB03F7486200A80164, + CA8E43AD03F7486200A80164, + CA8E43AF03F7486200A80164, + CA8E43B103F7486200A80164, + CA8E43B303F7486200A80164, + CA8E43B503F7486200A80164, + CA8E43B703F7486200A80164, + CA8E43B903F7486200A80164, + CA8E43BB03F7486200A80164, + CA8E43BD03F7486200A80164, + CA8E43BF03F7486200A80164, + CA8E43C103F7486200A80164, + CA8E43C303F7486200A80164, + CA8E43C503F7486200A80164, + CA8E43C703F7486200A80164, + CA8E43C903F7486200A80164, + CA8E43CB03F7486200A80164, + CA8E43CD03F7486200A80164, + CA8E43CF03F7486200A80164, + CA8E43D103F7486200A80164, + CA8E43D303F7486200A80164, + CA8E43D503F7486200A80164, + CA8E43D703F7486200A80164, + CA8E43D903F7486200A80164, + CA8E43DB03F7486200A80164, + CA8E43DD03F7486200A80164, + CA8E43DF03F7486200A80164, + CA8E43E103F7486200A80164, + CA8E43E303F7486200A80164, + CA8E43E503F7486200A80164, + CA8E43E703F7486200A80164, + CA8E43E903F7486200A80164, + CA8E43EB03F7486200A80164, + CA8E43ED03F7486200A80164, + CA8E43EF03F7486200A80164, + CA8E43F103F7486200A80164, + CA8E43F303F7486200A80164, + CA8E43F503F7486200A80164, + CA8E43F703F7486200A80164, + CA8E43F903F7486200A80164, + CA8E43FB03F7486200A80164, + CA8E43FD03F7486200A80164, + CA8E43FF03F7486200A80164, + CA8E440103F7486200A80164, + CA8E440303F7486200A80164, + CA8E440503F7486200A80164, + CA8E440703F7486200A80164, + CA8E440903F7486200A80164, + CA8E440B03F7486200A80164, + CA8E440D03F7486200A80164, + CA8E440F03F7486200A80164, + CA8E441103F7486200A80164, + CA8E441303F7486200A80164, + CA8E441503F7486200A80164, + CA8E441703F7486200A80164, + CA8E441903F7486200A80164, + CA8E441B03F7486200A80164, + CA8E441D03F7486200A80164, + CA8E441F03F7486200A80164, + CA8E442103F7486200A80164, + CA8E442303F7486200A80164, + CA8E442503F7486200A80164, + CA8E442703F7486200A80164, + CA8E442903F7486200A80164, + CA8E442B03F7486200A80164, + CA8E442D03F7486200A80164, + CA8E442F03F7486200A80164, + CA8E443103F7486200A80164, + CA8E443303F7486200A80164, + CA8E443503F7486200A80164, + CA8E443703F7486200A80164, + CA8E443903F7486200A80164, + CA8E443B03F7486200A80164, + CA8E443D03F7486200A80164, + CA8E443F03F7486200A80164, + CA8E444103F7486200A80164, + CA8E444303F7486200A80164, + CA8E444503F7486200A80164, + CA8E444703F7486200A80164, + CA8E444903F7486200A80164, + CA8E444B03F7486200A80164, + CA8E444D03F7486200A80164, + CA8E444F03F7486200A80164, + CA8E445103F7486200A80164, + CA8E445303F7486200A80164, + CA8E445503F7486200A80164, + CA8E445703F7486200A80164, + CA8E445903F7486200A80164, + CA8E445B03F7486200A80164, + CA8E445D03F7486200A80164, + CA8E445F03F7486200A80164, + CA8E446103F7486200A80164, + CA8E446303F7486200A80164, + CA8E446503F7486200A80164, + CA8E446703F7486200A80164, + CA8E446903F7486200A80164, + CA8E446A03F7486200A80164, + CA8E447003F7489000A80164, + CA8E447203F7489000A80164, + CA8E447603F748C200A80164, + CACE9BA903FA2DB400A80164, + CACE9BAD03FB6BC900A80164, + CABA04AD0405EB4D00A80164, + CAB02C02040B21AB00A80164, + CAB02C06040B21EA00A80164, + CAB02C0A040B27D200A80164, + CAB79E4905577C3A00A80164, + CAB79E4F05577C6000A80164, + CAB79E6005577CB200A80164, + CAB79E6205577CB200A80164, + CAB79E6405577CB200A80164, + CAB79E6705577CB200A80164, + CAB79E6905577CB200A80164, + CAB79E6C05577CB200A80164, + CAB79E6F05577CB200A80164, + CAB79EE105577D4700A80164, + CAB79EE305577D4700A80164, + CAB79EE405577D4700A80164, + CAB79EE505577D4700A80164, + CAB79EE705577D4700A80164, + CAB79EE905577D4700A80164, + CAB79EEB05577D4700A80164, + CAB79EED05577D4700A80164, + CAB79EEF05577D4700A80164, + CAB79EF105577D4700A80164, + CAB79EF505577D4700A80164, + CAB79EF705577D4700A80164, + CAB79F0005577D4700A80164, + CAB79F0205577D4700A80164, + CAB79F0405577D4700A80164, + CAB79F0605577D4700A80164, + CAB79F0805577D4700A80164, + CAB79F0A05577D4700A80164, + CAB79F0C05577D4700A80164, + CAB79F1005577D4700A80164, + CAB79F1305577D4700A80164, + CAB79F1505577D4700A80164, + CAB79F1705577D4700A80164, + CAB79F1905577D4700A80164, + CAB79F1B05577D4700A80164, + CAB79F1D05577D4700A80164, + CAB20E330558955600A80164, + CAB20E650558C71400A80164, + CA6D36900558D47300A80164, + CA6D36910558D47300A80164, + CA6D36920558D47300A80164, + CA6D36930558D47300A80164, + CA6D36940558D47300A80164, + CA6D36950558D47300A80164, + CA6D36960558D47300A80164, + CA6D36970558D47300A80164, + CA6D36980558D47300A80164, + CA6D36990558D47300A80164, + CA6D369A0558D47300A80164, + CA6D369B0558D47300A80164, + CA6D369C0558D47300A80164, + CA6D369D0558D47300A80164, + CA6D369E0558D47300A80164, + CA6D369F0558D47300A80164, + CA6D36A00558D47300A80164, + CA6D36A10558D47300A80164, + CA6D36A20558D47300A80164, + CA6D36A30558D47300A80164, + CA6D36A40558D47300A80164, + CA6D36A50558D47300A80164, + CA6D36A60558D47300A80164, + CA6D36A70558D47300A80164, + CA6D36A80558D47300A80164, + CA6D36A90558D47300A80164, + CA6D36AA0558D47300A80164, + CA6D373D0558D4F200A80164, + CA6D373E0558D4F200A80164, + CA6D373F0558D4F200A80164, + CA6D37400558D4F200A80164, + CA6D37410558D4F200A80164, + CA6D37420558D4F200A80164, + CA6D37440558D4F200A80164, + CA6D37450558D4F200A80164, + CA6D37460558D4F200A80164, + CA6D37470558D4F200A80164, + CA6D37480558D4F200A80164, + CA6D37490558D4F200A80164, + CA6D374A0558D4F200A80164, + CA6D374B0558D4F200A80164, + CA6D374C0558D4F200A80164, + CA6D374D0558D4F200A80164, + CA6D374E0558D4F200A80164, + CA6D374F0558D4F200A80164, + CA6D37500558D4F200A80164, + CA6D37510558D4F200A80164, + CA6D37520558D4F200A80164, + CA6D37530558D4F200A80164, + CA6D37540558D4F200A80164, + CA6D37550558D4F200A80164, + CA6D37560558D4F200A80164, + CA6D37570558D4F200A80164, + CA6D37590558D4F200A80164, + CA6D375A0558D4F200A80164, + CA6D375B0558D4F200A80164, + CA6D375C0558D4F200A80164, + CA6D375D0558D4F200A80164, + CA6D375F0558D4F200A80164, + CA6D37600558D4F200A80164, + CA6D37610558D4F200A80164, + CA6D37620558D4F200A80164, + CA6D37630558D4F200A80164, + CA6D37640558D4F200A80164, + CA6D37650558D4F200A80164, + CA6D37660558D4F200A80164, + CA6D376A0558D4F200A80164, + CA6D376C0558D4F200A80164, + CA6D376D0558D4F200A80164, + CA6D376F0558D4F200A80164, + CA6D37710558D4F200A80164, + CA6D37730558D4F200A80164, + CA6D37740558D4F200A80164, + CA6D37750558D4F200A80164, + CA6D37760558D4F200A80164, + CA6D37770558D4F200A80164, + CA6D37790558D4F200A80164, + CA6D377A0558D4F200A80164, + CA6D377C0558D4F200A80164, + CA6D377D0558D4F200A80164, + CA6D377F0558D4F200A80164, + CA6D37800558D4F200A80164, + CA6D37810558D4F200A80164, + CA6D37820558D4F200A80164, + CA6D37830558D4F200A80164, + CA6D37840558D4F200A80164, + CA6D3795055CD0F700A80164, + CA6D37B9055F103500A80164, + CA6D37BB055F103600A80164, + CA6D37BD055F103700A80164, + CA6D37BF055F103900A80164, + CA6D37C1055F11DF00A80164, + 3A276ED3056B63C500A80785, + 3A276ED7056B63EE00A80785, + 3ADDEE1D061860A600A80785, + FD926285075D4BFD003B49DD, + FD926287075D4BFD003B49DD, + FD926288075D4BFD003B49DD, + FD926289075D4BFD003B49DD, + FD926290075D4C12003B49DD, + FD926292075D4C12003B49DD, + FD92629A075D4C4C003B49DD, + ); + isa = PBXHeadersBuildPhase; + runOnlyForDeploymentPostprocessing = 0; + }; + F521B3FB03898A71019165F0 = { + buildActionMask = 2147483647; + files = ( + F521B5AB03898BE3019165F0, + F521B5AD03898BE3019165F0, + F521B5AF03898BE3019165F0, + F521B5B103898BE3019165F0, + F521B5B303898BE3019165F0, + F521B5B603898BE3019165F0, + F521B5B803898BE3019165F0, + F521B5BA03898BE3019165F0, + F521B5BE03898BE3019165F0, + F521B5C003898BE3019165F0, + F521B5C203898BE3019165F0, + F521B5C403898BE3019165F0, + F521B5C603898BE3019165F0, + F521B5C803898BE3019165F0, + F521B5CC03898BE3019165F0, + F521B5CE03898BE3019165F0, + F521B5D003898BE3019165F0, + F521B5D103898BE3019165F0, + F521B5D303898BE3019165F0, + F521B5D703898BE3019165F0, + F521B5DA03898BE3019165F0, + F521B5DC03898BE3019165F0, + CAB20E640558C71400A80164, + F521B5E003898BE3019165F0, + F521B5E203898BE3019165F0, + F521B5E403898BE3019165F0, + F521B5E603898BE3019165F0, + F521B5EE03898BE3019165F0, + F521B5F003898BE3019165F0, + F521B5F203898BE3019165F0, + F521B5F403898BE3019165F0, + F521B5F603898BE3019165F0, + F521B5F803898BE3019165F0, + F521B5FA03898BE3019165F0, + F521B5FC03898BE3019165F0, + F521B5FE03898BE3019165F0, + F521B60003898BE3019165F0, + F521B60203898BE3019165F0, + F521B60403898BE3019165F0, + F521B60603898BE3019165F0, + F521B60803898BE3019165F0, + F521B60A03898BE3019165F0, + F521B60C03898BE3019165F0, + F521B60E03898BE3019165F0, + F521B61003898BE3019165F0, + F521B61203898BE3019165F0, + F521B61B03898BE3019165F0, + F521B61D03898BE3019165F0, + F521B61F03898BE3019165F0, + F521B62103898BE3019165F0, + F521B62303898BE3019165F0, + F521B62503898BE3019165F0, + F521B62703898BE3019165F0, + F521B62903898BE3019165F0, + F521B62B03898BE3019165F0, + F521B62D03898BE3019165F0, + F521B62F03898BE3019165F0, + F521B63103898BE3019165F0, + F521B63303898BE3019165F0, + F521B63503898BE3019165F0, + F521B63703898BE3019165F0, + F521B63903898BE3019165F0, + F521B63B03898BE3019165F0, + F521B63D03898BE3019165F0, + F521B63F03898BE3019165F0, + F521B64103898BE3019165F0, + F521B64303898BE3019165F0, + F521B64503898BE3019165F0, + F521B64703898BE3019165F0, + F521B64903898BE3019165F0, + F521B64B03898BE3019165F0, + F521B64D03898BE3019165F0, + F521B64E03898BE3019165F0, + F521B64F03898BE3019165F0, + F521B65003898BE3019165F0, + F521B65103898BE3019165F0, + F521B65203898BE3019165F0, + F521B65303898BE3019165F0, + F521B65403898BE3019165F0, + F521B65503898BE3019165F0, + F521B65603898BE3019165F0, + F521B65703898BE3019165F0, + F521B65803898BE3019165F0, + F521B65903898BE3019165F0, + F521B65B03898BE3019165F0, + F521B65D03898BE3019165F0, + F521B65F03898BE3019165F0, + F521B66103898BE3019165F0, + F521B66303898BE3019165F0, + F521B66503898BE3019165F0, + F521B66703898BE3019165F0, + F521B66903898BE3019165F0, + F521B66B03898BE3019165F0, + F521B66D03898BE3019165F0, + F521B66F03898BE3019165F0, + F521B67103898BE3019165F0, + F521B67303898BE3019165F0, + F521B67503898BE3019165F0, + F521B67703898BE3019165F0, + F521B67903898BE3019165F0, + F521B67B03898BE3019165F0, + F521B67D03898BE3019165F0, + F521B67F03898BE3019165F0, + F521B68103898BE3019165F0, + F521B68303898BE3019165F0, + F521B68503898BE3019165F0, + F521B68703898BE3019165F0, + F521B68903898BE3019165F0, + F521B68B03898BE3019165F0, + F521B68D03898BE3019165F0, + F521B68F03898BE3019165F0, + F521B69103898BE3019165F0, + F521B69303898BE3019165F0, + F521B69503898BE3019165F0, + F521B69703898BE3019165F0, + F521B69903898BE3019165F0, + F521B69B03898BE3019165F0, + F521B69D03898BE3019165F0, + F521B69F03898BE3019165F0, + F521B6A103898BE3019165F0, + F521B6A303898BE3019165F0, + F521B6A503898BE3019165F0, + CA6D3796055CD0F900A80164, + F521B6A903898BE3019165F0, + F521B6AD03898BE3019165F0, + F521B6B303898BE3019165F0, + F521B6B503898BE3019165F0, + F521B6B903898BE3019165F0, + F521B6BB03898BE3019165F0, + F521B6BD03898BE3019165F0, + F521B6BF03898BE3019165F0, + F521B6C103898BE3019165F0, + F521B6C503898BE3019165F0, + F521B6C703898BE3019165F0, + F521B6CB03898BE3019165F0, + F521B6CD03898BE3019165F0, + F521B6CF03898BE3019165F0, + F521B6D103898BE3019165F0, + F521B6D303898BE3019165F0, + F521B6D503898BE3019165F0, + F521B6D703898BE3019165F0, + F521B6D903898BE3019165F0, + F521B6DB03898BE3019165F0, + F521B6DD03898BE3019165F0, + F521B6DF03898BE3019165F0, + F521B6E103898BE3019165F0, + F521B6E303898BE3019165F0, + F521B6E503898BE3019165F0, + F521B6E703898BE3019165F0, + F521B6E903898BE3019165F0, + F521B6EB03898BE3019165F0, + F521B6ED03898BE3019165F0, + F521B6F103898BE3019165F0, + F521B6F503898BE3019165F0, + F521B6F303898BE3019165F0, + F521B6FD03898BE3019165F0, + F521B6FF03898BE3019165F0, + F5675F1A03E336E101A80164, + F5675F2903E3386E01A80164, + CA71244903ECF98E00A80164, + CAD1CCA803F37FD400A80164, + CA8E425203F7486200A80164, + CA8E425403F7486200A80164, + CA8E425603F7486200A80164, + CA8E425803F7486200A80164, + CA8E425A03F7486200A80164, + CA8E425C03F7486200A80164, + CA8E425E03F7486200A80164, + CA8E426003F7486200A80164, + CA8E426203F7486200A80164, + CA8E426403F7486200A80164, + CA8E426603F7486200A80164, + CA8E426803F7486200A80164, + CA8E426A03F7486200A80164, + CA8E426C03F7486200A80164, + CA8E426E03F7486200A80164, + CA8E427003F7486200A80164, + CA8E427203F7486200A80164, + CA8E427403F7486200A80164, + CA8E427603F7486200A80164, + CA8E427803F7486200A80164, + CA8E427A03F7486200A80164, + CA8E427C03F7486200A80164, + CA8E427E03F7486200A80164, + CA8E428003F7486200A80164, + CA8E428203F7486200A80164, + CA8E428403F7486200A80164, + CA8E428603F7486200A80164, + CA8E428803F7486200A80164, + CA8E428A03F7486200A80164, + CA8E428C03F7486200A80164, + CA8E428E03F7486200A80164, + CA8E429003F7486200A80164, + CA8E429203F7486200A80164, + CA8E429403F7486200A80164, + CA8E429603F7486200A80164, + CA8E429803F7486200A80164, + CA8E429A03F7486200A80164, + CA8E429C03F7486200A80164, + CA8E429E03F7486200A80164, + CA8E42A003F7486200A80164, + CA8E42A203F7486200A80164, + CA8E42A403F7486200A80164, + CA8E42A603F7486200A80164, + CA8E42A803F7486200A80164, + CA8E42AA03F7486200A80164, + CA8E42AC03F7486200A80164, + CA8E42AE03F7486200A80164, + CA8E42B003F7486200A80164, + CA8E42B203F7486200A80164, + CA8E42B403F7486200A80164, + CA8E42B603F7486200A80164, + CA8E42B803F7486200A80164, + CA8E42BA03F7486200A80164, + CA8E42BC03F7486200A80164, + CA8E42BE03F7486200A80164, + CA8E42C003F7486200A80164, + CA8E42C203F7486200A80164, + CA8E42C403F7486200A80164, + CA8E42C603F7486200A80164, + CA8E42C803F7486200A80164, + CA8E42CA03F7486200A80164, + CA8E42CC03F7486200A80164, + CA8E42CE03F7486200A80164, + CA8E42D003F7486200A80164, + CA8E42D203F7486200A80164, + CA8E42D403F7486200A80164, + CA8E42D603F7486200A80164, + CA8E42D803F7486200A80164, + CA8E42DA03F7486200A80164, + CA8E42DC03F7486200A80164, + CA8E42DE03F7486200A80164, + CA8E42E003F7486200A80164, + CA8E42E203F7486200A80164, + CA8E42E403F7486200A80164, + CA8E42E603F7486200A80164, + CA8E42E803F7486200A80164, + CA8E42EA03F7486200A80164, + CA8E42EC03F7486200A80164, + CA8E42EE03F7486200A80164, + CA8E42F003F7486200A80164, + CA8E42F203F7486200A80164, + CA8E42F403F7486200A80164, + CA8E42F603F7486200A80164, + CA8E42F803F7486200A80164, + CA8E42FA03F7486200A80164, + CA8E42FC03F7486200A80164, + CA8E42FE03F7486200A80164, + CA8E430603F7486200A80164, + CA8E430003F7486200A80164, + CA8E430203F7486200A80164, + CA8E430403F7486200A80164, + CA8E430803F7486200A80164, + CA8E430A03F7486200A80164, + CA8E430C03F7486200A80164, + CA8E430E03F7486200A80164, + CA8E431003F7486200A80164, + CA8E431203F7486200A80164, + CA8E431403F7486200A80164, + CA8E431603F7486200A80164, + CA8E431803F7486200A80164, + CA8E431A03F7486200A80164, + CA8E431C03F7486200A80164, + CA8E431E03F7486200A80164, + CA8E432003F7486200A80164, + CA8E432203F7486200A80164, + CA8E432403F7486200A80164, + CA8E432603F7486200A80164, + CA8E432803F7486200A80164, + CA8E432A03F7486200A80164, + CA8E432C03F7486200A80164, + CA8E432E03F7486200A80164, + CA8E433003F7486200A80164, + CA8E433203F7486200A80164, + CA8E433403F7486200A80164, + CA8E433603F7486200A80164, + CA8E433803F7486200A80164, + CA8E433A03F7486200A80164, + CA8E433C03F7486200A80164, + CA8E433E03F7486200A80164, + CA8E434003F7486200A80164, + CA8E434203F7486200A80164, + CA8E434403F7486200A80164, + CA8E434603F7486200A80164, + CA8E434803F7486200A80164, + CA8E434A03F7486200A80164, + CA8E434C03F7486200A80164, + CA8E434E03F7486200A80164, + CA8E435003F7486200A80164, + CA8E435203F7486200A80164, + CA8E435403F7486200A80164, + CA8E435603F7486200A80164, + CA8E435803F7486200A80164, + CA8E435A03F7486200A80164, + CA8E435C03F7486200A80164, + CA8E435E03F7486200A80164, + CA8E436003F7486200A80164, + CA8E436203F7486200A80164, + CA8E436403F7486200A80164, + CA8E436603F7486200A80164, + CA8E436803F7486200A80164, + CA8E436A03F7486200A80164, + CA8E436C03F7486200A80164, + CA8E436E03F7486200A80164, + CA8E437003F7486200A80164, + CA8E437203F7486200A80164, + CA8E437403F7486200A80164, + CA8E437603F7486200A80164, + CA8E437803F7486200A80164, + CA8E437A03F7486200A80164, + CA8E437C03F7486200A80164, + CA8E437E03F7486200A80164, + CA8E438003F7486200A80164, + CA8E438203F7486200A80164, + CA8E438403F7486200A80164, + CA8E438603F7486200A80164, + CA8E438803F7486200A80164, + CA8E438A03F7486200A80164, + CA8E438C03F7486200A80164, + CA8E438E03F7486200A80164, + CA8E439003F7486200A80164, + CA8E439203F7486200A80164, + CA8E439403F7486200A80164, + CA8E439603F7486200A80164, + CA8E439803F7486200A80164, + CA8E439A03F7486200A80164, + CA8E439C03F7486200A80164, + CA8E439E03F7486200A80164, + CA8E43A003F7486200A80164, + CA8E43A203F7486200A80164, + CA8E43A403F7486200A80164, + CA8E43A603F7486200A80164, + CA8E43A803F7486200A80164, + CA8E43AA03F7486200A80164, + CA8E43AC03F7486200A80164, + CA8E43AE03F7486200A80164, + CA8E43B003F7486200A80164, + CA8E43B203F7486200A80164, + CA8E43B403F7486200A80164, + CA8E43B603F7486200A80164, + CA8E43B803F7486200A80164, + CA8E43BA03F7486200A80164, + CA8E43BC03F7486200A80164, + CA8E43BE03F7486200A80164, + CA8E43C003F7486200A80164, + CA8E43C203F7486200A80164, + CA8E43C403F7486200A80164, + CA8E43C603F7486200A80164, + CA8E43C803F7486200A80164, + CA8E43CA03F7486200A80164, + CA8E43CC03F7486200A80164, + CA8E43CE03F7486200A80164, + CA8E43D003F7486200A80164, + CA8E43D203F7486200A80164, + CA8E43D403F7486200A80164, + CA8E43D603F7486200A80164, + CA8E43D803F7486200A80164, + CA8E43DA03F7486200A80164, + CA8E43DC03F7486200A80164, + CA8E43DE03F7486200A80164, + CA8E43E003F7486200A80164, + CA8E43E203F7486200A80164, + CA8E43E403F7486200A80164, + CA8E43E603F7486200A80164, + CA8E43E803F7486200A80164, + CA8E43EA03F7486200A80164, + CA8E43EC03F7486200A80164, + CA8E43EE03F7486200A80164, + CA8E43F003F7486200A80164, + CA8E43F203F7486200A80164, + CA8E43F403F7486200A80164, + CA8E43F603F7486200A80164, + CA8E43F803F7486200A80164, + CA8E43FA03F7486200A80164, + CA8E43FC03F7486200A80164, + CA8E43FE03F7486200A80164, + CA8E440003F7486200A80164, + CA8E440203F7486200A80164, + CA8E440403F7486200A80164, + CA8E440603F7486200A80164, + CA8E440803F7486200A80164, + CA8E440A03F7486200A80164, + CA8E440C03F7486200A80164, + CA8E440E03F7486200A80164, + CA8E441003F7486200A80164, + CA8E441203F7486200A80164, + CA8E441403F7486200A80164, + CA8E441603F7486200A80164, + CA8E441803F7486200A80164, + CA8E441A03F7486200A80164, + CA8E441C03F7486200A80164, + CA8E441E03F7486200A80164, + CA8E442003F7486200A80164, + CA8E442203F7486200A80164, + CA8E442403F7486200A80164, + CA8E442603F7486200A80164, + CA8E442803F7486200A80164, + CA8E442A03F7486200A80164, + CA8E442C03F7486200A80164, + CA8E442E03F7486200A80164, + CA8E443003F7486200A80164, + CA8E443203F7486200A80164, + CA8E443403F7486200A80164, + CA8E443603F7486200A80164, + CA8E443803F7486200A80164, + CA8E443A03F7486200A80164, + CA8E443C03F7486200A80164, + CA8E443E03F7486200A80164, + CA8E444003F7486200A80164, + CA8E444203F7486200A80164, + CA8E444403F7486200A80164, + CA8E444603F7486200A80164, + CA8E444803F7486200A80164, + CA8E444A03F7486200A80164, + CA8E444C03F7486200A80164, + CA8E444E03F7486200A80164, + CA8E445003F7486200A80164, + CA8E445203F7486200A80164, + CA8E445403F7486200A80164, + CA8E445603F7486200A80164, + CA8E445803F7486200A80164, + CA8E445A03F7486200A80164, + CA8E445C03F7486200A80164, + CA8E445E03F7486200A80164, + CA8E446003F7486200A80164, + CA8E446203F7486200A80164, + CA8E446403F7486200A80164, + CA8E446603F7486200A80164, + CA8E446803F7486200A80164, + CA8E446F03F7489000A80164, + CA8E447103F7489000A80164, + CA8E447503F748C200A80164, + CACE9BAA03FA2DB400A80164, + CACE9BAE03FB6BC900A80164, + CABA04AE0405EB4D00A80164, + CAB02C01040B21AB00A80164, + CAB02C05040B21EA00A80164, + CAB02C09040B27D200A80164, + CAB79E4805577C3A00A80164, + CAB79E4E05577C6000A80164, + CAB79E6105577CB200A80164, + CAB79E6305577CB200A80164, + CAB79E6605577CB200A80164, + CAB79E6805577CB200A80164, + CAB79E6A05577CB200A80164, + CAB79E6B05577CB200A80164, + CAB79E6D05577CB200A80164, + CAB79E6E05577CB200A80164, + CAB79EE005577D4700A80164, + CAB79EE205577D4700A80164, + CAB79EE605577D4700A80164, + CAB79EE805577D4700A80164, + CAB79EEA05577D4700A80164, + CAB79EEC05577D4700A80164, + CAB79EEE05577D4700A80164, + CAB79EF005577D4700A80164, + CAB79EF405577D4700A80164, + CAB79EF605577D4700A80164, + CAB79EFF05577D4700A80164, + CAB79F0105577D4700A80164, + CAB79F0305577D4700A80164, + CAB79F0505577D4700A80164, + CAB79F0705577D4700A80164, + CAB79F0905577D4700A80164, + CAB79F0B05577D4700A80164, + CAB79F0F05577D4700A80164, + CAB79F1205577D4700A80164, + CAB79F1405577D4700A80164, + CAB79F1605577D4700A80164, + CAB79F1805577D4700A80164, + CAB79F1A05577D4700A80164, + CAB79F1C05577D4700A80164, + CAB20E320558955600A80164, + CA6D37BA055F103500A80164, + CA6D37BC055F103700A80164, + CA6D37BE055F103800A80164, + CA6D37C0055F11DF00A80164, + 3A276ED2056B63C500A80785, + 3A276ED6056B63EE00A80785, + 3ADDEE1C061860A600A80785, + FD926286075D4BFD003B49DD, + FD92628F075D4C12003B49DD, + FD926291075D4C12003B49DD, + FD926299075D4C4C003B49DD, + ); + isa = PBXSourcesBuildPhase; + runOnlyForDeploymentPostprocessing = 0; + }; + F521B3FC03898A71019165F0 = { + buildActionMask = 2147483647; + files = ( + F5BDD2F90389F1210175848A, + F5BDD2FA0389F1210175848A, + F5BDD2FB0389F1210175848A, + F5BDD2FC0389F1210175848A, + F5BDD2FD0389F1210175848A, + CAB20E630558C6DC00A80164, + CAB20E690558D39800A80164, + ); + isa = PBXFrameworksBuildPhase; + runOnlyForDeploymentPostprocessing = 0; + }; + F521B3FD03898A71019165F0 = { + buildActionMask = 2147483647; + files = ( + ); + isa = PBXRezBuildPhase; + runOnlyForDeploymentPostprocessing = 0; + }; + F521B3FE03898A71019165F0 = { + buildPhases = ( + F521B3FA03898A71019165F0, + F521B3FB03898A71019165F0, + F521B3FC03898A71019165F0, + F521B3FD03898A71019165F0, + ); + buildSettings = { + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + HEADER_SEARCH_PATHS = "../../../puredataDev/pd/src src ../../GemLibs/FTGL/include ../../GemLibs/freetype-2.1.9/include"; + LIBRARY_SEARCH_PATHS = "../../../dev/libs ../../GemLibs/FTGL/mac/build"; + LIBRARY_STYLE = BUNDLE; + OPTIMIZATION_CFLAGS = "\U0001-O0"; + OTHER_CFLAGS = "-DMACOSX -DYUV -DDEBUG -faltivec"; + OTHER_LDFLAGS = "-bundle -undefined suppress -flat_namespace"; + OTHER_LIBTOOL_FLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = Gem.pd_darwin; + REZ_EXECUTABLE = YES; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = "-Wmost -Wno-four-char-constants -Wno-unknown-pragmas"; + }; + dependencies = ( + ); + isa = PBXLibraryTarget; + name = gem_darwin; + productInstallPath = /usr/local/lib; + productName = gem_darwin; + productReference = F521B3FF03898A71019165F0; + }; + F521B3FF03898A71019165F0 = { + explicitFileType = "compiled.mach-o.dylib"; + isa = PBXFileReference; + path = Gem.pd_darwin; + refType = 3; + sourceTree = BUILT_PRODUCTS_DIR; + }; + F521B40003898A71019165F0 = { + children = ( + F521B3FF03898A71019165F0, + ); + isa = PBXGroup; + name = Products; + refType = 4; + sourceTree = ""; + }; + F521B40103898BAC019165F0 = { + children = ( + F521B40303898BE2019165F0, + F521B43C03898BE2019165F0, + F521B44E03898BE2019165F0, + F521B47E03898BE2019165F0, + F521B4B003898BE2019165F0, + F521B4BE03898BE2019165F0, + FD926296075D4C37003B49DD, + F521B4C403898BE2019165F0, + F521B4E403898BE2019165F0, + CA8E403403F7486100A80164, + ); + isa = PBXGroup; + name = Gem; + path = ""; + refType = 2; + sourceTree = SOURCE_ROOT; + }; + F521B40203898BB7019165F0 = { + children = ( + F5D2CF760389DD7201AC9AE7, + F5D2CF710389DD3B01AC9AE7, + CA6D35CC0558D47300A80164, + CA6D36F00558D4F200A80164, + ); + isa = PBXGroup; + name = GemLibs; + path = ../../GemLibs; + refType = 2; + sourceTree = SOURCE_ROOT; + }; + F521B40303898BE2019165F0 = { + children = ( + FD926280075D4BFD003B49DD, + FD926281075D4BFD003B49DD, + FD926282075D4BFD003B49DD, + FD926283075D4BFD003B49DD, + FD926284075D4BFD003B49DD, + F521B40603898BE2019165F0, + F521B40703898BE2019165F0, + F521B40803898BE2019165F0, + F521B40903898BE2019165F0, + F521B40A03898BE2019165F0, + F521B40B03898BE2019165F0, + F521B40C03898BE2019165F0, + F521B40D03898BE2019165F0, + F521B40E03898BE2019165F0, + F521B40F03898BE2019165F0, + F521B41003898BE2019165F0, + F521B41103898BE2019165F0, + F521B41203898BE2019165F0, + F521B41503898BE2019165F0, + F521B41603898BE2019165F0, + F521B41303898BE2019165F0, + F521B41403898BE2019165F0, + F521B41903898BE2019165F0, + F521B41A03898BE2019165F0, + F521B41B03898BE2019165F0, + F521B41C03898BE2019165F0, + F521B41D03898BE2019165F0, + F521B41E03898BE2019165F0, + F521B41F03898BE2019165F0, + F521B42003898BE2019165F0, + F521B42103898BE2019165F0, + F521B42203898BE2019165F0, + F521B42303898BE2019165F0, + F521B42403898BE2019165F0, + F521B42503898BE2019165F0, + F521B42603898BE2019165F0, + F521B42703898BE2019165F0, + F521B42803898BE2019165F0, + F521B42903898BE2019165F0, + F521B42A03898BE2019165F0, + F521B42B03898BE2019165F0, + F521B42C03898BE2019165F0, + F521B42D03898BE2019165F0, + F521B42E03898BE2019165F0, + F521B42F03898BE2019165F0, + F521B43003898BE2019165F0, + F521B43103898BE2019165F0, + F521B43203898BE2019165F0, + F521B43303898BE2019165F0, + F521B43403898BE2019165F0, + F521B43603898BE2019165F0, + F521B43703898BE2019165F0, + F521B43A03898BE2019165F0, + F521B43B03898BE2019165F0, + F521B43803898BE2019165F0, + F521B43903898BE2019165F0, + ); + isa = PBXGroup; + name = Base; + path = src/Base; + refType = 2; + sourceTree = SOURCE_ROOT; + }; + F521B40603898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = CPPExtern.cpp; + refType = 4; + sourceTree = ""; + }; + F521B40703898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = CPPExtern.h; + refType = 4; + sourceTree = ""; + }; + F521B40803898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GemBase.cpp; + refType = 4; + sourceTree = ""; + }; + F521B40903898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GemBase.h; + refType = 4; + sourceTree = ""; + }; + F521B40A03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GemCache.cpp; + refType = 4; + sourceTree = ""; + }; + F521B40B03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GemCache.h; + refType = 4; + sourceTree = ""; + }; + F521B40C03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GemDag.cpp; + refType = 4; + sourceTree = ""; + }; + F521B40D03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GemDag.h; + refType = 4; + sourceTree = ""; + }; + F521B40E03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GemEvent.cpp; + refType = 4; + sourceTree = ""; + }; + F521B40F03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GemEvent.h; + refType = 4; + sourceTree = ""; + }; + F521B41003898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GemExportDef.h; + refType = 4; + sourceTree = ""; + }; + F521B41103898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GemFuncUtil.cpp; + refType = 4; + sourceTree = ""; + }; + F521B41203898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GemFuncUtil.h; + refType = 4; + sourceTree = ""; + }; + F521B41303898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GemGluObj.cpp; + refType = 4; + sourceTree = ""; + }; + F521B41403898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GemGluObj.h; + refType = 4; + sourceTree = ""; + }; + F521B41503898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GemGLUtil.cpp; + refType = 4; + sourceTree = ""; + }; + F521B41603898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GemGLUtil.h; + refType = 4; + sourceTree = ""; + }; + F521B41903898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GemLoadObj.cpp; + refType = 4; + sourceTree = ""; + }; + F521B41A03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GemLoadObj.h; + refType = 4; + sourceTree = ""; + }; + F521B41B03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GemMan.cpp; + refType = 4; + sourceTree = ""; + }; + F521B41C03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GemMan.h; + refType = 4; + sourceTree = ""; + }; + F521B41D03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GemModelData.cpp; + refType = 4; + sourceTree = ""; + }; + F521B41E03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GemModelData.h; + refType = 4; + sourceTree = ""; + }; + F521B41F03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GemPathBase.cpp; + refType = 4; + sourceTree = ""; + }; + F521B42003898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GemPathBase.h; + refType = 4; + sourceTree = ""; + }; + F521B42103898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GemPixDualObj.cpp; + refType = 4; + sourceTree = ""; + }; + F521B42203898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GemPixDualObj.h; + refType = 4; + sourceTree = ""; + }; + F521B42303898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GemPixImageLoad.cpp; + refType = 4; + sourceTree = ""; + }; + F521B42403898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GemPixImageLoad.h; + refType = 4; + sourceTree = ""; + }; + F521B42503898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GemPixImageSave.cpp; + refType = 4; + sourceTree = ""; + }; + F521B42603898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GemPixImageSave.h; + refType = 4; + sourceTree = ""; + }; + F521B42703898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GemPixObj.cpp; + refType = 4; + sourceTree = ""; + }; + F521B42803898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GemPixObj.h; + refType = 4; + sourceTree = ""; + }; + F521B42903898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GemPixUtil.cpp; + refType = 4; + sourceTree = ""; + }; + F521B42A03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GemPixUtil.h; + refType = 4; + sourceTree = ""; + }; + F521B42B03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GemSetup.cpp; + refType = 4; + sourceTree = ""; + }; + F521B42C03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GemShape.cpp; + refType = 4; + sourceTree = ""; + }; + F521B42D03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GemShape.h; + refType = 4; + sourceTree = ""; + }; + F521B42E03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GemState.cpp; + refType = 4; + sourceTree = ""; + }; + F521B42F03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GemState.h; + refType = 4; + sourceTree = ""; + }; + F521B43003898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GemVersion.h; + refType = 4; + sourceTree = ""; + }; + F521B43103898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = GemWinCreate.h; + refType = 4; + sourceTree = ""; + }; + F521B43203898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GemWinCreateMac.cpp; + refType = 4; + sourceTree = ""; + }; + F521B43303898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GemWinCreateNT.cpp; + refType = 4; + sourceTree = ""; + }; + F521B43403898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = GemWinCreateXWin.cpp; + refType = 4; + sourceTree = ""; + }; + F521B43603898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = Matrix.cpp; + refType = 4; + sourceTree = ""; + }; + F521B43703898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = Matrix.h; + refType = 4; + sourceTree = ""; + }; + F521B43803898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = sgiimage.cpp; + refType = 4; + sourceTree = ""; + }; + F521B43903898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = sgiimage.h; + refType = 4; + sourceTree = ""; + }; + F521B43A03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = TextBase.cpp; + refType = 4; + sourceTree = ""; + }; + F521B43B03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = TextBase.h; + refType = 4; + sourceTree = ""; + }; + F521B43C03898BE2019165F0 = { + children = ( + FD92628A075D4C12003B49DD, + FD92628B075D4C12003B49DD, + FD92628C075D4C12003B49DD, + FD92628D075D4C12003B49DD, + F521B43D03898BE2019165F0, + F521B43E03898BE2019165F0, + F521B43F03898BE2019165F0, + F521B44003898BE2019165F0, + F521B44103898BE2019165F0, + F521B44203898BE2019165F0, + F521B44303898BE2019165F0, + F521B44403898BE2019165F0, + F521B44503898BE2019165F0, + F521B44603898BE2019165F0, + CAB79E3B05577B0B00A80164, + CAB79E3C05577B0B00A80164, + CAB79E3D05577B0B00A80164, + CAB79E3E05577B0B00A80164, + F521B44703898BE2019165F0, + F521B44803898BE2019165F0, + F521B44C03898BE2019165F0, + F521B44D03898BE2019165F0, + ); + isa = PBXGroup; + name = Controls; + path = src/Controls; + refType = 2; + sourceTree = SOURCE_ROOT; + }; + F521B43D03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = gemhead.cpp; + refType = 4; + sourceTree = ""; + }; + F521B43E03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = gemhead.h; + refType = 4; + sourceTree = ""; + }; + F521B43F03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = gemkeyboard.cpp; + refType = 4; + sourceTree = ""; + }; + F521B44003898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = gemkeyboard.h; + refType = 4; + sourceTree = ""; + }; + F521B44103898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = gemkeyname.cpp; + refType = 4; + sourceTree = ""; + }; + F521B44203898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = gemkeyname.h; + refType = 4; + sourceTree = ""; + }; + F521B44303898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = gemmouse.cpp; + refType = 4; + sourceTree = ""; + }; + F521B44403898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = gemmouse.h; + refType = 4; + sourceTree = ""; + }; + F521B44503898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = gemorb.cpp; + refType = 4; + sourceTree = ""; + }; + F521B44603898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = gemorb.h; + refType = 4; + sourceTree = ""; + }; + F521B44703898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = gemtablet.cpp; + refType = 4; + sourceTree = ""; + }; + F521B44803898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = gemtablet.h; + refType = 4; + sourceTree = ""; + }; + F521B44C03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = render_trigger.cpp; + refType = 4; + sourceTree = ""; + }; + F521B44D03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = render_trigger.h; + refType = 4; + sourceTree = ""; + }; + F521B44E03898BE2019165F0 = { + children = ( + F521B47503898BE2019165F0, + F521B44F03898BE2019165F0, + F521B45003898BE2019165F0, + F521B45103898BE2019165F0, + F521B45203898BE2019165F0, + F521B45303898BE2019165F0, + F521B45403898BE2019165F0, + F521B45503898BE2019165F0, + F521B45603898BE2019165F0, + F521B45703898BE2019165F0, + F521B45803898BE2019165F0, + F521B45903898BE2019165F0, + F521B45A03898BE2019165F0, + 3A276ED4056B63EE00A80785, + 3A276ED5056B63EE00A80785, + F521B45B03898BE2019165F0, + F521B45C03898BE2019165F0, + F521B45D03898BE2019165F0, + F521B45E03898BE2019165F0, + F521B45F03898BE2019165F0, + F521B46003898BE2019165F0, + F521B46203898BE2019165F0, + F521B46403898BE2019165F0, + CAB79E4405577C3A00A80164, + CAB79E4505577C3A00A80164, + F521B46503898BE2019165F0, + F521B46603898BE2019165F0, + F521B46703898BE2019165F0, + F521B46803898BE2019165F0, + F521B46903898BE2019165F0, + F521B46A03898BE2019165F0, + F521B46B03898BE2019165F0, + F521B46C03898BE2019165F0, + F521B46D03898BE2019165F0, + F521B46E03898BE2019165F0, + CAD1CCA603F37FD400A80164, + CAD1CCA703F37FD400A80164, + CA8E446B03F7489000A80164, + CA8E446C03F7489000A80164, + CA8E446D03F7489000A80164, + CA8E446E03F7489000A80164, + F521B46F03898BE2019165F0, + F521B47003898BE2019165F0, + F521B47103898BE2019165F0, + F521B47203898BE2019165F0, + F521B47303898BE2019165F0, + F521B47403898BE2019165F0, + F521B47603898BE2019165F0, + F521B47703898BE2019165F0, + F521B47803898BE2019165F0, + F521B47903898BE2019165F0, + CAB79E4605577C3A00A80164, + CAB79E4705577C3A00A80164, + F521B47A03898BE2019165F0, + F521B47B03898BE2019165F0, + F521B47C03898BE2019165F0, + F521B47D03898BE2019165F0, + 3A276ED0056B63C500A80785, + 3A276ED1056B63C500A80785, + ); + isa = PBXGroup; + name = Geos; + path = src/Geos; + refType = 2; + sourceTree = SOURCE_ROOT; + }; + F521B44F03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = circle.cpp; + refType = 4; + sourceTree = ""; + }; + F521B45003898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = circle.h; + refType = 4; + sourceTree = ""; + }; + F521B45103898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = colorSquare.cpp; + refType = 4; + sourceTree = ""; + }; + F521B45203898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = colorSquare.h; + refType = 4; + sourceTree = ""; + }; + F521B45303898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = cone.cpp; + refType = 4; + sourceTree = ""; + }; + F521B45403898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = cone.h; + refType = 4; + sourceTree = ""; + }; + F521B45503898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = cube.cpp; + refType = 4; + sourceTree = ""; + }; + F521B45603898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = cube.h; + refType = 4; + sourceTree = ""; + }; + F521B45703898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = cuboid.cpp; + refType = 4; + sourceTree = ""; + }; + F521B45803898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = cuboid.h; + refType = 4; + sourceTree = ""; + }; + F521B45903898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = curve.cpp; + refType = 4; + sourceTree = ""; + }; + F521B45A03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = curve.h; + refType = 4; + sourceTree = ""; + }; + F521B45B03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = cylinder.cpp; + refType = 4; + sourceTree = ""; + }; + F521B45C03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = cylinder.h; + refType = 4; + sourceTree = ""; + }; + F521B45D03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = disk.cpp; + refType = 4; + sourceTree = ""; + }; + F521B45E03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = disk.h; + refType = 4; + sourceTree = ""; + }; + F521B45F03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = imageVert.cpp; + refType = 4; + sourceTree = ""; + }; + F521B46003898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = imageVert.h; + refType = 4; + sourceTree = ""; + }; + F521B46203898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = model.cpp; + refType = 4; + sourceTree = ""; + }; + F521B46403898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = model.h; + refType = 4; + sourceTree = ""; + }; + F521B46503898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = multimodel.cpp; + refType = 4; + sourceTree = ""; + }; + F521B46603898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = multimodel.h; + refType = 4; + sourceTree = ""; + }; + F521B46703898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = newWave.cpp; + refType = 4; + sourceTree = ""; + }; + F521B46803898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = newWave.h; + refType = 4; + sourceTree = ""; + }; + F521B46903898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = polygon.cpp; + refType = 4; + sourceTree = ""; + }; + F521B46A03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = polygon.h; + refType = 4; + sourceTree = ""; + }; + F521B46B03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = primTri.cpp; + refType = 4; + sourceTree = ""; + }; + F521B46C03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = primTri.h; + refType = 4; + sourceTree = ""; + }; + F521B46D03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = rectangle.cpp; + refType = 4; + sourceTree = ""; + }; + F521B46E03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = rectangle.h; + refType = 4; + sourceTree = ""; + }; + F521B46F03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = sphere.cpp; + refType = 4; + sourceTree = ""; + }; + F521B47003898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = sphere.h; + refType = 4; + sourceTree = ""; + }; + F521B47103898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = square.cpp; + refType = 4; + sourceTree = ""; + }; + F521B47203898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = square.h; + refType = 4; + sourceTree = ""; + }; + F521B47303898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = teapot.cpp; + refType = 4; + sourceTree = ""; + }; + F521B47403898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = teapot.h; + refType = 4; + sourceTree = ""; + }; + F521B47503898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = TexFont.h; + refType = 4; + sourceTree = ""; + }; + F521B47603898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = text2d.cpp; + refType = 4; + sourceTree = ""; + }; + F521B47703898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = text2d.h; + refType = 4; + sourceTree = ""; + }; + F521B47803898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = text3d.cpp; + refType = 4; + sourceTree = ""; + }; + F521B47903898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = text3d.h; + refType = 4; + sourceTree = ""; + }; + F521B47A03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = textoutline.cpp; + refType = 4; + sourceTree = ""; + }; + F521B47B03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = textoutline.h; + refType = 4; + sourceTree = ""; + }; + F521B47C03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = triangle.cpp; + refType = 4; + sourceTree = ""; + }; + F521B47D03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = triangle.h; + refType = 4; + sourceTree = ""; + }; + F521B47E03898BE2019165F0 = { + children = ( + F521B47F03898BE2019165F0, + F521B48003898BE2019165F0, + F521B48103898BE2019165F0, + F521B48203898BE2019165F0, + F521B48303898BE2019165F0, + F521B48403898BE2019165F0, + F521B48503898BE2019165F0, + F521B48603898BE2019165F0, + F521B48703898BE2019165F0, + F521B48803898BE2019165F0, + F521B48903898BE2019165F0, + F521B48A03898BE2019165F0, + F521B48B03898BE2019165F0, + F521B48C03898BE2019165F0, + F521B48D03898BE2019165F0, + F521B48E03898BE2019165F0, + F521B48F03898BE2019165F0, + F521B49003898BE2019165F0, + F521B49103898BE2019165F0, + F521B49203898BE2019165F0, + F521B49303898BE2019165F0, + F521B49403898BE2019165F0, + F521B49503898BE2019165F0, + F521B49603898BE2019165F0, + F521B49803898BE2019165F0, + F521B49903898BE2019165F0, + F521B49A03898BE2019165F0, + F521B49B03898BE2019165F0, + F521B49C03898BE2019165F0, + F521B49D03898BE2019165F0, + F521B49E03898BE2019165F0, + F521B49F03898BE2019165F0, + F521B4A003898BE2019165F0, + F521B4A103898BE2019165F0, + F521B4A203898BE2019165F0, + F521B4A303898BE2019165F0, + F521B4A403898BE2019165F0, + F521B4A503898BE2019165F0, + F521B4A603898BE2019165F0, + F521B4A703898BE2019165F0, + F521B4A803898BE2019165F0, + F521B4A903898BE2019165F0, + F521B4AA03898BE2019165F0, + F521B4AB03898BE2019165F0, + F521B4AC03898BE2019165F0, + F521B4AD03898BE2019165F0, + F521B4AE03898BE2019165F0, + F521B4AF03898BE2019165F0, + CAB02BFF040B21AB00A80164, + CAB02C00040B21AB00A80164, + CAB79E4C05577C6000A80164, + CAB79E4D05577C6000A80164, + ); + isa = PBXGroup; + name = Manips; + path = src/Manips; + refType = 2; + sourceTree = SOURCE_ROOT; + }; + F521B47F03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = accumrotate.cpp; + refType = 4; + sourceTree = ""; + }; + F521B48003898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = accumrotate.h; + refType = 4; + sourceTree = ""; + }; + F521B48103898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = alpha.cpp; + refType = 4; + sourceTree = ""; + }; + F521B48203898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = alpha.h; + refType = 4; + sourceTree = ""; + }; + F521B48303898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = ambient.cpp; + refType = 4; + sourceTree = ""; + }; + F521B48403898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ambient.h; + refType = 4; + sourceTree = ""; + }; + F521B48503898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = ambientRGB.cpp; + refType = 4; + sourceTree = ""; + }; + F521B48603898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ambientRGB.h; + refType = 4; + sourceTree = ""; + }; + F521B48703898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = color.cpp; + refType = 4; + sourceTree = ""; + }; + F521B48803898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = color.h; + refType = 4; + sourceTree = ""; + }; + F521B48903898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = colorRGB.cpp; + refType = 4; + sourceTree = ""; + }; + F521B48A03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = colorRGB.h; + refType = 4; + sourceTree = ""; + }; + F521B48B03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = depth.cpp; + refType = 4; + sourceTree = ""; + }; + F521B48C03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = depth.h; + refType = 4; + sourceTree = ""; + }; + F521B48D03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = diffuse.cpp; + refType = 4; + sourceTree = ""; + }; + F521B48E03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = diffuse.h; + refType = 4; + sourceTree = ""; + }; + F521B48F03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = diffuseRGB.cpp; + refType = 4; + sourceTree = ""; + }; + F521B49003898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = diffuseRGB.h; + refType = 4; + sourceTree = ""; + }; + F521B49103898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = emission.cpp; + refType = 4; + sourceTree = ""; + }; + F521B49203898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = emission.h; + refType = 4; + sourceTree = ""; + }; + F521B49303898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = emissionRGB.cpp; + refType = 4; + sourceTree = ""; + }; + F521B49403898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = emissionRGB.h; + refType = 4; + sourceTree = ""; + }; + F521B49503898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = linear_path.cpp; + refType = 4; + sourceTree = ""; + }; + F521B49603898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = linear_path.h; + refType = 4; + sourceTree = ""; + }; + F521B49803898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = ortho.cpp; + refType = 4; + sourceTree = ""; + }; + F521B49903898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = ortho.h; + refType = 4; + sourceTree = ""; + }; + F521B49A03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = rotate.cpp; + refType = 4; + sourceTree = ""; + }; + F521B49B03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = rotate.h; + refType = 4; + sourceTree = ""; + }; + F521B49C03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = rotateXYZ.cpp; + refType = 4; + sourceTree = ""; + }; + F521B49D03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = rotateXYZ.h; + refType = 4; + sourceTree = ""; + }; + F521B49E03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = scale.cpp; + refType = 4; + sourceTree = ""; + }; + F521B49F03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = scale.h; + refType = 4; + sourceTree = ""; + }; + F521B4A003898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = scaleXYZ.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4A103898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = scaleXYZ.h; + refType = 4; + sourceTree = ""; + }; + F521B4A203898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = separator.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4A303898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = separator.h; + refType = 4; + sourceTree = ""; + }; + F521B4A403898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = shininess.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4A503898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = shininess.h; + refType = 4; + sourceTree = ""; + }; + F521B4A603898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = specular.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4A703898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = specular.h; + refType = 4; + sourceTree = ""; + }; + F521B4A803898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = specularRGB.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4A903898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = specularRGB.h; + refType = 4; + sourceTree = ""; + }; + F521B4AA03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = spline_path.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4AB03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = spline_path.h; + refType = 4; + sourceTree = ""; + }; + F521B4AC03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = translate.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4AD03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = translate.h; + refType = 4; + sourceTree = ""; + }; + F521B4AE03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = translateXYZ.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4AF03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = translateXYZ.h; + refType = 4; + sourceTree = ""; + }; + F521B4B003898BE2019165F0 = { + children = ( + F521B4B103898BE2019165F0, + F521B4B203898BE2019165F0, + F521B4B303898BE2019165F0, + F521B4B403898BE2019165F0, + F521B4B503898BE2019165F0, + F521B4B703898BE2019165F0, + F521B4B803898BE2019165F0, + F521B4B903898BE2019165F0, + F521B4BA03898BE2019165F0, + F521B4BB03898BE2019165F0, + F521B4BC03898BE2019165F0, + F521B4BD03898BE2019165F0, + ); + isa = PBXGroup; + name = MarkEx; + path = src/MarkEx; + refType = 2; + sourceTree = SOURCE_ROOT; + }; + F521B4B103898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = abs.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4B203898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = average.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4B303898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = counter.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4B403898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = hsvrgb.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4B503898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = m_control.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4B703898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = MarkExSetup.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4B803898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = multiselect.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4B903898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = randomF.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4BA03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = reson.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4BB03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = strcat.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4BC03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = tripleLine.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4BD03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = vector.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4BE03898BE2019165F0 = { + children = ( + F521B4BF03898BE2019165F0, + F521B4C003898BE2019165F0, + F521B4C203898BE2019165F0, + F521B4C303898BE2019165F0, + ); + isa = PBXGroup; + name = Nongeos; + path = src/Nongeos; + refType = 2; + sourceTree = SOURCE_ROOT; + }; + F521B4BF03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = light.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4C003898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = light.h; + refType = 4; + sourceTree = ""; + }; + F521B4C203898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = world_light.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4C303898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = world_light.h; + refType = 4; + sourceTree = ""; + }; + F521B4C403898BE2019165F0 = { + children = ( + 3A276ED8056B643500A80785, + F521B4C603898BE2019165F0, + F521B4C703898BE2019165F0, + F521B4C803898BE2019165F0, + F521B4C903898BE2019165F0, + F521B4CA03898BE2019165F0, + F521B4CB03898BE2019165F0, + F521B4CC03898BE2019165F0, + F521B4CD03898BE2019165F0, + F521B4CE03898BE2019165F0, + F521B4CF03898BE2019165F0, + F521B4D003898BE2019165F0, + F521B4D103898BE2019165F0, + F521B4D203898BE2019165F0, + F521B4D303898BE2019165F0, + F521B4D403898BE2019165F0, + F521B4D503898BE2019165F0, + F521B4D603898BE2019165F0, + F521B4D703898BE2019165F0, + F521B4D803898BE2019165F0, + F521B4D903898BE2019165F0, + F521B4DA03898BE2019165F0, + F521B4DB03898BE2019165F0, + F521B4DC03898BE2019165F0, + F521B4DD03898BE2019165F0, + F521B4DE03898BE2019165F0, + F521B4DF03898BE2019165F0, + F521B4E003898BE2019165F0, + F521B4E103898BE2019165F0, + F521B4E203898BE2019165F0, + F521B4E303898BE2019165F0, + CAB79E5105577CB200A80164, + CAB79E5205577CB200A80164, + CAB79E5305577CB200A80164, + CAB79E5405577CB200A80164, + CAB79E5605577CB200A80164, + CAB79E5705577CB200A80164, + CAB79E5805577CB200A80164, + CAB79E5905577CB200A80164, + ); + isa = PBXGroup; + name = Particles; + path = src/Particles; + refType = 2; + sourceTree = SOURCE_ROOT; + }; + F521B4C603898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = part_color.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4C703898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = part_color.h; + refType = 4; + sourceTree = ""; + }; + F521B4C803898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = part_damp.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4C903898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = part_damp.h; + refType = 4; + sourceTree = ""; + }; + F521B4CA03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = part_draw.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4CB03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = part_draw.h; + refType = 4; + sourceTree = ""; + }; + F521B4CC03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = part_follow.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4CD03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = part_follow.h; + refType = 4; + sourceTree = ""; + }; + F521B4CE03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = part_gravity.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4CF03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = part_gravity.h; + refType = 4; + sourceTree = ""; + }; + F521B4D003898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = part_head.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4D103898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = part_head.h; + refType = 4; + sourceTree = ""; + }; + F521B4D203898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = part_killold.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4D303898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = part_killold.h; + refType = 4; + sourceTree = ""; + }; + F521B4D403898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = part_killslow.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4D503898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = part_killslow.h; + refType = 4; + sourceTree = ""; + }; + F521B4D603898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = part_orbitpoint.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4D703898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = part_orbitpoint.h; + refType = 4; + sourceTree = ""; + }; + F521B4D803898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = part_size.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4D903898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = part_size.h; + refType = 4; + sourceTree = ""; + }; + F521B4DA03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = part_source.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4DB03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = part_source.h; + refType = 4; + sourceTree = ""; + }; + F521B4DC03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = part_targetcolor.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4DD03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = part_targetcolor.h; + refType = 4; + sourceTree = ""; + }; + F521B4DE03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = part_targetsize.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4DF03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = part_targetsize.h; + refType = 4; + sourceTree = ""; + }; + F521B4E003898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = part_velcone.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4E103898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = part_velcone.h; + refType = 4; + sourceTree = ""; + }; + F521B4E203898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = part_velsphere.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4E303898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = part_velsphere.h; + refType = 4; + sourceTree = ""; + }; + F521B4E403898BE2019165F0 = { + children = ( + CAB79E7005577D4700A80164, + CAB79E7105577D4700A80164, + CAB79E7205577D4700A80164, + CAB79E7305577D4700A80164, + CAB79E7405577D4700A80164, + CAB79E7505577D4700A80164, + CAB79E7605577D4700A80164, + CAB79E7705577D4700A80164, + CAB79E7805577D4700A80164, + CAB79E7905577D4700A80164, + CAB79E7A05577D4700A80164, + CAB79E7B05577D4700A80164, + CAB79E7C05577D4700A80164, + CAB79E7D05577D4700A80164, + CAB79E7E05577D4700A80164, + CAB79E7F05577D4700A80164, + CAB79E8005577D4700A80164, + CAB79E8105577D4700A80164, + CAB79E8205577D4700A80164, + CAB79E8305577D4700A80164, + F521B4E603898BE2019165F0, + F521B4E703898BE2019165F0, + F521B4E803898BE2019165F0, + F521B4E903898BE2019165F0, + F521B4EA03898BE2019165F0, + F521B4EB03898BE2019165F0, + F521B4EC03898BE2019165F0, + F521B4ED03898BE2019165F0, + F521B4EE03898BE2019165F0, + F521B4EF03898BE2019165F0, + CACE9BAC03FB6BC900A80164, + CACE9BAB03FB6BC900A80164, + CAB79E8405577D4700A80164, + CAB79E8505577D4700A80164, + CAB79E8605577D4700A80164, + CAB79E8705577D4700A80164, + F521B4F003898BE2019165F0, + F521B4F103898BE2019165F0, + F521B4F203898BE2019165F0, + F521B4F303898BE2019165F0, + CA71244703ECF98E00A80164, + CA71244603ECF98E00A80164, + F521B4F403898BE2019165F0, + F521B4F503898BE2019165F0, + CAB79E8A05577D4700A80164, + CAB79E8B05577D4700A80164, + CAB79E8805577D4700A80164, + CAB79E8905577D4700A80164, + CABA04AC0405EB4D00A80164, + CABA04AB0405EB4D00A80164, + F521B4F603898BE2019165F0, + F521B4F703898BE2019165F0, + F521B4F803898BE2019165F0, + F521B4F903898BE2019165F0, + F521B4FA03898BE2019165F0, + F521B4FB03898BE2019165F0, + F521B4FC03898BE2019165F0, + F521B4FD03898BE2019165F0, + CAB79E8C05577D4700A80164, + CAB79E8D05577D4700A80164, + CAB79E8E05577D4700A80164, + CAB79E8F05577D4700A80164, + F521B4FE03898BE2019165F0, + F521B4FF03898BE2019165F0, + CAB79E9005577D4700A80164, + CAB79E9105577D4700A80164, + F521B50003898BE2019165F0, + F521B50103898BE2019165F0, + F521B50203898BE2019165F0, + F521B50303898BE2019165F0, + CAB79E9205577D4700A80164, + CAB79E9305577D4700A80164, + F521B50403898BE2019165F0, + F521B50503898BE2019165F0, + F521B50603898BE2019165F0, + F521B50703898BE2019165F0, + CAB79E9405577D4700A80164, + CAB79E9505577D4700A80164, + F521B50803898BE2019165F0, + F521B50903898BE2019165F0, + F521B50A03898BE2019165F0, + F521B50B03898BE2019165F0, + F521B50C03898BE2019165F0, + F521B50D03898BE2019165F0, + F521B50E03898BE2019165F0, + F521B50F03898BE2019165F0, + CAB79E9805577D4700A80164, + CAB79E9905577D4700A80164, + F521B51003898BE2019165F0, + F521B51103898BE2019165F0, + F521B51203898BE2019165F0, + F521B51303898BE2019165F0, + CAB79E9A05577D4700A80164, + CAB79E9B05577D4700A80164, + F521B51703898BE2019165F0, + F521B51603898BE2019165F0, + F521B51503898BE2019165F0, + F521B51403898BE2019165F0, + F521B51803898BE2019165F0, + F521B51903898BE2019165F0, + CAB79E9C05577D4700A80164, + CAB79E9D05577D4700A80164, + F521B51A03898BE2019165F0, + F521B51B03898BE2019165F0, + CAB79E9E05577D4700A80164, + CAB79E9F05577D4700A80164, + F521B51C03898BE2019165F0, + F521B51D03898BE2019165F0, + CAB79EA005577D4700A80164, + CAB79EA105577D4700A80164, + F521B51E03898BE2019165F0, + F521B51F03898BE2019165F0, + F521B52003898BE2019165F0, + F521B52103898BE2019165F0, + F521B52403898BE2019165F0, + F521B52503898BE2019165F0, + CA8E447303F748C200A80164, + CA8E447403F748C200A80164, + CAB79EA305577D4700A80164, + CAB79EA405577D4700A80164, + F521B52603898BE2019165F0, + F521B52703898BE2019165F0, + F521B52803898BE2019165F0, + F521B52903898BE2019165F0, + F521B52A03898BE2019165F0, + F521B52B03898BE2019165F0, + F521B52C03898BE2019165F0, + F521B52D03898BE2019165F0, + F521B52E03898BE2019165F0, + F521B52F03898BE2019165F0, + F5675F2703E3386E01A80164, + F5675F2803E3386E01A80164, + F521B53003898BE2019165F0, + F521B53103898BE2019165F0, + CAB79EA505577D4700A80164, + CAB79EA605577D4700A80164, + CAB79EA705577D4700A80164, + CAB79EA805577D4700A80164, + CAB79EA905577D4700A80164, + CAB79EAA05577D4700A80164, + F521B53203898BE2019165F0, + F521B53303898BE2019165F0, + CAB79EAB05577D4700A80164, + CAB79EAC05577D4700A80164, + CACE9BA803FA2DB400A80164, + CACE9BA703FA2DB400A80164, + CAB79EAD05577D4700A80164, + CAB79EAE05577D4700A80164, + CAB79EAF05577D4700A80164, + CAB79EB005577D4700A80164, + F521B53403898BE2019165F0, + F521B53503898BE2019165F0, + CAB79EB105577D4700A80164, + CAB79EB205577D4700A80164, + F521B53603898BE2019165F0, + F521B53703898BE2019165F0, + F521B53803898BE2019165F0, + F521B53903898BE2019165F0, + F521B53A03898BE2019165F0, + F521B53B03898BE2019165F0, + F521B53C03898BE2019165F0, + F521B53D03898BE2019165F0, + F521B53E03898BE2019165F0, + F521B53F03898BE2019165F0, + F521B54003898BE2019165F0, + F521B54103898BE2019165F0, + CAB79EB305577D4700A80164, + CAB79EB405577D4700A80164, + F521B54203898BE2019165F0, + F521B54303898BE2019165F0, + CAB79EB605577D4700A80164, + CAB79EB705577D4700A80164, + F521B54403898BE2019165F0, + F521B54503898BE2019165F0, + CAB79EB805577D4700A80164, + CAB79EB905577D4700A80164, + F521B54603898BE2019165F0, + F521B54703898BE2019165F0, + F521B54803898BE2019165F0, + F521B54903898BE2019165F0, + F521B54A03898BE2019165F0, + F521B54B03898BE2019165F0, + CAB79EBA05577D4700A80164, + CAB79EBB05577D4700A80164, + CAB79EBC05577D4700A80164, + CAB79EBD05577D4700A80164, + CAB79EBE05577D4700A80164, + CAB79EBF05577D4700A80164, + F521B54C03898BE2019165F0, + F521B54D03898BE2019165F0, + F521B54E03898BE2019165F0, + F521B54F03898BE2019165F0, + F521B55003898BE2019165F0, + F521B55103898BE2019165F0, + CAB79EC005577D4700A80164, + CAB79EC105577D4700A80164, + F521B55203898BE2019165F0, + F521B55303898BE2019165F0, + CAB02C03040B21EA00A80164, + CAB02C04040B21EA00A80164, + F521B55403898BE2019165F0, + F521B55503898BE2019165F0, + F521B55603898BE2019165F0, + F521B55703898BE2019165F0, + F521B55803898BE2019165F0, + F521B55903898BE2019165F0, + F521B55C03898BE2019165F0, + F521B55D03898BE2019165F0, + F521B55E03898BE2019165F0, + F521B55F03898BE2019165F0, + CAB79EC205577D4700A80164, + CAB79EC305577D4700A80164, + F521B56003898BE2019165F0, + F521B56103898BE2019165F0, + F521B56203898BE2019165F0, + F521B56303898BE2019165F0, + CAB79EC405577D4700A80164, + CAB79EC505577D4700A80164, + F521B56403898BE2019165F0, + F521B56503898BE2019165F0, + F521B56603898BE2019165F0, + F521B56703898BE2019165F0, + F521B56803898BE2019165F0, + F521B56903898BE2019165F0, + F5675F1703E336E101A80164, + F5675F1803E336E101A80164, + F521B56A03898BE2019165F0, + F521B56B03898BE2019165F0, + F5675F1903E336E101A80164, + CAB79EC605577D4700A80164, + CAB79EC705577D4700A80164, + CAB79EC805577D4700A80164, + CAB79EC905577D4700A80164, + CAB79ECB05577D4700A80164, + CAB79ECA05577D4700A80164, + ); + isa = PBXGroup; + name = Pixes; + path = src/Pixes; + refType = 2; + sourceTree = SOURCE_ROOT; + }; + F521B4E603898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_2grey.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4E703898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_2grey.h; + refType = 4; + sourceTree = ""; + }; + F521B4E803898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_a_2grey.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4E903898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_a_2grey.h; + refType = 4; + sourceTree = ""; + }; + F521B4EA03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_add.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4EB03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_add.h; + refType = 4; + sourceTree = ""; + }; + F521B4EC03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_aging.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4ED03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_aging.h; + refType = 4; + sourceTree = ""; + }; + F521B4EE03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_alpha.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4EF03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_alpha.h; + refType = 4; + sourceTree = ""; + }; + F521B4F003898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_bitmask.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4F103898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_bitmask.h; + refType = 4; + sourceTree = ""; + }; + F521B4F203898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_blob.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4F303898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_blob.h; + refType = 4; + sourceTree = ""; + }; + F521B4F403898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_buf.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4F503898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_buf.h; + refType = 4; + sourceTree = ""; + }; + F521B4F603898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_clearblock.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4F703898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_clearblock.h; + refType = 4; + sourceTree = ""; + }; + F521B4F803898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_color.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4F903898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_color.h; + refType = 4; + sourceTree = ""; + }; + F521B4FA03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_coloralpha.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4FB03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_coloralpha.h; + refType = 4; + sourceTree = ""; + }; + F521B4FC03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_colormatrix.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4FD03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_colormatrix.h; + refType = 4; + sourceTree = ""; + }; + F521B4FE03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_composite.cpp; + refType = 4; + sourceTree = ""; + }; + F521B4FF03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_composite.h; + refType = 4; + sourceTree = ""; + }; + F521B50003898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_convolve.cpp; + refType = 4; + sourceTree = ""; + }; + F521B50103898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_convolve.h; + refType = 4; + sourceTree = ""; + }; + F521B50203898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_coordinate.cpp; + refType = 4; + sourceTree = ""; + }; + F521B50303898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_coordinate.h; + refType = 4; + sourceTree = ""; + }; + F521B50403898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_curve.cpp; + refType = 4; + sourceTree = ""; + }; + F521B50503898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_curve.h; + refType = 4; + sourceTree = ""; + }; + F521B50603898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_data.cpp; + refType = 4; + sourceTree = ""; + }; + F521B50703898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_data.h; + refType = 4; + sourceTree = ""; + }; + F521B50803898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_diff.cpp; + refType = 4; + sourceTree = ""; + }; + F521B50903898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_diff.h; + refType = 4; + sourceTree = ""; + }; + F521B50A03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_dot.cpp; + refType = 4; + sourceTree = ""; + }; + F521B50B03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_dot.h; + refType = 4; + sourceTree = ""; + }; + F521B50C03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_draw.cpp; + refType = 4; + sourceTree = ""; + }; + F521B50D03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_draw.h; + refType = 4; + sourceTree = ""; + }; + F521B50E03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_dump.cpp; + refType = 4; + sourceTree = ""; + }; + F521B50F03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_dump.h; + refType = 4; + sourceTree = ""; + }; + F521B51003898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_dv.cpp; + refType = 4; + sourceTree = ""; + }; + F521B51103898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_dv.h; + refType = 4; + sourceTree = ""; + }; + F521B51203898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_dvLinux.cpp; + refType = 4; + sourceTree = ""; + }; + F521B51303898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_dvLinux.h; + refType = 4; + sourceTree = ""; + }; + F521B51403898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_film.cpp; + refType = 4; + sourceTree = ""; + }; + F521B51503898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_film.h; + refType = 4; + sourceTree = ""; + }; + F521B51603898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_filmDarwin.cpp; + refType = 4; + sourceTree = ""; + }; + F521B51703898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_filmDarwin.h; + refType = 4; + sourceTree = ""; + }; + F521B51803898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_filmDarwinYUV.cpp; + refType = 4; + sourceTree = ""; + }; + F521B51903898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_filmDarwinYUV.h; + refType = 4; + sourceTree = ""; + }; + F521B51A03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_filmLinux.cpp; + refType = 4; + sourceTree = ""; + }; + F521B51B03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_filmLinux.h; + refType = 4; + sourceTree = ""; + }; + F521B51C03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_filmNT.cpp; + refType = 4; + sourceTree = ""; + }; + F521B51D03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_filmNT.h; + refType = 4; + sourceTree = ""; + }; + F521B51E03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_filmYUV.cpp; + refType = 4; + sourceTree = ""; + }; + F521B51F03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_filmYUV.h; + refType = 4; + sourceTree = ""; + }; + F521B52003898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_flip.cpp; + refType = 4; + sourceTree = ""; + }; + F521B52103898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_flip.h; + refType = 4; + sourceTree = ""; + }; + F521B52403898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_gain.cpp; + refType = 4; + sourceTree = ""; + }; + F521B52503898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_gain.h; + refType = 4; + sourceTree = ""; + }; + F521B52603898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_histo.cpp; + refType = 4; + sourceTree = ""; + }; + F521B52703898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_histo.h; + refType = 4; + sourceTree = ""; + }; + F521B52803898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_hsv2rgb.cpp; + refType = 4; + sourceTree = ""; + }; + F521B52903898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_hsv2rgb.h; + refType = 4; + sourceTree = ""; + }; + F521B52A03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_image.cpp; + refType = 4; + sourceTree = ""; + }; + F521B52B03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_image.h; + refType = 4; + sourceTree = ""; + }; + F521B52C03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_imageInPlace.cpp; + refType = 4; + sourceTree = ""; + }; + F521B52D03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_imageInPlace.h; + refType = 4; + sourceTree = ""; + }; + F521B52E03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_indycam.cpp; + refType = 4; + sourceTree = ""; + }; + F521B52F03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_indycam.h; + refType = 4; + sourceTree = ""; + }; + F521B53003898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_invert.cpp; + refType = 4; + sourceTree = ""; + }; + F521B53103898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_invert.h; + refType = 4; + sourceTree = ""; + }; + F521B53203898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_mask.cpp; + refType = 4; + sourceTree = ""; + }; + F521B53303898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_mask.h; + refType = 4; + sourceTree = ""; + }; + F521B53403898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_movie.cpp; + refType = 4; + sourceTree = ""; + }; + F521B53503898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_movie.h; + refType = 4; + sourceTree = ""; + }; + F521B53603898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_movieYUV.cpp; + refType = 4; + sourceTree = ""; + }; + F521B53703898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_movieYUV.h; + refType = 4; + sourceTree = ""; + }; + F521B53803898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_multiimage.cpp; + refType = 4; + sourceTree = ""; + }; + F521B53903898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_multiimage.h; + refType = 4; + sourceTree = ""; + }; + F521B53A03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_multiply.cpp; + refType = 4; + sourceTree = ""; + }; + F521B53B03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_multiply.h; + refType = 4; + sourceTree = ""; + }; + F521B53C03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_normalize.cpp; + refType = 4; + sourceTree = ""; + }; + F521B53D03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_normalize.h; + refType = 4; + sourceTree = ""; + }; + F521B53E03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_offset.cpp; + refType = 4; + sourceTree = ""; + }; + F521B53F03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_offset.h; + refType = 4; + sourceTree = ""; + }; + F521B54003898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_pix2sig.cpp; + refType = 4; + sourceTree = ""; + }; + F521B54103898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_pix2sig.h; + refType = 4; + sourceTree = ""; + }; + F521B54203898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_puzzle.cpp; + refType = 4; + sourceTree = ""; + }; + F521B54303898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_puzzle.h; + refType = 4; + sourceTree = ""; + }; + F521B54403898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_rectangle.cpp; + refType = 4; + sourceTree = ""; + }; + F521B54503898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_rectangle.h; + refType = 4; + sourceTree = ""; + }; + F521B54603898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_resize.cpp; + refType = 4; + sourceTree = ""; + }; + F521B54703898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_resize.h; + refType = 4; + sourceTree = ""; + }; + F521B54803898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_rgb2hsv.cpp; + refType = 4; + sourceTree = ""; + }; + F521B54903898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_rgb2hsv.h; + refType = 4; + sourceTree = ""; + }; + F521B54A03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_rgba.cpp; + refType = 4; + sourceTree = ""; + }; + F521B54B03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_rgba.h; + refType = 4; + sourceTree = ""; + }; + F521B54C03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_set.cpp; + refType = 4; + sourceTree = ""; + }; + F521B54D03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_set.h; + refType = 4; + sourceTree = ""; + }; + F521B54E03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_sig2pix.cpp; + refType = 4; + sourceTree = ""; + }; + F521B54F03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_sig2pix.h; + refType = 4; + sourceTree = ""; + }; + F521B55003898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_snap.cpp; + refType = 4; + sourceTree = ""; + }; + F521B55103898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_snap.h; + refType = 4; + sourceTree = ""; + }; + F521B55203898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_subtract.cpp; + refType = 4; + sourceTree = ""; + }; + F521B55303898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_subtract.h; + refType = 4; + sourceTree = ""; + }; + F521B55403898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_takealpha.cpp; + refType = 4; + sourceTree = ""; + }; + F521B55503898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_takealpha.h; + refType = 4; + sourceTree = ""; + }; + F521B55603898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_test.cpp; + refType = 4; + sourceTree = ""; + }; + F521B55703898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_test.h; + refType = 4; + sourceTree = ""; + }; + F521B55803898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_texture.cpp; + refType = 4; + sourceTree = ""; + }; + F521B55903898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_texture.h; + refType = 4; + sourceTree = ""; + }; + F521B55C03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_threshold.cpp; + refType = 4; + sourceTree = ""; + }; + F521B55D03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_threshold.h; + refType = 4; + sourceTree = ""; + }; + F521B55E03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_video.cpp; + refType = 4; + sourceTree = ""; + }; + F521B55F03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_video.h; + refType = 4; + sourceTree = ""; + }; + F521B56003898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_videoDarwin.cpp; + refType = 4; + sourceTree = ""; + }; + F521B56103898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_videoDarwin.h; + refType = 4; + sourceTree = ""; + }; + F521B56203898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_videoLinux.cpp; + refType = 4; + sourceTree = ""; + }; + F521B56303898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_videoLinux.h; + refType = 4; + sourceTree = ""; + }; + F521B56403898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_videoNT.cpp; + refType = 4; + sourceTree = ""; + }; + F521B56503898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_videoNT.h; + refType = 4; + sourceTree = ""; + }; + F521B56603898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_videoSGI.cpp; + refType = 4; + sourceTree = ""; + }; + F521B56703898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_videoSGI.h; + refType = 4; + sourceTree = ""; + }; + F521B56803898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_write.cpp; + refType = 4; + sourceTree = ""; + }; + F521B56903898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_write.h; + refType = 4; + sourceTree = ""; + }; + F521B56A03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_zoom.cpp; + refType = 4; + sourceTree = ""; + }; + F521B56B03898BE2019165F0 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_zoom.h; + refType = 4; + sourceTree = ""; + }; + F521B5AB03898BE3019165F0 = { + fileRef = F521B40603898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5AC03898BE3019165F0 = { + fileRef = F521B40703898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5AD03898BE3019165F0 = { + fileRef = F521B40803898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5AE03898BE3019165F0 = { + fileRef = F521B40903898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5AF03898BE3019165F0 = { + fileRef = F521B40A03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5B003898BE3019165F0 = { + fileRef = F521B40B03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5B103898BE3019165F0 = { + fileRef = F521B40C03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5B203898BE3019165F0 = { + fileRef = F521B40D03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5B303898BE3019165F0 = { + fileRef = F521B40E03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5B403898BE3019165F0 = { + fileRef = F521B40F03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5B503898BE3019165F0 = { + fileRef = F521B41003898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5B603898BE3019165F0 = { + fileRef = F521B41103898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5B703898BE3019165F0 = { + fileRef = F521B41203898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5B803898BE3019165F0 = { + fileRef = F521B41303898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5B903898BE3019165F0 = { + fileRef = F521B41403898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5BA03898BE3019165F0 = { + fileRef = F521B41503898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5BB03898BE3019165F0 = { + fileRef = F521B41603898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5BE03898BE3019165F0 = { + fileRef = F521B41903898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5BF03898BE3019165F0 = { + fileRef = F521B41A03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5C003898BE3019165F0 = { + fileRef = F521B41B03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5C103898BE3019165F0 = { + fileRef = F521B41C03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5C203898BE3019165F0 = { + fileRef = F521B41D03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5C303898BE3019165F0 = { + fileRef = F521B41E03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5C403898BE3019165F0 = { + fileRef = F521B41F03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5C503898BE3019165F0 = { + fileRef = F521B42003898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5C603898BE3019165F0 = { + fileRef = F521B42103898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5C703898BE3019165F0 = { + fileRef = F521B42203898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5C803898BE3019165F0 = { + fileRef = F521B42303898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5C903898BE3019165F0 = { + fileRef = F521B42403898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5CC03898BE3019165F0 = { + fileRef = F521B42703898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5CD03898BE3019165F0 = { + fileRef = F521B42803898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5CE03898BE3019165F0 = { + fileRef = F521B42903898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5CF03898BE3019165F0 = { + fileRef = F521B42A03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5D003898BE3019165F0 = { + fileRef = F521B42B03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5D103898BE3019165F0 = { + fileRef = F521B42C03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5D203898BE3019165F0 = { + fileRef = F521B42D03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5D303898BE3019165F0 = { + fileRef = F521B42E03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5D403898BE3019165F0 = { + fileRef = F521B42F03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5D503898BE3019165F0 = { + fileRef = F521B43003898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5D603898BE3019165F0 = { + fileRef = F521B43103898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5D703898BE3019165F0 = { + fileRef = F521B43203898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5DA03898BE3019165F0 = { + fileRef = F521B43603898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5DB03898BE3019165F0 = { + fileRef = F521B43703898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5DC03898BE3019165F0 = { + fileRef = F521B43803898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5DD03898BE3019165F0 = { + fileRef = F521B43903898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5E003898BE3019165F0 = { + fileRef = F521B43D03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5E103898BE3019165F0 = { + fileRef = F521B43E03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5E203898BE3019165F0 = { + fileRef = F521B43F03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5E303898BE3019165F0 = { + fileRef = F521B44003898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5E403898BE3019165F0 = { + fileRef = F521B44103898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5E503898BE3019165F0 = { + fileRef = F521B44203898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5E603898BE3019165F0 = { + fileRef = F521B44303898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5E703898BE3019165F0 = { + fileRef = F521B44403898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5EE03898BE3019165F0 = { + fileRef = F521B44C03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5EF03898BE3019165F0 = { + fileRef = F521B44D03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5F003898BE3019165F0 = { + fileRef = F521B44F03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5F103898BE3019165F0 = { + fileRef = F521B45003898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5F203898BE3019165F0 = { + fileRef = F521B45103898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5F303898BE3019165F0 = { + fileRef = F521B45203898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5F403898BE3019165F0 = { + fileRef = F521B45303898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5F503898BE3019165F0 = { + fileRef = F521B45403898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5F603898BE3019165F0 = { + fileRef = F521B45503898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5F703898BE3019165F0 = { + fileRef = F521B45603898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5F803898BE3019165F0 = { + fileRef = F521B45703898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5F903898BE3019165F0 = { + fileRef = F521B45803898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5FA03898BE3019165F0 = { + fileRef = F521B45903898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5FB03898BE3019165F0 = { + fileRef = F521B45A03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5FC03898BE3019165F0 = { + fileRef = F521B45B03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5FD03898BE3019165F0 = { + fileRef = F521B45C03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5FE03898BE3019165F0 = { + fileRef = F521B45D03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B5FF03898BE3019165F0 = { + fileRef = F521B45E03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B60003898BE3019165F0 = { + fileRef = F521B45F03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B60103898BE3019165F0 = { + fileRef = F521B46003898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B60203898BE3019165F0 = { + fileRef = F521B46203898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B60303898BE3019165F0 = { + fileRef = F521B46403898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B60403898BE3019165F0 = { + fileRef = F521B46503898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B60503898BE3019165F0 = { + fileRef = F521B46603898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B60603898BE3019165F0 = { + fileRef = F521B46703898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B60703898BE3019165F0 = { + fileRef = F521B46803898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B60803898BE3019165F0 = { + fileRef = F521B46903898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B60903898BE3019165F0 = { + fileRef = F521B46A03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B60A03898BE3019165F0 = { + fileRef = F521B46B03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B60B03898BE3019165F0 = { + fileRef = F521B46C03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B60C03898BE3019165F0 = { + fileRef = F521B46D03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B60D03898BE3019165F0 = { + fileRef = F521B46E03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B60E03898BE3019165F0 = { + fileRef = F521B46F03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B60F03898BE3019165F0 = { + fileRef = F521B47003898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B61003898BE3019165F0 = { + fileRef = F521B47103898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B61103898BE3019165F0 = { + fileRef = F521B47203898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B61203898BE3019165F0 = { + fileRef = F521B47303898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B61303898BE3019165F0 = { + fileRef = F521B47403898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B61B03898BE3019165F0 = { + fileRef = F521B47C03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B61C03898BE3019165F0 = { + fileRef = F521B47D03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B61D03898BE3019165F0 = { + fileRef = F521B47F03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B61E03898BE3019165F0 = { + fileRef = F521B48003898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B61F03898BE3019165F0 = { + fileRef = F521B48103898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B62003898BE3019165F0 = { + fileRef = F521B48203898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B62103898BE3019165F0 = { + fileRef = F521B48303898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B62203898BE3019165F0 = { + fileRef = F521B48403898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B62303898BE3019165F0 = { + fileRef = F521B48503898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B62403898BE3019165F0 = { + fileRef = F521B48603898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B62503898BE3019165F0 = { + fileRef = F521B48703898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B62603898BE3019165F0 = { + fileRef = F521B48803898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B62703898BE3019165F0 = { + fileRef = F521B48903898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B62803898BE3019165F0 = { + fileRef = F521B48A03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B62903898BE3019165F0 = { + fileRef = F521B48B03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B62A03898BE3019165F0 = { + fileRef = F521B48C03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B62B03898BE3019165F0 = { + fileRef = F521B48D03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B62C03898BE3019165F0 = { + fileRef = F521B48E03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B62D03898BE3019165F0 = { + fileRef = F521B48F03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B62E03898BE3019165F0 = { + fileRef = F521B49003898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B62F03898BE3019165F0 = { + fileRef = F521B49103898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B63003898BE3019165F0 = { + fileRef = F521B49203898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B63103898BE3019165F0 = { + fileRef = F521B49303898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B63203898BE3019165F0 = { + fileRef = F521B49403898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B63303898BE3019165F0 = { + fileRef = F521B49503898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B63403898BE3019165F0 = { + fileRef = F521B49603898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B63503898BE3019165F0 = { + fileRef = F521B49803898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B63603898BE3019165F0 = { + fileRef = F521B49903898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B63703898BE3019165F0 = { + fileRef = F521B49A03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B63803898BE3019165F0 = { + fileRef = F521B49B03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B63903898BE3019165F0 = { + fileRef = F521B49C03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B63A03898BE3019165F0 = { + fileRef = F521B49D03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B63B03898BE3019165F0 = { + fileRef = F521B49E03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B63C03898BE3019165F0 = { + fileRef = F521B49F03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B63D03898BE3019165F0 = { + fileRef = F521B4A003898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B63E03898BE3019165F0 = { + fileRef = F521B4A103898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B63F03898BE3019165F0 = { + fileRef = F521B4A203898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B64003898BE3019165F0 = { + fileRef = F521B4A303898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B64103898BE3019165F0 = { + fileRef = F521B4A403898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B64203898BE3019165F0 = { + fileRef = F521B4A503898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B64303898BE3019165F0 = { + fileRef = F521B4A603898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B64403898BE3019165F0 = { + fileRef = F521B4A703898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B64503898BE3019165F0 = { + fileRef = F521B4A803898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B64603898BE3019165F0 = { + fileRef = F521B4A903898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B64703898BE3019165F0 = { + fileRef = F521B4AA03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B64803898BE3019165F0 = { + fileRef = F521B4AB03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B64903898BE3019165F0 = { + fileRef = F521B4AC03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B64A03898BE3019165F0 = { + fileRef = F521B4AD03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B64B03898BE3019165F0 = { + fileRef = F521B4AE03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B64C03898BE3019165F0 = { + fileRef = F521B4AF03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B64D03898BE3019165F0 = { + fileRef = F521B4B103898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B64E03898BE3019165F0 = { + fileRef = F521B4B203898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B64F03898BE3019165F0 = { + fileRef = F521B4B303898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B65003898BE3019165F0 = { + fileRef = F521B4B403898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B65103898BE3019165F0 = { + fileRef = F521B4B503898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B65203898BE3019165F0 = { + fileRef = F521B4B703898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B65303898BE3019165F0 = { + fileRef = F521B4B803898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B65403898BE3019165F0 = { + fileRef = F521B4B903898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B65503898BE3019165F0 = { + fileRef = F521B4BA03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B65603898BE3019165F0 = { + fileRef = F521B4BB03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B65703898BE3019165F0 = { + fileRef = F521B4BC03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B65803898BE3019165F0 = { + fileRef = F521B4BD03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B65903898BE3019165F0 = { + fileRef = F521B4BF03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B65A03898BE3019165F0 = { + fileRef = F521B4C003898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B65B03898BE3019165F0 = { + fileRef = F521B4C203898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B65C03898BE3019165F0 = { + fileRef = F521B4C303898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B65D03898BE3019165F0 = { + fileRef = F521B4C603898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B65E03898BE3019165F0 = { + fileRef = F521B4C703898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B65F03898BE3019165F0 = { + fileRef = F521B4C803898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B66003898BE3019165F0 = { + fileRef = F521B4C903898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B66103898BE3019165F0 = { + fileRef = F521B4CA03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B66203898BE3019165F0 = { + fileRef = F521B4CB03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B66303898BE3019165F0 = { + fileRef = F521B4CC03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B66403898BE3019165F0 = { + fileRef = F521B4CD03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B66503898BE3019165F0 = { + fileRef = F521B4CE03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B66603898BE3019165F0 = { + fileRef = F521B4CF03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B66703898BE3019165F0 = { + fileRef = F521B4D003898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B66803898BE3019165F0 = { + fileRef = F521B4D103898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B66903898BE3019165F0 = { + fileRef = F521B4D203898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B66A03898BE3019165F0 = { + fileRef = F521B4D303898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B66B03898BE3019165F0 = { + fileRef = F521B4D403898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B66C03898BE3019165F0 = { + fileRef = F521B4D503898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B66D03898BE3019165F0 = { + fileRef = F521B4D603898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B66E03898BE3019165F0 = { + fileRef = F521B4D703898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B66F03898BE3019165F0 = { + fileRef = F521B4D803898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B67003898BE3019165F0 = { + fileRef = F521B4D903898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B67103898BE3019165F0 = { + fileRef = F521B4DA03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B67203898BE3019165F0 = { + fileRef = F521B4DB03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B67303898BE3019165F0 = { + fileRef = F521B4DC03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B67403898BE3019165F0 = { + fileRef = F521B4DD03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B67503898BE3019165F0 = { + fileRef = F521B4DE03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B67603898BE3019165F0 = { + fileRef = F521B4DF03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B67703898BE3019165F0 = { + fileRef = F521B4E003898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B67803898BE3019165F0 = { + fileRef = F521B4E103898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B67903898BE3019165F0 = { + fileRef = F521B4E203898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B67A03898BE3019165F0 = { + fileRef = F521B4E303898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B67B03898BE3019165F0 = { + fileRef = F521B4E603898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B67C03898BE3019165F0 = { + fileRef = F521B4E703898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B67D03898BE3019165F0 = { + fileRef = F521B4E803898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B67E03898BE3019165F0 = { + fileRef = F521B4E903898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B67F03898BE3019165F0 = { + fileRef = F521B4EA03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B68003898BE3019165F0 = { + fileRef = F521B4EB03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B68103898BE3019165F0 = { + fileRef = F521B4EC03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B68203898BE3019165F0 = { + fileRef = F521B4ED03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B68303898BE3019165F0 = { + fileRef = F521B4EE03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B68403898BE3019165F0 = { + fileRef = F521B4EF03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B68503898BE3019165F0 = { + fileRef = F521B4F003898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B68603898BE3019165F0 = { + fileRef = F521B4F103898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B68703898BE3019165F0 = { + fileRef = F521B4F203898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B68803898BE3019165F0 = { + fileRef = F521B4F303898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B68903898BE3019165F0 = { + fileRef = F521B4F403898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B68A03898BE3019165F0 = { + fileRef = F521B4F503898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B68B03898BE3019165F0 = { + fileRef = F521B4F603898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B68C03898BE3019165F0 = { + fileRef = F521B4F703898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B68D03898BE3019165F0 = { + fileRef = F521B4F803898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B68E03898BE3019165F0 = { + fileRef = F521B4F903898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B68F03898BE3019165F0 = { + fileRef = F521B4FA03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B69003898BE3019165F0 = { + fileRef = F521B4FB03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B69103898BE3019165F0 = { + fileRef = F521B4FC03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B69203898BE3019165F0 = { + fileRef = F521B4FD03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B69303898BE3019165F0 = { + fileRef = F521B4FE03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B69403898BE3019165F0 = { + fileRef = F521B4FF03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B69503898BE3019165F0 = { + fileRef = F521B50003898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B69603898BE3019165F0 = { + fileRef = F521B50103898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B69703898BE3019165F0 = { + fileRef = F521B50203898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B69803898BE3019165F0 = { + fileRef = F521B50303898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B69903898BE3019165F0 = { + fileRef = F521B50403898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B69A03898BE3019165F0 = { + fileRef = F521B50503898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B69B03898BE3019165F0 = { + fileRef = F521B50603898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B69C03898BE3019165F0 = { + fileRef = F521B50703898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B69D03898BE3019165F0 = { + fileRef = F521B50803898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B69E03898BE3019165F0 = { + fileRef = F521B50903898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B69F03898BE3019165F0 = { + fileRef = F521B50A03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6A003898BE3019165F0 = { + fileRef = F521B50B03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6A103898BE3019165F0 = { + fileRef = F521B50C03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6A203898BE3019165F0 = { + fileRef = F521B50D03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6A303898BE3019165F0 = { + fileRef = F521B50E03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6A403898BE3019165F0 = { + fileRef = F521B50F03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6A503898BE3019165F0 = { + fileRef = F521B51003898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6A603898BE3019165F0 = { + fileRef = F521B51103898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6A903898BE3019165F0 = { + fileRef = F521B51403898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6AA03898BE3019165F0 = { + fileRef = F521B51503898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6AD03898BE3019165F0 = { + fileRef = F521B51803898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6AE03898BE3019165F0 = { + fileRef = F521B51903898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6B303898BE3019165F0 = { + fileRef = F521B51E03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6B403898BE3019165F0 = { + fileRef = F521B51F03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6B503898BE3019165F0 = { + fileRef = F521B52003898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6B603898BE3019165F0 = { + fileRef = F521B52103898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6B903898BE3019165F0 = { + fileRef = F521B52403898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6BA03898BE3019165F0 = { + fileRef = F521B52503898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6BB03898BE3019165F0 = { + fileRef = F521B52603898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6BC03898BE3019165F0 = { + fileRef = F521B52703898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6BD03898BE3019165F0 = { + fileRef = F521B52803898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6BE03898BE3019165F0 = { + fileRef = F521B52903898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6BF03898BE3019165F0 = { + fileRef = F521B52A03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6C003898BE3019165F0 = { + fileRef = F521B52B03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6C103898BE3019165F0 = { + fileRef = F521B52C03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6C203898BE3019165F0 = { + fileRef = F521B52D03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6C503898BE3019165F0 = { + fileRef = F521B53003898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6C603898BE3019165F0 = { + fileRef = F521B53103898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6C703898BE3019165F0 = { + fileRef = F521B53203898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6C803898BE3019165F0 = { + fileRef = F521B53303898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6CB03898BE3019165F0 = { + fileRef = F521B53603898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6CC03898BE3019165F0 = { + fileRef = F521B53703898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6CD03898BE3019165F0 = { + fileRef = F521B53803898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6CE03898BE3019165F0 = { + fileRef = F521B53903898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6CF03898BE3019165F0 = { + fileRef = F521B53A03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6D003898BE3019165F0 = { + fileRef = F521B53B03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6D103898BE3019165F0 = { + fileRef = F521B53C03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6D203898BE3019165F0 = { + fileRef = F521B53D03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6D303898BE3019165F0 = { + fileRef = F521B53E03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6D403898BE3019165F0 = { + fileRef = F521B53F03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6D503898BE3019165F0 = { + fileRef = F521B54003898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6D603898BE3019165F0 = { + fileRef = F521B54103898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6D703898BE3019165F0 = { + fileRef = F521B54203898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6D803898BE3019165F0 = { + fileRef = F521B54303898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6D903898BE3019165F0 = { + fileRef = F521B54403898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6DA03898BE3019165F0 = { + fileRef = F521B54503898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6DB03898BE3019165F0 = { + fileRef = F521B54603898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6DC03898BE3019165F0 = { + fileRef = F521B54703898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6DD03898BE3019165F0 = { + fileRef = F521B54803898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6DE03898BE3019165F0 = { + fileRef = F521B54903898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6DF03898BE3019165F0 = { + fileRef = F521B54A03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6E003898BE3019165F0 = { + fileRef = F521B54B03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6E103898BE3019165F0 = { + fileRef = F521B54C03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6E203898BE3019165F0 = { + fileRef = F521B54D03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6E303898BE3019165F0 = { + fileRef = F521B54E03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6E403898BE3019165F0 = { + fileRef = F521B54F03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6E503898BE3019165F0 = { + fileRef = F521B55003898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6E603898BE3019165F0 = { + fileRef = F521B55103898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6E703898BE3019165F0 = { + fileRef = F521B55203898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6E803898BE3019165F0 = { + fileRef = F521B55303898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6E903898BE3019165F0 = { + fileRef = F521B55403898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6EA03898BE3019165F0 = { + fileRef = F521B55503898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6EB03898BE3019165F0 = { + fileRef = F521B55603898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6EC03898BE3019165F0 = { + fileRef = F521B55703898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6ED03898BE3019165F0 = { + fileRef = F521B55803898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6EE03898BE3019165F0 = { + fileRef = F521B55903898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6F103898BE3019165F0 = { + fileRef = F521B55C03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6F203898BE3019165F0 = { + fileRef = F521B55D03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6F303898BE3019165F0 = { + fileRef = F521B55E03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6F403898BE3019165F0 = { + fileRef = F521B55F03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6F503898BE3019165F0 = { + fileRef = F521B56003898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6F603898BE3019165F0 = { + fileRef = F521B56103898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6FD03898BE3019165F0 = { + fileRef = F521B56803898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6FE03898BE3019165F0 = { + fileRef = F521B56903898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B6FF03898BE3019165F0 = { + fileRef = F521B56A03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F521B70003898BE3019165F0 = { + fileRef = F521B56B03898BE2019165F0; + isa = PBXBuildFile; + settings = { + }; + }; + F5675F1703E336E101A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_yuv.cpp; + refType = 4; + sourceTree = ""; + }; + F5675F1803E336E101A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_yuv.h; + refType = 4; + sourceTree = ""; + }; + F5675F1903E336E101A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = setup.h; + refType = 4; + sourceTree = ""; + }; + F5675F1A03E336E101A80164 = { + fileRef = F5675F1703E336E101A80164; + isa = PBXBuildFile; + settings = { + }; + }; + F5675F1B03E336E101A80164 = { + fileRef = F5675F1803E336E101A80164; + isa = PBXBuildFile; + settings = { + }; + }; + F5675F2703E3386E01A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = pix_info.cpp; + refType = 4; + sourceTree = ""; + }; + F5675F2803E3386E01A80164 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = pix_info.h; + refType = 4; + sourceTree = ""; + }; + F5675F2903E3386E01A80164 = { + fileRef = F5675F2703E3386E01A80164; + isa = PBXBuildFile; + settings = { + }; + }; + F5675F2A03E3386E01A80164 = { + fileRef = F5675F2803E3386E01A80164; + isa = PBXBuildFile; + settings = { + }; + }; + F5BDD20A0389F0EC0175848A = { + children = ( + F5BDD20B0389F11F0175848A, + F5BDD20C0389F11F0175848A, + F5BDD20D0389F11F0175848A, + F5BDD20E0389F11F0175848A, + F5BDD20F0389F11F0175848A, + ); + isa = PBXGroup; + name = frameworks; + refType = 4; + sourceTree = ""; + }; + F5BDD20B0389F11F0175848A = { + isa = PBXFileReference; + lastKnownFileType = wrapper.framework; + name = AGL.framework; + path = /System/Library/Frameworks/AGL.framework; + refType = 0; + sourceTree = ""; + }; + F5BDD20C0389F11F0175848A = { + isa = PBXFileReference; + lastKnownFileType = wrapper.framework; + name = Carbon.framework; + path = /System/Library/Frameworks/Carbon.framework; + refType = 0; + sourceTree = ""; + }; + F5BDD20D0389F11F0175848A = { + isa = PBXFileReference; + lastKnownFileType = wrapper.framework; + name = GLUT.framework; + path = /System/Library/Frameworks/GLUT.framework; + refType = 0; + sourceTree = ""; + }; + F5BDD20E0389F11F0175848A = { + isa = PBXFileReference; + lastKnownFileType = wrapper.framework; + name = OpenGL.framework; + path = /System/Library/Frameworks/OpenGL.framework; + refType = 0; + sourceTree = ""; + }; + F5BDD20F0389F11F0175848A = { + isa = PBXFileReference; + lastKnownFileType = wrapper.framework; + name = QuickTime.framework; + path = /System/Library/Frameworks/QuickTime.framework; + refType = 0; + sourceTree = ""; + }; + F5BDD2F90389F1210175848A = { + fileRef = F5BDD20B0389F11F0175848A; + isa = PBXBuildFile; + settings = { + }; + }; + F5BDD2FA0389F1210175848A = { + fileRef = F5BDD20C0389F11F0175848A; + isa = PBXBuildFile; + settings = { + }; + }; + F5BDD2FB0389F1210175848A = { + fileRef = F5BDD20D0389F11F0175848A; + isa = PBXBuildFile; + settings = { + }; + }; + F5BDD2FC0389F1210175848A = { + fileRef = F5BDD20E0389F11F0175848A; + isa = PBXBuildFile; + settings = { + }; + }; + F5BDD2FD0389F1210175848A = { + fileRef = F5BDD20F0389F11F0175848A; + isa = PBXBuildFile; + settings = { + }; + }; + F5D2CF710389DD3B01AC9AE7 = { + children = ( + F5D2CF720389DD3B01AC9AE7, + F5D2CF730389DD3B01AC9AE7, + ); + isa = PBXGroup; + path = darwinStuff; + refType = 4; + sourceTree = ""; + }; + F5D2CF720389DD3B01AC9AE7 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + path = macosx_math.cpp; + refType = 4; + sourceTree = ""; + }; + F5D2CF730389DD3B01AC9AE7 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + path = macosx_math.h; + refType = 4; + sourceTree = ""; + }; + F5D2CF760389DD7201AC9AE7 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = m_pd.h; + path = ../../pd/src/m_pd.h; + refType = 2; + sourceTree = SOURCE_ROOT; + }; + F5D2CF770389DD7201AC9AE7 = { + fileRef = F5D2CF760389DD7201AC9AE7; + isa = PBXBuildFile; + settings = { + }; + }; +//F50 +//F51 +//F52 +//F53 +//F54 +//FD0 +//FD1 +//FD2 +//FD3 +//FD4 + FD926280075D4BFD003B49DD = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = configDarwin.h; + path = src/Base/configDarwin.h; + refType = 2; + sourceTree = SOURCE_ROOT; + }; + FD926281075D4BFD003B49DD = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + name = GemOutput.cpp; + path = src/Base/GemOutput.cpp; + refType = 2; + sourceTree = SOURCE_ROOT; + }; + FD926282075D4BFD003B49DD = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = GemOutput.h; + path = src/Base/GemOutput.h; + refType = 2; + sourceTree = SOURCE_ROOT; + }; + FD926283075D4BFD003B49DD = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = GemPixPete.h; + path = src/Base/GemPixPete.h; + refType = 2; + sourceTree = SOURCE_ROOT; + }; + FD926284075D4BFD003B49DD = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = GemSIMD.h; + path = src/Base/GemSIMD.h; + refType = 2; + sourceTree = SOURCE_ROOT; + }; + FD926285075D4BFD003B49DD = { + fileRef = FD926280075D4BFD003B49DD; + isa = PBXBuildFile; + settings = { + }; + }; + FD926286075D4BFD003B49DD = { + fileRef = FD926281075D4BFD003B49DD; + isa = PBXBuildFile; + settings = { + }; + }; + FD926287075D4BFD003B49DD = { + fileRef = FD926282075D4BFD003B49DD; + isa = PBXBuildFile; + settings = { + }; + }; + FD926288075D4BFD003B49DD = { + fileRef = FD926283075D4BFD003B49DD; + isa = PBXBuildFile; + settings = { + }; + }; + FD926289075D4BFD003B49DD = { + fileRef = FD926284075D4BFD003B49DD; + isa = PBXBuildFile; + settings = { + }; + }; + FD92628A075D4C12003B49DD = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + name = gemcontrol.cpp; + path = src/Controls/gemcontrol.cpp; + refType = 2; + sourceTree = SOURCE_ROOT; + }; + FD92628B075D4C12003B49DD = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = gemcontrol.h; + path = src/Controls/gemcontrol.h; + refType = 2; + sourceTree = SOURCE_ROOT; + }; + FD92628C075D4C12003B49DD = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + name = gemwindow.cpp; + path = src/Controls/gemwindow.cpp; + refType = 2; + sourceTree = SOURCE_ROOT; + }; + FD92628D075D4C12003B49DD = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = gemwindow.h; + path = src/Controls/gemwindow.h; + refType = 2; + sourceTree = SOURCE_ROOT; + }; + FD92628F075D4C12003B49DD = { + fileRef = FD92628A075D4C12003B49DD; + isa = PBXBuildFile; + settings = { + }; + }; + FD926290075D4C12003B49DD = { + fileRef = FD92628B075D4C12003B49DD; + isa = PBXBuildFile; + settings = { + }; + }; + FD926291075D4C12003B49DD = { + fileRef = FD92628C075D4C12003B49DD; + isa = PBXBuildFile; + settings = { + }; + }; + FD926292075D4C12003B49DD = { + fileRef = FD92628D075D4C12003B49DD; + isa = PBXBuildFile; + settings = { + }; + }; + FD926296075D4C37003B49DD = { + children = ( + FD926297075D4C4C003B49DD, + FD926298075D4C4C003B49DD, + ); + isa = PBXGroup; + name = Output; + path = src/Output; + refType = 4; + sourceTree = ""; + }; + FD926297075D4C4C003B49DD = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + name = gemextwin.cpp; + path = src/Output/gemextwin.cpp; + refType = 2; + sourceTree = SOURCE_ROOT; + }; + FD926298075D4C4C003B49DD = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = gemextwin.h; + path = src/Output/gemextwin.h; + refType = 2; + sourceTree = SOURCE_ROOT; + }; + FD926299075D4C4C003B49DD = { + fileRef = FD926297075D4C4C003B49DD; + isa = PBXBuildFile; + settings = { + }; + }; + FD92629A075D4C4C003B49DD = { + fileRef = FD926298075D4C4C003B49DD; + isa = PBXBuildFile; + settings = { + }; + }; + }; + rootObject = F521B3F903898A4A019165F0; +} diff --git a/Gem/build/osx-xcode/Gem.xcodeproj/project.pbxproj b/Gem/build/osx-xcode/Gem.xcodeproj/project.pbxproj new file mode 100644 index 0000000..41ab334 --- /dev/null +++ b/Gem/build/osx-xcode/Gem.xcodeproj/project.pbxproj @@ -0,0 +1,8768 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 42; + objects = { + +/* Begin PBXBuildFile section */ + 3A2DCFC70E40974100767D22 /* accumrotate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF7C0E40974100767D22 /* accumrotate.cpp */; }; + 3A2DCFC80E40974100767D22 /* accumrotate.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF7D0E40974100767D22 /* accumrotate.h */; }; + 3A2DCFC90E40974100767D22 /* alpha.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF7E0E40974100767D22 /* alpha.cpp */; }; + 3A2DCFCA0E40974100767D22 /* alpha.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF7F0E40974100767D22 /* alpha.h */; }; + 3A2DCFCB0E40974100767D22 /* ambient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF800E40974100767D22 /* ambient.cpp */; }; + 3A2DCFCC0E40974100767D22 /* ambient.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF810E40974100767D22 /* ambient.h */; }; + 3A2DCFCD0E40974100767D22 /* ambientRGB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF820E40974100767D22 /* ambientRGB.cpp */; }; + 3A2DCFCE0E40974100767D22 /* ambientRGB.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF830E40974100767D22 /* ambientRGB.h */; }; + 3A2DCFCF0E40974100767D22 /* camera.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF840E40974100767D22 /* camera.cpp */; }; + 3A2DCFD00E40974100767D22 /* camera.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF850E40974100767D22 /* camera.h */; }; + 3A2DCFD10E40974100767D22 /* color.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF860E40974100767D22 /* color.cpp */; }; + 3A2DCFD20E40974100767D22 /* color.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF870E40974100767D22 /* color.h */; }; + 3A2DCFD30E40974100767D22 /* colorRGB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF880E40974100767D22 /* colorRGB.cpp */; }; + 3A2DCFD40E40974100767D22 /* colorRGB.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF890E40974100767D22 /* colorRGB.h */; }; + 3A2DCFD50E40974100767D22 /* depth.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF8A0E40974100767D22 /* depth.cpp */; }; + 3A2DCFD60E40974100767D22 /* depth.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF8B0E40974100767D22 /* depth.h */; }; + 3A2DCFD70E40974100767D22 /* diffuse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF8C0E40974100767D22 /* diffuse.cpp */; }; + 3A2DCFD80E40974100767D22 /* diffuse.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF8D0E40974100767D22 /* diffuse.h */; }; + 3A2DCFD90E40974100767D22 /* diffuseRGB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF8E0E40974100767D22 /* diffuseRGB.cpp */; }; + 3A2DCFDA0E40974100767D22 /* diffuseRGB.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF8F0E40974100767D22 /* diffuseRGB.h */; }; + 3A2DCFDB0E40974100767D22 /* emission.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF900E40974100767D22 /* emission.cpp */; }; + 3A2DCFDC0E40974100767D22 /* emission.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF910E40974100767D22 /* emission.h */; }; + 3A2DCFDD0E40974100767D22 /* emissionRGB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF920E40974100767D22 /* emissionRGB.cpp */; }; + 3A2DCFDE0E40974100767D22 /* emissionRGB.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF930E40974100767D22 /* emissionRGB.h */; }; + 3A2DCFDF0E40974100767D22 /* fragment_program.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF940E40974100767D22 /* fragment_program.cpp */; }; + 3A2DCFE00E40974100767D22 /* fragment_program.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF950E40974100767D22 /* fragment_program.h */; }; + 3A2DCFE10E40974100767D22 /* glsl_fragment.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF960E40974100767D22 /* glsl_fragment.cpp */; }; + 3A2DCFE20E40974100767D22 /* glsl_fragment.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF970E40974100767D22 /* glsl_fragment.h */; }; + 3A2DCFE30E40974100767D22 /* glsl_program.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF980E40974100767D22 /* glsl_program.cpp */; }; + 3A2DCFE40E40974100767D22 /* glsl_program.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF990E40974100767D22 /* glsl_program.h */; }; + 3A2DCFE50E40974100767D22 /* glsl_vertex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF9A0E40974100767D22 /* glsl_vertex.cpp */; }; + 3A2DCFE60E40974100767D22 /* glsl_vertex.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF9B0E40974100767D22 /* glsl_vertex.h */; }; + 3A2DCFE70E40974100767D22 /* linear_path.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF9C0E40974100767D22 /* linear_path.cpp */; }; + 3A2DCFE80E40974100767D22 /* linear_path.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF9D0E40974100767D22 /* linear_path.h */; }; + 3A2DCFEA0E40974100767D22 /* ortho.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF9F0E40974100767D22 /* ortho.cpp */; }; + 3A2DCFEB0E40974100767D22 /* ortho.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFA00E40974100767D22 /* ortho.h */; }; + 3A2DCFEC0E40974100767D22 /* polygon_smooth.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFA10E40974100767D22 /* polygon_smooth.cpp */; }; + 3A2DCFED0E40974100767D22 /* polygon_smooth.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFA20E40974100767D22 /* polygon_smooth.h */; }; + 3A2DCFEE0E40974100767D22 /* rotate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFA30E40974100767D22 /* rotate.cpp */; }; + 3A2DCFEF0E40974100767D22 /* rotate.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFA40E40974100767D22 /* rotate.h */; }; + 3A2DCFF00E40974100767D22 /* rotateXYZ.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFA50E40974100767D22 /* rotateXYZ.cpp */; }; + 3A2DCFF10E40974100767D22 /* rotateXYZ.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFA60E40974100767D22 /* rotateXYZ.h */; }; + 3A2DCFF20E40974100767D22 /* scale.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFA70E40974100767D22 /* scale.cpp */; }; + 3A2DCFF30E40974100767D22 /* scale.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFA80E40974100767D22 /* scale.h */; }; + 3A2DCFF40E40974100767D22 /* scaleXYZ.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFA90E40974100767D22 /* scaleXYZ.cpp */; }; + 3A2DCFF50E40974100767D22 /* scaleXYZ.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFAA0E40974100767D22 /* scaleXYZ.h */; }; + 3A2DCFF60E40974100767D22 /* separator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFAB0E40974100767D22 /* separator.cpp */; }; + 3A2DCFF70E40974100767D22 /* separator.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFAC0E40974100767D22 /* separator.h */; }; + 3A2DCFF80E40974100767D22 /* shearXY.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFAD0E40974100767D22 /* shearXY.cpp */; }; + 3A2DCFF90E40974100767D22 /* shearXY.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFAE0E40974100767D22 /* shearXY.h */; }; + 3A2DCFFA0E40974100767D22 /* shearXZ.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFAF0E40974100767D22 /* shearXZ.cpp */; }; + 3A2DCFFB0E40974100767D22 /* shearXZ.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFB00E40974100767D22 /* shearXZ.h */; }; + 3A2DCFFC0E40974100767D22 /* shearYX.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFB10E40974100767D22 /* shearYX.cpp */; }; + 3A2DCFFD0E40974100767D22 /* shearYX.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFB20E40974100767D22 /* shearYX.h */; }; + 3A2DCFFE0E40974100767D22 /* shearYZ.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFB30E40974100767D22 /* shearYZ.cpp */; }; + 3A2DCFFF0E40974100767D22 /* shearYZ.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFB40E40974100767D22 /* shearYZ.h */; }; + 3A2DD0000E40974100767D22 /* shearZX.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFB50E40974100767D22 /* shearZX.cpp */; }; + 3A2DD0010E40974100767D22 /* shearZX.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFB60E40974100767D22 /* shearZX.h */; }; + 3A2DD0020E40974100767D22 /* shearZY.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFB70E40974100767D22 /* shearZY.cpp */; }; + 3A2DD0030E40974100767D22 /* shearZY.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFB80E40974100767D22 /* shearZY.h */; }; + 3A2DD0040E40974100767D22 /* shininess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFB90E40974100767D22 /* shininess.cpp */; }; + 3A2DD0050E40974100767D22 /* shininess.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFBA0E40974100767D22 /* shininess.h */; }; + 3A2DD0060E40974100767D22 /* specular.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFBB0E40974100767D22 /* specular.cpp */; }; + 3A2DD0070E40974100767D22 /* specular.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFBC0E40974100767D22 /* specular.h */; }; + 3A2DD0080E40974100767D22 /* specularRGB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFBD0E40974100767D22 /* specularRGB.cpp */; }; + 3A2DD0090E40974100767D22 /* specularRGB.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFBE0E40974100767D22 /* specularRGB.h */; }; + 3A2DD00A0E40974100767D22 /* spline_path.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFBF0E40974100767D22 /* spline_path.cpp */; }; + 3A2DD00B0E40974100767D22 /* spline_path.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFC00E40974100767D22 /* spline_path.h */; }; + 3A2DD00C0E40974100767D22 /* translate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFC10E40974100767D22 /* translate.cpp */; }; + 3A2DD00D0E40974100767D22 /* translate.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFC20E40974100767D22 /* translate.h */; }; + 3A2DD00E0E40974100767D22 /* translateXYZ.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFC30E40974100767D22 /* translateXYZ.cpp */; }; + 3A2DD00F0E40974100767D22 /* translateXYZ.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFC40E40974100767D22 /* translateXYZ.h */; }; + 3A2DD0100E40974100767D22 /* vertex_program.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFC50E40974100767D22 /* vertex_program.cpp */; }; + 3A2DD0110E40974100767D22 /* vertex_program.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFC60E40974100767D22 /* vertex_program.h */; }; + 3A2DD0190E40975A00767D22 /* light.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0120E40975A00767D22 /* light.cpp */; }; + 3A2DD01A0E40975A00767D22 /* light.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0130E40975A00767D22 /* light.h */; }; + 3A2DD01C0E40975A00767D22 /* spot_light.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0150E40975A00767D22 /* spot_light.cpp */; }; + 3A2DD01D0E40975A00767D22 /* spot_light.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0160E40975A00767D22 /* spot_light.h */; }; + 3A2DD01E0E40975A00767D22 /* world_light.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0170E40975A00767D22 /* world_light.cpp */; }; + 3A2DD01F0E40975A00767D22 /* world_light.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0180E40975A00767D22 /* world_light.h */; }; + 3A2DD2740E40978700767D22 /* GEMglAccum.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0200E40978500767D22 /* GEMglAccum.cpp */; }; + 3A2DD2750E40978700767D22 /* GEMglAccum.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0210E40978500767D22 /* GEMglAccum.h */; }; + 3A2DD2760E40978700767D22 /* GEMglActiveTextureARB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0220E40978500767D22 /* GEMglActiveTextureARB.cpp */; }; + 3A2DD2770E40978700767D22 /* GEMglActiveTextureARB.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0230E40978500767D22 /* GEMglActiveTextureARB.h */; }; + 3A2DD2780E40978700767D22 /* GEMglAlphaFunc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0240E40978500767D22 /* GEMglAlphaFunc.cpp */; }; + 3A2DD2790E40978700767D22 /* GEMglAlphaFunc.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0250E40978500767D22 /* GEMglAlphaFunc.h */; }; + 3A2DD27A0E40978700767D22 /* GEMglAreTexturesResident.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0260E40978500767D22 /* GEMglAreTexturesResident.cpp */; }; + 3A2DD27B0E40978700767D22 /* GEMglAreTexturesResident.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0270E40978500767D22 /* GEMglAreTexturesResident.h */; }; + 3A2DD27C0E40978700767D22 /* GEMglArrayElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0280E40978500767D22 /* GEMglArrayElement.cpp */; }; + 3A2DD27D0E40978700767D22 /* GEMglArrayElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0290E40978500767D22 /* GEMglArrayElement.h */; }; + 3A2DD27E0E40978700767D22 /* GEMglBegin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD02A0E40978500767D22 /* GEMglBegin.cpp */; }; + 3A2DD27F0E40978700767D22 /* GEMglBegin.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD02B0E40978500767D22 /* GEMglBegin.h */; }; + 3A2DD2800E40978700767D22 /* GEMglBindProgramARB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD02C0E40978500767D22 /* GEMglBindProgramARB.cpp */; }; + 3A2DD2810E40978700767D22 /* GEMglBindProgramARB.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD02D0E40978500767D22 /* GEMglBindProgramARB.h */; }; + 3A2DD2820E40978700767D22 /* GEMglBindTexture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD02E0E40978500767D22 /* GEMglBindTexture.cpp */; }; + 3A2DD2830E40978700767D22 /* GEMglBindTexture.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD02F0E40978500767D22 /* GEMglBindTexture.h */; }; + 3A2DD2840E40978700767D22 /* GEMglBitmap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0300E40978500767D22 /* GEMglBitmap.cpp */; }; + 3A2DD2850E40978700767D22 /* GEMglBitmap.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0310E40978500767D22 /* GEMglBitmap.h */; }; + 3A2DD2860E40978700767D22 /* GEMglBlendEquation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0320E40978500767D22 /* GEMglBlendEquation.cpp */; }; + 3A2DD2870E40978700767D22 /* GEMglBlendEquation.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0330E40978500767D22 /* GEMglBlendEquation.h */; }; + 3A2DD2880E40978700767D22 /* GEMglBlendFunc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0340E40978500767D22 /* GEMglBlendFunc.cpp */; }; + 3A2DD2890E40978700767D22 /* GEMglBlendFunc.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0350E40978500767D22 /* GEMglBlendFunc.h */; }; + 3A2DD28A0E40978700767D22 /* GEMglCallList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0360E40978500767D22 /* GEMglCallList.cpp */; }; + 3A2DD28B0E40978700767D22 /* GEMglCallList.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0370E40978500767D22 /* GEMglCallList.h */; }; + 3A2DD28C0E40978700767D22 /* GEMglClear.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0380E40978500767D22 /* GEMglClear.cpp */; }; + 3A2DD28D0E40978700767D22 /* GEMglClear.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0390E40978500767D22 /* GEMglClear.h */; }; + 3A2DD28E0E40978700767D22 /* GEMglClearAccum.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD03A0E40978500767D22 /* GEMglClearAccum.cpp */; }; + 3A2DD28F0E40978700767D22 /* GEMglClearAccum.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD03B0E40978500767D22 /* GEMglClearAccum.h */; }; + 3A2DD2900E40978700767D22 /* GEMglClearColor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD03C0E40978500767D22 /* GEMglClearColor.cpp */; }; + 3A2DD2910E40978700767D22 /* GEMglClearColor.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD03D0E40978500767D22 /* GEMglClearColor.h */; }; + 3A2DD2920E40978700767D22 /* GEMglClearDepth.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD03E0E40978500767D22 /* GEMglClearDepth.cpp */; }; + 3A2DD2930E40978700767D22 /* GEMglClearDepth.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD03F0E40978500767D22 /* GEMglClearDepth.h */; }; + 3A2DD2940E40978700767D22 /* GEMglClearIndex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0400E40978500767D22 /* GEMglClearIndex.cpp */; }; + 3A2DD2950E40978700767D22 /* GEMglClearIndex.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0410E40978500767D22 /* GEMglClearIndex.h */; }; + 3A2DD2960E40978700767D22 /* GEMglClearStencil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0420E40978500767D22 /* GEMglClearStencil.cpp */; }; + 3A2DD2970E40978700767D22 /* GEMglClearStencil.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0430E40978500767D22 /* GEMglClearStencil.h */; }; + 3A2DD2980E40978700767D22 /* GEMglClipPlane.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0440E40978500767D22 /* GEMglClipPlane.cpp */; }; + 3A2DD2990E40978700767D22 /* GEMglClipPlane.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0450E40978500767D22 /* GEMglClipPlane.h */; }; + 3A2DD29A0E40978700767D22 /* GEMglColor3b.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0460E40978500767D22 /* GEMglColor3b.cpp */; }; + 3A2DD29B0E40978700767D22 /* GEMglColor3b.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0470E40978500767D22 /* GEMglColor3b.h */; }; + 3A2DD29C0E40978700767D22 /* GEMglColor3bv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0480E40978500767D22 /* GEMglColor3bv.cpp */; }; + 3A2DD29D0E40978700767D22 /* GEMglColor3bv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0490E40978500767D22 /* GEMglColor3bv.h */; }; + 3A2DD29E0E40978700767D22 /* GEMglColor3d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD04A0E40978500767D22 /* GEMglColor3d.cpp */; }; + 3A2DD29F0E40978700767D22 /* GEMglColor3d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD04B0E40978500767D22 /* GEMglColor3d.h */; }; + 3A2DD2A00E40978700767D22 /* GEMglColor3dv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD04C0E40978500767D22 /* GEMglColor3dv.cpp */; }; + 3A2DD2A10E40978700767D22 /* GEMglColor3dv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD04D0E40978500767D22 /* GEMglColor3dv.h */; }; + 3A2DD2A20E40978700767D22 /* GEMglColor3f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD04E0E40978500767D22 /* GEMglColor3f.cpp */; }; + 3A2DD2A30E40978700767D22 /* GEMglColor3f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD04F0E40978500767D22 /* GEMglColor3f.h */; }; + 3A2DD2A40E40978700767D22 /* GEMglColor3fv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0500E40978500767D22 /* GEMglColor3fv.cpp */; }; + 3A2DD2A50E40978700767D22 /* GEMglColor3fv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0510E40978500767D22 /* GEMglColor3fv.h */; }; + 3A2DD2A60E40978700767D22 /* GEMglColor3i.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0520E40978500767D22 /* GEMglColor3i.cpp */; }; + 3A2DD2A70E40978700767D22 /* GEMglColor3i.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0530E40978500767D22 /* GEMglColor3i.h */; }; + 3A2DD2A80E40978700767D22 /* GEMglColor3iv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0540E40978500767D22 /* GEMglColor3iv.cpp */; }; + 3A2DD2A90E40978700767D22 /* GEMglColor3iv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0550E40978500767D22 /* GEMglColor3iv.h */; }; + 3A2DD2AA0E40978700767D22 /* GEMglColor3s.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0560E40978500767D22 /* GEMglColor3s.cpp */; }; + 3A2DD2AB0E40978700767D22 /* GEMglColor3s.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0570E40978500767D22 /* GEMglColor3s.h */; }; + 3A2DD2AC0E40978700767D22 /* GEMglColor3sv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0580E40978500767D22 /* GEMglColor3sv.cpp */; }; + 3A2DD2AD0E40978700767D22 /* GEMglColor3sv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0590E40978500767D22 /* GEMglColor3sv.h */; }; + 3A2DD2AE0E40978700767D22 /* GEMglColor3ub.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD05A0E40978500767D22 /* GEMglColor3ub.cpp */; }; + 3A2DD2AF0E40978700767D22 /* GEMglColor3ub.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD05B0E40978500767D22 /* GEMglColor3ub.h */; }; + 3A2DD2B00E40978700767D22 /* GEMglColor3ubv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD05C0E40978500767D22 /* GEMglColor3ubv.cpp */; }; + 3A2DD2B10E40978700767D22 /* GEMglColor3ubv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD05D0E40978500767D22 /* GEMglColor3ubv.h */; }; + 3A2DD2B20E40978700767D22 /* GEMglColor3ui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD05E0E40978500767D22 /* GEMglColor3ui.cpp */; }; + 3A2DD2B30E40978700767D22 /* GEMglColor3ui.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD05F0E40978500767D22 /* GEMglColor3ui.h */; }; + 3A2DD2B40E40978700767D22 /* GEMglColor3uiv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0600E40978500767D22 /* GEMglColor3uiv.cpp */; }; + 3A2DD2B50E40978700767D22 /* GEMglColor3uiv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0610E40978500767D22 /* GEMglColor3uiv.h */; }; + 3A2DD2B60E40978700767D22 /* GEMglColor3us.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0620E40978500767D22 /* GEMglColor3us.cpp */; }; + 3A2DD2B70E40978700767D22 /* GEMglColor3us.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0630E40978500767D22 /* GEMglColor3us.h */; }; + 3A2DD2B80E40978700767D22 /* GEMglColor3usv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0640E40978500767D22 /* GEMglColor3usv.cpp */; }; + 3A2DD2B90E40978700767D22 /* GEMglColor3usv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0650E40978500767D22 /* GEMglColor3usv.h */; }; + 3A2DD2BA0E40978700767D22 /* GEMglColor4b.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0660E40978500767D22 /* GEMglColor4b.cpp */; }; + 3A2DD2BB0E40978700767D22 /* GEMglColor4b.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0670E40978500767D22 /* GEMglColor4b.h */; }; + 3A2DD2BC0E40978700767D22 /* GEMglColor4bv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0680E40978500767D22 /* GEMglColor4bv.cpp */; }; + 3A2DD2BD0E40978700767D22 /* GEMglColor4bv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0690E40978500767D22 /* GEMglColor4bv.h */; }; + 3A2DD2BE0E40978700767D22 /* GEMglColor4d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD06A0E40978500767D22 /* GEMglColor4d.cpp */; }; + 3A2DD2BF0E40978700767D22 /* GEMglColor4d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD06B0E40978500767D22 /* GEMglColor4d.h */; }; + 3A2DD2C00E40978700767D22 /* GEMglColor4dv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD06C0E40978500767D22 /* GEMglColor4dv.cpp */; }; + 3A2DD2C10E40978700767D22 /* GEMglColor4dv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD06D0E40978500767D22 /* GEMglColor4dv.h */; }; + 3A2DD2C20E40978700767D22 /* GEMglColor4f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD06E0E40978500767D22 /* GEMglColor4f.cpp */; }; + 3A2DD2C30E40978700767D22 /* GEMglColor4f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD06F0E40978500767D22 /* GEMglColor4f.h */; }; + 3A2DD2C40E40978700767D22 /* GEMglColor4fv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0700E40978500767D22 /* GEMglColor4fv.cpp */; }; + 3A2DD2C50E40978700767D22 /* GEMglColor4fv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0710E40978500767D22 /* GEMglColor4fv.h */; }; + 3A2DD2C60E40978700767D22 /* GEMglColor4i.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0720E40978500767D22 /* GEMglColor4i.cpp */; }; + 3A2DD2C70E40978700767D22 /* GEMglColor4i.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0730E40978500767D22 /* GEMglColor4i.h */; }; + 3A2DD2C80E40978700767D22 /* GEMglColor4iv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0740E40978500767D22 /* GEMglColor4iv.cpp */; }; + 3A2DD2C90E40978700767D22 /* GEMglColor4iv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0750E40978500767D22 /* GEMglColor4iv.h */; }; + 3A2DD2CA0E40978700767D22 /* GEMglColor4s.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0760E40978500767D22 /* GEMglColor4s.cpp */; }; + 3A2DD2CB0E40978700767D22 /* GEMglColor4s.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0770E40978500767D22 /* GEMglColor4s.h */; }; + 3A2DD2CC0E40978700767D22 /* GEMglColor4sv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0780E40978500767D22 /* GEMglColor4sv.cpp */; }; + 3A2DD2CD0E40978700767D22 /* GEMglColor4sv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0790E40978500767D22 /* GEMglColor4sv.h */; }; + 3A2DD2CE0E40978700767D22 /* GEMglColor4ub.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD07A0E40978500767D22 /* GEMglColor4ub.cpp */; }; + 3A2DD2CF0E40978700767D22 /* GEMglColor4ub.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD07B0E40978500767D22 /* GEMglColor4ub.h */; }; + 3A2DD2D00E40978700767D22 /* GEMglColor4ubv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD07C0E40978500767D22 /* GEMglColor4ubv.cpp */; }; + 3A2DD2D10E40978700767D22 /* GEMglColor4ubv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD07D0E40978500767D22 /* GEMglColor4ubv.h */; }; + 3A2DD2D20E40978700767D22 /* GEMglColor4ui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD07E0E40978500767D22 /* GEMglColor4ui.cpp */; }; + 3A2DD2D30E40978700767D22 /* GEMglColor4ui.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD07F0E40978500767D22 /* GEMglColor4ui.h */; }; + 3A2DD2D40E40978700767D22 /* GEMglColor4uiv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0800E40978500767D22 /* GEMglColor4uiv.cpp */; }; + 3A2DD2D50E40978700767D22 /* GEMglColor4uiv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0810E40978500767D22 /* GEMglColor4uiv.h */; }; + 3A2DD2D60E40978700767D22 /* GEMglColor4us.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0820E40978500767D22 /* GEMglColor4us.cpp */; }; + 3A2DD2D70E40978700767D22 /* GEMglColor4us.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0830E40978500767D22 /* GEMglColor4us.h */; }; + 3A2DD2D80E40978700767D22 /* GEMglColor4usv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0840E40978500767D22 /* GEMglColor4usv.cpp */; }; + 3A2DD2D90E40978700767D22 /* GEMglColor4usv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0850E40978500767D22 /* GEMglColor4usv.h */; }; + 3A2DD2DA0E40978700767D22 /* GEMglColorMask.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0860E40978500767D22 /* GEMglColorMask.cpp */; }; + 3A2DD2DB0E40978700767D22 /* GEMglColorMask.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0870E40978500767D22 /* GEMglColorMask.h */; }; + 3A2DD2DC0E40978700767D22 /* GEMglColorMaterial.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0880E40978500767D22 /* GEMglColorMaterial.cpp */; }; + 3A2DD2DD0E40978700767D22 /* GEMglColorMaterial.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0890E40978500767D22 /* GEMglColorMaterial.h */; }; + 3A2DD2DE0E40978700767D22 /* GEMglCopyPixels.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD08A0E40978500767D22 /* GEMglCopyPixels.cpp */; }; + 3A2DD2DF0E40978700767D22 /* GEMglCopyPixels.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD08B0E40978500767D22 /* GEMglCopyPixels.h */; }; + 3A2DD2E00E40978700767D22 /* GEMglCopyTexImage1D.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD08C0E40978500767D22 /* GEMglCopyTexImage1D.cpp */; }; + 3A2DD2E10E40978700767D22 /* GEMglCopyTexImage1D.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD08D0E40978500767D22 /* GEMglCopyTexImage1D.h */; }; + 3A2DD2E20E40978700767D22 /* GEMglCopyTexImage2D.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD08E0E40978500767D22 /* GEMglCopyTexImage2D.cpp */; }; + 3A2DD2E30E40978700767D22 /* GEMglCopyTexImage2D.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD08F0E40978500767D22 /* GEMglCopyTexImage2D.h */; }; + 3A2DD2E40E40978700767D22 /* GEMglCopyTexSubImage1D.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0900E40978500767D22 /* GEMglCopyTexSubImage1D.cpp */; }; + 3A2DD2E50E40978700767D22 /* GEMglCopyTexSubImage1D.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0910E40978500767D22 /* GEMglCopyTexSubImage1D.h */; }; + 3A2DD2E60E40978700767D22 /* GEMglCopyTexSubImage2D.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0920E40978500767D22 /* GEMglCopyTexSubImage2D.cpp */; }; + 3A2DD2E70E40978700767D22 /* GEMglCopyTexSubImage2D.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0930E40978500767D22 /* GEMglCopyTexSubImage2D.h */; }; + 3A2DD2E80E40978700767D22 /* GEMglCullFace.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0940E40978500767D22 /* GEMglCullFace.cpp */; }; + 3A2DD2E90E40978700767D22 /* GEMglCullFace.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0950E40978500767D22 /* GEMglCullFace.h */; }; + 3A2DD2EA0E40978700767D22 /* GEMglDeleteTextures.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0960E40978500767D22 /* GEMglDeleteTextures.cpp */; }; + 3A2DD2EB0E40978700767D22 /* GEMglDeleteTextures.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0970E40978500767D22 /* GEMglDeleteTextures.h */; }; + 3A2DD2EC0E40978700767D22 /* GEMglDepthFunc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0980E40978500767D22 /* GEMglDepthFunc.cpp */; }; + 3A2DD2ED0E40978700767D22 /* GEMglDepthFunc.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0990E40978500767D22 /* GEMglDepthFunc.h */; }; + 3A2DD2EE0E40978700767D22 /* GEMglDepthMask.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD09A0E40978500767D22 /* GEMglDepthMask.cpp */; }; + 3A2DD2EF0E40978700767D22 /* GEMglDepthMask.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD09B0E40978500767D22 /* GEMglDepthMask.h */; }; + 3A2DD2F00E40978700767D22 /* GEMglDepthRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD09C0E40978500767D22 /* GEMglDepthRange.cpp */; }; + 3A2DD2F10E40978700767D22 /* GEMglDepthRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD09D0E40978500767D22 /* GEMglDepthRange.h */; }; + 3A2DD2F20E40978700767D22 /* GEMglDisable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD09E0E40978500767D22 /* GEMglDisable.cpp */; }; + 3A2DD2F30E40978700767D22 /* GEMglDisable.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD09F0E40978500767D22 /* GEMglDisable.h */; }; + 3A2DD2F40E40978700767D22 /* GEMglDisableClientState.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0A00E40978500767D22 /* GEMglDisableClientState.cpp */; }; + 3A2DD2F50E40978700767D22 /* GEMglDisableClientState.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0A10E40978500767D22 /* GEMglDisableClientState.h */; }; + 3A2DD2F60E40978700767D22 /* GEMglDrawArrays.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0A20E40978500767D22 /* GEMglDrawArrays.cpp */; }; + 3A2DD2F70E40978700767D22 /* GEMglDrawArrays.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0A30E40978500767D22 /* GEMglDrawArrays.h */; }; + 3A2DD2F80E40978700767D22 /* GEMglDrawBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0A40E40978500767D22 /* GEMglDrawBuffer.cpp */; }; + 3A2DD2F90E40978700767D22 /* GEMglDrawBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0A50E40978500767D22 /* GEMglDrawBuffer.h */; }; + 3A2DD2FA0E40978700767D22 /* GEMglDrawElements.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0A60E40978500767D22 /* GEMglDrawElements.cpp */; }; + 3A2DD2FB0E40978700767D22 /* GEMglDrawElements.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0A70E40978500767D22 /* GEMglDrawElements.h */; }; + 3A2DD2FC0E40978700767D22 /* GEMglEdgeFlag.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0A80E40978500767D22 /* GEMglEdgeFlag.cpp */; }; + 3A2DD2FD0E40978700767D22 /* GEMglEdgeFlag.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0A90E40978500767D22 /* GEMglEdgeFlag.h */; }; + 3A2DD2FE0E40978700767D22 /* GEMglEnable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0AA0E40978500767D22 /* GEMglEnable.cpp */; }; + 3A2DD2FF0E40978700767D22 /* GEMglEnable.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0AB0E40978500767D22 /* GEMglEnable.h */; }; + 3A2DD3000E40978700767D22 /* GEMglEnableClientState.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0AC0E40978500767D22 /* GEMglEnableClientState.cpp */; }; + 3A2DD3010E40978700767D22 /* GEMglEnableClientState.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0AD0E40978500767D22 /* GEMglEnableClientState.h */; }; + 3A2DD3020E40978700767D22 /* GEMglEnd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0AE0E40978500767D22 /* GEMglEnd.cpp */; }; + 3A2DD3030E40978700767D22 /* GEMglEnd.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0AF0E40978500767D22 /* GEMglEnd.h */; }; + 3A2DD3040E40978700767D22 /* GEMglEndList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0B00E40978500767D22 /* GEMglEndList.cpp */; }; + 3A2DD3050E40978700767D22 /* GEMglEndList.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0B10E40978500767D22 /* GEMglEndList.h */; }; + 3A2DD3060E40978700767D22 /* GEMglEvalCoord1d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0B20E40978500767D22 /* GEMglEvalCoord1d.cpp */; }; + 3A2DD3070E40978700767D22 /* GEMglEvalCoord1d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0B30E40978500767D22 /* GEMglEvalCoord1d.h */; }; + 3A2DD3080E40978700767D22 /* GEMglEvalCoord1dv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0B40E40978500767D22 /* GEMglEvalCoord1dv.cpp */; }; + 3A2DD3090E40978700767D22 /* GEMglEvalCoord1dv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0B50E40978500767D22 /* GEMglEvalCoord1dv.h */; }; + 3A2DD30A0E40978700767D22 /* GEMglEvalCoord1f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0B60E40978500767D22 /* GEMglEvalCoord1f.cpp */; }; + 3A2DD30B0E40978700767D22 /* GEMglEvalCoord1f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0B70E40978500767D22 /* GEMglEvalCoord1f.h */; }; + 3A2DD30C0E40978700767D22 /* GEMglEvalCoord1fv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0B80E40978500767D22 /* GEMglEvalCoord1fv.cpp */; }; + 3A2DD30D0E40978700767D22 /* GEMglEvalCoord1fv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0B90E40978500767D22 /* GEMglEvalCoord1fv.h */; }; + 3A2DD30E0E40978700767D22 /* GEMglEvalCoord2d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0BA0E40978500767D22 /* GEMglEvalCoord2d.cpp */; }; + 3A2DD30F0E40978700767D22 /* GEMglEvalCoord2d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0BB0E40978500767D22 /* GEMglEvalCoord2d.h */; }; + 3A2DD3100E40978700767D22 /* GEMglEvalCoord2dv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0BC0E40978500767D22 /* GEMglEvalCoord2dv.cpp */; }; + 3A2DD3110E40978700767D22 /* GEMglEvalCoord2dv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0BD0E40978500767D22 /* GEMglEvalCoord2dv.h */; }; + 3A2DD3120E40978700767D22 /* GEMglEvalCoord2f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0BE0E40978500767D22 /* GEMglEvalCoord2f.cpp */; }; + 3A2DD3130E40978700767D22 /* GEMglEvalCoord2f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0BF0E40978500767D22 /* GEMglEvalCoord2f.h */; }; + 3A2DD3140E40978700767D22 /* GEMglEvalCoord2fv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0C00E40978500767D22 /* GEMglEvalCoord2fv.cpp */; }; + 3A2DD3150E40978700767D22 /* GEMglEvalCoord2fv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0C10E40978500767D22 /* GEMglEvalCoord2fv.h */; }; + 3A2DD3160E40978700767D22 /* GEMglEvalMesh1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0C20E40978500767D22 /* GEMglEvalMesh1.cpp */; }; + 3A2DD3170E40978700767D22 /* GEMglEvalMesh1.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0C30E40978500767D22 /* GEMglEvalMesh1.h */; }; + 3A2DD3180E40978700767D22 /* GEMglEvalMesh2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0C40E40978500767D22 /* GEMglEvalMesh2.cpp */; }; + 3A2DD3190E40978700767D22 /* GEMglEvalMesh2.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0C50E40978500767D22 /* GEMglEvalMesh2.h */; }; + 3A2DD31A0E40978700767D22 /* GEMglEvalPoint1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0C60E40978500767D22 /* GEMglEvalPoint1.cpp */; }; + 3A2DD31B0E40978700767D22 /* GEMglEvalPoint1.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0C70E40978500767D22 /* GEMglEvalPoint1.h */; }; + 3A2DD31C0E40978700767D22 /* GEMglEvalPoint2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0C80E40978500767D22 /* GEMglEvalPoint2.cpp */; }; + 3A2DD31D0E40978700767D22 /* GEMglEvalPoint2.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0C90E40978500767D22 /* GEMglEvalPoint2.h */; }; + 3A2DD31E0E40978700767D22 /* GEMglFeedbackBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0CA0E40978500767D22 /* GEMglFeedbackBuffer.cpp */; }; + 3A2DD31F0E40978700767D22 /* GEMglFeedbackBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0CB0E40978500767D22 /* GEMglFeedbackBuffer.h */; }; + 3A2DD3200E40978700767D22 /* GEMglFinish.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0CC0E40978500767D22 /* GEMglFinish.cpp */; }; + 3A2DD3210E40978700767D22 /* GEMglFinish.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0CD0E40978500767D22 /* GEMglFinish.h */; }; + 3A2DD3220E40978700767D22 /* GEMglFlush.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0CE0E40978500767D22 /* GEMglFlush.cpp */; }; + 3A2DD3230E40978700767D22 /* GEMglFlush.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0CF0E40978500767D22 /* GEMglFlush.h */; }; + 3A2DD3240E40978700767D22 /* GEMglFogf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0D00E40978500767D22 /* GEMglFogf.cpp */; }; + 3A2DD3250E40978700767D22 /* GEMglFogf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0D10E40978500767D22 /* GEMglFogf.h */; }; + 3A2DD3260E40978700767D22 /* GEMglFogfv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0D20E40978500767D22 /* GEMglFogfv.cpp */; }; + 3A2DD3270E40978700767D22 /* GEMglFogfv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0D30E40978500767D22 /* GEMglFogfv.h */; }; + 3A2DD3280E40978700767D22 /* GEMglFogi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0D40E40978500767D22 /* GEMglFogi.cpp */; }; + 3A2DD3290E40978700767D22 /* GEMglFogi.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0D50E40978500767D22 /* GEMglFogi.h */; }; + 3A2DD32A0E40978700767D22 /* GEMglFogiv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0D60E40978500767D22 /* GEMglFogiv.cpp */; }; + 3A2DD32B0E40978700767D22 /* GEMglFogiv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0D70E40978500767D22 /* GEMglFogiv.h */; }; + 3A2DD32C0E40978700767D22 /* GEMglFrontFace.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0D80E40978500767D22 /* GEMglFrontFace.cpp */; }; + 3A2DD32D0E40978700767D22 /* GEMglFrontFace.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0D90E40978500767D22 /* GEMglFrontFace.h */; }; + 3A2DD32E0E40978700767D22 /* GEMglFrustum.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0DA0E40978500767D22 /* GEMglFrustum.cpp */; }; + 3A2DD32F0E40978700767D22 /* GEMglFrustum.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0DB0E40978500767D22 /* GEMglFrustum.h */; }; + 3A2DD3300E40978700767D22 /* GEMglGenLists.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0DC0E40978500767D22 /* GEMglGenLists.cpp */; }; + 3A2DD3310E40978700767D22 /* GEMglGenLists.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0DD0E40978500767D22 /* GEMglGenLists.h */; }; + 3A2DD3320E40978700767D22 /* GEMglGenProgramsARB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0DE0E40978500767D22 /* GEMglGenProgramsARB.cpp */; }; + 3A2DD3330E40978700767D22 /* GEMglGenProgramsARB.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0DF0E40978500767D22 /* GEMglGenProgramsARB.h */; }; + 3A2DD3340E40978700767D22 /* GEMglGenTextures.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0E00E40978500767D22 /* GEMglGenTextures.cpp */; }; + 3A2DD3350E40978700767D22 /* GEMglGenTextures.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0E10E40978500767D22 /* GEMglGenTextures.h */; }; + 3A2DD3360E40978700767D22 /* GEMglGetError.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0E20E40978500767D22 /* GEMglGetError.cpp */; }; + 3A2DD3370E40978700767D22 /* GEMglGetError.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0E30E40978500767D22 /* GEMglGetError.h */; }; + 3A2DD3380E40978700767D22 /* GEMglGetFloatv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0E40E40978500767D22 /* GEMglGetFloatv.cpp */; }; + 3A2DD3390E40978700767D22 /* GEMglGetFloatv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0E50E40978500767D22 /* GEMglGetFloatv.h */; }; + 3A2DD33A0E40978700767D22 /* GEMglGetMapdv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0E60E40978500767D22 /* GEMglGetMapdv.cpp */; }; + 3A2DD33B0E40978700767D22 /* GEMglGetMapdv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0E70E40978500767D22 /* GEMglGetMapdv.h */; }; + 3A2DD33C0E40978700767D22 /* GEMglGetMapfv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0E80E40978500767D22 /* GEMglGetMapfv.cpp */; }; + 3A2DD33D0E40978700767D22 /* GEMglGetMapfv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0E90E40978500767D22 /* GEMglGetMapfv.h */; }; + 3A2DD33E0E40978700767D22 /* GEMglGetMapiv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0EA0E40978500767D22 /* GEMglGetMapiv.cpp */; }; + 3A2DD33F0E40978700767D22 /* GEMglGetMapiv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0EB0E40978500767D22 /* GEMglGetMapiv.h */; }; + 3A2DD3400E40978700767D22 /* GEMglGetPointerv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0EC0E40978500767D22 /* GEMglGetPointerv.cpp */; }; + 3A2DD3410E40978700767D22 /* GEMglGetPointerv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0ED0E40978500767D22 /* GEMglGetPointerv.h */; }; + 3A2DD3420E40978700767D22 /* GEMglGetString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0EE0E40978500767D22 /* GEMglGetString.cpp */; }; + 3A2DD3430E40978700767D22 /* GEMglGetString.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0EF0E40978600767D22 /* GEMglGetString.h */; }; + 3A2DD3440E40978700767D22 /* GEMglHint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0F00E40978600767D22 /* GEMglHint.cpp */; }; + 3A2DD3450E40978700767D22 /* GEMglHint.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0F10E40978600767D22 /* GEMglHint.h */; }; + 3A2DD3460E40978700767D22 /* GEMglIndexd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0F20E40978600767D22 /* GEMglIndexd.cpp */; }; + 3A2DD3470E40978700767D22 /* GEMglIndexd.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0F30E40978600767D22 /* GEMglIndexd.h */; }; + 3A2DD3480E40978700767D22 /* GEMglIndexdv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0F40E40978600767D22 /* GEMglIndexdv.cpp */; }; + 3A2DD3490E40978700767D22 /* GEMglIndexdv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0F50E40978600767D22 /* GEMglIndexdv.h */; }; + 3A2DD34A0E40978700767D22 /* GEMglIndexf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0F60E40978600767D22 /* GEMglIndexf.cpp */; }; + 3A2DD34B0E40978700767D22 /* GEMglIndexf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0F70E40978600767D22 /* GEMglIndexf.h */; }; + 3A2DD34C0E40978700767D22 /* GEMglIndexfv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0F80E40978600767D22 /* GEMglIndexfv.cpp */; }; + 3A2DD34D0E40978700767D22 /* GEMglIndexfv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0F90E40978600767D22 /* GEMglIndexfv.h */; }; + 3A2DD34E0E40978700767D22 /* GEMglIndexi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0FA0E40978600767D22 /* GEMglIndexi.cpp */; }; + 3A2DD34F0E40978700767D22 /* GEMglIndexi.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0FB0E40978600767D22 /* GEMglIndexi.h */; }; + 3A2DD3500E40978700767D22 /* GEMglIndexiv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0FC0E40978600767D22 /* GEMglIndexiv.cpp */; }; + 3A2DD3510E40978700767D22 /* GEMglIndexiv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0FD0E40978600767D22 /* GEMglIndexiv.h */; }; + 3A2DD3520E40978700767D22 /* GEMglIndexMask.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0FE0E40978600767D22 /* GEMglIndexMask.cpp */; }; + 3A2DD3530E40978700767D22 /* GEMglIndexMask.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0FF0E40978600767D22 /* GEMglIndexMask.h */; }; + 3A2DD3540E40978700767D22 /* GEMglIndexs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1000E40978600767D22 /* GEMglIndexs.cpp */; }; + 3A2DD3550E40978700767D22 /* GEMglIndexs.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1010E40978600767D22 /* GEMglIndexs.h */; }; + 3A2DD3560E40978700767D22 /* GEMglIndexsv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1020E40978600767D22 /* GEMglIndexsv.cpp */; }; + 3A2DD3570E40978700767D22 /* GEMglIndexsv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1030E40978600767D22 /* GEMglIndexsv.h */; }; + 3A2DD3580E40978700767D22 /* GEMglIndexub.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1040E40978600767D22 /* GEMglIndexub.cpp */; }; + 3A2DD3590E40978700767D22 /* GEMglIndexub.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1050E40978600767D22 /* GEMglIndexub.h */; }; + 3A2DD35A0E40978700767D22 /* GEMglIndexubv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1060E40978600767D22 /* GEMglIndexubv.cpp */; }; + 3A2DD35B0E40978700767D22 /* GEMglIndexubv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1070E40978600767D22 /* GEMglIndexubv.h */; }; + 3A2DD35C0E40978700767D22 /* GEMglInitNames.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1080E40978600767D22 /* GEMglInitNames.cpp */; }; + 3A2DD35D0E40978700767D22 /* GEMglInitNames.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1090E40978600767D22 /* GEMglInitNames.h */; }; + 3A2DD35E0E40978700767D22 /* GEMglIsEnabled.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD10A0E40978600767D22 /* GEMglIsEnabled.cpp */; }; + 3A2DD35F0E40978700767D22 /* GEMglIsEnabled.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD10B0E40978600767D22 /* GEMglIsEnabled.h */; }; + 3A2DD3600E40978700767D22 /* GEMglIsList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD10C0E40978600767D22 /* GEMglIsList.cpp */; }; + 3A2DD3610E40978700767D22 /* GEMglIsList.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD10D0E40978600767D22 /* GEMglIsList.h */; }; + 3A2DD3620E40978700767D22 /* GEMglIsTexture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD10E0E40978600767D22 /* GEMglIsTexture.cpp */; }; + 3A2DD3630E40978700767D22 /* GEMglIsTexture.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD10F0E40978600767D22 /* GEMglIsTexture.h */; }; + 3A2DD3640E40978700767D22 /* GEMglLightf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1100E40978600767D22 /* GEMglLightf.cpp */; }; + 3A2DD3650E40978700767D22 /* GEMglLightf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1110E40978600767D22 /* GEMglLightf.h */; }; + 3A2DD3660E40978700767D22 /* GEMglLighti.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1120E40978600767D22 /* GEMglLighti.cpp */; }; + 3A2DD3670E40978700767D22 /* GEMglLighti.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1130E40978600767D22 /* GEMglLighti.h */; }; + 3A2DD3680E40978700767D22 /* GEMglLightModelf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1140E40978600767D22 /* GEMglLightModelf.cpp */; }; + 3A2DD3690E40978700767D22 /* GEMglLightModelf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1150E40978600767D22 /* GEMglLightModelf.h */; }; + 3A2DD36A0E40978700767D22 /* GEMglLightModeli.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1160E40978600767D22 /* GEMglLightModeli.cpp */; }; + 3A2DD36B0E40978700767D22 /* GEMglLightModeli.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1170E40978600767D22 /* GEMglLightModeli.h */; }; + 3A2DD36C0E40978700767D22 /* GEMglLineStipple.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1180E40978600767D22 /* GEMglLineStipple.cpp */; }; + 3A2DD36D0E40978700767D22 /* GEMglLineStipple.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1190E40978600767D22 /* GEMglLineStipple.h */; }; + 3A2DD36E0E40978700767D22 /* GEMglLineWidth.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD11A0E40978600767D22 /* GEMglLineWidth.cpp */; }; + 3A2DD36F0E40978700767D22 /* GEMglLineWidth.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD11B0E40978600767D22 /* GEMglLineWidth.h */; }; + 3A2DD3700E40978700767D22 /* GEMglLoadIdentity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD11C0E40978600767D22 /* GEMglLoadIdentity.cpp */; }; + 3A2DD3710E40978700767D22 /* GEMglLoadIdentity.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD11D0E40978600767D22 /* GEMglLoadIdentity.h */; }; + 3A2DD3720E40978700767D22 /* GEMglLoadMatrixd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD11E0E40978600767D22 /* GEMglLoadMatrixd.cpp */; }; + 3A2DD3730E40978700767D22 /* GEMglLoadMatrixd.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD11F0E40978600767D22 /* GEMglLoadMatrixd.h */; }; + 3A2DD3740E40978700767D22 /* GEMglLoadMatrixf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1200E40978600767D22 /* GEMglLoadMatrixf.cpp */; }; + 3A2DD3750E40978700767D22 /* GEMglLoadMatrixf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1210E40978600767D22 /* GEMglLoadMatrixf.h */; }; + 3A2DD3760E40978700767D22 /* GEMglLoadName.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1220E40978600767D22 /* GEMglLoadName.cpp */; }; + 3A2DD3770E40978700767D22 /* GEMglLoadName.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1230E40978600767D22 /* GEMglLoadName.h */; }; + 3A2DD3780E40978700767D22 /* GEMglLoadTransposeMatrixd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1240E40978600767D22 /* GEMglLoadTransposeMatrixd.cpp */; }; + 3A2DD3790E40978700767D22 /* GEMglLoadTransposeMatrixd.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1250E40978600767D22 /* GEMglLoadTransposeMatrixd.h */; }; + 3A2DD37A0E40978700767D22 /* GEMglLoadTransposeMatrixf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1260E40978600767D22 /* GEMglLoadTransposeMatrixf.cpp */; }; + 3A2DD37B0E40978700767D22 /* GEMglLoadTransposeMatrixf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1270E40978600767D22 /* GEMglLoadTransposeMatrixf.h */; }; + 3A2DD37C0E40978700767D22 /* GEMglLogicOp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1280E40978600767D22 /* GEMglLogicOp.cpp */; }; + 3A2DD37D0E40978700767D22 /* GEMglLogicOp.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1290E40978600767D22 /* GEMglLogicOp.h */; }; + 3A2DD37E0E40978700767D22 /* GEMglMap1d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD12A0E40978600767D22 /* GEMglMap1d.cpp */; }; + 3A2DD37F0E40978700767D22 /* GEMglMap1d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD12B0E40978600767D22 /* GEMglMap1d.h */; }; + 3A2DD3800E40978700767D22 /* GEMglMap1f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD12C0E40978600767D22 /* GEMglMap1f.cpp */; }; + 3A2DD3810E40978700767D22 /* GEMglMap1f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD12D0E40978600767D22 /* GEMglMap1f.h */; }; + 3A2DD3820E40978700767D22 /* GEMglMap2d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD12E0E40978600767D22 /* GEMglMap2d.cpp */; }; + 3A2DD3830E40978700767D22 /* GEMglMap2d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD12F0E40978600767D22 /* GEMglMap2d.h */; }; + 3A2DD3840E40978700767D22 /* GEMglMap2f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1300E40978600767D22 /* GEMglMap2f.cpp */; }; + 3A2DD3850E40978700767D22 /* GEMglMap2f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1310E40978600767D22 /* GEMglMap2f.h */; }; + 3A2DD3860E40978700767D22 /* GEMglMapGrid1d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1320E40978600767D22 /* GEMglMapGrid1d.cpp */; }; + 3A2DD3870E40978700767D22 /* GEMglMapGrid1d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1330E40978600767D22 /* GEMglMapGrid1d.h */; }; + 3A2DD3880E40978700767D22 /* GEMglMapGrid1f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1340E40978600767D22 /* GEMglMapGrid1f.cpp */; }; + 3A2DD3890E40978700767D22 /* GEMglMapGrid1f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1350E40978600767D22 /* GEMglMapGrid1f.h */; }; + 3A2DD38A0E40978700767D22 /* GEMglMapGrid2d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1360E40978600767D22 /* GEMglMapGrid2d.cpp */; }; + 3A2DD38B0E40978700767D22 /* GEMglMapGrid2d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1370E40978600767D22 /* GEMglMapGrid2d.h */; }; + 3A2DD38C0E40978700767D22 /* GEMglMapGrid2f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1380E40978600767D22 /* GEMglMapGrid2f.cpp */; }; + 3A2DD38D0E40978700767D22 /* GEMglMapGrid2f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1390E40978600767D22 /* GEMglMapGrid2f.h */; }; + 3A2DD38E0E40978700767D22 /* GEMglMaterialf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD13A0E40978600767D22 /* GEMglMaterialf.cpp */; }; + 3A2DD38F0E40978700767D22 /* GEMglMaterialf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD13B0E40978600767D22 /* GEMglMaterialf.h */; }; + 3A2DD3900E40978700767D22 /* GEMglMateriali.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD13C0E40978600767D22 /* GEMglMateriali.cpp */; }; + 3A2DD3910E40978700767D22 /* GEMglMateriali.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD13D0E40978600767D22 /* GEMglMateriali.h */; }; + 3A2DD3920E40978700767D22 /* GEMglMatrixMode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD13E0E40978600767D22 /* GEMglMatrixMode.cpp */; }; + 3A2DD3930E40978700767D22 /* GEMglMatrixMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD13F0E40978600767D22 /* GEMglMatrixMode.h */; }; + 3A2DD3940E40978700767D22 /* GEMglMultiTexCoord2fARB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1400E40978600767D22 /* GEMglMultiTexCoord2fARB.cpp */; }; + 3A2DD3950E40978700767D22 /* GEMglMultiTexCoord2fARB.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1410E40978600767D22 /* GEMglMultiTexCoord2fARB.h */; }; + 3A2DD3960E40978700767D22 /* GEMglMultMatrixd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1420E40978600767D22 /* GEMglMultMatrixd.cpp */; }; + 3A2DD3970E40978700767D22 /* GEMglMultMatrixd.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1430E40978600767D22 /* GEMglMultMatrixd.h */; }; + 3A2DD3980E40978700767D22 /* GEMglMultMatrixf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1440E40978600767D22 /* GEMglMultMatrixf.cpp */; }; + 3A2DD3990E40978700767D22 /* GEMglMultMatrixf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1450E40978600767D22 /* GEMglMultMatrixf.h */; }; + 3A2DD39A0E40978700767D22 /* GEMglMultTransposeMatrixd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1460E40978600767D22 /* GEMglMultTransposeMatrixd.cpp */; }; + 3A2DD39B0E40978700767D22 /* GEMglMultTransposeMatrixd.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1470E40978600767D22 /* GEMglMultTransposeMatrixd.h */; }; + 3A2DD39C0E40978700767D22 /* GEMglMultTransposeMatrixf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1480E40978600767D22 /* GEMglMultTransposeMatrixf.cpp */; }; + 3A2DD39D0E40978700767D22 /* GEMglMultTransposeMatrixf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1490E40978600767D22 /* GEMglMultTransposeMatrixf.h */; }; + 3A2DD39E0E40978700767D22 /* GEMglNewList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD14A0E40978600767D22 /* GEMglNewList.cpp */; }; + 3A2DD39F0E40978700767D22 /* GEMglNewList.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD14B0E40978600767D22 /* GEMglNewList.h */; }; + 3A2DD3A00E40978700767D22 /* GEMglNormal3b.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD14C0E40978600767D22 /* GEMglNormal3b.cpp */; }; + 3A2DD3A10E40978700767D22 /* GEMglNormal3b.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD14D0E40978600767D22 /* GEMglNormal3b.h */; }; + 3A2DD3A20E40978700767D22 /* GEMglNormal3bv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD14E0E40978600767D22 /* GEMglNormal3bv.cpp */; }; + 3A2DD3A30E40978700767D22 /* GEMglNormal3bv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD14F0E40978600767D22 /* GEMglNormal3bv.h */; }; + 3A2DD3A40E40978700767D22 /* GEMglNormal3d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1500E40978600767D22 /* GEMglNormal3d.cpp */; }; + 3A2DD3A50E40978700767D22 /* GEMglNormal3d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1510E40978600767D22 /* GEMglNormal3d.h */; }; + 3A2DD3A60E40978700767D22 /* GEMglNormal3dv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1520E40978600767D22 /* GEMglNormal3dv.cpp */; }; + 3A2DD3A70E40978700767D22 /* GEMglNormal3dv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1530E40978600767D22 /* GEMglNormal3dv.h */; }; + 3A2DD3A80E40978700767D22 /* GEMglNormal3f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1540E40978600767D22 /* GEMglNormal3f.cpp */; }; + 3A2DD3A90E40978700767D22 /* GEMglNormal3f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1550E40978600767D22 /* GEMglNormal3f.h */; }; + 3A2DD3AA0E40978700767D22 /* GEMglNormal3fv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1560E40978600767D22 /* GEMglNormal3fv.cpp */; }; + 3A2DD3AB0E40978700767D22 /* GEMglNormal3fv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1570E40978600767D22 /* GEMglNormal3fv.h */; }; + 3A2DD3AC0E40978700767D22 /* GEMglNormal3i.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1580E40978600767D22 /* GEMglNormal3i.cpp */; }; + 3A2DD3AD0E40978700767D22 /* GEMglNormal3i.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1590E40978600767D22 /* GEMglNormal3i.h */; }; + 3A2DD3AE0E40978700767D22 /* GEMglNormal3iv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD15A0E40978600767D22 /* GEMglNormal3iv.cpp */; }; + 3A2DD3AF0E40978700767D22 /* GEMglNormal3iv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD15B0E40978600767D22 /* GEMglNormal3iv.h */; }; + 3A2DD3B00E40978700767D22 /* GEMglNormal3s.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD15C0E40978600767D22 /* GEMglNormal3s.cpp */; }; + 3A2DD3B10E40978700767D22 /* GEMglNormal3s.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD15D0E40978600767D22 /* GEMglNormal3s.h */; }; + 3A2DD3B20E40978700767D22 /* GEMglNormal3sv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD15E0E40978600767D22 /* GEMglNormal3sv.cpp */; }; + 3A2DD3B30E40978700767D22 /* GEMglNormal3sv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD15F0E40978600767D22 /* GEMglNormal3sv.h */; }; + 3A2DD3B40E40978700767D22 /* GEMglOrtho.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1600E40978600767D22 /* GEMglOrtho.cpp */; }; + 3A2DD3B50E40978700767D22 /* GEMglOrtho.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1610E40978600767D22 /* GEMglOrtho.h */; }; + 3A2DD3B60E40978700767D22 /* GEMglPassThrough.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1620E40978600767D22 /* GEMglPassThrough.cpp */; }; + 3A2DD3B70E40978700767D22 /* GEMglPassThrough.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1630E40978600767D22 /* GEMglPassThrough.h */; }; + 3A2DD3B80E40978700767D22 /* GEMglPixelStoref.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1640E40978600767D22 /* GEMglPixelStoref.cpp */; }; + 3A2DD3B90E40978700767D22 /* GEMglPixelStoref.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1650E40978600767D22 /* GEMglPixelStoref.h */; }; + 3A2DD3BA0E40978700767D22 /* GEMglPixelStorei.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1660E40978600767D22 /* GEMglPixelStorei.cpp */; }; + 3A2DD3BB0E40978700767D22 /* GEMglPixelStorei.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1670E40978600767D22 /* GEMglPixelStorei.h */; }; + 3A2DD3BC0E40978700767D22 /* GEMglPixelTransferf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1680E40978600767D22 /* GEMglPixelTransferf.cpp */; }; + 3A2DD3BD0E40978700767D22 /* GEMglPixelTransferf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1690E40978600767D22 /* GEMglPixelTransferf.h */; }; + 3A2DD3BE0E40978700767D22 /* GEMglPixelTransferi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD16A0E40978600767D22 /* GEMglPixelTransferi.cpp */; }; + 3A2DD3BF0E40978700767D22 /* GEMglPixelTransferi.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD16B0E40978600767D22 /* GEMglPixelTransferi.h */; }; + 3A2DD3C00E40978700767D22 /* GEMglPixelZoom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD16C0E40978600767D22 /* GEMglPixelZoom.cpp */; }; + 3A2DD3C10E40978700767D22 /* GEMglPixelZoom.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD16D0E40978600767D22 /* GEMglPixelZoom.h */; }; + 3A2DD3C20E40978700767D22 /* GEMglPointSize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD16E0E40978600767D22 /* GEMglPointSize.cpp */; }; + 3A2DD3C30E40978700767D22 /* GEMglPointSize.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD16F0E40978600767D22 /* GEMglPointSize.h */; }; + 3A2DD3C40E40978700767D22 /* GEMglPolygonMode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1700E40978600767D22 /* GEMglPolygonMode.cpp */; }; + 3A2DD3C50E40978700767D22 /* GEMglPolygonMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1710E40978600767D22 /* GEMglPolygonMode.h */; }; + 3A2DD3C60E40978700767D22 /* GEMglPolygonOffset.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1720E40978600767D22 /* GEMglPolygonOffset.cpp */; }; + 3A2DD3C70E40978700767D22 /* GEMglPolygonOffset.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1730E40978600767D22 /* GEMglPolygonOffset.h */; }; + 3A2DD3C80E40978700767D22 /* GEMglPopAttrib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1740E40978600767D22 /* GEMglPopAttrib.cpp */; }; + 3A2DD3C90E40978700767D22 /* GEMglPopAttrib.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1750E40978600767D22 /* GEMglPopAttrib.h */; }; + 3A2DD3CA0E40978700767D22 /* GEMglPopClientAttrib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1760E40978600767D22 /* GEMglPopClientAttrib.cpp */; }; + 3A2DD3CB0E40978700767D22 /* GEMglPopClientAttrib.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1770E40978600767D22 /* GEMglPopClientAttrib.h */; }; + 3A2DD3CC0E40978700767D22 /* GEMglPopMatrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1780E40978600767D22 /* GEMglPopMatrix.cpp */; }; + 3A2DD3CD0E40978700767D22 /* GEMglPopMatrix.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1790E40978600767D22 /* GEMglPopMatrix.h */; }; + 3A2DD3CE0E40978700767D22 /* GEMglPopName.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD17A0E40978600767D22 /* GEMglPopName.cpp */; }; + 3A2DD3CF0E40978700767D22 /* GEMglPopName.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD17B0E40978600767D22 /* GEMglPopName.h */; }; + 3A2DD3D00E40978700767D22 /* GEMglPrioritizeTextures.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD17C0E40978600767D22 /* GEMglPrioritizeTextures.cpp */; }; + 3A2DD3D10E40978700767D22 /* GEMglPrioritizeTextures.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD17D0E40978600767D22 /* GEMglPrioritizeTextures.h */; }; + 3A2DD3D20E40978700767D22 /* GEMglProgramEnvParameter4dARB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD17E0E40978600767D22 /* GEMglProgramEnvParameter4dARB.cpp */; }; + 3A2DD3D30E40978700767D22 /* GEMglProgramEnvParameter4dARB.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD17F0E40978600767D22 /* GEMglProgramEnvParameter4dARB.h */; }; + 3A2DD3D40E40978700767D22 /* GEMglProgramEnvParameter4fvARB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1800E40978600767D22 /* GEMglProgramEnvParameter4fvARB.cpp */; }; + 3A2DD3D50E40978700767D22 /* GEMglProgramEnvParameter4fvARB.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1810E40978600767D22 /* GEMglProgramEnvParameter4fvARB.h */; }; + 3A2DD3D60E40978700767D22 /* GEMglProgramLocalParameter4fvARB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1820E40978600767D22 /* GEMglProgramLocalParameter4fvARB.cpp */; }; + 3A2DD3D70E40978700767D22 /* GEMglProgramLocalParameter4fvARB.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1830E40978600767D22 /* GEMglProgramLocalParameter4fvARB.h */; }; + 3A2DD3D80E40978700767D22 /* GEMglProgramStringARB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1840E40978600767D22 /* GEMglProgramStringARB.cpp */; }; + 3A2DD3D90E40978700767D22 /* GEMglProgramStringARB.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1850E40978600767D22 /* GEMglProgramStringARB.h */; }; + 3A2DD3DA0E40978700767D22 /* GEMglPushAttrib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1860E40978600767D22 /* GEMglPushAttrib.cpp */; }; + 3A2DD3DB0E40978700767D22 /* GEMglPushAttrib.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1870E40978600767D22 /* GEMglPushAttrib.h */; }; + 3A2DD3DC0E40978700767D22 /* GEMglPushClientAttrib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1880E40978600767D22 /* GEMglPushClientAttrib.cpp */; }; + 3A2DD3DD0E40978700767D22 /* GEMglPushClientAttrib.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1890E40978600767D22 /* GEMglPushClientAttrib.h */; }; + 3A2DD3DE0E40978700767D22 /* GEMglPushMatrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD18A0E40978600767D22 /* GEMglPushMatrix.cpp */; }; + 3A2DD3DF0E40978700767D22 /* GEMglPushMatrix.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD18B0E40978600767D22 /* GEMglPushMatrix.h */; }; + 3A2DD3E00E40978700767D22 /* GEMglPushName.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD18C0E40978600767D22 /* GEMglPushName.cpp */; }; + 3A2DD3E10E40978700767D22 /* GEMglPushName.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD18D0E40978600767D22 /* GEMglPushName.h */; }; + 3A2DD3E20E40978700767D22 /* GEMglRasterPos2d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD18E0E40978600767D22 /* GEMglRasterPos2d.cpp */; }; + 3A2DD3E30E40978700767D22 /* GEMglRasterPos2d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD18F0E40978600767D22 /* GEMglRasterPos2d.h */; }; + 3A2DD3E40E40978700767D22 /* GEMglRasterPos2dv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1900E40978600767D22 /* GEMglRasterPos2dv.cpp */; }; + 3A2DD3E50E40978700767D22 /* GEMglRasterPos2dv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1910E40978600767D22 /* GEMglRasterPos2dv.h */; }; + 3A2DD3E60E40978700767D22 /* GEMglRasterPos2f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1920E40978600767D22 /* GEMglRasterPos2f.cpp */; }; + 3A2DD3E70E40978700767D22 /* GEMglRasterPos2f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1930E40978600767D22 /* GEMglRasterPos2f.h */; }; + 3A2DD3E80E40978700767D22 /* GEMglRasterPos2fv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1940E40978600767D22 /* GEMglRasterPos2fv.cpp */; }; + 3A2DD3E90E40978700767D22 /* GEMglRasterPos2fv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1950E40978600767D22 /* GEMglRasterPos2fv.h */; }; + 3A2DD3EA0E40978700767D22 /* GEMglRasterPos2i.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1960E40978600767D22 /* GEMglRasterPos2i.cpp */; }; + 3A2DD3EB0E40978700767D22 /* GEMglRasterPos2i.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1970E40978600767D22 /* GEMglRasterPos2i.h */; }; + 3A2DD3EC0E40978700767D22 /* GEMglRasterPos2iv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1980E40978600767D22 /* GEMglRasterPos2iv.cpp */; }; + 3A2DD3ED0E40978700767D22 /* GEMglRasterPos2iv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1990E40978600767D22 /* GEMglRasterPos2iv.h */; }; + 3A2DD3EE0E40978700767D22 /* GEMglRasterPos2s.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD19A0E40978600767D22 /* GEMglRasterPos2s.cpp */; }; + 3A2DD3EF0E40978700767D22 /* GEMglRasterPos2s.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD19B0E40978600767D22 /* GEMglRasterPos2s.h */; }; + 3A2DD3F00E40978700767D22 /* GEMglRasterPos2sv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD19C0E40978600767D22 /* GEMglRasterPos2sv.cpp */; }; + 3A2DD3F10E40978700767D22 /* GEMglRasterPos2sv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD19D0E40978600767D22 /* GEMglRasterPos2sv.h */; }; + 3A2DD3F20E40978700767D22 /* GEMglRasterPos3d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD19E0E40978600767D22 /* GEMglRasterPos3d.cpp */; }; + 3A2DD3F30E40978700767D22 /* GEMglRasterPos3d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD19F0E40978600767D22 /* GEMglRasterPos3d.h */; }; + 3A2DD3F40E40978700767D22 /* GEMglRasterPos3dv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1A00E40978600767D22 /* GEMglRasterPos3dv.cpp */; }; + 3A2DD3F50E40978700767D22 /* GEMglRasterPos3dv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1A10E40978600767D22 /* GEMglRasterPos3dv.h */; }; + 3A2DD3F60E40978700767D22 /* GEMglRasterPos3f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1A20E40978600767D22 /* GEMglRasterPos3f.cpp */; }; + 3A2DD3F70E40978700767D22 /* GEMglRasterPos3f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1A30E40978600767D22 /* GEMglRasterPos3f.h */; }; + 3A2DD3F80E40978700767D22 /* GEMglRasterPos3fv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1A40E40978600767D22 /* GEMglRasterPos3fv.cpp */; }; + 3A2DD3F90E40978700767D22 /* GEMglRasterPos3fv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1A50E40978600767D22 /* GEMglRasterPos3fv.h */; }; + 3A2DD3FA0E40978700767D22 /* GEMglRasterPos3i.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1A60E40978600767D22 /* GEMglRasterPos3i.cpp */; }; + 3A2DD3FB0E40978700767D22 /* GEMglRasterPos3i.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1A70E40978600767D22 /* GEMglRasterPos3i.h */; }; + 3A2DD3FC0E40978700767D22 /* GEMglRasterPos3iv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1A80E40978600767D22 /* GEMglRasterPos3iv.cpp */; }; + 3A2DD3FD0E40978700767D22 /* GEMglRasterPos3iv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1A90E40978600767D22 /* GEMglRasterPos3iv.h */; }; + 3A2DD3FE0E40978700767D22 /* GEMglRasterPos3s.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1AA0E40978600767D22 /* GEMglRasterPos3s.cpp */; }; + 3A2DD3FF0E40978700767D22 /* GEMglRasterPos3s.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1AB0E40978600767D22 /* GEMglRasterPos3s.h */; }; + 3A2DD4000E40978700767D22 /* GEMglRasterPos3sv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1AC0E40978600767D22 /* GEMglRasterPos3sv.cpp */; }; + 3A2DD4010E40978700767D22 /* GEMglRasterPos3sv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1AD0E40978600767D22 /* GEMglRasterPos3sv.h */; }; + 3A2DD4020E40978700767D22 /* GEMglRasterPos4d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1AE0E40978600767D22 /* GEMglRasterPos4d.cpp */; }; + 3A2DD4030E40978700767D22 /* GEMglRasterPos4d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1AF0E40978600767D22 /* GEMglRasterPos4d.h */; }; + 3A2DD4040E40978700767D22 /* GEMglRasterPos4dv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1B00E40978600767D22 /* GEMglRasterPos4dv.cpp */; }; + 3A2DD4050E40978700767D22 /* GEMglRasterPos4dv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1B10E40978600767D22 /* GEMglRasterPos4dv.h */; }; + 3A2DD4060E40978700767D22 /* GEMglRasterPos4f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1B20E40978600767D22 /* GEMglRasterPos4f.cpp */; }; + 3A2DD4070E40978700767D22 /* GEMglRasterPos4f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1B30E40978600767D22 /* GEMglRasterPos4f.h */; }; + 3A2DD4080E40978700767D22 /* GEMglRasterPos4fv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1B40E40978600767D22 /* GEMglRasterPos4fv.cpp */; }; + 3A2DD4090E40978700767D22 /* GEMglRasterPos4fv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1B50E40978600767D22 /* GEMglRasterPos4fv.h */; }; + 3A2DD40A0E40978700767D22 /* GEMglRasterPos4i.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1B60E40978600767D22 /* GEMglRasterPos4i.cpp */; }; + 3A2DD40B0E40978700767D22 /* GEMglRasterPos4i.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1B70E40978600767D22 /* GEMglRasterPos4i.h */; }; + 3A2DD40C0E40978700767D22 /* GEMglRasterPos4iv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1B80E40978600767D22 /* GEMglRasterPos4iv.cpp */; }; + 3A2DD40D0E40978700767D22 /* GEMglRasterPos4iv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1B90E40978600767D22 /* GEMglRasterPos4iv.h */; }; + 3A2DD40E0E40978700767D22 /* GEMglRasterPos4s.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1BA0E40978600767D22 /* GEMglRasterPos4s.cpp */; }; + 3A2DD40F0E40978700767D22 /* GEMglRasterPos4s.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1BB0E40978600767D22 /* GEMglRasterPos4s.h */; }; + 3A2DD4100E40978700767D22 /* GEMglRasterPos4sv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1BC0E40978600767D22 /* GEMglRasterPos4sv.cpp */; }; + 3A2DD4110E40978700767D22 /* GEMglRasterPos4sv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1BD0E40978600767D22 /* GEMglRasterPos4sv.h */; }; + 3A2DD4120E40978700767D22 /* GEMglRectd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1BE0E40978600767D22 /* GEMglRectd.cpp */; }; + 3A2DD4130E40978700767D22 /* GEMglRectd.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1BF0E40978600767D22 /* GEMglRectd.h */; }; + 3A2DD4140E40978700767D22 /* GEMglRectf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1C00E40978600767D22 /* GEMglRectf.cpp */; }; + 3A2DD4150E40978700767D22 /* GEMglRectf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1C10E40978600767D22 /* GEMglRectf.h */; }; + 3A2DD4160E40978700767D22 /* GEMglRecti.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1C20E40978600767D22 /* GEMglRecti.cpp */; }; + 3A2DD4170E40978700767D22 /* GEMglRecti.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1C30E40978600767D22 /* GEMglRecti.h */; }; + 3A2DD4180E40978700767D22 /* GEMglRects.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1C40E40978600767D22 /* GEMglRects.cpp */; }; + 3A2DD4190E40978700767D22 /* GEMglRects.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1C50E40978600767D22 /* GEMglRects.h */; }; + 3A2DD41A0E40978700767D22 /* GEMglRenderMode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1C60E40978600767D22 /* GEMglRenderMode.cpp */; }; + 3A2DD41B0E40978700767D22 /* GEMglRenderMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1C70E40978600767D22 /* GEMglRenderMode.h */; }; + 3A2DD41C0E40978700767D22 /* GEMglReportError.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1C80E40978600767D22 /* GEMglReportError.cpp */; }; + 3A2DD41D0E40978700767D22 /* GEMglReportError.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1C90E40978600767D22 /* GEMglReportError.h */; }; + 3A2DD41E0E40978700767D22 /* GEMglRotated.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1CA0E40978600767D22 /* GEMglRotated.cpp */; }; + 3A2DD41F0E40978700767D22 /* GEMglRotated.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1CB0E40978600767D22 /* GEMglRotated.h */; }; + 3A2DD4200E40978700767D22 /* GEMglRotatef.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1CC0E40978600767D22 /* GEMglRotatef.cpp */; }; + 3A2DD4210E40978700767D22 /* GEMglRotatef.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1CD0E40978600767D22 /* GEMglRotatef.h */; }; + 3A2DD4220E40978700767D22 /* GEMglScaled.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1CE0E40978600767D22 /* GEMglScaled.cpp */; }; + 3A2DD4230E40978700767D22 /* GEMglScaled.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1CF0E40978600767D22 /* GEMglScaled.h */; }; + 3A2DD4240E40978700767D22 /* GEMglScalef.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1D00E40978600767D22 /* GEMglScalef.cpp */; }; + 3A2DD4250E40978700767D22 /* GEMglScalef.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1D10E40978600767D22 /* GEMglScalef.h */; }; + 3A2DD4260E40978700767D22 /* GEMglScissor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1D20E40978600767D22 /* GEMglScissor.cpp */; }; + 3A2DD4270E40978700767D22 /* GEMglScissor.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1D30E40978600767D22 /* GEMglScissor.h */; }; + 3A2DD4280E40978700767D22 /* GEMglSelectBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1D40E40978600767D22 /* GEMglSelectBuffer.cpp */; }; + 3A2DD4290E40978700767D22 /* GEMglSelectBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1D50E40978600767D22 /* GEMglSelectBuffer.h */; }; + 3A2DD42A0E40978700767D22 /* GEMglShadeModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1D60E40978600767D22 /* GEMglShadeModel.cpp */; }; + 3A2DD42B0E40978700767D22 /* GEMglShadeModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1D70E40978600767D22 /* GEMglShadeModel.h */; }; + 3A2DD42C0E40978700767D22 /* GEMglStencilFunc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1D80E40978600767D22 /* GEMglStencilFunc.cpp */; }; + 3A2DD42D0E40978700767D22 /* GEMglStencilFunc.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1D90E40978600767D22 /* GEMglStencilFunc.h */; }; + 3A2DD42E0E40978700767D22 /* GEMglStencilMask.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1DA0E40978600767D22 /* GEMglStencilMask.cpp */; }; + 3A2DD42F0E40978700767D22 /* GEMglStencilMask.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1DB0E40978600767D22 /* GEMglStencilMask.h */; }; + 3A2DD4300E40978700767D22 /* GEMglStencilOp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1DC0E40978600767D22 /* GEMglStencilOp.cpp */; }; + 3A2DD4310E40978700767D22 /* GEMglStencilOp.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1DD0E40978600767D22 /* GEMglStencilOp.h */; }; + 3A2DD4320E40978700767D22 /* GEMglTexCoord1d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1DE0E40978600767D22 /* GEMglTexCoord1d.cpp */; }; + 3A2DD4330E40978700767D22 /* GEMglTexCoord1d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1DF0E40978600767D22 /* GEMglTexCoord1d.h */; }; + 3A2DD4340E40978700767D22 /* GEMglTexCoord1dv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1E00E40978600767D22 /* GEMglTexCoord1dv.cpp */; }; + 3A2DD4350E40978700767D22 /* GEMglTexCoord1dv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1E10E40978600767D22 /* GEMglTexCoord1dv.h */; }; + 3A2DD4360E40978700767D22 /* GEMglTexCoord1f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1E20E40978600767D22 /* GEMglTexCoord1f.cpp */; }; + 3A2DD4370E40978700767D22 /* GEMglTexCoord1f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1E30E40978600767D22 /* GEMglTexCoord1f.h */; }; + 3A2DD4380E40978700767D22 /* GEMglTexCoord1fv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1E40E40978600767D22 /* GEMglTexCoord1fv.cpp */; }; + 3A2DD4390E40978700767D22 /* GEMglTexCoord1fv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1E50E40978600767D22 /* GEMglTexCoord1fv.h */; }; + 3A2DD43A0E40978700767D22 /* GEMglTexCoord1i.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1E60E40978600767D22 /* GEMglTexCoord1i.cpp */; }; + 3A2DD43B0E40978700767D22 /* GEMglTexCoord1i.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1E70E40978600767D22 /* GEMglTexCoord1i.h */; }; + 3A2DD43C0E40978700767D22 /* GEMglTexCoord1iv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1E80E40978600767D22 /* GEMglTexCoord1iv.cpp */; }; + 3A2DD43D0E40978700767D22 /* GEMglTexCoord1iv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1E90E40978600767D22 /* GEMglTexCoord1iv.h */; }; + 3A2DD43E0E40978700767D22 /* GEMglTexCoord1s.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1EA0E40978600767D22 /* GEMglTexCoord1s.cpp */; }; + 3A2DD43F0E40978700767D22 /* GEMglTexCoord1s.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1EB0E40978600767D22 /* GEMglTexCoord1s.h */; }; + 3A2DD4400E40978700767D22 /* GEMglTexCoord1sv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1EC0E40978600767D22 /* GEMglTexCoord1sv.cpp */; }; + 3A2DD4410E40978700767D22 /* GEMglTexCoord1sv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1ED0E40978600767D22 /* GEMglTexCoord1sv.h */; }; + 3A2DD4420E40978700767D22 /* GEMglTexCoord2d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1EE0E40978600767D22 /* GEMglTexCoord2d.cpp */; }; + 3A2DD4430E40978700767D22 /* GEMglTexCoord2d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1EF0E40978600767D22 /* GEMglTexCoord2d.h */; }; + 3A2DD4440E40978700767D22 /* GEMglTexCoord2dv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1F00E40978600767D22 /* GEMglTexCoord2dv.cpp */; }; + 3A2DD4450E40978700767D22 /* GEMglTexCoord2dv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1F10E40978600767D22 /* GEMglTexCoord2dv.h */; }; + 3A2DD4460E40978700767D22 /* GEMglTexCoord2f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1F20E40978600767D22 /* GEMglTexCoord2f.cpp */; }; + 3A2DD4470E40978700767D22 /* GEMglTexCoord2f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1F30E40978600767D22 /* GEMglTexCoord2f.h */; }; + 3A2DD4480E40978700767D22 /* GEMglTexCoord2fv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1F40E40978600767D22 /* GEMglTexCoord2fv.cpp */; }; + 3A2DD4490E40978700767D22 /* GEMglTexCoord2fv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1F50E40978600767D22 /* GEMglTexCoord2fv.h */; }; + 3A2DD44A0E40978700767D22 /* GEMglTexCoord2i.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1F60E40978600767D22 /* GEMglTexCoord2i.cpp */; }; + 3A2DD44B0E40978700767D22 /* GEMglTexCoord2i.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1F70E40978600767D22 /* GEMglTexCoord2i.h */; }; + 3A2DD44C0E40978700767D22 /* GEMglTexCoord2iv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1F80E40978600767D22 /* GEMglTexCoord2iv.cpp */; }; + 3A2DD44D0E40978700767D22 /* GEMglTexCoord2iv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1F90E40978600767D22 /* GEMglTexCoord2iv.h */; }; + 3A2DD44E0E40978700767D22 /* GEMglTexCoord2s.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1FA0E40978600767D22 /* GEMglTexCoord2s.cpp */; }; + 3A2DD44F0E40978700767D22 /* GEMglTexCoord2s.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1FB0E40978600767D22 /* GEMglTexCoord2s.h */; }; + 3A2DD4500E40978700767D22 /* GEMglTexCoord2sv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1FC0E40978600767D22 /* GEMglTexCoord2sv.cpp */; }; + 3A2DD4510E40978700767D22 /* GEMglTexCoord2sv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1FD0E40978600767D22 /* GEMglTexCoord2sv.h */; }; + 3A2DD4520E40978700767D22 /* GEMglTexCoord3d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1FE0E40978600767D22 /* GEMglTexCoord3d.cpp */; }; + 3A2DD4530E40978700767D22 /* GEMglTexCoord3d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1FF0E40978600767D22 /* GEMglTexCoord3d.h */; }; + 3A2DD4540E40978700767D22 /* GEMglTexCoord3dv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2000E40978600767D22 /* GEMglTexCoord3dv.cpp */; }; + 3A2DD4550E40978700767D22 /* GEMglTexCoord3dv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2010E40978600767D22 /* GEMglTexCoord3dv.h */; }; + 3A2DD4560E40978700767D22 /* GEMglTexCoord3f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2020E40978600767D22 /* GEMglTexCoord3f.cpp */; }; + 3A2DD4570E40978700767D22 /* GEMglTexCoord3f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2030E40978600767D22 /* GEMglTexCoord3f.h */; }; + 3A2DD4580E40978700767D22 /* GEMglTexCoord3fv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2040E40978600767D22 /* GEMglTexCoord3fv.cpp */; }; + 3A2DD4590E40978700767D22 /* GEMglTexCoord3fv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2050E40978600767D22 /* GEMglTexCoord3fv.h */; }; + 3A2DD45A0E40978700767D22 /* GEMglTexCoord3i.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2060E40978600767D22 /* GEMglTexCoord3i.cpp */; }; + 3A2DD45B0E40978700767D22 /* GEMglTexCoord3i.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2070E40978600767D22 /* GEMglTexCoord3i.h */; }; + 3A2DD45C0E40978700767D22 /* GEMglTexCoord3iv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2080E40978600767D22 /* GEMglTexCoord3iv.cpp */; }; + 3A2DD45D0E40978700767D22 /* GEMglTexCoord3iv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2090E40978600767D22 /* GEMglTexCoord3iv.h */; }; + 3A2DD45E0E40978700767D22 /* GEMglTexCoord3s.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD20A0E40978600767D22 /* GEMglTexCoord3s.cpp */; }; + 3A2DD45F0E40978700767D22 /* GEMglTexCoord3s.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD20B0E40978600767D22 /* GEMglTexCoord3s.h */; }; + 3A2DD4600E40978700767D22 /* GEMglTexCoord3sv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD20C0E40978600767D22 /* GEMglTexCoord3sv.cpp */; }; + 3A2DD4610E40978700767D22 /* GEMglTexCoord3sv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD20D0E40978600767D22 /* GEMglTexCoord3sv.h */; }; + 3A2DD4620E40978700767D22 /* GEMglTexCoord4d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD20E0E40978600767D22 /* GEMglTexCoord4d.cpp */; }; + 3A2DD4630E40978700767D22 /* GEMglTexCoord4d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD20F0E40978600767D22 /* GEMglTexCoord4d.h */; }; + 3A2DD4640E40978700767D22 /* GEMglTexCoord4dv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2100E40978600767D22 /* GEMglTexCoord4dv.cpp */; }; + 3A2DD4650E40978700767D22 /* GEMglTexCoord4dv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2110E40978600767D22 /* GEMglTexCoord4dv.h */; }; + 3A2DD4660E40978700767D22 /* GEMglTexCoord4f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2120E40978600767D22 /* GEMglTexCoord4f.cpp */; }; + 3A2DD4670E40978700767D22 /* GEMglTexCoord4f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2130E40978600767D22 /* GEMglTexCoord4f.h */; }; + 3A2DD4680E40978700767D22 /* GEMglTexCoord4fv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2140E40978600767D22 /* GEMglTexCoord4fv.cpp */; }; + 3A2DD4690E40978700767D22 /* GEMglTexCoord4fv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2150E40978600767D22 /* GEMglTexCoord4fv.h */; }; + 3A2DD46A0E40978700767D22 /* GEMglTexCoord4i.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2160E40978600767D22 /* GEMglTexCoord4i.cpp */; }; + 3A2DD46B0E40978700767D22 /* GEMglTexCoord4i.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2170E40978600767D22 /* GEMglTexCoord4i.h */; }; + 3A2DD46C0E40978700767D22 /* GEMglTexCoord4iv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2180E40978600767D22 /* GEMglTexCoord4iv.cpp */; }; + 3A2DD46D0E40978700767D22 /* GEMglTexCoord4iv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2190E40978600767D22 /* GEMglTexCoord4iv.h */; }; + 3A2DD46E0E40978700767D22 /* GEMglTexCoord4s.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD21A0E40978600767D22 /* GEMglTexCoord4s.cpp */; }; + 3A2DD46F0E40978700767D22 /* GEMglTexCoord4s.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD21B0E40978600767D22 /* GEMglTexCoord4s.h */; }; + 3A2DD4700E40978700767D22 /* GEMglTexCoord4sv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD21C0E40978600767D22 /* GEMglTexCoord4sv.cpp */; }; + 3A2DD4710E40978700767D22 /* GEMglTexCoord4sv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD21D0E40978600767D22 /* GEMglTexCoord4sv.h */; }; + 3A2DD4720E40978700767D22 /* GEMglTexEnvf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD21E0E40978600767D22 /* GEMglTexEnvf.cpp */; }; + 3A2DD4730E40978700767D22 /* GEMglTexEnvf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD21F0E40978600767D22 /* GEMglTexEnvf.h */; }; + 3A2DD4740E40978700767D22 /* GEMglTexEnvi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2200E40978600767D22 /* GEMglTexEnvi.cpp */; }; + 3A2DD4750E40978700767D22 /* GEMglTexEnvi.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2210E40978600767D22 /* GEMglTexEnvi.h */; }; + 3A2DD4760E40978700767D22 /* GEMglTexGend.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2220E40978700767D22 /* GEMglTexGend.cpp */; }; + 3A2DD4770E40978700767D22 /* GEMglTexGend.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2230E40978700767D22 /* GEMglTexGend.h */; }; + 3A2DD4780E40978700767D22 /* GEMglTexGenf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2240E40978700767D22 /* GEMglTexGenf.cpp */; }; + 3A2DD4790E40978700767D22 /* GEMglTexGenf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2250E40978700767D22 /* GEMglTexGenf.h */; }; + 3A2DD47A0E40978700767D22 /* GEMglTexGenfv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2260E40978700767D22 /* GEMglTexGenfv.cpp */; }; + 3A2DD47B0E40978700767D22 /* GEMglTexGenfv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2270E40978700767D22 /* GEMglTexGenfv.h */; }; + 3A2DD47C0E40978700767D22 /* GEMglTexGeni.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2280E40978700767D22 /* GEMglTexGeni.cpp */; }; + 3A2DD47D0E40978700767D22 /* GEMglTexGeni.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2290E40978700767D22 /* GEMglTexGeni.h */; }; + 3A2DD47E0E40978700767D22 /* GEMglTexParameterf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD22A0E40978700767D22 /* GEMglTexParameterf.cpp */; }; + 3A2DD47F0E40978700767D22 /* GEMglTexParameterf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD22B0E40978700767D22 /* GEMglTexParameterf.h */; }; + 3A2DD4800E40978700767D22 /* GEMglTexParameteri.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD22C0E40978700767D22 /* GEMglTexParameteri.cpp */; }; + 3A2DD4810E40978700767D22 /* GEMglTexParameteri.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD22D0E40978700767D22 /* GEMglTexParameteri.h */; }; + 3A2DD4820E40978700767D22 /* GEMglTexSubImage1D.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD22E0E40978700767D22 /* GEMglTexSubImage1D.cpp */; }; + 3A2DD4830E40978700767D22 /* GEMglTexSubImage1D.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD22F0E40978700767D22 /* GEMglTexSubImage1D.h */; }; + 3A2DD4840E40978700767D22 /* GEMglTexSubImage2D.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2300E40978700767D22 /* GEMglTexSubImage2D.cpp */; }; + 3A2DD4850E40978700767D22 /* GEMglTexSubImage2D.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2310E40978700767D22 /* GEMglTexSubImage2D.h */; }; + 3A2DD4860E40978700767D22 /* GEMglTranslated.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2320E40978700767D22 /* GEMglTranslated.cpp */; }; + 3A2DD4870E40978700767D22 /* GEMglTranslated.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2330E40978700767D22 /* GEMglTranslated.h */; }; + 3A2DD4880E40978700767D22 /* GEMglTranslatef.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2340E40978700767D22 /* GEMglTranslatef.cpp */; }; + 3A2DD4890E40978700767D22 /* GEMglTranslatef.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2350E40978700767D22 /* GEMglTranslatef.h */; }; + 3A2DD48A0E40978700767D22 /* GEMglUniform1fARB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2360E40978700767D22 /* GEMglUniform1fARB.cpp */; }; + 3A2DD48B0E40978700767D22 /* GEMglUniform1fARB.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2370E40978700767D22 /* GEMglUniform1fARB.h */; }; + 3A2DD48C0E40978700767D22 /* GEMgluPerspective.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2380E40978700767D22 /* GEMgluPerspective.cpp */; }; + 3A2DD48D0E40978700767D22 /* GEMgluPerspective.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2390E40978700767D22 /* GEMgluPerspective.h */; }; + 3A2DD48E0E40978700767D22 /* GEMglUseProgramObjectARB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD23A0E40978700767D22 /* GEMglUseProgramObjectARB.cpp */; }; + 3A2DD48F0E40978700767D22 /* GEMglUseProgramObjectARB.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD23B0E40978700767D22 /* GEMglUseProgramObjectARB.h */; }; + 3A2DD4900E40978700767D22 /* GEMglVertex2d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD23C0E40978700767D22 /* GEMglVertex2d.cpp */; }; + 3A2DD4910E40978700767D22 /* GEMglVertex2d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD23D0E40978700767D22 /* GEMglVertex2d.h */; }; + 3A2DD4920E40978700767D22 /* GEMglVertex2dv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD23E0E40978700767D22 /* GEMglVertex2dv.cpp */; }; + 3A2DD4930E40978700767D22 /* GEMglVertex2dv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD23F0E40978700767D22 /* GEMglVertex2dv.h */; }; + 3A2DD4940E40978700767D22 /* GEMglVertex2f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2400E40978700767D22 /* GEMglVertex2f.cpp */; }; + 3A2DD4950E40978700767D22 /* GEMglVertex2f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2410E40978700767D22 /* GEMglVertex2f.h */; }; + 3A2DD4960E40978700767D22 /* GEMglVertex2fv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2420E40978700767D22 /* GEMglVertex2fv.cpp */; }; + 3A2DD4970E40978700767D22 /* GEMglVertex2fv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2430E40978700767D22 /* GEMglVertex2fv.h */; }; + 3A2DD4980E40978700767D22 /* GEMglVertex2i.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2440E40978700767D22 /* GEMglVertex2i.cpp */; }; + 3A2DD4990E40978700767D22 /* GEMglVertex2i.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2450E40978700767D22 /* GEMglVertex2i.h */; }; + 3A2DD49A0E40978700767D22 /* GEMglVertex2iv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2460E40978700767D22 /* GEMglVertex2iv.cpp */; }; + 3A2DD49B0E40978700767D22 /* GEMglVertex2iv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2470E40978700767D22 /* GEMglVertex2iv.h */; }; + 3A2DD49C0E40978700767D22 /* GEMglVertex2s.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2480E40978700767D22 /* GEMglVertex2s.cpp */; }; + 3A2DD49D0E40978700767D22 /* GEMglVertex2s.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2490E40978700767D22 /* GEMglVertex2s.h */; }; + 3A2DD49E0E40978700767D22 /* GEMglVertex2sv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD24A0E40978700767D22 /* GEMglVertex2sv.cpp */; }; + 3A2DD49F0E40978700767D22 /* GEMglVertex2sv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD24B0E40978700767D22 /* GEMglVertex2sv.h */; }; + 3A2DD4A00E40978700767D22 /* GEMglVertex3d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD24C0E40978700767D22 /* GEMglVertex3d.cpp */; }; + 3A2DD4A10E40978700767D22 /* GEMglVertex3d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD24D0E40978700767D22 /* GEMglVertex3d.h */; }; + 3A2DD4A20E40978700767D22 /* GEMglVertex3dv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD24E0E40978700767D22 /* GEMglVertex3dv.cpp */; }; + 3A2DD4A30E40978700767D22 /* GEMglVertex3dv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD24F0E40978700767D22 /* GEMglVertex3dv.h */; }; + 3A2DD4A40E40978700767D22 /* GEMglVertex3f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2500E40978700767D22 /* GEMglVertex3f.cpp */; }; + 3A2DD4A50E40978700767D22 /* GEMglVertex3f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2510E40978700767D22 /* GEMglVertex3f.h */; }; + 3A2DD4A60E40978700767D22 /* GEMglVertex3fv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2520E40978700767D22 /* GEMglVertex3fv.cpp */; }; + 3A2DD4A70E40978700767D22 /* GEMglVertex3fv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2530E40978700767D22 /* GEMglVertex3fv.h */; }; + 3A2DD4A80E40978700767D22 /* GEMglVertex3i.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2540E40978700767D22 /* GEMglVertex3i.cpp */; }; + 3A2DD4A90E40978700767D22 /* GEMglVertex3i.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2550E40978700767D22 /* GEMglVertex3i.h */; }; + 3A2DD4AA0E40978700767D22 /* GEMglVertex3iv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2560E40978700767D22 /* GEMglVertex3iv.cpp */; }; + 3A2DD4AB0E40978700767D22 /* GEMglVertex3iv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2570E40978700767D22 /* GEMglVertex3iv.h */; }; + 3A2DD4AC0E40978700767D22 /* GEMglVertex3s.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2580E40978700767D22 /* GEMglVertex3s.cpp */; }; + 3A2DD4AD0E40978700767D22 /* GEMglVertex3s.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2590E40978700767D22 /* GEMglVertex3s.h */; }; + 3A2DD4AE0E40978700767D22 /* GEMglVertex3sv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD25A0E40978700767D22 /* GEMglVertex3sv.cpp */; }; + 3A2DD4AF0E40978700767D22 /* GEMglVertex3sv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD25B0E40978700767D22 /* GEMglVertex3sv.h */; }; + 3A2DD4B00E40978700767D22 /* GEMglVertex4d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD25C0E40978700767D22 /* GEMglVertex4d.cpp */; }; + 3A2DD4B10E40978700767D22 /* GEMglVertex4d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD25D0E40978700767D22 /* GEMglVertex4d.h */; }; + 3A2DD4B20E40978700767D22 /* GEMglVertex4dv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD25E0E40978700767D22 /* GEMglVertex4dv.cpp */; }; + 3A2DD4B30E40978700767D22 /* GEMglVertex4dv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD25F0E40978700767D22 /* GEMglVertex4dv.h */; }; + 3A2DD4B40E40978700767D22 /* GEMglVertex4f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2600E40978700767D22 /* GEMglVertex4f.cpp */; }; + 3A2DD4B50E40978700767D22 /* GEMglVertex4f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2610E40978700767D22 /* GEMglVertex4f.h */; }; + 3A2DD4B60E40978700767D22 /* GEMglVertex4fv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2620E40978700767D22 /* GEMglVertex4fv.cpp */; }; + 3A2DD4B70E40978700767D22 /* GEMglVertex4fv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2630E40978700767D22 /* GEMglVertex4fv.h */; }; + 3A2DD4B80E40978700767D22 /* GEMglVertex4i.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2640E40978700767D22 /* GEMglVertex4i.cpp */; }; + 3A2DD4B90E40978700767D22 /* GEMglVertex4i.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2650E40978700767D22 /* GEMglVertex4i.h */; }; + 3A2DD4BA0E40978700767D22 /* GEMglVertex4iv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2660E40978700767D22 /* GEMglVertex4iv.cpp */; }; + 3A2DD4BB0E40978700767D22 /* GEMglVertex4iv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2670E40978700767D22 /* GEMglVertex4iv.h */; }; + 3A2DD4BC0E40978700767D22 /* GEMglVertex4s.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2680E40978700767D22 /* GEMglVertex4s.cpp */; }; + 3A2DD4BD0E40978700767D22 /* GEMglVertex4s.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2690E40978700767D22 /* GEMglVertex4s.h */; }; + 3A2DD4BE0E40978700767D22 /* GEMglVertex4sv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD26A0E40978700767D22 /* GEMglVertex4sv.cpp */; }; + 3A2DD4BF0E40978700767D22 /* GEMglVertex4sv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD26B0E40978700767D22 /* GEMglVertex4sv.h */; }; + 3A2DD4C00E40978700767D22 /* GEMglViewport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD26C0E40978700767D22 /* GEMglViewport.cpp */; }; + 3A2DD4C10E40978700767D22 /* GEMglViewport.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD26D0E40978700767D22 /* GEMglViewport.h */; }; + 3A2DD4C20E40978700767D22 /* GLdefine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD26E0E40978700767D22 /* GLdefine.cpp */; }; + 3A2DD4C30E40978700767D22 /* GLdefine.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD26F0E40978700767D22 /* GLdefine.h */; }; + 3A2DD4F60E4097BC00767D22 /* papi.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4C60E4097BC00767D22 /* papi.h */; }; + 3A2DD4F70E4097BC00767D22 /* part_color.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4C70E4097BC00767D22 /* part_color.cpp */; }; + 3A2DD4F80E4097BC00767D22 /* part_color.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4C80E4097BC00767D22 /* part_color.h */; }; + 3A2DD4F90E4097BC00767D22 /* part_damp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4C90E4097BC00767D22 /* part_damp.cpp */; }; + 3A2DD4FA0E4097BC00767D22 /* part_damp.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4CA0E4097BC00767D22 /* part_damp.h */; }; + 3A2DD4FB0E4097BC00767D22 /* part_draw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4CB0E4097BC00767D22 /* part_draw.cpp */; }; + 3A2DD4FC0E4097BC00767D22 /* part_draw.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4CC0E4097BC00767D22 /* part_draw.h */; }; + 3A2DD4FD0E4097BC00767D22 /* part_follow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4CD0E4097BC00767D22 /* part_follow.cpp */; }; + 3A2DD4FE0E4097BC00767D22 /* part_follow.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4CE0E4097BC00767D22 /* part_follow.h */; }; + 3A2DD4FF0E4097BC00767D22 /* part_gravity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4CF0E4097BC00767D22 /* part_gravity.cpp */; }; + 3A2DD5000E4097BC00767D22 /* part_gravity.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4D00E4097BC00767D22 /* part_gravity.h */; }; + 3A2DD5010E4097BC00767D22 /* part_head.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4D10E4097BC00767D22 /* part_head.cpp */; }; + 3A2DD5020E4097BC00767D22 /* part_head.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4D20E4097BC00767D22 /* part_head.h */; }; + 3A2DD5030E4097BC00767D22 /* part_info.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4D30E4097BC00767D22 /* part_info.cpp */; }; + 3A2DD5040E4097BC00767D22 /* part_info.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4D40E4097BC00767D22 /* part_info.h */; }; + 3A2DD5050E4097BC00767D22 /* part_killold.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4D50E4097BC00767D22 /* part_killold.cpp */; }; + 3A2DD5060E4097BC00767D22 /* part_killold.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4D60E4097BC00767D22 /* part_killold.h */; }; + 3A2DD5070E4097BC00767D22 /* part_killslow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4D70E4097BC00767D22 /* part_killslow.cpp */; }; + 3A2DD5080E4097BC00767D22 /* part_killslow.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4D80E4097BC00767D22 /* part_killslow.h */; }; + 3A2DD5090E4097BC00767D22 /* part_orbitpoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4D90E4097BC00767D22 /* part_orbitpoint.cpp */; }; + 3A2DD50A0E4097BC00767D22 /* part_orbitpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4DA0E4097BC00767D22 /* part_orbitpoint.h */; }; + 3A2DD50B0E4097BC00767D22 /* part_render.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4DB0E4097BC00767D22 /* part_render.cpp */; }; + 3A2DD50C0E4097BC00767D22 /* part_render.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4DC0E4097BC00767D22 /* part_render.h */; }; + 3A2DD50D0E4097BC00767D22 /* part_sink.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4DD0E4097BC00767D22 /* part_sink.cpp */; }; + 3A2DD50E0E4097BC00767D22 /* part_sink.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4DE0E4097BC00767D22 /* part_sink.h */; }; + 3A2DD50F0E4097BC00767D22 /* part_size.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4DF0E4097BC00767D22 /* part_size.cpp */; }; + 3A2DD5100E4097BC00767D22 /* part_size.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4E00E4097BC00767D22 /* part_size.h */; }; + 3A2DD5110E4097BC00767D22 /* part_source.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4E10E4097BC00767D22 /* part_source.cpp */; }; + 3A2DD5120E4097BC00767D22 /* part_source.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4E20E4097BC00767D22 /* part_source.h */; }; + 3A2DD5130E4097BC00767D22 /* part_targetcolor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4E30E4097BC00767D22 /* part_targetcolor.cpp */; }; + 3A2DD5140E4097BC00767D22 /* part_targetcolor.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4E40E4097BC00767D22 /* part_targetcolor.h */; }; + 3A2DD5150E4097BC00767D22 /* part_targetsize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4E50E4097BC00767D22 /* part_targetsize.cpp */; }; + 3A2DD5160E4097BC00767D22 /* part_targetsize.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4E60E4097BC00767D22 /* part_targetsize.h */; }; + 3A2DD5170E4097BC00767D22 /* part_velcone.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4E70E4097BC00767D22 /* part_velcone.cpp */; }; + 3A2DD5180E4097BC00767D22 /* part_velcone.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4E80E4097BC00767D22 /* part_velcone.h */; }; + 3A2DD5190E4097BC00767D22 /* part_velocity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4E90E4097BC00767D22 /* part_velocity.cpp */; }; + 3A2DD51A0E4097BC00767D22 /* part_velocity.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4EA0E4097BC00767D22 /* part_velocity.h */; }; + 3A2DD51B0E4097BC00767D22 /* part_velsphere.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4EB0E4097BC00767D22 /* part_velsphere.cpp */; }; + 3A2DD51C0E4097BC00767D22 /* part_velsphere.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4EC0E4097BC00767D22 /* part_velsphere.h */; }; + 3A2DD51D0E4097BC00767D22 /* part_vertex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4ED0E4097BC00767D22 /* part_vertex.cpp */; }; + 3A2DD51E0E4097BC00767D22 /* part_vertex.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4EE0E4097BC00767D22 /* part_vertex.h */; }; + 3A2DD51F0E4097BC00767D22 /* partlib_actionapi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4EF0E4097BC00767D22 /* partlib_actionapi.cpp */; }; + 3A2DD5200E4097BC00767D22 /* partlib_actions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4F00E4097BC00767D22 /* partlib_actions.cpp */; }; + 3A2DD5210E4097BC00767D22 /* partlib_general.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4F10E4097BC00767D22 /* partlib_general.h */; }; + 3A2DD5220E4097BC00767D22 /* partlib_opengl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4F20E4097BC00767D22 /* partlib_opengl.cpp */; }; + 3A2DD5230E4097BC00767D22 /* partlib_system.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4F30E4097BC00767D22 /* partlib_system.cpp */; }; + 3A2DD5240E4097BC00767D22 /* partlib_vector.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4F40E4097BC00767D22 /* partlib_vector.h */; }; + 3A2DD63C0E4097D500767D22 /* film.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5280E4097D300767D22 /* film.cpp */; }; + 3A2DD63D0E4097D500767D22 /* film.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5290E4097D300767D22 /* film.h */; }; + 3A2DD6420E4097D500767D22 /* filmDarwin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD52E0E4097D300767D22 /* filmDarwin.cpp */; }; + 3A2DD6430E4097D500767D22 /* filmDarwin.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD52F0E4097D300767D22 /* filmDarwin.h */; }; + 3A2DD64C0E4097D500767D22 /* filmQT.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5380E4097D400767D22 /* filmQT.cpp */; }; + 3A2DD64D0E4097D500767D22 /* filmQT.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5390E4097D400767D22 /* filmQT.h */; }; + 3A2DD6500E4097D500767D22 /* FreeFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD53C0E4097D400767D22 /* FreeFrame.h */; }; + 3A2DD6510E4097D500767D22 /* libfidtrack_fidtrackX.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD53D0E4097D400767D22 /* libfidtrack_fidtrackX.cpp */; }; + 3A2DD6520E4097D500767D22 /* libfidtrack_fidtrackX.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD53E0E4097D400767D22 /* libfidtrack_fidtrackX.h */; }; + 3A2DD6530E4097D500767D22 /* libfidtrack_segment.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD53F0E4097D400767D22 /* libfidtrack_segment.cpp */; }; + 3A2DD6540E4097D500767D22 /* libfidtrack_segment.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5400E4097D400767D22 /* libfidtrack_segment.h */; }; + 3A2DD6550E4097D500767D22 /* libfidtrack_treeidmap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5410E4097D400767D22 /* libfidtrack_treeidmap.cpp */; }; + 3A2DD6560E4097D500767D22 /* libfidtrack_treeidmap.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5420E4097D400767D22 /* libfidtrack_treeidmap.h */; }; + 3A2DD6580E4097D500767D22 /* pix_2grey.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5440E4097D400767D22 /* pix_2grey.cpp */; }; + 3A2DD6590E4097D500767D22 /* pix_2grey.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5450E4097D400767D22 /* pix_2grey.h */; }; + 3A2DD65A0E4097D500767D22 /* pix_a_2grey.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5460E4097D400767D22 /* pix_a_2grey.cpp */; }; + 3A2DD65B0E4097D500767D22 /* pix_a_2grey.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5470E4097D400767D22 /* pix_a_2grey.h */; }; + 3A2DD65C0E4097D500767D22 /* pix_add.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5480E4097D400767D22 /* pix_add.cpp */; }; + 3A2DD65D0E4097D500767D22 /* pix_add.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5490E4097D400767D22 /* pix_add.h */; }; + 3A2DD65E0E4097D500767D22 /* pix_aging.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD54A0E4097D400767D22 /* pix_aging.cpp */; }; + 3A2DD65F0E4097D500767D22 /* pix_aging.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD54B0E4097D400767D22 /* pix_aging.h */; }; + 3A2DD6600E4097D500767D22 /* pix_alpha.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD54C0E4097D400767D22 /* pix_alpha.cpp */; }; + 3A2DD6610E4097D500767D22 /* pix_alpha.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD54D0E4097D400767D22 /* pix_alpha.h */; }; + 3A2DD6620E4097D500767D22 /* pix_artoolkit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD54E0E4097D400767D22 /* pix_artoolkit.cpp */; }; + 3A2DD6630E4097D500767D22 /* pix_artoolkit.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD54F0E4097D400767D22 /* pix_artoolkit.h */; }; + 3A2DD6640E4097D500767D22 /* pix_background.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5500E4097D400767D22 /* pix_background.cpp */; }; + 3A2DD6650E4097D500767D22 /* pix_background.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5510E4097D400767D22 /* pix_background.h */; }; + 3A2DD6660E4097D500767D22 /* pix_backlight.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5520E4097D400767D22 /* pix_backlight.cpp */; }; + 3A2DD6670E4097D500767D22 /* pix_backlight.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5530E4097D400767D22 /* pix_backlight.h */; }; + 3A2DD6680E4097D500767D22 /* pix_biquad.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5540E4097D400767D22 /* pix_biquad.cpp */; }; + 3A2DD6690E4097D500767D22 /* pix_biquad.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5550E4097D400767D22 /* pix_biquad.h */; }; + 3A2DD66A0E4097D500767D22 /* pix_bitmask.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5560E4097D400767D22 /* pix_bitmask.cpp */; }; + 3A2DD66B0E4097D500767D22 /* pix_bitmask.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5570E4097D400767D22 /* pix_bitmask.h */; }; + 3A2DD66C0E4097D500767D22 /* pix_blob.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5580E4097D400767D22 /* pix_blob.cpp */; }; + 3A2DD66D0E4097D500767D22 /* pix_blob.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5590E4097D400767D22 /* pix_blob.h */; }; + 3A2DD66E0E4097D500767D22 /* pix_blur.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD55A0E4097D400767D22 /* pix_blur.cpp */; }; + 3A2DD66F0E4097D500767D22 /* pix_blur.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD55B0E4097D400767D22 /* pix_blur.h */; }; + 3A2DD6700E4097D500767D22 /* pix_buf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD55C0E4097D400767D22 /* pix_buf.cpp */; }; + 3A2DD6710E4097D500767D22 /* pix_buf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD55D0E4097D400767D22 /* pix_buf.h */; }; + 3A2DD6720E4097D500767D22 /* pix_buffer_read.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD55E0E4097D400767D22 /* pix_buffer_read.cpp */; }; + 3A2DD6730E4097D500767D22 /* pix_buffer_read.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD55F0E4097D400767D22 /* pix_buffer_read.h */; }; + 3A2DD6740E4097D500767D22 /* pix_buffer_write.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5600E4097D400767D22 /* pix_buffer_write.cpp */; }; + 3A2DD6750E4097D500767D22 /* pix_buffer_write.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5610E4097D400767D22 /* pix_buffer_write.h */; }; + 3A2DD6760E4097D500767D22 /* pix_buffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5620E4097D400767D22 /* pix_buffer.cpp */; }; + 3A2DD6770E4097D500767D22 /* pix_buffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5630E4097D400767D22 /* pix_buffer.h */; }; + 3A2DD6780E4097D500767D22 /* pix_chroma_key.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5640E4097D400767D22 /* pix_chroma_key.cpp */; }; + 3A2DD6790E4097D500767D22 /* pix_chroma_key.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5650E4097D400767D22 /* pix_chroma_key.h */; }; + 3A2DD67A0E4097D500767D22 /* pix_clearblock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5660E4097D400767D22 /* pix_clearblock.cpp */; }; + 3A2DD67B0E4097D500767D22 /* pix_clearblock.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5670E4097D400767D22 /* pix_clearblock.h */; }; + 3A2DD67C0E4097D500767D22 /* pix_color.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5680E4097D400767D22 /* pix_color.cpp */; }; + 3A2DD67D0E4097D500767D22 /* pix_color.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5690E4097D400767D22 /* pix_color.h */; }; + 3A2DD67E0E4097D500767D22 /* pix_coloralpha.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD56A0E4097D400767D22 /* pix_coloralpha.cpp */; }; + 3A2DD67F0E4097D500767D22 /* pix_coloralpha.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD56B0E4097D400767D22 /* pix_coloralpha.h */; }; + 3A2DD6800E4097D500767D22 /* pix_colormatrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD56C0E4097D400767D22 /* pix_colormatrix.cpp */; }; + 3A2DD6810E4097D500767D22 /* pix_colormatrix.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD56D0E4097D400767D22 /* pix_colormatrix.h */; }; + 3A2DD6820E4097D500767D22 /* pix_colorreduce.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD56E0E4097D400767D22 /* pix_colorreduce.cpp */; }; + 3A2DD6830E4097D500767D22 /* pix_colorreduce.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD56F0E4097D400767D22 /* pix_colorreduce.h */; }; + 3A2DD6840E4097D500767D22 /* pix_compare.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5700E4097D400767D22 /* pix_compare.cpp */; }; + 3A2DD6850E4097D500767D22 /* pix_compare.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5710E4097D400767D22 /* pix_compare.h */; }; + 3A2DD6860E4097D500767D22 /* pix_composite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5720E4097D400767D22 /* pix_composite.cpp */; }; + 3A2DD6870E4097D500767D22 /* pix_composite.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5730E4097D400767D22 /* pix_composite.h */; }; + 3A2DD6880E4097D500767D22 /* pix_contrast.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5740E4097D400767D22 /* pix_contrast.cpp */; }; + 3A2DD6890E4097D500767D22 /* pix_contrast.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5750E4097D400767D22 /* pix_contrast.h */; }; + 3A2DD68A0E4097D500767D22 /* pix_convert.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5760E4097D400767D22 /* pix_convert.cpp */; }; + 3A2DD68B0E4097D500767D22 /* pix_convert.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5770E4097D400767D22 /* pix_convert.h */; }; + 3A2DD68C0E4097D500767D22 /* pix_convolve.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5780E4097D400767D22 /* pix_convolve.cpp */; }; + 3A2DD68D0E4097D500767D22 /* pix_convolve.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5790E4097D400767D22 /* pix_convolve.h */; }; + 3A2DD68E0E4097D500767D22 /* pix_coordinate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD57A0E4097D400767D22 /* pix_coordinate.cpp */; }; + 3A2DD68F0E4097D500767D22 /* pix_coordinate.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD57B0E4097D400767D22 /* pix_coordinate.h */; }; + 3A2DD6900E4097D500767D22 /* pix_crop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD57C0E4097D400767D22 /* pix_crop.cpp */; }; + 3A2DD6910E4097D500767D22 /* pix_crop.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD57D0E4097D400767D22 /* pix_crop.h */; }; + 3A2DD6920E4097D500767D22 /* pix_curve.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD57E0E4097D400767D22 /* pix_curve.cpp */; }; + 3A2DD6930E4097D500767D22 /* pix_curve.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD57F0E4097D400767D22 /* pix_curve.h */; }; + 3A2DD6940E4097D500767D22 /* pix_data.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5800E4097D400767D22 /* pix_data.cpp */; }; + 3A2DD6950E4097D500767D22 /* pix_data.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5810E4097D400767D22 /* pix_data.h */; }; + 3A2DD6960E4097D500767D22 /* pix_deinterlace.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5820E4097D400767D22 /* pix_deinterlace.cpp */; }; + 3A2DD6970E4097D500767D22 /* pix_deinterlace.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5830E4097D400767D22 /* pix_deinterlace.h */; }; + 3A2DD6980E4097D500767D22 /* pix_delay.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5840E4097D400767D22 /* pix_delay.cpp */; }; + 3A2DD6990E4097D500767D22 /* pix_delay.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5850E4097D400767D22 /* pix_delay.h */; }; + 3A2DD69A0E4097D500767D22 /* pix_diff.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5860E4097D400767D22 /* pix_diff.cpp */; }; + 3A2DD69B0E4097D500767D22 /* pix_diff.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5870E4097D400767D22 /* pix_diff.h */; }; + 3A2DD69C0E4097D500767D22 /* pix_dot.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5880E4097D400767D22 /* pix_dot.cpp */; }; + 3A2DD69D0E4097D500767D22 /* pix_dot.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5890E4097D400767D22 /* pix_dot.h */; }; + 3A2DD69E0E4097D500767D22 /* pix_draw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD58A0E4097D400767D22 /* pix_draw.cpp */; }; + 3A2DD69F0E4097D500767D22 /* pix_draw.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD58B0E4097D400767D22 /* pix_draw.h */; }; + 3A2DD6A00E4097D500767D22 /* pix_dump.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD58C0E4097D400767D22 /* pix_dump.cpp */; }; + 3A2DD6A10E4097D500767D22 /* pix_dump.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD58D0E4097D400767D22 /* pix_dump.h */; }; + 3A2DD6A20E4097D500767D22 /* pix_duotone.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD58E0E4097D400767D22 /* pix_duotone.cpp */; }; + 3A2DD6A30E4097D500767D22 /* pix_duotone.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD58F0E4097D400767D22 /* pix_duotone.h */; }; + 3A2DD6A40E4097D500767D22 /* pix_emboss.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5900E4097D400767D22 /* pix_emboss.cpp */; }; + 3A2DD6A50E4097D500767D22 /* pix_emboss.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5910E4097D400767D22 /* pix_emboss.h */; }; + 3A2DD6A60E4097D500767D22 /* pix_fiducialtrack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5920E4097D400767D22 /* pix_fiducialtrack.cpp */; }; + 3A2DD6A70E4097D500767D22 /* pix_fiducialtrack.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5930E4097D400767D22 /* pix_fiducialtrack.h */; }; + 3A2DD6A80E4097D500767D22 /* pix_film.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5940E4097D400767D22 /* pix_film.cpp */; }; + 3A2DD6A90E4097D500767D22 /* pix_film.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5950E4097D400767D22 /* pix_film.h */; }; + 3A2DD6AA0E4097D500767D22 /* pix_filmDarwin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5960E4097D400767D22 /* pix_filmDarwin.cpp */; }; + 3A2DD6AB0E4097D500767D22 /* pix_filmDarwin.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5970E4097D400767D22 /* pix_filmDarwin.h */; }; + 3A2DD6AE0E4097D500767D22 /* pix_filmNT.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD59A0E4097D400767D22 /* pix_filmNT.cpp */; }; + 3A2DD6AF0E4097D500767D22 /* pix_filmNT.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD59B0E4097D400767D22 /* pix_filmNT.h */; }; + 3A2DD6B00E4097D500767D22 /* pix_filmQT.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD59C0E4097D400767D22 /* pix_filmQT.cpp */; }; + 3A2DD6B10E4097D500767D22 /* pix_filmQT.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD59D0E4097D400767D22 /* pix_filmQT.h */; }; + 3A2DD6B20E4097D500767D22 /* pix_flip.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD59E0E4097D400767D22 /* pix_flip.cpp */; }; + 3A2DD6B30E4097D500767D22 /* pix_flip.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD59F0E4097D400767D22 /* pix_flip.h */; }; + 3A2DD6B40E4097D500767D22 /* pix_freeframe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5A00E4097D400767D22 /* pix_freeframe.cpp */; }; + 3A2DD6B50E4097D500767D22 /* pix_freeframe.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5A10E4097D400767D22 /* pix_freeframe.h */; }; + 3A2DD6B60E4097D500767D22 /* pix_gain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5A20E4097D400767D22 /* pix_gain.cpp */; }; + 3A2DD6B70E4097D500767D22 /* pix_gain.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5A30E4097D400767D22 /* pix_gain.h */; }; + 3A2DD6B80E4097D500767D22 /* pix_grey.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5A40E4097D400767D22 /* pix_grey.cpp */; }; + 3A2DD6B90E4097D500767D22 /* pix_grey.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5A50E4097D400767D22 /* pix_grey.h */; }; + 3A2DD6BA0E4097D500767D22 /* pix_halftone.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5A60E4097D400767D22 /* pix_halftone.cpp */; }; + 3A2DD6BB0E4097D500767D22 /* pix_halftone.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5A70E4097D400767D22 /* pix_halftone.h */; }; + 3A2DD6BC0E4097D500767D22 /* pix_histo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5A80E4097D400767D22 /* pix_histo.cpp */; }; + 3A2DD6BD0E4097D500767D22 /* pix_histo.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5A90E4097D400767D22 /* pix_histo.h */; }; + 3A2DD6BE0E4097D500767D22 /* pix_hit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5AA0E4097D400767D22 /* pix_hit.cpp */; }; + 3A2DD6BF0E4097D500767D22 /* pix_hit.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5AB0E4097D400767D22 /* pix_hit.h */; }; + 3A2DD6C00E4097D500767D22 /* pix_hsv2rgb.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5AC0E4097D400767D22 /* pix_hsv2rgb.cpp */; }; + 3A2DD6C10E4097D500767D22 /* pix_hsv2rgb.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5AD0E4097D400767D22 /* pix_hsv2rgb.h */; }; + 3A2DD6C20E4097D500767D22 /* pix_image.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5AE0E4097D400767D22 /* pix_image.cpp */; }; + 3A2DD6C30E4097D500767D22 /* pix_image.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5AF0E4097D400767D22 /* pix_image.h */; }; + 3A2DD6C40E4097D500767D22 /* pix_imageInPlace.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5B00E4097D400767D22 /* pix_imageInPlace.cpp */; }; + 3A2DD6C50E4097D500767D22 /* pix_imageInPlace.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5B10E4097D400767D22 /* pix_imageInPlace.h */; }; + 3A2DD6C60E4097D500767D22 /* pix_indycam.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5B20E4097D400767D22 /* pix_indycam.cpp */; }; + 3A2DD6C70E4097D500767D22 /* pix_indycam.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5B30E4097D400767D22 /* pix_indycam.h */; }; + 3A2DD6C80E4097D500767D22 /* pix_info.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5B40E4097D400767D22 /* pix_info.cpp */; }; + 3A2DD6C90E4097D500767D22 /* pix_info.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5B50E4097D400767D22 /* pix_info.h */; }; + 3A2DD6CA0E4097D500767D22 /* pix_invert.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5B60E4097D400767D22 /* pix_invert.cpp */; }; + 3A2DD6CB0E4097D500767D22 /* pix_invert.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5B70E4097D400767D22 /* pix_invert.h */; }; + 3A2DD6CC0E4097D500767D22 /* pix_kaleidoscope.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5B80E4097D400767D22 /* pix_kaleidoscope.cpp */; }; + 3A2DD6CD0E4097D500767D22 /* pix_kaleidoscope.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5B90E4097D400767D22 /* pix_kaleidoscope.h */; }; + 3A2DD6CE0E4097D500767D22 /* pix_levels.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5BA0E4097D400767D22 /* pix_levels.cpp */; }; + 3A2DD6CF0E4097D500767D22 /* pix_levels.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5BB0E4097D400767D22 /* pix_levels.h */; }; + 3A2DD6D00E4097D500767D22 /* pix_lumaoffset.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5BC0E4097D400767D22 /* pix_lumaoffset.cpp */; }; + 3A2DD6D10E4097D500767D22 /* pix_lumaoffset.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5BD0E4097D400767D22 /* pix_lumaoffset.h */; }; + 3A2DD6D20E4097D500767D22 /* pix_mask.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5BE0E4097D400767D22 /* pix_mask.cpp */; }; + 3A2DD6D30E4097D500767D22 /* pix_mask.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5BF0E4097D400767D22 /* pix_mask.h */; }; + 3A2DD6D40E4097D500767D22 /* pix_mean_color.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5C00E4097D400767D22 /* pix_mean_color.cpp */; }; + 3A2DD6D50E4097D500767D22 /* pix_mean_color.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5C10E4097D400767D22 /* pix_mean_color.h */; }; + 3A2DD6D60E4097D500767D22 /* pix_metaimage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5C20E4097D400767D22 /* pix_metaimage.cpp */; }; + 3A2DD6D70E4097D500767D22 /* pix_metaimage.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5C30E4097D400767D22 /* pix_metaimage.h */; }; + 3A2DD6D80E4097D500767D22 /* pix_mix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5C40E4097D400767D22 /* pix_mix.cpp */; }; + 3A2DD6D90E4097D500767D22 /* pix_mix.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5C50E4097D400767D22 /* pix_mix.h */; }; + 3A2DD6DA0E4097D500767D22 /* pix_motionblur.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5C60E4097D400767D22 /* pix_motionblur.cpp */; }; + 3A2DD6DB0E4097D500767D22 /* pix_motionblur.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5C70E4097D400767D22 /* pix_motionblur.h */; }; + 3A2DD6DC0E4097D500767D22 /* pix_movement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5C80E4097D400767D22 /* pix_movement.cpp */; }; + 3A2DD6DD0E4097D500767D22 /* pix_movement.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5C90E4097D400767D22 /* pix_movement.h */; }; + 3A2DD6DE0E4097D500767D22 /* pix_movement2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5CA0E4097D400767D22 /* pix_movement2.cpp */; }; + 3A2DD6DF0E4097D500767D22 /* pix_movement2.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5CB0E4097D400767D22 /* pix_movement2.h */; }; + 3A2DD6E00E4097D500767D22 /* pix_movie.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5CC0E4097D400767D22 /* pix_movie.cpp */; }; + 3A2DD6E10E4097D500767D22 /* pix_movie.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5CD0E4097D400767D22 /* pix_movie.h */; }; + 3A2DD6E20E4097D500767D22 /* pix_movieDarwin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5CE0E4097D400767D22 /* pix_movieDarwin.cpp */; }; + 3A2DD6E30E4097D500767D22 /* pix_movieDarwin.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5CF0E4097D400767D22 /* pix_movieDarwin.h */; }; + 3A2DD6E80E4097D500767D22 /* pix_multiblob.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5D40E4097D400767D22 /* pix_multiblob.cpp */; }; + 3A2DD6E90E4097D500767D22 /* pix_multiblob.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5D50E4097D400767D22 /* pix_multiblob.h */; }; + 3A2DD6EA0E4097D500767D22 /* pix_multiimage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5D60E4097D400767D22 /* pix_multiimage.cpp */; }; + 3A2DD6EB0E4097D500767D22 /* pix_multiimage.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5D70E4097D400767D22 /* pix_multiimage.h */; }; + 3A2DD6EC0E4097D500767D22 /* pix_multiply.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5D80E4097D400767D22 /* pix_multiply.cpp */; }; + 3A2DD6ED0E4097D500767D22 /* pix_multiply.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5D90E4097D400767D22 /* pix_multiply.h */; }; + 3A2DD6EE0E4097D500767D22 /* pix_multitexture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5DA0E4097D400767D22 /* pix_multitexture.cpp */; }; + 3A2DD6EF0E4097D500767D22 /* pix_multitexture.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5DB0E4097D400767D22 /* pix_multitexture.h */; }; + 3A2DD6F00E4097D500767D22 /* pix_normalize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5DC0E4097D400767D22 /* pix_normalize.cpp */; }; + 3A2DD6F10E4097D500767D22 /* pix_normalize.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5DD0E4097D400767D22 /* pix_normalize.h */; }; + 3A2DD6F20E4097D500767D22 /* pix_offset.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5DE0E4097D400767D22 /* pix_offset.cpp */; }; + 3A2DD6F30E4097D500767D22 /* pix_offset.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5DF0E4097D400767D22 /* pix_offset.h */; }; + 3A2DD6F40E4097D500767D22 /* pix_pix2sig.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5E00E4097D400767D22 /* pix_pix2sig.cpp */; }; + 3A2DD6F50E4097D500767D22 /* pix_pix2sig.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5E10E4097D400767D22 /* pix_pix2sig.h */; }; + 3A2DD6F60E4097D500767D22 /* pix_posterize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5E20E4097D400767D22 /* pix_posterize.cpp */; }; + 3A2DD6F70E4097D500767D22 /* pix_posterize.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5E30E4097D400767D22 /* pix_posterize.h */; }; + 3A2DD6F80E4097D500767D22 /* pix_puzzle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5E40E4097D400767D22 /* pix_puzzle.cpp */; }; + 3A2DD6F90E4097D500767D22 /* pix_puzzle.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5E50E4097D400767D22 /* pix_puzzle.h */; }; + 3A2DD6FA0E4097D500767D22 /* pix_rds.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5E60E4097D400767D22 /* pix_rds.cpp */; }; + 3A2DD6FB0E4097D500767D22 /* pix_rds.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5E70E4097D400767D22 /* pix_rds.h */; }; + 3A2DD6FC0E4097D500767D22 /* pix_record.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5E80E4097D400767D22 /* pix_record.cpp */; }; + 3A2DD6FD0E4097D500767D22 /* pix_record.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5E90E4097D400767D22 /* pix_record.h */; }; + 3A2DD6FE0E4097D500767D22 /* pix_recordQT.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5EA0E4097D400767D22 /* pix_recordQT.cpp */; }; + 3A2DD6FF0E4097D500767D22 /* pix_recordQT.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5EB0E4097D400767D22 /* pix_recordQT.h */; }; + 3A2DD7000E4097D500767D22 /* pix_rectangle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5EC0E4097D400767D22 /* pix_rectangle.cpp */; }; + 3A2DD7010E4097D500767D22 /* pix_rectangle.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5ED0E4097D400767D22 /* pix_rectangle.h */; }; + 3A2DD7020E4097D500767D22 /* pix_refraction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5EE0E4097D400767D22 /* pix_refraction.cpp */; }; + 3A2DD7030E4097D500767D22 /* pix_refraction.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5EF0E4097D400767D22 /* pix_refraction.h */; }; + 3A2DD7040E4097D500767D22 /* pix_resize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5F00E4097D400767D22 /* pix_resize.cpp */; }; + 3A2DD7050E4097D500767D22 /* pix_resize.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5F10E4097D400767D22 /* pix_resize.h */; }; + 3A2DD7060E4097D500767D22 /* pix_rgb2hsv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5F20E4097D400767D22 /* pix_rgb2hsv.cpp */; }; + 3A2DD7070E4097D500767D22 /* pix_rgb2hsv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5F30E4097D400767D22 /* pix_rgb2hsv.h */; }; + 3A2DD7080E4097D500767D22 /* pix_rgba.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5F40E4097D400767D22 /* pix_rgba.cpp */; }; + 3A2DD7090E4097D500767D22 /* pix_rgba.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5F50E4097D400767D22 /* pix_rgba.h */; }; + 3A2DD70A0E4097D500767D22 /* pix_roll.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5F60E4097D400767D22 /* pix_roll.cpp */; }; + 3A2DD70B0E4097D500767D22 /* pix_roll.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5F70E4097D400767D22 /* pix_roll.h */; }; + 3A2DD70C0E4097D500767D22 /* pix_rtx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5F80E4097D400767D22 /* pix_rtx.cpp */; }; + 3A2DD70D0E4097D500767D22 /* pix_rtx.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5F90E4097D400767D22 /* pix_rtx.h */; }; + 3A2DD70E0E4097D500767D22 /* pix_scanline.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5FA0E4097D400767D22 /* pix_scanline.cpp */; }; + 3A2DD70F0E4097D500767D22 /* pix_scanline.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5FB0E4097D400767D22 /* pix_scanline.h */; }; + 3A2DD7100E4097D500767D22 /* pix_set.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5FC0E4097D400767D22 /* pix_set.cpp */; }; + 3A2DD7110E4097D500767D22 /* pix_set.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5FD0E4097D400767D22 /* pix_set.h */; }; + 3A2DD7120E4097D500767D22 /* pix_share_read.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5FE0E4097D500767D22 /* pix_share_read.cpp */; }; + 3A2DD7130E4097D500767D22 /* pix_share_read.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5FF0E4097D500767D22 /* pix_share_read.h */; }; + 3A2DD7140E4097D500767D22 /* pix_share_write.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD6000E4097D500767D22 /* pix_share_write.cpp */; }; + 3A2DD7150E4097D500767D22 /* pix_share_write.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD6010E4097D500767D22 /* pix_share_write.h */; }; + 3A2DD7160E4097D500767D22 /* pix_share.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD6020E4097D500767D22 /* pix_share.h */; }; + 3A2DD7170E4097D500767D22 /* pix_sig2pix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD6030E4097D500767D22 /* pix_sig2pix.cpp */; }; + 3A2DD7180E4097D500767D22 /* pix_sig2pix.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD6040E4097D500767D22 /* pix_sig2pix.h */; }; + 3A2DD7190E4097D500767D22 /* pix_snap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD6050E4097D500767D22 /* pix_snap.cpp */; }; + 3A2DD71A0E4097D500767D22 /* pix_snap.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD6060E4097D500767D22 /* pix_snap.h */; }; + 3A2DD71B0E4097D500767D22 /* pix_snap2tex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD6070E4097D500767D22 /* pix_snap2tex.cpp */; }; + 3A2DD71C0E4097D500767D22 /* pix_snap2tex.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD6080E4097D500767D22 /* pix_snap2tex.h */; }; + 3A2DD71D0E4097D500767D22 /* pix_subtract.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD6090E4097D500767D22 /* pix_subtract.cpp */; }; + 3A2DD71E0E4097D500767D22 /* pix_subtract.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD60A0E4097D500767D22 /* pix_subtract.h */; }; + 3A2DD71F0E4097D500767D22 /* pix_takealpha.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD60B0E4097D500767D22 /* pix_takealpha.cpp */; }; + 3A2DD7200E4097D500767D22 /* pix_takealpha.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD60C0E4097D500767D22 /* pix_takealpha.h */; }; + 3A2DD7210E4097D500767D22 /* pix_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD60D0E4097D500767D22 /* pix_test.cpp */; }; + 3A2DD7220E4097D500767D22 /* pix_test.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD60E0E4097D500767D22 /* pix_test.h */; }; + 3A2DD7230E4097D500767D22 /* pix_texture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD60F0E4097D500767D22 /* pix_texture.cpp */; }; + 3A2DD7240E4097D500767D22 /* pix_texture.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD6100E4097D500767D22 /* pix_texture.h */; }; + 3A2DD7250E4097D500767D22 /* pix_threshold_bernsen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD6110E4097D500767D22 /* pix_threshold_bernsen.cpp */; }; + 3A2DD7260E4097D500767D22 /* pix_threshold_bernsen.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD6120E4097D500767D22 /* pix_threshold_bernsen.h */; }; + 3A2DD7270E4097D500767D22 /* pix_threshold.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD6130E4097D500767D22 /* pix_threshold.cpp */; }; + 3A2DD7280E4097D500767D22 /* pix_threshold.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD6140E4097D500767D22 /* pix_threshold.h */; }; + 3A2DD7290E4097D500767D22 /* pix_tIIR.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD6150E4097D500767D22 /* pix_tIIR.cpp */; }; + 3A2DD72A0E4097D500767D22 /* pix_tIIR.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD6160E4097D500767D22 /* pix_tIIR.h */; }; + 3A2DD72D0E4097D500767D22 /* pix_videoDarwin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD6190E4097D500767D22 /* pix_videoDarwin.cpp */; }; + 3A2DD72E0E4097D500767D22 /* pix_videoDarwin.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD61A0E4097D500767D22 /* pix_videoDarwin.h */; }; + 3A2DD7370E4097D500767D22 /* pix_vpaint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD6230E4097D500767D22 /* pix_vpaint.cpp */; }; + 3A2DD7380E4097D500767D22 /* pix_vpaint.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD6240E4097D500767D22 /* pix_vpaint.h */; }; + 3A2DD7390E4097D500767D22 /* pix_write.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD6250E4097D500767D22 /* pix_write.cpp */; }; + 3A2DD73A0E4097D500767D22 /* pix_write.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD6260E4097D500767D22 /* pix_write.h */; }; + 3A2DD73B0E4097D500767D22 /* pix_yuv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD6270E4097D500767D22 /* pix_yuv.cpp */; }; + 3A2DD73C0E4097D500767D22 /* pix_yuv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD6280E4097D500767D22 /* pix_yuv.h */; }; + 3A2DD73D0E4097D500767D22 /* pix_zoom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD6290E4097D500767D22 /* pix_zoom.cpp */; }; + 3A2DD73E0E4097D500767D22 /* pix_zoom.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD62A0E4097D500767D22 /* pix_zoom.h */; }; + 3A2DD73F0E4097D500767D22 /* record.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD62B0E4097D500767D22 /* record.cpp */; }; + 3A2DD7400E4097D500767D22 /* record.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD62C0E4097D500767D22 /* record.h */; }; + 3A2DD7410E4097D500767D22 /* recordQT.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD62D0E4097D500767D22 /* recordQT.cpp */; }; + 3A2DD7420E4097D500767D22 /* recordQT.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD62E0E4097D500767D22 /* recordQT.h */; }; + 3A2DD7670E4097EA00767D22 /* glVBO_ext.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD74D0E4097E900767D22 /* glVBO_ext.h */; }; + 3A2DD7690E4097EA00767D22 /* vertex_add.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD74F0E4097E900767D22 /* vertex_add.cpp */; }; + 3A2DD76A0E4097EA00767D22 /* vertex_add.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD7500E4097E900767D22 /* vertex_add.h */; }; + 3A2DD76B0E4097EA00767D22 /* vertex_combine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD7510E4097E900767D22 /* vertex_combine.cpp */; }; + 3A2DD76C0E4097EA00767D22 /* vertex_combine.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD7520E4097E900767D22 /* vertex_combine.h */; }; + 3A2DD76D0E4097EA00767D22 /* vertex_draw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD7530E4097E900767D22 /* vertex_draw.cpp */; }; + 3A2DD76E0E4097EA00767D22 /* vertex_draw.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD7540E4097E900767D22 /* vertex_draw.h */; }; + 3A2DD76F0E4097EA00767D22 /* vertex_grid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD7550E4097E900767D22 /* vertex_grid.cpp */; }; + 3A2DD7700E4097EA00767D22 /* vertex_grid.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD7560E4097E900767D22 /* vertex_grid.h */; }; + 3A2DD7710E4097EA00767D22 /* vertex_info.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD7570E4097E900767D22 /* vertex_info.cpp */; }; + 3A2DD7720E4097EA00767D22 /* vertex_info.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD7580E4097E900767D22 /* vertex_info.h */; }; + 3A2DD7730E4097EA00767D22 /* vertex_model.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD7590E4097E900767D22 /* vertex_model.cpp */; }; + 3A2DD7740E4097EA00767D22 /* vertex_model.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD75A0E4097E900767D22 /* vertex_model.h */; }; + 3A2DD7750E4097EA00767D22 /* vertex_mul.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD75B0E4097E900767D22 /* vertex_mul.cpp */; }; + 3A2DD7760E4097EA00767D22 /* vertex_mul.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD75C0E4097E900767D22 /* vertex_mul.h */; }; + 3A2DD7770E4097EA00767D22 /* vertex_offset.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD75D0E4097E900767D22 /* vertex_offset.cpp */; }; + 3A2DD7780E4097EA00767D22 /* vertex_offset.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD75E0E4097E900767D22 /* vertex_offset.h */; }; + 3A2DD7790E4097EA00767D22 /* vertex_quad.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD75F0E4097E900767D22 /* vertex_quad.cpp */; }; + 3A2DD77A0E4097EA00767D22 /* vertex_quad.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD7600E4097E900767D22 /* vertex_quad.h */; }; + 3A2DD77B0E4097EA00767D22 /* vertex_scale.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD7610E4097E900767D22 /* vertex_scale.cpp */; }; + 3A2DD77C0E4097EA00767D22 /* vertex_scale.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD7620E4097E900767D22 /* vertex_scale.h */; }; + 3A2DD77D0E4097EA00767D22 /* vertex_set.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD7630E4097EA00767D22 /* vertex_set.cpp */; }; + 3A2DD77E0E4097EA00767D22 /* vertex_set.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD7640E4097EA00767D22 /* vertex_set.h */; }; + 3A2DD77F0E4097EA00767D22 /* vertex_tabread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD7650E4097EA00767D22 /* vertex_tabread.cpp */; }; + 3A2DD7800E4097EA00767D22 /* vertex_tabread.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD7660E4097EA00767D22 /* vertex_tabread.h */; }; + 3A6DFE4C0FD528780019C977 /* GEMglMaterialfv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A6DFE4A0FD528780019C977 /* GEMglMaterialfv.cpp */; }; + 3A6DFE4D0FD528780019C977 /* GEMglMaterialfv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A6DFE4B0FD528780019C977 /* GEMglMaterialfv.h */; }; + 3A6DFE4E0FD528780019C977 /* GEMglMaterialfv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A6DFE4A0FD528780019C977 /* GEMglMaterialfv.cpp */; }; + 3A6DFE4F0FD528780019C977 /* GEMglMaterialfv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A6DFE4B0FD528780019C977 /* GEMglMaterialfv.h */; }; + 3A6DFE520FD528920019C977 /* GEMgluLookAt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A6DFE500FD528920019C977 /* GEMgluLookAt.cpp */; }; + 3A6DFE530FD528920019C977 /* GEMgluLookAt.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A6DFE510FD528920019C977 /* GEMgluLookAt.h */; }; + 3A6DFE540FD528920019C977 /* GEMgluLookAt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A6DFE500FD528920019C977 /* GEMgluLookAt.cpp */; }; + 3A6DFE550FD528920019C977 /* GEMgluLookAt.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A6DFE510FD528920019C977 /* GEMgluLookAt.h */; }; + 3A6DFE570FD528A30019C977 /* GemGLBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A6DFE560FD528A30019C977 /* GemGLBase.h */; }; + 3A6DFE580FD528A30019C977 /* GemGLBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A6DFE560FD528A30019C977 /* GemGLBase.h */; }; + 3A6DFE5D0FD528CF0019C977 /* GemContext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A6DFE590FD528CF0019C977 /* GemContext.cpp */; }; + 3A6DFE5E0FD528CF0019C977 /* GemContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A6DFE5A0FD528CF0019C977 /* GemContext.h */; }; + 3A6DFE5F0FD528CF0019C977 /* GemContextData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A6DFE5B0FD528CF0019C977 /* GemContextData.cpp */; }; + 3A6DFE600FD528CF0019C977 /* GemContextData.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A6DFE5C0FD528CF0019C977 /* GemContextData.h */; }; + 3A6DFE610FD528CF0019C977 /* GemContext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A6DFE590FD528CF0019C977 /* GemContext.cpp */; }; + 3A6DFE620FD528CF0019C977 /* GemContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A6DFE5A0FD528CF0019C977 /* GemContext.h */; }; + 3A6DFE630FD528CF0019C977 /* GemContextData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A6DFE5B0FD528CF0019C977 /* GemContextData.cpp */; }; + 3A6DFE640FD528CF0019C977 /* GemContextData.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A6DFE5C0FD528CF0019C977 /* GemContextData.h */; }; + 3A6DFE660FD528E80019C977 /* GemGLUtil_generated.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A6DFE650FD528E80019C977 /* GemGLUtil_generated.h */; }; + 3A6DFE670FD528E80019C977 /* GemGLUtil_generated.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A6DFE650FD528E80019C977 /* GemGLUtil_generated.h */; }; + 3A6DFE6A0FD5294F0019C977 /* glsl_geometry.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A6DFE680FD5294F0019C977 /* glsl_geometry.cpp */; }; + 3A6DFE6B0FD5294F0019C977 /* glsl_geometry.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A6DFE690FD5294F0019C977 /* glsl_geometry.h */; }; + 3A6DFE6C0FD5294F0019C977 /* glsl_geometry.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A6DFE680FD5294F0019C977 /* glsl_geometry.cpp */; }; + 3A6DFE6D0FD5294F0019C977 /* glsl_geometry.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A6DFE690FD5294F0019C977 /* glsl_geometry.h */; }; + 3A6DFE700FD529880019C977 /* pix_writer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A6DFE6E0FD529880019C977 /* pix_writer.cpp */; }; + 3A6DFE710FD529880019C977 /* pix_writer.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A6DFE6F0FD529880019C977 /* pix_writer.h */; }; + 3A6DFE720FD529880019C977 /* pix_writer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A6DFE6E0FD529880019C977 /* pix_writer.cpp */; }; + 3A6DFE730FD529880019C977 /* pix_writer.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A6DFE6F0FD529880019C977 /* pix_writer.h */; }; + 3AB0D86C0E4095E700AF570A /* GemLoaders.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D85D0E4095E700AF570A /* GemLoaders.cpp */; }; + 3AB0D86D0E4095E700AF570A /* GemLoaders.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D85E0E4095E700AF570A /* GemLoaders.h */; }; + 3AB0D86E0E4095E700AF570A /* GemMan.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D85F0E4095E700AF570A /* GemMan.cpp */; }; + 3AB0D86F0E4095E700AF570A /* GemMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8600E4095E700AF570A /* GemMath.h */; }; + 3AB0D8700E4095E700AF570A /* GemPathBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8610E4095E700AF570A /* GemPathBase.cpp */; }; + 3AB0D8710E4095E700AF570A /* GemPBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8620E4095E700AF570A /* GemPBuffer.cpp */; }; + 3AB0D8720E4095E700AF570A /* GemPBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8630E4095E700AF570A /* GemPBuffer.h */; }; + 3AB0D8730E4095E700AF570A /* GemPixConvert.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8640E4095E700AF570A /* GemPixConvert.h */; }; + 3AB0D8740E4095E700AF570A /* GemPixConvertAltivec.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8650E4095E700AF570A /* GemPixConvertAltivec.cpp */; }; + 3AB0D8750E4095E700AF570A /* GemPixConvertSSE2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8660E4095E700AF570A /* GemPixConvertSSE2.cpp */; }; + 3AB0D8760E4095E700AF570A /* GemSIMD.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8670E4095E700AF570A /* GemSIMD.cpp */; }; + 3AB0D8770E4095E700AF570A /* GemVector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8680E4095E700AF570A /* GemVector.cpp */; }; + 3AB0D8780E4095E700AF570A /* GemVector.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8690E4095E700AF570A /* GemVector.h */; }; + 3AB0D8790E4095E700AF570A /* GemVertex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D86A0E4095E700AF570A /* GemVertex.cpp */; }; + 3AB0D87A0E4095E700AF570A /* GemVertex.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D86B0E4095E700AF570A /* GemVertex.h */; }; + 3AB0D87D0E40963500AF570A /* glew.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D87B0E40963500AF570A /* glew.cpp */; }; + 3AB0D87E0E40963500AF570A /* glew.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D87C0E40963500AF570A /* glew.h */; }; + 3AB0D8910E40967400AF570A /* gemframebuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D87F0E40967400AF570A /* gemframebuffer.cpp */; }; + 3AB0D8920E40967400AF570A /* gemframebuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8800E40967400AF570A /* gemframebuffer.h */; }; + 3AB0D8930E40967400AF570A /* gemhead.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8810E40967400AF570A /* gemhead.cpp */; }; + 3AB0D8940E40967400AF570A /* gemkeyboard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8820E40967400AF570A /* gemkeyboard.cpp */; }; + 3AB0D8950E40967400AF570A /* gemkeyname.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8830E40967400AF570A /* gemkeyname.cpp */; }; + 3AB0D8960E40967400AF570A /* gemlist_info.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8840E40967400AF570A /* gemlist_info.h */; }; + 3AB0D8970E40967400AF570A /* gemlist_matrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8850E40967400AF570A /* gemlist_matrix.cpp */; }; + 3AB0D8980E40967400AF570A /* gemlist_matrix.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8860E40967400AF570A /* gemlist_matrix.h */; }; + 3AB0D8990E40967400AF570A /* gemlist.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8870E40967400AF570A /* gemlist.cpp */; }; + 3AB0D89A0E40967400AF570A /* gemlist.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8880E40967400AF570A /* gemlist.h */; }; + 3AB0D89B0E40967400AF570A /* gemmouse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8890E40967400AF570A /* gemmouse.cpp */; }; + 3AB0D89C0E40967400AF570A /* gemmouse.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D88A0E40967400AF570A /* gemmouse.h */; }; + 3AB0D89D0E40967400AF570A /* gemreceive.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D88B0E40967400AF570A /* gemreceive.cpp */; }; + 3AB0D89E0E40967400AF570A /* gemreceive.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D88C0E40967400AF570A /* gemreceive.h */; }; + 3AB0D89F0E40967400AF570A /* gemwin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D88D0E40967400AF570A /* gemwin.cpp */; }; + 3AB0D8A00E40967400AF570A /* gemwin.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D88E0E40967400AF570A /* gemwin.h */; }; + 3AB0D8A20E40967400AF570A /* render_trigger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8900E40967400AF570A /* render_trigger.cpp */; }; + 3AB0D8ED0E4096A300AF570A /* circle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8A30E4096A200AF570A /* circle.cpp */; }; + 3AB0D8EE0E4096A300AF570A /* circle.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8A40E4096A200AF570A /* circle.h */; }; + 3AB0D8EF0E4096A300AF570A /* colorSquare.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8A50E4096A200AF570A /* colorSquare.cpp */; }; + 3AB0D8F00E4096A300AF570A /* colorSquare.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8A60E4096A200AF570A /* colorSquare.h */; }; + 3AB0D8F10E4096A300AF570A /* cone.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8A70E4096A200AF570A /* cone.cpp */; }; + 3AB0D8F20E4096A300AF570A /* cone.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8A80E4096A200AF570A /* cone.h */; }; + 3AB0D8F30E4096A300AF570A /* cube.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8A90E4096A200AF570A /* cube.cpp */; }; + 3AB0D8F40E4096A300AF570A /* cube.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8AA0E4096A200AF570A /* cube.h */; }; + 3AB0D8F50E4096A300AF570A /* cuboid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8AB0E4096A200AF570A /* cuboid.cpp */; }; + 3AB0D8F60E4096A300AF570A /* cuboid.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8AC0E4096A200AF570A /* cuboid.h */; }; + 3AB0D8F70E4096A300AF570A /* curve.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8AD0E4096A200AF570A /* curve.cpp */; }; + 3AB0D8F80E4096A300AF570A /* curve.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8AE0E4096A200AF570A /* curve.h */; }; + 3AB0D8F90E4096A300AF570A /* curve3d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8AF0E4096A200AF570A /* curve3d.cpp */; }; + 3AB0D8FA0E4096A300AF570A /* curve3d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8B00E4096A200AF570A /* curve3d.h */; }; + 3AB0D8FB0E4096A300AF570A /* cylinder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8B10E4096A200AF570A /* cylinder.cpp */; }; + 3AB0D8FC0E4096A300AF570A /* cylinder.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8B20E4096A200AF570A /* cylinder.h */; }; + 3AB0D8FD0E4096A300AF570A /* disk.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8B30E4096A200AF570A /* disk.cpp */; }; + 3AB0D8FE0E4096A300AF570A /* disk.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8B40E4096A200AF570A /* disk.h */; }; + 3AB0D8FF0E4096A300AF570A /* GemSplash.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8B50E4096A200AF570A /* GemSplash.cpp */; }; + 3AB0D9000E4096A300AF570A /* GemSplash.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8B60E4096A200AF570A /* GemSplash.h */; }; + 3AB0D9010E4096A300AF570A /* imageVert.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8B70E4096A200AF570A /* imageVert.cpp */; }; + 3AB0D9020E4096A300AF570A /* imageVert.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8B80E4096A200AF570A /* imageVert.h */; }; + 3AB0D9040E4096A300AF570A /* mesh_square.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8BA0E4096A300AF570A /* mesh_square.cpp */; }; + 3AB0D9050E4096A300AF570A /* mesh_square.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8BB0E4096A300AF570A /* mesh_square.h */; }; + 3AB0D9060E4096A300AF570A /* model_loader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8BC0E4096A300AF570A /* model_loader.cpp */; }; + 3AB0D9070E4096A300AF570A /* model_loader.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8BD0E4096A300AF570A /* model_loader.h */; }; + 3AB0D9080E4096A300AF570A /* model.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8BE0E4096A300AF570A /* model.cpp */; }; + 3AB0D9090E4096A300AF570A /* model.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8BF0E4096A300AF570A /* model.h */; }; + 3AB0D90A0E4096A300AF570A /* multimodel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8C00E4096A300AF570A /* multimodel.cpp */; }; + 3AB0D90B0E4096A300AF570A /* multimodel.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8C10E4096A300AF570A /* multimodel.h */; }; + 3AB0D90C0E4096A300AF570A /* newWave.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8C20E4096A300AF570A /* newWave.cpp */; }; + 3AB0D90D0E4096A300AF570A /* newWave.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8C30E4096A300AF570A /* newWave.h */; }; + 3AB0D90E0E4096A300AF570A /* polygon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8C40E4096A300AF570A /* polygon.cpp */; }; + 3AB0D90F0E4096A300AF570A /* polygon.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8C50E4096A300AF570A /* polygon.h */; }; + 3AB0D9100E4096A300AF570A /* pqtorusknots.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8C60E4096A300AF570A /* pqtorusknots.cpp */; }; + 3AB0D9110E4096A300AF570A /* pqtorusknots.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8C70E4096A300AF570A /* pqtorusknots.h */; }; + 3AB0D9120E4096A300AF570A /* primTri.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8C80E4096A300AF570A /* primTri.cpp */; }; + 3AB0D9130E4096A300AF570A /* primTri.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8C90E4096A300AF570A /* primTri.h */; }; + 3AB0D9140E4096A300AF570A /* rectangle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8CA0E4096A300AF570A /* rectangle.cpp */; }; + 3AB0D9150E4096A300AF570A /* rectangle.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8CB0E4096A300AF570A /* rectangle.h */; }; + 3AB0D9160E4096A300AF570A /* ripple.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8CC0E4096A300AF570A /* ripple.cpp */; }; + 3AB0D9170E4096A300AF570A /* ripple.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8CD0E4096A300AF570A /* ripple.h */; }; + 3AB0D9180E4096A300AF570A /* rubber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8CE0E4096A300AF570A /* rubber.cpp */; }; + 3AB0D9190E4096A300AF570A /* rubber.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8CF0E4096A300AF570A /* rubber.h */; }; + 3AB0D91A0E4096A300AF570A /* scopeXYZ.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8D00E4096A300AF570A /* scopeXYZ.cpp */; }; + 3AB0D91B0E4096A300AF570A /* scopeXYZ.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8D10E4096A300AF570A /* scopeXYZ.h */; }; + 3AB0D91C0E4096A300AF570A /* slideSquares.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8D20E4096A300AF570A /* slideSquares.cpp */; }; + 3AB0D91D0E4096A300AF570A /* slideSquares.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8D30E4096A300AF570A /* slideSquares.h */; }; + 3AB0D91E0E4096A300AF570A /* sphere.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8D40E4096A300AF570A /* sphere.cpp */; }; + 3AB0D91F0E4096A300AF570A /* sphere.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8D50E4096A300AF570A /* sphere.h */; }; + 3AB0D9200E4096A300AF570A /* sphere3d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8D60E4096A300AF570A /* sphere3d.cpp */; }; + 3AB0D9210E4096A300AF570A /* sphere3d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8D70E4096A300AF570A /* sphere3d.h */; }; + 3AB0D9220E4096A300AF570A /* square.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8D80E4096A300AF570A /* square.cpp */; }; + 3AB0D9230E4096A300AF570A /* square.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8D90E4096A300AF570A /* square.h */; }; + 3AB0D9240E4096A300AF570A /* teapot.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8DA0E4096A300AF570A /* teapot.cpp */; }; + 3AB0D9250E4096A300AF570A /* teapot.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8DB0E4096A300AF570A /* teapot.h */; }; + 3AB0D9260E4096A300AF570A /* TexFont.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8DC0E4096A300AF570A /* TexFont.h */; }; + 3AB0D9270E4096A300AF570A /* text2d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8DD0E4096A300AF570A /* text2d.cpp */; }; + 3AB0D9280E4096A300AF570A /* text2d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8DE0E4096A300AF570A /* text2d.h */; }; + 3AB0D9290E4096A300AF570A /* text3d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8DF0E4096A300AF570A /* text3d.cpp */; }; + 3AB0D92A0E4096A300AF570A /* text3d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8E00E4096A300AF570A /* text3d.h */; }; + 3AB0D92B0E4096A300AF570A /* textextruded.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8E10E4096A300AF570A /* textextruded.cpp */; }; + 3AB0D92C0E4096A300AF570A /* textextruded.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8E20E4096A300AF570A /* textextruded.h */; }; + 3AB0D92D0E4096A300AF570A /* textoutline.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8E30E4096A300AF570A /* textoutline.cpp */; }; + 3AB0D92E0E4096A300AF570A /* textoutline.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8E40E4096A300AF570A /* textoutline.h */; }; + 3AB0D92F0E4096A300AF570A /* torus.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8E50E4096A300AF570A /* torus.cpp */; }; + 3AB0D9300E4096A300AF570A /* torus.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8E60E4096A300AF570A /* torus.h */; }; + 3AB0D9310E4096A300AF570A /* trapezoid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8E70E4096A300AF570A /* trapezoid.cpp */; }; + 3AB0D9320E4096A300AF570A /* trapezoid.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8E80E4096A300AF570A /* trapezoid.h */; }; + 3AB0D9330E4096A300AF570A /* triangle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8E90E4096A300AF570A /* triangle.cpp */; }; + 3AB0D9340E4096A300AF570A /* triangle.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8EA0E4096A300AF570A /* triangle.h */; }; + 3AB0D9350E4096A300AF570A /* tube.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8EB0E4096A300AF570A /* tube.cpp */; }; + 3AB0D9360E4096A300AF570A /* tube.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8EC0E4096A300AF570A /* tube.h */; }; + 3ACEDF090E40B9E800FC2E4B /* CPPExtern.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B40703898BE2019165F0 /* CPPExtern.h */; }; + 3ACEDF0A0E40B9E800FC2E4B /* GemBase.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B40903898BE2019165F0 /* GemBase.h */; }; + 3ACEDF0B0E40B9E800FC2E4B /* GemCache.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B40B03898BE2019165F0 /* GemCache.h */; }; + 3ACEDF0C0E40B9E800FC2E4B /* GemEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B40F03898BE2019165F0 /* GemEvent.h */; }; + 3ACEDF0D0E40B9E800FC2E4B /* GemExportDef.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B41003898BE2019165F0 /* GemExportDef.h */; }; + 3ACEDF0E0E40B9E800FC2E4B /* GemFuncUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B41203898BE2019165F0 /* GemFuncUtil.h */; }; + 3ACEDF0F0E40B9E800FC2E4B /* GemGluObj.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B41403898BE2019165F0 /* GemGluObj.h */; }; + 3ACEDF100E40B9E800FC2E4B /* GemGLUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B41603898BE2019165F0 /* GemGLUtil.h */; }; + 3ACEDF110E40B9E800FC2E4B /* GemLoadObj.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B41A03898BE2019165F0 /* GemLoadObj.h */; }; + 3ACEDF120E40B9E800FC2E4B /* GemMan.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B41C03898BE2019165F0 /* GemMan.h */; }; + 3ACEDF130E40B9E800FC2E4B /* GemPathBase.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B42003898BE2019165F0 /* GemPathBase.h */; }; + 3ACEDF140E40B9E800FC2E4B /* GemPixDualObj.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B42203898BE2019165F0 /* GemPixDualObj.h */; }; + 3ACEDF150E40B9E800FC2E4B /* GemPixImageLoad.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B42403898BE2019165F0 /* GemPixImageLoad.h */; }; + 3ACEDF160E40B9E800FC2E4B /* GemPixObj.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B42803898BE2019165F0 /* GemPixObj.h */; }; + 3ACEDF170E40B9E800FC2E4B /* GemPixUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B42A03898BE2019165F0 /* GemPixUtil.h */; }; + 3ACEDF180E40B9E800FC2E4B /* GemShape.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B42D03898BE2019165F0 /* GemShape.h */; }; + 3ACEDF190E40B9E800FC2E4B /* GemState.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B42F03898BE2019165F0 /* GemState.h */; }; + 3ACEDF1A0E40B9E800FC2E4B /* GemVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B43003898BE2019165F0 /* GemVersion.h */; }; + 3ACEDF1B0E40B9E800FC2E4B /* GemWinCreate.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B43103898BE2019165F0 /* GemWinCreate.h */; }; + 3ACEDF1C0E40B9E800FC2E4B /* Matrix.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B43703898BE2019165F0 /* Matrix.h */; }; + 3ACEDF1D0E40B9E800FC2E4B /* TextBase.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B43B03898BE2019165F0 /* TextBase.h */; }; + 3ACEDF1E0E40B9E800FC2E4B /* gemhead.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B43E03898BE2019165F0 /* gemhead.h */; }; + 3ACEDF1F0E40B9E800FC2E4B /* gemkeyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B44003898BE2019165F0 /* gemkeyboard.h */; }; + 3ACEDF200E40B9E800FC2E4B /* gemkeyname.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B44203898BE2019165F0 /* gemkeyname.h */; }; + 3ACEDF210E40B9E800FC2E4B /* render_trigger.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B44D03898BE2019165F0 /* render_trigger.h */; }; + 3ACEDF220E40B9E800FC2E4B /* GemPixImageSave.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B42603898BE2019165F0 /* GemPixImageSave.h */; }; + 3ACEDF230E40B9E800FC2E4B /* FTBBox.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E016E04C4CB9900DF3958 /* FTBBox.h */; }; + 3ACEDF240E40B9E800FC2E4B /* FTBitmapGlyph.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E016F04C4CB9900DF3958 /* FTBitmapGlyph.h */; }; + 3ACEDF250E40B9E800FC2E4B /* FTCharmap.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E017004C4CB9900DF3958 /* FTCharmap.h */; }; + 3ACEDF260E40B9E800FC2E4B /* FTCharToGlyphIndexMap.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E017104C4CB9900DF3958 /* FTCharToGlyphIndexMap.h */; }; + 3ACEDF270E40B9E800FC2E4B /* FTContour.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E017204C4CB9900DF3958 /* FTContour.h */; }; + 3ACEDF280E40B9E800FC2E4B /* FTExtrdGlyph.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E017304C4CB9900DF3958 /* FTExtrdGlyph.h */; }; + 3ACEDF290E40B9E800FC2E4B /* FTFace.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E017404C4CB9900DF3958 /* FTFace.h */; }; + 3ACEDF2A0E40B9E800FC2E4B /* FTFont.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E017504C4CB9900DF3958 /* FTFont.h */; }; + 3ACEDF2B0E40B9E800FC2E4B /* FTGL.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E017604C4CB9900DF3958 /* FTGL.h */; }; + 3ACEDF2C0E40B9E800FC2E4B /* FTGLBitmapFont.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E017704C4CB9900DF3958 /* FTGLBitmapFont.h */; }; + 3ACEDF2D0E40B9E800FC2E4B /* FTGLExtrdFont.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E017804C4CB9900DF3958 /* FTGLExtrdFont.h */; }; + 3ACEDF2E0E40B9E800FC2E4B /* FTGLOutlineFont.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E017904C4CB9900DF3958 /* FTGLOutlineFont.h */; }; + 3ACEDF2F0E40B9E800FC2E4B /* FTGLPixmapFont.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E017A04C4CB9900DF3958 /* FTGLPixmapFont.h */; }; + 3ACEDF300E40B9E800FC2E4B /* FTGLPolygonFont.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E017B04C4CB9900DF3958 /* FTGLPolygonFont.h */; }; + 3ACEDF310E40B9E800FC2E4B /* FTGLTextureFont.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E017C04C4CB9900DF3958 /* FTGLTextureFont.h */; }; + 3ACEDF320E40B9E800FC2E4B /* FTGlyph.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E017D04C4CB9900DF3958 /* FTGlyph.h */; }; + 3ACEDF330E40B9E800FC2E4B /* FTGlyphContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E017E04C4CB9900DF3958 /* FTGlyphContainer.h */; }; + 3ACEDF340E40B9E800FC2E4B /* FTLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E017F04C4CB9900DF3958 /* FTLibrary.h */; }; + 3ACEDF350E40B9E800FC2E4B /* FTList.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E018004C4CB9900DF3958 /* FTList.h */; }; + 3ACEDF360E40B9E800FC2E4B /* FTOutlineGlyph.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E018104C4CB9900DF3958 /* FTOutlineGlyph.h */; }; + 3ACEDF370E40B9E800FC2E4B /* FTPixmapGlyph.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E018204C4CB9900DF3958 /* FTPixmapGlyph.h */; }; + 3ACEDF380E40B9E800FC2E4B /* FTPoint.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E018304C4CB9900DF3958 /* FTPoint.h */; }; + 3ACEDF390E40B9E800FC2E4B /* FTPolyGlyph.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E018404C4CB9900DF3958 /* FTPolyGlyph.h */; }; + 3ACEDF3A0E40B9E800FC2E4B /* FTSize.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E018504C4CB9900DF3958 /* FTSize.h */; }; + 3ACEDF3B0E40B9E800FC2E4B /* FTTextureGlyph.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E018604C4CB9900DF3958 /* FTTextureGlyph.h */; }; + 3ACEDF3C0E40B9E800FC2E4B /* FTVector.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E018704C4CB9900DF3958 /* FTVector.h */; }; + 3ACEDF3D0E40B9E800FC2E4B /* FTVectoriser.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E018804C4CB9900DF3958 /* FTVectoriser.h */; }; + 3ACEDF3E0E40B9E800FC2E4B /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = FD89459605866C1D0014FA36 /* config.h */; }; + 3ACEDF3F0E40B9E800FC2E4B /* configDarwin.h in Headers */ = {isa = PBXBuildFile; fileRef = FD89459705866C1D0014FA36 /* configDarwin.h */; }; + 3ACEDF400E40B9E800FC2E4B /* GemPixPete.h in Headers */ = {isa = PBXBuildFile; fileRef = FD85B4E806B1A62C00C4B065 /* GemPixPete.h */; }; + 3ACEDF410E40B9E800FC2E4B /* GemSIMD.h in Headers */ = {isa = PBXBuildFile; fileRef = FD85B4E906B1A62C00C4B065 /* GemSIMD.h */; }; + 3ACEDF420E40B9E800FC2E4B /* GemModelData.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B41E03898BE2019165F0 /* GemModelData.h */; }; + 3ACEDF430E40B9E800FC2E4B /* sgiimage.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B43903898BE2019165F0 /* sgiimage.h */; }; + 3ACEDF440E40B9E800FC2E4B /* GemGL.h in Headers */ = {isa = PBXBuildFile; fileRef = FD2F4EA908F458E2008F3CED /* GemGL.h */; }; + 3ACEDF450E40B9E800FC2E4B /* GemLoaders.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D85E0E4095E700AF570A /* GemLoaders.h */; }; + 3ACEDF460E40B9E800FC2E4B /* GemMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8600E4095E700AF570A /* GemMath.h */; }; + 3ACEDF470E40B9E800FC2E4B /* GemPBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8630E4095E700AF570A /* GemPBuffer.h */; }; + 3ACEDF480E40B9E800FC2E4B /* GemPixConvert.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8640E4095E700AF570A /* GemPixConvert.h */; }; + 3ACEDF490E40B9E800FC2E4B /* GemVector.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8690E4095E700AF570A /* GemVector.h */; }; + 3ACEDF4A0E40B9E800FC2E4B /* GemVertex.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D86B0E4095E700AF570A /* GemVertex.h */; }; + 3ACEDF4B0E40B9E800FC2E4B /* glew.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D87C0E40963500AF570A /* glew.h */; }; + 3ACEDF4C0E40B9E800FC2E4B /* gemframebuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8800E40967400AF570A /* gemframebuffer.h */; }; + 3ACEDF4D0E40B9E800FC2E4B /* gemlist_info.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8840E40967400AF570A /* gemlist_info.h */; }; + 3ACEDF4E0E40B9E800FC2E4B /* gemlist_matrix.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8860E40967400AF570A /* gemlist_matrix.h */; }; + 3ACEDF4F0E40B9E800FC2E4B /* gemlist.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8880E40967400AF570A /* gemlist.h */; }; + 3ACEDF500E40B9E800FC2E4B /* gemmouse.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D88A0E40967400AF570A /* gemmouse.h */; }; + 3ACEDF510E40B9E800FC2E4B /* gemreceive.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D88C0E40967400AF570A /* gemreceive.h */; }; + 3ACEDF520E40B9E800FC2E4B /* gemwin.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D88E0E40967400AF570A /* gemwin.h */; }; + 3ACEDF530E40B9E800FC2E4B /* circle.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8A40E4096A200AF570A /* circle.h */; }; + 3ACEDF540E40B9E800FC2E4B /* colorSquare.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8A60E4096A200AF570A /* colorSquare.h */; }; + 3ACEDF550E40B9E800FC2E4B /* cone.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8A80E4096A200AF570A /* cone.h */; }; + 3ACEDF560E40B9E800FC2E4B /* cube.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8AA0E4096A200AF570A /* cube.h */; }; + 3ACEDF570E40B9E800FC2E4B /* cuboid.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8AC0E4096A200AF570A /* cuboid.h */; }; + 3ACEDF580E40B9E800FC2E4B /* curve.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8AE0E4096A200AF570A /* curve.h */; }; + 3ACEDF590E40B9E800FC2E4B /* curve3d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8B00E4096A200AF570A /* curve3d.h */; }; + 3ACEDF5A0E40B9E800FC2E4B /* cylinder.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8B20E4096A200AF570A /* cylinder.h */; }; + 3ACEDF5B0E40B9E800FC2E4B /* disk.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8B40E4096A200AF570A /* disk.h */; }; + 3ACEDF5C0E40B9E800FC2E4B /* GemSplash.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8B60E4096A200AF570A /* GemSplash.h */; }; + 3ACEDF5D0E40B9E800FC2E4B /* imageVert.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8B80E4096A200AF570A /* imageVert.h */; }; + 3ACEDF5E0E40B9E800FC2E4B /* mesh_square.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8BB0E4096A300AF570A /* mesh_square.h */; }; + 3ACEDF5F0E40B9E800FC2E4B /* model_loader.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8BD0E4096A300AF570A /* model_loader.h */; }; + 3ACEDF600E40B9E800FC2E4B /* model.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8BF0E4096A300AF570A /* model.h */; }; + 3ACEDF610E40B9E800FC2E4B /* multimodel.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8C10E4096A300AF570A /* multimodel.h */; }; + 3ACEDF620E40B9E800FC2E4B /* newWave.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8C30E4096A300AF570A /* newWave.h */; }; + 3ACEDF630E40B9E800FC2E4B /* polygon.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8C50E4096A300AF570A /* polygon.h */; }; + 3ACEDF640E40B9E800FC2E4B /* pqtorusknots.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8C70E4096A300AF570A /* pqtorusknots.h */; }; + 3ACEDF650E40B9E800FC2E4B /* primTri.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8C90E4096A300AF570A /* primTri.h */; }; + 3ACEDF660E40B9E800FC2E4B /* rectangle.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8CB0E4096A300AF570A /* rectangle.h */; }; + 3ACEDF670E40B9E800FC2E4B /* ripple.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8CD0E4096A300AF570A /* ripple.h */; }; + 3ACEDF680E40B9E800FC2E4B /* rubber.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8CF0E4096A300AF570A /* rubber.h */; }; + 3ACEDF690E40B9E800FC2E4B /* scopeXYZ.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8D10E4096A300AF570A /* scopeXYZ.h */; }; + 3ACEDF6A0E40B9E800FC2E4B /* slideSquares.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8D30E4096A300AF570A /* slideSquares.h */; }; + 3ACEDF6B0E40B9E800FC2E4B /* sphere.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8D50E4096A300AF570A /* sphere.h */; }; + 3ACEDF6C0E40B9E800FC2E4B /* sphere3d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8D70E4096A300AF570A /* sphere3d.h */; }; + 3ACEDF6D0E40B9E800FC2E4B /* square.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8D90E4096A300AF570A /* square.h */; }; + 3ACEDF6E0E40B9E800FC2E4B /* teapot.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8DB0E4096A300AF570A /* teapot.h */; }; + 3ACEDF6F0E40B9E800FC2E4B /* TexFont.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8DC0E4096A300AF570A /* TexFont.h */; }; + 3ACEDF700E40B9E800FC2E4B /* text2d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8DE0E4096A300AF570A /* text2d.h */; }; + 3ACEDF710E40B9E800FC2E4B /* text3d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8E00E4096A300AF570A /* text3d.h */; }; + 3ACEDF720E40B9E800FC2E4B /* textextruded.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8E20E4096A300AF570A /* textextruded.h */; }; + 3ACEDF730E40B9E800FC2E4B /* textoutline.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8E40E4096A300AF570A /* textoutline.h */; }; + 3ACEDF740E40B9E800FC2E4B /* torus.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8E60E4096A300AF570A /* torus.h */; }; + 3ACEDF750E40B9E800FC2E4B /* trapezoid.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8E80E4096A300AF570A /* trapezoid.h */; }; + 3ACEDF760E40B9E800FC2E4B /* triangle.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8EA0E4096A300AF570A /* triangle.h */; }; + 3ACEDF770E40B9E800FC2E4B /* tube.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AB0D8EC0E4096A300AF570A /* tube.h */; }; + 3ACEDF780E40B9E800FC2E4B /* accumrotate.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF7D0E40974100767D22 /* accumrotate.h */; }; + 3ACEDF790E40B9E800FC2E4B /* alpha.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF7F0E40974100767D22 /* alpha.h */; }; + 3ACEDF7A0E40B9E800FC2E4B /* ambient.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF810E40974100767D22 /* ambient.h */; }; + 3ACEDF7B0E40B9E800FC2E4B /* ambientRGB.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF830E40974100767D22 /* ambientRGB.h */; }; + 3ACEDF7C0E40B9E800FC2E4B /* camera.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF850E40974100767D22 /* camera.h */; }; + 3ACEDF7D0E40B9E800FC2E4B /* color.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF870E40974100767D22 /* color.h */; }; + 3ACEDF7E0E40B9E800FC2E4B /* colorRGB.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF890E40974100767D22 /* colorRGB.h */; }; + 3ACEDF7F0E40B9E800FC2E4B /* depth.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF8B0E40974100767D22 /* depth.h */; }; + 3ACEDF800E40B9E800FC2E4B /* diffuse.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF8D0E40974100767D22 /* diffuse.h */; }; + 3ACEDF810E40B9E800FC2E4B /* diffuseRGB.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF8F0E40974100767D22 /* diffuseRGB.h */; }; + 3ACEDF820E40B9E800FC2E4B /* emission.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF910E40974100767D22 /* emission.h */; }; + 3ACEDF830E40B9E800FC2E4B /* emissionRGB.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF930E40974100767D22 /* emissionRGB.h */; }; + 3ACEDF840E40B9E800FC2E4B /* fragment_program.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF950E40974100767D22 /* fragment_program.h */; }; + 3ACEDF850E40B9E800FC2E4B /* glsl_fragment.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF970E40974100767D22 /* glsl_fragment.h */; }; + 3ACEDF860E40B9E800FC2E4B /* glsl_program.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF990E40974100767D22 /* glsl_program.h */; }; + 3ACEDF870E40B9E800FC2E4B /* glsl_vertex.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF9B0E40974100767D22 /* glsl_vertex.h */; }; + 3ACEDF880E40B9E800FC2E4B /* linear_path.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCF9D0E40974100767D22 /* linear_path.h */; }; + 3ACEDF890E40B9E800FC2E4B /* ortho.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFA00E40974100767D22 /* ortho.h */; }; + 3ACEDF8A0E40B9E800FC2E4B /* polygon_smooth.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFA20E40974100767D22 /* polygon_smooth.h */; }; + 3ACEDF8B0E40B9E800FC2E4B /* rotate.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFA40E40974100767D22 /* rotate.h */; }; + 3ACEDF8C0E40B9E800FC2E4B /* rotateXYZ.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFA60E40974100767D22 /* rotateXYZ.h */; }; + 3ACEDF8D0E40B9E800FC2E4B /* scale.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFA80E40974100767D22 /* scale.h */; }; + 3ACEDF8E0E40B9E800FC2E4B /* scaleXYZ.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFAA0E40974100767D22 /* scaleXYZ.h */; }; + 3ACEDF8F0E40B9E800FC2E4B /* separator.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFAC0E40974100767D22 /* separator.h */; }; + 3ACEDF900E40B9E800FC2E4B /* shearXY.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFAE0E40974100767D22 /* shearXY.h */; }; + 3ACEDF910E40B9E800FC2E4B /* shearXZ.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFB00E40974100767D22 /* shearXZ.h */; }; + 3ACEDF920E40B9E800FC2E4B /* shearYX.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFB20E40974100767D22 /* shearYX.h */; }; + 3ACEDF930E40B9E800FC2E4B /* shearYZ.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFB40E40974100767D22 /* shearYZ.h */; }; + 3ACEDF940E40B9E800FC2E4B /* shearZX.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFB60E40974100767D22 /* shearZX.h */; }; + 3ACEDF950E40B9E800FC2E4B /* shearZY.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFB80E40974100767D22 /* shearZY.h */; }; + 3ACEDF960E40B9E800FC2E4B /* shininess.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFBA0E40974100767D22 /* shininess.h */; }; + 3ACEDF970E40B9E800FC2E4B /* specular.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFBC0E40974100767D22 /* specular.h */; }; + 3ACEDF980E40B9E800FC2E4B /* specularRGB.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFBE0E40974100767D22 /* specularRGB.h */; }; + 3ACEDF990E40B9E800FC2E4B /* spline_path.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFC00E40974100767D22 /* spline_path.h */; }; + 3ACEDF9A0E40B9E800FC2E4B /* translate.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFC20E40974100767D22 /* translate.h */; }; + 3ACEDF9B0E40B9E800FC2E4B /* translateXYZ.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFC40E40974100767D22 /* translateXYZ.h */; }; + 3ACEDF9C0E40B9E800FC2E4B /* vertex_program.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DCFC60E40974100767D22 /* vertex_program.h */; }; + 3ACEDF9D0E40B9E800FC2E4B /* light.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0130E40975A00767D22 /* light.h */; }; + 3ACEDF9E0E40B9E800FC2E4B /* spot_light.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0160E40975A00767D22 /* spot_light.h */; }; + 3ACEDF9F0E40B9E800FC2E4B /* world_light.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0180E40975A00767D22 /* world_light.h */; }; + 3ACEDFA00E40B9E800FC2E4B /* GEMglAccum.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0210E40978500767D22 /* GEMglAccum.h */; }; + 3ACEDFA10E40B9E800FC2E4B /* GEMglActiveTextureARB.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0230E40978500767D22 /* GEMglActiveTextureARB.h */; }; + 3ACEDFA20E40B9E800FC2E4B /* GEMglAlphaFunc.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0250E40978500767D22 /* GEMglAlphaFunc.h */; }; + 3ACEDFA30E40B9E800FC2E4B /* GEMglAreTexturesResident.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0270E40978500767D22 /* GEMglAreTexturesResident.h */; }; + 3ACEDFA40E40B9E800FC2E4B /* GEMglArrayElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0290E40978500767D22 /* GEMglArrayElement.h */; }; + 3ACEDFA50E40B9E800FC2E4B /* GEMglBegin.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD02B0E40978500767D22 /* GEMglBegin.h */; }; + 3ACEDFA60E40B9E800FC2E4B /* GEMglBindProgramARB.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD02D0E40978500767D22 /* GEMglBindProgramARB.h */; }; + 3ACEDFA70E40B9E800FC2E4B /* GEMglBindTexture.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD02F0E40978500767D22 /* GEMglBindTexture.h */; }; + 3ACEDFA80E40B9E800FC2E4B /* GEMglBitmap.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0310E40978500767D22 /* GEMglBitmap.h */; }; + 3ACEDFA90E40B9E800FC2E4B /* GEMglBlendEquation.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0330E40978500767D22 /* GEMglBlendEquation.h */; }; + 3ACEDFAA0E40B9E800FC2E4B /* GEMglBlendFunc.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0350E40978500767D22 /* GEMglBlendFunc.h */; }; + 3ACEDFAB0E40B9E800FC2E4B /* GEMglCallList.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0370E40978500767D22 /* GEMglCallList.h */; }; + 3ACEDFAC0E40B9E800FC2E4B /* GEMglClear.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0390E40978500767D22 /* GEMglClear.h */; }; + 3ACEDFAD0E40B9E800FC2E4B /* GEMglClearAccum.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD03B0E40978500767D22 /* GEMglClearAccum.h */; }; + 3ACEDFAE0E40B9E800FC2E4B /* GEMglClearColor.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD03D0E40978500767D22 /* GEMglClearColor.h */; }; + 3ACEDFAF0E40B9E800FC2E4B /* GEMglClearDepth.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD03F0E40978500767D22 /* GEMglClearDepth.h */; }; + 3ACEDFB00E40B9E800FC2E4B /* GEMglClearIndex.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0410E40978500767D22 /* GEMglClearIndex.h */; }; + 3ACEDFB10E40B9E800FC2E4B /* GEMglClearStencil.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0430E40978500767D22 /* GEMglClearStencil.h */; }; + 3ACEDFB20E40B9E800FC2E4B /* GEMglClipPlane.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0450E40978500767D22 /* GEMglClipPlane.h */; }; + 3ACEDFB30E40B9E800FC2E4B /* GEMglColor3b.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0470E40978500767D22 /* GEMglColor3b.h */; }; + 3ACEDFB40E40B9E800FC2E4B /* GEMglColor3bv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0490E40978500767D22 /* GEMglColor3bv.h */; }; + 3ACEDFB50E40B9E800FC2E4B /* GEMglColor3d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD04B0E40978500767D22 /* GEMglColor3d.h */; }; + 3ACEDFB60E40B9E800FC2E4B /* GEMglColor3dv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD04D0E40978500767D22 /* GEMglColor3dv.h */; }; + 3ACEDFB70E40B9E800FC2E4B /* GEMglColor3f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD04F0E40978500767D22 /* GEMglColor3f.h */; }; + 3ACEDFB80E40B9E800FC2E4B /* GEMglColor3fv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0510E40978500767D22 /* GEMglColor3fv.h */; }; + 3ACEDFB90E40B9E800FC2E4B /* GEMglColor3i.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0530E40978500767D22 /* GEMglColor3i.h */; }; + 3ACEDFBA0E40B9E800FC2E4B /* GEMglColor3iv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0550E40978500767D22 /* GEMglColor3iv.h */; }; + 3ACEDFBB0E40B9E800FC2E4B /* GEMglColor3s.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0570E40978500767D22 /* GEMglColor3s.h */; }; + 3ACEDFBC0E40B9E800FC2E4B /* GEMglColor3sv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0590E40978500767D22 /* GEMglColor3sv.h */; }; + 3ACEDFBD0E40B9E800FC2E4B /* GEMglColor3ub.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD05B0E40978500767D22 /* GEMglColor3ub.h */; }; + 3ACEDFBE0E40B9E800FC2E4B /* GEMglColor3ubv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD05D0E40978500767D22 /* GEMglColor3ubv.h */; }; + 3ACEDFBF0E40B9E800FC2E4B /* GEMglColor3ui.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD05F0E40978500767D22 /* GEMglColor3ui.h */; }; + 3ACEDFC00E40B9E800FC2E4B /* GEMglColor3uiv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0610E40978500767D22 /* GEMglColor3uiv.h */; }; + 3ACEDFC10E40B9E800FC2E4B /* GEMglColor3us.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0630E40978500767D22 /* GEMglColor3us.h */; }; + 3ACEDFC20E40B9E800FC2E4B /* GEMglColor3usv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0650E40978500767D22 /* GEMglColor3usv.h */; }; + 3ACEDFC30E40B9E800FC2E4B /* GEMglColor4b.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0670E40978500767D22 /* GEMglColor4b.h */; }; + 3ACEDFC40E40B9E800FC2E4B /* GEMglColor4bv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0690E40978500767D22 /* GEMglColor4bv.h */; }; + 3ACEDFC50E40B9E800FC2E4B /* GEMglColor4d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD06B0E40978500767D22 /* GEMglColor4d.h */; }; + 3ACEDFC60E40B9E800FC2E4B /* GEMglColor4dv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD06D0E40978500767D22 /* GEMglColor4dv.h */; }; + 3ACEDFC70E40B9E800FC2E4B /* GEMglColor4f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD06F0E40978500767D22 /* GEMglColor4f.h */; }; + 3ACEDFC80E40B9E800FC2E4B /* GEMglColor4fv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0710E40978500767D22 /* GEMglColor4fv.h */; }; + 3ACEDFC90E40B9E800FC2E4B /* GEMglColor4i.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0730E40978500767D22 /* GEMglColor4i.h */; }; + 3ACEDFCA0E40B9E800FC2E4B /* GEMglColor4iv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0750E40978500767D22 /* GEMglColor4iv.h */; }; + 3ACEDFCB0E40B9E800FC2E4B /* GEMglColor4s.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0770E40978500767D22 /* GEMglColor4s.h */; }; + 3ACEDFCC0E40B9E800FC2E4B /* GEMglColor4sv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0790E40978500767D22 /* GEMglColor4sv.h */; }; + 3ACEDFCD0E40B9E800FC2E4B /* GEMglColor4ub.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD07B0E40978500767D22 /* GEMglColor4ub.h */; }; + 3ACEDFCE0E40B9E800FC2E4B /* GEMglColor4ubv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD07D0E40978500767D22 /* GEMglColor4ubv.h */; }; + 3ACEDFCF0E40B9E800FC2E4B /* GEMglColor4ui.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD07F0E40978500767D22 /* GEMglColor4ui.h */; }; + 3ACEDFD00E40B9E800FC2E4B /* GEMglColor4uiv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0810E40978500767D22 /* GEMglColor4uiv.h */; }; + 3ACEDFD10E40B9E800FC2E4B /* GEMglColor4us.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0830E40978500767D22 /* GEMglColor4us.h */; }; + 3ACEDFD20E40B9E800FC2E4B /* GEMglColor4usv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0850E40978500767D22 /* GEMglColor4usv.h */; }; + 3ACEDFD30E40B9E800FC2E4B /* GEMglColorMask.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0870E40978500767D22 /* GEMglColorMask.h */; }; + 3ACEDFD40E40B9E800FC2E4B /* GEMglColorMaterial.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0890E40978500767D22 /* GEMglColorMaterial.h */; }; + 3ACEDFD50E40B9E800FC2E4B /* GEMglCopyPixels.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD08B0E40978500767D22 /* GEMglCopyPixels.h */; }; + 3ACEDFD60E40B9E800FC2E4B /* GEMglCopyTexImage1D.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD08D0E40978500767D22 /* GEMglCopyTexImage1D.h */; }; + 3ACEDFD70E40B9E800FC2E4B /* GEMglCopyTexImage2D.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD08F0E40978500767D22 /* GEMglCopyTexImage2D.h */; }; + 3ACEDFD80E40B9E800FC2E4B /* GEMglCopyTexSubImage1D.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0910E40978500767D22 /* GEMglCopyTexSubImage1D.h */; }; + 3ACEDFD90E40B9E800FC2E4B /* GEMglCopyTexSubImage2D.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0930E40978500767D22 /* GEMglCopyTexSubImage2D.h */; }; + 3ACEDFDA0E40B9E800FC2E4B /* GEMglCullFace.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0950E40978500767D22 /* GEMglCullFace.h */; }; + 3ACEDFDB0E40B9E800FC2E4B /* GEMglDeleteTextures.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0970E40978500767D22 /* GEMglDeleteTextures.h */; }; + 3ACEDFDC0E40B9E800FC2E4B /* GEMglDepthFunc.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0990E40978500767D22 /* GEMglDepthFunc.h */; }; + 3ACEDFDD0E40B9E800FC2E4B /* GEMglDepthMask.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD09B0E40978500767D22 /* GEMglDepthMask.h */; }; + 3ACEDFDE0E40B9E800FC2E4B /* GEMglDepthRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD09D0E40978500767D22 /* GEMglDepthRange.h */; }; + 3ACEDFDF0E40B9E800FC2E4B /* GEMglDisable.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD09F0E40978500767D22 /* GEMglDisable.h */; }; + 3ACEDFE00E40B9E800FC2E4B /* GEMglDisableClientState.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0A10E40978500767D22 /* GEMglDisableClientState.h */; }; + 3ACEDFE10E40B9E800FC2E4B /* GEMglDrawArrays.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0A30E40978500767D22 /* GEMglDrawArrays.h */; }; + 3ACEDFE20E40B9E800FC2E4B /* GEMglDrawBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0A50E40978500767D22 /* GEMglDrawBuffer.h */; }; + 3ACEDFE30E40B9E800FC2E4B /* GEMglDrawElements.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0A70E40978500767D22 /* GEMglDrawElements.h */; }; + 3ACEDFE40E40B9E800FC2E4B /* GEMglEdgeFlag.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0A90E40978500767D22 /* GEMglEdgeFlag.h */; }; + 3ACEDFE50E40B9E800FC2E4B /* GEMglEnable.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0AB0E40978500767D22 /* GEMglEnable.h */; }; + 3ACEDFE60E40B9E800FC2E4B /* GEMglEnableClientState.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0AD0E40978500767D22 /* GEMglEnableClientState.h */; }; + 3ACEDFE70E40B9E800FC2E4B /* GEMglEnd.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0AF0E40978500767D22 /* GEMglEnd.h */; }; + 3ACEDFE80E40B9E800FC2E4B /* GEMglEndList.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0B10E40978500767D22 /* GEMglEndList.h */; }; + 3ACEDFE90E40B9E800FC2E4B /* GEMglEvalCoord1d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0B30E40978500767D22 /* GEMglEvalCoord1d.h */; }; + 3ACEDFEA0E40B9E800FC2E4B /* GEMglEvalCoord1dv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0B50E40978500767D22 /* GEMglEvalCoord1dv.h */; }; + 3ACEDFEB0E40B9E800FC2E4B /* GEMglEvalCoord1f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0B70E40978500767D22 /* GEMglEvalCoord1f.h */; }; + 3ACEDFEC0E40B9E800FC2E4B /* GEMglEvalCoord1fv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0B90E40978500767D22 /* GEMglEvalCoord1fv.h */; }; + 3ACEDFED0E40B9E800FC2E4B /* GEMglEvalCoord2d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0BB0E40978500767D22 /* GEMglEvalCoord2d.h */; }; + 3ACEDFEE0E40B9E800FC2E4B /* GEMglEvalCoord2dv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0BD0E40978500767D22 /* GEMglEvalCoord2dv.h */; }; + 3ACEDFEF0E40B9E800FC2E4B /* GEMglEvalCoord2f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0BF0E40978500767D22 /* GEMglEvalCoord2f.h */; }; + 3ACEDFF00E40B9E800FC2E4B /* GEMglEvalCoord2fv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0C10E40978500767D22 /* GEMglEvalCoord2fv.h */; }; + 3ACEDFF10E40B9E800FC2E4B /* GEMglEvalMesh1.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0C30E40978500767D22 /* GEMglEvalMesh1.h */; }; + 3ACEDFF20E40B9E800FC2E4B /* GEMglEvalMesh2.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0C50E40978500767D22 /* GEMglEvalMesh2.h */; }; + 3ACEDFF30E40B9E800FC2E4B /* GEMglEvalPoint1.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0C70E40978500767D22 /* GEMglEvalPoint1.h */; }; + 3ACEDFF40E40B9E800FC2E4B /* GEMglEvalPoint2.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0C90E40978500767D22 /* GEMglEvalPoint2.h */; }; + 3ACEDFF50E40B9E800FC2E4B /* GEMglFeedbackBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0CB0E40978500767D22 /* GEMglFeedbackBuffer.h */; }; + 3ACEDFF60E40B9E800FC2E4B /* GEMglFinish.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0CD0E40978500767D22 /* GEMglFinish.h */; }; + 3ACEDFF70E40B9E800FC2E4B /* GEMglFlush.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0CF0E40978500767D22 /* GEMglFlush.h */; }; + 3ACEDFF80E40B9E800FC2E4B /* GEMglFogf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0D10E40978500767D22 /* GEMglFogf.h */; }; + 3ACEDFF90E40B9E800FC2E4B /* GEMglFogfv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0D30E40978500767D22 /* GEMglFogfv.h */; }; + 3ACEDFFA0E40B9E800FC2E4B /* GEMglFogi.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0D50E40978500767D22 /* GEMglFogi.h */; }; + 3ACEDFFB0E40B9E800FC2E4B /* GEMglFogiv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0D70E40978500767D22 /* GEMglFogiv.h */; }; + 3ACEDFFC0E40B9E800FC2E4B /* GEMglFrontFace.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0D90E40978500767D22 /* GEMglFrontFace.h */; }; + 3ACEDFFD0E40B9E800FC2E4B /* GEMglFrustum.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0DB0E40978500767D22 /* GEMglFrustum.h */; }; + 3ACEDFFE0E40B9E800FC2E4B /* GEMglGenLists.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0DD0E40978500767D22 /* GEMglGenLists.h */; }; + 3ACEDFFF0E40B9E800FC2E4B /* GEMglGenProgramsARB.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0DF0E40978500767D22 /* GEMglGenProgramsARB.h */; }; + 3ACEE0000E40B9E800FC2E4B /* GEMglGenTextures.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0E10E40978500767D22 /* GEMglGenTextures.h */; }; + 3ACEE0010E40B9E800FC2E4B /* GEMglGetError.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0E30E40978500767D22 /* GEMglGetError.h */; }; + 3ACEE0020E40B9E800FC2E4B /* GEMglGetFloatv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0E50E40978500767D22 /* GEMglGetFloatv.h */; }; + 3ACEE0030E40B9E800FC2E4B /* GEMglGetMapdv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0E70E40978500767D22 /* GEMglGetMapdv.h */; }; + 3ACEE0040E40B9E800FC2E4B /* GEMglGetMapfv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0E90E40978500767D22 /* GEMglGetMapfv.h */; }; + 3ACEE0050E40B9E800FC2E4B /* GEMglGetMapiv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0EB0E40978500767D22 /* GEMglGetMapiv.h */; }; + 3ACEE0060E40B9E800FC2E4B /* GEMglGetPointerv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0ED0E40978500767D22 /* GEMglGetPointerv.h */; }; + 3ACEE0070E40B9E800FC2E4B /* GEMglGetString.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0EF0E40978600767D22 /* GEMglGetString.h */; }; + 3ACEE0080E40B9E800FC2E4B /* GEMglHint.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0F10E40978600767D22 /* GEMglHint.h */; }; + 3ACEE0090E40B9E800FC2E4B /* GEMglIndexd.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0F30E40978600767D22 /* GEMglIndexd.h */; }; + 3ACEE00A0E40B9E800FC2E4B /* GEMglIndexdv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0F50E40978600767D22 /* GEMglIndexdv.h */; }; + 3ACEE00B0E40B9E800FC2E4B /* GEMglIndexf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0F70E40978600767D22 /* GEMglIndexf.h */; }; + 3ACEE00C0E40B9E800FC2E4B /* GEMglIndexfv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0F90E40978600767D22 /* GEMglIndexfv.h */; }; + 3ACEE00D0E40B9E800FC2E4B /* GEMglIndexi.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0FB0E40978600767D22 /* GEMglIndexi.h */; }; + 3ACEE00E0E40B9E800FC2E4B /* GEMglIndexiv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0FD0E40978600767D22 /* GEMglIndexiv.h */; }; + 3ACEE00F0E40B9E800FC2E4B /* GEMglIndexMask.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD0FF0E40978600767D22 /* GEMglIndexMask.h */; }; + 3ACEE0100E40B9E800FC2E4B /* GEMglIndexs.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1010E40978600767D22 /* GEMglIndexs.h */; }; + 3ACEE0110E40B9E800FC2E4B /* GEMglIndexsv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1030E40978600767D22 /* GEMglIndexsv.h */; }; + 3ACEE0120E40B9E800FC2E4B /* GEMglIndexub.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1050E40978600767D22 /* GEMglIndexub.h */; }; + 3ACEE0130E40B9E800FC2E4B /* GEMglIndexubv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1070E40978600767D22 /* GEMglIndexubv.h */; }; + 3ACEE0140E40B9E800FC2E4B /* GEMglInitNames.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1090E40978600767D22 /* GEMglInitNames.h */; }; + 3ACEE0150E40B9E800FC2E4B /* GEMglIsEnabled.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD10B0E40978600767D22 /* GEMglIsEnabled.h */; }; + 3ACEE0160E40B9E800FC2E4B /* GEMglIsList.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD10D0E40978600767D22 /* GEMglIsList.h */; }; + 3ACEE0170E40B9E800FC2E4B /* GEMglIsTexture.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD10F0E40978600767D22 /* GEMglIsTexture.h */; }; + 3ACEE0180E40B9E800FC2E4B /* GEMglLightf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1110E40978600767D22 /* GEMglLightf.h */; }; + 3ACEE0190E40B9E800FC2E4B /* GEMglLighti.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1130E40978600767D22 /* GEMglLighti.h */; }; + 3ACEE01A0E40B9E800FC2E4B /* GEMglLightModelf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1150E40978600767D22 /* GEMglLightModelf.h */; }; + 3ACEE01B0E40B9E800FC2E4B /* GEMglLightModeli.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1170E40978600767D22 /* GEMglLightModeli.h */; }; + 3ACEE01C0E40B9E800FC2E4B /* GEMglLineStipple.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1190E40978600767D22 /* GEMglLineStipple.h */; }; + 3ACEE01D0E40B9E800FC2E4B /* GEMglLineWidth.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD11B0E40978600767D22 /* GEMglLineWidth.h */; }; + 3ACEE01E0E40B9E800FC2E4B /* GEMglLoadIdentity.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD11D0E40978600767D22 /* GEMglLoadIdentity.h */; }; + 3ACEE01F0E40B9E800FC2E4B /* GEMglLoadMatrixd.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD11F0E40978600767D22 /* GEMglLoadMatrixd.h */; }; + 3ACEE0200E40B9E800FC2E4B /* GEMglLoadMatrixf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1210E40978600767D22 /* GEMglLoadMatrixf.h */; }; + 3ACEE0210E40B9E800FC2E4B /* GEMglLoadName.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1230E40978600767D22 /* GEMglLoadName.h */; }; + 3ACEE0220E40B9E800FC2E4B /* GEMglLoadTransposeMatrixd.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1250E40978600767D22 /* GEMglLoadTransposeMatrixd.h */; }; + 3ACEE0230E40B9E800FC2E4B /* GEMglLoadTransposeMatrixf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1270E40978600767D22 /* GEMglLoadTransposeMatrixf.h */; }; + 3ACEE0240E40B9E800FC2E4B /* GEMglLogicOp.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1290E40978600767D22 /* GEMglLogicOp.h */; }; + 3ACEE0250E40B9E800FC2E4B /* GEMglMap1d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD12B0E40978600767D22 /* GEMglMap1d.h */; }; + 3ACEE0260E40B9E800FC2E4B /* GEMglMap1f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD12D0E40978600767D22 /* GEMglMap1f.h */; }; + 3ACEE0270E40B9E800FC2E4B /* GEMglMap2d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD12F0E40978600767D22 /* GEMglMap2d.h */; }; + 3ACEE0280E40B9E800FC2E4B /* GEMglMap2f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1310E40978600767D22 /* GEMglMap2f.h */; }; + 3ACEE0290E40B9E800FC2E4B /* GEMglMapGrid1d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1330E40978600767D22 /* GEMglMapGrid1d.h */; }; + 3ACEE02A0E40B9E800FC2E4B /* GEMglMapGrid1f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1350E40978600767D22 /* GEMglMapGrid1f.h */; }; + 3ACEE02B0E40B9E800FC2E4B /* GEMglMapGrid2d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1370E40978600767D22 /* GEMglMapGrid2d.h */; }; + 3ACEE02C0E40B9E800FC2E4B /* GEMglMapGrid2f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1390E40978600767D22 /* GEMglMapGrid2f.h */; }; + 3ACEE02D0E40B9E800FC2E4B /* GEMglMaterialf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD13B0E40978600767D22 /* GEMglMaterialf.h */; }; + 3ACEE02E0E40B9E800FC2E4B /* GEMglMateriali.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD13D0E40978600767D22 /* GEMglMateriali.h */; }; + 3ACEE02F0E40B9E800FC2E4B /* GEMglMatrixMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD13F0E40978600767D22 /* GEMglMatrixMode.h */; }; + 3ACEE0300E40B9E800FC2E4B /* GEMglMultiTexCoord2fARB.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1410E40978600767D22 /* GEMglMultiTexCoord2fARB.h */; }; + 3ACEE0310E40B9E800FC2E4B /* GEMglMultMatrixd.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1430E40978600767D22 /* GEMglMultMatrixd.h */; }; + 3ACEE0320E40B9E800FC2E4B /* GEMglMultMatrixf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1450E40978600767D22 /* GEMglMultMatrixf.h */; }; + 3ACEE0330E40B9E800FC2E4B /* GEMglMultTransposeMatrixd.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1470E40978600767D22 /* GEMglMultTransposeMatrixd.h */; }; + 3ACEE0340E40B9E800FC2E4B /* GEMglMultTransposeMatrixf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1490E40978600767D22 /* GEMglMultTransposeMatrixf.h */; }; + 3ACEE0350E40B9E800FC2E4B /* GEMglNewList.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD14B0E40978600767D22 /* GEMglNewList.h */; }; + 3ACEE0360E40B9E800FC2E4B /* GEMglNormal3b.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD14D0E40978600767D22 /* GEMglNormal3b.h */; }; + 3ACEE0370E40B9E800FC2E4B /* GEMglNormal3bv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD14F0E40978600767D22 /* GEMglNormal3bv.h */; }; + 3ACEE0380E40B9E800FC2E4B /* GEMglNormal3d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1510E40978600767D22 /* GEMglNormal3d.h */; }; + 3ACEE0390E40B9E800FC2E4B /* GEMglNormal3dv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1530E40978600767D22 /* GEMglNormal3dv.h */; }; + 3ACEE03A0E40B9E800FC2E4B /* GEMglNormal3f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1550E40978600767D22 /* GEMglNormal3f.h */; }; + 3ACEE03B0E40B9E800FC2E4B /* GEMglNormal3fv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1570E40978600767D22 /* GEMglNormal3fv.h */; }; + 3ACEE03C0E40B9E800FC2E4B /* GEMglNormal3i.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1590E40978600767D22 /* GEMglNormal3i.h */; }; + 3ACEE03D0E40B9E800FC2E4B /* GEMglNormal3iv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD15B0E40978600767D22 /* GEMglNormal3iv.h */; }; + 3ACEE03E0E40B9E800FC2E4B /* GEMglNormal3s.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD15D0E40978600767D22 /* GEMglNormal3s.h */; }; + 3ACEE03F0E40B9E800FC2E4B /* GEMglNormal3sv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD15F0E40978600767D22 /* GEMglNormal3sv.h */; }; + 3ACEE0400E40B9E800FC2E4B /* GEMglOrtho.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1610E40978600767D22 /* GEMglOrtho.h */; }; + 3ACEE0410E40B9E800FC2E4B /* GEMglPassThrough.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1630E40978600767D22 /* GEMglPassThrough.h */; }; + 3ACEE0420E40B9E800FC2E4B /* GEMglPixelStoref.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1650E40978600767D22 /* GEMglPixelStoref.h */; }; + 3ACEE0430E40B9E800FC2E4B /* GEMglPixelStorei.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1670E40978600767D22 /* GEMglPixelStorei.h */; }; + 3ACEE0440E40B9E800FC2E4B /* GEMglPixelTransferf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1690E40978600767D22 /* GEMglPixelTransferf.h */; }; + 3ACEE0450E40B9E800FC2E4B /* GEMglPixelTransferi.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD16B0E40978600767D22 /* GEMglPixelTransferi.h */; }; + 3ACEE0460E40B9E800FC2E4B /* GEMglPixelZoom.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD16D0E40978600767D22 /* GEMglPixelZoom.h */; }; + 3ACEE0470E40B9E800FC2E4B /* GEMglPointSize.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD16F0E40978600767D22 /* GEMglPointSize.h */; }; + 3ACEE0480E40B9E800FC2E4B /* GEMglPolygonMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1710E40978600767D22 /* GEMglPolygonMode.h */; }; + 3ACEE0490E40B9E800FC2E4B /* GEMglPolygonOffset.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1730E40978600767D22 /* GEMglPolygonOffset.h */; }; + 3ACEE04A0E40B9E800FC2E4B /* GEMglPopAttrib.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1750E40978600767D22 /* GEMglPopAttrib.h */; }; + 3ACEE04B0E40B9E800FC2E4B /* GEMglPopClientAttrib.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1770E40978600767D22 /* GEMglPopClientAttrib.h */; }; + 3ACEE04C0E40B9E800FC2E4B /* GEMglPopMatrix.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1790E40978600767D22 /* GEMglPopMatrix.h */; }; + 3ACEE04D0E40B9E800FC2E4B /* GEMglPopName.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD17B0E40978600767D22 /* GEMglPopName.h */; }; + 3ACEE04E0E40B9E800FC2E4B /* GEMglPrioritizeTextures.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD17D0E40978600767D22 /* GEMglPrioritizeTextures.h */; }; + 3ACEE04F0E40B9E800FC2E4B /* GEMglProgramEnvParameter4dARB.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD17F0E40978600767D22 /* GEMglProgramEnvParameter4dARB.h */; }; + 3ACEE0500E40B9E800FC2E4B /* GEMglProgramEnvParameter4fvARB.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1810E40978600767D22 /* GEMglProgramEnvParameter4fvARB.h */; }; + 3ACEE0510E40B9E800FC2E4B /* GEMglProgramLocalParameter4fvARB.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1830E40978600767D22 /* GEMglProgramLocalParameter4fvARB.h */; }; + 3ACEE0520E40B9E800FC2E4B /* GEMglProgramStringARB.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1850E40978600767D22 /* GEMglProgramStringARB.h */; }; + 3ACEE0530E40B9E800FC2E4B /* GEMglPushAttrib.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1870E40978600767D22 /* GEMglPushAttrib.h */; }; + 3ACEE0540E40B9E800FC2E4B /* GEMglPushClientAttrib.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1890E40978600767D22 /* GEMglPushClientAttrib.h */; }; + 3ACEE0550E40B9E800FC2E4B /* GEMglPushMatrix.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD18B0E40978600767D22 /* GEMglPushMatrix.h */; }; + 3ACEE0560E40B9E800FC2E4B /* GEMglPushName.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD18D0E40978600767D22 /* GEMglPushName.h */; }; + 3ACEE0570E40B9E800FC2E4B /* GEMglRasterPos2d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD18F0E40978600767D22 /* GEMglRasterPos2d.h */; }; + 3ACEE0580E40B9E800FC2E4B /* GEMglRasterPos2dv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1910E40978600767D22 /* GEMglRasterPos2dv.h */; }; + 3ACEE0590E40B9E800FC2E4B /* GEMglRasterPos2f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1930E40978600767D22 /* GEMglRasterPos2f.h */; }; + 3ACEE05A0E40B9E800FC2E4B /* GEMglRasterPos2fv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1950E40978600767D22 /* GEMglRasterPos2fv.h */; }; + 3ACEE05B0E40B9E800FC2E4B /* GEMglRasterPos2i.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1970E40978600767D22 /* GEMglRasterPos2i.h */; }; + 3ACEE05C0E40B9E800FC2E4B /* GEMglRasterPos2iv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1990E40978600767D22 /* GEMglRasterPos2iv.h */; }; + 3ACEE05D0E40B9E800FC2E4B /* GEMglRasterPos2s.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD19B0E40978600767D22 /* GEMglRasterPos2s.h */; }; + 3ACEE05E0E40B9E800FC2E4B /* GEMglRasterPos2sv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD19D0E40978600767D22 /* GEMglRasterPos2sv.h */; }; + 3ACEE05F0E40B9E800FC2E4B /* GEMglRasterPos3d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD19F0E40978600767D22 /* GEMglRasterPos3d.h */; }; + 3ACEE0600E40B9E800FC2E4B /* GEMglRasterPos3dv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1A10E40978600767D22 /* GEMglRasterPos3dv.h */; }; + 3ACEE0610E40B9E800FC2E4B /* GEMglRasterPos3f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1A30E40978600767D22 /* GEMglRasterPos3f.h */; }; + 3ACEE0620E40B9E800FC2E4B /* GEMglRasterPos3fv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1A50E40978600767D22 /* GEMglRasterPos3fv.h */; }; + 3ACEE0630E40B9E800FC2E4B /* GEMglRasterPos3i.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1A70E40978600767D22 /* GEMglRasterPos3i.h */; }; + 3ACEE0640E40B9E800FC2E4B /* GEMglRasterPos3iv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1A90E40978600767D22 /* GEMglRasterPos3iv.h */; }; + 3ACEE0650E40B9E800FC2E4B /* GEMglRasterPos3s.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1AB0E40978600767D22 /* GEMglRasterPos3s.h */; }; + 3ACEE0660E40B9E800FC2E4B /* GEMglRasterPos3sv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1AD0E40978600767D22 /* GEMglRasterPos3sv.h */; }; + 3ACEE0670E40B9E800FC2E4B /* GEMglRasterPos4d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1AF0E40978600767D22 /* GEMglRasterPos4d.h */; }; + 3ACEE0680E40B9E800FC2E4B /* GEMglRasterPos4dv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1B10E40978600767D22 /* GEMglRasterPos4dv.h */; }; + 3ACEE0690E40B9E800FC2E4B /* GEMglRasterPos4f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1B30E40978600767D22 /* GEMglRasterPos4f.h */; }; + 3ACEE06A0E40B9E800FC2E4B /* GEMglRasterPos4fv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1B50E40978600767D22 /* GEMglRasterPos4fv.h */; }; + 3ACEE06B0E40B9E800FC2E4B /* GEMglRasterPos4i.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1B70E40978600767D22 /* GEMglRasterPos4i.h */; }; + 3ACEE06C0E40B9E800FC2E4B /* GEMglRasterPos4iv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1B90E40978600767D22 /* GEMglRasterPos4iv.h */; }; + 3ACEE06D0E40B9E800FC2E4B /* GEMglRasterPos4s.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1BB0E40978600767D22 /* GEMglRasterPos4s.h */; }; + 3ACEE06E0E40B9E800FC2E4B /* GEMglRasterPos4sv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1BD0E40978600767D22 /* GEMglRasterPos4sv.h */; }; + 3ACEE06F0E40B9E800FC2E4B /* GEMglRectd.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1BF0E40978600767D22 /* GEMglRectd.h */; }; + 3ACEE0700E40B9E800FC2E4B /* GEMglRectf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1C10E40978600767D22 /* GEMglRectf.h */; }; + 3ACEE0710E40B9E800FC2E4B /* GEMglRecti.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1C30E40978600767D22 /* GEMglRecti.h */; }; + 3ACEE0720E40B9E800FC2E4B /* GEMglRects.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1C50E40978600767D22 /* GEMglRects.h */; }; + 3ACEE0730E40B9E800FC2E4B /* GEMglRenderMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1C70E40978600767D22 /* GEMglRenderMode.h */; }; + 3ACEE0740E40B9E800FC2E4B /* GEMglReportError.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1C90E40978600767D22 /* GEMglReportError.h */; }; + 3ACEE0750E40B9E800FC2E4B /* GEMglRotated.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1CB0E40978600767D22 /* GEMglRotated.h */; }; + 3ACEE0760E40B9E800FC2E4B /* GEMglRotatef.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1CD0E40978600767D22 /* GEMglRotatef.h */; }; + 3ACEE0770E40B9E800FC2E4B /* GEMglScaled.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1CF0E40978600767D22 /* GEMglScaled.h */; }; + 3ACEE0780E40B9E800FC2E4B /* GEMglScalef.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1D10E40978600767D22 /* GEMglScalef.h */; }; + 3ACEE0790E40B9E800FC2E4B /* GEMglScissor.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1D30E40978600767D22 /* GEMglScissor.h */; }; + 3ACEE07A0E40B9E800FC2E4B /* GEMglSelectBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1D50E40978600767D22 /* GEMglSelectBuffer.h */; }; + 3ACEE07B0E40B9E800FC2E4B /* GEMglShadeModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1D70E40978600767D22 /* GEMglShadeModel.h */; }; + 3ACEE07C0E40B9E800FC2E4B /* GEMglStencilFunc.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1D90E40978600767D22 /* GEMglStencilFunc.h */; }; + 3ACEE07D0E40B9E800FC2E4B /* GEMglStencilMask.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1DB0E40978600767D22 /* GEMglStencilMask.h */; }; + 3ACEE07E0E40B9E800FC2E4B /* GEMglStencilOp.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1DD0E40978600767D22 /* GEMglStencilOp.h */; }; + 3ACEE07F0E40B9E800FC2E4B /* GEMglTexCoord1d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1DF0E40978600767D22 /* GEMglTexCoord1d.h */; }; + 3ACEE0800E40B9E800FC2E4B /* GEMglTexCoord1dv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1E10E40978600767D22 /* GEMglTexCoord1dv.h */; }; + 3ACEE0810E40B9E800FC2E4B /* GEMglTexCoord1f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1E30E40978600767D22 /* GEMglTexCoord1f.h */; }; + 3ACEE0820E40B9E800FC2E4B /* GEMglTexCoord1fv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1E50E40978600767D22 /* GEMglTexCoord1fv.h */; }; + 3ACEE0830E40B9E800FC2E4B /* GEMglTexCoord1i.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1E70E40978600767D22 /* GEMglTexCoord1i.h */; }; + 3ACEE0840E40B9E800FC2E4B /* GEMglTexCoord1iv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1E90E40978600767D22 /* GEMglTexCoord1iv.h */; }; + 3ACEE0850E40B9E800FC2E4B /* GEMglTexCoord1s.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1EB0E40978600767D22 /* GEMglTexCoord1s.h */; }; + 3ACEE0860E40B9E800FC2E4B /* GEMglTexCoord1sv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1ED0E40978600767D22 /* GEMglTexCoord1sv.h */; }; + 3ACEE0870E40B9E800FC2E4B /* GEMglTexCoord2d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1EF0E40978600767D22 /* GEMglTexCoord2d.h */; }; + 3ACEE0880E40B9E800FC2E4B /* GEMglTexCoord2dv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1F10E40978600767D22 /* GEMglTexCoord2dv.h */; }; + 3ACEE0890E40B9E800FC2E4B /* GEMglTexCoord2f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1F30E40978600767D22 /* GEMglTexCoord2f.h */; }; + 3ACEE08A0E40B9E800FC2E4B /* GEMglTexCoord2fv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1F50E40978600767D22 /* GEMglTexCoord2fv.h */; }; + 3ACEE08B0E40B9E800FC2E4B /* GEMglTexCoord2i.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1F70E40978600767D22 /* GEMglTexCoord2i.h */; }; + 3ACEE08C0E40B9E800FC2E4B /* GEMglTexCoord2iv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1F90E40978600767D22 /* GEMglTexCoord2iv.h */; }; + 3ACEE08D0E40B9E800FC2E4B /* GEMglTexCoord2s.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1FB0E40978600767D22 /* GEMglTexCoord2s.h */; }; + 3ACEE08E0E40B9E800FC2E4B /* GEMglTexCoord2sv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1FD0E40978600767D22 /* GEMglTexCoord2sv.h */; }; + 3ACEE08F0E40B9E800FC2E4B /* GEMglTexCoord3d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD1FF0E40978600767D22 /* GEMglTexCoord3d.h */; }; + 3ACEE0900E40B9E800FC2E4B /* GEMglTexCoord3dv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2010E40978600767D22 /* GEMglTexCoord3dv.h */; }; + 3ACEE0910E40B9E800FC2E4B /* GEMglTexCoord3f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2030E40978600767D22 /* GEMglTexCoord3f.h */; }; + 3ACEE0920E40B9E800FC2E4B /* GEMglTexCoord3fv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2050E40978600767D22 /* GEMglTexCoord3fv.h */; }; + 3ACEE0930E40B9E800FC2E4B /* GEMglTexCoord3i.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2070E40978600767D22 /* GEMglTexCoord3i.h */; }; + 3ACEE0940E40B9E800FC2E4B /* GEMglTexCoord3iv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2090E40978600767D22 /* GEMglTexCoord3iv.h */; }; + 3ACEE0950E40B9E800FC2E4B /* GEMglTexCoord3s.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD20B0E40978600767D22 /* GEMglTexCoord3s.h */; }; + 3ACEE0960E40B9E800FC2E4B /* GEMglTexCoord3sv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD20D0E40978600767D22 /* GEMglTexCoord3sv.h */; }; + 3ACEE0970E40B9E800FC2E4B /* GEMglTexCoord4d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD20F0E40978600767D22 /* GEMglTexCoord4d.h */; }; + 3ACEE0980E40B9E800FC2E4B /* GEMglTexCoord4dv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2110E40978600767D22 /* GEMglTexCoord4dv.h */; }; + 3ACEE0990E40B9E800FC2E4B /* GEMglTexCoord4f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2130E40978600767D22 /* GEMglTexCoord4f.h */; }; + 3ACEE09A0E40B9E800FC2E4B /* GEMglTexCoord4fv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2150E40978600767D22 /* GEMglTexCoord4fv.h */; }; + 3ACEE09B0E40B9E800FC2E4B /* GEMglTexCoord4i.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2170E40978600767D22 /* GEMglTexCoord4i.h */; }; + 3ACEE09C0E40B9E800FC2E4B /* GEMglTexCoord4iv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2190E40978600767D22 /* GEMglTexCoord4iv.h */; }; + 3ACEE09D0E40B9E800FC2E4B /* GEMglTexCoord4s.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD21B0E40978600767D22 /* GEMglTexCoord4s.h */; }; + 3ACEE09E0E40B9E800FC2E4B /* GEMglTexCoord4sv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD21D0E40978600767D22 /* GEMglTexCoord4sv.h */; }; + 3ACEE09F0E40B9E800FC2E4B /* GEMglTexEnvf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD21F0E40978600767D22 /* GEMglTexEnvf.h */; }; + 3ACEE0A00E40B9E800FC2E4B /* GEMglTexEnvi.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2210E40978600767D22 /* GEMglTexEnvi.h */; }; + 3ACEE0A10E40B9E800FC2E4B /* GEMglTexGend.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2230E40978700767D22 /* GEMglTexGend.h */; }; + 3ACEE0A20E40B9E800FC2E4B /* GEMglTexGenf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2250E40978700767D22 /* GEMglTexGenf.h */; }; + 3ACEE0A30E40B9E800FC2E4B /* GEMglTexGenfv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2270E40978700767D22 /* GEMglTexGenfv.h */; }; + 3ACEE0A40E40B9E800FC2E4B /* GEMglTexGeni.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2290E40978700767D22 /* GEMglTexGeni.h */; }; + 3ACEE0A50E40B9E800FC2E4B /* GEMglTexParameterf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD22B0E40978700767D22 /* GEMglTexParameterf.h */; }; + 3ACEE0A60E40B9E800FC2E4B /* GEMglTexParameteri.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD22D0E40978700767D22 /* GEMglTexParameteri.h */; }; + 3ACEE0A70E40B9E800FC2E4B /* GEMglTexSubImage1D.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD22F0E40978700767D22 /* GEMglTexSubImage1D.h */; }; + 3ACEE0A80E40B9E800FC2E4B /* GEMglTexSubImage2D.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2310E40978700767D22 /* GEMglTexSubImage2D.h */; }; + 3ACEE0A90E40B9E800FC2E4B /* GEMglTranslated.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2330E40978700767D22 /* GEMglTranslated.h */; }; + 3ACEE0AA0E40B9E800FC2E4B /* GEMglTranslatef.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2350E40978700767D22 /* GEMglTranslatef.h */; }; + 3ACEE0AB0E40B9E800FC2E4B /* GEMglUniform1fARB.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2370E40978700767D22 /* GEMglUniform1fARB.h */; }; + 3ACEE0AC0E40B9E800FC2E4B /* GEMgluPerspective.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2390E40978700767D22 /* GEMgluPerspective.h */; }; + 3ACEE0AD0E40B9E800FC2E4B /* GEMglUseProgramObjectARB.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD23B0E40978700767D22 /* GEMglUseProgramObjectARB.h */; }; + 3ACEE0AE0E40B9E800FC2E4B /* GEMglVertex2d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD23D0E40978700767D22 /* GEMglVertex2d.h */; }; + 3ACEE0AF0E40B9E800FC2E4B /* GEMglVertex2dv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD23F0E40978700767D22 /* GEMglVertex2dv.h */; }; + 3ACEE0B00E40B9E800FC2E4B /* GEMglVertex2f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2410E40978700767D22 /* GEMglVertex2f.h */; }; + 3ACEE0B10E40B9E800FC2E4B /* GEMglVertex2fv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2430E40978700767D22 /* GEMglVertex2fv.h */; }; + 3ACEE0B20E40B9E800FC2E4B /* GEMglVertex2i.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2450E40978700767D22 /* GEMglVertex2i.h */; }; + 3ACEE0B30E40B9E800FC2E4B /* GEMglVertex2iv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2470E40978700767D22 /* GEMglVertex2iv.h */; }; + 3ACEE0B40E40B9E800FC2E4B /* GEMglVertex2s.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2490E40978700767D22 /* GEMglVertex2s.h */; }; + 3ACEE0B50E40B9E800FC2E4B /* GEMglVertex2sv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD24B0E40978700767D22 /* GEMglVertex2sv.h */; }; + 3ACEE0B60E40B9E800FC2E4B /* GEMglVertex3d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD24D0E40978700767D22 /* GEMglVertex3d.h */; }; + 3ACEE0B70E40B9E800FC2E4B /* GEMglVertex3dv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD24F0E40978700767D22 /* GEMglVertex3dv.h */; }; + 3ACEE0B80E40B9E800FC2E4B /* GEMglVertex3f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2510E40978700767D22 /* GEMglVertex3f.h */; }; + 3ACEE0B90E40B9E800FC2E4B /* GEMglVertex3fv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2530E40978700767D22 /* GEMglVertex3fv.h */; }; + 3ACEE0BA0E40B9E800FC2E4B /* GEMglVertex3i.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2550E40978700767D22 /* GEMglVertex3i.h */; }; + 3ACEE0BB0E40B9E800FC2E4B /* GEMglVertex3iv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2570E40978700767D22 /* GEMglVertex3iv.h */; }; + 3ACEE0BC0E40B9E800FC2E4B /* GEMglVertex3s.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2590E40978700767D22 /* GEMglVertex3s.h */; }; + 3ACEE0BD0E40B9E800FC2E4B /* GEMglVertex3sv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD25B0E40978700767D22 /* GEMglVertex3sv.h */; }; + 3ACEE0BE0E40B9E800FC2E4B /* GEMglVertex4d.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD25D0E40978700767D22 /* GEMglVertex4d.h */; }; + 3ACEE0BF0E40B9E800FC2E4B /* GEMglVertex4dv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD25F0E40978700767D22 /* GEMglVertex4dv.h */; }; + 3ACEE0C00E40B9E800FC2E4B /* GEMglVertex4f.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2610E40978700767D22 /* GEMglVertex4f.h */; }; + 3ACEE0C10E40B9E800FC2E4B /* GEMglVertex4fv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2630E40978700767D22 /* GEMglVertex4fv.h */; }; + 3ACEE0C20E40B9E800FC2E4B /* GEMglVertex4i.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2650E40978700767D22 /* GEMglVertex4i.h */; }; + 3ACEE0C30E40B9E800FC2E4B /* GEMglVertex4iv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2670E40978700767D22 /* GEMglVertex4iv.h */; }; + 3ACEE0C40E40B9E800FC2E4B /* GEMglVertex4s.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD2690E40978700767D22 /* GEMglVertex4s.h */; }; + 3ACEE0C50E40B9E800FC2E4B /* GEMglVertex4sv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD26B0E40978700767D22 /* GEMglVertex4sv.h */; }; + 3ACEE0C60E40B9E800FC2E4B /* GEMglViewport.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD26D0E40978700767D22 /* GEMglViewport.h */; }; + 3ACEE0C70E40B9E800FC2E4B /* GLdefine.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD26F0E40978700767D22 /* GLdefine.h */; }; + 3ACEE0C80E40B9E800FC2E4B /* papi.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4C60E4097BC00767D22 /* papi.h */; }; + 3ACEE0C90E40B9E800FC2E4B /* part_color.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4C80E4097BC00767D22 /* part_color.h */; }; + 3ACEE0CA0E40B9E800FC2E4B /* part_damp.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4CA0E4097BC00767D22 /* part_damp.h */; }; + 3ACEE0CB0E40B9E800FC2E4B /* part_draw.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4CC0E4097BC00767D22 /* part_draw.h */; }; + 3ACEE0CC0E40B9E800FC2E4B /* part_follow.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4CE0E4097BC00767D22 /* part_follow.h */; }; + 3ACEE0CD0E40B9E800FC2E4B /* part_gravity.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4D00E4097BC00767D22 /* part_gravity.h */; }; + 3ACEE0CE0E40B9E800FC2E4B /* part_head.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4D20E4097BC00767D22 /* part_head.h */; }; + 3ACEE0CF0E40B9E800FC2E4B /* part_info.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4D40E4097BC00767D22 /* part_info.h */; }; + 3ACEE0D00E40B9E800FC2E4B /* part_killold.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4D60E4097BC00767D22 /* part_killold.h */; }; + 3ACEE0D10E40B9E800FC2E4B /* part_killslow.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4D80E4097BC00767D22 /* part_killslow.h */; }; + 3ACEE0D20E40B9E800FC2E4B /* part_orbitpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4DA0E4097BC00767D22 /* part_orbitpoint.h */; }; + 3ACEE0D30E40B9E800FC2E4B /* part_render.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4DC0E4097BC00767D22 /* part_render.h */; }; + 3ACEE0D40E40B9E800FC2E4B /* part_sink.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4DE0E4097BC00767D22 /* part_sink.h */; }; + 3ACEE0D50E40B9E800FC2E4B /* part_size.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4E00E4097BC00767D22 /* part_size.h */; }; + 3ACEE0D60E40B9E800FC2E4B /* part_source.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4E20E4097BC00767D22 /* part_source.h */; }; + 3ACEE0D70E40B9E800FC2E4B /* part_targetcolor.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4E40E4097BC00767D22 /* part_targetcolor.h */; }; + 3ACEE0D80E40B9E800FC2E4B /* part_targetsize.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4E60E4097BC00767D22 /* part_targetsize.h */; }; + 3ACEE0D90E40B9E800FC2E4B /* part_velcone.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4E80E4097BC00767D22 /* part_velcone.h */; }; + 3ACEE0DA0E40B9E800FC2E4B /* part_velocity.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4EA0E4097BC00767D22 /* part_velocity.h */; }; + 3ACEE0DB0E40B9E800FC2E4B /* part_velsphere.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4EC0E4097BC00767D22 /* part_velsphere.h */; }; + 3ACEE0DC0E40B9E800FC2E4B /* part_vertex.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4EE0E4097BC00767D22 /* part_vertex.h */; }; + 3ACEE0DD0E40B9E800FC2E4B /* partlib_general.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4F10E4097BC00767D22 /* partlib_general.h */; }; + 3ACEE0DE0E40B9E800FC2E4B /* partlib_vector.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD4F40E4097BC00767D22 /* partlib_vector.h */; }; + 3ACEE0DF0E40B9E800FC2E4B /* film.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5290E4097D300767D22 /* film.h */; }; + 3ACEE0E00E40B9E800FC2E4B /* filmDarwin.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD52F0E4097D300767D22 /* filmDarwin.h */; }; + 3ACEE0E10E40B9E800FC2E4B /* filmQT.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5390E4097D400767D22 /* filmQT.h */; }; + 3ACEE0E20E40B9E800FC2E4B /* FreeFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD53C0E4097D400767D22 /* FreeFrame.h */; }; + 3ACEE0E30E40B9E800FC2E4B /* libfidtrack_fidtrackX.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD53E0E4097D400767D22 /* libfidtrack_fidtrackX.h */; }; + 3ACEE0E40E40B9E800FC2E4B /* libfidtrack_segment.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5400E4097D400767D22 /* libfidtrack_segment.h */; }; + 3ACEE0E50E40B9E800FC2E4B /* libfidtrack_treeidmap.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5420E4097D400767D22 /* libfidtrack_treeidmap.h */; }; + 3ACEE0E60E40B9E800FC2E4B /* pix_2grey.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5450E4097D400767D22 /* pix_2grey.h */; }; + 3ACEE0E70E40B9E800FC2E4B /* pix_a_2grey.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5470E4097D400767D22 /* pix_a_2grey.h */; }; + 3ACEE0E80E40B9E800FC2E4B /* pix_add.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5490E4097D400767D22 /* pix_add.h */; }; + 3ACEE0E90E40B9E800FC2E4B /* pix_aging.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD54B0E4097D400767D22 /* pix_aging.h */; }; + 3ACEE0EA0E40B9E800FC2E4B /* pix_alpha.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD54D0E4097D400767D22 /* pix_alpha.h */; }; + 3ACEE0EB0E40B9E800FC2E4B /* pix_artoolkit.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD54F0E4097D400767D22 /* pix_artoolkit.h */; }; + 3ACEE0EC0E40B9E800FC2E4B /* pix_background.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5510E4097D400767D22 /* pix_background.h */; }; + 3ACEE0ED0E40B9E800FC2E4B /* pix_backlight.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5530E4097D400767D22 /* pix_backlight.h */; }; + 3ACEE0EE0E40B9E800FC2E4B /* pix_biquad.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5550E4097D400767D22 /* pix_biquad.h */; }; + 3ACEE0EF0E40B9E800FC2E4B /* pix_bitmask.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5570E4097D400767D22 /* pix_bitmask.h */; }; + 3ACEE0F00E40B9E800FC2E4B /* pix_blob.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5590E4097D400767D22 /* pix_blob.h */; }; + 3ACEE0F10E40B9E800FC2E4B /* pix_blur.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD55B0E4097D400767D22 /* pix_blur.h */; }; + 3ACEE0F20E40B9E800FC2E4B /* pix_buf.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD55D0E4097D400767D22 /* pix_buf.h */; }; + 3ACEE0F30E40B9E800FC2E4B /* pix_buffer_read.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD55F0E4097D400767D22 /* pix_buffer_read.h */; }; + 3ACEE0F40E40B9E800FC2E4B /* pix_buffer_write.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5610E4097D400767D22 /* pix_buffer_write.h */; }; + 3ACEE0F50E40B9E800FC2E4B /* pix_buffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5630E4097D400767D22 /* pix_buffer.h */; }; + 3ACEE0F60E40B9E800FC2E4B /* pix_chroma_key.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5650E4097D400767D22 /* pix_chroma_key.h */; }; + 3ACEE0F70E40B9E800FC2E4B /* pix_clearblock.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5670E4097D400767D22 /* pix_clearblock.h */; }; + 3ACEE0F80E40B9E800FC2E4B /* pix_color.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5690E4097D400767D22 /* pix_color.h */; }; + 3ACEE0F90E40B9E800FC2E4B /* pix_coloralpha.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD56B0E4097D400767D22 /* pix_coloralpha.h */; }; + 3ACEE0FA0E40B9E800FC2E4B /* pix_colormatrix.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD56D0E4097D400767D22 /* pix_colormatrix.h */; }; + 3ACEE0FB0E40B9E800FC2E4B /* pix_colorreduce.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD56F0E4097D400767D22 /* pix_colorreduce.h */; }; + 3ACEE0FC0E40B9E800FC2E4B /* pix_compare.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5710E4097D400767D22 /* pix_compare.h */; }; + 3ACEE0FD0E40B9E800FC2E4B /* pix_composite.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5730E4097D400767D22 /* pix_composite.h */; }; + 3ACEE0FE0E40B9E800FC2E4B /* pix_contrast.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5750E4097D400767D22 /* pix_contrast.h */; }; + 3ACEE0FF0E40B9E800FC2E4B /* pix_convert.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5770E4097D400767D22 /* pix_convert.h */; }; + 3ACEE1000E40B9E800FC2E4B /* pix_convolve.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5790E4097D400767D22 /* pix_convolve.h */; }; + 3ACEE1010E40B9E800FC2E4B /* pix_coordinate.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD57B0E4097D400767D22 /* pix_coordinate.h */; }; + 3ACEE1020E40B9E800FC2E4B /* pix_crop.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD57D0E4097D400767D22 /* pix_crop.h */; }; + 3ACEE1030E40B9E800FC2E4B /* pix_curve.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD57F0E4097D400767D22 /* pix_curve.h */; }; + 3ACEE1040E40B9E800FC2E4B /* pix_data.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5810E4097D400767D22 /* pix_data.h */; }; + 3ACEE1050E40B9E800FC2E4B /* pix_deinterlace.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5830E4097D400767D22 /* pix_deinterlace.h */; }; + 3ACEE1060E40B9E800FC2E4B /* pix_delay.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5850E4097D400767D22 /* pix_delay.h */; }; + 3ACEE1070E40B9E800FC2E4B /* pix_diff.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5870E4097D400767D22 /* pix_diff.h */; }; + 3ACEE1080E40B9E800FC2E4B /* pix_dot.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5890E4097D400767D22 /* pix_dot.h */; }; + 3ACEE1090E40B9E800FC2E4B /* pix_draw.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD58B0E4097D400767D22 /* pix_draw.h */; }; + 3ACEE10A0E40B9E800FC2E4B /* pix_dump.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD58D0E4097D400767D22 /* pix_dump.h */; }; + 3ACEE10B0E40B9E800FC2E4B /* pix_duotone.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD58F0E4097D400767D22 /* pix_duotone.h */; }; + 3ACEE10C0E40B9E800FC2E4B /* pix_emboss.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5910E4097D400767D22 /* pix_emboss.h */; }; + 3ACEE10D0E40B9E800FC2E4B /* pix_fiducialtrack.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5930E4097D400767D22 /* pix_fiducialtrack.h */; }; + 3ACEE10E0E40B9E800FC2E4B /* pix_film.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5950E4097D400767D22 /* pix_film.h */; }; + 3ACEE10F0E40B9E800FC2E4B /* pix_filmDarwin.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5970E4097D400767D22 /* pix_filmDarwin.h */; }; + 3ACEE1110E40B9E800FC2E4B /* pix_filmNT.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD59B0E4097D400767D22 /* pix_filmNT.h */; }; + 3ACEE1120E40B9E800FC2E4B /* pix_filmQT.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD59D0E4097D400767D22 /* pix_filmQT.h */; }; + 3ACEE1130E40B9E800FC2E4B /* pix_flip.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD59F0E4097D400767D22 /* pix_flip.h */; }; + 3ACEE1140E40B9E800FC2E4B /* pix_freeframe.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5A10E4097D400767D22 /* pix_freeframe.h */; }; + 3ACEE1150E40B9E800FC2E4B /* pix_gain.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5A30E4097D400767D22 /* pix_gain.h */; }; + 3ACEE1160E40B9E800FC2E4B /* pix_grey.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5A50E4097D400767D22 /* pix_grey.h */; }; + 3ACEE1170E40B9E800FC2E4B /* pix_halftone.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5A70E4097D400767D22 /* pix_halftone.h */; }; + 3ACEE1180E40B9E800FC2E4B /* pix_histo.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5A90E4097D400767D22 /* pix_histo.h */; }; + 3ACEE1190E40B9E800FC2E4B /* pix_hit.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5AB0E4097D400767D22 /* pix_hit.h */; }; + 3ACEE11A0E40B9E800FC2E4B /* pix_hsv2rgb.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5AD0E4097D400767D22 /* pix_hsv2rgb.h */; }; + 3ACEE11B0E40B9E800FC2E4B /* pix_image.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5AF0E4097D400767D22 /* pix_image.h */; }; + 3ACEE11C0E40B9E800FC2E4B /* pix_imageInPlace.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5B10E4097D400767D22 /* pix_imageInPlace.h */; }; + 3ACEE11D0E40B9E800FC2E4B /* pix_indycam.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5B30E4097D400767D22 /* pix_indycam.h */; }; + 3ACEE11E0E40B9E800FC2E4B /* pix_info.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5B50E4097D400767D22 /* pix_info.h */; }; + 3ACEE11F0E40B9E800FC2E4B /* pix_invert.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5B70E4097D400767D22 /* pix_invert.h */; }; + 3ACEE1200E40B9E800FC2E4B /* pix_kaleidoscope.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5B90E4097D400767D22 /* pix_kaleidoscope.h */; }; + 3ACEE1210E40B9E800FC2E4B /* pix_levels.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5BB0E4097D400767D22 /* pix_levels.h */; }; + 3ACEE1220E40B9E800FC2E4B /* pix_lumaoffset.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5BD0E4097D400767D22 /* pix_lumaoffset.h */; }; + 3ACEE1230E40B9E800FC2E4B /* pix_mask.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5BF0E4097D400767D22 /* pix_mask.h */; }; + 3ACEE1240E40B9E800FC2E4B /* pix_mean_color.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5C10E4097D400767D22 /* pix_mean_color.h */; }; + 3ACEE1250E40B9E800FC2E4B /* pix_metaimage.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5C30E4097D400767D22 /* pix_metaimage.h */; }; + 3ACEE1260E40B9E800FC2E4B /* pix_mix.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5C50E4097D400767D22 /* pix_mix.h */; }; + 3ACEE1270E40B9E800FC2E4B /* pix_motionblur.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5C70E4097D400767D22 /* pix_motionblur.h */; }; + 3ACEE1280E40B9E800FC2E4B /* pix_movement.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5C90E4097D400767D22 /* pix_movement.h */; }; + 3ACEE1290E40B9E800FC2E4B /* pix_movement2.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5CB0E4097D400767D22 /* pix_movement2.h */; }; + 3ACEE12A0E40B9E800FC2E4B /* pix_movie.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5CD0E4097D400767D22 /* pix_movie.h */; }; + 3ACEE12B0E40B9E800FC2E4B /* pix_movieDarwin.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5CF0E4097D400767D22 /* pix_movieDarwin.h */; }; + 3ACEE12C0E40B9E800FC2E4B /* pix_multiblob.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5D50E4097D400767D22 /* pix_multiblob.h */; }; + 3ACEE12D0E40B9E800FC2E4B /* pix_multiimage.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5D70E4097D400767D22 /* pix_multiimage.h */; }; + 3ACEE12E0E40B9E800FC2E4B /* pix_multiply.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5D90E4097D400767D22 /* pix_multiply.h */; }; + 3ACEE12F0E40B9E800FC2E4B /* pix_multitexture.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5DB0E4097D400767D22 /* pix_multitexture.h */; }; + 3ACEE1300E40B9E800FC2E4B /* pix_normalize.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5DD0E4097D400767D22 /* pix_normalize.h */; }; + 3ACEE1310E40B9E800FC2E4B /* pix_offset.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5DF0E4097D400767D22 /* pix_offset.h */; }; + 3ACEE1320E40B9E800FC2E4B /* pix_pix2sig.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5E10E4097D400767D22 /* pix_pix2sig.h */; }; + 3ACEE1330E40B9E800FC2E4B /* pix_posterize.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5E30E4097D400767D22 /* pix_posterize.h */; }; + 3ACEE1340E40B9E800FC2E4B /* pix_puzzle.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5E50E4097D400767D22 /* pix_puzzle.h */; }; + 3ACEE1350E40B9E800FC2E4B /* pix_rds.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5E70E4097D400767D22 /* pix_rds.h */; }; + 3ACEE1360E40B9E800FC2E4B /* pix_record.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5E90E4097D400767D22 /* pix_record.h */; }; + 3ACEE1370E40B9E800FC2E4B /* pix_recordQT.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5EB0E4097D400767D22 /* pix_recordQT.h */; }; + 3ACEE1380E40B9E800FC2E4B /* pix_rectangle.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5ED0E4097D400767D22 /* pix_rectangle.h */; }; + 3ACEE1390E40B9E800FC2E4B /* pix_refraction.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5EF0E4097D400767D22 /* pix_refraction.h */; }; + 3ACEE13A0E40B9E800FC2E4B /* pix_resize.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5F10E4097D400767D22 /* pix_resize.h */; }; + 3ACEE13B0E40B9E800FC2E4B /* pix_rgb2hsv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5F30E4097D400767D22 /* pix_rgb2hsv.h */; }; + 3ACEE13C0E40B9E800FC2E4B /* pix_rgba.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5F50E4097D400767D22 /* pix_rgba.h */; }; + 3ACEE13D0E40B9E800FC2E4B /* pix_roll.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5F70E4097D400767D22 /* pix_roll.h */; }; + 3ACEE13E0E40B9E800FC2E4B /* pix_rtx.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5F90E4097D400767D22 /* pix_rtx.h */; }; + 3ACEE13F0E40B9E800FC2E4B /* pix_scanline.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5FB0E4097D400767D22 /* pix_scanline.h */; }; + 3ACEE1400E40B9E800FC2E4B /* pix_set.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5FD0E4097D400767D22 /* pix_set.h */; }; + 3ACEE1410E40B9E800FC2E4B /* pix_share_read.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD5FF0E4097D500767D22 /* pix_share_read.h */; }; + 3ACEE1420E40B9E800FC2E4B /* pix_share_write.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD6010E4097D500767D22 /* pix_share_write.h */; }; + 3ACEE1430E40B9E800FC2E4B /* pix_share.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD6020E4097D500767D22 /* pix_share.h */; }; + 3ACEE1440E40B9E800FC2E4B /* pix_sig2pix.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD6040E4097D500767D22 /* pix_sig2pix.h */; }; + 3ACEE1450E40B9E800FC2E4B /* pix_snap.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD6060E4097D500767D22 /* pix_snap.h */; }; + 3ACEE1460E40B9E800FC2E4B /* pix_snap2tex.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD6080E4097D500767D22 /* pix_snap2tex.h */; }; + 3ACEE1470E40B9E800FC2E4B /* pix_subtract.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD60A0E4097D500767D22 /* pix_subtract.h */; }; + 3ACEE1480E40B9E800FC2E4B /* pix_takealpha.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD60C0E4097D500767D22 /* pix_takealpha.h */; }; + 3ACEE1490E40B9E800FC2E4B /* pix_test.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD60E0E4097D500767D22 /* pix_test.h */; }; + 3ACEE14A0E40B9E800FC2E4B /* pix_texture.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD6100E4097D500767D22 /* pix_texture.h */; }; + 3ACEE14B0E40B9E800FC2E4B /* pix_threshold_bernsen.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD6120E4097D500767D22 /* pix_threshold_bernsen.h */; }; + 3ACEE14C0E40B9E800FC2E4B /* pix_threshold.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD6140E4097D500767D22 /* pix_threshold.h */; }; + 3ACEE14D0E40B9E800FC2E4B /* pix_tIIR.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD6160E4097D500767D22 /* pix_tIIR.h */; }; + 3ACEE14F0E40B9E800FC2E4B /* pix_videoDarwin.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD61A0E4097D500767D22 /* pix_videoDarwin.h */; }; + 3ACEE1500E40B9E800FC2E4B /* pix_vpaint.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD6240E4097D500767D22 /* pix_vpaint.h */; }; + 3ACEE1510E40B9E800FC2E4B /* pix_write.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD6260E4097D500767D22 /* pix_write.h */; }; + 3ACEE1520E40B9E800FC2E4B /* pix_yuv.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD6280E4097D500767D22 /* pix_yuv.h */; }; + 3ACEE1530E40B9E800FC2E4B /* pix_zoom.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD62A0E4097D500767D22 /* pix_zoom.h */; }; + 3ACEE1540E40B9E800FC2E4B /* record.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD62C0E4097D500767D22 /* record.h */; }; + 3ACEE1550E40B9E800FC2E4B /* recordQT.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD62E0E4097D500767D22 /* recordQT.h */; }; + 3ACEE1560E40B9E800FC2E4B /* glVBO_ext.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD74D0E4097E900767D22 /* glVBO_ext.h */; }; + 3ACEE1570E40B9E800FC2E4B /* vertex_add.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD7500E4097E900767D22 /* vertex_add.h */; }; + 3ACEE1580E40B9E800FC2E4B /* vertex_combine.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD7520E4097E900767D22 /* vertex_combine.h */; }; + 3ACEE1590E40B9E800FC2E4B /* vertex_draw.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD7540E4097E900767D22 /* vertex_draw.h */; }; + 3ACEE15A0E40B9E800FC2E4B /* vertex_grid.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD7560E4097E900767D22 /* vertex_grid.h */; }; + 3ACEE15B0E40B9E800FC2E4B /* vertex_info.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD7580E4097E900767D22 /* vertex_info.h */; }; + 3ACEE15C0E40B9E800FC2E4B /* vertex_model.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD75A0E4097E900767D22 /* vertex_model.h */; }; + 3ACEE15D0E40B9E800FC2E4B /* vertex_mul.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD75C0E4097E900767D22 /* vertex_mul.h */; }; + 3ACEE15E0E40B9E800FC2E4B /* vertex_offset.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD75E0E4097E900767D22 /* vertex_offset.h */; }; + 3ACEE15F0E40B9E800FC2E4B /* vertex_quad.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD7600E4097E900767D22 /* vertex_quad.h */; }; + 3ACEE1600E40B9E800FC2E4B /* vertex_scale.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD7620E4097E900767D22 /* vertex_scale.h */; }; + 3ACEE1610E40B9E800FC2E4B /* vertex_set.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD7640E4097EA00767D22 /* vertex_set.h */; }; + 3ACEE1620E40B9E800FC2E4B /* vertex_tabread.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A2DD7660E4097EA00767D22 /* vertex_tabread.h */; }; + 3ACEE1640E40B9E800FC2E4B /* CPPExtern.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E0E070DBC8F001F121C /* CPPExtern.cpp */; }; + 3ACEE1650E40B9E800FC2E4B /* GemBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E0F070DBC8F001F121C /* GemBase.cpp */; }; + 3ACEE1660E40B9E800FC2E4B /* GemCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E10070DBC8F001F121C /* GemCache.cpp */; }; + 3ACEE1670E40B9E800FC2E4B /* GemEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E11070DBC8F001F121C /* GemEvent.cpp */; }; + 3ACEE1680E40B9E800FC2E4B /* GemFuncUtil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E12070DBC8F001F121C /* GemFuncUtil.cpp */; }; + 3ACEE1690E40B9E800FC2E4B /* GemGluObj.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E13070DBC8F001F121C /* GemGluObj.cpp */; }; + 3ACEE16A0E40B9E800FC2E4B /* GemGLUtil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E14070DBC8F001F121C /* GemGLUtil.cpp */; }; + 3ACEE16B0E40B9E800FC2E4B /* GemLoadObj.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E15070DBC8F001F121C /* GemLoadObj.cpp */; }; + 3ACEE16C0E40B9E800FC2E4B /* GemModelData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F521B41D03898BE2019165F0 /* GemModelData.cpp */; }; + 3ACEE16D0E40B9E800FC2E4B /* GemPixDualObj.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E16070DBC8F001F121C /* GemPixDualObj.cpp */; }; + 3ACEE16E0E40B9E800FC2E4B /* GemPixImageLoad.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E17070DBC8F001F121C /* GemPixImageLoad.cpp */; }; + 3ACEE16F0E40B9E800FC2E4B /* GemPixImageSave.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E18070DBC8F001F121C /* GemPixImageSave.cpp */; }; + 3ACEE1700E40B9E800FC2E4B /* GemPixObj.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E19070DBC8F001F121C /* GemPixObj.cpp */; }; + 3ACEE1710E40B9E800FC2E4B /* GemPixUtil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E1A070DBC8F001F121C /* GemPixUtil.cpp */; }; + 3ACEE1720E40B9E800FC2E4B /* GemSetup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E1B070DBC8F001F121C /* GemSetup.cpp */; }; + 3ACEE1730E40B9E800FC2E4B /* GemShape.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E1C070DBC8F001F121C /* GemShape.cpp */; }; + 3ACEE1740E40B9E800FC2E4B /* GemState.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E1D070DBC8F001F121C /* GemState.cpp */; }; + 3ACEE1750E40B9E800FC2E4B /* GemWinCreateMac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E1F070DBC8F001F121C /* GemWinCreateMac.cpp */; }; + 3ACEE1760E40B9E800FC2E4B /* Matrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E20070DBC8F001F121C /* Matrix.cpp */; }; + 3ACEE1770E40B9E800FC2E4B /* TextBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E21070DBC8F001F121C /* TextBase.cpp */; }; + 3ACEE1780E40B9E800FC2E4B /* gemlist_info.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD7A25EA07551CFE0034FA5B /* gemlist_info.cpp */; }; + 3ACEE1790E40B9E800FC2E4B /* GemLoaders.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D85D0E4095E700AF570A /* GemLoaders.cpp */; }; + 3ACEE17A0E40B9E800FC2E4B /* GemMan.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D85F0E4095E700AF570A /* GemMan.cpp */; }; + 3ACEE17B0E40B9E800FC2E4B /* GemPathBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8610E4095E700AF570A /* GemPathBase.cpp */; }; + 3ACEE17C0E40B9E800FC2E4B /* GemPBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8620E4095E700AF570A /* GemPBuffer.cpp */; }; + 3ACEE17D0E40B9E800FC2E4B /* GemPixConvertAltivec.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8650E4095E700AF570A /* GemPixConvertAltivec.cpp */; }; + 3ACEE17E0E40B9E800FC2E4B /* GemPixConvertSSE2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8660E4095E700AF570A /* GemPixConvertSSE2.cpp */; }; + 3ACEE17F0E40B9E800FC2E4B /* GemSIMD.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8670E4095E700AF570A /* GemSIMD.cpp */; }; + 3ACEE1800E40B9E800FC2E4B /* GemVector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8680E4095E700AF570A /* GemVector.cpp */; }; + 3ACEE1810E40B9E800FC2E4B /* GemVertex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D86A0E4095E700AF570A /* GemVertex.cpp */; }; + 3ACEE1820E40B9E800FC2E4B /* glew.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D87B0E40963500AF570A /* glew.cpp */; }; + 3ACEE1830E40B9E800FC2E4B /* gemframebuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D87F0E40967400AF570A /* gemframebuffer.cpp */; }; + 3ACEE1840E40B9E800FC2E4B /* gemhead.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8810E40967400AF570A /* gemhead.cpp */; }; + 3ACEE1850E40B9E800FC2E4B /* gemkeyboard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8820E40967400AF570A /* gemkeyboard.cpp */; }; + 3ACEE1860E40B9E800FC2E4B /* gemkeyname.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8830E40967400AF570A /* gemkeyname.cpp */; }; + 3ACEE1870E40B9E800FC2E4B /* gemlist_matrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8850E40967400AF570A /* gemlist_matrix.cpp */; }; + 3ACEE1880E40B9E800FC2E4B /* gemlist.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8870E40967400AF570A /* gemlist.cpp */; }; + 3ACEE1890E40B9E800FC2E4B /* gemmouse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8890E40967400AF570A /* gemmouse.cpp */; }; + 3ACEE18A0E40B9E800FC2E4B /* gemreceive.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D88B0E40967400AF570A /* gemreceive.cpp */; }; + 3ACEE18B0E40B9E800FC2E4B /* gemwin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D88D0E40967400AF570A /* gemwin.cpp */; }; + 3ACEE18C0E40B9E800FC2E4B /* render_trigger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8900E40967400AF570A /* render_trigger.cpp */; }; + 3ACEE18D0E40B9E800FC2E4B /* circle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8A30E4096A200AF570A /* circle.cpp */; }; + 3ACEE18E0E40B9E800FC2E4B /* colorSquare.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8A50E4096A200AF570A /* colorSquare.cpp */; }; + 3ACEE18F0E40B9E800FC2E4B /* cone.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8A70E4096A200AF570A /* cone.cpp */; }; + 3ACEE1900E40B9E800FC2E4B /* cube.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8A90E4096A200AF570A /* cube.cpp */; }; + 3ACEE1910E40B9E800FC2E4B /* cuboid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8AB0E4096A200AF570A /* cuboid.cpp */; }; + 3ACEE1920E40B9E800FC2E4B /* curve.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8AD0E4096A200AF570A /* curve.cpp */; }; + 3ACEE1930E40B9E800FC2E4B /* curve3d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8AF0E4096A200AF570A /* curve3d.cpp */; }; + 3ACEE1940E40B9E800FC2E4B /* cylinder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8B10E4096A200AF570A /* cylinder.cpp */; }; + 3ACEE1950E40B9E800FC2E4B /* disk.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8B30E4096A200AF570A /* disk.cpp */; }; + 3ACEE1960E40B9E800FC2E4B /* GemSplash.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8B50E4096A200AF570A /* GemSplash.cpp */; }; + 3ACEE1970E40B9E800FC2E4B /* imageVert.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8B70E4096A200AF570A /* imageVert.cpp */; }; + 3ACEE1980E40B9E800FC2E4B /* mesh_square.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8BA0E4096A300AF570A /* mesh_square.cpp */; }; + 3ACEE1990E40B9E800FC2E4B /* model_loader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8BC0E4096A300AF570A /* model_loader.cpp */; }; + 3ACEE19A0E40B9E800FC2E4B /* model.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8BE0E4096A300AF570A /* model.cpp */; }; + 3ACEE19B0E40B9E800FC2E4B /* multimodel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8C00E4096A300AF570A /* multimodel.cpp */; }; + 3ACEE19C0E40B9E800FC2E4B /* newWave.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8C20E4096A300AF570A /* newWave.cpp */; }; + 3ACEE19D0E40B9E800FC2E4B /* polygon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8C40E4096A300AF570A /* polygon.cpp */; }; + 3ACEE19E0E40B9E800FC2E4B /* pqtorusknots.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8C60E4096A300AF570A /* pqtorusknots.cpp */; }; + 3ACEE19F0E40B9E800FC2E4B /* primTri.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8C80E4096A300AF570A /* primTri.cpp */; }; + 3ACEE1A00E40B9E800FC2E4B /* rectangle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8CA0E4096A300AF570A /* rectangle.cpp */; }; + 3ACEE1A10E40B9E800FC2E4B /* ripple.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8CC0E4096A300AF570A /* ripple.cpp */; }; + 3ACEE1A20E40B9E800FC2E4B /* rubber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8CE0E4096A300AF570A /* rubber.cpp */; }; + 3ACEE1A30E40B9E800FC2E4B /* scopeXYZ.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8D00E4096A300AF570A /* scopeXYZ.cpp */; }; + 3ACEE1A40E40B9E800FC2E4B /* slideSquares.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8D20E4096A300AF570A /* slideSquares.cpp */; }; + 3ACEE1A50E40B9E800FC2E4B /* sphere.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8D40E4096A300AF570A /* sphere.cpp */; }; + 3ACEE1A60E40B9E800FC2E4B /* sphere3d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8D60E4096A300AF570A /* sphere3d.cpp */; }; + 3ACEE1A70E40B9E800FC2E4B /* square.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8D80E4096A300AF570A /* square.cpp */; }; + 3ACEE1A80E40B9E800FC2E4B /* teapot.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8DA0E4096A300AF570A /* teapot.cpp */; }; + 3ACEE1A90E40B9E800FC2E4B /* text2d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8DD0E4096A300AF570A /* text2d.cpp */; }; + 3ACEE1AA0E40B9E800FC2E4B /* text3d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8DF0E4096A300AF570A /* text3d.cpp */; }; + 3ACEE1AB0E40B9E800FC2E4B /* textextruded.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8E10E4096A300AF570A /* textextruded.cpp */; }; + 3ACEE1AC0E40B9E800FC2E4B /* textoutline.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8E30E4096A300AF570A /* textoutline.cpp */; }; + 3ACEE1AD0E40B9E800FC2E4B /* torus.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8E50E4096A300AF570A /* torus.cpp */; }; + 3ACEE1AE0E40B9E800FC2E4B /* trapezoid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8E70E4096A300AF570A /* trapezoid.cpp */; }; + 3ACEE1AF0E40B9E800FC2E4B /* triangle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8E90E4096A300AF570A /* triangle.cpp */; }; + 3ACEE1B00E40B9E800FC2E4B /* tube.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0D8EB0E4096A300AF570A /* tube.cpp */; }; + 3ACEE1B10E40B9E800FC2E4B /* accumrotate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF7C0E40974100767D22 /* accumrotate.cpp */; }; + 3ACEE1B20E40B9E800FC2E4B /* alpha.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF7E0E40974100767D22 /* alpha.cpp */; }; + 3ACEE1B30E40B9E800FC2E4B /* ambient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF800E40974100767D22 /* ambient.cpp */; }; + 3ACEE1B40E40B9E800FC2E4B /* ambientRGB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF820E40974100767D22 /* ambientRGB.cpp */; }; + 3ACEE1B50E40B9E800FC2E4B /* camera.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF840E40974100767D22 /* camera.cpp */; }; + 3ACEE1B60E40B9E800FC2E4B /* color.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF860E40974100767D22 /* color.cpp */; }; + 3ACEE1B70E40B9E800FC2E4B /* colorRGB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF880E40974100767D22 /* colorRGB.cpp */; }; + 3ACEE1B80E40B9E800FC2E4B /* depth.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF8A0E40974100767D22 /* depth.cpp */; }; + 3ACEE1B90E40B9E800FC2E4B /* diffuse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF8C0E40974100767D22 /* diffuse.cpp */; }; + 3ACEE1BA0E40B9E800FC2E4B /* diffuseRGB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF8E0E40974100767D22 /* diffuseRGB.cpp */; }; + 3ACEE1BB0E40B9E800FC2E4B /* emission.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF900E40974100767D22 /* emission.cpp */; }; + 3ACEE1BC0E40B9E800FC2E4B /* emissionRGB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF920E40974100767D22 /* emissionRGB.cpp */; }; + 3ACEE1BD0E40B9E800FC2E4B /* fragment_program.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF940E40974100767D22 /* fragment_program.cpp */; }; + 3ACEE1BE0E40B9E800FC2E4B /* glsl_fragment.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF960E40974100767D22 /* glsl_fragment.cpp */; }; + 3ACEE1BF0E40B9E800FC2E4B /* glsl_program.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF980E40974100767D22 /* glsl_program.cpp */; }; + 3ACEE1C00E40B9E800FC2E4B /* glsl_vertex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF9A0E40974100767D22 /* glsl_vertex.cpp */; }; + 3ACEE1C10E40B9E800FC2E4B /* linear_path.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF9C0E40974100767D22 /* linear_path.cpp */; }; + 3ACEE1C20E40B9E800FC2E4B /* ortho.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCF9F0E40974100767D22 /* ortho.cpp */; }; + 3ACEE1C30E40B9E800FC2E4B /* polygon_smooth.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFA10E40974100767D22 /* polygon_smooth.cpp */; }; + 3ACEE1C40E40B9E800FC2E4B /* rotate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFA30E40974100767D22 /* rotate.cpp */; }; + 3ACEE1C50E40B9E800FC2E4B /* rotateXYZ.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFA50E40974100767D22 /* rotateXYZ.cpp */; }; + 3ACEE1C60E40B9E800FC2E4B /* scale.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFA70E40974100767D22 /* scale.cpp */; }; + 3ACEE1C70E40B9E800FC2E4B /* scaleXYZ.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFA90E40974100767D22 /* scaleXYZ.cpp */; }; + 3ACEE1C80E40B9E800FC2E4B /* separator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFAB0E40974100767D22 /* separator.cpp */; }; + 3ACEE1C90E40B9E800FC2E4B /* shearXY.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFAD0E40974100767D22 /* shearXY.cpp */; }; + 3ACEE1CA0E40B9E800FC2E4B /* shearXZ.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFAF0E40974100767D22 /* shearXZ.cpp */; }; + 3ACEE1CB0E40B9E800FC2E4B /* shearYX.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFB10E40974100767D22 /* shearYX.cpp */; }; + 3ACEE1CC0E40B9E800FC2E4B /* shearYZ.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFB30E40974100767D22 /* shearYZ.cpp */; }; + 3ACEE1CD0E40B9E800FC2E4B /* shearZX.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFB50E40974100767D22 /* shearZX.cpp */; }; + 3ACEE1CE0E40B9E800FC2E4B /* shearZY.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFB70E40974100767D22 /* shearZY.cpp */; }; + 3ACEE1CF0E40B9E800FC2E4B /* shininess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFB90E40974100767D22 /* shininess.cpp */; }; + 3ACEE1D00E40B9E800FC2E4B /* specular.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFBB0E40974100767D22 /* specular.cpp */; }; + 3ACEE1D10E40B9E800FC2E4B /* specularRGB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFBD0E40974100767D22 /* specularRGB.cpp */; }; + 3ACEE1D20E40B9E800FC2E4B /* spline_path.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFBF0E40974100767D22 /* spline_path.cpp */; }; + 3ACEE1D30E40B9E800FC2E4B /* translate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFC10E40974100767D22 /* translate.cpp */; }; + 3ACEE1D40E40B9E800FC2E4B /* translateXYZ.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFC30E40974100767D22 /* translateXYZ.cpp */; }; + 3ACEE1D50E40B9E800FC2E4B /* vertex_program.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DCFC50E40974100767D22 /* vertex_program.cpp */; }; + 3ACEE1D60E40B9E800FC2E4B /* light.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0120E40975A00767D22 /* light.cpp */; }; + 3ACEE1D70E40B9E800FC2E4B /* spot_light.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0150E40975A00767D22 /* spot_light.cpp */; }; + 3ACEE1D80E40B9E800FC2E4B /* world_light.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0170E40975A00767D22 /* world_light.cpp */; }; + 3ACEE1D90E40B9E800FC2E4B /* GEMglAccum.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0200E40978500767D22 /* GEMglAccum.cpp */; }; + 3ACEE1DA0E40B9E800FC2E4B /* GEMglActiveTextureARB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0220E40978500767D22 /* GEMglActiveTextureARB.cpp */; }; + 3ACEE1DB0E40B9E800FC2E4B /* GEMglAlphaFunc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0240E40978500767D22 /* GEMglAlphaFunc.cpp */; }; + 3ACEE1DC0E40B9E800FC2E4B /* GEMglAreTexturesResident.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0260E40978500767D22 /* GEMglAreTexturesResident.cpp */; }; + 3ACEE1DD0E40B9E800FC2E4B /* GEMglArrayElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0280E40978500767D22 /* GEMglArrayElement.cpp */; }; + 3ACEE1DE0E40B9E800FC2E4B /* GEMglBegin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD02A0E40978500767D22 /* GEMglBegin.cpp */; }; + 3ACEE1DF0E40B9E800FC2E4B /* GEMglBindProgramARB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD02C0E40978500767D22 /* GEMglBindProgramARB.cpp */; }; + 3ACEE1E00E40B9E800FC2E4B /* GEMglBindTexture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD02E0E40978500767D22 /* GEMglBindTexture.cpp */; }; + 3ACEE1E10E40B9E800FC2E4B /* GEMglBitmap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0300E40978500767D22 /* GEMglBitmap.cpp */; }; + 3ACEE1E20E40B9E800FC2E4B /* GEMglBlendEquation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0320E40978500767D22 /* GEMglBlendEquation.cpp */; }; + 3ACEE1E30E40B9E800FC2E4B /* GEMglBlendFunc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0340E40978500767D22 /* GEMglBlendFunc.cpp */; }; + 3ACEE1E40E40B9E800FC2E4B /* GEMglCallList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0360E40978500767D22 /* GEMglCallList.cpp */; }; + 3ACEE1E50E40B9E800FC2E4B /* GEMglClear.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0380E40978500767D22 /* GEMglClear.cpp */; }; + 3ACEE1E60E40B9E800FC2E4B /* GEMglClearAccum.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD03A0E40978500767D22 /* GEMglClearAccum.cpp */; }; + 3ACEE1E70E40B9E800FC2E4B /* GEMglClearColor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD03C0E40978500767D22 /* GEMglClearColor.cpp */; }; + 3ACEE1E80E40B9E800FC2E4B /* GEMglClearDepth.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD03E0E40978500767D22 /* GEMglClearDepth.cpp */; }; + 3ACEE1E90E40B9E800FC2E4B /* GEMglClearIndex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0400E40978500767D22 /* GEMglClearIndex.cpp */; }; + 3ACEE1EA0E40B9E800FC2E4B /* GEMglClearStencil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0420E40978500767D22 /* GEMglClearStencil.cpp */; }; + 3ACEE1EB0E40B9E800FC2E4B /* GEMglClipPlane.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0440E40978500767D22 /* GEMglClipPlane.cpp */; }; + 3ACEE1EC0E40B9E800FC2E4B /* GEMglColor3b.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0460E40978500767D22 /* GEMglColor3b.cpp */; }; + 3ACEE1ED0E40B9E800FC2E4B /* GEMglColor3bv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0480E40978500767D22 /* GEMglColor3bv.cpp */; }; + 3ACEE1EE0E40B9E800FC2E4B /* GEMglColor3d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD04A0E40978500767D22 /* GEMglColor3d.cpp */; }; + 3ACEE1EF0E40B9E800FC2E4B /* GEMglColor3dv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD04C0E40978500767D22 /* GEMglColor3dv.cpp */; }; + 3ACEE1F00E40B9E800FC2E4B /* GEMglColor3f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD04E0E40978500767D22 /* GEMglColor3f.cpp */; }; + 3ACEE1F10E40B9E800FC2E4B /* GEMglColor3fv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0500E40978500767D22 /* GEMglColor3fv.cpp */; }; + 3ACEE1F20E40B9E800FC2E4B /* GEMglColor3i.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0520E40978500767D22 /* GEMglColor3i.cpp */; }; + 3ACEE1F30E40B9E800FC2E4B /* GEMglColor3iv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0540E40978500767D22 /* GEMglColor3iv.cpp */; }; + 3ACEE1F40E40B9E800FC2E4B /* GEMglColor3s.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0560E40978500767D22 /* GEMglColor3s.cpp */; }; + 3ACEE1F50E40B9E800FC2E4B /* GEMglColor3sv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0580E40978500767D22 /* GEMglColor3sv.cpp */; }; + 3ACEE1F60E40B9E800FC2E4B /* GEMglColor3ub.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD05A0E40978500767D22 /* GEMglColor3ub.cpp */; }; + 3ACEE1F70E40B9E800FC2E4B /* GEMglColor3ubv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD05C0E40978500767D22 /* GEMglColor3ubv.cpp */; }; + 3ACEE1F80E40B9E800FC2E4B /* GEMglColor3ui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD05E0E40978500767D22 /* GEMglColor3ui.cpp */; }; + 3ACEE1F90E40B9E800FC2E4B /* GEMglColor3uiv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0600E40978500767D22 /* GEMglColor3uiv.cpp */; }; + 3ACEE1FA0E40B9E800FC2E4B /* GEMglColor3us.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0620E40978500767D22 /* GEMglColor3us.cpp */; }; + 3ACEE1FB0E40B9E800FC2E4B /* GEMglColor3usv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0640E40978500767D22 /* GEMglColor3usv.cpp */; }; + 3ACEE1FC0E40B9E800FC2E4B /* GEMglColor4b.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0660E40978500767D22 /* GEMglColor4b.cpp */; }; + 3ACEE1FD0E40B9E800FC2E4B /* GEMglColor4bv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0680E40978500767D22 /* GEMglColor4bv.cpp */; }; + 3ACEE1FE0E40B9E800FC2E4B /* GEMglColor4d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD06A0E40978500767D22 /* GEMglColor4d.cpp */; }; + 3ACEE1FF0E40B9E800FC2E4B /* GEMglColor4dv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD06C0E40978500767D22 /* GEMglColor4dv.cpp */; }; + 3ACEE2000E40B9E800FC2E4B /* GEMglColor4f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD06E0E40978500767D22 /* GEMglColor4f.cpp */; }; + 3ACEE2010E40B9E800FC2E4B /* GEMglColor4fv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0700E40978500767D22 /* GEMglColor4fv.cpp */; }; + 3ACEE2020E40B9E800FC2E4B /* GEMglColor4i.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0720E40978500767D22 /* GEMglColor4i.cpp */; }; + 3ACEE2030E40B9E800FC2E4B /* GEMglColor4iv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0740E40978500767D22 /* GEMglColor4iv.cpp */; }; + 3ACEE2040E40B9E800FC2E4B /* GEMglColor4s.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0760E40978500767D22 /* GEMglColor4s.cpp */; }; + 3ACEE2050E40B9E800FC2E4B /* GEMglColor4sv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0780E40978500767D22 /* GEMglColor4sv.cpp */; }; + 3ACEE2060E40B9E800FC2E4B /* GEMglColor4ub.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD07A0E40978500767D22 /* GEMglColor4ub.cpp */; }; + 3ACEE2070E40B9E800FC2E4B /* GEMglColor4ubv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD07C0E40978500767D22 /* GEMglColor4ubv.cpp */; }; + 3ACEE2080E40B9E800FC2E4B /* GEMglColor4ui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD07E0E40978500767D22 /* GEMglColor4ui.cpp */; }; + 3ACEE2090E40B9E800FC2E4B /* GEMglColor4uiv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0800E40978500767D22 /* GEMglColor4uiv.cpp */; }; + 3ACEE20A0E40B9E800FC2E4B /* GEMglColor4us.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0820E40978500767D22 /* GEMglColor4us.cpp */; }; + 3ACEE20B0E40B9E800FC2E4B /* GEMglColor4usv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0840E40978500767D22 /* GEMglColor4usv.cpp */; }; + 3ACEE20C0E40B9E800FC2E4B /* GEMglColorMask.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0860E40978500767D22 /* GEMglColorMask.cpp */; }; + 3ACEE20D0E40B9E800FC2E4B /* GEMglColorMaterial.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0880E40978500767D22 /* GEMglColorMaterial.cpp */; }; + 3ACEE20E0E40B9E800FC2E4B /* GEMglCopyPixels.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD08A0E40978500767D22 /* GEMglCopyPixels.cpp */; }; + 3ACEE20F0E40B9E800FC2E4B /* GEMglCopyTexImage1D.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD08C0E40978500767D22 /* GEMglCopyTexImage1D.cpp */; }; + 3ACEE2100E40B9E800FC2E4B /* GEMglCopyTexImage2D.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD08E0E40978500767D22 /* GEMglCopyTexImage2D.cpp */; }; + 3ACEE2110E40B9E800FC2E4B /* GEMglCopyTexSubImage1D.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0900E40978500767D22 /* GEMglCopyTexSubImage1D.cpp */; }; + 3ACEE2120E40B9E800FC2E4B /* GEMglCopyTexSubImage2D.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0920E40978500767D22 /* GEMglCopyTexSubImage2D.cpp */; }; + 3ACEE2130E40B9E800FC2E4B /* GEMglCullFace.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0940E40978500767D22 /* GEMglCullFace.cpp */; }; + 3ACEE2140E40B9E800FC2E4B /* GEMglDeleteTextures.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0960E40978500767D22 /* GEMglDeleteTextures.cpp */; }; + 3ACEE2150E40B9E800FC2E4B /* GEMglDepthFunc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0980E40978500767D22 /* GEMglDepthFunc.cpp */; }; + 3ACEE2160E40B9E800FC2E4B /* GEMglDepthMask.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD09A0E40978500767D22 /* GEMglDepthMask.cpp */; }; + 3ACEE2170E40B9E800FC2E4B /* GEMglDepthRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD09C0E40978500767D22 /* GEMglDepthRange.cpp */; }; + 3ACEE2180E40B9E800FC2E4B /* GEMglDisable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD09E0E40978500767D22 /* GEMglDisable.cpp */; }; + 3ACEE2190E40B9E800FC2E4B /* GEMglDisableClientState.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0A00E40978500767D22 /* GEMglDisableClientState.cpp */; }; + 3ACEE21A0E40B9E800FC2E4B /* GEMglDrawArrays.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0A20E40978500767D22 /* GEMglDrawArrays.cpp */; }; + 3ACEE21B0E40B9E800FC2E4B /* GEMglDrawBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0A40E40978500767D22 /* GEMglDrawBuffer.cpp */; }; + 3ACEE21C0E40B9E800FC2E4B /* GEMglDrawElements.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0A60E40978500767D22 /* GEMglDrawElements.cpp */; }; + 3ACEE21D0E40B9E800FC2E4B /* GEMglEdgeFlag.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0A80E40978500767D22 /* GEMglEdgeFlag.cpp */; }; + 3ACEE21E0E40B9E800FC2E4B /* GEMglEnable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0AA0E40978500767D22 /* GEMglEnable.cpp */; }; + 3ACEE21F0E40B9E800FC2E4B /* GEMglEnableClientState.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0AC0E40978500767D22 /* GEMglEnableClientState.cpp */; }; + 3ACEE2200E40B9E800FC2E4B /* GEMglEnd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0AE0E40978500767D22 /* GEMglEnd.cpp */; }; + 3ACEE2210E40B9E800FC2E4B /* GEMglEndList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0B00E40978500767D22 /* GEMglEndList.cpp */; }; + 3ACEE2220E40B9E800FC2E4B /* GEMglEvalCoord1d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0B20E40978500767D22 /* GEMglEvalCoord1d.cpp */; }; + 3ACEE2230E40B9E800FC2E4B /* GEMglEvalCoord1dv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0B40E40978500767D22 /* GEMglEvalCoord1dv.cpp */; }; + 3ACEE2240E40B9E800FC2E4B /* GEMglEvalCoord1f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0B60E40978500767D22 /* GEMglEvalCoord1f.cpp */; }; + 3ACEE2250E40B9E800FC2E4B /* GEMglEvalCoord1fv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0B80E40978500767D22 /* GEMglEvalCoord1fv.cpp */; }; + 3ACEE2260E40B9E800FC2E4B /* GEMglEvalCoord2d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0BA0E40978500767D22 /* GEMglEvalCoord2d.cpp */; }; + 3ACEE2270E40B9E800FC2E4B /* GEMglEvalCoord2dv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0BC0E40978500767D22 /* GEMglEvalCoord2dv.cpp */; }; + 3ACEE2280E40B9E800FC2E4B /* GEMglEvalCoord2f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0BE0E40978500767D22 /* GEMglEvalCoord2f.cpp */; }; + 3ACEE2290E40B9E800FC2E4B /* GEMglEvalCoord2fv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0C00E40978500767D22 /* GEMglEvalCoord2fv.cpp */; }; + 3ACEE22A0E40B9E800FC2E4B /* GEMglEvalMesh1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0C20E40978500767D22 /* GEMglEvalMesh1.cpp */; }; + 3ACEE22B0E40B9E800FC2E4B /* GEMglEvalMesh2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0C40E40978500767D22 /* GEMglEvalMesh2.cpp */; }; + 3ACEE22C0E40B9E800FC2E4B /* GEMglEvalPoint1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0C60E40978500767D22 /* GEMglEvalPoint1.cpp */; }; + 3ACEE22D0E40B9E800FC2E4B /* GEMglEvalPoint2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0C80E40978500767D22 /* GEMglEvalPoint2.cpp */; }; + 3ACEE22E0E40B9E800FC2E4B /* GEMglFeedbackBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0CA0E40978500767D22 /* GEMglFeedbackBuffer.cpp */; }; + 3ACEE22F0E40B9E800FC2E4B /* GEMglFinish.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0CC0E40978500767D22 /* GEMglFinish.cpp */; }; + 3ACEE2300E40B9E800FC2E4B /* GEMglFlush.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0CE0E40978500767D22 /* GEMglFlush.cpp */; }; + 3ACEE2310E40B9E800FC2E4B /* GEMglFogf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0D00E40978500767D22 /* GEMglFogf.cpp */; }; + 3ACEE2320E40B9E800FC2E4B /* GEMglFogfv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0D20E40978500767D22 /* GEMglFogfv.cpp */; }; + 3ACEE2330E40B9E800FC2E4B /* GEMglFogi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0D40E40978500767D22 /* GEMglFogi.cpp */; }; + 3ACEE2340E40B9E800FC2E4B /* GEMglFogiv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0D60E40978500767D22 /* GEMglFogiv.cpp */; }; + 3ACEE2350E40B9E800FC2E4B /* GEMglFrontFace.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0D80E40978500767D22 /* GEMglFrontFace.cpp */; }; + 3ACEE2360E40B9E800FC2E4B /* GEMglFrustum.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0DA0E40978500767D22 /* GEMglFrustum.cpp */; }; + 3ACEE2370E40B9E800FC2E4B /* GEMglGenLists.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0DC0E40978500767D22 /* GEMglGenLists.cpp */; }; + 3ACEE2380E40B9E800FC2E4B /* GEMglGenProgramsARB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0DE0E40978500767D22 /* GEMglGenProgramsARB.cpp */; }; + 3ACEE2390E40B9E800FC2E4B /* GEMglGenTextures.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0E00E40978500767D22 /* GEMglGenTextures.cpp */; }; + 3ACEE23A0E40B9E800FC2E4B /* GEMglGetError.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0E20E40978500767D22 /* GEMglGetError.cpp */; }; + 3ACEE23B0E40B9E800FC2E4B /* GEMglGetFloatv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0E40E40978500767D22 /* GEMglGetFloatv.cpp */; }; + 3ACEE23C0E40B9E800FC2E4B /* GEMglGetMapdv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0E60E40978500767D22 /* GEMglGetMapdv.cpp */; }; + 3ACEE23D0E40B9E800FC2E4B /* GEMglGetMapfv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0E80E40978500767D22 /* GEMglGetMapfv.cpp */; }; + 3ACEE23E0E40B9E800FC2E4B /* GEMglGetMapiv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0EA0E40978500767D22 /* GEMglGetMapiv.cpp */; }; + 3ACEE23F0E40B9E800FC2E4B /* GEMglGetPointerv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0EC0E40978500767D22 /* GEMglGetPointerv.cpp */; }; + 3ACEE2400E40B9E800FC2E4B /* GEMglGetString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0EE0E40978500767D22 /* GEMglGetString.cpp */; }; + 3ACEE2410E40B9E800FC2E4B /* GEMglHint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0F00E40978600767D22 /* GEMglHint.cpp */; }; + 3ACEE2420E40B9E800FC2E4B /* GEMglIndexd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0F20E40978600767D22 /* GEMglIndexd.cpp */; }; + 3ACEE2430E40B9E800FC2E4B /* GEMglIndexdv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0F40E40978600767D22 /* GEMglIndexdv.cpp */; }; + 3ACEE2440E40B9E800FC2E4B /* GEMglIndexf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0F60E40978600767D22 /* GEMglIndexf.cpp */; }; + 3ACEE2450E40B9E800FC2E4B /* GEMglIndexfv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0F80E40978600767D22 /* GEMglIndexfv.cpp */; }; + 3ACEE2460E40B9E800FC2E4B /* GEMglIndexi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0FA0E40978600767D22 /* GEMglIndexi.cpp */; }; + 3ACEE2470E40B9E800FC2E4B /* GEMglIndexiv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0FC0E40978600767D22 /* GEMglIndexiv.cpp */; }; + 3ACEE2480E40B9E800FC2E4B /* GEMglIndexMask.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD0FE0E40978600767D22 /* GEMglIndexMask.cpp */; }; + 3ACEE2490E40B9E800FC2E4B /* GEMglIndexs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1000E40978600767D22 /* GEMglIndexs.cpp */; }; + 3ACEE24A0E40B9E800FC2E4B /* GEMglIndexsv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1020E40978600767D22 /* GEMglIndexsv.cpp */; }; + 3ACEE24B0E40B9E800FC2E4B /* GEMglIndexub.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1040E40978600767D22 /* GEMglIndexub.cpp */; }; + 3ACEE24C0E40B9E800FC2E4B /* GEMglIndexubv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1060E40978600767D22 /* GEMglIndexubv.cpp */; }; + 3ACEE24D0E40B9E800FC2E4B /* GEMglInitNames.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1080E40978600767D22 /* GEMglInitNames.cpp */; }; + 3ACEE24E0E40B9E800FC2E4B /* GEMglIsEnabled.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD10A0E40978600767D22 /* GEMglIsEnabled.cpp */; }; + 3ACEE24F0E40B9E800FC2E4B /* GEMglIsList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD10C0E40978600767D22 /* GEMglIsList.cpp */; }; + 3ACEE2500E40B9E800FC2E4B /* GEMglIsTexture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD10E0E40978600767D22 /* GEMglIsTexture.cpp */; }; + 3ACEE2510E40B9E800FC2E4B /* GEMglLightf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1100E40978600767D22 /* GEMglLightf.cpp */; }; + 3ACEE2520E40B9E800FC2E4B /* GEMglLighti.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1120E40978600767D22 /* GEMglLighti.cpp */; }; + 3ACEE2530E40B9E800FC2E4B /* GEMglLightModelf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1140E40978600767D22 /* GEMglLightModelf.cpp */; }; + 3ACEE2540E40B9E800FC2E4B /* GEMglLightModeli.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1160E40978600767D22 /* GEMglLightModeli.cpp */; }; + 3ACEE2550E40B9E800FC2E4B /* GEMglLineStipple.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1180E40978600767D22 /* GEMglLineStipple.cpp */; }; + 3ACEE2560E40B9E800FC2E4B /* GEMglLineWidth.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD11A0E40978600767D22 /* GEMglLineWidth.cpp */; }; + 3ACEE2570E40B9E800FC2E4B /* GEMglLoadIdentity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD11C0E40978600767D22 /* GEMglLoadIdentity.cpp */; }; + 3ACEE2580E40B9E800FC2E4B /* GEMglLoadMatrixd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD11E0E40978600767D22 /* GEMglLoadMatrixd.cpp */; }; + 3ACEE2590E40B9E800FC2E4B /* GEMglLoadMatrixf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1200E40978600767D22 /* GEMglLoadMatrixf.cpp */; }; + 3ACEE25A0E40B9E800FC2E4B /* GEMglLoadName.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1220E40978600767D22 /* GEMglLoadName.cpp */; }; + 3ACEE25B0E40B9E800FC2E4B /* GEMglLoadTransposeMatrixd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1240E40978600767D22 /* GEMglLoadTransposeMatrixd.cpp */; }; + 3ACEE25C0E40B9E800FC2E4B /* GEMglLoadTransposeMatrixf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1260E40978600767D22 /* GEMglLoadTransposeMatrixf.cpp */; }; + 3ACEE25D0E40B9E800FC2E4B /* GEMglLogicOp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1280E40978600767D22 /* GEMglLogicOp.cpp */; }; + 3ACEE25E0E40B9E800FC2E4B /* GEMglMap1d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD12A0E40978600767D22 /* GEMglMap1d.cpp */; }; + 3ACEE25F0E40B9E800FC2E4B /* GEMglMap1f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD12C0E40978600767D22 /* GEMglMap1f.cpp */; }; + 3ACEE2600E40B9E800FC2E4B /* GEMglMap2d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD12E0E40978600767D22 /* GEMglMap2d.cpp */; }; + 3ACEE2610E40B9E800FC2E4B /* GEMglMap2f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1300E40978600767D22 /* GEMglMap2f.cpp */; }; + 3ACEE2620E40B9E800FC2E4B /* GEMglMapGrid1d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1320E40978600767D22 /* GEMglMapGrid1d.cpp */; }; + 3ACEE2630E40B9E800FC2E4B /* GEMglMapGrid1f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1340E40978600767D22 /* GEMglMapGrid1f.cpp */; }; + 3ACEE2640E40B9E800FC2E4B /* GEMglMapGrid2d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1360E40978600767D22 /* GEMglMapGrid2d.cpp */; }; + 3ACEE2650E40B9E800FC2E4B /* GEMglMapGrid2f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1380E40978600767D22 /* GEMglMapGrid2f.cpp */; }; + 3ACEE2660E40B9E800FC2E4B /* GEMglMaterialf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD13A0E40978600767D22 /* GEMglMaterialf.cpp */; }; + 3ACEE2670E40B9E800FC2E4B /* GEMglMateriali.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD13C0E40978600767D22 /* GEMglMateriali.cpp */; }; + 3ACEE2680E40B9E800FC2E4B /* GEMglMatrixMode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD13E0E40978600767D22 /* GEMglMatrixMode.cpp */; }; + 3ACEE2690E40B9E800FC2E4B /* GEMglMultiTexCoord2fARB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1400E40978600767D22 /* GEMglMultiTexCoord2fARB.cpp */; }; + 3ACEE26A0E40B9E800FC2E4B /* GEMglMultMatrixd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1420E40978600767D22 /* GEMglMultMatrixd.cpp */; }; + 3ACEE26B0E40B9E800FC2E4B /* GEMglMultMatrixf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1440E40978600767D22 /* GEMglMultMatrixf.cpp */; }; + 3ACEE26C0E40B9E800FC2E4B /* GEMglMultTransposeMatrixd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1460E40978600767D22 /* GEMglMultTransposeMatrixd.cpp */; }; + 3ACEE26D0E40B9E800FC2E4B /* GEMglMultTransposeMatrixf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1480E40978600767D22 /* GEMglMultTransposeMatrixf.cpp */; }; + 3ACEE26E0E40B9E800FC2E4B /* GEMglNewList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD14A0E40978600767D22 /* GEMglNewList.cpp */; }; + 3ACEE26F0E40B9E800FC2E4B /* GEMglNormal3b.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD14C0E40978600767D22 /* GEMglNormal3b.cpp */; }; + 3ACEE2700E40B9E800FC2E4B /* GEMglNormal3bv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD14E0E40978600767D22 /* GEMglNormal3bv.cpp */; }; + 3ACEE2710E40B9E800FC2E4B /* GEMglNormal3d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1500E40978600767D22 /* GEMglNormal3d.cpp */; }; + 3ACEE2720E40B9E800FC2E4B /* GEMglNormal3dv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1520E40978600767D22 /* GEMglNormal3dv.cpp */; }; + 3ACEE2730E40B9E800FC2E4B /* GEMglNormal3f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1540E40978600767D22 /* GEMglNormal3f.cpp */; }; + 3ACEE2740E40B9E800FC2E4B /* GEMglNormal3fv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1560E40978600767D22 /* GEMglNormal3fv.cpp */; }; + 3ACEE2750E40B9E800FC2E4B /* GEMglNormal3i.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1580E40978600767D22 /* GEMglNormal3i.cpp */; }; + 3ACEE2760E40B9E800FC2E4B /* GEMglNormal3iv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD15A0E40978600767D22 /* GEMglNormal3iv.cpp */; }; + 3ACEE2770E40B9E800FC2E4B /* GEMglNormal3s.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD15C0E40978600767D22 /* GEMglNormal3s.cpp */; }; + 3ACEE2780E40B9E800FC2E4B /* GEMglNormal3sv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD15E0E40978600767D22 /* GEMglNormal3sv.cpp */; }; + 3ACEE2790E40B9E800FC2E4B /* GEMglOrtho.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1600E40978600767D22 /* GEMglOrtho.cpp */; }; + 3ACEE27A0E40B9E800FC2E4B /* GEMglPassThrough.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1620E40978600767D22 /* GEMglPassThrough.cpp */; }; + 3ACEE27B0E40B9E800FC2E4B /* GEMglPixelStoref.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1640E40978600767D22 /* GEMglPixelStoref.cpp */; }; + 3ACEE27C0E40B9E800FC2E4B /* GEMglPixelStorei.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1660E40978600767D22 /* GEMglPixelStorei.cpp */; }; + 3ACEE27D0E40B9E800FC2E4B /* GEMglPixelTransferf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1680E40978600767D22 /* GEMglPixelTransferf.cpp */; }; + 3ACEE27E0E40B9E800FC2E4B /* GEMglPixelTransferi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD16A0E40978600767D22 /* GEMglPixelTransferi.cpp */; }; + 3ACEE27F0E40B9E800FC2E4B /* GEMglPixelZoom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD16C0E40978600767D22 /* GEMglPixelZoom.cpp */; }; + 3ACEE2800E40B9E800FC2E4B /* GEMglPointSize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD16E0E40978600767D22 /* GEMglPointSize.cpp */; }; + 3ACEE2810E40B9E800FC2E4B /* GEMglPolygonMode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1700E40978600767D22 /* GEMglPolygonMode.cpp */; }; + 3ACEE2820E40B9E800FC2E4B /* GEMglPolygonOffset.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1720E40978600767D22 /* GEMglPolygonOffset.cpp */; }; + 3ACEE2830E40B9E800FC2E4B /* GEMglPopAttrib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1740E40978600767D22 /* GEMglPopAttrib.cpp */; }; + 3ACEE2840E40B9E800FC2E4B /* GEMglPopClientAttrib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1760E40978600767D22 /* GEMglPopClientAttrib.cpp */; }; + 3ACEE2850E40B9E800FC2E4B /* GEMglPopMatrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1780E40978600767D22 /* GEMglPopMatrix.cpp */; }; + 3ACEE2860E40B9E800FC2E4B /* GEMglPopName.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD17A0E40978600767D22 /* GEMglPopName.cpp */; }; + 3ACEE2870E40B9E800FC2E4B /* GEMglPrioritizeTextures.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD17C0E40978600767D22 /* GEMglPrioritizeTextures.cpp */; }; + 3ACEE2880E40B9E800FC2E4B /* GEMglProgramEnvParameter4dARB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD17E0E40978600767D22 /* GEMglProgramEnvParameter4dARB.cpp */; }; + 3ACEE2890E40B9E800FC2E4B /* GEMglProgramEnvParameter4fvARB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1800E40978600767D22 /* GEMglProgramEnvParameter4fvARB.cpp */; }; + 3ACEE28A0E40B9E800FC2E4B /* GEMglProgramLocalParameter4fvARB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1820E40978600767D22 /* GEMglProgramLocalParameter4fvARB.cpp */; }; + 3ACEE28B0E40B9E800FC2E4B /* GEMglProgramStringARB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1840E40978600767D22 /* GEMglProgramStringARB.cpp */; }; + 3ACEE28C0E40B9E800FC2E4B /* GEMglPushAttrib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1860E40978600767D22 /* GEMglPushAttrib.cpp */; }; + 3ACEE28D0E40B9E800FC2E4B /* GEMglPushClientAttrib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1880E40978600767D22 /* GEMglPushClientAttrib.cpp */; }; + 3ACEE28E0E40B9E800FC2E4B /* GEMglPushMatrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD18A0E40978600767D22 /* GEMglPushMatrix.cpp */; }; + 3ACEE28F0E40B9E800FC2E4B /* GEMglPushName.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD18C0E40978600767D22 /* GEMglPushName.cpp */; }; + 3ACEE2900E40B9E800FC2E4B /* GEMglRasterPos2d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD18E0E40978600767D22 /* GEMglRasterPos2d.cpp */; }; + 3ACEE2910E40B9E800FC2E4B /* GEMglRasterPos2dv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1900E40978600767D22 /* GEMglRasterPos2dv.cpp */; }; + 3ACEE2920E40B9E800FC2E4B /* GEMglRasterPos2f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1920E40978600767D22 /* GEMglRasterPos2f.cpp */; }; + 3ACEE2930E40B9E800FC2E4B /* GEMglRasterPos2fv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1940E40978600767D22 /* GEMglRasterPos2fv.cpp */; }; + 3ACEE2940E40B9E800FC2E4B /* GEMglRasterPos2i.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1960E40978600767D22 /* GEMglRasterPos2i.cpp */; }; + 3ACEE2950E40B9E800FC2E4B /* GEMglRasterPos2iv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1980E40978600767D22 /* GEMglRasterPos2iv.cpp */; }; + 3ACEE2960E40B9E800FC2E4B /* GEMglRasterPos2s.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD19A0E40978600767D22 /* GEMglRasterPos2s.cpp */; }; + 3ACEE2970E40B9E800FC2E4B /* GEMglRasterPos2sv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD19C0E40978600767D22 /* GEMglRasterPos2sv.cpp */; }; + 3ACEE2980E40B9E800FC2E4B /* GEMglRasterPos3d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD19E0E40978600767D22 /* GEMglRasterPos3d.cpp */; }; + 3ACEE2990E40B9E800FC2E4B /* GEMglRasterPos3dv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1A00E40978600767D22 /* GEMglRasterPos3dv.cpp */; }; + 3ACEE29A0E40B9E800FC2E4B /* GEMglRasterPos3f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1A20E40978600767D22 /* GEMglRasterPos3f.cpp */; }; + 3ACEE29B0E40B9E800FC2E4B /* GEMglRasterPos3fv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1A40E40978600767D22 /* GEMglRasterPos3fv.cpp */; }; + 3ACEE29C0E40B9E800FC2E4B /* GEMglRasterPos3i.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1A60E40978600767D22 /* GEMglRasterPos3i.cpp */; }; + 3ACEE29D0E40B9E800FC2E4B /* GEMglRasterPos3iv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1A80E40978600767D22 /* GEMglRasterPos3iv.cpp */; }; + 3ACEE29E0E40B9E800FC2E4B /* GEMglRasterPos3s.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1AA0E40978600767D22 /* GEMglRasterPos3s.cpp */; }; + 3ACEE29F0E40B9E800FC2E4B /* GEMglRasterPos3sv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1AC0E40978600767D22 /* GEMglRasterPos3sv.cpp */; }; + 3ACEE2A00E40B9E800FC2E4B /* GEMglRasterPos4d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1AE0E40978600767D22 /* GEMglRasterPos4d.cpp */; }; + 3ACEE2A10E40B9E800FC2E4B /* GEMglRasterPos4dv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1B00E40978600767D22 /* GEMglRasterPos4dv.cpp */; }; + 3ACEE2A20E40B9E800FC2E4B /* GEMglRasterPos4f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1B20E40978600767D22 /* GEMglRasterPos4f.cpp */; }; + 3ACEE2A30E40B9E800FC2E4B /* GEMglRasterPos4fv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1B40E40978600767D22 /* GEMglRasterPos4fv.cpp */; }; + 3ACEE2A40E40B9E800FC2E4B /* GEMglRasterPos4i.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1B60E40978600767D22 /* GEMglRasterPos4i.cpp */; }; + 3ACEE2A50E40B9E800FC2E4B /* GEMglRasterPos4iv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1B80E40978600767D22 /* GEMglRasterPos4iv.cpp */; }; + 3ACEE2A60E40B9E800FC2E4B /* GEMglRasterPos4s.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1BA0E40978600767D22 /* GEMglRasterPos4s.cpp */; }; + 3ACEE2A70E40B9E800FC2E4B /* GEMglRasterPos4sv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1BC0E40978600767D22 /* GEMglRasterPos4sv.cpp */; }; + 3ACEE2A80E40B9E800FC2E4B /* GEMglRectd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1BE0E40978600767D22 /* GEMglRectd.cpp */; }; + 3ACEE2A90E40B9E800FC2E4B /* GEMglRectf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1C00E40978600767D22 /* GEMglRectf.cpp */; }; + 3ACEE2AA0E40B9E800FC2E4B /* GEMglRecti.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1C20E40978600767D22 /* GEMglRecti.cpp */; }; + 3ACEE2AB0E40B9E800FC2E4B /* GEMglRects.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1C40E40978600767D22 /* GEMglRects.cpp */; }; + 3ACEE2AC0E40B9E800FC2E4B /* GEMglRenderMode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1C60E40978600767D22 /* GEMglRenderMode.cpp */; }; + 3ACEE2AD0E40B9E800FC2E4B /* GEMglReportError.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1C80E40978600767D22 /* GEMglReportError.cpp */; }; + 3ACEE2AE0E40B9E800FC2E4B /* GEMglRotated.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1CA0E40978600767D22 /* GEMglRotated.cpp */; }; + 3ACEE2AF0E40B9E800FC2E4B /* GEMglRotatef.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1CC0E40978600767D22 /* GEMglRotatef.cpp */; }; + 3ACEE2B00E40B9E800FC2E4B /* GEMglScaled.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1CE0E40978600767D22 /* GEMglScaled.cpp */; }; + 3ACEE2B10E40B9E800FC2E4B /* GEMglScalef.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1D00E40978600767D22 /* GEMglScalef.cpp */; }; + 3ACEE2B20E40B9E800FC2E4B /* GEMglScissor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1D20E40978600767D22 /* GEMglScissor.cpp */; }; + 3ACEE2B30E40B9E800FC2E4B /* GEMglSelectBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1D40E40978600767D22 /* GEMglSelectBuffer.cpp */; }; + 3ACEE2B40E40B9E800FC2E4B /* GEMglShadeModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1D60E40978600767D22 /* GEMglShadeModel.cpp */; }; + 3ACEE2B50E40B9E800FC2E4B /* GEMglStencilFunc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1D80E40978600767D22 /* GEMglStencilFunc.cpp */; }; + 3ACEE2B60E40B9E800FC2E4B /* GEMglStencilMask.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1DA0E40978600767D22 /* GEMglStencilMask.cpp */; }; + 3ACEE2B70E40B9E800FC2E4B /* GEMglStencilOp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1DC0E40978600767D22 /* GEMglStencilOp.cpp */; }; + 3ACEE2B80E40B9E800FC2E4B /* GEMglTexCoord1d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1DE0E40978600767D22 /* GEMglTexCoord1d.cpp */; }; + 3ACEE2B90E40B9E800FC2E4B /* GEMglTexCoord1dv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1E00E40978600767D22 /* GEMglTexCoord1dv.cpp */; }; + 3ACEE2BA0E40B9E800FC2E4B /* GEMglTexCoord1f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1E20E40978600767D22 /* GEMglTexCoord1f.cpp */; }; + 3ACEE2BB0E40B9E800FC2E4B /* GEMglTexCoord1fv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1E40E40978600767D22 /* GEMglTexCoord1fv.cpp */; }; + 3ACEE2BC0E40B9E800FC2E4B /* GEMglTexCoord1i.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1E60E40978600767D22 /* GEMglTexCoord1i.cpp */; }; + 3ACEE2BD0E40B9E800FC2E4B /* GEMglTexCoord1iv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1E80E40978600767D22 /* GEMglTexCoord1iv.cpp */; }; + 3ACEE2BE0E40B9E800FC2E4B /* GEMglTexCoord1s.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1EA0E40978600767D22 /* GEMglTexCoord1s.cpp */; }; + 3ACEE2BF0E40B9E800FC2E4B /* GEMglTexCoord1sv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1EC0E40978600767D22 /* GEMglTexCoord1sv.cpp */; }; + 3ACEE2C00E40B9E800FC2E4B /* GEMglTexCoord2d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1EE0E40978600767D22 /* GEMglTexCoord2d.cpp */; }; + 3ACEE2C10E40B9E800FC2E4B /* GEMglTexCoord2dv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1F00E40978600767D22 /* GEMglTexCoord2dv.cpp */; }; + 3ACEE2C20E40B9E800FC2E4B /* GEMglTexCoord2f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1F20E40978600767D22 /* GEMglTexCoord2f.cpp */; }; + 3ACEE2C30E40B9E800FC2E4B /* GEMglTexCoord2fv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1F40E40978600767D22 /* GEMglTexCoord2fv.cpp */; }; + 3ACEE2C40E40B9E800FC2E4B /* GEMglTexCoord2i.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1F60E40978600767D22 /* GEMglTexCoord2i.cpp */; }; + 3ACEE2C50E40B9E800FC2E4B /* GEMglTexCoord2iv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1F80E40978600767D22 /* GEMglTexCoord2iv.cpp */; }; + 3ACEE2C60E40B9E800FC2E4B /* GEMglTexCoord2s.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1FA0E40978600767D22 /* GEMglTexCoord2s.cpp */; }; + 3ACEE2C70E40B9E800FC2E4B /* GEMglTexCoord2sv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1FC0E40978600767D22 /* GEMglTexCoord2sv.cpp */; }; + 3ACEE2C80E40B9E800FC2E4B /* GEMglTexCoord3d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD1FE0E40978600767D22 /* GEMglTexCoord3d.cpp */; }; + 3ACEE2C90E40B9E800FC2E4B /* GEMglTexCoord3dv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2000E40978600767D22 /* GEMglTexCoord3dv.cpp */; }; + 3ACEE2CA0E40B9E800FC2E4B /* GEMglTexCoord3f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2020E40978600767D22 /* GEMglTexCoord3f.cpp */; }; + 3ACEE2CB0E40B9E800FC2E4B /* GEMglTexCoord3fv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2040E40978600767D22 /* GEMglTexCoord3fv.cpp */; }; + 3ACEE2CC0E40B9E800FC2E4B /* GEMglTexCoord3i.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2060E40978600767D22 /* GEMglTexCoord3i.cpp */; }; + 3ACEE2CD0E40B9E800FC2E4B /* GEMglTexCoord3iv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2080E40978600767D22 /* GEMglTexCoord3iv.cpp */; }; + 3ACEE2CE0E40B9E800FC2E4B /* GEMglTexCoord3s.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD20A0E40978600767D22 /* GEMglTexCoord3s.cpp */; }; + 3ACEE2CF0E40B9E800FC2E4B /* GEMglTexCoord3sv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD20C0E40978600767D22 /* GEMglTexCoord3sv.cpp */; }; + 3ACEE2D00E40B9E800FC2E4B /* GEMglTexCoord4d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD20E0E40978600767D22 /* GEMglTexCoord4d.cpp */; }; + 3ACEE2D10E40B9E800FC2E4B /* GEMglTexCoord4dv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2100E40978600767D22 /* GEMglTexCoord4dv.cpp */; }; + 3ACEE2D20E40B9E800FC2E4B /* GEMglTexCoord4f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2120E40978600767D22 /* GEMglTexCoord4f.cpp */; }; + 3ACEE2D30E40B9E800FC2E4B /* GEMglTexCoord4fv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2140E40978600767D22 /* GEMglTexCoord4fv.cpp */; }; + 3ACEE2D40E40B9E800FC2E4B /* GEMglTexCoord4i.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2160E40978600767D22 /* GEMglTexCoord4i.cpp */; }; + 3ACEE2D50E40B9E800FC2E4B /* GEMglTexCoord4iv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2180E40978600767D22 /* GEMglTexCoord4iv.cpp */; }; + 3ACEE2D60E40B9E800FC2E4B /* GEMglTexCoord4s.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD21A0E40978600767D22 /* GEMglTexCoord4s.cpp */; }; + 3ACEE2D70E40B9E800FC2E4B /* GEMglTexCoord4sv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD21C0E40978600767D22 /* GEMglTexCoord4sv.cpp */; }; + 3ACEE2D80E40B9E800FC2E4B /* GEMglTexEnvf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD21E0E40978600767D22 /* GEMglTexEnvf.cpp */; }; + 3ACEE2D90E40B9E800FC2E4B /* GEMglTexEnvi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2200E40978600767D22 /* GEMglTexEnvi.cpp */; }; + 3ACEE2DA0E40B9E800FC2E4B /* GEMglTexGend.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2220E40978700767D22 /* GEMglTexGend.cpp */; }; + 3ACEE2DB0E40B9E800FC2E4B /* GEMglTexGenf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2240E40978700767D22 /* GEMglTexGenf.cpp */; }; + 3ACEE2DC0E40B9E800FC2E4B /* GEMglTexGenfv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2260E40978700767D22 /* GEMglTexGenfv.cpp */; }; + 3ACEE2DD0E40B9E800FC2E4B /* GEMglTexGeni.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2280E40978700767D22 /* GEMglTexGeni.cpp */; }; + 3ACEE2DE0E40B9E800FC2E4B /* GEMglTexParameterf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD22A0E40978700767D22 /* GEMglTexParameterf.cpp */; }; + 3ACEE2DF0E40B9E800FC2E4B /* GEMglTexParameteri.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD22C0E40978700767D22 /* GEMglTexParameteri.cpp */; }; + 3ACEE2E00E40B9E800FC2E4B /* GEMglTexSubImage1D.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD22E0E40978700767D22 /* GEMglTexSubImage1D.cpp */; }; + 3ACEE2E10E40B9E800FC2E4B /* GEMglTexSubImage2D.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2300E40978700767D22 /* GEMglTexSubImage2D.cpp */; }; + 3ACEE2E20E40B9E800FC2E4B /* GEMglTranslated.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2320E40978700767D22 /* GEMglTranslated.cpp */; }; + 3ACEE2E30E40B9E800FC2E4B /* GEMglTranslatef.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2340E40978700767D22 /* GEMglTranslatef.cpp */; }; + 3ACEE2E40E40B9E800FC2E4B /* GEMglUniform1fARB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2360E40978700767D22 /* GEMglUniform1fARB.cpp */; }; + 3ACEE2E50E40B9E800FC2E4B /* GEMgluPerspective.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2380E40978700767D22 /* GEMgluPerspective.cpp */; }; + 3ACEE2E60E40B9E800FC2E4B /* GEMglUseProgramObjectARB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD23A0E40978700767D22 /* GEMglUseProgramObjectARB.cpp */; }; + 3ACEE2E70E40B9E800FC2E4B /* GEMglVertex2d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD23C0E40978700767D22 /* GEMglVertex2d.cpp */; }; + 3ACEE2E80E40B9E800FC2E4B /* GEMglVertex2dv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD23E0E40978700767D22 /* GEMglVertex2dv.cpp */; }; + 3ACEE2E90E40B9E800FC2E4B /* GEMglVertex2f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2400E40978700767D22 /* GEMglVertex2f.cpp */; }; + 3ACEE2EA0E40B9E800FC2E4B /* GEMglVertex2fv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2420E40978700767D22 /* GEMglVertex2fv.cpp */; }; + 3ACEE2EB0E40B9E800FC2E4B /* GEMglVertex2i.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2440E40978700767D22 /* GEMglVertex2i.cpp */; }; + 3ACEE2EC0E40B9E800FC2E4B /* GEMglVertex2iv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2460E40978700767D22 /* GEMglVertex2iv.cpp */; }; + 3ACEE2ED0E40B9E800FC2E4B /* GEMglVertex2s.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2480E40978700767D22 /* GEMglVertex2s.cpp */; }; + 3ACEE2EE0E40B9E800FC2E4B /* GEMglVertex2sv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD24A0E40978700767D22 /* GEMglVertex2sv.cpp */; }; + 3ACEE2EF0E40B9E800FC2E4B /* GEMglVertex3d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD24C0E40978700767D22 /* GEMglVertex3d.cpp */; }; + 3ACEE2F00E40B9E800FC2E4B /* GEMglVertex3dv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD24E0E40978700767D22 /* GEMglVertex3dv.cpp */; }; + 3ACEE2F10E40B9E800FC2E4B /* GEMglVertex3f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2500E40978700767D22 /* GEMglVertex3f.cpp */; }; + 3ACEE2F20E40B9E800FC2E4B /* GEMglVertex3fv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2520E40978700767D22 /* GEMglVertex3fv.cpp */; }; + 3ACEE2F30E40B9E800FC2E4B /* GEMglVertex3i.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2540E40978700767D22 /* GEMglVertex3i.cpp */; }; + 3ACEE2F40E40B9E800FC2E4B /* GEMglVertex3iv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2560E40978700767D22 /* GEMglVertex3iv.cpp */; }; + 3ACEE2F50E40B9E800FC2E4B /* GEMglVertex3s.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2580E40978700767D22 /* GEMglVertex3s.cpp */; }; + 3ACEE2F60E40B9E800FC2E4B /* GEMglVertex3sv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD25A0E40978700767D22 /* GEMglVertex3sv.cpp */; }; + 3ACEE2F70E40B9E800FC2E4B /* GEMglVertex4d.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD25C0E40978700767D22 /* GEMglVertex4d.cpp */; }; + 3ACEE2F80E40B9E800FC2E4B /* GEMglVertex4dv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD25E0E40978700767D22 /* GEMglVertex4dv.cpp */; }; + 3ACEE2F90E40B9E800FC2E4B /* GEMglVertex4f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2600E40978700767D22 /* GEMglVertex4f.cpp */; }; + 3ACEE2FA0E40B9E800FC2E4B /* GEMglVertex4fv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2620E40978700767D22 /* GEMglVertex4fv.cpp */; }; + 3ACEE2FB0E40B9E800FC2E4B /* GEMglVertex4i.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2640E40978700767D22 /* GEMglVertex4i.cpp */; }; + 3ACEE2FC0E40B9E800FC2E4B /* GEMglVertex4iv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2660E40978700767D22 /* GEMglVertex4iv.cpp */; }; + 3ACEE2FD0E40B9E800FC2E4B /* GEMglVertex4s.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD2680E40978700767D22 /* GEMglVertex4s.cpp */; }; + 3ACEE2FE0E40B9E800FC2E4B /* GEMglVertex4sv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD26A0E40978700767D22 /* GEMglVertex4sv.cpp */; }; + 3ACEE2FF0E40B9E800FC2E4B /* GEMglViewport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD26C0E40978700767D22 /* GEMglViewport.cpp */; }; + 3ACEE3000E40B9E800FC2E4B /* GLdefine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD26E0E40978700767D22 /* GLdefine.cpp */; }; + 3ACEE3010E40B9E800FC2E4B /* part_color.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4C70E4097BC00767D22 /* part_color.cpp */; }; + 3ACEE3020E40B9E800FC2E4B /* part_damp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4C90E4097BC00767D22 /* part_damp.cpp */; }; + 3ACEE3030E40B9E800FC2E4B /* part_draw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4CB0E4097BC00767D22 /* part_draw.cpp */; }; + 3ACEE3040E40B9E800FC2E4B /* part_follow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4CD0E4097BC00767D22 /* part_follow.cpp */; }; + 3ACEE3050E40B9E800FC2E4B /* part_gravity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4CF0E4097BC00767D22 /* part_gravity.cpp */; }; + 3ACEE3060E40B9E800FC2E4B /* part_head.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4D10E4097BC00767D22 /* part_head.cpp */; }; + 3ACEE3070E40B9E800FC2E4B /* part_info.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4D30E4097BC00767D22 /* part_info.cpp */; }; + 3ACEE3080E40B9E800FC2E4B /* part_killold.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4D50E4097BC00767D22 /* part_killold.cpp */; }; + 3ACEE3090E40B9E800FC2E4B /* part_killslow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4D70E4097BC00767D22 /* part_killslow.cpp */; }; + 3ACEE30A0E40B9E800FC2E4B /* part_orbitpoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4D90E4097BC00767D22 /* part_orbitpoint.cpp */; }; + 3ACEE30B0E40B9E800FC2E4B /* part_render.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4DB0E4097BC00767D22 /* part_render.cpp */; }; + 3ACEE30C0E40B9E800FC2E4B /* part_sink.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4DD0E4097BC00767D22 /* part_sink.cpp */; }; + 3ACEE30D0E40B9E800FC2E4B /* part_size.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4DF0E4097BC00767D22 /* part_size.cpp */; }; + 3ACEE30E0E40B9E800FC2E4B /* part_source.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4E10E4097BC00767D22 /* part_source.cpp */; }; + 3ACEE30F0E40B9E800FC2E4B /* part_targetcolor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4E30E4097BC00767D22 /* part_targetcolor.cpp */; }; + 3ACEE3100E40B9E800FC2E4B /* part_targetsize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4E50E4097BC00767D22 /* part_targetsize.cpp */; }; + 3ACEE3110E40B9E800FC2E4B /* part_velcone.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4E70E4097BC00767D22 /* part_velcone.cpp */; }; + 3ACEE3120E40B9E800FC2E4B /* part_velocity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4E90E4097BC00767D22 /* part_velocity.cpp */; }; + 3ACEE3130E40B9E800FC2E4B /* part_velsphere.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4EB0E4097BC00767D22 /* part_velsphere.cpp */; }; + 3ACEE3140E40B9E800FC2E4B /* part_vertex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4ED0E4097BC00767D22 /* part_vertex.cpp */; }; + 3ACEE3150E40B9E800FC2E4B /* partlib_actionapi.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4EF0E4097BC00767D22 /* partlib_actionapi.cpp */; }; + 3ACEE3160E40B9E800FC2E4B /* partlib_actions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4F00E4097BC00767D22 /* partlib_actions.cpp */; }; + 3ACEE3170E40B9E800FC2E4B /* partlib_opengl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4F20E4097BC00767D22 /* partlib_opengl.cpp */; }; + 3ACEE3180E40B9E800FC2E4B /* partlib_system.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD4F30E4097BC00767D22 /* partlib_system.cpp */; }; + 3ACEE3190E40B9E800FC2E4B /* film.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5280E4097D300767D22 /* film.cpp */; }; + 3ACEE31A0E40B9E800FC2E4B /* filmDarwin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD52E0E4097D300767D22 /* filmDarwin.cpp */; }; + 3ACEE31B0E40B9E800FC2E4B /* filmQT.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5380E4097D400767D22 /* filmQT.cpp */; }; + 3ACEE31C0E40B9E800FC2E4B /* libfidtrack_fidtrackX.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD53D0E4097D400767D22 /* libfidtrack_fidtrackX.cpp */; }; + 3ACEE31D0E40B9E800FC2E4B /* libfidtrack_segment.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD53F0E4097D400767D22 /* libfidtrack_segment.cpp */; }; + 3ACEE31E0E40B9E800FC2E4B /* libfidtrack_treeidmap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5410E4097D400767D22 /* libfidtrack_treeidmap.cpp */; }; + 3ACEE31F0E40B9E800FC2E4B /* pix_2grey.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5440E4097D400767D22 /* pix_2grey.cpp */; }; + 3ACEE3200E40B9E800FC2E4B /* pix_a_2grey.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5460E4097D400767D22 /* pix_a_2grey.cpp */; }; + 3ACEE3210E40B9E800FC2E4B /* pix_add.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5480E4097D400767D22 /* pix_add.cpp */; }; + 3ACEE3220E40B9E800FC2E4B /* pix_aging.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD54A0E4097D400767D22 /* pix_aging.cpp */; }; + 3ACEE3230E40B9E800FC2E4B /* pix_alpha.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD54C0E4097D400767D22 /* pix_alpha.cpp */; }; + 3ACEE3240E40B9E800FC2E4B /* pix_artoolkit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD54E0E4097D400767D22 /* pix_artoolkit.cpp */; }; + 3ACEE3250E40B9E800FC2E4B /* pix_background.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5500E4097D400767D22 /* pix_background.cpp */; }; + 3ACEE3260E40B9E800FC2E4B /* pix_backlight.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5520E4097D400767D22 /* pix_backlight.cpp */; }; + 3ACEE3270E40B9E800FC2E4B /* pix_biquad.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5540E4097D400767D22 /* pix_biquad.cpp */; }; + 3ACEE3280E40B9E800FC2E4B /* pix_bitmask.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5560E4097D400767D22 /* pix_bitmask.cpp */; }; + 3ACEE3290E40B9E800FC2E4B /* pix_blob.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5580E4097D400767D22 /* pix_blob.cpp */; }; + 3ACEE32A0E40B9E800FC2E4B /* pix_blur.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD55A0E4097D400767D22 /* pix_blur.cpp */; }; + 3ACEE32B0E40B9E800FC2E4B /* pix_buf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD55C0E4097D400767D22 /* pix_buf.cpp */; }; + 3ACEE32C0E40B9E800FC2E4B /* pix_buffer_read.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD55E0E4097D400767D22 /* pix_buffer_read.cpp */; }; + 3ACEE32D0E40B9E800FC2E4B /* pix_buffer_write.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5600E4097D400767D22 /* pix_buffer_write.cpp */; }; + 3ACEE32E0E40B9E800FC2E4B /* pix_buffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5620E4097D400767D22 /* pix_buffer.cpp */; }; + 3ACEE32F0E40B9E800FC2E4B /* pix_chroma_key.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5640E4097D400767D22 /* pix_chroma_key.cpp */; }; + 3ACEE3300E40B9E800FC2E4B /* pix_clearblock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5660E4097D400767D22 /* pix_clearblock.cpp */; }; + 3ACEE3310E40B9E800FC2E4B /* pix_color.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5680E4097D400767D22 /* pix_color.cpp */; }; + 3ACEE3320E40B9E800FC2E4B /* pix_coloralpha.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD56A0E4097D400767D22 /* pix_coloralpha.cpp */; }; + 3ACEE3330E40B9E800FC2E4B /* pix_colormatrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD56C0E4097D400767D22 /* pix_colormatrix.cpp */; }; + 3ACEE3340E40B9E800FC2E4B /* pix_colorreduce.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD56E0E4097D400767D22 /* pix_colorreduce.cpp */; }; + 3ACEE3350E40B9E800FC2E4B /* pix_compare.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5700E4097D400767D22 /* pix_compare.cpp */; }; + 3ACEE3360E40B9E800FC2E4B /* pix_composite.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5720E4097D400767D22 /* pix_composite.cpp */; }; + 3ACEE3370E40B9E800FC2E4B /* pix_contrast.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5740E4097D400767D22 /* pix_contrast.cpp */; }; + 3ACEE3380E40B9E800FC2E4B /* pix_convert.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5760E4097D400767D22 /* pix_convert.cpp */; }; + 3ACEE3390E40B9E800FC2E4B /* pix_convolve.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5780E4097D400767D22 /* pix_convolve.cpp */; }; + 3ACEE33A0E40B9E800FC2E4B /* pix_coordinate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD57A0E4097D400767D22 /* pix_coordinate.cpp */; }; + 3ACEE33B0E40B9E800FC2E4B /* pix_crop.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD57C0E4097D400767D22 /* pix_crop.cpp */; }; + 3ACEE33C0E40B9E800FC2E4B /* pix_curve.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD57E0E4097D400767D22 /* pix_curve.cpp */; }; + 3ACEE33D0E40B9E800FC2E4B /* pix_data.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5800E4097D400767D22 /* pix_data.cpp */; }; + 3ACEE33E0E40B9E800FC2E4B /* pix_deinterlace.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5820E4097D400767D22 /* pix_deinterlace.cpp */; }; + 3ACEE33F0E40B9E800FC2E4B /* pix_delay.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5840E4097D400767D22 /* pix_delay.cpp */; }; + 3ACEE3400E40B9E800FC2E4B /* pix_diff.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5860E4097D400767D22 /* pix_diff.cpp */; }; + 3ACEE3410E40B9E800FC2E4B /* pix_dot.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5880E4097D400767D22 /* pix_dot.cpp */; }; + 3ACEE3420E40B9E800FC2E4B /* pix_draw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD58A0E4097D400767D22 /* pix_draw.cpp */; }; + 3ACEE3430E40B9E800FC2E4B /* pix_dump.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD58C0E4097D400767D22 /* pix_dump.cpp */; }; + 3ACEE3440E40B9E800FC2E4B /* pix_duotone.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD58E0E4097D400767D22 /* pix_duotone.cpp */; }; + 3ACEE3450E40B9E800FC2E4B /* pix_emboss.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5900E4097D400767D22 /* pix_emboss.cpp */; }; + 3ACEE3460E40B9E800FC2E4B /* pix_fiducialtrack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5920E4097D400767D22 /* pix_fiducialtrack.cpp */; }; + 3ACEE3470E40B9E800FC2E4B /* pix_film.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5940E4097D400767D22 /* pix_film.cpp */; }; + 3ACEE3480E40B9E800FC2E4B /* pix_filmDarwin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5960E4097D400767D22 /* pix_filmDarwin.cpp */; }; + 3ACEE34A0E40B9E800FC2E4B /* pix_filmNT.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD59A0E4097D400767D22 /* pix_filmNT.cpp */; }; + 3ACEE34B0E40B9E800FC2E4B /* pix_filmQT.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD59C0E4097D400767D22 /* pix_filmQT.cpp */; }; + 3ACEE34C0E40B9E800FC2E4B /* pix_flip.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD59E0E4097D400767D22 /* pix_flip.cpp */; }; + 3ACEE34D0E40B9E800FC2E4B /* pix_freeframe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5A00E4097D400767D22 /* pix_freeframe.cpp */; }; + 3ACEE34E0E40B9E800FC2E4B /* pix_gain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5A20E4097D400767D22 /* pix_gain.cpp */; }; + 3ACEE34F0E40B9E800FC2E4B /* pix_grey.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5A40E4097D400767D22 /* pix_grey.cpp */; }; + 3ACEE3500E40B9E800FC2E4B /* pix_halftone.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5A60E4097D400767D22 /* pix_halftone.cpp */; }; + 3ACEE3510E40B9E800FC2E4B /* pix_histo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5A80E4097D400767D22 /* pix_histo.cpp */; }; + 3ACEE3520E40B9E800FC2E4B /* pix_hit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5AA0E4097D400767D22 /* pix_hit.cpp */; }; + 3ACEE3530E40B9E800FC2E4B /* pix_hsv2rgb.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5AC0E4097D400767D22 /* pix_hsv2rgb.cpp */; }; + 3ACEE3540E40B9E800FC2E4B /* pix_image.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5AE0E4097D400767D22 /* pix_image.cpp */; }; + 3ACEE3550E40B9E800FC2E4B /* pix_imageInPlace.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5B00E4097D400767D22 /* pix_imageInPlace.cpp */; }; + 3ACEE3560E40B9E800FC2E4B /* pix_indycam.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5B20E4097D400767D22 /* pix_indycam.cpp */; }; + 3ACEE3570E40B9E800FC2E4B /* pix_info.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5B40E4097D400767D22 /* pix_info.cpp */; }; + 3ACEE3580E40B9E800FC2E4B /* pix_invert.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5B60E4097D400767D22 /* pix_invert.cpp */; }; + 3ACEE3590E40B9E800FC2E4B /* pix_kaleidoscope.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5B80E4097D400767D22 /* pix_kaleidoscope.cpp */; }; + 3ACEE35A0E40B9E800FC2E4B /* pix_levels.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5BA0E4097D400767D22 /* pix_levels.cpp */; }; + 3ACEE35B0E40B9E800FC2E4B /* pix_lumaoffset.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5BC0E4097D400767D22 /* pix_lumaoffset.cpp */; }; + 3ACEE35C0E40B9E800FC2E4B /* pix_mask.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5BE0E4097D400767D22 /* pix_mask.cpp */; }; + 3ACEE35D0E40B9E800FC2E4B /* pix_mean_color.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5C00E4097D400767D22 /* pix_mean_color.cpp */; }; + 3ACEE35E0E40B9E800FC2E4B /* pix_metaimage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5C20E4097D400767D22 /* pix_metaimage.cpp */; }; + 3ACEE35F0E40B9E800FC2E4B /* pix_mix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5C40E4097D400767D22 /* pix_mix.cpp */; }; + 3ACEE3600E40B9E800FC2E4B /* pix_motionblur.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5C60E4097D400767D22 /* pix_motionblur.cpp */; }; + 3ACEE3610E40B9E800FC2E4B /* pix_movement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5C80E4097D400767D22 /* pix_movement.cpp */; }; + 3ACEE3620E40B9E800FC2E4B /* pix_movement2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5CA0E4097D400767D22 /* pix_movement2.cpp */; }; + 3ACEE3630E40B9E800FC2E4B /* pix_movie.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5CC0E4097D400767D22 /* pix_movie.cpp */; }; + 3ACEE3640E40B9E800FC2E4B /* pix_movieDarwin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5CE0E4097D400767D22 /* pix_movieDarwin.cpp */; }; + 3ACEE3650E40B9E800FC2E4B /* pix_multiblob.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5D40E4097D400767D22 /* pix_multiblob.cpp */; }; + 3ACEE3660E40B9E800FC2E4B /* pix_multiimage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5D60E4097D400767D22 /* pix_multiimage.cpp */; }; + 3ACEE3670E40B9E800FC2E4B /* pix_multiply.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5D80E4097D400767D22 /* pix_multiply.cpp */; }; + 3ACEE3680E40B9E800FC2E4B /* pix_multitexture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5DA0E4097D400767D22 /* pix_multitexture.cpp */; }; + 3ACEE3690E40B9E800FC2E4B /* pix_normalize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5DC0E4097D400767D22 /* pix_normalize.cpp */; }; + 3ACEE36A0E40B9E800FC2E4B /* pix_offset.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5DE0E4097D400767D22 /* pix_offset.cpp */; }; + 3ACEE36B0E40B9E800FC2E4B /* pix_pix2sig.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5E00E4097D400767D22 /* pix_pix2sig.cpp */; }; + 3ACEE36C0E40B9E800FC2E4B /* pix_posterize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5E20E4097D400767D22 /* pix_posterize.cpp */; }; + 3ACEE36D0E40B9E800FC2E4B /* pix_puzzle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5E40E4097D400767D22 /* pix_puzzle.cpp */; }; + 3ACEE36E0E40B9E800FC2E4B /* pix_rds.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5E60E4097D400767D22 /* pix_rds.cpp */; }; + 3ACEE36F0E40B9E800FC2E4B /* pix_record.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5E80E4097D400767D22 /* pix_record.cpp */; }; + 3ACEE3700E40B9E800FC2E4B /* pix_recordQT.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5EA0E4097D400767D22 /* pix_recordQT.cpp */; }; + 3ACEE3710E40B9E800FC2E4B /* pix_rectangle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5EC0E4097D400767D22 /* pix_rectangle.cpp */; }; + 3ACEE3720E40B9E800FC2E4B /* pix_refraction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5EE0E4097D400767D22 /* pix_refraction.cpp */; }; + 3ACEE3730E40B9E800FC2E4B /* pix_resize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5F00E4097D400767D22 /* pix_resize.cpp */; }; + 3ACEE3740E40B9E800FC2E4B /* pix_rgb2hsv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5F20E4097D400767D22 /* pix_rgb2hsv.cpp */; }; + 3ACEE3750E40B9E800FC2E4B /* pix_rgba.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5F40E4097D400767D22 /* pix_rgba.cpp */; }; + 3ACEE3760E40B9E800FC2E4B /* pix_roll.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5F60E4097D400767D22 /* pix_roll.cpp */; }; + 3ACEE3770E40B9E800FC2E4B /* pix_rtx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5F80E4097D400767D22 /* pix_rtx.cpp */; }; + 3ACEE3780E40B9E800FC2E4B /* pix_scanline.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5FA0E4097D400767D22 /* pix_scanline.cpp */; }; + 3ACEE3790E40B9E800FC2E4B /* pix_set.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5FC0E4097D400767D22 /* pix_set.cpp */; }; + 3ACEE37A0E40B9E800FC2E4B /* pix_share_read.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD5FE0E4097D500767D22 /* pix_share_read.cpp */; }; + 3ACEE37B0E40B9E800FC2E4B /* pix_share_write.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD6000E4097D500767D22 /* pix_share_write.cpp */; }; + 3ACEE37C0E40B9E800FC2E4B /* pix_sig2pix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD6030E4097D500767D22 /* pix_sig2pix.cpp */; }; + 3ACEE37D0E40B9E800FC2E4B /* pix_snap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD6050E4097D500767D22 /* pix_snap.cpp */; }; + 3ACEE37E0E40B9E800FC2E4B /* pix_snap2tex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD6070E4097D500767D22 /* pix_snap2tex.cpp */; }; + 3ACEE37F0E40B9E800FC2E4B /* pix_subtract.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD6090E4097D500767D22 /* pix_subtract.cpp */; }; + 3ACEE3800E40B9E800FC2E4B /* pix_takealpha.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD60B0E4097D500767D22 /* pix_takealpha.cpp */; }; + 3ACEE3810E40B9E800FC2E4B /* pix_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD60D0E4097D500767D22 /* pix_test.cpp */; }; + 3ACEE3820E40B9E800FC2E4B /* pix_texture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD60F0E4097D500767D22 /* pix_texture.cpp */; }; + 3ACEE3830E40B9E800FC2E4B /* pix_threshold_bernsen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD6110E4097D500767D22 /* pix_threshold_bernsen.cpp */; }; + 3ACEE3840E40B9E800FC2E4B /* pix_threshold.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD6130E4097D500767D22 /* pix_threshold.cpp */; }; + 3ACEE3850E40B9E800FC2E4B /* pix_tIIR.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD6150E4097D500767D22 /* pix_tIIR.cpp */; }; + 3ACEE3870E40B9E800FC2E4B /* pix_videoDarwin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD6190E4097D500767D22 /* pix_videoDarwin.cpp */; }; + 3ACEE3880E40B9E800FC2E4B /* pix_vpaint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD6230E4097D500767D22 /* pix_vpaint.cpp */; }; + 3ACEE3890E40B9E800FC2E4B /* pix_write.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD6250E4097D500767D22 /* pix_write.cpp */; }; + 3ACEE38A0E40B9E800FC2E4B /* pix_yuv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD6270E4097D500767D22 /* pix_yuv.cpp */; }; + 3ACEE38B0E40B9E800FC2E4B /* pix_zoom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD6290E4097D500767D22 /* pix_zoom.cpp */; }; + 3ACEE38C0E40B9E800FC2E4B /* record.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD62B0E4097D500767D22 /* record.cpp */; }; + 3ACEE38D0E40B9E800FC2E4B /* recordQT.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD62D0E4097D500767D22 /* recordQT.cpp */; }; + 3ACEE38E0E40B9E800FC2E4B /* vertex_add.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD74F0E4097E900767D22 /* vertex_add.cpp */; }; + 3ACEE38F0E40B9E800FC2E4B /* vertex_combine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD7510E4097E900767D22 /* vertex_combine.cpp */; }; + 3ACEE3900E40B9E800FC2E4B /* vertex_draw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD7530E4097E900767D22 /* vertex_draw.cpp */; }; + 3ACEE3910E40B9E800FC2E4B /* vertex_grid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD7550E4097E900767D22 /* vertex_grid.cpp */; }; + 3ACEE3920E40B9E800FC2E4B /* vertex_info.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD7570E4097E900767D22 /* vertex_info.cpp */; }; + 3ACEE3930E40B9E800FC2E4B /* vertex_model.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD7590E4097E900767D22 /* vertex_model.cpp */; }; + 3ACEE3940E40B9E800FC2E4B /* vertex_mul.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD75B0E4097E900767D22 /* vertex_mul.cpp */; }; + 3ACEE3950E40B9E800FC2E4B /* vertex_offset.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD75D0E4097E900767D22 /* vertex_offset.cpp */; }; + 3ACEE3960E40B9E800FC2E4B /* vertex_quad.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD75F0E4097E900767D22 /* vertex_quad.cpp */; }; + 3ACEE3970E40B9E800FC2E4B /* vertex_scale.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD7610E4097E900767D22 /* vertex_scale.cpp */; }; + 3ACEE3980E40B9E800FC2E4B /* vertex_set.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD7630E4097EA00767D22 /* vertex_set.cpp */; }; + 3ACEE3990E40B9E800FC2E4B /* vertex_tabread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3A2DD7650E4097EA00767D22 /* vertex_tabread.cpp */; }; + 3ACEE39B0E40B9E800FC2E4B /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5BDD20B0389F11F0175848A /* AGL.framework */; }; + 3ACEE39C0E40B9E800FC2E4B /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5BDD20C0389F11F0175848A /* Carbon.framework */; }; + 3ACEE39D0E40B9E800FC2E4B /* GLUT.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5BDD20D0389F11F0175848A /* GLUT.framework */; }; + 3ACEE39E0E40B9E800FC2E4B /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5BDD20E0389F11F0175848A /* OpenGL.framework */; }; + 3ACEE39F0E40B9E800FC2E4B /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5BDD20F0389F11F0175848A /* QuickTime.framework */; }; + 3ACEE3A00E40B9E800FC2E4B /* libftgl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FD8EFC7404C4715B00DF3958 /* libftgl.a */; }; + 3ACEE3D80E40C8A800FC2E4B /* GemVersion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3ACEE3D70E40C8A800FC2E4B /* GemVersion.cpp */; }; + 3ACEE3D90E40C8A800FC2E4B /* GemVersion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3ACEE3D70E40C8A800FC2E4B /* GemVersion.cpp */; }; + 3AE073920EB8A2CA00223BA6 /* pix_filmOS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AE073900EB8A2CA00223BA6 /* pix_filmOS.cpp */; }; + 3AE073930EB8A2CA00223BA6 /* pix_filmOS.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AE073910EB8A2CA00223BA6 /* pix_filmOS.h */; }; + 3AE073940EB8A2CA00223BA6 /* pix_filmOS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AE073900EB8A2CA00223BA6 /* pix_filmOS.cpp */; }; + 3AE073950EB8A2CA00223BA6 /* pix_filmOS.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AE073910EB8A2CA00223BA6 /* pix_filmOS.h */; }; + 3AE073980EB8A31300223BA6 /* pix_movieOS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AE073960EB8A31300223BA6 /* pix_movieOS.cpp */; }; + 3AE073990EB8A31300223BA6 /* pix_movieOS.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AE073970EB8A31300223BA6 /* pix_movieOS.h */; }; + 3AE0739A0EB8A31300223BA6 /* pix_movieOS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AE073960EB8A31300223BA6 /* pix_movieOS.cpp */; }; + 3AE0739B0EB8A31300223BA6 /* pix_movieOS.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AE073970EB8A31300223BA6 /* pix_movieOS.h */; }; + 3AE0739E0EB8A34600223BA6 /* pix_videoOS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AE0739C0EB8A34600223BA6 /* pix_videoOS.cpp */; }; + 3AE0739F0EB8A34600223BA6 /* pix_videoOS.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AE0739D0EB8A34600223BA6 /* pix_videoOS.h */; }; + 3AE073A00EB8A34600223BA6 /* pix_videoOS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3AE0739C0EB8A34600223BA6 /* pix_videoOS.cpp */; }; + 3AE073A10EB8A34600223BA6 /* pix_videoOS.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AE0739D0EB8A34600223BA6 /* pix_videoOS.h */; }; + FD2F4EAA08F458E2008F3CED /* GemGL.h in Headers */ = {isa = PBXBuildFile; fileRef = FD2F4EA908F458E2008F3CED /* GemGL.h */; }; + FD5047A40856671F00AF77DC /* CPPExtern.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B40703898BE2019165F0 /* CPPExtern.h */; }; + FD5047A50856671F00AF77DC /* GemBase.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B40903898BE2019165F0 /* GemBase.h */; }; + FD5047A60856671F00AF77DC /* GemCache.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B40B03898BE2019165F0 /* GemCache.h */; }; + FD5047A70856671F00AF77DC /* GemEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B40F03898BE2019165F0 /* GemEvent.h */; }; + FD5047A80856671F00AF77DC /* GemExportDef.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B41003898BE2019165F0 /* GemExportDef.h */; }; + FD5047A90856671F00AF77DC /* GemFuncUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B41203898BE2019165F0 /* GemFuncUtil.h */; }; + FD5047AA0856671F00AF77DC /* GemGluObj.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B41403898BE2019165F0 /* GemGluObj.h */; }; + FD5047AB0856671F00AF77DC /* GemGLUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B41603898BE2019165F0 /* GemGLUtil.h */; }; + FD5047AC0856671F00AF77DC /* GemLoadObj.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B41A03898BE2019165F0 /* GemLoadObj.h */; }; + FD5047AD0856671F00AF77DC /* GemMan.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B41C03898BE2019165F0 /* GemMan.h */; }; + FD5047AE0856671F00AF77DC /* GemPathBase.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B42003898BE2019165F0 /* GemPathBase.h */; }; + FD5047AF0856671F00AF77DC /* GemPixDualObj.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B42203898BE2019165F0 /* GemPixDualObj.h */; }; + FD5047B00856671F00AF77DC /* GemPixImageLoad.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B42403898BE2019165F0 /* GemPixImageLoad.h */; }; + FD5047B10856671F00AF77DC /* GemPixObj.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B42803898BE2019165F0 /* GemPixObj.h */; }; + FD5047B20856671F00AF77DC /* GemPixUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B42A03898BE2019165F0 /* GemPixUtil.h */; }; + FD5047B30856671F00AF77DC /* GemShape.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B42D03898BE2019165F0 /* GemShape.h */; }; + FD5047B40856671F00AF77DC /* GemState.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B42F03898BE2019165F0 /* GemState.h */; }; + FD5047B50856671F00AF77DC /* GemVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B43003898BE2019165F0 /* GemVersion.h */; }; + FD5047B60856671F00AF77DC /* GemWinCreate.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B43103898BE2019165F0 /* GemWinCreate.h */; }; + FD5047B70856671F00AF77DC /* Matrix.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B43703898BE2019165F0 /* Matrix.h */; }; + FD5047B80856671F00AF77DC /* TextBase.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B43B03898BE2019165F0 /* TextBase.h */; }; + FD5047B90856671F00AF77DC /* gemhead.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B43E03898BE2019165F0 /* gemhead.h */; }; + FD5047BA0856671F00AF77DC /* gemkeyboard.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B44003898BE2019165F0 /* gemkeyboard.h */; }; + FD5047BB0856671F00AF77DC /* gemkeyname.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B44203898BE2019165F0 /* gemkeyname.h */; }; + FD5047BE0856671F00AF77DC /* render_trigger.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B44D03898BE2019165F0 /* render_trigger.h */; }; + FD5047C30856671F00AF77DC /* GemPixImageSave.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B42603898BE2019165F0 /* GemPixImageSave.h */; }; + FD5047C40856671F00AF77DC /* FTBBox.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E016E04C4CB9900DF3958 /* FTBBox.h */; }; + FD5047C50856671F00AF77DC /* FTBitmapGlyph.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E016F04C4CB9900DF3958 /* FTBitmapGlyph.h */; }; + FD5047C60856671F00AF77DC /* FTCharmap.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E017004C4CB9900DF3958 /* FTCharmap.h */; }; + FD5047C70856671F00AF77DC /* FTCharToGlyphIndexMap.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E017104C4CB9900DF3958 /* FTCharToGlyphIndexMap.h */; }; + FD5047C80856671F00AF77DC /* FTContour.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E017204C4CB9900DF3958 /* FTContour.h */; }; + FD5047C90856671F00AF77DC /* FTExtrdGlyph.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E017304C4CB9900DF3958 /* FTExtrdGlyph.h */; }; + FD5047CA0856671F00AF77DC /* FTFace.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E017404C4CB9900DF3958 /* FTFace.h */; }; + FD5047CB0856671F00AF77DC /* FTFont.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E017504C4CB9900DF3958 /* FTFont.h */; }; + FD5047CC0856671F00AF77DC /* FTGL.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E017604C4CB9900DF3958 /* FTGL.h */; }; + FD5047CD0856671F00AF77DC /* FTGLBitmapFont.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E017704C4CB9900DF3958 /* FTGLBitmapFont.h */; }; + FD5047CE0856671F00AF77DC /* FTGLExtrdFont.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E017804C4CB9900DF3958 /* FTGLExtrdFont.h */; }; + FD5047CF0856671F00AF77DC /* FTGLOutlineFont.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E017904C4CB9900DF3958 /* FTGLOutlineFont.h */; }; + FD5047D00856671F00AF77DC /* FTGLPixmapFont.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E017A04C4CB9900DF3958 /* FTGLPixmapFont.h */; }; + FD5047D10856671F00AF77DC /* FTGLPolygonFont.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E017B04C4CB9900DF3958 /* FTGLPolygonFont.h */; }; + FD5047D20856671F00AF77DC /* FTGLTextureFont.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E017C04C4CB9900DF3958 /* FTGLTextureFont.h */; }; + FD5047D30856671F00AF77DC /* FTGlyph.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E017D04C4CB9900DF3958 /* FTGlyph.h */; }; + FD5047D40856671F00AF77DC /* FTGlyphContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E017E04C4CB9900DF3958 /* FTGlyphContainer.h */; }; + FD5047D50856671F00AF77DC /* FTLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E017F04C4CB9900DF3958 /* FTLibrary.h */; }; + FD5047D60856671F00AF77DC /* FTList.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E018004C4CB9900DF3958 /* FTList.h */; }; + FD5047D70856671F00AF77DC /* FTOutlineGlyph.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E018104C4CB9900DF3958 /* FTOutlineGlyph.h */; }; + FD5047D80856671F00AF77DC /* FTPixmapGlyph.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E018204C4CB9900DF3958 /* FTPixmapGlyph.h */; }; + FD5047D90856671F00AF77DC /* FTPoint.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E018304C4CB9900DF3958 /* FTPoint.h */; }; + FD5047DA0856671F00AF77DC /* FTPolyGlyph.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E018404C4CB9900DF3958 /* FTPolyGlyph.h */; }; + FD5047DB0856671F00AF77DC /* FTSize.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E018504C4CB9900DF3958 /* FTSize.h */; }; + FD5047DC0856671F00AF77DC /* FTTextureGlyph.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E018604C4CB9900DF3958 /* FTTextureGlyph.h */; }; + FD5047DD0856671F00AF77DC /* FTVector.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E018704C4CB9900DF3958 /* FTVector.h */; }; + FD5047DE0856671F00AF77DC /* FTVectoriser.h in Headers */ = {isa = PBXBuildFile; fileRef = FD8E018804C4CB9900DF3958 /* FTVectoriser.h */; }; + FD5047DF0856671F00AF77DC /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = FD89459605866C1D0014FA36 /* config.h */; }; + FD5047E00856671F00AF77DC /* configDarwin.h in Headers */ = {isa = PBXBuildFile; fileRef = FD89459705866C1D0014FA36 /* configDarwin.h */; }; + FD5047E10856671F00AF77DC /* GemPixPete.h in Headers */ = {isa = PBXBuildFile; fileRef = FD85B4E806B1A62C00C4B065 /* GemPixPete.h */; }; + FD5047E20856671F00AF77DC /* GemSIMD.h in Headers */ = {isa = PBXBuildFile; fileRef = FD85B4E906B1A62C00C4B065 /* GemSIMD.h */; }; + FD5049B70856672000AF77DC /* GemModelData.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B41E03898BE2019165F0 /* GemModelData.h */; }; + FD5049B80856672000AF77DC /* sgiimage.h in Headers */ = {isa = PBXBuildFile; fileRef = F521B43903898BE2019165F0 /* sgiimage.h */; }; + FD5049DD0856672000AF77DC /* CPPExtern.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E0E070DBC8F001F121C /* CPPExtern.cpp */; }; + FD5049DE0856672000AF77DC /* GemBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E0F070DBC8F001F121C /* GemBase.cpp */; }; + FD5049DF0856672000AF77DC /* GemCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E10070DBC8F001F121C /* GemCache.cpp */; }; + FD5049E00856672000AF77DC /* GemEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E11070DBC8F001F121C /* GemEvent.cpp */; }; + FD5049E10856672000AF77DC /* GemFuncUtil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E12070DBC8F001F121C /* GemFuncUtil.cpp */; }; + FD5049E20856672000AF77DC /* GemGluObj.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E13070DBC8F001F121C /* GemGluObj.cpp */; }; + FD5049E30856672000AF77DC /* GemGLUtil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E14070DBC8F001F121C /* GemGLUtil.cpp */; }; + FD5049E40856672000AF77DC /* GemLoadObj.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E15070DBC8F001F121C /* GemLoadObj.cpp */; }; + FD5049E60856672000AF77DC /* GemModelData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F521B41D03898BE2019165F0 /* GemModelData.cpp */; }; + FD5049E80856672000AF77DC /* GemPixDualObj.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E16070DBC8F001F121C /* GemPixDualObj.cpp */; }; + FD5049E90856672000AF77DC /* GemPixImageLoad.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E17070DBC8F001F121C /* GemPixImageLoad.cpp */; }; + FD5049EA0856672000AF77DC /* GemPixImageSave.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E18070DBC8F001F121C /* GemPixImageSave.cpp */; }; + FD5049EB0856672000AF77DC /* GemPixObj.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E19070DBC8F001F121C /* GemPixObj.cpp */; }; + FD5049EC0856672000AF77DC /* GemPixUtil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E1A070DBC8F001F121C /* GemPixUtil.cpp */; }; + FD5049ED0856672000AF77DC /* GemSetup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E1B070DBC8F001F121C /* GemSetup.cpp */; }; + FD5049EE0856672000AF77DC /* GemShape.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E1C070DBC8F001F121C /* GemShape.cpp */; }; + FD5049EF0856672000AF77DC /* GemState.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E1D070DBC8F001F121C /* GemState.cpp */; }; + FD5049F10856672000AF77DC /* GemWinCreateMac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E1F070DBC8F001F121C /* GemWinCreateMac.cpp */; }; + FD5049F20856672000AF77DC /* Matrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E20070DBC8F001F121C /* Matrix.cpp */; }; + FD5049F40856672000AF77DC /* TextBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCE6E21070DBC8F001F121C /* TextBase.cpp */; }; + FD504BEB0856672000AF77DC /* gemlist_info.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD7A25EA07551CFE0034FA5B /* gemlist_info.cpp */; }; + FD504BFA0856672000AF77DC /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5BDD20B0389F11F0175848A /* AGL.framework */; }; + FD504BFB0856672000AF77DC /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5BDD20C0389F11F0175848A /* Carbon.framework */; }; + FD504BFC0856672000AF77DC /* GLUT.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5BDD20D0389F11F0175848A /* GLUT.framework */; }; + FD504BFD0856672000AF77DC /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5BDD20E0389F11F0175848A /* OpenGL.framework */; }; + FD504BFE0856672000AF77DC /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F5BDD20F0389F11F0175848A /* QuickTime.framework */; }; + FD504BFF0856672000AF77DC /* libftgl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FD8EFC7404C4715B00DF3958 /* libftgl.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 3A2DCF7C0E40974100767D22 /* accumrotate.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = accumrotate.cpp; sourceTree = ""; }; + 3A2DCF7D0E40974100767D22 /* accumrotate.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = accumrotate.h; sourceTree = ""; }; + 3A2DCF7E0E40974100767D22 /* alpha.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = alpha.cpp; sourceTree = ""; }; + 3A2DCF7F0E40974100767D22 /* alpha.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = alpha.h; sourceTree = ""; }; + 3A2DCF800E40974100767D22 /* ambient.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ambient.cpp; sourceTree = ""; }; + 3A2DCF810E40974100767D22 /* ambient.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ambient.h; sourceTree = ""; }; + 3A2DCF820E40974100767D22 /* ambientRGB.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ambientRGB.cpp; sourceTree = ""; }; + 3A2DCF830E40974100767D22 /* ambientRGB.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ambientRGB.h; sourceTree = ""; }; + 3A2DCF840E40974100767D22 /* camera.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = camera.cpp; sourceTree = ""; }; + 3A2DCF850E40974100767D22 /* camera.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = camera.h; sourceTree = ""; }; + 3A2DCF860E40974100767D22 /* color.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = color.cpp; sourceTree = ""; }; + 3A2DCF870E40974100767D22 /* color.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = color.h; sourceTree = ""; }; + 3A2DCF880E40974100767D22 /* colorRGB.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = colorRGB.cpp; sourceTree = ""; }; + 3A2DCF890E40974100767D22 /* colorRGB.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = colorRGB.h; sourceTree = ""; }; + 3A2DCF8A0E40974100767D22 /* depth.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = depth.cpp; sourceTree = ""; }; + 3A2DCF8B0E40974100767D22 /* depth.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = depth.h; sourceTree = ""; }; + 3A2DCF8C0E40974100767D22 /* diffuse.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = diffuse.cpp; sourceTree = ""; }; + 3A2DCF8D0E40974100767D22 /* diffuse.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = diffuse.h; sourceTree = ""; }; + 3A2DCF8E0E40974100767D22 /* diffuseRGB.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = diffuseRGB.cpp; sourceTree = ""; }; + 3A2DCF8F0E40974100767D22 /* diffuseRGB.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = diffuseRGB.h; sourceTree = ""; }; + 3A2DCF900E40974100767D22 /* emission.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = emission.cpp; sourceTree = ""; }; + 3A2DCF910E40974100767D22 /* emission.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = emission.h; sourceTree = ""; }; + 3A2DCF920E40974100767D22 /* emissionRGB.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = emissionRGB.cpp; sourceTree = ""; }; + 3A2DCF930E40974100767D22 /* emissionRGB.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = emissionRGB.h; sourceTree = ""; }; + 3A2DCF940E40974100767D22 /* fragment_program.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = fragment_program.cpp; sourceTree = ""; }; + 3A2DCF950E40974100767D22 /* fragment_program.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = fragment_program.h; sourceTree = ""; }; + 3A2DCF960E40974100767D22 /* glsl_fragment.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = glsl_fragment.cpp; sourceTree = ""; }; + 3A2DCF970E40974100767D22 /* glsl_fragment.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = glsl_fragment.h; sourceTree = ""; }; + 3A2DCF980E40974100767D22 /* glsl_program.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = glsl_program.cpp; sourceTree = ""; }; + 3A2DCF990E40974100767D22 /* glsl_program.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = glsl_program.h; sourceTree = ""; }; + 3A2DCF9A0E40974100767D22 /* glsl_vertex.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = glsl_vertex.cpp; sourceTree = ""; }; + 3A2DCF9B0E40974100767D22 /* glsl_vertex.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = glsl_vertex.h; sourceTree = ""; }; + 3A2DCF9C0E40974100767D22 /* linear_path.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = linear_path.cpp; sourceTree = ""; }; + 3A2DCF9D0E40974100767D22 /* linear_path.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = linear_path.h; sourceTree = ""; }; + 3A2DCF9F0E40974100767D22 /* ortho.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ortho.cpp; sourceTree = ""; }; + 3A2DCFA00E40974100767D22 /* ortho.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ortho.h; sourceTree = ""; }; + 3A2DCFA10E40974100767D22 /* polygon_smooth.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = polygon_smooth.cpp; sourceTree = ""; }; + 3A2DCFA20E40974100767D22 /* polygon_smooth.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = polygon_smooth.h; sourceTree = ""; }; + 3A2DCFA30E40974100767D22 /* rotate.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = rotate.cpp; sourceTree = ""; }; + 3A2DCFA40E40974100767D22 /* rotate.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = rotate.h; sourceTree = ""; }; + 3A2DCFA50E40974100767D22 /* rotateXYZ.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = rotateXYZ.cpp; sourceTree = ""; }; + 3A2DCFA60E40974100767D22 /* rotateXYZ.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = rotateXYZ.h; sourceTree = ""; }; + 3A2DCFA70E40974100767D22 /* scale.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = scale.cpp; sourceTree = ""; }; + 3A2DCFA80E40974100767D22 /* scale.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = scale.h; sourceTree = ""; }; + 3A2DCFA90E40974100767D22 /* scaleXYZ.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = scaleXYZ.cpp; sourceTree = ""; }; + 3A2DCFAA0E40974100767D22 /* scaleXYZ.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = scaleXYZ.h; sourceTree = ""; }; + 3A2DCFAB0E40974100767D22 /* separator.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = separator.cpp; sourceTree = ""; }; + 3A2DCFAC0E40974100767D22 /* separator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = separator.h; sourceTree = ""; }; + 3A2DCFAD0E40974100767D22 /* shearXY.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = shearXY.cpp; sourceTree = ""; }; + 3A2DCFAE0E40974100767D22 /* shearXY.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = shearXY.h; sourceTree = ""; }; + 3A2DCFAF0E40974100767D22 /* shearXZ.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = shearXZ.cpp; sourceTree = ""; }; + 3A2DCFB00E40974100767D22 /* shearXZ.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = shearXZ.h; sourceTree = ""; }; + 3A2DCFB10E40974100767D22 /* shearYX.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = shearYX.cpp; sourceTree = ""; }; + 3A2DCFB20E40974100767D22 /* shearYX.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = shearYX.h; sourceTree = ""; }; + 3A2DCFB30E40974100767D22 /* shearYZ.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = shearYZ.cpp; sourceTree = ""; }; + 3A2DCFB40E40974100767D22 /* shearYZ.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = shearYZ.h; sourceTree = ""; }; + 3A2DCFB50E40974100767D22 /* shearZX.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = shearZX.cpp; sourceTree = ""; }; + 3A2DCFB60E40974100767D22 /* shearZX.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = shearZX.h; sourceTree = ""; }; + 3A2DCFB70E40974100767D22 /* shearZY.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = shearZY.cpp; sourceTree = ""; }; + 3A2DCFB80E40974100767D22 /* shearZY.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = shearZY.h; sourceTree = ""; }; + 3A2DCFB90E40974100767D22 /* shininess.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = shininess.cpp; sourceTree = ""; }; + 3A2DCFBA0E40974100767D22 /* shininess.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = shininess.h; sourceTree = ""; }; + 3A2DCFBB0E40974100767D22 /* specular.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = specular.cpp; sourceTree = ""; }; + 3A2DCFBC0E40974100767D22 /* specular.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = specular.h; sourceTree = ""; }; + 3A2DCFBD0E40974100767D22 /* specularRGB.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = specularRGB.cpp; sourceTree = ""; }; + 3A2DCFBE0E40974100767D22 /* specularRGB.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = specularRGB.h; sourceTree = ""; }; + 3A2DCFBF0E40974100767D22 /* spline_path.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = spline_path.cpp; sourceTree = ""; }; + 3A2DCFC00E40974100767D22 /* spline_path.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = spline_path.h; sourceTree = ""; }; + 3A2DCFC10E40974100767D22 /* translate.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = translate.cpp; sourceTree = ""; }; + 3A2DCFC20E40974100767D22 /* translate.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = translate.h; sourceTree = ""; }; + 3A2DCFC30E40974100767D22 /* translateXYZ.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = translateXYZ.cpp; sourceTree = ""; }; + 3A2DCFC40E40974100767D22 /* translateXYZ.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = translateXYZ.h; sourceTree = ""; }; + 3A2DCFC50E40974100767D22 /* vertex_program.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = vertex_program.cpp; sourceTree = ""; }; + 3A2DCFC60E40974100767D22 /* vertex_program.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = vertex_program.h; sourceTree = ""; }; + 3A2DD0120E40975A00767D22 /* light.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = light.cpp; sourceTree = ""; }; + 3A2DD0130E40975A00767D22 /* light.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = light.h; sourceTree = ""; }; + 3A2DD0150E40975A00767D22 /* spot_light.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = spot_light.cpp; sourceTree = ""; }; + 3A2DD0160E40975A00767D22 /* spot_light.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = spot_light.h; sourceTree = ""; }; + 3A2DD0170E40975A00767D22 /* world_light.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = world_light.cpp; sourceTree = ""; }; + 3A2DD0180E40975A00767D22 /* world_light.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = world_light.h; sourceTree = ""; }; + 3A2DD0200E40978500767D22 /* GEMglAccum.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglAccum.cpp; sourceTree = ""; }; + 3A2DD0210E40978500767D22 /* GEMglAccum.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglAccum.h; sourceTree = ""; }; + 3A2DD0220E40978500767D22 /* GEMglActiveTextureARB.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglActiveTextureARB.cpp; sourceTree = ""; }; + 3A2DD0230E40978500767D22 /* GEMglActiveTextureARB.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglActiveTextureARB.h; sourceTree = ""; }; + 3A2DD0240E40978500767D22 /* GEMglAlphaFunc.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglAlphaFunc.cpp; sourceTree = ""; }; + 3A2DD0250E40978500767D22 /* GEMglAlphaFunc.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglAlphaFunc.h; sourceTree = ""; }; + 3A2DD0260E40978500767D22 /* GEMglAreTexturesResident.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglAreTexturesResident.cpp; sourceTree = ""; }; + 3A2DD0270E40978500767D22 /* GEMglAreTexturesResident.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglAreTexturesResident.h; sourceTree = ""; }; + 3A2DD0280E40978500767D22 /* GEMglArrayElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglArrayElement.cpp; sourceTree = ""; }; + 3A2DD0290E40978500767D22 /* GEMglArrayElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglArrayElement.h; sourceTree = ""; }; + 3A2DD02A0E40978500767D22 /* GEMglBegin.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglBegin.cpp; sourceTree = ""; }; + 3A2DD02B0E40978500767D22 /* GEMglBegin.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglBegin.h; sourceTree = ""; }; + 3A2DD02C0E40978500767D22 /* GEMglBindProgramARB.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglBindProgramARB.cpp; sourceTree = ""; }; + 3A2DD02D0E40978500767D22 /* GEMglBindProgramARB.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglBindProgramARB.h; sourceTree = ""; }; + 3A2DD02E0E40978500767D22 /* GEMglBindTexture.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglBindTexture.cpp; sourceTree = ""; }; + 3A2DD02F0E40978500767D22 /* GEMglBindTexture.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglBindTexture.h; sourceTree = ""; }; + 3A2DD0300E40978500767D22 /* GEMglBitmap.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglBitmap.cpp; sourceTree = ""; }; + 3A2DD0310E40978500767D22 /* GEMglBitmap.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglBitmap.h; sourceTree = ""; }; + 3A2DD0320E40978500767D22 /* GEMglBlendEquation.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglBlendEquation.cpp; sourceTree = ""; }; + 3A2DD0330E40978500767D22 /* GEMglBlendEquation.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglBlendEquation.h; sourceTree = ""; }; + 3A2DD0340E40978500767D22 /* GEMglBlendFunc.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglBlendFunc.cpp; sourceTree = ""; }; + 3A2DD0350E40978500767D22 /* GEMglBlendFunc.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglBlendFunc.h; sourceTree = ""; }; + 3A2DD0360E40978500767D22 /* GEMglCallList.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglCallList.cpp; sourceTree = ""; }; + 3A2DD0370E40978500767D22 /* GEMglCallList.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglCallList.h; sourceTree = ""; }; + 3A2DD0380E40978500767D22 /* GEMglClear.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglClear.cpp; sourceTree = ""; }; + 3A2DD0390E40978500767D22 /* GEMglClear.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglClear.h; sourceTree = ""; }; + 3A2DD03A0E40978500767D22 /* GEMglClearAccum.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglClearAccum.cpp; sourceTree = ""; }; + 3A2DD03B0E40978500767D22 /* GEMglClearAccum.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglClearAccum.h; sourceTree = ""; }; + 3A2DD03C0E40978500767D22 /* GEMglClearColor.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglClearColor.cpp; sourceTree = ""; }; + 3A2DD03D0E40978500767D22 /* GEMglClearColor.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglClearColor.h; sourceTree = ""; }; + 3A2DD03E0E40978500767D22 /* GEMglClearDepth.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglClearDepth.cpp; sourceTree = ""; }; + 3A2DD03F0E40978500767D22 /* GEMglClearDepth.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglClearDepth.h; sourceTree = ""; }; + 3A2DD0400E40978500767D22 /* GEMglClearIndex.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglClearIndex.cpp; sourceTree = ""; }; + 3A2DD0410E40978500767D22 /* GEMglClearIndex.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglClearIndex.h; sourceTree = ""; }; + 3A2DD0420E40978500767D22 /* GEMglClearStencil.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglClearStencil.cpp; sourceTree = ""; }; + 3A2DD0430E40978500767D22 /* GEMglClearStencil.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglClearStencil.h; sourceTree = ""; }; + 3A2DD0440E40978500767D22 /* GEMglClipPlane.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglClipPlane.cpp; sourceTree = ""; }; + 3A2DD0450E40978500767D22 /* GEMglClipPlane.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglClipPlane.h; sourceTree = ""; }; + 3A2DD0460E40978500767D22 /* GEMglColor3b.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColor3b.cpp; sourceTree = ""; }; + 3A2DD0470E40978500767D22 /* GEMglColor3b.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColor3b.h; sourceTree = ""; }; + 3A2DD0480E40978500767D22 /* GEMglColor3bv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColor3bv.cpp; sourceTree = ""; }; + 3A2DD0490E40978500767D22 /* GEMglColor3bv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColor3bv.h; sourceTree = ""; }; + 3A2DD04A0E40978500767D22 /* GEMglColor3d.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColor3d.cpp; sourceTree = ""; }; + 3A2DD04B0E40978500767D22 /* GEMglColor3d.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColor3d.h; sourceTree = ""; }; + 3A2DD04C0E40978500767D22 /* GEMglColor3dv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColor3dv.cpp; sourceTree = ""; }; + 3A2DD04D0E40978500767D22 /* GEMglColor3dv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColor3dv.h; sourceTree = ""; }; + 3A2DD04E0E40978500767D22 /* GEMglColor3f.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColor3f.cpp; sourceTree = ""; }; + 3A2DD04F0E40978500767D22 /* GEMglColor3f.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColor3f.h; sourceTree = ""; }; + 3A2DD0500E40978500767D22 /* GEMglColor3fv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColor3fv.cpp; sourceTree = ""; }; + 3A2DD0510E40978500767D22 /* GEMglColor3fv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColor3fv.h; sourceTree = ""; }; + 3A2DD0520E40978500767D22 /* GEMglColor3i.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColor3i.cpp; sourceTree = ""; }; + 3A2DD0530E40978500767D22 /* GEMglColor3i.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColor3i.h; sourceTree = ""; }; + 3A2DD0540E40978500767D22 /* GEMglColor3iv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColor3iv.cpp; sourceTree = ""; }; + 3A2DD0550E40978500767D22 /* GEMglColor3iv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColor3iv.h; sourceTree = ""; }; + 3A2DD0560E40978500767D22 /* GEMglColor3s.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColor3s.cpp; sourceTree = ""; }; + 3A2DD0570E40978500767D22 /* GEMglColor3s.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColor3s.h; sourceTree = ""; }; + 3A2DD0580E40978500767D22 /* GEMglColor3sv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColor3sv.cpp; sourceTree = ""; }; + 3A2DD0590E40978500767D22 /* GEMglColor3sv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColor3sv.h; sourceTree = ""; }; + 3A2DD05A0E40978500767D22 /* GEMglColor3ub.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColor3ub.cpp; sourceTree = ""; }; + 3A2DD05B0E40978500767D22 /* GEMglColor3ub.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColor3ub.h; sourceTree = ""; }; + 3A2DD05C0E40978500767D22 /* GEMglColor3ubv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColor3ubv.cpp; sourceTree = ""; }; + 3A2DD05D0E40978500767D22 /* GEMglColor3ubv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColor3ubv.h; sourceTree = ""; }; + 3A2DD05E0E40978500767D22 /* GEMglColor3ui.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColor3ui.cpp; sourceTree = ""; }; + 3A2DD05F0E40978500767D22 /* GEMglColor3ui.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColor3ui.h; sourceTree = ""; }; + 3A2DD0600E40978500767D22 /* GEMglColor3uiv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColor3uiv.cpp; sourceTree = ""; }; + 3A2DD0610E40978500767D22 /* GEMglColor3uiv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColor3uiv.h; sourceTree = ""; }; + 3A2DD0620E40978500767D22 /* GEMglColor3us.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColor3us.cpp; sourceTree = ""; }; + 3A2DD0630E40978500767D22 /* GEMglColor3us.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColor3us.h; sourceTree = ""; }; + 3A2DD0640E40978500767D22 /* GEMglColor3usv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColor3usv.cpp; sourceTree = ""; }; + 3A2DD0650E40978500767D22 /* GEMglColor3usv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColor3usv.h; sourceTree = ""; }; + 3A2DD0660E40978500767D22 /* GEMglColor4b.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColor4b.cpp; sourceTree = ""; }; + 3A2DD0670E40978500767D22 /* GEMglColor4b.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColor4b.h; sourceTree = ""; }; + 3A2DD0680E40978500767D22 /* GEMglColor4bv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColor4bv.cpp; sourceTree = ""; }; + 3A2DD0690E40978500767D22 /* GEMglColor4bv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColor4bv.h; sourceTree = ""; }; + 3A2DD06A0E40978500767D22 /* GEMglColor4d.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColor4d.cpp; sourceTree = ""; }; + 3A2DD06B0E40978500767D22 /* GEMglColor4d.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColor4d.h; sourceTree = ""; }; + 3A2DD06C0E40978500767D22 /* GEMglColor4dv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColor4dv.cpp; sourceTree = ""; }; + 3A2DD06D0E40978500767D22 /* GEMglColor4dv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColor4dv.h; sourceTree = ""; }; + 3A2DD06E0E40978500767D22 /* GEMglColor4f.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColor4f.cpp; sourceTree = ""; }; + 3A2DD06F0E40978500767D22 /* GEMglColor4f.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColor4f.h; sourceTree = ""; }; + 3A2DD0700E40978500767D22 /* GEMglColor4fv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColor4fv.cpp; sourceTree = ""; }; + 3A2DD0710E40978500767D22 /* GEMglColor4fv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColor4fv.h; sourceTree = ""; }; + 3A2DD0720E40978500767D22 /* GEMglColor4i.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColor4i.cpp; sourceTree = ""; }; + 3A2DD0730E40978500767D22 /* GEMglColor4i.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColor4i.h; sourceTree = ""; }; + 3A2DD0740E40978500767D22 /* GEMglColor4iv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColor4iv.cpp; sourceTree = ""; }; + 3A2DD0750E40978500767D22 /* GEMglColor4iv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColor4iv.h; sourceTree = ""; }; + 3A2DD0760E40978500767D22 /* GEMglColor4s.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColor4s.cpp; sourceTree = ""; }; + 3A2DD0770E40978500767D22 /* GEMglColor4s.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColor4s.h; sourceTree = ""; }; + 3A2DD0780E40978500767D22 /* GEMglColor4sv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColor4sv.cpp; sourceTree = ""; }; + 3A2DD0790E40978500767D22 /* GEMglColor4sv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColor4sv.h; sourceTree = ""; }; + 3A2DD07A0E40978500767D22 /* GEMglColor4ub.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColor4ub.cpp; sourceTree = ""; }; + 3A2DD07B0E40978500767D22 /* GEMglColor4ub.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColor4ub.h; sourceTree = ""; }; + 3A2DD07C0E40978500767D22 /* GEMglColor4ubv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColor4ubv.cpp; sourceTree = ""; }; + 3A2DD07D0E40978500767D22 /* GEMglColor4ubv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColor4ubv.h; sourceTree = ""; }; + 3A2DD07E0E40978500767D22 /* GEMglColor4ui.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColor4ui.cpp; sourceTree = ""; }; + 3A2DD07F0E40978500767D22 /* GEMglColor4ui.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColor4ui.h; sourceTree = ""; }; + 3A2DD0800E40978500767D22 /* GEMglColor4uiv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColor4uiv.cpp; sourceTree = ""; }; + 3A2DD0810E40978500767D22 /* GEMglColor4uiv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColor4uiv.h; sourceTree = ""; }; + 3A2DD0820E40978500767D22 /* GEMglColor4us.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColor4us.cpp; sourceTree = ""; }; + 3A2DD0830E40978500767D22 /* GEMglColor4us.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColor4us.h; sourceTree = ""; }; + 3A2DD0840E40978500767D22 /* GEMglColor4usv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColor4usv.cpp; sourceTree = ""; }; + 3A2DD0850E40978500767D22 /* GEMglColor4usv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColor4usv.h; sourceTree = ""; }; + 3A2DD0860E40978500767D22 /* GEMglColorMask.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColorMask.cpp; sourceTree = ""; }; + 3A2DD0870E40978500767D22 /* GEMglColorMask.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColorMask.h; sourceTree = ""; }; + 3A2DD0880E40978500767D22 /* GEMglColorMaterial.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglColorMaterial.cpp; sourceTree = ""; }; + 3A2DD0890E40978500767D22 /* GEMglColorMaterial.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglColorMaterial.h; sourceTree = ""; }; + 3A2DD08A0E40978500767D22 /* GEMglCopyPixels.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglCopyPixels.cpp; sourceTree = ""; }; + 3A2DD08B0E40978500767D22 /* GEMglCopyPixels.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglCopyPixels.h; sourceTree = ""; }; + 3A2DD08C0E40978500767D22 /* GEMglCopyTexImage1D.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglCopyTexImage1D.cpp; sourceTree = ""; }; + 3A2DD08D0E40978500767D22 /* GEMglCopyTexImage1D.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglCopyTexImage1D.h; sourceTree = ""; }; + 3A2DD08E0E40978500767D22 /* GEMglCopyTexImage2D.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglCopyTexImage2D.cpp; sourceTree = ""; }; + 3A2DD08F0E40978500767D22 /* GEMglCopyTexImage2D.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglCopyTexImage2D.h; sourceTree = ""; }; + 3A2DD0900E40978500767D22 /* GEMglCopyTexSubImage1D.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglCopyTexSubImage1D.cpp; sourceTree = ""; }; + 3A2DD0910E40978500767D22 /* GEMglCopyTexSubImage1D.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglCopyTexSubImage1D.h; sourceTree = ""; }; + 3A2DD0920E40978500767D22 /* GEMglCopyTexSubImage2D.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglCopyTexSubImage2D.cpp; sourceTree = ""; }; + 3A2DD0930E40978500767D22 /* GEMglCopyTexSubImage2D.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglCopyTexSubImage2D.h; sourceTree = ""; }; + 3A2DD0940E40978500767D22 /* GEMglCullFace.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglCullFace.cpp; sourceTree = ""; }; + 3A2DD0950E40978500767D22 /* GEMglCullFace.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglCullFace.h; sourceTree = ""; }; + 3A2DD0960E40978500767D22 /* GEMglDeleteTextures.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglDeleteTextures.cpp; sourceTree = ""; }; + 3A2DD0970E40978500767D22 /* GEMglDeleteTextures.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglDeleteTextures.h; sourceTree = ""; }; + 3A2DD0980E40978500767D22 /* GEMglDepthFunc.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglDepthFunc.cpp; sourceTree = ""; }; + 3A2DD0990E40978500767D22 /* GEMglDepthFunc.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglDepthFunc.h; sourceTree = ""; }; + 3A2DD09A0E40978500767D22 /* GEMglDepthMask.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglDepthMask.cpp; sourceTree = ""; }; + 3A2DD09B0E40978500767D22 /* GEMglDepthMask.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglDepthMask.h; sourceTree = ""; }; + 3A2DD09C0E40978500767D22 /* GEMglDepthRange.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglDepthRange.cpp; sourceTree = ""; }; + 3A2DD09D0E40978500767D22 /* GEMglDepthRange.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglDepthRange.h; sourceTree = ""; }; + 3A2DD09E0E40978500767D22 /* GEMglDisable.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglDisable.cpp; sourceTree = ""; }; + 3A2DD09F0E40978500767D22 /* GEMglDisable.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglDisable.h; sourceTree = ""; }; + 3A2DD0A00E40978500767D22 /* GEMglDisableClientState.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglDisableClientState.cpp; sourceTree = ""; }; + 3A2DD0A10E40978500767D22 /* GEMglDisableClientState.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglDisableClientState.h; sourceTree = ""; }; + 3A2DD0A20E40978500767D22 /* GEMglDrawArrays.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglDrawArrays.cpp; sourceTree = ""; }; + 3A2DD0A30E40978500767D22 /* GEMglDrawArrays.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglDrawArrays.h; sourceTree = ""; }; + 3A2DD0A40E40978500767D22 /* GEMglDrawBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglDrawBuffer.cpp; sourceTree = ""; }; + 3A2DD0A50E40978500767D22 /* GEMglDrawBuffer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglDrawBuffer.h; sourceTree = ""; }; + 3A2DD0A60E40978500767D22 /* GEMglDrawElements.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglDrawElements.cpp; sourceTree = ""; }; + 3A2DD0A70E40978500767D22 /* GEMglDrawElements.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglDrawElements.h; sourceTree = ""; }; + 3A2DD0A80E40978500767D22 /* GEMglEdgeFlag.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglEdgeFlag.cpp; sourceTree = ""; }; + 3A2DD0A90E40978500767D22 /* GEMglEdgeFlag.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglEdgeFlag.h; sourceTree = ""; }; + 3A2DD0AA0E40978500767D22 /* GEMglEnable.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglEnable.cpp; sourceTree = ""; }; + 3A2DD0AB0E40978500767D22 /* GEMglEnable.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglEnable.h; sourceTree = ""; }; + 3A2DD0AC0E40978500767D22 /* GEMglEnableClientState.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglEnableClientState.cpp; sourceTree = ""; }; + 3A2DD0AD0E40978500767D22 /* GEMglEnableClientState.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglEnableClientState.h; sourceTree = ""; }; + 3A2DD0AE0E40978500767D22 /* GEMglEnd.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglEnd.cpp; sourceTree = ""; }; + 3A2DD0AF0E40978500767D22 /* GEMglEnd.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglEnd.h; sourceTree = ""; }; + 3A2DD0B00E40978500767D22 /* GEMglEndList.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglEndList.cpp; sourceTree = ""; }; + 3A2DD0B10E40978500767D22 /* GEMglEndList.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglEndList.h; sourceTree = ""; }; + 3A2DD0B20E40978500767D22 /* GEMglEvalCoord1d.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglEvalCoord1d.cpp; sourceTree = ""; }; + 3A2DD0B30E40978500767D22 /* GEMglEvalCoord1d.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglEvalCoord1d.h; sourceTree = ""; }; + 3A2DD0B40E40978500767D22 /* GEMglEvalCoord1dv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglEvalCoord1dv.cpp; sourceTree = ""; }; + 3A2DD0B50E40978500767D22 /* GEMglEvalCoord1dv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglEvalCoord1dv.h; sourceTree = ""; }; + 3A2DD0B60E40978500767D22 /* GEMglEvalCoord1f.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglEvalCoord1f.cpp; sourceTree = ""; }; + 3A2DD0B70E40978500767D22 /* GEMglEvalCoord1f.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglEvalCoord1f.h; sourceTree = ""; }; + 3A2DD0B80E40978500767D22 /* GEMglEvalCoord1fv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglEvalCoord1fv.cpp; sourceTree = ""; }; + 3A2DD0B90E40978500767D22 /* GEMglEvalCoord1fv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglEvalCoord1fv.h; sourceTree = ""; }; + 3A2DD0BA0E40978500767D22 /* GEMglEvalCoord2d.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglEvalCoord2d.cpp; sourceTree = ""; }; + 3A2DD0BB0E40978500767D22 /* GEMglEvalCoord2d.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglEvalCoord2d.h; sourceTree = ""; }; + 3A2DD0BC0E40978500767D22 /* GEMglEvalCoord2dv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglEvalCoord2dv.cpp; sourceTree = ""; }; + 3A2DD0BD0E40978500767D22 /* GEMglEvalCoord2dv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglEvalCoord2dv.h; sourceTree = ""; }; + 3A2DD0BE0E40978500767D22 /* GEMglEvalCoord2f.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglEvalCoord2f.cpp; sourceTree = ""; }; + 3A2DD0BF0E40978500767D22 /* GEMglEvalCoord2f.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglEvalCoord2f.h; sourceTree = ""; }; + 3A2DD0C00E40978500767D22 /* GEMglEvalCoord2fv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglEvalCoord2fv.cpp; sourceTree = ""; }; + 3A2DD0C10E40978500767D22 /* GEMglEvalCoord2fv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglEvalCoord2fv.h; sourceTree = ""; }; + 3A2DD0C20E40978500767D22 /* GEMglEvalMesh1.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglEvalMesh1.cpp; sourceTree = ""; }; + 3A2DD0C30E40978500767D22 /* GEMglEvalMesh1.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglEvalMesh1.h; sourceTree = ""; }; + 3A2DD0C40E40978500767D22 /* GEMglEvalMesh2.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglEvalMesh2.cpp; sourceTree = ""; }; + 3A2DD0C50E40978500767D22 /* GEMglEvalMesh2.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglEvalMesh2.h; sourceTree = ""; }; + 3A2DD0C60E40978500767D22 /* GEMglEvalPoint1.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglEvalPoint1.cpp; sourceTree = ""; }; + 3A2DD0C70E40978500767D22 /* GEMglEvalPoint1.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglEvalPoint1.h; sourceTree = ""; }; + 3A2DD0C80E40978500767D22 /* GEMglEvalPoint2.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglEvalPoint2.cpp; sourceTree = ""; }; + 3A2DD0C90E40978500767D22 /* GEMglEvalPoint2.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglEvalPoint2.h; sourceTree = ""; }; + 3A2DD0CA0E40978500767D22 /* GEMglFeedbackBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglFeedbackBuffer.cpp; sourceTree = ""; }; + 3A2DD0CB0E40978500767D22 /* GEMglFeedbackBuffer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglFeedbackBuffer.h; sourceTree = ""; }; + 3A2DD0CC0E40978500767D22 /* GEMglFinish.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglFinish.cpp; sourceTree = ""; }; + 3A2DD0CD0E40978500767D22 /* GEMglFinish.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglFinish.h; sourceTree = ""; }; + 3A2DD0CE0E40978500767D22 /* GEMglFlush.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglFlush.cpp; sourceTree = ""; }; + 3A2DD0CF0E40978500767D22 /* GEMglFlush.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglFlush.h; sourceTree = ""; }; + 3A2DD0D00E40978500767D22 /* GEMglFogf.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglFogf.cpp; sourceTree = ""; }; + 3A2DD0D10E40978500767D22 /* GEMglFogf.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglFogf.h; sourceTree = ""; }; + 3A2DD0D20E40978500767D22 /* GEMglFogfv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglFogfv.cpp; sourceTree = ""; }; + 3A2DD0D30E40978500767D22 /* GEMglFogfv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglFogfv.h; sourceTree = ""; }; + 3A2DD0D40E40978500767D22 /* GEMglFogi.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglFogi.cpp; sourceTree = ""; }; + 3A2DD0D50E40978500767D22 /* GEMglFogi.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglFogi.h; sourceTree = ""; }; + 3A2DD0D60E40978500767D22 /* GEMglFogiv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglFogiv.cpp; sourceTree = ""; }; + 3A2DD0D70E40978500767D22 /* GEMglFogiv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglFogiv.h; sourceTree = ""; }; + 3A2DD0D80E40978500767D22 /* GEMglFrontFace.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglFrontFace.cpp; sourceTree = ""; }; + 3A2DD0D90E40978500767D22 /* GEMglFrontFace.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglFrontFace.h; sourceTree = ""; }; + 3A2DD0DA0E40978500767D22 /* GEMglFrustum.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglFrustum.cpp; sourceTree = ""; }; + 3A2DD0DB0E40978500767D22 /* GEMglFrustum.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglFrustum.h; sourceTree = ""; }; + 3A2DD0DC0E40978500767D22 /* GEMglGenLists.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglGenLists.cpp; sourceTree = ""; }; + 3A2DD0DD0E40978500767D22 /* GEMglGenLists.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglGenLists.h; sourceTree = ""; }; + 3A2DD0DE0E40978500767D22 /* GEMglGenProgramsARB.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglGenProgramsARB.cpp; sourceTree = ""; }; + 3A2DD0DF0E40978500767D22 /* GEMglGenProgramsARB.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglGenProgramsARB.h; sourceTree = ""; }; + 3A2DD0E00E40978500767D22 /* GEMglGenTextures.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglGenTextures.cpp; sourceTree = ""; }; + 3A2DD0E10E40978500767D22 /* GEMglGenTextures.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglGenTextures.h; sourceTree = ""; }; + 3A2DD0E20E40978500767D22 /* GEMglGetError.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglGetError.cpp; sourceTree = ""; }; + 3A2DD0E30E40978500767D22 /* GEMglGetError.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglGetError.h; sourceTree = ""; }; + 3A2DD0E40E40978500767D22 /* GEMglGetFloatv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglGetFloatv.cpp; sourceTree = ""; }; + 3A2DD0E50E40978500767D22 /* GEMglGetFloatv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglGetFloatv.h; sourceTree = ""; }; + 3A2DD0E60E40978500767D22 /* GEMglGetMapdv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglGetMapdv.cpp; sourceTree = ""; }; + 3A2DD0E70E40978500767D22 /* GEMglGetMapdv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglGetMapdv.h; sourceTree = ""; }; + 3A2DD0E80E40978500767D22 /* GEMglGetMapfv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglGetMapfv.cpp; sourceTree = ""; }; + 3A2DD0E90E40978500767D22 /* GEMglGetMapfv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglGetMapfv.h; sourceTree = ""; }; + 3A2DD0EA0E40978500767D22 /* GEMglGetMapiv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglGetMapiv.cpp; sourceTree = ""; }; + 3A2DD0EB0E40978500767D22 /* GEMglGetMapiv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglGetMapiv.h; sourceTree = ""; }; + 3A2DD0EC0E40978500767D22 /* GEMglGetPointerv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglGetPointerv.cpp; sourceTree = ""; }; + 3A2DD0ED0E40978500767D22 /* GEMglGetPointerv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglGetPointerv.h; sourceTree = ""; }; + 3A2DD0EE0E40978500767D22 /* GEMglGetString.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglGetString.cpp; sourceTree = ""; }; + 3A2DD0EF0E40978600767D22 /* GEMglGetString.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglGetString.h; sourceTree = ""; }; + 3A2DD0F00E40978600767D22 /* GEMglHint.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglHint.cpp; sourceTree = ""; }; + 3A2DD0F10E40978600767D22 /* GEMglHint.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglHint.h; sourceTree = ""; }; + 3A2DD0F20E40978600767D22 /* GEMglIndexd.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglIndexd.cpp; sourceTree = ""; }; + 3A2DD0F30E40978600767D22 /* GEMglIndexd.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglIndexd.h; sourceTree = ""; }; + 3A2DD0F40E40978600767D22 /* GEMglIndexdv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglIndexdv.cpp; sourceTree = ""; }; + 3A2DD0F50E40978600767D22 /* GEMglIndexdv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglIndexdv.h; sourceTree = ""; }; + 3A2DD0F60E40978600767D22 /* GEMglIndexf.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglIndexf.cpp; sourceTree = ""; }; + 3A2DD0F70E40978600767D22 /* GEMglIndexf.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglIndexf.h; sourceTree = ""; }; + 3A2DD0F80E40978600767D22 /* GEMglIndexfv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglIndexfv.cpp; sourceTree = ""; }; + 3A2DD0F90E40978600767D22 /* GEMglIndexfv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglIndexfv.h; sourceTree = ""; }; + 3A2DD0FA0E40978600767D22 /* GEMglIndexi.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglIndexi.cpp; sourceTree = ""; }; + 3A2DD0FB0E40978600767D22 /* GEMglIndexi.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglIndexi.h; sourceTree = ""; }; + 3A2DD0FC0E40978600767D22 /* GEMglIndexiv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglIndexiv.cpp; sourceTree = ""; }; + 3A2DD0FD0E40978600767D22 /* GEMglIndexiv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglIndexiv.h; sourceTree = ""; }; + 3A2DD0FE0E40978600767D22 /* GEMglIndexMask.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglIndexMask.cpp; sourceTree = ""; }; + 3A2DD0FF0E40978600767D22 /* GEMglIndexMask.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglIndexMask.h; sourceTree = ""; }; + 3A2DD1000E40978600767D22 /* GEMglIndexs.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglIndexs.cpp; sourceTree = ""; }; + 3A2DD1010E40978600767D22 /* GEMglIndexs.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglIndexs.h; sourceTree = ""; }; + 3A2DD1020E40978600767D22 /* GEMglIndexsv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglIndexsv.cpp; sourceTree = ""; }; + 3A2DD1030E40978600767D22 /* GEMglIndexsv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglIndexsv.h; sourceTree = ""; }; + 3A2DD1040E40978600767D22 /* GEMglIndexub.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglIndexub.cpp; sourceTree = ""; }; + 3A2DD1050E40978600767D22 /* GEMglIndexub.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglIndexub.h; sourceTree = ""; }; + 3A2DD1060E40978600767D22 /* GEMglIndexubv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglIndexubv.cpp; sourceTree = ""; }; + 3A2DD1070E40978600767D22 /* GEMglIndexubv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglIndexubv.h; sourceTree = ""; }; + 3A2DD1080E40978600767D22 /* GEMglInitNames.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglInitNames.cpp; sourceTree = ""; }; + 3A2DD1090E40978600767D22 /* GEMglInitNames.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglInitNames.h; sourceTree = ""; }; + 3A2DD10A0E40978600767D22 /* GEMglIsEnabled.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglIsEnabled.cpp; sourceTree = ""; }; + 3A2DD10B0E40978600767D22 /* GEMglIsEnabled.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglIsEnabled.h; sourceTree = ""; }; + 3A2DD10C0E40978600767D22 /* GEMglIsList.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglIsList.cpp; sourceTree = ""; }; + 3A2DD10D0E40978600767D22 /* GEMglIsList.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglIsList.h; sourceTree = ""; }; + 3A2DD10E0E40978600767D22 /* GEMglIsTexture.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglIsTexture.cpp; sourceTree = ""; }; + 3A2DD10F0E40978600767D22 /* GEMglIsTexture.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglIsTexture.h; sourceTree = ""; }; + 3A2DD1100E40978600767D22 /* GEMglLightf.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglLightf.cpp; sourceTree = ""; }; + 3A2DD1110E40978600767D22 /* GEMglLightf.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglLightf.h; sourceTree = ""; }; + 3A2DD1120E40978600767D22 /* GEMglLighti.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglLighti.cpp; sourceTree = ""; }; + 3A2DD1130E40978600767D22 /* GEMglLighti.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglLighti.h; sourceTree = ""; }; + 3A2DD1140E40978600767D22 /* GEMglLightModelf.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglLightModelf.cpp; sourceTree = ""; }; + 3A2DD1150E40978600767D22 /* GEMglLightModelf.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglLightModelf.h; sourceTree = ""; }; + 3A2DD1160E40978600767D22 /* GEMglLightModeli.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglLightModeli.cpp; sourceTree = ""; }; + 3A2DD1170E40978600767D22 /* GEMglLightModeli.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglLightModeli.h; sourceTree = ""; }; + 3A2DD1180E40978600767D22 /* GEMglLineStipple.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglLineStipple.cpp; sourceTree = ""; }; + 3A2DD1190E40978600767D22 /* GEMglLineStipple.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglLineStipple.h; sourceTree = ""; }; + 3A2DD11A0E40978600767D22 /* GEMglLineWidth.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglLineWidth.cpp; sourceTree = ""; }; + 3A2DD11B0E40978600767D22 /* GEMglLineWidth.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglLineWidth.h; sourceTree = ""; }; + 3A2DD11C0E40978600767D22 /* GEMglLoadIdentity.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglLoadIdentity.cpp; sourceTree = ""; }; + 3A2DD11D0E40978600767D22 /* GEMglLoadIdentity.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglLoadIdentity.h; sourceTree = ""; }; + 3A2DD11E0E40978600767D22 /* GEMglLoadMatrixd.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglLoadMatrixd.cpp; sourceTree = ""; }; + 3A2DD11F0E40978600767D22 /* GEMglLoadMatrixd.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglLoadMatrixd.h; sourceTree = ""; }; + 3A2DD1200E40978600767D22 /* GEMglLoadMatrixf.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglLoadMatrixf.cpp; sourceTree = ""; }; + 3A2DD1210E40978600767D22 /* GEMglLoadMatrixf.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglLoadMatrixf.h; sourceTree = ""; }; + 3A2DD1220E40978600767D22 /* GEMglLoadName.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglLoadName.cpp; sourceTree = ""; }; + 3A2DD1230E40978600767D22 /* GEMglLoadName.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglLoadName.h; sourceTree = ""; }; + 3A2DD1240E40978600767D22 /* GEMglLoadTransposeMatrixd.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglLoadTransposeMatrixd.cpp; sourceTree = ""; }; + 3A2DD1250E40978600767D22 /* GEMglLoadTransposeMatrixd.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglLoadTransposeMatrixd.h; sourceTree = ""; }; + 3A2DD1260E40978600767D22 /* GEMglLoadTransposeMatrixf.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglLoadTransposeMatrixf.cpp; sourceTree = ""; }; + 3A2DD1270E40978600767D22 /* GEMglLoadTransposeMatrixf.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglLoadTransposeMatrixf.h; sourceTree = ""; }; + 3A2DD1280E40978600767D22 /* GEMglLogicOp.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglLogicOp.cpp; sourceTree = ""; }; + 3A2DD1290E40978600767D22 /* GEMglLogicOp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglLogicOp.h; sourceTree = ""; }; + 3A2DD12A0E40978600767D22 /* GEMglMap1d.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglMap1d.cpp; sourceTree = ""; }; + 3A2DD12B0E40978600767D22 /* GEMglMap1d.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglMap1d.h; sourceTree = ""; }; + 3A2DD12C0E40978600767D22 /* GEMglMap1f.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglMap1f.cpp; sourceTree = ""; }; + 3A2DD12D0E40978600767D22 /* GEMglMap1f.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglMap1f.h; sourceTree = ""; }; + 3A2DD12E0E40978600767D22 /* GEMglMap2d.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglMap2d.cpp; sourceTree = ""; }; + 3A2DD12F0E40978600767D22 /* GEMglMap2d.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglMap2d.h; sourceTree = ""; }; + 3A2DD1300E40978600767D22 /* GEMglMap2f.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglMap2f.cpp; sourceTree = ""; }; + 3A2DD1310E40978600767D22 /* GEMglMap2f.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglMap2f.h; sourceTree = ""; }; + 3A2DD1320E40978600767D22 /* GEMglMapGrid1d.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglMapGrid1d.cpp; sourceTree = ""; }; + 3A2DD1330E40978600767D22 /* GEMglMapGrid1d.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglMapGrid1d.h; sourceTree = ""; }; + 3A2DD1340E40978600767D22 /* GEMglMapGrid1f.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglMapGrid1f.cpp; sourceTree = ""; }; + 3A2DD1350E40978600767D22 /* GEMglMapGrid1f.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglMapGrid1f.h; sourceTree = ""; }; + 3A2DD1360E40978600767D22 /* GEMglMapGrid2d.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglMapGrid2d.cpp; sourceTree = ""; }; + 3A2DD1370E40978600767D22 /* GEMglMapGrid2d.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglMapGrid2d.h; sourceTree = ""; }; + 3A2DD1380E40978600767D22 /* GEMglMapGrid2f.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglMapGrid2f.cpp; sourceTree = ""; }; + 3A2DD1390E40978600767D22 /* GEMglMapGrid2f.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglMapGrid2f.h; sourceTree = ""; }; + 3A2DD13A0E40978600767D22 /* GEMglMaterialf.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglMaterialf.cpp; sourceTree = ""; }; + 3A2DD13B0E40978600767D22 /* GEMglMaterialf.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglMaterialf.h; sourceTree = ""; }; + 3A2DD13C0E40978600767D22 /* GEMglMateriali.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglMateriali.cpp; sourceTree = ""; }; + 3A2DD13D0E40978600767D22 /* GEMglMateriali.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglMateriali.h; sourceTree = ""; }; + 3A2DD13E0E40978600767D22 /* GEMglMatrixMode.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglMatrixMode.cpp; sourceTree = ""; }; + 3A2DD13F0E40978600767D22 /* GEMglMatrixMode.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglMatrixMode.h; sourceTree = ""; }; + 3A2DD1400E40978600767D22 /* GEMglMultiTexCoord2fARB.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglMultiTexCoord2fARB.cpp; sourceTree = ""; }; + 3A2DD1410E40978600767D22 /* GEMglMultiTexCoord2fARB.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglMultiTexCoord2fARB.h; sourceTree = ""; }; + 3A2DD1420E40978600767D22 /* GEMglMultMatrixd.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglMultMatrixd.cpp; sourceTree = ""; }; + 3A2DD1430E40978600767D22 /* GEMglMultMatrixd.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglMultMatrixd.h; sourceTree = ""; }; + 3A2DD1440E40978600767D22 /* GEMglMultMatrixf.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglMultMatrixf.cpp; sourceTree = ""; }; + 3A2DD1450E40978600767D22 /* GEMglMultMatrixf.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglMultMatrixf.h; sourceTree = ""; }; + 3A2DD1460E40978600767D22 /* GEMglMultTransposeMatrixd.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglMultTransposeMatrixd.cpp; sourceTree = ""; }; + 3A2DD1470E40978600767D22 /* GEMglMultTransposeMatrixd.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglMultTransposeMatrixd.h; sourceTree = ""; }; + 3A2DD1480E40978600767D22 /* GEMglMultTransposeMatrixf.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglMultTransposeMatrixf.cpp; sourceTree = ""; }; + 3A2DD1490E40978600767D22 /* GEMglMultTransposeMatrixf.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglMultTransposeMatrixf.h; sourceTree = ""; }; + 3A2DD14A0E40978600767D22 /* GEMglNewList.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglNewList.cpp; sourceTree = ""; }; + 3A2DD14B0E40978600767D22 /* GEMglNewList.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglNewList.h; sourceTree = ""; }; + 3A2DD14C0E40978600767D22 /* GEMglNormal3b.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglNormal3b.cpp; sourceTree = ""; }; + 3A2DD14D0E40978600767D22 /* GEMglNormal3b.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglNormal3b.h; sourceTree = ""; }; + 3A2DD14E0E40978600767D22 /* GEMglNormal3bv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglNormal3bv.cpp; sourceTree = ""; }; + 3A2DD14F0E40978600767D22 /* GEMglNormal3bv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglNormal3bv.h; sourceTree = ""; }; + 3A2DD1500E40978600767D22 /* GEMglNormal3d.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglNormal3d.cpp; sourceTree = ""; }; + 3A2DD1510E40978600767D22 /* GEMglNormal3d.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglNormal3d.h; sourceTree = ""; }; + 3A2DD1520E40978600767D22 /* GEMglNormal3dv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglNormal3dv.cpp; sourceTree = ""; }; + 3A2DD1530E40978600767D22 /* GEMglNormal3dv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglNormal3dv.h; sourceTree = ""; }; + 3A2DD1540E40978600767D22 /* GEMglNormal3f.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglNormal3f.cpp; sourceTree = ""; }; + 3A2DD1550E40978600767D22 /* GEMglNormal3f.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglNormal3f.h; sourceTree = ""; }; + 3A2DD1560E40978600767D22 /* GEMglNormal3fv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglNormal3fv.cpp; sourceTree = ""; }; + 3A2DD1570E40978600767D22 /* GEMglNormal3fv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglNormal3fv.h; sourceTree = ""; }; + 3A2DD1580E40978600767D22 /* GEMglNormal3i.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglNormal3i.cpp; sourceTree = ""; }; + 3A2DD1590E40978600767D22 /* GEMglNormal3i.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglNormal3i.h; sourceTree = ""; }; + 3A2DD15A0E40978600767D22 /* GEMglNormal3iv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglNormal3iv.cpp; sourceTree = ""; }; + 3A2DD15B0E40978600767D22 /* GEMglNormal3iv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglNormal3iv.h; sourceTree = ""; }; + 3A2DD15C0E40978600767D22 /* GEMglNormal3s.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglNormal3s.cpp; sourceTree = ""; }; + 3A2DD15D0E40978600767D22 /* GEMglNormal3s.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglNormal3s.h; sourceTree = ""; }; + 3A2DD15E0E40978600767D22 /* GEMglNormal3sv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglNormal3sv.cpp; sourceTree = ""; }; + 3A2DD15F0E40978600767D22 /* GEMglNormal3sv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglNormal3sv.h; sourceTree = ""; }; + 3A2DD1600E40978600767D22 /* GEMglOrtho.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglOrtho.cpp; sourceTree = ""; }; + 3A2DD1610E40978600767D22 /* GEMglOrtho.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglOrtho.h; sourceTree = ""; }; + 3A2DD1620E40978600767D22 /* GEMglPassThrough.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglPassThrough.cpp; sourceTree = ""; }; + 3A2DD1630E40978600767D22 /* GEMglPassThrough.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglPassThrough.h; sourceTree = ""; }; + 3A2DD1640E40978600767D22 /* GEMglPixelStoref.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglPixelStoref.cpp; sourceTree = ""; }; + 3A2DD1650E40978600767D22 /* GEMglPixelStoref.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglPixelStoref.h; sourceTree = ""; }; + 3A2DD1660E40978600767D22 /* GEMglPixelStorei.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglPixelStorei.cpp; sourceTree = ""; }; + 3A2DD1670E40978600767D22 /* GEMglPixelStorei.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglPixelStorei.h; sourceTree = ""; }; + 3A2DD1680E40978600767D22 /* GEMglPixelTransferf.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglPixelTransferf.cpp; sourceTree = ""; }; + 3A2DD1690E40978600767D22 /* GEMglPixelTransferf.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglPixelTransferf.h; sourceTree = ""; }; + 3A2DD16A0E40978600767D22 /* GEMglPixelTransferi.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglPixelTransferi.cpp; sourceTree = ""; }; + 3A2DD16B0E40978600767D22 /* GEMglPixelTransferi.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglPixelTransferi.h; sourceTree = ""; }; + 3A2DD16C0E40978600767D22 /* GEMglPixelZoom.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglPixelZoom.cpp; sourceTree = ""; }; + 3A2DD16D0E40978600767D22 /* GEMglPixelZoom.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglPixelZoom.h; sourceTree = ""; }; + 3A2DD16E0E40978600767D22 /* GEMglPointSize.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglPointSize.cpp; sourceTree = ""; }; + 3A2DD16F0E40978600767D22 /* GEMglPointSize.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglPointSize.h; sourceTree = ""; }; + 3A2DD1700E40978600767D22 /* GEMglPolygonMode.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglPolygonMode.cpp; sourceTree = ""; }; + 3A2DD1710E40978600767D22 /* GEMglPolygonMode.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglPolygonMode.h; sourceTree = ""; }; + 3A2DD1720E40978600767D22 /* GEMglPolygonOffset.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglPolygonOffset.cpp; sourceTree = ""; }; + 3A2DD1730E40978600767D22 /* GEMglPolygonOffset.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglPolygonOffset.h; sourceTree = ""; }; + 3A2DD1740E40978600767D22 /* GEMglPopAttrib.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglPopAttrib.cpp; sourceTree = ""; }; + 3A2DD1750E40978600767D22 /* GEMglPopAttrib.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglPopAttrib.h; sourceTree = ""; }; + 3A2DD1760E40978600767D22 /* GEMglPopClientAttrib.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglPopClientAttrib.cpp; sourceTree = ""; }; + 3A2DD1770E40978600767D22 /* GEMglPopClientAttrib.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglPopClientAttrib.h; sourceTree = ""; }; + 3A2DD1780E40978600767D22 /* GEMglPopMatrix.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglPopMatrix.cpp; sourceTree = ""; }; + 3A2DD1790E40978600767D22 /* GEMglPopMatrix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglPopMatrix.h; sourceTree = ""; }; + 3A2DD17A0E40978600767D22 /* GEMglPopName.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglPopName.cpp; sourceTree = ""; }; + 3A2DD17B0E40978600767D22 /* GEMglPopName.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglPopName.h; sourceTree = ""; }; + 3A2DD17C0E40978600767D22 /* GEMglPrioritizeTextures.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglPrioritizeTextures.cpp; sourceTree = ""; }; + 3A2DD17D0E40978600767D22 /* GEMglPrioritizeTextures.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglPrioritizeTextures.h; sourceTree = ""; }; + 3A2DD17E0E40978600767D22 /* GEMglProgramEnvParameter4dARB.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglProgramEnvParameter4dARB.cpp; sourceTree = ""; }; + 3A2DD17F0E40978600767D22 /* GEMglProgramEnvParameter4dARB.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglProgramEnvParameter4dARB.h; sourceTree = ""; }; + 3A2DD1800E40978600767D22 /* GEMglProgramEnvParameter4fvARB.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglProgramEnvParameter4fvARB.cpp; sourceTree = ""; }; + 3A2DD1810E40978600767D22 /* GEMglProgramEnvParameter4fvARB.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglProgramEnvParameter4fvARB.h; sourceTree = ""; }; + 3A2DD1820E40978600767D22 /* GEMglProgramLocalParameter4fvARB.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglProgramLocalParameter4fvARB.cpp; sourceTree = ""; }; + 3A2DD1830E40978600767D22 /* GEMglProgramLocalParameter4fvARB.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglProgramLocalParameter4fvARB.h; sourceTree = ""; }; + 3A2DD1840E40978600767D22 /* GEMglProgramStringARB.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglProgramStringARB.cpp; sourceTree = ""; }; + 3A2DD1850E40978600767D22 /* GEMglProgramStringARB.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglProgramStringARB.h; sourceTree = ""; }; + 3A2DD1860E40978600767D22 /* GEMglPushAttrib.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglPushAttrib.cpp; sourceTree = ""; }; + 3A2DD1870E40978600767D22 /* GEMglPushAttrib.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglPushAttrib.h; sourceTree = ""; }; + 3A2DD1880E40978600767D22 /* GEMglPushClientAttrib.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglPushClientAttrib.cpp; sourceTree = ""; }; + 3A2DD1890E40978600767D22 /* GEMglPushClientAttrib.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglPushClientAttrib.h; sourceTree = ""; }; + 3A2DD18A0E40978600767D22 /* GEMglPushMatrix.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglPushMatrix.cpp; sourceTree = ""; }; + 3A2DD18B0E40978600767D22 /* GEMglPushMatrix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglPushMatrix.h; sourceTree = ""; }; + 3A2DD18C0E40978600767D22 /* GEMglPushName.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglPushName.cpp; sourceTree = ""; }; + 3A2DD18D0E40978600767D22 /* GEMglPushName.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglPushName.h; sourceTree = ""; }; + 3A2DD18E0E40978600767D22 /* GEMglRasterPos2d.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglRasterPos2d.cpp; sourceTree = ""; }; + 3A2DD18F0E40978600767D22 /* GEMglRasterPos2d.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglRasterPos2d.h; sourceTree = ""; }; + 3A2DD1900E40978600767D22 /* GEMglRasterPos2dv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglRasterPos2dv.cpp; sourceTree = ""; }; + 3A2DD1910E40978600767D22 /* GEMglRasterPos2dv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglRasterPos2dv.h; sourceTree = ""; }; + 3A2DD1920E40978600767D22 /* GEMglRasterPos2f.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglRasterPos2f.cpp; sourceTree = ""; }; + 3A2DD1930E40978600767D22 /* GEMglRasterPos2f.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglRasterPos2f.h; sourceTree = ""; }; + 3A2DD1940E40978600767D22 /* GEMglRasterPos2fv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglRasterPos2fv.cpp; sourceTree = ""; }; + 3A2DD1950E40978600767D22 /* GEMglRasterPos2fv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglRasterPos2fv.h; sourceTree = ""; }; + 3A2DD1960E40978600767D22 /* GEMglRasterPos2i.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglRasterPos2i.cpp; sourceTree = ""; }; + 3A2DD1970E40978600767D22 /* GEMglRasterPos2i.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglRasterPos2i.h; sourceTree = ""; }; + 3A2DD1980E40978600767D22 /* GEMglRasterPos2iv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglRasterPos2iv.cpp; sourceTree = ""; }; + 3A2DD1990E40978600767D22 /* GEMglRasterPos2iv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglRasterPos2iv.h; sourceTree = ""; }; + 3A2DD19A0E40978600767D22 /* GEMglRasterPos2s.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglRasterPos2s.cpp; sourceTree = ""; }; + 3A2DD19B0E40978600767D22 /* GEMglRasterPos2s.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglRasterPos2s.h; sourceTree = ""; }; + 3A2DD19C0E40978600767D22 /* GEMglRasterPos2sv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglRasterPos2sv.cpp; sourceTree = ""; }; + 3A2DD19D0E40978600767D22 /* GEMglRasterPos2sv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglRasterPos2sv.h; sourceTree = ""; }; + 3A2DD19E0E40978600767D22 /* GEMglRasterPos3d.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglRasterPos3d.cpp; sourceTree = ""; }; + 3A2DD19F0E40978600767D22 /* GEMglRasterPos3d.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglRasterPos3d.h; sourceTree = ""; }; + 3A2DD1A00E40978600767D22 /* GEMglRasterPos3dv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglRasterPos3dv.cpp; sourceTree = ""; }; + 3A2DD1A10E40978600767D22 /* GEMglRasterPos3dv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglRasterPos3dv.h; sourceTree = ""; }; + 3A2DD1A20E40978600767D22 /* GEMglRasterPos3f.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglRasterPos3f.cpp; sourceTree = ""; }; + 3A2DD1A30E40978600767D22 /* GEMglRasterPos3f.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglRasterPos3f.h; sourceTree = ""; }; + 3A2DD1A40E40978600767D22 /* GEMglRasterPos3fv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglRasterPos3fv.cpp; sourceTree = ""; }; + 3A2DD1A50E40978600767D22 /* GEMglRasterPos3fv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglRasterPos3fv.h; sourceTree = ""; }; + 3A2DD1A60E40978600767D22 /* GEMglRasterPos3i.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglRasterPos3i.cpp; sourceTree = ""; }; + 3A2DD1A70E40978600767D22 /* GEMglRasterPos3i.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglRasterPos3i.h; sourceTree = ""; }; + 3A2DD1A80E40978600767D22 /* GEMglRasterPos3iv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglRasterPos3iv.cpp; sourceTree = ""; }; + 3A2DD1A90E40978600767D22 /* GEMglRasterPos3iv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglRasterPos3iv.h; sourceTree = ""; }; + 3A2DD1AA0E40978600767D22 /* GEMglRasterPos3s.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglRasterPos3s.cpp; sourceTree = ""; }; + 3A2DD1AB0E40978600767D22 /* GEMglRasterPos3s.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglRasterPos3s.h; sourceTree = ""; }; + 3A2DD1AC0E40978600767D22 /* GEMglRasterPos3sv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglRasterPos3sv.cpp; sourceTree = ""; }; + 3A2DD1AD0E40978600767D22 /* GEMglRasterPos3sv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglRasterPos3sv.h; sourceTree = ""; }; + 3A2DD1AE0E40978600767D22 /* GEMglRasterPos4d.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglRasterPos4d.cpp; sourceTree = ""; }; + 3A2DD1AF0E40978600767D22 /* GEMglRasterPos4d.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglRasterPos4d.h; sourceTree = ""; }; + 3A2DD1B00E40978600767D22 /* GEMglRasterPos4dv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglRasterPos4dv.cpp; sourceTree = ""; }; + 3A2DD1B10E40978600767D22 /* GEMglRasterPos4dv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglRasterPos4dv.h; sourceTree = ""; }; + 3A2DD1B20E40978600767D22 /* GEMglRasterPos4f.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglRasterPos4f.cpp; sourceTree = ""; }; + 3A2DD1B30E40978600767D22 /* GEMglRasterPos4f.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglRasterPos4f.h; sourceTree = ""; }; + 3A2DD1B40E40978600767D22 /* GEMglRasterPos4fv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglRasterPos4fv.cpp; sourceTree = ""; }; + 3A2DD1B50E40978600767D22 /* GEMglRasterPos4fv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglRasterPos4fv.h; sourceTree = ""; }; + 3A2DD1B60E40978600767D22 /* GEMglRasterPos4i.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglRasterPos4i.cpp; sourceTree = ""; }; + 3A2DD1B70E40978600767D22 /* GEMglRasterPos4i.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglRasterPos4i.h; sourceTree = ""; }; + 3A2DD1B80E40978600767D22 /* GEMglRasterPos4iv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglRasterPos4iv.cpp; sourceTree = ""; }; + 3A2DD1B90E40978600767D22 /* GEMglRasterPos4iv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglRasterPos4iv.h; sourceTree = ""; }; + 3A2DD1BA0E40978600767D22 /* GEMglRasterPos4s.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglRasterPos4s.cpp; sourceTree = ""; }; + 3A2DD1BB0E40978600767D22 /* GEMglRasterPos4s.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglRasterPos4s.h; sourceTree = ""; }; + 3A2DD1BC0E40978600767D22 /* GEMglRasterPos4sv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglRasterPos4sv.cpp; sourceTree = ""; }; + 3A2DD1BD0E40978600767D22 /* GEMglRasterPos4sv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglRasterPos4sv.h; sourceTree = ""; }; + 3A2DD1BE0E40978600767D22 /* GEMglRectd.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglRectd.cpp; sourceTree = ""; }; + 3A2DD1BF0E40978600767D22 /* GEMglRectd.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglRectd.h; sourceTree = ""; }; + 3A2DD1C00E40978600767D22 /* GEMglRectf.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglRectf.cpp; sourceTree = ""; }; + 3A2DD1C10E40978600767D22 /* GEMglRectf.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglRectf.h; sourceTree = ""; }; + 3A2DD1C20E40978600767D22 /* GEMglRecti.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglRecti.cpp; sourceTree = ""; }; + 3A2DD1C30E40978600767D22 /* GEMglRecti.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglRecti.h; sourceTree = ""; }; + 3A2DD1C40E40978600767D22 /* GEMglRects.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglRects.cpp; sourceTree = ""; }; + 3A2DD1C50E40978600767D22 /* GEMglRects.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglRects.h; sourceTree = ""; }; + 3A2DD1C60E40978600767D22 /* GEMglRenderMode.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglRenderMode.cpp; sourceTree = ""; }; + 3A2DD1C70E40978600767D22 /* GEMglRenderMode.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglRenderMode.h; sourceTree = ""; }; + 3A2DD1C80E40978600767D22 /* GEMglReportError.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglReportError.cpp; sourceTree = ""; }; + 3A2DD1C90E40978600767D22 /* GEMglReportError.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglReportError.h; sourceTree = ""; }; + 3A2DD1CA0E40978600767D22 /* GEMglRotated.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglRotated.cpp; sourceTree = ""; }; + 3A2DD1CB0E40978600767D22 /* GEMglRotated.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglRotated.h; sourceTree = ""; }; + 3A2DD1CC0E40978600767D22 /* GEMglRotatef.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglRotatef.cpp; sourceTree = ""; }; + 3A2DD1CD0E40978600767D22 /* GEMglRotatef.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglRotatef.h; sourceTree = ""; }; + 3A2DD1CE0E40978600767D22 /* GEMglScaled.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglScaled.cpp; sourceTree = ""; }; + 3A2DD1CF0E40978600767D22 /* GEMglScaled.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglScaled.h; sourceTree = ""; }; + 3A2DD1D00E40978600767D22 /* GEMglScalef.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglScalef.cpp; sourceTree = ""; }; + 3A2DD1D10E40978600767D22 /* GEMglScalef.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglScalef.h; sourceTree = ""; }; + 3A2DD1D20E40978600767D22 /* GEMglScissor.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglScissor.cpp; sourceTree = ""; }; + 3A2DD1D30E40978600767D22 /* GEMglScissor.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglScissor.h; sourceTree = ""; }; + 3A2DD1D40E40978600767D22 /* GEMglSelectBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglSelectBuffer.cpp; sourceTree = ""; }; + 3A2DD1D50E40978600767D22 /* GEMglSelectBuffer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglSelectBuffer.h; sourceTree = ""; }; + 3A2DD1D60E40978600767D22 /* GEMglShadeModel.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglShadeModel.cpp; sourceTree = ""; }; + 3A2DD1D70E40978600767D22 /* GEMglShadeModel.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglShadeModel.h; sourceTree = ""; }; + 3A2DD1D80E40978600767D22 /* GEMglStencilFunc.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglStencilFunc.cpp; sourceTree = ""; }; + 3A2DD1D90E40978600767D22 /* GEMglStencilFunc.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglStencilFunc.h; sourceTree = ""; }; + 3A2DD1DA0E40978600767D22 /* GEMglStencilMask.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglStencilMask.cpp; sourceTree = ""; }; + 3A2DD1DB0E40978600767D22 /* GEMglStencilMask.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglStencilMask.h; sourceTree = ""; }; + 3A2DD1DC0E40978600767D22 /* GEMglStencilOp.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglStencilOp.cpp; sourceTree = ""; }; + 3A2DD1DD0E40978600767D22 /* GEMglStencilOp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglStencilOp.h; sourceTree = ""; }; + 3A2DD1DE0E40978600767D22 /* GEMglTexCoord1d.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexCoord1d.cpp; sourceTree = ""; }; + 3A2DD1DF0E40978600767D22 /* GEMglTexCoord1d.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexCoord1d.h; sourceTree = ""; }; + 3A2DD1E00E40978600767D22 /* GEMglTexCoord1dv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexCoord1dv.cpp; sourceTree = ""; }; + 3A2DD1E10E40978600767D22 /* GEMglTexCoord1dv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexCoord1dv.h; sourceTree = ""; }; + 3A2DD1E20E40978600767D22 /* GEMglTexCoord1f.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexCoord1f.cpp; sourceTree = ""; }; + 3A2DD1E30E40978600767D22 /* GEMglTexCoord1f.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexCoord1f.h; sourceTree = ""; }; + 3A2DD1E40E40978600767D22 /* GEMglTexCoord1fv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexCoord1fv.cpp; sourceTree = ""; }; + 3A2DD1E50E40978600767D22 /* GEMglTexCoord1fv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexCoord1fv.h; sourceTree = ""; }; + 3A2DD1E60E40978600767D22 /* GEMglTexCoord1i.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexCoord1i.cpp; sourceTree = ""; }; + 3A2DD1E70E40978600767D22 /* GEMglTexCoord1i.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexCoord1i.h; sourceTree = ""; }; + 3A2DD1E80E40978600767D22 /* GEMglTexCoord1iv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexCoord1iv.cpp; sourceTree = ""; }; + 3A2DD1E90E40978600767D22 /* GEMglTexCoord1iv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexCoord1iv.h; sourceTree = ""; }; + 3A2DD1EA0E40978600767D22 /* GEMglTexCoord1s.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexCoord1s.cpp; sourceTree = ""; }; + 3A2DD1EB0E40978600767D22 /* GEMglTexCoord1s.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexCoord1s.h; sourceTree = ""; }; + 3A2DD1EC0E40978600767D22 /* GEMglTexCoord1sv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexCoord1sv.cpp; sourceTree = ""; }; + 3A2DD1ED0E40978600767D22 /* GEMglTexCoord1sv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexCoord1sv.h; sourceTree = ""; }; + 3A2DD1EE0E40978600767D22 /* GEMglTexCoord2d.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexCoord2d.cpp; sourceTree = ""; }; + 3A2DD1EF0E40978600767D22 /* GEMglTexCoord2d.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexCoord2d.h; sourceTree = ""; }; + 3A2DD1F00E40978600767D22 /* GEMglTexCoord2dv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexCoord2dv.cpp; sourceTree = ""; }; + 3A2DD1F10E40978600767D22 /* GEMglTexCoord2dv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexCoord2dv.h; sourceTree = ""; }; + 3A2DD1F20E40978600767D22 /* GEMglTexCoord2f.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexCoord2f.cpp; sourceTree = ""; }; + 3A2DD1F30E40978600767D22 /* GEMglTexCoord2f.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexCoord2f.h; sourceTree = ""; }; + 3A2DD1F40E40978600767D22 /* GEMglTexCoord2fv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexCoord2fv.cpp; sourceTree = ""; }; + 3A2DD1F50E40978600767D22 /* GEMglTexCoord2fv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexCoord2fv.h; sourceTree = ""; }; + 3A2DD1F60E40978600767D22 /* GEMglTexCoord2i.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexCoord2i.cpp; sourceTree = ""; }; + 3A2DD1F70E40978600767D22 /* GEMglTexCoord2i.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexCoord2i.h; sourceTree = ""; }; + 3A2DD1F80E40978600767D22 /* GEMglTexCoord2iv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexCoord2iv.cpp; sourceTree = ""; }; + 3A2DD1F90E40978600767D22 /* GEMglTexCoord2iv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexCoord2iv.h; sourceTree = ""; }; + 3A2DD1FA0E40978600767D22 /* GEMglTexCoord2s.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexCoord2s.cpp; sourceTree = ""; }; + 3A2DD1FB0E40978600767D22 /* GEMglTexCoord2s.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexCoord2s.h; sourceTree = ""; }; + 3A2DD1FC0E40978600767D22 /* GEMglTexCoord2sv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexCoord2sv.cpp; sourceTree = ""; }; + 3A2DD1FD0E40978600767D22 /* GEMglTexCoord2sv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexCoord2sv.h; sourceTree = ""; }; + 3A2DD1FE0E40978600767D22 /* GEMglTexCoord3d.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexCoord3d.cpp; sourceTree = ""; }; + 3A2DD1FF0E40978600767D22 /* GEMglTexCoord3d.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexCoord3d.h; sourceTree = ""; }; + 3A2DD2000E40978600767D22 /* GEMglTexCoord3dv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexCoord3dv.cpp; sourceTree = ""; }; + 3A2DD2010E40978600767D22 /* GEMglTexCoord3dv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexCoord3dv.h; sourceTree = ""; }; + 3A2DD2020E40978600767D22 /* GEMglTexCoord3f.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexCoord3f.cpp; sourceTree = ""; }; + 3A2DD2030E40978600767D22 /* GEMglTexCoord3f.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexCoord3f.h; sourceTree = ""; }; + 3A2DD2040E40978600767D22 /* GEMglTexCoord3fv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexCoord3fv.cpp; sourceTree = ""; }; + 3A2DD2050E40978600767D22 /* GEMglTexCoord3fv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexCoord3fv.h; sourceTree = ""; }; + 3A2DD2060E40978600767D22 /* GEMglTexCoord3i.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexCoord3i.cpp; sourceTree = ""; }; + 3A2DD2070E40978600767D22 /* GEMglTexCoord3i.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexCoord3i.h; sourceTree = ""; }; + 3A2DD2080E40978600767D22 /* GEMglTexCoord3iv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexCoord3iv.cpp; sourceTree = ""; }; + 3A2DD2090E40978600767D22 /* GEMglTexCoord3iv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexCoord3iv.h; sourceTree = ""; }; + 3A2DD20A0E40978600767D22 /* GEMglTexCoord3s.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexCoord3s.cpp; sourceTree = ""; }; + 3A2DD20B0E40978600767D22 /* GEMglTexCoord3s.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexCoord3s.h; sourceTree = ""; }; + 3A2DD20C0E40978600767D22 /* GEMglTexCoord3sv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexCoord3sv.cpp; sourceTree = ""; }; + 3A2DD20D0E40978600767D22 /* GEMglTexCoord3sv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexCoord3sv.h; sourceTree = ""; }; + 3A2DD20E0E40978600767D22 /* GEMglTexCoord4d.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexCoord4d.cpp; sourceTree = ""; }; + 3A2DD20F0E40978600767D22 /* GEMglTexCoord4d.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexCoord4d.h; sourceTree = ""; }; + 3A2DD2100E40978600767D22 /* GEMglTexCoord4dv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexCoord4dv.cpp; sourceTree = ""; }; + 3A2DD2110E40978600767D22 /* GEMglTexCoord4dv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexCoord4dv.h; sourceTree = ""; }; + 3A2DD2120E40978600767D22 /* GEMglTexCoord4f.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexCoord4f.cpp; sourceTree = ""; }; + 3A2DD2130E40978600767D22 /* GEMglTexCoord4f.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexCoord4f.h; sourceTree = ""; }; + 3A2DD2140E40978600767D22 /* GEMglTexCoord4fv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexCoord4fv.cpp; sourceTree = ""; }; + 3A2DD2150E40978600767D22 /* GEMglTexCoord4fv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexCoord4fv.h; sourceTree = ""; }; + 3A2DD2160E40978600767D22 /* GEMglTexCoord4i.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexCoord4i.cpp; sourceTree = ""; }; + 3A2DD2170E40978600767D22 /* GEMglTexCoord4i.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexCoord4i.h; sourceTree = ""; }; + 3A2DD2180E40978600767D22 /* GEMglTexCoord4iv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexCoord4iv.cpp; sourceTree = ""; }; + 3A2DD2190E40978600767D22 /* GEMglTexCoord4iv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexCoord4iv.h; sourceTree = ""; }; + 3A2DD21A0E40978600767D22 /* GEMglTexCoord4s.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexCoord4s.cpp; sourceTree = ""; }; + 3A2DD21B0E40978600767D22 /* GEMglTexCoord4s.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexCoord4s.h; sourceTree = ""; }; + 3A2DD21C0E40978600767D22 /* GEMglTexCoord4sv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexCoord4sv.cpp; sourceTree = ""; }; + 3A2DD21D0E40978600767D22 /* GEMglTexCoord4sv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexCoord4sv.h; sourceTree = ""; }; + 3A2DD21E0E40978600767D22 /* GEMglTexEnvf.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexEnvf.cpp; sourceTree = ""; }; + 3A2DD21F0E40978600767D22 /* GEMglTexEnvf.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexEnvf.h; sourceTree = ""; }; + 3A2DD2200E40978600767D22 /* GEMglTexEnvi.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexEnvi.cpp; sourceTree = ""; }; + 3A2DD2210E40978600767D22 /* GEMglTexEnvi.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexEnvi.h; sourceTree = ""; }; + 3A2DD2220E40978700767D22 /* GEMglTexGend.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexGend.cpp; sourceTree = ""; }; + 3A2DD2230E40978700767D22 /* GEMglTexGend.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexGend.h; sourceTree = ""; }; + 3A2DD2240E40978700767D22 /* GEMglTexGenf.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexGenf.cpp; sourceTree = ""; }; + 3A2DD2250E40978700767D22 /* GEMglTexGenf.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexGenf.h; sourceTree = ""; }; + 3A2DD2260E40978700767D22 /* GEMglTexGenfv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexGenfv.cpp; sourceTree = ""; }; + 3A2DD2270E40978700767D22 /* GEMglTexGenfv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexGenfv.h; sourceTree = ""; }; + 3A2DD2280E40978700767D22 /* GEMglTexGeni.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexGeni.cpp; sourceTree = ""; }; + 3A2DD2290E40978700767D22 /* GEMglTexGeni.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexGeni.h; sourceTree = ""; }; + 3A2DD22A0E40978700767D22 /* GEMglTexParameterf.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexParameterf.cpp; sourceTree = ""; }; + 3A2DD22B0E40978700767D22 /* GEMglTexParameterf.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexParameterf.h; sourceTree = ""; }; + 3A2DD22C0E40978700767D22 /* GEMglTexParameteri.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexParameteri.cpp; sourceTree = ""; }; + 3A2DD22D0E40978700767D22 /* GEMglTexParameteri.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexParameteri.h; sourceTree = ""; }; + 3A2DD22E0E40978700767D22 /* GEMglTexSubImage1D.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexSubImage1D.cpp; sourceTree = ""; }; + 3A2DD22F0E40978700767D22 /* GEMglTexSubImage1D.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexSubImage1D.h; sourceTree = ""; }; + 3A2DD2300E40978700767D22 /* GEMglTexSubImage2D.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTexSubImage2D.cpp; sourceTree = ""; }; + 3A2DD2310E40978700767D22 /* GEMglTexSubImage2D.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTexSubImage2D.h; sourceTree = ""; }; + 3A2DD2320E40978700767D22 /* GEMglTranslated.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTranslated.cpp; sourceTree = ""; }; + 3A2DD2330E40978700767D22 /* GEMglTranslated.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTranslated.h; sourceTree = ""; }; + 3A2DD2340E40978700767D22 /* GEMglTranslatef.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglTranslatef.cpp; sourceTree = ""; }; + 3A2DD2350E40978700767D22 /* GEMglTranslatef.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglTranslatef.h; sourceTree = ""; }; + 3A2DD2360E40978700767D22 /* GEMglUniform1fARB.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglUniform1fARB.cpp; sourceTree = ""; }; + 3A2DD2370E40978700767D22 /* GEMglUniform1fARB.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglUniform1fARB.h; sourceTree = ""; }; + 3A2DD2380E40978700767D22 /* GEMgluPerspective.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMgluPerspective.cpp; sourceTree = ""; }; + 3A2DD2390E40978700767D22 /* GEMgluPerspective.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMgluPerspective.h; sourceTree = ""; }; + 3A2DD23A0E40978700767D22 /* GEMglUseProgramObjectARB.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglUseProgramObjectARB.cpp; sourceTree = ""; }; + 3A2DD23B0E40978700767D22 /* GEMglUseProgramObjectARB.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglUseProgramObjectARB.h; sourceTree = ""; }; + 3A2DD23C0E40978700767D22 /* GEMglVertex2d.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglVertex2d.cpp; sourceTree = ""; }; + 3A2DD23D0E40978700767D22 /* GEMglVertex2d.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglVertex2d.h; sourceTree = ""; }; + 3A2DD23E0E40978700767D22 /* GEMglVertex2dv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglVertex2dv.cpp; sourceTree = ""; }; + 3A2DD23F0E40978700767D22 /* GEMglVertex2dv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglVertex2dv.h; sourceTree = ""; }; + 3A2DD2400E40978700767D22 /* GEMglVertex2f.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglVertex2f.cpp; sourceTree = ""; }; + 3A2DD2410E40978700767D22 /* GEMglVertex2f.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglVertex2f.h; sourceTree = ""; }; + 3A2DD2420E40978700767D22 /* GEMglVertex2fv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglVertex2fv.cpp; sourceTree = ""; }; + 3A2DD2430E40978700767D22 /* GEMglVertex2fv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglVertex2fv.h; sourceTree = ""; }; + 3A2DD2440E40978700767D22 /* GEMglVertex2i.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglVertex2i.cpp; sourceTree = ""; }; + 3A2DD2450E40978700767D22 /* GEMglVertex2i.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglVertex2i.h; sourceTree = ""; }; + 3A2DD2460E40978700767D22 /* GEMglVertex2iv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglVertex2iv.cpp; sourceTree = ""; }; + 3A2DD2470E40978700767D22 /* GEMglVertex2iv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglVertex2iv.h; sourceTree = ""; }; + 3A2DD2480E40978700767D22 /* GEMglVertex2s.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglVertex2s.cpp; sourceTree = ""; }; + 3A2DD2490E40978700767D22 /* GEMglVertex2s.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglVertex2s.h; sourceTree = ""; }; + 3A2DD24A0E40978700767D22 /* GEMglVertex2sv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglVertex2sv.cpp; sourceTree = ""; }; + 3A2DD24B0E40978700767D22 /* GEMglVertex2sv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglVertex2sv.h; sourceTree = ""; }; + 3A2DD24C0E40978700767D22 /* GEMglVertex3d.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglVertex3d.cpp; sourceTree = ""; }; + 3A2DD24D0E40978700767D22 /* GEMglVertex3d.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglVertex3d.h; sourceTree = ""; }; + 3A2DD24E0E40978700767D22 /* GEMglVertex3dv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglVertex3dv.cpp; sourceTree = ""; }; + 3A2DD24F0E40978700767D22 /* GEMglVertex3dv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglVertex3dv.h; sourceTree = ""; }; + 3A2DD2500E40978700767D22 /* GEMglVertex3f.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglVertex3f.cpp; sourceTree = ""; }; + 3A2DD2510E40978700767D22 /* GEMglVertex3f.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglVertex3f.h; sourceTree = ""; }; + 3A2DD2520E40978700767D22 /* GEMglVertex3fv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglVertex3fv.cpp; sourceTree = ""; }; + 3A2DD2530E40978700767D22 /* GEMglVertex3fv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglVertex3fv.h; sourceTree = ""; }; + 3A2DD2540E40978700767D22 /* GEMglVertex3i.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglVertex3i.cpp; sourceTree = ""; }; + 3A2DD2550E40978700767D22 /* GEMglVertex3i.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglVertex3i.h; sourceTree = ""; }; + 3A2DD2560E40978700767D22 /* GEMglVertex3iv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglVertex3iv.cpp; sourceTree = ""; }; + 3A2DD2570E40978700767D22 /* GEMglVertex3iv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglVertex3iv.h; sourceTree = ""; }; + 3A2DD2580E40978700767D22 /* GEMglVertex3s.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglVertex3s.cpp; sourceTree = ""; }; + 3A2DD2590E40978700767D22 /* GEMglVertex3s.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglVertex3s.h; sourceTree = ""; }; + 3A2DD25A0E40978700767D22 /* GEMglVertex3sv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglVertex3sv.cpp; sourceTree = ""; }; + 3A2DD25B0E40978700767D22 /* GEMglVertex3sv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglVertex3sv.h; sourceTree = ""; }; + 3A2DD25C0E40978700767D22 /* GEMglVertex4d.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglVertex4d.cpp; sourceTree = ""; }; + 3A2DD25D0E40978700767D22 /* GEMglVertex4d.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglVertex4d.h; sourceTree = ""; }; + 3A2DD25E0E40978700767D22 /* GEMglVertex4dv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglVertex4dv.cpp; sourceTree = ""; }; + 3A2DD25F0E40978700767D22 /* GEMglVertex4dv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglVertex4dv.h; sourceTree = ""; }; + 3A2DD2600E40978700767D22 /* GEMglVertex4f.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglVertex4f.cpp; sourceTree = ""; }; + 3A2DD2610E40978700767D22 /* GEMglVertex4f.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglVertex4f.h; sourceTree = ""; }; + 3A2DD2620E40978700767D22 /* GEMglVertex4fv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglVertex4fv.cpp; sourceTree = ""; }; + 3A2DD2630E40978700767D22 /* GEMglVertex4fv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglVertex4fv.h; sourceTree = ""; }; + 3A2DD2640E40978700767D22 /* GEMglVertex4i.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglVertex4i.cpp; sourceTree = ""; }; + 3A2DD2650E40978700767D22 /* GEMglVertex4i.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglVertex4i.h; sourceTree = ""; }; + 3A2DD2660E40978700767D22 /* GEMglVertex4iv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglVertex4iv.cpp; sourceTree = ""; }; + 3A2DD2670E40978700767D22 /* GEMglVertex4iv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglVertex4iv.h; sourceTree = ""; }; + 3A2DD2680E40978700767D22 /* GEMglVertex4s.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglVertex4s.cpp; sourceTree = ""; }; + 3A2DD2690E40978700767D22 /* GEMglVertex4s.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglVertex4s.h; sourceTree = ""; }; + 3A2DD26A0E40978700767D22 /* GEMglVertex4sv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglVertex4sv.cpp; sourceTree = ""; }; + 3A2DD26B0E40978700767D22 /* GEMglVertex4sv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglVertex4sv.h; sourceTree = ""; }; + 3A2DD26C0E40978700767D22 /* GEMglViewport.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglViewport.cpp; sourceTree = ""; }; + 3A2DD26D0E40978700767D22 /* GEMglViewport.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GEMglViewport.h; sourceTree = ""; }; + 3A2DD26E0E40978700767D22 /* GLdefine.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GLdefine.cpp; sourceTree = ""; }; + 3A2DD26F0E40978700767D22 /* GLdefine.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GLdefine.h; sourceTree = ""; }; + 3A2DD4C60E4097BC00767D22 /* papi.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = papi.h; sourceTree = ""; }; + 3A2DD4C70E4097BC00767D22 /* part_color.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = part_color.cpp; sourceTree = ""; }; + 3A2DD4C80E4097BC00767D22 /* part_color.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = part_color.h; sourceTree = ""; }; + 3A2DD4C90E4097BC00767D22 /* part_damp.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = part_damp.cpp; sourceTree = ""; }; + 3A2DD4CA0E4097BC00767D22 /* part_damp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = part_damp.h; sourceTree = ""; }; + 3A2DD4CB0E4097BC00767D22 /* part_draw.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = part_draw.cpp; sourceTree = ""; }; + 3A2DD4CC0E4097BC00767D22 /* part_draw.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = part_draw.h; sourceTree = ""; }; + 3A2DD4CD0E4097BC00767D22 /* part_follow.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = part_follow.cpp; sourceTree = ""; }; + 3A2DD4CE0E4097BC00767D22 /* part_follow.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = part_follow.h; sourceTree = ""; }; + 3A2DD4CF0E4097BC00767D22 /* part_gravity.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = part_gravity.cpp; sourceTree = ""; }; + 3A2DD4D00E4097BC00767D22 /* part_gravity.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = part_gravity.h; sourceTree = ""; }; + 3A2DD4D10E4097BC00767D22 /* part_head.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = part_head.cpp; sourceTree = ""; }; + 3A2DD4D20E4097BC00767D22 /* part_head.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = part_head.h; sourceTree = ""; }; + 3A2DD4D30E4097BC00767D22 /* part_info.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = part_info.cpp; sourceTree = ""; }; + 3A2DD4D40E4097BC00767D22 /* part_info.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = part_info.h; sourceTree = ""; }; + 3A2DD4D50E4097BC00767D22 /* part_killold.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = part_killold.cpp; sourceTree = ""; }; + 3A2DD4D60E4097BC00767D22 /* part_killold.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = part_killold.h; sourceTree = ""; }; + 3A2DD4D70E4097BC00767D22 /* part_killslow.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = part_killslow.cpp; sourceTree = ""; }; + 3A2DD4D80E4097BC00767D22 /* part_killslow.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = part_killslow.h; sourceTree = ""; }; + 3A2DD4D90E4097BC00767D22 /* part_orbitpoint.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = part_orbitpoint.cpp; sourceTree = ""; }; + 3A2DD4DA0E4097BC00767D22 /* part_orbitpoint.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = part_orbitpoint.h; sourceTree = ""; }; + 3A2DD4DB0E4097BC00767D22 /* part_render.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = part_render.cpp; sourceTree = ""; }; + 3A2DD4DC0E4097BC00767D22 /* part_render.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = part_render.h; sourceTree = ""; }; + 3A2DD4DD0E4097BC00767D22 /* part_sink.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = part_sink.cpp; sourceTree = ""; }; + 3A2DD4DE0E4097BC00767D22 /* part_sink.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = part_sink.h; sourceTree = ""; }; + 3A2DD4DF0E4097BC00767D22 /* part_size.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = part_size.cpp; sourceTree = ""; }; + 3A2DD4E00E4097BC00767D22 /* part_size.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = part_size.h; sourceTree = ""; }; + 3A2DD4E10E4097BC00767D22 /* part_source.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = part_source.cpp; sourceTree = ""; }; + 3A2DD4E20E4097BC00767D22 /* part_source.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = part_source.h; sourceTree = ""; }; + 3A2DD4E30E4097BC00767D22 /* part_targetcolor.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = part_targetcolor.cpp; sourceTree = ""; }; + 3A2DD4E40E4097BC00767D22 /* part_targetcolor.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = part_targetcolor.h; sourceTree = ""; }; + 3A2DD4E50E4097BC00767D22 /* part_targetsize.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = part_targetsize.cpp; sourceTree = ""; }; + 3A2DD4E60E4097BC00767D22 /* part_targetsize.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = part_targetsize.h; sourceTree = ""; }; + 3A2DD4E70E4097BC00767D22 /* part_velcone.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = part_velcone.cpp; sourceTree = ""; }; + 3A2DD4E80E4097BC00767D22 /* part_velcone.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = part_velcone.h; sourceTree = ""; }; + 3A2DD4E90E4097BC00767D22 /* part_velocity.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = part_velocity.cpp; sourceTree = ""; }; + 3A2DD4EA0E4097BC00767D22 /* part_velocity.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = part_velocity.h; sourceTree = ""; }; + 3A2DD4EB0E4097BC00767D22 /* part_velsphere.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = part_velsphere.cpp; sourceTree = ""; }; + 3A2DD4EC0E4097BC00767D22 /* part_velsphere.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = part_velsphere.h; sourceTree = ""; }; + 3A2DD4ED0E4097BC00767D22 /* part_vertex.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = part_vertex.cpp; sourceTree = ""; }; + 3A2DD4EE0E4097BC00767D22 /* part_vertex.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = part_vertex.h; sourceTree = ""; }; + 3A2DD4EF0E4097BC00767D22 /* partlib_actionapi.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = partlib_actionapi.cpp; sourceTree = ""; }; + 3A2DD4F00E4097BC00767D22 /* partlib_actions.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = partlib_actions.cpp; sourceTree = ""; }; + 3A2DD4F10E4097BC00767D22 /* partlib_general.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = partlib_general.h; sourceTree = ""; }; + 3A2DD4F20E4097BC00767D22 /* partlib_opengl.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = partlib_opengl.cpp; sourceTree = ""; }; + 3A2DD4F30E4097BC00767D22 /* partlib_system.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = partlib_system.cpp; sourceTree = ""; }; + 3A2DD4F40E4097BC00767D22 /* partlib_vector.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = partlib_vector.h; sourceTree = ""; }; + 3A2DD5280E4097D300767D22 /* film.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = film.cpp; sourceTree = ""; }; + 3A2DD5290E4097D300767D22 /* film.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = film.h; sourceTree = ""; }; + 3A2DD52E0E4097D300767D22 /* filmDarwin.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = filmDarwin.cpp; sourceTree = ""; }; + 3A2DD52F0E4097D300767D22 /* filmDarwin.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = filmDarwin.h; sourceTree = ""; }; + 3A2DD5380E4097D400767D22 /* filmQT.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = filmQT.cpp; sourceTree = ""; }; + 3A2DD5390E4097D400767D22 /* filmQT.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = filmQT.h; sourceTree = ""; }; + 3A2DD53C0E4097D400767D22 /* FreeFrame.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FreeFrame.h; sourceTree = ""; }; + 3A2DD53D0E4097D400767D22 /* libfidtrack_fidtrackX.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = libfidtrack_fidtrackX.cpp; sourceTree = ""; }; + 3A2DD53E0E4097D400767D22 /* libfidtrack_fidtrackX.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = libfidtrack_fidtrackX.h; sourceTree = ""; }; + 3A2DD53F0E4097D400767D22 /* libfidtrack_segment.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = libfidtrack_segment.cpp; sourceTree = ""; }; + 3A2DD5400E4097D400767D22 /* libfidtrack_segment.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = libfidtrack_segment.h; sourceTree = ""; }; + 3A2DD5410E4097D400767D22 /* libfidtrack_treeidmap.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = libfidtrack_treeidmap.cpp; sourceTree = ""; }; + 3A2DD5420E4097D400767D22 /* libfidtrack_treeidmap.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = libfidtrack_treeidmap.h; sourceTree = ""; }; + 3A2DD5440E4097D400767D22 /* pix_2grey.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_2grey.cpp; sourceTree = ""; }; + 3A2DD5450E4097D400767D22 /* pix_2grey.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_2grey.h; sourceTree = ""; }; + 3A2DD5460E4097D400767D22 /* pix_a_2grey.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_a_2grey.cpp; sourceTree = ""; }; + 3A2DD5470E4097D400767D22 /* pix_a_2grey.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_a_2grey.h; sourceTree = ""; }; + 3A2DD5480E4097D400767D22 /* pix_add.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_add.cpp; sourceTree = ""; }; + 3A2DD5490E4097D400767D22 /* pix_add.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_add.h; sourceTree = ""; }; + 3A2DD54A0E4097D400767D22 /* pix_aging.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_aging.cpp; sourceTree = ""; }; + 3A2DD54B0E4097D400767D22 /* pix_aging.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_aging.h; sourceTree = ""; }; + 3A2DD54C0E4097D400767D22 /* pix_alpha.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_alpha.cpp; sourceTree = ""; }; + 3A2DD54D0E4097D400767D22 /* pix_alpha.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_alpha.h; sourceTree = ""; }; + 3A2DD54E0E4097D400767D22 /* pix_artoolkit.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_artoolkit.cpp; sourceTree = ""; }; + 3A2DD54F0E4097D400767D22 /* pix_artoolkit.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_artoolkit.h; sourceTree = ""; }; + 3A2DD5500E4097D400767D22 /* pix_background.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_background.cpp; sourceTree = ""; }; + 3A2DD5510E4097D400767D22 /* pix_background.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_background.h; sourceTree = ""; }; + 3A2DD5520E4097D400767D22 /* pix_backlight.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_backlight.cpp; sourceTree = ""; }; + 3A2DD5530E4097D400767D22 /* pix_backlight.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_backlight.h; sourceTree = ""; }; + 3A2DD5540E4097D400767D22 /* pix_biquad.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_biquad.cpp; sourceTree = ""; }; + 3A2DD5550E4097D400767D22 /* pix_biquad.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_biquad.h; sourceTree = ""; }; + 3A2DD5560E4097D400767D22 /* pix_bitmask.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_bitmask.cpp; sourceTree = ""; }; + 3A2DD5570E4097D400767D22 /* pix_bitmask.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_bitmask.h; sourceTree = ""; }; + 3A2DD5580E4097D400767D22 /* pix_blob.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_blob.cpp; sourceTree = ""; }; + 3A2DD5590E4097D400767D22 /* pix_blob.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_blob.h; sourceTree = ""; }; + 3A2DD55A0E4097D400767D22 /* pix_blur.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_blur.cpp; sourceTree = ""; }; + 3A2DD55B0E4097D400767D22 /* pix_blur.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_blur.h; sourceTree = ""; }; + 3A2DD55C0E4097D400767D22 /* pix_buf.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_buf.cpp; sourceTree = ""; }; + 3A2DD55D0E4097D400767D22 /* pix_buf.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_buf.h; sourceTree = ""; }; + 3A2DD55E0E4097D400767D22 /* pix_buffer_read.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_buffer_read.cpp; sourceTree = ""; }; + 3A2DD55F0E4097D400767D22 /* pix_buffer_read.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_buffer_read.h; sourceTree = ""; }; + 3A2DD5600E4097D400767D22 /* pix_buffer_write.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_buffer_write.cpp; sourceTree = ""; }; + 3A2DD5610E4097D400767D22 /* pix_buffer_write.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_buffer_write.h; sourceTree = ""; }; + 3A2DD5620E4097D400767D22 /* pix_buffer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_buffer.cpp; sourceTree = ""; }; + 3A2DD5630E4097D400767D22 /* pix_buffer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_buffer.h; sourceTree = ""; }; + 3A2DD5640E4097D400767D22 /* pix_chroma_key.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_chroma_key.cpp; sourceTree = ""; }; + 3A2DD5650E4097D400767D22 /* pix_chroma_key.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_chroma_key.h; sourceTree = ""; }; + 3A2DD5660E4097D400767D22 /* pix_clearblock.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_clearblock.cpp; sourceTree = ""; }; + 3A2DD5670E4097D400767D22 /* pix_clearblock.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_clearblock.h; sourceTree = ""; }; + 3A2DD5680E4097D400767D22 /* pix_color.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_color.cpp; sourceTree = ""; }; + 3A2DD5690E4097D400767D22 /* pix_color.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_color.h; sourceTree = ""; }; + 3A2DD56A0E4097D400767D22 /* pix_coloralpha.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_coloralpha.cpp; sourceTree = ""; }; + 3A2DD56B0E4097D400767D22 /* pix_coloralpha.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_coloralpha.h; sourceTree = ""; }; + 3A2DD56C0E4097D400767D22 /* pix_colormatrix.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_colormatrix.cpp; sourceTree = ""; }; + 3A2DD56D0E4097D400767D22 /* pix_colormatrix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_colormatrix.h; sourceTree = ""; }; + 3A2DD56E0E4097D400767D22 /* pix_colorreduce.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_colorreduce.cpp; sourceTree = ""; }; + 3A2DD56F0E4097D400767D22 /* pix_colorreduce.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_colorreduce.h; sourceTree = ""; }; + 3A2DD5700E4097D400767D22 /* pix_compare.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_compare.cpp; sourceTree = ""; }; + 3A2DD5710E4097D400767D22 /* pix_compare.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_compare.h; sourceTree = ""; }; + 3A2DD5720E4097D400767D22 /* pix_composite.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_composite.cpp; sourceTree = ""; }; + 3A2DD5730E4097D400767D22 /* pix_composite.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_composite.h; sourceTree = ""; }; + 3A2DD5740E4097D400767D22 /* pix_contrast.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_contrast.cpp; sourceTree = ""; }; + 3A2DD5750E4097D400767D22 /* pix_contrast.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_contrast.h; sourceTree = ""; }; + 3A2DD5760E4097D400767D22 /* pix_convert.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_convert.cpp; sourceTree = ""; }; + 3A2DD5770E4097D400767D22 /* pix_convert.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_convert.h; sourceTree = ""; }; + 3A2DD5780E4097D400767D22 /* pix_convolve.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_convolve.cpp; sourceTree = ""; }; + 3A2DD5790E4097D400767D22 /* pix_convolve.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_convolve.h; sourceTree = ""; }; + 3A2DD57A0E4097D400767D22 /* pix_coordinate.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_coordinate.cpp; sourceTree = ""; }; + 3A2DD57B0E4097D400767D22 /* pix_coordinate.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_coordinate.h; sourceTree = ""; }; + 3A2DD57C0E4097D400767D22 /* pix_crop.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_crop.cpp; sourceTree = ""; }; + 3A2DD57D0E4097D400767D22 /* pix_crop.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_crop.h; sourceTree = ""; }; + 3A2DD57E0E4097D400767D22 /* pix_curve.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_curve.cpp; sourceTree = ""; }; + 3A2DD57F0E4097D400767D22 /* pix_curve.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_curve.h; sourceTree = ""; }; + 3A2DD5800E4097D400767D22 /* pix_data.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_data.cpp; sourceTree = ""; }; + 3A2DD5810E4097D400767D22 /* pix_data.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_data.h; sourceTree = ""; }; + 3A2DD5820E4097D400767D22 /* pix_deinterlace.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_deinterlace.cpp; sourceTree = ""; }; + 3A2DD5830E4097D400767D22 /* pix_deinterlace.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_deinterlace.h; sourceTree = ""; }; + 3A2DD5840E4097D400767D22 /* pix_delay.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_delay.cpp; sourceTree = ""; }; + 3A2DD5850E4097D400767D22 /* pix_delay.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_delay.h; sourceTree = ""; }; + 3A2DD5860E4097D400767D22 /* pix_diff.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_diff.cpp; sourceTree = ""; }; + 3A2DD5870E4097D400767D22 /* pix_diff.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_diff.h; sourceTree = ""; }; + 3A2DD5880E4097D400767D22 /* pix_dot.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_dot.cpp; sourceTree = ""; }; + 3A2DD5890E4097D400767D22 /* pix_dot.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_dot.h; sourceTree = ""; }; + 3A2DD58A0E4097D400767D22 /* pix_draw.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_draw.cpp; sourceTree = ""; }; + 3A2DD58B0E4097D400767D22 /* pix_draw.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_draw.h; sourceTree = ""; }; + 3A2DD58C0E4097D400767D22 /* pix_dump.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_dump.cpp; sourceTree = ""; }; + 3A2DD58D0E4097D400767D22 /* pix_dump.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_dump.h; sourceTree = ""; }; + 3A2DD58E0E4097D400767D22 /* pix_duotone.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_duotone.cpp; sourceTree = ""; }; + 3A2DD58F0E4097D400767D22 /* pix_duotone.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_duotone.h; sourceTree = ""; }; + 3A2DD5900E4097D400767D22 /* pix_emboss.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_emboss.cpp; sourceTree = ""; }; + 3A2DD5910E4097D400767D22 /* pix_emboss.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_emboss.h; sourceTree = ""; }; + 3A2DD5920E4097D400767D22 /* pix_fiducialtrack.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_fiducialtrack.cpp; sourceTree = ""; }; + 3A2DD5930E4097D400767D22 /* pix_fiducialtrack.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_fiducialtrack.h; sourceTree = ""; }; + 3A2DD5940E4097D400767D22 /* pix_film.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_film.cpp; sourceTree = ""; }; + 3A2DD5950E4097D400767D22 /* pix_film.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_film.h; sourceTree = ""; }; + 3A2DD5960E4097D400767D22 /* pix_filmDarwin.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_filmDarwin.cpp; sourceTree = ""; }; + 3A2DD5970E4097D400767D22 /* pix_filmDarwin.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_filmDarwin.h; sourceTree = ""; }; + 3A2DD59A0E4097D400767D22 /* pix_filmNT.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_filmNT.cpp; sourceTree = ""; }; + 3A2DD59B0E4097D400767D22 /* pix_filmNT.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_filmNT.h; sourceTree = ""; }; + 3A2DD59C0E4097D400767D22 /* pix_filmQT.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_filmQT.cpp; sourceTree = ""; }; + 3A2DD59D0E4097D400767D22 /* pix_filmQT.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_filmQT.h; sourceTree = ""; }; + 3A2DD59E0E4097D400767D22 /* pix_flip.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_flip.cpp; sourceTree = ""; }; + 3A2DD59F0E4097D400767D22 /* pix_flip.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_flip.h; sourceTree = ""; }; + 3A2DD5A00E4097D400767D22 /* pix_freeframe.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_freeframe.cpp; sourceTree = ""; }; + 3A2DD5A10E4097D400767D22 /* pix_freeframe.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_freeframe.h; sourceTree = ""; }; + 3A2DD5A20E4097D400767D22 /* pix_gain.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_gain.cpp; sourceTree = ""; }; + 3A2DD5A30E4097D400767D22 /* pix_gain.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_gain.h; sourceTree = ""; }; + 3A2DD5A40E4097D400767D22 /* pix_grey.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_grey.cpp; sourceTree = ""; }; + 3A2DD5A50E4097D400767D22 /* pix_grey.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_grey.h; sourceTree = ""; }; + 3A2DD5A60E4097D400767D22 /* pix_halftone.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_halftone.cpp; sourceTree = ""; }; + 3A2DD5A70E4097D400767D22 /* pix_halftone.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_halftone.h; sourceTree = ""; }; + 3A2DD5A80E4097D400767D22 /* pix_histo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_histo.cpp; sourceTree = ""; }; + 3A2DD5A90E4097D400767D22 /* pix_histo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_histo.h; sourceTree = ""; }; + 3A2DD5AA0E4097D400767D22 /* pix_hit.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_hit.cpp; sourceTree = ""; }; + 3A2DD5AB0E4097D400767D22 /* pix_hit.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_hit.h; sourceTree = ""; }; + 3A2DD5AC0E4097D400767D22 /* pix_hsv2rgb.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_hsv2rgb.cpp; sourceTree = ""; }; + 3A2DD5AD0E4097D400767D22 /* pix_hsv2rgb.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_hsv2rgb.h; sourceTree = ""; }; + 3A2DD5AE0E4097D400767D22 /* pix_image.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_image.cpp; sourceTree = ""; }; + 3A2DD5AF0E4097D400767D22 /* pix_image.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_image.h; sourceTree = ""; }; + 3A2DD5B00E4097D400767D22 /* pix_imageInPlace.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_imageInPlace.cpp; sourceTree = ""; }; + 3A2DD5B10E4097D400767D22 /* pix_imageInPlace.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_imageInPlace.h; sourceTree = ""; }; + 3A2DD5B20E4097D400767D22 /* pix_indycam.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_indycam.cpp; sourceTree = ""; }; + 3A2DD5B30E4097D400767D22 /* pix_indycam.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_indycam.h; sourceTree = ""; }; + 3A2DD5B40E4097D400767D22 /* pix_info.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_info.cpp; sourceTree = ""; }; + 3A2DD5B50E4097D400767D22 /* pix_info.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_info.h; sourceTree = ""; }; + 3A2DD5B60E4097D400767D22 /* pix_invert.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_invert.cpp; sourceTree = ""; }; + 3A2DD5B70E4097D400767D22 /* pix_invert.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_invert.h; sourceTree = ""; }; + 3A2DD5B80E4097D400767D22 /* pix_kaleidoscope.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_kaleidoscope.cpp; sourceTree = ""; }; + 3A2DD5B90E4097D400767D22 /* pix_kaleidoscope.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_kaleidoscope.h; sourceTree = ""; }; + 3A2DD5BA0E4097D400767D22 /* pix_levels.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_levels.cpp; sourceTree = ""; }; + 3A2DD5BB0E4097D400767D22 /* pix_levels.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_levels.h; sourceTree = ""; }; + 3A2DD5BC0E4097D400767D22 /* pix_lumaoffset.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_lumaoffset.cpp; sourceTree = ""; }; + 3A2DD5BD0E4097D400767D22 /* pix_lumaoffset.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_lumaoffset.h; sourceTree = ""; }; + 3A2DD5BE0E4097D400767D22 /* pix_mask.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_mask.cpp; sourceTree = ""; }; + 3A2DD5BF0E4097D400767D22 /* pix_mask.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_mask.h; sourceTree = ""; }; + 3A2DD5C00E4097D400767D22 /* pix_mean_color.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_mean_color.cpp; sourceTree = ""; }; + 3A2DD5C10E4097D400767D22 /* pix_mean_color.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_mean_color.h; sourceTree = ""; }; + 3A2DD5C20E4097D400767D22 /* pix_metaimage.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_metaimage.cpp; sourceTree = ""; }; + 3A2DD5C30E4097D400767D22 /* pix_metaimage.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_metaimage.h; sourceTree = ""; }; + 3A2DD5C40E4097D400767D22 /* pix_mix.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_mix.cpp; sourceTree = ""; }; + 3A2DD5C50E4097D400767D22 /* pix_mix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_mix.h; sourceTree = ""; }; + 3A2DD5C60E4097D400767D22 /* pix_motionblur.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_motionblur.cpp; sourceTree = ""; }; + 3A2DD5C70E4097D400767D22 /* pix_motionblur.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_motionblur.h; sourceTree = ""; }; + 3A2DD5C80E4097D400767D22 /* pix_movement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_movement.cpp; sourceTree = ""; }; + 3A2DD5C90E4097D400767D22 /* pix_movement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_movement.h; sourceTree = ""; }; + 3A2DD5CA0E4097D400767D22 /* pix_movement2.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_movement2.cpp; sourceTree = ""; }; + 3A2DD5CB0E4097D400767D22 /* pix_movement2.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_movement2.h; sourceTree = ""; }; + 3A2DD5CC0E4097D400767D22 /* pix_movie.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_movie.cpp; sourceTree = ""; }; + 3A2DD5CD0E4097D400767D22 /* pix_movie.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_movie.h; sourceTree = ""; }; + 3A2DD5CE0E4097D400767D22 /* pix_movieDarwin.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_movieDarwin.cpp; sourceTree = ""; }; + 3A2DD5CF0E4097D400767D22 /* pix_movieDarwin.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_movieDarwin.h; sourceTree = ""; }; + 3A2DD5D40E4097D400767D22 /* pix_multiblob.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_multiblob.cpp; sourceTree = ""; }; + 3A2DD5D50E4097D400767D22 /* pix_multiblob.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_multiblob.h; sourceTree = ""; }; + 3A2DD5D60E4097D400767D22 /* pix_multiimage.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_multiimage.cpp; sourceTree = ""; }; + 3A2DD5D70E4097D400767D22 /* pix_multiimage.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_multiimage.h; sourceTree = ""; }; + 3A2DD5D80E4097D400767D22 /* pix_multiply.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_multiply.cpp; sourceTree = ""; }; + 3A2DD5D90E4097D400767D22 /* pix_multiply.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_multiply.h; sourceTree = ""; }; + 3A2DD5DA0E4097D400767D22 /* pix_multitexture.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_multitexture.cpp; sourceTree = ""; }; + 3A2DD5DB0E4097D400767D22 /* pix_multitexture.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_multitexture.h; sourceTree = ""; }; + 3A2DD5DC0E4097D400767D22 /* pix_normalize.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_normalize.cpp; sourceTree = ""; }; + 3A2DD5DD0E4097D400767D22 /* pix_normalize.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_normalize.h; sourceTree = ""; }; + 3A2DD5DE0E4097D400767D22 /* pix_offset.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_offset.cpp; sourceTree = ""; }; + 3A2DD5DF0E4097D400767D22 /* pix_offset.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_offset.h; sourceTree = ""; }; + 3A2DD5E00E4097D400767D22 /* pix_pix2sig.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_pix2sig.cpp; sourceTree = ""; }; + 3A2DD5E10E4097D400767D22 /* pix_pix2sig.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_pix2sig.h; sourceTree = ""; }; + 3A2DD5E20E4097D400767D22 /* pix_posterize.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_posterize.cpp; sourceTree = ""; }; + 3A2DD5E30E4097D400767D22 /* pix_posterize.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_posterize.h; sourceTree = ""; }; + 3A2DD5E40E4097D400767D22 /* pix_puzzle.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_puzzle.cpp; sourceTree = ""; }; + 3A2DD5E50E4097D400767D22 /* pix_puzzle.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_puzzle.h; sourceTree = ""; }; + 3A2DD5E60E4097D400767D22 /* pix_rds.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_rds.cpp; sourceTree = ""; }; + 3A2DD5E70E4097D400767D22 /* pix_rds.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_rds.h; sourceTree = ""; }; + 3A2DD5E80E4097D400767D22 /* pix_record.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_record.cpp; sourceTree = ""; }; + 3A2DD5E90E4097D400767D22 /* pix_record.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_record.h; sourceTree = ""; }; + 3A2DD5EA0E4097D400767D22 /* pix_recordQT.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_recordQT.cpp; sourceTree = ""; }; + 3A2DD5EB0E4097D400767D22 /* pix_recordQT.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_recordQT.h; sourceTree = ""; }; + 3A2DD5EC0E4097D400767D22 /* pix_rectangle.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_rectangle.cpp; sourceTree = ""; }; + 3A2DD5ED0E4097D400767D22 /* pix_rectangle.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_rectangle.h; sourceTree = ""; }; + 3A2DD5EE0E4097D400767D22 /* pix_refraction.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_refraction.cpp; sourceTree = ""; }; + 3A2DD5EF0E4097D400767D22 /* pix_refraction.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_refraction.h; sourceTree = ""; }; + 3A2DD5F00E4097D400767D22 /* pix_resize.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_resize.cpp; sourceTree = ""; }; + 3A2DD5F10E4097D400767D22 /* pix_resize.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_resize.h; sourceTree = ""; }; + 3A2DD5F20E4097D400767D22 /* pix_rgb2hsv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_rgb2hsv.cpp; sourceTree = ""; }; + 3A2DD5F30E4097D400767D22 /* pix_rgb2hsv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_rgb2hsv.h; sourceTree = ""; }; + 3A2DD5F40E4097D400767D22 /* pix_rgba.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_rgba.cpp; sourceTree = ""; }; + 3A2DD5F50E4097D400767D22 /* pix_rgba.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_rgba.h; sourceTree = ""; }; + 3A2DD5F60E4097D400767D22 /* pix_roll.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_roll.cpp; sourceTree = ""; }; + 3A2DD5F70E4097D400767D22 /* pix_roll.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_roll.h; sourceTree = ""; }; + 3A2DD5F80E4097D400767D22 /* pix_rtx.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_rtx.cpp; sourceTree = ""; }; + 3A2DD5F90E4097D400767D22 /* pix_rtx.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_rtx.h; sourceTree = ""; }; + 3A2DD5FA0E4097D400767D22 /* pix_scanline.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_scanline.cpp; sourceTree = ""; }; + 3A2DD5FB0E4097D400767D22 /* pix_scanline.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_scanline.h; sourceTree = ""; }; + 3A2DD5FC0E4097D400767D22 /* pix_set.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_set.cpp; sourceTree = ""; }; + 3A2DD5FD0E4097D400767D22 /* pix_set.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_set.h; sourceTree = ""; }; + 3A2DD5FE0E4097D500767D22 /* pix_share_read.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_share_read.cpp; sourceTree = ""; }; + 3A2DD5FF0E4097D500767D22 /* pix_share_read.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_share_read.h; sourceTree = ""; }; + 3A2DD6000E4097D500767D22 /* pix_share_write.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_share_write.cpp; sourceTree = ""; }; + 3A2DD6010E4097D500767D22 /* pix_share_write.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_share_write.h; sourceTree = ""; }; + 3A2DD6020E4097D500767D22 /* pix_share.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_share.h; sourceTree = ""; }; + 3A2DD6030E4097D500767D22 /* pix_sig2pix.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_sig2pix.cpp; sourceTree = ""; }; + 3A2DD6040E4097D500767D22 /* pix_sig2pix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_sig2pix.h; sourceTree = ""; }; + 3A2DD6050E4097D500767D22 /* pix_snap.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_snap.cpp; sourceTree = ""; }; + 3A2DD6060E4097D500767D22 /* pix_snap.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_snap.h; sourceTree = ""; }; + 3A2DD6070E4097D500767D22 /* pix_snap2tex.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_snap2tex.cpp; sourceTree = ""; }; + 3A2DD6080E4097D500767D22 /* pix_snap2tex.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_snap2tex.h; sourceTree = ""; }; + 3A2DD6090E4097D500767D22 /* pix_subtract.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_subtract.cpp; sourceTree = ""; }; + 3A2DD60A0E4097D500767D22 /* pix_subtract.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_subtract.h; sourceTree = ""; }; + 3A2DD60B0E4097D500767D22 /* pix_takealpha.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_takealpha.cpp; sourceTree = ""; }; + 3A2DD60C0E4097D500767D22 /* pix_takealpha.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_takealpha.h; sourceTree = ""; }; + 3A2DD60D0E4097D500767D22 /* pix_test.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_test.cpp; sourceTree = ""; }; + 3A2DD60E0E4097D500767D22 /* pix_test.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_test.h; sourceTree = ""; }; + 3A2DD60F0E4097D500767D22 /* pix_texture.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_texture.cpp; sourceTree = ""; }; + 3A2DD6100E4097D500767D22 /* pix_texture.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_texture.h; sourceTree = ""; }; + 3A2DD6110E4097D500767D22 /* pix_threshold_bernsen.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_threshold_bernsen.cpp; sourceTree = ""; }; + 3A2DD6120E4097D500767D22 /* pix_threshold_bernsen.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_threshold_bernsen.h; sourceTree = ""; }; + 3A2DD6130E4097D500767D22 /* pix_threshold.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_threshold.cpp; sourceTree = ""; }; + 3A2DD6140E4097D500767D22 /* pix_threshold.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_threshold.h; sourceTree = ""; }; + 3A2DD6150E4097D500767D22 /* pix_tIIR.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_tIIR.cpp; sourceTree = ""; }; + 3A2DD6160E4097D500767D22 /* pix_tIIR.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_tIIR.h; sourceTree = ""; }; + 3A2DD6190E4097D500767D22 /* pix_videoDarwin.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_videoDarwin.cpp; sourceTree = ""; }; + 3A2DD61A0E4097D500767D22 /* pix_videoDarwin.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_videoDarwin.h; sourceTree = ""; }; + 3A2DD6230E4097D500767D22 /* pix_vpaint.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_vpaint.cpp; sourceTree = ""; }; + 3A2DD6240E4097D500767D22 /* pix_vpaint.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_vpaint.h; sourceTree = ""; }; + 3A2DD6250E4097D500767D22 /* pix_write.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_write.cpp; sourceTree = ""; }; + 3A2DD6260E4097D500767D22 /* pix_write.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_write.h; sourceTree = ""; }; + 3A2DD6270E4097D500767D22 /* pix_yuv.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_yuv.cpp; sourceTree = ""; }; + 3A2DD6280E4097D500767D22 /* pix_yuv.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_yuv.h; sourceTree = ""; }; + 3A2DD6290E4097D500767D22 /* pix_zoom.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pix_zoom.cpp; sourceTree = ""; }; + 3A2DD62A0E4097D500767D22 /* pix_zoom.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pix_zoom.h; sourceTree = ""; }; + 3A2DD62B0E4097D500767D22 /* record.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = record.cpp; sourceTree = ""; }; + 3A2DD62C0E4097D500767D22 /* record.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = record.h; sourceTree = ""; }; + 3A2DD62D0E4097D500767D22 /* recordQT.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = recordQT.cpp; sourceTree = ""; }; + 3A2DD62E0E4097D500767D22 /* recordQT.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = recordQT.h; sourceTree = ""; }; + 3A2DD74D0E4097E900767D22 /* glVBO_ext.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = glVBO_ext.h; sourceTree = ""; }; + 3A2DD74F0E4097E900767D22 /* vertex_add.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = vertex_add.cpp; sourceTree = ""; }; + 3A2DD7500E4097E900767D22 /* vertex_add.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = vertex_add.h; sourceTree = ""; }; + 3A2DD7510E4097E900767D22 /* vertex_combine.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = vertex_combine.cpp; sourceTree = ""; }; + 3A2DD7520E4097E900767D22 /* vertex_combine.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = vertex_combine.h; sourceTree = ""; }; + 3A2DD7530E4097E900767D22 /* vertex_draw.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = vertex_draw.cpp; sourceTree = ""; }; + 3A2DD7540E4097E900767D22 /* vertex_draw.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = vertex_draw.h; sourceTree = ""; }; + 3A2DD7550E4097E900767D22 /* vertex_grid.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = vertex_grid.cpp; sourceTree = ""; }; + 3A2DD7560E4097E900767D22 /* vertex_grid.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = vertex_grid.h; sourceTree = ""; }; + 3A2DD7570E4097E900767D22 /* vertex_info.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = vertex_info.cpp; sourceTree = ""; }; + 3A2DD7580E4097E900767D22 /* vertex_info.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = vertex_info.h; sourceTree = ""; }; + 3A2DD7590E4097E900767D22 /* vertex_model.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = vertex_model.cpp; sourceTree = ""; }; + 3A2DD75A0E4097E900767D22 /* vertex_model.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = vertex_model.h; sourceTree = ""; }; + 3A2DD75B0E4097E900767D22 /* vertex_mul.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = vertex_mul.cpp; sourceTree = ""; }; + 3A2DD75C0E4097E900767D22 /* vertex_mul.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = vertex_mul.h; sourceTree = ""; }; + 3A2DD75D0E4097E900767D22 /* vertex_offset.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = vertex_offset.cpp; sourceTree = ""; }; + 3A2DD75E0E4097E900767D22 /* vertex_offset.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = vertex_offset.h; sourceTree = ""; }; + 3A2DD75F0E4097E900767D22 /* vertex_quad.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = vertex_quad.cpp; sourceTree = ""; }; + 3A2DD7600E4097E900767D22 /* vertex_quad.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = vertex_quad.h; sourceTree = ""; }; + 3A2DD7610E4097E900767D22 /* vertex_scale.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = vertex_scale.cpp; sourceTree = ""; }; + 3A2DD7620E4097E900767D22 /* vertex_scale.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = vertex_scale.h; sourceTree = ""; }; + 3A2DD7630E4097EA00767D22 /* vertex_set.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = vertex_set.cpp; sourceTree = ""; }; + 3A2DD7640E4097EA00767D22 /* vertex_set.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = vertex_set.h; sourceTree = ""; }; + 3A2DD7650E4097EA00767D22 /* vertex_tabread.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = vertex_tabread.cpp; sourceTree = ""; }; + 3A2DD7660E4097EA00767D22 /* vertex_tabread.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = vertex_tabread.h; sourceTree = ""; }; + 3A6DFE4A0FD528780019C977 /* GEMglMaterialfv.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GEMglMaterialfv.cpp; sourceTree = ""; }; + 3A6DFE4B0FD528780019C977 /* GEMglMaterialfv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GEMglMaterialfv.h; sourceTree = ""; }; + 3A6DFE500FD528920019C977 /* GEMgluLookAt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GEMgluLookAt.cpp; sourceTree = ""; }; + 3A6DFE510FD528920019C977 /* GEMgluLookAt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GEMgluLookAt.h; sourceTree = ""; }; + 3A6DFE560FD528A30019C977 /* GemGLBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GemGLBase.h; sourceTree = ""; }; + 3A6DFE590FD528CF0019C977 /* GemContext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GemContext.cpp; sourceTree = ""; }; + 3A6DFE5A0FD528CF0019C977 /* GemContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GemContext.h; sourceTree = ""; }; + 3A6DFE5B0FD528CF0019C977 /* GemContextData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GemContextData.cpp; sourceTree = ""; }; + 3A6DFE5C0FD528CF0019C977 /* GemContextData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GemContextData.h; sourceTree = ""; }; + 3A6DFE650FD528E80019C977 /* GemGLUtil_generated.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GemGLUtil_generated.h; sourceTree = ""; }; + 3A6DFE680FD5294F0019C977 /* glsl_geometry.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = glsl_geometry.cpp; sourceTree = ""; }; + 3A6DFE690FD5294F0019C977 /* glsl_geometry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = glsl_geometry.h; sourceTree = ""; }; + 3A6DFE6E0FD529880019C977 /* pix_writer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pix_writer.cpp; sourceTree = ""; }; + 3A6DFE6F0FD529880019C977 /* pix_writer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pix_writer.h; sourceTree = ""; }; + 3AB0D7690E40941000AF570A /* 03.stencilBuffer.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 03.stencilBuffer.pd; sourceTree = ""; }; + 3AB0D76E0E40945F00AF570A /* all.trees */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = all.trees; sourceTree = ""; }; + 3AB0D76F0E40945F00AF570A /* COPYING.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = COPYING.txt; sourceTree = ""; }; + 3AB0D7700E40945F00AF570A /* Toon.frag */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = Toon.frag; sourceTree = ""; }; + 3AB0D7710E40945F00AF570A /* Toon.vert */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = Toon.vert; sourceTree = ""; }; + 3AB0D7720E40945F00AF570A /* vera.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = vera.ttf; sourceTree = ""; }; + 3AB0D7740E40948800AF570A /* 01.simple_texture.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 01.simple_texture.pd; sourceTree = ""; }; + 3AB0D7750E40948800AF570A /* 02.primitive_distortion.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 02.primitive_distortion.pd; sourceTree = ""; }; + 3AB0D7760E40948800AF570A /* 03.texture_distortion.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 03.texture_distortion.pd; sourceTree = ""; }; + 3AB0D7770E40948800AF570A /* 04.game_of_life.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 04.game_of_life.pd; sourceTree = ""; }; + 3AB0D7780E40948800AF570A /* 05.multitexture.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 05.multitexture.pd; sourceTree = ""; }; + 3AB0D7790E40948800AF570A /* 06.framebuffer_and_shader.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 06.framebuffer_and_shader.pd; sourceTree = ""; }; + 3AB0D77A0E40948800AF570A /* 07.multi_pass_rendering.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 07.multi_pass_rendering.pd; sourceTree = ""; }; + 3AB0D77B0E40948800AF570A /* 08.vertex_texture_fetching.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 08.vertex_texture_fetching.pd; sourceTree = ""; }; + 3AB0D77C0E40948800AF570A /* fetching.frag */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = fetching.frag; sourceTree = ""; }; + 3AB0D77D0E40948800AF570A /* fetching.vert */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = fetching.vert; sourceTree = ""; }; + 3AB0D77E0E40948800AF570A /* game.frag */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = game.frag; sourceTree = ""; }; + 3AB0D77F0E40948800AF570A /* game.vert */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = game.vert; sourceTree = ""; }; + 3AB0D7800E40948800AF570A /* img1.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = img1.jpg; sourceTree = ""; }; + 3AB0D7810E40948800AF570A /* img2.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = img2.jpg; sourceTree = ""; }; + 3AB0D7820E40948800AF570A /* img3.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = img3.jpg; sourceTree = ""; }; + 3AB0D7830E40948800AF570A /* multitexture.frag */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = multitexture.frag; sourceTree = ""; }; + 3AB0D7840E40948800AF570A /* multitexture.vert */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = multitexture.vert; sourceTree = ""; }; + 3AB0D7850E40948800AF570A /* multitexture_rect.frag */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = multitexture_rect.frag; sourceTree = ""; }; + 3AB0D7860E40948800AF570A /* multitexture_rect.vert */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = multitexture_rect.vert; sourceTree = ""; }; + 3AB0D7870E40948800AF570A /* P_distord.frag */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = P_distord.frag; sourceTree = ""; }; + 3AB0D7880E40948800AF570A /* P_distord.vert */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = P_distord.vert; sourceTree = ""; }; + 3AB0D7890E40948800AF570A /* T_distord.frag */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = T_distord.frag; sourceTree = ""; }; + 3AB0D78A0E40948800AF570A /* T_distord.vert */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = T_distord.vert; sourceTree = ""; }; + 3AB0D78B0E40948800AF570A /* texture.frag */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = texture.frag; sourceTree = ""; }; + 3AB0D78C0E40948800AF570A /* texture.vert */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = texture.vert; sourceTree = ""; }; + 3AB0D78D0E40948800AF570A /* texture_rect.frag */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = texture_rect.frag; sourceTree = ""; }; + 3AB0D78E0E40948800AF570A /* vague.frag */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = vague.frag; sourceTree = ""; }; + 3AB0D78F0E40948800AF570A /* wave.frag */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = wave.frag; sourceTree = ""; }; + 3AB0D7900E4094BA00AF570A /* accumrotate-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "accumrotate-help.pd"; sourceTree = ""; }; + 3AB0D7910E4094BA00AF570A /* alpha-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "alpha-help.pd"; sourceTree = ""; }; + 3AB0D7920E4094BA00AF570A /* ambient-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "ambient-help.pd"; sourceTree = ""; }; + 3AB0D7930E4094BA00AF570A /* ambientRGB-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "ambientRGB-help.pd"; sourceTree = ""; }; + 3AB0D7940E4094BA00AF570A /* camera-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "camera-help.pd"; sourceTree = ""; }; + 3AB0D7950E4094BA00AF570A /* circle-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "circle-help.pd"; sourceTree = ""; }; + 3AB0D7960E4094BA00AF570A /* color-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "color-help.pd"; sourceTree = ""; }; + 3AB0D7970E4094BA00AF570A /* colorRGB-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "colorRGB-help.pd"; sourceTree = ""; }; + 3AB0D7980E4094BA00AF570A /* colorSquare-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "colorSquare-help.pd"; sourceTree = ""; }; + 3AB0D7990E4094BA00AF570A /* cone-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "cone-help.pd"; sourceTree = ""; }; + 3AB0D79A0E4094BA00AF570A /* cube-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "cube-help.pd"; sourceTree = ""; }; + 3AB0D79B0E4094BA00AF570A /* cuboid-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "cuboid-help.pd"; sourceTree = ""; }; + 3AB0D79C0E4094BA00AF570A /* curve-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "curve-help.pd"; sourceTree = ""; }; + 3AB0D79D0E4094BA00AF570A /* curve3d-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "curve3d-help.pd"; sourceTree = ""; }; + 3AB0D79E0E4094BA00AF570A /* cylinder-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "cylinder-help.pd"; sourceTree = ""; }; + 3AB0D79F0E4094BA00AF570A /* depth-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "depth-help.pd"; sourceTree = ""; }; + 3AB0D7A00E4094BA00AF570A /* diffuse-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "diffuse-help.pd"; sourceTree = ""; }; + 3AB0D7A10E4094BA00AF570A /* diffuseRGB-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "diffuseRGB-help.pd"; sourceTree = ""; }; + 3AB0D7A20E4094BA00AF570A /* disk-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "disk-help.pd"; sourceTree = ""; }; + 3AB0D7A30E4094BA00AF570A /* emission-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "emission-help.pd"; sourceTree = ""; }; + 3AB0D7A40E4094BA00AF570A /* emissionRGB-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "emissionRGB-help.pd"; sourceTree = ""; }; + 3AB0D7A50E4094BA00AF570A /* fragment_program-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "fragment_program-help.pd"; sourceTree = ""; }; + 3AB0D7A60E4094BA00AF570A /* gemframebuffer-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "gemframebuffer-help.pd"; sourceTree = ""; }; + 3AB0D7A70E4094BA00AF570A /* gemhead-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "gemhead-help.pd"; sourceTree = ""; }; + 3AB0D7A80E4094BA00AF570A /* gemkeyboard-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "gemkeyboard-help.pd"; sourceTree = ""; }; + 3AB0D7A90E4094BA00AF570A /* gemkeyname-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "gemkeyname-help.pd"; sourceTree = ""; }; + 3AB0D7AA0E4094BA00AF570A /* gemlist_info-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "gemlist_info-help.pd"; sourceTree = ""; }; + 3AB0D7AB0E4094BA00AF570A /* gemlist_matrix-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "gemlist_matrix-help.pd"; sourceTree = ""; }; + 3AB0D7AC0E4094BA00AF570A /* gemlist-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "gemlist-help.pd"; sourceTree = ""; }; + 3AB0D7AD0E4094BA00AF570A /* gemmouse-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "gemmouse-help.pd"; sourceTree = ""; }; + 3AB0D7AE0E4094BA00AF570A /* gemorb-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "gemorb-help.pd"; sourceTree = ""; }; + 3AB0D7AF0E4094BA00AF570A /* gemtablet-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "gemtablet-help.pd"; sourceTree = ""; }; + 3AB0D7B00E4094BB00AF570A /* gemwin-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "gemwin-help.pd"; sourceTree = ""; }; + 3AB0D7B10E4094BB00AF570A /* glsl_fragment-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "glsl_fragment-help.pd"; sourceTree = ""; }; + 3AB0D7B20E4094BB00AF570A /* glsl_program-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "glsl_program-help.pd"; sourceTree = ""; }; + 3AB0D7B30E4094BB00AF570A /* glsl_vertex-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "glsl_vertex-help.pd"; sourceTree = ""; }; + 3AB0D7B40E4094BB00AF570A /* imageVert-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "imageVert-help.pd"; sourceTree = ""; }; + 3AB0D7B50E4094BB00AF570A /* light-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "light-help.pd"; sourceTree = ""; }; + 3AB0D7B60E4094BB00AF570A /* linear_path-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "linear_path-help.pd"; sourceTree = ""; }; + 3AB0D7B70E4094BB00AF570A /* mesh_square-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "mesh_square-help.pd"; sourceTree = ""; }; + 3AB0D7B80E4094BB00AF570A /* model-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "model-help.pd"; sourceTree = ""; }; + 3AB0D7B90E4094BB00AF570A /* multimodel-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "multimodel-help.pd"; sourceTree = ""; }; + 3AB0D7BA0E4094BB00AF570A /* newWave-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "newWave-help.pd"; sourceTree = ""; }; + 3AB0D7BB0E4094BB00AF570A /* ortho-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "ortho-help.pd"; sourceTree = ""; }; + 3AB0D7BC0E4094BB00AF570A /* part_color-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "part_color-help.pd"; sourceTree = ""; }; + 3AB0D7BD0E4094BB00AF570A /* part_damp-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "part_damp-help.pd"; sourceTree = ""; }; + 3AB0D7BE0E4094BB00AF570A /* part_draw-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "part_draw-help.pd"; sourceTree = ""; }; + 3AB0D7BF0E4094BB00AF570A /* part_follow-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "part_follow-help.pd"; sourceTree = ""; }; + 3AB0D7C00E4094BB00AF570A /* part_gravity-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "part_gravity-help.pd"; sourceTree = ""; }; + 3AB0D7C10E4094BB00AF570A /* part_head-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "part_head-help.pd"; sourceTree = ""; }; + 3AB0D7C20E4094BB00AF570A /* part_info-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "part_info-help.pd"; sourceTree = ""; }; + 3AB0D7C30E4094BB00AF570A /* part_killold-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "part_killold-help.pd"; sourceTree = ""; }; + 3AB0D7C40E4094BB00AF570A /* part_killslow-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "part_killslow-help.pd"; sourceTree = ""; }; + 3AB0D7C50E4094BB00AF570A /* part_orbitpoint-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "part_orbitpoint-help.pd"; sourceTree = ""; }; + 3AB0D7C60E4094BB00AF570A /* part_render-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "part_render-help.pd"; sourceTree = ""; }; + 3AB0D7C70E4094BB00AF570A /* part_sink-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "part_sink-help.pd"; sourceTree = ""; }; + 3AB0D7C80E4094BB00AF570A /* part_size-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "part_size-help.pd"; sourceTree = ""; }; + 3AB0D7C90E4094BB00AF570A /* part_source-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "part_source-help.pd"; sourceTree = ""; }; + 3AB0D7CA0E4094BB00AF570A /* part_targetcolor-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "part_targetcolor-help.pd"; sourceTree = ""; }; + 3AB0D7CB0E4094BB00AF570A /* part_targetsize-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "part_targetsize-help.pd"; sourceTree = ""; }; + 3AB0D7CC0E4094BB00AF570A /* part_velcone-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "part_velcone-help.pd"; sourceTree = ""; }; + 3AB0D7CD0E4094BB00AF570A /* part_velocity-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "part_velocity-help.pd"; sourceTree = ""; }; + 3AB0D7CE0E4094BB00AF570A /* part_velsphere-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "part_velsphere-help.pd"; sourceTree = ""; }; + 3AB0D7CF0E4094BB00AF570A /* part_vertex-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "part_vertex-help.pd"; sourceTree = ""; }; + 3AB0D7D00E4094BB00AF570A /* pix_2grey-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_2grey-help.pd"; sourceTree = ""; }; + 3AB0D7D10E4094BB00AF570A /* pix_a_2grey-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_a_2grey-help.pd"; sourceTree = ""; }; + 3AB0D7D20E4094BB00AF570A /* pix_add-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_add-help.pd"; sourceTree = ""; }; + 3AB0D7D30E4094BB00AF570A /* pix_aging-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_aging-help.pd"; sourceTree = ""; }; + 3AB0D7D40E4094BB00AF570A /* pix_alpha-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_alpha-help.pd"; sourceTree = ""; }; + 3AB0D7D50E4094BB00AF570A /* pix_background-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_background-help.pd"; sourceTree = ""; }; + 3AB0D7D60E4094BB00AF570A /* pix_backlight-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_backlight-help.pd"; sourceTree = ""; }; + 3AB0D7D70E4094BB00AF570A /* pix_biquad-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_biquad-help.pd"; sourceTree = ""; }; + 3AB0D7D80E4094BB00AF570A /* pix_bitmask-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_bitmask-help.pd"; sourceTree = ""; }; + 3AB0D7D90E4094BB00AF570A /* pix_blob-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_blob-help.pd"; sourceTree = ""; }; + 3AB0D7DA0E4094BB00AF570A /* pix_blur-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_blur-help.pd"; sourceTree = ""; }; + 3AB0D7DB0E4094BB00AF570A /* pix_buf-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_buf-help.pd"; sourceTree = ""; }; + 3AB0D7DC0E4094BB00AF570A /* pix_buffer_read-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_buffer_read-help.pd"; sourceTree = ""; }; + 3AB0D7DD0E4094BB00AF570A /* pix_buffer_write-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_buffer_write-help.pd"; sourceTree = ""; }; + 3AB0D7DE0E4094BB00AF570A /* pix_buffer-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_buffer-help.pd"; sourceTree = ""; }; + 3AB0D7DF0E4094BB00AF570A /* pix_chroma_key-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_chroma_key-help.pd"; sourceTree = ""; }; + 3AB0D7E00E4094BB00AF570A /* pix_clearblock-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_clearblock-help.pd"; sourceTree = ""; }; + 3AB0D7E10E4094BB00AF570A /* pix_color-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_color-help.pd"; sourceTree = ""; }; + 3AB0D7E20E4094BB00AF570A /* pix_coloralpha-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_coloralpha-help.pd"; sourceTree = ""; }; + 3AB0D7E30E4094BB00AF570A /* pix_colormatrix-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_colormatrix-help.pd"; sourceTree = ""; }; + 3AB0D7E40E4094BB00AF570A /* pix_colorreduce-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_colorreduce-help.pd"; sourceTree = ""; }; + 3AB0D7E50E4094BB00AF570A /* pix_compare-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_compare-help.pd"; sourceTree = ""; }; + 3AB0D7E60E4094BB00AF570A /* pix_composite-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_composite-help.pd"; sourceTree = ""; }; + 3AB0D7E70E4094BB00AF570A /* pix_contrast-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_contrast-help.pd"; sourceTree = ""; }; + 3AB0D7E80E4094BB00AF570A /* pix_convert-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_convert-help.pd"; sourceTree = ""; }; + 3AB0D7E90E4094BB00AF570A /* pix_convolve-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_convolve-help.pd"; sourceTree = ""; }; + 3AB0D7EA0E4094BB00AF570A /* pix_coordinate-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_coordinate-help.pd"; sourceTree = ""; }; + 3AB0D7EB0E4094BB00AF570A /* pix_crop-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_crop-help.pd"; sourceTree = ""; }; + 3AB0D7EC0E4094BB00AF570A /* pix_curve-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_curve-help.pd"; sourceTree = ""; }; + 3AB0D7ED0E4094BB00AF570A /* pix_data-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_data-help.pd"; sourceTree = ""; }; + 3AB0D7EE0E4094BB00AF570A /* pix_deinterlace-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_deinterlace-help.pd"; sourceTree = ""; }; + 3AB0D7EF0E4094BB00AF570A /* pix_delay-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_delay-help.pd"; sourceTree = ""; }; + 3AB0D7F00E4094BB00AF570A /* pix_diff-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_diff-help.pd"; sourceTree = ""; }; + 3AB0D7F10E4094BB00AF570A /* pix_dot-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_dot-help.pd"; sourceTree = ""; }; + 3AB0D7F20E4094BB00AF570A /* pix_draw-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_draw-help.pd"; sourceTree = ""; }; + 3AB0D7F30E4094BB00AF570A /* pix_dump-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_dump-help.pd"; sourceTree = ""; }; + 3AB0D7F40E4094BB00AF570A /* pix_duotone-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_duotone-help.pd"; sourceTree = ""; }; + 3AB0D7F50E4094BB00AF570A /* pix_fiducialtrack-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_fiducialtrack-help.pd"; sourceTree = ""; }; + 3AB0D7F60E4094BB00AF570A /* pix_film-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_film-help.pd"; sourceTree = ""; }; + 3AB0D7F70E4094BB00AF570A /* pix_flip-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_flip-help.pd"; sourceTree = ""; }; + 3AB0D7F80E4094BB00AF570A /* pix_freeframe-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_freeframe-help.pd"; sourceTree = ""; }; + 3AB0D7F90E4094BB00AF570A /* pix_gain-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_gain-help.pd"; sourceTree = ""; }; + 3AB0D7FA0E4094BB00AF570A /* pix_grey-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_grey-help.pd"; sourceTree = ""; }; + 3AB0D7FB0E4094BB00AF570A /* pix_halftone-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_halftone-help.pd"; sourceTree = ""; }; + 3AB0D7FC0E4094BB00AF570A /* pix_histo-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_histo-help.pd"; sourceTree = ""; }; + 3AB0D7FD0E4094BB00AF570A /* pix_hsv2rgb-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_hsv2rgb-help.pd"; sourceTree = ""; }; + 3AB0D7FE0E4094BB00AF570A /* pix_image-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_image-help.pd"; sourceTree = ""; }; + 3AB0D7FF0E4094BB00AF570A /* pix_imageInPlace-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_imageInPlace-help.pd"; sourceTree = ""; }; + 3AB0D8000E4094BB00AF570A /* pix_indycam-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_indycam-help.pd"; sourceTree = ""; }; + 3AB0D8010E4094BB00AF570A /* pix_info-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_info-help.pd"; sourceTree = ""; }; + 3AB0D8020E4094BB00AF570A /* pix_invert-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_invert-help.pd"; sourceTree = ""; }; + 3AB0D8030E4094BB00AF570A /* pix_kaleidoscope-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_kaleidoscope-help.pd"; sourceTree = ""; }; + 3AB0D8040E4094BB00AF570A /* pix_levels-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_levels-help.pd"; sourceTree = ""; }; + 3AB0D8050E4094BB00AF570A /* pix_lumaoffset-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_lumaoffset-help.pd"; sourceTree = ""; }; + 3AB0D8060E4094BB00AF570A /* pix_mask-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_mask-help.pd"; sourceTree = ""; }; + 3AB0D8070E4094BB00AF570A /* pix_mean_color-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_mean_color-help.pd"; sourceTree = ""; }; + 3AB0D8080E4094BB00AF570A /* pix_metaimage-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_metaimage-help.pd"; sourceTree = ""; }; + 3AB0D8090E4094BB00AF570A /* pix_mix-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_mix-help.pd"; sourceTree = ""; }; + 3AB0D80A0E4094BB00AF570A /* pix_motionblur-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_motionblur-help.pd"; sourceTree = ""; }; + 3AB0D80B0E4094BB00AF570A /* pix_movement-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_movement-help.pd"; sourceTree = ""; }; + 3AB0D80C0E4094BB00AF570A /* pix_movement2-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_movement2-help.pd"; sourceTree = ""; }; + 3AB0D80D0E4094BB00AF570A /* pix_movie-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_movie-help.pd"; sourceTree = ""; }; + 3AB0D80E0E4094BB00AF570A /* pix_multiblob-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_multiblob-help.pd"; sourceTree = ""; }; + 3AB0D80F0E4094BB00AF570A /* pix_multiimage-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_multiimage-help.pd"; sourceTree = ""; }; + 3AB0D8100E4094BB00AF570A /* pix_multiply-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_multiply-help.pd"; sourceTree = ""; }; + 3AB0D8110E4094BB00AF570A /* pix_normalize-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_normalize-help.pd"; sourceTree = ""; }; + 3AB0D8120E4094BB00AF570A /* pix_offset-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_offset-help.pd"; sourceTree = ""; }; + 3AB0D8130E4094BB00AF570A /* pix_pix2sig~-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_pix2sig~-help.pd"; sourceTree = ""; }; + 3AB0D8140E4094BB00AF570A /* pix_posterize-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_posterize-help.pd"; sourceTree = ""; }; + 3AB0D8150E4094BB00AF570A /* pix_puzzle-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_puzzle-help.pd"; sourceTree = ""; }; + 3AB0D8160E4094BB00AF570A /* pix_rds-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_rds-help.pd"; sourceTree = ""; }; + 3AB0D8170E4094BB00AF570A /* pix_record-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_record-help.pd"; sourceTree = ""; }; + 3AB0D8180E4094BB00AF570A /* pix_rectangle-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_rectangle-help.pd"; sourceTree = ""; }; + 3AB0D8190E4094BB00AF570A /* pix_refraction-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_refraction-help.pd"; sourceTree = ""; }; + 3AB0D81A0E4094BB00AF570A /* pix_resize-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_resize-help.pd"; sourceTree = ""; }; + 3AB0D81B0E4094BB00AF570A /* pix_rgb2hsv-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_rgb2hsv-help.pd"; sourceTree = ""; }; + 3AB0D81C0E4094BB00AF570A /* pix_rgba-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_rgba-help.pd"; sourceTree = ""; }; + 3AB0D81D0E4094BB00AF570A /* pix_roll-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_roll-help.pd"; sourceTree = ""; }; + 3AB0D81E0E4094BB00AF570A /* pix_rtx-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_rtx-help.pd"; sourceTree = ""; }; + 3AB0D81F0E4094BB00AF570A /* pix_scanline-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_scanline-help.pd"; sourceTree = ""; }; + 3AB0D8200E4094BB00AF570A /* pix_set-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_set-help.pd"; sourceTree = ""; }; + 3AB0D8210E4094BB00AF570A /* pix_share_read-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_share_read-help.pd"; sourceTree = ""; }; + 3AB0D8220E4094BB00AF570A /* pix_share_write-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_share_write-help.pd"; sourceTree = ""; }; + 3AB0D8230E4094BB00AF570A /* pix_sig2pix~-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_sig2pix~-help.pd"; sourceTree = ""; }; + 3AB0D8240E4094BB00AF570A /* pix_snap-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_snap-help.pd"; sourceTree = ""; }; + 3AB0D8250E4094BB00AF570A /* pix_snap2tex-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_snap2tex-help.pd"; sourceTree = ""; }; + 3AB0D8260E4094BB00AF570A /* pix_subtract-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_subtract-help.pd"; sourceTree = ""; }; + 3AB0D8270E4094BB00AF570A /* pix_takealpha-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_takealpha-help.pd"; sourceTree = ""; }; + 3AB0D8280E4094BB00AF570A /* pix_texture-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_texture-help.pd"; sourceTree = ""; }; + 3AB0D8290E4094BB00AF570A /* pix_threshold_bernsen-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_threshold_bernsen-help.pd"; sourceTree = ""; }; + 3AB0D82A0E4094BB00AF570A /* pix_threshold-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_threshold-help.pd"; sourceTree = ""; }; + 3AB0D82B0E4094BB00AF570A /* pix_tIIR-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_tIIR-help.pd"; sourceTree = ""; }; + 3AB0D82C0E4094BB00AF570A /* pix_video-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_video-help.pd"; sourceTree = ""; }; + 3AB0D82D0E4094BB00AF570A /* pix_videoDS-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_videoDS-help.pd"; sourceTree = ""; }; + 3AB0D82E0E4094BB00AF570A /* pix_write-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_write-help.pd"; sourceTree = ""; }; + 3AB0D82F0E4094BB00AF570A /* pix_yuv-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_yuv-help.pd"; sourceTree = ""; }; + 3AB0D8300E4094BB00AF570A /* pix_zoom-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pix_zoom-help.pd"; sourceTree = ""; }; + 3AB0D8310E4094BB00AF570A /* polygon_smooth-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "polygon_smooth-help.pd"; sourceTree = ""; }; + 3AB0D8320E4094BB00AF570A /* polygon-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "polygon-help.pd"; sourceTree = ""; }; + 3AB0D8330E4094BB00AF570A /* pqtorusknots-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "pqtorusknots-help.pd"; sourceTree = ""; }; + 3AB0D8340E4094BB00AF570A /* primTri-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "primTri-help.pd"; sourceTree = ""; }; + 3AB0D8350E4094BB00AF570A /* rectangle-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "rectangle-help.pd"; sourceTree = ""; }; + 3AB0D8360E4094BB00AF570A /* render_trigger-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "render_trigger-help.pd"; sourceTree = ""; }; + 3AB0D8370E4094BB00AF570A /* ripple-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "ripple-help.pd"; sourceTree = ""; }; + 3AB0D8380E4094BB00AF570A /* rotate-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "rotate-help.pd"; sourceTree = ""; }; + 3AB0D8390E4094BB00AF570A /* rotateXYZ-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "rotateXYZ-help.pd"; sourceTree = ""; }; + 3AB0D83A0E4094BB00AF570A /* rubber-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "rubber-help.pd"; sourceTree = ""; }; + 3AB0D83B0E4094BB00AF570A /* scale-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "scale-help.pd"; sourceTree = ""; }; + 3AB0D83C0E4094BB00AF570A /* scaleXYZ-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "scaleXYZ-help.pd"; sourceTree = ""; }; + 3AB0D83D0E4094BB00AF570A /* scopeXYZ~-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "scopeXYZ~-help.pd"; sourceTree = ""; }; + 3AB0D83E0E4094BB00AF570A /* separator-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "separator-help.pd"; sourceTree = ""; }; + 3AB0D83F0E4094BB00AF570A /* shearXY-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "shearXY-help.pd"; sourceTree = ""; }; + 3AB0D8400E4094BB00AF570A /* shearXZ-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "shearXZ-help.pd"; sourceTree = ""; }; + 3AB0D8410E4094BB00AF570A /* shearYX-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "shearYX-help.pd"; sourceTree = ""; }; + 3AB0D8420E4094BB00AF570A /* shearYZ-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "shearYZ-help.pd"; sourceTree = ""; }; + 3AB0D8430E4094BB00AF570A /* shearZX-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "shearZX-help.pd"; sourceTree = ""; }; + 3AB0D8440E4094BB00AF570A /* shearZY-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "shearZY-help.pd"; sourceTree = ""; }; + 3AB0D8450E4094BB00AF570A /* shininess-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "shininess-help.pd"; sourceTree = ""; }; + 3AB0D8460E4094BB00AF570A /* slideSquares-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "slideSquares-help.pd"; sourceTree = ""; }; + 3AB0D8470E4094BB00AF570A /* specular-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "specular-help.pd"; sourceTree = ""; }; + 3AB0D8480E4094BB00AF570A /* specularRGB-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "specularRGB-help.pd"; sourceTree = ""; }; + 3AB0D8490E4094BC00AF570A /* sphere-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "sphere-help.pd"; sourceTree = ""; }; + 3AB0D84A0E4094BC00AF570A /* spline_path-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "spline_path-help.pd"; sourceTree = ""; }; + 3AB0D84B0E4094BC00AF570A /* spot_light-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "spot_light-help.pd"; sourceTree = ""; }; + 3AB0D84C0E4094BC00AF570A /* square-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "square-help.pd"; sourceTree = ""; }; + 3AB0D84D0E4094BC00AF570A /* teapot-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "teapot-help.pd"; sourceTree = ""; }; + 3AB0D84E0E4094BC00AF570A /* text2d-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "text2d-help.pd"; sourceTree = ""; }; + 3AB0D84F0E4094BC00AF570A /* text3d-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "text3d-help.pd"; sourceTree = ""; }; + 3AB0D8500E4094BC00AF570A /* textextruded-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "textextruded-help.pd"; sourceTree = ""; }; + 3AB0D8510E4094BC00AF570A /* textoutline-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "textoutline-help.pd"; sourceTree = ""; }; + 3AB0D8520E4094BC00AF570A /* torus-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "torus-help.pd"; sourceTree = ""; }; + 3AB0D8530E4094BC00AF570A /* translate-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "translate-help.pd"; sourceTree = ""; }; + 3AB0D8540E4094BC00AF570A /* translateXYZ-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "translateXYZ-help.pd"; sourceTree = ""; }; + 3AB0D8550E4094BC00AF570A /* triangle-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "triangle-help.pd"; sourceTree = ""; }; + 3AB0D8560E4094BC00AF570A /* tube-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "tube-help.pd"; sourceTree = ""; }; + 3AB0D8570E4094BC00AF570A /* vertex_program-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "vertex_program-help.pd"; sourceTree = ""; }; + 3AB0D8580E4094BC00AF570A /* world_light-help.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "world_light-help.pd"; sourceTree = ""; }; + 3AB0D85D0E4095E700AF570A /* GemLoaders.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GemLoaders.cpp; sourceTree = ""; }; + 3AB0D85E0E4095E700AF570A /* GemLoaders.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GemLoaders.h; sourceTree = ""; }; + 3AB0D85F0E4095E700AF570A /* GemMan.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GemMan.cpp; sourceTree = ""; }; + 3AB0D8600E4095E700AF570A /* GemMath.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GemMath.h; sourceTree = ""; }; + 3AB0D8610E4095E700AF570A /* GemPathBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GemPathBase.cpp; sourceTree = ""; }; + 3AB0D8620E4095E700AF570A /* GemPBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GemPBuffer.cpp; sourceTree = ""; }; + 3AB0D8630E4095E700AF570A /* GemPBuffer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GemPBuffer.h; sourceTree = ""; }; + 3AB0D8640E4095E700AF570A /* GemPixConvert.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GemPixConvert.h; sourceTree = ""; }; + 3AB0D8650E4095E700AF570A /* GemPixConvertAltivec.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GemPixConvertAltivec.cpp; sourceTree = ""; }; + 3AB0D8660E4095E700AF570A /* GemPixConvertSSE2.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GemPixConvertSSE2.cpp; sourceTree = ""; }; + 3AB0D8670E4095E700AF570A /* GemSIMD.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GemSIMD.cpp; sourceTree = ""; }; + 3AB0D8680E4095E700AF570A /* GemVector.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GemVector.cpp; sourceTree = ""; }; + 3AB0D8690E4095E700AF570A /* GemVector.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GemVector.h; sourceTree = ""; }; + 3AB0D86A0E4095E700AF570A /* GemVertex.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GemVertex.cpp; sourceTree = ""; }; + 3AB0D86B0E4095E700AF570A /* GemVertex.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GemVertex.h; sourceTree = ""; }; + 3AB0D87B0E40963500AF570A /* glew.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = glew.cpp; sourceTree = ""; }; + 3AB0D87C0E40963500AF570A /* glew.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = glew.h; sourceTree = ""; }; + 3AB0D87F0E40967400AF570A /* gemframebuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = gemframebuffer.cpp; sourceTree = ""; }; + 3AB0D8800E40967400AF570A /* gemframebuffer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = gemframebuffer.h; sourceTree = ""; }; + 3AB0D8810E40967400AF570A /* gemhead.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = gemhead.cpp; sourceTree = ""; }; + 3AB0D8820E40967400AF570A /* gemkeyboard.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = gemkeyboard.cpp; sourceTree = ""; }; + 3AB0D8830E40967400AF570A /* gemkeyname.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = gemkeyname.cpp; sourceTree = ""; }; + 3AB0D8840E40967400AF570A /* gemlist_info.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = gemlist_info.h; sourceTree = ""; }; + 3AB0D8850E40967400AF570A /* gemlist_matrix.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = gemlist_matrix.cpp; sourceTree = ""; }; + 3AB0D8860E40967400AF570A /* gemlist_matrix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = gemlist_matrix.h; sourceTree = ""; }; + 3AB0D8870E40967400AF570A /* gemlist.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = gemlist.cpp; sourceTree = ""; }; + 3AB0D8880E40967400AF570A /* gemlist.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = gemlist.h; sourceTree = ""; }; + 3AB0D8890E40967400AF570A /* gemmouse.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = gemmouse.cpp; sourceTree = ""; }; + 3AB0D88A0E40967400AF570A /* gemmouse.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = gemmouse.h; sourceTree = ""; }; + 3AB0D88B0E40967400AF570A /* gemreceive.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = gemreceive.cpp; sourceTree = ""; }; + 3AB0D88C0E40967400AF570A /* gemreceive.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = gemreceive.h; sourceTree = ""; }; + 3AB0D88D0E40967400AF570A /* gemwin.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = gemwin.cpp; sourceTree = ""; }; + 3AB0D88E0E40967400AF570A /* gemwin.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = gemwin.h; sourceTree = ""; }; + 3AB0D8900E40967400AF570A /* render_trigger.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = render_trigger.cpp; sourceTree = ""; }; + 3AB0D8A30E4096A200AF570A /* circle.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = circle.cpp; sourceTree = ""; }; + 3AB0D8A40E4096A200AF570A /* circle.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = circle.h; sourceTree = ""; }; + 3AB0D8A50E4096A200AF570A /* colorSquare.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = colorSquare.cpp; sourceTree = ""; }; + 3AB0D8A60E4096A200AF570A /* colorSquare.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = colorSquare.h; sourceTree = ""; }; + 3AB0D8A70E4096A200AF570A /* cone.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cone.cpp; sourceTree = ""; }; + 3AB0D8A80E4096A200AF570A /* cone.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cone.h; sourceTree = ""; }; + 3AB0D8A90E4096A200AF570A /* cube.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cube.cpp; sourceTree = ""; }; + 3AB0D8AA0E4096A200AF570A /* cube.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cube.h; sourceTree = ""; }; + 3AB0D8AB0E4096A200AF570A /* cuboid.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cuboid.cpp; sourceTree = ""; }; + 3AB0D8AC0E4096A200AF570A /* cuboid.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cuboid.h; sourceTree = ""; }; + 3AB0D8AD0E4096A200AF570A /* curve.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = curve.cpp; sourceTree = ""; }; + 3AB0D8AE0E4096A200AF570A /* curve.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = curve.h; sourceTree = ""; }; + 3AB0D8AF0E4096A200AF570A /* curve3d.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = curve3d.cpp; sourceTree = ""; }; + 3AB0D8B00E4096A200AF570A /* curve3d.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = curve3d.h; sourceTree = ""; }; + 3AB0D8B10E4096A200AF570A /* cylinder.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cylinder.cpp; sourceTree = ""; }; + 3AB0D8B20E4096A200AF570A /* cylinder.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cylinder.h; sourceTree = ""; }; + 3AB0D8B30E4096A200AF570A /* disk.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = disk.cpp; sourceTree = ""; }; + 3AB0D8B40E4096A200AF570A /* disk.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = disk.h; sourceTree = ""; }; + 3AB0D8B50E4096A200AF570A /* GemSplash.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GemSplash.cpp; sourceTree = ""; }; + 3AB0D8B60E4096A200AF570A /* GemSplash.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GemSplash.h; sourceTree = ""; }; + 3AB0D8B70E4096A200AF570A /* imageVert.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = imageVert.cpp; sourceTree = ""; }; + 3AB0D8B80E4096A200AF570A /* imageVert.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = imageVert.h; sourceTree = ""; }; + 3AB0D8BA0E4096A300AF570A /* mesh_square.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = mesh_square.cpp; sourceTree = ""; }; + 3AB0D8BB0E4096A300AF570A /* mesh_square.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = mesh_square.h; sourceTree = ""; }; + 3AB0D8BC0E4096A300AF570A /* model_loader.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = model_loader.cpp; sourceTree = ""; }; + 3AB0D8BD0E4096A300AF570A /* model_loader.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = model_loader.h; sourceTree = ""; }; + 3AB0D8BE0E4096A300AF570A /* model.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = model.cpp; sourceTree = ""; }; + 3AB0D8BF0E4096A300AF570A /* model.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = model.h; sourceTree = ""; }; + 3AB0D8C00E4096A300AF570A /* multimodel.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = multimodel.cpp; sourceTree = ""; }; + 3AB0D8C10E4096A300AF570A /* multimodel.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = multimodel.h; sourceTree = ""; }; + 3AB0D8C20E4096A300AF570A /* newWave.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = newWave.cpp; sourceTree = ""; }; + 3AB0D8C30E4096A300AF570A /* newWave.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = newWave.h; sourceTree = ""; }; + 3AB0D8C40E4096A300AF570A /* polygon.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = polygon.cpp; sourceTree = ""; }; + 3AB0D8C50E4096A300AF570A /* polygon.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = polygon.h; sourceTree = ""; }; + 3AB0D8C60E4096A300AF570A /* pqtorusknots.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = pqtorusknots.cpp; sourceTree = ""; }; + 3AB0D8C70E4096A300AF570A /* pqtorusknots.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pqtorusknots.h; sourceTree = ""; }; + 3AB0D8C80E4096A300AF570A /* primTri.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = primTri.cpp; sourceTree = ""; }; + 3AB0D8C90E4096A300AF570A /* primTri.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = primTri.h; sourceTree = ""; }; + 3AB0D8CA0E4096A300AF570A /* rectangle.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = rectangle.cpp; sourceTree = ""; }; + 3AB0D8CB0E4096A300AF570A /* rectangle.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = rectangle.h; sourceTree = ""; }; + 3AB0D8CC0E4096A300AF570A /* ripple.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ripple.cpp; sourceTree = ""; }; + 3AB0D8CD0E4096A300AF570A /* ripple.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ripple.h; sourceTree = ""; }; + 3AB0D8CE0E4096A300AF570A /* rubber.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = rubber.cpp; sourceTree = ""; }; + 3AB0D8CF0E4096A300AF570A /* rubber.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = rubber.h; sourceTree = ""; }; + 3AB0D8D00E4096A300AF570A /* scopeXYZ.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = scopeXYZ.cpp; sourceTree = ""; }; + 3AB0D8D10E4096A300AF570A /* scopeXYZ.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = scopeXYZ.h; sourceTree = ""; }; + 3AB0D8D20E4096A300AF570A /* slideSquares.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = slideSquares.cpp; sourceTree = ""; }; + 3AB0D8D30E4096A300AF570A /* slideSquares.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = slideSquares.h; sourceTree = ""; }; + 3AB0D8D40E4096A300AF570A /* sphere.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = sphere.cpp; sourceTree = ""; }; + 3AB0D8D50E4096A300AF570A /* sphere.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = sphere.h; sourceTree = ""; }; + 3AB0D8D60E4096A300AF570A /* sphere3d.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = sphere3d.cpp; sourceTree = ""; }; + 3AB0D8D70E4096A300AF570A /* sphere3d.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = sphere3d.h; sourceTree = ""; }; + 3AB0D8D80E4096A300AF570A /* square.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = square.cpp; sourceTree = ""; }; + 3AB0D8D90E4096A300AF570A /* square.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = square.h; sourceTree = ""; }; + 3AB0D8DA0E4096A300AF570A /* teapot.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = teapot.cpp; sourceTree = ""; }; + 3AB0D8DB0E4096A300AF570A /* teapot.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = teapot.h; sourceTree = ""; }; + 3AB0D8DC0E4096A300AF570A /* TexFont.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = TexFont.h; sourceTree = ""; }; + 3AB0D8DD0E4096A300AF570A /* text2d.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = text2d.cpp; sourceTree = ""; }; + 3AB0D8DE0E4096A300AF570A /* text2d.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = text2d.h; sourceTree = ""; }; + 3AB0D8DF0E4096A300AF570A /* text3d.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = text3d.cpp; sourceTree = ""; }; + 3AB0D8E00E4096A300AF570A /* text3d.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = text3d.h; sourceTree = ""; }; + 3AB0D8E10E4096A300AF570A /* textextruded.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = textextruded.cpp; sourceTree = ""; }; + 3AB0D8E20E4096A300AF570A /* textextruded.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = textextruded.h; sourceTree = ""; }; + 3AB0D8E30E4096A300AF570A /* textoutline.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = textoutline.cpp; sourceTree = ""; }; + 3AB0D8E40E4096A300AF570A /* textoutline.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = textoutline.h; sourceTree = ""; }; + 3AB0D8E50E4096A300AF570A /* torus.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = torus.cpp; sourceTree = ""; }; + 3AB0D8E60E4096A300AF570A /* torus.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = torus.h; sourceTree = ""; }; + 3AB0D8E70E4096A300AF570A /* trapezoid.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = trapezoid.cpp; sourceTree = ""; }; + 3AB0D8E80E4096A300AF570A /* trapezoid.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = trapezoid.h; sourceTree = ""; }; + 3AB0D8E90E4096A300AF570A /* triangle.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = triangle.cpp; sourceTree = ""; }; + 3AB0D8EA0E4096A300AF570A /* triangle.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = triangle.h; sourceTree = ""; }; + 3AB0D8EB0E4096A300AF570A /* tube.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = tube.cpp; sourceTree = ""; }; + 3AB0D8EC0E4096A300AF570A /* tube.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = tube.h; sourceTree = ""; }; + 3ACEE3A60E40B9E800FC2E4B /* Gem.d_fat */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = Gem.d_fat; sourceTree = BUILT_PRODUCTS_DIR; }; + 3ACEE3D70E40C8A800FC2E4B /* GemVersion.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GemVersion.cpp; sourceTree = ""; }; + 3AE073900EB8A2CA00223BA6 /* pix_filmOS.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pix_filmOS.cpp; sourceTree = ""; }; + 3AE073910EB8A2CA00223BA6 /* pix_filmOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pix_filmOS.h; sourceTree = ""; }; + 3AE073960EB8A31300223BA6 /* pix_movieOS.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pix_movieOS.cpp; sourceTree = ""; }; + 3AE073970EB8A31300223BA6 /* pix_movieOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pix_movieOS.h; sourceTree = ""; }; + 3AE0739C0EB8A34600223BA6 /* pix_videoOS.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pix_videoOS.cpp; sourceTree = ""; }; + 3AE0739D0EB8A34600223BA6 /* pix_videoOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pix_videoOS.h; sourceTree = ""; }; + F521B40703898BE2019165F0 /* CPPExtern.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CPPExtern.h; sourceTree = ""; }; + F521B40903898BE2019165F0 /* GemBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GemBase.h; sourceTree = ""; }; + F521B40B03898BE2019165F0 /* GemCache.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GemCache.h; sourceTree = ""; }; + F521B40F03898BE2019165F0 /* GemEvent.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GemEvent.h; sourceTree = ""; }; + F521B41003898BE2019165F0 /* GemExportDef.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GemExportDef.h; sourceTree = ""; }; + F521B41203898BE2019165F0 /* GemFuncUtil.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GemFuncUtil.h; sourceTree = ""; }; + F521B41403898BE2019165F0 /* GemGluObj.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GemGluObj.h; sourceTree = ""; }; + F521B41603898BE2019165F0 /* GemGLUtil.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GemGLUtil.h; sourceTree = ""; }; + F521B41A03898BE2019165F0 /* GemLoadObj.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GemLoadObj.h; sourceTree = ""; }; + F521B41C03898BE2019165F0 /* GemMan.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GemMan.h; sourceTree = ""; }; + F521B41D03898BE2019165F0 /* GemModelData.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GemModelData.cpp; sourceTree = ""; }; + F521B41E03898BE2019165F0 /* GemModelData.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GemModelData.h; sourceTree = ""; }; + F521B42003898BE2019165F0 /* GemPathBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GemPathBase.h; sourceTree = ""; }; + F521B42203898BE2019165F0 /* GemPixDualObj.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GemPixDualObj.h; sourceTree = ""; }; + F521B42403898BE2019165F0 /* GemPixImageLoad.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GemPixImageLoad.h; sourceTree = ""; }; + F521B42603898BE2019165F0 /* GemPixImageSave.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GemPixImageSave.h; sourceTree = ""; }; + F521B42803898BE2019165F0 /* GemPixObj.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GemPixObj.h; sourceTree = ""; }; + F521B42A03898BE2019165F0 /* GemPixUtil.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GemPixUtil.h; sourceTree = ""; }; + F521B42D03898BE2019165F0 /* GemShape.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GemShape.h; sourceTree = ""; }; + F521B42F03898BE2019165F0 /* GemState.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GemState.h; sourceTree = ""; }; + F521B43003898BE2019165F0 /* GemVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GemVersion.h; sourceTree = ""; }; + F521B43103898BE2019165F0 /* GemWinCreate.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GemWinCreate.h; sourceTree = ""; }; + F521B43303898BE2019165F0 /* GemWinCreateNT.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GemWinCreateNT.cpp; sourceTree = ""; }; + F521B43403898BE2019165F0 /* GemWinCreateXWin.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GemWinCreateXWin.cpp; sourceTree = ""; }; + F521B43703898BE2019165F0 /* Matrix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Matrix.h; sourceTree = ""; }; + F521B43903898BE2019165F0 /* sgiimage.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = sgiimage.h; sourceTree = ""; }; + F521B43B03898BE2019165F0 /* TextBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = TextBase.h; sourceTree = ""; }; + F521B43E03898BE2019165F0 /* gemhead.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = gemhead.h; sourceTree = ""; }; + F521B44003898BE2019165F0 /* gemkeyboard.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = gemkeyboard.h; sourceTree = ""; }; + F521B44203898BE2019165F0 /* gemkeyname.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = gemkeyname.h; sourceTree = ""; }; + F521B44D03898BE2019165F0 /* render_trigger.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = render_trigger.h; sourceTree = ""; }; + F59BBBAD03A9213901A80164 /* libMallocDebug.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libMallocDebug.a; path = /usr/lib/libMallocDebug.a; sourceTree = ""; }; + F5BDD20B0389F11F0175848A /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = ""; }; + F5BDD20C0389F11F0175848A /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = ""; }; + F5BDD20D0389F11F0175848A /* GLUT.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLUT.framework; path = /System/Library/Frameworks/GLUT.framework; sourceTree = ""; }; + F5BDD20E0389F11F0175848A /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = ""; }; + F5BDD20F0389F11F0175848A /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = ""; }; + F5CC044C03A4003F01A80164 /* add.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = add.jpg; sourceTree = ""; }; + F5CC044D03A4003F01A80164 /* addResult.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = addResult.jpg; sourceTree = ""; }; + F5CC044E03A4003F01A80164 /* Advanced.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; path = Advanced.html; sourceTree = ""; }; + F5CC044F03A4003F01A80164 /* basicCube.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = basicCube.jpg; sourceTree = ""; }; + F5CC045003A4003F01A80164 /* BasicObj.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; path = BasicObj.html; sourceTree = ""; }; + F5CC045103A4003F01A80164 /* counter.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = counter.jpg; sourceTree = ""; }; + F5CC045203A4003F01A80164 /* GemFaq.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; path = GemFaq.html; sourceTree = ""; }; + F5CC045503A4003F01A80164 /* Gloss.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; path = Gloss.html; sourceTree = ""; }; + F5CC045603A4003F01A80164 /* Images.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; path = Images.html; sourceTree = ""; }; + F5CC045703A4003F01A80164 /* index.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; path = index.html; sourceTree = ""; }; + F5CC045803A4003F01A80164 /* Input.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; path = Input.html; sourceTree = ""; }; + F5CC045903A4003F01A80164 /* Intro.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; path = Intro.html; sourceTree = ""; }; + F5CC045A03A4003F01A80164 /* invert.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = invert.jpg; sourceTree = ""; }; + F5CC045B03A4003F01A80164 /* invertFrac.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = invertFrac.jpg; sourceTree = ""; }; + F5CC045C03A4003F01A80164 /* light.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = light.jpg; sourceTree = ""; }; + F5CC045D03A4003F01A80164 /* Lighting.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; path = Lighting.html; sourceTree = ""; }; + F5CC045E03A4003F01A80164 /* ListObjects.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; path = ListObjects.html; sourceTree = ""; }; + F5CC045F03A4003F01A80164 /* mask.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = mask.jpg; sourceTree = ""; }; + F5CC046003A4003F01A80164 /* maskResult.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = maskResult.jpg; sourceTree = ""; }; + F5CC046103A4003F01A80164 /* normalFrac.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = normalFrac.jpg; sourceTree = ""; }; + F5CC046203A4003F01A80164 /* Particles.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; path = Particles.html; sourceTree = ""; }; + F5CC046303A4003F01A80164 /* Pixes.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; path = Pixes.html; sourceTree = ""; }; + F5CC046403A4003F01A80164 /* pixImage.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = pixImage.jpg; sourceTree = ""; }; + F5CC046503A4003F01A80164 /* redSquare.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = redSquare.jpg; sourceTree = ""; }; + F5CC046603A4003F01A80164 /* sphere5.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = sphere5.jpg; sourceTree = ""; }; + F5CC046703A4003F01A80164 /* sphere15.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = sphere15.jpg; sourceTree = ""; }; + F5CC046803A4003F01A80164 /* Texture.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; path = Texture.html; sourceTree = ""; }; + F5CC046903A4003F01A80164 /* texture.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = texture.jpg; sourceTree = ""; }; + F5CC046A03A4003F01A80164 /* transXYZ.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = transXYZ.jpg; sourceTree = ""; }; + F5CC046B03A4003F01A80164 /* tribar.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = tribar.gif; sourceTree = ""; }; + F5CC046C03A4003F01A80164 /* tripleLine.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = tripleLine.jpg; sourceTree = ""; }; + F5CC046D03A4003F01A80164 /* tripleRand.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = tripleRand.jpg; sourceTree = ""; }; + F5CC046E03A4003F01A80164 /* Utility.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; path = Utility.html; sourceTree = ""; }; + F5CC046F03A4003F01A80164 /* world_light.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = world_light.jpg; sourceTree = ""; }; + F5CC047003A4003F01A80164 /* WriteCode.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; path = WriteCode.html; sourceTree = ""; }; + FD05177D0405A47900A80164 /* 01.primQuad.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 01.primQuad.pd; sourceTree = ""; }; + FD13827B05A9074700B04CF5 /* cMatrix.html */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; path = cMatrix.html; sourceTree = ""; }; + FD13827C05A9074700B04CF5 /* gem.known_bugs.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = gem.known_bugs.txt; sourceTree = ""; }; + FD13827D05A9074700B04CF5 /* gem.release_notes.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = gem.release_notes.txt; sourceTree = ""; }; + FD13827E05A9074700B04CF5 /* gem.todo.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = gem.todo.txt; sourceTree = ""; }; + FD13827F05A9074700B04CF5 /* GemPrimer.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = GemPrimer.pdf; sourceTree = ""; }; + FD2F4E9008F2FA43008F3CED /* 16.vertex_program.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 16.vertex_program.pd; sourceTree = ""; }; + FD2F4E9108F2FA43008F3CED /* 17.fragment_program.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 17.fragment_program.pd; sourceTree = ""; }; + FD2F4E9208F2FA79008F3CED /* 07.feedback.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 07.feedback.pd; sourceTree = ""; }; + FD2F4E9308F2FA9E008F3CED /* 02.displayList.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 02.displayList.pd; sourceTree = ""; }; + FD2F4E9508F2FAC6008F3CED /* 64shade.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = 64shade.tif; sourceTree = ""; }; + FD2F4E9608F2FAC6008F3CED /* random.fp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = random.fp; sourceTree = ""; }; + FD2F4E9708F2FAC6008F3CED /* toon.vp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = toon.vp; sourceTree = ""; }; + FD2F4EA908F458E2008F3CED /* GemGL.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GemGL.h; sourceTree = ""; }; + FD504C050856672500AF77DC /* Gem.pd_darwin */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = Gem.pd_darwin; sourceTree = BUILT_PRODUCTS_DIR; }; + FD7A25EA07551CFE0034FA5B /* gemlist_info.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = gemlist_info.cpp; sourceTree = ""; }; + FD85B4E806B1A62C00C4B065 /* GemPixPete.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GemPixPete.h; sourceTree = ""; }; + FD85B4E906B1A62C00C4B065 /* GemSIMD.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = GemSIMD.h; sourceTree = ""; }; + FD86901E09167CCD0079421E /* ChangeLog */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; name = ChangeLog; path = Gem/ChangeLog; sourceTree = ""; }; + FD89459605866C1D0014FA36 /* config.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = ""; }; + FD89459705866C1D0014FA36 /* configDarwin.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = configDarwin.h; sourceTree = ""; }; + FD8E016E04C4CB9900DF3958 /* FTBBox.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FTBBox.h; sourceTree = ""; }; + FD8E016F04C4CB9900DF3958 /* FTBitmapGlyph.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FTBitmapGlyph.h; sourceTree = ""; }; + FD8E017004C4CB9900DF3958 /* FTCharmap.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FTCharmap.h; sourceTree = ""; }; + FD8E017104C4CB9900DF3958 /* FTCharToGlyphIndexMap.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FTCharToGlyphIndexMap.h; sourceTree = ""; }; + FD8E017204C4CB9900DF3958 /* FTContour.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FTContour.h; sourceTree = ""; }; + FD8E017304C4CB9900DF3958 /* FTExtrdGlyph.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FTExtrdGlyph.h; sourceTree = ""; }; + FD8E017404C4CB9900DF3958 /* FTFace.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FTFace.h; sourceTree = ""; }; + FD8E017504C4CB9900DF3958 /* FTFont.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FTFont.h; sourceTree = ""; }; + FD8E017604C4CB9900DF3958 /* FTGL.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FTGL.h; sourceTree = ""; }; + FD8E017704C4CB9900DF3958 /* FTGLBitmapFont.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FTGLBitmapFont.h; sourceTree = ""; }; + FD8E017804C4CB9900DF3958 /* FTGLExtrdFont.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FTGLExtrdFont.h; sourceTree = ""; }; + FD8E017904C4CB9900DF3958 /* FTGLOutlineFont.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FTGLOutlineFont.h; sourceTree = ""; }; + FD8E017A04C4CB9900DF3958 /* FTGLPixmapFont.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FTGLPixmapFont.h; sourceTree = ""; }; + FD8E017B04C4CB9900DF3958 /* FTGLPolygonFont.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FTGLPolygonFont.h; sourceTree = ""; }; + FD8E017C04C4CB9900DF3958 /* FTGLTextureFont.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FTGLTextureFont.h; sourceTree = ""; }; + FD8E017D04C4CB9900DF3958 /* FTGlyph.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FTGlyph.h; sourceTree = ""; }; + FD8E017E04C4CB9900DF3958 /* FTGlyphContainer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FTGlyphContainer.h; sourceTree = ""; }; + FD8E017F04C4CB9900DF3958 /* FTLibrary.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FTLibrary.h; sourceTree = ""; }; + FD8E018004C4CB9900DF3958 /* FTList.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FTList.h; sourceTree = ""; }; + FD8E018104C4CB9900DF3958 /* FTOutlineGlyph.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FTOutlineGlyph.h; sourceTree = ""; }; + FD8E018204C4CB9900DF3958 /* FTPixmapGlyph.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FTPixmapGlyph.h; sourceTree = ""; }; + FD8E018304C4CB9900DF3958 /* FTPoint.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FTPoint.h; sourceTree = ""; }; + FD8E018404C4CB9900DF3958 /* FTPolyGlyph.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FTPolyGlyph.h; sourceTree = ""; }; + FD8E018504C4CB9900DF3958 /* FTSize.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FTSize.h; sourceTree = ""; }; + FD8E018604C4CB9900DF3958 /* FTTextureGlyph.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FTTextureGlyph.h; sourceTree = ""; }; + FD8E018704C4CB9900DF3958 /* FTVector.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FTVector.h; sourceTree = ""; }; + FD8E018804C4CB9900DF3958 /* FTVectoriser.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FTVectoriser.h; sourceTree = ""; }; + FD8EFB4B04C46CA600DF3958 /* 24.time-filtering.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = "24.time-filtering.pd"; sourceTree = ""; }; + FD8EFB4C04C46CA600DF3958 /* 25.buffer.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 25.buffer.pd; sourceTree = ""; }; + FD8EFB4D04C46CDD00DF3958 /* 00.SimpleVideo.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 00.SimpleVideo.pd; sourceTree = ""; }; + FD8EFB4E04C46CFC00DF3958 /* 07.render.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 07.render.pd; sourceTree = ""; }; + FD8EFB4F04C46CFC00DF3958 /* 08.info.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 08.info.pd; sourceTree = ""; }; + FD8EFC7404C4715B00DF3958 /* libftgl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libftgl.a; path = mac/build/Deployment/libftgl.a; sourceTree = ""; }; + FDAE03BC09C8A5F500201A91 /* TODO */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = TODO; sourceTree = ""; }; + FDB7B8960477359D00A80164 /* blob0.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = blob0.tif; sourceTree = ""; }; + FDB7B8970477359D00A80164 /* blob1.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = blob1.tif; sourceTree = ""; }; + FDB7B8980477359D00A80164 /* blob2.tif */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = blob2.tif; sourceTree = ""; }; + FDB7B8990477359D00A80164 /* venus.obj */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = venus.obj; sourceTree = ""; }; + FDC7F58C03F7268D007E9592 /* 05.newWave.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 05.newWave.pd; sourceTree = ""; }; + FDC7F58D03F7268D007E9592 /* 06.ripple.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 06.ripple.pd; sourceTree = ""; }; + FDCAC5F403F1F6D600A80164 /* 01.redSquare.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 01.redSquare.pd; sourceTree = ""; }; + FDCAC5F503F1F6D600A80164 /* 02.blueRectangle.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 02.blueRectangle.pd; sourceTree = ""; }; + FDCAC5F603F1F6D600A80164 /* 03.disk.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 03.disk.pd; sourceTree = ""; }; + FDCAC5F703F1F6D600A80164 /* 04.PrimTri.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 04.PrimTri.pd; sourceTree = ""; }; + FDCAC5F803F1F6D600A80164 /* 05.cube.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 05.cube.pd; sourceTree = ""; }; + FDCAC5F903F1F6D600A80164 /* 06.sphere.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 06.sphere.pd; sourceTree = ""; }; + FDCAC5FA03F1F6D600A80164 /* 07.cylinder.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 07.cylinder.pd; sourceTree = ""; }; + FDCAC5FB03F1F6D600A80164 /* 08.model.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 08.model.pd; sourceTree = ""; }; + FDCAC5FC03F1F6D600A80164 /* 09.yelloTeapot.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 09.yelloTeapot.pd; sourceTree = ""; }; + FDCAC5FE03F1F6D600A80164 /* 01.Separator.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 01.Separator.pd; sourceTree = ""; }; + FDCAC5FF03F1F6D600A80164 /* 02.Ortho.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 02.Ortho.pd; sourceTree = ""; }; + FDCAC60003F1F6D600A80164 /* 03.View.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 03.View.pd; sourceTree = ""; }; + FDCAC60103F1F6D600A80164 /* 03.View_OSD.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 03.View_OSD.pd; sourceTree = ""; }; + FDCAC60203F1F6D600A80164 /* 04.Fog.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 04.Fog.pd; sourceTree = ""; }; + FDCAC60303F1F6D600A80164 /* 05.Stereo.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 05.Stereo.pd; sourceTree = ""; }; + FDCAC60403F1F6D600A80164 /* 06.StereoParticle.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 06.StereoParticle.pd; sourceTree = ""; }; + FDCAC60503F1F6D600A80164 /* 07.Snapshot1.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 07.Snapshot1.pd; sourceTree = ""; }; + FDCAC60603F1F6D600A80164 /* 08.Snapshot2.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 08.Snapshot2.pd; sourceTree = ""; }; + FDCAC60703F1F6D600A80164 /* 09.SnapshotSave.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 09.SnapshotSave.pd; sourceTree = ""; }; + FDCAC60803F1F6D600A80164 /* 10.LinearPath.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 10.LinearPath.pd; sourceTree = ""; }; + FDCAC60903F1F6D600A80164 /* 11.SplinePath.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 11.SplinePath.pd; sourceTree = ""; }; + FDCAC60A03F1F6D600A80164 /* 12.Hsv.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 12.Hsv.pd; sourceTree = ""; }; + FDCAC60B03F1F6D600A80164 /* 13.ModelRescale.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 13.ModelRescale.pd; sourceTree = ""; }; + FDCAC60C03F1F6D600A80164 /* 14.RenderOrder.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 14.RenderOrder.pd; sourceTree = ""; }; + FDCAC60D03F1F6D600A80164 /* 15.GemWin.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 15.GemWin.pd; sourceTree = ""; }; + FDCAC60F03F1F6D600A80164 /* 01.world_light.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 01.world_light.pd; sourceTree = ""; }; + FDCAC61003F1F6D600A80164 /* 02.light.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 02.light.pd; sourceTree = ""; }; + FDCAC61103F1F6D600A80164 /* 03.controlLights.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 03.controlLights.pd; sourceTree = ""; }; + FDCAC61203F1F6D600A80164 /* 04.moveSpheres.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 04.moveSpheres.pd; sourceTree = ""; }; + FDCAC61303F1F6D600A80164 /* 05.materials.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 05.materials.pd; sourceTree = ""; }; + FDCAC61503F1F6D600A80164 /* 01.image.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 01.image.pd; sourceTree = ""; }; + FDCAC61603F1F6D600A80164 /* 02.multiimage.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 02.multiimage.pd; sourceTree = ""; }; + FDCAC61703F1F6D600A80164 /* 04.ImageInPlace.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 04.ImageInPlace.pd; sourceTree = ""; }; + FDCAC61803F1F6D600A80164 /* 05.film.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 05.film.pd; sourceTree = ""; }; + FDCAC61903F1F6D600A80164 /* 05.movie.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 05.movie.pd; sourceTree = ""; }; + FDCAC61A03F1F6D600A80164 /* 06.PixRect.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 06.PixRect.pd; sourceTree = ""; }; + FDCAC61B03F1F6D600A80164 /* 07.PixSet.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 07.PixSet.pd; sourceTree = ""; }; + FDCAC61C03F1F6D600A80164 /* 08.PixDump.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 08.PixDump.pd; sourceTree = ""; }; + FDCAC61D03F1F6D600A80164 /* 09.Histogram.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 09.Histogram.pd; sourceTree = ""; }; + FDCAC61E03F1F6D600A80164 /* 10.PixDataSimple.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 10.PixDataSimple.pd; sourceTree = ""; }; + FDCAC61F03F1F6D600A80164 /* 11.PixDataComplex.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 11.PixDataComplex.pd; sourceTree = ""; }; + FDCAC62003F1F6D600A80164 /* 12.add.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 12.add.pd; sourceTree = ""; }; + FDCAC62103F1F6D600A80164 /* 12.blending.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 12.blending.pd; sourceTree = ""; }; + FDCAC62203F1F6D600A80164 /* 12.composite.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 12.composite.pd; sourceTree = ""; }; + FDCAC62303F1F6D600A80164 /* 12.pix_multiply.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 12.pix_multiply.pd; sourceTree = ""; }; + FDCAC62403F1F6D600A80164 /* 13.maskDancer.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 13.maskDancer.pd; sourceTree = ""; }; + FDCAC62503F1F6D600A80164 /* 14.takeAlpha.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 14.takeAlpha.pd; sourceTree = ""; }; + FDCAC62603F1F6D600A80164 /* 15.pix_alpha.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 15.pix_alpha.pd; sourceTree = ""; }; + FDCAC62703F1F6D600A80164 /* 16.alphaGrey.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 16.alphaGrey.pd; sourceTree = ""; }; + FDCAC62803F1F6D600A80164 /* 16.pix_2grey.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 16.pix_2grey.pd; sourceTree = ""; }; + FDCAC62903F1F6D600A80164 /* 17.pix_gain.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 17.pix_gain.pd; sourceTree = ""; }; + FDCAC62A03F1F6D600A80164 /* 18.Curves.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 18.Curves.pd; sourceTree = ""; }; + FDCAC62B03F1F6D600A80164 /* 19.colorMatrix.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 19.colorMatrix.pd; sourceTree = ""; }; + FDCAC62C03F1F6D600A80164 /* 20.convolve.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 20.convolve.pd; sourceTree = ""; }; + FDCAC62D03F1F6D600A80164 /* 22.biquad.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 22.biquad.pd; sourceTree = ""; }; + FDCAC62E03F1F6D600A80164 /* 23.gravity.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 23.gravity.pd; sourceTree = ""; }; + FDCAC63003F1F6D600A80164 /* 01.VideoPaint.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 01.VideoPaint.pd; sourceTree = ""; }; + FDCAC63103F1F6D600A80164 /* 02.VideoSphere.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 02.VideoSphere.pd; sourceTree = ""; }; + FDCAC63203F1F6D600A80164 /* 03.movement_detection.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 03.movement_detection.pd; sourceTree = ""; }; + FDCAC63303F1F6D600A80164 /* 04.videoRTX.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 04.videoRTX.pd; sourceTree = ""; }; + FDCAC63503F1F6D600A80164 /* 01.Text.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 01.Text.pd; sourceTree = ""; }; + FDCAC63603F1F6D600A80164 /* 01.TextNoLoadBang.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 01.TextNoLoadBang.pd; sourceTree = ""; }; + FDCAC63703F1F6D600A80164 /* 03.ChangeText.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 03.ChangeText.pd; sourceTree = ""; }; + FDCAC63803F1F6D600A80164 /* 03.ChangeTextNoLoadBang.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 03.ChangeTextNoLoadBang.pd; sourceTree = ""; }; + FDCAC63B03F1F6D600A80164 /* 01.simple.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 01.simple.pd; sourceTree = ""; }; + FDCAC63C03F1F6D600A80164 /* 02.fountain.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 02.fountain.pd; sourceTree = ""; }; + FDCAC63D03F1F6D600A80164 /* 03.orbit.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 03.orbit.pd; sourceTree = ""; }; + FDCAC63E03F1F6D600A80164 /* 04.combo.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 04.combo.pd; sourceTree = ""; }; + FDCAC63F03F1F6D600A80164 /* 05.twoSrc.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 05.twoSrc.pd; sourceTree = ""; }; + FDCAC64003F1F6D600A80164 /* 06.target.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 06.target.pd; sourceTree = ""; }; + FDCAC64203F1F6D600A80164 /* 01.texture.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 01.texture.pd; sourceTree = ""; }; + FDCAC64303F1F6D700A80164 /* 02.TexCoord.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 02.TexCoord.pd; sourceTree = ""; }; + FDCAC64403F1F6D700A80164 /* 04.moveImages.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 04.moveImages.pd; sourceTree = ""; }; + FDCAC64603F1F6D700A80164 /* 01.Mouse.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 01.Mouse.pd; sourceTree = ""; }; + FDCAC64703F1F6D700A80164 /* 02.Tablet.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 02.Tablet.pd; sourceTree = ""; }; + FDCAC64803F1F6D700A80164 /* 03.Orb.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 03.Orb.pd; sourceTree = ""; }; + FDCAC64903F1F6D700A80164 /* 04.UseOrb.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = 04.UseOrb.pd; sourceTree = ""; }; + FDCAC64B03F1F6D700A80164 /* puzzle.pd */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = puzzle.pd; sourceTree = ""; }; + FDCAC64D03F1F6D700A80164 /* alea.mpg */ = {isa = PBXFileReference; lastKnownFileType = video.mpeg; path = alea.mpg; sourceTree = ""; }; + FDCAC64E03F1F6D700A80164 /* anim-1.mov */ = {isa = PBXFileReference; lastKnownFileType = video.quicktime; path = "anim-1.mov"; sourceTree = ""; }; + FDCAC65103F1F6D700A80164 /* dancer.JPG */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = dancer.JPG; sourceTree = ""; }; + FDCAC65203F1F6D700A80164 /* fractal.JPG */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = fractal.JPG; sourceTree = ""; }; + FDCAC65303F1F6D700A80164 /* fractalAlpha.TIF */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = fractalAlpha.TIF; sourceTree = ""; }; + FDCAC65403F1F6D700A80164 /* homer.avi */ = {isa = PBXFileReference; lastKnownFileType = video.avi; path = homer.avi; sourceTree = ""; }; + FDCAC65503F1F6D700A80164 /* temp0.JPG */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = temp0.JPG; sourceTree = ""; }; + FDCAC65603F1F6D700A80164 /* temp1.JPG */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = temp1.JPG; sourceTree = ""; }; + FDCAC65703F1F6D700A80164 /* temp2.JPG */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = temp2.JPG; sourceTree = ""; }; + FDCAC65903F1F6D700A80164 /* valcolor.tab */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = valcolor.tab; sourceTree = ""; }; + FDCAC65A03F1F6D700A80164 /* valmotion.tab */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = valmotion.tab; sourceTree = ""; }; + FDCAC65B03F1F6D700A80164 /* venus.mtl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = venus.mtl; sourceTree = ""; }; + FDCE6E0E070DBC8F001F121C /* CPPExtern.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CPPExtern.cpp; sourceTree = ""; }; + FDCE6E0F070DBC8F001F121C /* GemBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GemBase.cpp; sourceTree = ""; }; + FDCE6E10070DBC8F001F121C /* GemCache.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GemCache.cpp; sourceTree = ""; }; + FDCE6E11070DBC8F001F121C /* GemEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GemEvent.cpp; sourceTree = ""; }; + FDCE6E12070DBC8F001F121C /* GemFuncUtil.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GemFuncUtil.cpp; sourceTree = ""; }; + FDCE6E13070DBC8F001F121C /* GemGluObj.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GemGluObj.cpp; sourceTree = ""; }; + FDCE6E14070DBC8F001F121C /* GemGLUtil.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GemGLUtil.cpp; sourceTree = ""; }; + FDCE6E15070DBC8F001F121C /* GemLoadObj.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GemLoadObj.cpp; sourceTree = ""; }; + FDCE6E16070DBC8F001F121C /* GemPixDualObj.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GemPixDualObj.cpp; sourceTree = ""; }; + FDCE6E17070DBC8F001F121C /* GemPixImageLoad.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GemPixImageLoad.cpp; sourceTree = ""; }; + FDCE6E18070DBC8F001F121C /* GemPixImageSave.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GemPixImageSave.cpp; sourceTree = ""; }; + FDCE6E19070DBC8F001F121C /* GemPixObj.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GemPixObj.cpp; sourceTree = ""; }; + FDCE6E1A070DBC8F001F121C /* GemPixUtil.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GemPixUtil.cpp; sourceTree = ""; }; + FDCE6E1B070DBC8F001F121C /* GemSetup.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GemSetup.cpp; sourceTree = ""; }; + FDCE6E1C070DBC8F001F121C /* GemShape.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GemShape.cpp; sourceTree = ""; }; + FDCE6E1D070DBC8F001F121C /* GemState.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GemState.cpp; sourceTree = ""; }; + FDCE6E1F070DBC8F001F121C /* GemWinCreateMac.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = GemWinCreateMac.cpp; sourceTree = ""; }; + FDCE6E20070DBC8F001F121C /* Matrix.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Matrix.cpp; sourceTree = ""; }; + FDCE6E21070DBC8F001F121C /* TextBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = TextBase.cpp; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 3ACEE39A0E40B9E800FC2E4B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 3ACEE39B0E40B9E800FC2E4B /* AGL.framework in Frameworks */, + 3ACEE39C0E40B9E800FC2E4B /* Carbon.framework in Frameworks */, + 3ACEE39D0E40B9E800FC2E4B /* GLUT.framework in Frameworks */, + 3ACEE39E0E40B9E800FC2E4B /* OpenGL.framework in Frameworks */, + 3ACEE39F0E40B9E800FC2E4B /* QuickTime.framework in Frameworks */, + 3ACEE3A00E40B9E800FC2E4B /* libftgl.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FD504BF90856672000AF77DC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + FD504BFA0856672000AF77DC /* AGL.framework in Frameworks */, + FD504BFB0856672000AF77DC /* Carbon.framework in Frameworks */, + FD504BFC0856672000AF77DC /* GLUT.framework in Frameworks */, + FD504BFD0856672000AF77DC /* OpenGL.framework in Frameworks */, + FD504BFE0856672000AF77DC /* QuickTime.framework in Frameworks */, + FD504BFF0856672000AF77DC /* libftgl.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 3AB0D7730E40948800AF570A /* 10.glsl */ = { + isa = PBXGroup; + children = ( + 3AB0D7740E40948800AF570A /* 01.simple_texture.pd */, + 3AB0D7750E40948800AF570A /* 02.primitive_distortion.pd */, + 3AB0D7760E40948800AF570A /* 03.texture_distortion.pd */, + 3AB0D7770E40948800AF570A /* 04.game_of_life.pd */, + 3AB0D7780E40948800AF570A /* 05.multitexture.pd */, + 3AB0D7790E40948800AF570A /* 06.framebuffer_and_shader.pd */, + 3AB0D77A0E40948800AF570A /* 07.multi_pass_rendering.pd */, + 3AB0D77B0E40948800AF570A /* 08.vertex_texture_fetching.pd */, + 3AB0D77C0E40948800AF570A /* fetching.frag */, + 3AB0D77D0E40948800AF570A /* fetching.vert */, + 3AB0D77E0E40948800AF570A /* game.frag */, + 3AB0D77F0E40948800AF570A /* game.vert */, + 3AB0D7800E40948800AF570A /* img1.jpg */, + 3AB0D7810E40948800AF570A /* img2.jpg */, + 3AB0D7820E40948800AF570A /* img3.jpg */, + 3AB0D7830E40948800AF570A /* multitexture.frag */, + 3AB0D7840E40948800AF570A /* multitexture.vert */, + 3AB0D7850E40948800AF570A /* multitexture_rect.frag */, + 3AB0D7860E40948800AF570A /* multitexture_rect.vert */, + 3AB0D7870E40948800AF570A /* P_distord.frag */, + 3AB0D7880E40948800AF570A /* P_distord.vert */, + 3AB0D7890E40948800AF570A /* T_distord.frag */, + 3AB0D78A0E40948800AF570A /* T_distord.vert */, + 3AB0D78B0E40948800AF570A /* texture.frag */, + 3AB0D78C0E40948800AF570A /* texture.vert */, + 3AB0D78D0E40948800AF570A /* texture_rect.frag */, + 3AB0D78E0E40948800AF570A /* vague.frag */, + 3AB0D78F0E40948800AF570A /* wave.frag */, + ); + path = 10.glsl; + sourceTree = ""; + }; + F521B3F503898A4A019165F0 = { + isa = PBXGroup; + children = ( + F521B40103898BAC019165F0 /* Gem */, + F521B40203898BB7019165F0 /* GemLibs */, + F521B40003898A71019165F0 /* Products */, + F5BDD20A0389F0EC0175848A /* frameworks */, + ); + sourceTree = ""; + }; + F521B40003898A71019165F0 /* Products */ = { + isa = PBXGroup; + children = ( + FD504C050856672500AF77DC /* Gem.pd_darwin */, + 3ACEE3A60E40B9E800FC2E4B /* Gem.d_fat */, + ); + name = Products; + sourceTree = ""; + }; + F521B40103898BAC019165F0 /* Gem */ = { + isa = PBXGroup; + children = ( + FD86901E09167CCD0079421E /* ChangeLog */, + F5CC044803A3FFD701A80164 /* doc */, + F5CC044903A3FFF001A80164 /* examples */, + F5CC044A03A3FFFF01A80164 /* help */, + F5CC047103A400A601A80164 /* src */, + ); + name = Gem; + path = ../../..; + sourceTree = ""; + }; + F521B40203898BB7019165F0 /* GemLibs */ = { + isa = PBXGroup; + children = ( + FD8EFB6504C4715900DF3958 /* FTGL */, + ); + name = GemLibs; + sourceTree = SOURCE_ROOT; + }; + F521B40303898BE2019165F0 /* Base */ = { + isa = PBXGroup; + children = ( + 3A6DFE650FD528E80019C977 /* GemGLUtil_generated.h */, + 3A6DFE590FD528CF0019C977 /* GemContext.cpp */, + 3A6DFE5A0FD528CF0019C977 /* GemContext.h */, + 3A6DFE5B0FD528CF0019C977 /* GemContextData.cpp */, + 3A6DFE5C0FD528CF0019C977 /* GemContextData.h */, + 3ACEE3D70E40C8A800FC2E4B /* GemVersion.cpp */, + 3AB0D87B0E40963500AF570A /* glew.cpp */, + 3AB0D87C0E40963500AF570A /* glew.h */, + 3AB0D85D0E4095E700AF570A /* GemLoaders.cpp */, + 3AB0D85E0E4095E700AF570A /* GemLoaders.h */, + 3AB0D85F0E4095E700AF570A /* GemMan.cpp */, + 3AB0D8600E4095E700AF570A /* GemMath.h */, + 3AB0D8610E4095E700AF570A /* GemPathBase.cpp */, + 3AB0D8620E4095E700AF570A /* GemPBuffer.cpp */, + 3AB0D8630E4095E700AF570A /* GemPBuffer.h */, + 3AB0D8640E4095E700AF570A /* GemPixConvert.h */, + 3AB0D8650E4095E700AF570A /* GemPixConvertAltivec.cpp */, + 3AB0D8660E4095E700AF570A /* GemPixConvertSSE2.cpp */, + 3AB0D8670E4095E700AF570A /* GemSIMD.cpp */, + 3AB0D8680E4095E700AF570A /* GemVector.cpp */, + 3AB0D8690E4095E700AF570A /* GemVector.h */, + 3AB0D86A0E4095E700AF570A /* GemVertex.cpp */, + 3AB0D86B0E4095E700AF570A /* GemVertex.h */, + FD2F4EA908F458E2008F3CED /* GemGL.h */, + FD89459605866C1D0014FA36 /* config.h */, + FD89459705866C1D0014FA36 /* configDarwin.h */, + FDCE6E0E070DBC8F001F121C /* CPPExtern.cpp */, + F521B40703898BE2019165F0 /* CPPExtern.h */, + FDCE6E0F070DBC8F001F121C /* GemBase.cpp */, + F521B40903898BE2019165F0 /* GemBase.h */, + FDCE6E10070DBC8F001F121C /* GemCache.cpp */, + F521B40B03898BE2019165F0 /* GemCache.h */, + FDCE6E11070DBC8F001F121C /* GemEvent.cpp */, + F521B40F03898BE2019165F0 /* GemEvent.h */, + F521B41003898BE2019165F0 /* GemExportDef.h */, + FDCE6E12070DBC8F001F121C /* GemFuncUtil.cpp */, + F521B41203898BE2019165F0 /* GemFuncUtil.h */, + FDCE6E13070DBC8F001F121C /* GemGluObj.cpp */, + F521B41403898BE2019165F0 /* GemGluObj.h */, + FDCE6E14070DBC8F001F121C /* GemGLUtil.cpp */, + F521B41603898BE2019165F0 /* GemGLUtil.h */, + FDCE6E15070DBC8F001F121C /* GemLoadObj.cpp */, + F521B41A03898BE2019165F0 /* GemLoadObj.h */, + F521B41C03898BE2019165F0 /* GemMan.h */, + F521B41D03898BE2019165F0 /* GemModelData.cpp */, + F521B41E03898BE2019165F0 /* GemModelData.h */, + F521B42003898BE2019165F0 /* GemPathBase.h */, + FDCE6E16070DBC8F001F121C /* GemPixDualObj.cpp */, + F521B42203898BE2019165F0 /* GemPixDualObj.h */, + FDCE6E17070DBC8F001F121C /* GemPixImageLoad.cpp */, + F521B42403898BE2019165F0 /* GemPixImageLoad.h */, + FDCE6E18070DBC8F001F121C /* GemPixImageSave.cpp */, + F521B42603898BE2019165F0 /* GemPixImageSave.h */, + FDCE6E19070DBC8F001F121C /* GemPixObj.cpp */, + F521B42803898BE2019165F0 /* GemPixObj.h */, + FD85B4E806B1A62C00C4B065 /* GemPixPete.h */, + FDCE6E1A070DBC8F001F121C /* GemPixUtil.cpp */, + F521B42A03898BE2019165F0 /* GemPixUtil.h */, + FDCE6E1B070DBC8F001F121C /* GemSetup.cpp */, + FDCE6E1C070DBC8F001F121C /* GemShape.cpp */, + F521B42D03898BE2019165F0 /* GemShape.h */, + FD85B4E906B1A62C00C4B065 /* GemSIMD.h */, + FDCE6E1D070DBC8F001F121C /* GemState.cpp */, + F521B42F03898BE2019165F0 /* GemState.h */, + F521B43003898BE2019165F0 /* GemVersion.h */, + FDCE6E1F070DBC8F001F121C /* GemWinCreateMac.cpp */, + F521B43303898BE2019165F0 /* GemWinCreateNT.cpp */, + F521B43403898BE2019165F0 /* GemWinCreateXWin.cpp */, + F521B43103898BE2019165F0 /* GemWinCreate.h */, + FDCE6E20070DBC8F001F121C /* Matrix.cpp */, + F521B43703898BE2019165F0 /* Matrix.h */, + F521B43903898BE2019165F0 /* sgiimage.h */, + FDCE6E21070DBC8F001F121C /* TextBase.cpp */, + F521B43B03898BE2019165F0 /* TextBase.h */, + ); + path = Base; + sourceTree = ""; + }; + F521B43C03898BE2019165F0 /* Controls */ = { + isa = PBXGroup; + children = ( + 3AB0D87F0E40967400AF570A /* gemframebuffer.cpp */, + 3AB0D8800E40967400AF570A /* gemframebuffer.h */, + 3AB0D8810E40967400AF570A /* gemhead.cpp */, + 3AB0D8820E40967400AF570A /* gemkeyboard.cpp */, + 3AB0D8830E40967400AF570A /* gemkeyname.cpp */, + 3AB0D8840E40967400AF570A /* gemlist_info.h */, + 3AB0D8850E40967400AF570A /* gemlist_matrix.cpp */, + 3AB0D8860E40967400AF570A /* gemlist_matrix.h */, + 3AB0D8870E40967400AF570A /* gemlist.cpp */, + 3AB0D8880E40967400AF570A /* gemlist.h */, + 3AB0D8890E40967400AF570A /* gemmouse.cpp */, + 3AB0D88A0E40967400AF570A /* gemmouse.h */, + 3AB0D88B0E40967400AF570A /* gemreceive.cpp */, + 3AB0D88C0E40967400AF570A /* gemreceive.h */, + 3AB0D88D0E40967400AF570A /* gemwin.cpp */, + 3AB0D88E0E40967400AF570A /* gemwin.h */, + 3AB0D8900E40967400AF570A /* render_trigger.cpp */, + F521B43E03898BE2019165F0 /* gemhead.h */, + F521B44003898BE2019165F0 /* gemkeyboard.h */, + F521B44203898BE2019165F0 /* gemkeyname.h */, + FD7A25EA07551CFE0034FA5B /* gemlist_info.cpp */, + F521B44D03898BE2019165F0 /* render_trigger.h */, + ); + path = Controls; + sourceTree = ""; + }; + F521B44E03898BE2019165F0 /* Geos */ = { + isa = PBXGroup; + children = ( + 3AB0D8A30E4096A200AF570A /* circle.cpp */, + 3AB0D8A40E4096A200AF570A /* circle.h */, + 3AB0D8A50E4096A200AF570A /* colorSquare.cpp */, + 3AB0D8A60E4096A200AF570A /* colorSquare.h */, + 3AB0D8A70E4096A200AF570A /* cone.cpp */, + 3AB0D8A80E4096A200AF570A /* cone.h */, + 3AB0D8A90E4096A200AF570A /* cube.cpp */, + 3AB0D8AA0E4096A200AF570A /* cube.h */, + 3AB0D8AB0E4096A200AF570A /* cuboid.cpp */, + 3AB0D8AC0E4096A200AF570A /* cuboid.h */, + 3AB0D8AD0E4096A200AF570A /* curve.cpp */, + 3AB0D8AE0E4096A200AF570A /* curve.h */, + 3AB0D8AF0E4096A200AF570A /* curve3d.cpp */, + 3AB0D8B00E4096A200AF570A /* curve3d.h */, + 3AB0D8B10E4096A200AF570A /* cylinder.cpp */, + 3AB0D8B20E4096A200AF570A /* cylinder.h */, + 3AB0D8B30E4096A200AF570A /* disk.cpp */, + 3AB0D8B40E4096A200AF570A /* disk.h */, + 3AB0D8B50E4096A200AF570A /* GemSplash.cpp */, + 3AB0D8B60E4096A200AF570A /* GemSplash.h */, + 3AB0D8B70E4096A200AF570A /* imageVert.cpp */, + 3AB0D8B80E4096A200AF570A /* imageVert.h */, + 3AB0D8BA0E4096A300AF570A /* mesh_square.cpp */, + 3AB0D8BB0E4096A300AF570A /* mesh_square.h */, + 3AB0D8BC0E4096A300AF570A /* model_loader.cpp */, + 3AB0D8BD0E4096A300AF570A /* model_loader.h */, + 3AB0D8BE0E4096A300AF570A /* model.cpp */, + 3AB0D8BF0E4096A300AF570A /* model.h */, + 3AB0D8C00E4096A300AF570A /* multimodel.cpp */, + 3AB0D8C10E4096A300AF570A /* multimodel.h */, + 3AB0D8C20E4096A300AF570A /* newWave.cpp */, + 3AB0D8C30E4096A300AF570A /* newWave.h */, + 3AB0D8C40E4096A300AF570A /* polygon.cpp */, + 3AB0D8C50E4096A300AF570A /* polygon.h */, + 3AB0D8C60E4096A300AF570A /* pqtorusknots.cpp */, + 3AB0D8C70E4096A300AF570A /* pqtorusknots.h */, + 3AB0D8C80E4096A300AF570A /* primTri.cpp */, + 3AB0D8C90E4096A300AF570A /* primTri.h */, + 3AB0D8CA0E4096A300AF570A /* rectangle.cpp */, + 3AB0D8CB0E4096A300AF570A /* rectangle.h */, + 3AB0D8CC0E4096A300AF570A /* ripple.cpp */, + 3AB0D8CD0E4096A300AF570A /* ripple.h */, + 3AB0D8CE0E4096A300AF570A /* rubber.cpp */, + 3AB0D8CF0E4096A300AF570A /* rubber.h */, + 3AB0D8D00E4096A300AF570A /* scopeXYZ.cpp */, + 3AB0D8D10E4096A300AF570A /* scopeXYZ.h */, + 3AB0D8D20E4096A300AF570A /* slideSquares.cpp */, + 3AB0D8D30E4096A300AF570A /* slideSquares.h */, + 3AB0D8D40E4096A300AF570A /* sphere.cpp */, + 3AB0D8D50E4096A300AF570A /* sphere.h */, + 3AB0D8D60E4096A300AF570A /* sphere3d.cpp */, + 3AB0D8D70E4096A300AF570A /* sphere3d.h */, + 3AB0D8D80E4096A300AF570A /* square.cpp */, + 3AB0D8D90E4096A300AF570A /* square.h */, + 3AB0D8DA0E4096A300AF570A /* teapot.cpp */, + 3AB0D8DB0E4096A300AF570A /* teapot.h */, + 3AB0D8DC0E4096A300AF570A /* TexFont.h */, + 3AB0D8DD0E4096A300AF570A /* text2d.cpp */, + 3AB0D8DE0E4096A300AF570A /* text2d.h */, + 3AB0D8DF0E4096A300AF570A /* text3d.cpp */, + 3AB0D8E00E4096A300AF570A /* text3d.h */, + 3AB0D8E10E4096A300AF570A /* textextruded.cpp */, + 3AB0D8E20E4096A300AF570A /* textextruded.h */, + 3AB0D8E30E4096A300AF570A /* textoutline.cpp */, + 3AB0D8E40E4096A300AF570A /* textoutline.h */, + 3AB0D8E50E4096A300AF570A /* torus.cpp */, + 3AB0D8E60E4096A300AF570A /* torus.h */, + 3AB0D8E70E4096A300AF570A /* trapezoid.cpp */, + 3AB0D8E80E4096A300AF570A /* trapezoid.h */, + 3AB0D8E90E4096A300AF570A /* triangle.cpp */, + 3AB0D8EA0E4096A300AF570A /* triangle.h */, + 3AB0D8EB0E4096A300AF570A /* tube.cpp */, + 3AB0D8EC0E4096A300AF570A /* tube.h */, + ); + path = Geos; + sourceTree = ""; + }; + F521B47E03898BE2019165F0 /* Manips */ = { + isa = PBXGroup; + children = ( + 3A6DFE680FD5294F0019C977 /* glsl_geometry.cpp */, + 3A6DFE690FD5294F0019C977 /* glsl_geometry.h */, + 3A2DCF7C0E40974100767D22 /* accumrotate.cpp */, + 3A2DCF7D0E40974100767D22 /* accumrotate.h */, + 3A2DCF7E0E40974100767D22 /* alpha.cpp */, + 3A2DCF7F0E40974100767D22 /* alpha.h */, + 3A2DCF800E40974100767D22 /* ambient.cpp */, + 3A2DCF810E40974100767D22 /* ambient.h */, + 3A2DCF820E40974100767D22 /* ambientRGB.cpp */, + 3A2DCF830E40974100767D22 /* ambientRGB.h */, + 3A2DCF840E40974100767D22 /* camera.cpp */, + 3A2DCF850E40974100767D22 /* camera.h */, + 3A2DCF860E40974100767D22 /* color.cpp */, + 3A2DCF870E40974100767D22 /* color.h */, + 3A2DCF880E40974100767D22 /* colorRGB.cpp */, + 3A2DCF890E40974100767D22 /* colorRGB.h */, + 3A2DCF8A0E40974100767D22 /* depth.cpp */, + 3A2DCF8B0E40974100767D22 /* depth.h */, + 3A2DCF8C0E40974100767D22 /* diffuse.cpp */, + 3A2DCF8D0E40974100767D22 /* diffuse.h */, + 3A2DCF8E0E40974100767D22 /* diffuseRGB.cpp */, + 3A2DCF8F0E40974100767D22 /* diffuseRGB.h */, + 3A2DCF900E40974100767D22 /* emission.cpp */, + 3A2DCF910E40974100767D22 /* emission.h */, + 3A2DCF920E40974100767D22 /* emissionRGB.cpp */, + 3A2DCF930E40974100767D22 /* emissionRGB.h */, + 3A2DCF940E40974100767D22 /* fragment_program.cpp */, + 3A2DCF950E40974100767D22 /* fragment_program.h */, + 3A2DCF960E40974100767D22 /* glsl_fragment.cpp */, + 3A2DCF970E40974100767D22 /* glsl_fragment.h */, + 3A2DCF980E40974100767D22 /* glsl_program.cpp */, + 3A2DCF990E40974100767D22 /* glsl_program.h */, + 3A2DCF9A0E40974100767D22 /* glsl_vertex.cpp */, + 3A2DCF9B0E40974100767D22 /* glsl_vertex.h */, + 3A2DCF9C0E40974100767D22 /* linear_path.cpp */, + 3A2DCF9D0E40974100767D22 /* linear_path.h */, + 3A2DCF9F0E40974100767D22 /* ortho.cpp */, + 3A2DCFA00E40974100767D22 /* ortho.h */, + 3A2DCFA10E40974100767D22 /* polygon_smooth.cpp */, + 3A2DCFA20E40974100767D22 /* polygon_smooth.h */, + 3A2DCFA30E40974100767D22 /* rotate.cpp */, + 3A2DCFA40E40974100767D22 /* rotate.h */, + 3A2DCFA50E40974100767D22 /* rotateXYZ.cpp */, + 3A2DCFA60E40974100767D22 /* rotateXYZ.h */, + 3A2DCFA70E40974100767D22 /* scale.cpp */, + 3A2DCFA80E40974100767D22 /* scale.h */, + 3A2DCFA90E40974100767D22 /* scaleXYZ.cpp */, + 3A2DCFAA0E40974100767D22 /* scaleXYZ.h */, + 3A2DCFAB0E40974100767D22 /* separator.cpp */, + 3A2DCFAC0E40974100767D22 /* separator.h */, + 3A2DCFAD0E40974100767D22 /* shearXY.cpp */, + 3A2DCFAE0E40974100767D22 /* shearXY.h */, + 3A2DCFAF0E40974100767D22 /* shearXZ.cpp */, + 3A2DCFB00E40974100767D22 /* shearXZ.h */, + 3A2DCFB10E40974100767D22 /* shearYX.cpp */, + 3A2DCFB20E40974100767D22 /* shearYX.h */, + 3A2DCFB30E40974100767D22 /* shearYZ.cpp */, + 3A2DCFB40E40974100767D22 /* shearYZ.h */, + 3A2DCFB50E40974100767D22 /* shearZX.cpp */, + 3A2DCFB60E40974100767D22 /* shearZX.h */, + 3A2DCFB70E40974100767D22 /* shearZY.cpp */, + 3A2DCFB80E40974100767D22 /* shearZY.h */, + 3A2DCFB90E40974100767D22 /* shininess.cpp */, + 3A2DCFBA0E40974100767D22 /* shininess.h */, + 3A2DCFBB0E40974100767D22 /* specular.cpp */, + 3A2DCFBC0E40974100767D22 /* specular.h */, + 3A2DCFBD0E40974100767D22 /* specularRGB.cpp */, + 3A2DCFBE0E40974100767D22 /* specularRGB.h */, + 3A2DCFBF0E40974100767D22 /* spline_path.cpp */, + 3A2DCFC00E40974100767D22 /* spline_path.h */, + 3A2DCFC10E40974100767D22 /* translate.cpp */, + 3A2DCFC20E40974100767D22 /* translate.h */, + 3A2DCFC30E40974100767D22 /* translateXYZ.cpp */, + 3A2DCFC40E40974100767D22 /* translateXYZ.h */, + 3A2DCFC50E40974100767D22 /* vertex_program.cpp */, + 3A2DCFC60E40974100767D22 /* vertex_program.h */, + ); + path = Manips; + sourceTree = ""; + }; + F521B4BE03898BE2019165F0 /* Nongeos */ = { + isa = PBXGroup; + children = ( + 3A2DD0120E40975A00767D22 /* light.cpp */, + 3A2DD0130E40975A00767D22 /* light.h */, + 3A2DD0150E40975A00767D22 /* spot_light.cpp */, + 3A2DD0160E40975A00767D22 /* spot_light.h */, + 3A2DD0170E40975A00767D22 /* world_light.cpp */, + 3A2DD0180E40975A00767D22 /* world_light.h */, + ); + path = Nongeos; + sourceTree = ""; + }; + F521B4C403898BE2019165F0 /* Particles */ = { + isa = PBXGroup; + children = ( + 3A2DD4C60E4097BC00767D22 /* papi.h */, + 3A2DD4C70E4097BC00767D22 /* part_color.cpp */, + 3A2DD4C80E4097BC00767D22 /* part_color.h */, + 3A2DD4C90E4097BC00767D22 /* part_damp.cpp */, + 3A2DD4CA0E4097BC00767D22 /* part_damp.h */, + 3A2DD4CB0E4097BC00767D22 /* part_draw.cpp */, + 3A2DD4CC0E4097BC00767D22 /* part_draw.h */, + 3A2DD4CD0E4097BC00767D22 /* part_follow.cpp */, + 3A2DD4CE0E4097BC00767D22 /* part_follow.h */, + 3A2DD4CF0E4097BC00767D22 /* part_gravity.cpp */, + 3A2DD4D00E4097BC00767D22 /* part_gravity.h */, + 3A2DD4D10E4097BC00767D22 /* part_head.cpp */, + 3A2DD4D20E4097BC00767D22 /* part_head.h */, + 3A2DD4D30E4097BC00767D22 /* part_info.cpp */, + 3A2DD4D40E4097BC00767D22 /* part_info.h */, + 3A2DD4D50E4097BC00767D22 /* part_killold.cpp */, + 3A2DD4D60E4097BC00767D22 /* part_killold.h */, + 3A2DD4D70E4097BC00767D22 /* part_killslow.cpp */, + 3A2DD4D80E4097BC00767D22 /* part_killslow.h */, + 3A2DD4D90E4097BC00767D22 /* part_orbitpoint.cpp */, + 3A2DD4DA0E4097BC00767D22 /* part_orbitpoint.h */, + 3A2DD4DB0E4097BC00767D22 /* part_render.cpp */, + 3A2DD4DC0E4097BC00767D22 /* part_render.h */, + 3A2DD4DD0E4097BC00767D22 /* part_sink.cpp */, + 3A2DD4DE0E4097BC00767D22 /* part_sink.h */, + 3A2DD4DF0E4097BC00767D22 /* part_size.cpp */, + 3A2DD4E00E4097BC00767D22 /* part_size.h */, + 3A2DD4E10E4097BC00767D22 /* part_source.cpp */, + 3A2DD4E20E4097BC00767D22 /* part_source.h */, + 3A2DD4E30E4097BC00767D22 /* part_targetcolor.cpp */, + 3A2DD4E40E4097BC00767D22 /* part_targetcolor.h */, + 3A2DD4E50E4097BC00767D22 /* part_targetsize.cpp */, + 3A2DD4E60E4097BC00767D22 /* part_targetsize.h */, + 3A2DD4E70E4097BC00767D22 /* part_velcone.cpp */, + 3A2DD4E80E4097BC00767D22 /* part_velcone.h */, + 3A2DD4E90E4097BC00767D22 /* part_velocity.cpp */, + 3A2DD4EA0E4097BC00767D22 /* part_velocity.h */, + 3A2DD4EB0E4097BC00767D22 /* part_velsphere.cpp */, + 3A2DD4EC0E4097BC00767D22 /* part_velsphere.h */, + 3A2DD4ED0E4097BC00767D22 /* part_vertex.cpp */, + 3A2DD4EE0E4097BC00767D22 /* part_vertex.h */, + 3A2DD4EF0E4097BC00767D22 /* partlib_actionapi.cpp */, + 3A2DD4F00E4097BC00767D22 /* partlib_actions.cpp */, + 3A2DD4F10E4097BC00767D22 /* partlib_general.h */, + 3A2DD4F20E4097BC00767D22 /* partlib_opengl.cpp */, + 3A2DD4F30E4097BC00767D22 /* partlib_system.cpp */, + 3A2DD4F40E4097BC00767D22 /* partlib_vector.h */, + ); + path = Particles; + sourceTree = ""; + }; + F521B4E403898BE2019165F0 /* Pixes */ = { + isa = PBXGroup; + children = ( + 3A6DFE6E0FD529880019C977 /* pix_writer.cpp */, + 3A6DFE6F0FD529880019C977 /* pix_writer.h */, + 3AE0739C0EB8A34600223BA6 /* pix_videoOS.cpp */, + 3AE0739D0EB8A34600223BA6 /* pix_videoOS.h */, + 3AE073960EB8A31300223BA6 /* pix_movieOS.cpp */, + 3AE073970EB8A31300223BA6 /* pix_movieOS.h */, + 3AE073900EB8A2CA00223BA6 /* pix_filmOS.cpp */, + 3AE073910EB8A2CA00223BA6 /* pix_filmOS.h */, + 3A2DD5280E4097D300767D22 /* film.cpp */, + 3A2DD5290E4097D300767D22 /* film.h */, + 3A2DD52E0E4097D300767D22 /* filmDarwin.cpp */, + 3A2DD52F0E4097D300767D22 /* filmDarwin.h */, + 3A2DD5380E4097D400767D22 /* filmQT.cpp */, + 3A2DD5390E4097D400767D22 /* filmQT.h */, + 3A2DD53C0E4097D400767D22 /* FreeFrame.h */, + 3A2DD53D0E4097D400767D22 /* libfidtrack_fidtrackX.cpp */, + 3A2DD53E0E4097D400767D22 /* libfidtrack_fidtrackX.h */, + 3A2DD53F0E4097D400767D22 /* libfidtrack_segment.cpp */, + 3A2DD5400E4097D400767D22 /* libfidtrack_segment.h */, + 3A2DD5410E4097D400767D22 /* libfidtrack_treeidmap.cpp */, + 3A2DD5420E4097D400767D22 /* libfidtrack_treeidmap.h */, + 3A2DD5440E4097D400767D22 /* pix_2grey.cpp */, + 3A2DD5450E4097D400767D22 /* pix_2grey.h */, + 3A2DD5460E4097D400767D22 /* pix_a_2grey.cpp */, + 3A2DD5470E4097D400767D22 /* pix_a_2grey.h */, + 3A2DD5480E4097D400767D22 /* pix_add.cpp */, + 3A2DD5490E4097D400767D22 /* pix_add.h */, + 3A2DD54A0E4097D400767D22 /* pix_aging.cpp */, + 3A2DD54B0E4097D400767D22 /* pix_aging.h */, + 3A2DD54C0E4097D400767D22 /* pix_alpha.cpp */, + 3A2DD54D0E4097D400767D22 /* pix_alpha.h */, + 3A2DD54E0E4097D400767D22 /* pix_artoolkit.cpp */, + 3A2DD54F0E4097D400767D22 /* pix_artoolkit.h */, + 3A2DD5500E4097D400767D22 /* pix_background.cpp */, + 3A2DD5510E4097D400767D22 /* pix_background.h */, + 3A2DD5520E4097D400767D22 /* pix_backlight.cpp */, + 3A2DD5530E4097D400767D22 /* pix_backlight.h */, + 3A2DD5540E4097D400767D22 /* pix_biquad.cpp */, + 3A2DD5550E4097D400767D22 /* pix_biquad.h */, + 3A2DD5560E4097D400767D22 /* pix_bitmask.cpp */, + 3A2DD5570E4097D400767D22 /* pix_bitmask.h */, + 3A2DD5580E4097D400767D22 /* pix_blob.cpp */, + 3A2DD5590E4097D400767D22 /* pix_blob.h */, + 3A2DD55A0E4097D400767D22 /* pix_blur.cpp */, + 3A2DD55B0E4097D400767D22 /* pix_blur.h */, + 3A2DD55C0E4097D400767D22 /* pix_buf.cpp */, + 3A2DD55D0E4097D400767D22 /* pix_buf.h */, + 3A2DD55E0E4097D400767D22 /* pix_buffer_read.cpp */, + 3A2DD55F0E4097D400767D22 /* pix_buffer_read.h */, + 3A2DD5600E4097D400767D22 /* pix_buffer_write.cpp */, + 3A2DD5610E4097D400767D22 /* pix_buffer_write.h */, + 3A2DD5620E4097D400767D22 /* pix_buffer.cpp */, + 3A2DD5630E4097D400767D22 /* pix_buffer.h */, + 3A2DD5640E4097D400767D22 /* pix_chroma_key.cpp */, + 3A2DD5650E4097D400767D22 /* pix_chroma_key.h */, + 3A2DD5660E4097D400767D22 /* pix_clearblock.cpp */, + 3A2DD5670E4097D400767D22 /* pix_clearblock.h */, + 3A2DD5680E4097D400767D22 /* pix_color.cpp */, + 3A2DD5690E4097D400767D22 /* pix_color.h */, + 3A2DD56A0E4097D400767D22 /* pix_coloralpha.cpp */, + 3A2DD56B0E4097D400767D22 /* pix_coloralpha.h */, + 3A2DD56C0E4097D400767D22 /* pix_colormatrix.cpp */, + 3A2DD56D0E4097D400767D22 /* pix_colormatrix.h */, + 3A2DD56E0E4097D400767D22 /* pix_colorreduce.cpp */, + 3A2DD56F0E4097D400767D22 /* pix_colorreduce.h */, + 3A2DD5700E4097D400767D22 /* pix_compare.cpp */, + 3A2DD5710E4097D400767D22 /* pix_compare.h */, + 3A2DD5720E4097D400767D22 /* pix_composite.cpp */, + 3A2DD5730E4097D400767D22 /* pix_composite.h */, + 3A2DD5740E4097D400767D22 /* pix_contrast.cpp */, + 3A2DD5750E4097D400767D22 /* pix_contrast.h */, + 3A2DD5760E4097D400767D22 /* pix_convert.cpp */, + 3A2DD5770E4097D400767D22 /* pix_convert.h */, + 3A2DD5780E4097D400767D22 /* pix_convolve.cpp */, + 3A2DD5790E4097D400767D22 /* pix_convolve.h */, + 3A2DD57A0E4097D400767D22 /* pix_coordinate.cpp */, + 3A2DD57B0E4097D400767D22 /* pix_coordinate.h */, + 3A2DD57C0E4097D400767D22 /* pix_crop.cpp */, + 3A2DD57D0E4097D400767D22 /* pix_crop.h */, + 3A2DD57E0E4097D400767D22 /* pix_curve.cpp */, + 3A2DD57F0E4097D400767D22 /* pix_curve.h */, + 3A2DD5800E4097D400767D22 /* pix_data.cpp */, + 3A2DD5810E4097D400767D22 /* pix_data.h */, + 3A2DD5820E4097D400767D22 /* pix_deinterlace.cpp */, + 3A2DD5830E4097D400767D22 /* pix_deinterlace.h */, + 3A2DD5840E4097D400767D22 /* pix_delay.cpp */, + 3A2DD5850E4097D400767D22 /* pix_delay.h */, + 3A2DD5860E4097D400767D22 /* pix_diff.cpp */, + 3A2DD5870E4097D400767D22 /* pix_diff.h */, + 3A2DD5880E4097D400767D22 /* pix_dot.cpp */, + 3A2DD5890E4097D400767D22 /* pix_dot.h */, + 3A2DD58A0E4097D400767D22 /* pix_draw.cpp */, + 3A2DD58B0E4097D400767D22 /* pix_draw.h */, + 3A2DD58C0E4097D400767D22 /* pix_dump.cpp */, + 3A2DD58D0E4097D400767D22 /* pix_dump.h */, + 3A2DD58E0E4097D400767D22 /* pix_duotone.cpp */, + 3A2DD58F0E4097D400767D22 /* pix_duotone.h */, + 3A2DD5900E4097D400767D22 /* pix_emboss.cpp */, + 3A2DD5910E4097D400767D22 /* pix_emboss.h */, + 3A2DD5920E4097D400767D22 /* pix_fiducialtrack.cpp */, + 3A2DD5930E4097D400767D22 /* pix_fiducialtrack.h */, + 3A2DD5940E4097D400767D22 /* pix_film.cpp */, + 3A2DD5950E4097D400767D22 /* pix_film.h */, + 3A2DD5960E4097D400767D22 /* pix_filmDarwin.cpp */, + 3A2DD5970E4097D400767D22 /* pix_filmDarwin.h */, + 3A2DD59A0E4097D400767D22 /* pix_filmNT.cpp */, + 3A2DD59B0E4097D400767D22 /* pix_filmNT.h */, + 3A2DD59C0E4097D400767D22 /* pix_filmQT.cpp */, + 3A2DD59D0E4097D400767D22 /* pix_filmQT.h */, + 3A2DD59E0E4097D400767D22 /* pix_flip.cpp */, + 3A2DD59F0E4097D400767D22 /* pix_flip.h */, + 3A2DD5A00E4097D400767D22 /* pix_freeframe.cpp */, + 3A2DD5A10E4097D400767D22 /* pix_freeframe.h */, + 3A2DD5A20E4097D400767D22 /* pix_gain.cpp */, + 3A2DD5A30E4097D400767D22 /* pix_gain.h */, + 3A2DD5A40E4097D400767D22 /* pix_grey.cpp */, + 3A2DD5A50E4097D400767D22 /* pix_grey.h */, + 3A2DD5A60E4097D400767D22 /* pix_halftone.cpp */, + 3A2DD5A70E4097D400767D22 /* pix_halftone.h */, + 3A2DD5A80E4097D400767D22 /* pix_histo.cpp */, + 3A2DD5A90E4097D400767D22 /* pix_histo.h */, + 3A2DD5AA0E4097D400767D22 /* pix_hit.cpp */, + 3A2DD5AB0E4097D400767D22 /* pix_hit.h */, + 3A2DD5AC0E4097D400767D22 /* pix_hsv2rgb.cpp */, + 3A2DD5AD0E4097D400767D22 /* pix_hsv2rgb.h */, + 3A2DD5AE0E4097D400767D22 /* pix_image.cpp */, + 3A2DD5AF0E4097D400767D22 /* pix_image.h */, + 3A2DD5B00E4097D400767D22 /* pix_imageInPlace.cpp */, + 3A2DD5B10E4097D400767D22 /* pix_imageInPlace.h */, + 3A2DD5B20E4097D400767D22 /* pix_indycam.cpp */, + 3A2DD5B30E4097D400767D22 /* pix_indycam.h */, + 3A2DD5B40E4097D400767D22 /* pix_info.cpp */, + 3A2DD5B50E4097D400767D22 /* pix_info.h */, + 3A2DD5B60E4097D400767D22 /* pix_invert.cpp */, + 3A2DD5B70E4097D400767D22 /* pix_invert.h */, + 3A2DD5B80E4097D400767D22 /* pix_kaleidoscope.cpp */, + 3A2DD5B90E4097D400767D22 /* pix_kaleidoscope.h */, + 3A2DD5BA0E4097D400767D22 /* pix_levels.cpp */, + 3A2DD5BB0E4097D400767D22 /* pix_levels.h */, + 3A2DD5BC0E4097D400767D22 /* pix_lumaoffset.cpp */, + 3A2DD5BD0E4097D400767D22 /* pix_lumaoffset.h */, + 3A2DD5BE0E4097D400767D22 /* pix_mask.cpp */, + 3A2DD5BF0E4097D400767D22 /* pix_mask.h */, + 3A2DD5C00E4097D400767D22 /* pix_mean_color.cpp */, + 3A2DD5C10E4097D400767D22 /* pix_mean_color.h */, + 3A2DD5C20E4097D400767D22 /* pix_metaimage.cpp */, + 3A2DD5C30E4097D400767D22 /* pix_metaimage.h */, + 3A2DD5C40E4097D400767D22 /* pix_mix.cpp */, + 3A2DD5C50E4097D400767D22 /* pix_mix.h */, + 3A2DD5C60E4097D400767D22 /* pix_motionblur.cpp */, + 3A2DD5C70E4097D400767D22 /* pix_motionblur.h */, + 3A2DD5C80E4097D400767D22 /* pix_movement.cpp */, + 3A2DD5C90E4097D400767D22 /* pix_movement.h */, + 3A2DD5CA0E4097D400767D22 /* pix_movement2.cpp */, + 3A2DD5CB0E4097D400767D22 /* pix_movement2.h */, + 3A2DD5CC0E4097D400767D22 /* pix_movie.cpp */, + 3A2DD5CD0E4097D400767D22 /* pix_movie.h */, + 3A2DD5CE0E4097D400767D22 /* pix_movieDarwin.cpp */, + 3A2DD5CF0E4097D400767D22 /* pix_movieDarwin.h */, + 3A2DD5D40E4097D400767D22 /* pix_multiblob.cpp */, + 3A2DD5D50E4097D400767D22 /* pix_multiblob.h */, + 3A2DD5D60E4097D400767D22 /* pix_multiimage.cpp */, + 3A2DD5D70E4097D400767D22 /* pix_multiimage.h */, + 3A2DD5D80E4097D400767D22 /* pix_multiply.cpp */, + 3A2DD5D90E4097D400767D22 /* pix_multiply.h */, + 3A2DD5DA0E4097D400767D22 /* pix_multitexture.cpp */, + 3A2DD5DB0E4097D400767D22 /* pix_multitexture.h */, + 3A2DD5DC0E4097D400767D22 /* pix_normalize.cpp */, + 3A2DD5DD0E4097D400767D22 /* pix_normalize.h */, + 3A2DD5DE0E4097D400767D22 /* pix_offset.cpp */, + 3A2DD5DF0E4097D400767D22 /* pix_offset.h */, + 3A2DD5E00E4097D400767D22 /* pix_pix2sig.cpp */, + 3A2DD5E10E4097D400767D22 /* pix_pix2sig.h */, + 3A2DD5E20E4097D400767D22 /* pix_posterize.cpp */, + 3A2DD5E30E4097D400767D22 /* pix_posterize.h */, + 3A2DD5E40E4097D400767D22 /* pix_puzzle.cpp */, + 3A2DD5E50E4097D400767D22 /* pix_puzzle.h */, + 3A2DD5E60E4097D400767D22 /* pix_rds.cpp */, + 3A2DD5E70E4097D400767D22 /* pix_rds.h */, + 3A2DD5E80E4097D400767D22 /* pix_record.cpp */, + 3A2DD5E90E4097D400767D22 /* pix_record.h */, + 3A2DD5EA0E4097D400767D22 /* pix_recordQT.cpp */, + 3A2DD5EB0E4097D400767D22 /* pix_recordQT.h */, + 3A2DD5EC0E4097D400767D22 /* pix_rectangle.cpp */, + 3A2DD5ED0E4097D400767D22 /* pix_rectangle.h */, + 3A2DD5EE0E4097D400767D22 /* pix_refraction.cpp */, + 3A2DD5EF0E4097D400767D22 /* pix_refraction.h */, + 3A2DD5F00E4097D400767D22 /* pix_resize.cpp */, + 3A2DD5F10E4097D400767D22 /* pix_resize.h */, + 3A2DD5F20E4097D400767D22 /* pix_rgb2hsv.cpp */, + 3A2DD5F30E4097D400767D22 /* pix_rgb2hsv.h */, + 3A2DD5F40E4097D400767D22 /* pix_rgba.cpp */, + 3A2DD5F50E4097D400767D22 /* pix_rgba.h */, + 3A2DD5F60E4097D400767D22 /* pix_roll.cpp */, + 3A2DD5F70E4097D400767D22 /* pix_roll.h */, + 3A2DD5F80E4097D400767D22 /* pix_rtx.cpp */, + 3A2DD5F90E4097D400767D22 /* pix_rtx.h */, + 3A2DD5FA0E4097D400767D22 /* pix_scanline.cpp */, + 3A2DD5FB0E4097D400767D22 /* pix_scanline.h */, + 3A2DD5FC0E4097D400767D22 /* pix_set.cpp */, + 3A2DD5FD0E4097D400767D22 /* pix_set.h */, + 3A2DD5FE0E4097D500767D22 /* pix_share_read.cpp */, + 3A2DD5FF0E4097D500767D22 /* pix_share_read.h */, + 3A2DD6000E4097D500767D22 /* pix_share_write.cpp */, + 3A2DD6010E4097D500767D22 /* pix_share_write.h */, + 3A2DD6020E4097D500767D22 /* pix_share.h */, + 3A2DD6030E4097D500767D22 /* pix_sig2pix.cpp */, + 3A2DD6040E4097D500767D22 /* pix_sig2pix.h */, + 3A2DD6050E4097D500767D22 /* pix_snap.cpp */, + 3A2DD6060E4097D500767D22 /* pix_snap.h */, + 3A2DD6070E4097D500767D22 /* pix_snap2tex.cpp */, + 3A2DD6080E4097D500767D22 /* pix_snap2tex.h */, + 3A2DD6090E4097D500767D22 /* pix_subtract.cpp */, + 3A2DD60A0E4097D500767D22 /* pix_subtract.h */, + 3A2DD60B0E4097D500767D22 /* pix_takealpha.cpp */, + 3A2DD60C0E4097D500767D22 /* pix_takealpha.h */, + 3A2DD60D0E4097D500767D22 /* pix_test.cpp */, + 3A2DD60E0E4097D500767D22 /* pix_test.h */, + 3A2DD60F0E4097D500767D22 /* pix_texture.cpp */, + 3A2DD6100E4097D500767D22 /* pix_texture.h */, + 3A2DD6110E4097D500767D22 /* pix_threshold_bernsen.cpp */, + 3A2DD6120E4097D500767D22 /* pix_threshold_bernsen.h */, + 3A2DD6130E4097D500767D22 /* pix_threshold.cpp */, + 3A2DD6140E4097D500767D22 /* pix_threshold.h */, + 3A2DD6150E4097D500767D22 /* pix_tIIR.cpp */, + 3A2DD6160E4097D500767D22 /* pix_tIIR.h */, + 3A2DD6190E4097D500767D22 /* pix_videoDarwin.cpp */, + 3A2DD61A0E4097D500767D22 /* pix_videoDarwin.h */, + 3A2DD6230E4097D500767D22 /* pix_vpaint.cpp */, + 3A2DD6240E4097D500767D22 /* pix_vpaint.h */, + 3A2DD6250E4097D500767D22 /* pix_write.cpp */, + 3A2DD6260E4097D500767D22 /* pix_write.h */, + 3A2DD6270E4097D500767D22 /* pix_yuv.cpp */, + 3A2DD6280E4097D500767D22 /* pix_yuv.h */, + 3A2DD6290E4097D500767D22 /* pix_zoom.cpp */, + 3A2DD62A0E4097D500767D22 /* pix_zoom.h */, + 3A2DD62B0E4097D500767D22 /* record.cpp */, + 3A2DD62C0E4097D500767D22 /* record.h */, + 3A2DD62D0E4097D500767D22 /* recordQT.cpp */, + 3A2DD62E0E4097D500767D22 /* recordQT.h */, + ); + path = Pixes; + sourceTree = ""; + }; + F52F0E84039FEEA801A80164 /* openGL */ = { + isa = PBXGroup; + children = ( + 3A6DFE560FD528A30019C977 /* GemGLBase.h */, + 3A6DFE500FD528920019C977 /* GEMgluLookAt.cpp */, + 3A6DFE510FD528920019C977 /* GEMgluLookAt.h */, + 3A6DFE4A0FD528780019C977 /* GEMglMaterialfv.cpp */, + 3A6DFE4B0FD528780019C977 /* GEMglMaterialfv.h */, + 3A2DD0200E40978500767D22 /* GEMglAccum.cpp */, + 3A2DD0210E40978500767D22 /* GEMglAccum.h */, + 3A2DD0220E40978500767D22 /* GEMglActiveTextureARB.cpp */, + 3A2DD0230E40978500767D22 /* GEMglActiveTextureARB.h */, + 3A2DD0240E40978500767D22 /* GEMglAlphaFunc.cpp */, + 3A2DD0250E40978500767D22 /* GEMglAlphaFunc.h */, + 3A2DD0260E40978500767D22 /* GEMglAreTexturesResident.cpp */, + 3A2DD0270E40978500767D22 /* GEMglAreTexturesResident.h */, + 3A2DD0280E40978500767D22 /* GEMglArrayElement.cpp */, + 3A2DD0290E40978500767D22 /* GEMglArrayElement.h */, + 3A2DD02A0E40978500767D22 /* GEMglBegin.cpp */, + 3A2DD02B0E40978500767D22 /* GEMglBegin.h */, + 3A2DD02C0E40978500767D22 /* GEMglBindProgramARB.cpp */, + 3A2DD02D0E40978500767D22 /* GEMglBindProgramARB.h */, + 3A2DD02E0E40978500767D22 /* GEMglBindTexture.cpp */, + 3A2DD02F0E40978500767D22 /* GEMglBindTexture.h */, + 3A2DD0300E40978500767D22 /* GEMglBitmap.cpp */, + 3A2DD0310E40978500767D22 /* GEMglBitmap.h */, + 3A2DD0320E40978500767D22 /* GEMglBlendEquation.cpp */, + 3A2DD0330E40978500767D22 /* GEMglBlendEquation.h */, + 3A2DD0340E40978500767D22 /* GEMglBlendFunc.cpp */, + 3A2DD0350E40978500767D22 /* GEMglBlendFunc.h */, + 3A2DD0360E40978500767D22 /* GEMglCallList.cpp */, + 3A2DD0370E40978500767D22 /* GEMglCallList.h */, + 3A2DD0380E40978500767D22 /* GEMglClear.cpp */, + 3A2DD0390E40978500767D22 /* GEMglClear.h */, + 3A2DD03A0E40978500767D22 /* GEMglClearAccum.cpp */, + 3A2DD03B0E40978500767D22 /* GEMglClearAccum.h */, + 3A2DD03C0E40978500767D22 /* GEMglClearColor.cpp */, + 3A2DD03D0E40978500767D22 /* GEMglClearColor.h */, + 3A2DD03E0E40978500767D22 /* GEMglClearDepth.cpp */, + 3A2DD03F0E40978500767D22 /* GEMglClearDepth.h */, + 3A2DD0400E40978500767D22 /* GEMglClearIndex.cpp */, + 3A2DD0410E40978500767D22 /* GEMglClearIndex.h */, + 3A2DD0420E40978500767D22 /* GEMglClearStencil.cpp */, + 3A2DD0430E40978500767D22 /* GEMglClearStencil.h */, + 3A2DD0440E40978500767D22 /* GEMglClipPlane.cpp */, + 3A2DD0450E40978500767D22 /* GEMglClipPlane.h */, + 3A2DD0460E40978500767D22 /* GEMglColor3b.cpp */, + 3A2DD0470E40978500767D22 /* GEMglColor3b.h */, + 3A2DD0480E40978500767D22 /* GEMglColor3bv.cpp */, + 3A2DD0490E40978500767D22 /* GEMglColor3bv.h */, + 3A2DD04A0E40978500767D22 /* GEMglColor3d.cpp */, + 3A2DD04B0E40978500767D22 /* GEMglColor3d.h */, + 3A2DD04C0E40978500767D22 /* GEMglColor3dv.cpp */, + 3A2DD04D0E40978500767D22 /* GEMglColor3dv.h */, + 3A2DD04E0E40978500767D22 /* GEMglColor3f.cpp */, + 3A2DD04F0E40978500767D22 /* GEMglColor3f.h */, + 3A2DD0500E40978500767D22 /* GEMglColor3fv.cpp */, + 3A2DD0510E40978500767D22 /* GEMglColor3fv.h */, + 3A2DD0520E40978500767D22 /* GEMglColor3i.cpp */, + 3A2DD0530E40978500767D22 /* GEMglColor3i.h */, + 3A2DD0540E40978500767D22 /* GEMglColor3iv.cpp */, + 3A2DD0550E40978500767D22 /* GEMglColor3iv.h */, + 3A2DD0560E40978500767D22 /* GEMglColor3s.cpp */, + 3A2DD0570E40978500767D22 /* GEMglColor3s.h */, + 3A2DD0580E40978500767D22 /* GEMglColor3sv.cpp */, + 3A2DD0590E40978500767D22 /* GEMglColor3sv.h */, + 3A2DD05A0E40978500767D22 /* GEMglColor3ub.cpp */, + 3A2DD05B0E40978500767D22 /* GEMglColor3ub.h */, + 3A2DD05C0E40978500767D22 /* GEMglColor3ubv.cpp */, + 3A2DD05D0E40978500767D22 /* GEMglColor3ubv.h */, + 3A2DD05E0E40978500767D22 /* GEMglColor3ui.cpp */, + 3A2DD05F0E40978500767D22 /* GEMglColor3ui.h */, + 3A2DD0600E40978500767D22 /* GEMglColor3uiv.cpp */, + 3A2DD0610E40978500767D22 /* GEMglColor3uiv.h */, + 3A2DD0620E40978500767D22 /* GEMglColor3us.cpp */, + 3A2DD0630E40978500767D22 /* GEMglColor3us.h */, + 3A2DD0640E40978500767D22 /* GEMglColor3usv.cpp */, + 3A2DD0650E40978500767D22 /* GEMglColor3usv.h */, + 3A2DD0660E40978500767D22 /* GEMglColor4b.cpp */, + 3A2DD0670E40978500767D22 /* GEMglColor4b.h */, + 3A2DD0680E40978500767D22 /* GEMglColor4bv.cpp */, + 3A2DD0690E40978500767D22 /* GEMglColor4bv.h */, + 3A2DD06A0E40978500767D22 /* GEMglColor4d.cpp */, + 3A2DD06B0E40978500767D22 /* GEMglColor4d.h */, + 3A2DD06C0E40978500767D22 /* GEMglColor4dv.cpp */, + 3A2DD06D0E40978500767D22 /* GEMglColor4dv.h */, + 3A2DD06E0E40978500767D22 /* GEMglColor4f.cpp */, + 3A2DD06F0E40978500767D22 /* GEMglColor4f.h */, + 3A2DD0700E40978500767D22 /* GEMglColor4fv.cpp */, + 3A2DD0710E40978500767D22 /* GEMglColor4fv.h */, + 3A2DD0720E40978500767D22 /* GEMglColor4i.cpp */, + 3A2DD0730E40978500767D22 /* GEMglColor4i.h */, + 3A2DD0740E40978500767D22 /* GEMglColor4iv.cpp */, + 3A2DD0750E40978500767D22 /* GEMglColor4iv.h */, + 3A2DD0760E40978500767D22 /* GEMglColor4s.cpp */, + 3A2DD0770E40978500767D22 /* GEMglColor4s.h */, + 3A2DD0780E40978500767D22 /* GEMglColor4sv.cpp */, + 3A2DD0790E40978500767D22 /* GEMglColor4sv.h */, + 3A2DD07A0E40978500767D22 /* GEMglColor4ub.cpp */, + 3A2DD07B0E40978500767D22 /* GEMglColor4ub.h */, + 3A2DD07C0E40978500767D22 /* GEMglColor4ubv.cpp */, + 3A2DD07D0E40978500767D22 /* GEMglColor4ubv.h */, + 3A2DD07E0E40978500767D22 /* GEMglColor4ui.cpp */, + 3A2DD07F0E40978500767D22 /* GEMglColor4ui.h */, + 3A2DD0800E40978500767D22 /* GEMglColor4uiv.cpp */, + 3A2DD0810E40978500767D22 /* GEMglColor4uiv.h */, + 3A2DD0820E40978500767D22 /* GEMglColor4us.cpp */, + 3A2DD0830E40978500767D22 /* GEMglColor4us.h */, + 3A2DD0840E40978500767D22 /* GEMglColor4usv.cpp */, + 3A2DD0850E40978500767D22 /* GEMglColor4usv.h */, + 3A2DD0860E40978500767D22 /* GEMglColorMask.cpp */, + 3A2DD0870E40978500767D22 /* GEMglColorMask.h */, + 3A2DD0880E40978500767D22 /* GEMglColorMaterial.cpp */, + 3A2DD0890E40978500767D22 /* GEMglColorMaterial.h */, + 3A2DD08A0E40978500767D22 /* GEMglCopyPixels.cpp */, + 3A2DD08B0E40978500767D22 /* GEMglCopyPixels.h */, + 3A2DD08C0E40978500767D22 /* GEMglCopyTexImage1D.cpp */, + 3A2DD08D0E40978500767D22 /* GEMglCopyTexImage1D.h */, + 3A2DD08E0E40978500767D22 /* GEMglCopyTexImage2D.cpp */, + 3A2DD08F0E40978500767D22 /* GEMglCopyTexImage2D.h */, + 3A2DD0900E40978500767D22 /* GEMglCopyTexSubImage1D.cpp */, + 3A2DD0910E40978500767D22 /* GEMglCopyTexSubImage1D.h */, + 3A2DD0920E40978500767D22 /* GEMglCopyTexSubImage2D.cpp */, + 3A2DD0930E40978500767D22 /* GEMglCopyTexSubImage2D.h */, + 3A2DD0940E40978500767D22 /* GEMglCullFace.cpp */, + 3A2DD0950E40978500767D22 /* GEMglCullFace.h */, + 3A2DD0960E40978500767D22 /* GEMglDeleteTextures.cpp */, + 3A2DD0970E40978500767D22 /* GEMglDeleteTextures.h */, + 3A2DD0980E40978500767D22 /* GEMglDepthFunc.cpp */, + 3A2DD0990E40978500767D22 /* GEMglDepthFunc.h */, + 3A2DD09A0E40978500767D22 /* GEMglDepthMask.cpp */, + 3A2DD09B0E40978500767D22 /* GEMglDepthMask.h */, + 3A2DD09C0E40978500767D22 /* GEMglDepthRange.cpp */, + 3A2DD09D0E40978500767D22 /* GEMglDepthRange.h */, + 3A2DD09E0E40978500767D22 /* GEMglDisable.cpp */, + 3A2DD09F0E40978500767D22 /* GEMglDisable.h */, + 3A2DD0A00E40978500767D22 /* GEMglDisableClientState.cpp */, + 3A2DD0A10E40978500767D22 /* GEMglDisableClientState.h */, + 3A2DD0A20E40978500767D22 /* GEMglDrawArrays.cpp */, + 3A2DD0A30E40978500767D22 /* GEMglDrawArrays.h */, + 3A2DD0A40E40978500767D22 /* GEMglDrawBuffer.cpp */, + 3A2DD0A50E40978500767D22 /* GEMglDrawBuffer.h */, + 3A2DD0A60E40978500767D22 /* GEMglDrawElements.cpp */, + 3A2DD0A70E40978500767D22 /* GEMglDrawElements.h */, + 3A2DD0A80E40978500767D22 /* GEMglEdgeFlag.cpp */, + 3A2DD0A90E40978500767D22 /* GEMglEdgeFlag.h */, + 3A2DD0AA0E40978500767D22 /* GEMglEnable.cpp */, + 3A2DD0AB0E40978500767D22 /* GEMglEnable.h */, + 3A2DD0AC0E40978500767D22 /* GEMglEnableClientState.cpp */, + 3A2DD0AD0E40978500767D22 /* GEMglEnableClientState.h */, + 3A2DD0AE0E40978500767D22 /* GEMglEnd.cpp */, + 3A2DD0AF0E40978500767D22 /* GEMglEnd.h */, + 3A2DD0B00E40978500767D22 /* GEMglEndList.cpp */, + 3A2DD0B10E40978500767D22 /* GEMglEndList.h */, + 3A2DD0B20E40978500767D22 /* GEMglEvalCoord1d.cpp */, + 3A2DD0B30E40978500767D22 /* GEMglEvalCoord1d.h */, + 3A2DD0B40E40978500767D22 /* GEMglEvalCoord1dv.cpp */, + 3A2DD0B50E40978500767D22 /* GEMglEvalCoord1dv.h */, + 3A2DD0B60E40978500767D22 /* GEMglEvalCoord1f.cpp */, + 3A2DD0B70E40978500767D22 /* GEMglEvalCoord1f.h */, + 3A2DD0B80E40978500767D22 /* GEMglEvalCoord1fv.cpp */, + 3A2DD0B90E40978500767D22 /* GEMglEvalCoord1fv.h */, + 3A2DD0BA0E40978500767D22 /* GEMglEvalCoord2d.cpp */, + 3A2DD0BB0E40978500767D22 /* GEMglEvalCoord2d.h */, + 3A2DD0BC0E40978500767D22 /* GEMglEvalCoord2dv.cpp */, + 3A2DD0BD0E40978500767D22 /* GEMglEvalCoord2dv.h */, + 3A2DD0BE0E40978500767D22 /* GEMglEvalCoord2f.cpp */, + 3A2DD0BF0E40978500767D22 /* GEMglEvalCoord2f.h */, + 3A2DD0C00E40978500767D22 /* GEMglEvalCoord2fv.cpp */, + 3A2DD0C10E40978500767D22 /* GEMglEvalCoord2fv.h */, + 3A2DD0C20E40978500767D22 /* GEMglEvalMesh1.cpp */, + 3A2DD0C30E40978500767D22 /* GEMglEvalMesh1.h */, + 3A2DD0C40E40978500767D22 /* GEMglEvalMesh2.cpp */, + 3A2DD0C50E40978500767D22 /* GEMglEvalMesh2.h */, + 3A2DD0C60E40978500767D22 /* GEMglEvalPoint1.cpp */, + 3A2DD0C70E40978500767D22 /* GEMglEvalPoint1.h */, + 3A2DD0C80E40978500767D22 /* GEMglEvalPoint2.cpp */, + 3A2DD0C90E40978500767D22 /* GEMglEvalPoint2.h */, + 3A2DD0CA0E40978500767D22 /* GEMglFeedbackBuffer.cpp */, + 3A2DD0CB0E40978500767D22 /* GEMglFeedbackBuffer.h */, + 3A2DD0CC0E40978500767D22 /* GEMglFinish.cpp */, + 3A2DD0CD0E40978500767D22 /* GEMglFinish.h */, + 3A2DD0CE0E40978500767D22 /* GEMglFlush.cpp */, + 3A2DD0CF0E40978500767D22 /* GEMglFlush.h */, + 3A2DD0D00E40978500767D22 /* GEMglFogf.cpp */, + 3A2DD0D10E40978500767D22 /* GEMglFogf.h */, + 3A2DD0D20E40978500767D22 /* GEMglFogfv.cpp */, + 3A2DD0D30E40978500767D22 /* GEMglFogfv.h */, + 3A2DD0D40E40978500767D22 /* GEMglFogi.cpp */, + 3A2DD0D50E40978500767D22 /* GEMglFogi.h */, + 3A2DD0D60E40978500767D22 /* GEMglFogiv.cpp */, + 3A2DD0D70E40978500767D22 /* GEMglFogiv.h */, + 3A2DD0D80E40978500767D22 /* GEMglFrontFace.cpp */, + 3A2DD0D90E40978500767D22 /* GEMglFrontFace.h */, + 3A2DD0DA0E40978500767D22 /* GEMglFrustum.cpp */, + 3A2DD0DB0E40978500767D22 /* GEMglFrustum.h */, + 3A2DD0DC0E40978500767D22 /* GEMglGenLists.cpp */, + 3A2DD0DD0E40978500767D22 /* GEMglGenLists.h */, + 3A2DD0DE0E40978500767D22 /* GEMglGenProgramsARB.cpp */, + 3A2DD0DF0E40978500767D22 /* GEMglGenProgramsARB.h */, + 3A2DD0E00E40978500767D22 /* GEMglGenTextures.cpp */, + 3A2DD0E10E40978500767D22 /* GEMglGenTextures.h */, + 3A2DD0E20E40978500767D22 /* GEMglGetError.cpp */, + 3A2DD0E30E40978500767D22 /* GEMglGetError.h */, + 3A2DD0E40E40978500767D22 /* GEMglGetFloatv.cpp */, + 3A2DD0E50E40978500767D22 /* GEMglGetFloatv.h */, + 3A2DD0E60E40978500767D22 /* GEMglGetMapdv.cpp */, + 3A2DD0E70E40978500767D22 /* GEMglGetMapdv.h */, + 3A2DD0E80E40978500767D22 /* GEMglGetMapfv.cpp */, + 3A2DD0E90E40978500767D22 /* GEMglGetMapfv.h */, + 3A2DD0EA0E40978500767D22 /* GEMglGetMapiv.cpp */, + 3A2DD0EB0E40978500767D22 /* GEMglGetMapiv.h */, + 3A2DD0EC0E40978500767D22 /* GEMglGetPointerv.cpp */, + 3A2DD0ED0E40978500767D22 /* GEMglGetPointerv.h */, + 3A2DD0EE0E40978500767D22 /* GEMglGetString.cpp */, + 3A2DD0EF0E40978600767D22 /* GEMglGetString.h */, + 3A2DD0F00E40978600767D22 /* GEMglHint.cpp */, + 3A2DD0F10E40978600767D22 /* GEMglHint.h */, + 3A2DD0F20E40978600767D22 /* GEMglIndexd.cpp */, + 3A2DD0F30E40978600767D22 /* GEMglIndexd.h */, + 3A2DD0F40E40978600767D22 /* GEMglIndexdv.cpp */, + 3A2DD0F50E40978600767D22 /* GEMglIndexdv.h */, + 3A2DD0F60E40978600767D22 /* GEMglIndexf.cpp */, + 3A2DD0F70E40978600767D22 /* GEMglIndexf.h */, + 3A2DD0F80E40978600767D22 /* GEMglIndexfv.cpp */, + 3A2DD0F90E40978600767D22 /* GEMglIndexfv.h */, + 3A2DD0FA0E40978600767D22 /* GEMglIndexi.cpp */, + 3A2DD0FB0E40978600767D22 /* GEMglIndexi.h */, + 3A2DD0FC0E40978600767D22 /* GEMglIndexiv.cpp */, + 3A2DD0FD0E40978600767D22 /* GEMglIndexiv.h */, + 3A2DD0FE0E40978600767D22 /* GEMglIndexMask.cpp */, + 3A2DD0FF0E40978600767D22 /* GEMglIndexMask.h */, + 3A2DD1000E40978600767D22 /* GEMglIndexs.cpp */, + 3A2DD1010E40978600767D22 /* GEMglIndexs.h */, + 3A2DD1020E40978600767D22 /* GEMglIndexsv.cpp */, + 3A2DD1030E40978600767D22 /* GEMglIndexsv.h */, + 3A2DD1040E40978600767D22 /* GEMglIndexub.cpp */, + 3A2DD1050E40978600767D22 /* GEMglIndexub.h */, + 3A2DD1060E40978600767D22 /* GEMglIndexubv.cpp */, + 3A2DD1070E40978600767D22 /* GEMglIndexubv.h */, + 3A2DD1080E40978600767D22 /* GEMglInitNames.cpp */, + 3A2DD1090E40978600767D22 /* GEMglInitNames.h */, + 3A2DD10A0E40978600767D22 /* GEMglIsEnabled.cpp */, + 3A2DD10B0E40978600767D22 /* GEMglIsEnabled.h */, + 3A2DD10C0E40978600767D22 /* GEMglIsList.cpp */, + 3A2DD10D0E40978600767D22 /* GEMglIsList.h */, + 3A2DD10E0E40978600767D22 /* GEMglIsTexture.cpp */, + 3A2DD10F0E40978600767D22 /* GEMglIsTexture.h */, + 3A2DD1100E40978600767D22 /* GEMglLightf.cpp */, + 3A2DD1110E40978600767D22 /* GEMglLightf.h */, + 3A2DD1120E40978600767D22 /* GEMglLighti.cpp */, + 3A2DD1130E40978600767D22 /* GEMglLighti.h */, + 3A2DD1140E40978600767D22 /* GEMglLightModelf.cpp */, + 3A2DD1150E40978600767D22 /* GEMglLightModelf.h */, + 3A2DD1160E40978600767D22 /* GEMglLightModeli.cpp */, + 3A2DD1170E40978600767D22 /* GEMglLightModeli.h */, + 3A2DD1180E40978600767D22 /* GEMglLineStipple.cpp */, + 3A2DD1190E40978600767D22 /* GEMglLineStipple.h */, + 3A2DD11A0E40978600767D22 /* GEMglLineWidth.cpp */, + 3A2DD11B0E40978600767D22 /* GEMglLineWidth.h */, + 3A2DD11C0E40978600767D22 /* GEMglLoadIdentity.cpp */, + 3A2DD11D0E40978600767D22 /* GEMglLoadIdentity.h */, + 3A2DD11E0E40978600767D22 /* GEMglLoadMatrixd.cpp */, + 3A2DD11F0E40978600767D22 /* GEMglLoadMatrixd.h */, + 3A2DD1200E40978600767D22 /* GEMglLoadMatrixf.cpp */, + 3A2DD1210E40978600767D22 /* GEMglLoadMatrixf.h */, + 3A2DD1220E40978600767D22 /* GEMglLoadName.cpp */, + 3A2DD1230E40978600767D22 /* GEMglLoadName.h */, + 3A2DD1240E40978600767D22 /* GEMglLoadTransposeMatrixd.cpp */, + 3A2DD1250E40978600767D22 /* GEMglLoadTransposeMatrixd.h */, + 3A2DD1260E40978600767D22 /* GEMglLoadTransposeMatrixf.cpp */, + 3A2DD1270E40978600767D22 /* GEMglLoadTransposeMatrixf.h */, + 3A2DD1280E40978600767D22 /* GEMglLogicOp.cpp */, + 3A2DD1290E40978600767D22 /* GEMglLogicOp.h */, + 3A2DD12A0E40978600767D22 /* GEMglMap1d.cpp */, + 3A2DD12B0E40978600767D22 /* GEMglMap1d.h */, + 3A2DD12C0E40978600767D22 /* GEMglMap1f.cpp */, + 3A2DD12D0E40978600767D22 /* GEMglMap1f.h */, + 3A2DD12E0E40978600767D22 /* GEMglMap2d.cpp */, + 3A2DD12F0E40978600767D22 /* GEMglMap2d.h */, + 3A2DD1300E40978600767D22 /* GEMglMap2f.cpp */, + 3A2DD1310E40978600767D22 /* GEMglMap2f.h */, + 3A2DD1320E40978600767D22 /* GEMglMapGrid1d.cpp */, + 3A2DD1330E40978600767D22 /* GEMglMapGrid1d.h */, + 3A2DD1340E40978600767D22 /* GEMglMapGrid1f.cpp */, + 3A2DD1350E40978600767D22 /* GEMglMapGrid1f.h */, + 3A2DD1360E40978600767D22 /* GEMglMapGrid2d.cpp */, + 3A2DD1370E40978600767D22 /* GEMglMapGrid2d.h */, + 3A2DD1380E40978600767D22 /* GEMglMapGrid2f.cpp */, + 3A2DD1390E40978600767D22 /* GEMglMapGrid2f.h */, + 3A2DD13A0E40978600767D22 /* GEMglMaterialf.cpp */, + 3A2DD13B0E40978600767D22 /* GEMglMaterialf.h */, + 3A2DD13C0E40978600767D22 /* GEMglMateriali.cpp */, + 3A2DD13D0E40978600767D22 /* GEMglMateriali.h */, + 3A2DD13E0E40978600767D22 /* GEMglMatrixMode.cpp */, + 3A2DD13F0E40978600767D22 /* GEMglMatrixMode.h */, + 3A2DD1400E40978600767D22 /* GEMglMultiTexCoord2fARB.cpp */, + 3A2DD1410E40978600767D22 /* GEMglMultiTexCoord2fARB.h */, + 3A2DD1420E40978600767D22 /* GEMglMultMatrixd.cpp */, + 3A2DD1430E40978600767D22 /* GEMglMultMatrixd.h */, + 3A2DD1440E40978600767D22 /* GEMglMultMatrixf.cpp */, + 3A2DD1450E40978600767D22 /* GEMglMultMatrixf.h */, + 3A2DD1460E40978600767D22 /* GEMglMultTransposeMatrixd.cpp */, + 3A2DD1470E40978600767D22 /* GEMglMultTransposeMatrixd.h */, + 3A2DD1480E40978600767D22 /* GEMglMultTransposeMatrixf.cpp */, + 3A2DD1490E40978600767D22 /* GEMglMultTransposeMatrixf.h */, + 3A2DD14A0E40978600767D22 /* GEMglNewList.cpp */, + 3A2DD14B0E40978600767D22 /* GEMglNewList.h */, + 3A2DD14C0E40978600767D22 /* GEMglNormal3b.cpp */, + 3A2DD14D0E40978600767D22 /* GEMglNormal3b.h */, + 3A2DD14E0E40978600767D22 /* GEMglNormal3bv.cpp */, + 3A2DD14F0E40978600767D22 /* GEMglNormal3bv.h */, + 3A2DD1500E40978600767D22 /* GEMglNormal3d.cpp */, + 3A2DD1510E40978600767D22 /* GEMglNormal3d.h */, + 3A2DD1520E40978600767D22 /* GEMglNormal3dv.cpp */, + 3A2DD1530E40978600767D22 /* GEMglNormal3dv.h */, + 3A2DD1540E40978600767D22 /* GEMglNormal3f.cpp */, + 3A2DD1550E40978600767D22 /* GEMglNormal3f.h */, + 3A2DD1560E40978600767D22 /* GEMglNormal3fv.cpp */, + 3A2DD1570E40978600767D22 /* GEMglNormal3fv.h */, + 3A2DD1580E40978600767D22 /* GEMglNormal3i.cpp */, + 3A2DD1590E40978600767D22 /* GEMglNormal3i.h */, + 3A2DD15A0E40978600767D22 /* GEMglNormal3iv.cpp */, + 3A2DD15B0E40978600767D22 /* GEMglNormal3iv.h */, + 3A2DD15C0E40978600767D22 /* GEMglNormal3s.cpp */, + 3A2DD15D0E40978600767D22 /* GEMglNormal3s.h */, + 3A2DD15E0E40978600767D22 /* GEMglNormal3sv.cpp */, + 3A2DD15F0E40978600767D22 /* GEMglNormal3sv.h */, + 3A2DD1600E40978600767D22 /* GEMglOrtho.cpp */, + 3A2DD1610E40978600767D22 /* GEMglOrtho.h */, + 3A2DD1620E40978600767D22 /* GEMglPassThrough.cpp */, + 3A2DD1630E40978600767D22 /* GEMglPassThrough.h */, + 3A2DD1640E40978600767D22 /* GEMglPixelStoref.cpp */, + 3A2DD1650E40978600767D22 /* GEMglPixelStoref.h */, + 3A2DD1660E40978600767D22 /* GEMglPixelStorei.cpp */, + 3A2DD1670E40978600767D22 /* GEMglPixelStorei.h */, + 3A2DD1680E40978600767D22 /* GEMglPixelTransferf.cpp */, + 3A2DD1690E40978600767D22 /* GEMglPixelTransferf.h */, + 3A2DD16A0E40978600767D22 /* GEMglPixelTransferi.cpp */, + 3A2DD16B0E40978600767D22 /* GEMglPixelTransferi.h */, + 3A2DD16C0E40978600767D22 /* GEMglPixelZoom.cpp */, + 3A2DD16D0E40978600767D22 /* GEMglPixelZoom.h */, + 3A2DD16E0E40978600767D22 /* GEMglPointSize.cpp */, + 3A2DD16F0E40978600767D22 /* GEMglPointSize.h */, + 3A2DD1700E40978600767D22 /* GEMglPolygonMode.cpp */, + 3A2DD1710E40978600767D22 /* GEMglPolygonMode.h */, + 3A2DD1720E40978600767D22 /* GEMglPolygonOffset.cpp */, + 3A2DD1730E40978600767D22 /* GEMglPolygonOffset.h */, + 3A2DD1740E40978600767D22 /* GEMglPopAttrib.cpp */, + 3A2DD1750E40978600767D22 /* GEMglPopAttrib.h */, + 3A2DD1760E40978600767D22 /* GEMglPopClientAttrib.cpp */, + 3A2DD1770E40978600767D22 /* GEMglPopClientAttrib.h */, + 3A2DD1780E40978600767D22 /* GEMglPopMatrix.cpp */, + 3A2DD1790E40978600767D22 /* GEMglPopMatrix.h */, + 3A2DD17A0E40978600767D22 /* GEMglPopName.cpp */, + 3A2DD17B0E40978600767D22 /* GEMglPopName.h */, + 3A2DD17C0E40978600767D22 /* GEMglPrioritizeTextures.cpp */, + 3A2DD17D0E40978600767D22 /* GEMglPrioritizeTextures.h */, + 3A2DD17E0E40978600767D22 /* GEMglProgramEnvParameter4dARB.cpp */, + 3A2DD17F0E40978600767D22 /* GEMglProgramEnvParameter4dARB.h */, + 3A2DD1800E40978600767D22 /* GEMglProgramEnvParameter4fvARB.cpp */, + 3A2DD1810E40978600767D22 /* GEMglProgramEnvParameter4fvARB.h */, + 3A2DD1820E40978600767D22 /* GEMglProgramLocalParameter4fvARB.cpp */, + 3A2DD1830E40978600767D22 /* GEMglProgramLocalParameter4fvARB.h */, + 3A2DD1840E40978600767D22 /* GEMglProgramStringARB.cpp */, + 3A2DD1850E40978600767D22 /* GEMglProgramStringARB.h */, + 3A2DD1860E40978600767D22 /* GEMglPushAttrib.cpp */, + 3A2DD1870E40978600767D22 /* GEMglPushAttrib.h */, + 3A2DD1880E40978600767D22 /* GEMglPushClientAttrib.cpp */, + 3A2DD1890E40978600767D22 /* GEMglPushClientAttrib.h */, + 3A2DD18A0E40978600767D22 /* GEMglPushMatrix.cpp */, + 3A2DD18B0E40978600767D22 /* GEMglPushMatrix.h */, + 3A2DD18C0E40978600767D22 /* GEMglPushName.cpp */, + 3A2DD18D0E40978600767D22 /* GEMglPushName.h */, + 3A2DD18E0E40978600767D22 /* GEMglRasterPos2d.cpp */, + 3A2DD18F0E40978600767D22 /* GEMglRasterPos2d.h */, + 3A2DD1900E40978600767D22 /* GEMglRasterPos2dv.cpp */, + 3A2DD1910E40978600767D22 /* GEMglRasterPos2dv.h */, + 3A2DD1920E40978600767D22 /* GEMglRasterPos2f.cpp */, + 3A2DD1930E40978600767D22 /* GEMglRasterPos2f.h */, + 3A2DD1940E40978600767D22 /* GEMglRasterPos2fv.cpp */, + 3A2DD1950E40978600767D22 /* GEMglRasterPos2fv.h */, + 3A2DD1960E40978600767D22 /* GEMglRasterPos2i.cpp */, + 3A2DD1970E40978600767D22 /* GEMglRasterPos2i.h */, + 3A2DD1980E40978600767D22 /* GEMglRasterPos2iv.cpp */, + 3A2DD1990E40978600767D22 /* GEMglRasterPos2iv.h */, + 3A2DD19A0E40978600767D22 /* GEMglRasterPos2s.cpp */, + 3A2DD19B0E40978600767D22 /* GEMglRasterPos2s.h */, + 3A2DD19C0E40978600767D22 /* GEMglRasterPos2sv.cpp */, + 3A2DD19D0E40978600767D22 /* GEMglRasterPos2sv.h */, + 3A2DD19E0E40978600767D22 /* GEMglRasterPos3d.cpp */, + 3A2DD19F0E40978600767D22 /* GEMglRasterPos3d.h */, + 3A2DD1A00E40978600767D22 /* GEMglRasterPos3dv.cpp */, + 3A2DD1A10E40978600767D22 /* GEMglRasterPos3dv.h */, + 3A2DD1A20E40978600767D22 /* GEMglRasterPos3f.cpp */, + 3A2DD1A30E40978600767D22 /* GEMglRasterPos3f.h */, + 3A2DD1A40E40978600767D22 /* GEMglRasterPos3fv.cpp */, + 3A2DD1A50E40978600767D22 /* GEMglRasterPos3fv.h */, + 3A2DD1A60E40978600767D22 /* GEMglRasterPos3i.cpp */, + 3A2DD1A70E40978600767D22 /* GEMglRasterPos3i.h */, + 3A2DD1A80E40978600767D22 /* GEMglRasterPos3iv.cpp */, + 3A2DD1A90E40978600767D22 /* GEMglRasterPos3iv.h */, + 3A2DD1AA0E40978600767D22 /* GEMglRasterPos3s.cpp */, + 3A2DD1AB0E40978600767D22 /* GEMglRasterPos3s.h */, + 3A2DD1AC0E40978600767D22 /* GEMglRasterPos3sv.cpp */, + 3A2DD1AD0E40978600767D22 /* GEMglRasterPos3sv.h */, + 3A2DD1AE0E40978600767D22 /* GEMglRasterPos4d.cpp */, + 3A2DD1AF0E40978600767D22 /* GEMglRasterPos4d.h */, + 3A2DD1B00E40978600767D22 /* GEMglRasterPos4dv.cpp */, + 3A2DD1B10E40978600767D22 /* GEMglRasterPos4dv.h */, + 3A2DD1B20E40978600767D22 /* GEMglRasterPos4f.cpp */, + 3A2DD1B30E40978600767D22 /* GEMglRasterPos4f.h */, + 3A2DD1B40E40978600767D22 /* GEMglRasterPos4fv.cpp */, + 3A2DD1B50E40978600767D22 /* GEMglRasterPos4fv.h */, + 3A2DD1B60E40978600767D22 /* GEMglRasterPos4i.cpp */, + 3A2DD1B70E40978600767D22 /* GEMglRasterPos4i.h */, + 3A2DD1B80E40978600767D22 /* GEMglRasterPos4iv.cpp */, + 3A2DD1B90E40978600767D22 /* GEMglRasterPos4iv.h */, + 3A2DD1BA0E40978600767D22 /* GEMglRasterPos4s.cpp */, + 3A2DD1BB0E40978600767D22 /* GEMglRasterPos4s.h */, + 3A2DD1BC0E40978600767D22 /* GEMglRasterPos4sv.cpp */, + 3A2DD1BD0E40978600767D22 /* GEMglRasterPos4sv.h */, + 3A2DD1BE0E40978600767D22 /* GEMglRectd.cpp */, + 3A2DD1BF0E40978600767D22 /* GEMglRectd.h */, + 3A2DD1C00E40978600767D22 /* GEMglRectf.cpp */, + 3A2DD1C10E40978600767D22 /* GEMglRectf.h */, + 3A2DD1C20E40978600767D22 /* GEMglRecti.cpp */, + 3A2DD1C30E40978600767D22 /* GEMglRecti.h */, + 3A2DD1C40E40978600767D22 /* GEMglRects.cpp */, + 3A2DD1C50E40978600767D22 /* GEMglRects.h */, + 3A2DD1C60E40978600767D22 /* GEMglRenderMode.cpp */, + 3A2DD1C70E40978600767D22 /* GEMglRenderMode.h */, + 3A2DD1C80E40978600767D22 /* GEMglReportError.cpp */, + 3A2DD1C90E40978600767D22 /* GEMglReportError.h */, + 3A2DD1CA0E40978600767D22 /* GEMglRotated.cpp */, + 3A2DD1CB0E40978600767D22 /* GEMglRotated.h */, + 3A2DD1CC0E40978600767D22 /* GEMglRotatef.cpp */, + 3A2DD1CD0E40978600767D22 /* GEMglRotatef.h */, + 3A2DD1CE0E40978600767D22 /* GEMglScaled.cpp */, + 3A2DD1CF0E40978600767D22 /* GEMglScaled.h */, + 3A2DD1D00E40978600767D22 /* GEMglScalef.cpp */, + 3A2DD1D10E40978600767D22 /* GEMglScalef.h */, + 3A2DD1D20E40978600767D22 /* GEMglScissor.cpp */, + 3A2DD1D30E40978600767D22 /* GEMglScissor.h */, + 3A2DD1D40E40978600767D22 /* GEMglSelectBuffer.cpp */, + 3A2DD1D50E40978600767D22 /* GEMglSelectBuffer.h */, + 3A2DD1D60E40978600767D22 /* GEMglShadeModel.cpp */, + 3A2DD1D70E40978600767D22 /* GEMglShadeModel.h */, + 3A2DD1D80E40978600767D22 /* GEMglStencilFunc.cpp */, + 3A2DD1D90E40978600767D22 /* GEMglStencilFunc.h */, + 3A2DD1DA0E40978600767D22 /* GEMglStencilMask.cpp */, + 3A2DD1DB0E40978600767D22 /* GEMglStencilMask.h */, + 3A2DD1DC0E40978600767D22 /* GEMglStencilOp.cpp */, + 3A2DD1DD0E40978600767D22 /* GEMglStencilOp.h */, + 3A2DD1DE0E40978600767D22 /* GEMglTexCoord1d.cpp */, + 3A2DD1DF0E40978600767D22 /* GEMglTexCoord1d.h */, + 3A2DD1E00E40978600767D22 /* GEMglTexCoord1dv.cpp */, + 3A2DD1E10E40978600767D22 /* GEMglTexCoord1dv.h */, + 3A2DD1E20E40978600767D22 /* GEMglTexCoord1f.cpp */, + 3A2DD1E30E40978600767D22 /* GEMglTexCoord1f.h */, + 3A2DD1E40E40978600767D22 /* GEMglTexCoord1fv.cpp */, + 3A2DD1E50E40978600767D22 /* GEMglTexCoord1fv.h */, + 3A2DD1E60E40978600767D22 /* GEMglTexCoord1i.cpp */, + 3A2DD1E70E40978600767D22 /* GEMglTexCoord1i.h */, + 3A2DD1E80E40978600767D22 /* GEMglTexCoord1iv.cpp */, + 3A2DD1E90E40978600767D22 /* GEMglTexCoord1iv.h */, + 3A2DD1EA0E40978600767D22 /* GEMglTexCoord1s.cpp */, + 3A2DD1EB0E40978600767D22 /* GEMglTexCoord1s.h */, + 3A2DD1EC0E40978600767D22 /* GEMglTexCoord1sv.cpp */, + 3A2DD1ED0E40978600767D22 /* GEMglTexCoord1sv.h */, + 3A2DD1EE0E40978600767D22 /* GEMglTexCoord2d.cpp */, + 3A2DD1EF0E40978600767D22 /* GEMglTexCoord2d.h */, + 3A2DD1F00E40978600767D22 /* GEMglTexCoord2dv.cpp */, + 3A2DD1F10E40978600767D22 /* GEMglTexCoord2dv.h */, + 3A2DD1F20E40978600767D22 /* GEMglTexCoord2f.cpp */, + 3A2DD1F30E40978600767D22 /* GEMglTexCoord2f.h */, + 3A2DD1F40E40978600767D22 /* GEMglTexCoord2fv.cpp */, + 3A2DD1F50E40978600767D22 /* GEMglTexCoord2fv.h */, + 3A2DD1F60E40978600767D22 /* GEMglTexCoord2i.cpp */, + 3A2DD1F70E40978600767D22 /* GEMglTexCoord2i.h */, + 3A2DD1F80E40978600767D22 /* GEMglTexCoord2iv.cpp */, + 3A2DD1F90E40978600767D22 /* GEMglTexCoord2iv.h */, + 3A2DD1FA0E40978600767D22 /* GEMglTexCoord2s.cpp */, + 3A2DD1FB0E40978600767D22 /* GEMglTexCoord2s.h */, + 3A2DD1FC0E40978600767D22 /* GEMglTexCoord2sv.cpp */, + 3A2DD1FD0E40978600767D22 /* GEMglTexCoord2sv.h */, + 3A2DD1FE0E40978600767D22 /* GEMglTexCoord3d.cpp */, + 3A2DD1FF0E40978600767D22 /* GEMglTexCoord3d.h */, + 3A2DD2000E40978600767D22 /* GEMglTexCoord3dv.cpp */, + 3A2DD2010E40978600767D22 /* GEMglTexCoord3dv.h */, + 3A2DD2020E40978600767D22 /* GEMglTexCoord3f.cpp */, + 3A2DD2030E40978600767D22 /* GEMglTexCoord3f.h */, + 3A2DD2040E40978600767D22 /* GEMglTexCoord3fv.cpp */, + 3A2DD2050E40978600767D22 /* GEMglTexCoord3fv.h */, + 3A2DD2060E40978600767D22 /* GEMglTexCoord3i.cpp */, + 3A2DD2070E40978600767D22 /* GEMglTexCoord3i.h */, + 3A2DD2080E40978600767D22 /* GEMglTexCoord3iv.cpp */, + 3A2DD2090E40978600767D22 /* GEMglTexCoord3iv.h */, + 3A2DD20A0E40978600767D22 /* GEMglTexCoord3s.cpp */, + 3A2DD20B0E40978600767D22 /* GEMglTexCoord3s.h */, + 3A2DD20C0E40978600767D22 /* GEMglTexCoord3sv.cpp */, + 3A2DD20D0E40978600767D22 /* GEMglTexCoord3sv.h */, + 3A2DD20E0E40978600767D22 /* GEMglTexCoord4d.cpp */, + 3A2DD20F0E40978600767D22 /* GEMglTexCoord4d.h */, + 3A2DD2100E40978600767D22 /* GEMglTexCoord4dv.cpp */, + 3A2DD2110E40978600767D22 /* GEMglTexCoord4dv.h */, + 3A2DD2120E40978600767D22 /* GEMglTexCoord4f.cpp */, + 3A2DD2130E40978600767D22 /* GEMglTexCoord4f.h */, + 3A2DD2140E40978600767D22 /* GEMglTexCoord4fv.cpp */, + 3A2DD2150E40978600767D22 /* GEMglTexCoord4fv.h */, + 3A2DD2160E40978600767D22 /* GEMglTexCoord4i.cpp */, + 3A2DD2170E40978600767D22 /* GEMglTexCoord4i.h */, + 3A2DD2180E40978600767D22 /* GEMglTexCoord4iv.cpp */, + 3A2DD2190E40978600767D22 /* GEMglTexCoord4iv.h */, + 3A2DD21A0E40978600767D22 /* GEMglTexCoord4s.cpp */, + 3A2DD21B0E40978600767D22 /* GEMglTexCoord4s.h */, + 3A2DD21C0E40978600767D22 /* GEMglTexCoord4sv.cpp */, + 3A2DD21D0E40978600767D22 /* GEMglTexCoord4sv.h */, + 3A2DD21E0E40978600767D22 /* GEMglTexEnvf.cpp */, + 3A2DD21F0E40978600767D22 /* GEMglTexEnvf.h */, + 3A2DD2200E40978600767D22 /* GEMglTexEnvi.cpp */, + 3A2DD2210E40978600767D22 /* GEMglTexEnvi.h */, + 3A2DD2220E40978700767D22 /* GEMglTexGend.cpp */, + 3A2DD2230E40978700767D22 /* GEMglTexGend.h */, + 3A2DD2240E40978700767D22 /* GEMglTexGenf.cpp */, + 3A2DD2250E40978700767D22 /* GEMglTexGenf.h */, + 3A2DD2260E40978700767D22 /* GEMglTexGenfv.cpp */, + 3A2DD2270E40978700767D22 /* GEMglTexGenfv.h */, + 3A2DD2280E40978700767D22 /* GEMglTexGeni.cpp */, + 3A2DD2290E40978700767D22 /* GEMglTexGeni.h */, + 3A2DD22A0E40978700767D22 /* GEMglTexParameterf.cpp */, + 3A2DD22B0E40978700767D22 /* GEMglTexParameterf.h */, + 3A2DD22C0E40978700767D22 /* GEMglTexParameteri.cpp */, + 3A2DD22D0E40978700767D22 /* GEMglTexParameteri.h */, + 3A2DD22E0E40978700767D22 /* GEMglTexSubImage1D.cpp */, + 3A2DD22F0E40978700767D22 /* GEMglTexSubImage1D.h */, + 3A2DD2300E40978700767D22 /* GEMglTexSubImage2D.cpp */, + 3A2DD2310E40978700767D22 /* GEMglTexSubImage2D.h */, + 3A2DD2320E40978700767D22 /* GEMglTranslated.cpp */, + 3A2DD2330E40978700767D22 /* GEMglTranslated.h */, + 3A2DD2340E40978700767D22 /* GEMglTranslatef.cpp */, + 3A2DD2350E40978700767D22 /* GEMglTranslatef.h */, + 3A2DD2360E40978700767D22 /* GEMglUniform1fARB.cpp */, + 3A2DD2370E40978700767D22 /* GEMglUniform1fARB.h */, + 3A2DD2380E40978700767D22 /* GEMgluPerspective.cpp */, + 3A2DD2390E40978700767D22 /* GEMgluPerspective.h */, + 3A2DD23A0E40978700767D22 /* GEMglUseProgramObjectARB.cpp */, + 3A2DD23B0E40978700767D22 /* GEMglUseProgramObjectARB.h */, + 3A2DD23C0E40978700767D22 /* GEMglVertex2d.cpp */, + 3A2DD23D0E40978700767D22 /* GEMglVertex2d.h */, + 3A2DD23E0E40978700767D22 /* GEMglVertex2dv.cpp */, + 3A2DD23F0E40978700767D22 /* GEMglVertex2dv.h */, + 3A2DD2400E40978700767D22 /* GEMglVertex2f.cpp */, + 3A2DD2410E40978700767D22 /* GEMglVertex2f.h */, + 3A2DD2420E40978700767D22 /* GEMglVertex2fv.cpp */, + 3A2DD2430E40978700767D22 /* GEMglVertex2fv.h */, + 3A2DD2440E40978700767D22 /* GEMglVertex2i.cpp */, + 3A2DD2450E40978700767D22 /* GEMglVertex2i.h */, + 3A2DD2460E40978700767D22 /* GEMglVertex2iv.cpp */, + 3A2DD2470E40978700767D22 /* GEMglVertex2iv.h */, + 3A2DD2480E40978700767D22 /* GEMglVertex2s.cpp */, + 3A2DD2490E40978700767D22 /* GEMglVertex2s.h */, + 3A2DD24A0E40978700767D22 /* GEMglVertex2sv.cpp */, + 3A2DD24B0E40978700767D22 /* GEMglVertex2sv.h */, + 3A2DD24C0E40978700767D22 /* GEMglVertex3d.cpp */, + 3A2DD24D0E40978700767D22 /* GEMglVertex3d.h */, + 3A2DD24E0E40978700767D22 /* GEMglVertex3dv.cpp */, + 3A2DD24F0E40978700767D22 /* GEMglVertex3dv.h */, + 3A2DD2500E40978700767D22 /* GEMglVertex3f.cpp */, + 3A2DD2510E40978700767D22 /* GEMglVertex3f.h */, + 3A2DD2520E40978700767D22 /* GEMglVertex3fv.cpp */, + 3A2DD2530E40978700767D22 /* GEMglVertex3fv.h */, + 3A2DD2540E40978700767D22 /* GEMglVertex3i.cpp */, + 3A2DD2550E40978700767D22 /* GEMglVertex3i.h */, + 3A2DD2560E40978700767D22 /* GEMglVertex3iv.cpp */, + 3A2DD2570E40978700767D22 /* GEMglVertex3iv.h */, + 3A2DD2580E40978700767D22 /* GEMglVertex3s.cpp */, + 3A2DD2590E40978700767D22 /* GEMglVertex3s.h */, + 3A2DD25A0E40978700767D22 /* GEMglVertex3sv.cpp */, + 3A2DD25B0E40978700767D22 /* GEMglVertex3sv.h */, + 3A2DD25C0E40978700767D22 /* GEMglVertex4d.cpp */, + 3A2DD25D0E40978700767D22 /* GEMglVertex4d.h */, + 3A2DD25E0E40978700767D22 /* GEMglVertex4dv.cpp */, + 3A2DD25F0E40978700767D22 /* GEMglVertex4dv.h */, + 3A2DD2600E40978700767D22 /* GEMglVertex4f.cpp */, + 3A2DD2610E40978700767D22 /* GEMglVertex4f.h */, + 3A2DD2620E40978700767D22 /* GEMglVertex4fv.cpp */, + 3A2DD2630E40978700767D22 /* GEMglVertex4fv.h */, + 3A2DD2640E40978700767D22 /* GEMglVertex4i.cpp */, + 3A2DD2650E40978700767D22 /* GEMglVertex4i.h */, + 3A2DD2660E40978700767D22 /* GEMglVertex4iv.cpp */, + 3A2DD2670E40978700767D22 /* GEMglVertex4iv.h */, + 3A2DD2680E40978700767D22 /* GEMglVertex4s.cpp */, + 3A2DD2690E40978700767D22 /* GEMglVertex4s.h */, + 3A2DD26A0E40978700767D22 /* GEMglVertex4sv.cpp */, + 3A2DD26B0E40978700767D22 /* GEMglVertex4sv.h */, + 3A2DD26C0E40978700767D22 /* GEMglViewport.cpp */, + 3A2DD26D0E40978700767D22 /* GEMglViewport.h */, + 3A2DD26E0E40978700767D22 /* GLdefine.cpp */, + 3A2DD26F0E40978700767D22 /* GLdefine.h */, + ); + path = openGL; + sourceTree = ""; + }; + F5BDD20A0389F0EC0175848A /* frameworks */ = { + isa = PBXGroup; + children = ( + F5BDD20B0389F11F0175848A /* AGL.framework */, + F5BDD20C0389F11F0175848A /* Carbon.framework */, + F5BDD20D0389F11F0175848A /* GLUT.framework */, + F5BDD20E0389F11F0175848A /* OpenGL.framework */, + F5BDD20F0389F11F0175848A /* QuickTime.framework */, + F59BBBAD03A9213901A80164 /* libMallocDebug.a */, + ); + name = frameworks; + sourceTree = ""; + }; + F5CC044803A3FFD701A80164 /* doc */ = { + isa = PBXGroup; + children = ( + F5CC044B03A4000A01A80164 /* manual */, + FD13827B05A9074700B04CF5 /* cMatrix.html */, + FD13827C05A9074700B04CF5 /* gem.known_bugs.txt */, + FD13827D05A9074700B04CF5 /* gem.release_notes.txt */, + FD13827E05A9074700B04CF5 /* gem.todo.txt */, + FD13827F05A9074700B04CF5 /* GemPrimer.pdf */, + ); + name = doc; + path = Gem/doc; + sourceTree = ""; + }; + F5CC044903A3FFF001A80164 /* examples */ = { + isa = PBXGroup; + children = ( + 3AB0D7730E40948800AF570A /* 10.glsl */, + FDCAC5F303F1F6D600A80164 /* 01.basic */, + FDCAC5FD03F1F6D600A80164 /* 02.advanced */, + FDCAC60E03F1F6D600A80164 /* 03.lighting */, + FDCAC61403F1F6D600A80164 /* 04.pix */, + FDCAC62F03F1F6D600A80164 /* 04.video */, + FDCAC63403F1F6D600A80164 /* 05.text */, + FDCAC63A03F1F6D600A80164 /* 06.particle */, + FDCAC64103F1F6D600A80164 /* 07.texture */, + FDCAC64503F1F6D700A80164 /* 08.io */, + FD05177C0405A47900A80164 /* 09.openGL */, + FDCAC64A03F1F6D700A80164 /* 99.games */, + FDCAC64C03F1F6D700A80164 /* data */, + ); + name = examples; + path = Gem/examples; + sourceTree = ""; + }; + F5CC044A03A3FFFF01A80164 /* help */ = { + isa = PBXGroup; + children = ( + 3AB0D7900E4094BA00AF570A /* accumrotate-help.pd */, + 3AB0D7910E4094BA00AF570A /* alpha-help.pd */, + 3AB0D7920E4094BA00AF570A /* ambient-help.pd */, + 3AB0D7930E4094BA00AF570A /* ambientRGB-help.pd */, + 3AB0D7940E4094BA00AF570A /* camera-help.pd */, + 3AB0D7950E4094BA00AF570A /* circle-help.pd */, + 3AB0D7960E4094BA00AF570A /* color-help.pd */, + 3AB0D7970E4094BA00AF570A /* colorRGB-help.pd */, + 3AB0D7980E4094BA00AF570A /* colorSquare-help.pd */, + 3AB0D7990E4094BA00AF570A /* cone-help.pd */, + 3AB0D79A0E4094BA00AF570A /* cube-help.pd */, + 3AB0D79B0E4094BA00AF570A /* cuboid-help.pd */, + 3AB0D79C0E4094BA00AF570A /* curve-help.pd */, + 3AB0D79D0E4094BA00AF570A /* curve3d-help.pd */, + 3AB0D79E0E4094BA00AF570A /* cylinder-help.pd */, + 3AB0D79F0E4094BA00AF570A /* depth-help.pd */, + 3AB0D7A00E4094BA00AF570A /* diffuse-help.pd */, + 3AB0D7A10E4094BA00AF570A /* diffuseRGB-help.pd */, + 3AB0D7A20E4094BA00AF570A /* disk-help.pd */, + 3AB0D7A30E4094BA00AF570A /* emission-help.pd */, + 3AB0D7A40E4094BA00AF570A /* emissionRGB-help.pd */, + 3AB0D7A50E4094BA00AF570A /* fragment_program-help.pd */, + 3AB0D7A60E4094BA00AF570A /* gemframebuffer-help.pd */, + 3AB0D7A70E4094BA00AF570A /* gemhead-help.pd */, + 3AB0D7A80E4094BA00AF570A /* gemkeyboard-help.pd */, + 3AB0D7A90E4094BA00AF570A /* gemkeyname-help.pd */, + 3AB0D7AA0E4094BA00AF570A /* gemlist_info-help.pd */, + 3AB0D7AB0E4094BA00AF570A /* gemlist_matrix-help.pd */, + 3AB0D7AC0E4094BA00AF570A /* gemlist-help.pd */, + 3AB0D7AD0E4094BA00AF570A /* gemmouse-help.pd */, + 3AB0D7AE0E4094BA00AF570A /* gemorb-help.pd */, + 3AB0D7AF0E4094BA00AF570A /* gemtablet-help.pd */, + 3AB0D7B00E4094BB00AF570A /* gemwin-help.pd */, + 3AB0D7B10E4094BB00AF570A /* glsl_fragment-help.pd */, + 3AB0D7B20E4094BB00AF570A /* glsl_program-help.pd */, + 3AB0D7B30E4094BB00AF570A /* glsl_vertex-help.pd */, + 3AB0D7B40E4094BB00AF570A /* imageVert-help.pd */, + 3AB0D7B50E4094BB00AF570A /* light-help.pd */, + 3AB0D7B60E4094BB00AF570A /* linear_path-help.pd */, + 3AB0D7B70E4094BB00AF570A /* mesh_square-help.pd */, + 3AB0D7B80E4094BB00AF570A /* model-help.pd */, + 3AB0D7B90E4094BB00AF570A /* multimodel-help.pd */, + 3AB0D7BA0E4094BB00AF570A /* newWave-help.pd */, + 3AB0D7BB0E4094BB00AF570A /* ortho-help.pd */, + 3AB0D7BC0E4094BB00AF570A /* part_color-help.pd */, + 3AB0D7BD0E4094BB00AF570A /* part_damp-help.pd */, + 3AB0D7BE0E4094BB00AF570A /* part_draw-help.pd */, + 3AB0D7BF0E4094BB00AF570A /* part_follow-help.pd */, + 3AB0D7C00E4094BB00AF570A /* part_gravity-help.pd */, + 3AB0D7C10E4094BB00AF570A /* part_head-help.pd */, + 3AB0D7C20E4094BB00AF570A /* part_info-help.pd */, + 3AB0D7C30E4094BB00AF570A /* part_killold-help.pd */, + 3AB0D7C40E4094BB00AF570A /* part_killslow-help.pd */, + 3AB0D7C50E4094BB00AF570A /* part_orbitpoint-help.pd */, + 3AB0D7C60E4094BB00AF570A /* part_render-help.pd */, + 3AB0D7C70E4094BB00AF570A /* part_sink-help.pd */, + 3AB0D7C80E4094BB00AF570A /* part_size-help.pd */, + 3AB0D7C90E4094BB00AF570A /* part_source-help.pd */, + 3AB0D7CA0E4094BB00AF570A /* part_targetcolor-help.pd */, + 3AB0D7CB0E4094BB00AF570A /* part_targetsize-help.pd */, + 3AB0D7CC0E4094BB00AF570A /* part_velcone-help.pd */, + 3AB0D7CD0E4094BB00AF570A /* part_velocity-help.pd */, + 3AB0D7CE0E4094BB00AF570A /* part_velsphere-help.pd */, + 3AB0D7CF0E4094BB00AF570A /* part_vertex-help.pd */, + 3AB0D7D00E4094BB00AF570A /* pix_2grey-help.pd */, + 3AB0D7D10E4094BB00AF570A /* pix_a_2grey-help.pd */, + 3AB0D7D20E4094BB00AF570A /* pix_add-help.pd */, + 3AB0D7D30E4094BB00AF570A /* pix_aging-help.pd */, + 3AB0D7D40E4094BB00AF570A /* pix_alpha-help.pd */, + 3AB0D7D50E4094BB00AF570A /* pix_background-help.pd */, + 3AB0D7D60E4094BB00AF570A /* pix_backlight-help.pd */, + 3AB0D7D70E4094BB00AF570A /* pix_biquad-help.pd */, + 3AB0D7D80E4094BB00AF570A /* pix_bitmask-help.pd */, + 3AB0D7D90E4094BB00AF570A /* pix_blob-help.pd */, + 3AB0D7DA0E4094BB00AF570A /* pix_blur-help.pd */, + 3AB0D7DB0E4094BB00AF570A /* pix_buf-help.pd */, + 3AB0D7DC0E4094BB00AF570A /* pix_buffer_read-help.pd */, + 3AB0D7DD0E4094BB00AF570A /* pix_buffer_write-help.pd */, + 3AB0D7DE0E4094BB00AF570A /* pix_buffer-help.pd */, + 3AB0D7DF0E4094BB00AF570A /* pix_chroma_key-help.pd */, + 3AB0D7E00E4094BB00AF570A /* pix_clearblock-help.pd */, + 3AB0D7E10E4094BB00AF570A /* pix_color-help.pd */, + 3AB0D7E20E4094BB00AF570A /* pix_coloralpha-help.pd */, + 3AB0D7E30E4094BB00AF570A /* pix_colormatrix-help.pd */, + 3AB0D7E40E4094BB00AF570A /* pix_colorreduce-help.pd */, + 3AB0D7E50E4094BB00AF570A /* pix_compare-help.pd */, + 3AB0D7E60E4094BB00AF570A /* pix_composite-help.pd */, + 3AB0D7E70E4094BB00AF570A /* pix_contrast-help.pd */, + 3AB0D7E80E4094BB00AF570A /* pix_convert-help.pd */, + 3AB0D7E90E4094BB00AF570A /* pix_convolve-help.pd */, + 3AB0D7EA0E4094BB00AF570A /* pix_coordinate-help.pd */, + 3AB0D7EB0E4094BB00AF570A /* pix_crop-help.pd */, + 3AB0D7EC0E4094BB00AF570A /* pix_curve-help.pd */, + 3AB0D7ED0E4094BB00AF570A /* pix_data-help.pd */, + 3AB0D7EE0E4094BB00AF570A /* pix_deinterlace-help.pd */, + 3AB0D7EF0E4094BB00AF570A /* pix_delay-help.pd */, + 3AB0D7F00E4094BB00AF570A /* pix_diff-help.pd */, + 3AB0D7F10E4094BB00AF570A /* pix_dot-help.pd */, + 3AB0D7F20E4094BB00AF570A /* pix_draw-help.pd */, + 3AB0D7F30E4094BB00AF570A /* pix_dump-help.pd */, + 3AB0D7F40E4094BB00AF570A /* pix_duotone-help.pd */, + 3AB0D7F50E4094BB00AF570A /* pix_fiducialtrack-help.pd */, + 3AB0D7F60E4094BB00AF570A /* pix_film-help.pd */, + 3AB0D7F70E4094BB00AF570A /* pix_flip-help.pd */, + 3AB0D7F80E4094BB00AF570A /* pix_freeframe-help.pd */, + 3AB0D7F90E4094BB00AF570A /* pix_gain-help.pd */, + 3AB0D7FA0E4094BB00AF570A /* pix_grey-help.pd */, + 3AB0D7FB0E4094BB00AF570A /* pix_halftone-help.pd */, + 3AB0D7FC0E4094BB00AF570A /* pix_histo-help.pd */, + 3AB0D7FD0E4094BB00AF570A /* pix_hsv2rgb-help.pd */, + 3AB0D7FE0E4094BB00AF570A /* pix_image-help.pd */, + 3AB0D7FF0E4094BB00AF570A /* pix_imageInPlace-help.pd */, + 3AB0D8000E4094BB00AF570A /* pix_indycam-help.pd */, + 3AB0D8010E4094BB00AF570A /* pix_info-help.pd */, + 3AB0D8020E4094BB00AF570A /* pix_invert-help.pd */, + 3AB0D8030E4094BB00AF570A /* pix_kaleidoscope-help.pd */, + 3AB0D8040E4094BB00AF570A /* pix_levels-help.pd */, + 3AB0D8050E4094BB00AF570A /* pix_lumaoffset-help.pd */, + 3AB0D8060E4094BB00AF570A /* pix_mask-help.pd */, + 3AB0D8070E4094BB00AF570A /* pix_mean_color-help.pd */, + 3AB0D8080E4094BB00AF570A /* pix_metaimage-help.pd */, + 3AB0D8090E4094BB00AF570A /* pix_mix-help.pd */, + 3AB0D80A0E4094BB00AF570A /* pix_motionblur-help.pd */, + 3AB0D80B0E4094BB00AF570A /* pix_movement-help.pd */, + 3AB0D80C0E4094BB00AF570A /* pix_movement2-help.pd */, + 3AB0D80D0E4094BB00AF570A /* pix_movie-help.pd */, + 3AB0D80E0E4094BB00AF570A /* pix_multiblob-help.pd */, + 3AB0D80F0E4094BB00AF570A /* pix_multiimage-help.pd */, + 3AB0D8100E4094BB00AF570A /* pix_multiply-help.pd */, + 3AB0D8110E4094BB00AF570A /* pix_normalize-help.pd */, + 3AB0D8120E4094BB00AF570A /* pix_offset-help.pd */, + 3AB0D8130E4094BB00AF570A /* pix_pix2sig~-help.pd */, + 3AB0D8140E4094BB00AF570A /* pix_posterize-help.pd */, + 3AB0D8150E4094BB00AF570A /* pix_puzzle-help.pd */, + 3AB0D8160E4094BB00AF570A /* pix_rds-help.pd */, + 3AB0D8170E4094BB00AF570A /* pix_record-help.pd */, + 3AB0D8180E4094BB00AF570A /* pix_rectangle-help.pd */, + 3AB0D8190E4094BB00AF570A /* pix_refraction-help.pd */, + 3AB0D81A0E4094BB00AF570A /* pix_resize-help.pd */, + 3AB0D81B0E4094BB00AF570A /* pix_rgb2hsv-help.pd */, + 3AB0D81C0E4094BB00AF570A /* pix_rgba-help.pd */, + 3AB0D81D0E4094BB00AF570A /* pix_roll-help.pd */, + 3AB0D81E0E4094BB00AF570A /* pix_rtx-help.pd */, + 3AB0D81F0E4094BB00AF570A /* pix_scanline-help.pd */, + 3AB0D8200E4094BB00AF570A /* pix_set-help.pd */, + 3AB0D8210E4094BB00AF570A /* pix_share_read-help.pd */, + 3AB0D8220E4094BB00AF570A /* pix_share_write-help.pd */, + 3AB0D8230E4094BB00AF570A /* pix_sig2pix~-help.pd */, + 3AB0D8240E4094BB00AF570A /* pix_snap-help.pd */, + 3AB0D8250E4094BB00AF570A /* pix_snap2tex-help.pd */, + 3AB0D8260E4094BB00AF570A /* pix_subtract-help.pd */, + 3AB0D8270E4094BB00AF570A /* pix_takealpha-help.pd */, + 3AB0D8280E4094BB00AF570A /* pix_texture-help.pd */, + 3AB0D8290E4094BB00AF570A /* pix_threshold_bernsen-help.pd */, + 3AB0D82A0E4094BB00AF570A /* pix_threshold-help.pd */, + 3AB0D82B0E4094BB00AF570A /* pix_tIIR-help.pd */, + 3AB0D82C0E4094BB00AF570A /* pix_video-help.pd */, + 3AB0D82D0E4094BB00AF570A /* pix_videoDS-help.pd */, + 3AB0D82E0E4094BB00AF570A /* pix_write-help.pd */, + 3AB0D82F0E4094BB00AF570A /* pix_yuv-help.pd */, + 3AB0D8300E4094BB00AF570A /* pix_zoom-help.pd */, + 3AB0D8310E4094BB00AF570A /* polygon_smooth-help.pd */, + 3AB0D8320E4094BB00AF570A /* polygon-help.pd */, + 3AB0D8330E4094BB00AF570A /* pqtorusknots-help.pd */, + 3AB0D8340E4094BB00AF570A /* primTri-help.pd */, + 3AB0D8350E4094BB00AF570A /* rectangle-help.pd */, + 3AB0D8360E4094BB00AF570A /* render_trigger-help.pd */, + 3AB0D8370E4094BB00AF570A /* ripple-help.pd */, + 3AB0D8380E4094BB00AF570A /* rotate-help.pd */, + 3AB0D8390E4094BB00AF570A /* rotateXYZ-help.pd */, + 3AB0D83A0E4094BB00AF570A /* rubber-help.pd */, + 3AB0D83B0E4094BB00AF570A /* scale-help.pd */, + 3AB0D83C0E4094BB00AF570A /* scaleXYZ-help.pd */, + 3AB0D83D0E4094BB00AF570A /* scopeXYZ~-help.pd */, + 3AB0D83E0E4094BB00AF570A /* separator-help.pd */, + 3AB0D83F0E4094BB00AF570A /* shearXY-help.pd */, + 3AB0D8400E4094BB00AF570A /* shearXZ-help.pd */, + 3AB0D8410E4094BB00AF570A /* shearYX-help.pd */, + 3AB0D8420E4094BB00AF570A /* shearYZ-help.pd */, + 3AB0D8430E4094BB00AF570A /* shearZX-help.pd */, + 3AB0D8440E4094BB00AF570A /* shearZY-help.pd */, + 3AB0D8450E4094BB00AF570A /* shininess-help.pd */, + 3AB0D8460E4094BB00AF570A /* slideSquares-help.pd */, + 3AB0D8470E4094BB00AF570A /* specular-help.pd */, + 3AB0D8480E4094BB00AF570A /* specularRGB-help.pd */, + 3AB0D8490E4094BC00AF570A /* sphere-help.pd */, + 3AB0D84A0E4094BC00AF570A /* spline_path-help.pd */, + 3AB0D84B0E4094BC00AF570A /* spot_light-help.pd */, + 3AB0D84C0E4094BC00AF570A /* square-help.pd */, + 3AB0D84D0E4094BC00AF570A /* teapot-help.pd */, + 3AB0D84E0E4094BC00AF570A /* text2d-help.pd */, + 3AB0D84F0E4094BC00AF570A /* text3d-help.pd */, + 3AB0D8500E4094BC00AF570A /* textextruded-help.pd */, + 3AB0D8510E4094BC00AF570A /* textoutline-help.pd */, + 3AB0D8520E4094BC00AF570A /* torus-help.pd */, + 3AB0D8530E4094BC00AF570A /* translate-help.pd */, + 3AB0D8540E4094BC00AF570A /* translateXYZ-help.pd */, + 3AB0D8550E4094BC00AF570A /* triangle-help.pd */, + 3AB0D8560E4094BC00AF570A /* tube-help.pd */, + 3AB0D8570E4094BC00AF570A /* vertex_program-help.pd */, + 3AB0D8580E4094BC00AF570A /* world_light-help.pd */, + ); + name = help; + path = Gem/help; + sourceTree = ""; + }; + F5CC044B03A4000A01A80164 /* manual */ = { + isa = PBXGroup; + children = ( + F5CC044C03A4003F01A80164 /* add.jpg */, + F5CC044D03A4003F01A80164 /* addResult.jpg */, + F5CC044E03A4003F01A80164 /* Advanced.html */, + F5CC044F03A4003F01A80164 /* basicCube.jpg */, + F5CC045003A4003F01A80164 /* BasicObj.html */, + F5CC045103A4003F01A80164 /* counter.jpg */, + F5CC045203A4003F01A80164 /* GemFaq.html */, + F5CC045503A4003F01A80164 /* Gloss.html */, + F5CC045603A4003F01A80164 /* Images.html */, + F5CC045703A4003F01A80164 /* index.html */, + F5CC045803A4003F01A80164 /* Input.html */, + F5CC045903A4003F01A80164 /* Intro.html */, + F5CC045A03A4003F01A80164 /* invert.jpg */, + F5CC045B03A4003F01A80164 /* invertFrac.jpg */, + F5CC045C03A4003F01A80164 /* light.jpg */, + F5CC045D03A4003F01A80164 /* Lighting.html */, + F5CC045E03A4003F01A80164 /* ListObjects.html */, + F5CC045F03A4003F01A80164 /* mask.jpg */, + F5CC046003A4003F01A80164 /* maskResult.jpg */, + F5CC046103A4003F01A80164 /* normalFrac.jpg */, + F5CC046203A4003F01A80164 /* Particles.html */, + F5CC046303A4003F01A80164 /* Pixes.html */, + F5CC046403A4003F01A80164 /* pixImage.jpg */, + F5CC046503A4003F01A80164 /* redSquare.jpg */, + F5CC046603A4003F01A80164 /* sphere5.jpg */, + F5CC046703A4003F01A80164 /* sphere15.jpg */, + F5CC046803A4003F01A80164 /* Texture.html */, + F5CC046903A4003F01A80164 /* texture.jpg */, + F5CC046A03A4003F01A80164 /* transXYZ.jpg */, + F5CC046B03A4003F01A80164 /* tribar.gif */, + F5CC046C03A4003F01A80164 /* tripleLine.jpg */, + F5CC046D03A4003F01A80164 /* tripleRand.jpg */, + F5CC046E03A4003F01A80164 /* Utility.html */, + F5CC046F03A4003F01A80164 /* world_light.jpg */, + F5CC047003A4003F01A80164 /* WriteCode.html */, + ); + path = manual; + sourceTree = ""; + }; + F5CC047103A400A601A80164 /* src */ = { + isa = PBXGroup; + children = ( + FDAE03BC09C8A5F500201A91 /* TODO */, + F521B40303898BE2019165F0 /* Base */, + F521B43C03898BE2019165F0 /* Controls */, + F521B44E03898BE2019165F0 /* Geos */, + F521B47E03898BE2019165F0 /* Manips */, + F521B4BE03898BE2019165F0 /* Nongeos */, + F52F0E84039FEEA801A80164 /* openGL */, + FD53934106FD033E0009EE9E /* Output */, + F521B4C403898BE2019165F0 /* Particles */, + F521B4E403898BE2019165F0 /* Pixes */, + FD23C78D06DFC01A005D1182 /* Vertex */, + ); + name = src; + path = Gem/src; + sourceTree = ""; + }; + FD05177C0405A47900A80164 /* 09.openGL */ = { + isa = PBXGroup; + children = ( + 3AB0D7690E40941000AF570A /* 03.stencilBuffer.pd */, + FD2F4E9308F2FA9E008F3CED /* 02.displayList.pd */, + FD05177D0405A47900A80164 /* 01.primQuad.pd */, + ); + path = 09.openGL; + sourceTree = ""; + }; + FD23C78D06DFC01A005D1182 /* Vertex */ = { + isa = PBXGroup; + children = ( + 3A2DD74D0E4097E900767D22 /* glVBO_ext.h */, + 3A2DD74F0E4097E900767D22 /* vertex_add.cpp */, + 3A2DD7500E4097E900767D22 /* vertex_add.h */, + 3A2DD7510E4097E900767D22 /* vertex_combine.cpp */, + 3A2DD7520E4097E900767D22 /* vertex_combine.h */, + 3A2DD7530E4097E900767D22 /* vertex_draw.cpp */, + 3A2DD7540E4097E900767D22 /* vertex_draw.h */, + 3A2DD7550E4097E900767D22 /* vertex_grid.cpp */, + 3A2DD7560E4097E900767D22 /* vertex_grid.h */, + 3A2DD7570E4097E900767D22 /* vertex_info.cpp */, + 3A2DD7580E4097E900767D22 /* vertex_info.h */, + 3A2DD7590E4097E900767D22 /* vertex_model.cpp */, + 3A2DD75A0E4097E900767D22 /* vertex_model.h */, + 3A2DD75B0E4097E900767D22 /* vertex_mul.cpp */, + 3A2DD75C0E4097E900767D22 /* vertex_mul.h */, + 3A2DD75D0E4097E900767D22 /* vertex_offset.cpp */, + 3A2DD75E0E4097E900767D22 /* vertex_offset.h */, + 3A2DD75F0E4097E900767D22 /* vertex_quad.cpp */, + 3A2DD7600E4097E900767D22 /* vertex_quad.h */, + 3A2DD7610E4097E900767D22 /* vertex_scale.cpp */, + 3A2DD7620E4097E900767D22 /* vertex_scale.h */, + 3A2DD7630E4097EA00767D22 /* vertex_set.cpp */, + 3A2DD7640E4097EA00767D22 /* vertex_set.h */, + 3A2DD7650E4097EA00767D22 /* vertex_tabread.cpp */, + 3A2DD7660E4097EA00767D22 /* vertex_tabread.h */, + ); + path = Vertex; + sourceTree = ""; + }; + FD53934106FD033E0009EE9E /* Output */ = { + isa = PBXGroup; + children = ( + ); + path = Output; + sourceTree = ""; + }; + FD8E016D04C4CB9900DF3958 /* include */ = { + isa = PBXGroup; + children = ( + FD8E016E04C4CB9900DF3958 /* FTBBox.h */, + FD8E016F04C4CB9900DF3958 /* FTBitmapGlyph.h */, + FD8E017004C4CB9900DF3958 /* FTCharmap.h */, + FD8E017104C4CB9900DF3958 /* FTCharToGlyphIndexMap.h */, + FD8E017204C4CB9900DF3958 /* FTContour.h */, + FD8E017304C4CB9900DF3958 /* FTExtrdGlyph.h */, + FD8E017404C4CB9900DF3958 /* FTFace.h */, + FD8E017504C4CB9900DF3958 /* FTFont.h */, + FD8E017604C4CB9900DF3958 /* FTGL.h */, + FD8E017704C4CB9900DF3958 /* FTGLBitmapFont.h */, + FD8E017804C4CB9900DF3958 /* FTGLExtrdFont.h */, + FD8E017904C4CB9900DF3958 /* FTGLOutlineFont.h */, + FD8E017A04C4CB9900DF3958 /* FTGLPixmapFont.h */, + FD8E017B04C4CB9900DF3958 /* FTGLPolygonFont.h */, + FD8E017C04C4CB9900DF3958 /* FTGLTextureFont.h */, + FD8E017D04C4CB9900DF3958 /* FTGlyph.h */, + FD8E017E04C4CB9900DF3958 /* FTGlyphContainer.h */, + FD8E017F04C4CB9900DF3958 /* FTLibrary.h */, + FD8E018004C4CB9900DF3958 /* FTList.h */, + FD8E018104C4CB9900DF3958 /* FTOutlineGlyph.h */, + FD8E018204C4CB9900DF3958 /* FTPixmapGlyph.h */, + FD8E018304C4CB9900DF3958 /* FTPoint.h */, + FD8E018404C4CB9900DF3958 /* FTPolyGlyph.h */, + FD8E018504C4CB9900DF3958 /* FTSize.h */, + FD8E018604C4CB9900DF3958 /* FTTextureGlyph.h */, + FD8E018704C4CB9900DF3958 /* FTVector.h */, + FD8E018804C4CB9900DF3958 /* FTVectoriser.h */, + ); + path = include; + sourceTree = ""; + }; + FD8EFB6504C4715900DF3958 /* FTGL */ = { + isa = PBXGroup; + children = ( + FD8EFC7404C4715B00DF3958 /* libftgl.a */, + FD8E016D04C4CB9900DF3958 /* include */, + ); + includeInIndex = 0; + name = FTGL; + path = ../../../GemLibs/FTGL; + sourceTree = SOURCE_ROOT; + }; + FDCAC5F303F1F6D600A80164 /* 01.basic */ = { + isa = PBXGroup; + children = ( + FDCAC5F403F1F6D600A80164 /* 01.redSquare.pd */, + FDCAC5F503F1F6D600A80164 /* 02.blueRectangle.pd */, + FDCAC5F603F1F6D600A80164 /* 03.disk.pd */, + FDCAC5F703F1F6D600A80164 /* 04.PrimTri.pd */, + FDCAC5F803F1F6D600A80164 /* 05.cube.pd */, + FDCAC5F903F1F6D600A80164 /* 06.sphere.pd */, + FDCAC5FA03F1F6D600A80164 /* 07.cylinder.pd */, + FDCAC5FB03F1F6D600A80164 /* 08.model.pd */, + FDCAC5FC03F1F6D600A80164 /* 09.yelloTeapot.pd */, + ); + path = 01.basic; + sourceTree = ""; + }; + FDCAC5FD03F1F6D600A80164 /* 02.advanced */ = { + isa = PBXGroup; + children = ( + FD2F4E9008F2FA43008F3CED /* 16.vertex_program.pd */, + FD2F4E9108F2FA43008F3CED /* 17.fragment_program.pd */, + FDCAC5FE03F1F6D600A80164 /* 01.Separator.pd */, + FDCAC5FF03F1F6D600A80164 /* 02.Ortho.pd */, + FDCAC60003F1F6D600A80164 /* 03.View.pd */, + FDCAC60103F1F6D600A80164 /* 03.View_OSD.pd */, + FDCAC60203F1F6D600A80164 /* 04.Fog.pd */, + FDCAC60303F1F6D600A80164 /* 05.Stereo.pd */, + FDCAC60403F1F6D600A80164 /* 06.StereoParticle.pd */, + FDCAC60503F1F6D600A80164 /* 07.Snapshot1.pd */, + FDCAC60603F1F6D600A80164 /* 08.Snapshot2.pd */, + FDCAC60703F1F6D600A80164 /* 09.SnapshotSave.pd */, + FDCAC60803F1F6D600A80164 /* 10.LinearPath.pd */, + FDCAC60903F1F6D600A80164 /* 11.SplinePath.pd */, + FDCAC60A03F1F6D600A80164 /* 12.Hsv.pd */, + FDCAC60B03F1F6D600A80164 /* 13.ModelRescale.pd */, + FDCAC60C03F1F6D600A80164 /* 14.RenderOrder.pd */, + FDCAC60D03F1F6D600A80164 /* 15.GemWin.pd */, + ); + path = 02.advanced; + sourceTree = ""; + }; + FDCAC60E03F1F6D600A80164 /* 03.lighting */ = { + isa = PBXGroup; + children = ( + FDCAC60F03F1F6D600A80164 /* 01.world_light.pd */, + FDCAC61003F1F6D600A80164 /* 02.light.pd */, + FDCAC61103F1F6D600A80164 /* 03.controlLights.pd */, + FDCAC61203F1F6D600A80164 /* 04.moveSpheres.pd */, + FDCAC61303F1F6D600A80164 /* 05.materials.pd */, + ); + path = 03.lighting; + sourceTree = ""; + }; + FDCAC61403F1F6D600A80164 /* 04.pix */ = { + isa = PBXGroup; + children = ( + FDCAC61503F1F6D600A80164 /* 01.image.pd */, + FDCAC61603F1F6D600A80164 /* 02.multiimage.pd */, + FDCAC61703F1F6D600A80164 /* 04.ImageInPlace.pd */, + FDCAC61803F1F6D600A80164 /* 05.film.pd */, + FDCAC61903F1F6D600A80164 /* 05.movie.pd */, + FDCAC61A03F1F6D600A80164 /* 06.PixRect.pd */, + FDCAC61B03F1F6D600A80164 /* 07.PixSet.pd */, + FDCAC61C03F1F6D600A80164 /* 08.PixDump.pd */, + FDCAC61D03F1F6D600A80164 /* 09.Histogram.pd */, + FDCAC61E03F1F6D600A80164 /* 10.PixDataSimple.pd */, + FDCAC61F03F1F6D600A80164 /* 11.PixDataComplex.pd */, + FDCAC62003F1F6D600A80164 /* 12.add.pd */, + FDCAC62103F1F6D600A80164 /* 12.blending.pd */, + FDCAC62203F1F6D600A80164 /* 12.composite.pd */, + FDCAC62303F1F6D600A80164 /* 12.pix_multiply.pd */, + FDCAC62403F1F6D600A80164 /* 13.maskDancer.pd */, + FDCAC62503F1F6D600A80164 /* 14.takeAlpha.pd */, + FDCAC62603F1F6D600A80164 /* 15.pix_alpha.pd */, + FDCAC62703F1F6D600A80164 /* 16.alphaGrey.pd */, + FDCAC62803F1F6D600A80164 /* 16.pix_2grey.pd */, + FDCAC62903F1F6D600A80164 /* 17.pix_gain.pd */, + FDCAC62A03F1F6D600A80164 /* 18.Curves.pd */, + FDCAC62B03F1F6D600A80164 /* 19.colorMatrix.pd */, + FDCAC62C03F1F6D600A80164 /* 20.convolve.pd */, + FDCAC62D03F1F6D600A80164 /* 22.biquad.pd */, + FDCAC62E03F1F6D600A80164 /* 23.gravity.pd */, + FD8EFB4B04C46CA600DF3958 /* 24.time-filtering.pd */, + FD8EFB4C04C46CA600DF3958 /* 25.buffer.pd */, + ); + path = 04.pix; + sourceTree = ""; + }; + FDCAC62F03F1F6D600A80164 /* 04.video */ = { + isa = PBXGroup; + children = ( + FD8EFB4D04C46CDD00DF3958 /* 00.SimpleVideo.pd */, + FDCAC63003F1F6D600A80164 /* 01.VideoPaint.pd */, + FDCAC63103F1F6D600A80164 /* 02.VideoSphere.pd */, + FDCAC63203F1F6D600A80164 /* 03.movement_detection.pd */, + FDCAC63303F1F6D600A80164 /* 04.videoRTX.pd */, + ); + path = 04.video; + sourceTree = ""; + }; + FDCAC63403F1F6D600A80164 /* 05.text */ = { + isa = PBXGroup; + children = ( + FDCAC63503F1F6D600A80164 /* 01.Text.pd */, + FDCAC63603F1F6D600A80164 /* 01.TextNoLoadBang.pd */, + FDCAC63703F1F6D600A80164 /* 03.ChangeText.pd */, + FDCAC63803F1F6D600A80164 /* 03.ChangeTextNoLoadBang.pd */, + ); + path = 05.text; + sourceTree = ""; + }; + FDCAC63A03F1F6D600A80164 /* 06.particle */ = { + isa = PBXGroup; + children = ( + FDCAC63B03F1F6D600A80164 /* 01.simple.pd */, + FDCAC63C03F1F6D600A80164 /* 02.fountain.pd */, + FDCAC63D03F1F6D600A80164 /* 03.orbit.pd */, + FDCAC63E03F1F6D600A80164 /* 04.combo.pd */, + FDCAC63F03F1F6D600A80164 /* 05.twoSrc.pd */, + FDCAC64003F1F6D600A80164 /* 06.target.pd */, + FD8EFB4E04C46CFC00DF3958 /* 07.render.pd */, + FD8EFB4F04C46CFC00DF3958 /* 08.info.pd */, + ); + path = 06.particle; + sourceTree = ""; + }; + FDCAC64103F1F6D600A80164 /* 07.texture */ = { + isa = PBXGroup; + children = ( + FD2F4E9208F2FA79008F3CED /* 07.feedback.pd */, + FDCAC64203F1F6D600A80164 /* 01.texture.pd */, + FDCAC64303F1F6D700A80164 /* 02.TexCoord.pd */, + FDCAC64403F1F6D700A80164 /* 04.moveImages.pd */, + FDC7F58C03F7268D007E9592 /* 05.newWave.pd */, + FDC7F58D03F7268D007E9592 /* 06.ripple.pd */, + ); + path = 07.texture; + sourceTree = ""; + }; + FDCAC64503F1F6D700A80164 /* 08.io */ = { + isa = PBXGroup; + children = ( + FDCAC64603F1F6D700A80164 /* 01.Mouse.pd */, + FDCAC64703F1F6D700A80164 /* 02.Tablet.pd */, + FDCAC64803F1F6D700A80164 /* 03.Orb.pd */, + FDCAC64903F1F6D700A80164 /* 04.UseOrb.pd */, + ); + path = 08.io; + sourceTree = ""; + }; + FDCAC64A03F1F6D700A80164 /* 99.games */ = { + isa = PBXGroup; + children = ( + FDCAC64B03F1F6D700A80164 /* puzzle.pd */, + ); + path = 99.games; + sourceTree = ""; + }; + FDCAC64C03F1F6D700A80164 /* data */ = { + isa = PBXGroup; + children = ( + 3AB0D76E0E40945F00AF570A /* all.trees */, + 3AB0D76F0E40945F00AF570A /* COPYING.txt */, + 3AB0D7700E40945F00AF570A /* Toon.frag */, + 3AB0D7710E40945F00AF570A /* Toon.vert */, + 3AB0D7720E40945F00AF570A /* vera.ttf */, + FD2F4E9508F2FAC6008F3CED /* 64shade.tif */, + FD2F4E9608F2FAC6008F3CED /* random.fp */, + FD2F4E9708F2FAC6008F3CED /* toon.vp */, + FDCAC64D03F1F6D700A80164 /* alea.mpg */, + FDCAC64E03F1F6D700A80164 /* anim-1.mov */, + FDB7B8960477359D00A80164 /* blob0.tif */, + FDB7B8970477359D00A80164 /* blob1.tif */, + FDB7B8980477359D00A80164 /* blob2.tif */, + FDCAC65103F1F6D700A80164 /* dancer.JPG */, + FDCAC65203F1F6D700A80164 /* fractal.JPG */, + FDCAC65303F1F6D700A80164 /* fractalAlpha.TIF */, + FDCAC65403F1F6D700A80164 /* homer.avi */, + FDCAC65503F1F6D700A80164 /* temp0.JPG */, + FDCAC65603F1F6D700A80164 /* temp1.JPG */, + FDCAC65703F1F6D700A80164 /* temp2.JPG */, + FDCAC65903F1F6D700A80164 /* valcolor.tab */, + FDCAC65A03F1F6D700A80164 /* valmotion.tab */, + FDCAC65B03F1F6D700A80164 /* venus.mtl */, + FDB7B8990477359D00A80164 /* venus.obj */, + ); + path = data; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 3ACEDF080E40B9E800FC2E4B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 3ACEDF090E40B9E800FC2E4B /* CPPExtern.h in Headers */, + 3ACEDF0A0E40B9E800FC2E4B /* GemBase.h in Headers */, + 3ACEDF0B0E40B9E800FC2E4B /* GemCache.h in Headers */, + 3ACEDF0C0E40B9E800FC2E4B /* GemEvent.h in Headers */, + 3ACEDF0D0E40B9E800FC2E4B /* GemExportDef.h in Headers */, + 3ACEDF0E0E40B9E800FC2E4B /* GemFuncUtil.h in Headers */, + 3ACEDF0F0E40B9E800FC2E4B /* GemGluObj.h in Headers */, + 3ACEDF100E40B9E800FC2E4B /* GemGLUtil.h in Headers */, + 3ACEDF110E40B9E800FC2E4B /* GemLoadObj.h in Headers */, + 3ACEDF120E40B9E800FC2E4B /* GemMan.h in Headers */, + 3ACEDF130E40B9E800FC2E4B /* GemPathBase.h in Headers */, + 3ACEDF140E40B9E800FC2E4B /* GemPixDualObj.h in Headers */, + 3ACEDF150E40B9E800FC2E4B /* GemPixImageLoad.h in Headers */, + 3ACEDF160E40B9E800FC2E4B /* GemPixObj.h in Headers */, + 3ACEDF170E40B9E800FC2E4B /* GemPixUtil.h in Headers */, + 3ACEDF180E40B9E800FC2E4B /* GemShape.h in Headers */, + 3ACEDF190E40B9E800FC2E4B /* GemState.h in Headers */, + 3ACEDF1A0E40B9E800FC2E4B /* GemVersion.h in Headers */, + 3ACEDF1B0E40B9E800FC2E4B /* GemWinCreate.h in Headers */, + 3ACEDF1C0E40B9E800FC2E4B /* Matrix.h in Headers */, + 3ACEDF1D0E40B9E800FC2E4B /* TextBase.h in Headers */, + 3ACEDF1E0E40B9E800FC2E4B /* gemhead.h in Headers */, + 3ACEDF1F0E40B9E800FC2E4B /* gemkeyboard.h in Headers */, + 3ACEDF200E40B9E800FC2E4B /* gemkeyname.h in Headers */, + 3ACEDF210E40B9E800FC2E4B /* render_trigger.h in Headers */, + 3ACEDF220E40B9E800FC2E4B /* GemPixImageSave.h in Headers */, + 3ACEDF230E40B9E800FC2E4B /* FTBBox.h in Headers */, + 3ACEDF240E40B9E800FC2E4B /* FTBitmapGlyph.h in Headers */, + 3ACEDF250E40B9E800FC2E4B /* FTCharmap.h in Headers */, + 3ACEDF260E40B9E800FC2E4B /* FTCharToGlyphIndexMap.h in Headers */, + 3ACEDF270E40B9E800FC2E4B /* FTContour.h in Headers */, + 3ACEDF280E40B9E800FC2E4B /* FTExtrdGlyph.h in Headers */, + 3ACEDF290E40B9E800FC2E4B /* FTFace.h in Headers */, + 3ACEDF2A0E40B9E800FC2E4B /* FTFont.h in Headers */, + 3ACEDF2B0E40B9E800FC2E4B /* FTGL.h in Headers */, + 3ACEDF2C0E40B9E800FC2E4B /* FTGLBitmapFont.h in Headers */, + 3ACEDF2D0E40B9E800FC2E4B /* FTGLExtrdFont.h in Headers */, + 3ACEDF2E0E40B9E800FC2E4B /* FTGLOutlineFont.h in Headers */, + 3ACEDF2F0E40B9E800FC2E4B /* FTGLPixmapFont.h in Headers */, + 3ACEDF300E40B9E800FC2E4B /* FTGLPolygonFont.h in Headers */, + 3ACEDF310E40B9E800FC2E4B /* FTGLTextureFont.h in Headers */, + 3ACEDF320E40B9E800FC2E4B /* FTGlyph.h in Headers */, + 3ACEDF330E40B9E800FC2E4B /* FTGlyphContainer.h in Headers */, + 3ACEDF340E40B9E800FC2E4B /* FTLibrary.h in Headers */, + 3ACEDF350E40B9E800FC2E4B /* FTList.h in Headers */, + 3ACEDF360E40B9E800FC2E4B /* FTOutlineGlyph.h in Headers */, + 3ACEDF370E40B9E800FC2E4B /* FTPixmapGlyph.h in Headers */, + 3ACEDF380E40B9E800FC2E4B /* FTPoint.h in Headers */, + 3ACEDF390E40B9E800FC2E4B /* FTPolyGlyph.h in Headers */, + 3ACEDF3A0E40B9E800FC2E4B /* FTSize.h in Headers */, + 3ACEDF3B0E40B9E800FC2E4B /* FTTextureGlyph.h in Headers */, + 3ACEDF3C0E40B9E800FC2E4B /* FTVector.h in Headers */, + 3ACEDF3D0E40B9E800FC2E4B /* FTVectoriser.h in Headers */, + 3ACEDF3E0E40B9E800FC2E4B /* config.h in Headers */, + 3ACEDF3F0E40B9E800FC2E4B /* configDarwin.h in Headers */, + 3ACEDF400E40B9E800FC2E4B /* GemPixPete.h in Headers */, + 3ACEDF410E40B9E800FC2E4B /* GemSIMD.h in Headers */, + 3ACEDF420E40B9E800FC2E4B /* GemModelData.h in Headers */, + 3ACEDF430E40B9E800FC2E4B /* sgiimage.h in Headers */, + 3ACEDF440E40B9E800FC2E4B /* GemGL.h in Headers */, + 3ACEDF450E40B9E800FC2E4B /* GemLoaders.h in Headers */, + 3ACEDF460E40B9E800FC2E4B /* GemMath.h in Headers */, + 3ACEDF470E40B9E800FC2E4B /* GemPBuffer.h in Headers */, + 3ACEDF480E40B9E800FC2E4B /* GemPixConvert.h in Headers */, + 3ACEDF490E40B9E800FC2E4B /* GemVector.h in Headers */, + 3ACEDF4A0E40B9E800FC2E4B /* GemVertex.h in Headers */, + 3ACEDF4B0E40B9E800FC2E4B /* glew.h in Headers */, + 3ACEDF4C0E40B9E800FC2E4B /* gemframebuffer.h in Headers */, + 3ACEDF4D0E40B9E800FC2E4B /* gemlist_info.h in Headers */, + 3ACEDF4E0E40B9E800FC2E4B /* gemlist_matrix.h in Headers */, + 3ACEDF4F0E40B9E800FC2E4B /* gemlist.h in Headers */, + 3ACEDF500E40B9E800FC2E4B /* gemmouse.h in Headers */, + 3ACEDF510E40B9E800FC2E4B /* gemreceive.h in Headers */, + 3ACEDF520E40B9E800FC2E4B /* gemwin.h in Headers */, + 3ACEDF530E40B9E800FC2E4B /* circle.h in Headers */, + 3ACEDF540E40B9E800FC2E4B /* colorSquare.h in Headers */, + 3ACEDF550E40B9E800FC2E4B /* cone.h in Headers */, + 3ACEDF560E40B9E800FC2E4B /* cube.h in Headers */, + 3ACEDF570E40B9E800FC2E4B /* cuboid.h in Headers */, + 3ACEDF580E40B9E800FC2E4B /* curve.h in Headers */, + 3ACEDF590E40B9E800FC2E4B /* curve3d.h in Headers */, + 3ACEDF5A0E40B9E800FC2E4B /* cylinder.h in Headers */, + 3ACEDF5B0E40B9E800FC2E4B /* disk.h in Headers */, + 3ACEDF5C0E40B9E800FC2E4B /* GemSplash.h in Headers */, + 3ACEDF5D0E40B9E800FC2E4B /* imageVert.h in Headers */, + 3ACEDF5E0E40B9E800FC2E4B /* mesh_square.h in Headers */, + 3ACEDF5F0E40B9E800FC2E4B /* model_loader.h in Headers */, + 3ACEDF600E40B9E800FC2E4B /* model.h in Headers */, + 3ACEDF610E40B9E800FC2E4B /* multimodel.h in Headers */, + 3ACEDF620E40B9E800FC2E4B /* newWave.h in Headers */, + 3ACEDF630E40B9E800FC2E4B /* polygon.h in Headers */, + 3ACEDF640E40B9E800FC2E4B /* pqtorusknots.h in Headers */, + 3ACEDF650E40B9E800FC2E4B /* primTri.h in Headers */, + 3ACEDF660E40B9E800FC2E4B /* rectangle.h in Headers */, + 3ACEDF670E40B9E800FC2E4B /* ripple.h in Headers */, + 3ACEDF680E40B9E800FC2E4B /* rubber.h in Headers */, + 3ACEDF690E40B9E800FC2E4B /* scopeXYZ.h in Headers */, + 3ACEDF6A0E40B9E800FC2E4B /* slideSquares.h in Headers */, + 3ACEDF6B0E40B9E800FC2E4B /* sphere.h in Headers */, + 3ACEDF6C0E40B9E800FC2E4B /* sphere3d.h in Headers */, + 3ACEDF6D0E40B9E800FC2E4B /* square.h in Headers */, + 3ACEDF6E0E40B9E800FC2E4B /* teapot.h in Headers */, + 3ACEDF6F0E40B9E800FC2E4B /* TexFont.h in Headers */, + 3ACEDF700E40B9E800FC2E4B /* text2d.h in Headers */, + 3ACEDF710E40B9E800FC2E4B /* text3d.h in Headers */, + 3ACEDF720E40B9E800FC2E4B /* textextruded.h in Headers */, + 3ACEDF730E40B9E800FC2E4B /* textoutline.h in Headers */, + 3ACEDF740E40B9E800FC2E4B /* torus.h in Headers */, + 3ACEDF750E40B9E800FC2E4B /* trapezoid.h in Headers */, + 3ACEDF760E40B9E800FC2E4B /* triangle.h in Headers */, + 3ACEDF770E40B9E800FC2E4B /* tube.h in Headers */, + 3ACEDF780E40B9E800FC2E4B /* accumrotate.h in Headers */, + 3ACEDF790E40B9E800FC2E4B /* alpha.h in Headers */, + 3ACEDF7A0E40B9E800FC2E4B /* ambient.h in Headers */, + 3ACEDF7B0E40B9E800FC2E4B /* ambientRGB.h in Headers */, + 3ACEDF7C0E40B9E800FC2E4B /* camera.h in Headers */, + 3ACEDF7D0E40B9E800FC2E4B /* color.h in Headers */, + 3ACEDF7E0E40B9E800FC2E4B /* colorRGB.h in Headers */, + 3ACEDF7F0E40B9E800FC2E4B /* depth.h in Headers */, + 3ACEDF800E40B9E800FC2E4B /* diffuse.h in Headers */, + 3ACEDF810E40B9E800FC2E4B /* diffuseRGB.h in Headers */, + 3ACEDF820E40B9E800FC2E4B /* emission.h in Headers */, + 3ACEDF830E40B9E800FC2E4B /* emissionRGB.h in Headers */, + 3ACEDF840E40B9E800FC2E4B /* fragment_program.h in Headers */, + 3ACEDF850E40B9E800FC2E4B /* glsl_fragment.h in Headers */, + 3ACEDF860E40B9E800FC2E4B /* glsl_program.h in Headers */, + 3ACEDF870E40B9E800FC2E4B /* glsl_vertex.h in Headers */, + 3ACEDF880E40B9E800FC2E4B /* linear_path.h in Headers */, + 3ACEDF890E40B9E800FC2E4B /* ortho.h in Headers */, + 3ACEDF8A0E40B9E800FC2E4B /* polygon_smooth.h in Headers */, + 3ACEDF8B0E40B9E800FC2E4B /* rotate.h in Headers */, + 3ACEDF8C0E40B9E800FC2E4B /* rotateXYZ.h in Headers */, + 3ACEDF8D0E40B9E800FC2E4B /* scale.h in Headers */, + 3ACEDF8E0E40B9E800FC2E4B /* scaleXYZ.h in Headers */, + 3ACEDF8F0E40B9E800FC2E4B /* separator.h in Headers */, + 3ACEDF900E40B9E800FC2E4B /* shearXY.h in Headers */, + 3ACEDF910E40B9E800FC2E4B /* shearXZ.h in Headers */, + 3ACEDF920E40B9E800FC2E4B /* shearYX.h in Headers */, + 3ACEDF930E40B9E800FC2E4B /* shearYZ.h in Headers */, + 3ACEDF940E40B9E800FC2E4B /* shearZX.h in Headers */, + 3ACEDF950E40B9E800FC2E4B /* shearZY.h in Headers */, + 3ACEDF960E40B9E800FC2E4B /* shininess.h in Headers */, + 3ACEDF970E40B9E800FC2E4B /* specular.h in Headers */, + 3ACEDF980E40B9E800FC2E4B /* specularRGB.h in Headers */, + 3ACEDF990E40B9E800FC2E4B /* spline_path.h in Headers */, + 3ACEDF9A0E40B9E800FC2E4B /* translate.h in Headers */, + 3ACEDF9B0E40B9E800FC2E4B /* translateXYZ.h in Headers */, + 3ACEDF9C0E40B9E800FC2E4B /* vertex_program.h in Headers */, + 3ACEDF9D0E40B9E800FC2E4B /* light.h in Headers */, + 3ACEDF9E0E40B9E800FC2E4B /* spot_light.h in Headers */, + 3ACEDF9F0E40B9E800FC2E4B /* world_light.h in Headers */, + 3ACEDFA00E40B9E800FC2E4B /* GEMglAccum.h in Headers */, + 3ACEDFA10E40B9E800FC2E4B /* GEMglActiveTextureARB.h in Headers */, + 3ACEDFA20E40B9E800FC2E4B /* GEMglAlphaFunc.h in Headers */, + 3ACEDFA30E40B9E800FC2E4B /* GEMglAreTexturesResident.h in Headers */, + 3ACEDFA40E40B9E800FC2E4B /* GEMglArrayElement.h in Headers */, + 3ACEDFA50E40B9E800FC2E4B /* GEMglBegin.h in Headers */, + 3ACEDFA60E40B9E800FC2E4B /* GEMglBindProgramARB.h in Headers */, + 3ACEDFA70E40B9E800FC2E4B /* GEMglBindTexture.h in Headers */, + 3ACEDFA80E40B9E800FC2E4B /* GEMglBitmap.h in Headers */, + 3ACEDFA90E40B9E800FC2E4B /* GEMglBlendEquation.h in Headers */, + 3ACEDFAA0E40B9E800FC2E4B /* GEMglBlendFunc.h in Headers */, + 3ACEDFAB0E40B9E800FC2E4B /* GEMglCallList.h in Headers */, + 3ACEDFAC0E40B9E800FC2E4B /* GEMglClear.h in Headers */, + 3ACEDFAD0E40B9E800FC2E4B /* GEMglClearAccum.h in Headers */, + 3ACEDFAE0E40B9E800FC2E4B /* GEMglClearColor.h in Headers */, + 3ACEDFAF0E40B9E800FC2E4B /* GEMglClearDepth.h in Headers */, + 3ACEDFB00E40B9E800FC2E4B /* GEMglClearIndex.h in Headers */, + 3ACEDFB10E40B9E800FC2E4B /* GEMglClearStencil.h in Headers */, + 3ACEDFB20E40B9E800FC2E4B /* GEMglClipPlane.h in Headers */, + 3ACEDFB30E40B9E800FC2E4B /* GEMglColor3b.h in Headers */, + 3ACEDFB40E40B9E800FC2E4B /* GEMglColor3bv.h in Headers */, + 3ACEDFB50E40B9E800FC2E4B /* GEMglColor3d.h in Headers */, + 3ACEDFB60E40B9E800FC2E4B /* GEMglColor3dv.h in Headers */, + 3ACEDFB70E40B9E800FC2E4B /* GEMglColor3f.h in Headers */, + 3ACEDFB80E40B9E800FC2E4B /* GEMglColor3fv.h in Headers */, + 3ACEDFB90E40B9E800FC2E4B /* GEMglColor3i.h in Headers */, + 3ACEDFBA0E40B9E800FC2E4B /* GEMglColor3iv.h in Headers */, + 3ACEDFBB0E40B9E800FC2E4B /* GEMglColor3s.h in Headers */, + 3ACEDFBC0E40B9E800FC2E4B /* GEMglColor3sv.h in Headers */, + 3ACEDFBD0E40B9E800FC2E4B /* GEMglColor3ub.h in Headers */, + 3ACEDFBE0E40B9E800FC2E4B /* GEMglColor3ubv.h in Headers */, + 3ACEDFBF0E40B9E800FC2E4B /* GEMglColor3ui.h in Headers */, + 3ACEDFC00E40B9E800FC2E4B /* GEMglColor3uiv.h in Headers */, + 3ACEDFC10E40B9E800FC2E4B /* GEMglColor3us.h in Headers */, + 3ACEDFC20E40B9E800FC2E4B /* GEMglColor3usv.h in Headers */, + 3ACEDFC30E40B9E800FC2E4B /* GEMglColor4b.h in Headers */, + 3ACEDFC40E40B9E800FC2E4B /* GEMglColor4bv.h in Headers */, + 3ACEDFC50E40B9E800FC2E4B /* GEMglColor4d.h in Headers */, + 3ACEDFC60E40B9E800FC2E4B /* GEMglColor4dv.h in Headers */, + 3ACEDFC70E40B9E800FC2E4B /* GEMglColor4f.h in Headers */, + 3ACEDFC80E40B9E800FC2E4B /* GEMglColor4fv.h in Headers */, + 3ACEDFC90E40B9E800FC2E4B /* GEMglColor4i.h in Headers */, + 3ACEDFCA0E40B9E800FC2E4B /* GEMglColor4iv.h in Headers */, + 3ACEDFCB0E40B9E800FC2E4B /* GEMglColor4s.h in Headers */, + 3ACEDFCC0E40B9E800FC2E4B /* GEMglColor4sv.h in Headers */, + 3ACEDFCD0E40B9E800FC2E4B /* GEMglColor4ub.h in Headers */, + 3ACEDFCE0E40B9E800FC2E4B /* GEMglColor4ubv.h in Headers */, + 3ACEDFCF0E40B9E800FC2E4B /* GEMglColor4ui.h in Headers */, + 3ACEDFD00E40B9E800FC2E4B /* GEMglColor4uiv.h in Headers */, + 3ACEDFD10E40B9E800FC2E4B /* GEMglColor4us.h in Headers */, + 3ACEDFD20E40B9E800FC2E4B /* GEMglColor4usv.h in Headers */, + 3ACEDFD30E40B9E800FC2E4B /* GEMglColorMask.h in Headers */, + 3ACEDFD40E40B9E800FC2E4B /* GEMglColorMaterial.h in Headers */, + 3ACEDFD50E40B9E800FC2E4B /* GEMglCopyPixels.h in Headers */, + 3ACEDFD60E40B9E800FC2E4B /* GEMglCopyTexImage1D.h in Headers */, + 3ACEDFD70E40B9E800FC2E4B /* GEMglCopyTexImage2D.h in Headers */, + 3ACEDFD80E40B9E800FC2E4B /* GEMglCopyTexSubImage1D.h in Headers */, + 3ACEDFD90E40B9E800FC2E4B /* GEMglCopyTexSubImage2D.h in Headers */, + 3ACEDFDA0E40B9E800FC2E4B /* GEMglCullFace.h in Headers */, + 3ACEDFDB0E40B9E800FC2E4B /* GEMglDeleteTextures.h in Headers */, + 3ACEDFDC0E40B9E800FC2E4B /* GEMglDepthFunc.h in Headers */, + 3ACEDFDD0E40B9E800FC2E4B /* GEMglDepthMask.h in Headers */, + 3ACEDFDE0E40B9E800FC2E4B /* GEMglDepthRange.h in Headers */, + 3ACEDFDF0E40B9E800FC2E4B /* GEMglDisable.h in Headers */, + 3ACEDFE00E40B9E800FC2E4B /* GEMglDisableClientState.h in Headers */, + 3ACEDFE10E40B9E800FC2E4B /* GEMglDrawArrays.h in Headers */, + 3ACEDFE20E40B9E800FC2E4B /* GEMglDrawBuffer.h in Headers */, + 3ACEDFE30E40B9E800FC2E4B /* GEMglDrawElements.h in Headers */, + 3ACEDFE40E40B9E800FC2E4B /* GEMglEdgeFlag.h in Headers */, + 3ACEDFE50E40B9E800FC2E4B /* GEMglEnable.h in Headers */, + 3ACEDFE60E40B9E800FC2E4B /* GEMglEnableClientState.h in Headers */, + 3ACEDFE70E40B9E800FC2E4B /* GEMglEnd.h in Headers */, + 3ACEDFE80E40B9E800FC2E4B /* GEMglEndList.h in Headers */, + 3ACEDFE90E40B9E800FC2E4B /* GEMglEvalCoord1d.h in Headers */, + 3ACEDFEA0E40B9E800FC2E4B /* GEMglEvalCoord1dv.h in Headers */, + 3ACEDFEB0E40B9E800FC2E4B /* GEMglEvalCoord1f.h in Headers */, + 3ACEDFEC0E40B9E800FC2E4B /* GEMglEvalCoord1fv.h in Headers */, + 3ACEDFED0E40B9E800FC2E4B /* GEMglEvalCoord2d.h in Headers */, + 3ACEDFEE0E40B9E800FC2E4B /* GEMglEvalCoord2dv.h in Headers */, + 3ACEDFEF0E40B9E800FC2E4B /* GEMglEvalCoord2f.h in Headers */, + 3ACEDFF00E40B9E800FC2E4B /* GEMglEvalCoord2fv.h in Headers */, + 3ACEDFF10E40B9E800FC2E4B /* GEMglEvalMesh1.h in Headers */, + 3ACEDFF20E40B9E800FC2E4B /* GEMglEvalMesh2.h in Headers */, + 3ACEDFF30E40B9E800FC2E4B /* GEMglEvalPoint1.h in Headers */, + 3ACEDFF40E40B9E800FC2E4B /* GEMglEvalPoint2.h in Headers */, + 3ACEDFF50E40B9E800FC2E4B /* GEMglFeedbackBuffer.h in Headers */, + 3ACEDFF60E40B9E800FC2E4B /* GEMglFinish.h in Headers */, + 3ACEDFF70E40B9E800FC2E4B /* GEMglFlush.h in Headers */, + 3ACEDFF80E40B9E800FC2E4B /* GEMglFogf.h in Headers */, + 3ACEDFF90E40B9E800FC2E4B /* GEMglFogfv.h in Headers */, + 3ACEDFFA0E40B9E800FC2E4B /* GEMglFogi.h in Headers */, + 3ACEDFFB0E40B9E800FC2E4B /* GEMglFogiv.h in Headers */, + 3ACEDFFC0E40B9E800FC2E4B /* GEMglFrontFace.h in Headers */, + 3ACEDFFD0E40B9E800FC2E4B /* GEMglFrustum.h in Headers */, + 3ACEDFFE0E40B9E800FC2E4B /* GEMglGenLists.h in Headers */, + 3ACEDFFF0E40B9E800FC2E4B /* GEMglGenProgramsARB.h in Headers */, + 3ACEE0000E40B9E800FC2E4B /* GEMglGenTextures.h in Headers */, + 3ACEE0010E40B9E800FC2E4B /* GEMglGetError.h in Headers */, + 3ACEE0020E40B9E800FC2E4B /* GEMglGetFloatv.h in Headers */, + 3ACEE0030E40B9E800FC2E4B /* GEMglGetMapdv.h in Headers */, + 3ACEE0040E40B9E800FC2E4B /* GEMglGetMapfv.h in Headers */, + 3ACEE0050E40B9E800FC2E4B /* GEMglGetMapiv.h in Headers */, + 3ACEE0060E40B9E800FC2E4B /* GEMglGetPointerv.h in Headers */, + 3ACEE0070E40B9E800FC2E4B /* GEMglGetString.h in Headers */, + 3ACEE0080E40B9E800FC2E4B /* GEMglHint.h in Headers */, + 3ACEE0090E40B9E800FC2E4B /* GEMglIndexd.h in Headers */, + 3ACEE00A0E40B9E800FC2E4B /* GEMglIndexdv.h in Headers */, + 3ACEE00B0E40B9E800FC2E4B /* GEMglIndexf.h in Headers */, + 3ACEE00C0E40B9E800FC2E4B /* GEMglIndexfv.h in Headers */, + 3ACEE00D0E40B9E800FC2E4B /* GEMglIndexi.h in Headers */, + 3ACEE00E0E40B9E800FC2E4B /* GEMglIndexiv.h in Headers */, + 3ACEE00F0E40B9E800FC2E4B /* GEMglIndexMask.h in Headers */, + 3ACEE0100E40B9E800FC2E4B /* GEMglIndexs.h in Headers */, + 3ACEE0110E40B9E800FC2E4B /* GEMglIndexsv.h in Headers */, + 3ACEE0120E40B9E800FC2E4B /* GEMglIndexub.h in Headers */, + 3ACEE0130E40B9E800FC2E4B /* GEMglIndexubv.h in Headers */, + 3ACEE0140E40B9E800FC2E4B /* GEMglInitNames.h in Headers */, + 3ACEE0150E40B9E800FC2E4B /* GEMglIsEnabled.h in Headers */, + 3ACEE0160E40B9E800FC2E4B /* GEMglIsList.h in Headers */, + 3ACEE0170E40B9E800FC2E4B /* GEMglIsTexture.h in Headers */, + 3ACEE0180E40B9E800FC2E4B /* GEMglLightf.h in Headers */, + 3ACEE0190E40B9E800FC2E4B /* GEMglLighti.h in Headers */, + 3ACEE01A0E40B9E800FC2E4B /* GEMglLightModelf.h in Headers */, + 3ACEE01B0E40B9E800FC2E4B /* GEMglLightModeli.h in Headers */, + 3ACEE01C0E40B9E800FC2E4B /* GEMglLineStipple.h in Headers */, + 3ACEE01D0E40B9E800FC2E4B /* GEMglLineWidth.h in Headers */, + 3ACEE01E0E40B9E800FC2E4B /* GEMglLoadIdentity.h in Headers */, + 3ACEE01F0E40B9E800FC2E4B /* GEMglLoadMatrixd.h in Headers */, + 3ACEE0200E40B9E800FC2E4B /* GEMglLoadMatrixf.h in Headers */, + 3ACEE0210E40B9E800FC2E4B /* GEMglLoadName.h in Headers */, + 3ACEE0220E40B9E800FC2E4B /* GEMglLoadTransposeMatrixd.h in Headers */, + 3ACEE0230E40B9E800FC2E4B /* GEMglLoadTransposeMatrixf.h in Headers */, + 3ACEE0240E40B9E800FC2E4B /* GEMglLogicOp.h in Headers */, + 3ACEE0250E40B9E800FC2E4B /* GEMglMap1d.h in Headers */, + 3ACEE0260E40B9E800FC2E4B /* GEMglMap1f.h in Headers */, + 3ACEE0270E40B9E800FC2E4B /* GEMglMap2d.h in Headers */, + 3ACEE0280E40B9E800FC2E4B /* GEMglMap2f.h in Headers */, + 3ACEE0290E40B9E800FC2E4B /* GEMglMapGrid1d.h in Headers */, + 3ACEE02A0E40B9E800FC2E4B /* GEMglMapGrid1f.h in Headers */, + 3ACEE02B0E40B9E800FC2E4B /* GEMglMapGrid2d.h in Headers */, + 3ACEE02C0E40B9E800FC2E4B /* GEMglMapGrid2f.h in Headers */, + 3ACEE02D0E40B9E800FC2E4B /* GEMglMaterialf.h in Headers */, + 3ACEE02E0E40B9E800FC2E4B /* GEMglMateriali.h in Headers */, + 3ACEE02F0E40B9E800FC2E4B /* GEMglMatrixMode.h in Headers */, + 3ACEE0300E40B9E800FC2E4B /* GEMglMultiTexCoord2fARB.h in Headers */, + 3ACEE0310E40B9E800FC2E4B /* GEMglMultMatrixd.h in Headers */, + 3ACEE0320E40B9E800FC2E4B /* GEMglMultMatrixf.h in Headers */, + 3ACEE0330E40B9E800FC2E4B /* GEMglMultTransposeMatrixd.h in Headers */, + 3ACEE0340E40B9E800FC2E4B /* GEMglMultTransposeMatrixf.h in Headers */, + 3ACEE0350E40B9E800FC2E4B /* GEMglNewList.h in Headers */, + 3ACEE0360E40B9E800FC2E4B /* GEMglNormal3b.h in Headers */, + 3ACEE0370E40B9E800FC2E4B /* GEMglNormal3bv.h in Headers */, + 3ACEE0380E40B9E800FC2E4B /* GEMglNormal3d.h in Headers */, + 3ACEE0390E40B9E800FC2E4B /* GEMglNormal3dv.h in Headers */, + 3ACEE03A0E40B9E800FC2E4B /* GEMglNormal3f.h in Headers */, + 3ACEE03B0E40B9E800FC2E4B /* GEMglNormal3fv.h in Headers */, + 3ACEE03C0E40B9E800FC2E4B /* GEMglNormal3i.h in Headers */, + 3ACEE03D0E40B9E800FC2E4B /* GEMglNormal3iv.h in Headers */, + 3ACEE03E0E40B9E800FC2E4B /* GEMglNormal3s.h in Headers */, + 3ACEE03F0E40B9E800FC2E4B /* GEMglNormal3sv.h in Headers */, + 3ACEE0400E40B9E800FC2E4B /* GEMglOrtho.h in Headers */, + 3ACEE0410E40B9E800FC2E4B /* GEMglPassThrough.h in Headers */, + 3ACEE0420E40B9E800FC2E4B /* GEMglPixelStoref.h in Headers */, + 3ACEE0430E40B9E800FC2E4B /* GEMglPixelStorei.h in Headers */, + 3ACEE0440E40B9E800FC2E4B /* GEMglPixelTransferf.h in Headers */, + 3ACEE0450E40B9E800FC2E4B /* GEMglPixelTransferi.h in Headers */, + 3ACEE0460E40B9E800FC2E4B /* GEMglPixelZoom.h in Headers */, + 3ACEE0470E40B9E800FC2E4B /* GEMglPointSize.h in Headers */, + 3ACEE0480E40B9E800FC2E4B /* GEMglPolygonMode.h in Headers */, + 3ACEE0490E40B9E800FC2E4B /* GEMglPolygonOffset.h in Headers */, + 3ACEE04A0E40B9E800FC2E4B /* GEMglPopAttrib.h in Headers */, + 3ACEE04B0E40B9E800FC2E4B /* GEMglPopClientAttrib.h in Headers */, + 3ACEE04C0E40B9E800FC2E4B /* GEMglPopMatrix.h in Headers */, + 3ACEE04D0E40B9E800FC2E4B /* GEMglPopName.h in Headers */, + 3ACEE04E0E40B9E800FC2E4B /* GEMglPrioritizeTextures.h in Headers */, + 3ACEE04F0E40B9E800FC2E4B /* GEMglProgramEnvParameter4dARB.h in Headers */, + 3ACEE0500E40B9E800FC2E4B /* GEMglProgramEnvParameter4fvARB.h in Headers */, + 3ACEE0510E40B9E800FC2E4B /* GEMglProgramLocalParameter4fvARB.h in Headers */, + 3ACEE0520E40B9E800FC2E4B /* GEMglProgramStringARB.h in Headers */, + 3ACEE0530E40B9E800FC2E4B /* GEMglPushAttrib.h in Headers */, + 3ACEE0540E40B9E800FC2E4B /* GEMglPushClientAttrib.h in Headers */, + 3ACEE0550E40B9E800FC2E4B /* GEMglPushMatrix.h in Headers */, + 3ACEE0560E40B9E800FC2E4B /* GEMglPushName.h in Headers */, + 3ACEE0570E40B9E800FC2E4B /* GEMglRasterPos2d.h in Headers */, + 3ACEE0580E40B9E800FC2E4B /* GEMglRasterPos2dv.h in Headers */, + 3ACEE0590E40B9E800FC2E4B /* GEMglRasterPos2f.h in Headers */, + 3ACEE05A0E40B9E800FC2E4B /* GEMglRasterPos2fv.h in Headers */, + 3ACEE05B0E40B9E800FC2E4B /* GEMglRasterPos2i.h in Headers */, + 3ACEE05C0E40B9E800FC2E4B /* GEMglRasterPos2iv.h in Headers */, + 3ACEE05D0E40B9E800FC2E4B /* GEMglRasterPos2s.h in Headers */, + 3ACEE05E0E40B9E800FC2E4B /* GEMglRasterPos2sv.h in Headers */, + 3ACEE05F0E40B9E800FC2E4B /* GEMglRasterPos3d.h in Headers */, + 3ACEE0600E40B9E800FC2E4B /* GEMglRasterPos3dv.h in Headers */, + 3ACEE0610E40B9E800FC2E4B /* GEMglRasterPos3f.h in Headers */, + 3ACEE0620E40B9E800FC2E4B /* GEMglRasterPos3fv.h in Headers */, + 3ACEE0630E40B9E800FC2E4B /* GEMglRasterPos3i.h in Headers */, + 3ACEE0640E40B9E800FC2E4B /* GEMglRasterPos3iv.h in Headers */, + 3ACEE0650E40B9E800FC2E4B /* GEMglRasterPos3s.h in Headers */, + 3ACEE0660E40B9E800FC2E4B /* GEMglRasterPos3sv.h in Headers */, + 3ACEE0670E40B9E800FC2E4B /* GEMglRasterPos4d.h in Headers */, + 3ACEE0680E40B9E800FC2E4B /* GEMglRasterPos4dv.h in Headers */, + 3ACEE0690E40B9E800FC2E4B /* GEMglRasterPos4f.h in Headers */, + 3ACEE06A0E40B9E800FC2E4B /* GEMglRasterPos4fv.h in Headers */, + 3ACEE06B0E40B9E800FC2E4B /* GEMglRasterPos4i.h in Headers */, + 3ACEE06C0E40B9E800FC2E4B /* GEMglRasterPos4iv.h in Headers */, + 3ACEE06D0E40B9E800FC2E4B /* GEMglRasterPos4s.h in Headers */, + 3ACEE06E0E40B9E800FC2E4B /* GEMglRasterPos4sv.h in Headers */, + 3ACEE06F0E40B9E800FC2E4B /* GEMglRectd.h in Headers */, + 3ACEE0700E40B9E800FC2E4B /* GEMglRectf.h in Headers */, + 3ACEE0710E40B9E800FC2E4B /* GEMglRecti.h in Headers */, + 3ACEE0720E40B9E800FC2E4B /* GEMglRects.h in Headers */, + 3ACEE0730E40B9E800FC2E4B /* GEMglRenderMode.h in Headers */, + 3ACEE0740E40B9E800FC2E4B /* GEMglReportError.h in Headers */, + 3ACEE0750E40B9E800FC2E4B /* GEMglRotated.h in Headers */, + 3ACEE0760E40B9E800FC2E4B /* GEMglRotatef.h in Headers */, + 3ACEE0770E40B9E800FC2E4B /* GEMglScaled.h in Headers */, + 3ACEE0780E40B9E800FC2E4B /* GEMglScalef.h in Headers */, + 3ACEE0790E40B9E800FC2E4B /* GEMglScissor.h in Headers */, + 3ACEE07A0E40B9E800FC2E4B /* GEMglSelectBuffer.h in Headers */, + 3ACEE07B0E40B9E800FC2E4B /* GEMglShadeModel.h in Headers */, + 3ACEE07C0E40B9E800FC2E4B /* GEMglStencilFunc.h in Headers */, + 3ACEE07D0E40B9E800FC2E4B /* GEMglStencilMask.h in Headers */, + 3ACEE07E0E40B9E800FC2E4B /* GEMglStencilOp.h in Headers */, + 3ACEE07F0E40B9E800FC2E4B /* GEMglTexCoord1d.h in Headers */, + 3ACEE0800E40B9E800FC2E4B /* GEMglTexCoord1dv.h in Headers */, + 3ACEE0810E40B9E800FC2E4B /* GEMglTexCoord1f.h in Headers */, + 3ACEE0820E40B9E800FC2E4B /* GEMglTexCoord1fv.h in Headers */, + 3ACEE0830E40B9E800FC2E4B /* GEMglTexCoord1i.h in Headers */, + 3ACEE0840E40B9E800FC2E4B /* GEMglTexCoord1iv.h in Headers */, + 3ACEE0850E40B9E800FC2E4B /* GEMglTexCoord1s.h in Headers */, + 3ACEE0860E40B9E800FC2E4B /* GEMglTexCoord1sv.h in Headers */, + 3ACEE0870E40B9E800FC2E4B /* GEMglTexCoord2d.h in Headers */, + 3ACEE0880E40B9E800FC2E4B /* GEMglTexCoord2dv.h in Headers */, + 3ACEE0890E40B9E800FC2E4B /* GEMglTexCoord2f.h in Headers */, + 3ACEE08A0E40B9E800FC2E4B /* GEMglTexCoord2fv.h in Headers */, + 3ACEE08B0E40B9E800FC2E4B /* GEMglTexCoord2i.h in Headers */, + 3ACEE08C0E40B9E800FC2E4B /* GEMglTexCoord2iv.h in Headers */, + 3ACEE08D0E40B9E800FC2E4B /* GEMglTexCoord2s.h in Headers */, + 3ACEE08E0E40B9E800FC2E4B /* GEMglTexCoord2sv.h in Headers */, + 3ACEE08F0E40B9E800FC2E4B /* GEMglTexCoord3d.h in Headers */, + 3ACEE0900E40B9E800FC2E4B /* GEMglTexCoord3dv.h in Headers */, + 3ACEE0910E40B9E800FC2E4B /* GEMglTexCoord3f.h in Headers */, + 3ACEE0920E40B9E800FC2E4B /* GEMglTexCoord3fv.h in Headers */, + 3ACEE0930E40B9E800FC2E4B /* GEMglTexCoord3i.h in Headers */, + 3ACEE0940E40B9E800FC2E4B /* GEMglTexCoord3iv.h in Headers */, + 3ACEE0950E40B9E800FC2E4B /* GEMglTexCoord3s.h in Headers */, + 3ACEE0960E40B9E800FC2E4B /* GEMglTexCoord3sv.h in Headers */, + 3ACEE0970E40B9E800FC2E4B /* GEMglTexCoord4d.h in Headers */, + 3ACEE0980E40B9E800FC2E4B /* GEMglTexCoord4dv.h in Headers */, + 3ACEE0990E40B9E800FC2E4B /* GEMglTexCoord4f.h in Headers */, + 3ACEE09A0E40B9E800FC2E4B /* GEMglTexCoord4fv.h in Headers */, + 3ACEE09B0E40B9E800FC2E4B /* GEMglTexCoord4i.h in Headers */, + 3ACEE09C0E40B9E800FC2E4B /* GEMglTexCoord4iv.h in Headers */, + 3ACEE09D0E40B9E800FC2E4B /* GEMglTexCoord4s.h in Headers */, + 3ACEE09E0E40B9E800FC2E4B /* GEMglTexCoord4sv.h in Headers */, + 3ACEE09F0E40B9E800FC2E4B /* GEMglTexEnvf.h in Headers */, + 3ACEE0A00E40B9E800FC2E4B /* GEMglTexEnvi.h in Headers */, + 3ACEE0A10E40B9E800FC2E4B /* GEMglTexGend.h in Headers */, + 3ACEE0A20E40B9E800FC2E4B /* GEMglTexGenf.h in Headers */, + 3ACEE0A30E40B9E800FC2E4B /* GEMglTexGenfv.h in Headers */, + 3ACEE0A40E40B9E800FC2E4B /* GEMglTexGeni.h in Headers */, + 3ACEE0A50E40B9E800FC2E4B /* GEMglTexParameterf.h in Headers */, + 3ACEE0A60E40B9E800FC2E4B /* GEMglTexParameteri.h in Headers */, + 3ACEE0A70E40B9E800FC2E4B /* GEMglTexSubImage1D.h in Headers */, + 3ACEE0A80E40B9E800FC2E4B /* GEMglTexSubImage2D.h in Headers */, + 3ACEE0A90E40B9E800FC2E4B /* GEMglTranslated.h in Headers */, + 3ACEE0AA0E40B9E800FC2E4B /* GEMglTranslatef.h in Headers */, + 3ACEE0AB0E40B9E800FC2E4B /* GEMglUniform1fARB.h in Headers */, + 3ACEE0AC0E40B9E800FC2E4B /* GEMgluPerspective.h in Headers */, + 3ACEE0AD0E40B9E800FC2E4B /* GEMglUseProgramObjectARB.h in Headers */, + 3ACEE0AE0E40B9E800FC2E4B /* GEMglVertex2d.h in Headers */, + 3ACEE0AF0E40B9E800FC2E4B /* GEMglVertex2dv.h in Headers */, + 3ACEE0B00E40B9E800FC2E4B /* GEMglVertex2f.h in Headers */, + 3ACEE0B10E40B9E800FC2E4B /* GEMglVertex2fv.h in Headers */, + 3ACEE0B20E40B9E800FC2E4B /* GEMglVertex2i.h in Headers */, + 3ACEE0B30E40B9E800FC2E4B /* GEMglVertex2iv.h in Headers */, + 3ACEE0B40E40B9E800FC2E4B /* GEMglVertex2s.h in Headers */, + 3ACEE0B50E40B9E800FC2E4B /* GEMglVertex2sv.h in Headers */, + 3ACEE0B60E40B9E800FC2E4B /* GEMglVertex3d.h in Headers */, + 3ACEE0B70E40B9E800FC2E4B /* GEMglVertex3dv.h in Headers */, + 3ACEE0B80E40B9E800FC2E4B /* GEMglVertex3f.h in Headers */, + 3ACEE0B90E40B9E800FC2E4B /* GEMglVertex3fv.h in Headers */, + 3ACEE0BA0E40B9E800FC2E4B /* GEMglVertex3i.h in Headers */, + 3ACEE0BB0E40B9E800FC2E4B /* GEMglVertex3iv.h in Headers */, + 3ACEE0BC0E40B9E800FC2E4B /* GEMglVertex3s.h in Headers */, + 3ACEE0BD0E40B9E800FC2E4B /* GEMglVertex3sv.h in Headers */, + 3ACEE0BE0E40B9E800FC2E4B /* GEMglVertex4d.h in Headers */, + 3ACEE0BF0E40B9E800FC2E4B /* GEMglVertex4dv.h in Headers */, + 3ACEE0C00E40B9E800FC2E4B /* GEMglVertex4f.h in Headers */, + 3ACEE0C10E40B9E800FC2E4B /* GEMglVertex4fv.h in Headers */, + 3ACEE0C20E40B9E800FC2E4B /* GEMglVertex4i.h in Headers */, + 3ACEE0C30E40B9E800FC2E4B /* GEMglVertex4iv.h in Headers */, + 3ACEE0C40E40B9E800FC2E4B /* GEMglVertex4s.h in Headers */, + 3ACEE0C50E40B9E800FC2E4B /* GEMglVertex4sv.h in Headers */, + 3ACEE0C60E40B9E800FC2E4B /* GEMglViewport.h in Headers */, + 3ACEE0C70E40B9E800FC2E4B /* GLdefine.h in Headers */, + 3ACEE0C80E40B9E800FC2E4B /* papi.h in Headers */, + 3ACEE0C90E40B9E800FC2E4B /* part_color.h in Headers */, + 3ACEE0CA0E40B9E800FC2E4B /* part_damp.h in Headers */, + 3ACEE0CB0E40B9E800FC2E4B /* part_draw.h in Headers */, + 3ACEE0CC0E40B9E800FC2E4B /* part_follow.h in Headers */, + 3ACEE0CD0E40B9E800FC2E4B /* part_gravity.h in Headers */, + 3ACEE0CE0E40B9E800FC2E4B /* part_head.h in Headers */, + 3ACEE0CF0E40B9E800FC2E4B /* part_info.h in Headers */, + 3ACEE0D00E40B9E800FC2E4B /* part_killold.h in Headers */, + 3ACEE0D10E40B9E800FC2E4B /* part_killslow.h in Headers */, + 3ACEE0D20E40B9E800FC2E4B /* part_orbitpoint.h in Headers */, + 3ACEE0D30E40B9E800FC2E4B /* part_render.h in Headers */, + 3ACEE0D40E40B9E800FC2E4B /* part_sink.h in Headers */, + 3ACEE0D50E40B9E800FC2E4B /* part_size.h in Headers */, + 3ACEE0D60E40B9E800FC2E4B /* part_source.h in Headers */, + 3ACEE0D70E40B9E800FC2E4B /* part_targetcolor.h in Headers */, + 3ACEE0D80E40B9E800FC2E4B /* part_targetsize.h in Headers */, + 3ACEE0D90E40B9E800FC2E4B /* part_velcone.h in Headers */, + 3ACEE0DA0E40B9E800FC2E4B /* part_velocity.h in Headers */, + 3ACEE0DB0E40B9E800FC2E4B /* part_velsphere.h in Headers */, + 3ACEE0DC0E40B9E800FC2E4B /* part_vertex.h in Headers */, + 3ACEE0DD0E40B9E800FC2E4B /* partlib_general.h in Headers */, + 3ACEE0DE0E40B9E800FC2E4B /* partlib_vector.h in Headers */, + 3ACEE0DF0E40B9E800FC2E4B /* film.h in Headers */, + 3ACEE0E00E40B9E800FC2E4B /* filmDarwin.h in Headers */, + 3ACEE0E10E40B9E800FC2E4B /* filmQT.h in Headers */, + 3ACEE0E20E40B9E800FC2E4B /* FreeFrame.h in Headers */, + 3ACEE0E30E40B9E800FC2E4B /* libfidtrack_fidtrackX.h in Headers */, + 3ACEE0E40E40B9E800FC2E4B /* libfidtrack_segment.h in Headers */, + 3ACEE0E50E40B9E800FC2E4B /* libfidtrack_treeidmap.h in Headers */, + 3ACEE0E60E40B9E800FC2E4B /* pix_2grey.h in Headers */, + 3ACEE0E70E40B9E800FC2E4B /* pix_a_2grey.h in Headers */, + 3ACEE0E80E40B9E800FC2E4B /* pix_add.h in Headers */, + 3ACEE0E90E40B9E800FC2E4B /* pix_aging.h in Headers */, + 3ACEE0EA0E40B9E800FC2E4B /* pix_alpha.h in Headers */, + 3ACEE0EB0E40B9E800FC2E4B /* pix_artoolkit.h in Headers */, + 3ACEE0EC0E40B9E800FC2E4B /* pix_background.h in Headers */, + 3ACEE0ED0E40B9E800FC2E4B /* pix_backlight.h in Headers */, + 3ACEE0EE0E40B9E800FC2E4B /* pix_biquad.h in Headers */, + 3ACEE0EF0E40B9E800FC2E4B /* pix_bitmask.h in Headers */, + 3ACEE0F00E40B9E800FC2E4B /* pix_blob.h in Headers */, + 3ACEE0F10E40B9E800FC2E4B /* pix_blur.h in Headers */, + 3ACEE0F20E40B9E800FC2E4B /* pix_buf.h in Headers */, + 3ACEE0F30E40B9E800FC2E4B /* pix_buffer_read.h in Headers */, + 3ACEE0F40E40B9E800FC2E4B /* pix_buffer_write.h in Headers */, + 3ACEE0F50E40B9E800FC2E4B /* pix_buffer.h in Headers */, + 3ACEE0F60E40B9E800FC2E4B /* pix_chroma_key.h in Headers */, + 3ACEE0F70E40B9E800FC2E4B /* pix_clearblock.h in Headers */, + 3ACEE0F80E40B9E800FC2E4B /* pix_color.h in Headers */, + 3ACEE0F90E40B9E800FC2E4B /* pix_coloralpha.h in Headers */, + 3ACEE0FA0E40B9E800FC2E4B /* pix_colormatrix.h in Headers */, + 3ACEE0FB0E40B9E800FC2E4B /* pix_colorreduce.h in Headers */, + 3ACEE0FC0E40B9E800FC2E4B /* pix_compare.h in Headers */, + 3ACEE0FD0E40B9E800FC2E4B /* pix_composite.h in Headers */, + 3ACEE0FE0E40B9E800FC2E4B /* pix_contrast.h in Headers */, + 3ACEE0FF0E40B9E800FC2E4B /* pix_convert.h in Headers */, + 3ACEE1000E40B9E800FC2E4B /* pix_convolve.h in Headers */, + 3ACEE1010E40B9E800FC2E4B /* pix_coordinate.h in Headers */, + 3ACEE1020E40B9E800FC2E4B /* pix_crop.h in Headers */, + 3ACEE1030E40B9E800FC2E4B /* pix_curve.h in Headers */, + 3ACEE1040E40B9E800FC2E4B /* pix_data.h in Headers */, + 3ACEE1050E40B9E800FC2E4B /* pix_deinterlace.h in Headers */, + 3ACEE1060E40B9E800FC2E4B /* pix_delay.h in Headers */, + 3ACEE1070E40B9E800FC2E4B /* pix_diff.h in Headers */, + 3ACEE1080E40B9E800FC2E4B /* pix_dot.h in Headers */, + 3ACEE1090E40B9E800FC2E4B /* pix_draw.h in Headers */, + 3ACEE10A0E40B9E800FC2E4B /* pix_dump.h in Headers */, + 3ACEE10B0E40B9E800FC2E4B /* pix_duotone.h in Headers */, + 3ACEE10C0E40B9E800FC2E4B /* pix_emboss.h in Headers */, + 3ACEE10D0E40B9E800FC2E4B /* pix_fiducialtrack.h in Headers */, + 3ACEE10E0E40B9E800FC2E4B /* pix_film.h in Headers */, + 3ACEE10F0E40B9E800FC2E4B /* pix_filmDarwin.h in Headers */, + 3ACEE1110E40B9E800FC2E4B /* pix_filmNT.h in Headers */, + 3ACEE1120E40B9E800FC2E4B /* pix_filmQT.h in Headers */, + 3ACEE1130E40B9E800FC2E4B /* pix_flip.h in Headers */, + 3ACEE1140E40B9E800FC2E4B /* pix_freeframe.h in Headers */, + 3ACEE1150E40B9E800FC2E4B /* pix_gain.h in Headers */, + 3ACEE1160E40B9E800FC2E4B /* pix_grey.h in Headers */, + 3ACEE1170E40B9E800FC2E4B /* pix_halftone.h in Headers */, + 3ACEE1180E40B9E800FC2E4B /* pix_histo.h in Headers */, + 3ACEE1190E40B9E800FC2E4B /* pix_hit.h in Headers */, + 3ACEE11A0E40B9E800FC2E4B /* pix_hsv2rgb.h in Headers */, + 3ACEE11B0E40B9E800FC2E4B /* pix_image.h in Headers */, + 3ACEE11C0E40B9E800FC2E4B /* pix_imageInPlace.h in Headers */, + 3ACEE11D0E40B9E800FC2E4B /* pix_indycam.h in Headers */, + 3ACEE11E0E40B9E800FC2E4B /* pix_info.h in Headers */, + 3ACEE11F0E40B9E800FC2E4B /* pix_invert.h in Headers */, + 3ACEE1200E40B9E800FC2E4B /* pix_kaleidoscope.h in Headers */, + 3ACEE1210E40B9E800FC2E4B /* pix_levels.h in Headers */, + 3ACEE1220E40B9E800FC2E4B /* pix_lumaoffset.h in Headers */, + 3ACEE1230E40B9E800FC2E4B /* pix_mask.h in Headers */, + 3ACEE1240E40B9E800FC2E4B /* pix_mean_color.h in Headers */, + 3ACEE1250E40B9E800FC2E4B /* pix_metaimage.h in Headers */, + 3ACEE1260E40B9E800FC2E4B /* pix_mix.h in Headers */, + 3ACEE1270E40B9E800FC2E4B /* pix_motionblur.h in Headers */, + 3ACEE1280E40B9E800FC2E4B /* pix_movement.h in Headers */, + 3ACEE1290E40B9E800FC2E4B /* pix_movement2.h in Headers */, + 3ACEE12A0E40B9E800FC2E4B /* pix_movie.h in Headers */, + 3ACEE12B0E40B9E800FC2E4B /* pix_movieDarwin.h in Headers */, + 3ACEE12C0E40B9E800FC2E4B /* pix_multiblob.h in Headers */, + 3ACEE12D0E40B9E800FC2E4B /* pix_multiimage.h in Headers */, + 3ACEE12E0E40B9E800FC2E4B /* pix_multiply.h in Headers */, + 3ACEE12F0E40B9E800FC2E4B /* pix_multitexture.h in Headers */, + 3ACEE1300E40B9E800FC2E4B /* pix_normalize.h in Headers */, + 3ACEE1310E40B9E800FC2E4B /* pix_offset.h in Headers */, + 3ACEE1320E40B9E800FC2E4B /* pix_pix2sig.h in Headers */, + 3ACEE1330E40B9E800FC2E4B /* pix_posterize.h in Headers */, + 3ACEE1340E40B9E800FC2E4B /* pix_puzzle.h in Headers */, + 3ACEE1350E40B9E800FC2E4B /* pix_rds.h in Headers */, + 3ACEE1360E40B9E800FC2E4B /* pix_record.h in Headers */, + 3ACEE1370E40B9E800FC2E4B /* pix_recordQT.h in Headers */, + 3ACEE1380E40B9E800FC2E4B /* pix_rectangle.h in Headers */, + 3ACEE1390E40B9E800FC2E4B /* pix_refraction.h in Headers */, + 3ACEE13A0E40B9E800FC2E4B /* pix_resize.h in Headers */, + 3ACEE13B0E40B9E800FC2E4B /* pix_rgb2hsv.h in Headers */, + 3ACEE13C0E40B9E800FC2E4B /* pix_rgba.h in Headers */, + 3ACEE13D0E40B9E800FC2E4B /* pix_roll.h in Headers */, + 3ACEE13E0E40B9E800FC2E4B /* pix_rtx.h in Headers */, + 3ACEE13F0E40B9E800FC2E4B /* pix_scanline.h in Headers */, + 3ACEE1400E40B9E800FC2E4B /* pix_set.h in Headers */, + 3ACEE1410E40B9E800FC2E4B /* pix_share_read.h in Headers */, + 3ACEE1420E40B9E800FC2E4B /* pix_share_write.h in Headers */, + 3ACEE1430E40B9E800FC2E4B /* pix_share.h in Headers */, + 3ACEE1440E40B9E800FC2E4B /* pix_sig2pix.h in Headers */, + 3ACEE1450E40B9E800FC2E4B /* pix_snap.h in Headers */, + 3ACEE1460E40B9E800FC2E4B /* pix_snap2tex.h in Headers */, + 3ACEE1470E40B9E800FC2E4B /* pix_subtract.h in Headers */, + 3ACEE1480E40B9E800FC2E4B /* pix_takealpha.h in Headers */, + 3ACEE1490E40B9E800FC2E4B /* pix_test.h in Headers */, + 3ACEE14A0E40B9E800FC2E4B /* pix_texture.h in Headers */, + 3ACEE14B0E40B9E800FC2E4B /* pix_threshold_bernsen.h in Headers */, + 3ACEE14C0E40B9E800FC2E4B /* pix_threshold.h in Headers */, + 3ACEE14D0E40B9E800FC2E4B /* pix_tIIR.h in Headers */, + 3ACEE14F0E40B9E800FC2E4B /* pix_videoDarwin.h in Headers */, + 3ACEE1500E40B9E800FC2E4B /* pix_vpaint.h in Headers */, + 3ACEE1510E40B9E800FC2E4B /* pix_write.h in Headers */, + 3ACEE1520E40B9E800FC2E4B /* pix_yuv.h in Headers */, + 3ACEE1530E40B9E800FC2E4B /* pix_zoom.h in Headers */, + 3ACEE1540E40B9E800FC2E4B /* record.h in Headers */, + 3ACEE1550E40B9E800FC2E4B /* recordQT.h in Headers */, + 3ACEE1560E40B9E800FC2E4B /* glVBO_ext.h in Headers */, + 3ACEE1570E40B9E800FC2E4B /* vertex_add.h in Headers */, + 3ACEE1580E40B9E800FC2E4B /* vertex_combine.h in Headers */, + 3ACEE1590E40B9E800FC2E4B /* vertex_draw.h in Headers */, + 3ACEE15A0E40B9E800FC2E4B /* vertex_grid.h in Headers */, + 3ACEE15B0E40B9E800FC2E4B /* vertex_info.h in Headers */, + 3ACEE15C0E40B9E800FC2E4B /* vertex_model.h in Headers */, + 3ACEE15D0E40B9E800FC2E4B /* vertex_mul.h in Headers */, + 3ACEE15E0E40B9E800FC2E4B /* vertex_offset.h in Headers */, + 3ACEE15F0E40B9E800FC2E4B /* vertex_quad.h in Headers */, + 3ACEE1600E40B9E800FC2E4B /* vertex_scale.h in Headers */, + 3ACEE1610E40B9E800FC2E4B /* vertex_set.h in Headers */, + 3ACEE1620E40B9E800FC2E4B /* vertex_tabread.h in Headers */, + 3AE073950EB8A2CA00223BA6 /* pix_filmOS.h in Headers */, + 3AE0739B0EB8A31300223BA6 /* pix_movieOS.h in Headers */, + 3AE073A10EB8A34600223BA6 /* pix_videoOS.h in Headers */, + 3A6DFE4F0FD528780019C977 /* GEMglMaterialfv.h in Headers */, + 3A6DFE550FD528920019C977 /* GEMgluLookAt.h in Headers */, + 3A6DFE580FD528A30019C977 /* GemGLBase.h in Headers */, + 3A6DFE620FD528CF0019C977 /* GemContext.h in Headers */, + 3A6DFE640FD528CF0019C977 /* GemContextData.h in Headers */, + 3A6DFE670FD528E80019C977 /* GemGLUtil_generated.h in Headers */, + 3A6DFE6D0FD5294F0019C977 /* glsl_geometry.h in Headers */, + 3A6DFE730FD529880019C977 /* pix_writer.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FD5047A30856671F00AF77DC /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + FD5047A40856671F00AF77DC /* CPPExtern.h in Headers */, + FD5047A50856671F00AF77DC /* GemBase.h in Headers */, + FD5047A60856671F00AF77DC /* GemCache.h in Headers */, + FD5047A70856671F00AF77DC /* GemEvent.h in Headers */, + FD5047A80856671F00AF77DC /* GemExportDef.h in Headers */, + FD5047A90856671F00AF77DC /* GemFuncUtil.h in Headers */, + FD5047AA0856671F00AF77DC /* GemGluObj.h in Headers */, + FD5047AB0856671F00AF77DC /* GemGLUtil.h in Headers */, + FD5047AC0856671F00AF77DC /* GemLoadObj.h in Headers */, + FD5047AD0856671F00AF77DC /* GemMan.h in Headers */, + FD5047AE0856671F00AF77DC /* GemPathBase.h in Headers */, + FD5047AF0856671F00AF77DC /* GemPixDualObj.h in Headers */, + FD5047B00856671F00AF77DC /* GemPixImageLoad.h in Headers */, + FD5047B10856671F00AF77DC /* GemPixObj.h in Headers */, + FD5047B20856671F00AF77DC /* GemPixUtil.h in Headers */, + FD5047B30856671F00AF77DC /* GemShape.h in Headers */, + FD5047B40856671F00AF77DC /* GemState.h in Headers */, + FD5047B50856671F00AF77DC /* GemVersion.h in Headers */, + FD5047B60856671F00AF77DC /* GemWinCreate.h in Headers */, + FD5047B70856671F00AF77DC /* Matrix.h in Headers */, + FD5047B80856671F00AF77DC /* TextBase.h in Headers */, + FD5047B90856671F00AF77DC /* gemhead.h in Headers */, + FD5047BA0856671F00AF77DC /* gemkeyboard.h in Headers */, + FD5047BB0856671F00AF77DC /* gemkeyname.h in Headers */, + FD5047BE0856671F00AF77DC /* render_trigger.h in Headers */, + FD5047C30856671F00AF77DC /* GemPixImageSave.h in Headers */, + FD5047C40856671F00AF77DC /* FTBBox.h in Headers */, + FD5047C50856671F00AF77DC /* FTBitmapGlyph.h in Headers */, + FD5047C60856671F00AF77DC /* FTCharmap.h in Headers */, + FD5047C70856671F00AF77DC /* FTCharToGlyphIndexMap.h in Headers */, + FD5047C80856671F00AF77DC /* FTContour.h in Headers */, + FD5047C90856671F00AF77DC /* FTExtrdGlyph.h in Headers */, + FD5047CA0856671F00AF77DC /* FTFace.h in Headers */, + FD5047CB0856671F00AF77DC /* FTFont.h in Headers */, + FD5047CC0856671F00AF77DC /* FTGL.h in Headers */, + FD5047CD0856671F00AF77DC /* FTGLBitmapFont.h in Headers */, + FD5047CE0856671F00AF77DC /* FTGLExtrdFont.h in Headers */, + FD5047CF0856671F00AF77DC /* FTGLOutlineFont.h in Headers */, + FD5047D00856671F00AF77DC /* FTGLPixmapFont.h in Headers */, + FD5047D10856671F00AF77DC /* FTGLPolygonFont.h in Headers */, + FD5047D20856671F00AF77DC /* FTGLTextureFont.h in Headers */, + FD5047D30856671F00AF77DC /* FTGlyph.h in Headers */, + FD5047D40856671F00AF77DC /* FTGlyphContainer.h in Headers */, + FD5047D50856671F00AF77DC /* FTLibrary.h in Headers */, + FD5047D60856671F00AF77DC /* FTList.h in Headers */, + FD5047D70856671F00AF77DC /* FTOutlineGlyph.h in Headers */, + FD5047D80856671F00AF77DC /* FTPixmapGlyph.h in Headers */, + FD5047D90856671F00AF77DC /* FTPoint.h in Headers */, + FD5047DA0856671F00AF77DC /* FTPolyGlyph.h in Headers */, + FD5047DB0856671F00AF77DC /* FTSize.h in Headers */, + FD5047DC0856671F00AF77DC /* FTTextureGlyph.h in Headers */, + FD5047DD0856671F00AF77DC /* FTVector.h in Headers */, + FD5047DE0856671F00AF77DC /* FTVectoriser.h in Headers */, + FD5047DF0856671F00AF77DC /* config.h in Headers */, + FD5047E00856671F00AF77DC /* configDarwin.h in Headers */, + FD5047E10856671F00AF77DC /* GemPixPete.h in Headers */, + FD5047E20856671F00AF77DC /* GemSIMD.h in Headers */, + FD5049B70856672000AF77DC /* GemModelData.h in Headers */, + FD5049B80856672000AF77DC /* sgiimage.h in Headers */, + FD2F4EAA08F458E2008F3CED /* GemGL.h in Headers */, + 3AB0D86D0E4095E700AF570A /* GemLoaders.h in Headers */, + 3AB0D86F0E4095E700AF570A /* GemMath.h in Headers */, + 3AB0D8720E4095E700AF570A /* GemPBuffer.h in Headers */, + 3AB0D8730E4095E700AF570A /* GemPixConvert.h in Headers */, + 3AB0D8780E4095E700AF570A /* GemVector.h in Headers */, + 3AB0D87A0E4095E700AF570A /* GemVertex.h in Headers */, + 3AB0D87E0E40963500AF570A /* glew.h in Headers */, + 3AB0D8920E40967400AF570A /* gemframebuffer.h in Headers */, + 3AB0D8960E40967400AF570A /* gemlist_info.h in Headers */, + 3AB0D8980E40967400AF570A /* gemlist_matrix.h in Headers */, + 3AB0D89A0E40967400AF570A /* gemlist.h in Headers */, + 3AB0D89C0E40967400AF570A /* gemmouse.h in Headers */, + 3AB0D89E0E40967400AF570A /* gemreceive.h in Headers */, + 3AB0D8A00E40967400AF570A /* gemwin.h in Headers */, + 3AB0D8EE0E4096A300AF570A /* circle.h in Headers */, + 3AB0D8F00E4096A300AF570A /* colorSquare.h in Headers */, + 3AB0D8F20E4096A300AF570A /* cone.h in Headers */, + 3AB0D8F40E4096A300AF570A /* cube.h in Headers */, + 3AB0D8F60E4096A300AF570A /* cuboid.h in Headers */, + 3AB0D8F80E4096A300AF570A /* curve.h in Headers */, + 3AB0D8FA0E4096A300AF570A /* curve3d.h in Headers */, + 3AB0D8FC0E4096A300AF570A /* cylinder.h in Headers */, + 3AB0D8FE0E4096A300AF570A /* disk.h in Headers */, + 3AB0D9000E4096A300AF570A /* GemSplash.h in Headers */, + 3AB0D9020E4096A300AF570A /* imageVert.h in Headers */, + 3AB0D9050E4096A300AF570A /* mesh_square.h in Headers */, + 3AB0D9070E4096A300AF570A /* model_loader.h in Headers */, + 3AB0D9090E4096A300AF570A /* model.h in Headers */, + 3AB0D90B0E4096A300AF570A /* multimodel.h in Headers */, + 3AB0D90D0E4096A300AF570A /* newWave.h in Headers */, + 3AB0D90F0E4096A300AF570A /* polygon.h in Headers */, + 3AB0D9110E4096A300AF570A /* pqtorusknots.h in Headers */, + 3AB0D9130E4096A300AF570A /* primTri.h in Headers */, + 3AB0D9150E4096A300AF570A /* rectangle.h in Headers */, + 3AB0D9170E4096A300AF570A /* ripple.h in Headers */, + 3AB0D9190E4096A300AF570A /* rubber.h in Headers */, + 3AB0D91B0E4096A300AF570A /* scopeXYZ.h in Headers */, + 3AB0D91D0E4096A300AF570A /* slideSquares.h in Headers */, + 3AB0D91F0E4096A300AF570A /* sphere.h in Headers */, + 3AB0D9210E4096A300AF570A /* sphere3d.h in Headers */, + 3AB0D9230E4096A300AF570A /* square.h in Headers */, + 3AB0D9250E4096A300AF570A /* teapot.h in Headers */, + 3AB0D9260E4096A300AF570A /* TexFont.h in Headers */, + 3AB0D9280E4096A300AF570A /* text2d.h in Headers */, + 3AB0D92A0E4096A300AF570A /* text3d.h in Headers */, + 3AB0D92C0E4096A300AF570A /* textextruded.h in Headers */, + 3AB0D92E0E4096A300AF570A /* textoutline.h in Headers */, + 3AB0D9300E4096A300AF570A /* torus.h in Headers */, + 3AB0D9320E4096A300AF570A /* trapezoid.h in Headers */, + 3AB0D9340E4096A300AF570A /* triangle.h in Headers */, + 3AB0D9360E4096A300AF570A /* tube.h in Headers */, + 3A2DCFC80E40974100767D22 /* accumrotate.h in Headers */, + 3A2DCFCA0E40974100767D22 /* alpha.h in Headers */, + 3A2DCFCC0E40974100767D22 /* ambient.h in Headers */, + 3A2DCFCE0E40974100767D22 /* ambientRGB.h in Headers */, + 3A2DCFD00E40974100767D22 /* camera.h in Headers */, + 3A2DCFD20E40974100767D22 /* color.h in Headers */, + 3A2DCFD40E40974100767D22 /* colorRGB.h in Headers */, + 3A2DCFD60E40974100767D22 /* depth.h in Headers */, + 3A2DCFD80E40974100767D22 /* diffuse.h in Headers */, + 3A2DCFDA0E40974100767D22 /* diffuseRGB.h in Headers */, + 3A2DCFDC0E40974100767D22 /* emission.h in Headers */, + 3A2DCFDE0E40974100767D22 /* emissionRGB.h in Headers */, + 3A2DCFE00E40974100767D22 /* fragment_program.h in Headers */, + 3A2DCFE20E40974100767D22 /* glsl_fragment.h in Headers */, + 3A2DCFE40E40974100767D22 /* glsl_program.h in Headers */, + 3A2DCFE60E40974100767D22 /* glsl_vertex.h in Headers */, + 3A2DCFE80E40974100767D22 /* linear_path.h in Headers */, + 3A2DCFEB0E40974100767D22 /* ortho.h in Headers */, + 3A2DCFED0E40974100767D22 /* polygon_smooth.h in Headers */, + 3A2DCFEF0E40974100767D22 /* rotate.h in Headers */, + 3A2DCFF10E40974100767D22 /* rotateXYZ.h in Headers */, + 3A2DCFF30E40974100767D22 /* scale.h in Headers */, + 3A2DCFF50E40974100767D22 /* scaleXYZ.h in Headers */, + 3A2DCFF70E40974100767D22 /* separator.h in Headers */, + 3A2DCFF90E40974100767D22 /* shearXY.h in Headers */, + 3A2DCFFB0E40974100767D22 /* shearXZ.h in Headers */, + 3A2DCFFD0E40974100767D22 /* shearYX.h in Headers */, + 3A2DCFFF0E40974100767D22 /* shearYZ.h in Headers */, + 3A2DD0010E40974100767D22 /* shearZX.h in Headers */, + 3A2DD0030E40974100767D22 /* shearZY.h in Headers */, + 3A2DD0050E40974100767D22 /* shininess.h in Headers */, + 3A2DD0070E40974100767D22 /* specular.h in Headers */, + 3A2DD0090E40974100767D22 /* specularRGB.h in Headers */, + 3A2DD00B0E40974100767D22 /* spline_path.h in Headers */, + 3A2DD00D0E40974100767D22 /* translate.h in Headers */, + 3A2DD00F0E40974100767D22 /* translateXYZ.h in Headers */, + 3A2DD0110E40974100767D22 /* vertex_program.h in Headers */, + 3A2DD01A0E40975A00767D22 /* light.h in Headers */, + 3A2DD01D0E40975A00767D22 /* spot_light.h in Headers */, + 3A2DD01F0E40975A00767D22 /* world_light.h in Headers */, + 3A2DD2750E40978700767D22 /* GEMglAccum.h in Headers */, + 3A2DD2770E40978700767D22 /* GEMglActiveTextureARB.h in Headers */, + 3A2DD2790E40978700767D22 /* GEMglAlphaFunc.h in Headers */, + 3A2DD27B0E40978700767D22 /* GEMglAreTexturesResident.h in Headers */, + 3A2DD27D0E40978700767D22 /* GEMglArrayElement.h in Headers */, + 3A2DD27F0E40978700767D22 /* GEMglBegin.h in Headers */, + 3A2DD2810E40978700767D22 /* GEMglBindProgramARB.h in Headers */, + 3A2DD2830E40978700767D22 /* GEMglBindTexture.h in Headers */, + 3A2DD2850E40978700767D22 /* GEMglBitmap.h in Headers */, + 3A2DD2870E40978700767D22 /* GEMglBlendEquation.h in Headers */, + 3A2DD2890E40978700767D22 /* GEMglBlendFunc.h in Headers */, + 3A2DD28B0E40978700767D22 /* GEMglCallList.h in Headers */, + 3A2DD28D0E40978700767D22 /* GEMglClear.h in Headers */, + 3A2DD28F0E40978700767D22 /* GEMglClearAccum.h in Headers */, + 3A2DD2910E40978700767D22 /* GEMglClearColor.h in Headers */, + 3A2DD2930E40978700767D22 /* GEMglClearDepth.h in Headers */, + 3A2DD2950E40978700767D22 /* GEMglClearIndex.h in Headers */, + 3A2DD2970E40978700767D22 /* GEMglClearStencil.h in Headers */, + 3A2DD2990E40978700767D22 /* GEMglClipPlane.h in Headers */, + 3A2DD29B0E40978700767D22 /* GEMglColor3b.h in Headers */, + 3A2DD29D0E40978700767D22 /* GEMglColor3bv.h in Headers */, + 3A2DD29F0E40978700767D22 /* GEMglColor3d.h in Headers */, + 3A2DD2A10E40978700767D22 /* GEMglColor3dv.h in Headers */, + 3A2DD2A30E40978700767D22 /* GEMglColor3f.h in Headers */, + 3A2DD2A50E40978700767D22 /* GEMglColor3fv.h in Headers */, + 3A2DD2A70E40978700767D22 /* GEMglColor3i.h in Headers */, + 3A2DD2A90E40978700767D22 /* GEMglColor3iv.h in Headers */, + 3A2DD2AB0E40978700767D22 /* GEMglColor3s.h in Headers */, + 3A2DD2AD0E40978700767D22 /* GEMglColor3sv.h in Headers */, + 3A2DD2AF0E40978700767D22 /* GEMglColor3ub.h in Headers */, + 3A2DD2B10E40978700767D22 /* GEMglColor3ubv.h in Headers */, + 3A2DD2B30E40978700767D22 /* GEMglColor3ui.h in Headers */, + 3A2DD2B50E40978700767D22 /* GEMglColor3uiv.h in Headers */, + 3A2DD2B70E40978700767D22 /* GEMglColor3us.h in Headers */, + 3A2DD2B90E40978700767D22 /* GEMglColor3usv.h in Headers */, + 3A2DD2BB0E40978700767D22 /* GEMglColor4b.h in Headers */, + 3A2DD2BD0E40978700767D22 /* GEMglColor4bv.h in Headers */, + 3A2DD2BF0E40978700767D22 /* GEMglColor4d.h in Headers */, + 3A2DD2C10E40978700767D22 /* GEMglColor4dv.h in Headers */, + 3A2DD2C30E40978700767D22 /* GEMglColor4f.h in Headers */, + 3A2DD2C50E40978700767D22 /* GEMglColor4fv.h in Headers */, + 3A2DD2C70E40978700767D22 /* GEMglColor4i.h in Headers */, + 3A2DD2C90E40978700767D22 /* GEMglColor4iv.h in Headers */, + 3A2DD2CB0E40978700767D22 /* GEMglColor4s.h in Headers */, + 3A2DD2CD0E40978700767D22 /* GEMglColor4sv.h in Headers */, + 3A2DD2CF0E40978700767D22 /* GEMglColor4ub.h in Headers */, + 3A2DD2D10E40978700767D22 /* GEMglColor4ubv.h in Headers */, + 3A2DD2D30E40978700767D22 /* GEMglColor4ui.h in Headers */, + 3A2DD2D50E40978700767D22 /* GEMglColor4uiv.h in Headers */, + 3A2DD2D70E40978700767D22 /* GEMglColor4us.h in Headers */, + 3A2DD2D90E40978700767D22 /* GEMglColor4usv.h in Headers */, + 3A2DD2DB0E40978700767D22 /* GEMglColorMask.h in Headers */, + 3A2DD2DD0E40978700767D22 /* GEMglColorMaterial.h in Headers */, + 3A2DD2DF0E40978700767D22 /* GEMglCopyPixels.h in Headers */, + 3A2DD2E10E40978700767D22 /* GEMglCopyTexImage1D.h in Headers */, + 3A2DD2E30E40978700767D22 /* GEMglCopyTexImage2D.h in Headers */, + 3A2DD2E50E40978700767D22 /* GEMglCopyTexSubImage1D.h in Headers */, + 3A2DD2E70E40978700767D22 /* GEMglCopyTexSubImage2D.h in Headers */, + 3A2DD2E90E40978700767D22 /* GEMglCullFace.h in Headers */, + 3A2DD2EB0E40978700767D22 /* GEMglDeleteTextures.h in Headers */, + 3A2DD2ED0E40978700767D22 /* GEMglDepthFunc.h in Headers */, + 3A2DD2EF0E40978700767D22 /* GEMglDepthMask.h in Headers */, + 3A2DD2F10E40978700767D22 /* GEMglDepthRange.h in Headers */, + 3A2DD2F30E40978700767D22 /* GEMglDisable.h in Headers */, + 3A2DD2F50E40978700767D22 /* GEMglDisableClientState.h in Headers */, + 3A2DD2F70E40978700767D22 /* GEMglDrawArrays.h in Headers */, + 3A2DD2F90E40978700767D22 /* GEMglDrawBuffer.h in Headers */, + 3A2DD2FB0E40978700767D22 /* GEMglDrawElements.h in Headers */, + 3A2DD2FD0E40978700767D22 /* GEMglEdgeFlag.h in Headers */, + 3A2DD2FF0E40978700767D22 /* GEMglEnable.h in Headers */, + 3A2DD3010E40978700767D22 /* GEMglEnableClientState.h in Headers */, + 3A2DD3030E40978700767D22 /* GEMglEnd.h in Headers */, + 3A2DD3050E40978700767D22 /* GEMglEndList.h in Headers */, + 3A2DD3070E40978700767D22 /* GEMglEvalCoord1d.h in Headers */, + 3A2DD3090E40978700767D22 /* GEMglEvalCoord1dv.h in Headers */, + 3A2DD30B0E40978700767D22 /* GEMglEvalCoord1f.h in Headers */, + 3A2DD30D0E40978700767D22 /* GEMglEvalCoord1fv.h in Headers */, + 3A2DD30F0E40978700767D22 /* GEMglEvalCoord2d.h in Headers */, + 3A2DD3110E40978700767D22 /* GEMglEvalCoord2dv.h in Headers */, + 3A2DD3130E40978700767D22 /* GEMglEvalCoord2f.h in Headers */, + 3A2DD3150E40978700767D22 /* GEMglEvalCoord2fv.h in Headers */, + 3A2DD3170E40978700767D22 /* GEMglEvalMesh1.h in Headers */, + 3A2DD3190E40978700767D22 /* GEMglEvalMesh2.h in Headers */, + 3A2DD31B0E40978700767D22 /* GEMglEvalPoint1.h in Headers */, + 3A2DD31D0E40978700767D22 /* GEMglEvalPoint2.h in Headers */, + 3A2DD31F0E40978700767D22 /* GEMglFeedbackBuffer.h in Headers */, + 3A2DD3210E40978700767D22 /* GEMglFinish.h in Headers */, + 3A2DD3230E40978700767D22 /* GEMglFlush.h in Headers */, + 3A2DD3250E40978700767D22 /* GEMglFogf.h in Headers */, + 3A2DD3270E40978700767D22 /* GEMglFogfv.h in Headers */, + 3A2DD3290E40978700767D22 /* GEMglFogi.h in Headers */, + 3A2DD32B0E40978700767D22 /* GEMglFogiv.h in Headers */, + 3A2DD32D0E40978700767D22 /* GEMglFrontFace.h in Headers */, + 3A2DD32F0E40978700767D22 /* GEMglFrustum.h in Headers */, + 3A2DD3310E40978700767D22 /* GEMglGenLists.h in Headers */, + 3A2DD3330E40978700767D22 /* GEMglGenProgramsARB.h in Headers */, + 3A2DD3350E40978700767D22 /* GEMglGenTextures.h in Headers */, + 3A2DD3370E40978700767D22 /* GEMglGetError.h in Headers */, + 3A2DD3390E40978700767D22 /* GEMglGetFloatv.h in Headers */, + 3A2DD33B0E40978700767D22 /* GEMglGetMapdv.h in Headers */, + 3A2DD33D0E40978700767D22 /* GEMglGetMapfv.h in Headers */, + 3A2DD33F0E40978700767D22 /* GEMglGetMapiv.h in Headers */, + 3A2DD3410E40978700767D22 /* GEMglGetPointerv.h in Headers */, + 3A2DD3430E40978700767D22 /* GEMglGetString.h in Headers */, + 3A2DD3450E40978700767D22 /* GEMglHint.h in Headers */, + 3A2DD3470E40978700767D22 /* GEMglIndexd.h in Headers */, + 3A2DD3490E40978700767D22 /* GEMglIndexdv.h in Headers */, + 3A2DD34B0E40978700767D22 /* GEMglIndexf.h in Headers */, + 3A2DD34D0E40978700767D22 /* GEMglIndexfv.h in Headers */, + 3A2DD34F0E40978700767D22 /* GEMglIndexi.h in Headers */, + 3A2DD3510E40978700767D22 /* GEMglIndexiv.h in Headers */, + 3A2DD3530E40978700767D22 /* GEMglIndexMask.h in Headers */, + 3A2DD3550E40978700767D22 /* GEMglIndexs.h in Headers */, + 3A2DD3570E40978700767D22 /* GEMglIndexsv.h in Headers */, + 3A2DD3590E40978700767D22 /* GEMglIndexub.h in Headers */, + 3A2DD35B0E40978700767D22 /* GEMglIndexubv.h in Headers */, + 3A2DD35D0E40978700767D22 /* GEMglInitNames.h in Headers */, + 3A2DD35F0E40978700767D22 /* GEMglIsEnabled.h in Headers */, + 3A2DD3610E40978700767D22 /* GEMglIsList.h in Headers */, + 3A2DD3630E40978700767D22 /* GEMglIsTexture.h in Headers */, + 3A2DD3650E40978700767D22 /* GEMglLightf.h in Headers */, + 3A2DD3670E40978700767D22 /* GEMglLighti.h in Headers */, + 3A2DD3690E40978700767D22 /* GEMglLightModelf.h in Headers */, + 3A2DD36B0E40978700767D22 /* GEMglLightModeli.h in Headers */, + 3A2DD36D0E40978700767D22 /* GEMglLineStipple.h in Headers */, + 3A2DD36F0E40978700767D22 /* GEMglLineWidth.h in Headers */, + 3A2DD3710E40978700767D22 /* GEMglLoadIdentity.h in Headers */, + 3A2DD3730E40978700767D22 /* GEMglLoadMatrixd.h in Headers */, + 3A2DD3750E40978700767D22 /* GEMglLoadMatrixf.h in Headers */, + 3A2DD3770E40978700767D22 /* GEMglLoadName.h in Headers */, + 3A2DD3790E40978700767D22 /* GEMglLoadTransposeMatrixd.h in Headers */, + 3A2DD37B0E40978700767D22 /* GEMglLoadTransposeMatrixf.h in Headers */, + 3A2DD37D0E40978700767D22 /* GEMglLogicOp.h in Headers */, + 3A2DD37F0E40978700767D22 /* GEMglMap1d.h in Headers */, + 3A2DD3810E40978700767D22 /* GEMglMap1f.h in Headers */, + 3A2DD3830E40978700767D22 /* GEMglMap2d.h in Headers */, + 3A2DD3850E40978700767D22 /* GEMglMap2f.h in Headers */, + 3A2DD3870E40978700767D22 /* GEMglMapGrid1d.h in Headers */, + 3A2DD3890E40978700767D22 /* GEMglMapGrid1f.h in Headers */, + 3A2DD38B0E40978700767D22 /* GEMglMapGrid2d.h in Headers */, + 3A2DD38D0E40978700767D22 /* GEMglMapGrid2f.h in Headers */, + 3A2DD38F0E40978700767D22 /* GEMglMaterialf.h in Headers */, + 3A2DD3910E40978700767D22 /* GEMglMateriali.h in Headers */, + 3A2DD3930E40978700767D22 /* GEMglMatrixMode.h in Headers */, + 3A2DD3950E40978700767D22 /* GEMglMultiTexCoord2fARB.h in Headers */, + 3A2DD3970E40978700767D22 /* GEMglMultMatrixd.h in Headers */, + 3A2DD3990E40978700767D22 /* GEMglMultMatrixf.h in Headers */, + 3A2DD39B0E40978700767D22 /* GEMglMultTransposeMatrixd.h in Headers */, + 3A2DD39D0E40978700767D22 /* GEMglMultTransposeMatrixf.h in Headers */, + 3A2DD39F0E40978700767D22 /* GEMglNewList.h in Headers */, + 3A2DD3A10E40978700767D22 /* GEMglNormal3b.h in Headers */, + 3A2DD3A30E40978700767D22 /* GEMglNormal3bv.h in Headers */, + 3A2DD3A50E40978700767D22 /* GEMglNormal3d.h in Headers */, + 3A2DD3A70E40978700767D22 /* GEMglNormal3dv.h in Headers */, + 3A2DD3A90E40978700767D22 /* GEMglNormal3f.h in Headers */, + 3A2DD3AB0E40978700767D22 /* GEMglNormal3fv.h in Headers */, + 3A2DD3AD0E40978700767D22 /* GEMglNormal3i.h in Headers */, + 3A2DD3AF0E40978700767D22 /* GEMglNormal3iv.h in Headers */, + 3A2DD3B10E40978700767D22 /* GEMglNormal3s.h in Headers */, + 3A2DD3B30E40978700767D22 /* GEMglNormal3sv.h in Headers */, + 3A2DD3B50E40978700767D22 /* GEMglOrtho.h in Headers */, + 3A2DD3B70E40978700767D22 /* GEMglPassThrough.h in Headers */, + 3A2DD3B90E40978700767D22 /* GEMglPixelStoref.h in Headers */, + 3A2DD3BB0E40978700767D22 /* GEMglPixelStorei.h in Headers */, + 3A2DD3BD0E40978700767D22 /* GEMglPixelTransferf.h in Headers */, + 3A2DD3BF0E40978700767D22 /* GEMglPixelTransferi.h in Headers */, + 3A2DD3C10E40978700767D22 /* GEMglPixelZoom.h in Headers */, + 3A2DD3C30E40978700767D22 /* GEMglPointSize.h in Headers */, + 3A2DD3C50E40978700767D22 /* GEMglPolygonMode.h in Headers */, + 3A2DD3C70E40978700767D22 /* GEMglPolygonOffset.h in Headers */, + 3A2DD3C90E40978700767D22 /* GEMglPopAttrib.h in Headers */, + 3A2DD3CB0E40978700767D22 /* GEMglPopClientAttrib.h in Headers */, + 3A2DD3CD0E40978700767D22 /* GEMglPopMatrix.h in Headers */, + 3A2DD3CF0E40978700767D22 /* GEMglPopName.h in Headers */, + 3A2DD3D10E40978700767D22 /* GEMglPrioritizeTextures.h in Headers */, + 3A2DD3D30E40978700767D22 /* GEMglProgramEnvParameter4dARB.h in Headers */, + 3A2DD3D50E40978700767D22 /* GEMglProgramEnvParameter4fvARB.h in Headers */, + 3A2DD3D70E40978700767D22 /* GEMglProgramLocalParameter4fvARB.h in Headers */, + 3A2DD3D90E40978700767D22 /* GEMglProgramStringARB.h in Headers */, + 3A2DD3DB0E40978700767D22 /* GEMglPushAttrib.h in Headers */, + 3A2DD3DD0E40978700767D22 /* GEMglPushClientAttrib.h in Headers */, + 3A2DD3DF0E40978700767D22 /* GEMglPushMatrix.h in Headers */, + 3A2DD3E10E40978700767D22 /* GEMglPushName.h in Headers */, + 3A2DD3E30E40978700767D22 /* GEMglRasterPos2d.h in Headers */, + 3A2DD3E50E40978700767D22 /* GEMglRasterPos2dv.h in Headers */, + 3A2DD3E70E40978700767D22 /* GEMglRasterPos2f.h in Headers */, + 3A2DD3E90E40978700767D22 /* GEMglRasterPos2fv.h in Headers */, + 3A2DD3EB0E40978700767D22 /* GEMglRasterPos2i.h in Headers */, + 3A2DD3ED0E40978700767D22 /* GEMglRasterPos2iv.h in Headers */, + 3A2DD3EF0E40978700767D22 /* GEMglRasterPos2s.h in Headers */, + 3A2DD3F10E40978700767D22 /* GEMglRasterPos2sv.h in Headers */, + 3A2DD3F30E40978700767D22 /* GEMglRasterPos3d.h in Headers */, + 3A2DD3F50E40978700767D22 /* GEMglRasterPos3dv.h in Headers */, + 3A2DD3F70E40978700767D22 /* GEMglRasterPos3f.h in Headers */, + 3A2DD3F90E40978700767D22 /* GEMglRasterPos3fv.h in Headers */, + 3A2DD3FB0E40978700767D22 /* GEMglRasterPos3i.h in Headers */, + 3A2DD3FD0E40978700767D22 /* GEMglRasterPos3iv.h in Headers */, + 3A2DD3FF0E40978700767D22 /* GEMglRasterPos3s.h in Headers */, + 3A2DD4010E40978700767D22 /* GEMglRasterPos3sv.h in Headers */, + 3A2DD4030E40978700767D22 /* GEMglRasterPos4d.h in Headers */, + 3A2DD4050E40978700767D22 /* GEMglRasterPos4dv.h in Headers */, + 3A2DD4070E40978700767D22 /* GEMglRasterPos4f.h in Headers */, + 3A2DD4090E40978700767D22 /* GEMglRasterPos4fv.h in Headers */, + 3A2DD40B0E40978700767D22 /* GEMglRasterPos4i.h in Headers */, + 3A2DD40D0E40978700767D22 /* GEMglRasterPos4iv.h in Headers */, + 3A2DD40F0E40978700767D22 /* GEMglRasterPos4s.h in Headers */, + 3A2DD4110E40978700767D22 /* GEMglRasterPos4sv.h in Headers */, + 3A2DD4130E40978700767D22 /* GEMglRectd.h in Headers */, + 3A2DD4150E40978700767D22 /* GEMglRectf.h in Headers */, + 3A2DD4170E40978700767D22 /* GEMglRecti.h in Headers */, + 3A2DD4190E40978700767D22 /* GEMglRects.h in Headers */, + 3A2DD41B0E40978700767D22 /* GEMglRenderMode.h in Headers */, + 3A2DD41D0E40978700767D22 /* GEMglReportError.h in Headers */, + 3A2DD41F0E40978700767D22 /* GEMglRotated.h in Headers */, + 3A2DD4210E40978700767D22 /* GEMglRotatef.h in Headers */, + 3A2DD4230E40978700767D22 /* GEMglScaled.h in Headers */, + 3A2DD4250E40978700767D22 /* GEMglScalef.h in Headers */, + 3A2DD4270E40978700767D22 /* GEMglScissor.h in Headers */, + 3A2DD4290E40978700767D22 /* GEMglSelectBuffer.h in Headers */, + 3A2DD42B0E40978700767D22 /* GEMglShadeModel.h in Headers */, + 3A2DD42D0E40978700767D22 /* GEMglStencilFunc.h in Headers */, + 3A2DD42F0E40978700767D22 /* GEMglStencilMask.h in Headers */, + 3A2DD4310E40978700767D22 /* GEMglStencilOp.h in Headers */, + 3A2DD4330E40978700767D22 /* GEMglTexCoord1d.h in Headers */, + 3A2DD4350E40978700767D22 /* GEMglTexCoord1dv.h in Headers */, + 3A2DD4370E40978700767D22 /* GEMglTexCoord1f.h in Headers */, + 3A2DD4390E40978700767D22 /* GEMglTexCoord1fv.h in Headers */, + 3A2DD43B0E40978700767D22 /* GEMglTexCoord1i.h in Headers */, + 3A2DD43D0E40978700767D22 /* GEMglTexCoord1iv.h in Headers */, + 3A2DD43F0E40978700767D22 /* GEMglTexCoord1s.h in Headers */, + 3A2DD4410E40978700767D22 /* GEMglTexCoord1sv.h in Headers */, + 3A2DD4430E40978700767D22 /* GEMglTexCoord2d.h in Headers */, + 3A2DD4450E40978700767D22 /* GEMglTexCoord2dv.h in Headers */, + 3A2DD4470E40978700767D22 /* GEMglTexCoord2f.h in Headers */, + 3A2DD4490E40978700767D22 /* GEMglTexCoord2fv.h in Headers */, + 3A2DD44B0E40978700767D22 /* GEMglTexCoord2i.h in Headers */, + 3A2DD44D0E40978700767D22 /* GEMglTexCoord2iv.h in Headers */, + 3A2DD44F0E40978700767D22 /* GEMglTexCoord2s.h in Headers */, + 3A2DD4510E40978700767D22 /* GEMglTexCoord2sv.h in Headers */, + 3A2DD4530E40978700767D22 /* GEMglTexCoord3d.h in Headers */, + 3A2DD4550E40978700767D22 /* GEMglTexCoord3dv.h in Headers */, + 3A2DD4570E40978700767D22 /* GEMglTexCoord3f.h in Headers */, + 3A2DD4590E40978700767D22 /* GEMglTexCoord3fv.h in Headers */, + 3A2DD45B0E40978700767D22 /* GEMglTexCoord3i.h in Headers */, + 3A2DD45D0E40978700767D22 /* GEMglTexCoord3iv.h in Headers */, + 3A2DD45F0E40978700767D22 /* GEMglTexCoord3s.h in Headers */, + 3A2DD4610E40978700767D22 /* GEMglTexCoord3sv.h in Headers */, + 3A2DD4630E40978700767D22 /* GEMglTexCoord4d.h in Headers */, + 3A2DD4650E40978700767D22 /* GEMglTexCoord4dv.h in Headers */, + 3A2DD4670E40978700767D22 /* GEMglTexCoord4f.h in Headers */, + 3A2DD4690E40978700767D22 /* GEMglTexCoord4fv.h in Headers */, + 3A2DD46B0E40978700767D22 /* GEMglTexCoord4i.h in Headers */, + 3A2DD46D0E40978700767D22 /* GEMglTexCoord4iv.h in Headers */, + 3A2DD46F0E40978700767D22 /* GEMglTexCoord4s.h in Headers */, + 3A2DD4710E40978700767D22 /* GEMglTexCoord4sv.h in Headers */, + 3A2DD4730E40978700767D22 /* GEMglTexEnvf.h in Headers */, + 3A2DD4750E40978700767D22 /* GEMglTexEnvi.h in Headers */, + 3A2DD4770E40978700767D22 /* GEMglTexGend.h in Headers */, + 3A2DD4790E40978700767D22 /* GEMglTexGenf.h in Headers */, + 3A2DD47B0E40978700767D22 /* GEMglTexGenfv.h in Headers */, + 3A2DD47D0E40978700767D22 /* GEMglTexGeni.h in Headers */, + 3A2DD47F0E40978700767D22 /* GEMglTexParameterf.h in Headers */, + 3A2DD4810E40978700767D22 /* GEMglTexParameteri.h in Headers */, + 3A2DD4830E40978700767D22 /* GEMglTexSubImage1D.h in Headers */, + 3A2DD4850E40978700767D22 /* GEMglTexSubImage2D.h in Headers */, + 3A2DD4870E40978700767D22 /* GEMglTranslated.h in Headers */, + 3A2DD4890E40978700767D22 /* GEMglTranslatef.h in Headers */, + 3A2DD48B0E40978700767D22 /* GEMglUniform1fARB.h in Headers */, + 3A2DD48D0E40978700767D22 /* GEMgluPerspective.h in Headers */, + 3A2DD48F0E40978700767D22 /* GEMglUseProgramObjectARB.h in Headers */, + 3A2DD4910E40978700767D22 /* GEMglVertex2d.h in Headers */, + 3A2DD4930E40978700767D22 /* GEMglVertex2dv.h in Headers */, + 3A2DD4950E40978700767D22 /* GEMglVertex2f.h in Headers */, + 3A2DD4970E40978700767D22 /* GEMglVertex2fv.h in Headers */, + 3A2DD4990E40978700767D22 /* GEMglVertex2i.h in Headers */, + 3A2DD49B0E40978700767D22 /* GEMglVertex2iv.h in Headers */, + 3A2DD49D0E40978700767D22 /* GEMglVertex2s.h in Headers */, + 3A2DD49F0E40978700767D22 /* GEMglVertex2sv.h in Headers */, + 3A2DD4A10E40978700767D22 /* GEMglVertex3d.h in Headers */, + 3A2DD4A30E40978700767D22 /* GEMglVertex3dv.h in Headers */, + 3A2DD4A50E40978700767D22 /* GEMglVertex3f.h in Headers */, + 3A2DD4A70E40978700767D22 /* GEMglVertex3fv.h in Headers */, + 3A2DD4A90E40978700767D22 /* GEMglVertex3i.h in Headers */, + 3A2DD4AB0E40978700767D22 /* GEMglVertex3iv.h in Headers */, + 3A2DD4AD0E40978700767D22 /* GEMglVertex3s.h in Headers */, + 3A2DD4AF0E40978700767D22 /* GEMglVertex3sv.h in Headers */, + 3A2DD4B10E40978700767D22 /* GEMglVertex4d.h in Headers */, + 3A2DD4B30E40978700767D22 /* GEMglVertex4dv.h in Headers */, + 3A2DD4B50E40978700767D22 /* GEMglVertex4f.h in Headers */, + 3A2DD4B70E40978700767D22 /* GEMglVertex4fv.h in Headers */, + 3A2DD4B90E40978700767D22 /* GEMglVertex4i.h in Headers */, + 3A2DD4BB0E40978700767D22 /* GEMglVertex4iv.h in Headers */, + 3A2DD4BD0E40978700767D22 /* GEMglVertex4s.h in Headers */, + 3A2DD4BF0E40978700767D22 /* GEMglVertex4sv.h in Headers */, + 3A2DD4C10E40978700767D22 /* GEMglViewport.h in Headers */, + 3A2DD4C30E40978700767D22 /* GLdefine.h in Headers */, + 3A2DD4F60E4097BC00767D22 /* papi.h in Headers */, + 3A2DD4F80E4097BC00767D22 /* part_color.h in Headers */, + 3A2DD4FA0E4097BC00767D22 /* part_damp.h in Headers */, + 3A2DD4FC0E4097BC00767D22 /* part_draw.h in Headers */, + 3A2DD4FE0E4097BC00767D22 /* part_follow.h in Headers */, + 3A2DD5000E4097BC00767D22 /* part_gravity.h in Headers */, + 3A2DD5020E4097BC00767D22 /* part_head.h in Headers */, + 3A2DD5040E4097BC00767D22 /* part_info.h in Headers */, + 3A2DD5060E4097BC00767D22 /* part_killold.h in Headers */, + 3A2DD5080E4097BC00767D22 /* part_killslow.h in Headers */, + 3A2DD50A0E4097BC00767D22 /* part_orbitpoint.h in Headers */, + 3A2DD50C0E4097BC00767D22 /* part_render.h in Headers */, + 3A2DD50E0E4097BC00767D22 /* part_sink.h in Headers */, + 3A2DD5100E4097BC00767D22 /* part_size.h in Headers */, + 3A2DD5120E4097BC00767D22 /* part_source.h in Headers */, + 3A2DD5140E4097BC00767D22 /* part_targetcolor.h in Headers */, + 3A2DD5160E4097BC00767D22 /* part_targetsize.h in Headers */, + 3A2DD5180E4097BC00767D22 /* part_velcone.h in Headers */, + 3A2DD51A0E4097BC00767D22 /* part_velocity.h in Headers */, + 3A2DD51C0E4097BC00767D22 /* part_velsphere.h in Headers */, + 3A2DD51E0E4097BC00767D22 /* part_vertex.h in Headers */, + 3A2DD5210E4097BC00767D22 /* partlib_general.h in Headers */, + 3A2DD5240E4097BC00767D22 /* partlib_vector.h in Headers */, + 3A2DD63D0E4097D500767D22 /* film.h in Headers */, + 3A2DD6430E4097D500767D22 /* filmDarwin.h in Headers */, + 3A2DD64D0E4097D500767D22 /* filmQT.h in Headers */, + 3A2DD6500E4097D500767D22 /* FreeFrame.h in Headers */, + 3A2DD6520E4097D500767D22 /* libfidtrack_fidtrackX.h in Headers */, + 3A2DD6540E4097D500767D22 /* libfidtrack_segment.h in Headers */, + 3A2DD6560E4097D500767D22 /* libfidtrack_treeidmap.h in Headers */, + 3A2DD6590E4097D500767D22 /* pix_2grey.h in Headers */, + 3A2DD65B0E4097D500767D22 /* pix_a_2grey.h in Headers */, + 3A2DD65D0E4097D500767D22 /* pix_add.h in Headers */, + 3A2DD65F0E4097D500767D22 /* pix_aging.h in Headers */, + 3A2DD6610E4097D500767D22 /* pix_alpha.h in Headers */, + 3A2DD6630E4097D500767D22 /* pix_artoolkit.h in Headers */, + 3A2DD6650E4097D500767D22 /* pix_background.h in Headers */, + 3A2DD6670E4097D500767D22 /* pix_backlight.h in Headers */, + 3A2DD6690E4097D500767D22 /* pix_biquad.h in Headers */, + 3A2DD66B0E4097D500767D22 /* pix_bitmask.h in Headers */, + 3A2DD66D0E4097D500767D22 /* pix_blob.h in Headers */, + 3A2DD66F0E4097D500767D22 /* pix_blur.h in Headers */, + 3A2DD6710E4097D500767D22 /* pix_buf.h in Headers */, + 3A2DD6730E4097D500767D22 /* pix_buffer_read.h in Headers */, + 3A2DD6750E4097D500767D22 /* pix_buffer_write.h in Headers */, + 3A2DD6770E4097D500767D22 /* pix_buffer.h in Headers */, + 3A2DD6790E4097D500767D22 /* pix_chroma_key.h in Headers */, + 3A2DD67B0E4097D500767D22 /* pix_clearblock.h in Headers */, + 3A2DD67D0E4097D500767D22 /* pix_color.h in Headers */, + 3A2DD67F0E4097D500767D22 /* pix_coloralpha.h in Headers */, + 3A2DD6810E4097D500767D22 /* pix_colormatrix.h in Headers */, + 3A2DD6830E4097D500767D22 /* pix_colorreduce.h in Headers */, + 3A2DD6850E4097D500767D22 /* pix_compare.h in Headers */, + 3A2DD6870E4097D500767D22 /* pix_composite.h in Headers */, + 3A2DD6890E4097D500767D22 /* pix_contrast.h in Headers */, + 3A2DD68B0E4097D500767D22 /* pix_convert.h in Headers */, + 3A2DD68D0E4097D500767D22 /* pix_convolve.h in Headers */, + 3A2DD68F0E4097D500767D22 /* pix_coordinate.h in Headers */, + 3A2DD6910E4097D500767D22 /* pix_crop.h in Headers */, + 3A2DD6930E4097D500767D22 /* pix_curve.h in Headers */, + 3A2DD6950E4097D500767D22 /* pix_data.h in Headers */, + 3A2DD6970E4097D500767D22 /* pix_deinterlace.h in Headers */, + 3A2DD6990E4097D500767D22 /* pix_delay.h in Headers */, + 3A2DD69B0E4097D500767D22 /* pix_diff.h in Headers */, + 3A2DD69D0E4097D500767D22 /* pix_dot.h in Headers */, + 3A2DD69F0E4097D500767D22 /* pix_draw.h in Headers */, + 3A2DD6A10E4097D500767D22 /* pix_dump.h in Headers */, + 3A2DD6A30E4097D500767D22 /* pix_duotone.h in Headers */, + 3A2DD6A50E4097D500767D22 /* pix_emboss.h in Headers */, + 3A2DD6A70E4097D500767D22 /* pix_fiducialtrack.h in Headers */, + 3A2DD6A90E4097D500767D22 /* pix_film.h in Headers */, + 3A2DD6AB0E4097D500767D22 /* pix_filmDarwin.h in Headers */, + 3A2DD6AF0E4097D500767D22 /* pix_filmNT.h in Headers */, + 3A2DD6B10E4097D500767D22 /* pix_filmQT.h in Headers */, + 3A2DD6B30E4097D500767D22 /* pix_flip.h in Headers */, + 3A2DD6B50E4097D500767D22 /* pix_freeframe.h in Headers */, + 3A2DD6B70E4097D500767D22 /* pix_gain.h in Headers */, + 3A2DD6B90E4097D500767D22 /* pix_grey.h in Headers */, + 3A2DD6BB0E4097D500767D22 /* pix_halftone.h in Headers */, + 3A2DD6BD0E4097D500767D22 /* pix_histo.h in Headers */, + 3A2DD6BF0E4097D500767D22 /* pix_hit.h in Headers */, + 3A2DD6C10E4097D500767D22 /* pix_hsv2rgb.h in Headers */, + 3A2DD6C30E4097D500767D22 /* pix_image.h in Headers */, + 3A2DD6C50E4097D500767D22 /* pix_imageInPlace.h in Headers */, + 3A2DD6C70E4097D500767D22 /* pix_indycam.h in Headers */, + 3A2DD6C90E4097D500767D22 /* pix_info.h in Headers */, + 3A2DD6CB0E4097D500767D22 /* pix_invert.h in Headers */, + 3A2DD6CD0E4097D500767D22 /* pix_kaleidoscope.h in Headers */, + 3A2DD6CF0E4097D500767D22 /* pix_levels.h in Headers */, + 3A2DD6D10E4097D500767D22 /* pix_lumaoffset.h in Headers */, + 3A2DD6D30E4097D500767D22 /* pix_mask.h in Headers */, + 3A2DD6D50E4097D500767D22 /* pix_mean_color.h in Headers */, + 3A2DD6D70E4097D500767D22 /* pix_metaimage.h in Headers */, + 3A2DD6D90E4097D500767D22 /* pix_mix.h in Headers */, + 3A2DD6DB0E4097D500767D22 /* pix_motionblur.h in Headers */, + 3A2DD6DD0E4097D500767D22 /* pix_movement.h in Headers */, + 3A2DD6DF0E4097D500767D22 /* pix_movement2.h in Headers */, + 3A2DD6E10E4097D500767D22 /* pix_movie.h in Headers */, + 3A2DD6E30E4097D500767D22 /* pix_movieDarwin.h in Headers */, + 3A2DD6E90E4097D500767D22 /* pix_multiblob.h in Headers */, + 3A2DD6EB0E4097D500767D22 /* pix_multiimage.h in Headers */, + 3A2DD6ED0E4097D500767D22 /* pix_multiply.h in Headers */, + 3A2DD6EF0E4097D500767D22 /* pix_multitexture.h in Headers */, + 3A2DD6F10E4097D500767D22 /* pix_normalize.h in Headers */, + 3A2DD6F30E4097D500767D22 /* pix_offset.h in Headers */, + 3A2DD6F50E4097D500767D22 /* pix_pix2sig.h in Headers */, + 3A2DD6F70E4097D500767D22 /* pix_posterize.h in Headers */, + 3A2DD6F90E4097D500767D22 /* pix_puzzle.h in Headers */, + 3A2DD6FB0E4097D500767D22 /* pix_rds.h in Headers */, + 3A2DD6FD0E4097D500767D22 /* pix_record.h in Headers */, + 3A2DD6FF0E4097D500767D22 /* pix_recordQT.h in Headers */, + 3A2DD7010E4097D500767D22 /* pix_rectangle.h in Headers */, + 3A2DD7030E4097D500767D22 /* pix_refraction.h in Headers */, + 3A2DD7050E4097D500767D22 /* pix_resize.h in Headers */, + 3A2DD7070E4097D500767D22 /* pix_rgb2hsv.h in Headers */, + 3A2DD7090E4097D500767D22 /* pix_rgba.h in Headers */, + 3A2DD70B0E4097D500767D22 /* pix_roll.h in Headers */, + 3A2DD70D0E4097D500767D22 /* pix_rtx.h in Headers */, + 3A2DD70F0E4097D500767D22 /* pix_scanline.h in Headers */, + 3A2DD7110E4097D500767D22 /* pix_set.h in Headers */, + 3A2DD7130E4097D500767D22 /* pix_share_read.h in Headers */, + 3A2DD7150E4097D500767D22 /* pix_share_write.h in Headers */, + 3A2DD7160E4097D500767D22 /* pix_share.h in Headers */, + 3A2DD7180E4097D500767D22 /* pix_sig2pix.h in Headers */, + 3A2DD71A0E4097D500767D22 /* pix_snap.h in Headers */, + 3A2DD71C0E4097D500767D22 /* pix_snap2tex.h in Headers */, + 3A2DD71E0E4097D500767D22 /* pix_subtract.h in Headers */, + 3A2DD7200E4097D500767D22 /* pix_takealpha.h in Headers */, + 3A2DD7220E4097D500767D22 /* pix_test.h in Headers */, + 3A2DD7240E4097D500767D22 /* pix_texture.h in Headers */, + 3A2DD7260E4097D500767D22 /* pix_threshold_bernsen.h in Headers */, + 3A2DD7280E4097D500767D22 /* pix_threshold.h in Headers */, + 3A2DD72A0E4097D500767D22 /* pix_tIIR.h in Headers */, + 3A2DD72E0E4097D500767D22 /* pix_videoDarwin.h in Headers */, + 3A2DD7380E4097D500767D22 /* pix_vpaint.h in Headers */, + 3A2DD73A0E4097D500767D22 /* pix_write.h in Headers */, + 3A2DD73C0E4097D500767D22 /* pix_yuv.h in Headers */, + 3A2DD73E0E4097D500767D22 /* pix_zoom.h in Headers */, + 3A2DD7400E4097D500767D22 /* record.h in Headers */, + 3A2DD7420E4097D500767D22 /* recordQT.h in Headers */, + 3A2DD7670E4097EA00767D22 /* glVBO_ext.h in Headers */, + 3A2DD76A0E4097EA00767D22 /* vertex_add.h in Headers */, + 3A2DD76C0E4097EA00767D22 /* vertex_combine.h in Headers */, + 3A2DD76E0E4097EA00767D22 /* vertex_draw.h in Headers */, + 3A2DD7700E4097EA00767D22 /* vertex_grid.h in Headers */, + 3A2DD7720E4097EA00767D22 /* vertex_info.h in Headers */, + 3A2DD7740E4097EA00767D22 /* vertex_model.h in Headers */, + 3A2DD7760E4097EA00767D22 /* vertex_mul.h in Headers */, + 3A2DD7780E4097EA00767D22 /* vertex_offset.h in Headers */, + 3A2DD77A0E4097EA00767D22 /* vertex_quad.h in Headers */, + 3A2DD77C0E4097EA00767D22 /* vertex_scale.h in Headers */, + 3A2DD77E0E4097EA00767D22 /* vertex_set.h in Headers */, + 3A2DD7800E4097EA00767D22 /* vertex_tabread.h in Headers */, + 3AE073930EB8A2CA00223BA6 /* pix_filmOS.h in Headers */, + 3AE073990EB8A31300223BA6 /* pix_movieOS.h in Headers */, + 3AE0739F0EB8A34600223BA6 /* pix_videoOS.h in Headers */, + 3A6DFE4D0FD528780019C977 /* GEMglMaterialfv.h in Headers */, + 3A6DFE530FD528920019C977 /* GEMgluLookAt.h in Headers */, + 3A6DFE570FD528A30019C977 /* GemGLBase.h in Headers */, + 3A6DFE5E0FD528CF0019C977 /* GemContext.h in Headers */, + 3A6DFE600FD528CF0019C977 /* GemContextData.h in Headers */, + 3A6DFE660FD528E80019C977 /* GemGLUtil_generated.h in Headers */, + 3A6DFE6B0FD5294F0019C977 /* glsl_geometry.h in Headers */, + 3A6DFE710FD529880019C977 /* pix_writer.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 3ACEDF070E40B9E800FC2E4B /* Gem.d_fat */ = { + isa = PBXNativeTarget; + buildConfigurationList = 3ACEE3A20E40B9E800FC2E4B /* Build configuration list for PBXNativeTarget "Gem.d_fat" */; + buildPhases = ( + 3ACEDF080E40B9E800FC2E4B /* Headers */, + 3ACEE1630E40B9E800FC2E4B /* Sources */, + 3ACEE39A0E40B9E800FC2E4B /* Frameworks */, + 3ACEE3A10E40B9E800FC2E4B /* Rez */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Gem.d_fat; + productInstallPath = /usr/local/lib; + productName = gem_darwin; + productReference = 3ACEE3A60E40B9E800FC2E4B /* Gem.d_fat */; + productType = "com.apple.product-type.library.dynamic"; + }; + FD5047A20856671F00AF77DC /* Gem.pd_darwin */ = { + isa = PBXNativeTarget; + buildConfigurationList = FD504C010856672000AF77DC /* Build configuration list for PBXNativeTarget "Gem.pd_darwin" */; + buildPhases = ( + FD5047A30856671F00AF77DC /* Headers */, + FD5049DC0856672000AF77DC /* Sources */, + FD504BF90856672000AF77DC /* Frameworks */, + FD504C000856672000AF77DC /* Rez */, + ); + buildRules = ( + ); + comments = "powerpc binary: should really be called \"Gem.d_ppc\""; + dependencies = ( + ); + name = Gem.pd_darwin; + productInstallPath = /usr/local/lib; + productName = gem_darwin; + productReference = FD504C050856672500AF77DC /* Gem.pd_darwin */; + productType = "com.apple.product-type.library.dynamic"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + F521B3F903898A4A019165F0 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = FD50478D085666BB00AF77DC /* Build configuration list for PBXProject "Gem" */; + compatibilityVersion = "Xcode 2.4"; + hasScannedForEncodings = 1; + mainGroup = F521B3F503898A4A019165F0; + productRefGroup = F521B40003898A71019165F0 /* Products */; + projectDirPath = ""; + projectRoot = ../..; + targets = ( + FD5047A20856671F00AF77DC /* Gem.pd_darwin */, + 3ACEDF070E40B9E800FC2E4B /* Gem.d_fat */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXRezBuildPhase section */ + 3ACEE3A10E40B9E800FC2E4B /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FD504C000856672000AF77DC /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXRezBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 3ACEE1630E40B9E800FC2E4B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3ACEE1640E40B9E800FC2E4B /* CPPExtern.cpp in Sources */, + 3ACEE1650E40B9E800FC2E4B /* GemBase.cpp in Sources */, + 3ACEE1660E40B9E800FC2E4B /* GemCache.cpp in Sources */, + 3ACEE1670E40B9E800FC2E4B /* GemEvent.cpp in Sources */, + 3ACEE1680E40B9E800FC2E4B /* GemFuncUtil.cpp in Sources */, + 3ACEE1690E40B9E800FC2E4B /* GemGluObj.cpp in Sources */, + 3ACEE16A0E40B9E800FC2E4B /* GemGLUtil.cpp in Sources */, + 3ACEE16B0E40B9E800FC2E4B /* GemLoadObj.cpp in Sources */, + 3ACEE16C0E40B9E800FC2E4B /* GemModelData.cpp in Sources */, + 3ACEE16D0E40B9E800FC2E4B /* GemPixDualObj.cpp in Sources */, + 3ACEE16E0E40B9E800FC2E4B /* GemPixImageLoad.cpp in Sources */, + 3ACEE16F0E40B9E800FC2E4B /* GemPixImageSave.cpp in Sources */, + 3ACEE1700E40B9E800FC2E4B /* GemPixObj.cpp in Sources */, + 3ACEE1710E40B9E800FC2E4B /* GemPixUtil.cpp in Sources */, + 3ACEE1720E40B9E800FC2E4B /* GemSetup.cpp in Sources */, + 3ACEE1730E40B9E800FC2E4B /* GemShape.cpp in Sources */, + 3ACEE1740E40B9E800FC2E4B /* GemState.cpp in Sources */, + 3ACEE1750E40B9E800FC2E4B /* GemWinCreateMac.cpp in Sources */, + 3ACEE1760E40B9E800FC2E4B /* Matrix.cpp in Sources */, + 3ACEE1770E40B9E800FC2E4B /* TextBase.cpp in Sources */, + 3ACEE1780E40B9E800FC2E4B /* gemlist_info.cpp in Sources */, + 3ACEE1790E40B9E800FC2E4B /* GemLoaders.cpp in Sources */, + 3ACEE17A0E40B9E800FC2E4B /* GemMan.cpp in Sources */, + 3ACEE17B0E40B9E800FC2E4B /* GemPathBase.cpp in Sources */, + 3ACEE17C0E40B9E800FC2E4B /* GemPBuffer.cpp in Sources */, + 3ACEE17D0E40B9E800FC2E4B /* GemPixConvertAltivec.cpp in Sources */, + 3ACEE17E0E40B9E800FC2E4B /* GemPixConvertSSE2.cpp in Sources */, + 3ACEE17F0E40B9E800FC2E4B /* GemSIMD.cpp in Sources */, + 3ACEE1800E40B9E800FC2E4B /* GemVector.cpp in Sources */, + 3ACEE1810E40B9E800FC2E4B /* GemVertex.cpp in Sources */, + 3ACEE1820E40B9E800FC2E4B /* glew.cpp in Sources */, + 3ACEE1830E40B9E800FC2E4B /* gemframebuffer.cpp in Sources */, + 3ACEE1840E40B9E800FC2E4B /* gemhead.cpp in Sources */, + 3ACEE1850E40B9E800FC2E4B /* gemkeyboard.cpp in Sources */, + 3ACEE1860E40B9E800FC2E4B /* gemkeyname.cpp in Sources */, + 3ACEE1870E40B9E800FC2E4B /* gemlist_matrix.cpp in Sources */, + 3ACEE1880E40B9E800FC2E4B /* gemlist.cpp in Sources */, + 3ACEE1890E40B9E800FC2E4B /* gemmouse.cpp in Sources */, + 3ACEE18A0E40B9E800FC2E4B /* gemreceive.cpp in Sources */, + 3ACEE18B0E40B9E800FC2E4B /* gemwin.cpp in Sources */, + 3ACEE18C0E40B9E800FC2E4B /* render_trigger.cpp in Sources */, + 3ACEE18D0E40B9E800FC2E4B /* circle.cpp in Sources */, + 3ACEE18E0E40B9E800FC2E4B /* colorSquare.cpp in Sources */, + 3ACEE18F0E40B9E800FC2E4B /* cone.cpp in Sources */, + 3ACEE1900E40B9E800FC2E4B /* cube.cpp in Sources */, + 3ACEE1910E40B9E800FC2E4B /* cuboid.cpp in Sources */, + 3ACEE1920E40B9E800FC2E4B /* curve.cpp in Sources */, + 3ACEE1930E40B9E800FC2E4B /* curve3d.cpp in Sources */, + 3ACEE1940E40B9E800FC2E4B /* cylinder.cpp in Sources */, + 3ACEE1950E40B9E800FC2E4B /* disk.cpp in Sources */, + 3ACEE1960E40B9E800FC2E4B /* GemSplash.cpp in Sources */, + 3ACEE1970E40B9E800FC2E4B /* imageVert.cpp in Sources */, + 3ACEE1980E40B9E800FC2E4B /* mesh_square.cpp in Sources */, + 3ACEE1990E40B9E800FC2E4B /* model_loader.cpp in Sources */, + 3ACEE19A0E40B9E800FC2E4B /* model.cpp in Sources */, + 3ACEE19B0E40B9E800FC2E4B /* multimodel.cpp in Sources */, + 3ACEE19C0E40B9E800FC2E4B /* newWave.cpp in Sources */, + 3ACEE19D0E40B9E800FC2E4B /* polygon.cpp in Sources */, + 3ACEE19E0E40B9E800FC2E4B /* pqtorusknots.cpp in Sources */, + 3ACEE19F0E40B9E800FC2E4B /* primTri.cpp in Sources */, + 3ACEE1A00E40B9E800FC2E4B /* rectangle.cpp in Sources */, + 3ACEE1A10E40B9E800FC2E4B /* ripple.cpp in Sources */, + 3ACEE1A20E40B9E800FC2E4B /* rubber.cpp in Sources */, + 3ACEE1A30E40B9E800FC2E4B /* scopeXYZ.cpp in Sources */, + 3ACEE1A40E40B9E800FC2E4B /* slideSquares.cpp in Sources */, + 3ACEE1A50E40B9E800FC2E4B /* sphere.cpp in Sources */, + 3ACEE1A60E40B9E800FC2E4B /* sphere3d.cpp in Sources */, + 3ACEE1A70E40B9E800FC2E4B /* square.cpp in Sources */, + 3ACEE1A80E40B9E800FC2E4B /* teapot.cpp in Sources */, + 3ACEE1A90E40B9E800FC2E4B /* text2d.cpp in Sources */, + 3ACEE1AA0E40B9E800FC2E4B /* text3d.cpp in Sources */, + 3ACEE1AB0E40B9E800FC2E4B /* textextruded.cpp in Sources */, + 3ACEE1AC0E40B9E800FC2E4B /* textoutline.cpp in Sources */, + 3ACEE1AD0E40B9E800FC2E4B /* torus.cpp in Sources */, + 3ACEE1AE0E40B9E800FC2E4B /* trapezoid.cpp in Sources */, + 3ACEE1AF0E40B9E800FC2E4B /* triangle.cpp in Sources */, + 3ACEE1B00E40B9E800FC2E4B /* tube.cpp in Sources */, + 3ACEE1B10E40B9E800FC2E4B /* accumrotate.cpp in Sources */, + 3ACEE1B20E40B9E800FC2E4B /* alpha.cpp in Sources */, + 3ACEE1B30E40B9E800FC2E4B /* ambient.cpp in Sources */, + 3ACEE1B40E40B9E800FC2E4B /* ambientRGB.cpp in Sources */, + 3ACEE1B50E40B9E800FC2E4B /* camera.cpp in Sources */, + 3ACEE1B60E40B9E800FC2E4B /* color.cpp in Sources */, + 3ACEE1B70E40B9E800FC2E4B /* colorRGB.cpp in Sources */, + 3ACEE1B80E40B9E800FC2E4B /* depth.cpp in Sources */, + 3ACEE1B90E40B9E800FC2E4B /* diffuse.cpp in Sources */, + 3ACEE1BA0E40B9E800FC2E4B /* diffuseRGB.cpp in Sources */, + 3ACEE1BB0E40B9E800FC2E4B /* emission.cpp in Sources */, + 3ACEE1BC0E40B9E800FC2E4B /* emissionRGB.cpp in Sources */, + 3ACEE1BD0E40B9E800FC2E4B /* fragment_program.cpp in Sources */, + 3ACEE1BE0E40B9E800FC2E4B /* glsl_fragment.cpp in Sources */, + 3ACEE1BF0E40B9E800FC2E4B /* glsl_program.cpp in Sources */, + 3ACEE1C00E40B9E800FC2E4B /* glsl_vertex.cpp in Sources */, + 3ACEE1C10E40B9E800FC2E4B /* linear_path.cpp in Sources */, + 3ACEE1C20E40B9E800FC2E4B /* ortho.cpp in Sources */, + 3ACEE1C30E40B9E800FC2E4B /* polygon_smooth.cpp in Sources */, + 3ACEE1C40E40B9E800FC2E4B /* rotate.cpp in Sources */, + 3ACEE1C50E40B9E800FC2E4B /* rotateXYZ.cpp in Sources */, + 3ACEE1C60E40B9E800FC2E4B /* scale.cpp in Sources */, + 3ACEE1C70E40B9E800FC2E4B /* scaleXYZ.cpp in Sources */, + 3ACEE1C80E40B9E800FC2E4B /* separator.cpp in Sources */, + 3ACEE1C90E40B9E800FC2E4B /* shearXY.cpp in Sources */, + 3ACEE1CA0E40B9E800FC2E4B /* shearXZ.cpp in Sources */, + 3ACEE1CB0E40B9E800FC2E4B /* shearYX.cpp in Sources */, + 3ACEE1CC0E40B9E800FC2E4B /* shearYZ.cpp in Sources */, + 3ACEE1CD0E40B9E800FC2E4B /* shearZX.cpp in Sources */, + 3ACEE1CE0E40B9E800FC2E4B /* shearZY.cpp in Sources */, + 3ACEE1CF0E40B9E800FC2E4B /* shininess.cpp in Sources */, + 3ACEE1D00E40B9E800FC2E4B /* specular.cpp in Sources */, + 3ACEE1D10E40B9E800FC2E4B /* specularRGB.cpp in Sources */, + 3ACEE1D20E40B9E800FC2E4B /* spline_path.cpp in Sources */, + 3ACEE1D30E40B9E800FC2E4B /* translate.cpp in Sources */, + 3ACEE1D40E40B9E800FC2E4B /* translateXYZ.cpp in Sources */, + 3ACEE1D50E40B9E800FC2E4B /* vertex_program.cpp in Sources */, + 3ACEE1D60E40B9E800FC2E4B /* light.cpp in Sources */, + 3ACEE1D70E40B9E800FC2E4B /* spot_light.cpp in Sources */, + 3ACEE1D80E40B9E800FC2E4B /* world_light.cpp in Sources */, + 3ACEE1D90E40B9E800FC2E4B /* GEMglAccum.cpp in Sources */, + 3ACEE1DA0E40B9E800FC2E4B /* GEMglActiveTextureARB.cpp in Sources */, + 3ACEE1DB0E40B9E800FC2E4B /* GEMglAlphaFunc.cpp in Sources */, + 3ACEE1DC0E40B9E800FC2E4B /* GEMglAreTexturesResident.cpp in Sources */, + 3ACEE1DD0E40B9E800FC2E4B /* GEMglArrayElement.cpp in Sources */, + 3ACEE1DE0E40B9E800FC2E4B /* GEMglBegin.cpp in Sources */, + 3ACEE1DF0E40B9E800FC2E4B /* GEMglBindProgramARB.cpp in Sources */, + 3ACEE1E00E40B9E800FC2E4B /* GEMglBindTexture.cpp in Sources */, + 3ACEE1E10E40B9E800FC2E4B /* GEMglBitmap.cpp in Sources */, + 3ACEE1E20E40B9E800FC2E4B /* GEMglBlendEquation.cpp in Sources */, + 3ACEE1E30E40B9E800FC2E4B /* GEMglBlendFunc.cpp in Sources */, + 3ACEE1E40E40B9E800FC2E4B /* GEMglCallList.cpp in Sources */, + 3ACEE1E50E40B9E800FC2E4B /* GEMglClear.cpp in Sources */, + 3ACEE1E60E40B9E800FC2E4B /* GEMglClearAccum.cpp in Sources */, + 3ACEE1E70E40B9E800FC2E4B /* GEMglClearColor.cpp in Sources */, + 3ACEE1E80E40B9E800FC2E4B /* GEMglClearDepth.cpp in Sources */, + 3ACEE1E90E40B9E800FC2E4B /* GEMglClearIndex.cpp in Sources */, + 3ACEE1EA0E40B9E800FC2E4B /* GEMglClearStencil.cpp in Sources */, + 3ACEE1EB0E40B9E800FC2E4B /* GEMglClipPlane.cpp in Sources */, + 3ACEE1EC0E40B9E800FC2E4B /* GEMglColor3b.cpp in Sources */, + 3ACEE1ED0E40B9E800FC2E4B /* GEMglColor3bv.cpp in Sources */, + 3ACEE1EE0E40B9E800FC2E4B /* GEMglColor3d.cpp in Sources */, + 3ACEE1EF0E40B9E800FC2E4B /* GEMglColor3dv.cpp in Sources */, + 3ACEE1F00E40B9E800FC2E4B /* GEMglColor3f.cpp in Sources */, + 3ACEE1F10E40B9E800FC2E4B /* GEMglColor3fv.cpp in Sources */, + 3ACEE1F20E40B9E800FC2E4B /* GEMglColor3i.cpp in Sources */, + 3ACEE1F30E40B9E800FC2E4B /* GEMglColor3iv.cpp in Sources */, + 3ACEE1F40E40B9E800FC2E4B /* GEMglColor3s.cpp in Sources */, + 3ACEE1F50E40B9E800FC2E4B /* GEMglColor3sv.cpp in Sources */, + 3ACEE1F60E40B9E800FC2E4B /* GEMglColor3ub.cpp in Sources */, + 3ACEE1F70E40B9E800FC2E4B /* GEMglColor3ubv.cpp in Sources */, + 3ACEE1F80E40B9E800FC2E4B /* GEMglColor3ui.cpp in Sources */, + 3ACEE1F90E40B9E800FC2E4B /* GEMglColor3uiv.cpp in Sources */, + 3ACEE1FA0E40B9E800FC2E4B /* GEMglColor3us.cpp in Sources */, + 3ACEE1FB0E40B9E800FC2E4B /* GEMglColor3usv.cpp in Sources */, + 3ACEE1FC0E40B9E800FC2E4B /* GEMglColor4b.cpp in Sources */, + 3ACEE1FD0E40B9E800FC2E4B /* GEMglColor4bv.cpp in Sources */, + 3ACEE1FE0E40B9E800FC2E4B /* GEMglColor4d.cpp in Sources */, + 3ACEE1FF0E40B9E800FC2E4B /* GEMglColor4dv.cpp in Sources */, + 3ACEE2000E40B9E800FC2E4B /* GEMglColor4f.cpp in Sources */, + 3ACEE2010E40B9E800FC2E4B /* GEMglColor4fv.cpp in Sources */, + 3ACEE2020E40B9E800FC2E4B /* GEMglColor4i.cpp in Sources */, + 3ACEE2030E40B9E800FC2E4B /* GEMglColor4iv.cpp in Sources */, + 3ACEE2040E40B9E800FC2E4B /* GEMglColor4s.cpp in Sources */, + 3ACEE2050E40B9E800FC2E4B /* GEMglColor4sv.cpp in Sources */, + 3ACEE2060E40B9E800FC2E4B /* GEMglColor4ub.cpp in Sources */, + 3ACEE2070E40B9E800FC2E4B /* GEMglColor4ubv.cpp in Sources */, + 3ACEE2080E40B9E800FC2E4B /* GEMglColor4ui.cpp in Sources */, + 3ACEE2090E40B9E800FC2E4B /* GEMglColor4uiv.cpp in Sources */, + 3ACEE20A0E40B9E800FC2E4B /* GEMglColor4us.cpp in Sources */, + 3ACEE20B0E40B9E800FC2E4B /* GEMglColor4usv.cpp in Sources */, + 3ACEE20C0E40B9E800FC2E4B /* GEMglColorMask.cpp in Sources */, + 3ACEE20D0E40B9E800FC2E4B /* GEMglColorMaterial.cpp in Sources */, + 3ACEE20E0E40B9E800FC2E4B /* GEMglCopyPixels.cpp in Sources */, + 3ACEE20F0E40B9E800FC2E4B /* GEMglCopyTexImage1D.cpp in Sources */, + 3ACEE2100E40B9E800FC2E4B /* GEMglCopyTexImage2D.cpp in Sources */, + 3ACEE2110E40B9E800FC2E4B /* GEMglCopyTexSubImage1D.cpp in Sources */, + 3ACEE2120E40B9E800FC2E4B /* GEMglCopyTexSubImage2D.cpp in Sources */, + 3ACEE2130E40B9E800FC2E4B /* GEMglCullFace.cpp in Sources */, + 3ACEE2140E40B9E800FC2E4B /* GEMglDeleteTextures.cpp in Sources */, + 3ACEE2150E40B9E800FC2E4B /* GEMglDepthFunc.cpp in Sources */, + 3ACEE2160E40B9E800FC2E4B /* GEMglDepthMask.cpp in Sources */, + 3ACEE2170E40B9E800FC2E4B /* GEMglDepthRange.cpp in Sources */, + 3ACEE2180E40B9E800FC2E4B /* GEMglDisable.cpp in Sources */, + 3ACEE2190E40B9E800FC2E4B /* GEMglDisableClientState.cpp in Sources */, + 3ACEE21A0E40B9E800FC2E4B /* GEMglDrawArrays.cpp in Sources */, + 3ACEE21B0E40B9E800FC2E4B /* GEMglDrawBuffer.cpp in Sources */, + 3ACEE21C0E40B9E800FC2E4B /* GEMglDrawElements.cpp in Sources */, + 3ACEE21D0E40B9E800FC2E4B /* GEMglEdgeFlag.cpp in Sources */, + 3ACEE21E0E40B9E800FC2E4B /* GEMglEnable.cpp in Sources */, + 3ACEE21F0E40B9E800FC2E4B /* GEMglEnableClientState.cpp in Sources */, + 3ACEE2200E40B9E800FC2E4B /* GEMglEnd.cpp in Sources */, + 3ACEE2210E40B9E800FC2E4B /* GEMglEndList.cpp in Sources */, + 3ACEE2220E40B9E800FC2E4B /* GEMglEvalCoord1d.cpp in Sources */, + 3ACEE2230E40B9E800FC2E4B /* GEMglEvalCoord1dv.cpp in Sources */, + 3ACEE2240E40B9E800FC2E4B /* GEMglEvalCoord1f.cpp in Sources */, + 3ACEE2250E40B9E800FC2E4B /* GEMglEvalCoord1fv.cpp in Sources */, + 3ACEE2260E40B9E800FC2E4B /* GEMglEvalCoord2d.cpp in Sources */, + 3ACEE2270E40B9E800FC2E4B /* GEMglEvalCoord2dv.cpp in Sources */, + 3ACEE2280E40B9E800FC2E4B /* GEMglEvalCoord2f.cpp in Sources */, + 3ACEE2290E40B9E800FC2E4B /* GEMglEvalCoord2fv.cpp in Sources */, + 3ACEE22A0E40B9E800FC2E4B /* GEMglEvalMesh1.cpp in Sources */, + 3ACEE22B0E40B9E800FC2E4B /* GEMglEvalMesh2.cpp in Sources */, + 3ACEE22C0E40B9E800FC2E4B /* GEMglEvalPoint1.cpp in Sources */, + 3ACEE22D0E40B9E800FC2E4B /* GEMglEvalPoint2.cpp in Sources */, + 3ACEE22E0E40B9E800FC2E4B /* GEMglFeedbackBuffer.cpp in Sources */, + 3ACEE22F0E40B9E800FC2E4B /* GEMglFinish.cpp in Sources */, + 3ACEE2300E40B9E800FC2E4B /* GEMglFlush.cpp in Sources */, + 3ACEE2310E40B9E800FC2E4B /* GEMglFogf.cpp in Sources */, + 3ACEE2320E40B9E800FC2E4B /* GEMglFogfv.cpp in Sources */, + 3ACEE2330E40B9E800FC2E4B /* GEMglFogi.cpp in Sources */, + 3ACEE2340E40B9E800FC2E4B /* GEMglFogiv.cpp in Sources */, + 3ACEE2350E40B9E800FC2E4B /* GEMglFrontFace.cpp in Sources */, + 3ACEE2360E40B9E800FC2E4B /* GEMglFrustum.cpp in Sources */, + 3ACEE2370E40B9E800FC2E4B /* GEMglGenLists.cpp in Sources */, + 3ACEE2380E40B9E800FC2E4B /* GEMglGenProgramsARB.cpp in Sources */, + 3ACEE2390E40B9E800FC2E4B /* GEMglGenTextures.cpp in Sources */, + 3ACEE23A0E40B9E800FC2E4B /* GEMglGetError.cpp in Sources */, + 3ACEE23B0E40B9E800FC2E4B /* GEMglGetFloatv.cpp in Sources */, + 3ACEE23C0E40B9E800FC2E4B /* GEMglGetMapdv.cpp in Sources */, + 3ACEE23D0E40B9E800FC2E4B /* GEMglGetMapfv.cpp in Sources */, + 3ACEE23E0E40B9E800FC2E4B /* GEMglGetMapiv.cpp in Sources */, + 3ACEE23F0E40B9E800FC2E4B /* GEMglGetPointerv.cpp in Sources */, + 3ACEE2400E40B9E800FC2E4B /* GEMglGetString.cpp in Sources */, + 3ACEE2410E40B9E800FC2E4B /* GEMglHint.cpp in Sources */, + 3ACEE2420E40B9E800FC2E4B /* GEMglIndexd.cpp in Sources */, + 3ACEE2430E40B9E800FC2E4B /* GEMglIndexdv.cpp in Sources */, + 3ACEE2440E40B9E800FC2E4B /* GEMglIndexf.cpp in Sources */, + 3ACEE2450E40B9E800FC2E4B /* GEMglIndexfv.cpp in Sources */, + 3ACEE2460E40B9E800FC2E4B /* GEMglIndexi.cpp in Sources */, + 3ACEE2470E40B9E800FC2E4B /* GEMglIndexiv.cpp in Sources */, + 3ACEE2480E40B9E800FC2E4B /* GEMglIndexMask.cpp in Sources */, + 3ACEE2490E40B9E800FC2E4B /* GEMglIndexs.cpp in Sources */, + 3ACEE24A0E40B9E800FC2E4B /* GEMglIndexsv.cpp in Sources */, + 3ACEE24B0E40B9E800FC2E4B /* GEMglIndexub.cpp in Sources */, + 3ACEE24C0E40B9E800FC2E4B /* GEMglIndexubv.cpp in Sources */, + 3ACEE24D0E40B9E800FC2E4B /* GEMglInitNames.cpp in Sources */, + 3ACEE24E0E40B9E800FC2E4B /* GEMglIsEnabled.cpp in Sources */, + 3ACEE24F0E40B9E800FC2E4B /* GEMglIsList.cpp in Sources */, + 3ACEE2500E40B9E800FC2E4B /* GEMglIsTexture.cpp in Sources */, + 3ACEE2510E40B9E800FC2E4B /* GEMglLightf.cpp in Sources */, + 3ACEE2520E40B9E800FC2E4B /* GEMglLighti.cpp in Sources */, + 3ACEE2530E40B9E800FC2E4B /* GEMglLightModelf.cpp in Sources */, + 3ACEE2540E40B9E800FC2E4B /* GEMglLightModeli.cpp in Sources */, + 3ACEE2550E40B9E800FC2E4B /* GEMglLineStipple.cpp in Sources */, + 3ACEE2560E40B9E800FC2E4B /* GEMglLineWidth.cpp in Sources */, + 3ACEE2570E40B9E800FC2E4B /* GEMglLoadIdentity.cpp in Sources */, + 3ACEE2580E40B9E800FC2E4B /* GEMglLoadMatrixd.cpp in Sources */, + 3ACEE2590E40B9E800FC2E4B /* GEMglLoadMatrixf.cpp in Sources */, + 3ACEE25A0E40B9E800FC2E4B /* GEMglLoadName.cpp in Sources */, + 3ACEE25B0E40B9E800FC2E4B /* GEMglLoadTransposeMatrixd.cpp in Sources */, + 3ACEE25C0E40B9E800FC2E4B /* GEMglLoadTransposeMatrixf.cpp in Sources */, + 3ACEE25D0E40B9E800FC2E4B /* GEMglLogicOp.cpp in Sources */, + 3ACEE25E0E40B9E800FC2E4B /* GEMglMap1d.cpp in Sources */, + 3ACEE25F0E40B9E800FC2E4B /* GEMglMap1f.cpp in Sources */, + 3ACEE2600E40B9E800FC2E4B /* GEMglMap2d.cpp in Sources */, + 3ACEE2610E40B9E800FC2E4B /* GEMglMap2f.cpp in Sources */, + 3ACEE2620E40B9E800FC2E4B /* GEMglMapGrid1d.cpp in Sources */, + 3ACEE2630E40B9E800FC2E4B /* GEMglMapGrid1f.cpp in Sources */, + 3ACEE2640E40B9E800FC2E4B /* GEMglMapGrid2d.cpp in Sources */, + 3ACEE2650E40B9E800FC2E4B /* GEMglMapGrid2f.cpp in Sources */, + 3ACEE2660E40B9E800FC2E4B /* GEMglMaterialf.cpp in Sources */, + 3ACEE2670E40B9E800FC2E4B /* GEMglMateriali.cpp in Sources */, + 3ACEE2680E40B9E800FC2E4B /* GEMglMatrixMode.cpp in Sources */, + 3ACEE2690E40B9E800FC2E4B /* GEMglMultiTexCoord2fARB.cpp in Sources */, + 3ACEE26A0E40B9E800FC2E4B /* GEMglMultMatrixd.cpp in Sources */, + 3ACEE26B0E40B9E800FC2E4B /* GEMglMultMatrixf.cpp in Sources */, + 3ACEE26C0E40B9E800FC2E4B /* GEMglMultTransposeMatrixd.cpp in Sources */, + 3ACEE26D0E40B9E800FC2E4B /* GEMglMultTransposeMatrixf.cpp in Sources */, + 3ACEE26E0E40B9E800FC2E4B /* GEMglNewList.cpp in Sources */, + 3ACEE26F0E40B9E800FC2E4B /* GEMglNormal3b.cpp in Sources */, + 3ACEE2700E40B9E800FC2E4B /* GEMglNormal3bv.cpp in Sources */, + 3ACEE2710E40B9E800FC2E4B /* GEMglNormal3d.cpp in Sources */, + 3ACEE2720E40B9E800FC2E4B /* GEMglNormal3dv.cpp in Sources */, + 3ACEE2730E40B9E800FC2E4B /* GEMglNormal3f.cpp in Sources */, + 3ACEE2740E40B9E800FC2E4B /* GEMglNormal3fv.cpp in Sources */, + 3ACEE2750E40B9E800FC2E4B /* GEMglNormal3i.cpp in Sources */, + 3ACEE2760E40B9E800FC2E4B /* GEMglNormal3iv.cpp in Sources */, + 3ACEE2770E40B9E800FC2E4B /* GEMglNormal3s.cpp in Sources */, + 3ACEE2780E40B9E800FC2E4B /* GEMglNormal3sv.cpp in Sources */, + 3ACEE2790E40B9E800FC2E4B /* GEMglOrtho.cpp in Sources */, + 3ACEE27A0E40B9E800FC2E4B /* GEMglPassThrough.cpp in Sources */, + 3ACEE27B0E40B9E800FC2E4B /* GEMglPixelStoref.cpp in Sources */, + 3ACEE27C0E40B9E800FC2E4B /* GEMglPixelStorei.cpp in Sources */, + 3ACEE27D0E40B9E800FC2E4B /* GEMglPixelTransferf.cpp in Sources */, + 3ACEE27E0E40B9E800FC2E4B /* GEMglPixelTransferi.cpp in Sources */, + 3ACEE27F0E40B9E800FC2E4B /* GEMglPixelZoom.cpp in Sources */, + 3ACEE2800E40B9E800FC2E4B /* GEMglPointSize.cpp in Sources */, + 3ACEE2810E40B9E800FC2E4B /* GEMglPolygonMode.cpp in Sources */, + 3ACEE2820E40B9E800FC2E4B /* GEMglPolygonOffset.cpp in Sources */, + 3ACEE2830E40B9E800FC2E4B /* GEMglPopAttrib.cpp in Sources */, + 3ACEE2840E40B9E800FC2E4B /* GEMglPopClientAttrib.cpp in Sources */, + 3ACEE2850E40B9E800FC2E4B /* GEMglPopMatrix.cpp in Sources */, + 3ACEE2860E40B9E800FC2E4B /* GEMglPopName.cpp in Sources */, + 3ACEE2870E40B9E800FC2E4B /* GEMglPrioritizeTextures.cpp in Sources */, + 3ACEE2880E40B9E800FC2E4B /* GEMglProgramEnvParameter4dARB.cpp in Sources */, + 3ACEE2890E40B9E800FC2E4B /* GEMglProgramEnvParameter4fvARB.cpp in Sources */, + 3ACEE28A0E40B9E800FC2E4B /* GEMglProgramLocalParameter4fvARB.cpp in Sources */, + 3ACEE28B0E40B9E800FC2E4B /* GEMglProgramStringARB.cpp in Sources */, + 3ACEE28C0E40B9E800FC2E4B /* GEMglPushAttrib.cpp in Sources */, + 3ACEE28D0E40B9E800FC2E4B /* GEMglPushClientAttrib.cpp in Sources */, + 3ACEE28E0E40B9E800FC2E4B /* GEMglPushMatrix.cpp in Sources */, + 3ACEE28F0E40B9E800FC2E4B /* GEMglPushName.cpp in Sources */, + 3ACEE2900E40B9E800FC2E4B /* GEMglRasterPos2d.cpp in Sources */, + 3ACEE2910E40B9E800FC2E4B /* GEMglRasterPos2dv.cpp in Sources */, + 3ACEE2920E40B9E800FC2E4B /* GEMglRasterPos2f.cpp in Sources */, + 3ACEE2930E40B9E800FC2E4B /* GEMglRasterPos2fv.cpp in Sources */, + 3ACEE2940E40B9E800FC2E4B /* GEMglRasterPos2i.cpp in Sources */, + 3ACEE2950E40B9E800FC2E4B /* GEMglRasterPos2iv.cpp in Sources */, + 3ACEE2960E40B9E800FC2E4B /* GEMglRasterPos2s.cpp in Sources */, + 3ACEE2970E40B9E800FC2E4B /* GEMglRasterPos2sv.cpp in Sources */, + 3ACEE2980E40B9E800FC2E4B /* GEMglRasterPos3d.cpp in Sources */, + 3ACEE2990E40B9E800FC2E4B /* GEMglRasterPos3dv.cpp in Sources */, + 3ACEE29A0E40B9E800FC2E4B /* GEMglRasterPos3f.cpp in Sources */, + 3ACEE29B0E40B9E800FC2E4B /* GEMglRasterPos3fv.cpp in Sources */, + 3ACEE29C0E40B9E800FC2E4B /* GEMglRasterPos3i.cpp in Sources */, + 3ACEE29D0E40B9E800FC2E4B /* GEMglRasterPos3iv.cpp in Sources */, + 3ACEE29E0E40B9E800FC2E4B /* GEMglRasterPos3s.cpp in Sources */, + 3ACEE29F0E40B9E800FC2E4B /* GEMglRasterPos3sv.cpp in Sources */, + 3ACEE2A00E40B9E800FC2E4B /* GEMglRasterPos4d.cpp in Sources */, + 3ACEE2A10E40B9E800FC2E4B /* GEMglRasterPos4dv.cpp in Sources */, + 3ACEE2A20E40B9E800FC2E4B /* GEMglRasterPos4f.cpp in Sources */, + 3ACEE2A30E40B9E800FC2E4B /* GEMglRasterPos4fv.cpp in Sources */, + 3ACEE2A40E40B9E800FC2E4B /* GEMglRasterPos4i.cpp in Sources */, + 3ACEE2A50E40B9E800FC2E4B /* GEMglRasterPos4iv.cpp in Sources */, + 3ACEE2A60E40B9E800FC2E4B /* GEMglRasterPos4s.cpp in Sources */, + 3ACEE2A70E40B9E800FC2E4B /* GEMglRasterPos4sv.cpp in Sources */, + 3ACEE2A80E40B9E800FC2E4B /* GEMglRectd.cpp in Sources */, + 3ACEE2A90E40B9E800FC2E4B /* GEMglRectf.cpp in Sources */, + 3ACEE2AA0E40B9E800FC2E4B /* GEMglRecti.cpp in Sources */, + 3ACEE2AB0E40B9E800FC2E4B /* GEMglRects.cpp in Sources */, + 3ACEE2AC0E40B9E800FC2E4B /* GEMglRenderMode.cpp in Sources */, + 3ACEE2AD0E40B9E800FC2E4B /* GEMglReportError.cpp in Sources */, + 3ACEE2AE0E40B9E800FC2E4B /* GEMglRotated.cpp in Sources */, + 3ACEE2AF0E40B9E800FC2E4B /* GEMglRotatef.cpp in Sources */, + 3ACEE2B00E40B9E800FC2E4B /* GEMglScaled.cpp in Sources */, + 3ACEE2B10E40B9E800FC2E4B /* GEMglScalef.cpp in Sources */, + 3ACEE2B20E40B9E800FC2E4B /* GEMglScissor.cpp in Sources */, + 3ACEE2B30E40B9E800FC2E4B /* GEMglSelectBuffer.cpp in Sources */, + 3ACEE2B40E40B9E800FC2E4B /* GEMglShadeModel.cpp in Sources */, + 3ACEE2B50E40B9E800FC2E4B /* GEMglStencilFunc.cpp in Sources */, + 3ACEE2B60E40B9E800FC2E4B /* GEMglStencilMask.cpp in Sources */, + 3ACEE2B70E40B9E800FC2E4B /* GEMglStencilOp.cpp in Sources */, + 3ACEE2B80E40B9E800FC2E4B /* GEMglTexCoord1d.cpp in Sources */, + 3ACEE2B90E40B9E800FC2E4B /* GEMglTexCoord1dv.cpp in Sources */, + 3ACEE2BA0E40B9E800FC2E4B /* GEMglTexCoord1f.cpp in Sources */, + 3ACEE2BB0E40B9E800FC2E4B /* GEMglTexCoord1fv.cpp in Sources */, + 3ACEE2BC0E40B9E800FC2E4B /* GEMglTexCoord1i.cpp in Sources */, + 3ACEE2BD0E40B9E800FC2E4B /* GEMglTexCoord1iv.cpp in Sources */, + 3ACEE2BE0E40B9E800FC2E4B /* GEMglTexCoord1s.cpp in Sources */, + 3ACEE2BF0E40B9E800FC2E4B /* GEMglTexCoord1sv.cpp in Sources */, + 3ACEE2C00E40B9E800FC2E4B /* GEMglTexCoord2d.cpp in Sources */, + 3ACEE2C10E40B9E800FC2E4B /* GEMglTexCoord2dv.cpp in Sources */, + 3ACEE2C20E40B9E800FC2E4B /* GEMglTexCoord2f.cpp in Sources */, + 3ACEE2C30E40B9E800FC2E4B /* GEMglTexCoord2fv.cpp in Sources */, + 3ACEE2C40E40B9E800FC2E4B /* GEMglTexCoord2i.cpp in Sources */, + 3ACEE2C50E40B9E800FC2E4B /* GEMglTexCoord2iv.cpp in Sources */, + 3ACEE2C60E40B9E800FC2E4B /* GEMglTexCoord2s.cpp in Sources */, + 3ACEE2C70E40B9E800FC2E4B /* GEMglTexCoord2sv.cpp in Sources */, + 3ACEE2C80E40B9E800FC2E4B /* GEMglTexCoord3d.cpp in Sources */, + 3ACEE2C90E40B9E800FC2E4B /* GEMglTexCoord3dv.cpp in Sources */, + 3ACEE2CA0E40B9E800FC2E4B /* GEMglTexCoord3f.cpp in Sources */, + 3ACEE2CB0E40B9E800FC2E4B /* GEMglTexCoord3fv.cpp in Sources */, + 3ACEE2CC0E40B9E800FC2E4B /* GEMglTexCoord3i.cpp in Sources */, + 3ACEE2CD0E40B9E800FC2E4B /* GEMglTexCoord3iv.cpp in Sources */, + 3ACEE2CE0E40B9E800FC2E4B /* GEMglTexCoord3s.cpp in Sources */, + 3ACEE2CF0E40B9E800FC2E4B /* GEMglTexCoord3sv.cpp in Sources */, + 3ACEE2D00E40B9E800FC2E4B /* GEMglTexCoord4d.cpp in Sources */, + 3ACEE2D10E40B9E800FC2E4B /* GEMglTexCoord4dv.cpp in Sources */, + 3ACEE2D20E40B9E800FC2E4B /* GEMglTexCoord4f.cpp in Sources */, + 3ACEE2D30E40B9E800FC2E4B /* GEMglTexCoord4fv.cpp in Sources */, + 3ACEE2D40E40B9E800FC2E4B /* GEMglTexCoord4i.cpp in Sources */, + 3ACEE2D50E40B9E800FC2E4B /* GEMglTexCoord4iv.cpp in Sources */, + 3ACEE2D60E40B9E800FC2E4B /* GEMglTexCoord4s.cpp in Sources */, + 3ACEE2D70E40B9E800FC2E4B /* GEMglTexCoord4sv.cpp in Sources */, + 3ACEE2D80E40B9E800FC2E4B /* GEMglTexEnvf.cpp in Sources */, + 3ACEE2D90E40B9E800FC2E4B /* GEMglTexEnvi.cpp in Sources */, + 3ACEE2DA0E40B9E800FC2E4B /* GEMglTexGend.cpp in Sources */, + 3ACEE2DB0E40B9E800FC2E4B /* GEMglTexGenf.cpp in Sources */, + 3ACEE2DC0E40B9E800FC2E4B /* GEMglTexGenfv.cpp in Sources */, + 3ACEE2DD0E40B9E800FC2E4B /* GEMglTexGeni.cpp in Sources */, + 3ACEE2DE0E40B9E800FC2E4B /* GEMglTexParameterf.cpp in Sources */, + 3ACEE2DF0E40B9E800FC2E4B /* GEMglTexParameteri.cpp in Sources */, + 3ACEE2E00E40B9E800FC2E4B /* GEMglTexSubImage1D.cpp in Sources */, + 3ACEE2E10E40B9E800FC2E4B /* GEMglTexSubImage2D.cpp in Sources */, + 3ACEE2E20E40B9E800FC2E4B /* GEMglTranslated.cpp in Sources */, + 3ACEE2E30E40B9E800FC2E4B /* GEMglTranslatef.cpp in Sources */, + 3ACEE2E40E40B9E800FC2E4B /* GEMglUniform1fARB.cpp in Sources */, + 3ACEE2E50E40B9E800FC2E4B /* GEMgluPerspective.cpp in Sources */, + 3ACEE2E60E40B9E800FC2E4B /* GEMglUseProgramObjectARB.cpp in Sources */, + 3ACEE2E70E40B9E800FC2E4B /* GEMglVertex2d.cpp in Sources */, + 3ACEE2E80E40B9E800FC2E4B /* GEMglVertex2dv.cpp in Sources */, + 3ACEE2E90E40B9E800FC2E4B /* GEMglVertex2f.cpp in Sources */, + 3ACEE2EA0E40B9E800FC2E4B /* GEMglVertex2fv.cpp in Sources */, + 3ACEE2EB0E40B9E800FC2E4B /* GEMglVertex2i.cpp in Sources */, + 3ACEE2EC0E40B9E800FC2E4B /* GEMglVertex2iv.cpp in Sources */, + 3ACEE2ED0E40B9E800FC2E4B /* GEMglVertex2s.cpp in Sources */, + 3ACEE2EE0E40B9E800FC2E4B /* GEMglVertex2sv.cpp in Sources */, + 3ACEE2EF0E40B9E800FC2E4B /* GEMglVertex3d.cpp in Sources */, + 3ACEE2F00E40B9E800FC2E4B /* GEMglVertex3dv.cpp in Sources */, + 3ACEE2F10E40B9E800FC2E4B /* GEMglVertex3f.cpp in Sources */, + 3ACEE2F20E40B9E800FC2E4B /* GEMglVertex3fv.cpp in Sources */, + 3ACEE2F30E40B9E800FC2E4B /* GEMglVertex3i.cpp in Sources */, + 3ACEE2F40E40B9E800FC2E4B /* GEMglVertex3iv.cpp in Sources */, + 3ACEE2F50E40B9E800FC2E4B /* GEMglVertex3s.cpp in Sources */, + 3ACEE2F60E40B9E800FC2E4B /* GEMglVertex3sv.cpp in Sources */, + 3ACEE2F70E40B9E800FC2E4B /* GEMglVertex4d.cpp in Sources */, + 3ACEE2F80E40B9E800FC2E4B /* GEMglVertex4dv.cpp in Sources */, + 3ACEE2F90E40B9E800FC2E4B /* GEMglVertex4f.cpp in Sources */, + 3ACEE2FA0E40B9E800FC2E4B /* GEMglVertex4fv.cpp in Sources */, + 3ACEE2FB0E40B9E800FC2E4B /* GEMglVertex4i.cpp in Sources */, + 3ACEE2FC0E40B9E800FC2E4B /* GEMglVertex4iv.cpp in Sources */, + 3ACEE2FD0E40B9E800FC2E4B /* GEMglVertex4s.cpp in Sources */, + 3ACEE2FE0E40B9E800FC2E4B /* GEMglVertex4sv.cpp in Sources */, + 3ACEE2FF0E40B9E800FC2E4B /* GEMglViewport.cpp in Sources */, + 3ACEE3000E40B9E800FC2E4B /* GLdefine.cpp in Sources */, + 3ACEE3010E40B9E800FC2E4B /* part_color.cpp in Sources */, + 3ACEE3020E40B9E800FC2E4B /* part_damp.cpp in Sources */, + 3ACEE3030E40B9E800FC2E4B /* part_draw.cpp in Sources */, + 3ACEE3040E40B9E800FC2E4B /* part_follow.cpp in Sources */, + 3ACEE3050E40B9E800FC2E4B /* part_gravity.cpp in Sources */, + 3ACEE3060E40B9E800FC2E4B /* part_head.cpp in Sources */, + 3ACEE3070E40B9E800FC2E4B /* part_info.cpp in Sources */, + 3ACEE3080E40B9E800FC2E4B /* part_killold.cpp in Sources */, + 3ACEE3090E40B9E800FC2E4B /* part_killslow.cpp in Sources */, + 3ACEE30A0E40B9E800FC2E4B /* part_orbitpoint.cpp in Sources */, + 3ACEE30B0E40B9E800FC2E4B /* part_render.cpp in Sources */, + 3ACEE30C0E40B9E800FC2E4B /* part_sink.cpp in Sources */, + 3ACEE30D0E40B9E800FC2E4B /* part_size.cpp in Sources */, + 3ACEE30E0E40B9E800FC2E4B /* part_source.cpp in Sources */, + 3ACEE30F0E40B9E800FC2E4B /* part_targetcolor.cpp in Sources */, + 3ACEE3100E40B9E800FC2E4B /* part_targetsize.cpp in Sources */, + 3ACEE3110E40B9E800FC2E4B /* part_velcone.cpp in Sources */, + 3ACEE3120E40B9E800FC2E4B /* part_velocity.cpp in Sources */, + 3ACEE3130E40B9E800FC2E4B /* part_velsphere.cpp in Sources */, + 3ACEE3140E40B9E800FC2E4B /* part_vertex.cpp in Sources */, + 3ACEE3150E40B9E800FC2E4B /* partlib_actionapi.cpp in Sources */, + 3ACEE3160E40B9E800FC2E4B /* partlib_actions.cpp in Sources */, + 3ACEE3170E40B9E800FC2E4B /* partlib_opengl.cpp in Sources */, + 3ACEE3180E40B9E800FC2E4B /* partlib_system.cpp in Sources */, + 3ACEE3190E40B9E800FC2E4B /* film.cpp in Sources */, + 3ACEE31A0E40B9E800FC2E4B /* filmDarwin.cpp in Sources */, + 3ACEE31B0E40B9E800FC2E4B /* filmQT.cpp in Sources */, + 3ACEE31C0E40B9E800FC2E4B /* libfidtrack_fidtrackX.cpp in Sources */, + 3ACEE31D0E40B9E800FC2E4B /* libfidtrack_segment.cpp in Sources */, + 3ACEE31E0E40B9E800FC2E4B /* libfidtrack_treeidmap.cpp in Sources */, + 3ACEE31F0E40B9E800FC2E4B /* pix_2grey.cpp in Sources */, + 3ACEE3200E40B9E800FC2E4B /* pix_a_2grey.cpp in Sources */, + 3ACEE3210E40B9E800FC2E4B /* pix_add.cpp in Sources */, + 3ACEE3220E40B9E800FC2E4B /* pix_aging.cpp in Sources */, + 3ACEE3230E40B9E800FC2E4B /* pix_alpha.cpp in Sources */, + 3ACEE3240E40B9E800FC2E4B /* pix_artoolkit.cpp in Sources */, + 3ACEE3250E40B9E800FC2E4B /* pix_background.cpp in Sources */, + 3ACEE3260E40B9E800FC2E4B /* pix_backlight.cpp in Sources */, + 3ACEE3270E40B9E800FC2E4B /* pix_biquad.cpp in Sources */, + 3ACEE3280E40B9E800FC2E4B /* pix_bitmask.cpp in Sources */, + 3ACEE3290E40B9E800FC2E4B /* pix_blob.cpp in Sources */, + 3ACEE32A0E40B9E800FC2E4B /* pix_blur.cpp in Sources */, + 3ACEE32B0E40B9E800FC2E4B /* pix_buf.cpp in Sources */, + 3ACEE32C0E40B9E800FC2E4B /* pix_buffer_read.cpp in Sources */, + 3ACEE32D0E40B9E800FC2E4B /* pix_buffer_write.cpp in Sources */, + 3ACEE32E0E40B9E800FC2E4B /* pix_buffer.cpp in Sources */, + 3ACEE32F0E40B9E800FC2E4B /* pix_chroma_key.cpp in Sources */, + 3ACEE3300E40B9E800FC2E4B /* pix_clearblock.cpp in Sources */, + 3ACEE3310E40B9E800FC2E4B /* pix_color.cpp in Sources */, + 3ACEE3320E40B9E800FC2E4B /* pix_coloralpha.cpp in Sources */, + 3ACEE3330E40B9E800FC2E4B /* pix_colormatrix.cpp in Sources */, + 3ACEE3340E40B9E800FC2E4B /* pix_colorreduce.cpp in Sources */, + 3ACEE3350E40B9E800FC2E4B /* pix_compare.cpp in Sources */, + 3ACEE3360E40B9E800FC2E4B /* pix_composite.cpp in Sources */, + 3ACEE3370E40B9E800FC2E4B /* pix_contrast.cpp in Sources */, + 3ACEE3380E40B9E800FC2E4B /* pix_convert.cpp in Sources */, + 3ACEE3390E40B9E800FC2E4B /* pix_convolve.cpp in Sources */, + 3ACEE33A0E40B9E800FC2E4B /* pix_coordinate.cpp in Sources */, + 3ACEE33B0E40B9E800FC2E4B /* pix_crop.cpp in Sources */, + 3ACEE33C0E40B9E800FC2E4B /* pix_curve.cpp in Sources */, + 3ACEE33D0E40B9E800FC2E4B /* pix_data.cpp in Sources */, + 3ACEE33E0E40B9E800FC2E4B /* pix_deinterlace.cpp in Sources */, + 3ACEE33F0E40B9E800FC2E4B /* pix_delay.cpp in Sources */, + 3ACEE3400E40B9E800FC2E4B /* pix_diff.cpp in Sources */, + 3ACEE3410E40B9E800FC2E4B /* pix_dot.cpp in Sources */, + 3ACEE3420E40B9E800FC2E4B /* pix_draw.cpp in Sources */, + 3ACEE3430E40B9E800FC2E4B /* pix_dump.cpp in Sources */, + 3ACEE3440E40B9E800FC2E4B /* pix_duotone.cpp in Sources */, + 3ACEE3450E40B9E800FC2E4B /* pix_emboss.cpp in Sources */, + 3ACEE3460E40B9E800FC2E4B /* pix_fiducialtrack.cpp in Sources */, + 3ACEE3470E40B9E800FC2E4B /* pix_film.cpp in Sources */, + 3ACEE3480E40B9E800FC2E4B /* pix_filmDarwin.cpp in Sources */, + 3ACEE34A0E40B9E800FC2E4B /* pix_filmNT.cpp in Sources */, + 3ACEE34B0E40B9E800FC2E4B /* pix_filmQT.cpp in Sources */, + 3ACEE34C0E40B9E800FC2E4B /* pix_flip.cpp in Sources */, + 3ACEE34D0E40B9E800FC2E4B /* pix_freeframe.cpp in Sources */, + 3ACEE34E0E40B9E800FC2E4B /* pix_gain.cpp in Sources */, + 3ACEE34F0E40B9E800FC2E4B /* pix_grey.cpp in Sources */, + 3ACEE3500E40B9E800FC2E4B /* pix_halftone.cpp in Sources */, + 3ACEE3510E40B9E800FC2E4B /* pix_histo.cpp in Sources */, + 3ACEE3520E40B9E800FC2E4B /* pix_hit.cpp in Sources */, + 3ACEE3530E40B9E800FC2E4B /* pix_hsv2rgb.cpp in Sources */, + 3ACEE3540E40B9E800FC2E4B /* pix_image.cpp in Sources */, + 3ACEE3550E40B9E800FC2E4B /* pix_imageInPlace.cpp in Sources */, + 3ACEE3560E40B9E800FC2E4B /* pix_indycam.cpp in Sources */, + 3ACEE3570E40B9E800FC2E4B /* pix_info.cpp in Sources */, + 3ACEE3580E40B9E800FC2E4B /* pix_invert.cpp in Sources */, + 3ACEE3590E40B9E800FC2E4B /* pix_kaleidoscope.cpp in Sources */, + 3ACEE35A0E40B9E800FC2E4B /* pix_levels.cpp in Sources */, + 3ACEE35B0E40B9E800FC2E4B /* pix_lumaoffset.cpp in Sources */, + 3ACEE35C0E40B9E800FC2E4B /* pix_mask.cpp in Sources */, + 3ACEE35D0E40B9E800FC2E4B /* pix_mean_color.cpp in Sources */, + 3ACEE35E0E40B9E800FC2E4B /* pix_metaimage.cpp in Sources */, + 3ACEE35F0E40B9E800FC2E4B /* pix_mix.cpp in Sources */, + 3ACEE3600E40B9E800FC2E4B /* pix_motionblur.cpp in Sources */, + 3ACEE3610E40B9E800FC2E4B /* pix_movement.cpp in Sources */, + 3ACEE3620E40B9E800FC2E4B /* pix_movement2.cpp in Sources */, + 3ACEE3630E40B9E800FC2E4B /* pix_movie.cpp in Sources */, + 3ACEE3640E40B9E800FC2E4B /* pix_movieDarwin.cpp in Sources */, + 3ACEE3650E40B9E800FC2E4B /* pix_multiblob.cpp in Sources */, + 3ACEE3660E40B9E800FC2E4B /* pix_multiimage.cpp in Sources */, + 3ACEE3670E40B9E800FC2E4B /* pix_multiply.cpp in Sources */, + 3ACEE3680E40B9E800FC2E4B /* pix_multitexture.cpp in Sources */, + 3ACEE3690E40B9E800FC2E4B /* pix_normalize.cpp in Sources */, + 3ACEE36A0E40B9E800FC2E4B /* pix_offset.cpp in Sources */, + 3ACEE36B0E40B9E800FC2E4B /* pix_pix2sig.cpp in Sources */, + 3ACEE36C0E40B9E800FC2E4B /* pix_posterize.cpp in Sources */, + 3ACEE36D0E40B9E800FC2E4B /* pix_puzzle.cpp in Sources */, + 3ACEE36E0E40B9E800FC2E4B /* pix_rds.cpp in Sources */, + 3ACEE36F0E40B9E800FC2E4B /* pix_record.cpp in Sources */, + 3ACEE3700E40B9E800FC2E4B /* pix_recordQT.cpp in Sources */, + 3ACEE3710E40B9E800FC2E4B /* pix_rectangle.cpp in Sources */, + 3ACEE3720E40B9E800FC2E4B /* pix_refraction.cpp in Sources */, + 3ACEE3730E40B9E800FC2E4B /* pix_resize.cpp in Sources */, + 3ACEE3740E40B9E800FC2E4B /* pix_rgb2hsv.cpp in Sources */, + 3ACEE3750E40B9E800FC2E4B /* pix_rgba.cpp in Sources */, + 3ACEE3760E40B9E800FC2E4B /* pix_roll.cpp in Sources */, + 3ACEE3770E40B9E800FC2E4B /* pix_rtx.cpp in Sources */, + 3ACEE3780E40B9E800FC2E4B /* pix_scanline.cpp in Sources */, + 3ACEE3790E40B9E800FC2E4B /* pix_set.cpp in Sources */, + 3ACEE37A0E40B9E800FC2E4B /* pix_share_read.cpp in Sources */, + 3ACEE37B0E40B9E800FC2E4B /* pix_share_write.cpp in Sources */, + 3ACEE37C0E40B9E800FC2E4B /* pix_sig2pix.cpp in Sources */, + 3ACEE37D0E40B9E800FC2E4B /* pix_snap.cpp in Sources */, + 3ACEE37E0E40B9E800FC2E4B /* pix_snap2tex.cpp in Sources */, + 3ACEE37F0E40B9E800FC2E4B /* pix_subtract.cpp in Sources */, + 3ACEE3800E40B9E800FC2E4B /* pix_takealpha.cpp in Sources */, + 3ACEE3810E40B9E800FC2E4B /* pix_test.cpp in Sources */, + 3ACEE3820E40B9E800FC2E4B /* pix_texture.cpp in Sources */, + 3ACEE3830E40B9E800FC2E4B /* pix_threshold_bernsen.cpp in Sources */, + 3ACEE3840E40B9E800FC2E4B /* pix_threshold.cpp in Sources */, + 3ACEE3850E40B9E800FC2E4B /* pix_tIIR.cpp in Sources */, + 3ACEE3870E40B9E800FC2E4B /* pix_videoDarwin.cpp in Sources */, + 3ACEE3880E40B9E800FC2E4B /* pix_vpaint.cpp in Sources */, + 3ACEE3890E40B9E800FC2E4B /* pix_write.cpp in Sources */, + 3ACEE38A0E40B9E800FC2E4B /* pix_yuv.cpp in Sources */, + 3ACEE38B0E40B9E800FC2E4B /* pix_zoom.cpp in Sources */, + 3ACEE38C0E40B9E800FC2E4B /* record.cpp in Sources */, + 3ACEE38D0E40B9E800FC2E4B /* recordQT.cpp in Sources */, + 3ACEE38E0E40B9E800FC2E4B /* vertex_add.cpp in Sources */, + 3ACEE38F0E40B9E800FC2E4B /* vertex_combine.cpp in Sources */, + 3ACEE3900E40B9E800FC2E4B /* vertex_draw.cpp in Sources */, + 3ACEE3910E40B9E800FC2E4B /* vertex_grid.cpp in Sources */, + 3ACEE3920E40B9E800FC2E4B /* vertex_info.cpp in Sources */, + 3ACEE3930E40B9E800FC2E4B /* vertex_model.cpp in Sources */, + 3ACEE3940E40B9E800FC2E4B /* vertex_mul.cpp in Sources */, + 3ACEE3950E40B9E800FC2E4B /* vertex_offset.cpp in Sources */, + 3ACEE3960E40B9E800FC2E4B /* vertex_quad.cpp in Sources */, + 3ACEE3970E40B9E800FC2E4B /* vertex_scale.cpp in Sources */, + 3ACEE3980E40B9E800FC2E4B /* vertex_set.cpp in Sources */, + 3ACEE3990E40B9E800FC2E4B /* vertex_tabread.cpp in Sources */, + 3ACEE3D90E40C8A800FC2E4B /* GemVersion.cpp in Sources */, + 3AE073940EB8A2CA00223BA6 /* pix_filmOS.cpp in Sources */, + 3AE0739A0EB8A31300223BA6 /* pix_movieOS.cpp in Sources */, + 3AE073A00EB8A34600223BA6 /* pix_videoOS.cpp in Sources */, + 3A6DFE4E0FD528780019C977 /* GEMglMaterialfv.cpp in Sources */, + 3A6DFE540FD528920019C977 /* GEMgluLookAt.cpp in Sources */, + 3A6DFE610FD528CF0019C977 /* GemContext.cpp in Sources */, + 3A6DFE630FD528CF0019C977 /* GemContextData.cpp in Sources */, + 3A6DFE6C0FD5294F0019C977 /* glsl_geometry.cpp in Sources */, + 3A6DFE720FD529880019C977 /* pix_writer.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FD5049DC0856672000AF77DC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FD5049DD0856672000AF77DC /* CPPExtern.cpp in Sources */, + FD5049DE0856672000AF77DC /* GemBase.cpp in Sources */, + FD5049DF0856672000AF77DC /* GemCache.cpp in Sources */, + FD5049E00856672000AF77DC /* GemEvent.cpp in Sources */, + FD5049E10856672000AF77DC /* GemFuncUtil.cpp in Sources */, + FD5049E20856672000AF77DC /* GemGluObj.cpp in Sources */, + FD5049E30856672000AF77DC /* GemGLUtil.cpp in Sources */, + FD5049E40856672000AF77DC /* GemLoadObj.cpp in Sources */, + FD5049E60856672000AF77DC /* GemModelData.cpp in Sources */, + FD5049E80856672000AF77DC /* GemPixDualObj.cpp in Sources */, + FD5049E90856672000AF77DC /* GemPixImageLoad.cpp in Sources */, + FD5049EA0856672000AF77DC /* GemPixImageSave.cpp in Sources */, + FD5049EB0856672000AF77DC /* GemPixObj.cpp in Sources */, + FD5049EC0856672000AF77DC /* GemPixUtil.cpp in Sources */, + FD5049ED0856672000AF77DC /* GemSetup.cpp in Sources */, + FD5049EE0856672000AF77DC /* GemShape.cpp in Sources */, + FD5049EF0856672000AF77DC /* GemState.cpp in Sources */, + FD5049F10856672000AF77DC /* GemWinCreateMac.cpp in Sources */, + FD5049F20856672000AF77DC /* Matrix.cpp in Sources */, + FD5049F40856672000AF77DC /* TextBase.cpp in Sources */, + FD504BEB0856672000AF77DC /* gemlist_info.cpp in Sources */, + 3AB0D86C0E4095E700AF570A /* GemLoaders.cpp in Sources */, + 3AB0D86E0E4095E700AF570A /* GemMan.cpp in Sources */, + 3AB0D8700E4095E700AF570A /* GemPathBase.cpp in Sources */, + 3AB0D8710E4095E700AF570A /* GemPBuffer.cpp in Sources */, + 3AB0D8740E4095E700AF570A /* GemPixConvertAltivec.cpp in Sources */, + 3AB0D8750E4095E700AF570A /* GemPixConvertSSE2.cpp in Sources */, + 3AB0D8760E4095E700AF570A /* GemSIMD.cpp in Sources */, + 3AB0D8770E4095E700AF570A /* GemVector.cpp in Sources */, + 3AB0D8790E4095E700AF570A /* GemVertex.cpp in Sources */, + 3AB0D87D0E40963500AF570A /* glew.cpp in Sources */, + 3AB0D8910E40967400AF570A /* gemframebuffer.cpp in Sources */, + 3AB0D8930E40967400AF570A /* gemhead.cpp in Sources */, + 3AB0D8940E40967400AF570A /* gemkeyboard.cpp in Sources */, + 3AB0D8950E40967400AF570A /* gemkeyname.cpp in Sources */, + 3AB0D8970E40967400AF570A /* gemlist_matrix.cpp in Sources */, + 3AB0D8990E40967400AF570A /* gemlist.cpp in Sources */, + 3AB0D89B0E40967400AF570A /* gemmouse.cpp in Sources */, + 3AB0D89D0E40967400AF570A /* gemreceive.cpp in Sources */, + 3AB0D89F0E40967400AF570A /* gemwin.cpp in Sources */, + 3AB0D8A20E40967400AF570A /* render_trigger.cpp in Sources */, + 3AB0D8ED0E4096A300AF570A /* circle.cpp in Sources */, + 3AB0D8EF0E4096A300AF570A /* colorSquare.cpp in Sources */, + 3AB0D8F10E4096A300AF570A /* cone.cpp in Sources */, + 3AB0D8F30E4096A300AF570A /* cube.cpp in Sources */, + 3AB0D8F50E4096A300AF570A /* cuboid.cpp in Sources */, + 3AB0D8F70E4096A300AF570A /* curve.cpp in Sources */, + 3AB0D8F90E4096A300AF570A /* curve3d.cpp in Sources */, + 3AB0D8FB0E4096A300AF570A /* cylinder.cpp in Sources */, + 3AB0D8FD0E4096A300AF570A /* disk.cpp in Sources */, + 3AB0D8FF0E4096A300AF570A /* GemSplash.cpp in Sources */, + 3AB0D9010E4096A300AF570A /* imageVert.cpp in Sources */, + 3AB0D9040E4096A300AF570A /* mesh_square.cpp in Sources */, + 3AB0D9060E4096A300AF570A /* model_loader.cpp in Sources */, + 3AB0D9080E4096A300AF570A /* model.cpp in Sources */, + 3AB0D90A0E4096A300AF570A /* multimodel.cpp in Sources */, + 3AB0D90C0E4096A300AF570A /* newWave.cpp in Sources */, + 3AB0D90E0E4096A300AF570A /* polygon.cpp in Sources */, + 3AB0D9100E4096A300AF570A /* pqtorusknots.cpp in Sources */, + 3AB0D9120E4096A300AF570A /* primTri.cpp in Sources */, + 3AB0D9140E4096A300AF570A /* rectangle.cpp in Sources */, + 3AB0D9160E4096A300AF570A /* ripple.cpp in Sources */, + 3AB0D9180E4096A300AF570A /* rubber.cpp in Sources */, + 3AB0D91A0E4096A300AF570A /* scopeXYZ.cpp in Sources */, + 3AB0D91C0E4096A300AF570A /* slideSquares.cpp in Sources */, + 3AB0D91E0E4096A300AF570A /* sphere.cpp in Sources */, + 3AB0D9200E4096A300AF570A /* sphere3d.cpp in Sources */, + 3AB0D9220E4096A300AF570A /* square.cpp in Sources */, + 3AB0D9240E4096A300AF570A /* teapot.cpp in Sources */, + 3AB0D9270E4096A300AF570A /* text2d.cpp in Sources */, + 3AB0D9290E4096A300AF570A /* text3d.cpp in Sources */, + 3AB0D92B0E4096A300AF570A /* textextruded.cpp in Sources */, + 3AB0D92D0E4096A300AF570A /* textoutline.cpp in Sources */, + 3AB0D92F0E4096A300AF570A /* torus.cpp in Sources */, + 3AB0D9310E4096A300AF570A /* trapezoid.cpp in Sources */, + 3AB0D9330E4096A300AF570A /* triangle.cpp in Sources */, + 3AB0D9350E4096A300AF570A /* tube.cpp in Sources */, + 3A2DCFC70E40974100767D22 /* accumrotate.cpp in Sources */, + 3A2DCFC90E40974100767D22 /* alpha.cpp in Sources */, + 3A2DCFCB0E40974100767D22 /* ambient.cpp in Sources */, + 3A2DCFCD0E40974100767D22 /* ambientRGB.cpp in Sources */, + 3A2DCFCF0E40974100767D22 /* camera.cpp in Sources */, + 3A2DCFD10E40974100767D22 /* color.cpp in Sources */, + 3A2DCFD30E40974100767D22 /* colorRGB.cpp in Sources */, + 3A2DCFD50E40974100767D22 /* depth.cpp in Sources */, + 3A2DCFD70E40974100767D22 /* diffuse.cpp in Sources */, + 3A2DCFD90E40974100767D22 /* diffuseRGB.cpp in Sources */, + 3A2DCFDB0E40974100767D22 /* emission.cpp in Sources */, + 3A2DCFDD0E40974100767D22 /* emissionRGB.cpp in Sources */, + 3A2DCFDF0E40974100767D22 /* fragment_program.cpp in Sources */, + 3A2DCFE10E40974100767D22 /* glsl_fragment.cpp in Sources */, + 3A2DCFE30E40974100767D22 /* glsl_program.cpp in Sources */, + 3A2DCFE50E40974100767D22 /* glsl_vertex.cpp in Sources */, + 3A2DCFE70E40974100767D22 /* linear_path.cpp in Sources */, + 3A2DCFEA0E40974100767D22 /* ortho.cpp in Sources */, + 3A2DCFEC0E40974100767D22 /* polygon_smooth.cpp in Sources */, + 3A2DCFEE0E40974100767D22 /* rotate.cpp in Sources */, + 3A2DCFF00E40974100767D22 /* rotateXYZ.cpp in Sources */, + 3A2DCFF20E40974100767D22 /* scale.cpp in Sources */, + 3A2DCFF40E40974100767D22 /* scaleXYZ.cpp in Sources */, + 3A2DCFF60E40974100767D22 /* separator.cpp in Sources */, + 3A2DCFF80E40974100767D22 /* shearXY.cpp in Sources */, + 3A2DCFFA0E40974100767D22 /* shearXZ.cpp in Sources */, + 3A2DCFFC0E40974100767D22 /* shearYX.cpp in Sources */, + 3A2DCFFE0E40974100767D22 /* shearYZ.cpp in Sources */, + 3A2DD0000E40974100767D22 /* shearZX.cpp in Sources */, + 3A2DD0020E40974100767D22 /* shearZY.cpp in Sources */, + 3A2DD0040E40974100767D22 /* shininess.cpp in Sources */, + 3A2DD0060E40974100767D22 /* specular.cpp in Sources */, + 3A2DD0080E40974100767D22 /* specularRGB.cpp in Sources */, + 3A2DD00A0E40974100767D22 /* spline_path.cpp in Sources */, + 3A2DD00C0E40974100767D22 /* translate.cpp in Sources */, + 3A2DD00E0E40974100767D22 /* translateXYZ.cpp in Sources */, + 3A2DD0100E40974100767D22 /* vertex_program.cpp in Sources */, + 3A2DD0190E40975A00767D22 /* light.cpp in Sources */, + 3A2DD01C0E40975A00767D22 /* spot_light.cpp in Sources */, + 3A2DD01E0E40975A00767D22 /* world_light.cpp in Sources */, + 3A2DD2740E40978700767D22 /* GEMglAccum.cpp in Sources */, + 3A2DD2760E40978700767D22 /* GEMglActiveTextureARB.cpp in Sources */, + 3A2DD2780E40978700767D22 /* GEMglAlphaFunc.cpp in Sources */, + 3A2DD27A0E40978700767D22 /* GEMglAreTexturesResident.cpp in Sources */, + 3A2DD27C0E40978700767D22 /* GEMglArrayElement.cpp in Sources */, + 3A2DD27E0E40978700767D22 /* GEMglBegin.cpp in Sources */, + 3A2DD2800E40978700767D22 /* GEMglBindProgramARB.cpp in Sources */, + 3A2DD2820E40978700767D22 /* GEMglBindTexture.cpp in Sources */, + 3A2DD2840E40978700767D22 /* GEMglBitmap.cpp in Sources */, + 3A2DD2860E40978700767D22 /* GEMglBlendEquation.cpp in Sources */, + 3A2DD2880E40978700767D22 /* GEMglBlendFunc.cpp in Sources */, + 3A2DD28A0E40978700767D22 /* GEMglCallList.cpp in Sources */, + 3A2DD28C0E40978700767D22 /* GEMglClear.cpp in Sources */, + 3A2DD28E0E40978700767D22 /* GEMglClearAccum.cpp in Sources */, + 3A2DD2900E40978700767D22 /* GEMglClearColor.cpp in Sources */, + 3A2DD2920E40978700767D22 /* GEMglClearDepth.cpp in Sources */, + 3A2DD2940E40978700767D22 /* GEMglClearIndex.cpp in Sources */, + 3A2DD2960E40978700767D22 /* GEMglClearStencil.cpp in Sources */, + 3A2DD2980E40978700767D22 /* GEMglClipPlane.cpp in Sources */, + 3A2DD29A0E40978700767D22 /* GEMglColor3b.cpp in Sources */, + 3A2DD29C0E40978700767D22 /* GEMglColor3bv.cpp in Sources */, + 3A2DD29E0E40978700767D22 /* GEMglColor3d.cpp in Sources */, + 3A2DD2A00E40978700767D22 /* GEMglColor3dv.cpp in Sources */, + 3A2DD2A20E40978700767D22 /* GEMglColor3f.cpp in Sources */, + 3A2DD2A40E40978700767D22 /* GEMglColor3fv.cpp in Sources */, + 3A2DD2A60E40978700767D22 /* GEMglColor3i.cpp in Sources */, + 3A2DD2A80E40978700767D22 /* GEMglColor3iv.cpp in Sources */, + 3A2DD2AA0E40978700767D22 /* GEMglColor3s.cpp in Sources */, + 3A2DD2AC0E40978700767D22 /* GEMglColor3sv.cpp in Sources */, + 3A2DD2AE0E40978700767D22 /* GEMglColor3ub.cpp in Sources */, + 3A2DD2B00E40978700767D22 /* GEMglColor3ubv.cpp in Sources */, + 3A2DD2B20E40978700767D22 /* GEMglColor3ui.cpp in Sources */, + 3A2DD2B40E40978700767D22 /* GEMglColor3uiv.cpp in Sources */, + 3A2DD2B60E40978700767D22 /* GEMglColor3us.cpp in Sources */, + 3A2DD2B80E40978700767D22 /* GEMglColor3usv.cpp in Sources */, + 3A2DD2BA0E40978700767D22 /* GEMglColor4b.cpp in Sources */, + 3A2DD2BC0E40978700767D22 /* GEMglColor4bv.cpp in Sources */, + 3A2DD2BE0E40978700767D22 /* GEMglColor4d.cpp in Sources */, + 3A2DD2C00E40978700767D22 /* GEMglColor4dv.cpp in Sources */, + 3A2DD2C20E40978700767D22 /* GEMglColor4f.cpp in Sources */, + 3A2DD2C40E40978700767D22 /* GEMglColor4fv.cpp in Sources */, + 3A2DD2C60E40978700767D22 /* GEMglColor4i.cpp in Sources */, + 3A2DD2C80E40978700767D22 /* GEMglColor4iv.cpp in Sources */, + 3A2DD2CA0E40978700767D22 /* GEMglColor4s.cpp in Sources */, + 3A2DD2CC0E40978700767D22 /* GEMglColor4sv.cpp in Sources */, + 3A2DD2CE0E40978700767D22 /* GEMglColor4ub.cpp in Sources */, + 3A2DD2D00E40978700767D22 /* GEMglColor4ubv.cpp in Sources */, + 3A2DD2D20E40978700767D22 /* GEMglColor4ui.cpp in Sources */, + 3A2DD2D40E40978700767D22 /* GEMglColor4uiv.cpp in Sources */, + 3A2DD2D60E40978700767D22 /* GEMglColor4us.cpp in Sources */, + 3A2DD2D80E40978700767D22 /* GEMglColor4usv.cpp in Sources */, + 3A2DD2DA0E40978700767D22 /* GEMglColorMask.cpp in Sources */, + 3A2DD2DC0E40978700767D22 /* GEMglColorMaterial.cpp in Sources */, + 3A2DD2DE0E40978700767D22 /* GEMglCopyPixels.cpp in Sources */, + 3A2DD2E00E40978700767D22 /* GEMglCopyTexImage1D.cpp in Sources */, + 3A2DD2E20E40978700767D22 /* GEMglCopyTexImage2D.cpp in Sources */, + 3A2DD2E40E40978700767D22 /* GEMglCopyTexSubImage1D.cpp in Sources */, + 3A2DD2E60E40978700767D22 /* GEMglCopyTexSubImage2D.cpp in Sources */, + 3A2DD2E80E40978700767D22 /* GEMglCullFace.cpp in Sources */, + 3A2DD2EA0E40978700767D22 /* GEMglDeleteTextures.cpp in Sources */, + 3A2DD2EC0E40978700767D22 /* GEMglDepthFunc.cpp in Sources */, + 3A2DD2EE0E40978700767D22 /* GEMglDepthMask.cpp in Sources */, + 3A2DD2F00E40978700767D22 /* GEMglDepthRange.cpp in Sources */, + 3A2DD2F20E40978700767D22 /* GEMglDisable.cpp in Sources */, + 3A2DD2F40E40978700767D22 /* GEMglDisableClientState.cpp in Sources */, + 3A2DD2F60E40978700767D22 /* GEMglDrawArrays.cpp in Sources */, + 3A2DD2F80E40978700767D22 /* GEMglDrawBuffer.cpp in Sources */, + 3A2DD2FA0E40978700767D22 /* GEMglDrawElements.cpp in Sources */, + 3A2DD2FC0E40978700767D22 /* GEMglEdgeFlag.cpp in Sources */, + 3A2DD2FE0E40978700767D22 /* GEMglEnable.cpp in Sources */, + 3A2DD3000E40978700767D22 /* GEMglEnableClientState.cpp in Sources */, + 3A2DD3020E40978700767D22 /* GEMglEnd.cpp in Sources */, + 3A2DD3040E40978700767D22 /* GEMglEndList.cpp in Sources */, + 3A2DD3060E40978700767D22 /* GEMglEvalCoord1d.cpp in Sources */, + 3A2DD3080E40978700767D22 /* GEMglEvalCoord1dv.cpp in Sources */, + 3A2DD30A0E40978700767D22 /* GEMglEvalCoord1f.cpp in Sources */, + 3A2DD30C0E40978700767D22 /* GEMglEvalCoord1fv.cpp in Sources */, + 3A2DD30E0E40978700767D22 /* GEMglEvalCoord2d.cpp in Sources */, + 3A2DD3100E40978700767D22 /* GEMglEvalCoord2dv.cpp in Sources */, + 3A2DD3120E40978700767D22 /* GEMglEvalCoord2f.cpp in Sources */, + 3A2DD3140E40978700767D22 /* GEMglEvalCoord2fv.cpp in Sources */, + 3A2DD3160E40978700767D22 /* GEMglEvalMesh1.cpp in Sources */, + 3A2DD3180E40978700767D22 /* GEMglEvalMesh2.cpp in Sources */, + 3A2DD31A0E40978700767D22 /* GEMglEvalPoint1.cpp in Sources */, + 3A2DD31C0E40978700767D22 /* GEMglEvalPoint2.cpp in Sources */, + 3A2DD31E0E40978700767D22 /* GEMglFeedbackBuffer.cpp in Sources */, + 3A2DD3200E40978700767D22 /* GEMglFinish.cpp in Sources */, + 3A2DD3220E40978700767D22 /* GEMglFlush.cpp in Sources */, + 3A2DD3240E40978700767D22 /* GEMglFogf.cpp in Sources */, + 3A2DD3260E40978700767D22 /* GEMglFogfv.cpp in Sources */, + 3A2DD3280E40978700767D22 /* GEMglFogi.cpp in Sources */, + 3A2DD32A0E40978700767D22 /* GEMglFogiv.cpp in Sources */, + 3A2DD32C0E40978700767D22 /* GEMglFrontFace.cpp in Sources */, + 3A2DD32E0E40978700767D22 /* GEMglFrustum.cpp in Sources */, + 3A2DD3300E40978700767D22 /* GEMglGenLists.cpp in Sources */, + 3A2DD3320E40978700767D22 /* GEMglGenProgramsARB.cpp in Sources */, + 3A2DD3340E40978700767D22 /* GEMglGenTextures.cpp in Sources */, + 3A2DD3360E40978700767D22 /* GEMglGetError.cpp in Sources */, + 3A2DD3380E40978700767D22 /* GEMglGetFloatv.cpp in Sources */, + 3A2DD33A0E40978700767D22 /* GEMglGetMapdv.cpp in Sources */, + 3A2DD33C0E40978700767D22 /* GEMglGetMapfv.cpp in Sources */, + 3A2DD33E0E40978700767D22 /* GEMglGetMapiv.cpp in Sources */, + 3A2DD3400E40978700767D22 /* GEMglGetPointerv.cpp in Sources */, + 3A2DD3420E40978700767D22 /* GEMglGetString.cpp in Sources */, + 3A2DD3440E40978700767D22 /* GEMglHint.cpp in Sources */, + 3A2DD3460E40978700767D22 /* GEMglIndexd.cpp in Sources */, + 3A2DD3480E40978700767D22 /* GEMglIndexdv.cpp in Sources */, + 3A2DD34A0E40978700767D22 /* GEMglIndexf.cpp in Sources */, + 3A2DD34C0E40978700767D22 /* GEMglIndexfv.cpp in Sources */, + 3A2DD34E0E40978700767D22 /* GEMglIndexi.cpp in Sources */, + 3A2DD3500E40978700767D22 /* GEMglIndexiv.cpp in Sources */, + 3A2DD3520E40978700767D22 /* GEMglIndexMask.cpp in Sources */, + 3A2DD3540E40978700767D22 /* GEMglIndexs.cpp in Sources */, + 3A2DD3560E40978700767D22 /* GEMglIndexsv.cpp in Sources */, + 3A2DD3580E40978700767D22 /* GEMglIndexub.cpp in Sources */, + 3A2DD35A0E40978700767D22 /* GEMglIndexubv.cpp in Sources */, + 3A2DD35C0E40978700767D22 /* GEMglInitNames.cpp in Sources */, + 3A2DD35E0E40978700767D22 /* GEMglIsEnabled.cpp in Sources */, + 3A2DD3600E40978700767D22 /* GEMglIsList.cpp in Sources */, + 3A2DD3620E40978700767D22 /* GEMglIsTexture.cpp in Sources */, + 3A2DD3640E40978700767D22 /* GEMglLightf.cpp in Sources */, + 3A2DD3660E40978700767D22 /* GEMglLighti.cpp in Sources */, + 3A2DD3680E40978700767D22 /* GEMglLightModelf.cpp in Sources */, + 3A2DD36A0E40978700767D22 /* GEMglLightModeli.cpp in Sources */, + 3A2DD36C0E40978700767D22 /* GEMglLineStipple.cpp in Sources */, + 3A2DD36E0E40978700767D22 /* GEMglLineWidth.cpp in Sources */, + 3A2DD3700E40978700767D22 /* GEMglLoadIdentity.cpp in Sources */, + 3A2DD3720E40978700767D22 /* GEMglLoadMatrixd.cpp in Sources */, + 3A2DD3740E40978700767D22 /* GEMglLoadMatrixf.cpp in Sources */, + 3A2DD3760E40978700767D22 /* GEMglLoadName.cpp in Sources */, + 3A2DD3780E40978700767D22 /* GEMglLoadTransposeMatrixd.cpp in Sources */, + 3A2DD37A0E40978700767D22 /* GEMglLoadTransposeMatrixf.cpp in Sources */, + 3A2DD37C0E40978700767D22 /* GEMglLogicOp.cpp in Sources */, + 3A2DD37E0E40978700767D22 /* GEMglMap1d.cpp in Sources */, + 3A2DD3800E40978700767D22 /* GEMglMap1f.cpp in Sources */, + 3A2DD3820E40978700767D22 /* GEMglMap2d.cpp in Sources */, + 3A2DD3840E40978700767D22 /* GEMglMap2f.cpp in Sources */, + 3A2DD3860E40978700767D22 /* GEMglMapGrid1d.cpp in Sources */, + 3A2DD3880E40978700767D22 /* GEMglMapGrid1f.cpp in Sources */, + 3A2DD38A0E40978700767D22 /* GEMglMapGrid2d.cpp in Sources */, + 3A2DD38C0E40978700767D22 /* GEMglMapGrid2f.cpp in Sources */, + 3A2DD38E0E40978700767D22 /* GEMglMaterialf.cpp in Sources */, + 3A2DD3900E40978700767D22 /* GEMglMateriali.cpp in Sources */, + 3A2DD3920E40978700767D22 /* GEMglMatrixMode.cpp in Sources */, + 3A2DD3940E40978700767D22 /* GEMglMultiTexCoord2fARB.cpp in Sources */, + 3A2DD3960E40978700767D22 /* GEMglMultMatrixd.cpp in Sources */, + 3A2DD3980E40978700767D22 /* GEMglMultMatrixf.cpp in Sources */, + 3A2DD39A0E40978700767D22 /* GEMglMultTransposeMatrixd.cpp in Sources */, + 3A2DD39C0E40978700767D22 /* GEMglMultTransposeMatrixf.cpp in Sources */, + 3A2DD39E0E40978700767D22 /* GEMglNewList.cpp in Sources */, + 3A2DD3A00E40978700767D22 /* GEMglNormal3b.cpp in Sources */, + 3A2DD3A20E40978700767D22 /* GEMglNormal3bv.cpp in Sources */, + 3A2DD3A40E40978700767D22 /* GEMglNormal3d.cpp in Sources */, + 3A2DD3A60E40978700767D22 /* GEMglNormal3dv.cpp in Sources */, + 3A2DD3A80E40978700767D22 /* GEMglNormal3f.cpp in Sources */, + 3A2DD3AA0E40978700767D22 /* GEMglNormal3fv.cpp in Sources */, + 3A2DD3AC0E40978700767D22 /* GEMglNormal3i.cpp in Sources */, + 3A2DD3AE0E40978700767D22 /* GEMglNormal3iv.cpp in Sources */, + 3A2DD3B00E40978700767D22 /* GEMglNormal3s.cpp in Sources */, + 3A2DD3B20E40978700767D22 /* GEMglNormal3sv.cpp in Sources */, + 3A2DD3B40E40978700767D22 /* GEMglOrtho.cpp in Sources */, + 3A2DD3B60E40978700767D22 /* GEMglPassThrough.cpp in Sources */, + 3A2DD3B80E40978700767D22 /* GEMglPixelStoref.cpp in Sources */, + 3A2DD3BA0E40978700767D22 /* GEMglPixelStorei.cpp in Sources */, + 3A2DD3BC0E40978700767D22 /* GEMglPixelTransferf.cpp in Sources */, + 3A2DD3BE0E40978700767D22 /* GEMglPixelTransferi.cpp in Sources */, + 3A2DD3C00E40978700767D22 /* GEMglPixelZoom.cpp in Sources */, + 3A2DD3C20E40978700767D22 /* GEMglPointSize.cpp in Sources */, + 3A2DD3C40E40978700767D22 /* GEMglPolygonMode.cpp in Sources */, + 3A2DD3C60E40978700767D22 /* GEMglPolygonOffset.cpp in Sources */, + 3A2DD3C80E40978700767D22 /* GEMglPopAttrib.cpp in Sources */, + 3A2DD3CA0E40978700767D22 /* GEMglPopClientAttrib.cpp in Sources */, + 3A2DD3CC0E40978700767D22 /* GEMglPopMatrix.cpp in Sources */, + 3A2DD3CE0E40978700767D22 /* GEMglPopName.cpp in Sources */, + 3A2DD3D00E40978700767D22 /* GEMglPrioritizeTextures.cpp in Sources */, + 3A2DD3D20E40978700767D22 /* GEMglProgramEnvParameter4dARB.cpp in Sources */, + 3A2DD3D40E40978700767D22 /* GEMglProgramEnvParameter4fvARB.cpp in Sources */, + 3A2DD3D60E40978700767D22 /* GEMglProgramLocalParameter4fvARB.cpp in Sources */, + 3A2DD3D80E40978700767D22 /* GEMglProgramStringARB.cpp in Sources */, + 3A2DD3DA0E40978700767D22 /* GEMglPushAttrib.cpp in Sources */, + 3A2DD3DC0E40978700767D22 /* GEMglPushClientAttrib.cpp in Sources */, + 3A2DD3DE0E40978700767D22 /* GEMglPushMatrix.cpp in Sources */, + 3A2DD3E00E40978700767D22 /* GEMglPushName.cpp in Sources */, + 3A2DD3E20E40978700767D22 /* GEMglRasterPos2d.cpp in Sources */, + 3A2DD3E40E40978700767D22 /* GEMglRasterPos2dv.cpp in Sources */, + 3A2DD3E60E40978700767D22 /* GEMglRasterPos2f.cpp in Sources */, + 3A2DD3E80E40978700767D22 /* GEMglRasterPos2fv.cpp in Sources */, + 3A2DD3EA0E40978700767D22 /* GEMglRasterPos2i.cpp in Sources */, + 3A2DD3EC0E40978700767D22 /* GEMglRasterPos2iv.cpp in Sources */, + 3A2DD3EE0E40978700767D22 /* GEMglRasterPos2s.cpp in Sources */, + 3A2DD3F00E40978700767D22 /* GEMglRasterPos2sv.cpp in Sources */, + 3A2DD3F20E40978700767D22 /* GEMglRasterPos3d.cpp in Sources */, + 3A2DD3F40E40978700767D22 /* GEMglRasterPos3dv.cpp in Sources */, + 3A2DD3F60E40978700767D22 /* GEMglRasterPos3f.cpp in Sources */, + 3A2DD3F80E40978700767D22 /* GEMglRasterPos3fv.cpp in Sources */, + 3A2DD3FA0E40978700767D22 /* GEMglRasterPos3i.cpp in Sources */, + 3A2DD3FC0E40978700767D22 /* GEMglRasterPos3iv.cpp in Sources */, + 3A2DD3FE0E40978700767D22 /* GEMglRasterPos3s.cpp in Sources */, + 3A2DD4000E40978700767D22 /* GEMglRasterPos3sv.cpp in Sources */, + 3A2DD4020E40978700767D22 /* GEMglRasterPos4d.cpp in Sources */, + 3A2DD4040E40978700767D22 /* GEMglRasterPos4dv.cpp in Sources */, + 3A2DD4060E40978700767D22 /* GEMglRasterPos4f.cpp in Sources */, + 3A2DD4080E40978700767D22 /* GEMglRasterPos4fv.cpp in Sources */, + 3A2DD40A0E40978700767D22 /* GEMglRasterPos4i.cpp in Sources */, + 3A2DD40C0E40978700767D22 /* GEMglRasterPos4iv.cpp in Sources */, + 3A2DD40E0E40978700767D22 /* GEMglRasterPos4s.cpp in Sources */, + 3A2DD4100E40978700767D22 /* GEMglRasterPos4sv.cpp in Sources */, + 3A2DD4120E40978700767D22 /* GEMglRectd.cpp in Sources */, + 3A2DD4140E40978700767D22 /* GEMglRectf.cpp in Sources */, + 3A2DD4160E40978700767D22 /* GEMglRecti.cpp in Sources */, + 3A2DD4180E40978700767D22 /* GEMglRects.cpp in Sources */, + 3A2DD41A0E40978700767D22 /* GEMglRenderMode.cpp in Sources */, + 3A2DD41C0E40978700767D22 /* GEMglReportError.cpp in Sources */, + 3A2DD41E0E40978700767D22 /* GEMglRotated.cpp in Sources */, + 3A2DD4200E40978700767D22 /* GEMglRotatef.cpp in Sources */, + 3A2DD4220E40978700767D22 /* GEMglScaled.cpp in Sources */, + 3A2DD4240E40978700767D22 /* GEMglScalef.cpp in Sources */, + 3A2DD4260E40978700767D22 /* GEMglScissor.cpp in Sources */, + 3A2DD4280E40978700767D22 /* GEMglSelectBuffer.cpp in Sources */, + 3A2DD42A0E40978700767D22 /* GEMglShadeModel.cpp in Sources */, + 3A2DD42C0E40978700767D22 /* GEMglStencilFunc.cpp in Sources */, + 3A2DD42E0E40978700767D22 /* GEMglStencilMask.cpp in Sources */, + 3A2DD4300E40978700767D22 /* GEMglStencilOp.cpp in Sources */, + 3A2DD4320E40978700767D22 /* GEMglTexCoord1d.cpp in Sources */, + 3A2DD4340E40978700767D22 /* GEMglTexCoord1dv.cpp in Sources */, + 3A2DD4360E40978700767D22 /* GEMglTexCoord1f.cpp in Sources */, + 3A2DD4380E40978700767D22 /* GEMglTexCoord1fv.cpp in Sources */, + 3A2DD43A0E40978700767D22 /* GEMglTexCoord1i.cpp in Sources */, + 3A2DD43C0E40978700767D22 /* GEMglTexCoord1iv.cpp in Sources */, + 3A2DD43E0E40978700767D22 /* GEMglTexCoord1s.cpp in Sources */, + 3A2DD4400E40978700767D22 /* GEMglTexCoord1sv.cpp in Sources */, + 3A2DD4420E40978700767D22 /* GEMglTexCoord2d.cpp in Sources */, + 3A2DD4440E40978700767D22 /* GEMglTexCoord2dv.cpp in Sources */, + 3A2DD4460E40978700767D22 /* GEMglTexCoord2f.cpp in Sources */, + 3A2DD4480E40978700767D22 /* GEMglTexCoord2fv.cpp in Sources */, + 3A2DD44A0E40978700767D22 /* GEMglTexCoord2i.cpp in Sources */, + 3A2DD44C0E40978700767D22 /* GEMglTexCoord2iv.cpp in Sources */, + 3A2DD44E0E40978700767D22 /* GEMglTexCoord2s.cpp in Sources */, + 3A2DD4500E40978700767D22 /* GEMglTexCoord2sv.cpp in Sources */, + 3A2DD4520E40978700767D22 /* GEMglTexCoord3d.cpp in Sources */, + 3A2DD4540E40978700767D22 /* GEMglTexCoord3dv.cpp in Sources */, + 3A2DD4560E40978700767D22 /* GEMglTexCoord3f.cpp in Sources */, + 3A2DD4580E40978700767D22 /* GEMglTexCoord3fv.cpp in Sources */, + 3A2DD45A0E40978700767D22 /* GEMglTexCoord3i.cpp in Sources */, + 3A2DD45C0E40978700767D22 /* GEMglTexCoord3iv.cpp in Sources */, + 3A2DD45E0E40978700767D22 /* GEMglTexCoord3s.cpp in Sources */, + 3A2DD4600E40978700767D22 /* GEMglTexCoord3sv.cpp in Sources */, + 3A2DD4620E40978700767D22 /* GEMglTexCoord4d.cpp in Sources */, + 3A2DD4640E40978700767D22 /* GEMglTexCoord4dv.cpp in Sources */, + 3A2DD4660E40978700767D22 /* GEMglTexCoord4f.cpp in Sources */, + 3A2DD4680E40978700767D22 /* GEMglTexCoord4fv.cpp in Sources */, + 3A2DD46A0E40978700767D22 /* GEMglTexCoord4i.cpp in Sources */, + 3A2DD46C0E40978700767D22 /* GEMglTexCoord4iv.cpp in Sources */, + 3A2DD46E0E40978700767D22 /* GEMglTexCoord4s.cpp in Sources */, + 3A2DD4700E40978700767D22 /* GEMglTexCoord4sv.cpp in Sources */, + 3A2DD4720E40978700767D22 /* GEMglTexEnvf.cpp in Sources */, + 3A2DD4740E40978700767D22 /* GEMglTexEnvi.cpp in Sources */, + 3A2DD4760E40978700767D22 /* GEMglTexGend.cpp in Sources */, + 3A2DD4780E40978700767D22 /* GEMglTexGenf.cpp in Sources */, + 3A2DD47A0E40978700767D22 /* GEMglTexGenfv.cpp in Sources */, + 3A2DD47C0E40978700767D22 /* GEMglTexGeni.cpp in Sources */, + 3A2DD47E0E40978700767D22 /* GEMglTexParameterf.cpp in Sources */, + 3A2DD4800E40978700767D22 /* GEMglTexParameteri.cpp in Sources */, + 3A2DD4820E40978700767D22 /* GEMglTexSubImage1D.cpp in Sources */, + 3A2DD4840E40978700767D22 /* GEMglTexSubImage2D.cpp in Sources */, + 3A2DD4860E40978700767D22 /* GEMglTranslated.cpp in Sources */, + 3A2DD4880E40978700767D22 /* GEMglTranslatef.cpp in Sources */, + 3A2DD48A0E40978700767D22 /* GEMglUniform1fARB.cpp in Sources */, + 3A2DD48C0E40978700767D22 /* GEMgluPerspective.cpp in Sources */, + 3A2DD48E0E40978700767D22 /* GEMglUseProgramObjectARB.cpp in Sources */, + 3A2DD4900E40978700767D22 /* GEMglVertex2d.cpp in Sources */, + 3A2DD4920E40978700767D22 /* GEMglVertex2dv.cpp in Sources */, + 3A2DD4940E40978700767D22 /* GEMglVertex2f.cpp in Sources */, + 3A2DD4960E40978700767D22 /* GEMglVertex2fv.cpp in Sources */, + 3A2DD4980E40978700767D22 /* GEMglVertex2i.cpp in Sources */, + 3A2DD49A0E40978700767D22 /* GEMglVertex2iv.cpp in Sources */, + 3A2DD49C0E40978700767D22 /* GEMglVertex2s.cpp in Sources */, + 3A2DD49E0E40978700767D22 /* GEMglVertex2sv.cpp in Sources */, + 3A2DD4A00E40978700767D22 /* GEMglVertex3d.cpp in Sources */, + 3A2DD4A20E40978700767D22 /* GEMglVertex3dv.cpp in Sources */, + 3A2DD4A40E40978700767D22 /* GEMglVertex3f.cpp in Sources */, + 3A2DD4A60E40978700767D22 /* GEMglVertex3fv.cpp in Sources */, + 3A2DD4A80E40978700767D22 /* GEMglVertex3i.cpp in Sources */, + 3A2DD4AA0E40978700767D22 /* GEMglVertex3iv.cpp in Sources */, + 3A2DD4AC0E40978700767D22 /* GEMglVertex3s.cpp in Sources */, + 3A2DD4AE0E40978700767D22 /* GEMglVertex3sv.cpp in Sources */, + 3A2DD4B00E40978700767D22 /* GEMglVertex4d.cpp in Sources */, + 3A2DD4B20E40978700767D22 /* GEMglVertex4dv.cpp in Sources */, + 3A2DD4B40E40978700767D22 /* GEMglVertex4f.cpp in Sources */, + 3A2DD4B60E40978700767D22 /* GEMglVertex4fv.cpp in Sources */, + 3A2DD4B80E40978700767D22 /* GEMglVertex4i.cpp in Sources */, + 3A2DD4BA0E40978700767D22 /* GEMglVertex4iv.cpp in Sources */, + 3A2DD4BC0E40978700767D22 /* GEMglVertex4s.cpp in Sources */, + 3A2DD4BE0E40978700767D22 /* GEMglVertex4sv.cpp in Sources */, + 3A2DD4C00E40978700767D22 /* GEMglViewport.cpp in Sources */, + 3A2DD4C20E40978700767D22 /* GLdefine.cpp in Sources */, + 3A2DD4F70E4097BC00767D22 /* part_color.cpp in Sources */, + 3A2DD4F90E4097BC00767D22 /* part_damp.cpp in Sources */, + 3A2DD4FB0E4097BC00767D22 /* part_draw.cpp in Sources */, + 3A2DD4FD0E4097BC00767D22 /* part_follow.cpp in Sources */, + 3A2DD4FF0E4097BC00767D22 /* part_gravity.cpp in Sources */, + 3A2DD5010E4097BC00767D22 /* part_head.cpp in Sources */, + 3A2DD5030E4097BC00767D22 /* part_info.cpp in Sources */, + 3A2DD5050E4097BC00767D22 /* part_killold.cpp in Sources */, + 3A2DD5070E4097BC00767D22 /* part_killslow.cpp in Sources */, + 3A2DD5090E4097BC00767D22 /* part_orbitpoint.cpp in Sources */, + 3A2DD50B0E4097BC00767D22 /* part_render.cpp in Sources */, + 3A2DD50D0E4097BC00767D22 /* part_sink.cpp in Sources */, + 3A2DD50F0E4097BC00767D22 /* part_size.cpp in Sources */, + 3A2DD5110E4097BC00767D22 /* part_source.cpp in Sources */, + 3A2DD5130E4097BC00767D22 /* part_targetcolor.cpp in Sources */, + 3A2DD5150E4097BC00767D22 /* part_targetsize.cpp in Sources */, + 3A2DD5170E4097BC00767D22 /* part_velcone.cpp in Sources */, + 3A2DD5190E4097BC00767D22 /* part_velocity.cpp in Sources */, + 3A2DD51B0E4097BC00767D22 /* part_velsphere.cpp in Sources */, + 3A2DD51D0E4097BC00767D22 /* part_vertex.cpp in Sources */, + 3A2DD51F0E4097BC00767D22 /* partlib_actionapi.cpp in Sources */, + 3A2DD5200E4097BC00767D22 /* partlib_actions.cpp in Sources */, + 3A2DD5220E4097BC00767D22 /* partlib_opengl.cpp in Sources */, + 3A2DD5230E4097BC00767D22 /* partlib_system.cpp in Sources */, + 3A2DD63C0E4097D500767D22 /* film.cpp in Sources */, + 3A2DD6420E4097D500767D22 /* filmDarwin.cpp in Sources */, + 3A2DD64C0E4097D500767D22 /* filmQT.cpp in Sources */, + 3A2DD6510E4097D500767D22 /* libfidtrack_fidtrackX.cpp in Sources */, + 3A2DD6530E4097D500767D22 /* libfidtrack_segment.cpp in Sources */, + 3A2DD6550E4097D500767D22 /* libfidtrack_treeidmap.cpp in Sources */, + 3A2DD6580E4097D500767D22 /* pix_2grey.cpp in Sources */, + 3A2DD65A0E4097D500767D22 /* pix_a_2grey.cpp in Sources */, + 3A2DD65C0E4097D500767D22 /* pix_add.cpp in Sources */, + 3A2DD65E0E4097D500767D22 /* pix_aging.cpp in Sources */, + 3A2DD6600E4097D500767D22 /* pix_alpha.cpp in Sources */, + 3A2DD6620E4097D500767D22 /* pix_artoolkit.cpp in Sources */, + 3A2DD6640E4097D500767D22 /* pix_background.cpp in Sources */, + 3A2DD6660E4097D500767D22 /* pix_backlight.cpp in Sources */, + 3A2DD6680E4097D500767D22 /* pix_biquad.cpp in Sources */, + 3A2DD66A0E4097D500767D22 /* pix_bitmask.cpp in Sources */, + 3A2DD66C0E4097D500767D22 /* pix_blob.cpp in Sources */, + 3A2DD66E0E4097D500767D22 /* pix_blur.cpp in Sources */, + 3A2DD6700E4097D500767D22 /* pix_buf.cpp in Sources */, + 3A2DD6720E4097D500767D22 /* pix_buffer_read.cpp in Sources */, + 3A2DD6740E4097D500767D22 /* pix_buffer_write.cpp in Sources */, + 3A2DD6760E4097D500767D22 /* pix_buffer.cpp in Sources */, + 3A2DD6780E4097D500767D22 /* pix_chroma_key.cpp in Sources */, + 3A2DD67A0E4097D500767D22 /* pix_clearblock.cpp in Sources */, + 3A2DD67C0E4097D500767D22 /* pix_color.cpp in Sources */, + 3A2DD67E0E4097D500767D22 /* pix_coloralpha.cpp in Sources */, + 3A2DD6800E4097D500767D22 /* pix_colormatrix.cpp in Sources */, + 3A2DD6820E4097D500767D22 /* pix_colorreduce.cpp in Sources */, + 3A2DD6840E4097D500767D22 /* pix_compare.cpp in Sources */, + 3A2DD6860E4097D500767D22 /* pix_composite.cpp in Sources */, + 3A2DD6880E4097D500767D22 /* pix_contrast.cpp in Sources */, + 3A2DD68A0E4097D500767D22 /* pix_convert.cpp in Sources */, + 3A2DD68C0E4097D500767D22 /* pix_convolve.cpp in Sources */, + 3A2DD68E0E4097D500767D22 /* pix_coordinate.cpp in Sources */, + 3A2DD6900E4097D500767D22 /* pix_crop.cpp in Sources */, + 3A2DD6920E4097D500767D22 /* pix_curve.cpp in Sources */, + 3A2DD6940E4097D500767D22 /* pix_data.cpp in Sources */, + 3A2DD6960E4097D500767D22 /* pix_deinterlace.cpp in Sources */, + 3A2DD6980E4097D500767D22 /* pix_delay.cpp in Sources */, + 3A2DD69A0E4097D500767D22 /* pix_diff.cpp in Sources */, + 3A2DD69C0E4097D500767D22 /* pix_dot.cpp in Sources */, + 3A2DD69E0E4097D500767D22 /* pix_draw.cpp in Sources */, + 3A2DD6A00E4097D500767D22 /* pix_dump.cpp in Sources */, + 3A2DD6A20E4097D500767D22 /* pix_duotone.cpp in Sources */, + 3A2DD6A40E4097D500767D22 /* pix_emboss.cpp in Sources */, + 3A2DD6A60E4097D500767D22 /* pix_fiducialtrack.cpp in Sources */, + 3A2DD6A80E4097D500767D22 /* pix_film.cpp in Sources */, + 3A2DD6AA0E4097D500767D22 /* pix_filmDarwin.cpp in Sources */, + 3A2DD6AE0E4097D500767D22 /* pix_filmNT.cpp in Sources */, + 3A2DD6B00E4097D500767D22 /* pix_filmQT.cpp in Sources */, + 3A2DD6B20E4097D500767D22 /* pix_flip.cpp in Sources */, + 3A2DD6B40E4097D500767D22 /* pix_freeframe.cpp in Sources */, + 3A2DD6B60E4097D500767D22 /* pix_gain.cpp in Sources */, + 3A2DD6B80E4097D500767D22 /* pix_grey.cpp in Sources */, + 3A2DD6BA0E4097D500767D22 /* pix_halftone.cpp in Sources */, + 3A2DD6BC0E4097D500767D22 /* pix_histo.cpp in Sources */, + 3A2DD6BE0E4097D500767D22 /* pix_hit.cpp in Sources */, + 3A2DD6C00E4097D500767D22 /* pix_hsv2rgb.cpp in Sources */, + 3A2DD6C20E4097D500767D22 /* pix_image.cpp in Sources */, + 3A2DD6C40E4097D500767D22 /* pix_imageInPlace.cpp in Sources */, + 3A2DD6C60E4097D500767D22 /* pix_indycam.cpp in Sources */, + 3A2DD6C80E4097D500767D22 /* pix_info.cpp in Sources */, + 3A2DD6CA0E4097D500767D22 /* pix_invert.cpp in Sources */, + 3A2DD6CC0E4097D500767D22 /* pix_kaleidoscope.cpp in Sources */, + 3A2DD6CE0E4097D500767D22 /* pix_levels.cpp in Sources */, + 3A2DD6D00E4097D500767D22 /* pix_lumaoffset.cpp in Sources */, + 3A2DD6D20E4097D500767D22 /* pix_mask.cpp in Sources */, + 3A2DD6D40E4097D500767D22 /* pix_mean_color.cpp in Sources */, + 3A2DD6D60E4097D500767D22 /* pix_metaimage.cpp in Sources */, + 3A2DD6D80E4097D500767D22 /* pix_mix.cpp in Sources */, + 3A2DD6DA0E4097D500767D22 /* pix_motionblur.cpp in Sources */, + 3A2DD6DC0E4097D500767D22 /* pix_movement.cpp in Sources */, + 3A2DD6DE0E4097D500767D22 /* pix_movement2.cpp in Sources */, + 3A2DD6E00E4097D500767D22 /* pix_movie.cpp in Sources */, + 3A2DD6E20E4097D500767D22 /* pix_movieDarwin.cpp in Sources */, + 3A2DD6E80E4097D500767D22 /* pix_multiblob.cpp in Sources */, + 3A2DD6EA0E4097D500767D22 /* pix_multiimage.cpp in Sources */, + 3A2DD6EC0E4097D500767D22 /* pix_multiply.cpp in Sources */, + 3A2DD6EE0E4097D500767D22 /* pix_multitexture.cpp in Sources */, + 3A2DD6F00E4097D500767D22 /* pix_normalize.cpp in Sources */, + 3A2DD6F20E4097D500767D22 /* pix_offset.cpp in Sources */, + 3A2DD6F40E4097D500767D22 /* pix_pix2sig.cpp in Sources */, + 3A2DD6F60E4097D500767D22 /* pix_posterize.cpp in Sources */, + 3A2DD6F80E4097D500767D22 /* pix_puzzle.cpp in Sources */, + 3A2DD6FA0E4097D500767D22 /* pix_rds.cpp in Sources */, + 3A2DD6FC0E4097D500767D22 /* pix_record.cpp in Sources */, + 3A2DD6FE0E4097D500767D22 /* pix_recordQT.cpp in Sources */, + 3A2DD7000E4097D500767D22 /* pix_rectangle.cpp in Sources */, + 3A2DD7020E4097D500767D22 /* pix_refraction.cpp in Sources */, + 3A2DD7040E4097D500767D22 /* pix_resize.cpp in Sources */, + 3A2DD7060E4097D500767D22 /* pix_rgb2hsv.cpp in Sources */, + 3A2DD7080E4097D500767D22 /* pix_rgba.cpp in Sources */, + 3A2DD70A0E4097D500767D22 /* pix_roll.cpp in Sources */, + 3A2DD70C0E4097D500767D22 /* pix_rtx.cpp in Sources */, + 3A2DD70E0E4097D500767D22 /* pix_scanline.cpp in Sources */, + 3A2DD7100E4097D500767D22 /* pix_set.cpp in Sources */, + 3A2DD7120E4097D500767D22 /* pix_share_read.cpp in Sources */, + 3A2DD7140E4097D500767D22 /* pix_share_write.cpp in Sources */, + 3A2DD7170E4097D500767D22 /* pix_sig2pix.cpp in Sources */, + 3A2DD7190E4097D500767D22 /* pix_snap.cpp in Sources */, + 3A2DD71B0E4097D500767D22 /* pix_snap2tex.cpp in Sources */, + 3A2DD71D0E4097D500767D22 /* pix_subtract.cpp in Sources */, + 3A2DD71F0E4097D500767D22 /* pix_takealpha.cpp in Sources */, + 3A2DD7210E4097D500767D22 /* pix_test.cpp in Sources */, + 3A2DD7230E4097D500767D22 /* pix_texture.cpp in Sources */, + 3A2DD7250E4097D500767D22 /* pix_threshold_bernsen.cpp in Sources */, + 3A2DD7270E4097D500767D22 /* pix_threshold.cpp in Sources */, + 3A2DD7290E4097D500767D22 /* pix_tIIR.cpp in Sources */, + 3A2DD72D0E4097D500767D22 /* pix_videoDarwin.cpp in Sources */, + 3A2DD7370E4097D500767D22 /* pix_vpaint.cpp in Sources */, + 3A2DD7390E4097D500767D22 /* pix_write.cpp in Sources */, + 3A2DD73B0E4097D500767D22 /* pix_yuv.cpp in Sources */, + 3A2DD73D0E4097D500767D22 /* pix_zoom.cpp in Sources */, + 3A2DD73F0E4097D500767D22 /* record.cpp in Sources */, + 3A2DD7410E4097D500767D22 /* recordQT.cpp in Sources */, + 3A2DD7690E4097EA00767D22 /* vertex_add.cpp in Sources */, + 3A2DD76B0E4097EA00767D22 /* vertex_combine.cpp in Sources */, + 3A2DD76D0E4097EA00767D22 /* vertex_draw.cpp in Sources */, + 3A2DD76F0E4097EA00767D22 /* vertex_grid.cpp in Sources */, + 3A2DD7710E4097EA00767D22 /* vertex_info.cpp in Sources */, + 3A2DD7730E4097EA00767D22 /* vertex_model.cpp in Sources */, + 3A2DD7750E4097EA00767D22 /* vertex_mul.cpp in Sources */, + 3A2DD7770E4097EA00767D22 /* vertex_offset.cpp in Sources */, + 3A2DD7790E4097EA00767D22 /* vertex_quad.cpp in Sources */, + 3A2DD77B0E4097EA00767D22 /* vertex_scale.cpp in Sources */, + 3A2DD77D0E4097EA00767D22 /* vertex_set.cpp in Sources */, + 3A2DD77F0E4097EA00767D22 /* vertex_tabread.cpp in Sources */, + 3ACEE3D80E40C8A800FC2E4B /* GemVersion.cpp in Sources */, + 3AE073920EB8A2CA00223BA6 /* pix_filmOS.cpp in Sources */, + 3AE073980EB8A31300223BA6 /* pix_movieOS.cpp in Sources */, + 3AE0739E0EB8A34600223BA6 /* pix_videoOS.cpp in Sources */, + 3A6DFE4C0FD528780019C977 /* GEMglMaterialfv.cpp in Sources */, + 3A6DFE520FD528920019C977 /* GEMgluLookAt.cpp in Sources */, + 3A6DFE5D0FD528CF0019C977 /* GemContext.cpp in Sources */, + 3A6DFE5F0FD528CF0019C977 /* GemContextData.cpp in Sources */, + 3A6DFE6A0FD5294F0019C977 /* glsl_geometry.cpp in Sources */, + 3A6DFE700FD529880019C977 /* pix_writer.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 3ACEE3A30E40B9E800FC2E4B /* Development */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = ( + ppc, + i386, + ); + CC = ""; + COPY_PHASE_STRIP = NO; + CPLUSPLUS = ""; + DEBUG_INFORMATION_FORMAT = dwarf; + DYLIB_COMPATIBILITY_VERSION = ""; + DYLIB_CURRENT_VERSION = ""; + EXECUTABLE_EXTENSION = d_fat; + EXECUTABLE_PREFIX = ""; + GCC_ALTIVEC_EXTENSIONS = YES; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_FAST_MATH = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = NO; + GCC_PREPROCESSOR_DEFINITIONS = DEBUG; + GCC_UNROLL_LOOPS = YES; + GCC_WARN_UNKNOWN_PRAGMAS = YES; + HEADER_SEARCH_PATHS = ( + ../../src, + ../../../GemLibs/FTGL/include, + ../../../GemLibs/freetype2/include, + /Applications/Pd.app/Contents/Resources/include/, + "/Applications/Pd-extended.app/Contents/Resources/include/", + ); + INSTALL_PATH = "@executable_path/../Resources/extra"; + LIBRARY_SEARCH_PATHS = ../../../GemLibs/FTGL/mac/build/Development; + MACH_O_TYPE = mh_dylib; + MACOSX_DEPLOYMENT_TARGET = 10.3; + OTHER_CFLAGS = ( + "-fno-builtin", + "-falign-loops=16", + "-freg-struct-return", + ); + OTHER_LDFLAGS = ( + "-undefined", + dynamic_lookup, + "-lz", + "-Xlinker", + "-Y", + "-Xlinker", + 100, + ); + OTHER_LIBTOOL_FLAGS = ""; + OTHER_REZFLAGS = ""; + PREBINDING = NO; + PRODUCT_NAME = Gem; + REZ_EXECUTABLE = YES; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = "-Wmost"; + ZERO_LINK = NO; + }; + name = Development; + }; + 3ACEE3A40E40B9E800FC2E4B /* Deployment */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = ( + ppc, + i386, + ); + CC = ""; + COPY_PHASE_STRIP = YES; + CPLUSPLUS = ""; + DYLIB_COMPATIBILITY_VERSION = ""; + DYLIB_CURRENT_VERSION = ""; + EXECUTABLE_EXTENSION = d_fat; + EXECUTABLE_PREFIX = ""; + GCC_ALTIVEC_EXTENSIONS = YES; + GCC_AUTO_VECTORIZATION = YES; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_FAST_MATH = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_OPTIMIZATION_LEVEL = s; + GCC_PRECOMPILE_PREFIX_HEADER = NO; + GCC_UNROLL_LOOPS = YES; + GCC_WARN_UNKNOWN_PRAGMAS = YES; + HEADER_SEARCH_PATHS = ( + ../../src, + ../../../GemLibs/FTGL/include, + ../../../GemLibs/freetype2/include, + /Applications/Pd.app/Contents/Resources/include/, + "/Applications/Pd-extended.app/Contents/Resources/include/", + ); + INSTALL_PATH = "@executable_path/../Resources/extra"; + LIBRARY_SEARCH_PATHS = ../../../GemLibs/FTGL/mac/build/Deployment; + MACH_O_TYPE = mh_dylib; + MACOSX_DEPLOYMENT_TARGET = 10.3; + OTHER_CFLAGS = ( + "-fno-builtin", + "-falign-loops=16", + ); + OTHER_LDFLAGS = ( + "-undefined", + dynamic_lookup, + "-lz", + "-Xlinker", + "-Y", + "-Xlinker", + 100, + ); + OTHER_LIBTOOL_FLAGS = ""; + OTHER_REZFLAGS = ""; + PREBINDING = NO; + PRODUCT_NAME = Gem; + REZ_EXECUTABLE = YES; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = "-Wmost"; + ZERO_LINK = NO; + }; + name = Deployment; + }; + 3ACEE3A50E40B9E800FC2E4B /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = ( + ppc, + i386, + ); + CC = ""; + CPLUSPLUS = ""; + DYLIB_COMPATIBILITY_VERSION = ""; + DYLIB_CURRENT_VERSION = ""; + EXECUTABLE_EXTENSION = d_fat; + EXECUTABLE_PREFIX = ""; + FRAMEWORK_SEARCH_PATHS = ""; + GCC_ALTIVEC_EXTENSIONS = YES; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_FAST_MATH = YES; + GCC_OPTIMIZATION_LEVEL = s; + GCC_PRECOMPILE_PREFIX_HEADER = NO; + GCC_UNROLL_LOOPS = YES; + GCC_WARN_UNKNOWN_PRAGMAS = YES; + HEADER_SEARCH_PATHS = ( + ../../src, + ../../../GemLibs/FTGL/include, + ../../../GemLibs/freetype2/include, + /Applications/Pd.app/Contents/Resources/include/, + "/Applications/Pd-extended.app/Contents/Resources/include/", + ); + INSTALL_PATH = "@executable_path/../Resources/extra"; + LIBRARY_SEARCH_PATHS = ../../../GemLibs/FTGL/mac/build; + MACH_O_TYPE = mh_dylib; + MACOSX_DEPLOYMENT_TARGET = 10.3; + OTHER_CFLAGS = ( + "-fno-builtin", + "-falign-loops=16", + ); + OTHER_LDFLAGS = ( + "-undefined", + dynamic_lookup, + "-lz", + "-Xlinker", + "-Y", + "-Xlinker", + 100, + ); + OTHER_LIBTOOL_FLAGS = ""; + OTHER_REZFLAGS = ""; + PREBINDING = NO; + PRODUCT_NAME = Gem; + REZ_EXECUTABLE = YES; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = "-Wmost"; + ZERO_LINK = NO; + }; + name = Default; + }; + FD50478E085666BB00AF77DC /* Development */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_OPTIMIZATION_LEVEL = 0; + MACOSX_DEPLOYMENT_TARGET = 10.3; + }; + name = Development; + }; + FD50478F085666BB00AF77DC /* Deployment */ = { + isa = XCBuildConfiguration; + buildSettings = { + MACOSX_DEPLOYMENT_TARGET = 10.3; + }; + name = Deployment; + }; + FD504790085666BB00AF77DC /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + MACOSX_DEPLOYMENT_TARGET = 10.3; + }; + name = Default; + }; + FD504C020856672000AF77DC /* Development */ = { + isa = XCBuildConfiguration; + buildSettings = { + CC = ""; + COPY_PHASE_STRIP = NO; + CPLUSPLUS = ""; + DEBUG_INFORMATION_FORMAT = dwarf; + DYLIB_COMPATIBILITY_VERSION = ""; + DYLIB_CURRENT_VERSION = ""; + EXECUTABLE_EXTENSION = pd_darwin; + EXECUTABLE_PREFIX = ""; + GCC_ALTIVEC_EXTENSIONS = YES; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_FAST_MATH = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = NO; + GCC_PREPROCESSOR_DEFINITIONS = ( + MACOSX, + DEBUG, + ); + GCC_UNROLL_LOOPS = YES; + GCC_WARN_UNKNOWN_PRAGMAS = YES; + HEADER_SEARCH_PATHS = ( + ../../src, + ../../../GemLibs/FTGL/include, + ../../../GemLibs/freetype2/include, + /Applications/Pd.app/Contents/Resources/include/, + "/Applications/Pd-extended.app/Contents/Resources/include/", + ); + INSTALL_PATH = "@executable_path/../Resources/extra"; + LIBRARY_SEARCH_PATHS = ../../../GemLibs/FTGL/mac/build/Development; + MACH_O_TYPE = mh_dylib; + MACOSX_DEPLOYMENT_TARGET = 10.3; + OTHER_CFLAGS = ( + "-fno-builtin", + "-falign-loops=16", + "-freg-struct-return", + ); + OTHER_LDFLAGS = ( + "-undefined", + dynamic_lookup, + "-lz", + "-Xlinker", + "-Y", + "-Xlinker", + 100, + ); + OTHER_LIBTOOL_FLAGS = ""; + OTHER_REZFLAGS = ""; + PREBINDING = NO; + PRODUCT_NAME = Gem; + REZ_EXECUTABLE = YES; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = "-Wmost"; + ZERO_LINK = NO; + }; + name = Development; + }; + FD504C030856672000AF77DC /* Deployment */ = { + isa = XCBuildConfiguration; + buildSettings = { + CC = ""; + COPY_PHASE_STRIP = YES; + CPLUSPLUS = ""; + DYLIB_COMPATIBILITY_VERSION = ""; + DYLIB_CURRENT_VERSION = ""; + EXECUTABLE_EXTENSION = pd_darwin; + EXECUTABLE_PREFIX = ""; + GCC_ALTIVEC_EXTENSIONS = YES; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_FAST_MATH = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_OPTIMIZATION_LEVEL = s; + GCC_PRECOMPILE_PREFIX_HEADER = NO; + GCC_UNROLL_LOOPS = YES; + GCC_WARN_UNKNOWN_PRAGMAS = YES; + HEADER_SEARCH_PATHS = ( + ../../src, + ../../../GemLibs/FTGL/include, + ../../../GemLibs/freetype2/include, + /Applications/Pd.app/Contents/Resources/include/, + "/Applications/Pd-extended.app/Contents/Resources/include/", + ); + INSTALL_PATH = "@executable_path/../Resources/extra"; + LIBRARY_SEARCH_PATHS = ../../../GemLibs/FTGL/mac/build/Deployment; + MACH_O_TYPE = mh_dylib; + MACOSX_DEPLOYMENT_TARGET = 10.3; + OTHER_CFLAGS = ( + "-fno-builtin", + "-falign-loops=16", + ); + OTHER_LDFLAGS = ( + "-undefined", + dynamic_lookup, + "-lz", + "-Xlinker", + "-Y", + "-Xlinker", + 100, + ); + OTHER_LIBTOOL_FLAGS = ""; + OTHER_REZFLAGS = ""; + PREBINDING = NO; + PRODUCT_NAME = Gem; + REZ_EXECUTABLE = YES; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = "-Wmost"; + ZERO_LINK = NO; + }; + name = Deployment; + }; + FD504C040856672000AF77DC /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + CC = ""; + CPLUSPLUS = ""; + DYLIB_COMPATIBILITY_VERSION = ""; + DYLIB_CURRENT_VERSION = ""; + EXECUTABLE_EXTENSION = pd_darwin; + EXECUTABLE_PREFIX = ""; + FRAMEWORK_SEARCH_PATHS = ""; + GCC_ALTIVEC_EXTENSIONS = YES; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_FAST_MATH = YES; + GCC_OPTIMIZATION_LEVEL = s; + GCC_PRECOMPILE_PREFIX_HEADER = NO; + GCC_PREPROCESSOR_DEFINITIONS = ( + MACOSX, + YUV, + ALTIVEC, + FTGL, + ); + GCC_UNROLL_LOOPS = YES; + GCC_WARN_UNKNOWN_PRAGMAS = YES; + HEADER_SEARCH_PATHS = ( + ../../src, + ../../../GemLibs/FTGL/include, + ../../../GemLibs/freetype2/include, + /Applications/Pd.app/Contents/Resources/include/, + "/Applications/Pd-extended.app/Contents/Resources/include/", + ); + INSTALL_PATH = "@executable_path/../Resources/extra"; + LIBRARY_SEARCH_PATHS = ../../../GemLibs/FTGL/mac/build; + MACH_O_TYPE = mh_dylib; + MACOSX_DEPLOYMENT_TARGET = 10.3; + OTHER_CFLAGS = ( + "-fno-builtin", + "-falign-loops=16", + ); + OTHER_LDFLAGS = ( + "-undefined", + dynamic_lookup, + "-lz", + "-lfreetype", + "-Xlinker", + "-Y", + "-Xlinker", + 100, + ); + OTHER_LIBTOOL_FLAGS = ""; + OTHER_REZFLAGS = ""; + PREBINDING = NO; + PRODUCT_NAME = Gem; + REZ_EXECUTABLE = YES; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = "-Wmost"; + ZERO_LINK = NO; + }; + name = Default; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 3ACEE3A20E40B9E800FC2E4B /* Build configuration list for PBXNativeTarget "Gem.d_fat" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3ACEE3A30E40B9E800FC2E4B /* Development */, + 3ACEE3A40E40B9E800FC2E4B /* Deployment */, + 3ACEE3A50E40B9E800FC2E4B /* Default */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Default; + }; + FD50478D085666BB00AF77DC /* Build configuration list for PBXProject "Gem" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FD50478E085666BB00AF77DC /* Development */, + FD50478F085666BB00AF77DC /* Deployment */, + FD504790085666BB00AF77DC /* Default */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Default; + }; + FD504C010856672000AF77DC /* Build configuration list for PBXNativeTarget "Gem.pd_darwin" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FD504C020856672000AF77DC /* Development */, + FD504C030856672000AF77DC /* Deployment */, + FD504C040856672000AF77DC /* Default */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Default; + }; +/* End XCConfigurationList section */ + }; + rootObject = F521B3F903898A4A019165F0 /* Project object */; +} diff --git a/Gem/build/win-nsis/Gem.nsi b/Gem/build/win-nsis/Gem.nsi new file mode 100644 index 0000000..3014437 --- /dev/null +++ b/Gem/build/win-nsis/Gem.nsi @@ -0,0 +1,617 @@ +; TODO +; - check whether Pd is installed +; this is where Pd stores it's settings: +; HKEY_LOCAL_MACHINE\SOFTWARE\Pd +; this is the uninstaller-information of Pd-extended +; HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\pd_is1 InstallLocation + +; - ask to set env-variables +; GEM_SINGLE_CONTEXT /* ??? */ +; GEM_RECTANGLE_TEXTURE /* unneeded since glew? */ +; GEM_NO_TABLET /* unneeded as [gemtablet] was dropped */ +; GEM_DEFAULT_FONT /* "$INSTDIR/examples/data/vera.ttf" */ +; system-envvars: +; HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment +; user-envvars: +; HKEY_CURRENT_USER\Environment + +; Script generated by the HM NIS Edit Script Wizard. +; HM NIS Edit Wizard helper defines +!define PRODUCT_NAME "Gem" +!ifndef PRODUCT_VERSION + !define PRODUCT_VERSION "0.93" +!endif +!define PRODUCT_ARCH "-W32-i686" +!define PRODUCT_PUBLISHER "iem et al." +!define PRODUCT_WEB_SITE "http://gem.iem.at" +!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" +!define PRODUCT_UNINST_ROOT_KEY "HKLM" + +OutFile "Gem-${PRODUCT_VERSION}${PRODUCT_ARCH}.exe" + +!define BASE_INDIR "..\.." +!define BUILD_INDIR "..\win-vs2003" + + +; MUI 1.67 compatible ------ +!include "MUI.nsh" + +; MUI Settings +!define MUI_ABORTWARNING +!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico" +!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico" + +; Welcome page +!insertmacro MUI_PAGE_WELCOME +; License page +!insertmacro MUI_PAGE_LICENSE "..\..\GnuGPL.LICENSE.txt" +; Components page +!insertmacro MUI_PAGE_COMPONENTS +; Directory page +!insertmacro MUI_PAGE_DIRECTORY +; Instfiles page +!insertmacro MUI_PAGE_INSTFILES +; Finish page +!insertmacro MUI_PAGE_FINISH + +; Uninstaller pages +!insertmacro MUI_UNPAGE_INSTFILES + +; Language files +!insertmacro MUI_LANGUAGE "English" + +; MUI end ------ + +Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" + +;InstallDir "$PROGRAMFILES\pd\extra\Gem" +InstallDir "$%COMMONPROGRAMFILES%\Pd\Gem" + +ShowInstDetails show +ShowUnInstDetails show + +Var /GLOBAL GEM_OUTDIR +Var /GLOBAL GEMDEV_OUTDIR +Var /GLOBAL EXTRA_OUTDIR + +; the sections for the library itself (binary+abstractions) + +SectionGroup "Gem" SEC_Gem + Section "Gem-binary" SEC_GemBinary +StrCpy $EXTRA_OUTDIR "$INSTDIR\.." +StrCpy $GEM_OUTDIR "$INSTDIR" +StrCpy $GEMDEV_OUTDIR "$GEM_OUTDIR\dev" + + + SetOverwrite ifnewer + SectionIn RO + SetOutPath "$GEM_OUTDIR" + File "${BUILD_INDIR}\Gem.dll" + + File "${BASE_INDIR}\GnuGPL.LICENSE.txt" + File "${BASE_INDIR}\COPYING.txt" + File "${BASE_INDIR}\ChangeLog" + File "${BASE_INDIR}\README.txt" + SectionEnd + Section "Gem-abstractions" SEC_GemAbs + SectionIn RO + SetOverwrite ifnewer + SetOutPath "$GEM_OUTDIR" + File "${BASE_INDIR}\abstractions\*.pd" + SectionEnd +SectionGroupEnd + +SectionGroup "Documentation" SEC_documentation + Section "reference" SEC_ref + SetOverwrite ifnewer + SetOutPath "$GEM_OUTDIR" + File /r /x .svn "${BASE_INDIR}\help\*.pd" + SectionEnd + Section "examples" SEC_examples + SetOverwrite ifnewer + SetOutPath "$GEM_OUTDIR\examples\" + File /r /x .svn /x "Makefile*" "${BASE_INDIR}\examples\*.*" + ; this should only be set if there is no entry yet + WriteRegStr SHCTX "Environment" "GEM_DEFAULT_FONT" "$GEM_OUTDIR\examples\data\vera.ttf" + SectionEnd + Section "manual" SEC_manual + SetOverwrite ifnewer + SetOutPath "$GEM_OUTDIR\manual" + File /r /x .svn "${BASE_INDIR}\doc\manual\*.*" + SectionEnd + Section "doc" SEC_doc + SetOverwrite ifnewer + SetOutPath "$GEM_OUTDIR" + File "${BASE_INDIR}\doc\cMatrix.html" + File "${BASE_INDIR}\doc\gem.known_bugs.txt" + File "${BASE_INDIR}\doc\GemPrimer.pdf" + File "${BASE_INDIR}\doc\gem.release_notes.txt" + File "${BASE_INDIR}\doc\gem.todo.txt" + SectionEnd +SectionGroupEnd + +SectionGroup "plugins" SEC_plugin + + SectionGroup "film" SEC_plugin_film + Section "DirectShow movies" SEC_plugin_filmDS + SetOverwrite ifnewer + SetOutPath "$GEM_OUTDIR" + File "${BUILD_INDIR}\gem_filmDS.dll" + SectionEnd + Section "QuickTime movies" SEC_plugin_filmQT + SetOverwrite ifnewer + SetOutPath "$GEM_OUTDIR" + File "${BUILD_INDIR}\gem_filmQT.dll" + SectionEnd + Section /o "AVI movies" SEC_plugin_filmAVI + SetOverwrite ifnewer + SetOutPath "$GEM_OUTDIR" + File "${BUILD_INDIR}\gem_filmAVI.dll" + SectionEnd + SectionGroupEnd + SectionGroup "image" SEC_plugin_image + Section "ImageMagick images" SEC_plugin_imageMAGICK + SetOverwrite ifnewer + SetOutPath "$GEM_OUTDIR" + File "${BUILD_INDIR}\gem_imageMAGICK.dll" + SectionEnd + Section /o "QuickTime images" SEC_plugin_imageQT + SetOverwrite ifnewer + SetOutPath "$GEM_OUTDIR" + File "${BUILD_INDIR}\gem_imageQT.dll" + SectionEnd + Section /o "SGI images" SEC_plugin_imageSGI + SetOverwrite ifnewer + SetOutPath "$GEM_OUTDIR" + File "${BUILD_INDIR}\gem_imageSGI.dll" + SectionEnd + Section /o "JPEG images" SEC_plugin_imageJPEG + SetOverwrite ifnewer + SetOutPath "$GEM_OUTDIR" + File "${BUILD_INDIR}\gem_imageJPEG.dll" + SectionEnd + Section /o "TIFF images" SEC_plugin_imageTIFF + SetOverwrite ifnewer + SetOutPath "$GEM_OUTDIR" + File "${BUILD_INDIR}\gem_imageTIFF.dll" + SectionEnd + SectionGroupEnd + SectionGroup "record" SEC_plugin_record + Section "QuickTime recording" SEC_plugin_recordQT + SetOverwrite ifnewer + SetOutPath "$GEM_OUTDIR" + File "${BUILD_INDIR}\gem_recordQT.dll" + SectionEnd + SectionGroupEnd + SectionGroup "video" SEC_plugin_video + Section "DirectShow capturing" SEC_plugin_videoDS + SetOverwrite ifnewer + SetOutPath "$GEM_OUTDIR" + File "${BUILD_INDIR}\gem_videoDS.dll" + SectionEnd + Section /o "VFW capturing" SEC_plugin_videoVFW + SetOverwrite ifnewer + SetOutPath "$GEM_OUTDIR" + File "${BUILD_INDIR}\gem_videoVFW.dll" + SectionEnd +; Section /o "Allied Vision Technologies capturing" SEC_plugin_videoAVT +; SetOverwrite ifnewer +; SetOutPath "$GEM_OUTDIR" +; File "${BUILD_INDIR}\gem_videoAVT.dll" +; SectionEnd + Section /o "MVTec/HALCON capturing" SEC_plugin_videoHALCON + SetOverwrite ifnewer + SetOutPath "$GEM_OUTDIR" + File "${BUILD_INDIR}\gem_videoHALCON.dll" + SectionEnd +; Section /o "Basler/PYLON capturing" SEC_plugin_videoPYLON +; SetOverwrite ifnewer +; SetOutPath "$GEM_OUTDIR" +; File "${BUILD_INDIR}\gem_videoPYLON.dll" +; SectionEnd + SectionGroupEnd +SectionGroupEnd + +SectionGroup "extra" SEC_extra + Section "pix_drum" SEC_extra_pix_drum + SetOverwrite ifnewer + SetOutPath "$EXTRA_OUTDIR\pix_drum" + File "${BASE_INDIR}\extra\pix_drum\pix_drum.dll" + File "${BASE_INDIR}\extra\pix_drum\pix_drum-help.pd" + File "${BASE_INDIR}\extra\pix_drum\LICENSE.txt" + SectionEnd + Section "pix_mano" SEC_extra_pix_mano + SetOverwrite ifnewer + SetOutPath "$EXTRA_OUTDIR\pix_mano" + File "${BASE_INDIR}\extra\pix_mano\pix_mano.dll" + File "${BASE_INDIR}\extra\pix_mano\pix_mano-help.pd" + File "${BASE_INDIR}\extra\pix_mano\LICENSE.txt" + SectionEnd + Section "pix_fiducialtrack" SEC_extra_pix_fiducialtrack + SetOverwrite ifnewer + SetOutPath "$EXTRA_OUTDIR\pix_fiducialtrack" + File "${BASE_INDIR}\extra\pix_fiducialtrack\pix_fiducialtrack.dll" + File "${BASE_INDIR}\extra\pix_fiducialtrack\pix_fiducialtrack-help.pd" + File "${BASE_INDIR}\extra\pix_fiducialtrack\all.trees" + SectionEnd + Section "pix_artoolkit" SEC_extra_pix_artoolkit + SetOverwrite ifnewer + SetOutPath "$EXTRA_OUTDIR\pix_artoolkit" + File "${BASE_INDIR}\extra\pix_artoolkit\pix_artoolkit.dll" + File "${BASE_INDIR}\extra\pix_artoolkit\pix_artoolkit-help.pd" + File "${BASE_INDIR}\extra\pix_artoolkit\README.txt" + File "${BASE_INDIR}\extra\pix_artoolkit\camera_para.dat" + File "${BASE_INDIR}\extra\pix_artoolkit\patt.hiro" + File "${BASE_INDIR}\extra\pix_artoolkit\pattHiro.pdf" + SectionEnd +SectionGroupEnd + +Section "Development" SEC_dev + SetOverwrite ifnewer + + SetOutPath "$GEMDEV_OUTDIR" + File "${BUILD_INDIR}\Gem.lib" + + SetOutPath "$GEMDEV_OUTDIR\RTE" + File ${BASE_INDIR}\src\RTE\MessageCallbacks.h + File ${BASE_INDIR}\src\RTE\Array.h + SetOutPath "$GEMDEV_OUTDIR\Gem" + File ${BASE_INDIR}\src\Gem\ThreadSemaphore.h + File ${BASE_INDIR}\src\Gem\ThreadMutex.h + File ${BASE_INDIR}\src\Gem\SynchedWorkerThread.h + File ${BASE_INDIR}\src\Gem\WorkerThread.h + File ${BASE_INDIR}\src\Gem\PixConvert.h + File ${BASE_INDIR}\src\Gem\ImageIO.h + File ${BASE_INDIR}\src\Gem\Image.h + File ${BASE_INDIR}\src\Gem\GLStack.h + File ${BASE_INDIR}\src\Gem\wglew.h + File ${BASE_INDIR}\src\Gem\glxew.h + File ${BASE_INDIR}\src\Gem\glew.h + File ${BASE_INDIR}\src\Gem\GemGL.h + File ${BASE_INDIR}\src\Gem\Event.h + File ${BASE_INDIR}\src\Gem\PBuffer.h + File ${BASE_INDIR}\src\Gem\Manager.h + File ${BASE_INDIR}\src\Gem\Loaders.h + File ${BASE_INDIR}\src\Gem\Settings.h + File ${BASE_INDIR}\src\Gem\Properties.h + File ${BASE_INDIR}\src\Gem\ContextData.h + File ${BASE_INDIR}\src\Gem\Files.h + File ${BASE_INDIR}\src\Gem\Dylib.h + File ${BASE_INDIR}\src\Gem\Exception.h + File ${BASE_INDIR}\src\Gem\Cache.h + File ${BASE_INDIR}\src\Gem\State.h + File ${BASE_INDIR}\src\Gem\RTE.h + File ${BASE_INDIR}\src\Gem\Version.h + File ${BASE_INDIR}\src\Gem\ExportDef.h + SetOutPath "$GEMDEV_OUTDIR\Utils" + File ${BASE_INDIR}\src\Utils\Vector.h + File ${BASE_INDIR}\src\Utils\SIMD.h + File ${BASE_INDIR}\src\Utils\PixPete.h + File ${BASE_INDIR}\src\Utils\Matrix.h + File ${BASE_INDIR}\src\Utils\GemMath.h + File ${BASE_INDIR}\src\Utils\GLUtil.h + File ${BASE_INDIR}\src\Utils\Functions.h + File ${BASE_INDIR}\src\Utils\any.h + SetOutPath "$GEMDEV_OUTDIR\Base" + File ${BASE_INDIR}\src\Base\GemContext.h + File ${BASE_INDIR}\src\Base\GemWindow.h + File ${BASE_INDIR}\src\Base\TextBase.h + File ${BASE_INDIR}\src\Base\GemShape.h + File ${BASE_INDIR}\src\Base\GemPixDualObj.h + File ${BASE_INDIR}\src\Base\GemPixObj.h + File ${BASE_INDIR}\src\Base\GemPathBase.h + File ${BASE_INDIR}\src\Base\GemGluObj.h + File ${BASE_INDIR}\src\Base\GemGLBase.h + File ${BASE_INDIR}\src\Base\GemBase.h + File ${BASE_INDIR}\src\Base\CPPExtern.h + SetOutPath "$GEMDEV_OUTDIR\plugins" + File ${BASE_INDIR}\src\plugins\video.h + File ${BASE_INDIR}\src\plugins\record.h + File ${BASE_INDIR}\src\plugins\imagesaver.h + File ${BASE_INDIR}\src\plugins\imageloader.h + File ${BASE_INDIR}\src\plugins\film.h + File ${BASE_INDIR}\src\plugins\PluginFactoryTimple.h + File ${BASE_INDIR}\src\plugins\PluginFactory.h + SetOutPath "$GEMDEV_OUTDIR\Base" + File ${BASE_INDIR}\src\deprecated\Base\Matrix.h + File ${BASE_INDIR}\src\deprecated\Base\GemVersion.h + File ${BASE_INDIR}\src\deprecated\Base\GemVector.h + File ${BASE_INDIR}\src\deprecated\Base\GemState.h + File ${BASE_INDIR}\src\deprecated\Base\GemSIMD.h + File ${BASE_INDIR}\src\deprecated\Base\GemPixUtil.h + File ${BASE_INDIR}\src\deprecated\Base\GemPixPete.h + File ${BASE_INDIR}\src\deprecated\Base\GemPixImageSave.h + File ${BASE_INDIR}\src\deprecated\Base\GemPixImageLoad.h + File ${BASE_INDIR}\src\deprecated\Base\GemPixConvert.h + File ${BASE_INDIR}\src\deprecated\Base\GemPBuffer.h + File ${BASE_INDIR}\src\deprecated\Base\GemMath.h + File ${BASE_INDIR}\src\deprecated\Base\GemMan.h + File ${BASE_INDIR}\src\deprecated\Base\GemLoaders.h + File ${BASE_INDIR}\src\deprecated\Base\GemGLUtil.h + File ${BASE_INDIR}\src\deprecated\Base\GemGL.h + File ${BASE_INDIR}\src\deprecated\Base\GemFuncUtil.h + File ${BASE_INDIR}\src\deprecated\Base\GemExportDef.h + File ${BASE_INDIR}\src\deprecated\Base\GemEvent.h + File ${BASE_INDIR}\src\deprecated\Base\GemContextData.h + File ${BASE_INDIR}\src\deprecated\Base\GemCache.h + + + WriteRegStr SHCTX "Environment" "GemDevDir" "$GEMDEV_OUTDIR" +SectionEnd + + +Function .onInit + ; prevent multiple instances running at the same time + System::Call 'kernel32::CreateMutexA(i 0, i 0, t "gemInstallerMutex") i .r1 ?e' + Pop $R0 + StrCmp $R0 0 +3 + MessageBox MB_OK|MB_ICONEXCLAMATION "The installer is already running." + Abort +FunctionEnd + + +Function un.onUninstSuccess + HideWindow + MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) has been successfully uninstalled." +FunctionEnd + +Function un.onInit + MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Do you really want to uninstall $(^Name) and all it's components?" IDYES +2 + Abort +StrCpy $EXTRA_OUTDIR "$INSTDIR\.." +StrCpy $GEM_OUTDIR "$INSTDIR" +StrCpy $GEMDEV_OUTDIR "$GEM_OUTDIR\dev" +FunctionEnd + +; uäh: isn't there a way to only delete the files we actually installed? +; that is: without having to enumerate them here +Section Uninstall + Delete "$GEM_OUTDIR\manual\*.*" + RMDir "$GEM_OUTDIR\manual" + + Delete "$GEM_OUTDIR\cMatrix.html" + Delete "$GEM_OUTDIR\gem.known_bugs.txt" + Delete "$GEM_OUTDIR\GemPrimer.pdf" + Delete "$GEM_OUTDIR\gem.release_notes.txt" + Delete "$GEM_OUTDIR\gem.todo.txt" + + Delete "$GEM_OUTDIR\examples\data\*.*" + Delete "$GEM_OUTDIR\examples\99.games\*.pd" + Delete "$GEM_OUTDIR\examples\13.recursion\*.pd" + Delete "$GEM_OUTDIR\examples\13.recursion\README" + Delete "$GEM_OUTDIR\examples\12.multi_screen_projection\*.pd" + Delete "$GEM_OUTDIR\examples\12.multi_screen_projection\*.frag" + Delete "$GEM_OUTDIR\examples\12.multi_screen_projection\*.vert" + Delete "$GEM_OUTDIR\examples\12.multi_screen_projection\config.txt" + Delete "$GEM_OUTDIR\examples\12.multi_screen_projection\grid.jpg" + Delete "$GEM_OUTDIR\examples\11.obj-exporter\*.pd" + Delete "$GEM_OUTDIR\examples\10.glsl\*.frag" + Delete "$GEM_OUTDIR\examples\10.glsl\*.vert" + Delete "$GEM_OUTDIR\examples\10.glsl\*.geom" + Delete "$GEM_OUTDIR\examples\10.glsl\*.jpg" + Delete "$GEM_OUTDIR\examples\10.glsl\*.pd" + Delete "$GEM_OUTDIR\examples\09.openGL\*.pd" + Delete "$GEM_OUTDIR\examples\08.io\*.pd" + Delete "$GEM_OUTDIR\examples\07.texture\*.pd" + Delete "$GEM_OUTDIR\examples\06.particle\*.pd" + Delete "$GEM_OUTDIR\examples\05.text\*.ttf" + Delete "$GEM_OUTDIR\examples\05.text\*.pd" + Delete "$GEM_OUTDIR\examples\04.video\*.pd" + Delete "$GEM_OUTDIR\examples\04.pix\*.pd" + Delete "$GEM_OUTDIR\examples\03.lighting\*.pd" + Delete "$GEM_OUTDIR\examples\02.advanced\*.pd" + Delete "$GEM_OUTDIR\examples\01.basic\*.pd" + RMDir "$GEM_OUTDIR\examples\data" + RMDir "$GEM_OUTDIR\examples\99.games" + RMDir "$GEM_OUTDIR\examples\13.recursion" + RMDir "$GEM_OUTDIR\examples\12.multi_screen_projection" + RMDir "$GEM_OUTDIR\examples\11.obj-exporter" + RMDir "$GEM_OUTDIR\examples\10.glsl" + RMDir "$GEM_OUTDIR\examples\09.openGL" + RMDir "$GEM_OUTDIR\examples\08.io" + RMDir "$GEM_OUTDIR\examples\07.texture" + RMDir "$GEM_OUTDIR\examples\06.particle" + RMDir "$GEM_OUTDIR\examples\05.text" + RMDir "$GEM_OUTDIR\examples\04.video" + RMDir "$GEM_OUTDIR\examples\04.pix" + RMDir "$GEM_OUTDIR\examples\03.lighting" + RMDir "$GEM_OUTDIR\examples\02.advanced" + RMDir "$GEM_OUTDIR\examples\01.basic" + RMDir "$GEM_OUTDIR\examples" + + Delete "$GEM_OUTDIR\pix_*.pd" + Delete "$GEM_OUTDIR\*-help.pd" + Delete "$GEM_OUTDIR\*.pd" + + Delete "$GEM_OUTDIR\gem_filmAVI.dll" + Delete "$GEM_OUTDIR\gem_filmDS.dll" + Delete "$GEM_OUTDIR\gem_filmQT.dll" + Delete "$GEM_OUTDIR\gem_imageJPEG.dll" + Delete "$GEM_OUTDIR\gem_imageMAGICK.dll" + Delete "$GEM_OUTDIR\gem_imageQT.dll" + Delete "$GEM_OUTDIR\gem_imageSGI.dll" + Delete "$GEM_OUTDIR\gem_imageTIFF.dll" + Delete "$GEM_OUTDIR\gem_recordQT.dll" +; Delete "$GEM_OUTDIR\gem_videoAVT.dll" + Delete "$GEM_OUTDIR\gem_videoDS.dll" + Delete "$GEM_OUTDIR\gem_videoHALCON.dll" +; Delete "$GEM_OUTDIR\gem_videoPYLON.dll" + Delete "$GEM_OUTDIR\gem_videoVFW.dll" + Delete "$GEM_OUTDIR\Gem.dll" + Delete "$GEM_OUTDIR\GnuGPL.LICENSE.txt" + Delete "$GEM_OUTDIR\COPYING.txt" + Delete "$GEM_OUTDIR\ChangeLog" + Delete "$GEM_OUTDIR\README.txt" + + /* Development */ + Delete "$GEMDEV_OUTDIR\Gem.lib" + Delete "$GEMDEV_OUTDIR\RTE\MessageCallbacks.h" + Delete "$GEMDEV_OUTDIR\RTE\Array.h" + Delete "$GEMDEV_OUTDIR\Gem\ThreadSemaphore.h" + Delete "$GEMDEV_OUTDIR\Gem\ThreadMutex.h" + Delete "$GEMDEV_OUTDIR\Gem\SynchedWorkerThread.h" + Delete "$GEMDEV_OUTDIR\Gem\WorkerThread.h" + Delete "$GEMDEV_OUTDIR\Gem\PixConvert.h" + Delete "$GEMDEV_OUTDIR\Gem\ImageIO.h" + Delete "$GEMDEV_OUTDIR\Gem\Image.h" + Delete "$GEMDEV_OUTDIR\Gem\GLStack.h" + Delete "$GEMDEV_OUTDIR\Gem\wglew.h" + Delete "$GEMDEV_OUTDIR\Gem\glxew.h" + Delete "$GEMDEV_OUTDIR\Gem\glew.h" + Delete "$GEMDEV_OUTDIR\Gem\GemGL.h" + Delete "$GEMDEV_OUTDIR\Gem\Event.h" + Delete "$GEMDEV_OUTDIR\Gem\PBuffer.h" + Delete "$GEMDEV_OUTDIR\Gem\Manager.h" + Delete "$GEMDEV_OUTDIR\Gem\Loaders.h" + Delete "$GEMDEV_OUTDIR\Gem\Settings.h" + Delete "$GEMDEV_OUTDIR\Gem\Properties.h" + Delete "$GEMDEV_OUTDIR\Gem\ContextData.h" + Delete "$GEMDEV_OUTDIR\Gem\Files.h" + Delete "$GEMDEV_OUTDIR\Gem\Dylib.h" + Delete "$GEMDEV_OUTDIR\Gem\Exception.h" + Delete "$GEMDEV_OUTDIR\Gem\Cache.h" + Delete "$GEMDEV_OUTDIR\Gem\State.h" + Delete "$GEMDEV_OUTDIR\Gem\RTE.h" + Delete "$GEMDEV_OUTDIR\Gem\Version.h" + Delete "$GEMDEV_OUTDIR\Gem\ExportDef.h" + Delete "$GEMDEV_OUTDIR\Utils\Vector.h" + Delete "$GEMDEV_OUTDIR\Utils\SIMD.h" + Delete "$GEMDEV_OUTDIR\Utils\PixPete.h" + Delete "$GEMDEV_OUTDIR\Utils\Matrix.h" + Delete "$GEMDEV_OUTDIR\Utils\GemMath.h" + Delete "$GEMDEV_OUTDIR\Utils\GLUtil.h" + Delete "$GEMDEV_OUTDIR\Utils\Functions.h" + Delete "$GEMDEV_OUTDIR\Utils\any.h" + Delete "$GEMDEV_OUTDIR\Base\GemContext.h" + Delete "$GEMDEV_OUTDIR\Base\GemWindow.h" + Delete "$GEMDEV_OUTDIR\Base\TextBase.h" + Delete "$GEMDEV_OUTDIR\Base\GemShape.h" + Delete "$GEMDEV_OUTDIR\Base\GemPixDualObj.h" + Delete "$GEMDEV_OUTDIR\Base\GemPixObj.h" + Delete "$GEMDEV_OUTDIR\Base\GemPathBase.h" + Delete "$GEMDEV_OUTDIR\Base\GemGluObj.h" + Delete "$GEMDEV_OUTDIR\Base\GemGLBase.h" + Delete "$GEMDEV_OUTDIR\Base\GemBase.h" + Delete "$GEMDEV_OUTDIR\Base\CPPExtern.h" + Delete "$GEMDEV_OUTDIR\plugins\video.h" + Delete "$GEMDEV_OUTDIR\plugins\record.h" + Delete "$GEMDEV_OUTDIR\plugins\imagesaver.h" + Delete "$GEMDEV_OUTDIR\plugins\imageloader.h" + Delete "$GEMDEV_OUTDIR\plugins\film.h" + Delete "$GEMDEV_OUTDIR\plugins\PluginFactoryTimple.h" + Delete "$GEMDEV_OUTDIR\plugins\PluginFactory.h" + Delete "$GEMDEV_OUTDIR\Base\Matrix.h" + Delete "$GEMDEV_OUTDIR\Base\GemVersion.h" + Delete "$GEMDEV_OUTDIR\Base\GemVector.h" + Delete "$GEMDEV_OUTDIR\Base\GemState.h" + Delete "$GEMDEV_OUTDIR\Base\GemSIMD.h" + Delete "$GEMDEV_OUTDIR\Base\GemPixUtil.h" + Delete "$GEMDEV_OUTDIR\Base\GemPixPete.h" + Delete "$GEMDEV_OUTDIR\Base\GemPixImageSave.h" + Delete "$GEMDEV_OUTDIR\Base\GemPixImageLoad.h" + Delete "$GEMDEV_OUTDIR\Base\GemPixConvert.h" + Delete "$GEMDEV_OUTDIR\Base\GemPBuffer.h" + Delete "$GEMDEV_OUTDIR\Base\GemMath.h" + Delete "$GEMDEV_OUTDIR\Base\GemMan.h" + Delete "$GEMDEV_OUTDIR\Base\GemLoaders.h" + Delete "$GEMDEV_OUTDIR\Base\GemGLUtil.h" + Delete "$GEMDEV_OUTDIR\Base\GemGL.h" + Delete "$GEMDEV_OUTDIR\Base\GemFuncUtil.h" + Delete "$GEMDEV_OUTDIR\Base\GemExportDef.h" + Delete "$GEMDEV_OUTDIR\Base\GemEvent.h" + Delete "$GEMDEV_OUTDIR\Base\GemContextData.h" + Delete "$GEMDEV_OUTDIR\Base\GemCache.h" + RMDir "$GEMDEV_OUTDIR\RTE" + RMDir "$GEMDEV_OUTDIR\Gem" + RMDir "$GEMDEV_OUTDIR\Utils" + RMDir "$GEMDEV_OUTDIR\Base" + RMDir "$GEMDEV_OUTDIR\plugins" + RMDir "$GEMDEV_OUTDIR\Base" + RMDir "$GEMDEV_OUTDIR" + + /* extra */ + Delete "$EXTRA_OUTDIR\pix_drum\pix_drum.dll" + Delete "$EXTRA_OUTDIR\pix_drum\pix_drum-help.pd" + Delete "$EXTRA_OUTDIR\pix_drum\LICENSE.txt" + Delete "$EXTRA_OUTDIR\pix_mano\pix_mano.dll" + Delete "$EXTRA_OUTDIR\pix_mano\pix_mano-help.pd" + Delete "$EXTRA_OUTDIR\pix_mano\LICENSE.txt" + Delete "$EXTRA_OUTDIR\pix_fiducialtrack\pix_fiducialtrack.dll" + Delete "$EXTRA_OUTDIR\pix_fiducialtrack\pix_fiducialtrack-help.pd" + Delete "$EXTRA_OUTDIR\pix_fiducialtrack\all.trees" + Delete "$EXTRA_OUTDIR\pix_artoolkit\pix_artoolkit.dll" + Delete "$EXTRA_OUTDIR\pix_artoolkit\pix_artoolkit-help.pd" + Delete "$EXTRA_OUTDIR\pix_artoolkit\README.txt" + Delete "$EXTRA_OUTDIR\pix_artoolkit\camera_para.dat" + Delete "$EXTRA_OUTDIR\pix_artoolkit\patt.hiro" + Delete "$EXTRA_OUTDIR\pix_artoolkit\pattHiro.pdf" + + RMDir "$EXTRA_OUTDIR\pix_drum" + RMDir "$EXTRA_OUTDIR\pix_mano" + RMDir "$EXTRA_OUTDIR\pix_fiducialtrack" + RMDir "$EXTRA_OUTDIR\pix_artoolkit" + + Delete "$GEM_OUTDIR\uninst.exe" + RMDir "$GEM_OUTDIR" + + DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" + ; try to delete SHCTX \"Environment"\"GEM_DEFAULT_FONT" if it is "$GEM_OUTDIR\examples\data\vera.ttf" + + SetAutoClose true +SectionEnd + +Section -Post + WriteUninstaller "$GEM_OUTDIR\uninst.exe" + WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)" + WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$GEM_OUTDIR\uninst.exe" + WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}" + WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}" + WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}" +SectionEnd + + +!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SEC_Gem} "Graphical Environment for Multimedia" + !insertmacro MUI_DESCRIPTION_TEXT ${SEC_GemBinary} "the Gem binary" + !insertmacro MUI_DESCRIPTION_TEXT ${SEC_GemAbs} "Gem-abstractions" + !insertmacro MUI_DESCRIPTION_TEXT ${SEC_documentation} "Gem documentation: patches, HTML, PDFs,..." + !insertmacro MUI_DESCRIPTION_TEXT ${SEC_ref} "reference patches for Gem-objects" + !insertmacro MUI_DESCRIPTION_TEXT ${SEC_examples} "a large number of patches showing what to do with GEM" + !insertmacro MUI_DESCRIPTION_TEXT ${SEC_manual} "HTML-manual" + !insertmacro MUI_DESCRIPTION_TEXT ${SEC_doc} "Gem primer,..." + +#plugins + !insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin} "plugins to enhance Gem's capabilities" + + !insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_film} "plugins for movie loading" + !insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_filmDS} "allows to read movies using DirectShow filters" + !insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_filmQT} "allows to read movies using Apple's QuickTime library (if present)" + !insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_filmAVI} "allows to read movies using Microsoft's old (and deprecated) AVI library" + + !insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_record} "plugins for video output" + !insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_recordQT} "allows to output Gem-pixes into QuickTime MOVie files" + + !insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_image} "plugins for image loading/saving" + !insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_imageMAGICK} "allows to read/write still images using ImageMagick (this can virtually read/write any image format, including but not limited to JPEG, TIFF and SGI, so it's probably the only 'image' plugin you need)" + !insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_imageQT} "allows to read/write still images using Apple's QuickTime; NOTE that this will disable threaded loading of images" + !insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_imageSGI} "allows to read SGI images" + !insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_imageJPEG} "allows to read/write JPEG images" + !insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_imageTIFF} "allows to read/write TIFF images" + + !insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_video} "plugins for live video capturing" + !insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_videoDS} "allows to capture live video sources using DirectShow filters" + !insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_videoVFW} "allows to capture live video using Microsoft's old (and deprecated) Video-For-Windows method" +!insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_videoAVT} "allows to capture live video from GigE-cameras using AVT (Allied Vision Technologies); supported cameras include the Prosilica family (http://www.alliedvisiontec.com) " +!insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_videoHALCON} "allows to capture live video from a number of devices (including GigE-cameras and industry grade frame grabbers) using MVTec's HALCON library; you will need to purchase a license from MVTec in order to be able to use this plugin (http://www.mvtec.com) " +!insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_videoPYLON} "allows to capture live video from GigE-cameras using Basler's PYLON library; mainly supports Basler cameras; you might need to download additional software in order to use this plugin (http://www.baslerweb.com)" + + +!insertmacro MUI_DESCRIPTION_TEXT ${SEC_extra} "additional objectclasses" +!insertmacro MUI_DESCRIPTION_TEXT ${SEC_extra_pix_drum} "Jaime Olivier's [pix_drum] object for his 'Silent Drum'" +!insertmacro MUI_DESCRIPTION_TEXT ${SEC_extra_pix_mano} "Jaime Olivier's [pix_mano] object" +!insertmacro MUI_DESCRIPTION_TEXT ${SEC_extra_pix_fiducialtrack} "a port of the reactable(tm)'s fiducial tracking algorithm" +!insertmacro MUI_DESCRIPTION_TEXT ${SEC_extra_pix_artoolkit} "fiducial tracking using ARToolkit markers" + +!insertmacro MUI_DESCRIPTION_TEXT ${SEC_dev} "Headers and Library-Files for developing your own Gem objects" + +!insertmacro MUI_FUNCTION_DESCRIPTION_END diff --git a/Gem/build/win-nsis/buildinstaller.bat b/Gem/build/win-nsis/buildinstaller.bat new file mode 100644 index 0000000..ff48f3d --- /dev/null +++ b/Gem/build/win-nsis/buildinstaller.bat @@ -0,0 +1,11 @@ +set NSISDIR=%ProgramFiles%\NSIS\ +set GEMNSIS=%CD% + +cd %NSISDIR% + +set PROD=/DPRODUCT_VERSION=%1 +if "%1"=="" set PROD="/DBLABLA" + +makensis %PROD% %GEMNSIS%\Gem.nsi + +cd %GEMNSIS% diff --git a/Gem/build/win-nsis/uninstaller1.nsi b/Gem/build/win-nsis/uninstaller1.nsi new file mode 100644 index 0000000..4c9f70f --- /dev/null +++ b/Gem/build/win-nsis/uninstaller1.nsi @@ -0,0 +1,91 @@ +; +; uninstall only (and all) installed files +; ripped from http://nsis.sourceforge.net/Uninstall_only_installed_files +; +; Part 1/2: THIS HAS TO GO DIRECTLY BEFORE THE "SECTIONS" +; +; Instead of using SetOutPath, CreateDirectory, File, CopyFiles, Rename and +; WriteUninstaller instructions in your sections, use ${SetOutPath}, +; ${CreateDirectory}, ${File}, ${CopyFiles}, ${Rename} and ${WriteUninstaller} +; instead. +; +; When using ${SetOutPath} to create more than one upper level directory, e.g.: +; ${SetOutPath} "$INSTDIR\dir1\dir2\dir3", you need to add entries for each lower +; level directory for them all to be deleted: +; ${AddItem} "$INSTDIR\dir1" +; ${AddItem} "$INSTDIR\dir1\dir2" +; ${SetOutPath} "$INSTDIR\dir1\dir2\dir3" + +!define UninstLog "uninstall.log" +Var UninstLog + +; Uninstall log file missing. +LangString UninstLogMissing ${LANG_ENGLISH} "${UninstLog} not found!$\r$\nUninstallation cannot proceed!" + +; AddItem macro +!macro AddItem Path + FileWrite $UninstLog "${Path}$\r$\n" +!macroend +!define AddItem "!insertmacro AddItem" + +; File macro +!macro File FilePath FileName + IfFileExists "$OUTDIR\${FileName}" +2 + FileWrite $UninstLog "$OUTDIR\${FileName}$\r$\n" + File "${FilePath}${FileName}" +!macroend +!define File "!insertmacro File" + +; CreateShortcut macro +!macro CreateShortcut FilePath FilePointer + FileWrite $UninstLog "${FilePath}$\r$\n" + CreateShortcut "${FilePath}" "${FilePointer}" +!macroend +!define CreateShortcut "!insertmacro CreateShortcut" + +; Copy files macro +!macro CopyFiles SourcePath DestPath + IfFileExists "${DestPath}" +2 + FileWrite $UninstLog "${DestPath}$\r$\n" + CopyFiles "${SourcePath}" "${DestPath}" +!macroend +!define CopyFiles "!insertmacro CopyFiles" + +; Rename macro +!macro Rename SourcePath DestPath + IfFileExists "${DestPath}" +2 + FileWrite $UninstLog "${DestPath}$\r$\n" + Rename "${SourcePath}" "${DestPath}" +!macroend +!define Rename "!insertmacro Rename" + +; CreateDirectory macro +!macro CreateDirectory Path + CreateDirectory "${Path}" + FileWrite $UninstLog "${Path}$\r$\n" +!macroend +!define CreateDirectory "!insertmacro CreateDirectory" + +; SetOutPath macro +!macro SetOutPath Path + SetOutPath "${Path}" + FileWrite $UninstLog "${Path}$\r$\n" +!macroend +!define SetOutPath "!insertmacro SetOutPath" + +; WriteUninstaller macro +!macro WriteUninstaller Path + WriteUninstaller "${Path}" + FileWrite $UninstLog "${Path}$\r$\n" +!macroend +!define WriteUninstaller "!insertmacro WriteUninstaller" + +Section -openlogfile + CreateDirectory "$INSTDIR" + IfFileExists "$INSTDIR\${UninstLog}" +3 + FileOpen $UninstLog "$INSTDIR\${UninstLog}" w + Goto +4 + SetFileAttributes "$INSTDIR\${UninstLog}" NORMAL + FileOpen $UninstLog "$INSTDIR\${UninstLog}" a + FileSeek $UninstLog 0 END +SectionEnd diff --git a/Gem/build/win-nsis/uninstaller2.nsi b/Gem/build/win-nsis/uninstaller2.nsi new file mode 100644 index 0000000..122c583 --- /dev/null +++ b/Gem/build/win-nsis/uninstaller2.nsi @@ -0,0 +1,60 @@ +; +; uninstall only (and all) installed files +; ripped from http://nsis.sourceforge.net/Uninstall_only_installed_files +; +; Part 2/2: THIS HAS TO GO DIRECTLY AFTER THE "SECTIONS" +; +; LATER: allow the user to proceed uninstallation even without an uninstall.log +; (e.g. by deleting the entire tree - at the users own risk!) + + + +Section -closelogfile + FileClose $UninstLog + SetFileAttributes "$INSTDIR\${UninstLog}" READONLY|SYSTEM|HIDDEN +SectionEnd + +Section Uninstall + + ; Can't uninstall if uninstall log is missing! + IfFileExists "$INSTDIR\${UninstLog}" +3 + MessageBox MB_OK|MB_ICONSTOP "$(UninstLogMissing)" + Abort + + Push $R0 + Push $R1 + Push $R2 + SetFileAttributes "$INSTDIR\${UninstLog}" NORMAL + FileOpen $UninstLog "$INSTDIR\${UninstLog}" r + StrCpy $R1 -1 + + GetLineCount: + ClearErrors + FileRead $UninstLog $R0 + IntOp $R1 $R1 + 1 + StrCpy $R0 $R0 -2 + Push $R0 + IfErrors 0 GetLineCount + + Pop $R0 + + LoopRead: + StrCmp $R1 0 LoopDone + Pop $R0 + + IfFileExists "$R0\*.*" 0 +3 + RMDir $R0 #is dir + Goto +3 + IfFileExists $R0 0 +2 + Delete $R0 #is file + + IntOp $R1 $R1 - 1 + Goto LoopRead + LoopDone: + FileClose $UninstLog + Delete "$INSTDIR\${UninstLog}" + RMDir "$INSTDIR" + Pop $R2 + Pop $R1 + Pop $R0 +SectionEnd diff --git a/Gem/build/win-vs2003/Gem.sln b/Gem/build/win-vs2003/Gem.sln new file mode 100644 index 0000000..ddaba83 --- /dev/null +++ b/Gem/build/win-vs2003/Gem.sln @@ -0,0 +1,294 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Gem", "Gem.vcproj", "{E6CFDE67-C343-44D0-8584-5D82E396D594}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pix_artoolkit", "..\..\extra\pix_artoolkit\win-vs2003\pix_artoolkit.vcproj", "{FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "installer", "installer.vcproj", "{6965876A-4A92-470C-95EF-EB554B13B336}" + ProjectSection(ProjectDependencies) = postProject + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "filmAVI", "..\..\plugins\filmAVI\win-vs2003\filmAVI.vcproj", "{FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "filmDS", "..\..\plugins\filmDS\win-vs2003\filmDS.vcproj", "{FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "filmQT", "..\..\plugins\filmQT\win-vs2003\filmQT.vcproj", "{FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "recordQT", "..\..\plugins\recordQT\win-vs2003\recordQT.vcproj", "{FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "videoDS", "..\..\plugins\videoDS\win-vs2003\videoDS.vcproj", "{FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "videoVFW", "..\..\plugins\videoVFW\win-vs2003\videoVFW.vcproj", "{FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "videoHALCON", "..\..\plugins\videoHALCON\win-vs2003\videoHALCON.vcproj", "{FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pix_drum", "..\..\extra\pix_drum\win-vs2003\pix_drum.vcproj", "{FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pix_mano", "..\..\extra\pix_mano\win-vs2003\pix_mano.vcproj", "{FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pix_fiducialtrack", "..\..\extra\pix_fiducialtrack\win-vs2003\pix_fiducialtrack.vcproj", "{FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "imageQT", "..\..\plugins\imageQT\win-vs2003\imageQT.vcproj", "{FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "imageJPEG", "..\..\plugins\imageJPEG\win-vs2003\imageJPEG.vcproj", "{FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "imageTIFF", "..\..\plugins\imageTIFF\win-vs2003\imageTIFF.vcproj", "{FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "imageMAGICK", "..\..\plugins\imageMAGICK\win-vs2003\imageMAGICK.vcproj", "{FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "imageSGI", "..\..\plugins\imageSGI\win-vs2003\imageSGI.vcproj", "{FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "modelOBJ", "..\..\plugins\modelOBJ\win-vs2003\modelOBJ.vcproj", "{FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "modelASSIMP2", "..\..\plugins\modelASSIMP2\win-vs2003\modelASSIMP2.vcproj", "{FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pix_hit", "..\..\extra\pix_hit\win-vs2003\pix_hit.vcproj", "{FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Release = Release + ReleaseDummy = ReleaseDummy + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {E6CFDE67-C343-44D0-8584-5D82E396D594}.Release.ActiveCfg = Release|Win32 + {E6CFDE67-C343-44D0-8584-5D82E396D594}.Release.Build.0 = Release|Win32 + {E6CFDE67-C343-44D0-8584-5D82E396D594}.ReleaseDummy.ActiveCfg = Release|Win32 + {E6CFDE67-C343-44D0-8584-5D82E396D594}.ReleaseDummy.Build.0 = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.ActiveCfg = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.Build.0 = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.ActiveCfg = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.Build.0 = ReleaseDummy|Win32 + {6965876A-4A92-470C-95EF-EB554B13B336}.Release.ActiveCfg = Release|Win32 + {6965876A-4A92-470C-95EF-EB554B13B336}.ReleaseDummy.ActiveCfg = Release|Win32 + {6965876A-4A92-470C-95EF-EB554B13B336}.ReleaseDummy.Build.0 = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.ActiveCfg = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.Build.0 = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.ActiveCfg = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.Build.0 = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.ActiveCfg = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.Build.0 = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.ActiveCfg = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.Build.0 = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.ActiveCfg = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.Build.0 = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.ActiveCfg = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.Build.0 = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.ActiveCfg = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.Build.0 = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.ActiveCfg = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.Build.0 = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.ActiveCfg = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.Build.0 = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.ActiveCfg = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.Build.0 = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.ActiveCfg = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.Build.0 = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.ActiveCfg = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.Build.0 = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.ActiveCfg = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.Build.0 = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.ActiveCfg = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.Build.0 = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.ActiveCfg = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.Build.0 = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.ActiveCfg = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.Build.0 = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.ActiveCfg = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.Build.0 = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.ActiveCfg = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.Build.0 = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.ActiveCfg = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.Build.0 = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.ActiveCfg = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.Build.0 = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.ActiveCfg = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.Build.0 = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.ActiveCfg = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.Build.0 = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.ActiveCfg = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.Build.0 = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.ActiveCfg = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.Build.0 = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.ActiveCfg = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.Build.0 = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.ActiveCfg = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.Build.0 = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.ActiveCfg = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.Build.0 = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.ActiveCfg = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.Build.0 = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.ActiveCfg = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.Build.0 = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.ActiveCfg = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.Build.0 = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.ActiveCfg = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.Build.0 = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.ActiveCfg = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.Build.0 = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.ActiveCfg = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.Build.0 = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.ActiveCfg = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.Build.0 = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.ActiveCfg = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release.Build.0 = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.ActiveCfg = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy.Build.0 = ReleaseDummy|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/Gem/build/win-vs2003/Gem.vcproj b/Gem/build/win-vs2003/Gem.vcproj new file mode 100644 index 0000000..d9738e1 --- /dev/null +++ b/Gem/build/win-vs2003/Gem.vcproj @@ -0,0 +1,3765 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Gem/build/win-vs2003/README_W32.txt.template b/Gem/build/win-vs2003/README_W32.txt.template new file mode 100644 index 0000000..989dee9 --- /dev/null +++ b/Gem/build/win-vs2003/README_W32.txt.template @@ -0,0 +1,22 @@ +this Gem.dll is the Gem-binary for w32 + +it is optimized for Pentium-Pro, so it should run on quite every machine + +this file has been compiled and tested on winXP +it probably can be used on w2k too, but chances are low that you can run it on older versions of w32. + +you might have to install a recent version of DirectX (>9.0) +if you want to play-back QuickTime-videos, you have to install QuickTime first (current version is 7.2) + + + +this is an alpha-release: please test it an report back any bugs you encounter + + + +mfga.sdr +IOhannes m zmölnig + +contact emails: +zmoelnig iem at +gem-dev iem at diff --git a/Gem/build/win-vs2003/installer.bat b/Gem/build/win-vs2003/installer.bat new file mode 100644 index 0000000..3f1eade --- /dev/null +++ b/Gem/build/win-vs2003/installer.bat @@ -0,0 +1,10 @@ +set _=%CD% + +set NSISDIR=..\win-nsis\ + +xcopy /y Gem.dll %NSISDIR%\ +cd %NSISDIR% + +buildinstaller.bat %1 + +cd %_% \ No newline at end of file diff --git a/Gem/build/win-vs2003/installer.vcproj b/Gem/build/win-vs2003/installer.vcproj new file mode 100644 index 0000000..88dea8b --- /dev/null +++ b/Gem/build/win-vs2003/installer.vcproj @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/Gem/build/win-vs2003/installerCVS.bat b/Gem/build/win-vs2003/installerCVS.bat new file mode 100644 index 0000000..1a068d6 --- /dev/null +++ b/Gem/build/win-vs2003/installerCVS.bat @@ -0,0 +1,2 @@ +installer SVN%DATE:~6,4%%DATE:~3,2%%DATE:~0,2% +rem installer 0.93.0 diff --git a/Gem/build/win-vs2003/libraries.txt b/Gem/build/win-vs2003/libraries.txt new file mode 100644 index 0000000..8476fff --- /dev/null +++ b/Gem/build/win-vs2003/libraries.txt @@ -0,0 +1,48 @@ +just a sketchpad for me to remember which libraries we really need + +Multithreaded-Debug (/MTd) + +working configuration#1(+QuickTime) +msvcrtD.lib +msvcprtD.lib +OLDNAMES.lib +pd.lib +opengl32.lib +glu32.lib +vfw32.lib +QTMLClient.lib + +working configuration#2(#1+DirectShow) +msvcrtD.lib (C/C++) +msvcprtD.lib (C/C++) +OLDNAMES.lib (C/C++) +pd.lib (Pure data) +opengl32.lib (openGL) +glu32.lib (openGL) +QTMLClient.lib (QuickTime) +vfw32.lib (Video4Windows) +ddraw.lib (DirectShow) +strmiids.lib (DirectShow) +strmbasD.lib (DirectShow - part of DirectShow/BaseClasses sample) +atlsD.lib (DirectShow - ATLclasses) +winmm.lib (DirectShow - time) + + +working configuration#3(#2+FTGL+jpeg/tiff) +msvcrtD.lib (C/C++) +msvcprtD.lib (C/C++) +OLDNAMES.lib (C/C++) +pd.lib (Pure data) +opengl32.lib (openGL) +glu32.lib (openGL) +libjpeg.lib (jpeg/tiff) +libtiff.lib (jpeg/tiff) +FTGL_static_mtD.lib (FTGL) +freetype214mt_D.lib (FTGL) +QTMLClient.lib (QuickTime) +vfw32.lib (video4windows) +ddraw.lib (DirectShow) +strmiids.lib (DirectShow) +strmbasD.lib (DirectShow - part of DirectShow/BaseClasses sample) +atlsD.lib (DirectShow - ATLclasses) +winmm.lib (DirectShow - time) diff --git a/Gem/build/win-vs2003/release.bat b/Gem/build/win-vs2003/release.bat new file mode 100644 index 0000000..5ad7160 --- /dev/null +++ b/Gem/build/win-vs2003/release.bat @@ -0,0 +1,40 @@ +set ZIP=%ProgramFiles%\7-Zip\7z.exe +rem set ZIP=echo + +set GEMVERSION=%DATE:~6,4%%DATE:~3,2%%DATE:~0,2% + +set GEMDIR=gem-%GEMVERSION% + +set GEMARC=gem-CVS%GEMVERSION%-W32-i686 + +mkdir %GEMDIR% + +xcopy Gem.dll %GEMDIR%\ +copy README_W32.txt.template %GEMDIR%\README_W32.txt + +%ZIP% a %GEMARC%-bin.zip %GEMDIR% + +read + +cd ..\..\ + +xcopy /E /I abstractions build\win-vs2003\%GEMDIR%\abstractions + +xcopy /E /I help build\win-vs2003\%GEMDIR%\help + +xcopy /E /I examples build\win-vs2003\%GEMDIR%\examples +xcopy /E /I doc build\win-vs2003\%GEMDIR%\doc +xcopy /E /I manual build\win-vs2003\%GEMDIR%\manual + +xcopy /E /I tests build\win-vs2003\%GEMDIR%\tests + +copy ChangeLog build\win-vs2003\%GEMDIR% +copy GEM_INSTALL.bat build\win-vs2003\%GEMDIR% +copy GEM.LICENSE.TERMS build\win-vs2003\%GEMDIR% +copy GEM.README build\win-vs2003\%GEMDIR% +copy GnuGPL.LICENSE build\win-vs2003\%GEMDIR% + + +cd build\win-vs2003 + +%ZIP% a %GEMARC%-bin-doc.zip %GEMDIR% diff --git a/Gem/build/win-vs2008/Debug.vsprops b/Gem/build/win-vs2008/Debug.vsprops new file mode 100644 index 0000000..87d251e --- /dev/null +++ b/Gem/build/win-vs2008/Debug.vsprops @@ -0,0 +1,21 @@ + + + + + diff --git a/Gem/build/win-vs2008/DirectShow.vsprops b/Gem/build/win-vs2008/DirectShow.vsprops new file mode 100644 index 0000000..fd18d33 --- /dev/null +++ b/Gem/build/win-vs2008/DirectShow.vsprops @@ -0,0 +1,17 @@ + + + + + diff --git a/Gem/build/win-vs2008/FTGL.vsprops b/Gem/build/win-vs2008/FTGL.vsprops new file mode 100644 index 0000000..c5e5de2 --- /dev/null +++ b/Gem/build/win-vs2008/FTGL.vsprops @@ -0,0 +1,17 @@ + + + + + diff --git a/Gem/build/win-vs2008/FTGL_Debug.vsprops b/Gem/build/win-vs2008/FTGL_Debug.vsprops new file mode 100644 index 0000000..3a7fec0 --- /dev/null +++ b/Gem/build/win-vs2008/FTGL_Debug.vsprops @@ -0,0 +1,17 @@ + + + + + diff --git a/Gem/build/win-vs2008/FTGL_Release.vsprops b/Gem/build/win-vs2008/FTGL_Release.vsprops new file mode 100644 index 0000000..5ced81f --- /dev/null +++ b/Gem/build/win-vs2008/FTGL_Release.vsprops @@ -0,0 +1,17 @@ + + + + + diff --git a/Gem/build/win-vs2008/Gem.sln b/Gem/build/win-vs2008/Gem.sln new file mode 100644 index 0000000..82575d6 --- /dev/null +++ b/Gem/build/win-vs2008/Gem.sln @@ -0,0 +1,340 @@ +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Gem", "Gem.vcproj", "{E6CFDE67-C343-44D0-8584-5D82E396D594}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pix_artoolkit", "..\..\extra\pix_artoolkit\win-vs2008\pix_artoolkit.vcproj", "{FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "installer", "installer.vcproj", "{6965876A-4A92-470C-95EF-EB554B13B336}" + ProjectSection(ProjectDependencies) = postProject + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} = {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC} + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "filmAVI", "..\..\plugins\filmAVI\win-vs2008\filmAVI.vcproj", "{F2368753-AF77-43B7-BE96-1292EC104941}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "filmDS", "..\..\plugins\filmDS\win-vs2008\filmDS.vcproj", "{6EA41ED7-ECCD-4A9A-BED0-E8E4B4BD77EB}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "filmQT", "..\..\plugins\filmQT\win-vs2008\filmQT.vcproj", "{92E57A6D-B582-46F0-B02D-E0F29A594143}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "recordQT", "..\..\plugins\recordQT\win-vs2008\recordQT.vcproj", "{FE35B992-784A-4DE2-A538-9285C83618C4}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "videoDS", "..\..\plugins\videoDS\win-vs2008\videoDS.vcproj", "{3B5EC55E-FC95-45EB-B9C1-ACDA01D49061}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "videoVFW", "..\..\plugins\videoVFW\win-vs2008\videoVFW.vcproj", "{1A49951B-8C31-45F4-B738-B36B960913C7}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "videoHALCON", "..\..\plugins\videoHALCON\win-vs2008\videoHALCON.vcproj", "{4B82D19E-ABA3-4DE8-8144-AA6087C52454}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pix_drum", "..\..\extra\pix_drum\win-vs2008\pix_drum.vcproj", "{D4A0BA99-E00E-4E4B-97E9-FEB8D5B27881}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pix_mano", "..\..\extra\pix_mano\win-vs2008\pix_mano.vcproj", "{F9C06216-B28B-40CD-927E-2E63266F64D8}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pix_fiducialtrack", "..\..\extra\pix_fiducialtrack\win-vs2008\pix_fiducialtrack.vcproj", "{138446C3-B0DB-4A1F-A30D-71F00C54F596}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "imageQT", "..\..\plugins\imageQT\win-vs2008\imageQT.vcproj", "{7AD29AEA-D4FD-4E87-B8C8-2C4CEAD24523}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "imageJPEG", "..\..\plugins\imageJPEG\win-vs2008\imageJPEG.vcproj", "{94CA04E7-CCF9-4733-A1BD-F3283C21288A}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "imageTIFF", "..\..\plugins\imageTIFF\win-vs2008\imageTIFF.vcproj", "{6D5697D9-964B-43B0-B5F8-5779E5EF7FCC}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "imageMAGICK", "..\..\plugins\imageMAGICK\win-vs2008\imageMAGICK.vcproj", "{9E650453-D08D-416F-AE68-F8EDE6E92892}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "imageSGI", "..\..\plugins\imageSGI\win-vs2008\imageSGI.vcproj", "{4755C755-FB54-41CF-BECE-EC63B14F6151}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "modelOBJ", "..\..\plugins\modelOBJ\win-vs2008\modelOBJ.vcproj", "{958A7694-C3A6-4CE8-A4EB-6AD0D55D3511}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "modelASSIMP2", "..\..\plugins\modelASSIMP2\win-vs2008\modelASSIMP2.vcproj", "{32A8EA41-EC6E-4F4D-9A82-8B2175F549A2}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "videoOptiTrack", "..\..\plugins\videoOptiTrack\win-vs2008\videoOptiTrack.vcproj", "{9DC8B017-773B-426C-83D2-467723E09CBD}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "videoTEST", "..\..\plugins\videoTEST\win-vs2008\videoTEST.vcproj", "{AEFA779E-A699-4C47-8406-FBEED28AACF1}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pix_hit", "..\..\extra\pix_hit\win-vs2008\pix_hit.vcproj", "{EE21F78A-1620-4206-931A-ACABA1598567}" + ProjectSection(ProjectDependencies) = postProject + {E6CFDE67-C343-44D0-8584-5D82E396D594} = {E6CFDE67-C343-44D0-8584-5D82E396D594} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + ReleaseDummy|Win32 = ReleaseDummy|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E6CFDE67-C343-44D0-8584-5D82E396D594}.Debug|Win32.ActiveCfg = Debug|Win32 + {E6CFDE67-C343-44D0-8584-5D82E396D594}.Debug|Win32.Build.0 = Debug|Win32 + {E6CFDE67-C343-44D0-8584-5D82E396D594}.Release|Win32.ActiveCfg = Release|Win32 + {E6CFDE67-C343-44D0-8584-5D82E396D594}.Release|Win32.Build.0 = Release|Win32 + {E6CFDE67-C343-44D0-8584-5D82E396D594}.ReleaseDummy|Win32.ActiveCfg = Release|Win32 + {E6CFDE67-C343-44D0-8584-5D82E396D594}.ReleaseDummy|Win32.Build.0 = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Debug|Win32.ActiveCfg = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Debug|Win32.Build.0 = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release|Win32.ActiveCfg = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.Release|Win32.Build.0 = Release|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy|Win32.ActiveCfg = ReleaseDummy|Win32 + {FF21A158-2BDE-483F-85C3-80C9DF0A0ABC}.ReleaseDummy|Win32.Build.0 = ReleaseDummy|Win32 + {6965876A-4A92-470C-95EF-EB554B13B336}.Debug|Win32.ActiveCfg = Debug|Win32 + {6965876A-4A92-470C-95EF-EB554B13B336}.Debug|Win32.Build.0 = Debug|Win32 + {6965876A-4A92-470C-95EF-EB554B13B336}.Release|Win32.ActiveCfg = Release|Win32 + {6965876A-4A92-470C-95EF-EB554B13B336}.ReleaseDummy|Win32.ActiveCfg = Release|Win32 + {6965876A-4A92-470C-95EF-EB554B13B336}.ReleaseDummy|Win32.Build.0 = Release|Win32 + {F2368753-AF77-43B7-BE96-1292EC104941}.Debug|Win32.ActiveCfg = ReleaseDummy|Win32 + {F2368753-AF77-43B7-BE96-1292EC104941}.Debug|Win32.Build.0 = ReleaseDummy|Win32 + {F2368753-AF77-43B7-BE96-1292EC104941}.Release|Win32.ActiveCfg = Release|Win32 + {F2368753-AF77-43B7-BE96-1292EC104941}.Release|Win32.Build.0 = Release|Win32 + {F2368753-AF77-43B7-BE96-1292EC104941}.ReleaseDummy|Win32.ActiveCfg = ReleaseDummy|Win32 + {6EA41ED7-ECCD-4A9A-BED0-E8E4B4BD77EB}.Debug|Win32.ActiveCfg = ReleaseDummy|Win32 + {6EA41ED7-ECCD-4A9A-BED0-E8E4B4BD77EB}.Debug|Win32.Build.0 = ReleaseDummy|Win32 + {6EA41ED7-ECCD-4A9A-BED0-E8E4B4BD77EB}.Release|Win32.ActiveCfg = Release|Win32 + {6EA41ED7-ECCD-4A9A-BED0-E8E4B4BD77EB}.ReleaseDummy|Win32.ActiveCfg = ReleaseDummy|Win32 + {92E57A6D-B582-46F0-B02D-E0F29A594143}.Debug|Win32.ActiveCfg = ReleaseDummy|Win32 + {92E57A6D-B582-46F0-B02D-E0F29A594143}.Debug|Win32.Build.0 = ReleaseDummy|Win32 + {92E57A6D-B582-46F0-B02D-E0F29A594143}.Release|Win32.ActiveCfg = Release|Win32 + {92E57A6D-B582-46F0-B02D-E0F29A594143}.Release|Win32.Build.0 = Release|Win32 + {92E57A6D-B582-46F0-B02D-E0F29A594143}.ReleaseDummy|Win32.ActiveCfg = ReleaseDummy|Win32 + {FE35B992-784A-4DE2-A538-9285C83618C4}.Debug|Win32.ActiveCfg = ReleaseDummy|Win32 + {FE35B992-784A-4DE2-A538-9285C83618C4}.Debug|Win32.Build.0 = ReleaseDummy|Win32 + {FE35B992-784A-4DE2-A538-9285C83618C4}.Release|Win32.ActiveCfg = Release|Win32 + {FE35B992-784A-4DE2-A538-9285C83618C4}.Release|Win32.Build.0 = Release|Win32 + {FE35B992-784A-4DE2-A538-9285C83618C4}.ReleaseDummy|Win32.ActiveCfg = ReleaseDummy|Win32 + {3B5EC55E-FC95-45EB-B9C1-ACDA01D49061}.Debug|Win32.ActiveCfg = ReleaseDummy|Win32 + {3B5EC55E-FC95-45EB-B9C1-ACDA01D49061}.Debug|Win32.Build.0 = ReleaseDummy|Win32 + {3B5EC55E-FC95-45EB-B9C1-ACDA01D49061}.Release|Win32.ActiveCfg = Release|Win32 + {3B5EC55E-FC95-45EB-B9C1-ACDA01D49061}.ReleaseDummy|Win32.ActiveCfg = ReleaseDummy|Win32 + {1A49951B-8C31-45F4-B738-B36B960913C7}.Debug|Win32.ActiveCfg = ReleaseDummy|Win32 + {1A49951B-8C31-45F4-B738-B36B960913C7}.Debug|Win32.Build.0 = ReleaseDummy|Win32 + {1A49951B-8C31-45F4-B738-B36B960913C7}.Release|Win32.ActiveCfg = Release|Win32 + {1A49951B-8C31-45F4-B738-B36B960913C7}.Release|Win32.Build.0 = Release|Win32 + {1A49951B-8C31-45F4-B738-B36B960913C7}.ReleaseDummy|Win32.ActiveCfg = ReleaseDummy|Win32 + {4B82D19E-ABA3-4DE8-8144-AA6087C52454}.Debug|Win32.ActiveCfg = ReleaseDummy|Win32 + {4B82D19E-ABA3-4DE8-8144-AA6087C52454}.Debug|Win32.Build.0 = ReleaseDummy|Win32 + {4B82D19E-ABA3-4DE8-8144-AA6087C52454}.Release|Win32.ActiveCfg = Release|Win32 + {4B82D19E-ABA3-4DE8-8144-AA6087C52454}.ReleaseDummy|Win32.ActiveCfg = ReleaseDummy|Win32 + {D4A0BA99-E00E-4E4B-97E9-FEB8D5B27881}.Debug|Win32.ActiveCfg = ReleaseDummy|Win32 + {D4A0BA99-E00E-4E4B-97E9-FEB8D5B27881}.Debug|Win32.Build.0 = ReleaseDummy|Win32 + {D4A0BA99-E00E-4E4B-97E9-FEB8D5B27881}.Release|Win32.ActiveCfg = Release|Win32 + {D4A0BA99-E00E-4E4B-97E9-FEB8D5B27881}.Release|Win32.Build.0 = Release|Win32 + {D4A0BA99-E00E-4E4B-97E9-FEB8D5B27881}.ReleaseDummy|Win32.ActiveCfg = ReleaseDummy|Win32 + {F9C06216-B28B-40CD-927E-2E63266F64D8}.Debug|Win32.ActiveCfg = ReleaseDummy|Win32 + {F9C06216-B28B-40CD-927E-2E63266F64D8}.Debug|Win32.Build.0 = ReleaseDummy|Win32 + {F9C06216-B28B-40CD-927E-2E63266F64D8}.Release|Win32.ActiveCfg = Release|Win32 + {F9C06216-B28B-40CD-927E-2E63266F64D8}.Release|Win32.Build.0 = Release|Win32 + {F9C06216-B28B-40CD-927E-2E63266F64D8}.ReleaseDummy|Win32.ActiveCfg = ReleaseDummy|Win32 + {138446C3-B0DB-4A1F-A30D-71F00C54F596}.Debug|Win32.ActiveCfg = ReleaseDummy|Win32 + {138446C3-B0DB-4A1F-A30D-71F00C54F596}.Debug|Win32.Build.0 = ReleaseDummy|Win32 + {138446C3-B0DB-4A1F-A30D-71F00C54F596}.Release|Win32.ActiveCfg = Release|Win32 + {138446C3-B0DB-4A1F-A30D-71F00C54F596}.Release|Win32.Build.0 = Release|Win32 + {138446C3-B0DB-4A1F-A30D-71F00C54F596}.ReleaseDummy|Win32.ActiveCfg = ReleaseDummy|Win32 + {7AD29AEA-D4FD-4E87-B8C8-2C4CEAD24523}.Debug|Win32.ActiveCfg = ReleaseDummy|Win32 + {7AD29AEA-D4FD-4E87-B8C8-2C4CEAD24523}.Debug|Win32.Build.0 = ReleaseDummy|Win32 + {7AD29AEA-D4FD-4E87-B8C8-2C4CEAD24523}.Release|Win32.ActiveCfg = Release|Win32 + {7AD29AEA-D4FD-4E87-B8C8-2C4CEAD24523}.Release|Win32.Build.0 = Release|Win32 + {7AD29AEA-D4FD-4E87-B8C8-2C4CEAD24523}.ReleaseDummy|Win32.ActiveCfg = ReleaseDummy|Win32 + {94CA04E7-CCF9-4733-A1BD-F3283C21288A}.Debug|Win32.ActiveCfg = ReleaseDummy|Win32 + {94CA04E7-CCF9-4733-A1BD-F3283C21288A}.Debug|Win32.Build.0 = ReleaseDummy|Win32 + {94CA04E7-CCF9-4733-A1BD-F3283C21288A}.Release|Win32.ActiveCfg = Release|Win32 + {94CA04E7-CCF9-4733-A1BD-F3283C21288A}.Release|Win32.Build.0 = Release|Win32 + {94CA04E7-CCF9-4733-A1BD-F3283C21288A}.ReleaseDummy|Win32.ActiveCfg = ReleaseDummy|Win32 + {6D5697D9-964B-43B0-B5F8-5779E5EF7FCC}.Debug|Win32.ActiveCfg = ReleaseDummy|Win32 + {6D5697D9-964B-43B0-B5F8-5779E5EF7FCC}.Debug|Win32.Build.0 = ReleaseDummy|Win32 + {6D5697D9-964B-43B0-B5F8-5779E5EF7FCC}.Release|Win32.ActiveCfg = Release|Win32 + {6D5697D9-964B-43B0-B5F8-5779E5EF7FCC}.Release|Win32.Build.0 = Release|Win32 + {6D5697D9-964B-43B0-B5F8-5779E5EF7FCC}.ReleaseDummy|Win32.ActiveCfg = ReleaseDummy|Win32 + {9E650453-D08D-416F-AE68-F8EDE6E92892}.Debug|Win32.ActiveCfg = ReleaseDummy|Win32 + {9E650453-D08D-416F-AE68-F8EDE6E92892}.Debug|Win32.Build.0 = ReleaseDummy|Win32 + {9E650453-D08D-416F-AE68-F8EDE6E92892}.Release|Win32.ActiveCfg = Release|Win32 + {9E650453-D08D-416F-AE68-F8EDE6E92892}.Release|Win32.Build.0 = Release|Win32 + {9E650453-D08D-416F-AE68-F8EDE6E92892}.ReleaseDummy|Win32.ActiveCfg = ReleaseDummy|Win32 + {4755C755-FB54-41CF-BECE-EC63B14F6151}.Debug|Win32.ActiveCfg = ReleaseDummy|Win32 + {4755C755-FB54-41CF-BECE-EC63B14F6151}.Debug|Win32.Build.0 = ReleaseDummy|Win32 + {4755C755-FB54-41CF-BECE-EC63B14F6151}.Release|Win32.ActiveCfg = Release|Win32 + {4755C755-FB54-41CF-BECE-EC63B14F6151}.Release|Win32.Build.0 = Release|Win32 + {4755C755-FB54-41CF-BECE-EC63B14F6151}.ReleaseDummy|Win32.ActiveCfg = ReleaseDummy|Win32 + {958A7694-C3A6-4CE8-A4EB-6AD0D55D3511}.Debug|Win32.ActiveCfg = ReleaseDummy|Win32 + {958A7694-C3A6-4CE8-A4EB-6AD0D55D3511}.Debug|Win32.Build.0 = ReleaseDummy|Win32 + {958A7694-C3A6-4CE8-A4EB-6AD0D55D3511}.Release|Win32.ActiveCfg = Release|Win32 + {958A7694-C3A6-4CE8-A4EB-6AD0D55D3511}.Release|Win32.Build.0 = Release|Win32 + {958A7694-C3A6-4CE8-A4EB-6AD0D55D3511}.ReleaseDummy|Win32.ActiveCfg = ReleaseDummy|Win32 + {958A7694-C3A6-4CE8-A4EB-6AD0D55D3511}.ReleaseDummy|Win32.Build.0 = ReleaseDummy|Win32 + {32A8EA41-EC6E-4F4D-9A82-8B2175F549A2}.Debug|Win32.ActiveCfg = ReleaseDummy|Win32 + {32A8EA41-EC6E-4F4D-9A82-8B2175F549A2}.Debug|Win32.Build.0 = ReleaseDummy|Win32 + {32A8EA41-EC6E-4F4D-9A82-8B2175F549A2}.Release|Win32.ActiveCfg = Release|Win32 + {32A8EA41-EC6E-4F4D-9A82-8B2175F549A2}.Release|Win32.Build.0 = Release|Win32 + {32A8EA41-EC6E-4F4D-9A82-8B2175F549A2}.ReleaseDummy|Win32.ActiveCfg = ReleaseDummy|Win32 + {32A8EA41-EC6E-4F4D-9A82-8B2175F549A2}.ReleaseDummy|Win32.Build.0 = ReleaseDummy|Win32 + {9DC8B017-773B-426C-83D2-467723E09CBD}.Debug|Win32.ActiveCfg = Debug|Win32 + {9DC8B017-773B-426C-83D2-467723E09CBD}.Debug|Win32.Build.0 = Debug|Win32 + {9DC8B017-773B-426C-83D2-467723E09CBD}.Release|Win32.ActiveCfg = Release|Win32 + {9DC8B017-773B-426C-83D2-467723E09CBD}.Release|Win32.Build.0 = Release|Win32 + {9DC8B017-773B-426C-83D2-467723E09CBD}.ReleaseDummy|Win32.ActiveCfg = ReleaseDummy|Win32 + {9DC8B017-773B-426C-83D2-467723E09CBD}.ReleaseDummy|Win32.Build.0 = ReleaseDummy|Win32 + {AEFA779E-A699-4C47-8406-FBEED28AACF1}.Debug|Win32.ActiveCfg = ReleaseDummy|Win32 + {AEFA779E-A699-4C47-8406-FBEED28AACF1}.Debug|Win32.Build.0 = ReleaseDummy|Win32 + {AEFA779E-A699-4C47-8406-FBEED28AACF1}.Release|Win32.ActiveCfg = Release|Win32 + {AEFA779E-A699-4C47-8406-FBEED28AACF1}.Release|Win32.Build.0 = Release|Win32 + {AEFA779E-A699-4C47-8406-FBEED28AACF1}.ReleaseDummy|Win32.ActiveCfg = ReleaseDummy|Win32 + {AEFA779E-A699-4C47-8406-FBEED28AACF1}.ReleaseDummy|Win32.Build.0 = ReleaseDummy|Win32 + {EE21F78A-1620-4206-931A-ACABA1598567}.Debug|Win32.ActiveCfg = ReleaseDummy|Win32 + {EE21F78A-1620-4206-931A-ACABA1598567}.Debug|Win32.Build.0 = ReleaseDummy|Win32 + {EE21F78A-1620-4206-931A-ACABA1598567}.Release|Win32.ActiveCfg = Release|Win32 + {EE21F78A-1620-4206-931A-ACABA1598567}.Release|Win32.Build.0 = Release|Win32 + {EE21F78A-1620-4206-931A-ACABA1598567}.ReleaseDummy|Win32.ActiveCfg = ReleaseDummy|Win32 + {EE21F78A-1620-4206-931A-ACABA1598567}.ReleaseDummy|Win32.Build.0 = ReleaseDummy|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Gem/build/win-vs2008/Gem.vcproj b/Gem/build/win-vs2008/Gem.vcproj new file mode 100644 index 0000000..443d3d9 --- /dev/null +++ b/Gem/build/win-vs2008/Gem.vcproj @@ -0,0 +1,4984 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Gem/build/win-vs2008/Gem.vsprops b/Gem/build/win-vs2008/Gem.vsprops new file mode 100644 index 0000000..60fa7ab --- /dev/null +++ b/Gem/build/win-vs2008/Gem.vsprops @@ -0,0 +1,17 @@ + + + + + diff --git a/Gem/build/win-vs2008/GemInternal.vsprops b/Gem/build/win-vs2008/GemInternal.vsprops new file mode 100644 index 0000000..dffd1f7 --- /dev/null +++ b/Gem/build/win-vs2008/GemInternal.vsprops @@ -0,0 +1,20 @@ + + + + + diff --git a/Gem/build/win-vs2008/QuickTime.vsprops b/Gem/build/win-vs2008/QuickTime.vsprops new file mode 100644 index 0000000..d2a1804 --- /dev/null +++ b/Gem/build/win-vs2008/QuickTime.vsprops @@ -0,0 +1,17 @@ + + + + + diff --git a/Gem/build/win-vs2008/README_W32.txt.template b/Gem/build/win-vs2008/README_W32.txt.template new file mode 100644 index 0000000..989dee9 --- /dev/null +++ b/Gem/build/win-vs2008/README_W32.txt.template @@ -0,0 +1,22 @@ +this Gem.dll is the Gem-binary for w32 + +it is optimized for Pentium-Pro, so it should run on quite every machine + +this file has been compiled and tested on winXP +it probably can be used on w2k too, but chances are low that you can run it on older versions of w32. + +you might have to install a recent version of DirectX (>9.0) +if you want to play-back QuickTime-videos, you have to install QuickTime first (current version is 7.2) + + + +this is an alpha-release: please test it an report back any bugs you encounter + + + +mfga.sdr +IOhannes m zmölnig + +contact emails: +zmoelnig iem at +gem-dev iem at diff --git a/Gem/build/win-vs2008/Release.vsprops b/Gem/build/win-vs2008/Release.vsprops new file mode 100644 index 0000000..7cee18e --- /dev/null +++ b/Gem/build/win-vs2008/Release.vsprops @@ -0,0 +1,17 @@ + + + + diff --git a/Gem/build/win-vs2008/SIMD.vsprops b/Gem/build/win-vs2008/SIMD.vsprops new file mode 100644 index 0000000..67ccdfe --- /dev/null +++ b/Gem/build/win-vs2008/SIMD.vsprops @@ -0,0 +1,12 @@ + + + + diff --git a/Gem/build/win-vs2008/VFW.vsprops b/Gem/build/win-vs2008/VFW.vsprops new file mode 100644 index 0000000..dfb417f --- /dev/null +++ b/Gem/build/win-vs2008/VFW.vsprops @@ -0,0 +1,15 @@ + + + + + diff --git a/Gem/build/win-vs2008/extra.vsprops b/Gem/build/win-vs2008/extra.vsprops new file mode 100644 index 0000000..2ada3bd --- /dev/null +++ b/Gem/build/win-vs2008/extra.vsprops @@ -0,0 +1,8 @@ + + + diff --git a/Gem/build/win-vs2008/extraCommon.vsprops b/Gem/build/win-vs2008/extraCommon.vsprops new file mode 100644 index 0000000..df66945 --- /dev/null +++ b/Gem/build/win-vs2008/extraCommon.vsprops @@ -0,0 +1,17 @@ + + + + + diff --git a/Gem/build/win-vs2008/installer.bat b/Gem/build/win-vs2008/installer.bat new file mode 100644 index 0000000..3f1eade --- /dev/null +++ b/Gem/build/win-vs2008/installer.bat @@ -0,0 +1,10 @@ +set _=%CD% + +set NSISDIR=..\win-nsis\ + +xcopy /y Gem.dll %NSISDIR%\ +cd %NSISDIR% + +buildinstaller.bat %1 + +cd %_% \ No newline at end of file diff --git a/Gem/build/win-vs2008/installer.vcproj b/Gem/build/win-vs2008/installer.vcproj new file mode 100644 index 0000000..c361da1 --- /dev/null +++ b/Gem/build/win-vs2008/installer.vcproj @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/Gem/build/win-vs2008/installerCVS.bat b/Gem/build/win-vs2008/installerCVS.bat new file mode 100644 index 0000000..1a068d6 --- /dev/null +++ b/Gem/build/win-vs2008/installerCVS.bat @@ -0,0 +1,2 @@ +installer SVN%DATE:~6,4%%DATE:~3,2%%DATE:~0,2% +rem installer 0.93.0 diff --git a/Gem/build/win-vs2008/libraries.txt b/Gem/build/win-vs2008/libraries.txt new file mode 100644 index 0000000..8476fff --- /dev/null +++ b/Gem/build/win-vs2008/libraries.txt @@ -0,0 +1,48 @@ +just a sketchpad for me to remember which libraries we really need + +Multithreaded-Debug (/MTd) + +working configuration#1(+QuickTime) +msvcrtD.lib +msvcprtD.lib +OLDNAMES.lib +pd.lib +opengl32.lib +glu32.lib +vfw32.lib +QTMLClient.lib + +working configuration#2(#1+DirectShow) +msvcrtD.lib (C/C++) +msvcprtD.lib (C/C++) +OLDNAMES.lib (C/C++) +pd.lib (Pure data) +opengl32.lib (openGL) +glu32.lib (openGL) +QTMLClient.lib (QuickTime) +vfw32.lib (Video4Windows) +ddraw.lib (DirectShow) +strmiids.lib (DirectShow) +strmbasD.lib (DirectShow - part of DirectShow/BaseClasses sample) +atlsD.lib (DirectShow - ATLclasses) +winmm.lib (DirectShow - time) + + +working configuration#3(#2+FTGL+jpeg/tiff) +msvcrtD.lib (C/C++) +msvcprtD.lib (C/C++) +OLDNAMES.lib (C/C++) +pd.lib (Pure data) +opengl32.lib (openGL) +glu32.lib (openGL) +libjpeg.lib (jpeg/tiff) +libtiff.lib (jpeg/tiff) +FTGL_static_mtD.lib (FTGL) +freetype214mt_D.lib (FTGL) +QTMLClient.lib (QuickTime) +vfw32.lib (video4windows) +ddraw.lib (DirectShow) +strmiids.lib (DirectShow) +strmbasD.lib (DirectShow - part of DirectShow/BaseClasses sample) +atlsD.lib (DirectShow - ATLclasses) +winmm.lib (DirectShow - time) diff --git a/Gem/build/win-vs2008/plugin.vsprops b/Gem/build/win-vs2008/plugin.vsprops new file mode 100644 index 0000000..be59a5b --- /dev/null +++ b/Gem/build/win-vs2008/plugin.vsprops @@ -0,0 +1,8 @@ + + + diff --git a/Gem/build/win-vs2008/pluginCommon.vsprops b/Gem/build/win-vs2008/pluginCommon.vsprops new file mode 100644 index 0000000..f5580e5 --- /dev/null +++ b/Gem/build/win-vs2008/pluginCommon.vsprops @@ -0,0 +1,13 @@ + + + + diff --git a/Gem/build/win-vs2008/pthread.vsprops b/Gem/build/win-vs2008/pthread.vsprops new file mode 100644 index 0000000..7b231c2 --- /dev/null +++ b/Gem/build/win-vs2008/pthread.vsprops @@ -0,0 +1,17 @@ + + + + + diff --git a/Gem/build/win-vs2008/puredata.vsprops b/Gem/build/win-vs2008/puredata.vsprops new file mode 100644 index 0000000..e119ede --- /dev/null +++ b/Gem/build/win-vs2008/puredata.vsprops @@ -0,0 +1,18 @@ + + + + + diff --git a/Gem/build/win-vs2008/release.bat b/Gem/build/win-vs2008/release.bat new file mode 100644 index 0000000..5ad7160 --- /dev/null +++ b/Gem/build/win-vs2008/release.bat @@ -0,0 +1,40 @@ +set ZIP=%ProgramFiles%\7-Zip\7z.exe +rem set ZIP=echo + +set GEMVERSION=%DATE:~6,4%%DATE:~3,2%%DATE:~0,2% + +set GEMDIR=gem-%GEMVERSION% + +set GEMARC=gem-CVS%GEMVERSION%-W32-i686 + +mkdir %GEMDIR% + +xcopy Gem.dll %GEMDIR%\ +copy README_W32.txt.template %GEMDIR%\README_W32.txt + +%ZIP% a %GEMARC%-bin.zip %GEMDIR% + +read + +cd ..\..\ + +xcopy /E /I abstractions build\win-vs2003\%GEMDIR%\abstractions + +xcopy /E /I help build\win-vs2003\%GEMDIR%\help + +xcopy /E /I examples build\win-vs2003\%GEMDIR%\examples +xcopy /E /I doc build\win-vs2003\%GEMDIR%\doc +xcopy /E /I manual build\win-vs2003\%GEMDIR%\manual + +xcopy /E /I tests build\win-vs2003\%GEMDIR%\tests + +copy ChangeLog build\win-vs2003\%GEMDIR% +copy GEM_INSTALL.bat build\win-vs2003\%GEMDIR% +copy GEM.LICENSE.TERMS build\win-vs2003\%GEMDIR% +copy GEM.README build\win-vs2003\%GEMDIR% +copy GnuGPL.LICENSE build\win-vs2003\%GEMDIR% + + +cd build\win-vs2003 + +%ZIP% a %GEMARC%-bin-doc.zip %GEMDIR% diff --git a/Gem/build/win-vs2008/w32.vsprops b/Gem/build/win-vs2008/w32.vsprops new file mode 100644 index 0000000..278085b --- /dev/null +++ b/Gem/build/win-vs2008/w32.vsprops @@ -0,0 +1,19 @@ + + + + + diff --git a/Gem/build/win-vs6/README.txt b/Gem/build/win-vs6/README.txt new file mode 100644 index 0000000..423e8ad --- /dev/null +++ b/Gem/build/win-vs6/README.txt @@ -0,0 +1,16 @@ +this is the project-file to build Gem using Microsoft's VisualStudio 6 + +DEPRECATION WARNING +=================== +this MSVC-Project is deprecated and has not been used for a long time. +do not expect it to work out of the box. + +these files have been moved here in an attempt to cleanup the project + +originally these files have been located in /src/ instead of +/build/win-vs6, so all the paths in the project-file might be wrong + +either fix the project-files or copy them over to the src/ directory + +i don't do it, as i don't have a VC6 anymore (it is outdated anyhow) + diff --git a/Gem/build/win-vs6/gem.dsp b/Gem/build/win-vs6/gem.dsp new file mode 100644 index 0000000..217317d --- /dev/null +++ b/Gem/build/win-vs6/gem.dsp @@ -0,0 +1,4545 @@ +# Microsoft Developer Studio Project File - Name="gem" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** NICHT BEARBEITEN ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=gem - Win32 Release +!MESSAGE Dies ist kein gltiges Makefile. Zum Erstellen dieses Projekts mit NMAKE +!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und fhren Sie den Befehl +!MESSAGE +!MESSAGE NMAKE /f "gem.mak". +!MESSAGE +!MESSAGE Sie knnen beim Ausfhren von NMAKE eine Konfiguration angeben +!MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel: +!MESSAGE +!MESSAGE NMAKE /f "gem.mak" CFG="gem - Win32 Release" +!MESSAGE +!MESSAGE Fr die Konfiguration stehen zur Auswahl: +!MESSAGE +!MESSAGE "gem - Win32 Release" (basierend auf "Win32 (x86) Dynamic-Link Library") +!MESSAGE "gem - Win32 Debug" (basierend auf "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "gem - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir ".\Release" +# PROP BASE Intermediate_Dir ".\Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "." +# PROP Intermediate_Dir ".\Objects" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c +# ADD CPP /nologo /G6 /MT /W3 /GX /O2 /Ob2 /I "$(PROGRAMFILES)/pd" /I "$(PROGRAMFILES)/pd/src" /I "../../src" /I "../src" /I "../../GemLibs/Jpeg" /I "../../GemLibs/tiff/libtiff" /I "../../GemLibs/wintab/include" /I "../../GemLibs/liborb" /I "../../GemLibs\freetype2\include" /I "../../GemLibs\FTGL\include" /I "C:\dev\QTDevWin\CIncludes" /I "C:\DXSDK\include" /I "C:\DXSDK\samples\Multimedia\DirectShow\BaseClasses" /D "GEM_INTERNAL" /D "NDEBUG" /D "_LANGUAGE_C_PLUS_PLUS" /D "__WIN32__" /D "WIN32" /D "WIN32_LEAN_AND_MEAN" /FD /c +# SUBTRACT CPP /Fr /YX +# ADD BASE MTL /nologo /D "NDEBUG" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# ADD LINK32 freetype214MT.lib ftgl_static_MT.lib ../../GemLibs\tiff\libtiff.lib ../../GemLibs\Jpeg\libjpeg.lib ../../GemLibs\liborb\liborb.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib opengl32.lib glu32.lib pd.lib quartz.lib ddraw.lib strmbase.lib winmm.lib vfw32.lib libcmt.lib shlwapi.lib OLDNAMES.lib qtmlclient.lib MSVCPRT.LIB Msvcrt.lib strmiids.lib msdmo.lib /nologo /subsystem:windows /dll /profile /machine:I386 /nodefaultlib /out:"../Gem.dll" /libpath:"C:\Programme\pd\bin\\" /libpath:"..\..\bin\\" /libpath:"C:\dev\QTDevWin\Libraries" /libpath:"C:\DXSDK\lib" /libpath:"C:\DXSDK\samples\Multimedia\DirectShow\BaseClasses\debug" /libpath:"../../GemLibs\FTGL\win32_vcpp\Build" /libpath:"../../GemLibs\freetype2\objs" + +!ELSEIF "$(CFG)" == "gem - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir ".\Debug" +# PROP BASE Intermediate_Dir ".\Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "." +# PROP Intermediate_Dir ".\Objects" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c +# ADD CPP /nologo /G6 /ML /W3 /Gm /GX /Zi /Od /I "$(PROGRAMFILES)/pd/src" /I "../../src" /I "../src" /I "../../GemLibs/JPEG" /I "../../GemLibs/tiff/libtiff" /I "../../GemLibs/wintab/include" /I "../../GemLibs/liborb" /I "../../GemLibs/freetype2/include" /I "../../GemLibs/freetype2/include/freetype2" /I "../../GemLibs/FTGL/include" /I "E:/dev/QTDevWin/CIncludes" /I "E:/dev/DXSDK/include" /I "E:/dev/DXSDK/samples/Multimedia/DirectShow/BaseClasses" /D "GEM_INTERNAL" /D "_DEBUG" /D "DEBUG" /D "_LANGUAGE_C_PLUS_PLUS" /D "WIN32_LEAN_AND_MEAN" /D "__WIN32__" /D "WIN32" /FD /c +# SUBTRACT CPP /Gf /Gy +# ADD BASE MTL /nologo /D "_DEBUG" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 +# ADD LINK32 freetype214MT.lib ftgl_static_MT.lib ../../GemLibs/tiff/libtiff.lib ../../GemLibs/Jpeg/libjpeg.lib ../../GemLibs/liborb/liborb.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib opengl32.lib glu32.lib pd.lib quartz.lib ddraw.lib strmbasd.lib winmm.lib oldnames.lib MSVCPRT.LIB vfw32.lib libcmtd.lib shlwapi.lib qtmlclient.lib /nologo /subsystem:windows /dll /debug /machine:I386 /nodefaultlib /out:"../Gem.dll" /libpath:"$(PROGRAMFILES)/pd/bin/" /libpath:"../../bin/" /libpath:"E:\dev\QTDevWin\Libraries" /libpath:"E:\dev\DXSDK\samples\Multimedia\DirectShow\BaseClasses\debug" /libpath:"../../GemLibs\FTGL\win32_vcpp\Build" /libpath:"../../GemLibs\freetype2\objs" + +!ENDIF + +# Begin Target + +# Name "gem - Win32 Release" +# Name "gem - Win32 Debug" +# Begin Group "Base" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=.\Base\config.h +# End Source File +# Begin Source File + +SOURCE=.\Base\configNT.h +# End Source File +# Begin Source File + +SOURCE=.\Base\CPPExtern.cpp +# End Source File +# Begin Source File + +SOURCE=.\Base\CPPExtern.h +# End Source File +# Begin Source File + +SOURCE=.\Base\GemBase.cpp +# End Source File +# Begin Source File + +SOURCE=.\Base\GemBase.h +# End Source File +# Begin Source File + +SOURCE=.\Base\GemCache.cpp +# End Source File +# Begin Source File + +SOURCE=.\Base\GemCache.h +# End Source File +# Begin Source File + +SOURCE=.\Base\GemEvent.cpp +# End Source File +# Begin Source File + +SOURCE=.\Base\GemEvent.h +# End Source File +# Begin Source File + +SOURCE=.\Base\GemExportDef.h +# End Source File +# Begin Source File + +SOURCE=.\Base\GemFuncUtil.cpp +# End Source File +# Begin Source File + +SOURCE=.\Base\GemFuncUtil.h +# End Source File +# Begin Source File + +SOURCE=.\Base\GemGL.h +# End Source File +# Begin Source File + +SOURCE=.\Base\GemGluObj.cpp +# End Source File +# Begin Source File + +SOURCE=.\Base\GemGluObj.h +# End Source File +# Begin Source File + +SOURCE=.\Base\GemGLUtil.cpp +# End Source File +# Begin Source File + +SOURCE=.\Base\GemGLUtil.h +# End Source File +# Begin Source File + +SOURCE=.\Base\GemLoadObj.cpp +# End Source File +# Begin Source File + +SOURCE=.\Base\GemLoadObj.h +# End Source File +# Begin Source File + +SOURCE=.\Base\GemMan.cpp +# End Source File +# Begin Source File + +SOURCE=.\Base\GemMan.h +# End Source File +# Begin Source File + +SOURCE=.\Base\GemMath.h +# End Source File +# Begin Source File + +SOURCE=.\Base\GemModelData.cpp +# End Source File +# Begin Source File + +SOURCE=.\Base\GemModelData.h +# End Source File +# Begin Source File + +SOURCE=.\Base\GemPathBase.cpp +# End Source File +# Begin Source File + +SOURCE=.\Base\GemPathBase.h +# End Source File +# Begin Source File + +SOURCE=.\Base\GemPixDualObj.cpp +# End Source File +# Begin Source File + +SOURCE=.\Base\GemPixDualObj.h +# End Source File +# Begin Source File + +SOURCE=.\Base\GemPixImageLoad.cpp +# End Source File +# Begin Source File + +SOURCE=.\Base\GemPixImageLoad.h +# End Source File +# Begin Source File + +SOURCE=.\Base\GemPixImageSave.cpp +# End Source File +# Begin Source File + +SOURCE=.\Base\GemPixImageSave.h +# End Source File +# Begin Source File + +SOURCE=.\Base\GemPixObj.cpp +# End Source File +# Begin Source File + +SOURCE=.\Base\GemPixObj.h +# End Source File +# Begin Source File + +SOURCE=.\Base\GemPixPete.h +# End Source File +# Begin Source File + +SOURCE=.\Base\GemPixUtil.cpp +# End Source File +# Begin Source File + +SOURCE=.\Base\GemPixUtil.h +# End Source File +# Begin Source File + +SOURCE=.\Base\GemSetup.cpp +# End Source File +# Begin Source File + +SOURCE=.\Base\GemShape.cpp +# End Source File +# Begin Source File + +SOURCE=.\Base\GemShape.h +# End Source File +# Begin Source File + +SOURCE=.\Base\GemSIMD.h +# End Source File +# Begin Source File + +SOURCE=.\Base\GemState.cpp +# End Source File +# Begin Source File + +SOURCE=.\Base\GemState.h +# End Source File +# Begin Source File + +SOURCE=.\Base\GemVector.cpp +# End Source File +# Begin Source File + +SOURCE=.\Base\GemVector.h +# End Source File +# Begin Source File + +SOURCE=.\Base\GemVersion.h +# End Source File +# Begin Source File + +SOURCE=.\Base\GemWinCreate.h +# End Source File +# Begin Source File + +SOURCE=.\Base\GemWinCreateNT.cpp +# End Source File +# Begin Source File + +SOURCE=.\Base\Matrix.cpp +# End Source File +# Begin Source File + +SOURCE=.\Base\Matrix.h +# End Source File +# Begin Source File + +SOURCE=.\Base\sgiimage.cpp +# End Source File +# Begin Source File + +SOURCE=.\Base\sgiimage.h +# End Source File +# Begin Source File + +SOURCE=.\Base\TextBase.cpp +# End Source File +# Begin Source File + +SOURCE=.\Base\TextBase.h +# End Source File +# End Group +# Begin Group "Geos" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=.\Geos\circle.cpp +# End Source File +# Begin Source File + +SOURCE=.\Geos\circle.h +# End Source File +# Begin Source File + +SOURCE=.\Geos\colorSquare.cpp +# End Source File +# Begin Source File + +SOURCE=.\Geos\colorSquare.h +# End Source File +# Begin Source File + +SOURCE=.\Geos\cone.cpp +# End Source File +# Begin Source File + +SOURCE=.\Geos\cone.h +# End Source File +# Begin Source File + +SOURCE=.\Geos\cube.cpp +# End Source File +# Begin Source File + +SOURCE=.\Geos\cube.h +# End Source File +# Begin Source File + +SOURCE=.\Geos\cuboid.cpp +# End Source File +# Begin Source File + +SOURCE=.\Geos\cuboid.h +# End Source File +# Begin Source File + +SOURCE=.\Geos\curve.cpp +# End Source File +# Begin Source File + +SOURCE=.\Geos\curve.h +# End Source File +# Begin Source File + +SOURCE=.\Geos\curve3d.cpp +# End Source File +# Begin Source File + +SOURCE=.\Geos\curve3d.h +# End Source File +# Begin Source File + +SOURCE=.\Geos\cylinder.cpp +# End Source File +# Begin Source File + +SOURCE=.\Geos\cylinder.h +# End Source File +# Begin Source File + +SOURCE=.\Geos\disk.cpp +# End Source File +# Begin Source File + +SOURCE=.\Geos\disk.h +# End Source File +# Begin Source File + +SOURCE=.\Geos\imageVert.cpp +# End Source File +# Begin Source File + +SOURCE=.\Geos\imageVert.h +# End Source File +# Begin Source File + +SOURCE=.\Geos\model.cpp +# End Source File +# Begin Source File + +SOURCE=.\Geos\model.h +# End Source File +# Begin Source File + +SOURCE=.\Geos\model_loader.cpp +# End Source File +# Begin Source File + +SOURCE=.\Geos\model_loader.h +# End Source File +# Begin Source File + +SOURCE=.\Geos\multimodel.cpp +# End Source File +# Begin Source File + +SOURCE=.\Geos\multimodel.h +# End Source File +# Begin Source File + +SOURCE=.\Geos\newWave.cpp +# End Source File +# Begin Source File + +SOURCE=.\Geos\newWave.h +# End Source File +# Begin Source File + +SOURCE=.\Geos\polygon.cpp +# End Source File +# Begin Source File + +SOURCE=.\Geos\polygon.h +# End Source File +# Begin Source File + +SOURCE=.\Geos\primTri.cpp +# End Source File +# Begin Source File + +SOURCE=.\Geos\primTri.h +# End Source File +# Begin Source File + +SOURCE=.\Geos\rectangle.cpp +# End Source File +# Begin Source File + +SOURCE=.\Geos\rectangle.h +# End Source File +# Begin Source File + +SOURCE=.\Geos\ripple.cpp +# End Source File +# Begin Source File + +SOURCE=.\Geos\ripple.h +# End Source File +# Begin Source File + +SOURCE=.\Geos\rubber.cpp +# End Source File +# Begin Source File + +SOURCE=.\Geos\rubber.h +# End Source File +# Begin Source File + +SOURCE=.\Geos\scopeXYZ.cpp +# End Source File +# Begin Source File + +SOURCE=.\Geos\scopeXYZ.h +# End Source File +# Begin Source File + +SOURCE=.\Geos\slideSquares.cpp +# End Source File +# Begin Source File + +SOURCE=.\Geos\slideSquares.h +# End Source File +# Begin Source File + +SOURCE=.\Geos\sphere.cpp +# End Source File +# Begin Source File + +SOURCE=.\Geos\sphere.h +# End Source File +# Begin Source File + +SOURCE=.\Geos\square.cpp +# End Source File +# Begin Source File + +SOURCE=.\Geos\square.h +# End Source File +# Begin Source File + +SOURCE=.\Geos\teapot.cpp +# End Source File +# Begin Source File + +SOURCE=.\Geos\teapot.h +# End Source File +# Begin Source File + +SOURCE=.\Geos\TexFont.h +# End Source File +# Begin Source File + +SOURCE=.\Geos\text2d.cpp +# End Source File +# Begin Source File + +SOURCE=.\Geos\text2d.h +# End Source File +# Begin Source File + +SOURCE=.\Geos\text3d.cpp +# End Source File +# Begin Source File + +SOURCE=.\Geos\text3d.h +# End Source File +# Begin Source File + +SOURCE=.\Geos\textextruded.cpp +# End Source File +# Begin Source File + +SOURCE=.\Geos\textextruded.h +# End Source File +# Begin Source File + +SOURCE=.\Geos\textoutline.cpp +# End Source File +# Begin Source File + +SOURCE=.\Geos\textoutline.h +# End Source File +# Begin Source File + +SOURCE=.\Geos\torus.cpp +# End Source File +# Begin Source File + +SOURCE=.\Geos\torus.h +# End Source File +# Begin Source File + +SOURCE=.\Geos\triangle.cpp +# End Source File +# Begin Source File + +SOURCE=.\Geos\triangle.h +# End Source File +# Begin Source File + +SOURCE=.\Geos\tube.cpp +# End Source File +# Begin Source File + +SOURCE=.\Geos\tube.h +# End Source File +# End Group +# Begin Group "Nongeos" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=.\Nongeos\light.cpp +# End Source File +# Begin Source File + +SOURCE=.\Nongeos\light.h +# End Source File +# Begin Source File + +SOURCE=.\Nongeos\spot_light.cpp +# End Source File +# Begin Source File + +SOURCE=.\Nongeos\spot_light.h +# End Source File +# Begin Source File + +SOURCE=.\Nongeos\world_light.cpp +# End Source File +# Begin Source File + +SOURCE=.\Nongeos\world_light.h +# End Source File +# End Group +# Begin Group "Manips" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=.\Manips\accumrotate.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\accumrotate.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\alpha.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\alpha.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\ambient.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\ambient.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\ambientRGB.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\ambientRGB.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\camera.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\camera.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\color.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\color.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\colorRGB.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\colorRGB.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\depth.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\depth.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\diffuse.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\diffuse.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\diffuseRGB.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\diffuseRGB.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\emission.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\emission.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\emissionRGB.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\emissionRGB.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\fragment_program.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\fragment_program.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\glsl_fragment.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\glsl_fragment.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\glsl_program.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\glsl_program.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\glsl_vertex.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\glsl_vertex.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\linear_path.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\linear_path.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\ortho.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\ortho.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\polygon_smooth.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\polygon_smooth.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\rotate.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\rotate.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\rotateXYZ.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\rotateXYZ.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\scale.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\scale.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\scaleXYZ.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\scaleXYZ.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\separator.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\separator.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\shearXY.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\shearXY.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\shearXZ.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\shearXZ.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\shearYX.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\shearYX.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\shearYZ.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\shearYZ.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\shearZX.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\shearZX.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\shearZY.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\shearZY.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\shininess.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\shininess.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\specular.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\specular.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\specularRGB.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\specularRGB.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\spline_path.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\spline_path.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\translate.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\translate.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\translateXYZ.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\translateXYZ.h +# End Source File +# Begin Source File + +SOURCE=.\Manips\vertex_program.cpp +# End Source File +# Begin Source File + +SOURCE=.\Manips\vertex_program.h +# End Source File +# End Group +# Begin Group "Controls" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=.\Controls\gem_pdpin.cpp +# End Source File +# Begin Source File + +SOURCE=.\Controls\gem_pdpin.h +# End Source File +# Begin Source File + +SOURCE=.\Controls\gem_pdpout.cpp +# End Source File +# Begin Source File + +SOURCE=.\Controls\gem_pdpout.h +# End Source File +# Begin Source File + +SOURCE=.\Controls\gemframebuffer.cpp +# End Source File +# Begin Source File + +SOURCE=.\Controls\gemframebuffer.h +# End Source File +# Begin Source File + +SOURCE=.\Controls\gemhead.cpp +# End Source File +# Begin Source File + +SOURCE=.\Controls\gemhead.h +# End Source File +# Begin Source File + +SOURCE=.\Controls\gemkeyboard.cpp +# End Source File +# Begin Source File + +SOURCE=.\Controls\gemkeyboard.h +# End Source File +# Begin Source File + +SOURCE=.\Controls\gemkeyname.cpp +# End Source File +# Begin Source File + +SOURCE=.\Controls\gemkeyname.h +# End Source File +# Begin Source File + +SOURCE=.\Controls\gemlist_info.cpp +# End Source File +# Begin Source File + +SOURCE=.\Controls\gemlist_info.h +# End Source File +# Begin Source File + +SOURCE=.\Controls\gemmouse.cpp +# End Source File +# Begin Source File + +SOURCE=.\Controls\gemmouse.h +# End Source File +# Begin Source File + +SOURCE=.\Controls\gemorb.cpp +# End Source File +# Begin Source File + +SOURCE=.\Controls\gemorb.h +# End Source File +# Begin Source File + +SOURCE=.\Controls\gemtablet.cpp +# End Source File +# Begin Source File + +SOURCE=.\Controls\gemtablet.h +# End Source File +# Begin Source File + +SOURCE=.\Controls\gemwin.cpp +# End Source File +# Begin Source File + +SOURCE=.\Controls\gemwin.h +# End Source File +# Begin Source File + +SOURCE=.\Controls\render_trigger.cpp +# End Source File +# Begin Source File + +SOURCE=.\Controls\render_trigger.h +# End Source File +# End Group +# Begin Group "Pixes" + +# PROP Default_Filter "" +# Begin Group "Processing" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=.\Pixes\FreeFrame.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_2grey.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_2grey.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_a_2grey.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_a_2grey.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_aging.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_aging.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_alpha.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_alpha.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_backlight.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_backlight.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_bitmask.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_bitmask.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_color.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_color.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_coloralpha.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_coloralpha.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_colormatrix.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_colormatrix.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_colorreduce.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_colorreduce.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_convolve.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_convolve.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_crop.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_crop.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_curve.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_curve.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_dot.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_dot.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_duotone.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_duotone.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_emboss.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_emboss.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_flip.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_flip.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_freeframe.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_freeframe.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_gain.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_gain.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_grey.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_grey.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_halftone.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_halftone.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_hsv2rgb.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_hsv2rgb.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_invert.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_invert.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_kaleidoscope.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_kaleidoscope.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_levels.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_levels.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_lumaoffset.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_lumaoffset.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_metaimage.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_metaimage.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_mix.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_mix.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_normalize.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_normalize.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_offset.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_offset.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_posterize.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_posterize.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_puzzle.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_puzzle.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_rds.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_rds.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_refraction.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_refraction.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_resize.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_resize.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_rgb2hsv.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_rgb2hsv.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_roll.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_roll.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_scanline.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_scanline.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_test.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_test.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_threshold.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_threshold.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_threshold_bernsen.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_threshold_bernsen.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_yuv.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_yuv.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_zoom.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_zoom.h +# End Source File +# End Group +# Begin Group "DualInput" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=.\Pixes\pix_add.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_add.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_chroma_key.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_chroma_key.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_compare.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_compare.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_composite.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_composite.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_diff.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_diff.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_mask.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_mask.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_multiply.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_multiply.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_subtract.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_subtract.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_takealpha.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_takealpha.h +# End Source File +# End Group +# Begin Group "Control" + +# PROP Default_Filter "" +# Begin Group "libfidtrack" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=.\Pixes\libfidtrack_fidtrackX.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\libfidtrack_fidtrackX.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\libfidtrack_segment.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\libfidtrack_segment.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\libfidtrack_treeidmap.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\libfidtrack_treeidmap.h +# End Source File +# End Group +# Begin Source File + +SOURCE=.\Pixes\pix_blob.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_blob.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_buf.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_buf.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_buffer.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_buffer.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_buffer_read.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_buffer_read.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_buffer_write.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_buffer_write.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_clearblock.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_clearblock.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_convert.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_convert.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_coordinate.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_coordinate.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_data.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_data.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_dump.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_dump.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_fiducialtrack.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_fiducialtrack.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_get.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_histo.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_histo.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_hit.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_hit.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_image.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_image.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_imageInPlace.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_imageInPlace.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_info.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_info.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_mean_color.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_mean_color.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_multiblob.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_multiblob.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_multiimage.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_multiimage.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_pix2sig.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_pix2sig.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_put.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_rgba.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_rgba.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_set.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_set.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_share_read.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_share_read.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_share_write.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_share_write.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_sig2pix.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_sig2pix.h +# End Source File +# End Group +# Begin Group "Render" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=.\Pixes\pix_draw.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_draw.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_multitexture.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_multitexture.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_record.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_record.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_rectangle.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_rectangle.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_snap.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_snap.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_snap2tex.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_snap2tex.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_texture.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_texture.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_write.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_write.h +# End Source File +# End Group +# Begin Group "Video" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=.\Pixes\DSgrabber.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\DSgrabber.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\film.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\film.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\filmAVI.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\filmAVI.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\filmAVIPLAY.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\filmAVIPLAY.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\filmDarwin.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\filmDarwin.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\filmFFMPEG.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\filmFFMPEG.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\filmMPEG1.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\filmMPEG1.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\filmMPEG3.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\filmMPEG3.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\filmQT.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\filmQT.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\filmQT4L.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\filmQT4L.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_film.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_film.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_filmNEW.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_filmNEW.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_filmNT.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_filmNT.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_filmQT.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_filmQT.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_movie.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_movie.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_movieNEW.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_movieNEW.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_movieYUV.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_movieYUV.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_video.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_video.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_videoDS.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_videoDS.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_videoNT.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_videoNT.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\video.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\video.h +# End Source File +# End Group +# Begin Group "TV" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=.\Pixes\pix_background.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_background.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_biquad.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_biquad.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_blur.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_blur.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_delay.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_delay.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_motionblur.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_motionblur.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_movement.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_movement.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_movement2.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_movement2.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_rtx.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_rtx.h +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_tIIR.cpp +# End Source File +# Begin Source File + +SOURCE=.\Pixes\pix_tIIR.h +# End Source File +# End Group +# End Group +# Begin Group "Particles" + +# PROP Default_Filter "" +# Begin Group "partlib" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=.\Particles\papi.h +# End Source File +# Begin Source File + +SOURCE=.\Particles\partlib_actionapi.cpp +# End Source File +# Begin Source File + +SOURCE=.\Particles\partlib_actions.cpp +# End Source File +# Begin Source File + +SOURCE=.\Particles\partlib_general.h +# End Source File +# Begin Source File + +SOURCE=.\Particles\partlib_opengl.cpp +# End Source File +# Begin Source File + +SOURCE=.\Particles\partlib_system.cpp +# End Source File +# Begin Source File + +SOURCE=.\Particles\partlib_vector.h +# End Source File +# End Group +# Begin Source File + +SOURCE=.\Particles\part_color.cpp +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_color.h +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_damp.cpp +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_damp.h +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_draw.cpp +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_draw.h +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_follow.cpp +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_follow.h +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_gravity.cpp +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_gravity.h +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_head.cpp +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_head.h +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_info.cpp +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_info.h +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_killold.cpp +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_killold.h +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_killslow.cpp +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_killslow.h +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_orbitpoint.cpp +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_orbitpoint.h +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_render.cpp +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_render.h +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_sink.cpp +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_sink.h +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_size.cpp +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_size.h +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_source.cpp +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_source.h +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_targetcolor.cpp +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_targetcolor.h +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_targetsize.cpp +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_targetsize.h +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_velcone.cpp +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_velcone.h +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_velocity.cpp +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_velocity.h +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_velsphere.cpp +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_velsphere.h +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_vertex.cpp +# End Source File +# Begin Source File + +SOURCE=.\Particles\part_vertex.h +# End Source File +# End Group +# Begin Group "OpenGL" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=.\openGL\GEMglAccum.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglAccum.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglActiveTextureARB.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglActiveTextureARB.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglAlphaFunc.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglAlphaFunc.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglAreTexturesResident.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglAreTexturesResident.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglArrayElement.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglArrayElement.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglBegin.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglBegin.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglBindProgramARB.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglBindProgramARB.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglBindTexture.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglBindTexture.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglBitmap.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglBitmap.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglBlendEquation.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglBlendEquation.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglBlendFunc.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglBlendFunc.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglCallList.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglCallList.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglClear.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglClear.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglClearAccum.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglClearAccum.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglClearColor.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglClearColor.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglClearDepth.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglClearDepth.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglClearIndex.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglClearIndex.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglClearStencil.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglClearStencil.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglClipPlane.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglClipPlane.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor3b.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor3b.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor3bv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor3bv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor3d.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor3d.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor3dv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor3dv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor3f.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor3f.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor3fv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor3fv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor3i.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor3i.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor3iv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor3iv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor3s.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor3s.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor3sv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor3sv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor3ub.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor3ub.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor3ubv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor3ubv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor3ui.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor3ui.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor3uiv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor3uiv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor3us.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor3us.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor3usv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor3usv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor4b.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor4b.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor4bv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor4bv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor4d.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor4d.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor4dv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor4dv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor4f.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor4f.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor4fv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor4fv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor4i.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor4i.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor4iv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor4iv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor4s.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor4s.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor4sv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor4sv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor4ub.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor4ub.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor4ubv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor4ubv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor4ui.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor4ui.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor4uiv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor4uiv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor4us.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor4us.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor4usv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColor4usv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColorMask.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColorMask.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColorMaterial.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglColorMaterial.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglCopyPixels.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglCopyPixels.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglCopyTexImage1D.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglCopyTexImage1D.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglCopyTexImage2D.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglCopyTexImage2D.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglCopyTexSubImage1D.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglCopyTexSubImage1D.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglCopyTexSubImage2D.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglCopyTexSubImage2D.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglCullFace.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglCullFace.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglDeleteTextures.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglDeleteTextures.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglDepthFunc.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglDepthFunc.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglDepthMask.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglDepthMask.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglDepthRange.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglDepthRange.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglDisable.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglDisable.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglDisableClientState.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglDisableClientState.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglDrawArrays.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglDrawArrays.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglDrawBuffer.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglDrawBuffer.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglDrawElements.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglDrawElements.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEdgeFlag.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEdgeFlag.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEnable.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEnable.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEnableClientState.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEnableClientState.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEnd.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEnd.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEndList.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEndList.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEvalCoord1d.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEvalCoord1d.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEvalCoord1dv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEvalCoord1dv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEvalCoord1f.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEvalCoord1f.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEvalCoord1fv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEvalCoord1fv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEvalCoord2d.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEvalCoord2d.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEvalCoord2dv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEvalCoord2dv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEvalCoord2f.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEvalCoord2f.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEvalCoord2fv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEvalCoord2fv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEvalMesh1.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEvalMesh1.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEvalMesh2.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEvalMesh2.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEvalPoint1.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEvalPoint1.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEvalPoint2.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglEvalPoint2.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglFeedbackBuffer.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglFeedbackBuffer.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglFinish.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglFinish.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglFlush.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglFlush.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglFogf.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglFogf.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglFogfv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglFogfv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglFogi.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglFogi.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglFogiv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglFogiv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglFrontFace.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglFrontFace.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglFrustum.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglFrustum.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglGenLists.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglGenLists.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglGenProgramsARB.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglGenProgramsARB.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglGenTextures.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglGenTextures.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglGetError.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglGetError.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglGetFloatv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglGetFloatv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglGetMapdv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglGetMapdv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglGetMapfv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglGetMapfv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglGetMapiv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglGetMapiv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglGetPointerv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglGetPointerv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglGetString.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglGetString.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglHint.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglHint.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglIndexd.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglIndexd.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglIndexdv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglIndexdv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglIndexf.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglIndexf.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglIndexfv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglIndexfv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglIndexi.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglIndexi.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglIndexiv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglIndexiv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglIndexMask.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglIndexMask.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglIndexs.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglIndexs.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglIndexsv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglIndexsv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglIndexub.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglIndexub.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglIndexubv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglIndexubv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglInitNames.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglInitNames.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglIsEnabled.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglIsEnabled.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglIsList.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglIsList.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglIsTexture.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglIsTexture.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglLightf.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglLightf.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglLighti.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglLighti.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglLightModelf.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglLightModelf.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglLightModeli.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglLightModeli.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglLineStipple.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglLineStipple.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglLineWidth.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglLineWidth.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglLoadIdentity.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglLoadIdentity.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglLoadMatrixd.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglLoadMatrixd.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglLoadMatrixf.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglLoadMatrixf.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglLoadName.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglLoadName.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglLoadTransposeMatrixd.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglLoadTransposeMatrixd.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglLoadTransposeMatrixf.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglLoadTransposeMatrixf.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglLogicOp.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglLogicOp.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglMap1d.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglMap1d.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglMap1f.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglMap1f.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglMap2d.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglMap2d.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglMap2f.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglMap2f.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglMapGrid1d.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglMapGrid1d.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglMapGrid1f.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglMapGrid1f.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglMapGrid2d.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglMapGrid2d.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglMapGrid2f.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglMapGrid2f.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglMaterialf.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglMaterialf.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglMateriali.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglMateriali.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglMatrixMode.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglMatrixMode.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglMultiTexCoord2fARB.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglMultiTexCoord2fARB.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglMultMatrixd.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglMultMatrixd.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglMultMatrixf.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglMultMatrixf.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglMultTransposeMatrixd.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglMultTransposeMatrixd.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglMultTransposeMatrixf.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglMultTransposeMatrixf.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglNewList.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglNewList.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglNormal3b.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglNormal3b.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglNormal3bv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglNormal3bv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglNormal3d.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglNormal3d.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglNormal3dv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglNormal3dv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglNormal3f.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglNormal3f.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglNormal3fv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglNormal3fv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglNormal3i.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglNormal3i.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglNormal3iv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglNormal3iv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglNormal3s.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglNormal3s.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglNormal3sv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglNormal3sv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglOrtho.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglOrtho.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPassThrough.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPassThrough.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPixelStoref.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPixelStoref.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPixelStorei.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPixelStorei.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPixelTransferf.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPixelTransferf.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPixelTransferi.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPixelTransferi.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPixelZoom.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPixelZoom.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPointSize.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPointSize.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPolygonMode.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPolygonMode.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPolygonOffset.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPolygonOffset.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPopAttrib.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPopAttrib.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPopClientAttrib.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPopClientAttrib.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPopMatrix.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPopMatrix.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPopName.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPopName.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPrioritizeTextures.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPrioritizeTextures.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglProgramEnvParameter4dARB.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglProgramEnvParameter4dARB.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglProgramEnvParameter4fvARB.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglProgramEnvParameter4fvARB.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglProgramLocalParameter4fvARB.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglProgramLocalParameter4fvARB.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglProgramStringARB.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglProgramStringARB.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPushAttrib.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPushAttrib.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPushClientAttrib.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPushClientAttrib.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPushMatrix.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPushMatrix.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPushName.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglPushName.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos2d.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos2d.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos2dv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos2dv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos2f.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos2f.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos2fv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos2fv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos2i.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos2i.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos2iv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos2iv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos2s.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos2s.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos2sv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos2sv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos3d.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos3d.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos3dv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos3dv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos3f.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos3f.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos3fv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos3fv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos3i.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos3i.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos3iv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos3iv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos3s.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos3s.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos3sv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos3sv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos4d.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos4d.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos4dv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos4dv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos4f.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos4f.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos4fv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos4fv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos4i.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos4i.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos4iv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos4iv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos4s.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos4s.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos4sv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRasterPos4sv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRectd.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRectd.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRectf.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRectf.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRecti.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRecti.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRects.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRects.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRenderMode.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRenderMode.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRotated.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRotated.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRotatef.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglRotatef.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglScaled.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglScaled.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglScalef.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglScalef.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglScissor.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglScissor.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglSelectBuffer.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglSelectBuffer.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglShadeModel.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglShadeModel.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglStencilFunc.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglStencilFunc.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglStencilMask.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglStencilMask.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglStencilOp.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglStencilOp.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord1d.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord1d.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord1dv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord1dv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord1f.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord1f.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord1fv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord1fv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord1i.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord1i.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord1iv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord1iv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord1s.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord1s.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord1sv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord1sv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord2d.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord2d.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord2dv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord2dv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord2f.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord2f.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord2fv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord2fv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord2i.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord2i.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord2iv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord2iv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord2s.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord2s.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord2sv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord2sv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord3d.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord3d.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord3dv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord3dv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord3f.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord3f.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord3fv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord3fv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord3i.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord3i.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord3iv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord3iv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord3s.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord3s.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord3sv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord3sv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord4d.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord4d.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord4dv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord4dv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord4f.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord4f.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord4fv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord4fv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord4i.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord4i.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord4iv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord4iv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord4s.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord4s.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord4sv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexCoord4sv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexEnvf.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexEnvf.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexEnvi.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexEnvi.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexGend.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexGend.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexGenf.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexGenf.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexGeni.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexGeni.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexParameterf.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexParameterf.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexParameteri.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexParameteri.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexSubImage1D.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexSubImage1D.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexSubImage2D.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTexSubImage2D.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTranslated.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTranslated.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTranslatef.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglTranslatef.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglUniform1fARB.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglUniform1fARB.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMgluPerspective.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMgluPerspective.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglUseProgramObjectARB.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglUseProgramObjectARB.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex2d.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex2d.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex2dv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex2dv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex2f.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex2f.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex2fv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex2fv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex2i.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex2i.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex2iv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex2iv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex2s.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex2s.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex2sv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex2sv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex3d.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex3d.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex3dv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex3dv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex3f.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex3f.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex3fv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex3fv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex3i.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex3i.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex3iv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex3iv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex3s.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex3s.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex3sv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex3sv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex4d.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex4d.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex4dv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex4dv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex4f.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex4f.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex4fv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex4fv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex4i.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex4i.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex4iv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex4iv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex4s.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex4s.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex4sv.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglVertex4sv.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglViewport.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GEMglViewport.h +# End Source File +# Begin Source File + +SOURCE=.\openGL\GLdefine.cpp +# End Source File +# Begin Source File + +SOURCE=.\openGL\GLdefine.h +# End Source File +# End Group +# Begin Group "tmp" + +# PROP Default_Filter "" +# End Group +# End Target +# End Project diff --git a/Gem/build/win-vs6/gem_vc6.dsw b/Gem/build/win-vs6/gem_vc6.dsw new file mode 100644 index 0000000..bfbe9c8 --- /dev/null +++ b/Gem/build/win-vs6/gem_vc6.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNUNG: DIESE ARBEITSBEREICHSDATEI DARF NICHT BEARBEITET ODER GELSCHT WERDEN! + +############################################################################### + +Project: "gem"=.\gem.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/Gem/build/win-vs7/README.txt b/Gem/build/win-vs7/README.txt new file mode 100644 index 0000000..0cfc119 --- /dev/null +++ b/Gem/build/win-vs7/README.txt @@ -0,0 +1,16 @@ +this is the project-file to build Gem using Microsoft's VisualStudio 7 + +DEPRECATION WARNING +=================== +this MSVC-Project is deprecated and has not been used for a long time. +do not expect it to work out of the box. + +these files have been moved here in an attempt to cleanup the project + +originally these files have been located in /src/ instead of +/build/win-vs7, so all the paths in the project-file might be wrong + +either fix the project-files or copy them over to the src/ directory + +i don't do it, as i don't have a VC7 anymore (it is outdated anyhow) + diff --git a/Gem/build/win-vs7/gem.vcproj b/Gem/build/win-vs7/gem.vcproj new file mode 100644 index 0000000..bb847c6 --- /dev/null +++ b/Gem/build/win-vs7/gem.vcproj @@ -0,0 +1,3237 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Gem/build/win-vs7/gem_vc7.sln b/Gem/build/win-vs7/gem_vc7.sln new file mode 100644 index 0000000..28924fc --- /dev/null +++ b/Gem/build/win-vs7/gem_vc7.sln @@ -0,0 +1,21 @@ +Microsoft Visual Studio Solution File, Format Version 7.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gem", "gem.vcproj", "{E6CFDE67-C343-44D0-8584-5D82E396D594}" +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + ConfigName.0 = Debug + ConfigName.1 = Release + EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {E6CFDE67-C343-44D0-8584-5D82E396D594}.Debug.ActiveCfg = Debug|Win32 + {E6CFDE67-C343-44D0-8584-5D82E396D594}.Debug.Build.0 = Debug|Win32 + {E6CFDE67-C343-44D0-8584-5D82E396D594}.Release.ActiveCfg = Release|Win32 + {E6CFDE67-C343-44D0-8584-5D82E396D594}.Release.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/Gem/configure.ac b/Gem/configure.ac new file mode 100644 index 0000000..3de6dc2 --- /dev/null +++ b/Gem/configure.ac @@ -0,0 +1,720 @@ +# -*- Autoconf -*- +# Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.60) +AC_INIT([Gem],[0.93],[zmoelnig@iem.at],[Gem],[http://gem.iem.at]) + +AM_INIT_AUTOMAKE([1.10 foreign]) + + +# +AC_CONFIG_FILES([Makefile abstractions/Makefile]) + +# documentation +AC_CONFIG_FILES([help/Makefile doc/Makefile examples/Makefile]) + +# src +AC_CONFIG_FILES([src/Makefile src/Gem/Makefile src/Utils/Makefile]) +AC_CONFIG_FILES([src/RTE/Makefile src/Base/Makefile src/plugins/Makefile ]) +AC_CONFIG_FILES([src/Output/Makefile ]) +AC_CONFIG_FILES([src/deprecated/Makefile ]) + +## plugins that use this autoconf instance for configuration +AC_CONFIG_FILES([plugins/Makefile]) +AC_CONFIG_FILES([plugins/imageQT/Makefile]) +AC_CONFIG_FILES([plugins/imageMAGICK/Makefile]) +AC_CONFIG_FILES([plugins/imageTIFF/Makefile]) +AC_CONFIG_FILES([plugins/imageJPEG/Makefile]) +AC_CONFIG_FILES([plugins/imageSGI/Makefile]) + +AC_CONFIG_FILES([plugins/filmAVI/Makefile]) +AC_CONFIG_FILES([plugins/filmAVIPLAY/Makefile]) +AC_CONFIG_FILES([plugins/filmDS/Makefile]) +AC_CONFIG_FILES([plugins/filmDarwin/Makefile]) +AC_CONFIG_FILES([plugins/filmGMERLIN/Makefile]) +AC_CONFIG_FILES([plugins/filmMPEG1/Makefile]) +AC_CONFIG_FILES([plugins/filmMPEG3/Makefile]) +AC_CONFIG_FILES([plugins/filmQT/Makefile]) +AC_CONFIG_FILES([plugins/filmQT4L/Makefile]) +AC_CONFIG_FILES([plugins/filmTEST/Makefile]) + +AC_CONFIG_FILES([plugins/modelOBJ/Makefile]) +AC_CONFIG_FILES([plugins/modelASSIMP2/Makefile]) + +AC_CONFIG_FILES([plugins/recordQT/Makefile]) +AC_CONFIG_FILES([plugins/recordQT4L/Makefile]) +AC_CONFIG_FILES([plugins/recordV4L/Makefile]) +AC_CONFIG_FILES([plugins/recordV4L2/Makefile]) + +AC_CONFIG_FILES([plugins/videoDC1394/Makefile]) +AC_CONFIG_FILES([plugins/videoDS/Makefile]) +AC_CONFIG_FILES([plugins/videoDV4L/Makefile]) +AC_CONFIG_FILES([plugins/videoDarwin/Makefile]) +AC_CONFIG_FILES([plugins/videoSGI/Makefile]) +AC_CONFIG_FILES([plugins/videoTEST/Makefile]) +AC_CONFIG_FILES([plugins/videoUNICAP/Makefile]) +AC_CONFIG_FILES([plugins/videoV4L/Makefile]) +AC_CONFIG_FILES([plugins/videoV4L2/Makefile]) +AC_CONFIG_FILES([plugins/videoVFW/Makefile]) +AC_CONFIG_FILES([plugins/videoVLC/Makefile]) + +## extra holds additional objects/libraries +# some of them have their own build system +#AC_CONFIG_FILES([extra/Makefile]) +# some do not +AC_CONFIG_FILES([extra/pix2jpg/Makefile]) + +# other stuff +AC_CONFIG_FILES([build/Makefile Gem.pc Gem-meta.pd]) + + +########################## + +AC_CONFIG_MACRO_DIR([m4]) + +AC_CONFIG_HEADERS([src/config.h]) +AC_CONFIG_SRCDIR([src/Base/GemBase.h]) + +AC_CONFIG_SUBDIRS([extra]) + +if test -d "$srcdir/plugins/videoAVT"; then + AC_CONFIG_SUBDIRS([plugins/videoAVT]) +fi +if test -d "$srcdir/plugins/videoHALCON"; then + AC_CONFIG_SUBDIRS([plugins/videoHALCON]) +fi +if test -d "$srcdir/plugins/videoPYLON"; then + AC_CONFIG_SUBDIRS([plugins/videoPYLON]) +fi + + +AC_LANG(C++) + +ARCH=$(uname -m) +KERN=$(uname -s) + + +AC_SUBST(CXXCPP) +AC_SUBST(CXX) +AC_SUBST(GEM_TARGETS) +AC_SUBST(EXT) +AC_SUBST(LIBS) + +AC_SUBST(CXXFLAGS) +AC_SUBST(CPPFLAGS) +AC_SUBST(DEFS) +AC_SUBST(DEFINES) + +AC_SUBST(X_CFLAGS) +AC_SUBST(X_PRE_LIBS) +AC_SUBST(X_LIBS) +AC_SUBST(X_EXTRA_LIBS) + +AC_SUBST(PKG_CFLAGS) +AC_SUBST(PKG_LIBS) +AC_SUBST(prefix) + +# Checks for programs. +AC_PROG_CXX +m4_ifdef([AC_PROG_OBJC], [AC_PROG_OBJC]) +m4_ifdef([AC_PROG_OBJCXX], [AC_PROG_OBJCXX]) + +AC_LIBTOOL_WIN32_DLL +AC_PROG_LIBTOOL + +AC_PROG_INSTALL +AC_PROG_LN_S +AC_PROG_SED + +AC_ARG_WITH([ALL], + AS_HELP_STRING([--without-ALL],[en/disable ALL libraries by default])) + + +GEM_CHECK_RTE() + +AC_SUBST(GEM_CPPFLAGS) +AC_SUBST(GEM_CFLAGS) +AC_SUBST(GEM_CXXFLAGS) +AC_SUBST(GEM_LIBS) + +AC_SUBST(GEM_EXTERNAL_CPPFLAGS) +AC_SUBST(GEM_EXTERNAL_CFLAGS) +AC_SUBST(GEM_EXTERNAL_LIBS) + + +GEM_CPPFLAGS="-DGEM_INTERNAL" + +if test "x$have_pddll" = "xyes"; then + GEM_EXTERNAL_LIBS="${GEM_EXTERNAL_LIBS}${GEM_EXTERNAL_LIBS:+ }-Xlinker -l:Gem.dll" +fi + +GEM_ARG_ENABLE([mmx], [MMX-support]) +dnl disabled SSE2 by default, since there are still few chips around that fully support it +dnl unlike MMX or SSE +GEM_ARG_DISABLE([sse2], [SSE2-support]) +GEM_ARG_ENABLE([altivec], [AltiVec-support]) +GEM_ARG_DISABLE([powerpc], [PowerPC specific optimizations]) + +GEM_ARG_ENABLE([pascalstrings], [containing '\p']) + +GEM_ARG_ENABLE([registerstruct], [use \"-freg-struct-return\" (needed for FreeFrame)], [force]) + + +GEM_TARGET(Controls) +GEM_TARGET(Geos) +GEM_TARGET(Manips) +GEM_TARGET(Nongeos) +GEM_TARGET(Particles) +GEM_TARGET(Pixes) +GEM_TARGET(openGL) +GEM_TARGET_DISABLED(Vertex) + +# Checks for libraries. + +AC_CHECK_LIB([m],[sin]) +AC_CHECK_LIB([z],[main]) +AC_CHECK_LIB([dl],[dlopen]) + +# w32 compatibility library +AC_CHECK_LIB([OLDNAMES], [close]) +AC_CHECK_LIB([coldname], [close]) +# Standard C++ Libray: +AC_CHECK_LIB([libcpmt], [main]) +# C runtime library: +AC_CHECK_LIB([msvcrt], [fclose]) +# Standard C++ Libray: +AC_CHECK_LIB([msvcprt], [main]) +# Winsock Library +AC_CHECK_LIB([ws2_32], [main]) +AC_CHECK_LIB([wsock32], [main]) + +# w32 window creating +AC_CHECK_LIB([gdi32], [main]) + + +## on OSX X shouldn't be used by default as there are other ways +## however, if people really want it ("--with-x") they should get it +if test "x$KERN" = "xDarwin"; then + if test "x$with_x" = "x"; then + with_x="no" + fi +fi + +AC_PATH_X +AC_PATH_XTRA + +if test "x$with_x" != "xno"; then +# AC_CHECK_LIB([X11],[main]) +# AC_CHECK_LIB([Xext],[main]) + AC_CHECK_LIB([Xxf86vm],[XF86VidModeGetAllModeLines]) +fi + +IEM_CHECK_GL +IEM_CHECK_GLU +IEM_CHECK_GLUT +IEM_CHECK_GLX +IEM_CHECK_AGL + +## use system's libGLEW +GEM_CHECK_LIB([glew], [GLEW], [glewInit],,,,[OpenGL Extension Wrangler library], [no]) +if test "x${have_glew}" != "xyes"; then + GEM_CPPFLAGS+=" -DGLEW_BUILD" +fi + +GEM_CHECK_LIB([sdl], [SDL], [SDL_Quit],,,,[SDL windowing], [yes]) + +## http://wiki.fifengine.de/Segfault_in_cxa_allocate_exception#Workaround_.231 +### "-lstdc++" really has to be added before e.g. "-lGL" in order to avoid +### triggering the bug +### however, libtool is way to clever and eliminates duplicate LIBS entries. +### since "-lstdc++" is usually found in the postdeps, this would remove the +### entry found in LIBS; so we add it to the predeps_CXX (only) +stdcxx_LIBS=$LIBS +AC_CHECK_LIB([stdc++],[main],[predeps_CXX="$predeps_CXX -lstdc++"]) +LIBS=$stdcxx_LIBS + +dnl some checks for osX +GEM_CHECK_FRAMEWORK([Cocoa], + [have_cocoa_framework="yes"], + [have_cocoa_framework="no"]) +GEM_CHECK_FRAMEWORK([Carbon], + [have_carbon_framework="yes"], + [have_carbon_framework="no"]) +GEM_CHECK_FRAMEWORK([QuickTime], + [have_quicktime_framework="yes"], + [have_quicktime_framework="no"]) + +AM_CONDITIONAL(VIDEODARWIN, test "x${have_carbon_framework}" = "xyes" && test "x${have_quicktime_framework}" = "xyes") + +#fallback to imagemagick if people are too lazy to type ImageMagick +if test "x$with_ImageMagick" = "x"; then + with_ImageMagick="$with_imagemagick" +fi +if test "x$with_MagickCore" = "x"; then + with_MagickCore="$with_ImageMagick" +fi + +GEM_CHECK_LIB([ImageMagick++], + [Magick++], + [main], + AC_DEFINE([HAVE_LIBMAGICKPLUSPLUS], [1], [image loading/saving with ImageMagick++]), + ,,[image loader]) + +GEM_CHECK_LIB([MagickCore], + [Magick], + [main], + AC_DEFINE([HAVE_LIBMAGICK], [1], [image loading/saving with ImageMagick (Core)]), + ,,[image loader]) + +#if test "x${have_ImageMagick}" = "xyes" +#then +# with_tiff=no +# with_jpeg=no +#fi +GEM_CHECK_LIB([tiff], [tiff], [TIFFOpen],,,,[image loader]) +GEM_CHECK_LIB([jpeg], [jpeg], [jpeg_read_header],,,,[image loader]) + +IEM_CHECK_FTGL() +GEM_CHECK_LIB([fribidi], [fribidi],[fribidi_log2vis],,,, [bidrectional text rendering using FriBidi]) + +## film en/decoders +GEM_CHECK_LIB([avifile], [aviplay], [CreateIAviReadFile],,,,[movie loader]) +GEM_CHECK_LIB([gmerlin_avdec], [gmerlin_avdec], [gavl_start],,,,[movie loader]) +GEM_CHECK_LIB([mpeg], [mpeg], [OpenMPEG],,,,[movie loader]) +GEM_CHECK_LIB([libmpeg3], [mpeg3], [mpeg3_check_sig],,,,[movie loader]) +GEM_CHECK_LIB([libquicktime], [quicktime], [quicktime_init],,,,[movie loader]) +GEM_CHECK_LIB([lqt], [quicktime], [quicktime_init],,,,[movie loader]) + +# special function in libquicktime +old_cflags=${CFLAGS} +old_ldflags=${LDFLAGS} +CFLAGS="${CFLAGS} $GEM_LIB_LIBQUICKTIME_CFLAGS $GEM_LIB_LQT_CFLAGS" +LDFLAGS="${LDFLAGS} $GEM_LIB_LIBQUICKTIME_LIBS $GEM_LIB_LQT_LIBS" +AC_CHECK_FUNCS([lqt_seek_video]) +AC_CHECK_FUNCS([lqt_open_write]) +CFLAGS=${old_cflags} +LDFLAGS=${old_ldflags} + +#video +GEM_CHECK_LIB([libdc1394-2], [dc1394], [main],,,, [video input]) +GEM_CHECK_LIB([libdv],[dv], [main],,,, [video input]) +GEM_CHECK_LIB([libraw1394], [raw1394], [main],,,, [video input]) +GEM_CHECK_LIB([libiec61883], [iec61883], [main],,,, [video input]) +AC_CHECK_HEADERS([vl/vl.h]) + +GEM_ARG_WITH([unicap], [video input], [force]) + +GEM_CHECK_LIB([libunicap], [unicap], [unicap_check_version],,,, [video input]) + +if test "x$have_unicap" = "xyes"; then + AC_CHECK_HEADER([unicap/unicap.h], + [ + AC_DEFINE([HAVE_UNICAP], [], [video capturing using UNICAP]) + have_unicap="yes" + ],[have_unicap="no"]) +fi +if test "x$have_libunicap"; then + have_unicap="yes" +fi +AM_CONDITIONAL([HAVE_LIB_UNICAP], [test "x${have_unicap}" = "xyes"]) + + +have_v4l="no" +GEM_ARG_WITH([v4l], [video input], [force]) +AC_CHECK_HEADERS([linux/videodev.h], have_v4l="yes") +GEM_CHECK_LIB([libv4l1], [v4l1], [v4l1_open],,,, [video output]) +if test "x$have_libv4l1" = "xyes"; then + have_v4l="yes (libv4l)" +fi +if test "x$with_v4l" = "xno"; then + have_v4l="no" +fi +AM_CONDITIONAL([HAVE_V4L], [test "x${have_v4l}" != "xno"]) + + +have_v4l2="no" +GEM_ARG_WITH([v4l2], [video input], [force]) +AC_CHECK_HEADERS([linux/videodev2.h]) +GEM_CHECK_LIB([libv4l2], [v4l2], [v4l2_open],,,, [video input]) +# AC_DEFINE([HAVE_VIDEO4LINUX2], [], [video capturing using v4l2]) + +if test "x$have_libv4l2" = "xyes"; then + have_v4l2="yes (libv4l)" +fi +if test "x$with_v4l2" = "xno"; then + have_v4l2="no" +fi +AM_CONDITIONAL([HAVE_V4L2], [test "x${have_v4l2}" != "xno"]) + + +dnl GEM_CHECK_LIB([vfw32], [vfw32], [AVIFileInit],,,, [video input]) +GEM_CHECK_LIB([vfw32], [vfw32], [main],,,, [video input]) +# is this needed? +dnl GEM_CHECK_LIB([avicap32],[avicap32],[main],,,,[video input]) + +# VLC +GEM_CHECK_LIB([libvlc], [vlc], [libvlc_video_set_callbacks],,,, [video input]) + +# assimp +GEM_CHECK_LIB([assimp], [assimp], [aiDetachAllLogStreams],,,, [3D model loading]) + + + + +AC_ARG_WITH([default-font], + AS_HELP_STRING([--with-default-font=vera.ttf],[specify the default font for text-rendering]) + ) +if test "x$with_default_font" != "x" && \ + test "x$with_default_font" != "xno" && + test "x$with_default_font" != "xyes"; then + + AC_DEFINE_UNQUOTED([GEM_DEFAULT_FONT], "${with_default_font}", [default font for text rendering]) + AC_MSG_RESULT([using "${with_default_font}" as default font]) +fi + +# threading +GEM_CHECK_THREADS + +# Checks for header files. +AC_HEADER_STDC +AC_CHECK_HEADERS([fcntl.h float.h memory.h stddef.h stdlib.h string.h strings.h sys/ioctl.h sys/time.h termios.h unistd.h]) + +AC_CHECK_HEADERS([wordexp.h]) + +# Checks for typedefs, structures, and compiler characteristics. +AC_HEADER_STDBOOL +AC_C_CONST +AC_C_INLINE +AC_TYPE_SIZE_T +AC_HEADER_TIME + +AC_CHECK_SIZEOF([unsigned int]) +AC_CHECK_SIZEOF([void *]) + +# Checks for library functions. +AC_FUNC_ERROR_AT_LINE +AC_FUNC_FORK +AC_FUNC_MALLOC +AC_FUNC_MMAP +AC_CHECK_FUNCS([bzero floor gettimeofday memset munmap pow sqrt strchr strdup strrchr strstr strnlen]) + +# enabling recording with quicktime4linux +gem_tmp_lqt_libs="$LIBS" +LIBS="$LIBS $PKG_LIBS" +AC_MSG_CHECKING(for lqt_open_write) +AC_LINK_IFELSE([AC_LANG_CALL([], [lqt_open_write])], + AC_DEFINE([HAVE_LQT_OPEN_WRITE], [], [film recording using quicktime4linux]) + AC_MSG_RESULT(yes), + AC_MSG_RESULT(no)) +LIBS="$gem_tmp_lqt_libs" + +### make-depend flags +if test "x$ac_cv_c_compiler_gnu" = "xyes"; then + AC_SUBST(MAKEDEP_FLAGS, "-MM") +else + AC_SUBST(MAKEDEP_FLAGS, "-M") +fi + +# using pix_videoOS rather than pix_video +AC_ARG_WITH([video], AS_HELP_STRING([--with-video=plugins|Darwin|DS|NT],[use plugins for video capture or OS-specific "pix_video"])) + +## on OSX we still default to the olde way +#if test "x$KERN" = "xDarwin"; then +# if test "x$with_film" = "x"; then +# with_film="Darwin" +# fi +# if test "x$with_video" = "x"; then +# with_video="Darwin" +# fi +#fi + +if test "x$with_video" = "x"; then + with_video="plugins" +elif test "x$with_video" = "xyes"; then + with_video="plugins" +elif test "x$with_video" = "xno"; then +# hmm, what to do here? + AC_MSG_RESULT([ignoring request for no video...using plugins]) + with_video="plugins" +elif test "x$with_video" = "xplugins"; then + : +else + AC_DEFINE_UNQUOTED([GEM_VIDEOBACKEND], [GEM_VIDEOBACKEND_$with_video], [backend for deprecated video-capture objects]) + AC_MSG_RESULT([using deprecated video-loader $with_video]) +fi + +# using pix_filmOS rather than pix_film +AC_ARG_WITH([film], AS_HELP_STRING([--with-film=plugins|Darwin],[use plugins for video decoding or OS-specific "pix_film"])) + +if test "x$with_film" = "x"; then + with_film="plugins" +elif test "x$with_film" = "xyes"; then + with_film="plugins" +elif test "x$with_film" = "xno"; then +# hmm, what to do here? + AC_MSG_RESULT([ignoring request for no film...using plugins]) + with_film="plugins" +elif test "x$with_film" = "xplugins"; then + : +else + AC_DEFINE_UNQUOTED([GEM_FILMBACKEND], [GEM_FILMBACKEND_$with_film], [backend for deprecated film-decoding objects]) + AC_MSG_RESULT([using deprecated film-loader $with_film]) +fi + + + + + +# enabling "-freg-struct-return" (for FreeFrame) +# i wonder could we make this the default ??? +if test "x$enable_registerstruct" != "xno"; then +GEM_CHECK_CXXFLAGS([-freg-struct-return], + [enable_registerstruct="yes"], [enable_registerstruct="no"]) + +if test "x$enable_registerstruct" = "xyes"; then + AC_MSG_RESULT([enabling "register struct return" + allows to make use of FreeFrame-effects without recompiling them + might break things, if you are using several different compilers]) +fi +fi + +if test "x$WINDOWS" = "xyes"; then + GEM_CHECK_CXXFLAGS([-mms-bitfields], [GEM_EXTERNAL_CFLAGS+="-mms-bitfields"]) +fi + +if test "x$KERN" = "xDarwin"; then + GEM_CHECK_CXXFLAGS([-Os],,GEM_CHECK_CXXFLAGS([-O3])) + +# shall we built FAT-binaries ? +## this needs more thinking! running just the preprocessor does not like these flags +## for now we could live with just adding these manually with GEM_EXTRA_CXXFLAGS and GEM_EXTRA_LDFLAGS +dnl GEM_CHECK_CXXFLAGS([-arch i386 -arch ppc], GEM_CHECK_LDFLAGS([-arch i386 -arch ppc], [EXT="d_fat"])) + +else + GEM_CHECK_CXXFLAGS([-O3]) +fi + +dnl this is only useful for debugging and might break things on older compilers +dnl GEM_CHECK_CXXFLAGS([-fno-builtin]) + +GEM_CHECK_CXXFLAGS([-falign-loops -falign-functions -falign-jumps -funroll-loops],, + GEM_CHECK_CXXFLAGS([-falign-loops -funroll-loops]) + ) +GEM_CHECK_CXXFLAGS([-ffast-math]) + +## SIMD support +# naive approach is to just check, which SIMD-flags the compiler takes +# and use these +# drawback: while the compiler might support compilation for a specific +# SIMD instruction set, the hardware you are compiling for might not + +# proposal: +# by default the configure-task should only enable flags that are known +# to work on the machine we are compiling. +# the user can override this by explicitely stating that they want the +# flag to be enabled (if possible) +# e.g. "./configure --enable-sse2" on a pentium-3 should +# produce a binary that will only run on machines with SSE2 registers +# whereas "./configure" will make a binary with only MMX enabled. +# +# but how do we test for the CPU-caps? on linux we could just read /proc/cpuinfo +# but on other OSs? + +# we make it a bit complicated in order to allow people to enforce the +# compilation with a specific SIMD-instruction set, even on platforms +# that don't support it +# why? think cross-compilation + +GEM_CHECK_FAT(GEM_ARCH) +AC_MSG_RESULT($GEM_ARCH) +AC_SUBST(GEM_ARCH_CXXFLAGS) +AC_SUBST(GEM_ARCH_LDFLAGS) + +if test "x${ARCH}" = "xi386" || test "x${ARCH}" = "xi686" || test "x${ARCH}" = "xx86_64"; then + if test "x$enable_altivec" != "xyes"; then enable_altivec="no"; fi +fi + +if test "x${ARCH}" = "xPower Macintosh" || test "x${ARCH}" = "xpowerpc"; then + if test "x$enable_mmx" != "xyes"; then enable_mmx="no" ; fi + if test "x$enable_sse2" != "xyes"; then enable_sse2="no"; fi +fi + +if test "x$enable_mmx" != "xno"; then + GEM_CHECK_CXXFLAGS([-mmmx]) +fi +if test "x$enable_sse2" = "xyes"; then + GEM_CHECK_CXXFLAGS([-msse2]) +fi +if test "x$enable_altivec" != "xno"; then + GEM_CHECK_CXXFLAGS([-faltivec]) +fi +if test "x$enable_powerpc" = "xyes"; then + GEM_CHECK_CXXFLAGS([-mpowerpc-gfxopt]) +fi + +# on os-x we might come across "pascal strings" containing "\p"... +if test "x$enable_pascalstrings" != "xno"; then + GEM_CHECK_CXXFLAGS([-fpascal-strings]) +fi + +AC_ARG_WITH([defaultwindow], + AS_HELP_STRING([--with-defaultwindow=<>],[specify default window backend (default: auto)])) + +case "$with_defaultwindow" in + gem*) + GEM_DEFAULT_WINDOW="$with_defaultwindow" + ;; + *) + GEM_DEFAULT_WINDOW="" + ;; +esac +if test "x${GEM_DEFAULT_WINDOW}" = "x"; then + if test "x$WINDOWS" = "xyes"; then + GEM_DEFAULT_WINDOW="gemw32window" + elif test "x$DARWIN" = "xyes"; then + #GEM_DEFAULT_WINDOW="gemmacwindow" + GEM_DEFAULT_WINDOW="gemcocoawindow" + elif test "x$no_glx" != "xyes"; then + GEM_DEFAULT_WINDOW="gemglxwindow" + elif test "x$no_glut" != "xyes"; then + GEM_DEFAULT_WINDOW="gemglutwindow" + fi +fi +AC_SUBST(GEM_DEFAULT_WINDOW) +AC_CONFIG_FILES([abstractions/gemdefaultwindow.pd]) + +## dummy conditionals that are always "true" (ENABLED) or "false" (DISABLED) +enabled="yes" +AM_CONDITIONAL([ENABLED], test "x${enabled}" = "xyes") +AM_CONDITIONAL([DISABLED], test "x${enabled}" = "xno") + + +# damned: gcc on osX seems to report that it supports "-ip -ipo_obj" although they are only icc flags +dnl GEM_CHECK_CXXFLAGS([-ip -ipo_obj]) + +dnl we want dos2unix... +dnl AC_CHECK_TOOL([DOS2UNIX], [dos2unix], [true]) + +AC_OUTPUT + +dnl GEM compilation options: +dnl ======================================= +dnl +dnl give some feedback about the configuration + +if test "x$have_ftgl" = "xyes"; then + have_font=FTGL +fi + +if test "x$have_ImageMagick" = "xyes"; then + have_ImageMagick="yes (Magick++)" +else + if test "x$have_MagickCore" = "xyes"; then + have_ImageMagick="yes (MagickCore)" + fi +fi + +if test "x$have_quicktime_framework" = "x"; then have_quicktime_framework="no"; fi + +if test "x$have_quicktime_framework" = "xyes"; then + have_libquicktime="yes (framework)" +fi + +have_ieee1394="" +if test "x$have_libdc1394_2" = "xyes"; then + have_ieee1394="$have_ieee1394 libdc1394" +fi + +if test "x$have_ieee1394" = "x"; then + have_ieee1394="no"; +else + have_ieee1394="yes (${have_ieee1394# })" +fi + +if test "x${have_v4l}" = "x"; then have_v4l="no"; fi +if test "x${have_v4l2}" = "x"; then have_v4l2="no"; fi +if test "x${have_ieee1394}" = "x"; then have_ieee1394="no"; fi +if test "x${have_libdv}" = "x"; then have_libdv="no"; fi +if test "x${have_unicap}" = "x"; then have_unicap="no"; fi +if test "x${have_vfw32}" = "x"; then have_vfw32="no"; fi +# TODO: have_ds + +if test "x$with_film" = "xplugins"; then + use_film_plugins="yes" +else + use_film_plugins="no (using $with_film backend)" +fi + +if test "x$with_video" = "xplugins"; then + use_video_plugins="yes" +else + use_video_plugins="no (using $with_video backend)" +fi + + + +AC_MSG_RESULT([ +Result: + Target : Gem.${EXT} + Objects : ${GEM_TARGETS} + default window : ${GEM_DEFAULT_WINDOW} + +Configuration: + Compiler : ${CXX} + CXXFLAGS : ${CXXFLAGS} ${X_CFLAGS} + : ${PKG_CFLAGS} + DEFINES : ${DEFINES} + + LIBS : ${LIBS} + : ${PKG_LIBS} + LDFLAGS : ${LDFLAGS} + : ${X_LIBS} + + Install path : ${prefix} + + RTE (${GEM_RTE}): + external-extension : ${GEM_RTE_EXTENSION} + CFLAGS : ${GEM_RTE_CFLAGS} + LIBS : ${GEM_RTE_LIBS} + + used optional libraries: + + font-rendering : ${have_font} + default font : ${GEM_DEFAULT_FONT} + + image-support + use ImageMagick : ${have_ImageMagick} + use QuickTime : ${have_quicktime_framework} + use TIFF : ${have_tiff} + use JPEG : ${have_jpeg} + moviefile-support + use PLUGINS : ${use_film_plugins} + use mpeg : ${have_mpeg} + use mpeg-3 : ${have_libmpeg3} + use QuickTime : ${have_libquicktime} + use aviplay : ${have_avifile} + use gmerlin : ${have_gmerlin_avdec} + capture-support + use PLUGINS : ${use_video_plugins} + use v4l : ${have_v4l} + use v4l2 : ${have_v4l2} + use ieee1394 : ${have_ieee1394} + use DV : ${have_libdv} + use Unicap : ${have_unicap} + use Video-for-WinDOS : ${have_vfw32} + use QuickTime : ${have_quicktime_framework} +]) + +if test "x$have_pd" = "xno"; then + AC_MSG_ERROR([Pd (header) is mandatory and seems to be missing!]) +fi + +if test "x$no_gl" = "xyes"; then + AC_MSG_ERROR([GL (headers) not found! you need openGL!!!]) +fi + +if test "x$no_glu" = "xyes" && test "x$no_agl" = "xyes"; then + AC_MSG_ERROR([GLU (headers) not found! you need openGL Utility Library!!!]) +fi + +AC_MSG_RESULT([Now run make ...]) diff --git a/Gem/doc/CodingStyle.txt b/Gem/doc/CodingStyle.txt new file mode 100644 index 0000000..0e0d9c6 --- /dev/null +++ b/Gem/doc/CodingStyle.txt @@ -0,0 +1,145 @@ +Coding Guidelines for Gem +========================= +2011, IOhannes m zmölnig + +in no special order... + +directory structure +------------------- +src/Gem + Gem core architecture classes +src/Utils + Utilitiy code that can be re-used in several different contexts +src/RTE + Pd-specific code (RTE=Real Time Environment) + (in the far future i would like to have all Pd-specific code wrapped in + here) +src/plugins + plugin infrastructure and (pure virtual) baseclasses for the various + plugins +src/Base + Base classes for objectclasses +src/deprecated + deprecated headers for backward compatibility + +src/Controls/ + objectclasses: CONTROL +src/Manips/ + objectclasses: MANIPulatorS +src/Geos/ + objectclasses: GEometric ObjectS +src/Nongeos/ + objectclasses: positionable Objects that are not Geos +src/openGL/ + objectclasses: OPENGL wrapper objects +src/Particles/ + objectclasses: PARTICLE engine +src/Pixes/ + objectclasses: PIXEl proceSsing + +src/Output/ + objectclasses: window handling + +plugins/*/ + plugin implementations for various backends + +extra/*/ + additional objectclasses + +directories containing objectclasses, should not hold auxiliary files! +these should go into src/Utils/ (if they are of general interest) or the code +should be embedded into the objectclass code. +a noteable exception is the extra/*/ folder + + +file structure +-------------- +C++ files are suffixed ".cpp". +they are accompanied by a header file ".h" containing the public interface. +there is a file for each objectclass named like the objectclass. e.g. +> src/Manips/ortho.cpp +contains the code for the [ortho] objectclass. + + +private/protected/public +------------------------ +ctor/dtor should be public +methods should be protected/public +members should be protected + +private members should be hidden using a PIMPL idiom + + +callbacks +--------- +message callbacks from the RTE should be implemented using the CPPEXTERN_MSG* +macros defined in src/RTE/MessageCallbacks.h +this removes the need for static callbacks in the header-files + + +C-style vs C++-style +-------------------- +while Pd is written in C, Gem is written in C++; +please try to use C++ idioms whenever possible. + +use STL instead of inventing your own data containers! +esp. use "std::string" instead of "char*" whenever possible + +the Gem code base is full of C-idioms and types; this is mainly because i +started as a C-programmer and only gradually learned using C++; don't repeat my +follies :-) + + +variable naming +--------------- +member variables are usually prefixed with "m_" +static variables are usually prefixed with "s_" + + +initialization +-------------- +initialize all member variables in the constructor(s). +use "member initialization lists" when possible. +e.g. use +> foo::foo(void) : m_x(0), m_y(0) {} +rather than +> foo::foo(void) { m_x=0; m_y=0; } + + +import/export +------------- +all functions/classes that should be visible from outside must be exported using +the GEM_EXTERN macro. +all objectclasses are exported. +all utility classes are exported. + + +dependencies +------------ +the dependencies of Gem should be kept at a minimum (ideally only openGL) +objectclasses that use special libraries should go into extra/ +if you want to add functionality to Gem that is (or can be) implemented by a +number of different backends (libraries), this should be done via an abstract +interface and plugins, thus moving the binary dependency outside of Gem. + + +Indentation +----------- +TODO + + +git commits +----------- +try to avoid committing pd-patches and C++ code within the same +commit. conflicts in C++-code can usually easily be resolved, whereas +conflicts in Pd-patches are usually impossible to resolve (but for the +most trivial cases) + + +git branching +------------- +try to avoid forking from branches other than master. +esp. avoid branches on top of branches. +before committing a pull rqeuest, make sure that your branch applies clean to +current master. + diff --git a/Gem/doc/GemPrimer.pdf b/Gem/doc/GemPrimer.pdf new file mode 100644 index 0000000..69a5043 Binary files /dev/null and b/Gem/doc/GemPrimer.pdf differ diff --git a/Gem/doc/Makefile.am b/Gem/doc/Makefile.am new file mode 100644 index 0000000..bed2d8b --- /dev/null +++ b/Gem/doc/Makefile.am @@ -0,0 +1,47 @@ +AUTOMAKE_OPTIONS = foreign + +gemdocdir=$(pkglibdir) + +nobase_dist_gemdoc_DATA = \ + cMatrix.html \ + gem.known_bugs.txt \ + GemPrimer.pdf \ + gem.release_notes.txt \ + gem.todo.txt \ + manual/add.jpg \ + manual/addResult.jpg \ + manual/Advanced.html \ + manual/basicCube.jpg \ + manual/BasicObj.html \ + manual/counter.jpg \ + manual/GemFaq.html \ + manual/gemwin.jpg \ + manual/GemWPd.html \ + manual/Gloss.html \ + manual/Images.html \ + manual/index.html \ + manual/Input.html \ + manual/Intro.html \ + manual/invertFrac.jpg \ + manual/invert.jpg \ + manual/Lighting.html \ + manual/light.jpg \ + manual/ListObjects.html \ + manual/mask.jpg \ + manual/maskResult.jpg \ + manual/normalFrac.jpg \ + manual/Particles.html \ + manual/Pixes.html \ + manual/pixImage.jpg \ + manual/redSquare.jpg \ + manual/sphere15.jpg \ + manual/sphere5.jpg \ + manual/Texture.html \ + manual/texture.jpg \ + manual/transXYZ.jpg \ + manual/tribar.gif \ + manual/tripleLine.jpg \ + manual/tripleRand.jpg \ + manual/Utility.html \ + manual/world_light.jpg \ + manual/WriteCode.html diff --git a/Gem/doc/cMatrix.html b/Gem/doc/cMatrix.html new file mode 100644 index 0000000..fe4cd04 --- /dev/null +++ b/Gem/doc/cMatrix.html @@ -0,0 +1,270 @@ + + +Matrix Operations for Image Processing + + +
+

Matrix Operations for Image Processing

+

Paul Haeberli

+

Nov 1993

+Horiz Bar +

Introduction

+

+Four by four matrices are commonly used to transform geometry for 3D +rendering. These matrices may also be used to transform RGB colors, to scale +RGB colors, and to control hue, saturation and contrast. The most important +advantage of using matrices is that any number of color transformations +can be composed using standard matrix multiplication. +

+Please note that for these operations to be correct, we really must operate +on linear brightness values. If the input image is in a non-linear brightness +space RGB colors must be transformed into a linear space before these +matrix operations are used. + +

Color Transformation

+RGB colors are transformed by a four by four matrix as shown here: + +
+    xformrgb(mat,r,g,b,tr,tg,tb)
+    float mat[4][4];
+    float r,g,b;
+    float *tr,*tg,*tb;
+    {
+        *tr = r*mat[0][0] + g*mat[1][0] +
+		    b*mat[2][0] + mat[3][0];
+        *tg = r*mat[0][1] + g*mat[1][1] +
+		    b*mat[2][1] + mat[3][1];
+        *tb = r*mat[0][2] + g*mat[1][2] +
+		    b*mat[2][2] + mat[3][2];
+    }
+
+ +

The Identity

+This is the identity matrix: +
+    float mat[4][4] = {
+        1.0,    0.0,    0.0,    0.0,
+        0.0,    1.0,    0.0,    0.0,
+        0.0,    0.0,    1.0,    0.0,
+        0.0,    0.0,    0.0,    1.0,
+    };
+
+Transforming colors by the identity matrix will leave them unchanged. + +

Changing Brightness

+To scale RGB colors a matrix like this is used: +
+    float mat[4][4] = {
+        rscale, 0.0,    0.0,    0.0,
+        0.0,    gscale, 0.0,    0.0,
+        0.0,    0.0,    bscale, 0.0,
+        0.0,    0.0,    0.0,    1.0,
+    };
+
+Where rscale, gscale, and bscale specify how much to scale the r, g, and b +components of colors. This can be used to alter the color balance of an image. +

+In effect, this calculates: +

+	tr = r*rscale;
+	tg = g*gscale;
+	tb = b*bscale;
+
+ +

Modifying Saturation

+ + +

Converting to Luminance

+To convert a color image into a black and white image, this matrix is used: +
+    float mat[4][4] = {
+        rwgt,   rwgt,   rwgt,   0.0,
+        gwgt,   gwgt,   gwgt,   0.0,
+        bwgt,   bwgt,   bwgt,   0.0,
+        0.0,    0.0,    0.0,    1.0,
+    };
+
+Where rwgt is 0.3086, gwgt is 0.6094, and bwgt is 0.0820. This is the +luminance vector. Notice here that we do not use the standard NTSC weights +of 0.299, 0.587, and 0.114. The NTSC weights are only applicable to RGB +colors in a gamma 2.2 color space. For linear RGB colors the values above +are better. +

+In effect, this calculates: +

+	tr = r*rwgt + g*gwgt + b*bwgt;
+	tg = r*rwgt + g*gwgt + b*bwgt;
+	tb = r*rwgt + g*gwgt + b*bwgt;
+
+ +

Modifying Saturation

+ +To saturate RGB colors, this matrix is used: + +
+     float mat[4][4] = {
+        a,      b,      c,      0.0,
+        d,      e,      f,      0.0,
+        g,      h,      i,      0.0,
+        0.0,    0.0,    0.0,    1.0,
+    };
+
+Where the constants are derived from the saturation value s +as shown below: + +
+    a = (1.0-s)*rwgt + s;
+    b = (1.0-s)*rwgt;
+    c = (1.0-s)*rwgt;
+    d = (1.0-s)*gwgt;
+    e = (1.0-s)*gwgt + s;
+    f = (1.0-s)*gwgt;
+    g = (1.0-s)*bwgt;
+    h = (1.0-s)*bwgt;
+    i = (1.0-s)*bwgt + s;
+
+One nice property of this saturation matrix is that the luminance +of input RGB colors is maintained. This matrix can also be used +to complement the colors in an image by specifying a saturation +value of -1.0. +

+Notice that when s is set to 0.0, the matrix is exactly +the "convert to luminance" matrix described above. When s +is set to 1.0 the matrix becomes the identity. All saturation matrices +can be derived by interpolating between or extrapolating beyond these +two matrices. +

+This is discussed in more detail in the note on +Image Processing By Interpolation and Extrapolation. +

Applying Offsets to Color Components

+To offset the r, g, and b components of colors in an image this matrix is used: +
+    float mat[4][4] = {
+        1.0,    0.0,    0.0,    0.0,
+        0.0,    1.0,    0.0,    0.0,
+        0.0,    0.0,    1.0,    0.0,
+        roffset,goffset,boffset,1.0,
+    };
+
+This can be used along with color scaling to alter the contrast of RGB +images. + +

Simple Hue Rotation

+To rotate the hue, we perform a 3D rotation of RGB colors about the diagonal +vector [1.0 1.0 1.0]. The transformation matrix is derived as shown here: +

+ If we have functions:

+

+
identmat(mat) +
that creates an identity matrix. +
+
+
xrotatemat(mat,rsin,rcos) +
that multiplies a matrix that rotates about the x (red) axis. +
+
+
yrotatemat(mat,rsin,rcos) +
that multiplies a matrix that rotates about the y (green) axis. +
+
+
zrotatemat(mat,rsin,rcos) +
that multiplies a matrix that rotates about the z (blue) axis. +
+Then a matrix that rotates about the 1.0,1.0,1.0 diagonal can be +constructed like this: +
+First we make an identity matrix +
+    identmat(mat);
+
+Rotate the grey vector into positive Z +
+    mag = sqrt(2.0);
+    xrs = 1.0/mag;
+    xrc = 1.0/mag;
+    xrotatemat(mat,xrs,xrc);
+
+    mag = sqrt(3.0);
+    yrs = -1.0/mag;
+    yrc = sqrt(2.0)/mag;
+    yrotatemat(mat,yrs,yrc);
+
+Rotate the hue +
+    zrs = sin(rot*PI/180.0);
+    zrc = cos(rot*PI/180.0);
+    zrotatemat(mat,zrs,zrc);
+
+Rotate the grey vector back into place +
+    yrotatemat(mat,-yrs,yrc);
+    xrotatemat(mat,-xrs,xrc);
+
+The resulting matrix will rotate the hue of the input RGB colors. A rotation +of 120.0 degrees will exactly map Red into Green, Green into Blue and +Blue into Red. This transformation has one problem, however, the luminance +of the input colors is not preserved. This can be fixed with the following +refinement: + +

Hue Rotation While Preserving Luminance

+ +We make an identity matrix +
+   identmat(mmat);
+
+Rotate the grey vector into positive Z +
+    mag = sqrt(2.0);
+    xrs = 1.0/mag;
+    xrc = 1.0/mag;
+    xrotatemat(mmat,xrs,xrc);
+    mag = sqrt(3.0);
+    yrs = -1.0/mag;
+    yrc = sqrt(2.0)/mag;
+    yrotatemat(mmat,yrs,yrc);
+    matrixmult(mmat,mat,mat);
+
+Shear the space to make the luminance plane horizontal +
+    xformrgb(mmat,rwgt,gwgt,bwgt,&lx,&ly,&lz);
+    zsx = lx/lz;
+    zsy = ly/lz;
+    zshearmat(mat,zsx,zsy);
+
+Rotate the hue +
+    zrs = sin(rot*PI/180.0);
+    zrc = cos(rot*PI/180.0);
+    zrotatemat(mat,zrs,zrc);
+
+Unshear the space to put the luminance plane back +
+    zshearmat(mat,-zsx,-zsy);
+
+Rotate the grey vector back into place +
+    yrotatemat(mat,-yrs,yrc);
+    xrotatemat(mat,-xrs,xrc);
+
+

Conclusion

+I've presented several matrix transformations that may be applied +to RGB colors. Each color transformation is represented by +a 4 by 4 matrix, similar to matrices commonly used to transform 3D geometry. +

+Example C code +that demonstrates these concepts is provided for your enjoyment. +

+These transformations allow us to adjust image contrast, brightness, hue and +saturation individually. In addition, color matrix transformations concatenate +in a way similar to geometric transformations. Any sequence of +operations can be combined into a single matrix using +matrix multiplication. +

+

+ +
+
+
+ + + diff --git a/Gem/doc/gem.known_bugs.txt b/Gem/doc/gem.known_bugs.txt new file mode 100644 index 0000000..d00beb8 --- /dev/null +++ b/Gem/doc/gem.known_bugs.txt @@ -0,0 +1,298 @@ +GEM ONLINE DOCUMENTATION CHAPTER 4: Known bugs +---------------------------------------------- + +---------------------------- KNOWN BUGS ----------------------------- + +[pix_lumaoffset] crashes +-------------- +POSTED 15/05/04 +-------------- +BUG: pix_lumaoffset crashes when the offset-factor is very high and fill+smooth is turned on +ANS: yes; but we haven't found where the bug is hidden yet + +loading movies leaks memory under Win32 +-------------- +POSTED 4/16/02 +-------------- +BUG: each time an AVI is loaded, the used memory increases for about 400k. + after some time (and opening MANY files) this will be too much... +ANS: i fear, this is really a mikro$oft bug! (probably not;-)) + + +loading MPEG-movies crashes under Win32 +-------------- +POSTED 4/05/04 +-------------- +BUG: loading MPEG-movies (*.MPG) crashes pd +ANS: MPEG is not really supported under the Win32-version of Gem + however Gem tries to decode MPEGs via QuickTime which might crash (see below) + +loading AVI-movies does not work under Win32 +-------------- +POSTED 4/05/04 +-------------- +BUG: loading some AVI-movies with certain codecs does not work under Win2k and bigger. +ANS: Gem is (still) using a rather old API for decoding videos. + it might well be, that not all installed codecs are supported (e.g. Indeo-5) + + +have to destroy / create window to change lighting state in buffer == 1 +-------------- +POSTED 11/07/98 +-------------- +BUG: If you want to change the lighting when GEM is running in single + buffer mode, you have to destroy and then create the window. +ANS: hopefully we will drop single-buffer mode soon (enabling double-buffer feedback instead) (2004) + + +WinNT pix_video object +-------------- +POSTED 6/25/98 +------------- +BUG: The WinNT pix_video object has a lot of problems. It is not + very stable, tends to lock up the machine, etc. +ANS: don't have much problems with it. + daniel's directshow-support enables support for most newer (ieee1394,usb) cameras under win, + although the interface is somewhat different than on other OS's + (eg: set dimensions via pop-up menu,...) + + +splines are incorrect +-------------- +POSTED 6/25/98 +-------------- +BUG: In preventing the crasher in the spline object, I have introduced + another bug. Mainly, the end points don't get computed correctly. + + +Polygon doesn't tesselate (ie, polygons sometimes look strange) +-------------- +POSTED 5/19/97 +-------------- +BUG: Because the polygon object doesn't tesselate itself, + if it is concave, the behavior is undefined under OpenGL. + + +glxContext memory leak +-------------- +POSTED 5/18/97 +-------------- +BUG: The dummy glxContext doesn't ever get destroyed. Use a static object + to create and destroy it when the DSO is loaded/unloaded. + + +Indycam broken +-------------- +POSTED 5/1/97 +-------------- +BUG: The Indycam object doesn't seem to work. While getting the O2cam + up, I seem to have broken the Indycam object. One known + bug is that the Indycam doesn't accept the dimen message. +ANS: i don't have a running SGI with an indycam at hand, so i + don't know how to fix it + +---------------------------- FIXED BUGS ----------------------------- + +some geos don't render data from pix_movie correctly +-------------- +POSTED 19/03/2004 +FIXED 20/03/2004 +-------------- +BUG: Some objects don't render images correctly +ANS: Gem tries to use rectangle-textures when available + GLU-objects cannot handle such textures +FIX: send a "mode 0" message to the [pix_texture] +FIX2:put the specific GLU-code into Gem and fixed the problem + + +some geos don't render data from pix_movie correctly +-------------- +POSTED 4/24/99 +FIXED 20/03/2004 +-------------- +BUG: Sphere and cone don't texture map movie data correctly because + they ignore the texture coordinates that pix_movie sets. +ANS: as long as we use the libGLU for these objects there is not much chance + to fix the core of this problem +FIX: put the specific GLU-code into Gem and fixed the problem + + +Cone and sphere ignore textCoords +-------------- +POSTED 4/12/99 +FIXED 20/03/2004 +-------------- +BUG: The glu library is used to create the cone and sphere, so gem + doesn't control the texture coordinates used. +FIX: put the specific GLU-code into Gem and fixed the problem + + +text2d is messed up +-------------- +FIXED 01/01/04 +POSTED 2/22/98 +-------------- +BUG: text2d doesn't really work at all. There seems to be a bug + in the GLTT library which is messing up the rasterpos. +FIX: use FTGL rather than GLTT + + +curve is broken under Linux +-------------- +FIXED 01/01/04 +POSTED 0/24/99 +-------------- +BUG: if curve is used under Linux, it core dumps when rendering. + It dumps on glMap1f(GL_MAP1_VERTEX_3, 0.0, 1.0, 3, m_numInputs, &(m_vert[0][0])); +ANS: seems to work now + + +model crashes when nothing is loaded +--------------- +FIXED 01/01/04 +POSTED 10/25/02 +--------------- +BUG: if rendering is started without a model being loaded before, pd crashes +ANS: seems to be fixed sime time ago... + + +pix_imageInPlace crashes when nothing is loaded +--------------- +FIXED 01/01/04 +POSTED 10/25/02 +--------------- +BUG: when trying to download non-existant images (by specifying the wrong + preload-name), pd-crashes +ANS: seems to be fixed now... + + +Can't process pix_movie data with pix objects +-------------- +FIXED 4/15/02 +POSTED 4/24/99 +-------------- +BUG: pix_movie sends the data immediately to OpenGL, + so there is no chance to process the data. +ANS: it does what it does; [pix_film] does not send the image-data immediately, so use it instead + + +pix_2grey doesn't process the correct number of pixels +-------------- +FIXED 2/19/00 +POSTED 2/18/00 +-------------- +BUG: The pixel count is calculated with addition instead of multiplying. +ANS: Just changed how the calculation occurs. + + +tablet not reset on exit +-------------- +FIXED 1/24/99 +POSTED 8/29/98 +-------------- +BUG: If the user has a tablet, it is not reset to the default settings + on exit, making it unusable as a mouse. +ANS: Just needed to do some more cleanup on exit. Should be okay now. + + +text object can't be found +-------------- +FIXED 2/21/98 +POSTED 5/1/97 +-------------- +BUG: Because the text is a special keyword and object inside of + pd, the text object cannot be found as a GEM object. The solution + is to rename it to something else. +ANS: I am using a cool library called gltt which will render true type + fonts in OpenGL. + + +Memory exception on WinNT +-------------- +FIXED 12/15/97 +POSTED 11/30/97 +-------------- +BUG: If you use pix_image, then there is a memory exception (ie, crash) when + you exit Pd. It doesn't happen while actually running Pd/GEM. +ANS: Mysterious...it went away. + + +Polygon and curve under NT +-------------- +FIXED 10/21/97 +POSTED 10/21/97 +-------------- +BUG: The vertex calls are receiving 0, 0, 0 for x, y, z +ANS: Extra type * parameter in the vert_* calls + + +Single buffering under NT +-------------- +FIXED 10/21/97 +POSTED 10/19/97 +-------------- +BUG: Single buffering doesn't work under NT. +ANS: Need an explicit glFlush(). gemHead calls glFlush after a bang message. + + +Geos texture coordinates +-------------- +FIXED 10/17/97 +POSTED 6/16/97 +-------------- +BUG: The vertex and texture coordinates should start so that the first + S,T is 0,0 +ANS: Just did it. + + +pix_composite is backwards +-------------- +FIXED 7/12/97 +POSTED 6/16/97 +-------------- +BUG: The pix_composite object should have its inlets swapped. Conceptually + it doesn't make sense the way it works currently. +FIX: Just did it. + + +pix_convolve is broken +-------------- +FIXED 7/13/97 +POSTED 6/16/97 +-------------- +BUG: Sometimes pix_convolve doesn't work - seems to do with the scale factor +ANS: I'm not sure why it wasn't working. I have hammered it with a variey + of kernels and scales and never had a problem... +ANS2: I found a bug where pix_image didn't automatically refresh its image + at the start of rendering + + +pix_alpha is backwards +-------------- +FIXED 7/12/92 +POSTED 6/16/97 +-------------- +BUG: Sometimes it works, sometimes it doesn't +ANS: Swapped around the inlet creations + + +polygon's first inlet doesn't work +-------------- +FIXED 5/18/97 +POSTED 5/17/97 +-------------- +BUG: The first vertex of polygon doesn't work. It is always set to the + origin. Also, polygon defaults to line drawing. Check Curve for + the same problems (it is derived from polygon). +ANS: The first inlet no longer takes the first vertex. I added another + inlet. + + +fonts do not load +-------------- +FIXED 4/02/02 +POSTED 4/01/02 +-------------- +BUG: the example fonts for text2d/text3d do not load +FIX: accidentally i did a dos2unix to the *.ttf files. this damaged them. + Get new ones from ftp://iem.at/pd/Externals/GEM/misc diff --git a/Gem/doc/gem.release_notes.txt b/Gem/doc/gem.release_notes.txt new file mode 100644 index 0000000..c3e5077 --- /dev/null +++ b/Gem/doc/gem.release_notes.txt @@ -0,0 +1,1018 @@ +GEM ONLINE DOCUMENTATION CHAPTER 5: RELEASE NOTES + +--------------------------------------------------------------- +---------------------------- 0.91 ----------------------------- +this is the first release for 3 years, codename 'tigital' +it includes many changes, so probably i have forgotten most... + +openGL runtime checks: GEM now uses GLEW to detect openGL-features + at runtime this allows you to use all the cool features of + your brand-new graphics card with the same binary as you + used for your old gfx-card...cool + +w32-installer: there is now a w32 installer (based on NSIS) to + ease the installation of GEM on windows. + +single vs dual context: GEM uses a dual context approach to establish + a valid openGL-context at startup; + you can now turn this OFF by setting the environmental + variable "GEM_SINGLE_CONTEXT=1" + this should allow you to work if GEM crashes otherwise + +SIMD: better MMX/SSE2 handling + +pixes: fiducial tracking, artoolkit, + multitexture, texture sharing + recording streams of images into movies, + better movie reading support, better video in support, + more sophisticated pix_buffer handling + shared memory objects + +text: allow unicode characters + use vera.ttf as default font instead of the + copyrighted arial.ttf + allow to override the default font with the environment + variable "GEM_DEFAULT_FONT" + + +bugfixes: like always we have removed (and introduced) numerous + bugs, so all in all GEM should now run more stable + for an incomplete list of fixed bug see the bug-tracker + at http://sourceforge.net/projects/pd-gem + +openGL: generally use openGL-2.0 (if available) + vertex/fragment shaders (GLSL and ARB/NV) + framebuffers + + +deletion: + MarkEX has been removed from GEM and is now available as + a separate library; + hardware-interfacing objects like [gemorb] and [gemtablet] + have been removed + + + + +---------------------------- 0.90 ----------------------------- +this is the same as 0.888 +just a naming issue + +--------------------------------------------------------------- +---------------------------- 0.888 ---------------------------- + +this has taken a long time (2 years...) + +development is now done by several people: + chris clepper + günter geiger + daniel heckenberg + james tittle + IOhannes m zmölnig +günter has removed himself from the splash-screen, but he still contributes stuff + +supported platforms: windows (XP,2000,...), linux, and (tadah:) macOS-X(>10.2) +irix-support seems to be broken, but i cannot prove it + +architecture: up till now, the rendering-tree was statically built when rendering was + turned on, so you couldn't add objects dynamically and editing was painful. + now, Gem utilizes the normal pd-messaging system all the time: you can disable + parts of the rendering tree with [spigot], render sub-trees multiple times with + [t a a] and put objects into the gem-tree on the fly. + +documentation: added help for (almost ?) all Gem-objects (excluding openGL-wrappers) + new reference-patches are now working out of the box (not the old "abstract" way) + added a small pdf-tutorial + + +openGL: GEM features now a full openGL-wrapper (supporting openGL-1.2) + you can use any openGL-command like "glNormal3f" by creating a pd-object like + [GEMglNormal3f] (note the "GEM"-prefix); this should be very powerful, + however most of the objects are not (yet) tested. + if you intend to use them and think they don't work, + send me a bug report for the objects you need; + i will try to fix them gradually. + there will be not much help in GEM, since you might consult any openGL-reference + +text: we now use FTGL instead of GLTT (which is still available at compile time) + for freetype-rendering. this is supported on all 3 platforms, + looks better (at all sizes!) and allows the new [textextruded] + +geos: tube, curve3d, rubber, ripple, slideSquares, newWave + +manips: polygon_smooth for anti-aliasing of single objects + [camera] + +controls: the output of [gemmouse] can now be normalized (by giving the maxVal for x/y as + arguments: [gemmouse 1 1] will output coordinates between 0..1, no matter what + dimensions the screen has. + +particles: now the underlying libparticle-engine can be used more directly. + velocity-domains (like [part_velcone]) are deprecated and [part_velocity] + should be used instead (allowing on-the-fly domain-switching) + there are objects that allow to influence single particles + (like [part_vertex]) + most interesting: with [part_render] and [part_info] you can now use any + geo as particles (e.g: .obj-models) not only points/lines as before. + +texturing: [pix_texture] and [pix_texture2] has merged. so [pix_texture] will texture + textures of any size (even non-power-of-2) and it will use hw-support if available + (at least on macOS and on linux if the gfx-card supports it + (at least nvidia does so)) + +pixes: lots of new objects (too much to enumerate them here) + we now support 3 different colorspaces: RGBA, YUV, Greyscale + YUV is new and allows processing of coloured-images with far less memory/CPU + than RGBA (factor 2) but without alpha. + lots of pix-processing on apple-computers is ALTIVEC-enhanced (faster by numbers!) + SIMD-enhancements for PCs (MMX/SSE2) is yet to come... + as the new colorspace has been pushed, also a lot of objects has received + greyscale-support + the TV-class has been deprecated and is now part of pix_* again + lot's of color-space converters (most of them not available as objects) + the "pix_fx"-stuff is now built into all pix-objects + +video: on mac-OS the [pix_video] object supports all cameras that are supported by the OS + on windows there is now support for DirectShow, + which makes new (usb/ieee1394) cameras work most probably + on linux there is some prelaminary(!) support for ieee1394 devices. + the v4l-support is now multi-threaded which speeds up the whole thing significantly + +film-formats: + windows: AVI; there is also some QUICKTIME-support + (needs the quicktime-sdk at compile time and quicktime installed on execution time), + but this crashes sometimes (haven't found out when). + it should enable "a lot" of file-formats (MPEG, MOV) + macOS: quicktime serves your needs + linux: support for libavifile, libmpeg3 (or libmpeg1 but libmpeg3 is preferred), + libquicktime (or libquicktime4linux; doesn't matter) and ffmpeg. + +codecs: macOS: everything that is supported by your system should work fine + win: all codecs installed on your machine should work + (if another program can play a avi-file, Gem should be able to do so too) + linux: depends on how you compiled Gem. libmpegX will decode mpegs, + libquicktime will (most likely) decode quicktime-files with non-proprietary codecs, + libavifile decodes a lot of formats (avi, quicktime, divx, asf,...) + and you can utilize windows-codecs (.dll-files; if you have them ;-)) + which enables you to play-back proprietary codecs! + +bug-fixes: probably lots of, but most of them seem to linger around for a while now. + + + +--------------------------------------------------------------- +---------------------------- 0.87 ----------------------------- +Added much documentation + +Added [gemkeyboard] and [gemkeyname] for keyboard-interaction in the GEM-window. However, Windows and Linux versions do not give the same results... + +Added Red/Green stereo +Cleaned up the stereo-thing. we can switch between the different stereo-modes (including no-stereo) while rendering + +You can set the title of the GEM-window with the "title"-message. Up till now only one symbol is allowed. +Added "fullscreen" mode +Fixed "border" under linux +"cursor" is now available on Windoze + +readded "externals" with additional libraries to close up with the windows version:: +Added pix_movie for Linux (mpeg2+quicktime-support) +Added pix_film, which is in fact like pix_movie but does not write the pix-buf directly into a texture +Fixed the model +Added the stupid "teapot" +Added a pix_write that let's you capture the current screen into a file (TIFF/JPEG) +Added pix_hsv2rgb, pix_rgb2hsv (colour-space converters) +Added pix_blob (center of gravity:: colour detection) +Added pix_curves, pix_histo +Added pix_set, pix_dump +Added pix_pix2sig~, pix_sig2pix~ + +Started a new class "tv" for pix-operations that change over time: like tv_movement (formerly: pix_movement), tv_biquad, tv_rtx; but i am not really happy with this... + +Started a new pix_fx class for inserting pix-FX. there is not much about it, but you can now bend the image.data pointer to wherever you like (including size-changes, format-changes) it will be bent back in the postrender()-thing + +Started to import classes from effecTV (by Fukuchi Kentarou): pix_aging, pix_puzzle; most of his FX are real crap, but some are ok and it's easy to import them +Made a pix_rgba + + +--------------------------------------------------------------- +---------------------------0.84-5 ----------------------------- +Bugfixes for gemwin "cursor" message (cursor [1|0]) +Removed "externals" with additional libraries, they are separated now +Added a "freq" and "mode" message to Linux video object, you can watch + TV now ... +It is possible to add the display to the create command for X windows, + whole initialization stuff is moved into the create method, + so you can look at the patches without having succesfully generated + an OpenGl context. +Made the pix_video and pix_movie into real base classes of OS specific + classes. The OS spezific classes for Windows and SGI have to be fixed .. + + +--------------------------------------------------------------- +--------------------------0.84a ----------------------------- +text2d: added a message "alias", which toggles between antialiases + and standard fonts. Usage "alias 1" or "alias 0" + +gemwin: additional message cursor, which hides the cursor in + GEM windows + + + + +--------------------------------------------------------------- +---------------------------- 0.84 ----------------------------- +Fixed a bug where delete [] was called instead of delete. This +could explain a lot of random crashes. + +Fixed camera message routing. + +--------------------------------------------------------------- +---------------------------- 0.84 ----------------------------- +I long time ago, I changed the behavior for gemhead, so that +matrices where automatically restored, etc. However, this +broke the camera object. Use the view message to gemwin +instead. + +Fixed a bug in GemMan. If you didn't use "border 0" and you +requested a window size with "dimen # #", then the window +size was likely to be wrong. This is now fixed. + +Fixed a bug in the view message to gemwin. There was an offset +which should not have occured. You might need to change your +view messages to account for it. Just subtract 4 from any +Z values. + +There are some examples for pix_snap in + examples/gemAdvanced/gemPixSnap.pd - Single buffered example + examples/gemAdvanced/gemPixSnap2.pd - Double buffered example +Keep in mind that pix_snap is a fairly slow operation...I also fixed +a nasty memory bug which could easily cause crashes. + +I added Miller Puckette's pix_video for linux into the +code base. + +If you load a movie in pix_movie with an open message, the +object will output the number of frames to the right output. This +will not work if you have a "pix_movie homer.avi" for your object +since the output message cannot get processed correctly at +startup. + +The disk object has an inlet on the rightmost side for the +inner radius...turning the disk into a ring. If the inner +radius value is just 0., then the disk is just a circle. + +Fog can be turned on in gemwin. Look at + examples/gemAdvanced/gemFog.pd +for examples. The various control messages are documented +in the gemwin.pd help patch. + +These next objects are thanks to hannes - mailto:zmoelnig@iem.mhsg.ac.at +--------------------------- +Added OpenGL material objects - + ambient, ambientRGB, diffuse, diffuseRGB, emission, + emissionRGB, shininess, specular, specularRGB + They provide much greater control over the color of objects. +Look at + examples/gemLighting/gem5.materials.pd +for examples. + +Guenter found a bug in the ortho object. It is now fixed. The +ortho object has the same general unit size as the normal +perspective matrix. Look at + examples/gemAdvanced/gemOrtho.pd +for how to use the object. + +--------------------------------------------------------------- +---------------------------- 0.83 ----------------------------- +Added another outlet to counter. When the counter reaches +the "count to" value, the right outlet will send a bang. The +bang happens after the left inlet sends its float. + +Fixed a dumb bug in pix_2grey. It didn't calculate the +number of pixels correctly. + +Adding some comments to the FAQ that pix_draw is almost +always slower than pix_texture on PCs. Basically, graphics +accelerators do not accelerate glDrawPixels(). + +Added rectangle and cylinder. + +Cleaned up the text objects (text3d, etc). Should display +text a bit better and manage memory more intelligently. + +These next objects are thanks to hannes - mailto:zmoelnig@iem.mhsg.ac.at +--------------------------- +Added pix_rectangle - creates a rectangle in a pix +Added pix_a_2grey - only changes the pixel to grey based +on the alpha component. See the help page and the example +in manual/gem_pix/gemAlphaGrey.pd + +--------------------------------------------------------------- +---------------------------- 0.82 ----------------------------- +Free-view sterescopic rendering is possible. If you send +'createStereo' message to the gemwin instead of a 'create' +message, then your rendering area will be split in two. Send a +'stereoSep float' message to set the stereo seperation. Send +a 'stereoFoc float' message to set the focal distance. See the +example patch gem_advanced/gemStereo.pd patch for an example. + +'color' message was registered twice in gemwin. The second should +have been a 'perspec' message, for perspective. This also fixes +the error which pd-0.29 gives about GEM now. + +primTri is a new object. It is a triangle primtive. Unlike the +normal triangle object, it has 6 inlets. The first three inlets +are for setting the vertex positions. The last three inlets +are for setting the color at each vertex. The color can +be either RGB or RGBA values. Look at gem_advanced/gemPrimTri.pd +for an example. + +The particle objects are now frame rate independent. If you needed +them to run at a certain speed, you can send a multiplier into +part_head with the message 'speed float'. Run the fountain +at 60fps to see how smooth it is. The particles still default +to 20fps, which is GEM's default. You can slow down the particle +systems or speed them up by sending a different speed value +into the part_head. + +Thanks to Guenter for making the sgi image loader 64-bit compliant. + +Received new Gnu makefiles for Linux from Guenter. + +new particle objects - These all have help files. See +gem_particles/gem6.target.pd for how the target objects work. + part_damp - apply a damping force to the particles + part_targetcolor - Change color of the particles toward + the specified color. + part_targetsize - Change size of the particles toward + the specified size. + +Added some help files, mainly for the particle objects. + +Updated the FAQ. + +--------------------------------------------------------------- +---------------------------- 0.81 ----------------------------- +On WinNT, you can remove the window border. Send a 'border 0' message +to gemwin to remove it, or a 'border 1' to put it back. The default +includes the border. + +Fixed some bugs when in single buffer mode and in the pix_snap +object. + +A bunch more help documentation is done. This includes reference pages +and the html manual pages. + +The inlets for alternate and counter were backwards. + +Integrated unix event handling into the code base. + +Fixed other random bugs. + +--------------------------------------------------------------- +---------------------------- 0.80 ----------------------------- +A real manual has been started! This means that the doc directory +will not be as important. The release notes will still be here and +few of the other doc files, but hopefully most people will just be +able to use the on-line manual. Look at gem/manual/index.html +to get started. + +pix_movie has been added. It automatically does the texture mapping +so you don't need to use pix_texture. This also means that you can't +process the pix image. This will change in the future, but I wanted +to get the object out and have people hammer on it. Also, only +certain objects can texture the movie data correctly. They are square, +triangle, circle, and cube. Cone and sphere will have a black region +if the movie isn't a power of two (most movies are 320x160 or something). +This will be fixed in the future. See gem_pix/gemMovie.pd for an example + +hsv2rgb and rgb2hsv have been added. + +There is no ambient lighting in the default case. If you want +to have ambient lighting, send a message "ambient r g b" to gemwin. + +On WinNT, if you hit Ctrl + r in the GEM window, then rendering +will stop. This does not go through the normal Pd interface, so it can +be used if you accidentally create a patch which takes so much processing +that you cannot turn it off because the patch UI is unresponsive. + +Fixed a really bad bug in the text rendering objects. + +Various other random bugs. + +--------------------------------------------------------------- +---------------------------- 0.79 ----------------------------- +The example patches have been organized a little bit. There is +now a collection of directories which are installed with GEM. +Eventually, they will be fleshed out a lot more (I hope), but for +the time being, at least there is some order to them. + +The model and multimodel objects accept a "rescale 0" or "rescale 1" +message. In previous versions, the model objects would resize your +model to fit within the unit cube (all vertices where within -1 to 1). +This made it dificult to coordinate diferent model files together, +because they would all be resized by diferent factors. Now, if you +send a "rescale 0" message into model or multimodel, it will not +do resizing for any _SUBSEQUENT_ loading. In other words, if you +have already loaded in a model, and you send a "rescale 0", the +currently loaded model (or models) will not change. Look at the +example patch gem_advanced/gemModelRescale.pd for how this works. +The left model chain is much larger and a scaleXYZ object with a +value of .1 is needed to even get the model into the viewport. +The model and multimodel objects default to "rescale 1" so that it +doesn't break any existing patches. + +The middle and right buttons work in gemtablet now. The outlets +are all pretty close together now, so until you can resize objects, +it will be difficult to select the correct outlet. Look in +examples/gemTablet.pd for all of the outlets. + +I have upgraded to Visual C++ 6.0. I doubt that the GEM library +is backwards compatible for people who are writing their own +libraries. Sorry, but the IDE is a little less painful in 6.0. + +I removed the position inlet from the light object. If you want +to move/rotate a world_light/light, then just put a translate +or rotate object into the chain. It was broken before, but now +there is no reason for the position inlet. + +light and world_light accept a "debug" message with a value of +1 or 0. Look at the gemLightSphere.pd patch for an example. +It was too hard to figure out where the light is, and this turns on +a sphere for the light object (since it is a point light), and +a cone for the world_light object (since it is a directional +light). The world_light is NOT a spot light, even though +its icon is a cone. The icons are the color of the light. + +MarkEx has been merged into GEM. I was tired of maintaining +two libraries. Also, people didn't seem to be downloading +MarkEx, and there are a lot of good objects in there, IMHO. + +The camera object is finally useable. It has an inlet for the +translation and rotation vectors. Anyone who was using it +before is now broken, but the change was very necessary. + +gemwin can accept a perspective message. This will set up the +viewing paramaters for the window. You need to pass in 6 floats +with the "perspective" message, for the left, right, bottom, +top, front, and back. The defaults are -1., 1., -1., 1., 1., 20. +If you send a reset message to gemwin, it will reset the perspective +values as well. + +The big change in this release is a particle system. It is based +on code from David McAllister. There are many new object, all +of which interact in certain ways. One design issue is that +there are far too many controls and variables to be able to +expose directly in GEM. People who want to get complete control +over all aspects of the particle system are going to need to +write their own externals. However, most people should be fine with +the particle objects. The new objects are: + +CREATION +-------- +part_head - The start of a particle group +part_color - Set the range of colors for the new particles +part_size - Set the size of new particles +part_velsphere - Set the velocity based on a sphere distribution + You need 4 args - xvel, yvel, zvel, and radius +part_velcone - Set the velocity based on a cone distribution + +part_source - Generate particles + +MANIP +----- +part_follow - Particles will follow each other like a snake +part_gravity - Have the particles accelerate in a direction +part_killold - Remove particles past a certain age +part_killslow - Remove particles below a certain speed +part_orbitpoint - Orbit the particles around a specified point + +part_draw - Apply the actions and render the particles. Accepts a + message "draw line" or "draw point" to change the drawing style. + +Look in the example files to get some idea how to use the particle +objects. Notice that you still need a gemhead starting off the +chain, but after that, you just use the part_* objects. Regular +GEM manips like rotate, translateXYZ, and scale will affect the +particles. In general, you start with part_head, then modify +the particle parameters with the creation objects like part_color +and part_velocity. Then use part_source to actual generate the +particles. Next in the chain, use the manip objects to control +the particles behavior. When you actually want to display the +particles, use part_draw. Make sure that you remove particles as +well. The best method is probably with part_killold. If you +don't remove particles, then you will eventually not be able to +add any new ones (the default number of particles at once is +1000, set by part_head). You can also slow down the rate of the +particle generation with the part_source object. + +--------------------------------------------------------------- +---------------------------- 0.78 ----------------------------- +If you don't want GEM to take control of the tablet if it finds +one, set the environment variable GEM_NO_TABLET to the +value "1" (no quotes of course). There will be a print out if +GEM finds the environment variable. + +I added a few more setup access function so that people who +use "-lib gem" or "-lib GEM" will work correctly. + +Lighting will now work under single buffer mode, but you have +to destroy then create the graphics window to change the mode. This +will not work with the GEM_SINGLE_CONTEXT variable. + +pix_data is a new object. It outputs color information from a pix. + The first inlet accepts a bang to trigger it. + The second inlet accepts a gem list (probably from pix_image) + The third inlet is the x position (between 0 and 1) + The fourth inlet is the y position (between 0 and 1) + The first outlet is the gem list + The second outlet is the color (an RGB list) + The third outlet is the gray scale value (a float) + See the example patches gemPixDataSimple.pd and gemPixDataComplex.pd +for possible use. + +Fixed a pretty bad bug in the SGI image loading. Basically, unless +the image was RGBA, it was going to core dump. Also, the orientation +was wrong. + +--------------------------------------------------------------- +---------------------------- 0.77 ----------------------------- +GEM is now under the Gnu Public License. This should not affect +any one. I also cleaned up the license information for the AuxLibs. +All of the license and usage information can be found in +GEM.LICENSE.TERMS + +GEM has a new home - http://www.danks.org/mark/GEM + +gemorb - a new object to interface with the SpaceTec SpaceOrb360. +It is a 6DoF ball with 6 buttons that connects to your serial port. +It is a very cool device, and is relatively cheap ($50 US). If gemorb +is able to connect, it will print out a message, or an error if there +is a problem. John Stone wrote the library. + +There is a particle system with a number of new objects. The system +uses a library by David McAllister. +ps I haven't had time to bring all of the objects online. particle +is the only object right now. It just creates a fountain. + +accumrotate was added - three inlets to control the rotation. Each +time a new value is sent in, it increases the rotation. Sending +'reset' to the leftmost inlet sets the rotation matrix to +identity (ie, it resets it to no rotation). + +rotateXYZ was added - three inlets to control the rotation. Order +is X rotation, then Y, then Z. + +The tablet cleanup is a little better now on WinNT. There are still +some bugs, like it doesn't return to normal mouse usage after GEM exits. +However, the DLL is being released correctly...I just need to reset +to the default state somehow. + +Cone and sphere have changed behavior as of 0.77. The middle inlet +is now the size and the right inlet is the number of slices. + +depth used to be sending '1' would turn on depth testing, but this +was conceptually wrong. It should be 1 to turn on the depth +object (which would disable depth testing). This is now the +current behavior. + +ortho was added. It changes the viewing from perspective to +orthogonal. The size is the size of the window with (0, 0) +being the lower left corner. I made this object for creating +a background the size of the window, but you can probably +find other uses for it. + +There is a matrix class for those who are writing objects. +It is in src/Base/Matrix. + +--------------------------------------------------------------- +---------------------------- 0.76 ----------------------------- +Fixed a bug in spline-path. I wasn't doing the knot logic +correctly. Thanks to Patrick Rost for finding this. + +A bunch of internal changes to get GEM working with Pd 0.22 +All instances of A_INT went away and the inlets and outlets are +created in the correct "logical" order now. + +--------------------------------------------------------------- +---------------------------- 0.75 ----------------------------- +You can resize the window under WinNT and the viewport will change +to reflect the new size. + +Also, the correct aspect ratio is maintained no matter what the +width/height ratio is for the GEM window. The ratio is +x:y -> (width/height):1. This is currently only under WinNT. + +gemmouse and gemtablet are new objects. They currently only +work in WinNT. You should be able to create the object in +the Irix/Linux versions, but you won't get any output. See +gemmouse.pd and gemtablet.pd for examples. +gemmouse outputs the current mouse position and button up/down +for the GEM window. +gemtablet outputs the current pen position, pressure, orientation, +and pen up/down, with the GEM window mapped to the tablet. If +GEM can connect to your tablet, a message will be printed at startup. +If you don't see a message at startup from GEM about connecting to +the tablet, then gemtablet will not output any values. You must +have the wintab32.dll library installed. Your tablet's installation +should do this. + +Added a bunch of utility functions (spline, bias functions, etc). + +linear_path and spline_path are new objects. If you give them +an array, then they will generate a point from an index. linear_path +will linearly interpolate between points. spline_path uses the +points as knots for a curve. See gemSplinePath.pd and +gemLinearPath.pd for examples. + +Added __declspec declarations for Windows. This should +make it easy for people to use GEM as a dll. + +--------------------------------------------------------------- +---------------------------- 0.74 ----------------------------- +I replaced the images in the example directory with JPGs. They +are alot smaller. However, in gemMoveImages.pd, you can see +the effect that the compression has. Look at the red dancer. All +of the "black" should be alpha masked out, yet there are little +bits which get all jaggy. + +Got gltt-1.8 Looks like it fixes a bunch of bugs. + +Finally put an alpha test into the alpha object. This means that +if the alpha of a pixel == 0., then it won't be put written into +the frame buffer. Look at the example file gemMoveImages.pd for +an example of this. Notice that the dancer is texture mapped to +a sphere, yet you can always see her correctly. You can disable +this behavior by sending a 'test 0' to the alpha object. + +Oh boy, were my texture coordinates off. Unknown to me, my reference +image (dancer.tif) was actually upside down. This meant that all +of the texture coordinates in the Geos objects were compensating +for the rotation. Sorry if this messes anyone up, but it is now +correct for all of the geos. + +I also now load in images in OpenGL format. This means that +data[0][0] == lower-left corner. This shouldn't have any effect +on anyone unless you are doing position sensitive image processing. + +Fixed the orientation problem when using pix_draw. + +imageVert handles gray8 pixes + +Fixed a problem if pix_multiimage loaded in images that were different +formats or sizes. + +GEM supports search paths! Basically, GEM will look for auxiliary +files (images, models, fonts, etc.) from whatever directory the +patch is in (unless you use an absolute path name with '/'). + +--------------------------------------------------------------- +---------------------------- 0.73 ----------------------------- +Fixed profiling on Unix + +Added text2d, text3d, textoutline. The text objects will render +a truetype font (I have provided a couple fonts in gem/examples). +text2d renders a flat bitmap...no rotation or Z movement. text3d is +full polygonal text, so you can translate and rotate. textoutline +is also polygonal, it is just a vectored outline. + PS text2d has some problems... + +JPEG and SGI image file formats are supported! Depending on the number +of color components, GEM will automatically convert them to grayscale +or RGBA (just like TIFF files). + +pix_video is working slightly on WinNT. There are still some +serious problems, so consider this version a complete pre-alpha. I'm +releasing a version now to find out if it even works on other systems. +I am using a Connectix QuickCam2. + +Shifted all of the auxilary libraries into a common directory. Considering +that I'm currently using 6 outside packages, it is just easier. + +--------------------------------------------------------------- +---------------------------- 0.72 ----------------------------- + +Did a bunch of cleaning so that the Linux compile is happier (and easier). +This involved getting rid of some warning messages and changing +the makefiles slightly. + +The strange core dump on WinNT went away... + +All of the code and extra files are under source code control (CVS). +You can just ignore the CVS directories. Eventually, I will try to keep +them out of the release build. + +Added profiling. If you send 'profile 1' to gemwin, then normal profiling +is turned on (GEM displays the number of milliseconds per frame). If you +send 'profile 2', then images will not be cached (ie, the pixes will always +be processed). If you send 'profile 0', then profiling is turned off. + +pix_multiply multiplies the color components of two images together. +It doesn't modify the alpha channel. + +Optimized pix code. + +Because Miller is removing the INT type, I have slowly been moving it +out of the code. If any objects have stopped working, please let me know. +I redid the construction macros in CPPExtern to reflect this change. +If you have made any new GEM objects, you will probably need to +change to the new macro format. + +Most of the dual input pix objects will process gray8 and RGBA data +gracefully. + +--------------------------------------------------------------- +---------------------------- 0.71 ----------------------------- + +Guenter got GEM working under Linux! The biggest impact is that I +have changed all of the #ifdef __sgi to #ifdef _UNIX_ If specific versions +of Un*x need certain things, then they can be #ifdef'ed with __sgi, +or LINUX, or whatever. + +Fixed a bug in polygon and curve. I'm not sure why it ever worked on +the SGI... + +All pix objects accept a 0 or 1 to turn on and off their processing. +The 0 or 1 should just be sent to the first inlet. + +The inlets were backwards for colorRGB. + +Fixed a bug in turning on and off texture mapping in pix_texture. + +GemMan::initGem is now called from Gem_setup. There seems to be a problem +with Linux creating the dummy static class to initialize GEM. + +Changes pix_texture so that it deal with OpenGL 1.1, GL_EXT_texture_obj, +and base OpenGL 1.0 I think that every OS has the texture_obj +extension, but just in case, I also have the OpenGL 1.0 technique of display +lists. + +Removed some spurious print outs. + +I looked into using GL_BGRA_EXT for images on Windows. It is faster +in the software version, but my Intergraph card doesn't support it. +It only makes a difference for OpenGL in software...and texture +download time isn't the primary problem then. With a 512x512 image +using glDrawPixels in software, I got 6 frames/sec with RGBA and 7 +frames/sec with BGRA_EXT. Older SGIs like ABGR_EXT, but the newer machines +want RGBA. Looks like I'm going to stick with RGBA for a while. + +You can now load in Gray8 and RGBA images and they will retain their +format. Before, everything was slammed into an RGBA image, with A == 255. +This means that you can have alpha masks on images, etc. The only pix +object which can currently handle a gray8 is pix_mask. All of the other +pixes throw errors if they get a gray8. This will slowly be fixed. + +Added some new functions to GemPixUtil (from a paper by Alvy Ray Smith). +They should speed things up. Currently, only pix_composite is using them. + +The color channels of pixels should be gotten by the const ints that +are in GemPixUtil (for instance, chRed, chGreen, etc). Using hard coded +offsets like 0 or 2 for red and blue is asking for trouble. + +gemheads no longer push and pop the entire matrix state when renderGL is +called. This should be faster (push/pop is slow on some platforms). Also, +all objects are required to "reset" the OpenGL state when they are done, +so it shouldn't be neccessary. + +Strangeness: There is an unreferenced memory exception on WinNT when you +quit Pd. However, it only happens if you use pix_image. It doesn't +happen while you are using Pd, only when you quit... + +--------------------------------------------------------------- +---------------------------- 0.70 ----------------------------- + +All geos can now accept a size argument (they default to 1.0) + +I cleaned up the texture coordinate mapping. The order was slightly +random before. The order is more logical now; it is counterclockwise +starting at 0, 0. If you use pix_coordinate any where, you will need +to fix the values. + +Fixed a bug in translateXYZ. The inlets where backwards. + +You can now move the GEM window under NT. NT doesn't automatically +take care of the basic window functions unless you pass the messages +through (unlike X Windows). + +Texture mapping can be turned on and off by sending a 0 or 1 to pix_texture + +Texture mapping defaults to GL_LINEAR. Send a quality message to pix_texture +to change this. A "quality 0" means GL_NEAREST, "quality 1" means GL_LINEAR. + +--------------------------------------------------------------- +---------------------------- 0.69 ----------------------------- + +Fixed a bunch of bugs in imageVert. + +Cleaned up some lingering problems in various objects (the open message to +pix_multiimage didn't work as advertised for instance). + +Setting window color is now dynamic. + +multimodel now exists. Works just like pix_multiimage, only it reads in +Alias/Wavefront files. It also has a caching mechanism. + +--------------------------------------------------------------- +---------------------------- 0.68 ----------------------------- + +fixed pix_2grey so it uses real color weights, instead of just averaging +the three colors. + +pix_image now works the same way as pix_multiimage. If you load in an +image which another pix_image has already loaded, they will share the +image. This means that if you create a bunch of dummy pix_image +objects, you can send an open message to pix_images which have a gemhead +connected to them and get instantaneous image changes. + +Found a MAJOR bug in the NT version of pix_texture. Basically, if you +used it, the program would core dump. + +Found another bug in square. It involved texture mapping and texture +coordinates (mainly when you don't designate them). + +Changed the default values for scaleXYZ (to 1, 1, 1) and translateXYZ +(to 0, 0, 0) + +--------------------------------------------------------------- +---------------------------- 0.67 ----------------------------- + +Forgot to add the arguments for the scale object. This has been fixed. + +Added translateXYZ, scaleXYZ, and colorRGB. These create three inlets +which you can modify, instead of having to mess with vector messages. + +Fixed a bug in pix_image and pix_multiimage (or more, an unacceptable +response to user error). Basically, if you started rendering without +an image being loaded (or if an image failed to load, then you were +_VERY_ likely to core dump. A check has been added, so this shouldn't +be a problem anymore. + +pix_multiimage HAS CHANGED! It accepts up to four arguments: + +filename, number : will load the image files from 0 up to AND INCLUDING +the number + +filename, lownum, highnum : will load the image files from the lownum up +to AND INCLUDING the highnum + +filename, lownum, highnum, skiprate : will load the image files from +the low num up to AND INCLUDING the highnum, but incrementing the counter +by the skiprate, not by one. + +No matter how many images are loaded, you can change which image is +displayed by sending a number. The number must be between 0 and the +number of images which were loaded (notice that this number may not be +the highnum!) If you try to display an image out of range, you will +get an error. + +pix_multiimage now uses a shared cache. Basically, if you give two +pix_multiimage objects the EXACT same values (filename, base number, +top number and skip number), then they will use the same collection of +images. This will save massive amounts of memory if there is any +commonality between pix_multiimages. + +pix_flip - see help file + +--------------------------------------------------------------- +---------------------------- 0.66 ----------------------------- + +Finished the port to NT (mainly had to get images working). + +Made pix_colormatrix - This is really good for things like saturation, +hue rotate, etc. I will eventually include a bunch of matrices to do +cool stuff. Check out Paul Haeberli's paper on color matrices at +http://www.sgi.com/grafica/index.html + +I removed pix_color. It was a hold over from earlier days and I +don't think that anyone (including myself) is using it any more. + +I got a title bar onto the graphics window, but you still can't move it +around. I am not certain why this is the case, but I'll keep looking. + +I made general speed ups to most of the pix objects. Mainly, I have +been removing GetPixel() and SetPixel() functions (they have a lot +of overhead). I will continue to use Get/SetPixel() while I'm developing +because they make things easy to deal with, but as objects get finished, +I will remove them. + +Some of the manipulators (color, rotate, and translate) accept arguments. +For instance, if you do color 1 0 0, it will automatically set the +color to red. The objects try to be intelligent about their arguments. +For instance, if color receives three args, it sets RGB, but if it +gets 4, it sets RGBA. If rotate or translate get 3 args, then they just +set the vector, but if they get 4, then they set both the vector and +the value. + +--------------------------------------------------------------- +---------------------------- 0.65 ----------------------------- + +GEM works under NT! I got the port working last night. I had to make some +major changes to the underlying classes (specifically CPPExtern) because +MS VisC++ puts the vtable pointer in the first four bytes...no matter what. +This is a different behavior than SGI's compiler (and I think that it requires +more work for MS VisC++'s compiler). While it was a pain to change things, it +is good in the long run. The C++ standard doesn't say where the vtable is +located, so this would have bitten me at some point. + +--------------------------------------------------------------- +---------------------------- 0.64 ----------------------------- + +Because MS VisC++ really wants files to end in .cpp (how stupid...), +I renamed all of the C++ files. + +I looked into making all of the pixes be float, instead of unsigned char. This +would give increased flexibility because we could use negative numbers, not +worry about wrap around on the unsigned char, etc. In running performance +tests on an SGI O2, the performance difference is fairly great. If GEM +was only an image processing program (ie, PhotoShop), then I would definetely +have pixes be floats. However, since GEM is meant for real-time, I will +continue to use unsigned chars to represent pixels. + +For the tech heads...I used to generate the rendering by creating a +linked list of the GEM objects. The problem was that objects like +separator weren't possible because it wasn't a true DAG. That is now +fixed so that tree/leaf graphs are possible. + +Made render_trigger so you can know exactly when the rendering is occuring. + +Made pix_multiimage! Just give it a file with a * (like myfiles*.tif) and an +integer for a range (the number of images). + +Made pix_invert, separator + +--------------------------------------------------------------- +---------------------------- 0.63 ----------------------------- + +The src directory has been made into a tree. + +Made pix_add and pix_subtract +Added a scale object + +--------------------------------------------------------------- +---------------------------- 0.62 ----------------------------- + +A dummy glxContext is created at startup. What this means is that +in the constructors of objects, OpenGL calls can be made, display +lists can be constructed, etc. Eventually, I would like to have a +single window which is always in existance that can change between +single and double buffering, but that may be a little while. + +I put Sam Leffler's tiff library back in. All image files must be in +TIFF format again. Basically, I think that Win NT would have trouble +making SGI .rgb files, while anyone can make TIFF formats. Currently +there is some code bloat because libtiff does more than just read in a +TIFF file. + +The pix_coordinate object allows users to set the S,T texture coordinates +for geos. For instance, by giving pix_coordinate 4 S,T pairs, the texture +coordinates for a square can be changed on the fly. Not all of the geos +can support this ability right now (currently only square, triangle, and +polygon, but this will change in the near future). + +A FAQ has been started, but there really aren't any questions in it yet. +As people think of them, please let me know and I'll add them. + +--------------------------------------------------------------- +---------------------------- 0.61 ----------------------------- + +Cocoon html help files for developers have been created. + +GEM now uses an internally generated DAG for rendering. This +removes a serious bug where by objects could still try to reference +dangling pointers. GEM objects act like the tidle objects do +from a users point of view. Even if you break a connection +in a GEM chain, the GEM objects will continue to work. This +means that it is safe to edit patches while a GEM chain is +running. To rebuild the GEM patch, rendering must be turned +off and then back on (just like the tilde objects). + +Using the td library from Evans & Sutherland by Nate Robbins to display +Alias/Wavefront files (.obj). It also takes care of image +loading, although it is only .rgb. If people complain enough, +then I may return to the Sam's libTiff library, but it is so +big that the td library is better. The td library can also be +compiled on Windows (or else I wouldn't have used it). The new +object is called model (although it may change its name some day). + +There is a new object which maps the color of a pix to the Z of +a polygon. It is isn't overly useful right now, but it is a cool +demo. It is called imageVert. + +--------------------------------------------------------------- +---------------------------- 0.60 ----------------------------- + +Major changes to the internals of GEM. gemwin is now only +an access point to the window manager, instead of actually +being the window manager. This should make it easier to have +multiple graphics windows. + +While I was getting the O2 video camera to work, I seem to +have broken the Indycam object... + +--------------------------------------------------------------- +---------------------------- 0.50 ----------------------------- + +Made the port from Max over to Pd. Redesigned the class +heirarchy somewhat. + diff --git a/Gem/doc/gem.todo.txt b/Gem/doc/gem.todo.txt new file mode 100644 index 0000000..43a16a7 --- /dev/null +++ b/Gem/doc/gem.todo.txt @@ -0,0 +1,65 @@ +GEM ONLINE DOCUMENTATION CHAPTER 7: TODO +---------------------------------------- + + This is a list of future improvements and changes. +No importance should be given to the order...it is just +when I thought of things. + - Mark D. + - IOhannes m z + +---------------------------- TODO ----------------------------- + +GENERAL +------- +only connect to tablet if gem_tablet exists +make a separate Gem-thread (to do parallel audio/video-processing) +enable output to other "devices": like files, video-editing-cards,... + +PARTICLE +-------- + + +OBJECTS +------- +triangle_fan +stereoscopic display with hardware glasses +NURBS/bezier patches +3DstudioMax file loader +CAL3d (character animation library): (not sure anymore. maybe quake2-files would be better ?) +Alias|Wavefront file data + - articulation hierarchies in Wavefront's Kinemation + - read Preview's .mov files (an ascii list of x, y, and/or z values) +morphing between alias|wavefront models + - assume same number of points in each model + +PIXES +----- +pix_dv (under linux this still needs a lot of testing) +motion and image analysis +some way to fragment an image so that it can be used as multiple + texture maps (hopefully arbitrary shapes, but possibly only rectangular) +pix_erosion +pix_dilation +pix_median/min/max filter +pix_lowpass +pix_highpass +video external keyer + - three inputs - the matte and two image inputs +increased control of the Threshold object. + - upper and lower levels adjustable +stereoscopic texture loader +pix_circle +pix_triangle +test pix_video - espec offset message + +OPENGL +------ +be able to switch between single and double buffering on the fly +have multiple graphics windows +increased control of view port, etc. +be able to use multiple pipes (MCO) +try out glMatrixMode(GL_TEXTURE) to deal with nonstandard texture mapping +render to a pixblock (use pbuffers or offscreen renderer) +on systems that run in console mode only (like linux with(out) XFree86), render to the console with beautiful ASCII-art +multipass rendering +multitexturing diff --git a/Gem/doc/manual/Advanced.html b/Gem/doc/manual/Advanced.html new file mode 100644 index 0000000..5c2a5f2 --- /dev/null +++ b/Gem/doc/manual/Advanced.html @@ -0,0 +1,27 @@ + + + + + + + Advanced + + + +
+

+Advanced objects

+ +


Todo: +

more than 8 lights +
pix_imageInPlace +
accumrotate +
camera +
polygon and curve +
text3d +
pix_data +
linear_path +
spline_path +

[return] + + diff --git a/Gem/doc/manual/BasicObj.html b/Gem/doc/manual/BasicObj.html new file mode 100644 index 0000000..80e5d84 --- /dev/null +++ b/Gem/doc/manual/BasicObj.html @@ -0,0 +1,115 @@ + + + + + + + Basic Objects + + + +

+

+Basic Objects

+ +


There are a number of objects which are the foundation for GEM. +These objects are used in every patch and control the graphics and rendering. +

[gemwin] - The window manager +
[gemhead] - The start of a rendering chain +
manips - Move an object in the window +
geos - Render a shape +

+

+[gemwin]

+The graphics window is created and destroyed with the [gemwin] object. +With the [gemwin] object, you can set the default size of the graphics +window, create and destroy the graphics window, turn on and off rendering, +etc. All basic GEM patches will have the following [gemwin] +object with these messages: +
+

+The create and destroy messages will display and remove the graphics window. +The 1 and 0 messages start and stop rendering. +

+

+[gemhead]

+The [gemhead] object is the start of every rendering chain. +A simple patch, which is located in examples/gem_basic/gem1.redSquare.pd +looks like: +
+

+ +

This patch will render a red square. The [gemhead] object +signifies the start of rendering. The [color] object sets the color +for all objects after it in the chain. The [square] object renders +a square into the graphics window based on the current color, texturing, +and transformations. In this case, there is no texturing and no transformation. +

Every rendering chain MUST start with a [gemhead]. If you +do not put a [gemhead] at the beginning of the chain, then nothing +will be rendered for that part of the patch. +

+

+manips

+In the patch 01.basic/02.cube.pd, the [translateXYZ] object is +introduced. +
+

+ +

The graphics are transformed and moved by the manipulator objects, +or the manips. GEM has the following manips: +

[color] - set the color with a vector +
[colorRGB] - set the color with 3 discrete values +
[rotate] - rotate with an angle and vector +
[rotateXYZ] - rotate with 3 discrete values +
[scale] - scale with a vector +
[scaleXYZ] - scale with 3 discrete values +
[translate] - translate with a vector +
[translateXYZ] - translate with 3 discrete values +

To understand the difference between the vector and discrete values +version, realize that everything in is defined in 3 dimensions. These +dimensions can be XYZ values, or RGB colors. +

+

+ +

The two translate objects above will do exactly the same thing in a +patch, but they provide two different ways to do it. [translate] accepts +a scalar and vector. [translateXYZ] accepts three floats which +specify a point in space. The manips will transform any object which +appears after it in the rendering chain. +

+

+geos

+Up above, we saw the [square] and [cube] objects. The other +primary geos are: +

[square] - render a square +
[circle] - render a circle +
[triangle] - render a triangle +
[cube] - render a cube +
[sphere] - render a sphere +
[cone] - render a cone +

The [square], [circle], [cube], and [triangle] objects +have a right-hand inlet to set the size of the shape. The default +size is 1. +

The [cone] and [sphere] objects are not perfectly smooth. +They are actually composed of a number of polygons. In order to control +the rendering better, the middle inlet is the size of the object, while +the right-hand inlet is the number of slices to define the shape. +Take a look at the patch gem_basic/gem3.sphere.pd to see how the number +of slices can change the look of a sphere. Don't worry about the +[world_light] +object, it is just there to make it easier to see the difference in the +number of slices. Make sure to click the 'lighting 0' message before +closing the patch (if you don't, then other patches will probably be completely +black until you quit and restart pd/GEM). +

Your graphics window should look like this for 5 and 15 slices: +

+

+Obviously, the more slices that you use, the better the sphere looks. +However, each slice adds more polygons, which can slow down your frame +rate. In computer graphics, there is always a trade off between resolution +and speed. +

+

[return] +
+ + diff --git a/Gem/doc/manual/GemFaq.html b/Gem/doc/manual/GemFaq.html new file mode 100644 index 0000000..fe2e175 --- /dev/null +++ b/Gem/doc/manual/GemFaq.html @@ -0,0 +1,667 @@ + + + + + + + Gem FAQ + + + +

+

+GEM FAQ

+ +


* : new question +
+ : changed question +

+

+QUESTIONS

+GENERAL +
1.1) What is GEM? +
1.2) What is Pd? +
1.3) What platforms do GEM and Pd run on? +
1.4.0) How do I install GEM and Pd on IRIX? +
1.4.1) How do I install GEM and Pd on linux? +
1.4.2) How do I install GEM and Pd on WinNT? +
1.7) What is a good intro to OpenGL? +
1.8) Are there any web sites for Pd or GEM? +
1.9) What libraries does GEM use? (aka: Who does Mark +want to thank?) +
1.10) Are there any restrictions on GEM? +
1.11) How do I use GEM in a performance? +

USING GEM +
2.1) How do I (???) +
2.2) How do I make GEM run? +
2.3) Why doesn't GEM run? +
2.4) I've got it running. Now what? +
2.5) On IRIX 5.3, why does GEM dump with an rld error? +
2.6) Why can't I compile GEM on IRIX 5.3? +
2.7) Why is GEM slow in general? +
2.8) Why is GEM slow on IRIX? +
2.9) Why is GEM slow on WinNT/Win95? +
2.10) Why is GEM slow on Linux? +
2.11) If I resize the window, everything looks strange. +
2.12) Can GEM run on a 3Dfx Voodoo card? +
2.13) Will GEM support hardware transform and lighting +(T&L) ? +
2.14) I get an error "GEM needs Truecolor visual support". +

VIEWING OBJECTS +
3.1) Why does everything seem dim? +
3.2) Why does everything seem dark? +

TEXTURE MAPPING +
4.1) My image doesn't appear. What is going on? +
4.2) My image looks strange. What is going on? +
4.3) Why does GEM say that it can't handle a gray image? +
4.4) What image formats can GEM handle? +
4.5) What movie formats can GEM handle? +
4.6) Why is pix_draw so slow? +

WORKING WITH PD +
5.1) Why do I get clicks in the audio? +
5.2) How do I get audio data to GEM? +
5.3) Why can't GEM find an image/model file? +
5.4) How can I optimize my patches? +

WRITING NEW GEM OBJECTS +
6.1) How do I write a new GEM object? +
6.2) What are the default OpenGL states? +

OBJECT SPECIFIC +
7.1) Why doesn't <object> exist on <platform>? +
7.2) Why doesn't gemtablet work? +
7.3) I don't want GEM to take over my tablet. +How do I stop it? +
7.4) Why doesn't gemmouse work in IRIX/Linux? +
7.5) Why doesn't gemorb work? +
7.6) What is wrong with pix_video in WinNT? +

+

+ANSWERS

+

GENERAL

+
1.1) 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
  • +
  • gnter geiger
  • +
  • daniel heckenberg
  • +
  • james tittle
  • +
  • IOhannes m zmlnig
+lots of contributions are made by various people (thanks to all of them) +

---- +
1.2) 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 +

Pd is sponsored by a grant from Intel (http://www.intel.com) +

---- +
1.3) What platforms do GEM and Pd run on? +

GEM and Pd run on Windows (95, 98, ME, NT 4.0, 2000, XP), linux and macOS-X (>10.2). +SGI-Irix (> 6.2) used to be supported but i don't have any prove that it still works). +Günter Geiger +has done an initial port of GEM and Pd to Linux http://gige.epy.co.at). +

GEM is now maintained by me and +developed by a team of several independent programmers (see section 1.1) +

---- +
1.4) How do I install GEM ? +

---- +
1.4.0) 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. +

---- +
1.4.1) How do I install GEM and Pd on linux? +

See the readme for installing Pd. +

GEM should be at +

chdir to <gem>/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

+

---- +
1.4.2) 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. +

there is also an installer for windows. +

---- +
1.4.3) How do I install GEM and Pd on macOS? +

See the readme for installing Pd. +

there is also an installer for macOS. +

---- +
1.7) 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 +

---- +
1.8) 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 http://www.iem.at/mailinglists/pd-list +

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 +http://www.puredata.info +

An interesting place might also be Günter Geiger's size http://gige.epy.co.at/ +

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

---- +
1.9) What libraries does GEM use? +(aka: Who does Mark want to thank?) +

All copyrights and license info can be found in +
GEM.LICENSE.TERMS +
Thanks to Sam Leffner for libTiff, the TIFF image +loader. +
+sam@engr.sgi.com +
ftp://ftp.sgi.com/graphics/tiff/ +
Thanks to Masayuki Matsumoto for fstimage for OpenGL, +the SGI +
image loader. +
+matumot@dst.nk-exa.co.jp +
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/ +
Thanks to Mark Kilgard at al. (and SGI) for glut, the openGL Utility Toolkit +
http://www.pobox.com/~ndr +
Thanks to Stephane Rehel for GLTT, the OpenGL TrueType +render. +
+rehel@worldnet.fr +
http://home.worldnet.fr/~rehel/gltt/gltt.html +
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 +
Thanks to the MPEG Software Simulation Group, for +libmpeg, the +
MPEG-2 Encoder/Decoder +
+mssg@mpeg.org +
http://www.mpeg.org/MSSG/ +
Thanks to Heroine for quicktime4linux +a quickime Decoder +and libmpeg3, another MPEG-2 Encoder/Decoder +
MPEG-2 Encoder/Decoder +
+mssg@mpeg.org +
http://heroinewarrior.com/ +
Thanks to LCS/Telegraphics for Wintab, the Windows +tablet library. +
+wintab@pointing.com +
Thanks to David McAllister for the Particle System +library. +
+davemc@cs.unc.edu +
http://www.cs.unc.edu/~davemc/Particle/ +
Thanks to John Stone for the Space Orb library, +libOrb +
+j.stone@acm.org +
http://www.umr.edu/~johns/projects/liborb/ +

---- +
1.10) 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. +

---- +
1.11) 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, the only solution +to prevent clicking (question 5.1) 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. +

+


USING GEM

+
2.1)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. +

2.2) 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. +

---- +
2.3) 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 +-dac or -adc flags (for digital-analog-conversion only and analog-digital-conversion +only). +

---- +
2.4) 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<something>. 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. +

---- +
2.5) 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. +

---- +
2.6) 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. +

---- +
2.7) 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 +

---- +
2.8) 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). +

---- +
2.9) Why is GEM slow on WinNT/Win95? +

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. +

---- +
2.10) Why is GEM slow on Linux? +

It is because you have to use Mesa, which might be +running iin software. Mesa (http://www.mesa.org) +is an awesome package by Brian Paul (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) +

---- +
2.11) 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. +

---- +
2.12) 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. +

---- +
2.13) 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. +

2.14) 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. +

+


VIEWING OBJECTS

+
3.1)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). +

---- +
3.2) Why does everything seem dark? +

See question 3.1. +
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. +

+


TEXTURE MAPPING

+
4.1) 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). +

---- +
4.2) 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). +

---- +
4.3) 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. +

---- +
4.4) 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, one byte per pixel). Everything else is loaded +in or converted to an RGBA image (ie, four 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. +

---- +
4.5) 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) +

---- +
4.6) 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

+
5.1) 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. +

---- +
5.2) 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 might also have a look at the pix_sig2pix~ which interprets audio-data as pixels +and its counterpart pix_pix2sig~ +

---- +
5.3) 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 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 ? +

---- +
5.4) 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 or gate and block +the events early. This is especially important with objects that +send a lot of numbers, like ~ objects or line/tripleLine. +

+


WRITING NEW GEM OBJECTS

+
6.1) 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. +

---- +
6.2) 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() +

+


OBJECT SPECIFIC

+
7.1) 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...) +

---- +
7.2) Why doesn't gemtablet work? +

gemtablet only works on WinNT. I don't +have drivers for IRIX or Linux (also, see question 7.4) +
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. +

--- +
7.3) I don't want GEM to take over my tablet. +How do I stop it? +

Set the environment variable +

GEM_NO_TABLET = 1 +

---- +
7.4) 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). +

---- +
7.5) 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> +

---- +
7.6) 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. +

[return] +
+
+ + diff --git a/Gem/doc/manual/GemWPd.html b/Gem/doc/manual/GemWPd.html new file mode 100644 index 0000000..b564d99 --- /dev/null +++ b/Gem/doc/manual/GemWPd.html @@ -0,0 +1,140 @@ + + + + + + + Using GEM with Pd + + + +

+

+Using GEM with Pd

+    An important fact is that GEM is NOT an application. +It is a library that the application Pd loads in at run-time.  Most +of this information is taken directly from the GEM FAQ. +

How do I install GEM on IRIX? +
How do I install GEM on Win95/NT/2k? +
How do I install GEM on linux? +
How do I install GEM on macOS-X? +
How do I run GEM on IRIX? +
How do I run GEM on Win95/NT/2k? +
How do I run GEM on linux? +
How do I run GEM on linux? +
Why doesn't GEM run? +

+

+How do I install GEM and Pd on IRIX?

+See the readme for installing Pd. +

Uncompress and untar the GEM file that you downloaded.  GEM should +be located at +

pd/gem +

depending on where you have installed Pd. +

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

+

+How do I install GEM and Pd on WinNT?

+See the readme for installing Pd. +

TODO: there should be a install package somewhere +

Unzip the GEM file that you downloaded so that it is at +

pd\gem +

depending on where you have installed Pd. +

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

+

+How do I install GEM and Pd on linux?

+See the readme for installing Pd. +

Uncompress and untar the GEM file that you downloaded so that it is at +

pd/gem +

depending on where you have installed Pd. +

chdir into <pd/gem>/src/Gnu +

read the README.build +

run ./configure and afterwards make +

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

+

+How do I install GEM and Pd on macOS-X?

+See the readme for installing Pd. +

TODO: there should be a install package somewhere +

+

+How do I run GEM on IRIX?

+   To use GEM type something like: +

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

(where /usr/people/mdanks is the path to the pd directory). Check out +the README for Pd to see examples of the -lib flag. If you just try to +"run" GEM, you will get an error! Notice that last word is a capital Gem. +If you get a "can't find gem_setup" error, then that is the problem. Look +in the GEM FAQ +
for trouble shooting suggestions. +

If you don't see startup messages from GEM, then something went wrong. +
Also, you might need to add pd/bin to your PATH environment variable. +

+

+How do I run GEM on Win95/NT?

+    It is best to start Pd from a DOS command line.  +If you go to the Start menu, you should find an application called "Command +Prompt" under the Program menu.  You need to change to the drive where +you installed Pd.  For instance, if it is on your D: drive, just type +d: at the prompt. +

   To use GEM type something like: +

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

depending on where you installed Pd. +

    Check out the README for Pd to see examples of the +-lib flag. If you just try to double click GEM, you will get an error! +Notice that last word is a capital Gem. If you get a "can't find gem_setup" +error, then that is the problem. Look in the GEM FAQ for trouble shooting +suggestions. +

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

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

    Also, you might need to add pd/bin to your PATH environment +variable. +

+

+How do I run GEM on linux?

+   To use GEM type something like: +

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

(where /usr/people/mdanks is the path to the pd directory). Check out +the README for Pd to see examples of the -lib flag. If you just try to +"run" GEM, you will get an error! Notice that last word is a capital Gem. +If you get a "can't find gem_setup" error, then that is the problem. Look +in the GEM FAQ +
for trouble shooting suggestions. +

If you don't see startup messages from GEM, then something went wrong. +
Also, you might need to add pd/bin to your PATH environment variable. +

+

+How do I run GEM on macOS-X?

+   To use GEM type something like: +/usr/local/bin/pd -lib /Users/zmoelnig/pd/Gem +

(where /usr/local/bin/pd is the path to the pd directory and +/Users/zmoelnig/pd is the path where the Gem.pd_darwin resides). +Check out the README for Pd to see examples of the -lib flag. If you just try to +"run" GEM, you will get an error! Notice that last word is a capital Gem. +If you get a "can't find gem_setup" error, then that is the problem. Look +in the GEM FAQ +
for trouble shooting suggestions. +

If you don't see startup messages from GEM, then something went wrong. +
Also, you might need to add pd/bin to your PATH environment variable. +

+

+Why doesn't GEM run?

+    Notice that the -lib flag always requires Unix styles +slashes, even if you are on Windows.  This means that you need to +do -lib /gem/Gem, not -lib \gem\Gem +

    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 +-dac or -adc flags (for digital-analog-conversion only and analog-digital-conversion +only). +

[return] +
  + + diff --git a/Gem/doc/manual/Gloss.html b/Gem/doc/manual/Gloss.html new file mode 100644 index 0000000..1d42709 --- /dev/null +++ b/Gem/doc/manual/Gloss.html @@ -0,0 +1,41 @@ + + + + + + + Glossary/Index + + + +

+

+Glossary

+Alpha - The amount of opacity.  An alpha equal +to 1.0 means completely opaque.  An alpha equal to 0.0 means completely +transparent. +

Controls - GEM objects which access the low levels +of GEM, such as window managers. +

Geos - GEM objects which have a shape of some kind, +such as a cube. +

Manips - GEM objects which manipulate the geos. +

MarkEx - A collection of objects which help with +data manipulation, especially for usage in GEM. +

Nongeos - GEM objects which do not have an explicit +shape, yet affect the rendering in some way. +

OpenGL - A +graphics API which exists on many different platforms.
+Gem can also be used as a wrapper for openGL, allowing to program openGL without having to +compile +

Particles - GEM objects which involve the particle +system. +

Pd +- A visual programming language for audio processing.  This is the +host application for GEM. +

Pixes - Image processing objects in GEM +

Texture mapping - Applying an image to a geometric +object. +

[return] +
  + + diff --git a/Gem/doc/manual/Images.html b/Gem/doc/manual/Images.html new file mode 100644 index 0000000..182d153 --- /dev/null +++ b/Gem/doc/manual/Images.html @@ -0,0 +1,112 @@ + + + + + + + Images + + + +

+

+Dealing with Images

+Images are files which are loaded into GEM. The images can be manipulated, +applied to objects, and used in any number of different ways. In +this section, you will load in an image and display it on the screen. +This section will not apply the images to a geo; that occurs in +the next part of the manual. +

The pix objects are GEM objects which deal with pixels. +They do everything from loading in images to applying filters to the data. +The objects in this section of the manual only load in pix data from outside +sources. How you actually display the image is up to you. The +most common usages are with [pix_draw] and [pix_texture]. +

Warning: [pix_draw] is almost always slower than [pix_texture]. +Because [pix_draw] is easier to use than [pix_texture], it is +used in these examples. However, in any real usage or piece, [pix_texture] +should always be used instead. [pix_draw] is slow because PC +graphics accelerators do not provide hardware acceleration for that functionality. +[pix_texture] does have hardware acceleration and will be much faster. +

[pix_image] - load in an image +
[pix_multiimage] - load in multiple images +
[pix_movie] - load in a movie file +
[pix_video] - use a real time video source +

+

+[pix_image]

+[pix_image] is used to load in images. Images can be in a variety +of different formats, including TIFF, JPEG, and SGI formats. The +patch gem_pix/gemImage.pd is the simplest use of the [pix_image] object. +In this patch, the [pix_image] object loads in the file dancer.JPG. +
+

+ +

As is the case with every GEM chain, this patch starts with the [gemhead] +object. The next object is [pix_image], which actually loads +the image. [pix_image] makes the file dancer.JPG the current +pixel data, which will be used in all subsequent operations in the chain. +The [translateXYZ] object is used to move the image around. +Finally, the [pix_draw] object renders the pixel data to the screen. +

The patch mentions that changing the Z in [translateXYZ] does not +change the size of the image, as would occur with a geo object like +[square]. +This is because [pix_draw] simply draws the pixel at the current raster +position, without any transformation. If you want to change the size +on the fly and rotate the image, you need to texture map the pix, which +is described in the next section. +

+

+[pix_multiimage]

+The [pix_image] object only loads in one image at time. If you +try to change the image rapidly while the patch is running, you will notice +a lag every time it has to load in a new file. To avoid this lag, +there is another object called [pix_multiimage]. If you look +at patch gem_pix/gemMultiImage.pd, you will see this object in action. +

Basically, the * in the file name is replaced by the number that you +pass in. This allows you to play sequences of images with random +access. The one downside is that every image is loaded into memory +when the object is created, so you need to have a lot of RAM to use it. +

+

[pix_movie]/[pix_film]

+These objects are used to read movie-files from disk (or if supported from the internet). + +The movie is streamed off of disk, +using whatever decompression libraries are installed on your computer. +On Windows AVI movies seem to work fine, +but there is also a prelaminary support for quicktimes (and mpeg). +On macOS-X all formats supported by the system (basically: quicktime) should work ok. +On linux the support is highly depending on what libraries are installed during compile time. +There is support for MPEG (with libmpeg1 or (preferred:) libmpeg3), +quicktime (either libquicktime or quicktime4linux; +most likely you will not be able to decode quicktimes with proprietary codecs) +and AVI (with libavifile which is able to utilize windows-dlls for (proprietary) codecs). +There is also some rudimentary support for FFMPEG. + +The right inlet of [pix_movie] +accepts a number to specify the frame to display. Look at 04.pix/04.movie.pd +for an image. +

A key fact of [pix_movie] is that it immediately sends the movie +data to OpenGL as a texture map. This means that you do not need +the [pix_texture] object in your chain. This also means that +you cannot process the movie data with pix objects. The main reason +for this is that it removes the need for a copy of all of the movie data. +If you want to apply some image-processing, you will have to use [pix_film] +(and [pix_texture] for texture-mapping). +

Some of the geos will not texture map the [pix_movie] data correctly. +Cone and sphere do not use texture coordinates when they are provided, +so when you display a movie on one of these objects, you will have a black +region (unless your movie size is a power of two...however, most movies +are 320x160 pixels or something). This will be fixed in a future +release. +

+

+pix_video

+The "image" can come from the [pix_video] object. +This means that you can use a real-time video source and display it on the screen. +

You can play with [pix_video] with the patches in 04.video/. +The patches are explained in more depth in the advanced section of the GEM manual. +

+

[return] +
+ + diff --git a/Gem/doc/manual/Input.html b/Gem/doc/manual/Input.html new file mode 100644 index 0000000..fe089d0 --- /dev/null +++ b/Gem/doc/manual/Input.html @@ -0,0 +1,19 @@ + + + + + + + Input devices + + + +

+

+Input devices

+ +


Nothing here yet +

[return] +
  + + diff --git a/Gem/doc/manual/Intro.html b/Gem/doc/manual/Intro.html new file mode 100644 index 0000000..23e8d23 --- /dev/null +++ b/Gem/doc/manual/Intro.html @@ -0,0 +1,62 @@ + + + + + + + GEM - Introduction + + + +

+

+Introduction

+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. +Because GEM is a visual programming environment, users do not need any experience +in traditional computer languages. +

GEM is a collection of externals which allow the user to create +OpenGL +graphics within Pd, +a program for real-time audio processing by Miller +Puckette (of Max fame). +

There are many different shapes and objects, including polygonal graphics, +lighting, texture mapping, image processing, and camera motion. All of +this is possible in real-time without any previous programming experience. +Because GEM is an add-on library for Pd, +users can combine audio and graphics, controlling one medium from another. +

GEM is supported in part by a grant from the Intel +Research Council for the The Global Visual +Music project of Vibeke +Sorensen, Miller Puckette +and Rand Steiger. +

An important thing to remember is that GEM is NOT an application.  +It is a library that Pd loads at run-time.  Make sure that you see +the section on using GEM with Pd.  This +manual assumes that you have Pd working correctly and can load up patches +already.  If you do not have that working yet, look at the Pd manual +and the GEM FAQ.  Also, it is assumed that you have a basic understanding +of how to use Pd and the idea behind the data flow model.  In other +words, if I ask you to pass a message with 3 floats into an object, you +would know what I mean. +

The system requirements vary depending on your system and what you are +trying to do.  In general, you should have the most powerful computer +available and the best graphics accelerator on the market.  In reality, +people have been doing some amazing work with a Pentium II and an nVidia +Riva TNT or 3Dfx Voodoo2 card.  +If you are on an SGI, then everything from an O2 up seems to be okay.  +The biggest requirement is that you have some kind of OpenGL graphics accelerator.  +This means that a Matrox Millennium II will not run very quickly. +

The other factor is what you are trying to do.  Pushing real-time +video around requires a fast bus, which really only exists on SGIs.  +Doing thousands of texture mapped polygons is great on a PC...if it is +a constant texture.  There are many issues which mean that there is +no one answer to "Is this system good enough?".  In general, you will +have to try and see. +

GEM is now maintained by IOhannes m zmölnig. +So any bug-reports and donations should go to him instead of Mark... +

[return] +
  + + diff --git a/Gem/doc/manual/Lighting.html b/Gem/doc/manual/Lighting.html new file mode 100644 index 0000000..dcff171 --- /dev/null +++ b/Gem/doc/manual/Lighting.html @@ -0,0 +1,107 @@ + + + + + + + Lighting + + + +

+

+Lighting

+Lighting is an important factor is how we perceive the quality of an image. +For example, without lighting and shading, a sphere would just look like +a circle. GEM provides two types of lights, a local light and world +light. +

OpenGL uses a vertex lighting model. This means that for every +vertex in the scene, the influence of the light is calculated. The +color for the polygon is then modified by the light value of all of the +vertices. This generally produces a very smooth effect, but you will +occasionally run into rendering artifacts, especially if you use local +lights. For example, imagine you have a local light close a large +square. The corners of the square are far away from the light, so +none of them will be lit very brightly, even though the light itself is +very close to the surface of the square. +

It is important to realize that lighting is an expensive operation to +use. The number of polygons that you will be able to render will +be much lower if lighting is turned on. As usual, the complexity +of the scene and the speed of your computer and graphics card will greatly +affect your frame rate. +

GEM has only a maximum of 8 lights at one time. If you try to +create more lights than that, you will get an error message. +

Activate lighting +
[world_light] - A directional light +
[light] - A point light in the world +
Moving lights +

+

+Activate lighting

+Lighting is activated by sending a message to [gemwin]. If you +send "lighting 1", then lighting will be turned on. If you send "lighting +0", then lighting will be turned off. The lighting state is kept +even if you destroy the gemwin. This means that if you close a patch +and open another one, the lighting will still be the same. +

Individual lights can be turned on and off by sending a 1 or 0 to the +left inlet of the light object itself. +

+

+[world_light]

+A [world_light] is a light which exists infintely far away. +This reduces the computation needed, so your patch can run faster, but +it means that all of the light rays are parallel. The [world_light] +is good for objects like the sun and other lighting affects. This +means that translating a [world_light] has no effect, although rotation +does. +

The following patch is 03.lighting/01.world_light.pd. +

+

+ +

The [world_light] has one extra inlet. The right inlet accepts +three floats to set the color of the light. A [color] object +would do nothing. In this case, the light is being set to purple. +The [world_light] also accepts a debug message. The debug message +turns on and off a graphical representation of the light in the scene. +The [world_light] looks like a cone. The cone shows the direction +that the light is coming from. Remember that the actual position +of the light does not matter, so geos behind the cone will still be lit. +It is the direction of the light that matters. This is why you can +rotate the light. +

+

+[light]

+A [light] object generates a point light in the world. Because +the light is local to the scene, there is more math to generate the effect +of the light on the vertices. However, unlike a [world_light], +you can translate the [light] object. +

Below is the patch 03.lighting/02.light.pd. +

+

+ +

The [light] object has a right inlet for the color, just light +the [world_light] object. As this patch shows, the light can +be moved around the scene with both [rotate] and [translate] +objects. If you were to set the translate X value equal to 1.0, then +the sphere would not be lit at all. This is because the light would +be inside of the sphere. When you turn on the debug representation, +it is a sphere with its origin where the light it. The [light] +object does not have any size. It exists as a point source. +

+

+Moving lights

+The patch 03.lighting/03.controlLights.pd allows you to move a [light] +and [world_light] object in the same scene to see the difference between +the two objects. +

The patch 03.lighting/04.moveSpheres.pd is an example which moves +two spheres around the world. Turn on and off the individual lights +for a demonstration of a local versus infinite light. +

The patch 03.lighting/05.materials.pd uses the material objects to +selectively control the color of the object. Notice that the diffuse object +sets the "overall" color, while the specular objects sets the bright reflective +area where the light directly shines. +

+

[return] +
+ + diff --git a/Gem/doc/manual/ListObjects.html b/Gem/doc/manual/ListObjects.html new file mode 100644 index 0000000..2708993 --- /dev/null +++ b/Gem/doc/manual/ListObjects.html @@ -0,0 +1,231 @@ + + + + + + + List of GEM objects + + + +

+

+List of GEM objects

+Controls +
Manipulators +
Geos +
Particles +
Nongeos +
Pixes +
TV +
MarkEx +

+


Controls +
gemhead - the start of rendering chain +
gemwin - the window manager +
gemmouse - outputs the mouse position and buttons in the GEM window +
gemkeyboard - outputs the keycode of a key pressed when you are in the GEM window (there might be different keycodes in Windows/Linux) +
gemkeyname - outputs a symbolic description of a key pressed when you are in the GEM window (there might be different symbols in Windows/Linux) +
gemorb - outputs the position, rotation, and buttons for a Space Orb +
gemtablet - outputs the pen position, pressure, and buttons in the +GEM window +

+


+
Manipulators +
accumrotate - accumulate a rotation +
alpha - enable/disable alpha blending +
ambient - set the ambient color with a vector +
ambientRGB - set the ambient color with 3 discrete values +
camera - +
color - set the color with a vector +
colorRGB - set the color with 3 discrete values +
depth - enable/disable depth testing +
diffuse - set the diffuse color with a vector +
diffuseRGB - set the diffuse color with 3 discrete values +
emission - set the emissive color with a vector +
emissionRGB - set the emissive color with 3 discrete values +
linear_path - generate a path from an array of points +
ortho - change the view to orthogonal, with the viewport the size of +the window +
polygon_smooth - turn on anti-aliasing for the objects below +
rotate - rotate with an angle and vector +
rotateXYZ - rotate with 3 discrete values +
scale - scale with a vector +
scaleXYZ - scale with 3 discrete values +
separator - push the OpenGL state for the rest of the chain and pop +when done +
shininess - set the shininess of an object +
specular - set the specular color with a vector +
specularRGB - set the specular color with 3 discrete values +
spline_path - generate a spline from an array of knots +
translate - translate with a vector +
translateXYZ - translate with 3 discrete values + +

Geos +
circle - render a circle +
colorSquare - render a colored square (evtl. with color gradients) +
cone - render a cone +
cube - render a cube +
cuboid - render a box +
curve - render a Bezier curve +
curve3d - render a surface +
cylinder - render a cylinder +
disk - render a disk +
imageVert - make pixel colors to a height field map +
model - render an Alias|Wavefront model +
multimodel - render a series of Alias|Wavefront models, render by number +
newWave - render a wave (that is evolving over time) +
polygon - render a polygon +
primTri - a triangle primitive +
rectangle - render a rectangle +
ripple - a rectangle with distorted (over time) texture-coordinates +
rubber - a grid where you can move one of the grid-points +
slideSquare - render a number of sliding squares +
sphere - render a sphere +
square - render a square +
teapot - render a teapot +
text2d - render 2-D text (a bitmap) +
text3d - render 3-D text (polygonal) +
textextruded - render an extruded 3D-text +
textoutline - render outlined text (polygonal) +
triangle - render a triangle +

Particles +
part_head - The start of a particle group +
part_color - Set the range of colors for the new particles +
part_damp - set the damping for particles +
part_draw - Apply the actions and render the particles.  Accepts +a message "draw line" or "draw point" to change the drawing style. +
part_follow - Particles will follow each other like a snake +
part_gravity - Have the particles accelerate in a direction +
part_info - get the information (position, color, size,...) of each particle +
part_killold - Remove particles past a certain age +
part_killslow - Remove particles below a certain speed +
part_orbitpoint - Orbit the particles around a specified point +
part_render - render the remaining gem-tree as particles. +
part_size - Set the size of new particles +
part_source - Generate particles +
part_targetcolor - Change color of the particles toward the specified +color +
part_targetsize - Change size of the particles toward the specified +size +
part_velocity - Set the velocity domain +(distribution like CONE and the appropriate arguments) +
part_vertex - emit a single particle + +

Nongeos +
light - make a point light +
world_light - make a light at infinity +

Pixes +
pix_2grey - convert rgb pixels to grey (still an RGBA image) +
pix_a_2grey - convert rgb pixels to grey based on alpha channel +
pix_add - add two pixes together +
pix_aging - super8-like aging effect +
pix_alpha - set the alpha value of a pix +
pix_background - let through only pixels that differ from a static "background" image +
pix_backlight - a backlight photo effect +
pix_biquad - 2p2z-filter for subsequent images +
pix_bitmask - apply a bitmask to a pix +
pix_blob - get center of gravity +
pix_buf - buffer a pix +
pix_buffer - storage room for pixes (like [table] for floats) +
pix_buffer_read/pix_buffer_write - put/get pixes into/from a pix_buffer +
pix_chroma_key - color keying (like "blue-box") +
pix_coloralpha - set the alpha-channel of a pix as a mean-value of the color-components +
pix_colormatrix - recombine the RGBA-channels with matrix-operation +
pix_color - set the color of a pix (leaving alpha alone) +
pix_colorreduce - reduce the number of colors (statistically) +
pix_composite - composite two pixes together +
pix_convolve - convolve a pix with a kernal +
pix_coordinate - set the texture coordinates +
pix_crop - get a sub-image of a pix +
pix_curve - apply color-curves onto a pix +
pix_data - get pixel data information +
pix_delay - frame-wise delay +
pix_diff - get absolute difference of two pixes +
pix_dot - rasterize a pix with big dots +
pix_draw - draw a pix +
pix_dump - dump the pixel-data as a long list of floats +
pix_duotone - reduce the number of colors by thresholding +
pix_film - use a movie file as a pix source for image-processing +
pix_flip - flip the pixels of a pix +
pix_gain - apply a gain to a pix +
pix_grey - convert any pix into greyscale colorspace +
pix_halftone - rasterize a pix like it was printed in a newspaper +
pix_histo - get the histogram of a pix +
pix_hsv2rgb - transform a pix from HSV-colorspace into RGB-colorspace +
pix_image - load in an image file +
pix_imageInPlace - load a series of image files directly into texture-buffer, display by number +
pix_info - get information about the pix (like dimension, colorspace,...) +
pix_invert - invert a pix +
pix_kaleidoscope - as if you were looking at the pix through a kaleidoscope +
pix_levels - level adjustment +
pix_lumaoffset - y-offset pixels depending on their luminance +
pix_mask - mask a pix based on another pix +
pix_metaimage - recompose an image out of smaller versions of itself +
pix_mix - mix to pixes together +
pix_motionblur - motionblur an image +
pix_movie - use a movie file as a pix source and load it immediately into the texture-buffer +
pix_movement - set the alpha-channel with respect to the change between two frames +
pix_multiply - multiply two pixes +
pix_multiimage - load in a series of image files, display by number +
pix_normalize - normalize a pix +
pix_offset - add an offset to a pix (wrapping instead of clipping) +
pix_pix2sig~ - interpret a pix as 4 (RGBA) audio-signals +
pix_posterize - posterization photo effect +
pix_puzzle - shuffle an image +
pix_rds - generate a Random Dot Stereogram out of the image (aka: Magic Eye (tm)) +
pix_rectangle - generate a rectangle in a pix buffer +
pix_refraction - break up an image into coloured "glass-bricks" +
pix_resize - resize a pix to next power of 2 +
pix_rgb2hsv - transform a pix from RGB-colorspace into HSV-colorspace +
pix_rgba - transform a pix of any format into RGBA +
pix_roll - (sc)roll through an image (wrapping) +
pix_rtx - swap time-axis and x-axis +
pix_scanline - take every nth line of the original image +
pix_set - set the pixel-data with a long list of floats +
pix_sig2pix~ - interpret 4 audio-signals as (RGBA) image-data +
pix_snap - capture the render window into a pix +
pix_snap2tex - capture the render window directly as a texture +
pix_subtract - subtract two pixes +
pix_tIIR - time-base Infinite-Impulse-Response filter (for motion-bluring,...) with settable number of poles/zeros +
pix_takealpha - take the alpha channel of one pix and put it into another pix +
pix_texture - use a pix as a texture map +
pix_threshold - apply a threshold to a pix +
pix_video - use a video camera as a pix source +
pix_write - capture the render window to disk +
pix_zoom - zoom into a pix (using OpenGL) + +

openGL +there are more than 250 objects that +form a complete wrapper around the openGL set of functions +(as defined in the openGL-1.2 standard).
+each openGL-function is prefixed with "GEM", eg: +[GEMglVertex3f] is wrapped around glVertex3f. + +

MarkEx +
alternate - alternate between two outlets +
average - average a sequence of numbers +
change - only output on change +
counter - count bangs +
invert - non-zero numbers to zero, zero to 1 +
multiselect/multisel - a select object which accepts a list in the +right inlet +
oneshot - send a bang, then block until reset +
randomF / randF - floating point random numbers +
strcat - string concatentation +
tripleLine - do a line with three numbers +
tripleRand - random with three numbers +
vector+ / v+ - add a scalar to a vector +
vector- / v- - subtract a scalar from a vector +
vector* / v* - multiply a vector by a scalar +
vector/ / v/ - divide a vector by a scalar +
vectorpack / vpack - attach a scalar to the end of a vector +
rgb2hsv - convert a list of three floats from RGB to an HSV value +
hsv2rgb - convert a list of three floats from HSV to an RGB value +
abs~ - absolute value of a signal +
reson~ - resonant filter +

[return] +
  +
  + + diff --git a/Gem/doc/manual/Particles.html b/Gem/doc/manual/Particles.html new file mode 100644 index 0000000..7b8ceb6 --- /dev/null +++ b/Gem/doc/manual/Particles.html @@ -0,0 +1,19 @@ + + + + + + + Particles + + + +

+

+Particles

+ +


Nothing here yet +

[return] +
  + + diff --git a/Gem/doc/manual/Pixes.html b/Gem/doc/manual/Pixes.html new file mode 100644 index 0000000..badf8bc --- /dev/null +++ b/Gem/doc/manual/Pixes.html @@ -0,0 +1,105 @@ + + + + + + + Pixes (image processing) + + + +

+

+Image processing

+The pix objects are used to do image processing to pixel data. If +you load in an image with [pix_image], then you can change what the +image looks like before rendering it out +

In general, processing images is extremely expensive, so you +probably cannot have that many active pix objects. GEM only reprocesses +images when the source image changes or one of the parameters for a pix +object changes. This means that GEM will only process an image when +something is different, instead of every frame. If you want to do +a lot of processing at start up, but then not change anything once the +patch is running, GEM will only do the computation once.
+Modern CPUs use SIMD (Single Instruction - Multiple Data) (like MMX, SSE2, altivec) +to make pixel-processing more effective (by processing data parallely). +Until now, only the macOS version of Gem has support for SIMD for some pix-objects. +MMX/SSE2 boosts will hopefully come in future Gem-releases. + +

The pix objects are divided into two general groups, those which take +one input, and those which require two input images. For example, +[pix_invert] +will "invert" all of the pixels (if a pixel is white, it will change to +black), while [pix_add] will add two images together. +

Only some of the pix objects are described here. Look in the reference +patches for explanations for the other pix objects. +

[pix_invert] - invert the pixel data +
[pix_add] - add two pixes together +
[pix_mask] - create an alpha mask +
[pix_convolve] - convolve a pix with a kernel +

+

+[pix_invert]

+[pix_invert] inverts the pixels in an image. To use [pix_invert], +simply make sure that you have already loaded an image into the chain. +In the following patch, the fractal image will be inverted. +
+

+ +

Here is the difference between the fractal image and the inverted version. +

+

+ +

+

+pix_add

+[pix_add] does what you would expect. It adds two images together. +
+

+ +

This patch adds the fractal image with a car image. The processed +image will often contain a lot of white pixels, because the data is just +added together. This occurs in the resulting image, shown below. +

+

+ +


+

+

+pix_mask

+[pix_mask] is used to create an alpha mask from another image. +In the following example (gem_pix/gemMaskDancer.pd), the fractal image's +alpha channel is replaced by the dancer image. If the [alpha] +object was removed, then you would just see the solid fractal image (because +the alpha channel wouldn't be used). +

In other words, images are composed of a red, a green, a blue, and an +alpha channel. The alpha channel is the transparency of the pixel. + +[pix_mask] only modifies the alpha channel and does not touch the +red, green, or blue data. +

+

+ +

The result is this image. +

+

+ +

+

+pix_convolve

+[pix_convolve] convolves pix data with a convolution kernel. +Basically, you can get really nice effects if you choose the correct kernel...and +garbage if you choose the wrong one. +

Edge detection is done with a convolution kernel, as is smoothing. +The biggest problem is that convolving an image is about the most expensive +operation that you can do in GEM. +

Look at gem_pix/gemPixConvolve.pd to get an idea of some of the kernels +that you can send to [pix_convolve] and the effects that you can get. +

If you want to learn the math behind convolution, then find any standard +image processing (or audio processing book, this is just 2D convolution). +
+

+

[return] +
+ + diff --git a/Gem/doc/manual/Texture.html b/Gem/doc/manual/Texture.html new file mode 100644 index 0000000..1de889c --- /dev/null +++ b/Gem/doc/manual/Texture.html @@ -0,0 +1,126 @@ + + + + + + + Texture mapping + + + +

+

+Texture Mapping

+Texture mapping is the act of applying +pixel data to a geometric object. In GEM, this is achieved with the +[pix_texture] +object. It is important to understand that the +[pix_texture] +object merely sets the pix as the current texture. It does not do +any rendering! You need to use a geo object which does texture mapping. +All of the basic geo objects can texture map, such as [square] or +[sphere]. +

+

A simple example of texture mapping is the following patch: +

+

+ +

This patch can be found at 07.texture/01.texture.pd. Change +the number box connected to the rotate object to see what a texture map +on a cube looks like. +

The [pix_image] object loads in the fractal image file. The +[pix_texture] +object says that the pix data should be used as a texture map. Notice +that this is different than the previous manual section when we used the +[pix_draw] object. The final object in the chain is the [cube] +object. Because we have enabled texture mapping with the [pix_texture] +object, the cube takes the pix data and applies it to the geometry. +

+

Texture mapping can be used with any GEM object. In the previous +manual section, you saw how to load in pix data with a variety of objects, +including [pix_multiimage] and [pix_video]. All of these +objects can be used with the [pix_texture] object. +

Because the pix data is applied to geometry, you can move, rotate, and +scale the image. This is extremely useful on the [square] object. +Instead of doing a one-to-one pixel mapping as occurs with the [pix_draw] +object, you can resize and reshape the image. +

OpenGL originally required that images must have dimensions that are power-of-2, such as 64, 128, or 256. This restriction has been released with recent gfx-cards +(like some radeon/nvidia products). +However, if the width or height of an image is not a power of two, +then the [pix_texture] object will take care of this, +and still render it (depending on you hardware with some tricks). +You can thus texture images of any size, but since this is based on tricking +the texture-coordinates, [pix_coordinate] might not give the wanted result any more. +

+

The example patch 07.texture/02.moveImages.pd is a much more complex +patch which uses alpha blending to create a transparent object, in this +case, the dancer. Make sure to turn on the rotation with the [metro] +object. +

+

People have been asking how textures are handled in GEM. Here +is a long explanation from an email which I wrote. +

Here is how textures are dealt with under OpenGL and hardware +accelerators. This can obviously change in the future, but right +now, I am fairly certain that the info is correct (I make games in my day +job, so I have vested interest in this :-) +

The amount of memory (VRAM) on the card (12mb for Voodoo2, +16mb for TNT, 64mb for GeForce2, etc) is used for both textures (TRAM) +and frame buffer space. If you have a large rendering window, like +1600x1200, it will take up 1600x1200x4x3 in 32-bit mode with double buffering +and a Z buffer (or 23mb). Most people run at TV resolution, like +NTSC, so it takes 640x480x4x3 = 3.7mb All of the space left +is for textures onboard the card (FYI, if you have heard that people are +having problems with the PlayStation2, notice that it only has 4mb of VRAM...not +much onboard texture space, huh? :-) Thankfully it has an extremely +fast DMA bus) +

Sooo, when GEM "creates" a texture, it immediately tries +to send the texture to the card, which uses some of the left over space +in the VRAM. If you had a 640x480 window on a Voodoo2, you have ~8mb +of texture space left over. On a GeForce2, ~60mb. The problem +is what happens if you want more textures than can fit into TRAM. +OpenGL requires that the video drivers deal with the problem, so GEM doesn't +care too much (more about this later). +

In most cases, the drivers cache the textures in main memory +and if a texture is requested for rendering and it isn't resident on the +card, it will download it. If you have AGP, then this is pretty quick, +although none of 3dfx cards really take advantage of this (ie, those cards +are about the same speed as the PCI bus). So depending on the number +of textures, and how complex the scene is, you might be able to display +more textures than you have TRAM. +

One slowdown that can happen with GEM is that it makes a +copy of the image before sending it down the chain of objects. If +you are constantly changing images with a pix_multiimage, this can be a +performance hit, but you can modify the actual pixel data with the pix +objects. The pixels aren't sent to the graphics card until the pix_texture +object is reached. +

GEM tries to help with this with a few objects. pix_imageInPlace +acts much the same as pix_multiimage, but it downloads _every_ image in +the sequence to the card when a download message is recieved. It +also immediately turns on texturing, instead of making a copy (ie, you +don't need a pix_texture object). Much faster, but not as flexible. +pix_movie does much the same thing. It sends the pixel data without +copying it if there is a new frame to display. +

The entire pix system uses a caching system so that the copying +and processing only occurs if something actually changes. For example, +if you had a pix_threshold object, it would only process when rendering +started...and every time that the values actually changed. You can +use pix_buf to isolate parts which don't change from those that do, but +it involves another copy. +

On the Voodoo2, the hardware itself limits textures to 256x256...this +will never change. The newest Voodoo5 boards have a higher texture +size. +

If you load the _exact_ same image (this means the exact +same file/path name), then the pix_image has a cache system which means +that it is only loaded into the +
computers memory once. However, each pix_image still sends +its own copy down to the gfx card. +

You could use a single [pix_image]/[pix_texture] with [separator] +to do this...I have done it a lot in the past. +

The reason that [pix_image] doesn't share the actual texture +data is that you can modify the pixel data with other pix objects...[pix_image] +doesn't actually send the texture data to the gfx card, [pix_texture] does. +

+

[return] +
+ + diff --git a/Gem/doc/manual/Utility.html b/Gem/doc/manual/Utility.html new file mode 100644 index 0000000..c8f6e17 --- /dev/null +++ b/Gem/doc/manual/Utility.html @@ -0,0 +1,149 @@ + + + + + + + Utility objects + + + +

+

+Utility objects

+There are a number of objects which were written to make it easier to use +both GEM and pd.  For instance, you often pass around 3 floats at +a time in GEM, either for position or colors.  To help with this, +there are a collection of vector objects.  Use the list below to find +out about the objects. +

These objects used to be in a separate library called MarkEx, but they +have now been folded into GEM. +

counter - count the number of bangs +
average - average a series of numbers together +
change - only output when there is a change in +the number +
invert - invert a number +
randomF/randF - floating point random number +
tripleLine - line object for 3 values +
tripleRand - three random numbers +
vector objects - process a series of numbers +
hsv2rgb and rgb2hsv - convert between RGB and +HSV color space +

+

+counter

+ +
+ +

The inlets are: +
bang (increment or decrement the counter) +
set direction (1 = count up, 2 = count down, 3 = count up and down) +
set low value +
set hight value +
The outlet is the current count. +

So in this case, the top counter will count up from 1 to 10.  +The bottom counter will count up from 2 to 5. +

The counter also accepts the messages reset and clear.  +Reset immediately sets the counter to its low value and outputs the value.  +The clear message means that the next bang will set the counter +to its low value. +

+

+average

+The average object just averages a series of numbers as they come +in.  The left inlet accepts a single float.  It then outputs +the current average.  The default number of floats to average together +is 10, but that can be changed by sending a new value to the right inlet. +

The average object also accepts the messages clear and reset.  +Clear will immediately set all of the values that the object has been storing +for averaging to 0.  With the reset message, you must pass in a number +to set all of the values. +

+

+change

+Change only accepts a number into its left inlet.  If the number +is the same as the last number sent to the change object, then it +does nothing.  If the number is different, then the change +object will output the new number and store it for the next comparision. +

This object is very useful for the == object and others like it, since +they send a 0 or a 1 every time they do a comparision, and you usually +only care when the state actually changes. +

+

+invert

+The invert object is very simple.  If the number sent to its +left inlet is equal to 0., then invert outputs a 1.  If the +number is not equal to 0., the invert outputs a 0. +

+

+randomF/randF

+One problem with the random object in pd is that it only sends out +integers.  This a real problem in GEM, where you often want a value +between 0 and 1.  randomF is exactly like the random +object. +

When the left inlet gets a bang, randomF outputs a random number +between 0 and the given range.  The range can be set with a number +to the right inlet. +

randF is just an alternate name for randomF. +

+

+tripleLine

+ +
+ +

The line object is really great for dealing with a single number.  +To do a line with 3 values, like an RGB color value, means that you have +to unpack, do a line, then repack the number.  Not only is +it a pain, but it expensive computationally. +

tripleLine behaves just like the line object, only it +accepts three numbers to interpolate between.  In the example, tripleLine +will interpolate from the current values to 1., .2, .4 over 1000 milliseconds.  +The default output resolution is 50 milliseconds, which is the same default +rendering time.  Going faster with GEM objects will not produce any +benefit, unless you increase the frames per second. +

+

+tripleRand

+ +
+ +

Just as using tripleLine makes it easier to interpolate between +3 values at once, tripleRand makes it easy to generate three random +values.  In the above example, when the bang is sent, tripleRand +will create three values and output them, with the first between 0 - 1, +the second between 0 - .5, and the third from 0 - .8. +

+

+Vector objects

+The vector math objects are +
vector+ or v+ +
vector- or v- +
vector* or v* +
vector/ or v/ +
All of the above objects perform math on a list of numbers.  The +left inlet accepts a list of numbers of any length.  The right inlet +accepts a single value, which is the operand for the computation.  +In other words, they work just like the normal *, +, -, and / objects, +except they can handle more than one number in the left inlet. +

There are two other objects which are also useful. +

The first is vectorabs or vabs. It computes the absolute +value on a list of numbers. +

The second object is vectorpack or vpack. vpack +accepts a list of numbers in the left inlet and a single number into the +right inlet.  The output is a single list of numbers that is the vector +with the single number appended to the end.  This is very useful when +you want to change the time for a tripleLine without unpacking and +repacking all of the data. +

+

+hsv2rgb and rgb2hsv

+These two objects convert three numbers between HSV and RGB color space.  +HSV stands for hue, saturation, and value.  The simple way to think +of HSV space is that hue is the "color", such as red, blue, etc, the saturation +is how intense the color is, and the value is how bright the color is. +

You can get some really nice effects by varying the hue of a color, +because the brightness will not change while you do it. +

+

[return] + + diff --git a/Gem/doc/manual/WriteCode.html b/Gem/doc/manual/WriteCode.html new file mode 100644 index 0000000..d4d0480 --- /dev/null +++ b/Gem/doc/manual/WriteCode.html @@ -0,0 +1,41 @@ + + + + + + + Writing new objects + + + +

+

+Creating new GEM objects

+Look at the source code :-)  GEM is written in C++, which means that +you have to jump through some hopes to interact properly with Pd, which +is written in C.  If you look in Base/CPPExtern.h, you will see a +collection of macros which you can use to help you create new objects.  +Use one of the GEM objects which is closest to what you want to do as a +template. +

One problem on SGI...you will need to +

setenv LD_LIBRARY_PATH "/where/ever/pd/gem" +

so that rld (the run-time linker) can find the GEM dso.  Because +you are linking with GEM, Pd isn't involved with the run time linking process; +it is all done when Pd calls dlopen. +

On NT, there is much the same problem... +

set your PATH environment variable to \where\ever\pd\gem +

or +

make sure that your new .dll is located in the same directory where +GEM is. +

On NT, all of the classes and functions are exported through declexport/declimport.  +You shouldn't have to do anything to call the functions.  I have not +had any problems making other dll's which are loaded into Pd at runtime.  +You need to make certain that you are exporting the correct functions.  +If your dll cannot find the gem.dll, then it will silently fail. +

And of course, e-mail IOhannes m zmlnig (zmoelnig@iem.at) if you have any problems, +questions, or solutions +

+

[return] +
  + + diff --git a/Gem/doc/manual/add.jpg b/Gem/doc/manual/add.jpg new file mode 100644 index 0000000..90958ab Binary files /dev/null and b/Gem/doc/manual/add.jpg differ diff --git a/Gem/doc/manual/addResult.jpg b/Gem/doc/manual/addResult.jpg new file mode 100644 index 0000000..8be41e4 Binary files /dev/null and b/Gem/doc/manual/addResult.jpg differ diff --git a/Gem/doc/manual/basicCube.jpg b/Gem/doc/manual/basicCube.jpg new file mode 100644 index 0000000..921909f Binary files /dev/null and b/Gem/doc/manual/basicCube.jpg differ diff --git a/Gem/doc/manual/counter.jpg b/Gem/doc/manual/counter.jpg new file mode 100644 index 0000000..da6c60d Binary files /dev/null and b/Gem/doc/manual/counter.jpg differ diff --git a/Gem/doc/manual/gemwin.jpg b/Gem/doc/manual/gemwin.jpg new file mode 100644 index 0000000..387f591 Binary files /dev/null and b/Gem/doc/manual/gemwin.jpg differ diff --git a/Gem/doc/manual/index.html b/Gem/doc/manual/index.html new file mode 100644 index 0000000..d3a6308 --- /dev/null +++ b/Gem/doc/manual/index.html @@ -0,0 +1,67 @@ + + + + + + Gem Manual + + + +

+

+GEM Manual

+ +
a simple patch
+ +

This is the first attempt at a manual for GEM, so bear with me. +Any comments are appreciated. Send them to Mark Danks +


+In fact, this ought to be the second attempt at such a manual. There will not be much now. +But send any comments to IOhannes m zmölnig instead. +

+

Introduction +
    An introduction to GEM and what you can do with +it.  The general system requirements are also described here. +

Using GEM with Pd +
    How to use GEM with Pd.  This includes how +to start Pd so that the GEM library is loaded and working properly. +

Basic objects +
    The basic objects that GEM has.  This section +shows you how to create a simple patch. +

Images +
    Using images is an important part of GEM. Here you +will load in images and learn the basics of dealing with images. +

Texture mapping +
    Loading in images is only one part.  Applying +those images to 3-D shapes is called texture mapping. +

Pixes (image processing) +
    Once you have texture mapped the images, you will +probably want to process and change them in response to user interaction.  +The pix objects provide this functionality. +

Lighting +
    Shading and lighting are easy with the lighting +objects. +

Particles +
    Particle systems can create effects such as smoke, +fire, and water. +

Utility objects +
    To help you deal with the data which GEM uses, there +are a number of utility objects. +

Input devices +
    GEM provides interaction with the mouse and other +input devices. +

Advanced +
    Now that you know all about the other objects, here +are a few of the more advanced ones. +

Writing new objects +
    How to write new objects for GEM. +

FAQ +
    Frequently asked questions about GEM. +

List of Objects +
    All of the objects in GEM with a very brief description.. +

Glossary/Index +
    A collection of definitions and links to explanations. +

+
  + + diff --git a/Gem/doc/manual/invert.jpg b/Gem/doc/manual/invert.jpg new file mode 100644 index 0000000..9c3f758 Binary files /dev/null and b/Gem/doc/manual/invert.jpg differ diff --git a/Gem/doc/manual/invertFrac.jpg b/Gem/doc/manual/invertFrac.jpg new file mode 100644 index 0000000..68237a9 Binary files /dev/null and b/Gem/doc/manual/invertFrac.jpg differ diff --git a/Gem/doc/manual/light.jpg b/Gem/doc/manual/light.jpg new file mode 100644 index 0000000..20e81a4 Binary files /dev/null and b/Gem/doc/manual/light.jpg differ diff --git a/Gem/doc/manual/mask.jpg b/Gem/doc/manual/mask.jpg new file mode 100644 index 0000000..e49ca1e Binary files /dev/null and b/Gem/doc/manual/mask.jpg differ diff --git a/Gem/doc/manual/maskResult.jpg b/Gem/doc/manual/maskResult.jpg new file mode 100644 index 0000000..ef206b9 Binary files /dev/null and b/Gem/doc/manual/maskResult.jpg differ diff --git a/Gem/doc/manual/normalFrac.jpg b/Gem/doc/manual/normalFrac.jpg new file mode 100644 index 0000000..81609ae Binary files /dev/null and b/Gem/doc/manual/normalFrac.jpg differ diff --git a/Gem/doc/manual/pixImage.jpg b/Gem/doc/manual/pixImage.jpg new file mode 100644 index 0000000..b966579 Binary files /dev/null and b/Gem/doc/manual/pixImage.jpg differ diff --git a/Gem/doc/manual/redSquare.jpg b/Gem/doc/manual/redSquare.jpg new file mode 100644 index 0000000..d002041 Binary files /dev/null and b/Gem/doc/manual/redSquare.jpg differ diff --git a/Gem/doc/manual/sphere15.jpg b/Gem/doc/manual/sphere15.jpg new file mode 100644 index 0000000..c344584 Binary files /dev/null and b/Gem/doc/manual/sphere15.jpg differ diff --git a/Gem/doc/manual/sphere5.jpg b/Gem/doc/manual/sphere5.jpg new file mode 100644 index 0000000..ca3a9cd Binary files /dev/null and b/Gem/doc/manual/sphere5.jpg differ diff --git a/Gem/doc/manual/texture.jpg b/Gem/doc/manual/texture.jpg new file mode 100644 index 0000000..05f4950 Binary files /dev/null and b/Gem/doc/manual/texture.jpg differ diff --git a/Gem/doc/manual/transXYZ.jpg b/Gem/doc/manual/transXYZ.jpg new file mode 100644 index 0000000..553b2c0 Binary files /dev/null and b/Gem/doc/manual/transXYZ.jpg differ diff --git a/Gem/doc/manual/tribar.gif b/Gem/doc/manual/tribar.gif new file mode 100644 index 0000000..0f99a3f Binary files /dev/null and b/Gem/doc/manual/tribar.gif differ diff --git a/Gem/doc/manual/tripleLine.jpg b/Gem/doc/manual/tripleLine.jpg new file mode 100644 index 0000000..e171d64 Binary files /dev/null and b/Gem/doc/manual/tripleLine.jpg differ diff --git a/Gem/doc/manual/tripleRand.jpg b/Gem/doc/manual/tripleRand.jpg new file mode 100644 index 0000000..f76109f Binary files /dev/null and b/Gem/doc/manual/tripleRand.jpg differ diff --git a/Gem/doc/manual/world_light.jpg b/Gem/doc/manual/world_light.jpg new file mode 100644 index 0000000..483598e Binary files /dev/null and b/Gem/doc/manual/world_light.jpg differ diff --git a/Gem/examples/01.basic/01.redSquare.pd b/Gem/examples/01.basic/01.redSquare.pd new file mode 100644 index 0000000..c64e4a2 --- /dev/null +++ b/Gem/examples/01.basic/01.redSquare.pd @@ -0,0 +1,63 @@ +#N canvas 139 83 602 502 10; +#X obj 240 186 gemhead; +#X floatatom 348 258 0 0 0 0 - - -; +#X obj 240 246 color; +#X msg 342 191 1 1 1; +#X msg 342 156 1 0 0; +#X obj 240 339 square; +#X text 109 26 this demonstrates how to create a red square; +#X text 328 119 change the color; +#X text 341 226 rotate the square; +#X msg 343 302 draw line; +#X msg 343 322 draw fill; +#X msg 346 375 width 1; +#X msg 347 395 width 10; +#X obj 240 297 rotate; +#X obj 20 59 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 59 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X obj 59 65 t b b; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 1 1 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 103 pd gemwin; +#X msg 25 79 create; +#X text 21 59 Create window and render; +#X text 386 157 red; +#X text 389 192 white; +#X text 379 260 (in degree); +#X connect 0 0 2 0; +#X connect 1 0 13 1; +#X connect 2 0 13 0; +#X connect 3 0 2 1; +#X connect 4 0 2 1; +#X connect 9 0 5 0; +#X connect 10 0 5 0; +#X connect 11 0 5 0; +#X connect 12 0 5 0; +#X connect 13 0 5 0; +#X connect 15 0 16 0; +#X connect 16 0 15 0; diff --git a/Gem/examples/01.basic/02.blueRectangle.pd b/Gem/examples/01.basic/02.blueRectangle.pd new file mode 100644 index 0000000..5d522bc --- /dev/null +++ b/Gem/examples/01.basic/02.blueRectangle.pd @@ -0,0 +1,65 @@ +#N canvas 396 160 600 500 10; +#X obj 350 159 gemhead; +#X obj 350 337 rotate; +#X floatatom 409 275 0 0 0 0 - - -; +#X msg 452 144 1 1 1; +#X text 438 92 change the color; +#X msg 237 313 draw line; +#X msg 237 346 draw fill; +#X text 111 28 this demonstrates how to create a blue rectangle; +#X obj 350 379 rectangle 2 1; +#X text 382 260 rotate the rectangle; +#X msg 452 169 0 0 1; +#X floatatom 427 336 0 0 0 0 - - -; +#X floatatom 482 337 0 0 0 0 - - -; +#X text 419 314 width; +#X text 477 313 height; +#X obj 20 59 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 59 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X obj 59 65 t b b; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 1 1 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 103 pd gemwin; +#X msg 25 79 create; +#X text 21 59 Create window and render; +#X text 504 170 blue; +#X text 495 146 white; +#X obj 350 219 color 0 0 1; +#X text 422 221 (blue); +#X connect 0 0 21 0; +#X connect 1 0 8 0; +#X connect 2 0 1 1; +#X connect 3 0 21 1; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 10 0 21 1; +#X connect 11 0 8 1; +#X connect 12 0 8 2; +#X connect 16 0 17 0; +#X connect 17 0 16 0; +#X connect 21 0 1 0; diff --git a/Gem/examples/01.basic/03.disk.pd b/Gem/examples/01.basic/03.disk.pd new file mode 100644 index 0000000..e65fbf8 --- /dev/null +++ b/Gem/examples/01.basic/03.disk.pd @@ -0,0 +1,59 @@ +#N canvas 28 208 601 392 10; +#X obj 274 138 gemhead; +#X floatatom 350 169 0 0 0 0 - - -; +#X obj 22 325 world_light; +#X obj 22 283 gemhead 1; +#X text 369 251 change the number of slices; +#X msg 421 269 15; +#X obj 274 207 rotateXYZ 26 26 0; +#X floatatom 299 277 0 1 4 2 size - -; +#X floatatom 400 330 0 0 0.9 2 inner_radius - -; +#X obj 274 356 disk 2 5 1; +#X msg 384 269 10; +#X obj 30 59 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 59 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X obj 59 65 t b b; +#X msg 59 94 lighting 1; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 0 4 0; +#X connect 3 1 1 0; +#X connect 4 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 35 103 pd gemwin; +#X msg 35 79 create; +#X text 31 59 Create window and render; +#X connect 0 0 6 0; +#X connect 1 0 6 1; +#X connect 1 0 6 2; +#X connect 3 0 2 0; +#X connect 5 0 9 2; +#X connect 6 0 9 0; +#X connect 7 0 9 1; +#X connect 8 0 9 3; +#X connect 10 0 9 2; +#X connect 12 0 13 0; +#X connect 13 0 12 0; diff --git a/Gem/examples/01.basic/04.PrimTri.pd b/Gem/examples/01.basic/04.PrimTri.pd new file mode 100644 index 0000000..98de642 --- /dev/null +++ b/Gem/examples/01.basic/04.PrimTri.pd @@ -0,0 +1,65 @@ +#N canvas 173 -28 667 537 12; +#X obj 306 137 gemhead; +#X obj 306 248 rotate; +#X floatatom 372 194 0 0 0 0 - - -; +#X msg 124 207 draw line; +#X msg 142 240 draw fill; +#X obj 306 431 primTri; +#X text 48 23 this demonstrates how to create a triangle primitive +; +#X text 337 172 rotate the triangle; +#X msg 561 306 1 0 0; +#X msg 561 342 0 1 0; +#X msg 561 378 0 0 1; +#X text 555 270 colors; +#X text 420 264 vertices; +#X msg 423 286 1 1 0; +#X msg 422 357 -1 1 0; +#X msg 423 322 1 -2 0; +#X text 192 52 the colors can be RGB or RGBA; +#X obj 30 109 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 59 26 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X obj 59 45 t b b; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 1 1 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 35 153 pd gemwin; +#X msg 35 129 create; +#X text 31 109 Create window and render; +#X connect 0 0 1 0; +#X connect 1 0 5 0; +#X connect 2 0 1 1; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 8 0 5 4; +#X connect 9 0 5 5; +#X connect 10 0 5 6; +#X connect 13 0 5 1; +#X connect 14 0 5 3; +#X connect 15 0 5 2; +#X connect 18 0 19 0; +#X connect 19 0 18 0; diff --git a/Gem/examples/01.basic/05.cube.pd b/Gem/examples/01.basic/05.cube.pd new file mode 100644 index 0000000..dd5d72e --- /dev/null +++ b/Gem/examples/01.basic/05.cube.pd @@ -0,0 +1,44 @@ +#N canvas 361 165 602 280 10; +#X obj 372 91 gemhead; +#X floatatom 416 122 0 -4.5 4.5 0 - - -; +#X obj 372 197 cube; +#X obj 372 159 translateXYZ; +#X obj 30 109 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 59 26 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X obj 59 45 t b b; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 1 1 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 35 153 pd gemwin; +#X msg 35 129 create; +#X text 31 109 Create window and render; +#X connect 0 0 3 0; +#X connect 1 0 3 1; +#X connect 1 0 3 2; +#X connect 3 0 2 0; +#X connect 5 0 6 0; +#X connect 6 0 5 0; diff --git a/Gem/examples/01.basic/06.sphere.pd b/Gem/examples/01.basic/06.sphere.pd new file mode 100644 index 0000000..9117bf7 --- /dev/null +++ b/Gem/examples/01.basic/06.sphere.pd @@ -0,0 +1,55 @@ +#N canvas 393 222 603 394 10; +#X obj 275 174 gemhead; +#X floatatom 319 205 0 0 0 0 - - -; +#X obj 275 317 sphere; +#X obj 22 325 world_light; +#X obj 22 283 gemhead 1; +#X text 377 279 change the number of slices; +#X obj 275 242 rotateXYZ; +#X msg 340 280 15; +#X msg 303 280 5; +#X obj 31 53 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 59 26 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X obj 59 45 t b b; +#X msg 51 75 lighting 1; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 0 4 0; +#X connect 3 1 1 0; +#X connect 4 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 36 97 pd gemwin; +#X msg 36 73 create; +#X text 32 53 Create window and render; +#X connect 0 0 6 0; +#X connect 1 0 6 1; +#X connect 1 0 6 2; +#X connect 4 0 3 0; +#X connect 6 0 2 0; +#X connect 7 0 2 2; +#X connect 8 0 2 2; +#X connect 10 0 11 0; +#X connect 11 0 10 0; diff --git a/Gem/examples/01.basic/07.cylinder.pd b/Gem/examples/01.basic/07.cylinder.pd new file mode 100644 index 0000000..fcc9bfe --- /dev/null +++ b/Gem/examples/01.basic/07.cylinder.pd @@ -0,0 +1,62 @@ +#N canvas 393 222 603 394 10; +#X obj 274 138 gemhead; +#X floatatom 318 169 0 0 0 0 - - -; +#X obj 22 325 world_light; +#X obj 22 283 gemhead 1; +#X text 369 251 change the number of slices; +#X msg 421 269 15; +#X msg 384 269 5; +#X obj 274 356 cylinder; +#X obj 274 207 rotateXYZ 26 26 0; +#X floatatom 299 303 0 0 0 2 size - -; +#X obj 31 53 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 59 26 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X obj 59 45 t b b; +#X msg 51 75 lighting 1; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 0 4 0; +#X connect 3 1 1 0; +#X connect 4 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 36 97 pd gemwin; +#X msg 36 73 create; +#X text 32 53 Create window and render; +#X obj 94 325 world_light; +#X obj 94 283 gemhead 1; +#X obj 94 302 rotateXYZ 12 54 20; +#X connect 0 0 8 0; +#X connect 1 0 8 1; +#X connect 1 0 8 2; +#X connect 3 0 2 0; +#X connect 5 0 7 2; +#X connect 6 0 7 2; +#X connect 8 0 7 0; +#X connect 9 0 7 1; +#X connect 11 0 12 0; +#X connect 12 0 11 0; +#X connect 15 0 16 0; +#X connect 16 0 14 0; diff --git a/Gem/examples/01.basic/08.model.pd b/Gem/examples/01.basic/08.model.pd new file mode 100644 index 0000000..415daac --- /dev/null +++ b/Gem/examples/01.basic/08.model.pd @@ -0,0 +1,61 @@ +#N canvas 348 152 673 462 12; +#X floatatom 460 79 0 0 0 0 - - -; +#X obj 385 44 gemhead; +#X floatatom 446 179 0 0 0 0 - - -; +#X obj 212 283 gemhead 1; +#X obj 212 321 world_light; +#X text 185 21 load in a model file; +#X obj 33 85 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 59 26 loadbang; +#X msg 165 79 reset; +#X obj 118 113 outlet; +#X obj 59 45 t b b; +#X obj 167 38 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X msg 54 75 lighting 1; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 0 5 0; +#X connect 3 1 1 0; +#X connect 4 0 5 0; +#X connect 5 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 38 129 pd gemwin; +#X msg 38 105 destroy; +#X text 34 85 Create window and render; +#X text 69 378 Gem can load 3d-models in the alias|wavefront .obj format +; +#X obj 385 255 model ../data/venus.obj; +#X obj 385 205 rotate 0 0 1 0; +#X obj 385 134 translate 0 0 0 1; +#X obj 460 103 / 100; +#X connect 0 0 14 0; +#X connect 1 0 13 0; +#X connect 2 0 12 1; +#X connect 3 0 4 0; +#X connect 7 0 8 0; +#X connect 8 0 7 0; +#X connect 12 0 11 0; +#X connect 13 0 12 0; +#X connect 14 0 13 1; diff --git a/Gem/examples/01.basic/09.yelloTeapot.pd b/Gem/examples/01.basic/09.yelloTeapot.pd new file mode 100644 index 0000000..328e9b8 --- /dev/null +++ b/Gem/examples/01.basic/09.yelloTeapot.pd @@ -0,0 +1,65 @@ +#N canvas 56 98 635 502 12; +#X obj 350 226 gemhead; +#X floatatom 458 298 0 0 0 0 - - -; +#X obj 350 286 color; +#X msg 452 231 1 1 1; +#X text 438 159 change the color; +#X obj 350 379 teapot; +#X obj 350 337 rotateXYZ; +#X obj 29 398 gemhead; +#X obj 29 420 world_light; +#X msg 452 196 1 1 0; +#X text 109 29 this demonstrates how to create a yellow teapot; +#X text 449 277 rotate the teapot; +#X msg 456 365 draw line; +#X msg 453 395 draw fill; +#X obj 31 73 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 59 26 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X obj 59 45 t b b; +#X msg 51 75 lighting 1; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 0 4 0; +#X connect 3 1 1 0; +#X connect 4 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 36 117 pd gemwin; +#X msg 36 93 create; +#X text 32 73 Create window and render; +#X text 32 261 this is the famous; +#X text 52 294 utah teapot; +#X connect 0 0 2 0; +#X connect 1 0 6 1; +#X connect 1 0 6 2; +#X connect 2 0 6 0; +#X connect 3 0 2 1; +#X connect 6 0 5 0; +#X connect 7 0 8 0; +#X connect 9 0 2 1; +#X connect 12 0 5 0; +#X connect 13 0 5 0; +#X connect 15 0 16 0; +#X connect 16 0 15 0; diff --git a/Gem/examples/02.advanced/00.gemwin-subpatch.pd b/Gem/examples/02.advanced/00.gemwin-subpatch.pd new file mode 100644 index 0000000..5f0fc8f --- /dev/null +++ b/Gem/examples/02.advanced/00.gemwin-subpatch.pd @@ -0,0 +1,61 @@ +#N canvas 0 0 725 412 10; +#N canvas 95 194 290 179 Gem.init 0; +#X obj 83 30 loadbang; +#X msg 83 67 reset; +#X obj 83 107 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 100 115 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 100 134 pd gemwin; +#X text 247 146 just enable the toggle labeled "rendering" to create +a window and start rendering \; switching the toggle off will destroy +the window; +#X text 260 60 by now we assume that you know how to control a Gem-window +; +#X text 252 268 apart from that \, the subpatch is really the same +as [gemwin] itself \; e.g. you can send any message to it that [gemwin] +understands.; +#X text 249 204 thus you don't have to click on [create( and then [1( +anymore...; +#X text 249 113 for the sake of simplicity \, from now on the examples +will use the subpatch on the left side to control the Gem-window.; +#X connect 0 0 1 0; diff --git a/Gem/examples/02.advanced/01.Separator.pd b/Gem/examples/02.advanced/01.Separator.pd new file mode 100644 index 0000000..06d4c7a --- /dev/null +++ b/Gem/examples/02.advanced/01.Separator.pd @@ -0,0 +1,143 @@ +#N canvas 215 32 781 537 10; +#X obj 607 137 separator; +#X msg 697 200 1; +#X msg 734 199 0; +#X text 206 264 on; +#X text 243 262 off; +#X msg 19 288 1; +#X msg 55 290 0; +#X msg 200 290 1; +#X msg 238 290 0; +#X obj 276 308 gemhead 1; +#X obj 482 240 int 0; +#X obj 534 241 + 2; +#X floatatom 646 302 0 0 0 0 - - -; +#X obj 607 464 sphere; +#X obj 488 19 gemhead; +#X floatatom 482 273 0 0 0 0 - - -; +#X obj 97 350 world_light; +#X obj 97 295 gemhead 1; +#X obj 443 418 sphere; +#X obj 646 275 int 0; +#X obj 276 364 light; +#X msg 644 431 20; +#X msg 480 388 5; +#X text 31 246 global light; +#X text 242 236 local light; +#X text 25 266 on; +#X text 55 267 off; +#X obj 482 206 metro 50; +#X msg 482 176 1; +#X msg 519 178 0; +#X obj 646 241 metro 100; +#X obj 708 273 + 1; +#X obj 443 142 separator; +#X obj 443 338 translateXYZ 2 0 0; +#X obj 443 301 rotate 0 1 0; +#X obj 607 341 rotate 1 0 0; +#X obj 607 374 translateXYZ 0 2 0; +#X obj 607 179 color 0 1 0; +#X obj 644 401 r initstuff; +#X obj 480 362 r initstuff; +#X obj 94 473 s initstuff; +#X obj 94 443 loadbang; +#X obj 488 99 translateXYZ; +#X floatatom 540 62 0 0 0 0 - - -; +#X text 582 60 change this number; +#N canvas 95 194 290 179 Gem.init 0; +#X obj 83 30 loadbang; +#X msg 161 76 reset; +#X obj 45 107 outlet; +#X msg 45 75 dimen 300 300; +#X obj 88 51 t b b; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 3 0 2 0; +#X connect 4 0 3 0; +#X connect 4 1 1 0; +#X restore 230 117 pd Gem.init; +#X msg 100 102 lighting \$1; +#X text 89 60 turn lighting on/off; +#X obj 100 78 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 100 134 pd gemwin; +#X connect 0 0 37 0; +#X connect 1 0 30 0; +#X connect 2 0 30 0; +#X connect 2 0 19 0; +#X connect 5 0 16 0; +#X connect 6 0 16 0; +#X connect 7 0 20 0; +#X connect 8 0 20 0; +#X connect 9 0 20 0; +#X connect 10 0 11 0; +#X connect 10 0 15 0; +#X connect 11 0 10 1; +#X connect 12 0 35 1; +#X connect 14 0 42 0; +#X connect 15 0 34 1; +#X connect 17 0 16 0; +#X connect 19 0 12 0; +#X connect 19 0 31 0; +#X connect 21 0 13 2; +#X connect 22 0 18 2; +#X connect 27 0 10 0; +#X connect 28 0 27 0; +#X connect 29 0 27 0; +#X connect 29 0 10 0; +#X connect 30 0 19 0; +#X connect 31 0 19 1; +#X connect 32 0 34 0; +#X connect 33 0 18 0; +#X connect 34 0 33 0; +#X connect 35 0 36 0; +#X connect 36 0 13 0; +#X connect 37 0 35 0; +#X connect 38 0 21 0; +#X connect 39 0 22 0; +#X connect 41 0 40 0; +#X connect 42 0 32 0; +#X connect 42 0 0 0; +#X connect 43 0 42 2; +#X connect 45 0 49 0; +#X connect 46 0 49 0; +#X connect 48 0 46 0; diff --git a/Gem/examples/02.advanced/02.Ortho.pd b/Gem/examples/02.advanced/02.Ortho.pd new file mode 100644 index 0000000..329b2f8 --- /dev/null +++ b/Gem/examples/02.advanced/02.Ortho.pd @@ -0,0 +1,87 @@ +#N canvas 396 100 600 500 10; +#X obj 358 140 gemhead; +#X floatatom 377 222 0 0 0 0 - - -; +#X obj 358 256 rotateXYZ; +#X obj 150 135 gemhead 60; +#X obj 150 162 ortho; +#X obj 150 314 colorRGB 0 1 0; +#X obj 358 332 model ../data/venus.obj; +#X obj 150 347 model ../data/venus.obj; +#X obj 12 257 gemhead 1; +#X obj 12 296 world_light; +#X floatatom 169 213 0 0 0 0 - - -; +#X obj 150 249 rotateXYZ; +#X obj 358 182 translateXYZ 1 0 0; +#X obj 150 189 translateXYZ -1 0 0; +#X obj 358 301 scale 3; +#X obj 150 282 scale 3; +#X text 168 6 display two models; +#X text 136 85 rotate the two models to see the effect; +#N canvas 22 20 213 300 Gem.init 0; +#X obj 71 191 outlet; +#X obj 71 81 loadbang; +#X msg 101 134 reset; +#X obj 71 109 t b b; +#X msg 71 164 lighting 1; +#X connect 1 0 3 0; +#X connect 2 0 0 0; +#X connect 3 0 4 0; +#X connect 3 1 2 0; +#X connect 4 0 0 0; +#X restore 43 61 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 18 95 pd gemwin; +#X text 142 32 one model is in "perspective" mode; +#X text 159 54 the other is in "orthographic" mode; +#X connect 0 0 12 0; +#X connect 1 0 2 1; +#X connect 2 0 14 0; +#X connect 3 0 4 0; +#X connect 4 0 13 0; +#X connect 5 0 7 0; +#X connect 8 0 9 0; +#X connect 10 0 11 1; +#X connect 11 0 15 0; +#X connect 12 0 2 0; +#X connect 13 0 11 0; +#X connect 14 0 6 0; +#X connect 15 0 5 0; +#X connect 18 0 19 0; diff --git a/Gem/examples/02.advanced/03.View.pd b/Gem/examples/02.advanced/03.View.pd new file mode 100644 index 0000000..835e551 --- /dev/null +++ b/Gem/examples/02.advanced/03.View.pd @@ -0,0 +1,85 @@ +#N canvas 55 43 729 499 10; +#X obj 309 426 gemhead; +#X obj 179 426 gemhead 1; +#X obj 179 464 world_light; +#X obj 309 464 model ../data/venus.obj; +#X msg 240 111 view 0 0 \$1; +#X floatatom 240 85 0 0 0 0 - - -; +#X text 344 85 move the camera; +#X msg 240 183 view 0 0 4 \$1; +#X floatatom 240 147 0 0 0 0 - - -; +#X text 343 106 default is 0 \, 0 \, 4; +#X text 370 168 turn left and right; +#X floatatom 236 220 0 0 0 0 - - -; +#X msg 236 256 view 0 0 4 0 \$1; +#X text 363 237 turn up and down; +#X floatatom 237 294 0 0 0 0 - - -; +#X msg 237 330 view 0 0 4 \$1 \$1; +#X text 296 301 turn left and right and up and down; +#N canvas 22 20 213 300 Gem.init 0; +#X obj 71 191 outlet; +#X obj 71 81 loadbang; +#X msg 101 134 reset; +#X obj 71 109 t b b; +#X msg 71 164 lighting 1; +#X connect 1 0 3 0; +#X connect 2 0 0 0; +#X connect 3 0 4 0; +#X connect 3 1 2 0; +#X connect 4 0 0 0; +#X restore 29 176 pd Gem.init; +#X text 185 21 change the view-point; +#X msg 542 107 view x y z; +#X msg 547 184 view x y z phi; +#X msg 550 267 view x y z phi theta; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 29 200 pd gemwin; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 4 0 22 0; +#X connect 5 0 4 0; +#X connect 7 0 22 0; +#X connect 8 0 7 0; +#X connect 11 0 12 0; +#X connect 12 0 22 0; +#X connect 14 0 15 0; +#X connect 15 0 22 0; +#X connect 17 0 22 0; diff --git a/Gem/examples/02.advanced/03.View_OSD.pd b/Gem/examples/02.advanced/03.View_OSD.pd new file mode 100644 index 0000000..e376276 --- /dev/null +++ b/Gem/examples/02.advanced/03.View_OSD.pd @@ -0,0 +1,317 @@ +#N canvas 50 151 946 464 10; +#N canvas 50 173 290 229 Gem.init 0; +#X obj 71 191 outlet; +#X obj 71 81 loadbang; +#X msg 101 134 reset; +#X obj 71 109 t b b; +#X msg 71 164 lighting 1; +#X msg 155 164 lighting 0; +#X connect 1 0 3 0; +#X connect 2 0 0 0; +#X connect 3 0 4 0; +#X connect 3 1 2 0; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X restore 48 98 pd Gem.init; +#X obj 249 195 cube; +#X msg 249 121 set \$1; +#X floatatom 249 98 5 0 0 0 - - -; +#X obj 249 169 translateXYZ 1 2 -3; +#X obj 77 130 r view_mess; +#N canvas 298 685 450 300 lighting 0; +#X obj 214 196 world_light; +#X obj 214 136 gemhead 1; +#X obj 65 157 world_light; +#X obj 65 105 gemhead 1; +#X msg 278 97 0.5 0.8 0.6; +#X obj 271 67 loadbang; +#X obj 65 129 rotateXYZ -104 160 0; +#X obj 214 164 rotateXYZ 104 -100 0; +#X msg 137 98 1 1 1; +#X obj 65 44 - 1; +#X obj 65 18 inlet; +#X msg 65 68 set \$1; +#X connect 1 0 7 0; +#X connect 3 0 6 0; +#X connect 4 0 0 1; +#X connect 5 0 8 0; +#X connect 5 0 4 0; +#X connect 6 0 2 0; +#X connect 7 0 0 0; +#X connect 8 0 2 1; +#X connect 9 0 11 0; +#X connect 10 0 9 0; +#X connect 11 0 3 0; +#X connect 11 0 1 0; +#X restore 604 108 pd lighting; +#X obj 271 291 translateXYZ 0 -2 -2; +#X obj 271 265 gemhead -50; +#X obj 550 108 gemhead; +#X obj 550 131 model ../data/venus.obj; +#X obj 249 145 gemhead -50; +#X obj 271 315 text2d; +#N canvas 6 51 381 205 textinit 0; +#X obj 85 140 outlet; +#X obj 94 63 loadbang; +#X msg 100 107 text press left button and move mouse; +#X msg 82 86 font ../data/vera.ttf; +#X connect 1 0 3 0; +#X connect 1 0 2 0; +#X connect 2 0 0 0; +#X connect 3 0 0 0; +#X restore 469 297 pd textinit; +#X obj 249 56 tgl 15 0 empty stay_cube empty 0 -6 0 8 -262144 -1 -1 +0 100; +#X obj 249 76 - 50; +#X text 125 6 change the view-point \, but keep some objects at a fixed +position; +#X text 307 120 set the priority for rendering; +#X text 431 188 a priority<0 will be rendered AFTER all other things +\, and with viewpoint set to the origin! (objects will not be affected +by a change of view); +#X text 431 240 this is good for displaying logos \, help messages +and cetera...; +#X obj 588 282 gemhead -50; +#N canvas 108 327 419 265 textinit 0; +#X obj 82 198 outlet; +#X obj 78 82 loadbang; +#X msg 97 165 text occasionally press right button; +#X obj 225 10 gemhead -1; +#X obj 225 80 spigot; +#X obj 225 39 t b b; +#X obj 225 102 t b f; +#X obj 264 60 f 1; +#X msg 225 126 font ../data/vera.ttf; +#X connect 1 0 2 0; +#X connect 2 0 0 0; +#X connect 3 0 5 0; +#X connect 4 0 6 0; +#X connect 5 0 4 0; +#X connect 5 1 7 0; +#X connect 6 0 8 0; +#X connect 6 1 7 1; +#X connect 7 0 4 1; +#X connect 8 0 0 0; +#X restore 786 389 pd textinit; +#X obj 588 407 text3d; +#X obj 588 380 rotateXYZ; +#X obj 588 332 render_trigger; +#X obj 634 353 i; +#X obj 687 353 % 360; +#X obj 660 353 - 5; +#X obj 588 308 translateXYZ 0 -7 -10; +#N canvas 231 652 445 426 mousemove 0; +#X obj 129 8 gemmouse; +#X obj 136 88 pack; +#X obj 136 110 spigot; +#X obj 136 131 unpack; +#X obj 136 196 t f f; +#X obj 36 16 gemkeyname; +#X obj 36 39 pack 0 s; +#X obj 36 62 route 1; +#X msg 36 107 0; +#X msg 136 365 view \$2 \$3 \$1 0 0 0 0 1 0; +#X obj 136 173 +; +#X obj 136 221 * -1; +#X obj 201 237 t f f; +#X obj 201 174 +; +#X obj 201 262 * -1; +#X obj 36 129 t f f f; +#X obj 136 388 s view_mess; +#X text 61 106 reset; +#N canvas 292 198 304 356 coordinates 0; +#X obj 89 52 inlet; +#X obj 94 331 outlet; +#X obj 193 62 atan; +#X msg 193 41 1; +#X obj 193 84 / 45; +#X obj 193 20 loadbang; +#X text 94 29 r phi theta; +#X obj 89 78 unpack 0 0 0; +#X obj 128 123 *; +#X obj 168 123 *; +#X obj 120 197 cos; +#X obj 150 198 sin; +#X obj 120 166 t f f; +#X obj 183 198 cos; +#X obj 213 199 sin; +#X obj 183 167 t f f; +#X obj 120 230 *; +#X obj 150 231 *; +#X obj 85 275 *; +#X obj 125 275 *; +#X obj 174 277 *; +#X obj 66 242 t f f f; +#X obj 91 308 pack 0 0 0; +#X connect 0 0 7 0; +#X connect 2 0 4 0; +#X connect 3 0 2 0; +#X connect 4 0 9 1; +#X connect 4 0 8 1; +#X connect 5 0 3 0; +#X connect 7 0 21 0; +#X connect 7 1 8 0; +#X connect 7 2 9 0; +#X connect 8 0 12 0; +#X connect 9 0 15 0; +#X connect 10 0 16 0; +#X connect 11 0 17 0; +#X connect 12 0 10 0; +#X connect 12 1 11 0; +#X connect 13 0 16 1; +#X connect 13 0 17 1; +#X connect 14 0 20 1; +#X connect 15 0 13 0; +#X connect 15 1 14 0; +#X connect 16 0 18 1; +#X connect 17 0 19 1; +#X connect 18 0 22 0; +#X connect 19 0 22 1; +#X connect 20 0 22 2; +#X connect 21 0 18 0; +#X connect 21 1 19 0; +#X connect 21 2 20 0; +#X connect 22 0 1 0; +#X restore 136 310 pd coordinates; +#X obj 136 249 t b f; +#X obj 136 289 pack 4 0 0; +#X obj 177 46 t f f; +#X obj 177 67 -; +#X obj 136 45 t f f; +#X obj 136 66 -; +#X obj 278 57 s stay_cube; +#X obj 278 35 select 1; +#X obj 201 151 * 0.5; +#X obj 136 153 * 0.5; +#X obj 201 209 clip -90 90; +#N canvas 1020 394 450 300 space 0; +#X obj 42 13 inlet; +#X obj 42 35 symbol; +#X obj 42 87 select space; +#X obj 123 111 select space; +#X obj 204 87 makefilename %c; +#X msg 204 59 32; +#X obj 42 57 t s b; +#X obj 42 159 t b; +#X obj 42 181 outlet; +#X connect 0 0 1 0; +#X connect 1 0 6 0; +#X connect 2 0 7 0; +#X connect 2 1 3 0; +#X connect 3 0 7 0; +#X connect 4 0 3 1; +#X connect 5 0 4 0; +#X connect 6 0 2 0; +#X connect 6 1 5 0; +#X connect 7 0 8 0; +#X restore 36 85 pd space; +#X connect 0 0 23 0; +#X connect 0 1 21 0; +#X connect 0 2 2 1; +#X connect 0 4 26 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 28 0; +#X connect 3 1 27 0; +#X connect 4 0 11 0; +#X connect 4 1 10 1; +#X connect 5 0 6 0; +#X connect 5 1 6 1; +#X connect 6 0 7 0; +#X connect 7 0 30 0; +#X connect 8 0 15 0; +#X connect 9 0 16 0; +#X connect 10 0 4 0; +#X connect 11 0 19 0; +#X connect 12 0 14 0; +#X connect 12 1 13 1; +#X connect 13 0 29 0; +#X connect 14 0 20 2; +#X connect 15 0 10 0; +#X connect 15 1 10 1; +#X connect 15 1 13 0; +#X connect 15 2 13 1; +#X connect 18 0 9 0; +#X connect 19 0 20 0; +#X connect 19 1 20 1; +#X connect 20 0 18 0; +#X connect 21 0 22 1; +#X connect 21 1 22 0; +#X connect 22 0 1 1; +#X connect 23 0 24 1; +#X connect 23 1 24 0; +#X connect 24 0 1 0; +#X connect 26 0 25 0; +#X connect 27 0 13 0; +#X connect 28 0 10 0; +#X connect 29 0 12 0; +#X connect 30 0 8 0; +#X restore 731 34 pd mousemove; +#X text 275 48 0...[cube] is rendered OSD; +#X text 275 60 1...[cube] is rendered at "view"; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 48 204 pd gemwin; +#X obj 604 88 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 2 +2; +#X text 632 87 <- should the view affect light position or not; +#X connect 0 0 32 0; +#X connect 2 0 11 0; +#X connect 3 0 2 0; +#X connect 4 0 1 0; +#X connect 5 0 32 0; +#X connect 7 0 12 0; +#X connect 8 0 7 0; +#X connect 9 0 10 0; +#X connect 11 0 4 0; +#X connect 13 0 12 0; +#X connect 14 0 15 0; +#X connect 15 0 3 0; +#X connect 20 0 28 0; +#X connect 21 0 22 0; +#X connect 23 0 22 0; +#X connect 24 0 23 0; +#X connect 24 1 25 0; +#X connect 25 0 27 0; +#X connect 25 0 23 1; +#X connect 26 0 25 1; +#X connect 27 0 26 0; +#X connect 28 0 24 0; +#X connect 33 0 6 0; diff --git a/Gem/examples/02.advanced/04.Fog.pd b/Gem/examples/02.advanced/04.Fog.pd new file mode 100644 index 0000000..28991af --- /dev/null +++ b/Gem/examples/02.advanced/04.Fog.pd @@ -0,0 +1,99 @@ +#N canvas 275 99 721 506 10; +#X floatatom 414 85 0 0 0 0 - - -; +#X obj 385 44 gemhead; +#X floatatom 403 165 0 0 0 0 - - -; +#X obj 268 149 gemhead 1; +#X obj 268 187 world_light; +#X obj 385 279 model ../data/venus.obj; +#X obj 385 134 translateXYZ; +#X obj 385 205 rotateXYZ; +#X obj 385 238 scale 3; +#X obj 40 198 r fogmess; +#X msg 335 395 \; fogmess fogmode 2 \; fogmess fog 0.1; +#X msg 11 394 \; fogmess fogmode 0; +#X msg 172 393 \; fogmess fogmode 1 \; fogmess fog 0.7; +#X text 39 349 no fog; +#X text 190 354 linear fog; +#X text 371 353 exp fog; +#X text 520 357 exp^2 fog; +#X msg 485 399 \; fogmess fogmode 3 \; fogmess fog 0.1; +#X text 184 21 various fog types; +#X obj 522 132 gemhead; +#X floatatom 458 97 5 0 0 0 - - -; +#X obj 522 170 rotateXYZ 0 -117 0; +#X obj 522 189 square 5; +#X obj 522 151 translateXYZ -3.5 0 -6.57; +#X obj 385 22 tgl 15 1 empty empty empty 20 8 0 8 -262144 -1 -1 1 1 +; +#X obj 522 113 tgl 15 1 empty empty empty 20 8 0 8 -262144 -1 -1 1 +1; +#N canvas 26 40 290 300 Gem.init 0; +#X obj 71 191 outlet; +#X obj 71 81 loadbang; +#X msg 101 134 reset; +#X obj 71 109 t b b; +#X msg 71 164 lighting 1; +#X msg 131 165 fogcolor 1 0 0; +#X connect 1 0 3 0; +#X connect 2 0 0 0; +#X connect 3 0 4 0; +#X connect 3 0 5 0; +#X connect 3 1 2 0; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X restore 59 219 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 40 258 pd gemwin; +#X connect 0 0 6 3; +#X connect 1 0 6 0; +#X connect 2 0 7 1; +#X connect 3 0 4 0; +#X connect 6 0 7 0; +#X connect 7 0 8 0; +#X connect 8 0 5 0; +#X connect 9 0 27 0; +#X connect 19 0 23 0; +#X connect 20 0 6 1; +#X connect 21 0 22 0; +#X connect 23 0 21 0; +#X connect 24 0 1 0; +#X connect 25 0 19 0; +#X connect 26 0 27 0; diff --git a/Gem/examples/02.advanced/05.Stereo.pd b/Gem/examples/02.advanced/05.Stereo.pd new file mode 100644 index 0000000..8fc351e --- /dev/null +++ b/Gem/examples/02.advanced/05.Stereo.pd @@ -0,0 +1,97 @@ +#N canvas 631 50 600 504 10; +#X obj 426 54 gemhead; +#X floatatom 464 134 0 0 0 0 - - -; +#X obj 464 307 gemhead 1; +#X obj 464 332 world_light; +#X obj 426 181 model ../data/venus.obj; +#X text 185 21 load in a model file; +#X obj 426 81 translateXYZ 0 0 2; +#X obj 426 157 rotateXYZ; +#X text 149 40 and display it stereoscopically; +#X msg 221 130 stereoSep \$1; +#X msg 318 129 stereoFoc \$1; +#X floatatom 221 92 0 0 0 0 - - -; +#X floatatom 318 87 0 0 0 0 - - -; +#X text 23 295 The default stereoSep is -15; +#X text 23 315 The model may appear inside out depending on what viewing +method you use.; +#X text 23 350 If it does \, change the stereoSep to 15; +#N canvas 30 60 290 300 Gem.init 0; +#X obj 71 191 outlet; +#X obj 71 81 loadbang; +#X msg 101 134 reset; +#X obj 71 109 t b b; +#X msg 71 164 lighting 1; +#X msg 148 165 stereo 1; +#X connect 1 0 3 0; +#X connect 2 0 0 0; +#X connect 3 0 4 0; +#X connect 3 0 5 0; +#X connect 3 1 2 0; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X restore 58 173 pd Gem.init; +#X msg 271 206 stereo 1; +#X msg 271 228 stereo 2; +#X msg 271 271 stereo 0; +#X text 335 207 2 separate images; +#X text 338 230 red/green stereo; +#X text 336 273 no stereo; +#X msg 271 248 stereo 3; +#X text 338 250 crystal eyes stereo; +#X text 32 402 NOTE: you need special hardware to use "crystal eyes +stereo"; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 58 207 pd gemwin; +#X connect 0 0 6 0; +#X connect 1 0 7 2; +#X connect 2 0 3 0; +#X connect 6 0 7 0; +#X connect 7 0 4 0; +#X connect 9 0 26 0; +#X connect 10 0 26 0; +#X connect 11 0 9 0; +#X connect 12 0 10 0; +#X connect 16 0 26 0; +#X connect 17 0 26 0; +#X connect 18 0 26 0; +#X connect 19 0 26 0; +#X connect 23 0 26 0; diff --git a/Gem/examples/02.advanced/06.StereoParticle.pd b/Gem/examples/02.advanced/06.StereoParticle.pd new file mode 100644 index 0000000..80b1f06 --- /dev/null +++ b/Gem/examples/02.advanced/06.StereoParticle.pd @@ -0,0 +1,88 @@ +#N canvas 396 160 600 500 10; +#X obj 198 50 gemhead; +#X obj 198 82 part_head; +#X obj 198 136 part_color; +#X obj 198 447 part_draw; +#X msg 335 69 0 1 0; +#X text 329 37 set the color range; +#X obj 198 331 part_gravity 0 -0.01 0; +#X obj 198 206 part_velsphere 0 0.2 0 0.2; +#X text 310 269 set the number per frame; +#X text 310 378 set the age to kill at; +#X text 366 327 gravity to affect the particles; +#X text 408 174 the velocity domain; +#X text 406 191 a sphere at 0 \, 0.2 \, 0; +#X msg 219 413 draw line; +#X msg 298 413 draw point; +#X msg 393 69 1 0 0; +#X obj 198 270 part_source 25; +#X obj 198 381 part_killold 45; +#X text 406 208 radius = 0.2; +#X msg 31 131 stereoSep 15; +#X obj 198 174 part_size 2; +#N canvas 26 40 290 300 Gem.init 0; +#X obj 71 191 outlet; +#X obj 71 81 loadbang; +#X msg 101 134 reset; +#X obj 71 109 t b b; +#X msg 71 164 stereo 1; +#X connect 1 0 3 0; +#X connect 2 0 0 0; +#X connect 3 0 4 0; +#X connect 3 1 2 0; +#X connect 4 0 0 0; +#X restore 87 170 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 31 187 pd gemwin; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 20 0; +#X connect 4 0 2 1; +#X connect 6 0 17 0; +#X connect 7 0 16 0; +#X connect 13 0 3 0; +#X connect 14 0 3 0; +#X connect 15 0 2 2; +#X connect 16 0 6 0; +#X connect 17 0 3 0; +#X connect 19 0 22 0; +#X connect 20 0 7 0; +#X connect 21 0 22 0; diff --git a/Gem/examples/02.advanced/07.Snapshot1.pd b/Gem/examples/02.advanced/07.Snapshot1.pd new file mode 100644 index 0000000..55b7776 --- /dev/null +++ b/Gem/examples/02.advanced/07.Snapshot1.pd @@ -0,0 +1,87 @@ +#N canvas 396 100 600 375 10; +#X obj 210 252 gemhead; +#X obj 210 312 model ../data/venus.obj; +#X text 117 4 snap a portion of the graphics window into a texture +; +#X obj 210 278 translateXYZ 0 0 2; +#X obj 423 193 gemhead; +#X obj 423 255 pix_texture; +#X msg 294 88 snap; +#X msg 275 56 bang; +#X msg 355 148 bang; +#X msg 328 120 bang; +#X obj 423 226 pix_snap 0 0 256 256; +#X obj 423 284 rotateXYZ 0 45 25; +#X obj 423 317 square 4; +#X text 327 54 draw the model; +#X text 348 87 snap the frame buffer; +#X text 390 120 clear the frame buffer; +#X text 407 146 draw the snapped texture; +#N canvas 26 40 290 300 Gem.init 0; +#X obj 71 191 outlet; +#X obj 71 81 loadbang; +#X msg 101 134 reset; +#X obj 71 109 t b b; +#X msg 71 164 dimen 256 256; +#X msg 179 165 buffer 1; +#X connect 1 0 3 0; +#X connect 2 0 0 0; +#X connect 3 0 4 0; +#X connect 3 0 5 0; +#X connect 3 1 2 0; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X restore 30 120 pd Gem.init; +#X text 123 20 notice that this is using single buffered (see Gem.init) +drawing!; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 30 137 pd gemwin; +#X connect 0 0 3 0; +#X connect 3 0 1 0; +#X connect 4 0 10 0; +#X connect 5 0 11 0; +#X connect 6 0 10 0; +#X connect 7 0 0 0; +#X connect 8 0 4 0; +#X connect 9 0 19 0; +#X connect 10 0 5 0; +#X connect 11 0 12 0; +#X connect 17 0 19 0; diff --git a/Gem/examples/02.advanced/08.Snapshot2.pd b/Gem/examples/02.advanced/08.Snapshot2.pd new file mode 100644 index 0000000..ef84f34 --- /dev/null +++ b/Gem/examples/02.advanced/08.Snapshot2.pd @@ -0,0 +1,138 @@ +#N canvas 389 0 635 537 10; +#X obj 64 405 gemhead; +#X obj 64 509 model ../data/venus.obj; +#X text 115 2 snap a portion of the graphics window into a texture +; +#X obj 399 365 pix_texture; +#X obj 399 430 rotateXYZ; +#X floatatom 500 399 0 0 0 0 - - -; +#X msg 339 350 snap; +#X msg 110 370 0; +#X obj 399 256 render_trigger; +#X obj 399 329 pix_snap 0 0 256 256; +#X obj 399 219 gemhead 60; +#X obj 399 453 square 3; +#X msg 34 94 \; render 1; +#X msg 32 50 \; render 0; +#X obj 18 181 r render; +#X obj 180 360 r render; +#X obj 295 322 t b b; +#X obj 295 197 r render; +#X msg 295 260 clear; +#X obj 295 229 sel 1; +#X obj 233 400 gemhead; +#X obj 233 510 model ../data/venus.obj; +#X obj 233 472 color 1 0 0; +#X obj 64 478 color 0 1 0; +#X obj 233 432 translateXYZ 1 0 1; +#X obj 64 438 translateXYZ -1 0 1; +#X text 369 155 notice that we use render_trigger; +#X text 369 172 to make sure that we snap before; +#X text 373 190 the square is drawn; +#X text 126 42 you may need to turn rendering off \, then on; +#X text 128 59 to get the snap to work right. This is because; +#X text 127 77 the first time rendering is turned on \, we might; +#X text 128 95 have garbage in the frame buffer; +#X text 127 126 rotate the square to see the texture; +#N canvas 26 40 290 300 Gem.init 0; +#X obj 71 191 outlet; +#X obj 71 81 loadbang; +#X msg 101 134 reset; +#X obj 71 109 t b b; +#X msg 71 164 dimen 256 256; +#X connect 1 0 3 0; +#X connect 2 0 0 0; +#X connect 3 0 4 0; +#X connect 3 1 2 0; +#X connect 4 0 0 0; +#X restore 84 181 pd Gem.init; +#N canvas 0 0 450 300 oneshot 0; +#X obj 93 82 inlet; +#X obj 187 148 bang; +#X msg 187 167 1; +#X obj 93 214 spigot; +#X msg 155 168 0; +#X obj 93 172 t a b; +#X obj 93 240 t a b; +#X obj 136 192 i 1; +#X obj 93 107 route clear; +#X obj 93 262 outlet; +#X connect 0 0 8 0; +#X connect 1 0 2 0; +#X connect 2 0 7 1; +#X connect 3 0 6 0; +#X connect 4 0 7 1; +#X connect 5 0 3 0; +#X connect 5 1 7 0; +#X connect 6 0 9 0; +#X connect 6 1 4 0; +#X connect 7 0 3 1; +#X connect 8 0 1 0; +#X connect 8 1 5 0; +#X restore 295 287 pd oneshot; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 18 206 pd gemwin; +#X connect 0 0 25 0; +#X connect 3 0 4 0; +#X connect 4 0 11 0; +#X connect 5 0 4 2; +#X connect 6 0 9 0; +#X connect 7 0 0 0; +#X connect 7 0 20 0; +#X connect 8 0 9 0; +#X connect 8 1 35 0; +#X connect 9 0 3 0; +#X connect 10 0 8 0; +#X connect 14 0 36 0; +#X connect 15 0 0 0; +#X connect 15 0 20 0; +#X connect 16 0 7 0; +#X connect 16 1 6 0; +#X connect 17 0 19 0; +#X connect 18 0 35 0; +#X connect 19 0 18 0; +#X connect 20 0 24 0; +#X connect 22 0 21 0; +#X connect 23 0 1 0; +#X connect 24 0 22 0; +#X connect 25 0 23 0; +#X connect 34 0 36 0; +#X connect 35 0 16 0; diff --git a/Gem/examples/02.advanced/09.SnapshotSave.pd b/Gem/examples/02.advanced/09.SnapshotSave.pd new file mode 100644 index 0000000..92bc2eb --- /dev/null +++ b/Gem/examples/02.advanced/09.SnapshotSave.pd @@ -0,0 +1,145 @@ +#N canvas 54 216 940 412 10; +#N canvas 338 262 290 225 Gem.init 0; +#X obj 83 30 loadbang; +#X msg 161 76 reset; +#X obj 45 184 outlet; +#X obj 88 51 t b b; +#X msg 45 75 dimen 128 128; +#X msg 71 109 lighting 1; +#X msg 127 171 color 0.5 0.3 1; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 0 4 0; +#X connect 3 0 5 0; +#X connect 3 0 6 0; +#X connect 3 1 1 0; +#X connect 4 0 2 0; +#X connect 5 0 2 0; +#X connect 6 0 2 0; +#X restore 51 96 pd Gem.init; +#X obj 255 118 gemhead; +#X obj 255 144 render_trigger; +#X obj 332 256 + 1; +#X obj 362 256 % 360; +#X obj 255 279 rotateXYZ; +#X obj 255 359 pix_texture; +#X obj 62 265 gemhead; +#X obj 62 291 world_light; +#X obj 652 251 gemhead 99; +#X obj 548 154 savepanel; +#X msg 673 293 file \$1; +#X obj 420 182 symbol /tmp/gemshot; +#X obj 420 110 bng 30 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 420 280 makefilename %s00000.tif; +#X msg 420 308 open \$1; +#X obj 255 387 square 4; +#X obj 255 334 pix_image; +#X msg 134 269 list 1 1 0.4; +#X obj 255 306 color 1 0.3 1; +#X obj 134 248 loadbang; +#X obj 420 210 t b s b s; +#X obj 420 258 symbol; +#X obj 420 234 del 500; +#X obj 301 188 spigot; +#X obj 338 165 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 +1; +#X floatatom 301 238 5 0 0 0 - - -; +#X obj 301 216 i; +#X obj 548 134 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 338 123 loadbang; +#X text 186 22 similar to the previous example: [pix_write] gets the +current output window and writes it not into a texture but into a file +(TIFF or JPEG); +#X text 492 364 mind the 99: [pix_write] has to be called late \, to +ensure that all that you want is already rendered onto the screen. +; +#X msg 789 285 auto \$1; +#X obj 793 263 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 1 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 51 113 pd gemwin; +#X obj 60 321 gemhead; +#X obj 60 341 translate 1 0 1 0; +#X obj 60 362 color 0 1 0; +#X obj 60 382 sphere 0.5; +#X obj 652 326 pix_write; +#X connect 0 0 34 0; +#X connect 1 0 2 0; +#X connect 2 0 5 0; +#X connect 2 1 24 0; +#X connect 3 0 4 0; +#X connect 4 0 27 1; +#X connect 5 0 19 0; +#X connect 6 0 16 0; +#X connect 7 0 8 0; +#X connect 9 0 39 0; +#X connect 10 0 12 1; +#X connect 11 0 39 0; +#X connect 12 0 21 0; +#X connect 13 0 12 0; +#X connect 14 0 15 0; +#X connect 15 0 17 0; +#X connect 17 0 6 0; +#X connect 18 0 8 1; +#X connect 19 0 17 0; +#X connect 20 0 18 0; +#X connect 21 0 23 0; +#X connect 21 1 22 1; +#X connect 21 2 39 0; +#X connect 21 3 11 0; +#X connect 22 0 14 0; +#X connect 23 0 22 0; +#X connect 24 0 27 0; +#X connect 25 0 24 1; +#X connect 26 0 3 0; +#X connect 26 0 5 1; +#X connect 26 0 5 2; +#X connect 26 0 5 3; +#X connect 27 0 26 0; +#X connect 28 0 10 0; +#X connect 29 0 25 0; +#X connect 32 0 39 0; +#X connect 33 0 32 0; +#X connect 35 0 36 0; +#X connect 36 0 37 0; +#X connect 37 0 38 0; diff --git a/Gem/examples/02.advanced/09.SnapshotSaveHD.pd b/Gem/examples/02.advanced/09.SnapshotSaveHD.pd new file mode 100644 index 0000000..2a2e293 --- /dev/null +++ b/Gem/examples/02.advanced/09.SnapshotSaveHD.pd @@ -0,0 +1,39 @@ +#N canvas 482 49 762 392 10; +#X msg 26 26 create \, 1; +#X msg 39 53 destroy; +#X obj 340 29 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 151 29 gemhead; +#X text 256 220 <- the scene you want to save in the given resolution +; +#X text 359 29 <- save the scene in the given resolution; +#X obj 26 77 gemwin; +#X text 147 283 [snapshotHD] gives the possibility to capture a scene +in a defined resolution. You can see the proportion of the capture +in the GEM window with the white rectangle edge.; +#X obj 151 170 t a b; +#X obj 151 220 accumrotate; +#X obj 151 241 teapot; +#X msg 193 196 1; +#X obj 151 72 s \$0-gemhead; +#X obj 151 125 gemreceive \$0-gemhead; +#X obj 151 145 separator; +#X text 303 136 <-- a [gemhead] replacement; +#X text 387 56 1st and 2nd arguments : resolution (here : 3000x2000 +pixels); +#X obj 151 52 snapshotHD 4000 2000 /tmp/myPic.tif; +#X text 390 74 3rd argument : TIFF file name (here : /tmp/myPic.tif) +; +#X connect 0 0 6 0; +#X connect 1 0 6 0; +#X connect 2 0 17 1; +#X connect 3 0 17 0; +#X connect 8 0 9 0; +#X connect 8 1 11 0; +#X connect 9 0 10 0; +#X connect 11 0 9 2; +#X connect 11 0 9 3; +#X connect 11 0 9 1; +#X connect 13 0 14 0; +#X connect 14 0 8 0; +#X connect 17 0 12 0; diff --git a/Gem/examples/02.advanced/10.LinearPath.pd b/Gem/examples/02.advanced/10.LinearPath.pd new file mode 100644 index 0000000..1a75686 --- /dev/null +++ b/Gem/examples/02.advanced/10.LinearPath.pd @@ -0,0 +1,87 @@ +#N canvas 372 134 624 496 10; +#X floatatom 481 249 0 0 0 0 - - -; +#X msg 422 21 1; +#X msg 455 21 0; +#X floatatom 451 172 0 0 0 0 - - -; +#X obj 350 184 gemhead; +#X obj 350 240 color; +#X obj 350 364 square; +#N canvas 21 297 600 400 arrays 0; +#N canvas 0 0 450 300 (subpatch) 0; +#X array array2 15 float 0; +#X array array3 24 float 0; +#X coords 0 1 15 -1 400 300 1; +#X restore 63 4 graph; +#X restore 38 447 page arrays; +#X obj 422 124 line; +#X msg 422 95 0 \, 1 2000; +#X obj 350 334 translate 1 0 0 0; +#X msg 39 347 \; array2 resize 15 \; array2 read ../data/valcolor.tab +\; array3 resize 24 \; array3 read ../data/valmotion.tab; +#X obj 422 63 metro 2000; +#X obj 422 213 linear_path 3 array2; +#X obj 464 300 linear_path 3 array3; +#X text 109 29 this demonstrates the linear_path object; +#X obj 39 313 loadbang; +#N canvas 26 40 290 300 Gem.init 0; +#X obj 68 196 outlet; +#X obj 68 86 loadbang; +#X msg 68 136 reset; +#X connect 1 0 2 0; +#X connect 2 0 0 0; +#X restore 54 134 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 54 151 pd gemwin; +#X connect 0 0 14 0; +#X connect 1 0 12 0; +#X connect 2 0 12 0; +#X connect 3 0 13 0; +#X connect 4 0 5 0; +#X connect 5 0 10 0; +#X connect 8 0 13 0; +#X connect 8 0 14 0; +#X connect 9 0 8 0; +#X connect 10 0 6 0; +#X connect 12 0 9 0; +#X connect 13 0 5 1; +#X connect 14 0 10 2; +#X connect 16 0 11 0; +#X connect 17 0 18 0; diff --git a/Gem/examples/02.advanced/11.SplinePath.pd b/Gem/examples/02.advanced/11.SplinePath.pd new file mode 100644 index 0000000..3938ed8 --- /dev/null +++ b/Gem/examples/02.advanced/11.SplinePath.pd @@ -0,0 +1,87 @@ +#N canvas 355 106 641 505 10; +#X floatatom 492 288 0 0 0 0 - - -; +#X msg 421 55 1; +#X msg 461 55 0; +#X floatatom 463 210 0 0 0 0 - - -; +#X obj 350 226 gemhead; +#X obj 350 289 color; +#X obj 350 403 square; +#N canvas 21 297 600 400 arrays 0; +#N canvas 0 0 450 300 (subpatch) 0; +#X array array2 18 float 0; +#X array array3 24 float 0; +#X coords 0 1 15 -1 400 300 1; +#X restore 63 4 graph; +#X restore 26 474 page arrays; +#X obj 421 254 spline_path 3 array2; +#X obj 421 163 line; +#X msg 421 129 0 \, 1 2000; +#X obj 350 351 translate 1 0 0 0; +#X obj 464 320 spline_path 3 array3; +#X obj 421 98 metro 2000; +#X text 109 29 this demonstrates the spline_path object; +#X obj 28 345 loadbang; +#X msg 28 380 \; array2 resize 18 \; array2 read ../data/valcolor.tab +\; array3 resize 24 \; array3 read ../data/valmotion.tab; +#N canvas 26 40 290 300 Gem.init 0; +#X obj 68 196 outlet; +#X obj 68 86 loadbang; +#X msg 68 136 reset; +#X connect 1 0 2 0; +#X connect 2 0 0 0; +#X restore 33 148 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 33 171 pd gemwin; +#X connect 0 0 12 0; +#X connect 1 0 13 0; +#X connect 2 0 13 0; +#X connect 3 0 8 0; +#X connect 4 0 5 0; +#X connect 5 0 11 0; +#X connect 8 0 5 1; +#X connect 9 0 8 0; +#X connect 9 0 12 0; +#X connect 10 0 9 0; +#X connect 11 0 6 0; +#X connect 12 0 11 2; +#X connect 13 0 10 0; +#X connect 15 0 16 0; +#X connect 17 0 18 0; diff --git a/Gem/examples/02.advanced/12.Hsv.pd b/Gem/examples/02.advanced/12.Hsv.pd new file mode 100644 index 0000000..28379a2 --- /dev/null +++ b/Gem/examples/02.advanced/12.Hsv.pd @@ -0,0 +1,105 @@ +#N canvas 433 87 762 506 12; +#X obj 248 352 gemhead; +#X obj 248 412 color; +#X msg 559 202 1 1 1; +#X msg 524 156 1 0 0; +#X obj 248 441 square; +#X text 396 19 change the color; +#X text 2 90 create and destroy the graphics window; +#X obj 524 266 rgb2hsv; +#X obj 379 303 hsv2rgb; +#X obj 379 330 unpack 0 0 0; +#X floatatom 379 363 0 0 0 3 red - -; +#X floatatom 431 361 0 0 0 3 green - -; +#X floatatom 490 361 0 0 0 3 blue - -; +#X obj 541 327 unpack 0 0 0; +#X floatatom 541 416 0 0 0 3 hue - -; +#X floatatom 593 391 0 0 0 3 saturation - -; +#X floatatom 632 353 0 0 0 3 value - -; +#X msg 612 246 0 1 0; +#X floatatom 379 85 0 0 1 2 hue #0-hue -; +#X floatatom 400 121 0 0 1 2 saturation #0-saturation -; +#X obj 399 174 t b f; +#X floatatom 437 148 0 0 1 2 value #0-value -; +#X obj 437 174 t b f; +#X text 526 139 red; +#X text 559 185 white; +#X text 614 224 green; +#X obj 379 203 pack 0 1 1; +#N canvas 30 60 290 300 Gem.init 0; +#X obj 68 196 outlet; +#X obj 68 86 loadbang; +#X msg 68 136 reset; +#X connect 1 0 2 0; +#X connect 2 0 0 0; +#X restore 26 133 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 1 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 26 162 pd gemwin; +#X obj 532 52 hsl 128 15 0 1 0 0 \$0-hue empty hue -2 -8 0 10 -262144 +-1 -1 0 1; +#X obj 532 82 hsl 128 15 0 1 0 0 \$0-saturation empty saturation -2 +-8 0 10 -262144 -1 -1 0 1; +#X obj 532 112 hsl 128 15 0 1 0 0 \$0-value empty value -2 -8 0 10 +-262144 -1 -1 0 1; +#X connect 0 0 1 0; +#X connect 1 0 4 0; +#X connect 2 0 7 0; +#X connect 3 0 7 0; +#X connect 7 0 8 0; +#X connect 7 0 13 0; +#X connect 8 0 1 1; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 9 1 11 0; +#X connect 9 2 12 0; +#X connect 13 0 14 0; +#X connect 13 1 15 0; +#X connect 13 2 16 0; +#X connect 17 0 7 0; +#X connect 18 0 26 0; +#X connect 19 0 20 0; +#X connect 20 0 26 0; +#X connect 20 1 26 1; +#X connect 21 0 22 0; +#X connect 22 0 26 0; +#X connect 22 1 26 2; +#X connect 26 0 8 0; +#X connect 27 0 28 0; diff --git a/Gem/examples/02.advanced/13.ModelRescale.pd b/Gem/examples/02.advanced/13.ModelRescale.pd new file mode 100644 index 0000000..3da2927 --- /dev/null +++ b/Gem/examples/02.advanced/13.ModelRescale.pd @@ -0,0 +1,107 @@ +#N canvas 8 40 682 502 12; +#X floatatom 241 220 0 0 0 0 - - -; +#X obj 208 268 translate; +#X msg 275 220 0 0 1; +#X obj 208 178 gemhead; +#X floatatom 237 304 0 0 0 0 - - -; +#X obj 43 357 gemhead 1; +#X obj 43 395 world_light; +#X msg 285 307 open ../data/venus.obj; +#X floatatom 511 227 0 0 0 0 - - -; +#X obj 478 275 translate; +#X msg 545 227 0 0 1; +#X obj 478 185 gemhead; +#X msg 521 321 0 1 0; +#X obj 478 346 rotate; +#X floatatom 499 298 0 0 0 0 - - -; +#X obj 478 396 model ../data/venus.obj; +#X obj 208 339 scaleXYZ; +#X obj 327 149 loadbang; +#X msg 271 187 -10; +#X msg 325 246 0.1; +#X obj 333 278 t b b; +#X text 224 34 notice that the 'rescale 0' message is sent; +#X text 227 90 notice the size difference due to the scale and; +#X text 229 109 translate objects on the left chain; +#N canvas 22 20 213 300 Gem.init 0; +#X obj 71 191 outlet; +#X obj 71 81 loadbang; +#X msg 101 134 reset; +#X obj 71 109 t b b; +#X msg 71 164 lighting 1; +#X connect 1 0 3 0; +#X connect 2 0 0 0; +#X connect 3 0 4 0; +#X connect 3 1 2 0; +#X connect 4 0 0 0; +#X restore 34 98 pd Gem.init; +#X msg 289 347 rescale 0; +#X obj 208 389 model; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 124 pd gemwin; +#X text 228 51 before the 'open' occurs; +#X connect 0 0 1 1; +#X connect 1 0 16 0; +#X connect 2 0 1 2; +#X connect 3 0 1 0; +#X connect 4 0 16 1; +#X connect 4 0 16 2; +#X connect 4 0 16 3; +#X connect 5 0 6 0; +#X connect 7 0 26 0; +#X connect 8 0 9 1; +#X connect 9 0 13 0; +#X connect 10 0 9 2; +#X connect 11 0 9 0; +#X connect 12 0 13 2; +#X connect 13 0 15 0; +#X connect 14 0 13 1; +#X connect 16 0 26 0; +#X connect 17 0 2 0; +#X connect 17 0 18 0; +#X connect 17 0 19 0; +#X connect 17 0 20 0; +#X connect 18 0 0 0; +#X connect 19 0 4 0; +#X connect 20 0 7 0; +#X connect 20 1 25 0; +#X connect 24 0 27 0; +#X connect 25 0 26 0; diff --git a/Gem/examples/02.advanced/14.RenderOrder.pd b/Gem/examples/02.advanced/14.RenderOrder.pd new file mode 100644 index 0000000..a199d0b --- /dev/null +++ b/Gem/examples/02.advanced/14.RenderOrder.pd @@ -0,0 +1,149 @@ +#N canvas 0 0 986 385 10; +#X text 276 35 Blue Sphere; +#N canvas 95 194 290 179 Gem.init 0; +#X obj 118 18 loadbang; +#X msg 201 78 reset; +#X obj 118 113 outlet; +#X obj 118 45 t b b; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 1 1 0; +#X restore 72 145 pd Gem.init; +#X obj 265 98 color 0 0 1 0.5; +#X obj 265 229 pix_texture; +#X obj 265 182 pix_image ../data/dancer.JPG; +#X obj 265 251 alpha; +#X obj 265 207 pix_alpha; +#X obj 265 68 gemhead 50; +#X obj 681 244 alpha; +#X obj 681 173 gemhead 50; +#X obj 681 197 color 0 1 0 0.5; +#X obj 681 222 translateXYZ 0 -0.5 -1; +#X obj 849 123 int 0; +#X obj 891 123 + 1; +#X obj 849 100 metro 50; +#X obj 923 122 % 50; +#X obj 849 81 tgl 15 0 empty render_onoff empty 0 -6 0 8 -262144 -1 +-1 0 1; +#X obj 849 146 / 25; +#X obj 849 168 - 1; +#X msg 681 124 set \$1; +#X floatatom 681 101 5 0 0 0 - - -; +#X msg 679 9 40; +#X msg 696 32 60; +#X obj 849 191 t f f; +#X msg 709 54 auto; +#N canvas 189 208 450 300 set-priority 0; +#X obj 103 59 inlet; +#X obj 94 277 outlet; +#X obj 103 96 route auto; +#X obj 352 59 inlet; +#X obj 352 88 < 0; +#X obj 352 112 change; +#X obj 352 135 select 1 0; +#X msg 327 169 40; +#X msg 363 170 60; +#X obj 94 247 spigot; +#X obj 168 120 t f b; +#X msg 198 145 0; +#X msg 103 117 10; +#X obj 103 138 t f f; +#X connect 0 0 2 0; +#X connect 2 0 12 0; +#X connect 2 1 10 0; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 6 1 8 0; +#X connect 7 0 9 0; +#X connect 8 0 9 0; +#X connect 9 0 1 0; +#X connect 10 0 1 0; +#X connect 10 1 11 0; +#X connect 11 0 9 1; +#X connect 12 0 13 0; +#X connect 13 0 9 1; +#X connect 13 1 5 0; +#X restore 693 76 pd set-priority; +#X obj 265 272 square 3; +#X obj 681 266 square 3; +#X text 866 81 movement on/off; +#X text 736 9 priority 40 (<50); +#X text 735 28 priority 60 (>50); +#X text 748 51 dynamic ordering; +#X text 218 299 the rendering order does matter \, when doing things +like alpha-blending: alpha-blending only works if the semi-transparent +(alpha<1) object is rendered AFTER the objects that shine through; +#X text 596 291 this turns out to be a problem in dynamic scenes (eg: +with moving objects/viewpoint):: if a semi-transparent object used +to be "in front" of another semi-transparent object \, but suddenly +becomes "behind" \, the rendering order has to be changed. do this +\, by giving the [gemhead] a "set" message; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 72 168 pd gemwin; +#X connect 1 0 34 0; +#X connect 2 0 4 0; +#X connect 3 0 5 0; +#X connect 4 0 6 0; +#X connect 5 0 26 0; +#X connect 6 0 3 0; +#X connect 7 0 2 0; +#X connect 8 0 27 0; +#X connect 9 0 10 0; +#X connect 10 0 11 0; +#X connect 11 0 8 0; +#X connect 12 0 13 0; +#X connect 12 0 17 0; +#X connect 13 0 15 0; +#X connect 14 0 12 0; +#X connect 15 0 12 1; +#X connect 16 0 14 0; +#X connect 17 0 18 0; +#X connect 18 0 23 0; +#X connect 19 0 9 0; +#X connect 20 0 19 0; +#X connect 21 0 25 0; +#X connect 22 0 25 0; +#X connect 23 0 11 3; +#X connect 23 1 25 1; +#X connect 24 0 25 0; +#X connect 25 0 20 0; diff --git a/Gem/examples/02.advanced/15.GemWin.pd b/Gem/examples/02.advanced/15.GemWin.pd new file mode 100644 index 0000000..a414b15 --- /dev/null +++ b/Gem/examples/02.advanced/15.GemWin.pd @@ -0,0 +1,73 @@ +#N canvas 51 56 650 553 10; +#X obj 53 224 gemwin; +#X obj 38 397 gemmouse; +#X obj 109 206 r gemwin_mess; +#X obj 63 459 s gemwin_mess; +#X obj 63 418 del 100; +#X msg 63 439 destroy; +#X obj 15 86 cnv 15 100 100 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X msg 53 105 create; +#X msg 26 143 destroy; +#X obj 238 3 cnv 15 400 480 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X obj 14 296 cnv 15 180 80 empty empty cursor 20 0 0 14 -195568 -66577 +0; +#X msg 20 327 \; gemwin_mess cursor \$1; +#X obj 20 308 tgl 15 1 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 +; +#X text 39 306 show/hide cursor; +#X text 32 484 press the left-mouse-button to kill the gem-window; +#X obj 247 36 cnv 15 380 120 empty empty title-bar 20 0 0 14 -233017 +-66577 0; +#X msg 253 49 title Graphic's_Environment_for_Multimedia; +#X msg 286 94 title \$1; +#X symbolatom 286 72 10 0 0; +#X text 359 94 type your own title; +#X obj 253 125 s gemwin_mess; +#X obj 247 259 cnv 15 380 120 empty empty dimensions+positioning 20 +0 0 14 -233017 -66577 0; +#X obj 253 348 s gemwin_mess; +#X obj 248 167 cnv 15 380 80 empty empty window-decorations 20 0 0 +14 -233017 -66577 0; +#X obj 258 185 tgl 15 1 empty empty empty 0 -6 0 8 -262144 -1 -1 1 +1; +#X msg 258 204 \; gemwin_mess border \$1; +#X msg 253 285 dimen 500 500; +#X msg 273 315 dimen 200 421; +#X obj 417 347 s gemwin_mess; +#X msg 417 284 offset 0 0; +#X msg 437 314 offset 500 70; +#X text 277 183 with/out borders; +#X text 534 282 offset might; +#X text 540 298 work only; +#X text 552 315 without; +#X text 548 330 borders !; +#X obj 247 391 cnv 15 380 80 empty empty full-screen 20 0 0 14 -233017 +-66577 0; +#X obj 257 409 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 +1; +#X msg 257 428 \; gemwin_mess fullscreen \$1; +#X text 276 407 fullscreen/windowed; +#X text 11 14 how to control the GEM-window; +#X text 291 7 use these BEFORE creating the window!; +#X text 466 398 titles \, borders \,; +#X text 458 415 dimensions & offsets; +#X text 468 432 mean nothing in; +#X text 463 448 fullscreen mode !; +#X connect 1 2 4 0; +#X connect 2 0 0 0; +#X connect 4 0 5 0; +#X connect 5 0 3 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X connect 12 0 11 0; +#X connect 16 0 20 0; +#X connect 17 0 20 0; +#X connect 18 0 17 0; +#X connect 24 0 25 0; +#X connect 26 0 22 0; +#X connect 27 0 22 0; +#X connect 29 0 28 0; +#X connect 30 0 28 0; +#X connect 37 0 38 0; diff --git a/Gem/examples/02.advanced/16.vertex_program.pd b/Gem/examples/02.advanced/16.vertex_program.pd new file mode 100644 index 0000000..3d940b4 --- /dev/null +++ b/Gem/examples/02.advanced/16.vertex_program.pd @@ -0,0 +1,189 @@ +#N canvas 27 90 540 557 10; +#X obj 404 142 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 235 42 gemhead; +#X obj 235 111 pix_texture; +#X obj 235 497 rotateXYZ; +#X obj 106 467 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 0 256; +#X obj 167 467 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 0 256; +#X obj 395 250 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 -0.25 256; +#X obj 425 267 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 0.5 256; +#X obj 458 285 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 0.2 256; +#X obj 425 304 t b f; +#X obj 462 304 t b f; +#X obj 303 413 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 34336 256; +#X obj 371 355 nbx 5 14 -1e+37 1e+37 0 0 empty empty parameter# 0 -6 +0 10 -262144 -1 -1 0 256; +#X obj 440 324 pack 0 0 0 0; +#X obj 235 431 GEMglProgramEnvParameter4fvARB; +#X obj 242 358 loadbang; +#X obj 242 390 GLdefine GL_VERTEX_PROGRAM_ARB; +#X text 253 374 GL_VERTEX_PROGRAM_ARB = 34336; +#X msg 188 136 print; +#X text 382 23 open a texture; +#X text 343 123 open a vertex-program; +#X text 420 469 open a model; +#N canvas 0 0 450 300 defaults 0; +#X obj 112 43 loadbang; +#X msg 102 121 0; +#X obj 102 186 outlet; +#X obj 102 84 t b b; +#X obj 164 156 unpack 0 0 0; +#X obj 168 188 outlet; +#X obj 217 189 outlet; +#X obj 263 189 outlet; +#X text 101 208 param#; +#X text 205 216 param-values; +#X obj 179 44 inlet; +#X msg 161 122 -0.25 0.5 0.2; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 0 1 0; +#X connect 3 1 11 0; +#X connect 4 0 5 0; +#X connect 4 1 6 0; +#X connect 4 2 7 0; +#X connect 10 0 3 0; +#X connect 11 0 4 0; +#X restore 371 228 pd defaults; +#X msg 371 211 default; +#X obj 235 531 model ../data/venus.obj; +#X obj 235 82 pix_image ../data/64shade.tif; +#N canvas 0 0 450 300 open 0; +#X obj 75 103 openpanel; +#X obj 75 173 outlet; +#X obj 75 127 t b s; +#X msg 105 152 set open \$1; +#X obj 75 80 inlet; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X connect 2 1 3 0; +#X connect 3 0 1 0; +#X connect 4 0 0 0; +#X restore 347 141 pd open; +#X obj 418 46 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#N canvas 0 0 450 300 open 0; +#X obj 75 103 openpanel; +#X obj 75 173 outlet; +#X obj 75 127 t b s; +#X msg 105 152 set open \$1; +#X obj 75 80 inlet; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X connect 2 1 3 0; +#X connect 3 0 1 0; +#X connect 4 0 0 0; +#X restore 361 45 pd open; +#X msg 361 65 open ../data/64shade.tif; +#X obj 434 495 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#N canvas 0 0 450 300 open 0; +#X obj 75 103 openpanel; +#X obj 75 173 outlet; +#X obj 75 127 t b s; +#X msg 105 152 set open \$1; +#X obj 75 80 inlet; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X connect 2 1 3 0; +#X connect 3 0 1 0; +#X connect 4 0 0 0; +#X restore 377 494 pd open; +#X msg 377 514 open ../data/venus.obj; +#X obj 44 467 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 0 256; +#X msg 66 313 bang; +#X text 60 294 2nd click me; +#X obj 143 330 t b b b; +#X text 54 448 3rd play me; +#X text 79 18 1st click me; +#X text 295 275 4th play me; +#X msg 347 161 open ../data/toon.vp; +#X obj 235 178 vertex_program ../data/toon.vp; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 54 83 pd gemwin; +#X connect 0 0 26 0; +#X connect 1 0 25 0; +#X connect 2 0 41 0; +#X connect 3 0 24 0; +#X connect 4 0 3 2; +#X connect 5 0 3 3; +#X connect 6 0 13 0; +#X connect 7 0 9 0; +#X connect 8 0 10 0; +#X connect 9 0 13 0; +#X connect 9 1 13 1; +#X connect 10 0 13 0; +#X connect 10 1 13 2; +#X connect 11 0 14 1; +#X connect 12 0 14 2; +#X connect 13 0 14 3; +#X connect 14 0 3 0; +#X connect 15 0 16 0; +#X connect 16 0 11 0; +#X connect 18 0 41 0; +#X connect 22 0 12 0; +#X connect 22 1 6 0; +#X connect 22 2 7 0; +#X connect 22 3 8 0; +#X connect 23 0 22 0; +#X connect 25 0 2 0; +#X connect 26 0 40 0; +#X connect 27 0 28 0; +#X connect 28 0 29 0; +#X connect 29 0 25 0; +#X connect 30 0 31 0; +#X connect 31 0 32 0; +#X connect 32 0 24 0; +#X connect 33 0 3 1; +#X connect 34 0 36 0; +#X connect 36 0 32 0; +#X connect 36 1 40 0; +#X connect 36 2 29 0; +#X connect 40 0 41 0; +#X connect 41 0 14 0; diff --git a/Gem/examples/02.advanced/17.fragment_program.pd b/Gem/examples/02.advanced/17.fragment_program.pd new file mode 100644 index 0000000..2b1ce3b --- /dev/null +++ b/Gem/examples/02.advanced/17.fragment_program.pd @@ -0,0 +1,126 @@ +#N canvas 27 90 540 557 10; +#X obj 404 142 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 235 42 gemhead; +#X obj 235 497 rotateXYZ; +#X obj 106 467 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 0 256; +#X obj 167 467 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 0 256; +#X msg 188 136 print; +#X text 343 123 open a vertex-program; +#X text 420 469 open a model; +#X obj 235 531 model ../data/venus.obj; +#N canvas 0 0 450 300 open 0; +#X obj 75 103 openpanel; +#X obj 75 173 outlet; +#X obj 75 127 t b s; +#X msg 105 152 set open \$1; +#X obj 75 80 inlet; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X connect 2 1 3 0; +#X connect 3 0 1 0; +#X connect 4 0 0 0; +#X restore 347 141 pd open; +#X obj 434 495 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#N canvas 0 0 450 300 open 0; +#X obj 75 103 openpanel; +#X obj 75 173 outlet; +#X obj 75 127 t b s; +#X msg 105 152 set open \$1; +#X obj 75 80 inlet; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X connect 2 1 3 0; +#X connect 3 0 1 0; +#X connect 4 0 0 0; +#X restore 377 494 pd open; +#X msg 377 514 open ../data/venus.obj; +#X obj 44 467 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 0 256; +#X msg 66 313 bang; +#X text 60 294 2nd click me; +#X obj 143 330 t b b b; +#X text 54 448 3rd play me; +#X msg 347 161 open ../data/random.fp; +#X floatatom 318 49 5 0 0 0 - - -; +#X obj 235 85 colorRGB 1 1 1; +#X obj 66 247 world_light; +#X obj 60 214 gemhead 1; +#X obj 235 178 fragment_program ../data/random.fp; +#X text 362 48 play me; +#X obj 380 390 gemhead; +#X obj 380 412 translateXYZ -2 0 0; +#X obj 235 416 translateXYZ 2 0 0; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 70 126 pd gemwin; +#N canvas 0 0 450 300 Gem.init 0; +#X obj 85 239 outlet; +#X msg 85 215 reset \, lighting 1; +#X obj 85 192 loadbang; +#X connect 1 0 0 0; +#X connect 2 0 1 0; +#X restore 70 104 pd Gem.init; +#X connect 0 0 9 0; +#X connect 1 0 20 0; +#X connect 2 0 8 0; +#X connect 3 0 2 2; +#X connect 4 0 2 3; +#X connect 5 0 23 0; +#X connect 9 0 18 0; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X connect 12 0 8 0; +#X connect 13 0 2 1; +#X connect 14 0 16 0; +#X connect 16 0 12 0; +#X connect 16 1 18 0; +#X connect 18 0 23 0; +#X connect 19 0 20 2; +#X connect 20 0 23 0; +#X connect 22 0 21 0; +#X connect 23 0 27 0; +#X connect 25 0 26 0; +#X connect 26 0 2 0; +#X connect 27 0 2 0; +#X connect 29 0 28 0; diff --git a/Gem/examples/02.advanced/18.gl_shading_language.pd b/Gem/examples/02.advanced/18.gl_shading_language.pd new file mode 100644 index 0000000..2562b27 --- /dev/null +++ b/Gem/examples/02.advanced/18.gl_shading_language.pd @@ -0,0 +1,182 @@ +#N canvas 54 22 842 789 10; +#X obj 225 24 gemhead 1; +#X obj 225 47 world_light; +#X obj 77 112 gemhead; +#X obj 77 171 glsl_vertex; +#X obj 148 131 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 170 129 open a vertex-program; +#N canvas 0 22 450 300 open 0; +#X obj 75 103 openpanel; +#X obj 75 173 outlet; +#X obj 75 127 t b s; +#X msg 105 152 set open \$1; +#X obj 75 80 inlet; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X connect 2 1 3 0; +#X connect 3 0 1 0; +#X connect 4 0 0 0; +#X restore 91 130 pd open; +#X msg 35 142 print; +#X obj 77 733 rotateXYZ; +#X obj 126 714 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 0 256; +#X obj 126 697 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 0 256; +#X obj 126 680 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 0 256; +#X obj 206 25 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 77 576 glsl_program; +#X obj 150 393 pack 0 0; +#X obj 143 246 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#N canvas 0 22 450 300 open 0; +#X obj 75 103 openpanel; +#X obj 75 173 outlet; +#X obj 75 127 t b s; +#X msg 105 152 set open \$1; +#X obj 75 80 inlet; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X connect 2 1 3 0; +#X connect 3 0 1 0; +#X connect 4 0 0 0; +#X restore 86 245 pd open; +#X text 164 244 open a fragment-program; +#X msg 34 266 print; +#X obj 171 373 t b f; +#X msg 335 92 bang; +#X obj 77 753 teapot; +#X obj 171 328 change; +#X obj 149 190 change; +#X msg 150 433 link \$1 \$2; +#X msg 33 486 print; +#X msg 266 546 Phong \$1; +#X obj 269 508 hsl 128 15 -1 1 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#X floatatom 266 528 5 0 0 0 - - -; +#X obj 77 612 t a b; +#X obj 107 632 spigot; +#X obj 144 614 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X obj 107 652 i; +#X obj 135 652 + 1; +#X obj 163 652 % 360; +#X text 435 96 click here to load both the vertex- and the fragment-shader +; +#X text 165 172 the vertex shader; +#X obj 77 308 glsl_fragment; +#X text 191 311 the fragment shader; +#X text 222 395 whenever either the fragment-shader ID or the vertex-shader +ID has changed \, we trigger the linking of the 2 modules; +#X floatatom 171 354 2 0 0 0 ID - -; +#X floatatom 149 213 2 0 0 0 ID - -; +#X obj 168 454 print linking; +#X text 264 441 order of module IDs does not matter...; +#X text 96 487 after linking \, click "print" to get some info about +the compiled shader program; +#X text 330 550 the Toon-shader has a unifom variable "Phong" (see +"print") \, which we can change to modify the effect.; +#X text 213 264 pd's search path is searched for the given filename +\; just add the examples/data folder to your path options and this +example should work; +#X obj 335 133 t s s; +#X msg 91 150 open \$1.vert; +#X msg 86 265 open \$1.frag; +#X symbolatom 381 93 0 0 0 0 - - -; +#X obj 335 114 symbol ../data/Toon; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 1 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 39 51 pd gemwin; +#X msg 39 29 lighting \$1; +#X obj 39 10 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X connect 0 0 1 0; +#X connect 2 0 3 0; +#X connect 3 0 37 0; +#X connect 3 1 23 0; +#X connect 4 0 6 0; +#X connect 6 0 48 0; +#X connect 7 0 3 0; +#X connect 8 0 21 0; +#X connect 9 0 8 3; +#X connect 10 0 8 2; +#X connect 11 0 8 1; +#X connect 12 0 0 0; +#X connect 13 0 29 0; +#X connect 14 0 24 0; +#X connect 15 0 16 0; +#X connect 16 0 49 0; +#X connect 18 0 37 0; +#X connect 19 0 14 0; +#X connect 19 1 14 1; +#X connect 20 0 51 0; +#X connect 22 0 40 0; +#X connect 23 0 41 0; +#X connect 24 0 13 0; +#X connect 24 0 42 0; +#X connect 25 0 13 0; +#X connect 26 0 13 0; +#X connect 27 0 28 0; +#X connect 28 0 26 0; +#X connect 29 0 8 0; +#X connect 29 1 30 0; +#X connect 30 0 32 0; +#X connect 31 0 30 1; +#X connect 32 0 33 0; +#X connect 32 0 11 0; +#X connect 32 0 10 0; +#X connect 32 0 9 0; +#X connect 33 0 34 0; +#X connect 34 0 32 1; +#X connect 37 0 13 0; +#X connect 37 1 22 0; +#X connect 40 0 19 0; +#X connect 41 0 14 0; +#X connect 47 0 48 0; +#X connect 47 1 49 0; +#X connect 48 0 3 0; +#X connect 49 0 37 0; +#X connect 50 0 51 0; +#X connect 51 0 47 0; +#X connect 53 0 52 0; +#X connect 54 0 53 0; diff --git a/Gem/examples/02.advanced/19.pointer.pd b/Gem/examples/02.advanced/19.pointer.pd new file mode 100644 index 0000000..7db5c4f --- /dev/null +++ b/Gem/examples/02.advanced/19.pointer.pd @@ -0,0 +1,217 @@ +#N canvas 102 54 864 638 10; +#X obj 209 223 gemhead; +#X obj 241 277 t a a a; +#X obj 264 320 cube 1; +#X obj 238 66 world_light; +#X obj 238 41 gemhead; +#X obj 37 226 gemhead; +#X obj 37 321 sphere 1.3 33; +#X obj 287 300 rotateXYZ 60 30 0; +#X obj 37 300 rotateXYZ 60 30 0; +#X text 36 184 #1:; +#X text 209 181 #2:; +#X obj 37 428 sphere 1.3 33; +#X obj 37 407 rotateXYZ 60 30 0; +#X obj 209 248 t a a; +#X obj 595 288 gemlist; +#X obj 595 223 gemhead; +#X obj 595 250 t b b a; +#X obj 37 202 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X obj 209 198 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 595 198 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 37 342 translateXYZ 2 0 0; +#X obj 37 449 translateXYZ 2 0 0; +#X obj 241 341 translateXYZ 2 0 0; +#X obj 209 386 t a a a; +#X obj 232 429 cube 1; +#X obj 255 409 rotateXYZ 60 30 0; +#X obj 209 450 translateXYZ 2 0 0; +#X obj 595 410 rotateXYZ 60 30 0; +#X obj 595 452 translateXYZ 2 0 0; +#X obj 595 431 sphere 1.6 4; +#X text 29 498 example #1 is the usual way to use Gem \, but the technique +shown in example #2 can be more flexible...; +#N canvas 186 321 446 463 more_interating_1 0; +#X obj 22 64 gemhead; +#X obj 22 351 rotateXYZ 0 0 12; +#X obj 22 274 scaleXYZ 0.97 0.9 1; +#X obj 22 296 translateXYZ 0.5 0 0; +#X obj 22 376 circle 0.2; +#X floatatom 131 331 5 0 0 0 - - -; +#X obj 22 226 gemlist; +#X obj 22 204 until; +#X msg 22 180 100; +#X obj 22 158 t b a; +#X obj 22 111 translateXYZ -3 0 0; +#X obj 22 43 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X text 85 198 "repeat" 100 times the same "gemlist"; +#X connect 0 0 10 0; +#X connect 1 0 4 0; +#X connect 2 0 3 0; +#X connect 3 0 1 0; +#X connect 5 0 1 3; +#X connect 6 0 2 0; +#X connect 7 0 6 0; +#X connect 8 0 7 0; +#X connect 9 0 8 0; +#X connect 9 1 6 1; +#X connect 10 0 9 0; +#X connect 11 0 0 0; +#X restore 32 561 pd more_interating_1; +#N canvas 178 159 464 582 more_interating_2 0; +#X obj 22 69 gemhead; +#X obj 22 377 scaleXYZ 0.97 0.9 1; +#X obj 22 505 circle 0.2; +#X obj 22 235 gemlist; +#X obj 22 213 until; +#X msg 22 189 100; +#X obj 22 167 t b a; +#X obj 185 322 f; +#X obj 277 309 random 1000; +#X obj 22 480 rotateXYZ 0 0 0; +#X obj 185 420 *; +#X obj 22 132 t a b; +#X obj 22 264 t a b b; +#X msg 277 283 seed \$1; +#X obj 277 256 f; +#X floatatom 295 234 5 0 0 0 - - -; +#X obj 277 334 - 500; +#X obj 185 441 / 1000; +#X obj 22 400 translateXYZ -0.5 0 0; +#X obj 22 103 translateXYZ 3 0 0; +#X obj 22 42 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X text 343 233 <- change random; +#X text 276 356 rotation angle is random; +#X text 200 390 amplitude decrease; +#X msg 203 296 100; +#X obj 222 351 - 1; +#X connect 0 0 19 0; +#X connect 1 0 18 0; +#X connect 3 0 12 0; +#X connect 4 0 3 0; +#X connect 5 0 4 0; +#X connect 6 0 5 0; +#X connect 6 1 3 1; +#X connect 7 0 25 0; +#X connect 7 0 10 0; +#X connect 8 0 16 0; +#X connect 9 0 2 0; +#X connect 10 0 17 0; +#X connect 11 0 6 0; +#X connect 11 1 24 0; +#X connect 11 1 14 0; +#X connect 12 0 1 0; +#X connect 12 1 7 0; +#X connect 12 2 8 0; +#X connect 13 0 8 0; +#X connect 14 0 13 0; +#X connect 15 0 14 1; +#X connect 16 0 10 1; +#X connect 17 0 9 3; +#X connect 18 0 9 0; +#X connect 19 0 11 0; +#X connect 20 0 0 0; +#X connect 24 0 7 1; +#X connect 25 0 7 1; +#X restore 32 581 pd more_interating_2; +#X obj 445 223 gemhead; +#X obj 445 198 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X text 443 178 #3:; +#X obj 445 410 rotateXYZ 60 30 0; +#X obj 445 452 translateXYZ 2 0 0; +#X obj 445 271 t a a; +#X text 593 178 #4:; +#X text 611 314 [gemlist] stores the current state; +#X text 613 330 and outputs it when banged; +#X text 30 528 The example #4 can easily be extended to use many primitives. +; +#X text 31 122 [gemhead]'s output is a special message describing the +"state" of the system. This state is changed by the GEM objects. This +means that the examples below are equivalent:; +#X obj 445 431 teapot 1; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 44 55 pd gemwin; +#N canvas 0 0 450 300 Gem.init 0; +#X obj 94 232 outlet; +#X obj 94 183 loadbang; +#X msg 94 208 lighting 1; +#X connect 1 0 2 0; +#X connect 2 0 0 0; +#X restore 44 36 pd Gem.init; +#X connect 0 0 13 0; +#X connect 1 0 22 0; +#X connect 1 1 2 0; +#X connect 1 2 7 0; +#X connect 4 0 3 0; +#X connect 5 0 8 0; +#X connect 6 0 20 0; +#X connect 8 0 6 0; +#X connect 11 0 21 0; +#X connect 12 0 11 0; +#X connect 13 0 23 0; +#X connect 13 1 1 0; +#X connect 14 0 27 0; +#X connect 15 0 16 0; +#X connect 16 0 14 0; +#X connect 16 1 14 0; +#X connect 16 2 14 1; +#X connect 17 0 5 0; +#X connect 18 0 0 0; +#X connect 19 0 15 0; +#X connect 20 0 12 0; +#X connect 23 0 26 0; +#X connect 23 1 24 0; +#X connect 23 2 25 0; +#X connect 27 0 29 0; +#X connect 29 0 28 0; +#X connect 33 0 38 0; +#X connect 34 0 33 0; +#X connect 36 0 44 0; +#X connect 38 0 36 0; +#X connect 38 1 36 0; +#X connect 44 0 37 0; +#X connect 46 0 45 0; diff --git a/Gem/examples/02.advanced/20.double-gemhead_vs_repeat.pd b/Gem/examples/02.advanced/20.double-gemhead_vs_repeat.pd new file mode 100644 index 0000000..518e853 --- /dev/null +++ b/Gem/examples/02.advanced/20.double-gemhead_vs_repeat.pd @@ -0,0 +1,184 @@ +#N canvas 265 100 742 519 10; +#X obj 93 144 gemhead; +#X obj 93 205 b; +#X obj 93 124 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X obj 93 336 gemhead; +#X msg 25 305 0; +#X obj 25 285 loadbang; +#X obj 93 260 t b a; +#X obj 156 336 unpack 0 0 0; +#X obj 93 385 translateXYZ 0 -2 0; +#X msg 93 225 0 -2 0 \, 0 2 0; +#X text 203 225 two messages in one; +#X text 151 144 [gemhead]-"metro"; +#X obj 93 426 circle 0.2; +#X text 40 25 the "double [gemhead] idiom" vs. [repeat]; +#X obj 438 146 gemhead; +#X obj 438 128 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X obj 479 375 unpack 0 0 0; +#X text 525 206 two messages in one; +#X obj 438 425 square 0.2; +#X obj 479 307 select 0 1; +#X obj 479 284 f; +#X obj 438 404 translateXYZ 0 0 0; +#X obj 354 341 loadbang; +#X msg 354 368 draw line; +#X obj 438 206 t a a b; +#X obj 438 229 separator; +#X obj 438 257 t a b; +#X msg 497 259 0; +#X msg 479 328 0 -2 0; +#X msg 511 348 0 2 0; +#X obj 508 284 + 1; +#X text 258 65 The gemhead object resets the states for OpenGL and +also some pix_ settings. Anything after it is starts as a clean state +similar to combining [separator] and [pix_separator]. (cc); +#N canvas 220 0 701 555 more_on_the_"repeat"_technics 0; +#X obj 21 54 gemhead; +#X obj 21 281 separator; +#X obj 21 128 t a b; +#X msg 118 270 seed 1; +#X obj 21 445 translateXYZ; +#X obj 21 470 circle 0.1; +#X obj 118 354 random 200; +#X obj 199 354 random 200; +#X obj 118 376 - 100; +#X obj 199 377 - 100; +#X obj 199 398 / 30; +#X obj 118 397 / 30; +#X msg 199 270 seed 2; +#X obj 21 310 t a b b; +#X obj 118 313 spigot 0; +#X obj 199 312 spigot 0; +#X obj 278 276 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X text 311 274 <- if you reset the random at the begining of each +frame \, then all frames look the same.; +#X obj 21 101 scaleXYZ 1 1 1; +#X floatatom 52 80 5 0 0 0 - - -; +#X floatatom 95 80 5 0 0 0 - - -; +#X obj 21 230 gemlist; +#X obj 21 208 until; +#X msg 21 184 100; +#X obj 21 162 t b a; +#X text 23 504 This patch shows how to draw the same primitive with +the a single [gemhead] many times; +#X obj 21 35 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X connect 0 0 18 0; +#X connect 1 0 13 0; +#X connect 2 0 24 0; +#X connect 2 1 3 0; +#X connect 2 1 12 0; +#X connect 3 0 14 0; +#X connect 4 0 5 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 11 0; +#X connect 9 0 10 0; +#X connect 10 0 4 2; +#X connect 11 0 4 1; +#X connect 12 0 15 0; +#X connect 13 0 4 0; +#X connect 13 1 6 0; +#X connect 13 1 7 0; +#X connect 14 0 6 0; +#X connect 15 0 7 0; +#X connect 16 0 14 1; +#X connect 16 0 15 1; +#X connect 18 0 2 0; +#X connect 19 0 18 1; +#X connect 20 0 18 2; +#X connect 21 0 1 0; +#X connect 22 0 21 0; +#X connect 23 0 22 0; +#X connect 24 0 23 0; +#X connect 24 1 21 1; +#X connect 26 0 0 0; +#X restore 370 469 pd more_on_the_"repeat"_technics; +#X obj 93 186 translateXYZ; +#X floatatom 120 168 5 0 0 0 - - -; +#X text 168 167 <- fun!; +#X obj 438 187 translateXYZ; +#X floatatom 465 169 5 0 0 0 - - -; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 53 69 pd gemwin; +#X connect 0 0 33 0; +#X connect 1 0 9 0; +#X connect 2 0 0 0; +#X connect 3 0 8 0; +#X connect 4 0 3 0; +#X connect 5 0 4 0; +#X connect 6 0 3 0; +#X connect 6 1 7 0; +#X connect 7 0 8 1; +#X connect 7 1 8 2; +#X connect 7 2 8 3; +#X connect 8 0 12 0; +#X connect 9 0 6 0; +#X connect 14 0 36 0; +#X connect 15 0 14 0; +#X connect 16 0 21 1; +#X connect 16 1 21 2; +#X connect 16 2 21 3; +#X connect 19 0 28 0; +#X connect 19 1 29 0; +#X connect 20 0 19 0; +#X connect 20 0 30 0; +#X connect 21 0 18 0; +#X connect 22 0 23 0; +#X connect 23 0 18 0; +#X connect 24 0 25 0; +#X connect 24 1 25 0; +#X connect 24 2 27 0; +#X connect 25 0 26 0; +#X connect 26 0 21 0; +#X connect 26 1 20 0; +#X connect 27 0 20 1; +#X connect 28 0 16 0; +#X connect 29 0 16 0; +#X connect 30 0 20 1; +#X connect 33 0 1 0; +#X connect 34 0 33 1; +#X connect 36 0 24 0; +#X connect 37 0 36 1; diff --git a/Gem/examples/02.advanced/21.basic_LSystem.pd b/Gem/examples/02.advanced/21.basic_LSystem.pd new file mode 100644 index 0000000..301b09a --- /dev/null +++ b/Gem/examples/02.advanced/21.basic_LSystem.pd @@ -0,0 +1,138 @@ +#N canvas 515 27 647 743 10; +#X obj 15 16 gemhead; +#X obj 76 483 GEMglPushMatrix; +#X obj 96 462 GEMglPopMatrix; +#X floatatom 353 502 5 0 0 0 - - -; +#X obj 15 63 rotateXYZ 0 0 90; +#X floatatom 201 508 5 0 0 0 - - -; +#X floatatom 201 486 5 0 0 0 - - -; +#X obj 262 35 gemhead; +#X obj 262 61 world_light; +#X obj 15 607 translateXYZ 0.05 0 0; +#X obj 15 140 route F; +#X text 271 163 <- rule 1; +#X obj 15 187 route F; +#X msg 15 211 F \, [ \, - \, F \, F \, ] \, F \, [ \, + \, F \, ] \, +F; +#X obj 15 235 route F; +#X text 272 209 <- rule 2; +#X text 271 257 <- rule 3; +#X msg 15 110 F; +#X obj 15 85 t b a; +#X obj 15 558 translateXYZ 0.05 0 0; +#X obj 15 583 rectangle 0.1 0.01; +#X obj 15 41 translateXYZ 0 -3 0; +#X obj 35 530 rotateXYZ 0 0 50; +#X obj 54 506 rotateXYZ 0 0 -40; +#X obj 353 521 / 100; +#X msg 353 479 10; +#X obj 353 456 loadbang; +#X text 243 485 <- try this; +#X text 125 310 <- create the primitive according to the Lsystem; +#X text 270 276 These rules create an Lsystem; +#X text 152 381 <- Store the current state sent by [gemhead] and distribute +it to the corresponding primitives; +#X text 397 502 <- size of the system; +#X msg 15 164 F \, [ \, - \, F \, ] \, F \, [ \, + \, F \, ] \, F; +#X text 12 640 This is a basic implementation of Lindenmayer System +(LSystem) in GEM. Wikipedia is a good place for informations about +Lsystems; +#X obj 15 351 gemlist; +#X obj 47 110 s \$0-gemlist; +#X obj 35 372 gemlist; +#X obj 54 395 gemlist; +#X obj 76 417 gemlist; +#X obj 96 438 gemlist; +#X obj 142 330 r \$0-gemlist; +#X obj 15 309 route F + - [ ]; +#X msg 15 259 F \, [ \, - \, F \, F \, ] \, F \, [ \, + \, F \, ] \, +F; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 377 62 pd gemwin; +#N canvas 0 0 450 300 Gem.init 0; +#X obj 67 72 loadbang; +#X msg 67 93 lighting 1; +#X obj 67 114 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 377 40 pd Gem.init; +#X connect 0 0 21 0; +#X connect 3 0 24 0; +#X connect 4 0 18 0; +#X connect 5 0 22 3; +#X connect 6 0 23 3; +#X connect 7 0 8 0; +#X connect 10 0 32 0; +#X connect 10 1 12 0; +#X connect 12 0 13 0; +#X connect 12 1 14 0; +#X connect 13 0 14 0; +#X connect 14 0 42 0; +#X connect 14 1 41 0; +#X connect 17 0 10 0; +#X connect 18 0 17 0; +#X connect 18 1 35 0; +#X connect 19 0 20 0; +#X connect 20 0 9 0; +#X connect 21 0 4 0; +#X connect 24 0 9 1; +#X connect 24 0 19 1; +#X connect 24 0 20 1; +#X connect 25 0 3 0; +#X connect 26 0 25 0; +#X connect 32 0 12 0; +#X connect 34 0 19 0; +#X connect 36 0 22 0; +#X connect 37 0 23 0; +#X connect 38 0 1 0; +#X connect 39 0 2 0; +#X connect 40 0 34 1; +#X connect 40 0 36 1; +#X connect 40 0 37 1; +#X connect 40 0 38 1; +#X connect 40 0 39 1; +#X connect 41 0 34 0; +#X connect 41 1 36 0; +#X connect 41 2 37 0; +#X connect 41 3 38 0; +#X connect 41 4 39 0; +#X connect 42 0 41 0; +#X connect 44 0 43 0; diff --git a/Gem/examples/02.advanced/22.double-iterative.pd b/Gem/examples/02.advanced/22.double-iterative.pd new file mode 100644 index 0000000..218c30f --- /dev/null +++ b/Gem/examples/02.advanced/22.double-iterative.pd @@ -0,0 +1,118 @@ +#N canvas 0 0 473 588 10; +#X obj 32 103 gemhead; +#X obj 106 235 gemlist; +#X msg 106 192 20; +#X obj 106 213 until; +#X obj 32 149 route gem_state; +#X obj 32 171 route float; +#X obj 32 127 t a a; +#X obj 106 259 rotateXYZ 10 20 30; +#X obj 180 413 gemlist; +#X msg 180 370 20; +#X obj 180 391 until; +#X obj 106 327 route gem_state; +#X obj 106 349 route float; +#X obj 106 305 t a a; +#X obj 180 437 rotateXYZ 10 20 30; +#X obj 180 497 cube 0.1; +#X obj 106 280 separator; +#N canvas 0 0 450 300 light 0; +#X obj 225 45 gemhead 10; +#X floatatom 258 78 5 0 0 0 - - -; +#X floatatom 299 77 5 0 0 0 - - -; +#X floatatom 341 78 5 0 0 0 - - -; +#X msg 319 150 1 0 0; +#X obj 225 227 world_light; +#X msg 333 173 0.4 0.4 0.4; +#X msg 309 127 0 0 0; +#X obj 228 160 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X msg 228 181 debug \$1; +#X obj 225 103 rotateXYZ 0 30 0; +#X obj 27 51 gemhead 10; +#X floatatom 60 84 5 0 0 0 - - -; +#X floatatom 101 83 5 0 0 0 - - -; +#X floatatom 143 84 5 0 0 0 - - -; +#X msg 121 156 1 0 0; +#X obj 27 233 world_light; +#X msg 130 173 0.4 0.4 0.4; +#X msg 111 133 0 0 0; +#X obj 30 166 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X msg 30 187 debug \$1; +#X obj 27 109 rotateXYZ 0 -90 0; +#X msg 362 225 0.8 0.8 0.8; +#X msg 144 199 0.7 0.7 0.7; +#X msg 346 198 0.6 0.6 0.6; +#X obj 408 87 loadbang; +#X connect 0 0 10 0; +#X connect 1 0 10 1; +#X connect 2 0 10 2; +#X connect 3 0 10 3; +#X connect 4 0 5 1; +#X connect 6 0 5 1; +#X connect 7 0 5 1; +#X connect 8 0 9 0; +#X connect 9 0 5 0; +#X connect 10 0 5 0; +#X connect 11 0 21 0; +#X connect 12 0 21 1; +#X connect 13 0 21 2; +#X connect 14 0 21 3; +#X connect 15 0 16 1; +#X connect 17 0 16 1; +#X connect 18 0 16 1; +#X connect 19 0 20 0; +#X connect 20 0 16 0; +#X connect 21 0 16 0; +#X connect 22 0 5 1; +#X connect 23 0 16 1; +#X connect 24 0 5 1; +#X connect 25 0 23 0; +#X connect 25 0 24 0; +#X restore 300 152 pd light; +#X obj 300 131 gemwin; +#X msg 300 104 lighting 1 \, create \, 1; +#X obj 180 477 translateXYZ 0.3 0 0; +#X floatatom 252 414 5 0 0 0 - - -; +#X floatatom 292 415 5 0 0 0 - - -; +#X floatatom 334 415 5 0 0 0 - - -; +#X floatatom 254 456 5 0 0 0 - - -; +#X floatatom 300 456 5 0 0 0 - - -; +#X floatatom 342 457 5 0 0 0 - - -; +#X floatatom 176 236 5 0 0 0 - - -; +#X floatatom 216 237 5 0 0 0 - - -; +#X floatatom 258 237 5 0 0 0 - - -; +#X text 309 238 <- fun 1; +#X text 386 416 <- fun 2; +#X text 389 457 <- fun 3; +#X text 136 30 double iterative process; +#X connect 0 0 6 0; +#X connect 1 0 7 0; +#X connect 2 0 3 0; +#X connect 3 0 1 0; +#X connect 4 0 5 0; +#X connect 5 1 2 0; +#X connect 6 0 4 0; +#X connect 6 1 1 1; +#X connect 7 0 16 0; +#X connect 8 0 14 0; +#X connect 9 0 10 0; +#X connect 10 0 8 0; +#X connect 11 0 12 0; +#X connect 12 1 9 0; +#X connect 13 0 11 0; +#X connect 13 1 8 1; +#X connect 14 0 20 0; +#X connect 16 0 13 0; +#X connect 19 0 18 0; +#X connect 20 0 15 0; +#X connect 21 0 14 1; +#X connect 22 0 14 2; +#X connect 23 0 14 3; +#X connect 24 0 20 1; +#X connect 25 0 20 2; +#X connect 26 0 20 3; +#X connect 27 0 7 1; +#X connect 28 0 7 2; +#X connect 29 0 7 3; diff --git a/Gem/examples/02.advanced/snapshotHD.pd b/Gem/examples/02.advanced/snapshotHD.pd new file mode 100644 index 0000000..1e3d1bd --- /dev/null +++ b/Gem/examples/02.advanced/snapshotHD.pd @@ -0,0 +1,114 @@ +#N canvas 143 49 609 575 10; +#X obj 152 105 gemframebuffer; +#X obj 179 148 translateXYZ 0 0 -4; +#X obj 152 126 t a a; +#X obj 242 181 inlet; +#X msg 224 84 dimen \$1 \$2; +#X obj 179 169 outlet; +#X obj 224 64 t l l; +#X obj 317 41 /; +#X obj 317 62 t f f; +#X obj 317 82 * -1; +#X obj 317 103 pack f f; +#X msg 317 126 perspec \$1 \$2 -1 1 1 20; +#X obj 374 352 pix_texture; +#X obj 70 16 loadbang; +#X obj 365 181 * 4; +#X msg 365 202 \$1 4; +#X obj 435 181 /; +#X msg 435 161 4 \$1; +#X msg 435 202 4 \$1; +#X obj 365 225 spigot; +#X obj 435 225 spigot; +#X obj 402 263 unpack f f; +#X obj 374 373 rectangle 4 4; +#X obj 347 394 rectangle 4 4; +#X obj 295 342 loadbang; +#X msg 295 363 draw line; +#X obj 401 202 < 1; +#X obj 477 202 >= 1; +#X obj 347 321 t a a; +#X obj 152 84 inlet; +#X obj 347 300 gemhead 100000; +#X msg 225 13 bang; +#X obj 152 548 pix_buffer \$0-buf 1; +#X obj 167 432 pix_buffer_write \$0-buf; +#X msg 313 392 0; +#X msg 152 521 save \$1 0; +#X msg 152 474 bang; +#X obj 152 323 spigot; +#X msg 185 303 1; +#X msg 200 323 0; +#X obj 242 201 route symbol; +#X obj 242 219 symbol; +#X obj 242 239 t s b; +#X obj 294 237 t b; +#X obj 224 43 pack \$1 \$2; +#X obj 167 410 pix_snap 0 0 \$1 \$2; +#X obj 152 501 symbol \$3; +#X obj 152 343 t b a b b b; +#X obj 167 374 t a b a; +#X text 453 523 (c) Jack/RYBN 2011; +#X connect 0 0 2 0; +#X connect 0 1 12 1; +#X connect 1 0 5 0; +#X connect 2 0 37 0; +#X connect 2 1 1 0; +#X connect 3 0 40 0; +#X connect 4 0 0 0; +#X connect 6 0 4 0; +#X connect 6 1 7 0; +#X connect 7 0 8 0; +#X connect 8 0 9 0; +#X connect 8 0 14 0; +#X connect 8 0 17 0; +#X connect 8 1 10 1; +#X connect 8 1 26 0; +#X connect 8 1 27 0; +#X connect 9 0 10 0; +#X connect 10 0 11 0; +#X connect 11 0 0 0; +#X connect 12 0 22 0; +#X connect 13 0 44 0; +#X connect 14 0 15 0; +#X connect 15 0 19 0; +#X connect 16 0 18 0; +#X connect 17 0 16 0; +#X connect 18 0 20 0; +#X connect 19 0 21 0; +#X connect 20 0 21 0; +#X connect 21 0 22 1; +#X connect 21 0 23 1; +#X connect 21 1 22 2; +#X connect 21 1 23 2; +#X connect 24 0 25 0; +#X connect 25 0 23 0; +#X connect 26 0 19 1; +#X connect 27 0 20 1; +#X connect 28 0 23 0; +#X connect 28 1 12 0; +#X connect 29 0 0 0; +#X connect 30 0 28 0; +#X connect 31 0 44 0; +#X connect 34 0 33 1; +#X connect 35 0 32 0; +#X connect 36 0 46 0; +#X connect 37 0 47 0; +#X connect 38 0 37 1; +#X connect 39 0 37 1; +#X connect 40 0 41 0; +#X connect 40 1 43 0; +#X connect 41 0 42 0; +#X connect 42 0 46 1; +#X connect 42 1 43 0; +#X connect 43 0 38 0; +#X connect 44 0 6 0; +#X connect 45 0 33 0; +#X connect 46 0 35 0; +#X connect 47 0 36 0; +#X connect 47 1 48 0; +#X connect 47 3 34 0; +#X connect 47 4 39 0; +#X connect 48 0 45 0; +#X connect 48 1 45 0; +#X connect 48 2 45 0; diff --git a/Gem/examples/03.lighting/01.world_light.pd b/Gem/examples/03.lighting/01.world_light.pd new file mode 100644 index 0000000..8987c38 --- /dev/null +++ b/Gem/examples/03.lighting/01.world_light.pd @@ -0,0 +1,84 @@ +#N canvas 139 90 771 570 10; +#X obj 518 59 gemhead; +#X msg 86 180 lighting 1; +#X obj 518 170 rotate; +#X floatatom 563 132 0 0 0 0 - - -; +#X obj 318 508 world_light; +#X obj 318 394 gemhead 1; +#X msg 86 149 lighting 0; +#X obj 518 194 sphere; +#X text 150 38 create a sphere with and without lighting; +#X text 533 105 rotate the sphere; +#X text 139 545 creates a light an infinite distance away.; +#X text 314 341 gemhead has a value of 1 so that it is rendered before +the sphere is; +#X text 52 124 you can turn lighting on and off while it is running +; +#X msg 457 466 1 1 1; +#X msg 404 464 1 0 1; +#X text 508 460 change the lights color; +#X obj 318 456 rotateXYZ; +#X floatatom 409 399 0 0 0 0 - - -; +#X msg 185 424 debug 0; +#X msg 186 455 debug 1; +#X text 96 400 figure out where the light is; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 64 238 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 255 pd gemwin; +#X connect 0 0 2 0; +#X connect 1 0 22 0; +#X connect 2 0 7 0; +#X connect 3 0 2 1; +#X connect 5 0 16 0; +#X connect 6 0 22 0; +#X connect 13 0 4 1; +#X connect 14 0 4 1; +#X connect 16 0 4 0; +#X connect 17 0 16 2; +#X connect 18 0 4 0; +#X connect 19 0 4 0; +#X connect 21 0 22 0; diff --git a/Gem/examples/03.lighting/02.light.pd b/Gem/examples/03.lighting/02.light.pd new file mode 100644 index 0000000..21f8811 --- /dev/null +++ b/Gem/examples/03.lighting/02.light.pd @@ -0,0 +1,96 @@ +#N canvas 253 63 751 605 10; +#X obj 532 45 gemhead; +#X msg 107 177 lighting 1; +#X obj 532 156 rotate; +#X floatatom 580 137 4 0 0 0 - - -; +#X obj 313 354 gemhead 1; +#X msg 107 146 lighting 0; +#X obj 532 177 sphere; +#X text 150 38 create a sphere with and without lighting; +#X text 547 91 rotate the sphere; +#X text 313 314 gemhead has a value of 1 so that it is rendered before +the sphere is; +#X text 46 125 you can turn lighting on and off while it is running +; +#X msg 398 507 1 1 1; +#X msg 345 505 1 0 1; +#X text 449 501 change the lights color; +#X floatatom 389 355 0 0 0 0 - - -; +#X msg 185 424 debug 0; +#X msg 186 455 debug 1; +#X text 96 400 figure out where the light is; +#X obj 313 535 light; +#X text 240 558 creates a local light; +#X msg 434 436 2; +#X msg 477 436 3; +#X msg 390 438 1.1; +#X text 389 417 change the position of the light; +#X obj 313 395 rotateXYZ 0 -60 0; +#X obj 313 475 translateXYZ 2 0 0; +#X obj 566 118 hsl 128 15 0 360 0 0 empty empty empty -2 -6 0 10 -233472 +-1 -1 0 1; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 62 264 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 32 281 pd gemwin; +#X connect 0 0 2 0; +#X connect 1 0 28 0; +#X connect 2 0 6 0; +#X connect 4 0 24 0; +#X connect 5 0 28 0; +#X connect 11 0 18 1; +#X connect 12 0 18 1; +#X connect 14 0 24 2; +#X connect 15 0 18 0; +#X connect 16 0 18 0; +#X connect 20 0 25 1; +#X connect 21 0 25 1; +#X connect 22 0 25 1; +#X connect 24 0 25 0; +#X connect 25 0 18 0; +#X connect 26 0 2 1; +#X connect 26 0 3 0; +#X connect 27 0 28 0; diff --git a/Gem/examples/03.lighting/03.controlLights.pd b/Gem/examples/03.lighting/03.controlLights.pd new file mode 100644 index 0000000..04a3dae --- /dev/null +++ b/Gem/examples/03.lighting/03.controlLights.pd @@ -0,0 +1,97 @@ +#N canvas 396 160 600 500 10; +#X obj 373 75 gemhead; +#X msg 128 75 lighting 1; +#X msg 128 107 lighting 0; +#X obj 373 115 sphere; +#X obj 148 268 gemhead; +#X obj 148 424 light; +#X obj 148 308 rotateXYZ; +#X floatatom 238 274 0 0 0 0 - - -; +#X msg 55 355 debug 1; +#X msg 56 388 debug 0; +#X msg 178 399 1 0 0; +#X obj 148 346 translateXYZ 3 0 0; +#X obj 399 256 gemhead; +#X obj 399 296 rotateXYZ; +#X floatatom 489 262 0 0 0 0 - - -; +#X msg 305 352 debug 1; +#X msg 306 385 debug 0; +#X msg 471 396 0 1 0; +#X obj 399 426 world_light; +#X obj 471 364 loadbang; +#X obj 178 370 loadbang; +#X floatatom 246 305 0 0 0 0 - - -; +#X text 263 177 notice that translation affects the; +#X text 261 190 light object \, but not the world_light; +#X obj 399 336 translateXYZ 3 0 0; +#X floatatom 476 312 0 0 0 0 - - -; +#X text 504 311 quite useless; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 64 148 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 165 pd gemwin; +#X connect 0 0 3 0; +#X connect 1 0 28 0; +#X connect 2 0 28 0; +#X connect 4 0 6 0; +#X connect 6 0 11 0; +#X connect 7 0 6 2; +#X connect 8 0 5 0; +#X connect 9 0 5 0; +#X connect 10 0 5 1; +#X connect 11 0 5 0; +#X connect 12 0 13 0; +#X connect 13 0 24 0; +#X connect 14 0 13 1; +#X connect 15 0 18 0; +#X connect 16 0 18 0; +#X connect 17 0 18 1; +#X connect 19 0 17 0; +#X connect 20 0 10 0; +#X connect 21 0 11 1; +#X connect 24 0 18 0; +#X connect 25 0 24 1; +#X connect 27 0 28 0; diff --git a/Gem/examples/03.lighting/04.moveSpheres.pd b/Gem/examples/03.lighting/04.moveSpheres.pd new file mode 100644 index 0000000..b2df9dd --- /dev/null +++ b/Gem/examples/03.lighting/04.moveSpheres.pd @@ -0,0 +1,128 @@ +#N canvas 172 20 824 640 10; +#X text 745 116 on; +#X text 782 114 off; +#X text 557 122 on; +#X text 594 120 off; +#X msg 742 143 1; +#X msg 779 142 0; +#X text 303 503 on; +#X text 340 501 off; +#X msg 116 527 1; +#X msg 152 529 0; +#X msg 297 529 1; +#X msg 335 529 0; +#X obj 373 547 gemhead 1; +#X obj 483 231 int 0; +#X obj 532 231 + 2; +#X obj 634 118 gemhead; +#X floatatom 673 252 0 0 0 0 - - -; +#X obj 444 115 gemhead; +#X msg 34 171 dimen 300 300; +#X msg 64 102 lighting 1; +#X floatatom 483 264 0 0 0 0 - - -; +#X obj 194 573 world_light; +#X obj 194 534 gemhead 1; +#X msg 63 74 lighting 0; +#X obj 673 225 int 0; +#X obj 373 584 light; +#X text 125 480 global light; +#X text 303 483 local light; +#X text 122 505 on; +#X text 152 506 off; +#X text 13 133 set the window size to 300 x 300; +#X text 28 48 you can turn lighting on and off while it is running +; +#X obj 483 197 metro 50; +#X msg 555 145 1; +#X msg 591 146 0; +#X obj 673 191 metro 100; +#X obj 735 223 + 1; +#X obj 444 147 colorRGB 1 0 1; +#X obj 634 146 colorRGB 0 1 0; +#X obj 444 301 rotate 0 1 0; +#X obj 444 342 translate 2 1 0 0; +#X obj 634 329 translate 2 0 1 0; +#X obj 634 287 rotate 1 0 0; +#X text 446 69 Purple sphere; +#X text 636 74 Green sphere; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 64 238 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 255 pd gemwin; +#X obj 444 424 sphere 1 5; +#X obj 634 416 sphere 1 20; +#X connect 4 0 35 0; +#X connect 5 0 35 0; +#X connect 8 0 21 0; +#X connect 9 0 21 0; +#X connect 10 0 25 0; +#X connect 11 0 25 0; +#X connect 12 0 25 0; +#X connect 13 0 14 0; +#X connect 13 0 20 0; +#X connect 14 0 13 1; +#X connect 15 0 38 0; +#X connect 16 0 42 1; +#X connect 17 0 37 0; +#X connect 18 0 46 0; +#X connect 19 0 46 0; +#X connect 20 0 39 1; +#X connect 22 0 21 0; +#X connect 23 0 46 0; +#X connect 24 0 16 0; +#X connect 24 0 36 0; +#X connect 32 0 13 0; +#X connect 33 0 32 0; +#X connect 34 0 32 0; +#X connect 35 0 24 0; +#X connect 36 0 24 1; +#X connect 37 0 39 0; +#X connect 38 0 42 0; +#X connect 39 0 40 0; +#X connect 40 0 47 0; +#X connect 41 0 48 0; +#X connect 42 0 41 0; +#X connect 45 0 46 0; diff --git a/Gem/examples/03.lighting/05.materials.pd b/Gem/examples/03.lighting/05.materials.pd new file mode 100644 index 0000000..9d722f5 --- /dev/null +++ b/Gem/examples/03.lighting/05.materials.pd @@ -0,0 +1,86 @@ +#N canvas 253 63 743 597 10; +#X obj 349 34 gemhead; +#X obj 349 307 rotate; +#X floatatom 367 272 0 0 0 0 - - -; +#X obj 220 436 gemhead 1; +#X text 83 397 gemhead has a value of 1 so that it is rendered before +the sphere is; +#X obj 220 539 light; +#X text 271 543 creates a local light; +#X obj 220 507 translateXYZ 3 0 0; +#X text 150 38 apply materials to a sphere; +#X obj 349 122 diffuse 0.2 0 0; +#X obj 349 224 ambientRGB 0 0 0; +#X obj 349 163 specular 0 0 0.9; +#X obj 349 78 shininess 128; +#X obj 349 361 sphere 2; +#X msg 428 322 50; +#X msg 469 32 10; +#X msg 506 32 100; +#X obj 220 477 rotateXYZ 0 -90 0; +#N canvas 91 174 290 179 Gem.init 0; +#X obj 118 18 loadbang; +#X msg 201 78 reset; +#X obj 118 113 outlet; +#X obj 118 45 t b b; +#X msg 118 79 lighting 1; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 0 4 0; +#X connect 3 1 1 0; +#X connect 4 0 2 0; +#X restore 34 138 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 155 pd gemwin; +#X connect 0 0 12 0; +#X connect 1 0 13 0; +#X connect 2 0 1 1; +#X connect 3 0 17 0; +#X connect 7 0 5 0; +#X connect 9 0 11 0; +#X connect 10 0 1 0; +#X connect 11 0 10 0; +#X connect 12 0 9 0; +#X connect 14 0 13 2; +#X connect 15 0 12 1; +#X connect 16 0 12 1; +#X connect 17 0 7 0; +#X connect 18 0 19 0; diff --git a/Gem/examples/04.pix/01.image.pd b/Gem/examples/04.pix/01.image.pd new file mode 100644 index 0000000..0abd4a9 --- /dev/null +++ b/Gem/examples/04.pix/01.image.pd @@ -0,0 +1,60 @@ +#N canvas 452 108 681 502 12; +#X text 172 376 click on the pix_image object to display the loaded +image with imgview; +#X obj 179 199 gemhead; +#X obj 179 351 pix_draw; +#X text 196 18 display an image using pix_draw; +#X obj 179 227 pix_image ../data/dancer.JPG; +#X obj 179 309 translateXYZ; +#X floatatom 315 261 0 0 0 0 - - -; +#X text 176 177 notice that Z doesn't change the size of the image +; +#X text 62 442 On most machines \, pix_draw is MUCH slower than pix_texture. +However \, pix_draw is easier to use in an example patch.; +#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X obj 315 284 / 100; +#X floatatom 264 261 0 0 0 0 - - -; +#X obj 264 284 / 100; +#X floatatom 213 261 0 0 0 0 - - -; +#X obj 213 284 / 100; +#X connect 1 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 2 0; +#X connect 6 0 13 0; +#X connect 10 0 11 0; +#X connect 11 0 10 0; +#X connect 13 0 5 3; +#X connect 14 0 15 0; +#X connect 15 0 5 2; +#X connect 16 0 17 0; +#X connect 17 0 5 1; diff --git a/Gem/examples/04.pix/02.multiimage.pd b/Gem/examples/04.pix/02.multiimage.pd new file mode 100644 index 0000000..5f0c519 --- /dev/null +++ b/Gem/examples/04.pix/02.multiimage.pd @@ -0,0 +1,49 @@ +#N canvas 411 137 739 504 12; +#X msg 345 170 1; +#X msg 345 202 0; +#X obj 278 200 gemhead; +#X msg 344 133 2; +#X text 206 104 select one of the three images to display; +#X text 154 29 display images use pix_multiimage; +#X obj 278 255 pix_multiimage ../data/temp*.JPG 2; +#X obj 20 209 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 253 pd gemwin; +#X msg 25 229 create; +#X text 21 209 Create window and render; +#X obj 278 313 pix_texture; +#X obj 278 335 square 3; +#X connect 0 0 6 1; +#X connect 1 0 6 1; +#X connect 2 0 6 0; +#X connect 3 0 6 1; +#X connect 6 0 11 0; +#X connect 8 0 9 0; +#X connect 9 0 8 0; +#X connect 11 0 12 0; diff --git a/Gem/examples/04.pix/04.ImageInPlace.pd b/Gem/examples/04.pix/04.ImageInPlace.pd new file mode 100644 index 0000000..72e6f0b --- /dev/null +++ b/Gem/examples/04.pix/04.ImageInPlace.pd @@ -0,0 +1,64 @@ +#N canvas 314 61 654 599 12; +#X msg 489 227 1; +#X msg 489 259 0; +#X obj 375 254 gemhead; +#X msg 488 190 2; +#X text 254 156 select one of the three images to display; +#X obj 375 308 pix_imageInPlace; +#X msg 121 288 download; +#X msg 124 318 purge; +#X obj 375 367 square; +#X text 206 20 display images use pix_imageInPlace; +#X text 64 389 pix_imageInPlace is slightly different than pix_multiimage. +When you select an image to display with pix_multiimage \, it copies +over the image data to the pix_buffer \, which is then used by pix_texture. +; +#X text 62 451 This is potentially slow if you are trying to change +between a lot of images \, but it doesn't use a lot of texture ram. +; +#X text 62 503 pix_imageInPlace sends all of the image data to texture +RAM when the preload message is received. This means that you cannot +process any of the pixel data \, but it is extremely quick to change +between the various images.; +#X msg 119 255 preload ../data/temp*.JPG 2; +#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X connect 0 0 5 1; +#X connect 1 0 5 1; +#X connect 2 0 5 0; +#X connect 3 0 5 1; +#X connect 5 0 8 0; +#X connect 6 0 5 0; +#X connect 7 0 5 0; +#X connect 13 0 5 0; +#X connect 15 0 16 0; +#X connect 16 0 15 0; diff --git a/Gem/examples/04.pix/05.film.pd b/Gem/examples/04.pix/05.film.pd new file mode 100644 index 0000000..601dd7b --- /dev/null +++ b/Gem/examples/04.pix/05.film.pd @@ -0,0 +1,121 @@ +#N canvas 61 44 827 553 12; +#X obj 90 186 gemhead; +#X floatatom 220 155 5 0 0 0 - - -; +#X msg 150 156 auto \$1; +#X obj 150 137 tgl 15 0 empty empty empty 20 8 0 8 -262144 -1 -1 0 +1; +#X floatatom 124 261 5 0 0 0 - - -; +#X msg 197 392 -1 -2 -1 -2 8 -2 1 -2 1; +#X obj 90 467 pix_convolve 3 3; +#X text 472 233 load and play-back a movie; +#X text 368 28 win32:; +#X text 212 134 frame; +#N canvas 243 65 604 505 README 0; +#X text 49 38 the pix_film is the same as pix_movie but does not texture +the movie immediately onto a Geo.; +#X text 50 77 therefore it is possible to manipulate the frames; +#X text 48 106 the pix_film object will return the movie in it's (more +or less) native color-space. most of the times \, this will probably +be not RGBA but RGB or BGR (on windows machines).; +#X text 48 153 do not worry about this. however \, most of the pix-manips +will only work correctly on RGBA-pixes. if this is the case and you +send it a non-RGBA pixture it will say something like "pix_object cannot +handle gray image".; +#X text 49 226 to avoid this \, you can convert your pix-buff to RGBA +using "pix_rgba". this will be a no-cost operation if the pix_buf already +is in RGBA.; +#X text 36 334 you might notice a significant performance-enhancement +by just turning the [pix_rgba] off (via the toggle). however \, not +[pix_rgba] is expensive but actually the [pix_convolve] (which appears to do +nothing when initialized with "0 0 0 0 1 0 0 0 0". When [pix_rgba] +is "off" \, the [pix_convolve] will be bypassed \, and therefore be +very fast.; +#X restore 635 187 pd README; +#X obj 90 573 square 4; +#X obj 90 233 pix_film; +#X floatatom 149 547 5 0 0 0 - - -; +#X msg 393 48 open ../data/homer.avi; +#X msg 386 111 open ../data/anim-1.mov; +#X msg 391 156 open ../data/alea.mpg; +#X text 247 502 you have to texture the movie by hand; +#X text 256 466 manipulate the movie (expensive!); +#X text 26 10 load \, play and manipulate digital videos; +#X text 423 397 edge detection; +#X msg 230 424 0.125 0.125 0.125 0.125 0.125 0.125 0.125 0.125 0.125 +; +#X text 715 422 smoothing; +#X obj 289 252 t f; +#X obj 197 368 loadbang; +#X obj 110 439 tgl 15 0 empty empty empty 20 8 0 8 -262144 -1 -1 0 +1; +#X obj 90 500 pix_texture; +#X obj 20 49 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 93 pd gemwin; +#X msg 25 69 create; +#X text 21 49 Create window and render; +#X text 358 91 linux \, os-X:; +#X text 363 140 linux \, ??:; +#X obj 345 181 t a; +#X msg 410 207 open \$1; +#X obj 410 185 symbol; +#X obj 471 185 openpanel; +#X obj 563 185 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 90 309 pix_rgba; +#X text 178 289 transform the movie into RGBA-space (if the image is +not RGBA \, [pix_convolve] might not be able to process the image and +therefore will do nothing \, which will dramatically "increase" performance) +; +#X connect 0 0 12 0; +#X connect 1 0 12 1; +#X connect 2 0 12 0; +#X connect 3 0 2 0; +#X connect 5 0 6 2; +#X connect 6 0 26 0; +#X connect 12 0 38 0; +#X connect 12 1 4 0; +#X connect 12 2 23 0; +#X connect 13 0 11 1; +#X connect 14 0 33 0; +#X connect 15 0 33 0; +#X connect 16 0 33 0; +#X connect 21 0 6 2; +#X connect 23 0 12 1; +#X connect 24 0 5 0; +#X connect 25 0 6 0; +#X connect 26 0 11 0; +#X connect 28 0 29 0; +#X connect 29 0 28 0; +#X connect 33 0 12 0; +#X connect 34 0 33 0; +#X connect 35 0 34 0; +#X connect 36 0 35 0; +#X connect 37 0 36 0; +#X connect 38 0 6 0; diff --git a/Gem/examples/04.pix/05.movie.pd b/Gem/examples/04.pix/05.movie.pd new file mode 100644 index 0000000..a6227d3 --- /dev/null +++ b/Gem/examples/04.pix/05.movie.pd @@ -0,0 +1,89 @@ +#N canvas 133 25 637 554 12; +#X obj 157 59 gemhead; +#X floatatom 336 167 0 0 0 0 - - -; +#X obj 157 385 rotateXYZ; +#X obj 157 437 cube; +#X floatatom 224 359 0 0 0 0 - - -; +#X obj 224 310 metro 50; +#X obj 203 412 translateXYZ 2 1 0; +#X obj 203 438 cube; +#X obj 157 201 pix_movie; +#X text 377 167 control which frame; +#X text 256 436 automatically textures; +#X obj 177 238 print frames; +#X msg 287 25 open ../data/homer.avi; +#X obj 224 290 tgl 15 0 empty empty empty 20 8 0 8 -262144 -1 -1 0 +1; +#X obj 325 282 print done; +#X msg 336 135 auto \$1; +#X obj 336 116 tgl 15 0 empty empty empty 20 8 0 8 -262144 -1 -1 0 +1; +#X text 43 486 the texturing is done automatically: there is no need +to care for the image-size (it doesn't have to be a power of 2). on +the other hand \, you cannot do image-processing !! use [pix_film] +for this; +#X msg 325 259 reached the end !!!; +#X obj 293 235 t f b; +#X text 449 13 Win32; +#X text 461 73 linux; +#X msg 297 56 open ../data/anim-1.mov; +#X msg 307 87 open ../data/alea.mpg; +#X text 8 264 notice: you don't need pix_texture; +#X text 406 131 play the movie !; +#X obj 224 335 i; +#X obj 259 335 + 1; +#X obj 295 335 % 360; +#X text 471 42 apple; +#X obj 505 415 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 132 112 create \, 1; +#X msg 198 112 destroy; +#X msg 234 221 dimen 500 500; +#X msg 279 189 dimen 1024 768; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X connect 9 0 0 0; +#X restore 510 453 pd gemwin; +#X msg 510 430 create; +#X text 506 413 Create window:; +#X connect 0 0 8 0; +#X connect 1 0 8 1; +#X connect 2 0 3 0; +#X connect 2 0 6 0; +#X connect 4 0 2 2; +#X connect 4 0 2 3; +#X connect 5 0 26 0; +#X connect 6 0 7 0; +#X connect 8 0 2 0; +#X connect 8 1 11 0; +#X connect 8 2 19 0; +#X connect 12 0 8 0; +#X connect 13 0 5 0; +#X connect 15 0 8 0; +#X connect 16 0 15 0; +#X connect 18 0 14 0; +#X connect 19 0 8 1; +#X connect 19 1 18 0; +#X connect 22 0 8 0; +#X connect 23 0 8 0; +#X connect 26 0 27 0; +#X connect 26 0 4 0; +#X connect 27 0 28 0; +#X connect 28 0 26 1; +#X connect 31 0 32 0; +#X connect 32 0 31 0; diff --git a/Gem/examples/04.pix/06.PixRect.pd b/Gem/examples/04.pix/06.PixRect.pd new file mode 100644 index 0000000..93f5fba --- /dev/null +++ b/Gem/examples/04.pix/06.PixRect.pd @@ -0,0 +1,88 @@ +#N canvas 183 99 635 638 12; +#X obj 179 176 gemhead; +#X obj 179 587 pix_texture; +#X msg 291 536 1 0 0; +#X obj 179 612 square 3; +#X floatatom 329 238 0 -10 250 0 - - -; +#X obj 420 434 t b f; +#X obj 420 408 + 40; +#X obj 342 420 + 40; +#X text 372 182 the position; +#X text 433 539 the color; +#X obj 291 513 loadbang; +#X obj 179 204 pix_image ../data/fractal.JPG; +#X obj 329 308 t f f; +#X obj 380 308 t f f; +#X text 375 241 x-pos; +#X text 423 269 y-pos; +#X floatatom 466 304 0 -50 250 0 - - -; +#X text 512 307 width; +#X text 560 335 height; +#X obj 466 374 t b f; +#X obj 517 374 t b f; +#X obj 342 443 t b f; +#X floatatom 380 271 0 -10 250 0 - - -; +#X floatatom 517 333 0 -50 250 0 - - -; +#X msg 373 538 0 1 0; +#X obj 235 488 pack 0 0 40 40; +#X obj 179 561 pix_rectangle; +#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X text 118 26 draw a rectangle onto an image; +#X connect 0 0 11 0; +#X connect 1 0 3 0; +#X connect 2 0 26 2; +#X connect 4 0 12 0; +#X connect 5 0 25 0; +#X connect 5 1 25 3; +#X connect 6 0 5 0; +#X connect 7 0 21 0; +#X connect 10 0 2 0; +#X connect 11 0 26 0; +#X connect 12 0 25 0; +#X connect 12 1 7 0; +#X connect 13 0 6 0; +#X connect 13 1 25 1; +#X connect 16 0 19 0; +#X connect 19 0 7 0; +#X connect 19 1 7 1; +#X connect 20 0 6 0; +#X connect 20 1 6 1; +#X connect 21 0 25 0; +#X connect 21 1 25 2; +#X connect 22 0 13 0; +#X connect 23 0 20 0; +#X connect 24 0 26 2; +#X connect 25 0 26 1; +#X connect 26 0 1 0; +#X connect 28 0 29 0; +#X connect 29 0 28 0; diff --git a/Gem/examples/04.pix/07.PixSet.pd b/Gem/examples/04.pix/07.PixSet.pd new file mode 100644 index 0000000..b6deab3 --- /dev/null +++ b/Gem/examples/04.pix/07.PixSet.pd @@ -0,0 +1,69 @@ +#N canvas 243 272 754 536 10; +#X obj 143 110 gemhead; +#X text 99 37 ========; +#X msg 149 366 quality 0; +#X obj 143 409 square 2; +#X obj 149 343 loadbang; +#X text 101 487 maybe have a look at; +#X text 101 24 pix_set; +#X text 246 23 set the pixles of the image; +#X msg 279 165 rgb; +#X msg 279 141 rgba; +#X msg 279 189 grey; +#X msg 229 108 0 0.8 0 0 0.9 0 0.1 0 1 1 1 10; +#X msg 268 227 set 2 4; +#X text 461 109 a list of pixel-values; +#X text 331 163 interpret the list as; +#X text 514 136 r1 g1 b1 a1 r2 g2 b2 a2 r3...; +#X text 512 165 r1 g1 b1 r2 g2 b2 r3...; +#X text 512 194 grey1 grey2 grey3...; +#X text 507 236 set the imagesize to "X Y"; +#X text 306 317 creation arguments :: [X Y] of the image buffer; +#X msg 265 249 set 1 1; +#X text 253 487 [pix_dump]; +#X obj 143 243 pix_set 64 64; +#X obj 143 387 pix_texture; +#X obj 450 389 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 455 433 pd gemwin; +#X msg 455 409 create; +#X text 451 389 Create window and render; +#X connect 0 0 22 0; +#X connect 2 0 23 0; +#X connect 4 0 2 0; +#X connect 8 0 22 0; +#X connect 9 0 22 0; +#X connect 10 0 22 0; +#X connect 11 0 22 1; +#X connect 12 0 22 0; +#X connect 20 0 22 0; +#X connect 22 0 23 0; +#X connect 23 0 3 0; +#X connect 25 0 26 0; +#X connect 26 0 25 0; diff --git a/Gem/examples/04.pix/08.PixDump.pd b/Gem/examples/04.pix/08.PixDump.pd new file mode 100644 index 0000000..a21b273 --- /dev/null +++ b/Gem/examples/04.pix/08.PixDump.pd @@ -0,0 +1,64 @@ +#N canvas 53 47 761 536 10; +#X obj 143 110 gemhead; +#X obj 143 203 pix_dump; +#X text 101 24 pix_dump; +#X text 99 37 ========; +#X msg 369 184 bang; +#X obj 143 387 pix_texture; +#X msg 149 366 quality 0; +#X obj 143 409 square 2; +#X obj 149 343 loadbang; +#X text 412 184 trigger the pix_dump; +#X text 246 24 dump the pixels of the image; +#X obj 194 254 print dump; +#X text 297 265 this produces an output like; +#X text 292 285 "r1 g1 b1 a1 r2 g2 b2 a2 r3 ..."; +#X text 292 302 (r=red \; g=green \; b=blue \; a=alpha); +#X obj 474 371 repack; +#X text 278 369 maybe you would like to use; +#X text 525 373 (part of zexy); +#X text 275 389 to excerpt pixel information out of this; +#X text 101 487 maybe have a look at; +#X obj 250 487 pix_set; +#X obj 455 54 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 460 98 pd gemwin; +#X msg 460 74 create; +#X text 456 54 Create window and render; +#X obj 143 135 pix_image ../data/blob2.tif; +#X connect 0 0 25 0; +#X connect 1 0 5 0; +#X connect 1 1 11 0; +#X connect 4 0 1 0; +#X connect 5 0 7 0; +#X connect 6 0 5 0; +#X connect 8 0 6 0; +#X connect 22 0 23 0; +#X connect 23 0 22 0; +#X connect 25 0 1 0; diff --git a/Gem/examples/04.pix/09.Histogram.pd b/Gem/examples/04.pix/09.Histogram.pd new file mode 100644 index 0000000..5922a8e --- /dev/null +++ b/Gem/examples/04.pix/09.Histogram.pd @@ -0,0 +1,89 @@ +#N canvas 0 0 764 557 10; +#N canvas 412 247 681 394 tables 0; +#N canvas 0 0 450 300 (subpatch) 0; +#X array red 256 float 0; +#X coords 0 1 255 0 256 140 1; +#X restore 95 30 graph; +#N canvas 0 0 450 300 (subpatch) 0; +#X array green 256 float 0; +#X coords 0 1 255 0 256 140 1; +#X restore 399 29 graph; +#N canvas 0 0 450 300 (subpatch) 0; +#X array blue 256 float 0; +#X coords 0 1 255 0 256 140 1; +#X restore 98 214 graph; +#N canvas 0 0 450 300 (subpatch) 0; +#X array alpha 64 float 0; +#X coords 0 1 63 0 256 140 1; +#X restore 396 212 graph; +#X restore 379 211 pd tables; +#X obj 34 192 gemhead; +#X obj 34 476 pix_texture; +#N canvas 0 0 450 300 (subpatch) 0; +#X array rgb 64 float 0; +#X coords 0 1 63 0 256 140 1; +#X restore 287 53 graph; +#X text 78 8 pix_curve: adjust the colour of an image; +#X text 451 213 separate tables for r \, g \, b and a; +#X msg 185 192 1; +#X msg 155 192 0; +#X msg 214 192 2; +#X obj 34 497 square 3; +#X msg 95 289 set red green blue alpha; +#X msg 99 325 set red green blue; +#X msg 99 365 set rgb; +#X obj 34 395 pix_histo rgb; +#X msg 564 57 \; rgb resize 32; +#X msg 565 93 \; rgb resize 64; +#X msg 564 135 \; rgb normalize 1; +#X obj 300 367 pix_histo rgb; +#X obj 303 328 pix_histo red green blue; +#X obj 302 288 pix_histo red green blue alpha; +#X text 313 388 one histogramm for all channels (making grey out of +rgb); +#X text 326 346 histograms for r \, g \, b; +#X text 337 306 histograms for r \, g \, b \, a; +#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X obj 34 217 pix_multiimage ../data/temp*.JPG 2; +#X connect 1 0 27 0; +#X connect 2 0 9 0; +#X connect 6 0 27 1; +#X connect 7 0 27 1; +#X connect 8 0 27 1; +#X connect 10 0 13 0; +#X connect 11 0 13 0; +#X connect 12 0 13 0; +#X connect 13 0 2 0; +#X connect 24 0 25 0; +#X connect 25 0 24 0; +#X connect 27 0 13 0; diff --git a/Gem/examples/04.pix/10.PixDataSimple.pd b/Gem/examples/04.pix/10.PixDataSimple.pd new file mode 100644 index 0000000..36bb4e6 --- /dev/null +++ b/Gem/examples/04.pix/10.PixDataSimple.pd @@ -0,0 +1,90 @@ +#N canvas 284 93 594 539 10; +#X obj 46 186 gemwin; +#X obj 319 173 gemhead; +#X obj 258 329 pix_data; +#X msg 244 103 1; +#X msg 243 128 0; +#X msg 87 48 create; +#X msg 114 104 destroy; +#X msg 319 143 bang; +#X msg 205 103 bang; +#X obj 205 73 t b b; +#X msg 205 54 bang; +#X obj 233 422 translateXYZ; +#X obj 233 360 gemhead; +#X obj 233 449 color; +#X obj 233 200 t b b b b; +#X obj 369 328 * 6; +#X obj 444 328 * 6; +#X obj 444 348 - 3; +#X obj 369 348 - 3; +#X msg 348 42 1; +#X msg 391 42 0; +#X obj 84 302 world_light; +#X obj 84 274 gemhead; +#X obj 348 93 metro 5; +#X obj 233 478 sphere 0.1; +#X text 79 13 click here to begin; +#X text 320 18 turn on/off the metro; +#X obj 319 202 pix_image ../data/fractal.JPG; +#N canvas 95 194 290 179 Gem.init 0; +#X obj 118 18 loadbang; +#X msg 201 78 reset; +#X obj 118 113 outlet; +#X obj 118 45 t b b; +#X msg 118 79 lighting 1; +#X msg 22 77 buffer 1; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 0 4 0; +#X connect 3 0 5 0; +#X connect 3 1 1 0; +#X connect 4 0 2 0; +#X connect 5 0 2 0; +#X restore 25 153 pd Gem.init; +#X text 93 34 1; +#X text 209 38 2; +#X obj 337 253 random 1000; +#X obj 337 270 / 1000; +#X obj 337 288 t f f; +#X obj 419 253 random 1000; +#X obj 419 270 / 1000; +#X obj 419 288 t f f; +#X connect 1 0 27 0; +#X connect 2 1 13 1; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X connect 6 0 0 0; +#X connect 7 0 1 0; +#X connect 8 0 0 0; +#X connect 9 0 7 0; +#X connect 9 0 8 0; +#X connect 9 1 3 0; +#X connect 10 0 9 0; +#X connect 11 0 13 0; +#X connect 12 0 11 0; +#X connect 13 0 24 0; +#X connect 14 0 12 0; +#X connect 14 1 2 0; +#X connect 14 1 22 0; +#X connect 14 2 31 0; +#X connect 14 3 34 0; +#X connect 15 0 18 0; +#X connect 16 0 17 0; +#X connect 17 0 11 2; +#X connect 18 0 11 1; +#X connect 19 0 23 0; +#X connect 20 0 23 0; +#X connect 22 0 21 0; +#X connect 23 0 14 0; +#X connect 27 0 2 1; +#X connect 28 0 0 0; +#X connect 31 0 32 0; +#X connect 32 0 33 0; +#X connect 33 0 2 2; +#X connect 33 1 15 0; +#X connect 34 0 35 0; +#X connect 35 0 36 0; +#X connect 36 0 2 3; +#X connect 36 1 16 0; diff --git a/Gem/examples/04.pix/11.PixDataComplex.pd b/Gem/examples/04.pix/11.PixDataComplex.pd new file mode 100644 index 0000000..cb8d846 --- /dev/null +++ b/Gem/examples/04.pix/11.PixDataComplex.pd @@ -0,0 +1,117 @@ +#N canvas 331 86 929 574 10; +#X obj 30 159 gemwin; +#X obj 372 135 gemhead; +#X obj 372 164 pix_image ../data/fractal.JPG; +#X obj 285 311 pix_data; +#X msg 183 110 1; +#X msg 218 110 0; +#X msg 48 37 create; +#X msg 49 87 destroy; +#X msg 372 105 bang; +#X msg 138 111 bang; +#X obj 214 61 t b b; +#X msg 214 36 bang; +#X obj 206 400 translateXYZ; +#X obj 206 338 gemhead; +#X obj 206 436 color; +#X obj 266 205 t b b b b; +#X obj 443 313 * 6; +#X obj 443 339 - 3; +#X obj 385 341 - 3; +#X msg 292 30 1; +#X msg 325 30 0; +#X obj 84 320 world_light; +#X obj 84 274 gemhead; +#X obj 206 471 rotate 1 1 1; +#X obj 337 397 * 90; +#X obj 292 114 metro 5; +#X obj 485 313 pix_data; +#X obj 501 237 gemhead; +#N canvas 99 214 290 179 Gem.init 0; +#X obj 118 18 loadbang; +#X msg 215 80 reset; +#X obj 118 113 outlet; +#X obj 118 45 t b b; +#X msg 118 79 lighting 1; +#X msg 34 80 buffer 1; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 0 4 0; +#X connect 3 0 5 0; +#X connect 3 1 1 0; +#X connect 4 0 2 0; +#X connect 5 0 2 0; +#X restore 30 125 pd Gem.init; +#X text 53 22 1; +#X text 217 19 2; +#X obj 336 236 random 1000; +#X obj 336 254 / 1000; +#X obj 336 272 t f f; +#X obj 418 236 random 1000; +#X obj 418 254 / 1000; +#X obj 418 272 t f f; +#X floatatom 385 366 5 0 0 0 - - -; +#X floatatom 443 366 5 0 0 0 - - -; +#X obj 385 314 * 6; +#X floatatom 341 429 5 0 0 0 - - -; +#X obj 206 506 cube 0; +#X msg 500 197 bang; +#X obj 501 272 pix_image ../data/dancer.JPG; +#X floatatom 537 423 5 0 0 0 - - -; +#X obj 537 473 * 0.2; +#X obj 537 369 f; +#X connect 1 0 2 0; +#X connect 2 0 3 1; +#X connect 3 1 14 1; +#X connect 3 2 24 0; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 1 0; +#X connect 8 0 27 0; +#X connect 9 0 0 0; +#X connect 10 0 8 0; +#X connect 10 0 9 0; +#X connect 10 1 4 0; +#X connect 11 0 10 0; +#X connect 12 0 14 0; +#X connect 13 0 12 0; +#X connect 14 0 23 0; +#X connect 15 0 13 0; +#X connect 15 1 3 0; +#X connect 15 1 22 0; +#X connect 15 1 26 0; +#X connect 15 2 31 0; +#X connect 15 3 34 0; +#X connect 16 0 17 0; +#X connect 17 0 12 2; +#X connect 17 0 38 0; +#X connect 18 0 12 1; +#X connect 18 0 37 0; +#X connect 19 0 25 0; +#X connect 20 0 25 0; +#X connect 22 0 21 0; +#X connect 23 0 41 0; +#X connect 24 0 23 1; +#X connect 24 0 40 0; +#X connect 25 0 15 0; +#X connect 26 1 46 0; +#X connect 27 0 43 0; +#X connect 28 0 0 0; +#X connect 31 0 32 0; +#X connect 32 0 33 0; +#X connect 33 0 3 2; +#X connect 33 0 26 2; +#X connect 33 1 39 0; +#X connect 34 0 35 0; +#X connect 35 0 36 0; +#X connect 36 0 3 3; +#X connect 36 0 26 3; +#X connect 36 1 16 0; +#X connect 39 0 18 0; +#X connect 42 0 27 0; +#X connect 43 0 26 1; +#X connect 44 0 45 0; +#X connect 45 0 41 1; +#X connect 46 0 44 0; diff --git a/Gem/examples/04.pix/12.add.pd b/Gem/examples/04.pix/12.add.pd new file mode 100644 index 0000000..2b5dc7f --- /dev/null +++ b/Gem/examples/04.pix/12.add.pd @@ -0,0 +1,52 @@ +#N canvas 542 198 681 468 10; +#X obj 270 175 pix_image ../data/dancer.JPG; +#X obj 270 342 pix_texture; +#X obj 270 383 square; +#X msg 329 364 3; +#X obj 369 209 gemhead 20; +#X obj 270 142 gemhead; +#X msg 370 141 open ../data/dancer.JPG; +#X obj 369 232 pix_image ../data/fractal.JPG; +#X obj 270 282 pix_add; +#X obj 20 79 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 123 pd gemwin; +#X msg 25 106 create; +#X text 21 79 Create window and render; +#X text 135 60 blending \, using pixel addition; +#X connect 0 0 8 0; +#X connect 1 0 2 0; +#X connect 3 0 2 1; +#X connect 4 0 7 0; +#X connect 5 0 0 0; +#X connect 6 0 0 0; +#X connect 7 0 8 1; +#X connect 8 0 1 0; +#X connect 10 0 11 0; +#X connect 11 0 10 0; diff --git a/Gem/examples/04.pix/12.blending.pd b/Gem/examples/04.pix/12.blending.pd new file mode 100644 index 0000000..473c48e --- /dev/null +++ b/Gem/examples/04.pix/12.blending.pd @@ -0,0 +1,173 @@ +#N canvas 138 0 775 371 10; +#X obj 254 305 pix_texture; +#X obj 290 112 gemhead 20; +#X obj 254 65 gemhead; +#X text 257 30 various methods for blending images; +#N canvas 165 295 561 386 blending 0; +#X obj 28 65 inlet; +#X obj 191 354 outlet; +#X obj 173 285 inlet; +#X obj 320 8 inlet; +#X obj 28 322 pix_composite; +#X obj 129 323 pix_add; +#X obj 285 322 pix_diff; +#X obj 191 322 pix_subtract; +#X obj 28 227 pix_alpha; +#N canvas 445 182 508 174 select 0; +#X obj 88 35 inlet; +#X msg 88 98 1; +#X msg 144 98 2; +#X msg 201 97 3; +#X msg 257 97 0; +#X obj 88 121 outlet; +#X msg 329 100 4; +#X obj 88 59 select pix_add pix_subtract pix_diff pix_composite pix_multiply +; +#X connect 0 0 7 0; +#X connect 1 0 5 0; +#X connect 2 0 5 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 6 0 5 0; +#X connect 7 0 1 0; +#X connect 7 1 2 0; +#X connect 7 2 3 0; +#X connect 7 3 4 0; +#X connect 7 4 6 0; +#X restore 350 82 pd select blending method; +#X obj 360 324 pix_multiply; +#N canvas 172 373 450 300 demux5 0; +#X obj 59 30 inlet; +#X obj 283 17 inlet; +#X obj 59 193 outlet; +#X obj 59 137 spigot; +#X obj 96 109 == 0; +#X obj 106 137 spigot; +#X obj 153 139 spigot; +#X obj 200 137 spigot; +#X obj 246 137 spigot; +#X obj 143 109 == 1; +#X obj 190 109 == 2; +#X obj 237 109 == 3; +#X obj 283 109 == 4; +#X obj 96 83 loadbang; +#X obj 59 52 t a a a a a; +#X obj 106 194 outlet; +#X obj 153 195 outlet; +#X obj 200 196 outlet; +#X obj 246 195 outlet; +#X obj 283 61 f; +#X connect 0 0 14 0; +#X connect 1 0 19 0; +#X connect 3 0 2 0; +#X connect 4 0 3 1; +#X connect 5 0 15 0; +#X connect 6 0 16 0; +#X connect 7 0 17 0; +#X connect 8 0 18 0; +#X connect 9 0 5 1; +#X connect 10 0 6 1; +#X connect 11 0 7 1; +#X connect 12 0 8 1; +#X connect 13 0 4 0; +#X connect 14 0 3 0; +#X connect 14 1 5 0; +#X connect 14 2 6 0; +#X connect 14 3 7 0; +#X connect 14 4 8 0; +#X connect 19 0 4 0; +#X connect 19 0 9 0; +#X connect 19 0 10 0; +#X connect 19 0 11 0; +#X connect 19 0 12 0; +#X restore 28 189 pd demux5; +#X obj 320 28 t b a; +#X obj 28 129 pix_buf; +#X text 26 39 pix1; +#X text 176 269 pix2; +#X obj 350 56 symbol; +#X text 99 232 we need an alpha componenct for 'composite'; +#X text 85 115 [pix_add] and friends will overwrite the original (left) +image with the blend. [pix_buf] holds a local copy of the original +image and will refresh the output when banged.; +#X connect 0 0 13 0; +#X connect 2 0 5 1; +#X connect 2 0 4 1; +#X connect 2 0 7 1; +#X connect 2 0 6 1; +#X connect 2 0 10 1; +#X connect 3 0 12 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 1 0; +#X connect 7 0 1 0; +#X connect 8 0 4 0; +#X connect 9 0 11 1; +#X connect 10 0 1 0; +#X connect 11 0 8 0; +#X connect 11 1 5 0; +#X connect 11 2 7 0; +#X connect 11 3 6 0; +#X connect 11 4 10 0; +#X connect 12 0 13 0; +#X connect 12 1 16 0; +#X connect 13 0 11 0; +#X connect 16 0 9 0; +#X restore 254 250 pd blending; +#X obj 254 328 square 3; +#X text 461 210 additive blending (likely to get white); +#X text 461 231 subtractive blending (likely to get black); +#X text 467 184 alpha blending; +#X msg 367 281 pix_multiply; +#X msg 368 256 pix_diff; +#X msg 366 232 pix_subtract; +#X msg 366 207 pix_add; +#X msg 367 184 pix_composite; +#X text 469 281 multiply 2 images together; +#X obj 254 87 pix_image ../data/dancer.JPG; +#X obj 290 136 pix_image ../data/fractal.JPG; +#X text 465 259 difference; +#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X connect 0 0 5 0; +#X connect 1 0 16 0; +#X connect 2 0 15 0; +#X connect 4 0 0 0; +#X connect 9 0 4 2; +#X connect 10 0 4 2; +#X connect 11 0 4 2; +#X connect 12 0 4 2; +#X connect 13 0 4 2; +#X connect 15 0 4 0; +#X connect 16 0 4 1; +#X connect 19 0 20 0; +#X connect 20 0 19 0; diff --git a/Gem/examples/04.pix/12.composite.pd b/Gem/examples/04.pix/12.composite.pd new file mode 100644 index 0000000..ce3a790 --- /dev/null +++ b/Gem/examples/04.pix/12.composite.pd @@ -0,0 +1,54 @@ +#N canvas 246 168 681 468 10; +#X obj 270 175 pix_image ../data/dancer.JPG; +#X obj 270 338 pix_texture; +#X obj 270 379 square; +#X msg 329 360 3; +#X obj 270 278 pix_composite; +#X obj 369 209 gemhead 20; +#X obj 270 142 gemhead; +#X obj 270 207 pix_alpha; +#X msg 370 141 open ../data/dancer.JPG; +#X obj 369 244 pix_image ../data/fractal.JPG; +#X text 135 60 blending \, using the alpha-mask; +#X obj 20 79 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 123 pd gemwin; +#X msg 25 105 create; +#X text 21 79 Create window and render; +#X connect 0 0 7 0; +#X connect 1 0 2 0; +#X connect 3 0 2 1; +#X connect 4 0 1 0; +#X connect 5 0 9 0; +#X connect 6 0 0 0; +#X connect 7 0 4 0; +#X connect 8 0 0 0; +#X connect 9 0 4 1; +#X connect 12 0 13 0; +#X connect 13 0 12 0; diff --git a/Gem/examples/04.pix/12.pix_multiply.pd b/Gem/examples/04.pix/12.pix_multiply.pd new file mode 100644 index 0000000..1826175 --- /dev/null +++ b/Gem/examples/04.pix/12.pix_multiply.pd @@ -0,0 +1,55 @@ +#N canvas 58 175 600 500 10; +#X obj 288 247 pix_image ../data/dancer.JPG; +#X obj 270 153 gemhead; +#X obj 270 188 pix_image ../data/fractal.JPG; +#X obj 288 214 gemhead 20; +#X obj 270 278 pix_multiply; +#X text 296 84 multiply two images together; +#X text 270 116 the dancer image is just black and white; +#X text 104 25 blending \, using multiplication; +#X obj 270 318 pix_texture; +#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 689 152 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X msg 27 83 color 1 1 1 0; +#X obj 66 65 t b b; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 3 0 2 0; +#X connect 4 0 3 0; +#X connect 4 1 1 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X obj 270 379 square 3; +#X connect 0 0 4 1; +#X connect 1 0 2 0; +#X connect 2 0 4 0; +#X connect 3 0 0 0; +#X connect 4 0 8 0; +#X connect 8 0 13 0; +#X connect 10 0 11 0; +#X connect 11 0 10 0; diff --git a/Gem/examples/04.pix/13.maskDancer.pd b/Gem/examples/04.pix/13.maskDancer.pd new file mode 100644 index 0000000..957a941 --- /dev/null +++ b/Gem/examples/04.pix/13.maskDancer.pd @@ -0,0 +1,55 @@ +#N canvas 4 20 600 500 10; +#X obj 270 278 pix_mask; +#X obj 288 247 pix_image ../data/dancer.JPG; +#X obj 270 153 gemhead; +#X obj 270 312 alpha; +#X obj 270 188 pix_image ../data/fractal.JPG; +#X obj 270 338 pix_texture; +#X obj 288 214 gemhead 20; +#X obj 270 379 square 3; +#X text 234 59 blending \, using mask; +#X obj 20 89 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 88 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X msg 25 82 color 1 1 1 0; +#X obj 88 64 t b b; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 3 0 2 0; +#X connect 4 0 3 0; +#X connect 4 1 1 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 133 pd gemwin; +#X msg 25 109 create; +#X text 21 89 Create window and render; +#X connect 0 0 3 0; +#X connect 1 0 0 1; +#X connect 2 0 4 0; +#X connect 3 0 5 0; +#X connect 4 0 0 0; +#X connect 5 0 7 0; +#X connect 6 0 1 0; +#X connect 10 0 11 0; +#X connect 11 0 10 0; diff --git a/Gem/examples/04.pix/14.takeAlpha.pd b/Gem/examples/04.pix/14.takeAlpha.pd new file mode 100644 index 0000000..535056c --- /dev/null +++ b/Gem/examples/04.pix/14.takeAlpha.pd @@ -0,0 +1,64 @@ +#N canvas 426 68 613 402 10; +#X obj 257 92 gemhead; +#X obj 343 168 gemhead; +#X obj 257 244 pix_takealpha; +#X text 18 24 takes the alpha-channel of another image; +#X obj 456 269 pix_texture; +#X obj 456 336 square; +#X obj 456 310 translateXYZ 2 0 0; +#X obj 257 314 translateXYZ -2 0 0; +#X obj 456 289 alpha; +#X obj 257 342 square 2; +#X obj 257 270 pix_texture; +#X obj 257 290 alpha; +#X text 403 173 load an image with an alpha-mask; +#X text 355 245 take the alpha-mask of img2; +#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X obj 343 210 t a a; +#X obj 257 125 pix_image ../data/temp2.JPG; +#X obj 343 190 pix_image ../data/fractalAlpha.TIF; +#X connect 0 0 19 0; +#X connect 1 0 20 0; +#X connect 2 0 10 0; +#X connect 4 0 8 0; +#X connect 6 0 5 0; +#X connect 7 0 9 0; +#X connect 8 0 6 0; +#X connect 10 0 11 0; +#X connect 11 0 7 0; +#X connect 15 0 16 0; +#X connect 16 0 15 0; +#X connect 18 0 2 1; +#X connect 18 1 4 0; +#X connect 19 0 2 0; +#X connect 20 0 18 0; diff --git a/Gem/examples/04.pix/15.pix_alpha.pd b/Gem/examples/04.pix/15.pix_alpha.pd new file mode 100644 index 0000000..de645f2 --- /dev/null +++ b/Gem/examples/04.pix/15.pix_alpha.pd @@ -0,0 +1,82 @@ +#N canvas 78 67 719 587 10; +#X obj 332 30 gemhead; +#X obj 332 371 pix_texture; +#X msg 375 394 4; +#X obj 332 76 pix_image ../data/fractal.JPG; +#X obj 332 302 pix_alpha; +#X obj 332 421 square; +#X obj 332 336 alpha; +#X msg 456 166 1 1 1; +#X msg 459 243 0 0 0; +#X msg 356 219 0.5; +#X msg 348 185 1; +#X msg 457 209 1 0.5 0.5; +#X msg 362 255 0; +#X text 212 222 set the alpha value; +#X text 394 138 set the high threshold; +#N canvas 12 0 271 246 cube 0; +#X obj 69 39 gemhead 20; +#X obj 69 71 translateXYZ 0 0 -4; +#X obj 69 205 cube; +#X obj 69 180 rotateXYZ; +#X obj 69 112 render_trigger; +#X obj 115 141 i; +#X obj 145 142 + 1; +#X obj 180 143 % 360; +#X connect 0 0 1 0; +#X connect 1 0 4 0; +#X connect 3 0 2 0; +#X connect 4 0 3 0; +#X connect 4 1 5 0; +#X connect 5 0 6 0; +#X connect 5 0 3 1; +#X connect 5 0 3 2; +#X connect 5 0 3 3; +#X connect 6 0 7 0; +#X connect 7 0 5 1; +#X restore 444 551 pd cube in the back; +#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X connect 0 0 3 0; +#X connect 1 0 5 0; +#X connect 2 0 5 1; +#X connect 3 0 4 0; +#X connect 4 0 6 0; +#X connect 6 0 1 0; +#X connect 7 0 4 3; +#X connect 8 0 4 3; +#X connect 9 0 4 1; +#X connect 10 0 4 1; +#X connect 11 0 4 3; +#X connect 12 0 4 1; +#X connect 17 0 18 0; +#X connect 18 0 17 0; diff --git a/Gem/examples/04.pix/16.alphaGrey.pd b/Gem/examples/04.pix/16.alphaGrey.pd new file mode 100644 index 0000000..9d5405b --- /dev/null +++ b/Gem/examples/04.pix/16.alphaGrey.pd @@ -0,0 +1,78 @@ +#N canvas 28 0 713 500 10; +#X obj 135 336 pix_texture; +#X obj 135 393 square 2; +#X obj 135 171 pix_image ../data/fractalAlpha.TIF; +#X obj 135 308 pix_a_2grey 0.5; +#X obj 135 215 translateXYZ -2 0 0; +#X obj 386 140 gemhead; +#X obj 386 309 pix_texture; +#X obj 386 402 square 2; +#X obj 386 171 pix_image ../data/fractalAlpha.TIF; +#X obj 386 348 alpha; +#X obj 386 209 translateXYZ 2 0 0; +#X obj 228 13 pix_a_2grey; +#X text 261 55 grey's out all pixels \, of which the alpha-channel +is above a certain threshold; +#X obj 240 269 hsl 128 15 -1 1 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 3100 1; +#X msg 237 246 0; +#X msg 266 246 0.5; +#X obj 20 39 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 21 39 Create window and render; +#X obj 135 139 gemhead; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 1 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 28 61 pd gemwin; +#X floatatom 237 288 5 -1 1 0 - - -; +#X connect 0 0 1 0; +#X connect 2 0 4 0; +#X connect 3 0 0 0; +#X connect 4 0 3 0; +#X connect 5 0 8 0; +#X connect 6 0 9 0; +#X connect 8 0 10 0; +#X connect 9 0 7 0; +#X connect 10 0 6 0; +#X connect 13 0 20 0; +#X connect 14 0 13 0; +#X connect 15 0 13 0; +#X connect 18 0 2 0; +#X connect 20 0 3 1; diff --git a/Gem/examples/04.pix/16.pix_2grey.pd b/Gem/examples/04.pix/16.pix_2grey.pd new file mode 100644 index 0000000..e2552c1 --- /dev/null +++ b/Gem/examples/04.pix/16.pix_2grey.pd @@ -0,0 +1,45 @@ +#N canvas 204 170 691 547 10; +#X obj 308 140 gemhead; +#X obj 308 374 pix_texture; +#X obj 308 402 square 2; +#X obj 308 171 pix_image ../data/fractalAlpha.TIF; +#X obj 308 297 pix_2grey; +#X obj 20 159 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 203 pd gemwin; +#X msg 25 179 create; +#X text 21 159 Create window and render; +#X text 64 81 greys out all pixels (but pixel-values are still in RGBA) +; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 0 4 0; +#X connect 4 0 1 0; +#X connect 6 0 7 0; +#X connect 7 0 6 0; diff --git a/Gem/examples/04.pix/17.pix_gain.pd b/Gem/examples/04.pix/17.pix_gain.pd new file mode 100644 index 0000000..3b6ae5e --- /dev/null +++ b/Gem/examples/04.pix/17.pix_gain.pd @@ -0,0 +1,72 @@ +#N canvas 111 106 885 510 10; +#X floatatom 664 182 0 0 0 0 - - -; +#X obj 664 210 / 100; +#X floatatom 610 163 0 0 0 0 - - -; +#X obj 610 192 / 100; +#X obj 343 56 gemhead; +#X obj 343 319 pix_texture; +#X msg 394 359 4; +#X floatatom 556 121 0 0 0 0 - - -; +#X obj 556 149 / 100; +#X obj 343 268 pix_gain; +#X obj 556 241 pack 0 0 0; +#X obj 343 387 triangle; +#X text 356 341 click here to change the size of the triangle; +#X msg 570 213 bang; +#X obj 343 82 pix_image ../data/fractal.JPG; +#X obj 364 134 vsl 15 128 0 1 0 0 empty empty empty 20 8 0 8 -262144 +-1 -1 0 1; +#X text 382 141 overall factor; +#X text 632 121 color-wise factor; +#X text 103 453 using [pix_gain] is probably very expensive (since +it does operations on your CPU). Try using [color] if your card has +openGL-hw-accleration...; +#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X connect 0 0 1 0; +#X connect 1 0 10 2; +#X connect 1 0 13 0; +#X connect 2 0 3 0; +#X connect 3 0 10 1; +#X connect 3 0 13 0; +#X connect 4 0 14 0; +#X connect 5 0 11 0; +#X connect 6 0 11 1; +#X connect 7 0 8 0; +#X connect 8 0 10 0; +#X connect 9 0 5 0; +#X connect 10 0 9 2; +#X connect 13 0 10 0; +#X connect 14 0 9 0; +#X connect 15 0 9 1; +#X connect 20 0 21 0; +#X connect 21 0 20 0; diff --git a/Gem/examples/04.pix/18.Curves.pd b/Gem/examples/04.pix/18.Curves.pd new file mode 100644 index 0000000..ca02c91 --- /dev/null +++ b/Gem/examples/04.pix/18.Curves.pd @@ -0,0 +1,180 @@ +#N canvas 119 33 764 634 10; +#N canvas 285 0 681 629 tables 0; +#N canvas 0 0 450 300 (subpatch) 0; +#X array red 256 float 0; +#X coords 0 255 255 0 256 140 1; +#X restore 95 30 graph; +#N canvas 0 0 450 300 (subpatch) 0; +#X array green 256 float 0; +#X coords 0 255 255 0 256 140 1; +#X restore 399 29 graph; +#N canvas 0 0 450 300 (subpatch) 0; +#X array blue 256 float 0; +#X coords 0 255 255 0 256 140 1; +#X restore 98 214 graph; +#N canvas 0 0 450 300 (subpatch) 0; +#X array alpha 64 float 0; +#X coords 0 255 63 0 256 140 1; +#X restore 396 212 graph; +#N canvas 0 0 450 300 (subpatch) 0; +#X array edge 8 float 0; +#X coords 0 255 7 0 256 140 1; +#X restore 49 440 graph; +#X text 319 459 set all black and white pixels to black.; +#X text 318 477 set all "grey" pixels (the transients) to white.; +#X restore 219 225 pd tables; +#X obj 30 272 gemhead; +#X obj 30 468 pix_texture; +#N canvas 0 0 450 300 (subpatch) 0; +#X array rgba 67 float 0; +#X coords 0 256 66 0 256 140 1; +#X restore 217 70 graph; +#X text 78 8 pix_curve: adjust the colour of an image; +#X text 291 227 separate tables for r \, g \, b and a; +#X obj 466 274 pix_curve rgba; +#X obj 469 324 pix_curve red green blue; +#X obj 470 373 pix_curve red green blue alpha; +#X text 504 291 one curve for all channels; +#X text 505 391 curves for r \, g \, b \, a; +#X text 500 341 curves for r \, g \, b \; leave a unchanged; +#X msg 507 127 \; rgba cosinesum 64 128 128; +#X obj 30 393 pix_curve rgba; +#N canvas 328 58 600 502 init 0; +#X obj 93 39 loadbang; +#X msg 115 87 \; rgba resize 256 \; red resize 256 green resize 256 +\; blue resize 256 \; alpha resize 64 \; alpha const 128; +#X obj 93 197 t b b; +#X msg 93 219 256; +#X msg 125 218 0; +#X obj 93 241 until; +#X obj 93 262 i; +#X obj 123 261 + 1; +#X msg 93 177 bang; +#X obj 93 283 t f f f; +#X obj 93 370 tabwrite rgba; +#X msg 93 348 \$1 \$1; +#X obj 210 304 / 255; +#X obj 210 326 sqrt; +#X obj 210 347 * 255; +#X obj 210 395 tabwrite red; +#X obj 210 373 pack 0 0; +#X obj 319 456 tabwrite green; +#X obj 104 395 tabwrite blue; +#X obj 93 63 t b b b; +#X msg 364 83 \; edge resize 8 \; edge const 255 \; edge 0 0 \; edge +7 0; +#X obj 319 393 unpack; +#X obj 319 413 - 255; +#X obj 319 432 * -1; +#X obj 362 413 - 255; +#X obj 362 432 * -1; +#X connect 0 0 19 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 6 1; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 6 0 9 0; +#X connect 7 0 6 1; +#X connect 8 0 2 0; +#X connect 9 0 11 0; +#X connect 9 1 12 0; +#X connect 9 2 16 1; +#X connect 11 0 10 0; +#X connect 11 0 18 0; +#X connect 12 0 13 0; +#X connect 13 0 14 0; +#X connect 14 0 16 0; +#X connect 16 0 15 0; +#X connect 16 0 21 0; +#X connect 19 0 8 0; +#X connect 19 1 1 0; +#X connect 19 2 20 0; +#X connect 21 0 22 0; +#X connect 21 1 24 0; +#X connect 22 0 23 0; +#X connect 23 0 17 0; +#X connect 24 0 25 0; +#X connect 25 0 17 1; +#X restore 604 470 pd init; +#X msg 284 275 set rgba; +#X msg 282 325 set red green blue; +#X msg 278 375 set red green blue alpha; +#X text 505 110 an alternative colour-curve; +#X text 228 56 paint your own curve; +#X obj 30 509 square 2; +#X obj 30 488 translateXYZ -2 0 0; +#X obj 244 486 gemhead; +#X obj 244 548 pix_texture; +#X obj 244 569 translateXYZ 2 0 0; +#X obj 244 527 pix_curve edge; +#N canvas 80 38 600 318 pix_update 0; +#X obj 59 115 inlet; +#X obj 59 227 outlet; +#X text 61 19 this is quite a dummy-routine:; +#X text 78 47 just multiply the pix-buffer with 1 (do nothing !) \, +and make it thereby dirty \, so that the pix_curve routines are going +to be called....; +#X text 56 272 maybe this could be done more easily..?; +#X obj 59 202 pix_buf; +#X obj 59 156 t a b; +#X connect 0 0 6 0; +#X connect 5 0 1 0; +#X connect 6 0 5 0; +#X connect 6 1 5 0; +#X restore 30 331 pd pix_update; +#X obj 244 592 square 2; +#X obj 30 435 alpha; +#X obj 30 303 pix_image ../data/fractal.JPG; +#X obj 244 506 pix_image ../data/dancer.JPG; +#X obj 11 151 cnv 15 200 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X obj 132 193 gemwin; +#X obj 132 135 t a; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 0 5 0; +#X connect 2 1 4 0; +#X connect 2 1 6 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 5 0 9 0; +#X connect 6 0 9 0; +#X connect 7 0 9 0; +#X connect 9 0 8 0; +#X restore 16 195 pd gemwin; +#X msg 16 171 create; +#X text 12 151 Create window and render; +#X connect 1 0 29 0; +#X connect 2 0 21 0; +#X connect 13 0 28 0; +#X connect 15 0 13 0; +#X connect 16 0 13 0; +#X connect 17 0 13 0; +#X connect 21 0 20 0; +#X connect 22 0 30 0; +#X connect 23 0 24 0; +#X connect 24 0 27 0; +#X connect 25 0 23 0; +#X connect 26 0 13 0; +#X connect 28 0 2 0; +#X connect 29 0 26 0; +#X connect 30 0 25 0; +#X connect 32 0 33 0; +#X connect 33 0 32 0; diff --git a/Gem/examples/04.pix/19.colorMatrix.pd b/Gem/examples/04.pix/19.colorMatrix.pd new file mode 100644 index 0000000..c53ab1a --- /dev/null +++ b/Gem/examples/04.pix/19.colorMatrix.pd @@ -0,0 +1,60 @@ +#N canvas 10 20 769 486 10; +#X obj 252 258 gemhead; +#X obj 252 313 pix_image ../data/fractal.JPG; +#X obj 252 343 pix_colormatrix; +#X msg 351 223 0 1 0 0 0 1 1 0 0; +#X msg 321 157 0 0 1 1 0 0 0 1 0; +#X msg 284 61 1 0 0 0 0 1 0 1 0; +#X obj 252 371 pix_texture; +#X obj 252 411 square; +#X msg 312 110 1 0 0 0 1 0 0 0 1; +#X text 460 156 shift colors: red->[0 \, 0 \, 1]=blue \; green->[1 +\, 0 \, 0]=red \; blue->[0 \, 1 \, 0]=green; +#X text 469 97 unity matrix: [1 \, 0 \, 0 \; 0 \, 1 \, 0 \; 0 \, 0 +\, 1]; +#X text 446 47 swap green and blue: [1 \, 0 \, 0 \; 0 \, 0 \, 1 \; +0 \, 1 \, 0]; +#X text 480 210 shift colors: red->[0 \, 1 \, 0]=green \; green->[0 +\, 0 \, 1]=blue \; blue->[1 \, 0 \, 0]=red; +#X text 26 23 matrix-multiply the RGB-vector; +#X obj 41 142 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 46 186 pd gemwin; +#X msg 46 162 create; +#X text 42 142 Create window and render; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 6 0; +#X connect 3 0 2 1; +#X connect 4 0 2 1; +#X connect 5 0 2 1; +#X connect 6 0 7 0; +#X connect 8 0 2 1; +#X connect 15 0 16 0; +#X connect 16 0 15 0; diff --git a/Gem/examples/04.pix/20.convolve.pd b/Gem/examples/04.pix/20.convolve.pd new file mode 100644 index 0000000..bf3999f --- /dev/null +++ b/Gem/examples/04.pix/20.convolve.pd @@ -0,0 +1,106 @@ +#N canvas 150 20 846 728 12; +#X obj 575 515 s matrix; +#X obj 502 516 s scale; +#X msg 502 483 1; +#X obj 575 404 s matrix; +#X obj 502 405 s scale; +#X msg 502 372 1; +#X obj 572 311 s matrix; +#X obj 499 312 s scale; +#X msg 499 279 1; +#X obj 572 206 s matrix; +#X obj 499 207 s scale; +#X msg 499 174 1; +#X obj 576 106 s matrix; +#X obj 503 107 s scale; +#X msg 503 74 1; +#X obj 320 153 s matrix; +#X obj 247 154 s scale; +#X msg 247 121 1; +#X msg 576 47 -1 -1 -1 -1 8 -1 -1 -1 -1; +#X msg 572 146 -1 -4 -1 -4 20 -4 -1 -4 -1; +#X msg 314 517 1 2 1 2 4 2 1 2 1; +#X text 506 10 edge detection matrices; +#X text 506 26 scale = 1; +#X text 234 497 scale = 16; +#X text 234 482 smoothing matrix; +#X obj 14 330 gemhead; +#X obj 14 522 pix_texture; +#X obj 14 356 pix_image ../data/fractal.JPG; +#X obj 14 455 pix_convolve 3 3; +#X msg 320 92 0 0 0 0 1 0 0 0 0; +#X msg 572 248 0 -1 0 0 2 0 0 -1 0; +#X msg 575 450 -1 0 -1 0 4 0 -1 0 -1; +#X msg 575 343 0 0 0 -1 2 -1 0 0 0; +#X obj 314 596 s matrix; +#X obj 153 423 r matrix; +#X obj 241 596 s scale; +#X obj 83 422 r scale; +#X text 241 72 scale = 1; +#X text 241 55 identity matrix; +#X obj 14 547 square 4; +#X obj 20 219 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 263 pd gemwin; +#X msg 25 239 create; +#X text 21 219 Create window and render; +#X msg 241 545 1 16; +#X obj 241 571 /; +#X text 43 650 a good start for the scale is the sum of all the elements +; +#X connect 2 0 1 0; +#X connect 5 0 4 0; +#X connect 8 0 7 0; +#X connect 11 0 10 0; +#X connect 14 0 13 0; +#X connect 17 0 16 0; +#X connect 18 0 14 0; +#X connect 18 0 12 0; +#X connect 19 0 11 0; +#X connect 19 0 9 0; +#X connect 20 0 44 0; +#X connect 20 0 33 0; +#X connect 25 0 27 0; +#X connect 26 0 39 0; +#X connect 27 0 28 0; +#X connect 28 0 26 0; +#X connect 29 0 17 0; +#X connect 29 0 15 0; +#X connect 30 0 8 0; +#X connect 30 0 6 0; +#X connect 31 0 2 0; +#X connect 31 0 0 0; +#X connect 32 0 5 0; +#X connect 32 0 3 0; +#X connect 34 0 28 2; +#X connect 36 0 28 1; +#X connect 41 0 42 0; +#X connect 42 0 41 0; +#X connect 44 0 45 0; +#X connect 45 0 35 0; diff --git a/Gem/examples/04.pix/22.biquad.pd b/Gem/examples/04.pix/22.biquad.pd new file mode 100644 index 0000000..6e9934e --- /dev/null +++ b/Gem/examples/04.pix/22.biquad.pd @@ -0,0 +1,108 @@ +#N canvas 269 10 753 499 10; +#X msg 360 312 set; +#X floatatom 401 209 4 0 0 0 - - -; +#X floatatom 442 209 4 0 0 0 - - -; +#X obj 441 229 t b f; +#X floatatom 491 209 4 0 0 0 - - -; +#X obj 490 229 t b f; +#X floatatom 532 208 4 0 0 0 - - -; +#X obj 531 228 t b f; +#X floatatom 576 210 4 0 0 0 - - -; +#X obj 575 230 t b f; +#X text 257 23 calculates the following difference equation:; +#X text 261 38 y(n) = ff1 * w(n) + ff2 * w(n-1) + ff3 * w(n-2); +#X floatatom 621 210 4 0 0 0 - - -; +#X obj 620 230 t b f; +#X obj 407 260 pack 0 0 0 0 0 0; +#X text 265 55 w(n) = fb0 * x(n) + fb1 * w(n-1) + fb2 * w(n-2); +#X msg 403 98 1 0 0 1 0 0; +#X msg 403 121 1 0 0 0.2 0.2 0.6; +#X obj 35 224 gemhead; +#X obj 35 300 pix_texture; +#X obj 35 324 square 3; +#X text 403 190 fb0; +#X text 443 190 fb1; +#X text 494 189 fb2; +#X text 533 186 ff1; +#X text 582 187 ff2; +#X text 623 186 ff3; +#X obj 355 257 t l; +#X msg 175 218 0; +#X msg 202 218 1; +#X msg 231 218 2; +#X text 551 94 route through; +#X text 553 120 a low-pass; +#X text 34 391 pix_biquad: fb0 fb1 fb2 ff1 ff2 ff3; +#X text 338 377 very(*) similar to the pd-object; +#X obj 572 375 biquad~; +#X text 336 406 *: but not exactly the same; +#X text 390 312 set w(n-1) and w(n-2) to the next(!) x(n); +#X obj 35 274 pix_biquad; +#X msg 404 150 0.05 0.8 0.15 0.2 0.2 0.6; +#X text 587 148 a LOW-pass; +#X text 397 331 (important for hard feedback-loops); +#X text 98 455 no sanity check is done for the coefficients !; +#X text 151 200 click these OFTEN !; +#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X obj 35 247 pix_multiimage ../data/temp*.JPG 2; +#X connect 0 0 38 0; +#X connect 1 0 14 0; +#X connect 2 0 3 0; +#X connect 3 0 14 0; +#X connect 3 1 14 1; +#X connect 4 0 5 0; +#X connect 5 0 14 0; +#X connect 5 1 14 2; +#X connect 6 0 7 0; +#X connect 7 0 14 0; +#X connect 7 1 14 3; +#X connect 8 0 9 0; +#X connect 9 0 14 0; +#X connect 9 1 14 4; +#X connect 12 0 13 0; +#X connect 13 0 14 0; +#X connect 13 1 14 5; +#X connect 14 0 27 0; +#X connect 16 0 27 0; +#X connect 17 0 27 0; +#X connect 18 0 48 0; +#X connect 19 0 20 0; +#X connect 27 0 38 0; +#X connect 28 0 48 1; +#X connect 29 0 48 1; +#X connect 30 0 48 1; +#X connect 38 0 19 0; +#X connect 39 0 27 0; +#X connect 45 0 46 0; +#X connect 46 0 45 0; +#X connect 48 0 38 0; diff --git a/Gem/examples/04.pix/23.gravity.pd b/Gem/examples/04.pix/23.gravity.pd new file mode 100644 index 0000000..9821f94 --- /dev/null +++ b/Gem/examples/04.pix/23.gravity.pd @@ -0,0 +1,108 @@ +#N canvas 0 0 626 514 10; +#X floatatom 107 437 5 0 0 0 - - -; +#X floatatom 160 436 5 0 0 0 - - -; +#X floatatom 219 435 5 0 0 0 - - -; +#X obj 54 338 pix_blob 1; +#X msg 86 227 0; +#X msg 94 250 1; +#X msg 101 271 2; +#X msg 107 292 3; +#X msg 110 313 4; +#X text 119 456 X; +#X text 173 456 Y; +#X text 230 455 size; +#X text 135 228 grey (default); +#X text 136 250 red; +#X text 136 269 green; +#X text 137 291 blue; +#X text 137 313 alpha; +#X text 327 20 pix_blob; +#X text 324 32 =========; +#X text 276 48 get the center of gravity in a picture; +#X msg 288 298 1 0.5 0.5 1; +#X msg 284 274 0.33; +#X msg 276 252 1 1 2; +#X text 328 252 ==; +#X msg 355 251 1 1 2 0; +#X msg 356 274 0.33 0.33 0.33 0; +#X text 326 275 ==; +#X msg 363 112 bang; +#X obj 363 134 t b b; +#X msg 428 114 bang; +#X obj 428 136 t b b; +#X text 341 454 size = 0..1; +#X text 341 425 x/y-coordinates from lower-left \; 0..1; +#X text 329 96 upper-left; +#X text 428 93 lower-right; +#X obj 54 176 pix_multiimage ../data/blob*.tif 2; +#X obj 54 148 gemhead; +#X msg 154 116 0; +#X msg 154 136 1; +#X msg 154 154 2; +#X obj 54 469 pix_texture; +#X obj 54 492 square 4; +#X msg 139 496 quality 0; +#X obj 139 475 loadbang; +#X text 307 233 rgb(a)-color; +#X obj 276 320 t b l; +#X obj 20 19 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 63 pd gemwin; +#X msg 25 39 create; +#X text 21 19 Create window and render; +#X connect 3 0 40 0; +#X connect 3 1 0 0; +#X connect 3 2 1 0; +#X connect 3 3 2 0; +#X connect 4 0 3 1; +#X connect 5 0 3 1; +#X connect 6 0 3 1; +#X connect 7 0 3 1; +#X connect 8 0 3 1; +#X connect 20 0 45 0; +#X connect 21 0 45 0; +#X connect 22 0 45 0; +#X connect 27 0 28 0; +#X connect 28 0 39 0; +#X connect 28 1 5 0; +#X connect 29 0 30 0; +#X connect 30 0 39 0; +#X connect 30 1 7 0; +#X connect 35 0 3 0; +#X connect 36 0 35 0; +#X connect 37 0 35 1; +#X connect 38 0 35 1; +#X connect 39 0 35 1; +#X connect 40 0 41 0; +#X connect 42 0 40 0; +#X connect 43 0 42 0; +#X connect 45 0 39 0; +#X connect 45 1 3 2; +#X connect 47 0 48 0; +#X connect 48 0 47 0; diff --git a/Gem/examples/04.pix/24.time-filtering.pd b/Gem/examples/04.pix/24.time-filtering.pd new file mode 100644 index 0000000..c1ca697 --- /dev/null +++ b/Gem/examples/04.pix/24.time-filtering.pd @@ -0,0 +1,102 @@ +#N canvas 228 84 794 352 10; +#X floatatom 279 191 5 0 0 0 - - -; +#X obj 266 241 pix_tIIR 2 2; +#X obj 279 211 * 0.01; +#X obj 279 146 unpack 30 60 10 50 50 -20; +#X floatatom 328 191 5 0 0 0 - - -; +#X obj 328 211 * 0.01; +#X floatatom 375 191 5 0 0 0 - - -; +#X obj 375 211 * 0.01; +#X floatatom 424 191 5 0 0 0 - - -; +#X obj 424 211 * 0.01; +#X floatatom 471 191 5 0 0 0 - - -; +#X obj 471 211 * 0.01; +#X floatatom 520 191 5 0 0 0 - - -; +#X obj 520 211 * 0.01; +#X msg 279 100 bang; +#X obj 266 38 gemhead; +#X msg 601 44 auto \$1; +#X obj 601 25 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 279 122 pack 30 60 10 50 50 -20; +#X floatatom 461 64 5 0 0 0 - - -; +#X floatatom 351 86 5 0 0 0 - - -; +#X obj 266 262 pix_texture; +#X msg 421 27 open ../data/alea.mpg; +#X msg 421 7 open \$1; +#X obj 483 7 openpanel; +#X obj 573 5 bng 20 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 446 63 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 266 61 pix_film ../data/alea.mpg; +#X obj 266 309 square 3; +#X obj 266 286 rotateXYZ 0 -30 0; +#X obj 20 69 cnv 15 220 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X connect 0 0 2 0; +#X connect 1 0 21 0; +#X connect 2 0 1 1; +#X connect 3 0 0 0; +#X connect 3 1 4 0; +#X connect 3 2 6 0; +#X connect 3 3 8 0; +#X connect 3 4 10 0; +#X connect 3 5 12 0; +#X connect 4 0 5 0; +#X connect 5 0 1 2; +#X connect 6 0 7 0; +#X connect 7 0 1 3; +#X connect 8 0 9 0; +#X connect 9 0 1 4; +#X connect 10 0 11 0; +#X connect 11 0 1 5; +#X connect 12 0 13 0; +#X connect 13 0 1 6; +#X connect 14 0 18 0; +#X connect 15 0 27 0; +#X connect 16 0 27 0; +#X connect 17 0 16 0; +#X connect 18 0 3 0; +#X connect 19 0 27 1; +#X connect 21 0 29 0; +#X connect 22 0 27 0; +#X connect 23 0 27 0; +#X connect 24 0 23 0; +#X connect 25 0 24 0; +#X connect 26 0 19 0; +#X connect 27 0 1 0; +#X connect 27 1 20 0; +#X connect 27 2 26 0; +#X connect 29 0 28 0; +#X connect 31 0 32 0; +#X connect 32 0 31 0; diff --git a/Gem/examples/04.pix/25.buffer.pd b/Gem/examples/04.pix/25.buffer.pd new file mode 100644 index 0000000..857cdaf --- /dev/null +++ b/Gem/examples/04.pix/25.buffer.pd @@ -0,0 +1,137 @@ +#N canvas 0 0 832 589 10; +#X obj 62 327 gemhead; +#X obj 62 369 pix_texture; +#X obj 62 392 square 4; +#X obj 316 316 gemhead; +#X obj 316 342 pix_film; +#X obj 316 387 t a b; +#X obj 361 430 i; +#X obj 388 430 + 1; +#X obj 361 408 spigot; +#X obj 398 364 t b b; +#X msg 398 387 1; +#X msg 455 388 0; +#X obj 398 339 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 419 339 start recording into the buffer; +#X msg 398 296 open \$1; +#X obj 398 275 openpanel; +#X obj 398 257 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 477 240 ../data/anim-1.mov; +#X msg 477 260 ../data/alea.mpg; +#X msg 478 216 ../data/homer.avi; +#X obj 477 282 symbol; +#X floatatom 155 321 5 0 0 0 - - -; +#X text 195 320 index; +#X msg 408 408 0; +#X obj 571 401 gemhead; +#X obj 571 427 pix_image ../data/fractal.JPG; +#X floatatom 423 497 5 0 0 0 - - -; +#X msg 405 318 auto 1; +#X msg 457 319 0; +#X obj 361 456 moses 10; +#X floatatom 663 406 5 0 0 0 - - -; +#X msg 663 386 5; +#X text 467 493 put the next image into "myImages" @ index; +#X msg 140 390 set yourImages; +#X msg 212 490 set yourImages; +#X text 213 473 set the storage-name; +#X obj 62 349 pix_buffer_read myImages; +#X obj 316 515 pix_buffer_write myImages; +#X obj 571 453 pix_buffer_write myImages; +#X text 291 539 write an image into a certain storage-buffer; +#X text 15 422 read an image from a certain storage-buffer; +#X text 17 302 get an image from the pix_buffer; +#X obj 33 227 pix_buffer yourImages 10; +#X obj 20 69 cnv 15 200 70 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 289 80 pd Gem.init; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X restore 25 113 pd gemwin; +#X msg 25 89 create; +#X text 21 69 Create window and render; +#X text 284 32 ============; +#X text 236 48 store/get images into/from a buffer; +#X msg 226 77 bang; +#X floatatom 226 174 5 0 0 0 - - -; +#X text 265 77 get the size of the depot; +#X msg 237 116 allocate 128 64 4; +#X text 371 104 pre-allocate each image-buffer to hold at east 128*64*4 +pixels; +#X text 388 155 a storage-place for "10" pix-images called "myImages" +; +#X obj 226 153 pix_buffer myImages 10; +#X text 287 20 [pix_buffer]; +#X msg 353 181 open ../data/fractal.JPG 5; +#X text 524 182 load an image into a certain storage-buffer; +#X connect 0 0 36 0; +#X connect 1 0 2 0; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 37 0; +#X connect 5 1 8 0; +#X connect 6 0 7 0; +#X connect 6 0 29 0; +#X connect 7 0 6 1; +#X connect 8 0 6 0; +#X connect 9 0 10 0; +#X connect 9 1 23 0; +#X connect 10 0 8 1; +#X connect 11 0 8 1; +#X connect 11 0 31 0; +#X connect 12 0 9 0; +#X connect 14 0 4 0; +#X connect 14 0 12 0; +#X connect 14 0 27 0; +#X connect 14 0 28 0; +#X connect 15 0 14 0; +#X connect 16 0 15 0; +#X connect 17 0 20 0; +#X connect 18 0 20 0; +#X connect 19 0 20 0; +#X connect 20 0 14 0; +#X connect 21 0 36 1; +#X connect 23 0 6 1; +#X connect 24 0 25 0; +#X connect 25 0 38 0; +#X connect 26 0 37 1; +#X connect 27 0 4 0; +#X connect 28 0 4 1; +#X connect 29 0 26 0; +#X connect 29 1 11 0; +#X connect 30 0 38 1; +#X connect 31 0 30 0; +#X connect 33 0 36 0; +#X connect 34 0 37 0; +#X connect 36 0 1 0; +#X connect 44 0 45 0; +#X connect 45 0 44 0; +#X connect 49 0 55 0; +#X connect 52 0 55 0; +#X connect 55 0 50 0; +#X connect 57 0 55 0; diff --git a/Gem/examples/04.pix/26.framebuffer_readback.pd b/Gem/examples/04.pix/26.framebuffer_readback.pd new file mode 100644 index 0000000..3f49f1e --- /dev/null +++ b/Gem/examples/04.pix/26.framebuffer_readback.pd @@ -0,0 +1,88 @@ +#N canvas 0 0 826 651 10; +#X msg 112 86 create \, 1; +#X obj 112 131 gemwin; +#X obj 311 112 pix_buffer \$0-framebuffer 2; +#X obj 620 108 gemhead 5; +#X obj 620 129 world_light; +#X msg 129 108 lighting 1; +#X text 44 5 you can render a scene into a framebuffer \, then take +a snapshot of the framebuffer with [pix_snap] and use this as an ordinary +pix (where you can apply effects and all kind of weird things); +#X obj 75 439 cnv 15 250 130 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 161 269 cnv 15 150 150 empty empty scene 20 12 0 14 -233017 +-66577 0; +#X obj 82 196 gemhead 20; +#X obj 82 220 gemframebuffer; +#X msg 163 195 dimen 256 256; +#X obj 167 331 rotateXYZ; +#X obj 167 376 teapot; +#X obj 82 266 t a a b; +#X obj 187 293 i; +#X obj 220 292 + 1; +#X obj 250 291 % 360; +#X obj 82 453 t a b; +#X msg 114 474 snap; +#X obj 82 522 t a b; +#X msg 296 527 1; +#X obj 82 547 pix_buffer_write \$0-framebuffer; +#X obj 410 262 gemhead 30; +#X obj 410 306 t a b; +#X msg 465 307 1; +#X obj 410 331 pix_buffer_read \$0-framebuffer; +#X obj 410 411 pix_texture; +#X obj 410 476 square 3; +#X obj 82 243 translateXYZ 0 0 -4; +#X obj 82 498 pix_snap 0 0 256 256; +#X obj 167 353 color 1 0 1; +#X floatatom 226 313 5 0 0 0 - - -; +#X obj 410 453 rotateXYZ; +#X floatatom 445 433 5 0 0 0 - - -; +#X text 318 130 temporary storage; +#X obj 163 175 loadbang; +#X text 130 451 later usage; +#X text 129 436 snapshot and store image for; +#X text 562 308 fetch framebuffer-pix; +#X text 535 379 apply some nifty FX; +#X text 73 597 note \, that there are more efficient ways to apply +FX to framebuffers (noteably openGL-shaders: see examples/10.glsl/ +for more information); +#X obj 425 358 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X obj 410 380 pix_kaleidoscope; +#X connect 0 0 1 0; +#X connect 3 0 4 0; +#X connect 5 0 1 0; +#X connect 9 0 10 0; +#X connect 10 0 29 0; +#X connect 11 0 10 0; +#X connect 12 0 31 0; +#X connect 14 0 18 0; +#X connect 14 1 12 0; +#X connect 14 2 15 0; +#X connect 15 0 16 0; +#X connect 15 0 12 1; +#X connect 15 0 12 2; +#X connect 16 0 17 0; +#X connect 17 0 15 1; +#X connect 18 0 30 0; +#X connect 18 1 19 0; +#X connect 19 0 30 0; +#X connect 20 0 22 0; +#X connect 20 1 21 0; +#X connect 21 0 22 1; +#X connect 23 0 24 0; +#X connect 24 0 26 0; +#X connect 24 1 25 0; +#X connect 25 0 26 1; +#X connect 26 0 43 0; +#X connect 27 0 33 0; +#X connect 29 0 14 0; +#X connect 30 0 20 0; +#X connect 31 0 13 0; +#X connect 32 0 12 3; +#X connect 33 0 28 0; +#X connect 34 0 33 2; +#X connect 36 0 11 0; +#X connect 42 0 43 0; +#X connect 43 0 27 0; diff --git a/Gem/examples/04.pix/27.bitmap_font.pd b/Gem/examples/04.pix/27.bitmap_font.pd new file mode 100644 index 0000000..566309f --- /dev/null +++ b/Gem/examples/04.pix/27.bitmap_font.pd @@ -0,0 +1,147 @@ +#N canvas 306 348 825 508 10; +#X obj 191 393 pix_texture; +#X obj 463 158 gemwin; +#X msg 506 135 0 \, destroy; +#X msg 55 316 quality 0; +#X obj 31 200 pix_crop 0 0 6 8; +#X obj 31 363 pix_texture; +#X obj 31 403 rectangle 1 1; +#X obj 55 296 loadbang; +#X obj 31 10 gemhead 10; +#X msg 463 117 dimen 1024 256 \, color 1 1 1 1 \, create \, 1; +#X obj 31 383 translateXYZ 0 2.25 0; +#N canvas 8 120 750 300 grab-ascii 0; +#X obj 76 13 key; +#X obj 76 34 moses 65; +#X obj 121 54 moses 91; +#X obj 166 84 moses 97; +#X obj 211 104 moses 123; +#X obj 153 198 outlet; +#X obj 211 124 - 97; +#X text 174 54 from A to Z (65 to 90); +#X text 276 102 from a to z (97 to 122); +#X text 137 221 remap from 0 to 25; +#X obj 121 75 - 65; +#X obj 334 232 outlet; +#X text 326 249 bang on ; +#X obj 455 232 outlet; +#X floatatom 41 74 5 0 0 0 - - -; +#X obj 334 179 sel 10 32 8; +#X obj 565 232 outlet; +#X text 556 249 bang on ; +#X text 446 249 bang on ; +#X obj 303 209 loadbang; +#X connect 0 0 1 0; +#X connect 0 0 14 0; +#X connect 1 0 15 0; +#X connect 1 1 2 0; +#X connect 2 0 10 0; +#X connect 2 1 3 0; +#X connect 3 1 4 0; +#X connect 4 0 6 0; +#X connect 6 0 5 0; +#X connect 10 0 5 0; +#X connect 15 0 11 0; +#X connect 15 1 13 0; +#X connect 15 2 16 0; +#X connect 19 0 11 0; +#X restore 73 51 pd grab-ascii; +#X obj 100 132 f; +#X obj 413 248 loadbang; +#X obj 280 149 * 6; +#X obj 73 158 * 6; +#X msg 135 92 0; +#X obj 191 413 translateXYZ 0 -2.25 0; +#X obj 191 433 rectangle 16 -1; +#X obj 191 263 gemhead 9; +#X obj 135 72 t b b; +#X obj 73 178 t b b f; +#X obj 31 29 pix_image ../data/bitmap_font_6x8.bmp; +#X obj 463 64 bng 15 250 50 0 empty empty empty 17 7 0 10 -4034 -1 +-1; +#X text 499 85 2 type something with your keyboard; +#X text 310 22 <- this is the bitmap font; +#X obj 31 138 pix_grey; +#X obj 73 92 t f b; +#X obj 127 132 + 1; +#X text 485 231 - key in range A-Z and a-z; +#X text 510 212 features :; +#X text 485 241 - space bar add a space...; +#X text 485 251 - enter reset all; +#X text 520 283 purpose :; +#X text 495 299 - orginally design to drive a LED matrix; +#X msg 280 258 roi \$1 \$2 \$3 \$4; +#X obj 280 171 t f f; +#X obj 280 213 pack 0 0 0 8; +#X obj 334 192 + 6; +#N canvas 12 49 450 300 normalize 0; +#X obj 84 70 inlet x1 y1 x2 y2; +#X obj 84 92 unpack 0 0 0 0; +#X obj 84 184 pack 0 0 0 0; +#X obj 84 206 outlet X1 Y1 X2 Y2; +#X obj 84 144 / 120; +#X obj 134 144 / 8; +#X obj 184 144 / 120; +#X obj 234 144 / 8; +#X text 288 112 adding 0.5 to make; +#X text 288 125 rounding easier...; +#X connect 0 0 1 0; +#X connect 1 0 4 0; +#X connect 1 1 5 0; +#X connect 1 2 6 0; +#X connect 1 3 7 0; +#X connect 2 0 3 0; +#X connect 4 0 2 0; +#X connect 5 0 2 1; +#X connect 6 0 2 2; +#X connect 7 0 2 3; +#X restore 280 237 pd normalize; +#X msg 413 268 grey \, fill 1 \, bang; +#X obj 31 250 pix_dump; +#X text 481 65 <- 1 click here to start rendering; +#X obj 191 334 pix_roi 0 0 0 0; +#X text 306 336 initialize to non-existent ROI; +#X obj 191 362 pix_set 120 8; +#X connect 0 0 17 0; +#X connect 2 0 1 0; +#X connect 3 0 0 0; +#X connect 3 0 5 0; +#X connect 4 0 41 0; +#X connect 5 0 10 0; +#X connect 7 0 3 0; +#X connect 8 0 22 0; +#X connect 9 0 1 0; +#X connect 10 0 6 0; +#X connect 11 0 27 0; +#X connect 11 1 20 0; +#X connect 11 2 12 0; +#X connect 12 0 28 0; +#X connect 12 0 14 0; +#X connect 13 0 40 0; +#X connect 14 0 36 0; +#X connect 15 0 21 0; +#X connect 16 0 12 0; +#X connect 17 0 18 0; +#X connect 19 0 43 0; +#X connect 20 0 16 0; +#X connect 20 1 40 0; +#X connect 21 0 41 0; +#X connect 21 1 8 0; +#X connect 21 2 4 3; +#X connect 22 0 26 0; +#X connect 23 0 9 0; +#X connect 26 0 4 0; +#X connect 27 0 15 0; +#X connect 27 1 12 0; +#X connect 28 0 12 1; +#X connect 35 0 43 0; +#X connect 36 0 37 0; +#X connect 36 1 38 0; +#X connect 37 0 39 0; +#X connect 38 0 37 2; +#X connect 39 0 35 0; +#X connect 40 0 45 0; +#X connect 41 0 5 0; +#X connect 41 1 45 1; +#X connect 43 0 45 0; +#X connect 45 0 0 0; diff --git a/Gem/examples/04.video/00.SimpleVideo.pd b/Gem/examples/04.video/00.SimpleVideo.pd new file mode 100644 index 0000000..7b59713 --- /dev/null +++ b/Gem/examples/04.video/00.SimpleVideo.pd @@ -0,0 +1,87 @@ +#N canvas 147 59 659 387 12; +#X obj 134 180 cnv 15 500 40 empty empty empty 20 12 0 14 -245500 -66577 +0; +#X obj 55 78 gemhead; +#X obj 55 299 rectangle 4 3; +#X obj 55 265 pix_texture; +#X obj 55 229 pix_video; +#X msg 142 190 dialog; +#X text 49 16 Click on the [create( message to see live video in Gem. +(You must have a camera attached before loading this patch).; +#X text 199 188 pop-up dialog to configure the camera (Windows and +Mac OS X); +#X msg 98 139 device 0; +#N canvas 162 133 570 420 serin 0; +#X obj 205 60 cnv 20 20 20 empty \$0-open-canvas 0 4 10 0 16 -233017 +-1 0; +#X obj 60 61 hradio 18 1 1 8 empty empty empty 0 -6 0 8 -225271 -1 +-1 0; +#X obj 60 13 inlet; +#X msg 200 202 label \$1; +#X obj 200 180 makefilename %d; +#X obj 59 108 int; +#X obj 59 337 outlet; +#X msg 201 306 set \$1 \$2; +#X obj 59 266 trigger bang anything; +#X obj 201 286 list; +#X obj 200 225 send \$0-open-canvas; +#X msg 60 210 device \$1; +#X connect 1 0 5 0; +#X connect 2 0 1 0; +#X connect 3 0 10 0; +#X connect 4 0 3 0; +#X connect 5 0 4 0; +#X connect 5 0 11 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 8 1 9 0; +#X connect 9 0 7 0; +#X connect 11 0 8 0; +#X coords 0 -1 1 1 165 20 1 60 60; +#X restore 98 115 pd serin; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 502 304 pd gemwin; +#X connect 1 0 4 0; +#X connect 3 0 2 0; +#X connect 4 0 3 0; +#X connect 5 0 4 0; +#X connect 8 0 4 0; +#X connect 9 0 8 0; diff --git a/Gem/examples/04.video/01.VideoPaint.pd b/Gem/examples/04.video/01.VideoPaint.pd new file mode 100644 index 0000000..9c38a80 --- /dev/null +++ b/Gem/examples/04.video/01.VideoPaint.pd @@ -0,0 +1,123 @@ +#N canvas 38 374 800 574 10; +#X obj 50 130 gemhead; +#X obj 50 493 square; +#X obj 50 371 alpha; +#X obj 50 174 pix_video; +#X obj 50 267 pix_texture; +#X msg 136 456 4; +#X msg 167 456 2; +#X obj 50 392 depth; +#X obj 50 243 pix_threshold; +#X text 375 217 click on bang to; +#X text 187 90 click on these for fun; +#X text 388 69 turn on rendering before turning on the metro.; +#X text 437 86 If you don't \, it may crash/not work; +#X text 375 229 clear the screen; +#X obj 50 447 rotate; +#X obj 50 89 t b b; +#X floatatom 192 179 5 0 100 2 threshold - -; +#X obj 50 9 tgl 15 0 empty empty run 0 -6 0 10 -4034 -1 -1 0 1; +#X obj 195 144 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 10 -228856 +-1 -1 0 1; +#X obj 176 230 hsl 128 15 0 1 0 1 empty empty R 12 8 1 12 -261689 -1 +-1 12700 1; +#X obj 176 250 hsl 128 15 0 1 0 1 empty empty G 12 8 1 12 -225271 -1 +-1 12700 1; +#X obj 176 270 hsl 128 15 0 1 0 1 empty empty B 12 8 1 12 -228992 -1 +-1 12700 1; +#X obj 218 458 hsl 128 15 0.5 5 0 0 empty empty empty -2 -6 0 10 -232576 +-1 -1 0 1; +#X floatatom 219 481 5 0 0 0 - - -; +#X obj 83 40 hsl 128 15 10 127 0 1 empty empty empty -2 -6 0 10 -204786 +-1 -1 9900 1; +#X floatatom 93 63 5 0 0 0 - - -; +#X obj 50 62 metro; +#X obj 207 354 + 1; +#X obj 482 243 bng 15 250 50 0 empty empty empty 0 -6 0 10 -128992 +-1 -1; +#X msg 80 18 100; +#X obj 176 290 hsl 128 15 0 1 0 1 empty empty A 12 8 1 12 -195568 -1 +-1 12700 1; +#X obj 50 319 colorRGB 1 1 1 0.15; +#X obj 233 354 % 360; +#X obj 180 354 i; +#X floatatom 180 375 5 0 0 0 - - -; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X obj 118 113 outlet; +#X msg 118 81 reset \, buffer 1; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X restore 533 345 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 503 362 pd gemwin; +#X connect 0 0 3 0; +#X connect 2 0 7 0; +#X connect 3 0 8 0; +#X connect 4 0 31 0; +#X connect 5 0 1 1; +#X connect 6 0 1 1; +#X connect 7 0 14 0; +#X connect 8 0 4 0; +#X connect 14 0 1 0; +#X connect 15 0 0 0; +#X connect 15 1 33 0; +#X connect 16 0 8 1; +#X connect 17 0 26 0; +#X connect 18 0 16 0; +#X connect 19 0 31 1; +#X connect 20 0 31 2; +#X connect 21 0 31 3; +#X connect 22 0 1 1; +#X connect 22 0 23 0; +#X connect 24 0 25 0; +#X connect 24 0 26 1; +#X connect 26 0 15 0; +#X connect 27 0 32 0; +#X connect 28 0 36 0; +#X connect 29 0 24 0; +#X connect 30 0 31 4; +#X connect 31 0 2 0; +#X connect 32 0 33 1; +#X connect 33 0 27 0; +#X connect 33 0 34 0; +#X connect 34 0 14 1; +#X connect 35 0 36 0; diff --git a/Gem/examples/04.video/02.VideoSphere.pd b/Gem/examples/04.video/02.VideoSphere.pd new file mode 100644 index 0000000..165b5c5 --- /dev/null +++ b/Gem/examples/04.video/02.VideoSphere.pd @@ -0,0 +1,99 @@ +#N canvas 84 483 743 466 10; +#X obj 57 215 pix_texture; +#X text 187 75 click on any of these; +#X text 40 25 texture live video onto a sphere; +#X obj 183 196 hsl 128 15 0 360 0 0 empty empty X 12 8 1 12 -233017 +-1 -1 0 1; +#X obj 183 216 hsl 128 15 0 360 0 0 empty empty Y 12 8 1 12 -233017 +-1 -1 0 1; +#X obj 183 236 hsl 128 15 0 360 0 0 empty empty Z 12 8 1 12 -233017 +-1 -1 0 1; +#X obj 57 255 rotateXYZ 0 0 0; +#X obj 183 266 hsl 128 15 0 1 0 1 empty empty R 12 8 1 12 -261689 -1 +-1 12700 1; +#X obj 183 286 hsl 128 15 0 1 0 1 empty empty G 12 8 1 12 -225271 -1 +-1 12700 1; +#X obj 183 306 hsl 128 15 0 1 0 1 empty empty B 12 8 1 12 -228992 -1 +-1 12700 1; +#X obj 57 325 colorRGB 1 1 1; +#X obj 57 70 gemhead; +#X obj 57 114 pix_video; +#X obj 57 163 pix_threshold; +#X floatatom 185 122 5 0 100 1 threshold - -; +#X obj 184 103 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 10 -228856 +-1 -1 0 1; +#X obj 183 348 hsl 128 15 0.5 5 0 1 empty empty empty -2 -6 0 10 -232576 +-1 -1 4233 1; +#X floatatom 185 367 5 0 0 1 size - -; +#X obj 183 388 hsl 128 15 5 50 0 1 empty empty empty -2 -6 0 10 -204800 +-1 -1 12700 1; +#X floatatom 185 407 5 0 0 1 segments - -; +#X obj 57 410 sphere; +#X msg 182 143 0.1 0.1 0.1; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 488 249 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 458 266 pd gemwin; +#X connect 0 0 6 0; +#X connect 3 0 6 1; +#X connect 4 0 6 2; +#X connect 5 0 6 3; +#X connect 6 0 10 0; +#X connect 7 0 10 1; +#X connect 8 0 10 2; +#X connect 9 0 10 3; +#X connect 10 0 20 0; +#X connect 11 0 12 0; +#X connect 12 0 13 0; +#X connect 13 0 0 0; +#X connect 15 0 14 0; +#X connect 15 0 13 1; +#X connect 16 0 17 0; +#X connect 16 0 20 1; +#X connect 18 0 19 0; +#X connect 18 0 20 2; +#X connect 21 0 13 2; +#X connect 22 0 23 0; diff --git a/Gem/examples/04.video/03.movement_detection.pd b/Gem/examples/04.video/03.movement_detection.pd new file mode 100644 index 0000000..34efdef --- /dev/null +++ b/Gem/examples/04.video/03.movement_detection.pd @@ -0,0 +1,87 @@ +#N canvas 378 405 793 522 10; +#X floatatom 227 258 6 0 0 0 - - -; +#X floatatom 280 258 6 0 0 0 - - -; +#X floatatom 339 258 6 0 0 0 - - -; +#X obj 44 222 pix_blob 4; +#X obj 44 91 gemhead; +#X obj 44 150 pix_movement; +#X obj 44 364 pix_texture; +#X obj 44 401 square 4; +#X obj 201 383 gemhead; +#X obj 201 407 translateXYZ; +#X obj 201 434 cube 0.5; +#X obj 227 304 * 8; +#X obj 227 326 - 4; +#X obj 280 304 * 8; +#X obj 280 326 - 4; +#X obj 339 325 * 2; +#X obj 44 117 pix_video; +#X text 57 40 a very simple movement detector; +#X text 388 255 <<- calculate world-coordinates from normalized pix-coordinates +; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 511 359 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 481 376 pd gemwin; +#X connect 0 0 11 0; +#X connect 1 0 13 0; +#X connect 2 0 15 0; +#X connect 3 0 6 0; +#X connect 3 1 0 0; +#X connect 3 2 1 0; +#X connect 3 3 2 0; +#X connect 4 0 16 0; +#X connect 5 0 3 0; +#X connect 6 0 7 0; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 11 0 12 0; +#X connect 12 0 9 1; +#X connect 13 0 14 0; +#X connect 14 0 9 2; +#X connect 15 0 9 3; +#X connect 16 0 5 0; +#X connect 19 0 20 0; diff --git a/Gem/examples/04.video/04.videoRTX.pd b/Gem/examples/04.video/04.videoRTX.pd new file mode 100644 index 0000000..6d71805 --- /dev/null +++ b/Gem/examples/04.video/04.videoRTX.pd @@ -0,0 +1,101 @@ +#N canvas 67 70 636 509 10; +#X obj 43 89 gemhead; +#X obj 190 380 pix_texture; +#X obj 43 380 pix_texture; +#X obj 190 298 pix_rtx; +#X msg 328 180 clear; +#X msg 327 270 mode 1; +#X msg 327 247 mode 0; +#X text 380 179 clear the buffer; +#X text 47 14 pix_rtx; +#X text 188 14 transform the x-axis into the t-axis and vice-versa +on the fly; +#X text 42 447 upper-picture; +#X text 198 448 lower-picture; +#X text 38 465 NO transformation; +#X text 198 467 RTX-tranformed; +#X text 46 24 =======; +#X text 380 248 lock time on x-axis; +#X text 376 272 lock x on x-axis; +#X text 495 272 (default); +#X msg 329 211 set; +#X text 363 213 fill the buffer with current frame; +#X obj 43 113 pix_video; +#X obj 190 401 translateXYZ 0 -2 0; +#X obj 43 184 separator; +#X obj 190 185 separator; +#X obj 43 401 translateXYZ 0 2 0; +#X obj 190 208 pix_separator; +#X obj 190 422 rectangle 3 1.5; +#X obj 43 422 rectangle 3 1.5; +#X msg 177 96 dimen 256 128; +#X msg 177 117 dimen 64 64; +#X text 281 101 pix-streams to be rtx-transformed must have the same +properties (width \, height \, colorspace) \;; +#X obj 43 149 trigger anything anything; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 454 405 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 424 422 pd gemwin; +#X connect 0 0 20 0; +#X connect 1 0 21 0; +#X connect 2 0 24 0; +#X connect 3 0 1 0; +#X connect 4 0 3 0; +#X connect 5 0 3 0; +#X connect 6 0 3 0; +#X connect 18 0 3 0; +#X connect 20 0 31 0; +#X connect 21 0 26 0; +#X connect 22 0 2 0; +#X connect 23 0 25 0; +#X connect 24 0 27 0; +#X connect 25 0 3 0; +#X connect 28 0 20 0; +#X connect 29 0 20 0; +#X connect 31 0 22 0; +#X connect 31 1 23 0; +#X connect 32 0 33 0; diff --git a/Gem/examples/04.video/05.buffer_rtx.pd b/Gem/examples/04.video/05.buffer_rtx.pd new file mode 100644 index 0000000..4a29ad6 --- /dev/null +++ b/Gem/examples/04.video/05.buffer_rtx.pd @@ -0,0 +1,109 @@ +#N canvas 109 48 758 483 10; +#X obj 29 30 gemhead; +#X obj 29 163 pix_video; +#X obj 29 100 gemframebuffer; +#X obj 29 122 translateXYZ 0 0 -4; +#X obj 559 342 pix_texture; +#X obj 559 410 rectangle 4 3; +#X obj 559 315 pix_rtx; +#X obj 29 185 pix_texture; +#X obj 29 245 square 4; +#X obj 159 365 pix_snap; +#X obj 204 322 loadbang; +#X msg 69 325 snap; +#X obj 159 434 pix_buffer_write \$0-depot; +#X obj 43 56 loadbang; +#X obj 559 262 pix_buffer_read \$0-depot; +#X obj 559 172 gemhead 51; +#X floatatom 116 193 5 0 0 0 - - -; +#X obj 29 215 rotateXYZ 0 0 0; +#X msg 306 413 0; +#X obj 362 420 pix_buffer \$0-depot 1; +#X msg 700 241 0; +#X text 43 11 render rotated video into buffer; +#X text 528 148 feed the buffer into pix_rtx; +#X obj 119 171 hsl 128 15 0 360 0 0 empty empty empty -2 -8 0 10 -262144 +-1 -1 0 1; +#X obj 159 387 trigger anything bang; +#X text 117 155 rotate the video image; +#X text 111 280 this is how you write to a framebuffer (pix_buffer) +; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 547 62 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 546 79 pd gemwin; +#X msg 204 344 256 256; +#X msg 43 76 dimen 256 256; +#X obj 69 305 t b a; +#X obj 559 212 t a b; +#X connect 0 0 2 0; +#X connect 1 0 7 0; +#X connect 2 0 3 0; +#X connect 3 0 1 0; +#X connect 4 0 5 0; +#X connect 6 0 4 0; +#X connect 7 0 17 0; +#X connect 8 0 31 0; +#X connect 9 0 24 0; +#X connect 10 0 29 0; +#X connect 11 0 9 0; +#X connect 13 0 30 0; +#X connect 14 0 6 0; +#X connect 15 0 32 0; +#X connect 16 0 17 3; +#X connect 17 0 8 0; +#X connect 18 0 12 1; +#X connect 20 0 14 1; +#X connect 23 0 16 0; +#X connect 24 0 12 0; +#X connect 24 1 18 0; +#X connect 27 0 28 0; +#X connect 29 0 9 2; +#X connect 30 0 2 0; +#X connect 31 0 11 0; +#X connect 31 1 9 0; +#X connect 32 0 14 0; +#X connect 32 1 20 0; diff --git a/Gem/examples/04.video/06.frame_diff_tracking.pd b/Gem/examples/04.video/06.frame_diff_tracking.pd new file mode 100644 index 0000000..3ade8da --- /dev/null +++ b/Gem/examples/04.video/06.frame_diff_tracking.pd @@ -0,0 +1,184 @@ +#N canvas 42 41 639 499 10; +#X obj 140 80 gemhead; +#X obj 140 271 pix_diff; +#X obj 23 397 pix_texture; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 534 15 pd gemwin; +#X obj 23 442 rectangle 4 3; +#X obj 140 198 pix_separator; +#X obj 229 198 pix_separator; +#X obj 140 134 pix_grey; +#X obj 140 109 pix_video; +#X obj 140 346 pix_blob; +#N canvas 10 40 620 460 cursor 0; +#X obj 17 14 inlet; +#X obj 89 18 inlet; +#X obj 101 346 translateXYZ; +#X text 63 148 0.64; +#X text 37 151 1; +#X obj 23 63 t f f; +#X obj 37 176 -; +#X text 62 177 X-Range; +#X text 196 176 Y-Range; +#X obj 63 240 expr (8/$f1); +#X obj 33 241 -; +#X obj 51 267 *; +#X obj 29 95 max 0; +#X obj 71 95 min 10; +#X obj 59 132 f; +#X obj 33 131 f; +#X obj 52 293 - 4; +#X text 193 146 0.64; +#X text 167 149 1; +#X obj 153 61 t f f; +#X obj 167 174 -; +#X obj 193 238 expr (8/$f1); +#X obj 163 239 -; +#X obj 181 265 *; +#X obj 159 93 max 0; +#X obj 201 93 min 10; +#X obj 189 130 f; +#X obj 163 129 f; +#X text 188 171 comment; +#X obj 154 298 expr (-1*$f1)+4; +#X obj 293 27 inlet; +#X obj 94 320 gemhead 15; +#X obj 157 509 circle 0.1; +#X obj 17 423 separator; +#X obj 87 423 separator; +#X obj 17 484 rectangle 0.2 0.01; +#X obj 157 423 separator; +#X msg 185 478 draw line; +#X obj 185 457 loadbang; +#X obj 77 386 colorRGB 1 0 0 1; +#X obj 17 462 rectangle 0.01 0.2; +#X msg 256 478 width \$1; +#X obj 296 342 int; +#X obj 275 413 + 1; +#X obj 283 63 * 100; +#X connect 0 0 5 0; +#X connect 1 0 19 0; +#X connect 2 0 39 0; +#X connect 5 0 10 0; +#X connect 5 0 12 0; +#X connect 5 1 13 0; +#X connect 6 0 9 0; +#X connect 9 0 11 1; +#X connect 10 0 11 0; +#X connect 11 0 16 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 6 1; +#X connect 14 0 10 1; +#X connect 14 0 13 1; +#X connect 15 0 6 0; +#X connect 15 0 12 1; +#X connect 16 0 2 1; +#X connect 19 0 22 0; +#X connect 19 0 24 0; +#X connect 19 1 25 0; +#X connect 20 0 21 0; +#X connect 21 0 23 1; +#X connect 22 0 23 0; +#X connect 23 0 29 0; +#X connect 24 0 27 0; +#X connect 25 0 26 0; +#X connect 26 0 20 1; +#X connect 26 0 22 1; +#X connect 26 0 25 1; +#X connect 27 0 20 0; +#X connect 27 0 24 1; +#X connect 29 0 2 2; +#X connect 30 0 44 0; +#X connect 31 0 2 0; +#X connect 33 0 40 0; +#X connect 34 0 35 0; +#X connect 36 0 32 0; +#X connect 37 0 32 0; +#X connect 38 0 37 0; +#X connect 39 0 33 0; +#X connect 39 0 34 0; +#X connect 39 0 36 0; +#X connect 41 0 32 0; +#X connect 42 0 43 0; +#X connect 43 0 41 0; +#X connect 44 0 32 1; +#X connect 44 0 42 0; +#X restore 154 388 pd cursor; +#X obj 23 420 translateXYZ 0 0 -0.1; +#X obj 140 316 pix_threshold; +#X obj 180 294 hsl 128 15 0 1 0 1 empty empty threshold 8 8 0 10 -262130 +-1 -1 900 0; +#X obj 229 230 pix_delay 1; +#X text 28 12 This is an example of simple video tracking using the +difference between the current frame and the previous frame \, then +using blob detection.; +#X text 356 108 <-- get the video camera; +#X text 356 133 <-- convert to grey for easier tracking; +#X text 356 196 <-- make two copies of the frame; +#X obj 140 165 trigger anything anything; +#X text 356 229 <-- delay one copy by one frame; +#X text 356 305 <-- set the threshold to filter out; +#X text 381 281 difference between the two frames; +#X text 356 270 <-- find the absolute value of the; +#X text 381 316 small changes; +#X text 356 344 <-- track the (x \, y) coordinates and size; +#X text 380 357 of the "blob" of the difference; +#X text 356 384 <-- render a cursor using the (x \, y) and size; +#X text 6 460 render the video of the; +#X text 6 472 frame difference; +#X connect 0 0 8 0; +#X connect 1 0 12 0; +#X connect 2 0 11 0; +#X connect 5 0 1 0; +#X connect 6 0 14 0; +#X connect 7 0 19 0; +#X connect 8 0 7 0; +#X connect 9 1 10 0; +#X connect 9 2 10 1; +#X connect 9 3 10 2; +#X connect 11 0 4 0; +#X connect 12 0 9 0; +#X connect 12 0 2 0; +#X connect 13 0 12 1; +#X connect 14 0 1 1; +#X connect 19 0 6 0; +#X connect 19 1 5 0; diff --git a/Gem/examples/04.video/07.bg_subtract_tracking.pd b/Gem/examples/04.video/07.bg_subtract_tracking.pd new file mode 100644 index 0000000..7527569 --- /dev/null +++ b/Gem/examples/04.video/07.bg_subtract_tracking.pd @@ -0,0 +1,184 @@ +#N canvas 22 22 620 460 10; +#X obj 8 10 cnv 15 400 40 empty empty tracking_using_background_subtraction +20 12 0 16 -228992 -66577 0; +#X obj 179 223 pix_grey; +#X msg 204 251 reset; +#X obj 179 280 pix_background; +#X msg 272 259 \$1 \$1 \$1; +#X obj 123 316 pix_blob; +#N canvas 10 40 620 460 cursor 0; +#X obj 17 14 inlet; +#X obj 89 18 inlet; +#X obj 101 346 translateXYZ; +#X text 63 148 0.64; +#X text 37 151 1; +#X obj 23 63 t f f; +#X obj 37 176 -; +#X text 62 177 X-Range; +#X text 196 176 Y-Range; +#X obj 63 240 expr (8/$f1); +#X obj 33 241 -; +#X obj 51 267 *; +#X obj 29 95 max 0; +#X obj 71 95 min 10; +#X obj 59 132 f; +#X obj 33 131 f; +#X obj 52 293 - 4; +#X text 193 146 0.64; +#X text 167 149 1; +#X obj 153 61 t f f; +#X obj 167 174 -; +#X obj 193 238 expr (8/$f1); +#X obj 163 239 -; +#X obj 181 265 *; +#X obj 159 93 max 0; +#X obj 201 93 min 10; +#X obj 189 130 f; +#X obj 163 129 f; +#X text 188 171 comment; +#X obj 154 298 expr (-1*$f1)+4; +#X obj 293 27 inlet; +#X obj 283 63 * 10; +#X obj 94 320 gemhead 15; +#X obj 157 509 circle 0.1; +#X obj 17 423 separator; +#X obj 87 423 separator; +#X obj 17 484 rectangle 0.2 0.01; +#X obj 157 423 separator; +#X msg 185 478 draw line; +#X obj 185 457 loadbang; +#X obj 77 386 colorRGB 1 0 0 1; +#X obj 17 462 rectangle 0.01 0.2; +#X msg 256 478 width \$1; +#X obj 296 342 int; +#X obj 275 413 + 1; +#X connect 0 0 5 0; +#X connect 1 0 19 0; +#X connect 2 0 40 0; +#X connect 5 0 10 0; +#X connect 5 0 12 0; +#X connect 5 1 13 0; +#X connect 6 0 9 0; +#X connect 9 0 11 1; +#X connect 10 0 11 0; +#X connect 11 0 16 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 6 1; +#X connect 14 0 10 1; +#X connect 14 0 13 1; +#X connect 15 0 6 0; +#X connect 15 0 12 1; +#X connect 16 0 2 1; +#X connect 19 0 22 0; +#X connect 19 0 24 0; +#X connect 19 1 25 0; +#X connect 20 0 21 0; +#X connect 21 0 23 1; +#X connect 22 0 23 0; +#X connect 23 0 29 0; +#X connect 24 0 27 0; +#X connect 25 0 26 0; +#X connect 26 0 20 1; +#X connect 26 0 22 1; +#X connect 26 0 25 1; +#X connect 27 0 20 0; +#X connect 27 0 24 1; +#X connect 29 0 2 2; +#X connect 30 0 31 0; +#X connect 31 0 33 1; +#X connect 31 0 43 0; +#X connect 32 0 2 0; +#X connect 34 0 41 0; +#X connect 35 0 36 0; +#X connect 37 0 33 0; +#X connect 38 0 33 0; +#X connect 39 0 38 0; +#X connect 40 0 34 0; +#X connect 40 0 35 0; +#X connect 40 0 37 0; +#X connect 42 0 33 0; +#X connect 43 0 44 0; +#X connect 44 0 42 0; +#X restore 137 348 pd cursor; +#X obj 392 163 separator; +#X obj 392 184 pix_texture; +#X obj 392 205 square 4; +#X obj 378 368 pix_texture; +#X obj 179 200 separator; +#X obj 378 348 alpha; +#X obj 378 328 colourRGB 1 1 1 0.65; +#X obj 378 388 translateXYZ -2.4 -2.4 0; +#X obj 378 408 square 1.5; +#X obj 337 98 gemhead 10; +#X obj 337 119 pix_video; +#X text 376 309 Show pix_background output; +#X text 136 369 Show centroid/size; +#X text 368 257 Set noise threshold; +#X text 391 145 Render source video; +#X obj 275 237 hsl 128 15 0 1 0 1 empty empty empty -2 -8 0 10 -262130 +-1 -1 1200 1; +#X floatatom 331 259 5 0 0 0 - - -; +#X text 21 64 1) make sure no one is in the camera picture; +#X text 21 84 2) click the [reset( message; +#X text 21 104 3) set the noise threshold for best results; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 483 25 pd gemwin; +#X connect 1 0 3 0; +#X connect 2 0 3 0; +#X connect 3 0 5 0; +#X connect 3 0 13 0; +#X connect 4 0 3 1; +#X connect 5 1 6 0; +#X connect 5 2 6 1; +#X connect 5 3 6 2; +#X connect 7 0 8 0; +#X connect 8 0 9 0; +#X connect 10 0 14 0; +#X connect 11 0 1 0; +#X connect 12 0 10 0; +#X connect 13 0 12 0; +#X connect 14 0 15 0; +#X connect 16 0 17 0; +#X connect 17 0 7 0; +#X connect 17 0 11 0; +#X connect 22 0 23 0; +#X connect 22 0 4 0; diff --git a/Gem/examples/04.video/08.color_classification.pd b/Gem/examples/04.video/08.color_classification.pd new file mode 100644 index 0000000..dd933b2 --- /dev/null +++ b/Gem/examples/04.video/08.color_classification.pd @@ -0,0 +1,109 @@ +#N canvas 55 233 930 428 10; +#X obj 297 283 separator; +#X obj 297 304 pix_texture; +#X obj 96 130 gemhead 10; +#X obj 96 190 pix_video; +#X text 298 264 Render source video; +#X obj 297 344 square 4; +#X msg 166 153 device 2; +#N canvas 162 133 570 420 serin 0; +#X obj 205 60 cnv 20 20 20 empty \$0-open-canvas 2 4 10 0 16 -233017 +-1 0; +#X obj 60 61 hradio 18 1 1 8 empty empty empty 0 -6 0 8 -225271 -1 +-1 2; +#X obj 60 13 inlet; +#X msg 200 202 label \$1; +#X obj 200 180 makefilename %d; +#X obj 59 108 int; +#X obj 59 337 outlet; +#X msg 201 306 set \$1 \$2; +#X obj 59 266 trigger bang anything; +#X obj 201 286 list; +#X obj 200 225 send \$0-open-canvas; +#X msg 60 210 device \$1; +#X connect 1 0 5 0; +#X connect 2 0 1 0; +#X connect 3 0 10 0; +#X connect 4 0 3 0; +#X connect 5 0 4 0; +#X connect 5 0 11 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 8 1 9 0; +#X connect 9 0 7 0; +#X connect 11 0 8 0; +#X coords 0 -1 1 1 165 20 1 60 60; +#X restore 166 129 pd serin; +#X msg 321 153 colorspace RGBA; +#X msg 430 152 dialog; +#X obj 297 324 rotateXYZ 0 180 0; +#X obj 65 285 pix_texture; +#X obj 65 347 square 1.5; +#X obj 65 326 rotateXYZ 0 180 0; +#X obj 65 305 translateXYZ -2.4 -2.4 0.1; +#X text 72 264 Show color detection output; +#N canvas 249 346 1447 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 388 14 pd gemwin; +#X text 6 21 Reliable colors are detected in an incoming video \, each +pixel being classified into 6 classes: Red \, Green \, Blue \, Yellow +\, Black \, and White. A light brown color is used to visualize the +pixels whose color could not be reliably classified. The detector is +high precision with moderate recall \, meaning it avoids false positives +at the expense of a smaller number of classified pixels.; +#X msg 228 153 dimen 320 240; +#X obj 65 240 pix_colorclassify; +#X text 7 385 Author: Ricardo Fabbri labmacambira.sf.net rfabbri at +gmail; +#X connect 0 0 1 0; +#X connect 1 0 10 0; +#X connect 2 0 3 0; +#X connect 3 0 0 0; +#X connect 3 0 19 0; +#X connect 6 0 3 0; +#X connect 7 0 6 0; +#X connect 8 0 3 0; +#X connect 9 0 3 0; +#X connect 10 0 5 0; +#X connect 11 0 14 0; +#X connect 13 0 12 0; +#X connect 14 0 13 0; +#X connect 18 0 3 0; +#X connect 19 0 11 0; diff --git a/Gem/examples/05.text/01.Text.pd b/Gem/examples/05.text/01.Text.pd new file mode 100644 index 0000000..3cde23a --- /dev/null +++ b/Gem/examples/05.text/01.Text.pd @@ -0,0 +1,120 @@ +#N canvas 262 20 734 641 10; +#X floatatom 623 223 0 0 0 0 - - -; +#X floatatom 322 240 0 0 0 0 - - -; +#X msg 490 144 1; +#X msg 494 168 0; +#X floatatom 694 403 0 0 0 0 - - -; +#X floatatom 529 284 3 0 0 0 - - -; +#X floatatom 578 222 0 0 0 0 - - -; +#X obj 479 194 gemhead; +#X floatatom 533 223 0 0 0 0 - - -; +#X msg 213 155 1; +#X msg 217 179 0; +#X floatatom 395 478 0 0 0 0 - - -; +#X floatatom 226 305 4 0 0 0 - - -; +#X floatatom 279 240 0 0 0 0 - - -; +#X obj 209 207 gemhead; +#X floatatom 235 240 0 0 0 0 - - -; +#X obj 208 496 text3d hello world; +#X obj 209 386 rotate; +#X obj 479 421 textoutline hello world; +#X msg 279 320 0 1 0; +#X msg 283 344 1 0 0; +#X msg 5 449 justify right top; +#X obj 209 281 translateXYZ; +#X msg 532 334 justify left bottom; +#X msg 4 422 justify center center; +#X text 205 111 3-D polygonal text; +#X text 480 99 3-D outline text; +#X obj 479 308 rotateXYZ; +#X text 401 496 size; +#X obj 479 257 translateXYZ 0 2 0; +#X msg 218 433 font ../data/vera.ttf; +#X msg 515 364 font ../data/vera.ttf; +#X msg 225 463 font \$1; +#X msg 511 390 font \$1; +#X obj 297 462 openpanel; +#X msg 377 461 bang; +#X obj 577 390 openpanel; +#X msg 657 389 bang; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 64 238 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 255 pd gemwin; +#X connect 0 0 29 3; +#X connect 1 0 22 3; +#X connect 2 0 7 0; +#X connect 3 0 7 0; +#X connect 4 0 18 1; +#X connect 5 0 27 2; +#X connect 6 0 29 2; +#X connect 7 0 29 0; +#X connect 8 0 29 1; +#X connect 9 0 14 0; +#X connect 10 0 14 0; +#X connect 11 0 16 1; +#X connect 12 0 17 1; +#X connect 13 0 22 2; +#X connect 14 0 22 0; +#X connect 15 0 22 1; +#X connect 17 0 16 0; +#X connect 19 0 17 2; +#X connect 20 0 17 2; +#X connect 21 0 16 0; +#X connect 22 0 17 0; +#X connect 23 0 18 0; +#X connect 24 0 16 0; +#X connect 27 0 18 0; +#X connect 29 0 27 0; +#X connect 30 0 16 0; +#X connect 31 0 18 0; +#X connect 32 0 16 0; +#X connect 33 0 18 0; +#X connect 34 0 32 0; +#X connect 35 0 34 0; +#X connect 36 0 33 0; +#X connect 37 0 36 0; +#X connect 38 0 39 0; diff --git a/Gem/examples/05.text/01.TextNoLoadBang.pd b/Gem/examples/05.text/01.TextNoLoadBang.pd new file mode 100644 index 0000000..43bb335 --- /dev/null +++ b/Gem/examples/05.text/01.TextNoLoadBang.pd @@ -0,0 +1,112 @@ +#N canvas 262 20 734 641 10; +#X floatatom 623 223 0 0 0 0 - - -; +#X floatatom 322 240 0 0 0 0 - - -; +#X msg 490 144 1; +#X msg 494 168 0; +#X floatatom 694 403 0 0 0 0 - - -; +#X floatatom 529 284 3 0 0 0 - - -; +#X floatatom 578 222 0 0 0 0 - - -; +#X obj 479 194 gemhead; +#X floatatom 533 223 0 0 0 0 - - -; +#X msg 213 155 1; +#X msg 217 179 0; +#X floatatom 395 478 0 0 0 0 - - -; +#X floatatom 226 305 4 0 0 0 - - -; +#X floatatom 279 240 0 0 0 0 - - -; +#X obj 209 207 gemhead; +#X floatatom 235 240 0 0 0 0 - - -; +#X obj 208 496 text3d hello world; +#X obj 209 386 rotate; +#X obj 479 421 textoutline hello world; +#X msg 279 320 0 1 0; +#X msg 283 344 1 0 0; +#X msg 5 449 justify right top; +#X obj 209 281 translateXYZ; +#X msg 532 334 justify left bottom; +#X msg 4 422 justify center center; +#X text 205 111 3-D polygonal text; +#X text 480 99 3-D outline text; +#X obj 479 308 rotateXYZ; +#X text 401 496 size; +#X obj 479 257 translateXYZ 0 2 0; +#X msg 218 433 font ../data/vera.ttf; +#X msg 515 364 font ../data/vera.ttf; +#X msg 225 463 font \$1; +#X msg 511 390 font \$1; +#X obj 297 462 openpanel; +#X msg 377 461 bang; +#X obj 577 390 openpanel; +#X msg 657 389 bang; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 255 pd gemwin; +#X connect 0 0 29 3; +#X connect 1 0 22 3; +#X connect 2 0 7 0; +#X connect 3 0 7 0; +#X connect 4 0 18 1; +#X connect 5 0 27 2; +#X connect 6 0 29 2; +#X connect 7 0 29 0; +#X connect 8 0 29 1; +#X connect 9 0 14 0; +#X connect 10 0 14 0; +#X connect 11 0 16 1; +#X connect 12 0 17 1; +#X connect 13 0 22 2; +#X connect 14 0 22 0; +#X connect 15 0 22 1; +#X connect 17 0 16 0; +#X connect 19 0 17 2; +#X connect 20 0 17 2; +#X connect 21 0 16 0; +#X connect 22 0 17 0; +#X connect 23 0 18 0; +#X connect 24 0 16 0; +#X connect 27 0 18 0; +#X connect 29 0 27 0; +#X connect 30 0 16 0; +#X connect 31 0 18 0; +#X connect 32 0 16 0; +#X connect 33 0 18 0; +#X connect 34 0 32 0; +#X connect 35 0 34 0; +#X connect 36 0 33 0; +#X connect 37 0 36 0; diff --git a/Gem/examples/05.text/03.ChangeText.pd b/Gem/examples/05.text/03.ChangeText.pd new file mode 100644 index 0000000..e93314e --- /dev/null +++ b/Gem/examples/05.text/03.ChangeText.pd @@ -0,0 +1,102 @@ +#N canvas 262 100 734 532 10; +#X floatatom 495 359 0 0 0 0 - - -; +#X obj 451 243 gemhead; +#X obj 451 484 text3d hello world; +#X text 354 25 3-D polygonal text; +#X msg 240 303 text something really cool; +#X msg 222 275 text bar; +#X msg 188 248 text foo; +#X msg 141 225 text and now with 1 4.5; +#X obj 201 180 sel 0 1 2 3 4; +#X msg 216 50 1; +#X msg 250 50 0; +#X obj 216 111 metro 250; +#X obj 216 142 random 7; +#X msg 262 342 text good bye again; +#X msg 324 267 text rand \$1; +#X obj 451 270 translateXYZ 0 0 -3.5; +#X obj 495 298 metro 20; +#X obj 451 397 rotateXYZ; +#X obj 497 439 loadbang; +#X obj 495 321 i; +#X obj 527 321 + 1; +#X obj 557 321 % 360; +#X obj 216 79 t f; +#X msg 497 461 font ../data/vera.ttf; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 64 345 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 362 pd gemwin; +#X connect 0 0 17 2; +#X connect 1 0 15 0; +#X connect 4 0 2 0; +#X connect 5 0 2 0; +#X connect 6 0 2 0; +#X connect 7 0 2 0; +#X connect 8 0 7 0; +#X connect 8 1 6 0; +#X connect 8 2 5 0; +#X connect 8 3 4 0; +#X connect 8 4 13 0; +#X connect 8 5 14 0; +#X connect 9 0 22 0; +#X connect 10 0 22 0; +#X connect 11 0 12 0; +#X connect 12 0 8 0; +#X connect 13 0 2 0; +#X connect 14 0 2 0; +#X connect 15 0 17 0; +#X connect 16 0 19 0; +#X connect 17 0 2 0; +#X connect 18 0 23 0; +#X connect 19 0 20 0; +#X connect 19 0 0 0; +#X connect 20 0 21 0; +#X connect 21 0 19 1; +#X connect 22 0 11 0; +#X connect 22 0 16 0; +#X connect 23 0 2 0; +#X connect 24 0 25 0; diff --git a/Gem/examples/05.text/03.ChangeTextNoLoadBang.pd b/Gem/examples/05.text/03.ChangeTextNoLoadBang.pd new file mode 100644 index 0000000..bb01724 --- /dev/null +++ b/Gem/examples/05.text/03.ChangeTextNoLoadBang.pd @@ -0,0 +1,92 @@ +#N canvas 262 100 734 532 10; +#X floatatom 495 359 0 0 0 0 - - -; +#X obj 451 243 gemhead; +#X obj 451 484 text3d hello world; +#X text 354 25 3-D polygonal text; +#X msg 240 303 text something really cool; +#X msg 222 275 text bar; +#X msg 188 248 text foo; +#X msg 141 225 text and now with 1 4.5; +#X obj 201 180 sel 0 1 2 3 4; +#X msg 179 44 1; +#X msg 216 43 0; +#X obj 216 107 metro 250; +#X obj 216 142 random 7; +#X msg 262 342 text good bye again; +#X msg 324 267 text rand \$1; +#X obj 451 270 translateXYZ 0 0 -3.5; +#X obj 495 298 metro 20; +#X obj 451 397 rotateXYZ; +#X msg 497 461 font ../data/vera.ttf; +#X obj 216 85 t f; +#X obj 495 327 i; +#X obj 526 327 + 1; +#X obj 556 327 % 360; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 255 pd gemwin; +#X connect 0 0 17 2; +#X connect 1 0 15 0; +#X connect 4 0 2 0; +#X connect 5 0 2 0; +#X connect 6 0 2 0; +#X connect 7 0 2 0; +#X connect 8 0 7 0; +#X connect 8 1 6 0; +#X connect 8 2 5 0; +#X connect 8 3 4 0; +#X connect 8 4 13 0; +#X connect 8 5 14 0; +#X connect 9 0 19 0; +#X connect 10 0 19 0; +#X connect 11 0 12 0; +#X connect 12 0 8 0; +#X connect 13 0 2 0; +#X connect 14 0 2 0; +#X connect 15 0 17 0; +#X connect 16 0 20 0; +#X connect 17 0 2 0; +#X connect 18 0 2 0; +#X connect 19 0 11 0; +#X connect 19 0 16 0; +#X connect 20 0 21 0; +#X connect 20 0 0 0; +#X connect 21 0 22 0; +#X connect 22 0 20 1; diff --git a/Gem/examples/05.text/vera.ttf b/Gem/examples/05.text/vera.ttf new file mode 100644 index 0000000..58cd6b5 Binary files /dev/null and b/Gem/examples/05.text/vera.ttf differ diff --git a/Gem/examples/06.particle/01.simple.pd b/Gem/examples/06.particle/01.simple.pd new file mode 100644 index 0000000..a618273 --- /dev/null +++ b/Gem/examples/06.particle/01.simple.pd @@ -0,0 +1,69 @@ +#N canvas 509 196 487 398 10; +#X obj 167 160 gemhead; +#X obj 167 192 part_head; +#X obj 167 328 part_draw; +#X text 277 258 set the number per frame; +#X text 291 290 set the age to kill at; +#X text 296 110 the velocity domain; +#X text 295 125 a sphere at 0 \, 0.2 \, 0; +#X text 296 144 radius = 0.3; +#X msg 271 170 0 0.2 0 0.3; +#X msg 358 169 0.2 0 0 0.3; +#X obj 167 228 part_velocity sphere 0 0.2 0 0.3; +#X obj 167 261 part_source 20; +#X obj 167 292 part_killold 50; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 67 48 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 37 65 pd gemwin; +#X connect 0 0 1 0; +#X connect 1 0 10 0; +#X connect 8 0 10 2; +#X connect 9 0 10 2; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X connect 12 0 2 0; +#X connect 13 0 14 0; diff --git a/Gem/examples/06.particle/02.fountain.pd b/Gem/examples/06.particle/02.fountain.pd new file mode 100644 index 0000000..a12a37d --- /dev/null +++ b/Gem/examples/06.particle/02.fountain.pd @@ -0,0 +1,86 @@ +#N canvas 396 160 600 500 10; +#X obj 198 50 gemhead; +#X obj 198 82 part_head; +#X obj 198 136 part_color; +#X obj 198 447 part_draw; +#X msg 335 69 0 1 0; +#X text 329 37 set the color range; +#X obj 198 174 part_size 1; +#X text 299 126 set the size; +#X obj 198 331 part_gravity 0 -0.01 0; +#X obj 198 206 part_velocity sphere 0 0.2 0 0.2; +#X text 310 269 set the number per frame; +#X text 310 378 set the age to kill at; +#X text 366 327 gravity to affect the particles; +#X text 428 174 the velocity domain; +#X text 426 191 a sphere at 0 \, 0.2 \, 0; +#X msg 219 413 draw line; +#X msg 298 413 draw point; +#X msg 309 151 2; +#X msg 393 69 1 0 0; +#X obj 198 270 part_source 25; +#X obj 198 381 part_killold 45; +#X text 426 208 radius = 0.2; +#X msg 126 51 speed 0.1; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 64 159 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 176 pd gemwin; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 6 0; +#X connect 4 0 2 1; +#X connect 6 0 9 0; +#X connect 8 0 20 0; +#X connect 9 0 19 0; +#X connect 15 0 3 0; +#X connect 16 0 3 0; +#X connect 17 0 6 1; +#X connect 18 0 2 2; +#X connect 19 0 8 0; +#X connect 20 0 3 0; +#X connect 22 0 1 0; +#X connect 23 0 24 0; diff --git a/Gem/examples/06.particle/03.orbit.pd b/Gem/examples/06.particle/03.orbit.pd new file mode 100644 index 0000000..2791db1 --- /dev/null +++ b/Gem/examples/06.particle/03.orbit.pd @@ -0,0 +1,88 @@ +#N canvas 396 160 600 500 10; +#X obj 198 50 gemhead; +#X obj 198 82 part_head; +#X obj 198 136 part_color; +#X obj 198 447 part_draw; +#X text 329 37 set the color range; +#X text 299 174 set the size; +#X text 310 269 set the number per frame; +#X text 310 378 set the age to kill at; +#X text 414 196 the velocity domain; +#X msg 219 413 draw line; +#X msg 298 413 draw point; +#X obj 198 270 part_source 25; +#X obj 198 381 part_killold 45; +#X text 412 230 radius = 0.2; +#X msg 336 97 1 0 1; +#X msg 396 98 0 1 0; +#X obj 198 220 part_velocity sphere 0 0 0 0.2; +#X floatatom 375 301 0 0 0 0 - - -; +#X obj 198 334 part_orbitpoint 0 1 0 0.08; +#X text 390 333 orbit point and gravity; +#X obj 198 174 part_size 0.4; +#X obj 360 61 loadbang; +#X text 411 213 a sphere at 0 0 0; +#X text 415 299 keep the gravity low; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 64 238 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 255 pd gemwin; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 20 0; +#X connect 9 0 3 0; +#X connect 10 0 3 0; +#X connect 11 0 18 0; +#X connect 12 0 3 0; +#X connect 14 0 2 1; +#X connect 15 0 2 2; +#X connect 16 0 11 0; +#X connect 17 0 18 2; +#X connect 18 0 12 0; +#X connect 20 0 16 0; +#X connect 21 0 15 0; +#X connect 21 0 14 0; +#X connect 24 0 25 0; diff --git a/Gem/examples/06.particle/04.combo.pd b/Gem/examples/06.particle/04.combo.pd new file mode 100644 index 0000000..37d9afd --- /dev/null +++ b/Gem/examples/06.particle/04.combo.pd @@ -0,0 +1,104 @@ +#N canvas 125 39 600 634 10; +#X obj 41 197 gemwin; +#X msg 41 39 create; +#X msg 58 68 destroy; +#X obj 198 39 gemhead; +#X obj 198 136 part_color; +#X obj 198 615 part_draw; +#X text 391 35 set the color range; +#X text 309 174 set the size; +#X text 330 269 set the number per frame; +#X text 330 458 set the age to kill at; +#X text 464 196 the velocity domain; +#X text 462 230 radius = 0.2; +#X floatatom 382 383 0 0 0 0 - - -; +#X text 420 413 orbit point and gravity; +#X obj 422 59 loadbang; +#X text 426 384 keep the gravity low; +#X obj 198 461 part_killold 35; +#X msg 398 95 0 0 1; +#X obj 198 174 part_size 0.8; +#X text 461 214 a sphere at -1 0 0; +#X text 373 300 apply a gravity to the right; +#X msg 85 357 0 1 0; +#X msg 143 357 0 -1 0; +#X obj 198 305 part_gravity 0.07 0 0; +#X obj 198 579 translateXYZ -1 0.5 0; +#X obj 198 544 rotateXYZ 0 1 0; +#X floatatom 20 442 0 0 0 0 - - -; +#X obj 198 414 part_orbitpoint 0 -1 0 0.88; +#X obj 198 497 part_gravity 0 0 -0.05; +#X obj 198 220 part_velocity sphere -1 0 0 0.05; +#X msg 458 96 1 0 0; +#X text 390 498 apply a gravity in Z; +#X obj 85 290 metro 2000; +#X obj 20 290 metro 50; +#X obj 198 82 part_head 2000; +#X text 204 60 maximum of 2000 particles; +#X obj 198 276 part_source 10; +#N canvas 91 174 290 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 90 175 pd Gem.init; +#X obj 79 104 tgl 40 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 55 249 t f f; +#X obj 20 403 i; +#X obj 51 403 + 1; +#X obj 81 403 % 360; +#X obj 79 149 t f f; +#N canvas 0 0 450 300 alternate 0; +#X obj 82 126 inlet; +#X obj 82 239 outlet; +#X obj 82 192 select 0 1; +#X obj 145 239 outlet; +#X obj 82 147 i; +#X obj 117 146 == 0; +#X obj 82 167 t f f; +#X connect 0 0 4 0; +#X connect 2 0 1 0; +#X connect 2 1 3 0; +#X connect 4 0 6 0; +#X connect 5 0 4 1; +#X connect 6 0 2 0; +#X connect 6 1 5 0; +#X restore 85 327 pd alternate; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X connect 3 0 34 0; +#X connect 4 0 18 0; +#X connect 12 0 27 2; +#X connect 14 0 30 0; +#X connect 14 0 17 0; +#X connect 16 0 28 0; +#X connect 17 0 4 1; +#X connect 18 0 29 0; +#X connect 21 0 27 1; +#X connect 22 0 27 1; +#X connect 23 0 27 0; +#X connect 24 0 5 0; +#X connect 25 0 24 0; +#X connect 26 0 25 2; +#X connect 27 0 16 0; +#X connect 28 0 25 0; +#X connect 29 0 36 0; +#X connect 30 0 4 2; +#X connect 32 0 44 0; +#X connect 33 0 40 0; +#X connect 34 0 4 0; +#X connect 36 0 23 0; +#X connect 37 0 0 0; +#X connect 38 0 43 0; +#X connect 39 0 33 0; +#X connect 39 1 32 0; +#X connect 40 0 41 0; +#X connect 40 0 26 0; +#X connect 41 0 42 0; +#X connect 42 0 40 1; +#X connect 43 0 0 0; +#X connect 43 1 39 0; +#X connect 44 0 21 0; +#X connect 44 1 22 0; diff --git a/Gem/examples/06.particle/05.twoSrc.pd b/Gem/examples/06.particle/05.twoSrc.pd new file mode 100644 index 0000000..5884f75 --- /dev/null +++ b/Gem/examples/06.particle/05.twoSrc.pd @@ -0,0 +1,173 @@ +#N canvas 336 24 600 774 10; +#X obj 198 50 gemhead; +#X obj 198 82 part_head; +#X obj 198 136 part_color; +#X obj 198 620 part_draw; +#X text 329 37 set the color range; +#X text 299 174 set the size; +#X text 310 269 set the number per frame; +#X text 321 588 set the age to kill at; +#X text 444 196 the velocity domain; +#X text 442 230 radius = 0.2; +#X obj 360 61 loadbang; +#X obj 198 586 part_killold 35; +#X obj 198 174 part_size 0.8; +#X text 441 214 a sphere at -1 0 0; +#X text 361 318 apply a gravity to the right; +#X obj 198 317 part_gravity 0.07 0 0; +#X obj 198 461 part_color; +#X obj 251 383 loadbang; +#X msg 275 421 0.4 0.4 0.4; +#X msg 227 420 1 0 0; +#X obj 198 277 part_source 5; +#X obj 198 497 part_source 5; +#X obj 198 537 part_gravity -0.01 -0.02 0; +#X obj 198 352 part_velocity sphere 0 0.2 0 0.05; +#X msg 324 96 0.4 0.4 0.4; +#X msg 423 96 0 1 0; +#X obj 198 220 part_velocity sphere -0.2 0 0 0.1; +#X obj 375 419 metro 1000; +#N canvas 0 22 450 300 tripleRand 0; +#X obj 94 71 inlet; +#X obj 94 252 outlet; +#X obj 94 221 pack 0 0 0; +#X obj 94 104 t b b b; +#X obj 94 134 random 1000; +#X obj 94 154 / 1000; +#X obj 94 175 * 0.1; +#X obj 194 134 random 1000; +#X obj 194 154 / 1000; +#X obj 294 134 random 1000; +#X obj 294 154 / 1000; +#X obj 194 175 * 0.2; +#X obj 294 175 * 0; +#X connect 0 0 3 0; +#X connect 2 0 1 0; +#X connect 3 0 4 0; +#X connect 3 1 7 0; +#X connect 3 2 9 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 2 0; +#X connect 7 0 8 0; +#X connect 8 0 11 0; +#X connect 9 0 10 0; +#X connect 10 0 12 0; +#X connect 11 0 2 1; +#X connect 12 0 2 2; +#X restore 375 453 pd tripleRand (0.1 0.2 0); +#N canvas 0 22 450 300 v* 0; +#X obj 90 62 unpack 0 0 0; +#X obj 90 42 inlet; +#X obj 90 137 pack 0 0 0; +#X obj 90 156 outlet; +#X obj 90 90 * -1; +#X obj 127 110 * -1; +#X obj 165 90 * -1; +#X connect 0 0 4 0; +#X connect 0 1 5 0; +#X connect 0 2 6 0; +#X connect 1 0 0 0; +#X connect 2 0 3 0; +#X connect 4 0 2 0; +#X connect 5 0 2 1; +#X connect 6 0 2 2; +#X restore 375 483 pd v* (-1); +#N canvas 0 22 450 300 tripleLine 0; +#X obj 94 71 inlet; +#X obj 94 252 outlet; +#X obj 94 104 unpack 0 0 0; +#X obj 94 221 pack 0 0 0; +#X obj 94 176 line; +#X msg 94 153 \$1 1000; +#X obj 164 176 line; +#X msg 164 153 \$1 1000; +#X obj 234 176 line; +#X msg 234 153 \$1 1000; +#X connect 0 0 2 0; +#X connect 2 0 5 0; +#X connect 2 1 7 0; +#X connect 2 2 9 0; +#X connect 3 0 1 0; +#X connect 4 0 3 0; +#X connect 5 0 4 0; +#X connect 6 0 3 1; +#X connect 7 0 6 0; +#X connect 8 0 3 2; +#X connect 9 0 8 0; +#X restore 375 505 pd tripleLine (1000); +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 64 238 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 255 pd gemwin; +#X obj 375 392 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 12 0; +#X connect 10 0 25 0; +#X connect 10 0 24 0; +#X connect 11 0 3 0; +#X connect 12 0 26 0; +#X connect 15 0 23 0; +#X connect 16 0 21 0; +#X connect 17 0 18 0; +#X connect 17 0 19 0; +#X connect 18 0 16 2; +#X connect 19 0 16 1; +#X connect 20 0 15 0; +#X connect 21 0 22 0; +#X connect 22 0 11 0; +#X connect 23 0 16 0; +#X connect 24 0 2 1; +#X connect 25 0 2 2; +#X connect 26 0 20 0; +#X connect 27 0 28 0; +#X connect 28 0 29 0; +#X connect 29 0 30 0; +#X connect 30 0 22 1; +#X connect 31 0 32 0; +#X connect 33 0 27 0; diff --git a/Gem/examples/06.particle/06.target.pd b/Gem/examples/06.particle/06.target.pd new file mode 100644 index 0000000..35237ad --- /dev/null +++ b/Gem/examples/06.particle/06.target.pd @@ -0,0 +1,74 @@ +#N canvas 396 160 600 500 10; +#X obj 198 50 gemhead; +#X obj 198 82 part_head; +#X obj 198 447 part_draw; +#X obj 198 331 part_gravity 0 -0.01 0; +#X obj 198 160 part_velocity sphere 0 0.2 0 0.2; +#X text 310 269 set the number per frame; +#X text 310 378 set the age to kill at; +#X text 366 327 gravity to affect the particles; +#X text 331 94 the velocity domain; +#X text 329 111 a sphere at 0 \, 0.2 \, 0; +#X obj 198 270 part_source 25; +#X obj 198 381 part_killold 45; +#X text 329 128 radius = 0.2; +#X obj 198 116 part_size 0.1; +#X obj 198 236 part_targetcolor 0 0 1; +#X obj 198 201 part_targetsize 3; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 64 238 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 255 pd gemwin; +#X connect 0 0 1 0; +#X connect 1 0 13 0; +#X connect 3 0 11 0; +#X connect 4 0 15 0; +#X connect 10 0 3 0; +#X connect 11 0 2 0; +#X connect 13 0 4 0; +#X connect 14 0 10 0; +#X connect 15 0 14 0; +#X connect 16 0 17 0; diff --git a/Gem/examples/06.particle/07.render.pd b/Gem/examples/06.particle/07.render.pd new file mode 100644 index 0000000..8fd3c0c --- /dev/null +++ b/Gem/examples/06.particle/07.render.pd @@ -0,0 +1,86 @@ +#N canvas 136 52 487 571 10; +#X obj 167 53 gemhead; +#X obj 167 81 part_head; +#X text 293 262 set the number per frame; +#X text 291 290 set the age to kill at; +#X text 296 110 the velocity domain; +#X text 295 125 a sphere at 0 \, 0.2 \, 0; +#X text 296 144 radius = 0.3; +#X msg 271 170 0 0.2 0 0.3; +#X msg 358 169 0.2 0 0 0.3; +#X obj 167 231 part_velocity sphere 0 0.2 0 0.3; +#X obj 167 330 part_render; +#X obj 167 393 sphere 0.2; +#X obj 47 308 gemhead; +#X obj 47 331 world_light; +#X obj 167 128 part_size 1; +#X msg 257 105 2; +#X obj 167 204 part_color; +#X msg 190 150 1 0 0; +#X obj 167 261 part_source 5; +#X obj 167 292 part_killold 10; +#X msg 202 178 0 1 0; +#X msg 227 104 1; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X obj 118 113 outlet; +#X msg 118 81 reset \, lighting 1; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X restore 66 131 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 36 148 pd gemwin; +#X connect 0 0 1 0; +#X connect 1 0 14 0; +#X connect 7 0 9 2; +#X connect 8 0 9 2; +#X connect 9 0 18 0; +#X connect 10 0 11 0; +#X connect 12 0 13 0; +#X connect 14 0 16 0; +#X connect 15 0 14 1; +#X connect 16 0 9 0; +#X connect 17 0 16 1; +#X connect 18 0 19 0; +#X connect 19 0 10 0; +#X connect 20 0 16 2; +#X connect 21 0 14 1; +#X connect 22 0 23 0; diff --git a/Gem/examples/06.particle/08.info.pd b/Gem/examples/06.particle/08.info.pd new file mode 100644 index 0000000..5b00adb --- /dev/null +++ b/Gem/examples/06.particle/08.info.pd @@ -0,0 +1,117 @@ +#N canvas 22 71 611 571 10; +#X obj 169 18 gemhead; +#X obj 168 85 part_head; +#X text 278 259 set the number per frame; +#X text 292 291 set the age to kill at; +#X msg 290 201 0 0.2 0 0.3; +#X msg 377 200 0.2 0 0 0.3; +#X obj 168 229 part_velocity sphere 0 0.2 0 0.3; +#X obj 168 132 part_size 1; +#X obj 168 254 part_source 5; +#X obj 168 279 part_killold 10; +#X obj 169 300 part_info; +#X obj 169 382 separator; +#X obj 169 408 translate 1 0 0 0; +#X obj 169 431 color; +#X obj 169 471 scale; +#X msg 278 518 draw line; +#X msg 257 105 2; +#X obj 170 502 rotateXYZ; +#X obj 320 435 unpack 0 0 0; +#X text 375 400 this is rather velocity; +#X text 379 416 than rotation; +#X obj 279 498 loadbang; +#X obj 170 537 square 0.2; +#X msg 300 378 \$1 \$2 0; +#X obj 169 56 rotateXYZ; +#X floatatom 272 20 5 0 0 0 - - -; +#X obj 168 205 part_color; +#X msg 200 180 1 0 0; +#X msg 252 180 0 0 1; +#X text 254 362 we don't allow particles spread along the z-axis; +#X msg 257 76 1; +#X obj 255 463 * 360; +#X obj 315 461 * 360; +#X obj 382 460 * 360; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 64 238 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 255 pd gemwin; +#X connect 0 0 24 0; +#X connect 1 0 7 0; +#X connect 4 0 6 2; +#X connect 5 0 6 2; +#X connect 6 0 8 0; +#X connect 7 0 26 0; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 10 0 11 0; +#X connect 10 2 23 0; +#X connect 10 3 13 1; +#X connect 10 4 18 0; +#X connect 10 5 14 1; +#X connect 11 0 12 0; +#X connect 12 0 13 0; +#X connect 13 0 14 0; +#X connect 14 0 17 0; +#X connect 15 0 22 0; +#X connect 16 0 7 1; +#X connect 17 0 22 0; +#X connect 18 0 31 0; +#X connect 18 1 32 0; +#X connect 18 2 33 0; +#X connect 21 0 15 0; +#X connect 23 0 12 2; +#X connect 24 0 1 0; +#X connect 25 0 24 2; +#X connect 26 0 6 0; +#X connect 27 0 26 1; +#X connect 28 0 26 2; +#X connect 30 0 7 1; +#X connect 31 0 17 1; +#X connect 32 0 17 2; +#X connect 33 0 17 3; +#X connect 34 0 35 0; diff --git a/Gem/examples/06.particle/09.sink.pd b/Gem/examples/06.particle/09.sink.pd new file mode 100644 index 0000000..d22b5ac --- /dev/null +++ b/Gem/examples/06.particle/09.sink.pd @@ -0,0 +1,100 @@ +#N canvas 424 93 600 500 10; +#X obj 198 50 gemhead; +#X obj 198 82 part_head; +#X obj 198 136 part_color; +#X obj 199 447 part_draw; +#X msg 335 69 0 1 0; +#X text 329 37 set the color range; +#X obj 198 174 part_size 1; +#X text 299 126 set the size; +#X obj 198 206 part_velocity sphere 0 0.2 0 0.2; +#X text 310 239 set the number per frame; +#X text 311 378 set the age to kill at; +#X text 309 255 gravity to affect the particles; +#X text 428 174 the velocity domain; +#X text 426 191 a sphere at 0 \, 0.2 \, 0; +#X msg 220 413 draw line; +#X msg 299 413 draw point; +#X msg 309 151 2; +#X msg 393 69 1 0 0; +#X obj 198 240 part_source 25; +#X obj 199 381 part_killold 45; +#X text 426 208 radius = 0.2; +#X msg 126 51 speed 0.1; +#X obj 245 303 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X floatatom 389 314 5 0 0 0 - - -; +#X msg 389 331 0 \$1 0 0 1 0; +#X obj 198 271 part_gravity 0 -0.1 0; +#X obj 198 355 part_sink plane 0 -1 0 0 1 0; +#X msg 245 322 kill \$1; +#X obj 392 293 hsl 128 15 -4 0.1 0 0 empty empty empty -2 -6 0 8 -262144 +-1 -1 0 1; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 64 238 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 255 pd gemwin; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 6 0; +#X connect 4 0 2 1; +#X connect 6 0 8 0; +#X connect 8 0 18 0; +#X connect 14 0 3 0; +#X connect 15 0 3 0; +#X connect 16 0 6 1; +#X connect 17 0 2 2; +#X connect 18 0 25 0; +#X connect 19 0 3 0; +#X connect 21 0 1 0; +#X connect 22 0 27 0; +#X connect 23 0 24 0; +#X connect 24 0 26 2; +#X connect 25 0 26 0; +#X connect 26 0 19 0; +#X connect 27 0 26 0; +#X connect 28 0 23 0; +#X connect 29 0 30 0; diff --git a/Gem/examples/07.texture/01.texture.pd b/Gem/examples/07.texture/01.texture.pd new file mode 100644 index 0000000..da6dedc --- /dev/null +++ b/Gem/examples/07.texture/01.texture.pd @@ -0,0 +1,60 @@ +#N canvas 180 41 560 399 10; +#X floatatom 369 147 0 0 0 0 - - -; +#X obj 325 202 pix_image ../data/fractal.JPG; +#X obj 325 245 pix_texture; +#X obj 325 171 rotate 0 1 1; +#X obj 325 277 cube; +#X obj 325 124 gemhead; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 90 153 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 60 170 pd gemwin; +#X connect 0 0 3 1; +#X connect 1 0 2 0; +#X connect 2 0 4 0; +#X connect 3 0 1 0; +#X connect 5 0 3 0; +#X connect 6 0 7 0; diff --git a/Gem/examples/07.texture/02.TexCoord.pd b/Gem/examples/07.texture/02.TexCoord.pd new file mode 100644 index 0000000..951c700 --- /dev/null +++ b/Gem/examples/07.texture/02.TexCoord.pd @@ -0,0 +1,70 @@ +#N canvas 127 46 642 483 10; +#X obj 251 46 gemhead; +#X obj 251 424 square; +#X obj 251 369 pix_coordinate; +#X obj 251 118 pix_texture; +#X obj 251 87 pix_image ../data/fractal.JPG; +#X msg 363 227 0 0 1 0 1 1 0 1; +#X msg 349 203 0 0 2 0 2 2 0 2; +#X msg 369 253 0 0 0.5 0 0.5 0.5 0 0.5; +#X floatatom 400 285 5 0 0 0 - - -; +#X text 258 170 set the texture coordinates [x1 y1 x2 y2 x3 y3 x4 y4] +; +#X msg 400 308 0 0 \$1 0 \$1 \$1 0 \$1; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X obj 118 113 outlet; +#X msg 118 81 reset \, dimen 300 300; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X restore 64 238 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 255 pd gemwin; +#X connect 0 0 4 0; +#X connect 2 0 1 0; +#X connect 3 0 2 0; +#X connect 4 0 3 0; +#X connect 5 0 2 1; +#X connect 6 0 2 1; +#X connect 7 0 2 1; +#X connect 8 0 10 0; +#X connect 10 0 2 1; +#X connect 11 0 12 0; diff --git a/Gem/examples/07.texture/04.moveImages.pd b/Gem/examples/07.texture/04.moveImages.pd new file mode 100644 index 0000000..8107c0c --- /dev/null +++ b/Gem/examples/07.texture/04.moveImages.pd @@ -0,0 +1,153 @@ +#N canvas 180 41 816 619 10; +#X text 730 64 on; +#X text 767 62 off; +#X text 513 71 on; +#X text 578 69 off; +#X obj 633 450 pix_texture; +#X obj 670 477 r initstuff; +#X msg 724 86 1; +#X msg 761 85 0; +#X text 216 393 on; +#X text 255 391 off; +#X msg 29 417 1; +#X msg 65 419 0; +#X msg 210 419 1; +#X msg 248 419 0; +#X obj 286 437 gemhead 1; +#X obj 454 166 int 0; +#X obj 506 167 + 2; +#X floatatom 672 197 0 0 0 0 - - -; +#X obj 633 537 sphere; +#X floatatom 454 199 0 0 0 0 - - -; +#X obj 107 479 world_light; +#X obj 107 424 gemhead 1; +#X obj 415 445 sphere; +#X obj 672 170 int 0; +#X obj 286 493 light; +#X msg 670 507 20; +#X text 108 370 global light; +#X text 283 370 local light; +#X text 35 395 on; +#X text 65 396 off; +#X obj 454 132 metro 50; +#X msg 506 97 1; +#X msg 543 99 0; +#X obj 672 136 metro 100; +#X obj 734 168 + 1; +#X obj 66 580 send initstuff; +#X obj 452 383 r initstuff; +#X obj 415 311 pix_image ../data/fractal.JPG; +#X obj 415 354 pix_texture; +#X obj 633 314 pix_image ../data/dancer.JPG; +#X obj 633 377 alpha; +#X obj 633 414 pix_alpha; +#X obj 633 53 gemhead 60; +#X obj 415 228 rotate 0 1 1; +#X obj 633 227 rotate 1 0 1; +#X text 426 35 Blue Sphere; +#X text 641 18 Red Sphere; +#X obj 633 86 color 1 0 0; +#X obj 415 272 translateXYZ 2 0 0; +#X obj 633 274 translateXYZ 1 1 0; +#X msg 452 417 30; +#X obj 66 545 loadbang; +#X obj 415 68 gemhead 60; +#X obj 415 98 color 0 0 1; +#X msg 690 338 test 1; +#X msg 745 339 test 0; +#X msg 179 113 lighting \$1; +#X obj 179 93 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X obj 118 113 outlet; +#X msg 118 81 reset \, lighting 1; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X restore 64 238 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 255 pd gemwin; +#X connect 4 0 18 0; +#X connect 5 0 25 0; +#X connect 6 0 33 0; +#X connect 7 0 33 0; +#X connect 7 0 34 0; +#X connect 10 0 20 0; +#X connect 11 0 20 0; +#X connect 12 0 24 0; +#X connect 13 0 24 0; +#X connect 14 0 24 0; +#X connect 15 0 16 0; +#X connect 15 0 19 0; +#X connect 16 0 15 1; +#X connect 17 0 44 1; +#X connect 19 0 43 1; +#X connect 21 0 20 0; +#X connect 23 0 17 0; +#X connect 23 0 34 0; +#X connect 25 0 18 2; +#X connect 30 0 15 0; +#X connect 31 0 30 0; +#X connect 32 0 30 0; +#X connect 32 0 16 0; +#X connect 33 0 23 0; +#X connect 34 0 23 1; +#X connect 36 0 50 0; +#X connect 37 0 38 0; +#X connect 38 0 22 0; +#X connect 39 0 40 0; +#X connect 40 0 41 0; +#X connect 41 0 4 0; +#X connect 42 0 47 0; +#X connect 43 0 48 0; +#X connect 44 0 49 0; +#X connect 47 0 44 0; +#X connect 48 0 37 0; +#X connect 49 0 39 0; +#X connect 50 0 22 2; +#X connect 51 0 35 0; +#X connect 52 0 53 0; +#X connect 53 0 43 0; +#X connect 54 0 40 0; +#X connect 55 0 40 0; +#X connect 56 0 59 0; +#X connect 57 0 56 0; +#X connect 58 0 59 0; diff --git a/Gem/examples/07.texture/05.newWave.pd b/Gem/examples/07.texture/05.newWave.pd new file mode 100644 index 0000000..52c631b --- /dev/null +++ b/Gem/examples/07.texture/05.newWave.pd @@ -0,0 +1,201 @@ +#N canvas 110 90 876 486 10; +#X text 653 313 Inlet 1: gemlist; +#X obj 209 277 gemhead; +#X floatatom 622 130 5 0 0 2 size - -; +#X floatatom 539 84 5 0 0 2 height - -; +#X floatatom 241 339 5 0 0 0 - - -; +#X msg 322 5 draw line; +#X msg 322 25 draw fill; +#X msg 322 45 draw point; +#X text 653 188 00..retrigger current action; +#X text 653 200 01..flat; +#X text 653 211 02..spike; +#X text 653 221 03..diagonal wall; +#X text 652 234 04..sidewall; +#X text 652 245 05..hole; +#X text 652 256 06..middleblock; +#X text 652 267 07..diagonalblock; +#X text 652 278 08..cornerblock; +#X text 652 288 09..hill; +#X obj 718 28 vradio 11 1 0 11 empty empty action -10 -6 0 8 -262144 +-1 -1 0; +#X text 651 299 10..hill4 (default); +#X floatatom 274 339 5 0 0 0 - - -; +#X floatatom 308 339 5 0 0 0 - - -; +#X floatatom 13 -15 5 0 0 0 - - -; +#X msg 415 228 force 25 25 30; +#X msg 539 45 0.06; +#X obj 539 17 loadbang; +#X obj 13 3 / 100; +#X floatatom 173 -15 5 0 0 0 - - -; +#X obj 173 4 / 100; +#X obj 401 39 random 50; +#X obj 444 59 random 50; +#X obj 401 81 pack 0 0; +#X obj 401 15 metro 300; +#X msg 415 273 position 10 10 100; +#X msg 718 155 mode \$1; +#X msg 415 250 force 4 2 50; +#X msg 538 101 height \$1; +#X floatatom 65 -16 5 0 0 0 - - -; +#X obj 65 2 / 100; +#X floatatom 216 -16 5 0 0 0 - - -; +#X obj 216 3 / 100; +#X floatatom 114 -17 5 0 0 0 - - -; +#X obj 114 1 / 100; +#X floatatom 258 -17 5 0 0 0 - - -; +#X obj 258 2 / 100; +#X obj 623 74 loadbang; +#X msg 23 48 K1 0.05; +#X msg 13 24 K1 \$1; +#X msg 179 46 D1 0.1; +#X msg 173 25 D1 \$1; +#X msg 65 23 K2 \$1; +#X msg 114 22 K3 \$1; +#X msg 75 47 K2 0.05; +#X msg 124 46 K3 0.05; +#X msg 216 24 D2 \$1; +#X msg 222 45 D2 0.1; +#X msg 258 23 D3 \$1; +#X obj 13 235 newWave 50; +#X msg 264 44 D3 0.01; +#X msg 329 67 width 1; +#X msg 330 87 width 10; +#X obj 402 -3 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X msg 87 411 \; pd quit \;; +#N canvas 0 22 247 188 cpu 0; +#X obj 30 45 metro 1000; +#X obj 32 22 loadbang; +#X obj 33 96 cputime; +#X obj 30 69 t b b; +#X obj 34 125 / 10; +#X obj 33 150 outlet; +#X connect 0 0 3 0; +#X connect 1 0 0 0; +#X connect 2 0 4 0; +#X connect 3 0 2 0; +#X connect 3 1 2 1; +#X connect 4 0 5 0; +#X restore 20 396 pd cpu; +#X floatatom 20 426 5 0 0 0 - - -; +#X obj 87 348 gemhead; +#X obj 87 374 world_light; +#X obj 209 382 render_trigger; +#X obj 209 360 rotateXYZ 300 0 0; +#X obj 311 -18 loadbang; +#X msg 415 207 force 20 20 30; +#X msg 623 97 2; +#X obj 209 317 pix_texture; +#X obj 209 298 pix_image ../data/fractal.JPG; +#X msg 400 101 force \$1 \$2 -0.1; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 532 385 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 502 402 pd gemwin; +#X connect 1 0 73 0; +#X connect 2 0 57 1; +#X connect 3 0 36 0; +#X connect 4 0 68 1; +#X connect 5 0 57 0; +#X connect 6 0 57 0; +#X connect 7 0 57 0; +#X connect 18 0 34 0; +#X connect 20 0 68 2; +#X connect 21 0 68 3; +#X connect 22 0 26 0; +#X connect 23 0 57 0; +#X connect 24 0 3 0; +#X connect 25 0 24 0; +#X connect 26 0 47 0; +#X connect 27 0 28 0; +#X connect 28 0 49 0; +#X connect 29 0 31 0; +#X connect 30 0 31 1; +#X connect 31 0 74 0; +#X connect 32 0 29 0; +#X connect 32 0 30 0; +#X connect 33 0 57 0; +#X connect 34 0 57 0; +#X connect 35 0 57 0; +#X connect 36 0 57 0; +#X connect 37 0 38 0; +#X connect 38 0 50 0; +#X connect 39 0 40 0; +#X connect 40 0 54 0; +#X connect 41 0 42 0; +#X connect 42 0 51 0; +#X connect 43 0 44 0; +#X connect 44 0 56 0; +#X connect 45 0 71 0; +#X connect 46 0 57 0; +#X connect 47 0 57 0; +#X connect 48 0 57 0; +#X connect 49 0 57 0; +#X connect 50 0 57 0; +#X connect 51 0 57 0; +#X connect 52 0 57 0; +#X connect 53 0 57 0; +#X connect 54 0 57 0; +#X connect 55 0 57 0; +#X connect 56 0 57 0; +#X connect 58 0 57 0; +#X connect 59 0 57 0; +#X connect 60 0 57 0; +#X connect 61 0 32 0; +#X connect 63 0 64 0; +#X connect 65 0 66 0; +#X connect 67 0 57 0; +#X connect 67 2 57 0; +#X connect 68 0 67 0; +#X connect 69 0 48 0; +#X connect 69 0 46 0; +#X connect 70 0 57 0; +#X connect 71 0 2 0; +#X connect 72 0 68 0; +#X connect 73 0 72 0; +#X connect 74 0 57 0; +#X connect 75 0 76 0; diff --git a/Gem/examples/07.texture/06.ripple.pd b/Gem/examples/07.texture/06.ripple.pd new file mode 100644 index 0000000..a329550 --- /dev/null +++ b/Gem/examples/07.texture/06.ripple.pd @@ -0,0 +1,114 @@ +#N canvas 153 39 582 638 10; +#X obj 299 39 openpanel; +#X msg 34 50 dimen 640 480; +#X obj 174 115 gemhead; +#X msg 381 41 auto \$1; +#X obj 384 13 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X floatatom 185 429 5 0 0 0 - - -; +#X obj 299 11 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 72 92 profile 1; +#X msg 81 130 profile 0; +#X msg 384 84 open ../data/anim-1.mov; +#X msg 299 66 open \$1; +#X obj 113 429 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 198 445 5 0 0 0 - - -; +#X floatatom 227 460 5 0 0 0 - - -; +#X floatatom 214 261 5 0 0 0 - - -; +#X floatatom 254 261 5 0 0 0 - - -; +#X floatatom 295 261 5 0 0 0 - - -; +#X floatatom 242 487 5 0 0 0 - - -; +#X floatatom 196 306 5 0 0 0 - - -; +#X floatatom 207 349 4 0 0 0 - - -; +#X floatatom 240 349 4 0 0 0 - - -; +#X floatatom 274 349 4 0 0 0 - - -; +#X obj 174 171 pix_film; +#X obj 174 324 scale 6; +#X obj 174 278 translateXYZ 0 0 0; +#X obj 174 212 pix_texture; +#X obj 241 172 t f; +#X msg 384 124 open ../data/alea.mpg; +#X obj 174 366 rotateXYZ 0 0 0; +#X obj 174 517 ripple; +#X msg 384 104 open ../data/homer.avi; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 64 168 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 185 pd gemwin; +#X connect 0 0 10 0; +#X connect 1 0 32 0; +#X connect 2 0 22 0; +#X connect 3 0 22 0; +#X connect 4 0 3 0; +#X connect 5 0 29 1; +#X connect 6 0 0 0; +#X connect 7 0 32 0; +#X connect 8 0 32 0; +#X connect 9 0 22 0; +#X connect 10 0 22 0; +#X connect 11 0 29 0; +#X connect 12 0 29 2; +#X connect 13 0 29 3; +#X connect 14 0 24 1; +#X connect 15 0 24 2; +#X connect 16 0 24 3; +#X connect 17 0 29 4; +#X connect 18 0 23 1; +#X connect 19 0 28 1; +#X connect 20 0 28 2; +#X connect 21 0 28 3; +#X connect 22 0 25 0; +#X connect 22 2 26 0; +#X connect 23 0 28 0; +#X connect 24 0 23 0; +#X connect 25 0 24 0; +#X connect 26 0 22 1; +#X connect 27 0 22 0; +#X connect 28 0 29 0; +#X connect 30 0 22 0; +#X connect 31 0 32 0; diff --git a/Gem/examples/07.texture/07.feedback.pd b/Gem/examples/07.texture/07.feedback.pd new file mode 100644 index 0000000..a402cfe --- /dev/null +++ b/Gem/examples/07.texture/07.feedback.pd @@ -0,0 +1,92 @@ +#N canvas 4 50 630 424 10; +#X msg 320 121 snap; +#X obj 320 68 gemhead 15; +#X obj 39 64 gemhead 10; +#X obj 39 126 scaleXYZ 6 0.1 6; +#X obj 55 95 hsl 128 15 0.02 1.53 0 0 empty empty empty -2 -6 0 8 -262139 +-1 -1 0 1; +#X obj 39 259 cube 0.34; +#X obj 320 260 rotateXYZ; +#X obj 357 237 hsl 128 15 -34 34 0 0 empty empty empty -2 -6 0 8 -261879 +-1 -1 6350 1; +#X obj 40 364 light; +#X obj 40 341 translateXYZ 0 0 4; +#X obj 320 154 pix_snap2tex 0 0 512 512; +#X obj 320 300 sphere 3.64 50; +#X obj 40 318 gemhead 1; +#X msg 354 216 0; +#X obj 354 195 loadbang; +#X obj 125 158 hsl 128 15 0 1 0 1 empty empty R 12 8 1 12 -261689 -1 +-1 12700 1; +#X obj 125 178 hsl 128 15 0 1 0 1 empty empty G 12 8 1 12 -225271 -1 +-1 12700 1; +#X obj 125 198 hsl 128 15 0 1 0 1 empty empty B 12 8 1 12 -228992 -1 +-1 12700 1; +#X obj 39 227 colorRGB 1 1 1; +#X obj 320 92 trigger bang anything; +#N canvas 89 204 317 179 Gem.init 0; +#X obj 118 46 loadbang; +#X obj 118 113 outlet; +#X msg 118 81 reset \, dimen 512 512 \, lighting 1; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X restore 485 338 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 455 355 pd gemwin; +#X connect 0 0 10 0; +#X connect 1 0 19 0; +#X connect 2 0 3 0; +#X connect 3 0 18 0; +#X connect 4 0 3 2; +#X connect 6 0 11 0; +#X connect 7 0 6 2; +#X connect 9 0 8 0; +#X connect 10 0 6 0; +#X connect 12 0 9 0; +#X connect 13 0 7 0; +#X connect 14 0 13 0; +#X connect 15 0 18 1; +#X connect 16 0 18 2; +#X connect 17 0 18 3; +#X connect 18 0 5 0; +#X connect 19 0 0 0; +#X connect 19 1 10 0; +#X connect 20 0 21 0; diff --git a/Gem/examples/07.texture/08.MotionBlur.pd b/Gem/examples/07.texture/08.MotionBlur.pd new file mode 100644 index 0000000..ca5e121 --- /dev/null +++ b/Gem/examples/07.texture/08.MotionBlur.pd @@ -0,0 +1,130 @@ +#N canvas 13 0 1023 406 10; +#X obj 33 260 world_light; +#X msg 282 164 bang; +#X obj 282 144 metro 500; +#X obj 282 126 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X obj 593 113 gemhead -1; +#X obj 593 234 pix_snap2tex; +#X msg 638 210 0 0; +#X msg 684 209 500 500; +#X obj 638 187 t b b; +#X obj 593 194 t b a; +#X obj 593 272 alpha; +#X floatatom 766 262 5 0 0 0 - - -; +#X obj 593 340 square 4; +#X obj 771 114 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 0 1; +#X msg 47 118 frame \$1; +#X floatatom 47 100 5 0 0 0 - - -; +#X obj 593 296 colorRGB 1 1 1 0.888; +#X obj 33 236 gemhead; +#X obj 638 168 loadbang; +#N canvas 0 0 749 590 moving 0; +#X obj 193 81 gemhead; +#X obj 193 384 translateXYZ; +#X obj 276 67 t b b; +#X obj 276 104 random 100; +#X obj 193 357 colorRGB 1 1 1; +#X obj 276 39 inlet; +#X obj 193 411 teapot; +#X obj 276 135 pack 0 1000; +#X obj 276 181 / 100; +#X obj 276 201 * 8; +#X obj 276 221 - 4; +#X obj 375 104 random 100; +#X obj 375 135 pack 0 1000; +#X obj 375 181 / 100; +#X obj 375 201 * 8; +#X obj 375 221 - 4; +#X obj 276 159 line 50 10; +#X obj 375 159 line 50 10; +#X connect 0 0 4 0; +#X connect 1 0 6 0; +#X connect 2 0 3 0; +#X connect 2 1 11 0; +#X connect 3 0 7 0; +#X connect 4 0 1 0; +#X connect 5 0 2 0; +#X connect 7 0 16 0; +#X connect 8 0 9 0; +#X connect 8 0 4 1; +#X connect 9 0 10 0; +#X connect 10 0 1 1; +#X connect 11 0 12 0; +#X connect 12 0 17 0; +#X connect 13 0 14 0; +#X connect 13 0 4 2; +#X connect 14 0 15 0; +#X connect 15 0 1 2; +#X connect 16 0 8 0; +#X connect 17 0 13 0; +#X restore 282 186 pd moving object; +#X text 267 31 FullScreen Motion Blur:; +#N canvas 87 154 414 208 Gem.init 0; +#X obj 118 46 loadbang; +#X obj 118 113 outlet; +#X msg 118 81 reset \, frame 100 \, lighting 1; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X restore 77 143 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 47 160 pd gemwin; +#X connect 1 0 19 0; +#X connect 2 0 1 0; +#X connect 3 0 2 0; +#X connect 4 0 9 0; +#X connect 5 0 10 0; +#X connect 6 0 5 1; +#X connect 7 0 5 2; +#X connect 8 0 6 0; +#X connect 8 1 7 0; +#X connect 9 0 5 0; +#X connect 9 1 5 0; +#X connect 10 0 16 0; +#X connect 11 0 16 4; +#X connect 13 0 11 0; +#X connect 14 0 22 0; +#X connect 15 0 14 0; +#X connect 16 0 12 0; +#X connect 17 0 0 0; +#X connect 18 0 8 0; +#X connect 21 0 22 0; diff --git a/Gem/examples/07.texture/09.sharedTextures.pd b/Gem/examples/07.texture/09.sharedTextures.pd new file mode 100644 index 0000000..bd8cb84 --- /dev/null +++ b/Gem/examples/07.texture/09.sharedTextures.pd @@ -0,0 +1,79 @@ +#N canvas 180 41 1035 404 10; +#X floatatom 370 259 0 0 0 0 - - -; +#X obj 325 122 pix_image ../data/fractal.JPG; +#X obj 325 155 pix_texture; +#X obj 325 279 rotate 0 1 1; +#X obj 325 307 cube; +#X obj 704 209 pix_texture; +#X obj 325 237 translateXYZ -2 1 0; +#X obj 704 283 circle; +#X obj 704 253 translateXYZ 2 1 0; +#X obj 325 84 gemhead 10; +#X obj 704 154 gemhead 30; +#X obj 570 272 gemhead 20; +#X obj 570 299 pix_texture; +#X obj 570 328 pix_coordinate; +#X obj 570 351 translateXYZ 0 -1 0; +#X obj 570 381 triangle; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 121 174 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 91 191 pd gemwin; +#X connect 0 0 3 1; +#X connect 1 0 2 0; +#X connect 2 0 6 0; +#X connect 2 1 5 1; +#X connect 3 0 4 0; +#X connect 5 0 8 0; +#X connect 6 0 3 0; +#X connect 8 0 7 0; +#X connect 9 0 1 0; +#X connect 10 0 5 0; +#X connect 11 0 12 0; +#X connect 12 0 13 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 16 0 17 0; diff --git a/Gem/examples/07.texture/10.framebuffer.pd b/Gem/examples/07.texture/10.framebuffer.pd new file mode 100644 index 0000000..7717e47 --- /dev/null +++ b/Gem/examples/07.texture/10.framebuffer.pd @@ -0,0 +1,195 @@ +#N canvas 446 42 834 667 10; +#X obj 202 83 gemhead 20; +#X obj 491 166 gemhead; +#X floatatom 532 391 5 0 0 0 - - -; +#X floatatom 481 392 5 0 0 0 - - -; +#X obj 581 389 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 +-262144 -1 -1 0 256; +#X msg 286 97 dim 320 240; +#X msg 286 117 dim 256 256; +#X obj 278 634 rotateXYZ; +#X floatatom 334 617 5 0 0 0 - - -; +#X floatatom 346 636 5 0 0 0 - - -; +#X floatatom 295 617 5 0 0 0 - - -; +#X floatatom 299 443 5 0 0 0 - - -; +#X floatatom 348 443 5 0 0 0 - - -; +#X floatatom 250 443 5 0 0 0 - - -; +#X obj 278 333 separator; +#X obj -56 319 gemhead 1; +#X obj -56 339 world_light; +#X msg 286 137 dim 512 512; +#X floatatom 507 322 5 0 0 0 - - -; +#X floatatom 582 333 5 0 0 0 - - -; +#X msg 289 45 color 0 0 1 0; +#X msg 286 157 dim 1024 1024; +#X msg 289 69 color 0 0 0 0; +#X obj 203 507 rotateXYZ; +#X floatatom 226 490 5 0 0 0 - - -; +#X floatatom 269 490 5 0 0 0 - - -; +#X floatatom 318 496 5 0 0 0 - - -; +#X msg -21 72 color 0 0 0 0; +#X obj 278 554 t a b; +#X msg -33 51 color 0 1 1 0; +#X msg -12 121 lighting \$1; +#X obj -12 100 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X floatatom 554 433 5 0 0 0 - - -; +#X obj 202 302 t a a; +#X obj 202 355 color 1 1 1; +#X obj 203 413 pix_texture; +#X msg 406 94 mode \$1; +#X obj 406 67 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 203 467 translateXYZ -0.5 -0.8 -1; +#X msg 229 374 open data/fractal.JPG; +#X floatatom 376 507 5 0 0 0 - - -; +#X msg 289 10 type FLOAT; +#X obj 460 131 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X floatatom 342 281 5 0 0 0 - - -; +#X obj 203 527 sphere 0.4; +#X obj 491 357 rotateXYZ 28 0 200; +#X obj 491 431 square 2; +#X obj 491 410 translateXYZ 0 0 1.53; +#X obj 202 281 translateXYZ 0 0 -4; +#X obj 278 681 cube 0.57; +#X obj 278 527 translateXYZ 2 0 -1; +#X obj 202 135 color 0 1 0; +#X obj 179 195 cnv 15 400 60 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 202 200 gemframebuffer; +#X obj 491 233 pix_texture; +#X obj -56 410 gemhead; +#X obj -56 459 teapot 0.3; +#X obj -56 435 translateXYZ -3 3 0; +#X text -52 726 this example renders a scene (cube and sphere) into +a framebuffer \, which is then used as a texture onto a square. teapot +and square live in a "meta"-world in relation to cube and sphere.; +#X obj 362 575 % 360; +#X obj 308 575 i; +#X obj 491 265 t a b; +#X obj 567 286 + 1; +#X obj 334 575 + 5; +#X obj 521 286 i 200; +#X obj 595 286 % 3600; +#X obj 582 313 / 10; +#X text 435 65 <-- click me to change between normalized(0) and rectangle(1) +textures.; +#X text 399 717 you need framebuffer support on your gfx-card; +#X text 395 738 (and its driver!); +#X obj 202 394 pix_image ../data/fractal.JPG; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore -3 160 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore -33 177 pd gemwin; +#X connect 0 0 51 0; +#X connect 1 0 54 0; +#X connect 2 0 47 2; +#X connect 3 0 47 1; +#X connect 4 0 47 3; +#X connect 5 0 53 0; +#X connect 6 0 53 0; +#X connect 7 0 49 0; +#X connect 8 0 7 2; +#X connect 9 0 7 3; +#X connect 10 0 7 1; +#X connect 11 0 38 2; +#X connect 12 0 38 3; +#X connect 13 0 38 1; +#X connect 14 0 50 0; +#X connect 15 0 16 0; +#X connect 17 0 53 0; +#X connect 18 0 45 1; +#X connect 19 0 45 3; +#X connect 20 0 53 0; +#X connect 21 0 53 0; +#X connect 22 0 53 0; +#X connect 23 0 44 0; +#X connect 24 0 23 1; +#X connect 25 0 23 2; +#X connect 26 0 23 3; +#X connect 27 0 72 0; +#X connect 28 0 7 0; +#X connect 28 1 60 0; +#X connect 29 0 72 0; +#X connect 30 0 72 0; +#X connect 31 0 30 0; +#X connect 32 0 46 1; +#X connect 33 0 34 0; +#X connect 33 1 14 0; +#X connect 34 0 70 0; +#X connect 35 0 38 0; +#X connect 36 0 53 0; +#X connect 37 0 36 0; +#X connect 38 0 23 0; +#X connect 39 0 70 0; +#X connect 40 0 50 3; +#X connect 41 0 53 0; +#X connect 42 0 1 0; +#X connect 43 0 48 3; +#X connect 45 0 47 0; +#X connect 47 0 46 0; +#X connect 48 0 33 0; +#X connect 50 0 28 0; +#X connect 51 0 53 0; +#X connect 53 0 48 0; +#X connect 53 1 54 1; +#X connect 54 0 61 0; +#X connect 55 0 57 0; +#X connect 57 0 56 0; +#X connect 59 0 60 1; +#X connect 60 0 8 0; +#X connect 60 0 63 0; +#X connect 61 0 45 0; +#X connect 61 1 64 0; +#X connect 62 0 65 0; +#X connect 63 0 59 0; +#X connect 64 0 62 0; +#X connect 64 0 66 0; +#X connect 65 0 64 1; +#X connect 66 0 19 0; +#X connect 70 0 35 0; +#X connect 71 0 72 0; diff --git a/Gem/examples/07.texture/11.multiples_gemhead_in_a_framebuffer.pd b/Gem/examples/07.texture/11.multiples_gemhead_in_a_framebuffer.pd new file mode 100644 index 0000000..69ef470 --- /dev/null +++ b/Gem/examples/07.texture/11.multiples_gemhead_in_a_framebuffer.pd @@ -0,0 +1,116 @@ +#N canvas 39 70 764 536 10; +#X obj 108 279 cnv 15 300 80 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 112 112 cnv 15 300 60 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 116 50 gemhead; +#X obj 112 440 translateXYZ 1 0 0; +#X obj 260 443 translateXYZ -1 0 0; +#X obj 260 483 circle; +#X obj 116 239 rotateXYZ; +#X floatatom 156 222 5 0 0 0 - - -; +#X floatatom 194 423 5 0 0 0 - - -; +#X floatatom 346 426 5 0 0 0 - - -; +#X obj 322 50 gemhead; +#X floatatom 342 71 5 0 0 0 - - -; +#X obj 116 114 gemframebuffer; +#X obj 112 483 triangle; +#X obj 322 147 pix_texture; +#X obj 116 197 translateXYZ 0 0 -4; +#X obj 260 463 color 1 0 0; +#X obj 322 89 rotateXYZ; +#X obj 322 195 square 3; +#X obj 148 282 s gemfbhead_trigger1; +#X obj 116 259 t b b; +#X obj 112 336 r gemfbhead_trigger1; +#X obj 112 420 gemhead; +#X msg 44 389 0; +#X obj 44 366 loadbang; +#X obj 260 423 gemhead; +#X obj 260 336 r gemfbhead_trigger2; +#X obj 116 306 s gemfbhead_trigger2; +#X text 203 221 <- rotate all the render chain; +#X text 201 238 (it change even after a new gemhead \, this is not +very intuitive); +#X text 323 283 <- continue the render chain. The gemhead did not start +a new gemchain \, because it is banged during a frambuffer rendering +; +#X text 113 10 This example show how to draw multiples gemhead in a +single framebuffer; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 625 90 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 1 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 595 107 pd gemwin; +#X msg 595 63 color \$1 \$1 \$1; +#X obj 595 44 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +0.5; +#X connect 2 0 12 0; +#X connect 3 0 13 0; +#X connect 4 0 16 0; +#X connect 6 0 20 0; +#X connect 7 0 6 2; +#X connect 8 0 3 2; +#X connect 9 0 4 2; +#X connect 10 0 17 0; +#X connect 11 0 17 1; +#X connect 12 0 15 0; +#X connect 12 1 14 1; +#X connect 14 0 18 0; +#X connect 15 0 6 0; +#X connect 16 0 5 0; +#X connect 17 0 14 0; +#X connect 20 0 27 0; +#X connect 20 1 19 0; +#X connect 21 0 22 0; +#X connect 22 0 3 0; +#X connect 23 0 22 0; +#X connect 23 0 25 0; +#X connect 24 0 23 0; +#X connect 25 0 4 0; +#X connect 26 0 25 0; +#X connect 32 0 33 0; +#X connect 34 0 33 0; +#X connect 35 0 34 0; diff --git a/Gem/examples/08.io/01.Mouse.pd b/Gem/examples/08.io/01.Mouse.pd new file mode 100644 index 0000000..fcf7d93 --- /dev/null +++ b/Gem/examples/08.io/01.Mouse.pd @@ -0,0 +1,84 @@ +#N canvas 396 160 600 500 10; +#X text 303 95 left button; +#X obj 302 193 spigot; +#X floatatom 391 324 0 0 0 0 - - -; +#X obj 193 275 gemhead; +#X floatatom 302 322 0 0 0 0 - - -; +#X obj 193 401 square; +#X text 109 29 this demonstrates how to use gemmouse; +#X obj 193 304 color 1 0 0; +#X obj 193 358 translateXYZ; +#X obj 302 262 - 1; +#X obj 302 294 * 4; +#X obj 391 189 spigot; +#X text 272 66 the outputs of gemmouse are:; +#X text 191 94 x pos; +#X text 247 94 y pos; +#X text 396 95 middle button; +#X text 499 96 right button; +#X obj 391 267 - 1; +#X obj 391 296 * -4; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 64 238 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 1 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 34 255 pd gemwin; +#X obj 338 143 gemmouse 2 2; +#X connect 1 0 9 0; +#X connect 2 0 8 2; +#X connect 3 0 7 0; +#X connect 4 0 8 1; +#X connect 7 0 8 0; +#X connect 8 0 5 0; +#X connect 9 0 10 0; +#X connect 10 0 4 0; +#X connect 11 0 17 0; +#X connect 17 0 18 0; +#X connect 18 0 2 0; +#X connect 19 0 20 0; +#X connect 21 0 1 0; +#X connect 21 1 11 0; +#X connect 21 2 11 1; +#X connect 21 2 1 1; diff --git a/Gem/examples/08.io/02.Tablet.pd b/Gem/examples/08.io/02.Tablet.pd new file mode 100644 index 0000000..c633ee7 --- /dev/null +++ b/Gem/examples/08.io/02.Tablet.pd @@ -0,0 +1,124 @@ +#N canvas 308 107 688 553 10; +#X msg 197 266 bang; +#X obj 375 326 spigot; +#X floatatom 448 437 0 0 0; +#X obj 12 444 gemwin; +#X msg 26 150 create; +#X obj 197 299 gemhead; +#X msg 38 179 destroy; +#X msg 63 227 1; +#X msg 70 251 0; +#X floatatom 375 438 0 0 0; +#X obj 197 358 translateXYZ; +#X obj 375 382 - 1; +#X obj 375 410 * 4; +#X obj 448 321 spigot; +#X text 120 71 x pos; +#X text 171 73 y pos; +#X obj 400 103 gemtablet; +#X msg 61 321 bang; +#X obj 197 439 alpha; +#X text 114 55 the outputs of gemtablet are:; +#X text 229 75 pressure; +#X text 298 76 azimuth; +#X text 364 75 altitude; +#X text 439 75 twist; +#X text 114 26 Be aware that your tablet might not have all of the +rotation variables.; +#X obj 266 160 / 90; +#X obj 197 329 colorRGB 1 0 0; +#X obj 375 354 / 200; +#X obj 448 352 / 200; +#X obj 448 381 - 1; +#X obj 448 409 * -4; +#X text 117 7 this demonstrates how to use gemtablet; +#X obj 400 265 s xPos; +#X obj 409 238 s yPos; +#X obj 375 295 r xPos; +#X obj 447 294 r yPos; +#X obj 458 139 s lBut; +#X obj 501 290 r lBut; +#X obj 419 213 s press; +#X obj 234 492 r press; +#X obj 290 280 r press; +#X obj 429 187 s azimuth; +#X obj 438 162 s altitude; +#X obj 236 385 r azimuth; +#X obj 266 132 r altitude; +#X text 45 298 clear screen; +#X obj 197 408 rotate 0 0 1; +#X obj 197 518 square; +#X obj 197 471 scaleXYZ 1 0.05 1; +#X obj 219 190 t b f; +#X obj 220 241 - 1; +#X msg 219 215 1; +#X obj 290 303 / 6; +#X text 527 74 middle; +#X text 488 75 left; +#X text 581 74 right; +#X obj 514 140 s mBut; +#X obj 570 139 s rBut; +#X obj 553 289 r mBut; +#X obj 605 289 r rBut; +#N canvas 421 80 290 179 Gem.init 0; +#X obj 83 30 loadbang; +#X msg 161 76 reset; +#X obj 45 146 outlet; +#X obj 88 51 t b b; +#X msg 45 75 dimen 400 400; +#X msg 90 114 buffer 1; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 0 4 0; +#X connect 3 0 5 0; +#X connect 3 1 1 0; +#X connect 4 0 2 0; +#X connect 5 0 2 0; +#X restore 61 417 pd Gem.init; +#X connect 0 0 5 0; +#X connect 1 0 0 0; +#X connect 1 0 27 0; +#X connect 2 0 10 2; +#X connect 4 0 3 0; +#X connect 5 0 26 0; +#X connect 6 0 3 0; +#X connect 7 0 3 0; +#X connect 8 0 3 0; +#X connect 9 0 10 1; +#X connect 10 0 46 0; +#X connect 11 0 12 0; +#X connect 12 0 9 0; +#X connect 13 0 28 0; +#X connect 16 0 32 0; +#X connect 16 1 33 0; +#X connect 16 2 38 0; +#X connect 16 3 41 0; +#X connect 16 4 42 0; +#X connect 16 6 36 0; +#X connect 16 7 56 0; +#X connect 16 8 57 0; +#X connect 17 0 3 0; +#X connect 18 0 48 0; +#X connect 25 0 49 0; +#X connect 25 0 26 3; +#X connect 26 0 10 0; +#X connect 27 0 11 0; +#X connect 28 0 29 0; +#X connect 29 0 30 0; +#X connect 30 0 2 0; +#X connect 34 0 1 0; +#X connect 35 0 13 0; +#X connect 37 0 13 1; +#X connect 37 0 1 1; +#X connect 39 0 47 1; +#X connect 40 0 52 0; +#X connect 43 0 46 1; +#X connect 44 0 25 0; +#X connect 46 0 18 0; +#X connect 48 0 47 0; +#X connect 49 0 51 0; +#X connect 49 1 50 1; +#X connect 50 0 26 1; +#X connect 51 0 50 0; +#X connect 52 0 26 4; +#X connect 60 0 3 0; diff --git a/Gem/examples/08.io/03.Orb.pd b/Gem/examples/08.io/03.Orb.pd new file mode 100644 index 0000000..6e50d58 --- /dev/null +++ b/Gem/examples/08.io/03.Orb.pd @@ -0,0 +1,51 @@ +#N canvas 396 160 600 500 10; +#X text 52 292 x pos; +#X text 94 292 y pos; +#X obj 234 146 gemorb 2; +#X floatatom 82 267 0 0 0; +#X floatatom 117 267 0 0 0; +#X floatatom 152 267 0 0 0; +#X floatatom 202 271 0 0 0; +#X floatatom 237 271 0 0 0; +#X floatatom 272 271 0 0 0; +#X text 133 90 the outputs of gemorb are:; +#X text 134 292 z pos; +#X text 197 293 x rot; +#X text 239 293 y rot; +#X text 279 293 z rot; +#X obj 91 230 unpack 0 0 0; +#X obj 204 230 unpack 0 0 0; +#X floatatom 333 270 0 0 0; +#X floatatom 368 270 0 0 0; +#X floatatom 403 270 0 0 0; +#X obj 385 231 unpack 0 0 0 0 0 0; +#X floatatom 448 271 0 0 0; +#X floatatom 483 271 0 0 0; +#X floatatom 518 271 0 0 0; +#X text 133 111 position; +#X text 224 110 rotation; +#X text 317 109 button status; +#X text 340 290 a; +#X text 377 293 b; +#X text 411 290 c; +#X text 457 293 d; +#X text 491 291 e; +#X text 529 295 f; +#X text 94 56 The argument should be the serial port number of the +orb; +#X text 255 17 gemorb; +#X connect 2 0 14 0; +#X connect 2 1 15 0; +#X connect 2 2 19 0; +#X connect 14 0 3 0; +#X connect 14 1 4 0; +#X connect 14 2 5 0; +#X connect 15 0 6 0; +#X connect 15 1 7 0; +#X connect 15 2 8 0; +#X connect 19 0 16 0; +#X connect 19 1 17 0; +#X connect 19 2 18 0; +#X connect 19 3 20 0; +#X connect 19 4 21 0; +#X connect 19 5 22 0; diff --git a/Gem/examples/08.io/04.UseOrb.pd b/Gem/examples/08.io/04.UseOrb.pd new file mode 100644 index 0000000..cecdfa4 --- /dev/null +++ b/Gem/examples/08.io/04.UseOrb.pd @@ -0,0 +1,86 @@ +#N canvas 396 160 600 366 10; +#X obj 41 324 gemwin; +#X msg 70 111 create; +#X obj 223 109 gemhead; +#X msg 76 138 destroy; +#X msg 96 184 1; +#X msg 96 208 0; +#X obj 223 260 square; +#X text 109 29 this demonstrates how to create a red square; +#X msg 467 228 draw line; +#X obj 338 68 gemorb 2; +#X obj 223 227 rotateXYZ; +#X obj 367 109 unpack 0 0 0; +#X obj 223 195 color; +#X obj 467 158 unpack 0 0 0; +#X msg 506 208 draw fill; +#X obj 467 184 sel 1; +#X obj 506 184 sel 1; +#N canvas 91 174 290 179 Gem.init 0; +#X obj 83 30 loadbang; +#X msg 161 76 reset; +#X obj 45 107 outlet; +#X msg 45 75 dimen 300 300; +#X obj 88 51 t b b; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 3 0 2 0; +#X connect 4 0 3 0; +#X connect 4 1 1 0; +#X restore 78 297 pd Gem.init; +#X obj 367 136 * 0.25; +#X obj 393 156 * 0.25; +#X obj 411 179 * 0.25; +#N canvas 0 0 450 300 process 0; +#X obj 185 63 unpack 0 0 0; +#X obj 185 199 pack 0 0 0; +#X obj 185 107 / 500; +#X obj 185 127 abs; +#X obj 185 147 + 0.1; +#X obj 235 107 / 500; +#X obj 235 127 abs; +#X obj 235 147 + 0.1; +#X obj 285 107 / 500; +#X obj 285 127 abs; +#X obj 285 147 + 0.1; +#X obj 185 226 outlet; +#X obj 185 36 inlet; +#X connect 0 0 2 0; +#X connect 0 1 5 0; +#X connect 0 2 8 0; +#X connect 1 0 11 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 1 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 7 0 1 1; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 10 0 1 2; +#X connect 12 0 0 0; +#X restore 338 89 pd process; +#X connect 1 0 0 0; +#X connect 2 0 12 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X connect 8 0 6 0; +#X connect 9 0 21 0; +#X connect 9 1 11 0; +#X connect 9 2 13 0; +#X connect 10 0 6 0; +#X connect 11 0 18 0; +#X connect 11 1 19 0; +#X connect 11 2 20 0; +#X connect 12 0 10 0; +#X connect 13 0 15 0; +#X connect 13 1 16 0; +#X connect 14 0 6 0; +#X connect 15 0 8 0; +#X connect 16 0 14 0; +#X connect 17 0 0 0; +#X connect 18 0 10 1; +#X connect 19 0 10 2; +#X connect 20 0 10 3; +#X connect 21 0 12 1; diff --git a/Gem/examples/09.openGL/01.primQuad.pd b/Gem/examples/09.openGL/01.primQuad.pd new file mode 100644 index 0000000..da187b2 --- /dev/null +++ b/Gem/examples/09.openGL/01.primQuad.pd @@ -0,0 +1,107 @@ +#N canvas 50 20 769 629 10; +#X obj 469 17 gemhead; +#X obj 468 504 GEMglEnd; +#X obj 469 233 GEMglColor4f 1 0 0 0; +#X obj 469 254 GEMglVertex3f -1 0 0; +#X obj 469 366 GEMglColor3f 0 1 0; +#X obj 468 387 GEMglVertex3f 1 0 0; +#X obj 469 307 GEMglColor3f 0 0 1; +#X obj 469 330 GEMglVertex3f 0 -1 0; +#X floatatom 502 45 5 0 0 0 - - -; +#X obj 469 77 GEMglRotatef 0 1 1 1; +#X obj 605 127 GLdefine GL_SMOOTH; +#X obj 605 105 loadbang; +#X obj 605 147 loadbang; +#X obj 605 169 GLdefine GL_POLYGON; +#X obj 469 187 GEMglBegin; +#X obj 469 145 GEMglShadeModel; +#X obj 621 487 loadbang; +#X obj 468 527 GEMglShadeModel; +#X obj 621 509 GLdefine GL_FLAT; +#X text 52 17 this is an example how to use Gem as an openGL-wrapper: +; +#X text 47 79 you can use "any" openGL-command (like "glBegin") as +a Gem-object with a prepended "GEM" (like [GEMglBegin]); +#X text 32 378 to make use of GL-constants (like "GL_TRIANGLE") \, +use the object [GLdefine] \, that maps symbols to their corresponding +values.; +#X obj 468 436 GEMglColor3fv 1 1 0; +#X obj 468 459 GEMglVertex3fv 0 1 0; +#X msg 613 413 1 0 1; +#X msg 655 413 1 1 0; +#X floatatom 650 260 3 0 100 0 - - -; +#X obj 650 281 * 0.01; +#X msg 672 103 bang; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 104 170 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 74 187 pd gemwin; +#X connect 0 0 9 0; +#X connect 1 0 17 0; +#X connect 2 0 3 0; +#X connect 3 0 6 0; +#X connect 4 0 5 0; +#X connect 5 0 22 0; +#X connect 6 0 7 0; +#X connect 7 0 4 0; +#X connect 8 0 9 1; +#X connect 9 0 15 0; +#X connect 10 0 15 1; +#X connect 11 0 10 0; +#X connect 12 0 13 0; +#X connect 13 0 14 1; +#X connect 14 0 2 0; +#X connect 15 0 14 0; +#X connect 16 0 18 0; +#X connect 18 0 17 1; +#X connect 22 0 23 0; +#X connect 23 0 1 0; +#X connect 24 0 22 1; +#X connect 25 0 22 1; +#X connect 26 0 27 0; +#X connect 27 0 6 2; +#X connect 28 0 10 0; +#X connect 29 0 30 0; diff --git a/Gem/examples/09.openGL/02.displayList.pd b/Gem/examples/09.openGL/02.displayList.pd new file mode 100644 index 0000000..d6ec2e6 --- /dev/null +++ b/Gem/examples/09.openGL/02.displayList.pd @@ -0,0 +1,185 @@ +#N canvas 76 58 1137 553 10; +#X obj 366 251 GEMglGenLists 1; +#X obj 336 418 GEMglNewList; +#X obj 147 432 GEMglCallList; +#N canvas 0 0 450 300 once 0; +#X obj 91 62 inlet; +#X obj 91 266 outlet; +#X obj 91 150 spigot 1; +#X obj 91 175 t a b; +#X msg 121 197 0; +#X obj 298 57 inlet open; +#X obj 298 92 t b; +#X msg 142 128 1; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 1 0; +#X connect 3 1 4 0; +#X connect 4 0 2 1; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 7 0 2 1; +#X restore 366 229 pd once; +#N canvas 0 0 450 300 once 0; +#X obj 91 62 inlet; +#X obj 91 266 outlet; +#X obj 91 150 spigot 1; +#X obj 91 175 t a b; +#X msg 121 197 0; +#X obj 298 57 inlet open; +#X obj 298 92 t b; +#X msg 142 128 1; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 1 0; +#X connect 3 1 4 0; +#X connect 4 0 2 1; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 7 0 2 1; +#X restore 336 392 pd once; +#X obj 549 281 t b f; +#X obj 415 374 loadbang; +#X obj 415 393 GLdefine GL_COMPILE; +#X msg 417 199 bang; +#X obj 336 508 GEMglEndList; +#X obj 336 445 t a a; +#X obj 366 466 separator; +#X obj 336 173 gemhead 1; +#X obj 336 198 t a a; +#X obj 466 271 t f b; +#X obj 345 298 t f f; +#X text 26 21 this is an example of how to use Gem's openGL-wrapper-objects +to speed up things; +#X obj 147 248 gemhead; +#X obj 147 311 translateXYZ; +#X obj 147 364 rotateXYZ; +#X floatatom 549 236 5 -2 2 2 pos - -; +#X floatatom 199 282 5 -4 4 0 - - -; +#X floatatom 185 339 5 0 0 0 - - -; +#X text 346 25 1 generate a displaylist with [GEMglGenLists]; +#X text 376 38 you should do this only once; +#X text 346 65 2 compile what is between [GEMglNewList] and [GEMglEndList] +; +#X text 377 82 you should do this \, whenever a parameter of the display-list +has changed; +#X text 346 125 3 call the displaylist with [GEMglCallList]; +#N canvas 0 0 450 300 weird 0; +#X obj 37 9 inlet gemlist; +#X obj 37 125 cylinder; +#X obj 190 30 inlet dist; +#X obj 360 30 inlet tearot; +#X obj 67 204 rotate 0 0 1 0; +#X obj 67 231 teapot 0.2; +#X obj 67 173 translate 1 0 0 2; +#X obj 67 144 color 1 0 0; +#X obj 37 103 color 1 1 1 0.5; +#X obj 37 81 alpha; +#X obj 37 34 t a a; +#X obj 67 56 separator; +#X connect 0 0 10 0; +#X connect 2 0 6 1; +#X connect 3 0 4 1; +#X connect 4 0 5 0; +#X connect 6 0 4 0; +#X connect 7 0 6 0; +#X connect 8 0 1 0; +#X connect 9 0 8 0; +#X connect 10 0 9 0; +#X connect 10 1 11 0; +#X connect 11 0 7 0; +#X restore 366 487 pd weird thing; +#X msg 496 318 bang; +#X floatatom 660 269 5 0 0 2 rot - -; +#X text 535 320 recompile the display-list; +#X obj 147 400 spigot; +#X obj 249 365 t b f; +#X msg 202 400 1; +#X text 461 190 CLICK ME to generate the display-list \, once the rendering +is turned on; +#X text 598 231 when you change this \, the display-list will be recompiled +; +#X text 706 258 when you change this \, the display-list will NOT be +recompiled. You have to do that by hand!; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 119 99 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 89 116 pd gemwin; +#X connect 0 1 14 0; +#X connect 1 0 10 0; +#X connect 3 0 0 0; +#X connect 4 0 1 0; +#X connect 5 0 29 0; +#X connect 5 1 28 1; +#X connect 6 0 7 0; +#X connect 7 0 1 2; +#X connect 8 0 3 1; +#X connect 10 0 9 0; +#X connect 10 1 11 0; +#X connect 11 0 28 0; +#X connect 12 0 13 0; +#X connect 13 0 4 0; +#X connect 13 1 3 0; +#X connect 14 0 15 0; +#X connect 14 1 29 0; +#X connect 15 0 33 0; +#X connect 15 1 1 1; +#X connect 17 0 18 0; +#X connect 18 0 19 0; +#X connect 19 0 32 0; +#X connect 20 0 5 0; +#X connect 21 0 18 1; +#X connect 21 0 18 2; +#X connect 22 0 19 1; +#X connect 22 0 19 2; +#X connect 22 0 19 3; +#X connect 29 0 4 1; +#X connect 30 0 28 2; +#X connect 32 0 2 0; +#X connect 33 0 34 0; +#X connect 33 1 2 1; +#X connect 34 0 32 1; +#X connect 38 0 39 0; diff --git a/Gem/examples/09.openGL/03.stencilBuffer.pd b/Gem/examples/09.openGL/03.stencilBuffer.pd new file mode 100644 index 0000000..44f1e61 --- /dev/null +++ b/Gem/examples/09.openGL/03.stencilBuffer.pd @@ -0,0 +1,251 @@ +#N canvas 431 30 849 872 10; +#X obj 39 330 GEMglEnable; +#X floatatom 125 332 5 0 0 0 - - -; +#X obj 111 282 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 111 305 GLdefine GL_STENCIL_TEST; +#X obj 129 280 loadbang; +#X obj 104 382 GLdefine GL_STENCIL_BUFFER_BIT; +#X obj 166 361 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 119 407 5 0 0 0 - - -; +#X obj 104 359 loadbang; +#X obj 39 249 GEMglClearStencil 0; +#X obj 39 407 GEMglClear; +#X obj 39 33 gemhead 45; +#X obj 39 506 GEMglStencilFunc; +#X msg 146 480 1; +#X obj 75 436 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 74 459 GLdefine GL_ALWAYS; +#X obj 96 436 loadbang; +#X floatatom 100 480 5 0 0 0 - - -; +#X obj 39 586 GEMglStencilOp; +#X floatatom 156 581 5 0 0 0 - - -; +#X obj 70 486 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 70 552 GLdefine GL_REPLACE; +#X obj 95 530 loadbang; +#X obj 239 743 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 170 742 loadbang; +#X obj 39 810 GEMglClear; +#X floatatom 156 812 5 0 0 0 - - -; +#X obj 145 788 GLdefine GL_DEPTH_BUFFER_BIT; +#X obj 126 743 t b b; +#X obj 490 287 GEMglStencilFunc; +#X msg 597 263 1; +#X obj 525 220 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 546 218 loadbang; +#X floatatom 535 264 5 0 0 0 - - -; +#X obj 525 241 GLdefine GL_NOTEQUAL; +#X obj 490 396 color 1 0 0; +#X obj 490 659 GEMglStencilFunc; +#X msg 597 634 1; +#X obj 525 594 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 547 592 loadbang; +#X floatatom 536 638 5 0 0 0 - - -; +#X obj 490 709 rotateXYZ 0 0 45; +#X obj 525 615 GLdefine GL_EQUAL; +#X obj 490 685 color 1 1 0; +#X obj 126 766 GLdefine GL_COLOR_BUFFER_BIT; +#X obj 490 365 GEMglStencilOp; +#X floatatom 601 364 5 0 0 0 - - -; +#X obj 521 310 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 544 307 loadbang; +#X obj 521 331 GLdefine GL_KEEP; +#X floatatom 58 144 5 0 0 0 - - -; +#X floatatom 97 144 5 0 0 0 - - -; +#X obj 39 187 colorRGB 0 0 1; +#X obj 126 810 |; +#X floatatom 587 830 5 0 0 0 - - -; +#X obj 569 782 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 569 805 GLdefine GL_STENCIL_TEST; +#X obj 587 780 loadbang; +#X obj 490 830 GEMglDisable; +#X text 67 212 allow \, clear and configure stencil buffer; +#X obj 39 695 circle 1.5; +#X text 131 685 draw in all buffer; +#X text 104 840 clear color and depth buffer; +#X text 488 189 draw where the stencil buffer is not 1; +#X obj 490 423 square 3; +#X text 522 565 draw where the stencil buffer is 1; +#X obj 529 21 gemhead 10; +#X floatatom 562 41 5 0 0 0 - - -; +#X floatatom 602 41 5 0 0 0 - - -; +#X floatatom 642 41 5 0 0 0 - - -; +#X obj 529 87 world_light; +#X obj 529 62 rotateXYZ 0 0 0; +#X obj 39 167 rotateXYZ; +#X text 151 144 <- play with this.; +#X text 238 858 (c) Cyrille Henry 2006; +#X obj 39 56 t a b; +#X obj 74 78 i; +#X obj 122 56 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 103 78 + 0; +#X obj 74 123 t f f; +#X obj 74 100 spigot; +#X obj 104 673 teapot 1.5; +#X obj 39 657 spigot; +#X obj 104 654 spigot; +#X obj 79 610 loadbang; +#X obj 147 632 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X obj 82 634 == 0; +#X msg 147 611 0; +#X obj 131 77 % 360; +#X obj 490 754 sphere 1.2 25; +#X obj 36 6 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X obj 118 113 outlet; +#X msg 118 81 reset \, lighting 1; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X restore 372 38 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 342 55 pd gemwin; +#X connect 0 0 10 0; +#X connect 2 0 3 0; +#X connect 3 0 1 0; +#X connect 3 0 0 1; +#X connect 4 0 3 0; +#X connect 5 0 7 0; +#X connect 5 0 10 1; +#X connect 6 0 5 0; +#X connect 8 0 5 0; +#X connect 9 0 0 0; +#X connect 10 0 12 0; +#X connect 11 0 75 0; +#X connect 12 0 18 0; +#X connect 13 0 12 3; +#X connect 13 0 12 2; +#X connect 14 0 15 0; +#X connect 14 0 13 0; +#X connect 15 0 12 1; +#X connect 15 0 17 0; +#X connect 16 0 13 0; +#X connect 16 0 15 0; +#X connect 18 0 82 0; +#X connect 18 0 83 0; +#X connect 20 0 21 0; +#X connect 21 0 19 0; +#X connect 21 0 18 1; +#X connect 21 0 18 2; +#X connect 21 0 18 3; +#X connect 22 0 20 0; +#X connect 23 0 28 0; +#X connect 24 0 28 0; +#X connect 25 0 29 0; +#X connect 27 0 53 1; +#X connect 28 0 44 0; +#X connect 28 1 27 0; +#X connect 29 0 45 0; +#X connect 30 0 29 3; +#X connect 30 0 29 2; +#X connect 31 0 34 0; +#X connect 32 0 30 0; +#X connect 32 0 34 0; +#X connect 34 0 29 1; +#X connect 34 0 33 0; +#X connect 35 0 64 0; +#X connect 36 0 43 0; +#X connect 37 0 36 3; +#X connect 37 0 36 2; +#X connect 38 0 42 0; +#X connect 39 0 37 0; +#X connect 39 0 42 0; +#X connect 41 0 89 0; +#X connect 42 0 36 1; +#X connect 42 0 40 0; +#X connect 43 0 41 0; +#X connect 44 0 53 0; +#X connect 45 0 35 0; +#X connect 47 0 49 0; +#X connect 48 0 47 0; +#X connect 49 0 46 0; +#X connect 49 0 45 1; +#X connect 49 0 45 2; +#X connect 49 0 45 3; +#X connect 50 0 72 1; +#X connect 51 0 72 2; +#X connect 52 0 9 0; +#X connect 53 0 26 0; +#X connect 53 0 25 1; +#X connect 55 0 56 0; +#X connect 56 0 54 0; +#X connect 56 0 58 1; +#X connect 57 0 56 0; +#X connect 60 0 25 0; +#X connect 64 0 36 0; +#X connect 66 0 71 0; +#X connect 67 0 71 1; +#X connect 68 0 71 2; +#X connect 69 0 71 3; +#X connect 71 0 70 0; +#X connect 72 0 52 0; +#X connect 75 0 72 0; +#X connect 75 1 76 0; +#X connect 76 0 78 0; +#X connect 76 0 80 0; +#X connect 77 0 78 1; +#X connect 77 0 80 1; +#X connect 78 0 88 0; +#X connect 79 0 50 0; +#X connect 79 1 51 0; +#X connect 80 0 79 0; +#X connect 81 0 25 0; +#X connect 82 0 60 0; +#X connect 83 0 81 0; +#X connect 84 0 87 0; +#X connect 85 0 83 1; +#X connect 85 0 86 0; +#X connect 86 0 82 1; +#X connect 87 0 85 0; +#X connect 88 0 76 1; +#X connect 89 0 58 0; +#X connect 90 0 11 0; +#X connect 91 0 92 0; diff --git a/Gem/examples/09.openGL/04.clearZ.pd b/Gem/examples/09.openGL/04.clearZ.pd new file mode 100644 index 0000000..e4947ff --- /dev/null +++ b/Gem/examples/09.openGL/04.clearZ.pd @@ -0,0 +1,27 @@ +#N canvas 0 0 710 401 10; +#X obj 111 162 loadbang; +#X obj 44 209 GEMglClear; +#X obj 111 186 GLdefine GL_DEPTH_BUFFER_BIT; +#X obj 173 164 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 44 75 gemhead; +#X obj 44 255 translateXYZ 0 0 -2; +#X obj 339 129 gemwin; +#X msg 352 101 create \, 1; +#X obj 44 281 color 1 0 0; +#X obj 44 126 circle 1; +#X obj 44 310 circle 1; +#X text 206 11 Clear Depth Buffer; +#X text 205 352 this is related to the depth object that turn off depth +buffer test \, but not quite the same...; +#X text 176 213 <- clear Depth buffer \, so that you can draw anything +even if it is behind something else; +#X connect 0 0 2 0; +#X connect 1 0 5 0; +#X connect 2 0 1 1; +#X connect 3 0 2 0; +#X connect 4 0 9 0; +#X connect 5 0 8 0; +#X connect 7 0 6 0; +#X connect 8 0 10 0; +#X connect 9 0 1 0; diff --git a/Gem/examples/09.openGL/05.load_identity_matrix.pd b/Gem/examples/09.openGL/05.load_identity_matrix.pd new file mode 100644 index 0000000..2db138a --- /dev/null +++ b/Gem/examples/09.openGL/05.load_identity_matrix.pd @@ -0,0 +1,74 @@ +#N canvas 0 0 784 537 10; +#X obj 64 47 gemhead; +#X obj 96 94 gemlist_info; +#X floatatom 177 138 5 0 0 0 - - -; +#X floatatom 217 138 5 0 0 0 - - -; +#X floatatom 258 138 5 0 0 0 - - -; +#X obj 177 115 unpack f f f; +#X text 185 97 position; +#X obj 64 71 t a a; +#X obj 64 328 GEMglLoadIdentity; +#X obj 64 204 translateXYZ 2 1 3; +#X obj 96 254 gemlist_info; +#X floatatom 177 298 5 0 0 0 - - -; +#X floatatom 217 298 5 0 0 0 - - -; +#X floatatom 258 298 5 0 0 0 - - -; +#X obj 177 275 unpack f f f; +#X text 185 257 position; +#X obj 64 231 t a a; +#X obj 96 384 gemlist_info; +#X floatatom 177 428 5 0 0 0 - - -; +#X floatatom 217 428 5 0 0 0 - - -; +#X floatatom 258 428 5 0 0 0 - - -; +#X obj 177 405 unpack f f f; +#X text 185 387 position; +#X obj 64 361 t a a; +#X obj 64 532 circle; +#X floatatom 105 179 5 0 0 0 - - -; +#X obj 391 101 gemwin; +#X msg 400 78 create \, 1; +#X obj 64 457 translateXYZ 0 0 -4; +#X obj 96 504 gemlist_info; +#X floatatom 177 548 5 0 0 0 - - -; +#X floatatom 217 548 5 0 0 0 - - -; +#X floatatom 258 548 5 0 0 0 - - -; +#X obj 177 525 unpack f f f; +#X text 185 507 position; +#X obj 64 481 t a a; +#X text 272 197 <- this translation does not affect the circle \, because +of the "load identity" object that resets the transformation; +#X text 209 333 <- this object reset the gemlist sent by the gemhead. +; +#X text 211 457 <- move the object regarding the camera position (this +is normally done automatically by the gemwin \, but since we have reset +the transformation matrix we have to do it ourselves...); +#X connect 0 0 7 0; +#X connect 1 4 5 0; +#X connect 5 0 2 0; +#X connect 5 1 3 0; +#X connect 5 2 4 0; +#X connect 7 0 9 0; +#X connect 7 1 1 0; +#X connect 8 0 23 0; +#X connect 9 0 16 0; +#X connect 10 4 14 0; +#X connect 14 0 11 0; +#X connect 14 1 12 0; +#X connect 14 2 13 0; +#X connect 16 0 8 0; +#X connect 16 1 10 0; +#X connect 17 4 21 0; +#X connect 21 0 18 0; +#X connect 21 1 19 0; +#X connect 21 2 20 0; +#X connect 23 0 28 0; +#X connect 23 1 17 0; +#X connect 25 0 9 1; +#X connect 27 0 26 0; +#X connect 28 0 35 0; +#X connect 29 4 33 0; +#X connect 33 0 30 0; +#X connect 33 1 31 0; +#X connect 33 2 32 0; +#X connect 35 0 24 0; +#X connect 35 1 29 0; diff --git a/Gem/examples/10.glsl/01.simple_texture.pd b/Gem/examples/10.glsl/01.simple_texture.pd new file mode 100644 index 0000000..2d1c6ba --- /dev/null +++ b/Gem/examples/10.glsl/01.simple_texture.pd @@ -0,0 +1,124 @@ +#N canvas 486 82 722 633 10; +#X obj 76 22 gemhead; +#X obj 76 367 glsl_program; +#X obj 169 329 print linking; +#X obj 76 411 rotateXYZ; +#X floatatom 96 389 5 0 0 0 - - -; +#X floatatom 140 389 5 0 0 0 - - -; +#X floatatom 182 389 5 0 0 0 - - -; +#X obj 76 580 pix_texture; +#X msg 548 116 color 1 0 0; +#X obj 106 69 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 106 154 open texture.frag; +#X obj 76 197 glsl_fragment; +#X text 215 459 <- load texture; +#X obj 106 535 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X obj 76 489 pix_image img1.jpg; +#X msg 103 460 open img2.jpg; +#X msg 243 154 open texture_rect.frag; +#X msg 114 114 0; +#X obj 243 72 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 275 70 <-load an other shader; +#X text 279 84 (using rectangular texturing); +#X msg 254 113 1; +#X msg 351 258 B \$1; +#X msg 364 297 C \$1; +#X floatatom 351 241 5 0 0 0 - - -; +#X floatatom 364 280 5 0 0 0 - - -; +#X text 408 280 <- adjust Contrast; +#X text 400 240 <- adjust Brightness; +#X text 138 67 <- load shader; +#X obj 76 604 square 3; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 566 142 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 1 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 548 163 pd gemwin; +#X msg 106 555 rectangle \$1; +#X obj 254 134 s rectangle; +#X obj 114 135 s rectangle; +#X obj 106 512 r rectangle; +#X msg 32 167 print; +#X msg 39 340 print; +#X floatatom 192 372 0 0 0 0 - - -; +#X msg 151 308 link \$1; +#X obj 151 259 change; +#X connect 0 0 11 0; +#X connect 1 0 3 0; +#X connect 1 1 38 0; +#X connect 3 0 14 0; +#X connect 4 0 3 1; +#X connect 5 0 3 2; +#X connect 6 0 3 3; +#X connect 7 0 29 0; +#X connect 8 0 31 0; +#X connect 9 0 10 0; +#X connect 9 0 17 0; +#X connect 10 0 11 0; +#X connect 11 0 1 0; +#X connect 11 1 40 0; +#X connect 13 0 32 0; +#X connect 14 0 7 0; +#X connect 15 0 14 0; +#X connect 16 0 11 0; +#X connect 17 0 34 0; +#X connect 18 0 16 0; +#X connect 18 0 21 0; +#X connect 21 0 33 0; +#X connect 22 0 1 0; +#X connect 23 0 1 0; +#X connect 24 0 22 0; +#X connect 25 0 23 0; +#X connect 30 0 31 0; +#X connect 32 0 7 0; +#X connect 35 0 13 0; +#X connect 36 0 11 0; +#X connect 37 0 1 0; +#X connect 39 0 1 0; +#X connect 39 0 2 0; +#X connect 40 0 39 0; diff --git a/Gem/examples/10.glsl/02.primitive_distortion.pd b/Gem/examples/10.glsl/02.primitive_distortion.pd new file mode 100644 index 0000000..9a5280a --- /dev/null +++ b/Gem/examples/10.glsl/02.primitive_distortion.pd @@ -0,0 +1,125 @@ +#N canvas 462 82 520 667 10; +#X obj 74 -1 gemhead; +#X msg 29 80 print; +#X obj 74 262 glsl_program; +#X obj 146 121 change; +#X msg 98 233 print; +#X floatatom 146 144 2 0 0 0 ID - -; +#X obj 164 212 print linking; +#X obj 74 102 glsl_vertex; +#X obj 74 451 pix_texture; +#X obj 124 59 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 74 24 alpha; +#X obj 101 397 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X floatatom 292 202 5 0 0 0 - - -; +#X msg 101 375 0; +#X msg 292 223 K \$1; +#X obj 74 494 sphere 2 30; +#N canvas 0 50 450 300 load_shader 0; +#X obj 89 99 t b b; +#X msg 119 126 0; +#X obj 89 154 outlet; +#X obj 89 71 gemhead 1; +#X connect 0 0 2 0; +#X connect 0 1 1 0; +#X connect 1 0 3 0; +#X connect 3 0 0 0; +#X restore 124 38 pd load_shader; +#N canvas 50 82 450 300 init_shader 0; +#X obj 89 154 outlet; +#X obj 89 45 inlet; +#X obj 89 73 change; +#X obj 89 100 t b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 0 0; +#X restore 153 286 pd init_shader; +#X obj 101 354 loadbang; +#X text 347 201 <- 2; +#X text 395 670 ch 20007; +#X msg 103 305 open texture.jpg; +#X obj 74 471 rotateXYZ -90 0 0; +#X msg 292 177 0.1; +#X obj 74 328 pix_image img3.jpg; +#X msg 88 80 open P_distord.vert; +#X text 69 527 this shader create a dirty pseudo random value \, and +move all vertices separatly; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 389 41 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 1 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 359 58 pd gemwin; +#X msg 101 417 rectangle \$1; +#X msg 146 191 link \$1; +#X connect 0 0 10 0; +#X connect 1 0 7 0; +#X connect 2 0 24 0; +#X connect 2 1 17 0; +#X connect 3 0 5 0; +#X connect 4 0 2 0; +#X connect 5 0 30 0; +#X connect 7 0 2 0; +#X connect 7 1 3 0; +#X connect 8 0 22 0; +#X connect 9 0 25 0; +#X connect 10 0 7 0; +#X connect 11 0 29 0; +#X connect 12 0 14 0; +#X connect 13 0 11 0; +#X connect 14 0 2 0; +#X connect 16 0 9 0; +#X connect 17 0 23 0; +#X connect 18 0 13 0; +#X connect 21 0 24 0; +#X connect 22 0 15 0; +#X connect 23 0 12 0; +#X connect 24 0 8 0; +#X connect 25 0 7 0; +#X connect 27 0 28 0; +#X connect 29 0 8 0; +#X connect 30 0 2 0; +#X connect 30 0 6 0; diff --git a/Gem/examples/10.glsl/03.texture_distortion.pd b/Gem/examples/10.glsl/03.texture_distortion.pd new file mode 100644 index 0000000..be30c96 --- /dev/null +++ b/Gem/examples/10.glsl/03.texture_distortion.pd @@ -0,0 +1,144 @@ +#N canvas 10 10 552 667 10; +#X text 381 660 ch 20007; +#X obj 74 -1 gemhead; +#X msg 29 80 print; +#X obj 74 382 glsl_program; +#X obj 147 281 pack 0 0; +#X msg 31 162 print; +#X obj 168 261 t b f; +#X obj 168 216 change; +#X obj 146 121 change; +#X msg 147 304 link \$1 \$2; +#X msg 98 353 print; +#X floatatom 168 242 2 0 0 0 ID - -; +#X floatatom 146 144 2 0 0 0 ID - -; +#X obj 165 325 print linking; +#X obj 74 196 glsl_fragment; +#X obj 74 102 glsl_vertex; +#X obj 74 571 pix_texture; +#X obj 124 59 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 74 24 alpha; +#X obj 124 522 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X floatatom 361 352 5 0 0 0 - - -; +#X floatatom 476 353 5 0 0 0 - - -; +#X msg 124 500 0; +#N canvas 0 0 450 300 load_shader 0; +#X obj 89 99 t b b; +#X msg 119 126 0; +#X obj 89 154 outlet; +#X obj 89 71 gemhead 1; +#X connect 0 0 2 0; +#X connect 0 1 1 0; +#X connect 1 0 3 0; +#X connect 3 0 0 0; +#X restore 124 38 pd load_shader; +#N canvas 0 0 450 300 init_shader 0; +#X obj 89 154 outlet; +#X obj 89 45 inlet; +#X obj 89 73 change; +#X obj 89 100 t b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 0 0; +#X restore 155 405 pd init_shader; +#X obj 124 479 loadbang; +#X text 416 351 <- 2; +#X msg 92 431 open texture.jpg; +#X msg 361 373 K1 \$1; +#X msg 361 327 1; +#X msg 476 375 seed \$1; +#X msg 88 80 open T_distord.vert; +#X msg 85 166 open T_distord.frag; +#X obj 74 458 pix_image img3.jpg; +#X obj 74 596 rectangle 4 4; +#X text 73 627 This shader compute a dirty pseudo random number \, +and distort the texture this with value; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 384 41 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 1 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 354 58 pd gemwin; +#X msg 124 542 rectangle \$1; +#X connect 1 0 18 0; +#X connect 2 0 15 0; +#X connect 3 0 33 0; +#X connect 3 1 24 0; +#X connect 4 0 9 0; +#X connect 5 0 14 0; +#X connect 6 0 4 0; +#X connect 6 1 4 1; +#X connect 7 0 11 0; +#X connect 8 0 12 0; +#X connect 9 0 3 0; +#X connect 9 0 13 0; +#X connect 10 0 3 0; +#X connect 11 0 6 0; +#X connect 12 0 4 0; +#X connect 14 0 3 0; +#X connect 14 1 7 0; +#X connect 15 0 14 0; +#X connect 15 1 8 0; +#X connect 16 0 34 0; +#X connect 17 0 31 0; +#X connect 17 0 32 0; +#X connect 18 0 15 0; +#X connect 19 0 38 0; +#X connect 20 0 28 0; +#X connect 21 0 30 0; +#X connect 22 0 19 0; +#X connect 23 0 17 0; +#X connect 24 0 29 0; +#X connect 25 0 22 0; +#X connect 27 0 33 0; +#X connect 28 0 3 0; +#X connect 29 0 20 0; +#X connect 30 0 3 0; +#X connect 31 0 15 0; +#X connect 32 0 14 0; +#X connect 33 0 16 0; +#X connect 36 0 37 0; +#X connect 38 0 16 0; diff --git a/Gem/examples/10.glsl/04.game_of_life.pd b/Gem/examples/10.glsl/04.game_of_life.pd new file mode 100644 index 0000000..16ccb57 --- /dev/null +++ b/Gem/examples/10.glsl/04.game_of_life.pd @@ -0,0 +1,138 @@ +#N canvas 10 10 599 681 10; +#X obj 316 488 pix_snap2tex; +#X msg 356 461 0 0; +#X msg 402 460 500 500; +#X obj 356 438 t b b; +#X obj 316 513 alpha; +#X obj 316 563 square 4; +#X msg 52 75 frame \$1; +#X floatatom 52 57 5 0 0 0 - - -; +#X obj 356 419 loadbang; +#X msg 271 95 print; +#X obj 316 370 glsl_program; +#X obj 389 296 pack 0 0; +#X msg 273 177 print; +#X obj 410 276 t b f; +#X obj 410 231 change; +#X obj 388 136 change; +#X msg 389 321 link \$1 \$2; +#X msg 272 333 print; +#X floatatom 410 257 2 0 0 0 ID - -; +#X floatatom 388 159 2 0 0 0 ID - -; +#X obj 407 342 print linking; +#X obj 316 211 glsl_fragment; +#X obj 316 117 glsl_vertex; +#X obj 338 68 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 316 37 gemhead -1; +#X obj 316 537 colorRGB 1 1 1 1; +#X msg 330 95 open game.vert; +#X msg 327 181 open game.frag; +#X obj 39 259 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 39 281 gemhead 50; +#X obj 39 311 translateXYZ 0 0 1; +#X obj 39 409 rectangle; +#X obj 39 216 loadbang; +#X msg 39 237 0; +#X text 157 261 <- 3; +#X text 375 69 <- 2 : load shader; +#X obj 316 392 t b a; +#X floatatom 69 362 5 0 0 0 - - -; +#X floatatom 124 363 5 0 0 0 - - -; +#X obj 69 381 / 100; +#X obj 124 384 / 100; +#X text 13 634 This is an example of iterative process : the output +of the shader is used for next frame input; +#X text 145 140 <----- 1; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 82 100 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 52 117 pd gemwin; +#X connect 0 0 4 0; +#X connect 1 0 0 1; +#X connect 2 0 0 2; +#X connect 3 0 1 0; +#X connect 3 1 2 0; +#X connect 4 0 25 0; +#X connect 6 0 44 0; +#X connect 7 0 6 0; +#X connect 8 0 3 0; +#X connect 9 0 22 0; +#X connect 10 0 36 0; +#X connect 11 0 16 0; +#X connect 12 0 21 0; +#X connect 13 0 11 0; +#X connect 13 1 11 1; +#X connect 14 0 18 0; +#X connect 15 0 19 0; +#X connect 16 0 10 0; +#X connect 16 0 20 0; +#X connect 17 0 10 0; +#X connect 18 0 13 0; +#X connect 19 0 11 0; +#X connect 21 0 10 0; +#X connect 21 1 14 0; +#X connect 22 0 21 0; +#X connect 22 1 15 0; +#X connect 23 0 26 0; +#X connect 23 0 27 0; +#X connect 24 0 22 0; +#X connect 25 0 5 0; +#X connect 26 0 22 0; +#X connect 27 0 21 0; +#X connect 28 0 29 0; +#X connect 29 0 30 0; +#X connect 30 0 31 0; +#X connect 32 0 33 0; +#X connect 33 0 28 0; +#X connect 36 0 0 0; +#X connect 36 1 0 0; +#X connect 37 0 39 0; +#X connect 38 0 40 0; +#X connect 39 0 31 1; +#X connect 40 0 31 2; +#X connect 43 0 44 0; diff --git a/Gem/examples/10.glsl/05.multitexture.pd b/Gem/examples/10.glsl/05.multitexture.pd new file mode 100644 index 0000000..d80c9a4 --- /dev/null +++ b/Gem/examples/10.glsl/05.multitexture.pd @@ -0,0 +1,201 @@ +#N canvas 10 10 930 667 10; +#X obj 76 5 gemhead; +#X obj 75 429 glsl_program; +#X obj 149 268 pack 0 0; +#X obj 170 248 t b f; +#X obj 164 203 change; +#X msg 149 294 link \$1 \$2; +#X floatatom 170 229 2 0 0 0 ID - -; +#X floatatom 148 121 2 0 0 0 ID - -; +#X obj 167 315 print linking; +#X msg 365 23 color 1 0 0; +#X obj 142 27 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 76 79 glsl_vertex; +#X obj 76 183 glsl_fragment; +#X obj 463 464 pix_texture; +#X obj 546 271 openpanel; +#X obj 546 248 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X msg 90 57 open multitexture.vert; +#X msg 86 153 open multitexture.frag; +#X obj 463 230 gemhead 11; +#X obj 463 204 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X text 463 90 1) turn on rendering; +#X msg 503 432 texunit 1; +#X obj 687 467 pix_texture; +#X obj 768 271 openpanel; +#X obj 768 250 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 687 204 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X msg 725 430 texunit 0; +#X obj 462 488 translateXYZ -2 0 0; +#X obj 685 490 translateXYZ 2 0 0; +#X msg 187 406 MyTex 0; +#X obj 75 644 pix_texture; +#X obj 218 498 openpanel; +#X obj 218 477 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X msg 254 381 MyTex1 1; +#X msg 255 406 MyTex 1; +#X msg 186 381 MyTex1 0; +#X msg 321 382 MyTex1 2; +#X msg 326 407 MyTex 2; +#N canvas 0 0 450 300 load_shader 0; +#X obj 89 99 t b b; +#X msg 119 126 0; +#X obj 89 154 outlet; +#X obj 89 71 gemhead 1; +#X connect 0 0 2 0; +#X connect 0 1 1 0; +#X connect 1 0 3 0; +#X connect 3 0 0 0; +#X restore 142 5 pd load_shader; +#N canvas 0 0 450 300 init_shader 0; +#X obj 89 154 outlet; +#X obj 89 45 inlet; +#X obj 89 73 change; +#X obj 89 100 t b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 0 0; +#X restore 156 450 pd init_shader; +#X msg 546 296 set open \$1 \, bang; +#X obj 491 387 loadbang; +#X msg 218 519 set open \$1 \, bang; +#X msg 768 294 set open \$1 \, bang; +#X obj 482 295 loadbang; +#X obj 153 519 loadbang; +#X obj 704 294 loadbang; +#X obj 220 569 loadbang; +#X obj 716 388 loadbang; +#X obj 687 229 gemhead 22; +#X text 187 360 2) change shader texuinit; +#X msg 482 320 open img2.jpg; +#X obj 463 349 pix_image img2.jpg; +#X obj 687 346 pix_image img3.jpg; +#X msg 704 318 open img3.jpg; +#X msg 153 544 open img1.jpg; +#X obj 75 613 pix_image img1.jpg; +#X obj 148 98 change; +#X text 343 147 This is an example of multitexturing \, this shader +mixes 2 textures; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 395 47 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 1 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 365 64 pd gemwin; +#X obj 75 670 rectangle 3 3; +#X obj 462 514 square 2; +#X obj 685 516 square 2; +#X msg 220 591 texunit 2 \, rectangle 0; +#X msg 491 409 texunit 0 \, rectangle 0; +#X msg 716 409 texunit 1 \, rectangle 0; +#X connect 0 0 11 0; +#X connect 1 0 56 0; +#X connect 1 1 39 0; +#X connect 2 0 5 0; +#X connect 3 0 2 0; +#X connect 3 1 2 1; +#X connect 4 0 6 0; +#X connect 5 0 1 0; +#X connect 5 0 8 0; +#X connect 6 0 3 0; +#X connect 7 0 2 0; +#X connect 9 0 60 0; +#X connect 10 0 16 0; +#X connect 10 0 17 0; +#X connect 11 0 12 0; +#X connect 11 1 57 0; +#X connect 12 0 1 0; +#X connect 12 1 4 0; +#X connect 13 0 27 0; +#X connect 14 0 40 0; +#X connect 15 0 14 0; +#X connect 16 0 11 0; +#X connect 17 0 12 0; +#X connect 18 0 52 0; +#X connect 19 0 18 0; +#X connect 21 0 13 0; +#X connect 22 0 28 0; +#X connect 23 0 43 0; +#X connect 24 0 23 0; +#X connect 25 0 49 0; +#X connect 26 0 22 0; +#X connect 29 0 1 0; +#X connect 30 0 61 0; +#X connect 31 0 42 0; +#X connect 32 0 31 0; +#X connect 33 0 1 0; +#X connect 34 0 1 0; +#X connect 35 0 1 0; +#X connect 36 0 1 0; +#X connect 37 0 1 0; +#X connect 38 0 10 0; +#X connect 39 0 33 0; +#X connect 39 0 29 0; +#X connect 40 0 51 0; +#X connect 41 0 65 0; +#X connect 42 0 55 0; +#X connect 43 0 54 0; +#X connect 44 0 51 0; +#X connect 45 0 55 0; +#X connect 46 0 54 0; +#X connect 47 0 64 0; +#X connect 48 0 66 0; +#X connect 49 0 53 0; +#X connect 51 0 52 0; +#X connect 52 0 13 0; +#X connect 53 0 22 0; +#X connect 54 0 53 0; +#X connect 55 0 56 0; +#X connect 56 0 30 0; +#X connect 57 0 7 0; +#X connect 59 0 60 0; +#X connect 64 0 30 0; +#X connect 65 0 13 0; +#X connect 66 0 22 0; diff --git a/Gem/examples/10.glsl/05.multitexture_bis.pd b/Gem/examples/10.glsl/05.multitexture_bis.pd new file mode 100644 index 0000000..63652ff --- /dev/null +++ b/Gem/examples/10.glsl/05.multitexture_bis.pd @@ -0,0 +1,200 @@ +#N canvas 207 200 1100 637 10; +#X obj 76 5 gemhead; +#X obj 75 429 glsl_program; +#X obj 149 268 pack 0 0; +#X obj 170 248 t b f; +#X obj 164 203 change; +#X msg 149 294 link \$1 \$2; +#X floatatom 170 229 2 0 0 0 ID - -; +#X floatatom 148 121 2 0 0 0 ID - -; +#X obj 167 315 print linking; +#X msg 365 23 color 1 0 0; +#X obj 142 27 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 76 79 glsl_vertex; +#X obj 76 183 glsl_fragment; +#X obj 749 262 openpanel; +#X obj 749 239 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X msg 90 57 open multitexture.vert; +#X msg 86 153 open multitexture.frag; +#X obj 666 221 gemhead 11; +#X obj 666 195 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X text 463 90 1) turn on rendering; +#X obj 971 262 openpanel; +#X obj 971 241 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 890 195 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X msg 187 406 MyTex 0; +#X msg 254 381 MyTex1 1; +#X msg 255 406 MyTex 1; +#X msg 186 381 MyTex1 0; +#X msg 321 382 MyTex1 2; +#X msg 326 407 MyTex 2; +#N canvas 0 0 450 300 load_shader 0; +#X obj 89 99 t b b; +#X msg 119 126 0; +#X obj 89 154 outlet; +#X obj 89 71 gemhead 1; +#X connect 0 0 2 0; +#X connect 0 1 1 0; +#X connect 1 0 3 0; +#X connect 3 0 0 0; +#X restore 142 5 pd load_shader; +#N canvas 0 0 450 300 init_shader 0; +#X obj 89 154 outlet; +#X obj 89 45 inlet; +#X obj 89 73 change; +#X obj 89 100 t b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 0 0; +#X restore 156 450 pd init_shader; +#X msg 749 287 set open \$1 \, bang; +#X obj 694 378 loadbang; +#X msg 971 285 set open \$1 \, bang; +#X obj 685 286 loadbang; +#X obj 907 285 loadbang; +#X obj 919 379 loadbang; +#X obj 890 220 gemhead 22; +#X text 187 360 2) change shader texuinit; +#X msg 685 311 open img2.jpg; +#X obj 666 340 pix_image img2.jpg; +#X obj 890 337 pix_image img3.jpg; +#X msg 907 309 open img3.jpg; +#X obj 148 98 change; +#X text 343 147 This is an example of multitexturing \, this shader +mixes 2 textures; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 395 47 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 1 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 365 64 pd gemwin; +#X obj 75 550 rectangle 3 3; +#X obj 75 520 pix_multitexture 3; +#X obj 666 425 pix_texture; +#X obj 890 428 pix_texture; +#X msg 694 400 rectangle 0; +#X msg 919 400 rectangle 0; +#X obj 526 264 openpanel; +#X obj 526 241 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 443 223 gemhead 11; +#X obj 443 197 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X msg 526 289 set open \$1 \, bang; +#X obj 471 380 loadbang; +#X obj 462 288 loadbang; +#X obj 443 427 pix_texture; +#X msg 471 402 rectangle 0; +#X msg 462 313 open img1.jpg; +#X obj 443 342 pix_image img1.jpg; +#X connect 0 0 11 0; +#X connect 1 0 48 0; +#X connect 1 1 30 0; +#X connect 2 0 5 0; +#X connect 3 0 2 0; +#X connect 3 1 2 1; +#X connect 4 0 6 0; +#X connect 5 0 1 0; +#X connect 5 0 8 0; +#X connect 6 0 3 0; +#X connect 7 0 2 0; +#X connect 9 0 46 0; +#X connect 10 0 15 0; +#X connect 10 0 16 0; +#X connect 11 0 12 0; +#X connect 11 1 43 0; +#X connect 12 0 1 0; +#X connect 12 1 4 0; +#X connect 13 0 31 0; +#X connect 14 0 13 0; +#X connect 15 0 11 0; +#X connect 16 0 12 0; +#X connect 17 0 40 0; +#X connect 18 0 17 0; +#X connect 20 0 33 0; +#X connect 21 0 20 0; +#X connect 22 0 37 0; +#X connect 23 0 1 0; +#X connect 24 0 1 0; +#X connect 25 0 1 0; +#X connect 26 0 1 0; +#X connect 27 0 1 0; +#X connect 28 0 1 0; +#X connect 29 0 10 0; +#X connect 30 0 24 0; +#X connect 30 0 23 0; +#X connect 31 0 39 0; +#X connect 32 0 51 0; +#X connect 33 0 42 0; +#X connect 34 0 39 0; +#X connect 35 0 42 0; +#X connect 36 0 52 0; +#X connect 37 0 41 0; +#X connect 39 0 40 0; +#X connect 40 0 49 0; +#X connect 41 0 50 0; +#X connect 42 0 41 0; +#X connect 43 0 7 0; +#X connect 45 0 46 0; +#X connect 48 0 47 0; +#X connect 49 1 48 2; +#X connect 50 1 48 3; +#X connect 51 0 49 0; +#X connect 52 0 50 0; +#X connect 53 0 57 0; +#X connect 54 0 53 0; +#X connect 55 0 63 0; +#X connect 56 0 55 0; +#X connect 57 0 62 0; +#X connect 58 0 61 0; +#X connect 59 0 62 0; +#X connect 60 1 48 1; +#X connect 61 0 60 0; +#X connect 62 0 63 0; +#X connect 63 0 60 0; diff --git a/Gem/examples/10.glsl/06.rectangle_multitexture.pd b/Gem/examples/10.glsl/06.rectangle_multitexture.pd new file mode 100644 index 0000000..48e6600 --- /dev/null +++ b/Gem/examples/10.glsl/06.rectangle_multitexture.pd @@ -0,0 +1,199 @@ +#N canvas 511 97 648 675 10; +#X obj 279 76 gemhead; +#X obj 295 208 loadbang; +#X obj 279 251 pix_texture; +#X msg 295 231 rectangle 1 \, texunit 1; +#X obj 334 97 openpanel; +#X msg 334 118 open \$1; +#X obj 334 76 bng 15 250 50 0 empty empty empty 17 7 0 10 -257985 -1 +-1; +#X obj 459 76 gemhead; +#X obj 475 208 loadbang; +#X obj 459 251 pix_texture; +#X obj 514 97 openpanel; +#X msg 514 118 open \$1; +#X obj 514 76 bng 15 250 50 0 empty empty empty 17 7 0 10 -257985 -1 +-1; +#X msg 475 231 rectangle 1 \, texunit 2; +#X obj 279 275 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 132 112 create \, 1; +#X msg 198 112 destroy; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 284 314 pd gemwin; +#X msg 284 295 create; +#X text 280 274 Create window:; +#X obj 101 358 cnv 15 100 120 empty empty empty 20 12 0 14 -4034 -66577 +0; +#X obj 37 538 glsl_program; +#X obj 100 259 pack 0 0; +#X obj 118 236 t b f; +#X obj 118 194 change; +#X msg 100 285 link \$1 \$2; +#X floatatom 118 217 2 0 0 0 ID - -; +#X floatatom 100 133 2 0 0 0 ID - -; +#X obj 105 309 print linking; +#X obj 124 43 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 37 88 glsl_vertex; +#X obj 37 174 glsl_fragment; +#N canvas 0 0 450 300 load_shader 0; +#X msg 116 126 0; +#X obj 89 154 outlet; +#X obj 89 71 gemhead 1; +#X obj 89 100 t b b; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 1 0; +#X connect 3 1 0 0; +#X restore 124 21 pd load_shader; +#X obj 100 110 change; +#X obj 106 581 loadbang; +#X obj 37 21 gemhead 51; +#X msg 109 371 add; +#X msg 109 431 multiply; +#X msg 109 451 mix; +#N canvas 0 0 450 300 route 0; +#X obj 113 53 inlet; +#X msg 113 95 0; +#X msg 155 95 1; +#X msg 198 95 2; +#X msg 240 95 3; +#X obj 113 126 outlet; +#X msg 283 95 4; +#X obj 113 74 route add subtract diff multiply mix; +#X connect 0 0 7 0; +#X connect 1 0 5 0; +#X connect 2 0 5 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 6 0 5 0; +#X connect 7 0 1 0; +#X connect 7 1 2 0; +#X connect 7 2 3 0; +#X connect 7 3 4 0; +#X connect 7 4 6 0; +#X restore 72 486 pd route; +#X msg 184 540 Ttex1 1; +#X msg 240 540 Ttex2 2; +#X msg 72 507 style \$1; +#X obj 109 337 loadbang; +#X obj 37 625 pix_texture; +#X msg 106 603 rectangle 1 \, texunit 0; +#X obj 37 598 pix_set; +#X obj 142 457 hsl 50 10 0 1 0 0 empty empty MIX_FACTOR -2 -4 0 7 -262144 +-1 -1 0 1; +#X msg 51 66 open GLSL_mix.vert; +#X msg 51 151 open GLSL_mix.frag; +#X msg 109 411 diff; +#X text 383 295 <- 1 : create GEM window; +#X text 248 375 add : add two texture together (it is easy to get a +white out); +#X msg 109 391 subtract; +#X text 277 16 This shader program give you the possibility to mix +two sources of different size. You can add \, subtract \, diff \, multiply +and mix the two sources.; +#X text 248 401 subtract : subtract two texture together (it is easy +to get a black out); +#X text 248 427 diff : subtract two texture together (get absolute +value); +#X text 248 441 multiply : multiply two texture together; +#X text 248 455 mix : mix two texture together (use the mix factor +for crossfading); +#N canvas 242 260 450 300 onebang 0; +#X obj 120 71 inlet; +#X obj 120 151 outlet; +#X obj 120 120 t b; +#X obj 120 100 change; +#X msg 161 71 set -1; +#X obj 161 11 gemhead; +#X obj 161 51 route 0; +#X obj 161 31 route gem_state; +#X connect 0 0 3 0; +#X connect 2 0 1 0; +#X connect 3 0 2 0; +#X connect 4 0 3 0; +#X connect 5 0 7 0; +#X connect 6 0 4 0; +#X connect 7 0 6 0; +#X restore 106 559 pd onebang; +#X text 206 357 <- 2 : test differents mix; +#X obj 459 167 pix_resize 512 512; +#X obj 279 167 pix_resize 234 543; +#X obj 279 147 pix_image img3.jpg; +#X obj 459 147 pix_image img2.jpg; +#X text 292 186 images have diferents sizes; +#X msg 139 507 mix_factor \$1; +#X obj 37 646 square 4; +#X connect 0 0 61 0; +#X connect 1 0 3 0; +#X connect 3 0 2 0; +#X connect 4 0 5 0; +#X connect 5 0 61 0; +#X connect 6 0 4 0; +#X connect 7 0 62 0; +#X connect 8 0 13 0; +#X connect 10 0 11 0; +#X connect 11 0 62 0; +#X connect 12 0 10 0; +#X connect 13 0 9 0; +#X connect 15 0 16 0; +#X connect 16 0 15 0; +#X connect 19 0 44 0; +#X connect 19 1 57 0; +#X connect 20 0 23 0; +#X connect 21 0 20 0; +#X connect 21 1 20 1; +#X connect 22 0 24 0; +#X connect 23 0 19 0; +#X connect 23 0 26 0; +#X connect 24 0 21 0; +#X connect 25 0 20 0; +#X connect 27 0 46 0; +#X connect 27 0 47 0; +#X connect 28 0 29 0; +#X connect 28 1 31 0; +#X connect 29 0 19 0; +#X connect 29 1 22 0; +#X connect 30 0 27 0; +#X connect 31 0 25 0; +#X connect 32 0 43 0; +#X connect 33 0 28 0; +#X connect 34 0 37 0; +#X connect 35 0 37 0; +#X connect 36 0 37 0; +#X connect 37 0 40 0; +#X connect 38 0 19 0; +#X connect 39 0 19 0; +#X connect 40 0 19 0; +#X connect 41 0 34 0; +#X connect 42 0 65 0; +#X connect 43 0 42 0; +#X connect 44 0 42 0; +#X connect 45 0 64 0; +#X connect 46 0 28 0; +#X connect 47 0 29 0; +#X connect 48 0 37 0; +#X connect 51 0 37 0; +#X connect 57 0 38 0; +#X connect 57 0 39 0; +#X connect 59 0 9 0; +#X connect 60 0 2 0; +#X connect 61 0 60 0; +#X connect 62 0 59 0; +#X connect 64 0 19 0; diff --git a/Gem/examples/10.glsl/07.framebuffer_and_shader.pd b/Gem/examples/10.glsl/07.framebuffer_and_shader.pd new file mode 100644 index 0000000..c829e8f --- /dev/null +++ b/Gem/examples/10.glsl/07.framebuffer_and_shader.pd @@ -0,0 +1,418 @@ +#N canvas 1 25 1126 659 10; +#X obj 9 470 translateXYZ 0 0 -4; +#X obj 9 234 ortho; +#X floatatom 83 538 5 0 0 0 - - -; +#X msg 83 515 \$1; +#X obj 9 365 gemframebuffer; +#X obj 9 494 pix_texture; +#X obj 218 474 translateXYZ 0 0 -4; +#X obj 218 501 pix_texture; +#X floatatom 484 153 5 0 0 0 - - -; +#X msg 484 131 \$1; +#X floatatom 325 550 5 0 0 0 - - -; +#X msg 325 528 \$1; +#X floatatom 104 412 5 0 0 0 - - -; +#X msg 104 389 \$1; +#X floatatom 294 411 5 0 0 0 - - -; +#X msg 294 388 \$1; +#X obj 435 58 loadbang; +#X obj 199 364 gemframebuffer; +#N canvas 573 206 496 427 shader 0; +#X obj 32 294 glsl_program; +#X obj 126 137 change; +#X obj 126 183 print linking; +#X obj 32 117 glsl_fragment; +#X floatatom 130 239 5 0 0 0 - - -; +#X floatatom 232 239 5 0 0 0 - - -; +#X floatatom 181 239 5 0 0 0 - - -; +#X msg 130 260 K1 \$1; +#X msg 181 260 K3 \$1; +#X msg 232 260 D1 \$1; +#X msg 130 214 0.25; +#X msg 126 158 link \$1; +#N canvas 0 0 450 300 load_shader 0; +#X obj 89 99 t b b; +#X msg 119 126 0; +#X obj 89 154 outlet; +#X obj 89 71 gemhead 1; +#X connect 0 0 2 0; +#X connect 0 1 1 0; +#X connect 1 0 3 0; +#X connect 3 0 0 0; +#X restore 42 70 pd load_shader; +#X obj 32 36 inlet; +#X obj 32 363 outlet; +#X obj 304 38 inlet; +#X obj 139 343 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#N canvas 0 0 450 300 init_shader 0; +#X obj 89 154 outlet; +#X obj 89 45 inlet; +#X obj 89 73 change; +#X obj 89 100 t b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 0 0; +#X restore 113 318 pd init_shader; +#X obj 112 341 t b; +#X obj 395 43 inlet; +#X msg 181 213 0; +#X msg 232 215 0; +#X msg 193 151 text 0; +#X msg 42 93 open wave.frag; +#X connect 0 0 14 0; +#X connect 0 1 17 0; +#X connect 1 0 11 0; +#X connect 3 0 0 0; +#X connect 3 1 1 0; +#X connect 4 0 7 0; +#X connect 5 0 9 0; +#X connect 6 0 8 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X connect 9 0 0 0; +#X connect 10 0 4 0; +#X connect 11 0 0 0; +#X connect 11 0 2 0; +#X connect 12 0 23 0; +#X connect 13 0 3 0; +#X connect 15 0 23 0; +#X connect 16 0 18 0; +#X connect 17 0 18 0; +#X connect 18 0 10 0; +#X connect 18 0 20 0; +#X connect 18 0 21 0; +#X connect 18 0 22 0; +#X connect 19 0 16 0; +#X connect 20 0 6 0; +#X connect 21 0 5 0; +#X connect 22 0 0 0; +#X connect 23 0 3 0; +#X restore 9 274 pd shader; +#X obj 137 289 t a; +#X obj 137 197 t b; +#X obj 147 177 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 137 156 loadbang; +#X obj 218 421 t a a; +#X obj 402 518 separator; +#X obj 218 447 separator; +#X obj 218 537 color 1 1 1; +#X obj 218 563 rectangle 4 4; +#X obj 9 563 rectangle 4 4; +#X obj 66 250 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 93 251 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 390 472 t a; +#N canvas 0 0 857 562 border 0; +#X obj 14 10 inlet; +#X obj 13 46 separator; +#X obj 13 68 translateXYZ 0 4 -3.9; +#X obj 13 115 rectangle 5 0.12; +#X obj 182 46 separator; +#X obj 182 115 rectangle 5 0.12; +#X obj 351 45 separator; +#X obj 182 68 translateXYZ 0 -4 -3.9; +#X obj 351 67 translateXYZ 4 0 -3.9; +#X obj 351 114 rectangle 0.12 5; +#X obj 528 39 separator; +#X obj 528 108 rectangle 0.12 5; +#X obj 528 61 translateXYZ -4 0 -3.9; +#X obj 528 85 color 0.5 0.5 0.5; +#X obj 351 91 color 0.5 0.5 0.5; +#X obj 181 93 color 0.5 0.5 0.5; +#X obj 13 92 color 0.5 0.5 0.5; +#X connect 0 0 1 0; +#X connect 0 0 4 0; +#X connect 0 0 6 0; +#X connect 0 0 10 0; +#X connect 1 0 2 0; +#X connect 2 0 16 0; +#X connect 4 0 7 0; +#X connect 6 0 8 0; +#X connect 7 0 15 0; +#X connect 8 0 14 0; +#X connect 10 0 12 0; +#X connect 12 0 13 0; +#X connect 13 0 11 0; +#X connect 14 0 9 0; +#X connect 15 0 5 0; +#X connect 16 0 3 0; +#X restore 390 569 pd border; +#X obj 774 148 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 774 172 gemhead 40; +#X floatatom 825 519 5 0 0 0 - - -; +#X obj 774 484 pix_texture; +#X floatatom 876 520 5 0 0 0 - - -; +#X obj 442 357 pix_texture; +#X floatatom 867 236 5 0 0 0 - - -; +#X obj 653 216 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 454 308 loadbang; +#X obj 786 442 loadbang; +#N canvas 693 153 804 667 _glsl 0; +#X obj 80 426 glsl_program; +#X obj 261 238 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#N canvas 0 22 450 300 open 0; +#X obj 75 103 openpanel; +#X obj 75 173 outlet; +#X obj 75 127 t b s; +#X msg 105 152 set open \$1; +#X obj 75 80 inlet; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X connect 2 1 3 0; +#X connect 3 0 1 0; +#X connect 4 0 0 0; +#X restore 204 237 pd open; +#X msg 33 296 print; +#X obj 166 331 change; +#X msg 34 420 print; +#X obj 80 310 glsl_fragment; +#X floatatom 166 355 2 0 0 0 ID - -; +#X obj 184 400 print linking; +#X obj 13 52 inlet; +#X obj 80 462 outlet; +#X msg 93 273 open \$1.frag; +#X msg 204 261 open \$1; +#X obj 422 77 inlet; +#X obj 13 75 route bang; +#X obj 140 83 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 140 109 t b b; +#X msg 140 202 symbol \$1/\$2; +#X obj 255 11 gemhead 1; +#X msg 255 33 1; +#X obj 255 57 change; +#X obj 255 81 t b; +#X obj 159 447 change; +#X obj 159 468 t b; +#X obj 159 491 outlet; +#X msg 166 379 link \$1; +#X obj 140 133 symbol vague; +#X connect 0 0 10 0; +#X connect 0 1 22 0; +#X connect 1 0 2 0; +#X connect 2 0 12 0; +#X connect 3 0 6 0; +#X connect 4 0 7 0; +#X connect 5 0 0 0; +#X connect 6 0 0 0; +#X connect 6 1 4 0; +#X connect 7 0 25 0; +#X connect 9 0 14 0; +#X connect 11 0 6 0; +#X connect 12 0 6 0; +#X connect 13 0 0 0; +#X connect 14 0 16 0; +#X connect 14 1 6 0; +#X connect 15 0 16 0; +#X connect 16 0 26 0; +#X connect 17 0 11 0; +#X connect 18 0 19 0; +#X connect 19 0 20 0; +#X connect 20 0 21 0; +#X connect 21 0 16 0; +#X connect 22 0 23 0; +#X connect 23 0 24 0; +#X connect 25 0 0 0; +#X connect 25 0 8 0; +#X connect 26 0 11 0; +#X restore 774 326 pd _glsl; +#X obj 743 302 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X msg 435 82 texunit 3; +#X obj 410 108 pix_texture; +#X obj 181 299 t a; +#N canvas 0 0 450 300 gouttes 0; +#X obj 27 79 translateXYZ 0 0 -4; +#X obj 27 101 t a b b; +#X obj 27 195 translateXYZ 0 0 0.1; +#X obj 50 123 random 1000; +#X obj 50 147 - 500; +#X obj 136 123 random 1000; +#X obj 136 147 - 500; +#X obj 50 171 / 130; +#X obj 136 171 / 130; +#X obj 27 242 circle 0.02; +#X obj 27 218 color 0.3 0.3 0.3; +#X obj 28 51 inlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 1 3 0; +#X connect 1 2 5 0; +#X connect 2 0 10 0; +#X connect 3 0 4 0; +#X connect 4 0 7 0; +#X connect 5 0 6 0; +#X connect 6 0 8 0; +#X connect 7 0 2 1; +#X connect 8 0 2 2; +#X connect 10 0 9 0; +#X connect 11 0 0 0; +#X restore 402 542 pd gouttes; +#X msg 244 284 quality 0; +#X obj 774 541 rectangle -4 -4; +#X obj 9 155 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X obj 220 180 delay 1000; +#N canvas 0 0 450 300 init 0; +#X obj 89 154 outlet; +#X obj 89 100 change; +#X obj 89 127 t b; +#X obj 91 52 gemhead; +#X msg 91 73 1; +#X connect 1 0 2 0; +#X connect 2 0 0 0; +#X connect 3 0 4 0; +#X connect 4 0 1 0; +#X restore 220 157 pd init; +#X obj 410 34 gemhead 16; +#X obj 199 342 gemhead 12; +#X obj 442 214 gemhead 17; +#X obj 9 177 gemhead 10; +#X obj 442 240 pix_image img2.jpg; +#X msg 867 215 111; +#X text 33 612 This shader is rendered into a framebuffer \, in order +to use it in the next frame for a simple physical modeling simulation +; +#X text 345 168 This creates a texture (texunit 3) from the shaders' +output; +#X text 437 386 this loads a texture (texunit 2); +#X text 691 411 not used \, just to set texture coordinate; +#X text 633 594 This uses the two textures (texunit 2 and 3) in order +to render the final images; +#X text 201 9 This is an example of rendering to texture (using framebuffer) +and multitextures; +#X obj 402 497 t a a a a a; +#X obj 774 393 pix_set 512 512; +#N canvas 87 154 452 208 Gem.init 0; +#X obj 118 46 loadbang; +#X obj 118 113 outlet; +#X msg 118 81 reset \, dimen 800 600; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X restore 760 47 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 1 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 730 64 pd gemwin; +#X msg 786 463 rectangle 1; +#X msg 454 331 texunit 2 \, quality 1 \, rectangle 1; +#X msg 137 222 type FLOAT \, dimen 512 512 \, rectangle 1; +#X msg 220 202 quality 1 \, rectangle 1; +#X msg 867 255 K \$1 \, texture1 2 \, texture2 3; +#X text 880 276 texture1==base; +#X text 882 294 texture2==deformation; +#X connect 0 0 5 0; +#X connect 1 0 18 0; +#X connect 3 0 2 0; +#X connect 4 0 0 0; +#X connect 4 1 7 1; +#X connect 4 1 13 0; +#X connect 5 0 28 0; +#X connect 5 1 3 0; +#X connect 6 0 7 0; +#X connect 7 0 26 0; +#X connect 7 1 11 0; +#X connect 7 1 46 1; +#X connect 9 0 8 0; +#X connect 11 0 10 0; +#X connect 13 0 12 0; +#X connect 15 0 14 0; +#X connect 16 0 45 0; +#X connect 17 0 23 0; +#X connect 17 1 5 1; +#X connect 17 1 15 0; +#X connect 18 0 4 0; +#X connect 19 0 4 0; +#X connect 19 0 17 0; +#X connect 20 0 72 0; +#X connect 21 0 20 0; +#X connect 22 0 20 0; +#X connect 23 0 25 0; +#X connect 23 1 31 0; +#X connect 24 0 48 0; +#X connect 25 0 6 0; +#X connect 26 0 27 0; +#X connect 29 0 18 1; +#X connect 30 0 18 2; +#X connect 31 0 66 0; +#X connect 33 0 34 0; +#X connect 34 0 43 0; +#X connect 35 0 50 1; +#X connect 36 0 50 0; +#X connect 37 0 50 2; +#X connect 39 0 74 0; +#X connect 40 0 59 0; +#X connect 41 0 71 0; +#X connect 42 0 70 0; +#X connect 43 0 67 0; +#X connect 43 1 40 0; +#X connect 44 0 43 0; +#X connect 45 0 46 0; +#X connect 46 1 9 0; +#X connect 47 0 5 0; +#X connect 47 0 46 0; +#X connect 47 0 7 0; +#X connect 49 0 47 0; +#X connect 51 0 57 0; +#X connect 52 0 73 0; +#X connect 53 0 52 0; +#X connect 54 0 46 0; +#X connect 55 0 17 0; +#X connect 56 0 58 0; +#X connect 57 0 1 0; +#X connect 58 0 38 0; +#X connect 59 0 39 0; +#X connect 66 0 24 0; +#X connect 66 1 24 0; +#X connect 66 2 24 0; +#X connect 66 3 24 0; +#X connect 66 4 24 0; +#X connect 67 0 36 0; +#X connect 68 0 69 0; +#X connect 70 0 36 0; +#X connect 71 0 38 0; +#X connect 72 0 19 0; +#X connect 73 0 47 0; +#X connect 74 0 43 1; diff --git a/Gem/examples/10.glsl/08.multi_pass_rendering.pd b/Gem/examples/10.glsl/08.multi_pass_rendering.pd new file mode 100644 index 0000000..5ada6be --- /dev/null +++ b/Gem/examples/10.glsl/08.multi_pass_rendering.pd @@ -0,0 +1,341 @@ +#N canvas 208 184 980 477 10; +#X obj 42 315 square 4; +#X obj 42 199 translateXYZ 0 0 -4; +#X obj 671 399 pix_texture; +#X obj 671 419 square 4; +#N canvas 370 126 407 295 init 0; +#X obj 106 175 outlet; +#X msg 125 89 type FLOAT; +#X obj 124 68 loadbang; +#X msg 146 109 dimen 1024 1024; +#X msg 211 147 rectangle 0; +#X connect 1 0 0 0; +#X connect 2 0 1 0; +#X connect 2 0 3 0; +#X connect 2 0 4 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X restore 56 157 pd init; +#X obj 650 230 pix_texture; +#X obj 650 252 square 4; +#X floatatom 724 255 5 0 0 0 - - -; +#N canvas 157 111 392 206 init 0; +#X obj 93 68 t b; +#X obj 93 47 loadbang; +#X obj 93 159 outlet; +#X msg 93 118 type FLOAT \, dimen 1024 1024 \, rectangle 0; +#X connect 0 0 3 0; +#X connect 1 0 0 0; +#X connect 3 0 2 0; +#X restore 669 120 pd init; +#X obj 353 199 translateXYZ 0 0 -4; +#N canvas 700 0 407 295 init 0; +#X obj 106 175 outlet; +#X obj 106 68 loadbang; +#X msg 106 118 type FLOAT \, dimen 1024 1024 \, rectangle 0; +#X connect 1 0 2 0; +#X connect 2 0 0 0; +#X restore 373 156 pd init; +#X text 6 4 first input \, render whatever in a frambuffer; +#X obj 691 357 loadbang; +#X obj 42 222 pix_image img1.jpg; +#X obj 42 54 gemhead 11; +#X obj 666 187 loadbang; +#X obj 650 166 translateXYZ 0 0 -4; +#X obj 650 142 gemframebuffer; +#X obj 353 177 gemframebuffer; +#N canvas 330 106 589 635 shader1 0; +#X obj 94 500 glsl_program; +#X obj 94 340 glsl_fragment; +#X obj 94 160 glsl_vertex; +#X obj 172 400 pack 0 0; +#X obj 162 200 change; +#X obj 182 375 change; +#X msg 172 420 link \$1 \$2; +#X obj 162 220 t b f; +#X obj 176 444 print linking; +#X obj 94 66 inlet; +#X obj 94 530 outlet; +#X obj 464 245 inlet; +#X floatatom 182 179 0 0 0 0 - - -; +#X floatatom 234 377 0 0 0 0 - - -; +#X msg 56 472 print; +#X msg 246 65 1; +#X obj 246 106 t b; +#X obj 246 46 gemhead 1; +#X obj 175 548 t b; +#X obj 175 571 outlet; +#X msg 246 135 open T_distord.vert; +#X msg 289 160 open T_distord.frag; +#X obj 246 86 change -1; +#X obj 175 524 change; +#X connect 0 0 10 0; +#X connect 0 1 23 0; +#X connect 1 0 0 0; +#X connect 1 1 5 0; +#X connect 1 1 13 0; +#X connect 2 0 1 0; +#X connect 2 1 4 0; +#X connect 2 1 12 0; +#X connect 3 0 6 0; +#X connect 4 0 7 0; +#X connect 5 0 3 0; +#X connect 6 0 0 0; +#X connect 6 0 8 0; +#X connect 7 0 3 0; +#X connect 7 1 3 1; +#X connect 9 0 2 0; +#X connect 11 0 0 0; +#X connect 14 0 0 0; +#X connect 15 0 22 0; +#X connect 16 0 20 0; +#X connect 16 0 21 0; +#X connect 17 0 15 0; +#X connect 18 0 19 0; +#X connect 20 0 2 0; +#X connect 21 0 1 0; +#X connect 22 0 16 0; +#X connect 23 0 18 0; +#X restore 42 81 pd shader1; +#N canvas 476 68 589 635 shader2 0; +#X obj 94 500 glsl_program; +#X obj 94 340 glsl_fragment; +#X obj 94 160 glsl_vertex; +#X obj 172 400 pack 0 0; +#X obj 162 200 change; +#X obj 182 375 change; +#X msg 172 420 link \$1 \$2; +#X obj 162 220 t b f; +#X obj 176 444 print linking; +#X obj 94 66 inlet; +#X obj 94 530 outlet; +#X obj 464 245 inlet; +#X floatatom 182 179 0 0 0 0 - - -; +#X floatatom 234 377 0 0 0 0 - - -; +#X msg 56 472 print; +#X msg 246 65 1; +#X obj 246 106 t b; +#X obj 246 46 gemhead 1; +#X obj 175 548 t b; +#X obj 175 571 outlet; +#X msg 246 135 open P_distord.vert; +#X msg 289 160 open P_distord.frag; +#X obj 246 86 change -1; +#X obj 175 524 change; +#X connect 0 0 10 0; +#X connect 0 1 23 0; +#X connect 1 0 0 0; +#X connect 1 1 5 0; +#X connect 1 1 13 0; +#X connect 2 0 1 0; +#X connect 2 1 4 0; +#X connect 2 1 12 0; +#X connect 3 0 6 0; +#X connect 4 0 7 0; +#X connect 5 0 3 0; +#X connect 6 0 0 0; +#X connect 6 0 8 0; +#X connect 7 0 3 0; +#X connect 7 1 3 1; +#X connect 9 0 2 0; +#X connect 11 0 0 0; +#X connect 14 0 0 0; +#X connect 15 0 22 0; +#X connect 16 0 20 0; +#X connect 16 0 21 0; +#X connect 17 0 15 0; +#X connect 18 0 19 0; +#X connect 20 0 2 0; +#X connect 21 0 1 0; +#X connect 22 0 16 0; +#X connect 23 0 18 0; +#X restore 353 78 pd shader2; +#N canvas 660 91 589 635 shader3 0; +#X obj 94 500 glsl_program; +#X obj 94 340 glsl_fragment; +#X obj 94 160 glsl_vertex; +#X obj 172 400 pack 0 0; +#X obj 162 200 change; +#X obj 182 375 change; +#X msg 172 420 link \$1 \$2; +#X obj 162 220 t b f; +#X obj 176 444 print linking; +#X obj 94 66 inlet; +#X obj 94 530 outlet; +#X obj 464 245 inlet; +#X floatatom 182 179 0 0 0 0 - - -; +#X floatatom 234 377 0 0 0 0 - - -; +#X msg 56 472 print; +#X msg 246 65 1; +#X obj 246 106 t b; +#X obj 246 46 gemhead 1; +#X obj 175 548 t b; +#X obj 175 571 outlet; +#X msg 326 429 MyTex 1; +#X msg 336 451 MyTex1 2; +#X msg 247 135 open multitexture.vert; +#X msg 291 160 open multitexture.frag; +#X obj 246 86 change -1; +#X obj 175 524 change; +#X connect 0 0 10 0; +#X connect 0 1 25 0; +#X connect 1 0 0 0; +#X connect 1 1 5 0; +#X connect 1 1 13 0; +#X connect 2 0 1 0; +#X connect 2 1 4 0; +#X connect 2 1 12 0; +#X connect 3 0 6 0; +#X connect 4 0 7 0; +#X connect 5 0 3 0; +#X connect 6 0 0 0; +#X connect 6 0 8 0; +#X connect 7 0 3 0; +#X connect 7 1 3 1; +#X connect 9 0 2 0; +#X connect 11 0 0 0; +#X connect 14 0 0 0; +#X connect 15 0 24 0; +#X connect 16 0 22 0; +#X connect 16 0 23 0; +#X connect 17 0 15 0; +#X connect 18 0 19 0; +#X connect 18 0 20 0; +#X connect 18 0 21 0; +#X connect 20 0 0 0; +#X connect 21 0 0 0; +#X connect 22 0 2 0; +#X connect 23 0 1 0; +#X connect 24 0 16 0; +#X connect 25 0 18 0; +#X restore 650 79 pd shader3; +#X obj 650 54 gemhead 31; +#X obj 671 314 gemhead 32; +#X obj 56 248 loadbang; +#X obj 367 245 loadbang; +#X msg 56 270 rectangle 0; +#X msg 367 267 rectangle 0; +#X obj 42 295 pix_texture; +#X msg 55 135 texunit 1; +#X obj 55 113 loadbang; +#X obj 366 115 loadbang; +#X msg 366 136 texunit 2; +#X msg 141 48 1; +#X floatatom 141 69 5 0 0 0 - - -; +#X msg 141 88 K1 \$1; +#X text 183 69 change effect; +#X text 347 1 second input : same as 1st.; +#X text 7 22 put framebuffer as texunit 1 \, for futur use; +#X text 348 17 render an image in framebuffer.; +#X text 350 31 put framebuffer in texunit 2; +#X text 632 8 finally :; +#X text 631 23 shader mixing 2 textures in a framebuffer; +#X floatatom 449 79 5 0 0 0 - - -; +#X text 491 79 change effect; +#X msg 449 98 K \$1; +#X msg 449 58 0.1; +#X text 161 433 <-------------------; +#X text 569 442 draw the final frambuffer (without shader); +#X obj 671 335 rotateXYZ -20 0 0; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 58 46 loadbang; +#X obj 58 113 outlet; +#X msg 58 80 reset \, dimen 320 240; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X restore 99 394 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 1 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 69 411 pd gemwin; +#X obj 42 177 gemframebuffer; +#X obj 353 332 mesh_square 10 10; +#X obj 353 311 scaleXYZ 4 4 1; +#X obj 353 57 gemhead 21; +#X obj 353 222 pix_image img2.jpg; +#X obj 353 291 pix_texture; +#X msg 666 209 rectangle 0; +#X msg 691 378 rectangle 0; +#X connect 1 0 13 0; +#X connect 2 0 3 0; +#X connect 4 0 52 0; +#X connect 5 0 6 0; +#X connect 5 1 7 0; +#X connect 8 0 17 0; +#X connect 9 0 56 0; +#X connect 10 0 18 0; +#X connect 12 0 59 0; +#X connect 13 0 28 0; +#X connect 14 0 19 0; +#X connect 15 0 58 0; +#X connect 16 0 5 0; +#X connect 17 0 16 0; +#X connect 17 1 2 1; +#X connect 18 0 9 0; +#X connect 19 0 52 0; +#X connect 19 1 33 0; +#X connect 20 0 18 0; +#X connect 20 1 46 0; +#X connect 21 0 17 0; +#X connect 22 0 21 0; +#X connect 23 0 49 0; +#X connect 24 0 26 0; +#X connect 25 0 27 0; +#X connect 26 0 28 0; +#X connect 27 0 57 0; +#X connect 28 0 0 0; +#X connect 29 0 52 0; +#X connect 30 0 29 0; +#X connect 31 0 32 0; +#X connect 32 0 18 0; +#X connect 33 0 34 0; +#X connect 34 0 35 0; +#X connect 35 0 19 1; +#X connect 43 0 45 0; +#X connect 45 0 20 1; +#X connect 46 0 43 0; +#X connect 49 0 2 0; +#X connect 50 0 51 0; +#X connect 52 0 1 0; +#X connect 54 0 53 0; +#X connect 55 0 20 0; +#X connect 56 0 57 0; +#X connect 57 0 54 0; +#X connect 58 0 5 0; +#X connect 59 0 2 0; diff --git a/Gem/examples/10.glsl/09.vertex_texture_fetching.pd b/Gem/examples/10.glsl/09.vertex_texture_fetching.pd new file mode 100644 index 0000000..e1439c4 --- /dev/null +++ b/Gem/examples/10.glsl/09.vertex_texture_fetching.pd @@ -0,0 +1,142 @@ +#N canvas 239 0 785 526 10; +#X obj 504 69 gemhead; +#X obj 576 346 pack 0 0; +#X obj 597 326 t b f; +#X msg 576 369 link \$1 \$2; +#X floatatom 597 307 2 0 0 0 ID - -; +#X floatatom 576 206 2 0 0 0 ID - -; +#X obj 594 390 print linking; +#X obj 504 480 pix_texture; +#X obj 540 118 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 28 199 gemhead 1; +#X obj 28 311 gemframebuffer; +#X obj 28 485 pix_texture; +#X obj 28 336 translateXYZ 0 0 -4; +#X obj 28 510 square 4; +#X obj 504 261 glsl_fragment; +#X obj 504 164 glsl_vertex; +#X obj 576 183 change; +#X obj 597 281 change; +#X obj 504 409 glsl_program; +#X floatatom 542 505 5 0 0 0 - - -; +#X obj 49 231 loadbang; +#X obj 44 419 loadbang; +#X msg 520 456 quality 0; +#N canvas 703 231 450 300 load_glsl 0; +#X obj 51 22 gemhead; +#X obj 51 98 outlet; +#X obj 51 50 route gem_state; +#X obj 51 74 route 1; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 1 0; +#X restore 540 93 pd load_glsl; +#X msg 514 231 open fetching.frag; +#X msg 518 142 open fetching.vert; +#X obj 504 525 rotateXYZ -30 0 0; +#X obj 504 551 scaleXYZ 3 3 1; +#X obj 28 388 pix_image img1.jpg; +#X msg 46 363 open img2.jpg; +#X text 137 11 This patch need a glsl 3 compliant hardware; +#X text 26 535 draw an image in a frambuffer; +#X text 49 274 this configuration is very important to have full hardware +support for vertex texture fetching; +#X text 306 603 this example uses the framebuffer image in the vertex +shader in the same way you can do in the pixel shader. This is only +possible in this specific configuration (it's a hardware limitation) +; +#X text 137 56 (nvidia 7000 and 8000 serie should work \, ati X1000 +serie does not \, but later should); +#X obj 504 579 mesh_square 200; +#X text 138 28 As in 2007 \, only good (and new) graphic cards are +able to run this patch.; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 56 77 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 26 94 pd gemwin; +#X msg 49 255 rectangle 0 \, type BYTE \, format RGB32 \, dimen 1024 +1024; +#X msg 44 439 rectangle 0 \, quality 0; +#X obj 520 437 loadbang; +#X connect 0 0 15 0; +#X connect 1 0 3 0; +#X connect 2 0 1 0; +#X connect 2 1 1 1; +#X connect 3 0 6 0; +#X connect 3 0 18 0; +#X connect 4 0 2 0; +#X connect 5 0 1 0; +#X connect 7 0 26 0; +#X connect 8 0 25 0; +#X connect 8 0 24 0; +#X connect 9 0 10 0; +#X connect 10 0 12 0; +#X connect 10 1 7 1; +#X connect 11 0 13 0; +#X connect 12 0 28 0; +#X connect 14 0 18 0; +#X connect 14 1 17 0; +#X connect 15 0 14 0; +#X connect 15 1 16 0; +#X connect 16 0 5 0; +#X connect 17 0 4 0; +#X connect 18 0 7 0; +#X connect 19 0 26 1; +#X connect 20 0 39 0; +#X connect 21 0 40 0; +#X connect 22 0 7 0; +#X connect 23 0 8 0; +#X connect 24 0 14 0; +#X connect 25 0 15 0; +#X connect 26 0 27 0; +#X connect 27 0 35 0; +#X connect 28 0 11 0; +#X connect 29 0 28 0; +#X connect 37 0 38 0; +#X connect 39 0 10 0; +#X connect 40 0 11 0; +#X connect 41 0 22 0; diff --git a/Gem/examples/10.glsl/10.GPGPU_Physical_model.pd b/Gem/examples/10.glsl/10.GPGPU_Physical_model.pd new file mode 100644 index 0000000..6d44970 --- /dev/null +++ b/Gem/examples/10.glsl/10.GPGPU_Physical_model.pd @@ -0,0 +1,1246 @@ +#N struct 1002-xy-pad-knob-1 float x0 float y0 float id; +#N canvas 875 218 764 482 10; +#X obj 27 380 hradio 15 1 0 5 empty empty empty 0 -8 0 10 -262144 -1 +-1 0; +#X floatatom 185 212 5 0 0 0 - - -; +#N canvas 4 106 187 219 fps 0; +#X obj 22 62 realtime; +#X obj 22 41 t b b; +#X obj 22 19 gemhead; +#X obj 22 170 outlet; +#X msg 22 84 1000 \$1; +#X obj 22 105 /; +#X obj 22 126 + 0.5; +#X obj 22 147 i; +#X connect 0 0 4 0; +#X connect 1 0 0 0; +#X connect 1 1 0 1; +#X connect 2 0 1 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 7 0 3 0; +#X restore 185 192 pd fps; +#N canvas 93 66 1183 666 shaders_PM 0; +#X obj 718 34 gemhead; +#X obj 718 57 route gem_state; +#X obj 718 79 route 1 0; +#X obj 24 477 translateXYZ 0 0 -4; +#X obj 24 609 square 4; +#X msg 50 399 texunit 1; +#X obj 50 378 loadbang; +#N canvas 573 206 607 627 shader 0; +#X obj 126 247 change; +#X obj 126 323 print linking; +#X obj 32 227 glsl_fragment; +#N canvas 0 0 450 300 load_shader 0; +#X obj 89 99 t b b; +#X msg 119 126 0; +#X obj 89 154 outlet; +#X obj 89 71 gemhead 1; +#X connect 0 0 2 0; +#X connect 0 1 1 0; +#X connect 1 0 3 0; +#X connect 3 0 0 0; +#X restore 148 49 pd load_shader; +#X obj 32 36 inlet; +#X obj 32 423 outlet; +#X obj 155 18 inlet; +#N canvas 0 0 450 300 init_shader 0; +#X obj 89 154 outlet; +#X obj 89 45 inlet; +#X obj 89 73 change; +#X obj 89 100 t b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 0 0; +#X restore 113 378 pd init_shader; +#X obj 278 25 inlet; +#X obj 113 408 outlet; +#X msg 42 203 open mass.frag; +#X obj 32 354 glsl_program; +#X obj 32 137 glsl_vertex; +#X msg 42 113 open mass.vert; +#X obj 94 74 t b b; +#X obj 126 272 pack f f; +#X msg 126 296 link \$1 \$2; +#X connect 0 0 15 0; +#X connect 2 0 11 0; +#X connect 2 1 0 0; +#X connect 3 0 14 0; +#X connect 4 0 12 0; +#X connect 6 0 14 0; +#X connect 7 0 9 0; +#X connect 8 0 11 0; +#X connect 10 0 2 0; +#X connect 11 0 5 0; +#X connect 11 1 7 0; +#X connect 12 0 2 0; +#X connect 12 1 15 1; +#X connect 13 0 12 0; +#X connect 14 0 10 0; +#X connect 14 1 13 0; +#X connect 15 0 16 0; +#X connect 16 0 1 0; +#X connect 16 0 11 0; +#X restore 24 257 pd shader; +#X obj 53 234 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 506 468 translateXYZ 0 0 -4; +#X obj 506 610 square 4; +#X obj 261 477 translateXYZ 0 0 -4; +#X obj 290 368 loadbang; +#N canvas 1062 27 528 709 shader 0; +#X obj 32 384 glsl_program; +#X obj 32 36 inlet; +#X obj 32 453 outlet; +#X obj 155 18 inlet; +#N canvas 0 0 450 300 init_shader 0; +#X obj 89 154 outlet; +#X obj 89 45 inlet; +#X obj 89 73 change; +#X obj 89 100 t b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 0 0; +#X restore 113 408 pd init_shader; +#X obj 278 25 inlet; +#X obj 113 438 outlet; +#X obj 126 247 change; +#X obj 126 323 print linking; +#X obj 32 227 glsl_fragment; +#N canvas 0 0 450 300 load_shader 0; +#X obj 89 99 t b b; +#X msg 119 126 0; +#X obj 89 154 outlet; +#X obj 89 71 gemhead 1; +#X connect 0 0 2 0; +#X connect 0 1 1 0; +#X connect 1 0 3 0; +#X connect 3 0 0 0; +#X restore 148 49 pd load_shader; +#X obj 32 137 glsl_vertex; +#X obj 94 74 t b b; +#X obj 126 272 pack f f; +#X msg 126 296 link \$1 \$2; +#X msg 42 113 open link.vert; +#X msg 42 203 open link.frag; +#X connect 0 0 2 0; +#X connect 0 1 4 0; +#X connect 1 0 11 0; +#X connect 3 0 12 0; +#X connect 4 0 6 0; +#X connect 5 0 0 0; +#X connect 7 0 13 0; +#X connect 9 0 0 0; +#X connect 9 1 7 0; +#X connect 10 0 12 0; +#X connect 11 0 9 0; +#X connect 11 1 13 1; +#X connect 12 0 16 0; +#X connect 12 1 15 0; +#X connect 13 0 14 0; +#X connect 14 0 8 0; +#X connect 14 0 0 0; +#X connect 15 0 11 0; +#X connect 16 0 9 0; +#X restore 261 256 pd shader; +#X obj 292 231 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 280 539 loadbang; +#X obj 119 448 s texture_mass; +#X obj 359 444 s texture_link; +#X obj 530 373 loadbang; +#X msg 530 394 texunit 2; +#X msg 286 390 texunit 3; +#X obj 601 440 s texture_mass2; +#X obj 321 229 r shader_link; +#X obj 321 277 s init_shader_link; +#X obj 261 612 square 4; +#X obj 613 34 inlet; +#X obj 24 201 gemhead 2; +#X obj 261 185 gemhead 11; +#X obj 506 236 gemhead 21; +#X msg 41 561 rectangle 1 \, quality 0; +#X msg 280 560 rectangle 1 \, quality 0; +#X obj 615 58 t b b; +#X obj 658 36 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 621 113 s init_shader_link; +#X obj 84 233 r shader_mass; +#X obj 84 281 s init_shader_mass; +#X obj 601 140 s init_shader_mass; +#X obj 261 589 pix_texture; +#X obj 261 418 gemframebuffer; +#X obj 24 588 pix_texture; +#X obj 24 425 gemframebuffer; +#X obj 65 310 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 506 418 gemframebuffer; +#X obj 524 513 loadbang; +#X msg 524 532 rectangle 1 \, quality 0; +#X obj 506 588 pix_texture; +#X obj 580 565 r texture_mass; +#X obj 103 260 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 341 251 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 616 79 delay 500; +#N canvas 0 0 446 324 init_fb 0; +#X msg 100 173 type BYTE; +#X msg 78 151 format RGB32; +#X obj 46 121 t b b; +#X obj 78 261 t a; +#X obj 78 285 outlet; +#X msg 137 215 rectangle 1; +#X msg 46 196 dimen 128 128; +#X obj 46 11 inlet; +#X msg 137 42 0; +#X obj 46 49 spigot 1; +#X obj 46 72 t a b; +#X connect 0 0 3 0; +#X connect 1 0 3 0; +#X connect 2 0 6 0; +#X connect 2 1 1 0; +#X connect 2 1 0 0; +#X connect 2 1 5 0; +#X connect 3 0 4 0; +#X connect 5 0 3 0; +#X connect 6 0 3 0; +#X connect 7 0 9 0; +#X connect 8 0 9 1; +#X connect 9 0 10 0; +#X connect 10 0 2 0; +#X connect 10 1 8 0; +#X restore 56 337 pd init_fb; +#X obj 24 306 t a b; +#X obj 302 300 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#N canvas 0 0 450 300 init_fb 0; +#X msg 100 153 type BYTE; +#X msg 78 131 format RGB32; +#X obj 46 101 t b b; +#X obj 78 241 t a; +#X obj 78 265 outlet; +#X msg 137 195 rectangle 1; +#X msg 46 176 dimen 128 128; +#X obj 46 11 inlet; +#X msg 137 42 0; +#X obj 46 49 spigot 1; +#X obj 46 72 t a b; +#X connect 0 0 3 0; +#X connect 1 0 3 0; +#X connect 2 0 6 0; +#X connect 2 1 1 0; +#X connect 2 1 0 0; +#X connect 2 1 5 0; +#X connect 3 0 4 0; +#X connect 5 0 3 0; +#X connect 6 0 3 0; +#X connect 7 0 9 0; +#X connect 8 0 9 1; +#X connect 9 0 10 0; +#X connect 10 0 2 0; +#X connect 10 1 8 0; +#X restore 293 327 pd init_fb; +#X obj 261 296 t a b; +#X obj 547 298 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#N canvas 0 0 450 300 init_fb 0; +#X msg 100 153 type BYTE; +#X msg 78 131 format RGB32; +#X obj 46 101 t b b; +#X obj 78 241 t a; +#X obj 78 265 outlet; +#X msg 137 195 rectangle 1; +#X msg 46 176 dimen 128 128; +#X obj 46 11 inlet; +#X msg 137 42 0; +#X obj 46 49 spigot 1; +#X obj 46 72 t a b; +#X connect 0 0 3 0; +#X connect 1 0 3 0; +#X connect 2 0 6 0; +#X connect 2 1 1 0; +#X connect 2 1 0 0; +#X connect 2 1 5 0; +#X connect 3 0 4 0; +#X connect 5 0 3 0; +#X connect 6 0 3 0; +#X connect 7 0 9 0; +#X connect 8 0 9 1; +#X connect 9 0 10 0; +#X connect 10 0 2 0; +#X connect 10 1 8 0; +#X restore 538 325 pd init_fb; +#X obj 506 294 t a b; +#X obj 32 29 gemhead 2; +#X msg 271 106 0; +#X obj 271 82 loadbang; +#X msg 33 59 20; +#X obj 32 90 until; +#X obj 44 540 loadbang; +#X msg 804 378 init \$1; +#X floatatom 804 360 5 0 1 0 - - -; +#X obj 762 371 t b; +#X obj 762 254 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X msg 762 407 texture_link 3; +#X msg 804 338 1; +#X msg 950 229 gravite \$1; +#X floatatom 948 189 5 0 0 0 - - -; +#X floatatom 1012 190 5 0 0 0 - - -; +#X msg 1012 206 D \$1; +#X msg 1063 208 K1 \$1; +#X floatatom 1062 189 5 0 0 0 - - -; +#X obj 948 207 / 100; +#X obj 950 251 t a; +#X obj 950 526 s shader_link; +#X obj 952 90 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 952 70 r init_shader_link; +#X obj 950 146 t b; +#X obj 952 127 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X msg 1059 168 0.05; +#X msg 950 169 -0.0025; +#X msg 1009 170 0.004; +#X obj 842 314 delay 1000; +#X msg 842 337 0; +#X obj 762 454 s shader_mass; +#X obj 762 225 r init_shader_mass; +#X obj 804 286 t b; +#X msg 992 362 init \$1; +#X floatatom 992 344 5 0 1 0 - - -; +#X msg 992 322 1; +#X obj 1030 298 delay 1000; +#X msg 1030 321 0; +#X obj 991 270 t b; +#X msg 1049 470 texture_mass 1; +#X msg 1040 496 texture_mass_old 2; +#X obj 1040 419 t b; +#X msg 771 426 texture_mass_old 2; +#X msg 1071 391 N \$1; +#X msg 1071 367 0.01; +#X msg 1121 368 0; +#X obj 1078 340 delay 100; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 31 0; +#X connect 3 0 39 0; +#X connect 5 0 40 0; +#X connect 6 0 5 0; +#X connect 7 0 51 0; +#X connect 7 1 35 0; +#X connect 8 0 7 1; +#X connect 9 0 45 0; +#X connect 11 0 37 0; +#X connect 12 0 20 0; +#X connect 13 0 54 0; +#X connect 13 1 23 0; +#X connect 14 0 13 1; +#X connect 15 0 30 0; +#X connect 18 0 19 0; +#X connect 19 0 42 0; +#X connect 20 0 38 0; +#X connect 22 0 13 2; +#X connect 25 0 31 0; +#X connect 26 0 7 0; +#X connect 27 0 13 0; +#X connect 28 0 57 0; +#X connect 29 0 39 0; +#X connect 30 0 37 0; +#X connect 31 0 49 0; +#X connect 31 1 8 0; +#X connect 31 1 14 0; +#X connect 32 0 31 0; +#X connect 34 0 7 2; +#X connect 37 0 24 0; +#X connect 38 0 11 0; +#X connect 38 1 17 0; +#X connect 38 1 37 1; +#X connect 39 0 4 0; +#X connect 40 0 3 0; +#X connect 40 1 16 0; +#X connect 40 1 39 1; +#X connect 41 0 50 0; +#X connect 42 0 9 0; +#X connect 42 1 21 0; +#X connect 43 0 44 0; +#X connect 44 0 45 0; +#X connect 45 0 10 0; +#X connect 46 0 45 1; +#X connect 47 0 35 0; +#X connect 48 0 23 0; +#X connect 49 0 33 0; +#X connect 49 0 36 0; +#X connect 50 0 40 0; +#X connect 51 0 40 0; +#X connect 51 1 50 0; +#X connect 52 0 53 0; +#X connect 53 0 38 0; +#X connect 54 0 38 0; +#X connect 54 1 53 0; +#X connect 55 0 56 0; +#X connect 56 0 42 0; +#X connect 57 0 42 0; +#X connect 57 1 56 0; +#X connect 58 0 61 0; +#X connect 59 0 26 0; +#X connect 59 0 27 0; +#X connect 59 0 28 0; +#X connect 60 0 59 0; +#X connect 61 0 62 0; +#X connect 62 0 26 0; +#X connect 62 0 27 0; +#X connect 62 0 28 0; +#X connect 63 0 29 0; +#X connect 64 0 88 0; +#X connect 65 0 64 0; +#X connect 66 0 68 0; +#X connect 66 0 100 0; +#X connect 67 0 66 0; +#X connect 67 0 90 0; +#X connect 68 0 88 0; +#X connect 69 0 65 0; +#X connect 70 0 77 0; +#X connect 71 0 76 0; +#X connect 72 0 73 0; +#X connect 73 0 77 0; +#X connect 74 0 77 0; +#X connect 75 0 74 0; +#X connect 76 0 70 0; +#X connect 77 0 78 0; +#X connect 79 0 82 0; +#X connect 79 0 96 0; +#X connect 80 0 79 0; +#X connect 81 0 84 0; +#X connect 81 0 85 0; +#X connect 81 0 83 0; +#X connect 82 0 81 0; +#X connect 83 0 75 0; +#X connect 84 0 71 0; +#X connect 85 0 72 0; +#X connect 86 0 87 0; +#X connect 87 0 65 0; +#X connect 89 0 67 0; +#X connect 90 0 69 0; +#X connect 90 0 86 0; +#X connect 91 0 78 0; +#X connect 92 0 91 0; +#X connect 93 0 92 0; +#X connect 94 0 95 0; +#X connect 94 0 102 0; +#X connect 94 0 104 0; +#X connect 95 0 92 0; +#X connect 96 0 93 0; +#X connect 96 0 94 0; +#X connect 96 0 99 0; +#X connect 97 0 78 0; +#X connect 98 0 78 0; +#X connect 99 0 97 0; +#X connect 99 0 98 0; +#X connect 100 0 88 0; +#X connect 101 0 78 0; +#X connect 102 0 101 0; +#X connect 103 0 101 0; +#X connect 104 0 103 0; +#X restore 27 323 pd shaders_PM _________________; +#N canvas 267 495 450 300 config 0; +#X msg 16 75 W \$1; +#X floatatom 225 101 5 0 0 0 - - -; +#X msg 225 120 f \$1; +#X obj 133 155 t a; +#X msg 133 83 N \$1; +#X text 141 101 bruit; +#X obj 16 53 / 11000; +#X obj 225 78 + 5; +#X obj 225 55 * 5; +#X obj 133 61 / 5000; +#X msg 338 120 t \$1; +#X obj 338 31 gemhead 77; +#X obj 338 56 t b; +#X obj 338 79 f; +#X obj 338 99 + 0.3; +#X obj 338 141 s shader_link; +#X obj 133 181 s shader_link; +#X obj 16 29 r oscillation1; +#X obj 133 31 r qqt_noise; +#X obj 225 31 r force_wind; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 16 0; +#X connect 4 0 3 0; +#X connect 6 0 0 0; +#X connect 7 0 1 0; +#X connect 8 0 7 0; +#X connect 9 0 4 0; +#X connect 10 0 15 0; +#X connect 11 0 12 0; +#X connect 12 0 13 0; +#X connect 13 0 14 0; +#X connect 14 0 13 1; +#X connect 14 0 10 0; +#X connect 17 0 6 0; +#X connect 18 0 9 0; +#X connect 19 0 8 0; +#X restore 27 361 pd config _____________________; +#N canvas 0 0 450 300 render 0; +#X obj 43 137 pix_texture; +#X obj 43 181 square 4; +#X obj 43 115 gemhead 66; +#X obj 241 120 != 0; +#X obj 210 119 == 0; +#X obj 133 58 r texture_link; +#X obj 146 77 r texture_interpol; +#X obj 210 146 s aff_drapeau; +#X obj 120 39 r texture_mass; +#X msg 43 94 0; +#X obj 43 73 loadbang; +#N canvas 0 0 656 297 spigot4 0; +#X obj 40 21 inlet; +#X obj 458 22 inlet; +#X obj 40 179 outlet; +#X obj 113 24 inlet; +#X obj 112 91 spigot 0; +#X obj 196 24 inlet; +#X obj 195 91 spigot 0; +#X obj 86 68 == 1; +#X obj 159 71 == 2; +#X obj 240 71 == 3; +#X obj 40 88 spigot 0; +#X obj 283 29 inlet; +#X obj 282 96 spigot 0; +#X obj 327 76 == 4; +#X obj 361 32 inlet; +#X obj 360 99 spigot 0; +#X obj 405 79 == 5; +#X connect 0 0 10 0; +#X connect 1 0 7 0; +#X connect 1 0 8 0; +#X connect 1 0 9 0; +#X connect 1 0 13 0; +#X connect 1 0 16 0; +#X connect 3 0 4 0; +#X connect 4 0 2 0; +#X connect 5 0 6 0; +#X connect 6 0 2 0; +#X connect 7 0 10 1; +#X connect 8 0 4 1; +#X connect 9 0 6 1; +#X connect 10 0 2 0; +#X connect 11 0 12 0; +#X connect 12 0 2 0; +#X connect 13 0 12 1; +#X connect 14 0 15 0; +#X connect 15 0 2 0; +#X connect 16 0 15 1; +#X restore 120 115 pd spigot4; +#X obj 160 96 r texture_normal; +#X obj 43 160 translateXYZ 0 0 -40; +#X obj 240 27 f; +#X obj 238 5 inlet; +#X connect 0 0 13 0; +#X connect 2 0 0 0; +#X connect 3 0 2 0; +#X connect 4 0 7 0; +#X connect 5 0 11 1; +#X connect 6 0 11 2; +#X connect 8 0 11 0; +#X connect 9 0 2 0; +#X connect 10 0 9 0; +#X connect 11 0 0 1; +#X connect 12 0 11 3; +#X connect 13 0 1 0; +#X connect 14 0 3 0; +#X connect 14 0 4 0; +#X connect 14 0 11 5; +#X connect 15 0 14 0; +#X restore 27 398 pd render _____________________; +#X text 288 6 Made by Cyrille Henry 2008 10 24; +#N canvas 452 305 812 549 shader_render 0; +#X obj 315 429 pix_texture; +#X obj 67 256 gemframebuffer; +#X obj 67 443 pix_texture; +#X obj 67 305 translateXYZ 0 0 -4; +#X obj 67 462 square 4; +#X obj 85 369 loadbang; +#N canvas 224 312 1052 398 init 0; +#X obj 14 130 outlet; +#X obj 14 30 inlet; +#X obj 14 53 spigot 1; +#X obj 31 81 t b; +#X msg 67 31 0; +#X msg 14 104 rectangle 1 \, type BYTE \, format RGB32 \, dim 256 256 +; +#X connect 1 0 2 0; +#X connect 2 0 5 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 2 1; +#X connect 5 0 0 0; +#X restore 99 223 pd init; +#N canvas 573 206 496 427 shader 0; +#X obj 32 264 glsl_program; +#X obj 126 187 change; +#X obj 126 233 print linking; +#X obj 32 167 glsl_fragment; +#X msg 126 208 link \$1; +#N canvas 0 0 450 300 load_shader 0; +#X obj 89 99 t b b; +#X msg 119 126 0; +#X obj 89 154 outlet; +#X obj 89 71 gemhead 30; +#X connect 0 0 2 0; +#X connect 0 1 1 0; +#X connect 1 0 3 0; +#X connect 3 0 0 0; +#X restore 120 89 pd load_shader; +#X obj 32 36 inlet; +#X obj 32 333 outlet; +#X obj 155 18 inlet; +#N canvas 0 0 450 300 init_shader 0; +#X obj 89 154 outlet; +#X obj 89 45 inlet; +#X obj 89 73 change; +#X obj 89 100 t b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 0 0; +#X restore 113 288 pd init_shader; +#X obj 278 25 inlet; +#X obj 113 318 outlet; +#X msg 43 143 open interpol.frag; +#X msg 135 265 set -1; +#X connect 0 0 7 0; +#X connect 0 1 9 0; +#X connect 1 0 4 0; +#X connect 3 0 0 0; +#X connect 3 1 1 0; +#X connect 4 0 0 0; +#X connect 4 0 2 0; +#X connect 5 0 12 0; +#X connect 6 0 3 0; +#X connect 8 0 12 0; +#X connect 8 0 13 0; +#X connect 9 0 11 0; +#X connect 10 0 0 0; +#X connect 12 0 3 0; +#X connect 13 0 9 0; +#X restore 67 175 pd shader; +#X obj 92 156 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 146 134 t b; +#X msg 146 155 texture_mass 1; +#N canvas 668 405 301 465 shader 0; +#X obj 110 298 pack 0 0; +#X obj 131 278 t b f; +#X msg 110 321 link \$1 \$2; +#X floatatom 131 259 2 0 0 0 ID - -; +#X floatatom 110 158 2 0 0 0 ID - -; +#X obj 128 342 print linking; +#X obj 74 70 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 38 213 glsl_fragment; +#X obj 38 116 glsl_vertex; +#X obj 110 135 change; +#X obj 131 233 change; +#X obj 38 371 glsl_program; +#N canvas 703 231 450 300 load_glsl 0; +#X obj 51 22 gemhead; +#X obj 51 98 outlet; +#X obj 51 50 route gem_state; +#X obj 51 74 route 1; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 1 0; +#X restore 74 45 pd load_glsl; +#X obj 41 13 inlet; +#X obj 37 397 outlet; +#X obj 150 10 inlet; +#X obj 265 14 inlet; +#N canvas 0 0 450 300 init_shader 0; +#X obj 89 154 outlet; +#X obj 89 45 inlet; +#X obj 89 73 change; +#X obj 89 100 t b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 0 0; +#X restore 107 399 pd init_shader; +#X obj 107 429 outlet; +#X msg 52 94 open fetching2.vert; +#X msg 48 183 open fetching2.frag; +#X msg 132 373 set -1; +#X connect 0 0 2 0; +#X connect 1 0 0 0; +#X connect 1 1 0 1; +#X connect 2 0 5 0; +#X connect 2 0 11 0; +#X connect 3 0 1 0; +#X connect 4 0 0 0; +#X connect 6 0 19 0; +#X connect 6 0 20 0; +#X connect 7 0 11 0; +#X connect 7 1 10 0; +#X connect 8 0 7 0; +#X connect 8 1 9 0; +#X connect 9 0 4 0; +#X connect 10 0 3 0; +#X connect 11 0 14 0; +#X connect 11 1 17 0; +#X connect 12 0 6 0; +#X connect 13 0 8 0; +#X connect 15 0 6 0; +#X connect 15 0 21 0; +#X connect 16 0 11 0; +#X connect 17 0 18 0; +#X connect 19 0 8 0; +#X connect 20 0 7 0; +#X connect 21 0 17 0; +#X restore 315 208 pd shader; +#X obj 345 185 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 387 229 t b; +#X obj 315 116 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 147 114 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 163 278 s texture_interpol; +#X obj 315 96 r aff_drapeau; +#X obj 67 102 gemhead 31; +#X obj 315 135 gemhead 51; +#X obj 410 25 inlet; +#X obj 410 156 delay 1000; +#X obj 315 461 mesh_square 92 64; +#X obj 315 156 alpha; +#X obj 315 316 scaleXYZ 15 15 15; +#X obj 315 286 translateXYZ 0 0.55 -8; +#X msg 327 399 quality 0; +#X msg 521 258 draw line; +#X msg 521 238 draw default; +#X msg 522 279 draw point; +#X floatatom 485 203 5 0 0 0 - - -; +#X obj 485 28 inlet; +#X obj 327 365 loadbang; +#X obj 67 198 t a b; +#X msg 410 185 texture 4; +#X msg 85 396 rectangle 1 \, quality 0; +#X obj 637 140 loadbang; +#X msg 637 162 15; +#X obj 637 184 s \$0-scale; +#X connect 0 0 22 0; +#X connect 1 0 3 0; +#X connect 1 1 0 1; +#X connect 1 1 2 1; +#X connect 1 1 16 0; +#X connect 2 0 4 0; +#X connect 3 0 2 0; +#X connect 5 0 35 0; +#X connect 6 0 1 0; +#X connect 7 0 33 0; +#X connect 7 1 15 0; +#X connect 8 0 7 1; +#X connect 9 0 10 0; +#X connect 10 0 7 2; +#X connect 11 0 25 0; +#X connect 11 1 13 0; +#X connect 12 0 11 1; +#X connect 13 0 34 0; +#X connect 14 0 19 0; +#X connect 15 0 9 0; +#X connect 17 0 14 0; +#X connect 18 0 7 0; +#X connect 19 0 23 0; +#X connect 20 0 21 0; +#X connect 20 0 12 0; +#X connect 20 0 8 0; +#X connect 21 0 34 0; +#X connect 23 0 11 0; +#X connect 24 0 0 0; +#X connect 25 0 24 0; +#X connect 26 0 0 0; +#X connect 27 0 22 0; +#X connect 28 0 22 0; +#X connect 29 0 22 0; +#X connect 30 0 24 1; +#X connect 30 0 24 2; +#X connect 30 0 24 3; +#X connect 31 0 30 0; +#X connect 32 0 26 0; +#X connect 33 0 1 0; +#X connect 33 1 6 0; +#X connect 34 0 11 2; +#X connect 35 0 2 0; +#X connect 36 0 37 0; +#X connect 37 0 38 0; +#X restore 27 304 pd shader_render ______________; +#X text 12 6 "Potential Flag" \, by Samuel Bianchini; +#X floatatom 606 304 5 0 0 0 - - -; +#X obj 606 324 * 10; +#N canvas 830 53 450 300 Gem.init 0; +#X obj 26 3 loadbang; +#X msg 26 26 perspec -1 1 -1 1 10 100; +#X obj 26 124 t a; +#X obj 25 153 outlet; +#X msg 55 77 dimen 800 600; +#X msg 37 51 FSAA 5; +#X connect 0 0 1 0; +#X connect 0 0 5 0; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 2 0; +#X connect 5 0 2 0; +#X restore 66 188 pd Gem.init; +#N canvas 341 104 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 1 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X obj 318 255 gemwin 30; +#X msg 441 219 color 0.2 0.3 0.5; +#X msg 443 257 dimen 1024 768; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 7 0; +#X connect 6 0 7 0; +#X connect 7 0 17 0; +#X connect 7 1 9 0; +#X connect 9 0 10 0; +#X connect 9 1 12 0; +#X connect 10 0 11 0; +#X connect 11 0 14 0; +#X connect 12 0 13 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 0 0; +#X connect 17 0 8 0; +#X connect 18 0 17 0; +#X connect 19 0 17 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 47 209 pd gemwin 30; +#X floatatom 210 282 5 0 0 0 scale-> #0-scale -; +#X obj 6 325 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#N canvas 290 239 395 502 shader_normal 0; +#X obj 51 233 gemframebuffer; +#X obj 51 347 pix_texture; +#X obj 51 276 translateXYZ 0 0 -4; +#X obj 51 366 square 4; +#X obj 67 304 loadbang; +#N canvas 0 0 1052 398 init 0; +#X obj 14 140 outlet; +#X obj 14 30 inlet; +#X obj 14 55 spigot 1; +#X obj 24 76 b; +#X msg 67 31 0; +#X msg 14 114 rectangle 1 \, type BYTE \, format RGB32 \, dim 128 128 +; +#X connect 1 0 2 0; +#X connect 2 0 5 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 2 1; +#X connect 5 0 0 0; +#X restore 83 160 pd init; +#N canvas 555 24 496 709 shader 0; +#X obj 32 474 glsl_program; +#X obj 126 357 change; +#X obj 126 443 print linking; +#X obj 32 337 glsl_fragment; +#N canvas 0 0 450 300 load_shader 0; +#X obj 89 99 t b b; +#X msg 119 126 0; +#X obj 89 154 outlet; +#X obj 89 71 gemhead 30; +#X connect 0 0 2 0; +#X connect 0 1 1 0; +#X connect 1 0 3 0; +#X connect 3 0 0 0; +#X restore 134 96 pd load_shader; +#X obj 32 36 inlet; +#X obj 32 543 outlet; +#X obj 175 28 inlet; +#N canvas 0 0 450 300 init_shader 0; +#X obj 89 154 outlet; +#X obj 89 45 inlet; +#X obj 89 73 change; +#X obj 89 100 t b; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 0 0; +#X restore 113 498 pd init_shader; +#X obj 278 25 inlet; +#X obj 113 528 outlet; +#X msg 43 313 open normal.frag; +#X obj 32 185 glsl_vertex; +#X obj 96 122 t b b; +#X obj 126 393 pack f f; +#X msg 126 418 link \$1 \$2; +#X msg 42 161 open normal.vert; +#X connect 0 0 6 0; +#X connect 0 1 8 0; +#X connect 1 0 14 0; +#X connect 3 0 0 0; +#X connect 3 1 1 0; +#X connect 4 0 13 0; +#X connect 5 0 12 0; +#X connect 7 0 13 0; +#X connect 8 0 10 0; +#X connect 9 0 0 0; +#X connect 11 0 3 0; +#X connect 12 0 3 0; +#X connect 12 1 14 1; +#X connect 13 0 11 0; +#X connect 13 1 16 0; +#X connect 14 0 15 0; +#X connect 15 0 0 0; +#X connect 15 0 2 0; +#X connect 16 0 12 0; +#X restore 51 112 pd shader; +#X obj 76 93 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 143 65 t b; +#X obj 146 45 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 157 252 s texture_normal; +#X obj 51 39 gemhead 32; +#X obj 78 189 loadbang; +#X msg 78 208 texunit 4; +#X msg 141 88 texture_mass 1; +#X obj 51 136 t a b; +#X msg 67 323 rectangle 1 \, quality 1; +#X connect 0 0 2 0; +#X connect 0 1 10 0; +#X connect 0 1 1 1; +#X connect 1 0 3 0; +#X connect 2 0 1 0; +#X connect 4 0 16 0; +#X connect 5 0 0 0; +#X connect 6 0 15 0; +#X connect 6 1 9 0; +#X connect 7 0 6 1; +#X connect 8 0 14 0; +#X connect 9 0 8 0; +#X connect 11 0 6 0; +#X connect 12 0 13 0; +#X connect 13 0 0 0; +#X connect 14 0 6 2; +#X connect 15 0 0 0; +#X connect 15 1 5 0; +#X connect 16 0 1 0; +#X restore 27 342 pd shader_normal ______________; +#X obj 6 304 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#N canvas 1468 153 767 700 \$0-pad 0; +#X msg 158 309 clear; +#N canvas 6 50 590 367 clear-all 0; +#X obj 89 46 inlet; +#X obj 89 122 s pd-\$0-work; +#X msg 89 99 clear; +#X obj 89 72 t b; +#X connect 0 0 3 0; +#X connect 2 0 1 0; +#X connect 3 0 2 0; +#X restore 158 331 pd clear-all; +#X obj 92 646 outlet; +#X obj 72 171 loadbang; +#X obj 191 411 metro 50; +#N canvas 581 163 695 660 pointer-parser 0; +#X obj 129 165 pointer; +#X text 276 46 from metro; +#X obj 282 346 t b f; +#X obj 117 49 inlet; +#X obj 237 48 inlet; +#X obj 129 541 outlet; +#X obj 129 398 pack 0 0; +#X obj 129 193 get \$0-xy-pad-knob-1 x0 y0; +#X obj 129 320 change -1; +#X obj 282 325 change -1; +#X obj 129 238 / 90; +#X obj 282 236 / 90; +#X obj 129 420 unpack 0 0; +#X obj 129 442 * 2; +#X obj 129 464 - 1; +#X obj 129 516 pack; +#X obj 169 442 * 2; +#X obj 169 464 - 1; +#X obj 384 202 set \$0-xy-pad-knob-1 x0 y0; +#X obj 384 43 inlet set; +#X obj 384 65 unpack; +#X text 432 67 -1..+1; +#X obj 384 112 + 1; +#X obj 384 134 / 2; +#X obj 384 156 * 90; +#X obj 424 112 + 1; +#X obj 424 134 / 2; +#X floatatom 173 241 5 0 0 0 - - -; +#X obj 424 156 * 90; +#X connect 0 0 18 2; +#X connect 0 0 7 0; +#X connect 2 0 6 0; +#X connect 2 1 6 1; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 6 0 12 0; +#X connect 7 0 10 0; +#X connect 7 0 27 0; +#X connect 7 1 11 0; +#X connect 8 0 6 0; +#X connect 9 0 2 0; +#X connect 10 0 8 0; +#X connect 11 0 9 0; +#X connect 12 0 13 0; +#X connect 12 1 16 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 5 0; +#X connect 16 0 17 0; +#X connect 17 0 15 1; +#X connect 19 0 20 0; +#X connect 20 0 22 0; +#X connect 20 1 25 0; +#X connect 22 0 23 0; +#X connect 23 0 24 0; +#X connect 24 0 18 0; +#X connect 25 0 26 0; +#X connect 26 0 28 0; +#X connect 28 0 18 1; +#X restore 72 448 pd pointer-parser; +#N canvas 419 563 751 371 add-controller 0; +#X msg 520 189 traverse \$1 \, bang; +#X obj 520 216 pointer; +#X obj 405 322 outlet; +#X obj 405 21 inlet; +#X obj 405 50 t f b; +#X obj 520 132 symbol pd-\$0-work; +#X obj 405 285 append \$0-xy-pad-knob-1 x0 y0 id; +#X obj 23 35 struct \$0-xy-pad-knob-1 float x0 float y0 float id; +#X obj 22 81 filledpolygon id 999 1 x0(0:90)(0:90) y0(0:90)(0:90) x0(0:90)(10:100) +y0(0:90)(0:90) x0(0:90)(10:100) y0(0:90)(10:100) x0(0:90)(0:90) y0(0:90)(10:100) +; +#X msg 405 261 45 45 \$1; +#X connect 0 0 1 0; +#X connect 1 0 6 3; +#X connect 3 0 4 0; +#X connect 4 0 9 0; +#X connect 4 1 5 0; +#X connect 5 0 0 0; +#X connect 6 0 2 0; +#X connect 9 0 6 0; +#X restore 72 379 pd add-controller; +#X obj 192 391 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X msg 193 370 1; +#X obj 72 303 t f b b; +#X text 111 233 5/10 red; +#X text 111 248 3/10 green; +#X text 111 263 2/10 blue; +#X text 522 76 (c) 2010 Thomas Musil; +#X text 521 58 (c) -2010 Frank Barknecht; +#X msg 72 233 900; +#X obj 162 646 outlet; +#X text 486 42 based on: xy-pad; +#N canvas 1444 366 450 300 xy2rphi 0; +#X obj 46 35 inlet x y; +#X obj 46 272 outlet r; +#X obj 136 266 outlet phi; +#X text 244 77 r=sqrt(x^2+y^2); +#X text 246 97 phi=atan2(y \, x); +#X obj 102 106 t f f f; +#X obj 102 129 *; +#X obj 46 169 +; +#X obj 46 106 t f f f; +#X obj 46 129 *; +#X obj 46 201 sqrt; +#X obj 136 157 pack; +#X obj 136 196 atan2; +#X msg 136 177 \$2 \$1; +#X obj 46 61 unpack 0 0; +#X text 147 282 in rad; +#X connect 0 0 14 0; +#X connect 5 0 6 0; +#X connect 5 1 6 1; +#X connect 5 2 11 1; +#X connect 6 0 7 1; +#X connect 7 0 10 0; +#X connect 8 0 9 0; +#X connect 8 1 9 1; +#X connect 8 2 11 0; +#X connect 9 0 7 0; +#X connect 10 0 1 0; +#X connect 11 0 13 0; +#X connect 12 0 2 0; +#X connect 13 0 12 0; +#X connect 14 0 8 0; +#X connect 14 1 5 0; +#X restore 394 485 pd xy2rphi; +#X obj 92 530 t l l; +#X obj 92 552 unpack 0 0; +#X obj 387 102 inlet r; +#X obj 456 103 inlet phi; +#X obj 444 333 t f f; +#X obj 444 357 cos; +#X obj 387 354 t f f; +#X obj 387 390 * 1; +#X obj 417 389 * 0; +#X obj 387 277 unpack 0 0; +#X obj 387 254 pack; +#X obj 456 225 t b f; +#X obj 471 356 sin; +#X obj 387 412 pack; +#X obj 387 204 t f; +#X obj 387 226 clip 0 1; +#X obj 304 74 cnv 10 12 12 empty empty empty 20 12 0 14 -99865 -66577 +0; +#N canvas 493 264 450 300 \$0-work 0; +#X scalar 1002-xy-pad-knob-1 71.2205 45 900 \;; +#X coords 0 100 100 0 100 100 1; +#X restore 260 30 pd \$0-work; +#X obj 451 532 wrap; +#X obj 72 193 t b b; +#X obj 608 163 atan2; +#X msg 608 138 1 0; +#X obj 608 185 * 4; +#X obj 608 207 t f f; +#X obj 378 612 s \$0-force; +#X obj 451 632 s \$0-direction; +#X msg 451 554 set \$1; +#X msg 378 564 set \$1; +#X obj 451 507 / 6.28; +#X obj 444 309 * -6.28; +#X obj 394 507 t f f; +#X obj 337 537 s force_wind; +#X obj 160 611 * -1; +#X connect 0 0 1 0; +#X connect 3 0 38 0; +#X connect 4 0 5 1; +#X connect 5 0 19 0; +#X connect 6 0 5 0; +#X connect 7 0 4 0; +#X connect 8 0 7 0; +#X connect 9 0 6 0; +#X connect 9 1 8 0; +#X connect 9 2 0 0; +#X connect 15 0 9 0; +#X connect 18 0 49 0; +#X connect 18 1 47 0; +#X connect 19 0 20 0; +#X connect 19 1 18 0; +#X connect 20 0 2 0; +#X connect 20 1 51 0; +#X connect 21 0 33 0; +#X connect 22 0 30 0; +#X connect 23 0 24 0; +#X connect 23 1 31 0; +#X connect 24 0 26 1; +#X connect 25 0 26 0; +#X connect 25 1 27 0; +#X connect 26 0 32 0; +#X connect 27 0 32 1; +#X connect 28 0 25 0; +#X connect 28 1 48 0; +#X connect 29 0 28 0; +#X connect 30 0 29 0; +#X connect 30 1 29 1; +#X connect 31 0 27 1; +#X connect 32 0 5 2; +#X connect 33 0 34 0; +#X connect 34 0 29 0; +#X connect 37 0 45 0; +#X connect 38 0 15 0; +#X connect 38 1 40 0; +#X connect 39 0 41 0; +#X connect 40 0 39 0; +#X connect 41 0 42 0; +#X connect 42 0 48 1; +#X connect 42 1 47 1; +#X connect 45 0 44 0; +#X connect 46 0 43 0; +#X connect 47 0 37 0; +#X connect 48 0 23 0; +#X connect 49 0 50 0; +#X connect 49 1 46 0; +#X connect 51 0 16 0; +#X coords 0 -1 1 1 100 100 2 260 30; +#X restore 445 290 pd \$0-pad; +#X obj 445 151 vsl 15 128 0 1 0 0 empty \$0-force force 0 -9 0 10 -262144 +-1 -1 7400 1; +#X obj 538 152 vsl 15 128 0 1 0 0 empty \$0-direction direction 0 -9 +0 10 -262144 -1 -1 0 1; +#N canvas 424 571 337 368 wind-control. 0; +#X obj 41 82 pack f f; +#X msg 41 104 wind \$1 \$2; +#X obj 41 126 s shader_link; +#X obj 41 30 inlet; +#X obj 105 32 inlet; +#X obj 181 304 s oscillation1; +#X obj 41 58 / 11000; +#X obj 105 58 / 11000; +#X obj 181 187 *; +#X obj 181 164 t f f; +#X obj 181 212 +; +#X obj 181 236 sqrt; +#X obj 231 187 *; +#X obj 231 164 t f f; +#X obj 181 259 * 600; +#X obj 181 281 min 300; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 3 0 6 0; +#X connect 3 0 9 0; +#X connect 4 0 7 0; +#X connect 4 0 13 0; +#X connect 6 0 0 0; +#X connect 7 0 0 1; +#X connect 8 0 10 0; +#X connect 9 0 8 0; +#X connect 9 1 8 1; +#X connect 10 0 11 0; +#X connect 11 0 14 0; +#X connect 12 0 10 1; +#X connect 13 0 12 0; +#X connect 13 1 12 1; +#X connect 14 0 15 0; +#X connect 15 0 5 0; +#X restore 445 397 pd wind-control.; +#X text 28 20 Simple version for Gem examples; +#X text 29 34 Did work under Linux \, with Nvidia driver. I don't know +on other OS/hardware.; +#X text 29 72 This patch is quite huge. the GPU compute the position +of 64x92 masses \, and 64x92x12 links at 50x20 Hz. (about 7e+07 links/sec +\, so about 100 time faster than what is curently possible with MSD +on a CPU) (My GPU is old \, this patch performs 10 to 50 times faster +on a good GPU); +#X obj 606 346 s qqt_noise; +#X connect 0 0 5 0; +#X connect 2 0 1 0; +#X connect 9 0 10 0; +#X connect 10 0 24 0; +#X connect 11 0 12 0; +#X connect 13 0 7 1; +#X connect 14 0 3 0; +#X connect 16 0 7 0; +#X connect 17 0 20 0; +#X connect 17 1 20 1; +#X connect 18 0 17 0; +#X connect 19 0 17 1; diff --git a/Gem/examples/10.glsl/11.geometry.pd b/Gem/examples/10.glsl/11.geometry.pd new file mode 100644 index 0000000..1851c8a --- /dev/null +++ b/Gem/examples/10.glsl/11.geometry.pd @@ -0,0 +1,123 @@ +#N canvas 197 25 552 632 10; +#X floatatom 132 447 9 0 0 0 ID - -; +#X floatatom 132 279 9 0 0 0 ID - -; +#X obj 150 506 print linking; +#X obj 132 465 pack 0 0 0; +#X floatatom 126 364 9 0 0 0 ID - -; +#X obj 44 139 gemhead; +#X msg 132 485 link \$1 \$2 \$3; +#X obj 44 319 glsl_vertex; +#X obj 44 403 glsl_fragment; +#X obj 44 237 glsl_geometry; +#X obj 44 158 alpha; +#X floatatom 122 531 5 0 0 0 - - -; +#X floatatom 164 531 5 0 0 0 - - -; +#X floatatom 209 532 5 0 0 0 - - -; +#X obj 44 512 glsl_program; +#X msg 182 200 -1; +#X obj 182 156 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 132 258 change; +#X obj 126 341 change; +#X obj 132 426 change; +#X obj 44 552 translateXYZ 0 0 0; +#X obj 44 197 colorRGB 1 1 1; +#X floatatom 128 174 5 0 0 0 - - -; +#X obj 44 177 depth 1; +#X obj 44 576 circle; +#X obj 182 176 t b b; +#X text 184 7 geometry shader; +#X text 48 28 The geometry shader is usefull to create new geometry +; +#X text 51 47 Here is an example where 40 circles are draw with 1 single +primitive.; +#X text 49 87 Be aware that the geometry shader is computed after the +vertex shader. coordinate are in 2d.; +#X msg 58 217 open geo.geom; +#X msg 56 299 open geo.vert; +#X msg 57 384 open geo.frag; +#X obj 182 136 loadbang; +#X text 205 155 load shaders; +#N canvas 87 154 247 179 Gem.init 0; +#X obj 118 46 loadbang; +#X msg 118 81 reset; +#X obj 118 113 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X restore 366 247 pd Gem.init; +#N canvas 340 107 682 322 gemwin 0; +#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 +-1 -1 0 1; +#X obj 102 161 r \$0-gemstart; +#X obj 102 182 select 1 0; +#X msg 102 214 create \, 1; +#X msg 177 215 destroy; +#X obj 102 239 t a; +#X obj 318 54 inlet; +#X obj 318 255 gemwin; +#X obj 318 100 t a a; +#X obj 318 287 outlet; +#X obj 350 128 route create destroy; +#X obj 350 150 t b; +#X msg 350 172 1; +#X obj 390 150 t b; +#X msg 390 172 0; +#X obj 350 195 t f; +#X msg 350 219 set \$1; +#X text 118 122 rendering; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 2 1 4 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 5 0 8 0; +#X connect 6 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 8 1 10 0; +#X connect 10 0 11 0; +#X connect 10 1 13 0; +#X connect 11 0 12 0; +#X connect 12 0 15 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X coords 0 -1 1 1 85 40 1 100 100; +#X restore 336 264 pd gemwin; +#X connect 0 0 3 0; +#X connect 1 0 3 2; +#X connect 3 0 6 0; +#X connect 4 0 3 1; +#X connect 5 0 10 0; +#X connect 6 0 2 0; +#X connect 6 0 14 0; +#X connect 7 0 8 0; +#X connect 7 1 18 0; +#X connect 8 0 14 0; +#X connect 8 1 19 0; +#X connect 9 0 7 0; +#X connect 9 1 17 0; +#X connect 10 0 23 0; +#X connect 11 0 20 1; +#X connect 12 0 20 2; +#X connect 13 0 20 3; +#X connect 14 0 20 0; +#X connect 15 0 19 0; +#X connect 16 0 25 0; +#X connect 17 0 1 0; +#X connect 18 0 4 0; +#X connect 19 0 0 0; +#X connect 20 0 24 0; +#X connect 21 0 9 0; +#X connect 22 0 21 2; +#X connect 23 0 21 0; +#X connect 25 0 15 0; +#X connect 25 1 32 0; +#X connect 25 1 30 0; +#X connect 25 1 31 0; +#X connect 30 0 9 0; +#X connect 31 0 7 0; +#X connect 32 0 8 0; +#X connect 33 0 16 0; +#X connect 35 0 36 0; diff --git a/Gem/examples/10.glsl/12.tri2fan.pd b/Gem/examples/10.glsl/12.tri2fan.pd new file mode 100644 index 0000000..5437d4b --- /dev/null +++ b/Gem/examples/10.glsl/12.tri2fan.pd @@ -0,0 +1,157 @@ +#N canvas 1775 56 785 745 10; +#X floatatom 286 440 9 0 0 0 ID - -; +#X floatatom 249 264 9 0 0 0 ID - -; +#X obj 296 500 print linking; +#X obj 286 458 pack 0 0 0; +#X floatatom 244 350 9 0 0 0 ID - -; +#X obj 161 78 gemhead; +#X msg 286 479 link \$1 \$2 \$3; +#X obj 161 151 alpha; +#X floatatom 202 578 5 0 0 0 - - -; +#X floatatom 244 578 5 0 0 0 - - -; +#X floatatom 289 579 5 0 0 0 - - -; +#X obj 161 526 glsl_program; +#X obj 42 117 t b b b b; +#X msg 42 147 -1; +#X obj 42 98 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 249 242 change; +#X obj 244 329 change; +#X obj 286 419 change; +#X obj 161 650 t a b; +#X obj 209 650 loadbang; +#X msg 340 672 2; +#X obj 161 217 glsl_geometry; +#X obj 161 307 glsl_vertex; +#X obj 161 394 glsl_fragment; +#X obj 42 76 loadbang; +#X text 65 97 reload; +#X msg 422 113 create \, 1; +#X msg 431 135 destroy; +#X obj 402 654 triangle; +#X msg 473 202 lighting 1; +#X obj 161 627 spigot 1; +#X obj 230 628 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 470 633 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X obj 402 631 spigot 0; +#X msg 460 180 perspec -0.1 0.1 -0.1 0.1 1 110; +#X obj 422 229 gemwin; +#X obj 460 159 loadbang; +#N canvas 0 0 877 520 light 0; +#X obj 225 45 gemhead 10; +#X floatatom 258 78 5 0 0 0 - - -; +#X floatatom 299 77 5 0 0 0 - - -; +#X floatatom 341 78 5 0 0 0 - - -; +#X obj 225 227 world_light; +#X obj 250 151 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X msg 250 172 debug \$1; +#X obj 225 103 rotateXYZ 0 30 0; +#X obj 27 51 gemhead 10; +#X floatatom 60 84 5 0 0 0 - - -; +#X floatatom 101 83 5 0 0 0 - - -; +#X floatatom 143 84 5 0 0 0 - - -; +#X obj 27 233 world_light; +#X obj 48 158 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X msg 48 179 debug \$1; +#X obj 27 109 rotateXYZ 0 -90 0; +#X msg 297 207 0.8 0.8 0.8; +#X msg 100 210 0.7 0.7 0.7; +#X obj 408 73 loadbang; +#X connect 0 0 7 0; +#X connect 1 0 7 1; +#X connect 2 0 7 2; +#X connect 3 0 7 3; +#X connect 5 0 6 0; +#X connect 6 0 4 0; +#X connect 7 0 4 0; +#X connect 8 0 15 0; +#X connect 9 0 15 1; +#X connect 10 0 15 2; +#X connect 11 0 15 3; +#X connect 13 0 14 0; +#X connect 14 0 12 0; +#X connect 15 0 12 0; +#X connect 16 0 4 1; +#X connect 17 0 12 1; +#X connect 18 0 17 0; +#X connect 18 0 16 0; +#X restore 421 253 pd light; +#X obj 161 595 rotateXYZ -55 20 0; +#X floatatom 298 537 5 0 0 0 - - -; +#X text 235 13 replace triangle with 3 triangles thoses orientation +depend on the normal of the original primitive; +#X obj 161 554 scaleXYZ 0.2 0.2 0.2; +#X msg 172 129 auto 1; +#X obj 172 108 loadbang; +#X msg 176 195 open tri2fan.geom; +#X msg 177 286 open tri2fan.vert; +#X msg 178 370 open tri2fan.frag; +#X obj 161 724 newWave 25 25; +#X msg 209 671 D1 0.01 \, D2 0.1; +#X floatatom 520 593 5 0 25 0 - - -; +#X obj 552 635 pack f f; +#X obj 520 611 t f f; +#X msg 552 655 force \$1 \$2 0.3; +#X connect 0 0 3 0; +#X connect 1 0 3 2; +#X connect 3 0 6 0; +#X connect 4 0 3 1; +#X connect 5 0 7 0; +#X connect 6 0 2 0; +#X connect 6 0 11 0; +#X connect 7 0 21 0; +#X connect 8 0 38 1; +#X connect 9 0 38 2; +#X connect 10 0 38 3; +#X connect 11 0 41 0; +#X connect 12 0 13 0; +#X connect 12 1 46 0; +#X connect 12 2 45 0; +#X connect 12 3 44 0; +#X connect 13 0 17 0; +#X connect 14 0 12 0; +#X connect 15 0 1 0; +#X connect 16 0 4 0; +#X connect 17 0 0 0; +#X connect 18 0 47 0; +#X connect 18 1 47 0; +#X connect 19 0 48 0; +#X connect 20 0 47 3; +#X connect 21 0 22 0; +#X connect 21 1 15 0; +#X connect 22 0 23 0; +#X connect 22 1 16 0; +#X connect 23 0 11 0; +#X connect 23 1 17 0; +#X connect 24 0 14 0; +#X connect 26 0 35 0; +#X connect 27 0 35 0; +#X connect 29 0 35 0; +#X connect 30 0 18 0; +#X connect 31 0 30 1; +#X connect 32 0 33 1; +#X connect 33 0 28 0; +#X connect 34 0 35 0; +#X connect 36 0 34 0; +#X connect 36 0 29 0; +#X connect 38 0 30 0; +#X connect 38 0 33 0; +#X connect 39 0 41 2; +#X connect 39 0 41 3; +#X connect 39 0 41 1; +#X connect 41 0 38 0; +#X connect 42 0 7 0; +#X connect 43 0 42 0; +#X connect 44 0 21 0; +#X connect 45 0 22 0; +#X connect 46 0 23 0; +#X connect 48 0 47 0; +#X connect 49 0 51 0; +#X connect 50 0 52 0; +#X connect 51 0 50 1; +#X connect 51 1 50 0; +#X connect 52 0 47 0; diff --git a/Gem/examples/10.glsl/13.panoramique.pd b/Gem/examples/10.glsl/13.panoramique.pd new file mode 100644 index 0000000..c483a4c --- /dev/null +++ b/Gem/examples/10.glsl/13.panoramique.pd @@ -0,0 +1,525 @@ +#N canvas 189 90 1107 660 10; +#X msg 17 91 create \, 1; +#X msg 30 114 0 \, destroy; +#X obj 160 405 pix_texture; +#X obj 169 165 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#N canvas 1338 29 792 790 glsl 0; +#X obj 78 339 glsl_vertex; +#X msg 32 338 print; +#X obj 78 626 glsl_program; +#X obj 163 555 pack 0 0; +#X msg 30 476 print; +#X obj 163 511 change; +#X obj 150 358 change; +#X msg 163 579 link \$1 \$2; +#X msg 32 620 print; +#X obj 77 490 glsl_fragment; +#X floatatom 163 535 2 0 0 0 ID - -; +#X floatatom 150 381 2 0 0 0 ID - -; +#X obj 181 600 print linking; +#X obj 15 21 inlet; +#X obj 78 662 outlet; +#X obj 577 95 inlet; +#X obj 15 44 route bang; +#X obj 255 11 gemhead 1; +#X msg 255 33 1; +#X obj 255 57 change; +#X obj 255 81 t b; +#X obj 157 647 change; +#X obj 157 668 t b; +#X obj 158 690 outlet; +#X obj 90 426 symbol; +#X obj 90 401 t b; +#X msg 287 598 0; +#X obj 15 65 t b b b; +#X msg 118 307 open panoramique.vert; +#X msg 90 453 open panoramique.frag; +#X connect 0 0 9 0; +#X connect 0 1 6 0; +#X connect 1 0 0 0; +#X connect 2 0 14 0; +#X connect 2 1 21 0; +#X connect 3 0 7 0; +#X connect 4 0 9 0; +#X connect 5 0 10 0; +#X connect 6 0 11 0; +#X connect 6 0 25 0; +#X connect 7 0 2 0; +#X connect 7 0 12 0; +#X connect 8 0 2 0; +#X connect 9 0 2 0; +#X connect 9 1 5 0; +#X connect 10 0 3 0; +#X connect 11 0 3 1; +#X connect 13 0 16 0; +#X connect 15 0 2 0; +#X connect 16 0 27 0; +#X connect 16 1 0 0; +#X connect 17 0 18 0; +#X connect 18 0 19 0; +#X connect 19 0 20 0; +#X connect 20 0 28 0; +#X connect 21 0 22 0; +#X connect 22 0 23 0; +#X connect 24 0 29 0; +#X connect 25 0 24 0; +#X connect 26 0 21 0; +#X connect 27 0 26 0; +#X connect 27 1 10 0; +#X connect 27 2 28 0; +#X connect 28 0 0 0; +#X connect 29 0 9 0; +#X restore 160 182 pd glsl; +#X obj 175 245 loadbang; +#X obj 160 288 pix_image; +#X msg 174 379 rectangle 1; +#X obj 174 358 loadbang; +#X obj 160 317 pix_info 0 0 0; +#X msg 238 148 sizeX \$1; +#X msg 253 169 sizeY \$1; +#X obj 353 406 pix_texture; +#X obj 362 166 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#N canvas 1338 29 792 790 glsl 0; +#X obj 78 339 glsl_vertex; +#X msg 32 338 print; +#X obj 78 626 glsl_program; +#X obj 163 555 pack 0 0; +#X msg 30 476 print; +#X obj 163 511 change; +#X obj 150 358 change; +#X msg 163 579 link \$1 \$2; +#X msg 32 620 print; +#X obj 77 490 glsl_fragment; +#X floatatom 163 535 2 0 0 0 ID - -; +#X floatatom 150 381 2 0 0 0 ID - -; +#X obj 181 600 print linking; +#X obj 15 21 inlet; +#X obj 78 662 outlet; +#X obj 577 95 inlet; +#X obj 15 44 route bang; +#X obj 255 11 gemhead 1; +#X msg 255 33 1; +#X obj 255 57 change; +#X obj 255 81 t b; +#X obj 157 647 change; +#X obj 157 668 t b; +#X obj 158 690 outlet; +#X obj 90 426 symbol; +#X obj 90 401 t b; +#X msg 287 598 0; +#X obj 15 65 t b b b; +#X msg 118 307 open panoramique.vert; +#X msg 90 453 open panoramique.frag; +#X connect 0 0 9 0; +#X connect 0 1 6 0; +#X connect 1 0 0 0; +#X connect 2 0 14 0; +#X connect 2 1 21 0; +#X connect 3 0 7 0; +#X connect 4 0 9 0; +#X connect 5 0 10 0; +#X connect 6 0 11 0; +#X connect 6 0 25 0; +#X connect 7 0 2 0; +#X connect 7 0 12 0; +#X connect 8 0 2 0; +#X connect 9 0 2 0; +#X connect 9 1 5 0; +#X connect 10 0 3 0; +#X connect 11 0 3 1; +#X connect 13 0 16 0; +#X connect 15 0 2 0; +#X connect 16 0 27 0; +#X connect 16 1 0 0; +#X connect 17 0 18 0; +#X connect 18 0 19 0; +#X connect 19 0 20 0; +#X connect 20 0 28 0; +#X connect 21 0 22 0; +#X connect 22 0 23 0; +#X connect 24 0 29 0; +#X connect 25 0 24 0; +#X connect 26 0 21 0; +#X connect 27 0 26 0; +#X connect 27 1 10 0; +#X connect 27 2 28 0; +#X connect 28 0 0 0; +#X connect 29 0 9 0; +#X restore 353 183 pd glsl; +#X obj 368 246 loadbang; +#X obj 353 289 pix_image; +#X msg 367 378 rectangle 1; +#X obj 367 359 loadbang; +#X obj 353 318 pix_info 0 0 0; +#X msg 431 144 sizeX \$1; +#X msg 446 170 sizeY \$1; +#X obj 552 407 pix_texture; +#X obj 561 167 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#N canvas 1338 29 792 790 glsl 0; +#X obj 78 339 glsl_vertex; +#X msg 32 338 print; +#X obj 78 626 glsl_program; +#X obj 163 555 pack 0 0; +#X msg 30 476 print; +#X obj 163 511 change; +#X obj 150 358 change; +#X msg 163 579 link \$1 \$2; +#X msg 32 620 print; +#X obj 77 490 glsl_fragment; +#X floatatom 163 535 2 0 0 0 ID - -; +#X floatatom 150 381 2 0 0 0 ID - -; +#X obj 181 600 print linking; +#X obj 15 21 inlet; +#X obj 78 662 outlet; +#X obj 577 95 inlet; +#X obj 15 44 route bang; +#X obj 255 11 gemhead 1; +#X msg 255 33 1; +#X obj 255 57 change; +#X obj 255 81 t b; +#X obj 157 647 change; +#X obj 157 668 t b; +#X obj 158 690 outlet; +#X obj 90 426 symbol; +#X obj 90 401 t b; +#X msg 287 598 0; +#X obj 15 65 t b b b; +#X msg 118 307 open panoramique.vert; +#X msg 90 453 open panoramique.frag; +#X connect 0 0 9 0; +#X connect 0 1 6 0; +#X connect 1 0 0 0; +#X connect 2 0 14 0; +#X connect 2 1 21 0; +#X connect 3 0 7 0; +#X connect 4 0 9 0; +#X connect 5 0 10 0; +#X connect 6 0 11 0; +#X connect 6 0 25 0; +#X connect 7 0 2 0; +#X connect 7 0 12 0; +#X connect 8 0 2 0; +#X connect 9 0 2 0; +#X connect 9 1 5 0; +#X connect 10 0 3 0; +#X connect 11 0 3 1; +#X connect 13 0 16 0; +#X connect 15 0 2 0; +#X connect 16 0 27 0; +#X connect 16 1 0 0; +#X connect 17 0 18 0; +#X connect 18 0 19 0; +#X connect 19 0 20 0; +#X connect 20 0 28 0; +#X connect 21 0 22 0; +#X connect 22 0 23 0; +#X connect 24 0 29 0; +#X connect 25 0 24 0; +#X connect 26 0 21 0; +#X connect 27 0 26 0; +#X connect 27 1 10 0; +#X connect 27 2 28 0; +#X connect 28 0 0 0; +#X connect 29 0 9 0; +#X restore 552 184 pd glsl; +#X obj 567 247 loadbang; +#X obj 552 290 pix_image; +#X msg 566 379 rectangle 1; +#X obj 566 360 loadbang; +#X obj 552 319 pix_info 0 0 0; +#X msg 614 148 sizeX \$1; +#X msg 633 166 sizeY \$1; +#X obj 160 427 translateXYZ -3 0 0; +#X obj 352 426 translateXYZ -1 0 0; +#X obj 551 427 translateXYZ 1 0 0; +#X obj 747 408 pix_texture; +#X obj 756 168 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#N canvas 1338 29 792 790 glsl 0; +#X obj 78 339 glsl_vertex; +#X msg 32 338 print; +#X obj 78 626 glsl_program; +#X obj 163 555 pack 0 0; +#X msg 30 476 print; +#X obj 163 511 change; +#X obj 150 358 change; +#X msg 163 579 link \$1 \$2; +#X msg 32 620 print; +#X obj 77 490 glsl_fragment; +#X floatatom 163 535 2 0 0 0 ID - -; +#X floatatom 150 381 2 0 0 0 ID - -; +#X obj 181 600 print linking; +#X obj 15 21 inlet; +#X obj 78 662 outlet; +#X obj 577 95 inlet; +#X obj 15 44 route bang; +#X obj 255 11 gemhead 1; +#X msg 255 33 1; +#X obj 255 57 change; +#X obj 255 81 t b; +#X obj 157 647 change; +#X obj 157 668 t b; +#X obj 158 690 outlet; +#X obj 90 426 symbol; +#X obj 90 401 t b; +#X msg 287 598 0; +#X obj 15 65 t b b b; +#X msg 118 307 open panoramique.vert; +#X msg 90 452 open panoramique.frag; +#X connect 0 0 9 0; +#X connect 0 1 6 0; +#X connect 1 0 0 0; +#X connect 2 0 14 0; +#X connect 2 1 21 0; +#X connect 3 0 7 0; +#X connect 4 0 9 0; +#X connect 5 0 10 0; +#X connect 6 0 11 0; +#X connect 6 0 25 0; +#X connect 7 0 2 0; +#X connect 7 0 12 0; +#X connect 8 0 2 0; +#X connect 9 0 2 0; +#X connect 9 1 5 0; +#X connect 10 0 3 0; +#X connect 11 0 3 1; +#X connect 13 0 16 0; +#X connect 15 0 2 0; +#X connect 16 0 27 0; +#X connect 16 1 0 0; +#X connect 17 0 18 0; +#X connect 18 0 19 0; +#X connect 19 0 20 0; +#X connect 20 0 28 0; +#X connect 21 0 22 0; +#X connect 22 0 23 0; +#X connect 24 0 29 0; +#X connect 25 0 24 0; +#X connect 26 0 21 0; +#X connect 27 0 26 0; +#X connect 27 1 10 0; +#X connect 27 2 28 0; +#X connect 28 0 0 0; +#X connect 29 0 9 0; +#X restore 747 185 pd glsl; +#X obj 762 248 loadbang; +#X obj 747 291 pix_image; +#X msg 761 380 rectangle 1; +#X obj 761 361 loadbang; +#X obj 747 320 pix_info 0 0 0; +#X msg 825 146 sizeX \$1; +#X msg 840 172 sizeY \$1; +#X obj 746 428 translateXYZ 3 0 0; +#X floatatom 199 68 5 0 0 0 - - -; +#X msg 199 87 dZ \$1; +#X obj 17 430 s shaders; +#X obj 206 205 s init_shader; +#X obj 399 204 s init_shader; +#X obj 600 204 s init_shader; +#X obj 794 206 s init_shader; +#X obj 399 124 r shaders; +#X obj 598 126 r shaders; +#X obj 793 127 r shaders; +#X obj 160 506 rectangle 1 0.75; +#X obj 352 507 rectangle 1 0.75; +#X obj 551 508 rectangle 1 0.75; +#X obj 746 509 rectangle 1 0.75; +#X obj 160 463 translateXYZ 0 0 0; +#X obj 201 446 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 +-262144 -1 -1 0.12 256; +#X obj 259 446 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 +-262144 -1 -1 -0.06 256; +#X obj 352 465 translateXYZ 0 0 0; +#X obj 393 448 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 +-262144 -1 -1 0 256; +#X obj 451 448 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 +-262144 -1 -1 0 256; +#X obj 551 466 translateXYZ 0 0 0; +#X obj 592 449 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 +-262144 -1 -1 -0.11 256; +#X obj 650 449 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 +-262144 -1 -1 -0.03 256; +#X obj 746 465 translateXYZ 0 0 0; +#X obj 787 448 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 +-262144 -1 -1 -0.18 256; +#X obj 845 448 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 +-262144 -1 -1 -0.05 256; +#X obj 160 -30 gemhead 10; +#X obj 353 -29 gemhead 20; +#X obj 552 -28 gemhead 30; +#X obj 747 -27 gemhead 40; +#X obj 160 104 alpha; +#X obj 353 103 alpha; +#X obj 552 99 alpha; +#X obj 747 102 alpha; +#X msg 256 113 ShadeL \$1; +#X obj 199 25 r init_shader; +#X obj 256 92 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 +-262144 -1 -1 0 256; +#X msg 447 93 ShadeL \$1; +#X obj 447 72 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 +-262144 -1 -1 39 256; +#X msg 634 95 ShadeL \$1; +#X obj 634 74 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 +-262144 -1 -1 35 256; +#X msg 831 93 ShadeL \$1; +#X obj 831 72 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 +-262144 -1 -1 23 256; +#X msg 212 486 -1; +#X msg 269 485 -0.75; +#X text 163 486 invert; +#X msg 406 485 -1; +#X msg 463 484 -0.75; +#X text 357 485 invert; +#X msg 605 488 -1; +#X msg 662 487 -0.75; +#X text 556 488 invert; +#X msg 800 489 -1; +#X msg 857 488 -0.75; +#X text 751 489 invert; +#X obj 17 218 gemwin; +#X obj 37 168 loadbang; +#X obj 160 -8 scaleXYZ 4 4 1; +#X obj 353 -8 scaleXYZ 4 4 1; +#X obj 552 -4 scaleXYZ 4 4 1; +#X obj 747 -5 scaleXYZ 4 4 1; +#X text 21 548 This patch allow multiples images to be assembled in +order to dreate a panoramic image.; +#X text 20 575 A shader distord the image to correct distance distortion +\, and allow a fade between 2 images; +#X text 17 602 "dz" depend on the angles between images.; +#X text 462 579 copyright cyrille Henry and iem.; +#X text 463 596 This developement was suported by the COMEDIA project +; +#X floatatom 18 354 5 0 0 0 - - -; +#X msg 18 373 dZ \$1; +#X obj 18 311 r init_shader; +#X msg 18 333 1.62; +#X msg 199 47 1.38; +#X msg 37 192 dimen 1024 256; +#X msg 177 264 thread 0 \, open cam1.jpg; +#X msg 370 265 thread 0 \, open cam2.jpg; +#X msg 569 266 thread 0 \, open cam3.jpg; +#X msg 764 267 thread 0 \, open cam4.jpg; +#X connect 0 0 101 0; +#X connect 1 0 101 0; +#X connect 2 0 32 0; +#X connect 3 0 4 0; +#X connect 4 0 6 0; +#X connect 4 1 49 0; +#X connect 4 1 82 0; +#X connect 5 0 118 0; +#X connect 6 0 9 0; +#X connect 7 0 2 0; +#X connect 8 0 7 0; +#X connect 9 0 2 0; +#X connect 9 1 10 0; +#X connect 9 2 11 0; +#X connect 10 0 4 1; +#X connect 11 0 4 1; +#X connect 12 0 33 0; +#X connect 13 0 14 0; +#X connect 14 0 16 0; +#X connect 14 1 50 0; +#X connect 14 1 84 0; +#X connect 15 0 119 0; +#X connect 16 0 19 0; +#X connect 17 0 12 0; +#X connect 18 0 17 0; +#X connect 19 0 12 0; +#X connect 19 1 20 0; +#X connect 19 2 21 0; +#X connect 20 0 14 1; +#X connect 21 0 14 1; +#X connect 22 0 34 0; +#X connect 23 0 24 0; +#X connect 24 0 26 0; +#X connect 24 1 51 0; +#X connect 24 1 86 0; +#X connect 25 0 120 0; +#X connect 26 0 29 0; +#X connect 27 0 22 0; +#X connect 28 0 27 0; +#X connect 29 0 22 0; +#X connect 29 1 30 0; +#X connect 29 2 31 0; +#X connect 30 0 24 1; +#X connect 31 0 24 1; +#X connect 32 0 60 0; +#X connect 33 0 63 0; +#X connect 34 0 66 0; +#X connect 35 0 45 0; +#X connect 36 0 37 0; +#X connect 37 0 39 0; +#X connect 37 1 52 0; +#X connect 37 1 88 0; +#X connect 38 0 121 0; +#X connect 39 0 42 0; +#X connect 40 0 35 0; +#X connect 41 0 40 0; +#X connect 42 0 35 0; +#X connect 42 1 43 0; +#X connect 42 2 44 0; +#X connect 43 0 37 1; +#X connect 44 0 37 1; +#X connect 45 0 69 0; +#X connect 46 0 47 0; +#X connect 47 0 4 1; +#X connect 53 0 14 1; +#X connect 54 0 24 1; +#X connect 55 0 37 1; +#X connect 60 0 56 0; +#X connect 61 0 60 1; +#X connect 62 0 60 2; +#X connect 63 0 57 0; +#X connect 64 0 63 1; +#X connect 65 0 63 2; +#X connect 66 0 58 0; +#X connect 67 0 66 1; +#X connect 68 0 66 2; +#X connect 69 0 59 0; +#X connect 70 0 69 1; +#X connect 71 0 69 2; +#X connect 72 0 103 0; +#X connect 73 0 104 0; +#X connect 74 0 105 0; +#X connect 75 0 106 0; +#X connect 76 0 4 0; +#X connect 77 0 14 0; +#X connect 78 0 24 0; +#X connect 79 0 37 0; +#X connect 80 0 4 1; +#X connect 81 0 116 0; +#X connect 82 0 80 0; +#X connect 83 0 14 1; +#X connect 84 0 83 0; +#X connect 85 0 24 1; +#X connect 86 0 85 0; +#X connect 87 0 37 1; +#X connect 88 0 87 0; +#X connect 89 0 56 1; +#X connect 90 0 56 2; +#X connect 92 0 57 1; +#X connect 93 0 57 2; +#X connect 95 0 58 1; +#X connect 96 0 58 2; +#X connect 98 0 59 1; +#X connect 99 0 59 2; +#X connect 102 0 117 0; +#X connect 103 0 76 0; +#X connect 104 0 77 0; +#X connect 105 0 78 0; +#X connect 106 0 79 0; +#X connect 112 0 113 0; +#X connect 113 0 48 0; +#X connect 114 0 115 0; +#X connect 115 0 112 0; +#X connect 116 0 46 0; +#X connect 117 0 101 0; +#X connect 118 0 6 0; +#X connect 119 0 16 0; +#X connect 120 0 26 0; +#X connect 121 0 39 0; diff --git a/Gem/examples/10.glsl/14.blur.pd b/Gem/examples/10.glsl/14.blur.pd new file mode 100644 index 0000000..ed1c099 --- /dev/null +++ b/Gem/examples/10.glsl/14.blur.pd @@ -0,0 +1,177 @@ +#N canvas 481 142 778 497 10; +#X obj 16 74 gemhead; +#X obj 16 130 gemframebuffer; +#X obj 129 13 loadbang; +#X obj 16 185 translateXYZ 0 0 -4; +#X obj 14 283 cnv 15 125 200 empty empty empty 20 12 0 14 -228856 -66577 +0; +#X floatatom 82 334 5 0 0 0 - - -; +#X obj 16 362 rotateXYZ 30 30 0; +#X obj 16 385 colorRGB 1 0 1; +#X obj 16 408 teapot 1.5; +#N canvas 385 358 230 231 shunt 0; +#X obj 171 17 inlet; +#X obj 72 67 * -1; +#X obj 72 91 + 1; +#X obj 27 17 inlet; +#X obj 27 200 outlet; +#X obj 126 197 outlet; +#X obj 27 117 spigot 1; +#X obj 126 115 spigot 0; +#X connect 0 0 1 0; +#X connect 0 0 7 1; +#X connect 1 0 2 0; +#X connect 2 0 6 1; +#X connect 3 0 6 0; +#X connect 3 0 7 0; +#X connect 6 0 4 0; +#X connect 7 0 5 0; +#X restore 16 223 pd shunt; +#X obj 81 224 tgl 15 0 empty empty empty 17 7 0 10 -257985 -1 -1 0 +1; +#X obj 162 283 cnv 15 125 200 empty empty empty 20 12 0 14 -228856 +-66577 0; +#X obj 169 385 colorRGB 1 1 0; +#X text 76 286 Scene A; +#X text 223 287 Scene B; +#X text 105 223 Scene A / Scene B; +#X obj 169 360 rotateXYZ 0 0 45; +#X obj 169 463 square 2.8; +#X floatatom 197 409 5 0 0 0 - - -; +#X obj 169 429 translateXYZ; +#X obj 129 54 s to_fb; +#X obj 30 103 r to_fb; +#X msg 129 34 dimen 500 500 \, rectangle 0; +#X obj 327 379 pix_texture; +#X obj 327 399 square 4; +#X msg 344 358 quality 1 \, rectangle 0; +#X obj 344 337 loadbang; +#X obj 327 309 gemhead 99; +#N canvas 1070 136 503 739 14_pass_blur 0; +#X obj 87 102 inlet; +#X obj 87 527 outlet; +#X obj 87 173 single_blur 76 0 64; +#X obj 87 263 single_blur 80 0 16; +#X obj 87 284 single_blur 81 16 0; +#X obj 87 305 single_blur 82 0 8; +#X obj 87 326 single_blur 83 8 0; +#X obj 87 347 single_blur 84 0 4; +#X obj 87 368 single_blur 85 4 0; +#X obj 87 389 single_blur 86 0 2; +#X obj 87 410 single_blur 87 2 0; +#X obj 87 430 single_blur 88 0 1; +#X obj 87 451 single_blur 89 1 0; +#X obj 87 236 single_blur 79 32 0; +#X obj 87 215 single_blur 78 0 32; +#X obj 87 194 single_blur 77 64 0; +#X connect 0 0 2 0; +#X connect 2 0 15 0; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 7 0 8 0; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X connect 12 0 1 0; +#X connect 13 0 3 0; +#X connect 14 0 13 0; +#X connect 15 0 14 0; +#X restore 114 149 pd 14_pass_blur; +#X obj 557 245 pack f f; +#X obj 557 264 s motion_blur; +#X obj 575 205 cos; +#X obj 557 151 / 500; +#X obj 557 171 t f f; +#X obj 610 226 *; +#X obj 628 205 sin; +#X floatatom 596 129 5 0 6.28 0 - - -; +#X obj 596 150 t b f; +#N canvas 0 22 454 304 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 182 68 set create; +#X msg 132 112 create \, 1; +#X msg 238 112 destroy; +#N canvas 87 154 850 451 Gem.init 0; +#X obj 59 46 loadbang; +#X obj 119 130 outlet; +#X msg 118 81 reset \, dimen 500 500 \, lighting 1 \, title blur \, +frame 20 \,; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X restore 289 80 pd Gem.init; +#X obj 75 217 world_light; +#X obj 75 194 gemhead 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X connect 10 0 9 0; +#X restore 17 32 pd gemwin; +#X msg 17 8 create; +#X obj 383 89 cnv 15 150 25 empty empty empty 20 12 0 14 -257985 -66577 +0; +#X obj 392 95 hsl 128 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144 +-1 -1 0 1; +#X obj 389 140 s blur; +#X obj 389 115 / 500; +#X text 389 69 blur; +#X obj 551 91 cnv 15 150 25 empty empty empty 20 12 0 14 -257985 -66577 +0; +#X obj 560 97 hsl 128 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144 +-1 -1 0 1; +#X text 556 67 motion blur; +#X obj 557 226 * 1; +#X text 640 129 angle (radian); +#X connect 0 0 1 0; +#X connect 1 0 3 0; +#X connect 1 1 28 0; +#X connect 2 0 22 0; +#X connect 3 0 9 0; +#X connect 5 0 6 2; +#X connect 5 0 6 1; +#X connect 6 0 7 0; +#X connect 7 0 8 0; +#X connect 9 0 6 0; +#X connect 9 1 16 0; +#X connect 10 0 9 1; +#X connect 12 0 19 0; +#X connect 16 0 12 0; +#X connect 18 0 19 1; +#X connect 19 0 17 0; +#X connect 21 0 1 0; +#X connect 22 0 20 0; +#X connect 23 0 24 0; +#X connect 25 0 23 0; +#X connect 26 0 25 0; +#X connect 27 0 23 0; +#X connect 28 0 23 1; +#X connect 29 0 30 0; +#X connect 31 0 48 1; +#X connect 32 0 33 0; +#X connect 33 0 48 0; +#X connect 33 1 34 0; +#X connect 34 0 29 1; +#X connect 35 0 34 1; +#X connect 36 0 37 0; +#X connect 37 0 32 0; +#X connect 37 1 35 0; +#X connect 37 1 31 0; +#X connect 38 0 39 0; +#X connect 39 0 38 0; +#X connect 41 0 43 0; +#X connect 43 0 42 0; +#X connect 46 0 32 0; +#X connect 48 0 29 0; diff --git a/Gem/examples/10.glsl/15.bicubic_image_interpolation.pd b/Gem/examples/10.glsl/15.bicubic_image_interpolation.pd new file mode 100644 index 0000000..e1ae128 --- /dev/null +++ b/Gem/examples/10.glsl/15.bicubic_image_interpolation.pd @@ -0,0 +1,63 @@ +#N canvas 722 145 681 529 10; +#X obj 232 189 gemhead; +#X obj 232 356 pix_noise 5 5; +#X obj 232 446 pix_texture; +#X obj 232 465 square 4; +#X msg 240 403 rectangle 1; +#X obj 240 382 loadbang; +#X obj 242 222 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X floatatom 250 272 5 0 0 0 - - -; +#X obj 35 196 gemwin; +#X msg 250 334 set \$1 \$2; +#X obj 250 314 pack f f; +#X obj 303 288 t b f; +#X floatatom 303 271 5 0 0 0 - - -; +#X msg 35 151 create \, 1; +#X msg 42 173 0 \, destroy; +#X obj 232 243 _glsl bicubic_interpolation; +#X obj 436 191 gemhead; +#X msg 358 408 quality \$1; +#X obj 358 389 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#X obj 33 246 vradio 15 1 1 3 empty empty empty 0 -8 0 10 -262144 -1 +-1 0; +#X text 53 246 bicubic interpolation; +#X text 53 264 bilinear interpolation; +#X text 55 276 no interpolation; +#X obj 33 304 s sel_interpolation; +#X obj 232 169 == 0; +#X obj 232 149 r sel_interpolation; +#X obj 436 152 r sel_interpolation; +#X obj 436 172 != 0; +#X obj 358 369 != 2; +#X obj 358 349 r sel_interpolation; +#X text 46 16 This example use shader in order to compute a bicubic +image interpolation. Bicubic interpolation offer a smoother surface +than obtain with bilinear interpolation. But since it need 16 sample +to compute the interpolation \, it is quite slow.; +#X connect 0 0 15 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 2 0; +#X connect 5 0 4 0; +#X connect 6 0 15 0; +#X connect 7 0 10 0; +#X connect 9 0 1 0; +#X connect 10 0 9 0; +#X connect 11 0 10 0; +#X connect 11 1 10 1; +#X connect 12 0 11 0; +#X connect 13 0 8 0; +#X connect 14 0 8 0; +#X connect 15 0 1 0; +#X connect 16 0 1 0; +#X connect 17 0 2 0; +#X connect 18 0 17 0; +#X connect 19 0 23 0; +#X connect 24 0 0 0; +#X connect 25 0 24 0; +#X connect 26 0 27 0; +#X connect 27 0 16 0; +#X connect 28 0 18 0; +#X connect 29 0 28 0; diff --git a/Gem/examples/10.glsl/GLSL_mix.frag b/Gem/examples/10.glsl/GLSL_mix.frag new file mode 100644 index 0000000..ce47bf8 --- /dev/null +++ b/Gem/examples/10.glsl/GLSL_mix.frag @@ -0,0 +1,35 @@ +//jack/RYBN 2010 +#extension GL_EXT_gpu_shader4 : enable +#extension GL_ARB_texture_rectangle : enable +uniform sampler2DRect Ttex1; +uniform sampler2DRect Ttex2; +uniform sampler2DRect tex0; +uniform float style; +uniform float mix_factor; +varying vec2 texcoord0; +ivec2 size1 = textureSize2DRect(Ttex1, 0); +ivec2 size2 = textureSize2DRect(Ttex2, 0); +ivec2 size0 = textureSize2DRect(tex0, 0); + +void main (void) +{ + float sizeF1X = float(size1.x)/float(size0.x); + float sizeF1Y = float(size1.y)/float(size0.y); + float sizeF2X = float(size2.x)/float(size0.x); + float sizeF2Y = float(size2.y)/float(size0.y); + vec4 color1 = texture2DRect(Ttex1, vec2(texcoord0.s*sizeF1X,texcoord0.t*sizeF1Y)); + vec4 color2 = texture2DRect(Ttex2, vec2(texcoord0.s*sizeF2X,texcoord0.t*sizeF2Y)); + if (style == 0.) { + gl_FragColor = (color1 + color2); + } else if (style == 1.) { + gl_FragColor = (color1 - color2); + } else if (style == 2.) { + gl_FragColor = abs(color1 - color2); + } else if (style == 3.) { + gl_FragColor = (color1 * color2); + } else if (style == 4.) { + gl_FragColor = mix(color1,color2,mix_factor); + } + +} + diff --git a/Gem/examples/10.glsl/GLSL_mix.vert b/Gem/examples/10.glsl/GLSL_mix.vert new file mode 100644 index 0000000..a69a61f --- /dev/null +++ b/Gem/examples/10.glsl/GLSL_mix.vert @@ -0,0 +1,9 @@ +//jack/RYBN 2010 +varying vec2 texcoord0; + +void main() +{ + texcoord0 = (gl_TextureMatrix[0]*gl_MultiTexCoord0).st; + gl_Position = ftransform(); + +} diff --git a/Gem/examples/10.glsl/P_distord.frag b/Gem/examples/10.glsl/P_distord.frag new file mode 100644 index 0000000..5460d6c --- /dev/null +++ b/Gem/examples/10.glsl/P_distord.frag @@ -0,0 +1,19 @@ +// Cyrille Henry 2007 + +uniform sampler2D tex0; + +void main() +{ + vec2 C = (gl_TextureMatrix[0] * gl_TexCoord[0]).st; + gl_FragColor = texture2D(tex0, C ) ; +} + + + + + + + + + + diff --git a/Gem/examples/10.glsl/P_distord.vert b/Gem/examples/10.glsl/P_distord.vert new file mode 100644 index 0000000..f0db5f3 --- /dev/null +++ b/Gem/examples/10.glsl/P_distord.vert @@ -0,0 +1,21 @@ +// Cyrille Henry 2007 + +uniform float K; +uniform sampler2D tex0; + +void main() +{ + gl_TexCoord[0] = gl_MultiTexCoord0; + + float xs1 = sin((1.2 + gl_TexCoord[0].s)*(2.3+gl_TexCoord[0].t)); + float xs2 = sin(xs1*533.); + float xs3 = K * sin(xs2*1013.); + + float ys1 = sin((2.1 + gl_TexCoord[0].s)*(3.2+gl_TexCoord[0].t)); + float ys2 = sin(ys1*5313.); + float ys3 = K * sin(ys2*10113.); + + gl_Position = gl_ModelViewProjectionMatrix * (gl_Vertex + vec4(xs3,ys3,0.,0.)); + +} + diff --git a/Gem/examples/10.glsl/T_distord.frag b/Gem/examples/10.glsl/T_distord.frag new file mode 100644 index 0000000..385f427 --- /dev/null +++ b/Gem/examples/10.glsl/T_distord.frag @@ -0,0 +1,31 @@ +// Cyrille Henry 2007 + +uniform float K1, seed; +uniform sampler2D tex0; + +void main() +{ + + vec2 C = (gl_TextureMatrix[0] * gl_TexCoord[0]).st; + + float xs1 = sin(gl_TexCoord[0].s*gl_TexCoord[0].t/(abs(seed)+1.)); + float xs2 = sin(xs1*533.); + float xs3 = sin(xs2*1013.); + + float ys1 = sin(gl_TexCoord[0].s*gl_TexCoord[0].t/(abs(seed)+1.)); + float ys2 = sin(ys1*5313.); + float ys3 = sin(ys2*10113.); + + gl_FragColor = texture2D(tex0, C + K1 * 0.01 *vec2(xs3,ys3)) ; + +} + + + + + + + + + + diff --git a/Gem/examples/10.glsl/T_distord.vert b/Gem/examples/10.glsl/T_distord.vert new file mode 100644 index 0000000..1143615 --- /dev/null +++ b/Gem/examples/10.glsl/T_distord.vert @@ -0,0 +1,9 @@ +// Cyrille Henry 2007 + +void main() +{ + gl_TexCoord[0] = gl_MultiTexCoord0; + gl_Position = ftransform(); + +} + diff --git a/Gem/examples/10.glsl/_glsl.pd b/Gem/examples/10.glsl/_glsl.pd new file mode 100644 index 0000000..de6228c --- /dev/null +++ b/Gem/examples/10.glsl/_glsl.pd @@ -0,0 +1,73 @@ +#N canvas 652 79 668 661 10; +#X obj 78 339 glsl_vertex; +#X msg 32 338 print; +#X obj 78 626 glsl_program; +#X obj 163 555 pack 0 0; +#X msg 30 476 print; +#X obj 163 511 change; +#X obj 150 358 change; +#X msg 163 579 link \$1 \$2; +#X msg 32 620 print; +#X obj 77 490 glsl_fragment; +#X floatatom 163 535 2 0 0 0 ID - -; +#X floatatom 150 381 2 0 0 0 ID - -; +#X obj 181 600 print linking; +#X obj 15 21 inlet; +#X obj 78 662 outlet; +#X msg 106 309 open \$1.vert; +#X msg 90 453 open \$1.frag; +#X obj 577 95 inlet; +#X obj 15 44 route bang; +#X obj 255 11 gemhead 1; +#X msg 255 33 1; +#X obj 255 57 change; +#X obj 255 81 t b; +#X obj 157 647 change; +#X obj 157 668 t b; +#X obj 158 690 outlet; +#X obj 140 224 t a a; +#X obj 90 426 symbol; +#X obj 90 401 t b; +#X msg 287 598 0; +#X obj 15 65 t b b b; +#X obj 140 199 symbol \$1; +#X text 270 193 This abstraction can be usefull to load shader. Shader +location is relative to this abstraction path.; +#X connect 0 0 9 0; +#X connect 0 1 6 0; +#X connect 1 0 0 0; +#X connect 2 0 14 0; +#X connect 2 1 23 0; +#X connect 3 0 7 0; +#X connect 4 0 9 0; +#X connect 5 0 10 0; +#X connect 6 0 11 0; +#X connect 6 0 28 0; +#X connect 7 0 2 0; +#X connect 7 0 12 0; +#X connect 8 0 2 0; +#X connect 9 0 2 0; +#X connect 9 1 5 0; +#X connect 10 0 3 0; +#X connect 11 0 3 1; +#X connect 13 0 18 0; +#X connect 15 0 0 0; +#X connect 16 0 9 0; +#X connect 17 0 2 0; +#X connect 18 0 30 0; +#X connect 18 1 0 0; +#X connect 19 0 20 0; +#X connect 20 0 21 0; +#X connect 21 0 22 0; +#X connect 22 0 31 0; +#X connect 23 0 24 0; +#X connect 24 0 25 0; +#X connect 26 0 15 0; +#X connect 26 1 27 1; +#X connect 27 0 16 0; +#X connect 28 0 27 0; +#X connect 29 0 23 0; +#X connect 30 0 29 0; +#X connect 30 1 10 0; +#X connect 30 2 31 0; +#X connect 31 0 26 0; diff --git a/Gem/examples/10.glsl/bicubic_interpolation.frag b/Gem/examples/10.glsl/bicubic_interpolation.frag new file mode 100644 index 0000000..9482bc6 --- /dev/null +++ b/Gem/examples/10.glsl/bicubic_interpolation.frag @@ -0,0 +1,90 @@ +// Cyrille Henry 2007 + +#extension GL_ARB_texture_rectangle : enable +uniform sampler2DRect texture; + +void main (void) +{ + vec2 coordinate = (gl_TextureMatrix[0] * gl_TexCoord[0]).st-vec2(0.5,0.5); + + vec2 coord = floor(coordinate)+vec2(0.5,0.5); + vec2 interpol = fract(coordinate); + vec2 interpol2 = interpol * interpol; + vec2 interpol3 = interpol2 * interpol; + + vec4 C00 = texture2DRect(texture, coord + vec2(-1,-1) ); + vec4 C10 = texture2DRect(texture, coord + vec2( 0,-1) ); + vec4 C20 = texture2DRect(texture, coord + vec2( 1,-1) ); + vec4 C30 = texture2DRect(texture, coord + vec2( 2,-1) ); + vec4 C01 = texture2DRect(texture, coord + vec2(-1, 0) ); + vec4 C11 = texture2DRect(texture, coord ); + vec4 C21 = texture2DRect(texture, coord + vec2( 1, 0) ); + vec4 C31 = texture2DRect(texture, coord + vec2( 2, 0) ); + vec4 C02 = texture2DRect(texture, coord + vec2(-1, 1) ); + vec4 C12 = texture2DRect(texture, coord + vec2( 0, 1) ); + vec4 C22 = texture2DRect(texture, coord + vec2( 1, 1) ); + vec4 C32 = texture2DRect(texture, coord + vec2( 2, 1) ); + vec4 C03 = texture2DRect(texture, coord + vec2(-1, 2) ); + vec4 C13 = texture2DRect(texture, coord + vec2( 0, 2) ); + vec4 C23 = texture2DRect(texture, coord + vec2( 1, 2) ); + vec4 C33 = texture2DRect(texture, coord + vec2( 2, 2) ); + + vec4 w0 = C11; + vec4 w1 = C21; + vec4 w2 = C12; + vec4 w3 = C22; + // x derivative + vec4 x0 = (C21 - C01) / 2.; + vec4 x1 = (C31 - C11) / 2.; + vec4 x2 = (C22 - C02) / 2.; + vec4 x3 = (C32 - C12) / 2.; + // y derivative + vec4 y0 = (C12 - C10) / 2.; + vec4 y1 = (C22 - C20) / 2.; + vec4 y2 = (C13 - C11) / 2.; + vec4 y3 = (C23 - C21) / 2.; + // xy derivative + vec4 z0 = (C22 - C00) / 2.; + vec4 z1 = (C32 - C10) / 2.; + vec4 z2 = (C23 - C01) / 2.; + vec4 z3 = (C33 - C11) / 2.; + + + + vec4 a00 = w0; + vec4 a01 = y0; + vec4 a02 = -3.*w0 + 3.*w2 -2.*y0 - y2; + vec4 a03 = 2.*w0 - 2.*w2 + y0 + y2; + vec4 a10 = x0; + vec4 a11 = z0; + vec4 a12 = -3.*x0 + 3.*x2 - 2.*z0 - z2; + vec4 a13 = 2.*x0 - 2.*x2 + z0 + z2; + vec4 a20 = -3.*w0 + 3.*w1 - 2.*x0 - x1; + vec4 a21 = -3.*y0 + 3.*y1 - 2.*z0 - z1; + vec4 a22 = 9.*w0 - 9.*w1 - 9.*w2 + 9.*w3 + 6.*x0 + 3.*x1 + -6.*x2 - 3.*x3 + 6.*y0 - 6.*y1 + 3.*y2 - 3.*y3 + 4.*z0 + 2.*z1 + 2.*z2 + z3; + vec4 a23 = -6.*w0 + 6.*w1 + 6.*w2 - 6.*w3 -4.*x0 - 2.*x1 + 4.*x2 + 2.*x3 -3.*y0 + 3.*y1 - 3.*y2 + 3.*y3 + -2.*z0 - z1 - 2.*z2 - z3; + vec4 a30 = 2.*w0 - 2.*w1 + x0 + x1; + vec4 a31 = 2.*y0 - 2.*y1 + z0 + z1; + vec4 a32 = -6.*w0 + 6.*w1 + 6.*w2 -6.*w3 -3.*x0 - 3.*x1 + 3.*x2 + 3.*x3 -4.*y0 + 4.*y1 - 2.*y2 + 2.*y3 + -2.*z0 - 2.*z1 - z2 - z3; + vec4 a33 = 4.*w0 - 4.*w1 - 4.*w2 + 4.*w3 + 2.*x0 + 2.*x1 + -2.*x2 - 2.*x3 + 2.*y0 - 2.*y1 + 2.*y2 - 2.*y3 + z0 + z1 + z2 + z3; + + + vec4 color = a00; + color += a01 * interpol.y; + color += a02 * interpol2.y; + color += a03 * interpol3.y; + color += a10 * interpol.x; + color += a11 * interpol.x * interpol.y; + color += a12 * interpol.x * interpol2.y; + color += a13 * interpol.x * interpol3.y; + color += a20 * interpol2.x; + color += a21 * interpol2.x * interpol.y; + color += a22 * interpol2.x * interpol2.y; + color += a23 * interpol2.x * interpol3.y; + color += a30 * interpol3.x; + color += a31 * interpol3.x * interpol.y; + color += a32 * interpol3.x * interpol2.y; + color += a33 * interpol3.x * interpol3.y; + + gl_FragColor = color; +} diff --git a/Gem/examples/10.glsl/bicubic_interpolation.vert b/Gem/examples/10.glsl/bicubic_interpolation.vert new file mode 100644 index 0000000..c890bd7 --- /dev/null +++ b/Gem/examples/10.glsl/bicubic_interpolation.vert @@ -0,0 +1,8 @@ +// Cyrille Henry 2007 + +void main() +{ + gl_TexCoord[0] = gl_MultiTexCoord0; + gl_Position = ftransform(); + +} diff --git a/Gem/examples/10.glsl/blur.frag b/Gem/examples/10.glsl/blur.frag new file mode 100644 index 0000000..f54e03a --- /dev/null +++ b/Gem/examples/10.glsl/blur.frag @@ -0,0 +1,18 @@ +uniform sampler2D tex0; +uniform vec2 distance; +uniform vec2 TX; + +void main (void) +{ + + vec2 texcoord = (gl_TextureMatrix[0] * gl_TexCoord[0]).st; + vec4 sample = 0.5 * texture2D(tex0, texcoord - distance); + sample += texture2D(tex0, texcoord); + sample += 0.5 * texture2D(tex0, texcoord + distance); + + sample /= 2.; + + gl_FragColor = sample; +} + + diff --git a/Gem/examples/10.glsl/blur.vert b/Gem/examples/10.glsl/blur.vert new file mode 100644 index 0000000..0254682 --- /dev/null +++ b/Gem/examples/10.glsl/blur.vert @@ -0,0 +1,9 @@ +varying vec2 texcoord0; +void main() +{ + gl_TexCoord[0] = gl_MultiTexCoord0; + + // perform standard transform on vertex + gl_Position = ftransform(); + +} diff --git a/Gem/examples/10.glsl/cam1.jpg b/Gem/examples/10.glsl/cam1.jpg new file mode 100644 index 0000000..c5023ba Binary files /dev/null and b/Gem/examples/10.glsl/cam1.jpg differ diff --git a/Gem/examples/10.glsl/cam2.jpg b/Gem/examples/10.glsl/cam2.jpg new file mode 100644 index 0000000..dd7ab0b Binary files /dev/null and b/Gem/examples/10.glsl/cam2.jpg differ diff --git a/Gem/examples/10.glsl/cam3.jpg b/Gem/examples/10.glsl/cam3.jpg new file mode 100644 index 0000000..76b6898 Binary files /dev/null and b/Gem/examples/10.glsl/cam3.jpg differ diff --git a/Gem/examples/10.glsl/cam4.jpg b/Gem/examples/10.glsl/cam4.jpg new file mode 100644 index 0000000..8d2c096 Binary files /dev/null and b/Gem/examples/10.glsl/cam4.jpg differ diff --git a/Gem/examples/10.glsl/fetching.frag b/Gem/examples/10.glsl/fetching.frag new file mode 100644 index 0000000..3d1af1f --- /dev/null +++ b/Gem/examples/10.glsl/fetching.frag @@ -0,0 +1,8 @@ +varying vec4 C; + +void main (void) +{ + gl_FragColor = C; +} + + diff --git a/Gem/examples/10.glsl/fetching.vert b/Gem/examples/10.glsl/fetching.vert new file mode 100644 index 0000000..b41cc16 --- /dev/null +++ b/Gem/examples/10.glsl/fetching.vert @@ -0,0 +1,15 @@ +uniform sampler2D MyTex; +varying vec4 C; +void main() +{ + vec4 v = vec4(gl_Vertex); + vec4 color = texture2D(MyTex, (gl_TextureMatrix[0] * gl_MultiTexCoord0).st); + v.z = color.r; +// v.x += (color.b-0.5)/2.; +// v.y += (color.g-0.5)/2.; + + C=color; + gl_Position = gl_ModelViewProjectionMatrix * v; + +} + diff --git a/Gem/examples/10.glsl/fetching2.frag b/Gem/examples/10.glsl/fetching2.frag new file mode 100644 index 0000000..1b576a5 --- /dev/null +++ b/Gem/examples/10.glsl/fetching2.frag @@ -0,0 +1,56 @@ +// Cyrille Henry 2008 +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect texture; +uniform float K2, K; + +vec2 pos_(vec2 V, float x, float y) +{ + V += vec2(x,y); + return(max(min(V,vec2(91.,63.)),vec2(0.))); +} + + +void main (void) +{ + vec2 pos = gl_TexCoord[0].st * vec2(90.,62.)/256. ; + + vec4 color1 = texture2DRect(texture,pos_(pos,-1./256.,-1./256.)); + vec4 color2 = texture2DRect(texture,pos_(pos, 0./256.,-1./256.)); + vec4 color3 = texture2DRect(texture,pos_(pos, 1./256.,-1./256.)); + vec4 color4 = texture2DRect(texture,pos_(pos,-1./256., 0./256.)); + vec4 color5 = texture2DRect(texture,pos_(pos, 0./256., 0./256.)); + vec4 color6 = texture2DRect(texture,pos_(pos, 1./256., 0./256.)); + vec4 color7 = texture2DRect(texture,pos_(pos,-1./256., 1./256.)); + vec4 color8 = texture2DRect(texture,pos_(pos, 0./256., 1./256.)); + vec4 color9 = texture2DRect(texture,pos_(pos, 1./256., 1./256.)); + + vec4 colorBG = color1 + color2 + color4 + color5; + vec4 colorBD = color3 + color2 + color6 + color5; + vec4 colorHG = color4 + color5 + color7 + color8; + vec4 colorHD = color5 + color6 + color8 + color9; + + vec2 fract_pos = (fract(pos)); + + vec4 XB = mix(colorBG,colorBD,fract_pos.x); + vec4 XH = mix(colorHG,colorHD,fract_pos.x); + vec4 X = mix(XB,XH,fract_pos.y) / 4.; + + X -= vec4(0.5); + X.xyz = normalize(X.xyz); + + if(gl_FrontFacing) + {X *= -1.;} + + float tmp = dot(X.xyz,normalize(vec3(0.,1.,1.))); + tmp = -tmp; + tmp = max(0.,tmp) + 0.3 * min(0.,tmp); + + tmp = 0.1 + 0.9 * tmp; + vec4 color = tmp * vec4(1,0.95,0.9,1); + color.a = smoothstep(0.75,1.,pos.x); + gl_FragColor = color; + +} + + diff --git a/Gem/examples/10.glsl/fetching2.vert b/Gem/examples/10.glsl/fetching2.vert new file mode 100644 index 0000000..01fbf0a --- /dev/null +++ b/Gem/examples/10.glsl/fetching2.vert @@ -0,0 +1,21 @@ +// Cyrille Henry 2008 +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect MyTex; +uniform float K; + +void main() +{ + vec4 v = vec4(gl_Vertex); + vec4 color = texture2DRect(MyTex, gl_MultiTexCoord0.st * vec2(91./128.,63./128.)); + + gl_TexCoord[0] = gl_MultiTexCoord0; + + v.x = color.r -0.5; + v.y = color.g -0.5; + v.z = color.b -0.5; + + gl_Position = gl_ModelViewProjectionMatrix * v; + +} + diff --git a/Gem/examples/10.glsl/game.frag b/Gem/examples/10.glsl/game.frag new file mode 100644 index 0000000..9b5800d --- /dev/null +++ b/Gem/examples/10.glsl/game.frag @@ -0,0 +1,30 @@ +// Cyrille Henry 2007 + +uniform sampler2D texture; + +const float dx = 1./500.; // change to gemwin dim + +void main (void) +{ + vec2 tmp = (gl_TextureMatrix[0] * gl_TexCoord[0]).st; + + float x = tmp.s; + float y = tmp.t; + + vec4 c; + c = texture2D(texture, vec2(x-dx, y-dx)); + c += texture2D(texture, vec2(x, y-dx)); + c += texture2D(texture, vec2(x+dx, y-dx)); + c += texture2D(texture, vec2(x-dx, y)); + c += texture2D(texture, vec2(x+dx, y)); + c += texture2D(texture, vec2(x-dx, y+dx)); + c += texture2D(texture, vec2(x, y+dx)); + c += texture2D(texture, vec2(x+dx, y+dx)); + + vec4 c1 = texture2D(texture, vec2(x, y)); + + c.rgb = vec3(step(2.5-c1.r,c.r)*step(c.r,3.5)); + c.a = 1.; + + gl_FragColor = c; +} diff --git a/Gem/examples/10.glsl/game.vert b/Gem/examples/10.glsl/game.vert new file mode 100644 index 0000000..64eb4f4 --- /dev/null +++ b/Gem/examples/10.glsl/game.vert @@ -0,0 +1,14 @@ +// Cyrille Henry 2007 + +uniform float K1; +uniform float K2; +uniform float K3; + +uniform vec2 offset; + +void main() +{ + gl_TexCoord[0] = gl_MultiTexCoord0; + gl_Position = ftransform(); +} + diff --git a/Gem/examples/10.glsl/geo.frag b/Gem/examples/10.glsl/geo.frag new file mode 100644 index 0000000..7ec0b43 --- /dev/null +++ b/Gem/examples/10.glsl/geo.frag @@ -0,0 +1,8 @@ +void main() +{ + vec4 tmp = gl_Color; + tmp.a /= 10.; + gl_FragColor = tmp; + // set color but alpha is 20 time less +} + diff --git a/Gem/examples/10.glsl/geo.geom b/Gem/examples/10.glsl/geo.geom new file mode 100644 index 0000000..3271c6f --- /dev/null +++ b/Gem/examples/10.glsl/geo.geom @@ -0,0 +1,28 @@ +#version 120 +#extension GL_EXT_geometry_shader4: enable + +void main(void) +{ + //increment variable + int i,j; + float rnd1,rnd2; + rnd1 = 0.0216767863321334264; // seed + rnd2 = 0.0475785688678678345; + for(j=0; j< 40; j++) + { + rnd1 = fract(124.321345312123465*rnd1) -0.5; // easy way to generated pseudo random number + rnd2 = fract(5234.43532345435245*rnd2) -0.5; + + //draw 40 time the same geometry, but with small shift in it's position + for(i=0; i< gl_VerticesIn; i++) + { + gl_FrontColor = gl_FrontColorIn[i]; + gl_TexCoord[0] = gl_TexCoordIn[i][0]; + gl_Position = gl_PositionIn[i]; // get position of the original point + gl_Position.xy += vec2(rnd1,rnd2)/3.; // add small random + // the geometry as already been transform in 2d, so we jut have to move it in X and Y + EmitVertex(); + } + EndPrimitive(); + } +} diff --git a/Gem/examples/10.glsl/geo.vert b/Gem/examples/10.glsl/geo.vert new file mode 100644 index 0000000..4359aa3 --- /dev/null +++ b/Gem/examples/10.glsl/geo.vert @@ -0,0 +1,7 @@ +void main() +{ + gl_FrontColor = gl_Color; + gl_TexCoord[0] = gl_MultiTexCoord0; + gl_Position = ftransform(); + //simple passthrow +} diff --git a/Gem/examples/10.glsl/img1.jpg b/Gem/examples/10.glsl/img1.jpg new file mode 100644 index 0000000..8e17c8b Binary files /dev/null and b/Gem/examples/10.glsl/img1.jpg differ diff --git a/Gem/examples/10.glsl/img2.jpg b/Gem/examples/10.glsl/img2.jpg new file mode 100644 index 0000000..5934461 Binary files /dev/null and b/Gem/examples/10.glsl/img2.jpg differ diff --git a/Gem/examples/10.glsl/img3.jpg b/Gem/examples/10.glsl/img3.jpg new file mode 100644 index 0000000..edfaf1e Binary files /dev/null and b/Gem/examples/10.glsl/img3.jpg differ diff --git a/Gem/examples/10.glsl/interpol.frag b/Gem/examples/10.glsl/interpol.frag new file mode 100644 index 0000000..a3c2c08 --- /dev/null +++ b/Gem/examples/10.glsl/interpol.frag @@ -0,0 +1,13 @@ +// Cyrille Henry 2008 +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect texture_mass; +uniform float init; + +void main (void) +{ + vec2 coord = gl_TexCoord[0].st/2.; + vec4 pos = texture2DRect(texture_mass, coord); + + gl_FragColor = pos; +} diff --git a/Gem/examples/10.glsl/link.frag b/Gem/examples/10.glsl/link.frag new file mode 100644 index 0000000..053cd5e --- /dev/null +++ b/Gem/examples/10.glsl/link.frag @@ -0,0 +1,164 @@ +// Cyrille Henry 2008 +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect texture_mass, texture_mass_old, texture_normal; +uniform float init, gravite; +uniform vec2 wind; +uniform float D; +uniform float K1; // rigiditée liaison +uniform float W,f,N; // amplitude du Wind et frequence; Noise +uniform float t; //temps + +varying vec2 coord; + +vec2 test1(vec2 V) +{ +// return(max(min(V,vec2(64.)),vec2(0.))); + return(V); +} + +void main (void) +{ + vec4 force = vec4(0,1.,0.,1.); + + if ( (coord.x < 92.) && (coord.y < 64.) ) + { + vec3 dist; + float taille; + + vec4 pos = texture2DRect(texture_mass, coord );// -vec4(0.5); + vec4 pos_old = texture2DRect(texture_mass_old,coord );// -vec4(0.5); + vec4 posG = texture2DRect(texture_mass, (coord+vec2(-1., 0.)));// -vec4(0.5); + vec4 posD = texture2DRect(texture_mass, (coord+vec2( 1., 0.)));// -vec4(0.5); + vec4 posH = texture2DRect(texture_mass, (coord+vec2( 0., 1.)));// -vec4(0.5); + vec4 posB = texture2DRect(texture_mass, (coord+vec2( 0.,-1.)));// -vec4(0.5); + vec4 posHD = texture2DRect(texture_mass, (coord+vec2( 1.,-1.)));// -vec4(0.5); + vec4 posBG = texture2DRect(texture_mass, (coord+vec2(-1., 1.)));// -vec4(0.5); + vec4 posHG = texture2DRect(texture_mass, (coord+vec2( 1., 1.)));// -vec4(0.5); + vec4 posBD = texture2DRect(texture_mass, (coord+vec2(-1.,-1.)));// -vec4(0.5); + vec4 pos2G = texture2DRect(texture_mass, (coord+vec2(-2., 0.)));// -vec4(0.5); + vec4 pos2D = texture2DRect(texture_mass, (coord+vec2( 2., 0.)));// -vec4(0.5); + vec4 pos2H = texture2DRect(texture_mass, (coord+vec2( 0., 2.)));// -vec4(0.5); + vec4 pos2B = texture2DRect(texture_mass, (coord+vec2( 0.,-2.)));// -vec4(0.5); + // lecture des position des masses voisinnes + + force = pos-pos_old; + // ajout de la force d'inertie (conservation de la vitesse) + + force *= 1.-D; + // damping relatif a un point fix + // ATTENTION, c'est le seul damping du system! + + + // 4 liens direct (gauche / droite et haut / bas) + // on ajoute une force ssi la taille est > 0 + // on limite aussi ds l'espace pour ne prendre en compte que le lien valide (effet de bord) + + dist = pos.xyz - posG.xyz ; + taille = length(dist) ; + if ( (taille > 0.) && (coord.x > 1.) ) + { force.xyz += -K1 * (taille - 1./1000.)* normalize(dist); } + + dist = pos.xyz - posD.xyz ; + taille = length(dist) ; + if ( (taille > 0.) && (coord.x < 91.) ) + { force.xyz += -K1 * (taille - 1./1000.)* normalize(dist); } + + dist = pos.xyz - posH.xyz ; + taille = length(dist) ; + if ( (taille > 0.) && (coord.y < 63.) ) + { force.xyz += -K1 * (taille - 1./1000.)* normalize(dist); } + + dist = pos.xyz - posB.xyz ; + taille = length(dist) ; + if ( (taille > 0.) && (coord.y > 1.) ) + { force.xyz += -K1 * (taille - 1./1000.)* normalize(dist); } + + // 4 liens diagonaux (haut gauche, bas droite, etc) + dist = pos.xyz - posHD.xyz ; + taille = length(dist) ; + if ( (taille > 0.) && (coord.x < 91.) && (coord.y > 1.) ) + { force.xyz += -K1 * (taille - 1.4142/1000.)* normalize(dist); } + + dist = pos.xyz - posBG.xyz ; + taille = length(dist) ; + if ( (taille > 0.) && (coord.x > 1.) && (coord.y < 63.) ) + { force.xyz += -K1 * (taille - 1.4142/1000.)* normalize(dist); } + + dist = pos.xyz - posHG.xyz ; + taille = length(dist) ; + if ( (taille > 0.) && (coord.x < 91.) && (coord.y < 63.) ) + { force.xyz += -K1 * (taille - 1.4142/1000.)* normalize(dist); } + + dist = pos.xyz - posBD.xyz ; + taille = length(dist) ; + if ( (taille > 0.) && (coord.x > 1.) && (coord.y > 1.) ) + { force.xyz += -K1 * (taille - 1.4142/1000.)* normalize(dist); } + + // 4 liens double longeur (rigidité de flexion) + dist = pos.xyz - pos2G.xyz ; + taille = length(dist) ; + if ( (taille > 0.) && (coord.x > 2.) ) + { force.xyz += -K1 * (taille - 2./1000.)* normalize(dist); } + + dist = pos.xyz - pos2D.xyz ; + taille = length(dist) ; + if ( (taille > 0.) && (coord.x < 90.) ) + { force.xyz += -K1 * (taille - 2./1000.)* normalize(dist); } + + dist = pos.xyz - pos2H.xyz ; + taille = length(dist) ; + if ( (taille > 0.) && (coord.y < 62.) ) + { force.xyz += -K1 * (taille - 2./1000.)* normalize(dist); } + + dist = pos.xyz - pos2B.xyz ; + taille = length(dist) ; + if ( (taille > 0.) && (coord.y > 2.) ) + { force.xyz += -K1 * (taille - 2./1000.)* normalize(dist); } + + // autres forces + vec4 normal = texture2DRect(texture_normal, coord*64.) -vec4(0.5); + normal = normalize(normal); + // float force_wind = abs(dot(normalize(vec3(wind.xy,0.)),normal.xyz)); + + force.r += wind.x/100.; + force.g += gravite/100.; + force.b += wind.y/100.; + + // ajout d'une force sinusoidal perpendiculaire a la direction du vent + float W_sin = cos(-t + f*0.01*gl_TexCoord[0].s); + W_sin *= 91.- gl_TexCoord[0].s; + W_sin /= 91.; + W_sin *= 91.- gl_TexCoord[0].s; + W_sin /= 91.; + + W_sin *= gl_TexCoord[0].t + 50.; + W_sin /= 63.; + W_sin *= gl_TexCoord[0].t + 50.; + W_sin /= 63.; + + force.x += W*(-wind.y*W_sin); + force.z += W*( wind.x*W_sin); + + // ajout d'un pseuo buit + float W_noiseX = cos(t + 0.353 * coord.t + 0.0234434* coord.s + 345.2342); + W_noiseX = cos(123456.35345 * W_noiseX + 234.23); + float W_noiseY = cos(-2.2 * t + 6235.457456 * W_noiseX + 567.456); + float W_noiseZ = cos(5.*t + 8976457.457 * W_noiseX + 3464.54); + W_noiseX = cos(323344.64345 * W_noiseX + 567.45); + + force.x += 0.00001 * N * W_noiseX; + force.y += 0.00001 * N * W_noiseY; + force.z += 0.00001 * N * W_noiseZ; + + + // preparation de la sortie + force = min(max(force,vec4(-0.5)),vec4(0.5)); + // min et max pour virer les +inf + force += vec4(0.5,0.5,0.5,1.); + // ajout de l'ofset pour etre entre 0 et 1 + force.a = 1.; + // on vire la 4eme composante au cas ou. + } + gl_FragColor = mix(force,vec4(0.5,0.5,0.5,1.),init); +} diff --git a/Gem/examples/10.glsl/link.vert b/Gem/examples/10.glsl/link.vert new file mode 100644 index 0000000..fefc366 --- /dev/null +++ b/Gem/examples/10.glsl/link.vert @@ -0,0 +1,10 @@ +varying vec2 coord; + + +void main() +{ + + coord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).st; + gl_Position = ftransform(); + +} diff --git a/Gem/examples/10.glsl/mass.frag b/Gem/examples/10.glsl/mass.frag new file mode 100644 index 0000000..29a2ef2 --- /dev/null +++ b/Gem/examples/10.glsl/mass.frag @@ -0,0 +1,34 @@ +// Cyrille Henry 2008 +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect texture_mass_old,texture_link; +varying vec2 coord; +uniform float init; + +void main (void) +{ + vec4 color = vec4(0.,0.,1.,1.); + if ( (coord.x < 92.) && (coord.y < 64.) ) + { + vec4 pos = texture2DRect(texture_mass_old, coord)-vec4(0.5); + vec4 force = texture2DRect(texture_link, coord)-vec4(0.5); + + force = min(max(force,vec4(-0.5)),vec4(0.5)); + // on vire les +inf et -inf qui peuvent poser pb en cas d'instabilités + pos += force; + //increment de la position + + float reset = step(coord.x,1.); +// reset *= step(mod(coord.y,10.),4.); + // les point en x<1 sont tjrs reseté : ils sont dc imobiles + + color = mix(pos,vec4(coord.x/1000.,(coord.y-32.)/1000.,0.,0.),reset+(1.-reset)*init); + // couleur de sortie mixé avec couleur d'initialisation + + color += vec4(0.5); + color.a = 1.; + // preparation de la sortie (ajout de l'offset + virer l'alpha) + } + + gl_FragColor = color; +} diff --git a/Gem/examples/10.glsl/mass.vert b/Gem/examples/10.glsl/mass.vert new file mode 100644 index 0000000..fefc366 --- /dev/null +++ b/Gem/examples/10.glsl/mass.vert @@ -0,0 +1,10 @@ +varying vec2 coord; + + +void main() +{ + + coord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).st; + gl_Position = ftransform(); + +} diff --git a/Gem/examples/10.glsl/multitexture.frag b/Gem/examples/10.glsl/multitexture.frag new file mode 100644 index 0000000..9e8ed0c --- /dev/null +++ b/Gem/examples/10.glsl/multitexture.frag @@ -0,0 +1,13 @@ +uniform sampler2D MyTex; +uniform sampler2D MyTex1; + +varying vec2 texcoord1; +varying vec2 texcoord2; + +void main (void) +{ + vec4 color = texture2D(MyTex, texcoord1); + vec4 color2 = texture2D(MyTex1, texcoord2); + gl_FragColor = (color + color2) / 2.; +} + diff --git a/Gem/examples/10.glsl/multitexture.vert b/Gem/examples/10.glsl/multitexture.vert new file mode 100644 index 0000000..2cade19 --- /dev/null +++ b/Gem/examples/10.glsl/multitexture.vert @@ -0,0 +1,11 @@ +varying vec2 texcoord1; +varying vec2 texcoord2; + +void main() +{ + + texcoord1 = (gl_TextureMatrix[0] * gl_MultiTexCoord0).st; + texcoord2 = (gl_TextureMatrix[1] * gl_MultiTexCoord1).st; + gl_Position = ftransform(); + +} diff --git a/Gem/examples/10.glsl/multitexture_rect.frag b/Gem/examples/10.glsl/multitexture_rect.frag new file mode 100644 index 0000000..3eb9b2b --- /dev/null +++ b/Gem/examples/10.glsl/multitexture_rect.frag @@ -0,0 +1,15 @@ +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect MyTex; +uniform sampler2DRect MyTex1; + +varying vec2 texcoord1; +varying vec2 texcoord2; + +void main (void) +{ + vec4 color = texture2DRect(MyTex, texcoord1); + vec4 color2 = texture2DRect(MyTex1, texcoord1); // texcoord2 does not work. + gl_FragColor = (color + color2) / 2.; +} + diff --git a/Gem/examples/10.glsl/multitexture_rect.vert b/Gem/examples/10.glsl/multitexture_rect.vert new file mode 100644 index 0000000..2cade19 --- /dev/null +++ b/Gem/examples/10.glsl/multitexture_rect.vert @@ -0,0 +1,11 @@ +varying vec2 texcoord1; +varying vec2 texcoord2; + +void main() +{ + + texcoord1 = (gl_TextureMatrix[0] * gl_MultiTexCoord0).st; + texcoord2 = (gl_TextureMatrix[1] * gl_MultiTexCoord1).st; + gl_Position = ftransform(); + +} diff --git a/Gem/examples/10.glsl/normal.frag b/Gem/examples/10.glsl/normal.frag new file mode 100644 index 0000000..eef7f86 --- /dev/null +++ b/Gem/examples/10.glsl/normal.frag @@ -0,0 +1,37 @@ +// Cyrille Henry 2008 +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect texture_mass; +varying vec2 coord; + +vec2 test1(vec2 V) +{ + return(max(min(V,vec2(91.,63.)),vec2(0.))); +} + +void main (void) +{ + vec4 color = vec4(1.,0.,0.,1.); + + if ( (coord.x < 91.) && (coord.y < 63.) ) + { + vec4 posG = texture2DRect(texture_mass, test1(coord+vec2(-1., 0.))) ; + vec4 posD = texture2DRect(texture_mass, test1(coord+vec2( 1., 0.))) ; + vec4 posH = texture2DRect(texture_mass, test1(coord+vec2( 0.,-1.))) ; + vec4 posB = texture2DRect(texture_mass, test1(coord+vec2( 0., 1.))) ; + + vec3 normal = cross((posG.xyz-posD.xyz),(posH.xyz-posB.xyz)); + color.xyz = normalize(normal); + color.xyz = normal; + + vec3 DX = posG.xyz-posD.xyz; + vec3 DY = posH.xyz-posB.xyz; + + color += vec4(1.); + color *= 0.5; + + } + color.a = 1.; + gl_FragColor = color; + +} diff --git a/Gem/examples/10.glsl/normal.vert b/Gem/examples/10.glsl/normal.vert new file mode 100644 index 0000000..fefc366 --- /dev/null +++ b/Gem/examples/10.glsl/normal.vert @@ -0,0 +1,10 @@ +varying vec2 coord; + + +void main() +{ + + coord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).st; + gl_Position = ftransform(); + +} diff --git a/Gem/examples/10.glsl/panoramique.frag b/Gem/examples/10.glsl/panoramique.frag new file mode 100644 index 0000000..d0378b6 --- /dev/null +++ b/Gem/examples/10.glsl/panoramique.frag @@ -0,0 +1,28 @@ +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect MyTex; +uniform float dZ, ShadeL, ShadeR, sizeX, sizeY; + +void main (void) +{ + + vec2 pos_out; + pos_out.x=-1.+(2.*gl_TexCoord[0].s)/sizeX; + pos_out.y=-1.+(2.*gl_TexCoord[0].t)/sizeY; + pos_out.y *= sqrt(pos_out.x*pos_out.x+dZ*dZ)/dZ; + + pos_out.x = sizeX*(pos_out.x+1.)/2.; + pos_out.y = sizeY*(pos_out.y+1.)/2.; + + vec4 color = texture2DRect(MyTex, pos_out); + + color.a = 1.; + float tmp = mix(0.,1.,gl_TexCoord[0].s/ShadeL); + tmp = min(tmp,1.); + color.a *= tmp; + tmp = mix(0.,1.,(sizeX-gl_TexCoord[0].s)/ShadeR); + tmp = min(tmp,1.); + color.a *= tmp; + + gl_FragColor = color; +} diff --git a/Gem/examples/10.glsl/panoramique.vert b/Gem/examples/10.glsl/panoramique.vert new file mode 100644 index 0000000..5fcb9d8 --- /dev/null +++ b/Gem/examples/10.glsl/panoramique.vert @@ -0,0 +1,5 @@ +void main() +{ + gl_TexCoord[0] = gl_MultiTexCoord0; + gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; +} diff --git a/Gem/examples/10.glsl/single_blur.pd b/Gem/examples/10.glsl/single_blur.pd new file mode 100644 index 0000000..76088b7 --- /dev/null +++ b/Gem/examples/10.glsl/single_blur.pd @@ -0,0 +1,55 @@ +#N canvas 310 229 681 595 10; +#X obj 99 59 inlet; +#X obj 26 145 gemframebuffer; +#X obj 26 215 translateXYZ 0 0 -4; +#X obj 26 285 pix_texture; +#X obj 26 305 square 4; +#X msg 43 264 quality 1 \, rectangle 0; +#X obj 43 243 loadbang; +#X obj 128 431 outlet; +#X obj 26 195 _glsl blur; +#X obj 47 166 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 248 85 t f f; +#X obj 248 17 r blur; +#X obj 248 133 pack f f; +#X obj 26 85 gemhead \$1; +#X obj 248 112 * \$2; +#X obj 301 111 * \$3; +#X msg 248 153 distance \$1 \$2; +#X obj 42 119 r to_fb; +#X obj 248 39 route float; +#X obj 322 61 unpack f f; +#X obj 441 18 r motion_blur; +#X obj 441 90 pack f f; +#X obj 441 65 * \$2; +#X obj 441 41 unpack f f; +#X obj 508 65 * \$2; +#X connect 0 0 3 1; +#X connect 1 0 8 0; +#X connect 1 1 7 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 5 0 3 0; +#X connect 6 0 5 0; +#X connect 8 0 2 0; +#X connect 9 0 8 0; +#X connect 10 0 14 0; +#X connect 10 1 15 0; +#X connect 11 0 18 0; +#X connect 12 0 16 0; +#X connect 13 0 1 0; +#X connect 14 0 12 0; +#X connect 15 0 12 1; +#X connect 16 0 8 1; +#X connect 17 0 1 0; +#X connect 18 0 10 0; +#X connect 18 1 19 0; +#X connect 19 0 14 0; +#X connect 19 1 15 0; +#X connect 20 0 23 0; +#X connect 21 0 16 0; +#X connect 22 0 21 0; +#X connect 23 0 22 0; +#X connect 23 1 24 0; +#X connect 24 0 21 1; diff --git a/Gem/examples/10.glsl/texture.frag b/Gem/examples/10.glsl/texture.frag new file mode 100644 index 0000000..aaee824 --- /dev/null +++ b/Gem/examples/10.glsl/texture.frag @@ -0,0 +1,16 @@ +// Cyrille Henry 2007 + +//#extension GL_ARB_texture_rectangle : enable +//uniform sampler2DRect MyTex; +uniform sampler2D MyTex; +uniform float B,C; + +void main (void) +{ + vec4 color = texture2D(MyTex, (gl_TextureMatrix[0] * gl_TexCoord[0]).st); + + color *= B+1.; // brightness + vec4 gray = vec4(dot(color.rgb,vec3(0.2125, 0.7154, 0.0721))); + color = mix(gray, color, C+1.); // contrast + gl_FragColor = color; +} diff --git a/Gem/examples/10.glsl/texture.vert b/Gem/examples/10.glsl/texture.vert new file mode 100644 index 0000000..bda9f47 --- /dev/null +++ b/Gem/examples/10.glsl/texture.vert @@ -0,0 +1,8 @@ +// Cyrille Henry 2007 + +void main() +{ + gl_TexCoord[0] = gl_MultiTexCoord0; + gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; + +} diff --git a/Gem/examples/10.glsl/texture_rect.frag b/Gem/examples/10.glsl/texture_rect.frag new file mode 100644 index 0000000..98adc1f --- /dev/null +++ b/Gem/examples/10.glsl/texture_rect.frag @@ -0,0 +1,16 @@ +// Cyrille Henry 2007 + +#extension GL_ARB_texture_rectangle : enable +uniform sampler2DRect MyTex; +//uniform sampler2D MyTex; +uniform float B,C; + +void main (void) +{ + vec4 color = texture2DRect(MyTex, (gl_TextureMatrix[0] * gl_TexCoord[0]).st); + + color *= B+1.; // brightness + vec4 gray = vec4(dot(color.rgb,vec3(0.2125, 0.7154, 0.0721))); + color = mix(gray, color, C+1.); // contrast + gl_FragColor = color; +} diff --git a/Gem/examples/10.glsl/tri2fan.frag b/Gem/examples/10.glsl/tri2fan.frag new file mode 100644 index 0000000..391dc68 --- /dev/null +++ b/Gem/examples/10.glsl/tri2fan.frag @@ -0,0 +1,6 @@ +void main() +{ + gl_FragColor = vec4(1.0,1.0,1.0,0.1); + // set color +} + diff --git a/Gem/examples/10.glsl/tri2fan.geom b/Gem/examples/10.glsl/tri2fan.geom new file mode 100644 index 0000000..45961e2 --- /dev/null +++ b/Gem/examples/10.glsl/tri2fan.geom @@ -0,0 +1,51 @@ +// Cyrille Henry 2010 + +#version 120 +#extension GL_EXT_geometry_shader4 : enable + +void main(void) +{ + + int i; //increment variable + vec4 pos1,pos2, pos3, pos4, pos5; // tmp + vec3 high; + + for(i=0; i< gl_VerticesIn; i += 3){ // for all triangles + pos1 = gl_PositionIn[i]; + pos2 = gl_PositionIn[i+1]; + pos3 = gl_PositionIn[i+2]; + pos4 = (pos1 + pos2 + pos3) / 3.; // center of the triangle + + high = 10.*cross(pos2.xyz-pos1.xyz,pos3.xyz-pos2.xyz); + // hight and orientation of the piramide + + high = normalize(high); + high *= length(pos2-pos1); + pos5 = pos4 ; + pos5.xyz += high; + + gl_Position = gl_ModelViewProjectionMatrix * pos1; + EmitVertex(); + gl_Position = gl_ModelViewProjectionMatrix * pos4; + EmitVertex(); + gl_Position = gl_ModelViewProjectionMatrix * pos5; + EmitVertex(); + gl_Position = gl_ModelViewProjectionMatrix * pos2; + EmitVertex(); + gl_Position = gl_ModelViewProjectionMatrix * pos4; + EmitVertex(); + gl_Position = gl_ModelViewProjectionMatrix * pos5; + EmitVertex(); + gl_Position = gl_ModelViewProjectionMatrix * pos3; + EmitVertex(); + gl_Position = gl_ModelViewProjectionMatrix * pos4; + EmitVertex(); + gl_Position = gl_ModelViewProjectionMatrix * pos5; + EmitVertex(); + + EndPrimitive(); + // new primitive + } + +} + diff --git a/Gem/examples/10.glsl/tri2fan.vert b/Gem/examples/10.glsl/tri2fan.vert new file mode 100644 index 0000000..2d22ff2 --- /dev/null +++ b/Gem/examples/10.glsl/tri2fan.vert @@ -0,0 +1,6 @@ +void main() +{ + gl_Position = gl_Vertex; +} + + diff --git a/Gem/examples/10.glsl/vague.frag b/Gem/examples/10.glsl/vague.frag new file mode 100644 index 0000000..7b6a2f3 --- /dev/null +++ b/Gem/examples/10.glsl/vague.frag @@ -0,0 +1,23 @@ +// Cyrille Henry 2007 + +#extension GL_ARB_texture_rectangle : enable + +uniform float K; +uniform sampler2DRect texture, texture1, texture2; + +const float dx = 1.; +const float dy = 1.; +const float dp = 1.; + +void main (void) +{ + float light; + vec2 position = gl_TexCoord[0].st; + vec4 C, C1; + C = texture2DRect(texture2, position) ; + + vec4 color2 = texture2DRect(texture1, (position+K*C.rg)); + + gl_FragColor = color2; + +} diff --git a/Gem/examples/10.glsl/wave.frag b/Gem/examples/10.glsl/wave.frag new file mode 100644 index 0000000..d455f88 --- /dev/null +++ b/Gem/examples/10.glsl/wave.frag @@ -0,0 +1,40 @@ +// Cyrille Henry 2007 + +#extension GL_ARB_texture_rectangle : enable + +uniform float K1,K3,D1,K; +uniform sampler2DRect text; + +const float dx = 1.; +const float dy = 1.; + +void main (void) +{ + float x,y; + vec4 C; + vec2 texture1 = gl_TexCoord[0].st ; + + x=texture1.x; + y=texture1.y; + + C = texture2DRect(text, vec2(x, y)); + + vec4 color_cote = texture2DRect(text, vec2(x-dx, y-dy)); + color_cote += texture2DRect(text, vec2(x+dx, y-dy)); + color_cote += texture2DRect(text, vec2(x-dx, y+dy)); + color_cote += texture2DRect(text, vec2(x+dx, y+dy)); + color_cote += texture2DRect(text, vec2(x, y-dy)); + color_cote += texture2DRect(text, vec2(x-dx, y)); + color_cote += texture2DRect(text, vec2(x+dx, y)); + color_cote += texture2DRect(text, vec2(x, y+dy)); + + + float K = K1 * color_cote.r + K3 * 0.5 - (8. * K1 + K3) * C.r; + float D = D1 * (C.r - C.g); + + C.b = C.g; + C.g = C.r; + C.r = (2.* C.g) - C.b + K - D ; + + gl_FragColor = vec4(C.rgb,1.); +} diff --git a/Gem/examples/11.obj-exporter/obj_cube.pd b/Gem/examples/11.obj-exporter/obj_cube.pd new file mode 100644 index 0000000..d874dc6 --- /dev/null +++ b/Gem/examples/11.obj-exporter/obj_cube.pd @@ -0,0 +1,152 @@ +#N canvas 511 83 666 689 12; +#X obj 18 14 inlet; +#X obj 18 35 t a a; +#X obj 50 98 spigot 0; +#X obj 50 169 GEMglPushMatrix; +#X obj 50 573 GEMglPopMatrix; +#X obj 50 211 gemlist_info; +#X obj 103 77 r global_snap_obj; +#X obj 560 718 s global_obj_creator; +#X obj 50 317 gemlist_info; +#X obj 342 25 loadbang; +#X obj 342 46 \$1; +#X obj 342 67 sel 0; +#X msg 342 88 1; +#X obj 342 110 f; +#X text 374 108 or primitive apothema for matju; +#X text 375 92 primitive size; +#X obj 342 131 s \$0-size; +#X obj 422 25 inlet; +#X obj 18 77 outlet; +#X obj 166 168 r \$0-size; +#X obj 50 190 translateXYZ; +#X obj 104 275 * -2; +#X obj 50 296 translateXYZ; +#X obj 104 253 r \$0-size; +#X obj 50 424 gemlist_info; +#X obj 77 382 * -2; +#X obj 50 403 translateXYZ; +#X obj 77 360 r \$0-size; +#X obj 50 530 gemlist_info; +#X obj 50 509 translateXYZ; +#X obj 104 467 r \$0-size; +#X obj 50 121 t a b; +#X text 150 143 create new groupe; +#X obj 104 488 * 2; +#X obj 50 594 t b; +#X msg 131 232 v \$1 \$2 \$3; +#X msg 131 339 v \$1 \$2 \$3; +#X msg 131 445 v \$1 \$2 \$3; +#X msg 131 552 v \$1 \$2 \$3; +#X obj 59 35 r \$0-size; +#X obj 50 636 spigot 1; +#X obj 123 690 spigot 0; +#X obj 103 594 r global_obj_triangulate; +#X obj 103 615 == 0; +#X msg 82 142 g cube; +#X obj 18 56 cube; +#X obj 260 217 gemlist_info; +#X obj 260 323 gemlist_info; +#X obj 341 154 r \$0-size; +#X obj 260 196 translateXYZ; +#X obj 314 281 * -2; +#X obj 260 302 translateXYZ; +#X obj 314 259 r \$0-size; +#X obj 260 430 gemlist_info; +#X obj 287 388 * -2; +#X obj 260 409 translateXYZ; +#X obj 287 366 r \$0-size; +#X obj 260 536 gemlist_info; +#X obj 260 515 translateXYZ; +#X obj 314 473 r \$0-size; +#X obj 314 494 * 2; +#X msg 341 238 v \$1 \$2 \$3; +#X msg 341 345 v \$1 \$2 \$3; +#X msg 341 451 v \$1 \$2 \$3; +#X msg 341 558 v \$1 \$2 \$3; +#X obj 341 175 * -2; +#X obj 287 175 * 2; +#X msg 50 657 f -5 -6 -7 -8 \, f -7 -3 -4 -8 \, f -5 -8 -4 -1 \, f +-2 -3 -7 -6 \, f -1 -2 -6 -5 \, f -3 -2 -1 -4; +#X msg 123 711 f -6 -7 -8 \, f -8 -5 -6 \, f -3 -4 -8 \, f -8 -7 -3 +\, f -8 -4 -1 \, f -1 -5 -8 \, f -3 -7 -6 \, f -6 -2 -3 \, f -2 -6 +-5 \, f -5 -1 -2 \, f -2 -1 -4 \, f -4 -3 -2; +#X connect 0 0 1 0; +#X connect 1 0 45 0; +#X connect 1 1 2 0; +#X connect 2 0 31 0; +#X connect 3 0 20 0; +#X connect 4 0 34 0; +#X connect 5 0 22 0; +#X connect 5 4 35 0; +#X connect 6 0 2 1; +#X connect 8 0 26 0; +#X connect 8 4 36 0; +#X connect 9 0 10 0; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X connect 11 1 13 0; +#X connect 12 0 13 0; +#X connect 13 0 16 0; +#X connect 17 0 13 0; +#X connect 19 0 20 1; +#X connect 19 0 20 2; +#X connect 19 0 20 3; +#X connect 20 0 5 0; +#X connect 21 0 22 2; +#X connect 22 0 8 0; +#X connect 23 0 21 0; +#X connect 24 0 29 0; +#X connect 24 4 37 0; +#X connect 25 0 26 1; +#X connect 26 0 24 0; +#X connect 27 0 25 0; +#X connect 28 0 49 0; +#X connect 28 4 38 0; +#X connect 29 0 28 0; +#X connect 30 0 33 0; +#X connect 31 0 3 0; +#X connect 31 1 44 0; +#X connect 33 0 29 2; +#X connect 34 0 40 0; +#X connect 34 0 41 0; +#X connect 35 0 7 0; +#X connect 36 0 7 0; +#X connect 37 0 7 0; +#X connect 38 0 7 0; +#X connect 39 0 45 1; +#X connect 40 0 67 0; +#X connect 41 0 68 0; +#X connect 42 0 41 1; +#X connect 42 0 43 0; +#X connect 43 0 40 1; +#X connect 44 0 7 0; +#X connect 45 0 18 0; +#X connect 46 0 51 0; +#X connect 46 4 61 0; +#X connect 47 0 55 0; +#X connect 47 4 62 0; +#X connect 48 0 65 0; +#X connect 48 0 66 0; +#X connect 49 0 46 0; +#X connect 50 0 51 2; +#X connect 51 0 47 0; +#X connect 52 0 50 0; +#X connect 53 0 58 0; +#X connect 53 4 63 0; +#X connect 54 0 55 1; +#X connect 55 0 53 0; +#X connect 56 0 54 0; +#X connect 57 0 4 0; +#X connect 57 4 64 0; +#X connect 58 0 57 0; +#X connect 59 0 60 0; +#X connect 60 0 58 2; +#X connect 61 0 7 0; +#X connect 62 0 7 0; +#X connect 63 0 7 0; +#X connect 64 0 7 0; +#X connect 65 0 49 3; +#X connect 66 0 49 1; +#X connect 67 0 7 0; +#X connect 68 0 7 0; diff --git a/Gem/examples/11.obj-exporter/obj_exporter-help.pd b/Gem/examples/11.obj-exporter/obj_exporter-help.pd new file mode 100644 index 0000000..543a2b2 --- /dev/null +++ b/Gem/examples/11.obj-exporter/obj_exporter-help.pd @@ -0,0 +1,87 @@ +#N canvas 58 106 645 381 12; +#X obj 35 90 gemhead; +#X obj 35 175 translateXYZ 0 0 0.1; +#X obj 35 153 rotateXYZ 1 5 9; +#X obj 35 197 scaleXYZ 1 1.1 1; +#X obj 35 219 obj_square 0.2; +#X obj 242 205 obj_exporter; +#X msg 242 95 save test1.obj; +#N canvas 428 179 450 300 repeat 0; +#X obj 36 22 inlet; +#X obj 36 44 t a a; +#X obj 111 170 gemlist; +#X obj 36 227 outlet; +#X obj 111 149 until; +#X msg 111 128 30; +#X obj 36 65 route gem_state; +#X obj 36 86 route float; +#X msg 36 107 gem_state \$1; +#X connect 0 0 1 0; +#X connect 1 0 6 0; +#X connect 1 1 2 1; +#X connect 2 0 3 0; +#X connect 4 0 2 0; +#X connect 5 0 4 0; +#X connect 6 0 7 0; +#X connect 7 0 8 0; +#X connect 7 1 5 0; +#X connect 8 0 3 0; +#X restore 35 112 pd repeat 30; +#X msg 35 15 create \, 1; +#X msg 46 36 destroy; +#X floatatom 69 133 5 0 0 0 - - -; +#X floatatom 109 133 5 0 0 0 - - -; +#X floatatom 149 133 5 0 0 0 - - -; +#X msg 256 142 goupe \$1; +#X obj 256 123 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X text 276 122 grouping or not the various primitives; +#X text 325 144 default = 0; +#X msg 270 181 triangulate \$1; +#X obj 270 164 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X text 379 182 triangulate quads (default = 0); +#X obj 35 324 obj_primTri; +#X msg 47 261 0.1 0.3 0.5; +#X msg 59 282 0.2 0.4 0.5; +#X obj 47 240 loadbang; +#X obj 241 261 gemhead; +#X obj 401 261 gemhead; +#X obj 401 324 obj_rectangle 0.5 1; +#X obj 401 282 translateXYZ -1 -1 2; +#X obj 401 303 rotateXYZ 30 -20 10; +#X msg 72 303 0.2 0.4 0.4; +#X obj 241 324 obj_cube 0.5; +#X obj 241 303 rotateXYZ 30 30 30; +#X obj 241 282 translateXYZ 2 1 2; +#X obj 35 59 gemwin; +#X text 236 16 Here is a way to create obj file in Gem.; +#X obj 307 64 model; +#X connect 0 0 7 0; +#X connect 1 0 3 0; +#X connect 2 0 1 0; +#X connect 3 0 4 0; +#X connect 4 0 20 0; +#X connect 6 0 5 0; +#X connect 7 0 2 0; +#X connect 8 0 33 0; +#X connect 9 0 33 0; +#X connect 10 0 2 1; +#X connect 11 0 2 2; +#X connect 12 0 2 3; +#X connect 13 0 5 0; +#X connect 14 0 13 0; +#X connect 17 0 5 0; +#X connect 18 0 17 0; +#X connect 21 0 20 1; +#X connect 22 0 20 2; +#X connect 23 0 21 0; +#X connect 23 0 22 0; +#X connect 23 0 29 0; +#X connect 24 0 32 0; +#X connect 25 0 27 0; +#X connect 27 0 28 0; +#X connect 28 0 26 0; +#X connect 29 0 20 3; +#X connect 31 0 30 0; +#X connect 32 0 31 0; diff --git a/Gem/examples/11.obj-exporter/obj_exporter.pd b/Gem/examples/11.obj-exporter/obj_exporter.pd new file mode 100644 index 0000000..5a4b08f --- /dev/null +++ b/Gem/examples/11.obj-exporter/obj_exporter.pd @@ -0,0 +1,96 @@ +#N canvas 166 167 375 605 12; +#X obj 90 9 inlet; +#X obj 51 108 gemhead; +#X obj 51 150 delay 0; +#X obj 83 234 s global_snap_obj; +#X msg 113 74 1; +#X obj 51 129 t b; +#X obj 51 171 spigot 0; +#X msg 83 213 0; +#X obj 51 598 textfile; +#X msg 146 74 rewind \, clear; +#X msg 51 314 write \$1 cr; +#X obj 66 338 r global_obj_creator; +#X obj 66 359 route g v f; +#X msg 90 401 add v \$1 \$2 \$3; +#X obj 115 422 list prepend add f; +#X obj 90 51 t a b b; +#X obj 51 291 symbol; +#X obj 115 443 list trim; +#X obj 51 192 t b b; +#X obj 90 269 symbol; +#X obj 98 506 f; +#X obj 121 529 + 1; +#X msg 116 485 0; +#X obj 66 556 pack s f; +#X msg 66 577 add g \$1_\$2; +#X obj 66 485 t a b; +#X obj 148 51 == 0; +#X obj 66 464 spigot 1; +#N canvas 1 82 450 300 remove_cam_offset 0; +#X obj 213 32 gemhead 1; +#X obj 213 53 gemlist_info; +#X obj 294 74 unpack f f f; +#X obj 23 28 inlet; +#X obj 23 244 outlet; +#X obj 23 76 unpack f f f; +#X obj 23 217 pack f f f; +#X obj 23 167 -; +#X obj 63 167 -; +#X obj 104 167 -; +#X connect 0 0 1 0; +#X connect 1 4 2 0; +#X connect 2 0 7 1; +#X connect 2 1 8 1; +#X connect 2 2 9 1; +#X connect 3 0 5 0; +#X connect 5 0 7 0; +#X connect 5 1 8 0; +#X connect 5 2 9 0; +#X connect 6 0 4 0; +#X connect 7 0 6 0; +#X connect 8 0 6 1; +#X connect 9 0 6 2; +#X restore 90 380 pd remove_cam_offset; +#X obj 90 30 route save groupe triangulate; +#X obj 223 51 s global_obj_triangulate; +#X connect 0 0 29 0; +#X connect 1 0 5 0; +#X connect 2 0 6 0; +#X connect 4 0 6 1; +#X connect 4 0 3 0; +#X connect 5 0 2 0; +#X connect 6 0 18 0; +#X connect 7 0 3 0; +#X connect 7 0 6 1; +#X connect 9 0 8 0; +#X connect 10 0 8 0; +#X connect 11 0 12 0; +#X connect 12 0 27 0; +#X connect 12 1 28 0; +#X connect 12 2 14 0; +#X connect 13 0 8 0; +#X connect 14 0 17 0; +#X connect 15 0 19 0; +#X connect 15 1 4 0; +#X connect 15 2 9 0; +#X connect 15 2 22 0; +#X connect 16 0 10 0; +#X connect 17 0 8 0; +#X connect 18 0 16 0; +#X connect 18 1 7 0; +#X connect 19 0 16 1; +#X connect 20 0 21 0; +#X connect 20 0 23 1; +#X connect 21 0 20 1; +#X connect 22 0 20 1; +#X connect 23 0 24 0; +#X connect 24 0 8 0; +#X connect 25 0 23 0; +#X connect 25 1 20 0; +#X connect 26 0 27 1; +#X connect 27 0 25 0; +#X connect 28 0 13 0; +#X connect 29 0 15 0; +#X connect 29 1 26 0; +#X connect 29 2 30 0; diff --git a/Gem/examples/11.obj-exporter/obj_primTri.pd b/Gem/examples/11.obj-exporter/obj_primTri.pd new file mode 100644 index 0000000..2607197 --- /dev/null +++ b/Gem/examples/11.obj-exporter/obj_primTri.pd @@ -0,0 +1,87 @@ +#N canvas 418 99 489 673 12; +#X obj 23 26 inlet; +#X obj 137 19 inlet; +#X obj 183 19 inlet; +#X obj 233 19 inlet; +#X obj 304 19 inlet; +#X obj 350 19 inlet; +#X obj 400 19 inlet; +#X obj 23 47 t a a; +#X obj 23 89 outlet; +#X obj 23 68 primTri 0 0 0; +#X obj 55 110 spigot 0; +#X obj 55 173 GEMglPushMatrix; +#X obj 55 542 GEMglPopMatrix; +#X obj 55 236 gemlist_info; +#X obj 108 89 r global_snap_obj; +#X obj 178 602 s global_obj_creator; +#X text 217 241 get it's position; +#X text 227 260 send it to the global abstraction; +#X obj 55 362 gemlist_info; +#X obj 55 215 translateXYZ; +#X obj 55 341 translateXYZ; +#X obj 55 488 gemlist_info; +#X obj 55 467 translateXYZ; +#X obj 55 131 t a b; +#X text 171 155 create new groupe; +#X msg 136 257 v \$1 \$2 \$3; +#X msg 136 383 v \$1 \$2 \$3; +#X msg 136 509 v \$1 \$2 \$3; +#X msg 87 152 g triangle; +#X obj 55 278 GEMglPopMatrix; +#X obj 55 299 GEMglPushMatrix; +#X obj 55 404 GEMglPopMatrix; +#X obj 55 425 GEMglPushMatrix; +#X obj 82 194 unpack f f f; +#X text 217 223 1st vertex of the triangle; +#X obj 82 320 unpack f f f; +#X text 220 340 2nd vertex of the triangle; +#X obj 82 446 unpack f f f; +#X text 152 465 3rd vertex of the triangle; +#X msg 55 563 f -3 -2 -1; +#X connect 0 0 7 0; +#X connect 1 0 9 1; +#X connect 1 0 33 0; +#X connect 2 0 9 2; +#X connect 2 0 35 0; +#X connect 3 0 9 3; +#X connect 3 0 37 0; +#X connect 4 0 9 4; +#X connect 5 0 9 5; +#X connect 6 0 9 6; +#X connect 7 0 9 0; +#X connect 7 1 10 0; +#X connect 9 0 8 0; +#X connect 10 0 23 0; +#X connect 11 0 19 0; +#X connect 12 0 39 0; +#X connect 13 0 29 0; +#X connect 13 4 25 0; +#X connect 14 0 10 1; +#X connect 18 0 31 0; +#X connect 18 4 26 0; +#X connect 19 0 13 0; +#X connect 20 0 18 0; +#X connect 21 0 12 0; +#X connect 21 4 27 0; +#X connect 22 0 21 0; +#X connect 23 0 11 0; +#X connect 23 1 28 0; +#X connect 25 0 15 0; +#X connect 26 0 15 0; +#X connect 27 0 15 0; +#X connect 28 0 15 0; +#X connect 29 0 30 0; +#X connect 30 0 20 0; +#X connect 31 0 32 0; +#X connect 32 0 22 0; +#X connect 33 0 19 1; +#X connect 33 1 19 2; +#X connect 33 2 19 3; +#X connect 35 0 20 1; +#X connect 35 1 20 2; +#X connect 35 2 20 3; +#X connect 37 0 22 1; +#X connect 37 1 22 2; +#X connect 37 2 22 3; +#X connect 39 0 15 0; diff --git a/Gem/examples/11.obj-exporter/obj_rectangle.pd b/Gem/examples/11.obj-exporter/obj_rectangle.pd new file mode 100644 index 0000000..648eddf --- /dev/null +++ b/Gem/examples/11.obj-exporter/obj_rectangle.pd @@ -0,0 +1,123 @@ +#N canvas 571 83 666 689 12; +#X obj 18 24 inlet; +#X obj 18 45 t a a; +#X obj 50 108 spigot 0; +#X obj 50 179 GEMglPushMatrix; +#X obj 50 583 GEMglPopMatrix; +#X obj 50 221 gemlist_info; +#X obj 103 87 r global_snap_obj; +#X obj 387 591 s global_obj_creator; +#X text 212 203 1st vertex of the square; +#X text 212 221 get it's position; +#X text 252 241 send it to the global abstraction; +#X obj 50 327 gemlist_info; +#X text 152 326 get it's position; +#X text 257 348 send it to the global abstraction; +#X obj 342 18 loadbang; +#X obj 342 39 \$1; +#X obj 342 60 sel 0; +#X msg 342 82 1; +#X obj 342 104 f; +#X obj 422 16 inlet; +#X obj 18 87 outlet; +#X obj 50 200 translateXYZ; +#X obj 104 285 * -2; +#X obj 50 306 translateXYZ; +#X text 147 304 2nd vertex of the square; +#X obj 50 434 gemlist_info; +#X obj 77 392 * -2; +#X obj 50 413 translateXYZ; +#X obj 50 540 gemlist_info; +#X obj 50 519 translateXYZ; +#X obj 50 131 t a b; +#X text 170 153 create new groupe; +#X text 147 411 3rd vertex of the square; +#X obj 104 498 * 2; +#X obj 50 604 t b; +#X msg 131 242 v \$1 \$2 \$3; +#X msg 131 349 v \$1 \$2 \$3; +#X msg 131 455 v \$1 \$2 \$3; +#X msg 131 562 v \$1 \$2 \$3; +#X obj 50 646 spigot 1; +#X obj 160 646 spigot 0; +#X obj 103 604 r global_obj_triangulate; +#X obj 103 625 == 0; +#X obj 342 125 s \$0-sizeX; +#X obj 472 18 loadbang; +#X obj 472 60 sel 0; +#X msg 472 82 1; +#X obj 472 104 f; +#X obj 552 16 inlet; +#X obj 472 39 \$2; +#X obj 472 125 s \$0-sizeY; +#X msg 82 152 g rectangle; +#X obj 164 178 r \$0-sizeX; +#X obj 240 178 r \$0-sizeY; +#X obj 104 263 r \$0-sizeY; +#X obj 77 370 r \$0-sizeX; +#X obj 104 477 r \$0-sizeY; +#X obj 18 66 rectangle; +#X obj 59 45 r \$0-sizeX; +#X obj 139 45 r \$0-sizeY; +#X msg 50 667 f -1 -2 -3 -4; +#X msg 160 667 f -2 -3 -4 \, f -4 -1 -2; +#X connect 0 0 1 0; +#X connect 1 0 57 0; +#X connect 1 1 2 0; +#X connect 2 0 30 0; +#X connect 3 0 21 0; +#X connect 4 0 34 0; +#X connect 5 0 23 0; +#X connect 5 4 35 0; +#X connect 6 0 2 1; +#X connect 11 0 27 0; +#X connect 11 4 36 0; +#X connect 14 0 15 0; +#X connect 15 0 16 0; +#X connect 16 0 17 0; +#X connect 16 1 18 0; +#X connect 17 0 18 0; +#X connect 18 0 43 0; +#X connect 19 0 18 0; +#X connect 21 0 5 0; +#X connect 22 0 23 2; +#X connect 23 0 11 0; +#X connect 25 0 29 0; +#X connect 25 4 37 0; +#X connect 26 0 27 1; +#X connect 27 0 25 0; +#X connect 28 0 4 0; +#X connect 28 4 38 0; +#X connect 29 0 28 0; +#X connect 30 0 3 0; +#X connect 30 1 51 0; +#X connect 33 0 29 2; +#X connect 34 0 39 0; +#X connect 34 0 40 0; +#X connect 35 0 7 0; +#X connect 36 0 7 0; +#X connect 37 0 7 0; +#X connect 38 0 7 0; +#X connect 39 0 60 0; +#X connect 40 0 61 0; +#X connect 41 0 40 1; +#X connect 41 0 42 0; +#X connect 42 0 39 1; +#X connect 44 0 49 0; +#X connect 45 0 46 0; +#X connect 45 1 47 0; +#X connect 46 0 47 0; +#X connect 47 0 50 0; +#X connect 48 0 47 0; +#X connect 49 0 45 0; +#X connect 51 0 7 0; +#X connect 52 0 21 1; +#X connect 53 0 21 2; +#X connect 54 0 22 0; +#X connect 55 0 26 0; +#X connect 56 0 33 0; +#X connect 57 0 20 0; +#X connect 58 0 57 1; +#X connect 59 0 57 2; +#X connect 60 0 7 0; +#X connect 61 0 7 0; diff --git a/Gem/examples/11.obj-exporter/obj_square.pd b/Gem/examples/11.obj-exporter/obj_square.pd new file mode 100644 index 0000000..c9a18f0 --- /dev/null +++ b/Gem/examples/11.obj-exporter/obj_square.pd @@ -0,0 +1,108 @@ +#N canvas 573 83 666 689 12; +#X obj 18 24 inlet; +#X obj 18 45 t a a; +#X obj 50 108 spigot 0; +#X obj 50 179 GEMglPushMatrix; +#X obj 50 583 GEMglPopMatrix; +#X obj 50 221 gemlist_info; +#X obj 103 87 r global_snap_obj; +#X obj 387 591 s global_obj_creator; +#X text 212 203 1st vertex of the square; +#X text 212 221 get it's position; +#X text 252 241 send it to the global abstraction; +#X obj 50 327 gemlist_info; +#X text 152 326 get it's position; +#X text 257 348 send it to the global abstraction; +#X obj 18 66 square; +#X obj 342 18 loadbang; +#X obj 342 39 \$1; +#X obj 342 60 sel 0; +#X msg 342 82 1; +#X obj 342 104 f; +#X text 365 123 or primitive apothema for matju; +#X text 366 107 primitive size; +#X obj 342 141 s \$0-size; +#X obj 422 16 inlet; +#X obj 18 87 outlet; +#X obj 168 180 r \$0-size; +#X obj 50 200 translateXYZ; +#X obj 104 285 * -2; +#X obj 50 306 translateXYZ; +#X obj 104 263 r \$0-size; +#X text 147 304 2nd vertex of the square; +#X obj 50 434 gemlist_info; +#X obj 77 392 * -2; +#X obj 50 413 translateXYZ; +#X obj 77 370 r \$0-size; +#X obj 50 540 gemlist_info; +#X obj 50 519 translateXYZ; +#X obj 104 477 r \$0-size; +#X obj 50 131 t a b; +#X text 150 152 create new groupe; +#X text 147 411 3rd vertex of the square; +#X obj 104 498 * 2; +#X obj 50 604 t b; +#X msg 131 242 v \$1 \$2 \$3; +#X msg 131 349 v \$1 \$2 \$3; +#X msg 131 455 v \$1 \$2 \$3; +#X msg 131 562 v \$1 \$2 \$3; +#X obj 59 45 r \$0-size; +#X msg 82 152 g square; +#X obj 50 646 spigot 1; +#X obj 160 646 spigot 0; +#X obj 103 604 r global_obj_triangulate; +#X obj 103 625 == 0; +#X msg 50 667 f -1 -2 -3 -4; +#X msg 160 667 f -2 -3 -4 \, f -4 -1 -2; +#X connect 0 0 1 0; +#X connect 1 0 14 0; +#X connect 1 1 2 0; +#X connect 2 0 38 0; +#X connect 3 0 26 0; +#X connect 4 0 42 0; +#X connect 5 0 28 0; +#X connect 5 4 43 0; +#X connect 6 0 2 1; +#X connect 11 0 33 0; +#X connect 11 4 44 0; +#X connect 14 0 24 0; +#X connect 15 0 16 0; +#X connect 16 0 17 0; +#X connect 17 0 18 0; +#X connect 17 1 19 0; +#X connect 18 0 19 0; +#X connect 19 0 22 0; +#X connect 23 0 19 0; +#X connect 25 0 26 1; +#X connect 25 0 26 2; +#X connect 26 0 5 0; +#X connect 27 0 28 2; +#X connect 28 0 11 0; +#X connect 29 0 27 0; +#X connect 31 0 36 0; +#X connect 31 4 45 0; +#X connect 32 0 33 1; +#X connect 33 0 31 0; +#X connect 34 0 32 0; +#X connect 35 0 4 0; +#X connect 35 4 46 0; +#X connect 36 0 35 0; +#X connect 37 0 41 0; +#X connect 38 0 3 0; +#X connect 38 1 48 0; +#X connect 41 0 36 2; +#X connect 42 0 49 0; +#X connect 42 0 50 0; +#X connect 43 0 7 0; +#X connect 44 0 7 0; +#X connect 45 0 7 0; +#X connect 46 0 7 0; +#X connect 47 0 14 1; +#X connect 48 0 7 0; +#X connect 49 0 53 0; +#X connect 50 0 54 0; +#X connect 51 0 50 1; +#X connect 51 0 52 0; +#X connect 52 0 49 1; +#X connect 53 0 7 0; +#X connect 54 0 7 0; diff --git a/Gem/examples/12.multi_screen_projection/01.flat_projection-help.pd b/Gem/examples/12.multi_screen_projection/01.flat_projection-help.pd new file mode 100644 index 0000000..eb5b2fc --- /dev/null +++ b/Gem/examples/12.multi_screen_projection/01.flat_projection-help.pd @@ -0,0 +1,30 @@ +#N canvas 365 180 996 500 10; +#X obj 39 307 r render; +#X obj 39 437 pix_texture; +#X obj 110 353 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 110 373 openpanel; +#X msg 110 394 open \$1; +#X obj 39 458 square 25; +#X text 99 307 <- this object must be present in your patch to start +the gemchain like in this example.; +#X floatatom 109 462 5 0 0 0 - - -; +#X obj 39 49 flat_projection 20; +#X text 304 191 <- abstraction [flat_projection]; +#X obj 39 416 pix_image ../data/fractal.JPG; +#X msg 51 24 offset 1024 0; +#X text 176 23 other messages to the gemwin; +#X text 305 133 This define the way screen are physically connected +to the computer.; +#X text 306 93 This define the way screen are positioned in space to +create a single image.; +#X text 305 159 geometry screen and geometry computer can be diferents +\, but should define the same number of screen.; +#X connect 0 0 10 0; +#X connect 1 0 5 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 10 0; +#X connect 7 0 5 1; +#X connect 10 0 1 0; +#X connect 11 0 8 0; diff --git a/Gem/examples/12.multi_screen_projection/02.nfp-help.pd b/Gem/examples/12.multi_screen_projection/02.nfp-help.pd new file mode 100644 index 0000000..6a8404d --- /dev/null +++ b/Gem/examples/12.multi_screen_projection/02.nfp-help.pd @@ -0,0 +1,46 @@ +#N canvas 321 188 996 584 10; +#X obj 27 231 gemhead; +#X obj 27 298 gemframebuffer; +#X obj 27 348 translateXYZ 0 0 -4; +#X msg 43 275 dimen 1024 768; +#X obj 43 255 loadbang; +#X obj 27 442 pix_texture; +#X obj 27 464 rectangle 5.333 4; +#X msg 42 397 thread 0 \, open grid.jpg; +#X obj 42 377 loadbang; +#X text 24 211 creation of a big framebuffer; +#X msg 171 274 rectangle 1; +#X obj 171 255 loadbang; +#X obj 27 420 pix_image; +#X obj 30 177 gemwin; +#X msg 30 129 create \, 1; +#X msg 43 149 0 \, destroy; +#X obj 122 320 s nfp_fb; +#X obj 35 61 load_save; +#X obj 86 43 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 35 43 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 280 43 nfp_flat_wall 1; +#X obj 35 19 loadbang; +#X obj 490 43 nfp_flat_wall 2; +#X obj 703 44 nfp_curved_wall 3; +#X text 52 43 load; +#X text 104 42 save; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 1 16 0; +#X connect 2 0 12 0; +#X connect 3 0 1 0; +#X connect 4 0 3 0; +#X connect 5 0 6 0; +#X connect 7 0 12 0; +#X connect 8 0 7 0; +#X connect 10 0 1 0; +#X connect 11 0 10 0; +#X connect 12 0 5 0; +#X connect 14 0 13 0; +#X connect 15 0 13 0; +#X connect 18 0 17 1; +#X connect 19 0 17 0; +#X connect 21 0 19 0; diff --git a/Gem/examples/12.multi_screen_projection/config.txt b/Gem/examples/12.multi_screen_projection/config.txt new file mode 100644 index 0000000..8e10bbb --- /dev/null +++ b/Gem/examples/12.multi_screen_projection/config.txt @@ -0,0 +1,70 @@ +VP_CR_Y-3 2.34; +VP_CR_X-3 1.79; +VP_CC_Y-3 -0.34; +VP_CC_X-3 0.55; +VP_CL_Y-3 0.76; +VP_CL_X-3 -0.730001; +VP_BC_Y-3 -4.01001; +VP_BC_X-3 0.2; +VP_TC_Y-3 3.7; +VP_TC_X-3 0.00999991; +Shade_B-3 0; +Shade_T-3 0; +Shade_R-3 0.0829032; +Shade_L-3 0.0693548; +TP_BR_Y-3 265; +TP_BR_X-3 416; +TP_TR_Y-3 0; +TP_TR_X-3 367; +TP_BL_Y-3 227; +TP_BL_X-3 0; +TP_TL_Y-3 13; +TP_TL_X-3 105; +VP_BR_Y-3 -3.37; +VP_BR_X-3 1.52; +VP_TR_Y-3 3.95; +VP_TR_X-3 1.31; +VP_BL_Y-3 -2.83; +VP_BL_X-3 -1.21; +VP_TL_Y-3 3.35; +VP_TL_X-3 -1.16; +Shade_B-2 0; +Shade_T-2 0; +Shade_R-2 0; +Shade_L-2 0; +TP_BR_Y-2 538; +TP_BR_X-2 975; +TP_TR_Y-2 0; +TP_TR_X-2 889; +TP_BL_Y-2 449; +TP_BL_X-2 625; +TP_TL_Y-2 117; +TP_TL_X-2 605; +VP_BR_Y-2 -3.53; +VP_BR_X-2 3.44; +VP_TR_Y-2 2.64; +VP_TR_X-2 3; +VP_BL_Y-2 -2.53; +VP_BL_X-2 1.33; +VP_TL_Y-2 1.18; +VP_TL_X-2 1.17; +Shade_B-1 0; +Shade_T-1 0; +Shade_R-1 0; +Shade_L-1 0; +TP_BR_Y-1 448; +TP_BR_X-1 453; +TP_TR_Y-1 110; +TP_TR_X-1 543; +TP_BL_Y-1 484; +TP_BL_X-1 95; +TP_TL_Y-1 0; +TP_TL_X-1 0; +VP_BR_Y-1 -3.01999; +VP_BR_X-1 -0.18; +VP_TR_Y-1 1.94; +VP_TR_X-1 0.54; +VP_BL_Y-1 -3.75; +VP_BL_X-1 -2.9; +VP_TL_Y-1 3.84; +VP_TL_X-1 -3.66001; diff --git a/Gem/examples/12.multi_screen_projection/flat_projection.pd b/Gem/examples/12.multi_screen_projection/flat_projection.pd new file mode 100644 index 0000000..9f81653 --- /dev/null +++ b/Gem/examples/12.multi_screen_projection/flat_projection.pd @@ -0,0 +1,454 @@ +#N canvas 75 144 1376 699 10; +#X obj 263 277 gemhead; +#X obj 263 351 gemframebuffer; +#X obj 263 402 s render; +#X msg 285 326 rectangle 0; +#X obj 285 307 loadbang; +#X obj 263 376 translateXYZ 0 0 -4; +#N canvas 190 83 1090 559 size 0; +#X obj 29 20 inlet; +#X obj 29 91 unpack f f; +#X obj 142 91 unpack f f; +#X obj 336 91 unpack f f; +#X obj 142 122 - 1; +#X obj 199 124 - 1; +#X obj 142 187 *; +#X obj 155 163 t b f; +#X obj 199 187 *; +#X obj 212 163 t b f; +#X obj 42 233 t b f; +#X obj 126 233 t b f; +#X obj 29 330 pack f f; +#X obj 441 160 t b b f; +#X obj 29 494 outlet; +#X obj 29 147 *; +#X obj 42 123 t b f; +#X obj 86 147 *; +#X obj 99 123 t b f; +#X obj 257 329 pack f f; +#X obj 257 407 outlet; +#X obj 29 257 -; +#X obj 113 257 -; +#X obj 113 285 f; +#X obj 29 285 f; +#N canvas 260 83 450 300 change2 0; +#X obj 41 24 inlet; +#X obj 41 47 unpack f f; +#X obj 80 176 pack f f; +#X obj 98 132 t b f; +#X obj 80 201 outlet; +#X obj 41 149 moses 2; +#X obj 41 89 change; +#X obj 98 89 change; +#X connect 0 0 1 0; +#X connect 1 0 6 0; +#X connect 1 1 7 0; +#X connect 2 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 2 1; +#X connect 5 1 2 0; +#X connect 6 0 5 0; +#X connect 7 0 3 0; +#X restore 257 366 pd change2; +#N canvas 260 83 450 300 change2 0; +#X obj 41 24 inlet; +#X obj 41 47 unpack f f; +#X obj 80 176 pack f f; +#X obj 98 132 t b f; +#X obj 80 201 outlet; +#X obj 41 149 moses 2; +#X obj 41 89 change; +#X obj 98 89 change; +#X connect 0 0 1 0; +#X connect 1 0 6 0; +#X connect 1 1 7 0; +#X connect 2 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 2 1; +#X connect 5 1 2 0; +#X connect 6 0 5 0; +#X connect 7 0 3 0; +#X restore 29 350 pd change2; +#X obj 581 311 pack f f; +#X obj 594 265 t b f; +#X obj 651 265 t b f; +#X obj 581 289 /; +#X obj 638 289 /; +#X obj 579 171 pack f f; +#X obj 305 428 /; +#X obj 305 448 * 4; +#X msg 305 468 \$1 4; +#X msg 29 369 dimen \$1 \$2; +#X obj 57 392 /; +#X msg 57 472 perspec \$1 \$2 -1 1 1 20; +#X obj 57 452 pack f f; +#X obj 57 411 t f f; +#X obj 57 431 * -1; +#X obj 441 91 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X text 467 90 basic FSAA; +#X obj 29 46 route screen_size geometry_screen geometry_computer overlap +FSAA; +#X obj 239 91 unpack f f; +#X obj 239 137 *; +#X obj 252 113 t b f; +#X obj 296 137 *; +#X obj 309 113 t b f; +#X obj 579 191 s \$0-glsl_geometry_screen; +#X obj 578 224 s \$0-glsl_geometry_computer; +#X obj 581 331 s \$0-glsl_overlap; +#X obj 305 490 s \$0-size_gemwin; +#X obj 388 255 r \$0-altern; +#X obj 407 311 list; +#X obj 388 276 sel 0 1; +#X obj 388 341 list; +#X obj 29 307 + 0; +#X obj 113 308 + 0; +#X text 480 108 not full implemented yet!; +#X connect 0 0 44 0; +#X connect 1 0 15 0; +#X connect 1 0 28 0; +#X connect 1 0 46 0; +#X connect 1 1 17 0; +#X connect 1 1 29 0; +#X connect 1 1 48 0; +#X connect 2 0 4 0; +#X connect 2 0 16 0; +#X connect 2 0 32 0; +#X connect 2 1 5 0; +#X connect 2 1 18 0; +#X connect 2 1 32 1; +#X connect 3 0 7 0; +#X connect 3 0 30 0; +#X connect 3 1 9 0; +#X connect 3 1 31 0; +#X connect 4 0 6 0; +#X connect 5 0 8 0; +#X connect 6 0 10 0; +#X connect 7 0 6 0; +#X connect 7 1 6 1; +#X connect 8 0 11 0; +#X connect 9 0 8 0; +#X connect 9 1 8 1; +#X connect 10 0 21 0; +#X connect 10 1 21 1; +#X connect 11 0 22 0; +#X connect 11 1 22 1; +#X connect 12 0 26 0; +#X connect 12 0 37 0; +#X connect 13 0 24 0; +#X connect 13 1 23 0; +#X connect 13 2 58 1; +#X connect 13 2 59 1; +#X connect 15 0 21 0; +#X connect 16 0 15 0; +#X connect 16 1 15 1; +#X connect 17 0 22 0; +#X connect 18 0 17 0; +#X connect 18 1 17 1; +#X connect 19 0 25 0; +#X connect 21 0 24 0; +#X connect 22 0 23 0; +#X connect 23 0 59 0; +#X connect 24 0 58 0; +#X connect 25 0 20 0; +#X connect 25 0 33 0; +#X connect 26 0 36 0; +#X connect 27 0 52 0; +#X connect 28 0 30 0; +#X connect 28 1 30 1; +#X connect 29 0 31 0; +#X connect 29 1 31 1; +#X connect 30 0 27 0; +#X connect 31 0 27 1; +#X connect 32 0 50 0; +#X connect 33 0 34 0; +#X connect 34 0 35 0; +#X connect 35 0 53 0; +#X connect 36 0 14 0; +#X connect 37 0 40 0; +#X connect 38 0 14 0; +#X connect 39 0 38 0; +#X connect 40 0 41 0; +#X connect 40 1 39 1; +#X connect 41 0 39 0; +#X connect 42 0 13 0; +#X connect 44 0 1 0; +#X connect 44 1 2 0; +#X connect 44 1 55 1; +#X connect 44 2 45 0; +#X connect 44 2 51 0; +#X connect 44 2 57 1; +#X connect 44 3 3 0; +#X connect 44 4 42 0; +#X connect 45 0 47 0; +#X connect 45 1 49 0; +#X connect 46 0 19 0; +#X connect 47 0 46 0; +#X connect 47 1 46 1; +#X connect 48 0 19 1; +#X connect 49 0 48 0; +#X connect 49 1 48 1; +#X connect 54 0 56 0; +#X connect 55 0 45 0; +#X connect 55 0 51 0; +#X connect 56 0 57 0; +#X connect 56 1 55 0; +#X connect 57 0 45 0; +#X connect 57 0 51 0; +#X connect 58 0 12 0; +#X connect 59 0 12 1; +#X restore 528 320 pd size; +#X msg 605 523 0 \, destroy; +#X obj 594 551 gemwin; +#X obj 428 489 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 281 601 rectangle; +#X obj 306 559 unpack f f; +#X floatatom 380 580 5 0 0 0 - - -; +#X floatatom 319 582 5 0 0 0 - - -; +#N canvas 0 0 743 323 init_glsl 0; +#X obj 129 184 outlet; +#X msg 129 120 overlap \$1 \$2; +#X obj 129 95 pack f f; +#X obj 249 98 pack f f; +#X obj 434 99 pack f f; +#X msg 249 119 geometry_screen \$1 \$2; +#X msg 434 120 geometry_computer \$1 \$2; +#X obj 434 76 r \$0-glsl_geometry_computer; +#X obj 249 75 r \$0-glsl_geometry_screen; +#X obj 129 72 r \$0-glsl_overlap; +#X obj 38 27 r \$0-init_glsl; +#X connect 1 0 0 0; +#X connect 2 0 1 0; +#X connect 3 0 5 0; +#X connect 4 0 6 0; +#X connect 5 0 0 0; +#X connect 6 0 0 0; +#X connect 7 0 4 0; +#X connect 8 0 3 0; +#X connect 9 0 2 0; +#X connect 10 0 3 0; +#X connect 10 0 2 0; +#X connect 10 0 4 0; +#X restore 418 467 pd init_glsl; +#X obj 292 470 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 281 509 pix_texture; +#X obj 281 448 gemhead 60; +#X obj 528 343 print framebuffer; +#X obj 604 415 print gem_window; +#N canvas 0 0 669 667 glsl_frag 0; +#X obj 78 598 glsl_program; +#X msg 35 325 print; +#X obj 172 387 change; +#X msg 34 545 print; +#X obj 78 367 glsl_fragment; +#X floatatom 172 413 2 0 0 0 ID - -; +#X obj 190 459 print linking; +#X text 97 546 after linking \, click "print" to get some info about +the compiled shader program; +#X obj 13 52 inlet; +#X obj 78 634 outlet; +#X obj 577 95 inlet; +#X obj 13 75 route bang; +#X obj 141 87 gemhead 1; +#X msg 141 109 1; +#X obj 141 133 change; +#X obj 141 157 t b; +#X obj 157 619 change; +#X obj 157 640 t b; +#X obj 157 661 outlet; +#X msg 172 438 link \$1; +#X msg 87 324 open soft_edge.frag; +#X connect 0 0 9 0; +#X connect 0 1 16 0; +#X connect 1 0 4 0; +#X connect 2 0 5 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 4 1 2 0; +#X connect 5 0 19 0; +#X connect 8 0 11 0; +#X connect 10 0 0 0; +#X connect 11 0 20 0; +#X connect 11 1 4 0; +#X connect 12 0 13 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 20 0; +#X connect 16 0 17 0; +#X connect 17 0 18 0; +#X connect 19 0 0 0; +#X connect 19 0 6 0; +#X connect 20 0 4 0; +#X restore 281 488 pd glsl_frag _______; +#X obj 605 470 sel 0 1; +#X msg 624 500 border 0 \, create \, 1; +#X obj 528 67 pack f f; +#X obj 638 48 t b f; +#X obj 831 65 pack f f; +#X obj 941 46 t b f; +#X msg 528 97 screen_size \$1 \$2; +#X msg 831 92 geometry_screen \$1 \$2; +#X obj 1151 65 pack f f; +#X obj 1281 46 t b f; +#X msg 746 93 2 2; +#X msg 746 67 set \$1 \$2; +#X obj 683 67 loadbang; +#X msg 1151 92 geometry_computer \$1 \$2; +#X msg 1066 67 set \$1 \$2; +#X obj 1003 67 loadbang; +#X msg 1066 93 4 1; +#X msg 446 67 set \$1 \$2; +#X obj 383 67 loadbang; +#X msg 446 93 160 120; +#X obj 446 114 unpack f f; +#X obj 746 114 unpack f f; +#X obj 1066 114 unpack f f; +#X obj 1003 236 loadbang; +#X msg 1066 262 0 0; +#X msg 1151 282 overlap \$1 \$1; +#X msg 567 576 0; +#X msg 594 392 dimen \$1 \$2; +#X obj 567 369 t b l; +#X obj 100 235 cnv 15 250 20 empty empty PUT_AN_OBJECT_[r_render]_IN_YOUR_PATCH +10 10 0 10 -258113 -66577 0; +#X obj 100 20 cnv 15 250 215 empty empty empty 20 12 0 14 -260097 -66577 +0; +#X obj 108 163 nbx 5 14 0 5000 0 0 \$0-overlap \$0-overlap empty 0 +-8 0 10 -99865 -1 -1 0 256; +#X obj 108 187 tgl 15 0 \$0-createDestroy \$0-createDestroy empty 17 +7 0 10 -1 -262144 -1 0 1; +#X text 128 187 Create/Destroy Gem window; +#X obj 108 29 nbx 4 12 -1e+37 1e+37 0 0 \$0-sizeScreenX \$0-sizeScreenX +empty 0 -8 0 10 -1 -262144 -1 160 256; +#X text 166 163 Overlap X and Y (pixels); +#X obj 108 45 nbx 4 12 -1e+37 1e+37 0 0 \$0-sizeScreenY \$0-sizeScreenY +empty 0 -8 0 10 -1 -262144 -1 120 256; +#X obj 108 83 nbx 4 12 -1e+37 1e+37 0 0 \$0-Geom-screenY \$0-Geom-screenY +empty 0 -8 0 10 -257985 -1 -1 2 256; +#X obj 108 67 nbx 4 12 -1e+37 1e+37 0 0 \$0-Geom-screenX \$0-Geom-screenX +empty 0 -8 0 10 -257985 -1 -1 2 256; +#X obj 108 143 tgl 10 0 \$0-altern \$0-altern empty 17 7 0 10 -1 -262144 +-1 0 1; +#X obj 108 121 nbx 4 12 -1e+37 1e+37 0 0 \$0-Geom-computerY \$0-Geom-computerY +empty 0 -8 0 10 -257985 -1 -1 1 256; +#X obj 108 105 nbx 4 12 -1e+37 1e+37 0 0 \$0-Geom-computerX \$0-Geom-computerX +empty 0 -8 0 10 -257985 -1 -1 4 256; +#X text 158 65 Geometry screen (X); +#X text 158 81 Geometry screen (Y); +#X text 158 103 Geometry computer (X); +#X text 158 119 Geometry computer (Y); +#X text 158 28 Screens size (X); +#X text 158 44 Screens size (Y); +#X obj 108 212 bng 15 250 50 0 \$0-save \$0-receiveNothing empty 17 +7 0 10 -258113 -1 -1; +#X text 128 212 Save parameters; +#X obj 446 156 s \$0-sizeScreenX; +#X obj 503 136 s \$0-sizeScreenY; +#X obj 746 155 s \$0-Geom-screenX; +#X obj 803 135 s \$0-Geom-screenY; +#X obj 1123 135 s \$0-Geom-computerY; +#X obj 1066 155 s \$0-Geom-computerX; +#X obj 1066 304 s \$0-overlap; +#X obj 605 449 r \$0-createDestroy; +#X obj 567 596 s \$0-createDestroy; +#X obj 418 510 s \$0-init_glsl; +#X obj 306 539 r \$0-size_gemwin; +#X obj 528 27 r \$0-sizeScreenX; +#X obj 638 27 r \$0-sizeScreenY; +#X obj 831 25 r \$0-Geom-screenX; +#X obj 941 25 r \$0-Geom-screenY; +#X obj 1281 25 r \$0-Geom-computerY; +#X obj 1151 25 r \$0-Geom-computerX; +#X obj 1151 215 r \$0-overlap; +#X obj 100 271 r \$0-save; +#X msg 1066 236 set \$1 \$1; +#X obj 100 317 s pd-soft_edge.pd; +#X msg 100 292 menusave; +#X text 856 481 'soft-edge.pd' by Cyrille Henry (GUI by Jack/RYBN) +; +#X text 121 140 View computer(0)/screen(1); +#X obj 388 16 inlet; +#X connect 0 0 1 0; +#X connect 1 0 5 0; +#X connect 1 1 16 1; +#X connect 3 0 1 0; +#X connect 4 0 3 0; +#X connect 5 0 2 0; +#X connect 6 0 1 0; +#X connect 6 0 18 0; +#X connect 6 1 49 0; +#X connect 7 0 8 0; +#X connect 9 0 80 0; +#X connect 11 0 10 1; +#X connect 11 0 13 0; +#X connect 11 1 10 2; +#X connect 11 1 12 0; +#X connect 14 0 20 1; +#X connect 15 0 20 0; +#X connect 16 0 10 0; +#X connect 17 0 20 0; +#X connect 20 0 16 0; +#X connect 20 1 80 0; +#X connect 21 0 7 0; +#X connect 21 1 22 0; +#X connect 22 0 8 0; +#X connect 23 0 27 0; +#X connect 23 0 38 0; +#X connect 24 0 23 0; +#X connect 24 1 23 1; +#X connect 25 0 28 0; +#X connect 25 0 32 0; +#X connect 26 0 25 0; +#X connect 26 1 25 1; +#X connect 27 0 6 0; +#X connect 28 0 6 0; +#X connect 29 0 34 0; +#X connect 29 0 35 0; +#X connect 30 0 29 0; +#X connect 30 1 29 1; +#X connect 31 0 28 0; +#X connect 31 0 42 0; +#X connect 32 0 31 0; +#X connect 33 0 31 0; +#X connect 34 0 6 0; +#X connect 35 0 37 0; +#X connect 36 0 37 0; +#X connect 37 0 34 0; +#X connect 37 0 43 0; +#X connect 38 0 40 0; +#X connect 39 0 40 0; +#X connect 40 0 27 0; +#X connect 40 0 41 0; +#X connect 41 0 71 0; +#X connect 41 1 72 0; +#X connect 42 0 73 0; +#X connect 42 1 74 0; +#X connect 43 0 76 0; +#X connect 43 1 75 0; +#X connect 44 0 45 0; +#X connect 45 0 46 0; +#X connect 45 0 77 0; +#X connect 46 0 6 0; +#X connect 47 0 79 0; +#X connect 48 0 8 0; +#X connect 48 0 19 0; +#X connect 49 0 47 0; +#X connect 49 1 48 0; +#X connect 78 0 21 0; +#X connect 81 0 11 0; +#X connect 82 0 23 0; +#X connect 83 0 24 0; +#X connect 84 0 25 0; +#X connect 85 0 26 0; +#X connect 86 0 30 0; +#X connect 87 0 29 0; +#X connect 88 0 46 0; +#X connect 88 0 90 0; +#X connect 89 0 92 0; +#X connect 90 0 45 0; +#X connect 92 0 91 0; +#X connect 95 0 8 0; +#X coords 0 -1 1 1 250 235 2 100 20; diff --git a/Gem/examples/12.multi_screen_projection/grid.jpg b/Gem/examples/12.multi_screen_projection/grid.jpg new file mode 100644 index 0000000..3f84359 Binary files /dev/null and b/Gem/examples/12.multi_screen_projection/grid.jpg differ diff --git a/Gem/examples/12.multi_screen_projection/load_save.pd b/Gem/examples/12.multi_screen_projection/load_save.pd new file mode 100644 index 0000000..8037857 --- /dev/null +++ b/Gem/examples/12.multi_screen_projection/load_save.pd @@ -0,0 +1,40 @@ +#N canvas 140 207 521 345 10; +#X obj 258 43 bng 15 250 50 0 empty empty empty 17 7 0 10 -258699 -1 +-1; +#X msg 287 139 clear; +#X obj 248 227 textfile; +#X obj 308 185 list prepend add; +#X obj 308 206 list trim; +#X obj 54 59 bng 15 250 50 0 empty empty empty 17 7 0 10 -24198 -1 +-1; +#X obj 38 125 until; +#X text 75 61 load; +#X text 279 43 save; +#X obj 38 80 t b a; +#X obj 248 24 inlet; +#X obj 38 29 inlet; +#X msg 248 116 write config.txt; +#X msg 65 100 read config.txt \, rewind; +#X obj 308 164 r save_system_data; +#X obj 38 173 s save_system_saved; +#X obj 248 71 t b b b; +#X obj 267 92 s save_system_save; +#X obj 38 149 textfile; +#X connect 0 0 16 0; +#X connect 1 0 2 0; +#X connect 3 0 4 0; +#X connect 4 0 2 0; +#X connect 5 0 9 0; +#X connect 6 0 18 0; +#X connect 9 0 6 0; +#X connect 9 1 13 0; +#X connect 10 0 16 0; +#X connect 11 0 9 0; +#X connect 12 0 2 0; +#X connect 13 0 18 0; +#X connect 14 0 3 0; +#X connect 16 0 12 0; +#X connect 16 1 17 0; +#X connect 16 2 1 0; +#X connect 18 0 15 0; +#X connect 18 1 6 1; diff --git a/Gem/examples/12.multi_screen_projection/nfp_22.frag b/Gem/examples/12.multi_screen_projection/nfp_22.frag new file mode 100644 index 0000000..e3ce36c --- /dev/null +++ b/Gem/examples/12.multi_screen_projection/nfp_22.frag @@ -0,0 +1,18 @@ +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect MyTex; +uniform float Sl,Sr,St,Sb; // shade size +varying vec2 pos; + + +void main (void) +{ + vec4 color = texture2DRect(MyTex, gl_TexCoord[0].st); + + color.a *=min(1.,pos.x/Sl); + color.a *=min(1.,(1.-pos.x)/Sr); + color.a *=min(1.,pos.y/St); + color.a *=min(1.,(1.-pos.y)/Sb); + + gl_FragColor = color; +} diff --git a/Gem/examples/12.multi_screen_projection/nfp_22.vert b/Gem/examples/12.multi_screen_projection/nfp_22.vert new file mode 100644 index 0000000..ab8f107 --- /dev/null +++ b/Gem/examples/12.multi_screen_projection/nfp_22.vert @@ -0,0 +1,26 @@ +uniform vec2 Vtl,Vbl,Vtr,Vbr; // Vertex position +uniform vec2 Ttl,Tbl,Ttr,Tbr; // texture coordinate +uniform vec2 center; + +varying vec2 pos; + +void main() +{ + gl_TexCoord[0] = gl_MultiTexCoord0; + + vec4 position = gl_Vertex; + position.xy += 1.; + position.xy /= 2.; + pos = position.xy; + position.xy = pow(position.xy,center); + + vec2 tex_top = mix(Ttl,Ttr,pos.x); + vec2 tex_bottom = mix(Tbl,Tbr,pos.x); + gl_TexCoord[0].st = mix(tex_top,tex_bottom, pos.y); + + vec2 pos_top = mix(Vtl,Vtr,position.x); + vec2 pos_bottom = mix(Vbl,Vbr,position.x); + position.xy = mix(pos_top,pos_bottom, position.y); + + gl_Position = gl_ModelViewProjectionMatrix * position; +} diff --git a/Gem/examples/12.multi_screen_projection/nfp_33.frag b/Gem/examples/12.multi_screen_projection/nfp_33.frag new file mode 100644 index 0000000..e3ce36c --- /dev/null +++ b/Gem/examples/12.multi_screen_projection/nfp_33.frag @@ -0,0 +1,18 @@ +#extension GL_ARB_texture_rectangle : enable + +uniform sampler2DRect MyTex; +uniform float Sl,Sr,St,Sb; // shade size +varying vec2 pos; + + +void main (void) +{ + vec4 color = texture2DRect(MyTex, gl_TexCoord[0].st); + + color.a *=min(1.,pos.x/Sl); + color.a *=min(1.,(1.-pos.x)/Sr); + color.a *=min(1.,pos.y/St); + color.a *=min(1.,(1.-pos.y)/Sb); + + gl_FragColor = color; +} diff --git a/Gem/examples/12.multi_screen_projection/nfp_33.vert b/Gem/examples/12.multi_screen_projection/nfp_33.vert new file mode 100644 index 0000000..68066b0 --- /dev/null +++ b/Gem/examples/12.multi_screen_projection/nfp_33.vert @@ -0,0 +1,37 @@ +uniform vec2 Vtl,Vbl,Vtr,Vbr,Vtc,Vbc,Vcl,Vcr,Vcc; // Vertex position +uniform vec2 Ttl,Tbl,Ttr,Tbr; // texture coordinate +uniform vec2 center; + +varying vec2 pos; + +void main() +{ + gl_TexCoord[0] = gl_MultiTexCoord0; + + vec4 position = gl_Vertex; + position.xy += 1.; + position.xy /= 2.; + pos = position.xy; + + vec2 tex_top = mix(Ttl,Ttr,pos.x); + vec2 tex_bottom = mix(Tbl,Tbr,pos.x); + gl_TexCoord[0].st = mix(tex_top,tex_bottom, pos.y); + + vec2 pos_top1 = mix(Vtl,Vtc,position.x); + vec2 pos_top2 = mix(Vtc,Vtr,position.x); + vec2 pos_top = mix(pos_top1,pos_top2,position.x); + + vec2 pos_center1 = mix(Vcl,Vcc,position.x); + vec2 pos_center2 = mix(Vcc,Vcr,position.x); + vec2 pos_center = mix(pos_center1,pos_center2,position.x); + + vec2 pos_bottom1 = mix(Vbl,Vbc,position.x); + vec2 pos_bottom2 = mix(Vbc,Vbr,position.x); + vec2 pos_bottom = mix(pos_bottom1,pos_bottom2,position.x); + + vec2 position1 = mix(pos_top,pos_center,position.y); + vec2 position2 = mix(pos_center,pos_bottom,position.y); + position.xy = mix(position1,position2, position.y); + + gl_Position = gl_ModelViewProjectionMatrix * position; +} diff --git a/Gem/examples/12.multi_screen_projection/nfp_curved_wall.pd b/Gem/examples/12.multi_screen_projection/nfp_curved_wall.pd new file mode 100644 index 0000000..2222a6a --- /dev/null +++ b/Gem/examples/12.multi_screen_projection/nfp_curved_wall.pd @@ -0,0 +1,413 @@ +#N canvas 32 138 1230 634 10; +#X obj 46 203 pix_texture; +#X obj 55 113 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 46 78 alpha; +#X obj 46 224 mesh_square 50 50; +#N canvas 160 123 480 574 glsl 0; +#X obj 78 179 glsl_vertex; +#X msg 32 178 print; +#X obj 78 466 glsl_program; +#X obj 163 395 pack 0 0; +#X msg 30 316 print; +#X obj 163 351 change; +#X obj 150 198 change; +#X msg 163 419 link \$1 \$2; +#X msg 32 460 print; +#X obj 77 330 glsl_fragment; +#X floatatom 163 375 2 0 0 0 ID - -; +#X floatatom 150 221 2 0 0 0 ID - -; +#X obj 181 440 print linking; +#X obj 15 21 inlet; +#X obj 78 502 outlet; +#X obj 418 21 inlet; +#X obj 15 44 route bang; +#X obj 255 11 gemhead 1; +#X msg 255 33 1; +#X obj 255 57 change; +#X obj 255 81 t b; +#X obj 157 487 change; +#X obj 157 508 t b; +#X obj 158 530 outlet; +#X obj 90 266 symbol; +#X obj 90 241 t b; +#X msg 287 438 0; +#X obj 15 65 t b b b; +#X msg 118 147 open nfp_33.vert; +#X msg 91 292 open nfp_33.frag; +#X connect 0 0 9 0; +#X connect 0 1 6 0; +#X connect 1 0 0 0; +#X connect 2 0 14 0; +#X connect 2 1 21 0; +#X connect 3 0 7 0; +#X connect 4 0 9 0; +#X connect 5 0 10 0; +#X connect 6 0 11 0; +#X connect 6 0 25 0; +#X connect 7 0 2 0; +#X connect 7 0 12 0; +#X connect 8 0 2 0; +#X connect 9 0 2 0; +#X connect 9 1 5 0; +#X connect 10 0 3 0; +#X connect 11 0 3 1; +#X connect 13 0 16 0; +#X connect 15 0 2 0; +#X connect 16 0 27 0; +#X connect 16 1 0 0; +#X connect 17 0 18 0; +#X connect 18 0 19 0; +#X connect 19 0 20 0; +#X connect 20 0 28 0; +#X connect 21 0 22 0; +#X connect 22 0 23 0; +#X connect 24 0 29 0; +#X connect 25 0 24 0; +#X connect 26 0 21 0; +#X connect 27 0 26 0; +#X connect 27 1 10 0; +#X connect 27 2 28 0; +#X connect 28 0 0 0; +#X connect 29 0 9 0; +#X restore 46 130 pd glsl; +#X obj 46 51 gemhead \$1; +#X obj 501 216 cnv 15 238 130 empty empty empty 20 12 0 14 -233017 +-66577 0; +#X text 522 219 Texture position (Pixel); +#X obj 519 247 nbx 5 16 0 20000 0 0 empty empty x -10 7 0 12 -203904 +-1 -1 105 256; +#X obj 519 267 nbx 5 16 0 20000 0 0 empty empty y -10 7 0 12 -203904 +-1 -1 13 256; +#X obj 619 247 nbx 5 16 0 20000 0 0 empty empty x -10 7 0 12 -203904 +-1 -1 367 256; +#X obj 619 267 nbx 5 16 0 20000 0 0 empty empty y -10 7 0 12 -203904 +-1 -1 0 256; +#X obj 519 297 nbx 5 16 0 20000 0 0 empty empty x -10 7 0 12 -203904 +-1 -1 0 256; +#X obj 519 317 nbx 5 16 0 20000 0 0 empty empty y -10 7 0 12 -203904 +-1 -1 227 256; +#X obj 619 297 nbx 5 16 0 20000 0 0 empty empty x -10 7 0 12 -203904 +-1 -1 416 256; +#X obj 619 317 nbx 5 16 0 20000 0 0 empty empty y -10 7 0 12 -203904 +-1 -1 265 256; +#X obj 501 349 cnv 15 238 180 empty empty empty 20 12 0 14 -233017 +-66577 0; +#X obj 608 370 vsl 15 63 1 0 0 0 empty empty top 18 6 0 10 -262130 +-1 -1 6200 1; +#X obj 608 453 vsl 15 63 0 1 0 0 empty empty bottom 18 60 0 10 -262130 +-1 -1 0 1; +#X obj 626 436 hsl 63 15 1 0 0 0 empty empty right 30 -8 0 10 -262130 +-1 -1 5686 1; +#X obj 543 436 hsl 63 15 0 1 0 0 empty empty left 2 -8 0 10 -262130 +-1 -1 430 1; +#X text 509 367 Shade size; +#X obj 501 33 cnv 15 238 180 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 514 64 nbx 5 16 -1000 1000 0 0 empty empty x -10 7 0 12 -261234 +-1 -1 -1.16 256; +#X obj 514 84 nbx 5 16 -1000 1000 0 0 empty empty y -10 7 0 12 -261234 +-1 -1 3.35 256; +#X obj 675 64 nbx 5 16 -1000 1000 0 0 empty empty x -10 7 0 12 -261234 +-1 -1 1.31 256; +#X obj 675 84 nbx 5 16 -1000 1000 0 0 empty empty y -10 7 0 12 -261234 +-1 -1 3.95 256; +#X obj 514 164 nbx 5 16 -1000 1000 0 0 empty empty x -10 7 0 12 -261234 +-1 -1 -1.21 256; +#X obj 514 184 nbx 5 16 -1000 1000 0 0 empty empty y -10 7 0 12 -261234 +-1 -1 -2.83 256; +#X obj 675 164 nbx 5 16 -1000 1000 0 0 empty empty x -10 7 0 12 -261234 +-1 -1 1.52 256; +#X obj 675 184 nbx 5 16 -1000 1000 0 0 empty empty y -10 7 0 12 -261234 +-1 -1 -3.37 256; +#X text 522 36 Vertex position; +#X obj 99 105 r \$0-glsl; +#X obj 98 152 s \$0-init; +#X obj 754 20 r \$0-init; +#X obj 203 372 pack f f; +#X obj 249 347 t b f; +#X obj 309 373 pack f f; +#X obj 355 348 t b f; +#X obj 233 419 pack f f; +#X obj 279 394 t b f; +#X obj 339 420 pack f f; +#X obj 385 395 t b f; +#X msg 203 439 Ttl \$1 \$2; +#X msg 309 441 Ttr \$1 \$2; +#X msg 323 461 Tbr \$1 \$2; +#X msg 216 459 Tbl \$1 \$2; +#X obj 203 484 s \$0-glsl; +#X msg 204 515 Sl \$1; +#X msg 253 515 Sr \$1; +#X msg 300 515 St \$1; +#X msg 346 515 Sb \$1; +#X obj 204 539 s \$0-glsl; +#X obj 120 182 r nfp_fb; +#X obj 806 61 saved VP_TL_X-\$1; +#X obj 806 81 saved VP_TL_Y-\$1; +#X obj 806 161 saved VP_BL_X-\$1; +#X obj 806 181 saved VP_BL_Y-\$1; +#X obj 1036 61 saved VP_TR_X-\$1; +#X obj 1036 81 saved VP_TR_Y-\$1; +#X obj 1036 161 saved VP_BR_X-\$1; +#X obj 1036 181 saved VP_BR_Y-\$1; +#X obj 756 247 saved TP_TL_X-\$1; +#X obj 756 267 saved TP_TL_Y-\$1; +#X obj 756 297 saved TP_BL_X-\$1; +#X obj 756 317 saved TP_BL_Y-\$1; +#X obj 866 247 saved TP_TR_X-\$1; +#X obj 866 267 saved TP_TR_Y-\$1; +#X obj 866 297 saved TP_BR_X-\$1; +#X obj 866 317 saved TP_BR_Y-\$1; +#X obj 758 420 saved Shade_L-\$1; +#X obj 759 444 saved Shade_R-\$1; +#X obj 755 384 saved Shade_T-\$1; +#X obj 761 473 saved Shade_B-\$1; +#X obj 754 216 r \$0-init; +#X obj 754 356 r \$0-init; +#X obj 106 131 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 185 118 pack f f; +#X obj 231 93 t b f; +#X obj 391 119 pack f f; +#X obj 437 94 t b f; +#X obj 215 168 pack f f; +#X obj 261 143 t b f; +#X obj 421 169 pack f f; +#X obj 467 144 t b f; +#X msg 405 268 Vbr \$1 \$2; +#X msg 198 266 Vbl \$1 \$2; +#X obj 289 119 pack f f; +#X obj 335 94 t b f; +#X obj 319 169 pack f f; +#X obj 365 144 t b f; +#X msg 303 268 Vbc \$1 \$2; +#X obj 205 68 pack f f; +#X obj 251 43 t b f; +#X obj 411 69 pack f f; +#X obj 457 44 t b f; +#X obj 309 69 pack f f; +#X obj 355 44 t b f; +#X obj 185 301 s \$0-glsl; +#X obj 594 64 nbx 5 16 -1000 1000 0 0 empty empty x -10 7 0 12 -261234 +-1 -1 0.00999991 256; +#X obj 594 84 nbx 5 16 -1000 1000 0 0 empty empty y -10 7 0 12 -261234 +-1 -1 3.7 256; +#X obj 594 164 nbx 5 16 -1000 1000 0 0 empty empty x -10 7 0 12 -261234 +-1 -1 0.2 256; +#X obj 594 184 nbx 5 16 -1000 1000 0 0 empty empty y -10 7 0 12 -261234 +-1 -1 -3.96001 256; +#X obj 916 61 saved VP_TC_X-\$1; +#X obj 916 81 saved VP_TC_Y-\$1; +#X obj 916 161 saved VP_BC_X-\$1; +#X obj 916 181 saved VP_BC_Y-\$1; +#X obj 514 114 nbx 5 16 -1000 1000 0 0 empty empty x -10 7 0 12 -261234 +-1 -1 -0.730001 256; +#X obj 514 134 nbx 5 16 -1000 1000 0 0 empty empty y -10 7 0 12 -261234 +-1 -1 0.76 256; +#X obj 675 114 nbx 5 16 -1000 1000 0 0 empty empty x -10 7 0 12 -261234 +-1 -1 1.79 256; +#X obj 675 134 nbx 5 16 -1000 1000 0 0 empty empty y -10 7 0 12 -261234 +-1 -1 2.34 256; +#X obj 594 114 nbx 5 16 -1000 1000 0 0 empty empty x -10 7 0 12 -261234 +-1 -1 0.55 256; +#X obj 594 134 nbx 5 16 -1000 1000 0 0 empty empty y -10 7 0 12 -261234 +-1 -1 -0.35 256; +#X obj 806 111 saved VP_CL_X-\$1; +#X obj 806 131 saved VP_CL_Y-\$1; +#X obj 916 111 saved VP_CC_X-\$1; +#X obj 916 131 saved VP_CC_Y-\$1; +#X obj 1036 111 saved VP_CR_X-\$1; +#X obj 1036 131 saved VP_CR_Y-\$1; +#X msg 195 206 Vtl \$1 \$2; +#X msg 299 210 Vtc \$1 \$2; +#X msg 401 210 Vtr \$1 \$2; +#X msg 185 236 Vcl \$1 \$2; +#X msg 289 240 Vcc \$1 \$2; +#X msg 391 240 Vcr \$1 \$2; +#X connect 0 0 3 0; +#X connect 1 0 4 0; +#X connect 2 0 4 0; +#X connect 4 0 0 0; +#X connect 4 1 33 0; +#X connect 5 0 2 0; +#X connect 8 0 62 0; +#X connect 8 0 35 0; +#X connect 9 0 63 0; +#X connect 9 0 36 0; +#X connect 10 0 66 0; +#X connect 10 0 37 0; +#X connect 11 0 67 0; +#X connect 11 0 38 0; +#X connect 12 0 64 0; +#X connect 12 0 39 0; +#X connect 13 0 65 0; +#X connect 13 0 40 0; +#X connect 14 0 68 0; +#X connect 14 0 41 0; +#X connect 15 0 69 0; +#X connect 15 0 42 0; +#X connect 17 0 72 0; +#X connect 17 0 50 0; +#X connect 18 0 73 0; +#X connect 18 0 51 0; +#X connect 19 0 71 0; +#X connect 19 0 49 0; +#X connect 20 0 70 0; +#X connect 20 0 48 0; +#X connect 23 0 54 0; +#X connect 23 0 92 0; +#X connect 24 0 55 0; +#X connect 24 0 93 0; +#X connect 25 0 58 0; +#X connect 25 0 94 0; +#X connect 26 0 59 0; +#X connect 26 0 95 0; +#X connect 27 0 56 0; +#X connect 27 0 81 0; +#X connect 28 0 57 0; +#X connect 28 0 82 0; +#X connect 29 0 60 0; +#X connect 29 0 83 0; +#X connect 30 0 61 0; +#X connect 30 0 84 0; +#X connect 32 0 4 1; +#X connect 34 0 25 0; +#X connect 34 0 26 0; +#X connect 34 0 23 0; +#X connect 34 0 24 0; +#X connect 34 0 29 0; +#X connect 34 0 30 0; +#X connect 34 0 27 0; +#X connect 34 0 28 0; +#X connect 34 0 99 0; +#X connect 34 0 100 0; +#X connect 34 0 101 0; +#X connect 34 0 102 0; +#X connect 34 0 107 0; +#X connect 34 0 108 0; +#X connect 34 0 111 0; +#X connect 34 0 112 0; +#X connect 34 0 109 0; +#X connect 34 0 110 0; +#X connect 35 0 43 0; +#X connect 36 0 35 0; +#X connect 36 1 35 1; +#X connect 37 0 44 0; +#X connect 38 0 37 0; +#X connect 38 1 37 1; +#X connect 39 0 46 0; +#X connect 40 0 39 0; +#X connect 40 1 39 1; +#X connect 41 0 45 0; +#X connect 42 0 41 0; +#X connect 42 1 41 1; +#X connect 43 0 47 0; +#X connect 44 0 47 0; +#X connect 45 0 47 0; +#X connect 46 0 47 0; +#X connect 48 0 52 0; +#X connect 49 0 52 0; +#X connect 50 0 52 0; +#X connect 51 0 52 0; +#X connect 53 0 0 1; +#X connect 54 0 23 0; +#X connect 55 0 24 0; +#X connect 56 0 27 0; +#X connect 57 0 28 0; +#X connect 58 0 25 0; +#X connect 59 0 26 0; +#X connect 60 0 29 0; +#X connect 61 0 30 0; +#X connect 62 0 8 0; +#X connect 63 0 9 0; +#X connect 64 0 12 0; +#X connect 65 0 13 0; +#X connect 66 0 10 0; +#X connect 67 0 11 0; +#X connect 68 0 14 0; +#X connect 69 0 15 0; +#X connect 70 0 20 0; +#X connect 71 0 19 0; +#X connect 72 0 17 0; +#X connect 73 0 18 0; +#X connect 74 0 8 0; +#X connect 74 0 10 0; +#X connect 74 0 9 0; +#X connect 74 0 11 0; +#X connect 74 0 12 0; +#X connect 74 0 14 0; +#X connect 74 0 13 0; +#X connect 74 0 15 0; +#X connect 75 0 17 0; +#X connect 75 0 19 0; +#X connect 75 0 20 0; +#X connect 75 0 18 0; +#X connect 76 0 33 0; +#X connect 77 0 122 0; +#X connect 78 0 77 0; +#X connect 78 1 77 1; +#X connect 79 0 124 0; +#X connect 80 0 79 0; +#X connect 80 1 79 1; +#X connect 81 0 86 0; +#X connect 82 0 81 0; +#X connect 82 1 81 1; +#X connect 83 0 85 0; +#X connect 84 0 83 0; +#X connect 84 1 83 1; +#X connect 85 0 98 0; +#X connect 86 0 98 0; +#X connect 87 0 123 0; +#X connect 88 0 87 0; +#X connect 88 1 87 1; +#X connect 89 0 91 0; +#X connect 90 0 89 0; +#X connect 90 1 89 1; +#X connect 91 0 98 0; +#X connect 92 0 119 0; +#X connect 93 0 92 0; +#X connect 93 1 92 1; +#X connect 94 0 121 0; +#X connect 95 0 94 0; +#X connect 95 1 94 1; +#X connect 96 0 120 0; +#X connect 97 0 96 0; +#X connect 97 1 96 1; +#X connect 99 0 103 0; +#X connect 99 0 96 0; +#X connect 100 0 104 0; +#X connect 100 0 97 0; +#X connect 101 0 105 0; +#X connect 101 0 89 0; +#X connect 102 0 106 0; +#X connect 102 0 90 0; +#X connect 103 0 99 0; +#X connect 104 0 100 0; +#X connect 105 0 101 0; +#X connect 106 0 102 0; +#X connect 107 0 113 0; +#X connect 107 0 77 0; +#X connect 108 0 114 0; +#X connect 108 0 78 0; +#X connect 109 0 117 0; +#X connect 109 0 79 0; +#X connect 110 0 118 0; +#X connect 110 0 80 0; +#X connect 111 0 115 0; +#X connect 111 0 87 0; +#X connect 112 0 116 0; +#X connect 112 0 88 0; +#X connect 113 0 107 0; +#X connect 114 0 108 0; +#X connect 115 0 111 0; +#X connect 116 0 112 0; +#X connect 117 0 109 0; +#X connect 118 0 110 0; +#X connect 119 0 98 0; +#X connect 120 0 98 0; +#X connect 121 0 98 0; +#X connect 122 0 98 0; +#X connect 123 0 98 0; +#X connect 124 0 98 0; +#X coords 0 -1 1 1 240 520 1 500 10; diff --git a/Gem/examples/12.multi_screen_projection/nfp_flat_wall.pd b/Gem/examples/12.multi_screen_projection/nfp_flat_wall.pd new file mode 100644 index 0000000..d3a9146 --- /dev/null +++ b/Gem/examples/12.multi_screen_projection/nfp_flat_wall.pd @@ -0,0 +1,313 @@ +#N canvas 329 146 948 576 10; +#X obj 46 203 pix_texture; +#X obj 55 113 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 46 78 alpha; +#X obj 46 224 mesh_square 50 50; +#N canvas 162 116 480 574 glsl 0; +#X obj 78 179 glsl_vertex; +#X msg 32 178 print; +#X obj 78 466 glsl_program; +#X obj 163 395 pack 0 0; +#X msg 30 316 print; +#X obj 163 351 change; +#X obj 150 198 change; +#X msg 163 419 link \$1 \$2; +#X msg 32 460 print; +#X obj 77 330 glsl_fragment; +#X floatatom 163 375 2 0 0 0 ID - -; +#X floatatom 150 221 2 0 0 0 ID - -; +#X obj 181 440 print linking; +#X obj 15 21 inlet; +#X obj 78 502 outlet; +#X obj 418 21 inlet; +#X obj 15 44 route bang; +#X obj 255 11 gemhead 1; +#X msg 255 33 1; +#X obj 255 57 change; +#X obj 255 81 t b; +#X obj 157 487 change; +#X obj 157 508 t b; +#X obj 158 530 outlet; +#X obj 90 266 symbol; +#X obj 90 241 t b; +#X msg 287 438 0; +#X obj 15 65 t b b b; +#X msg 118 147 open nfp_22.vert; +#X msg 90 293 open nfp_22.frag; +#X connect 0 0 9 0; +#X connect 0 1 6 0; +#X connect 1 0 0 0; +#X connect 2 0 14 0; +#X connect 2 1 21 0; +#X connect 3 0 7 0; +#X connect 4 0 9 0; +#X connect 5 0 10 0; +#X connect 6 0 11 0; +#X connect 6 0 25 0; +#X connect 7 0 2 0; +#X connect 7 0 12 0; +#X connect 8 0 2 0; +#X connect 9 0 2 0; +#X connect 9 1 5 0; +#X connect 10 0 3 0; +#X connect 11 0 3 1; +#X connect 13 0 16 0; +#X connect 15 0 2 0; +#X connect 16 0 27 0; +#X connect 16 1 0 0; +#X connect 17 0 18 0; +#X connect 18 0 19 0; +#X connect 19 0 20 0; +#X connect 20 0 28 0; +#X connect 21 0 22 0; +#X connect 22 0 23 0; +#X connect 24 0 29 0; +#X connect 25 0 24 0; +#X connect 26 0 21 0; +#X connect 27 0 26 0; +#X connect 27 1 10 0; +#X connect 27 2 28 0; +#X connect 28 0 0 0; +#X connect 29 0 9 0; +#X restore 46 130 pd glsl; +#X obj 46 51 gemhead \$1; +#X obj 501 166 cnv 15 198 130 empty empty empty 20 12 0 14 -233017 +-66577 0; +#X text 522 169 Texture position (Pixel); +#X obj 519 197 nbx 5 16 0 20000 0 0 empty empty x -10 7 0 12 -203904 +-1 -1 12 256; +#X obj 519 217 nbx 5 16 0 20000 0 0 empty empty y -10 7 0 12 -203904 +-1 -1 13 256; +#X obj 619 197 nbx 5 16 0 20000 0 0 empty empty x -10 7 0 12 -203904 +-1 -1 316 256; +#X obj 619 217 nbx 5 16 0 20000 0 0 empty empty y -10 7 0 12 -203904 +-1 -1 11 256; +#X obj 519 247 nbx 5 16 0 20000 0 0 empty empty x -10 7 0 12 -203904 +-1 -1 16 256; +#X obj 519 267 nbx 5 16 0 20000 0 0 empty empty y -10 7 0 12 -203904 +-1 -1 181 256; +#X obj 619 247 nbx 5 16 0 20000 0 0 empty empty x -10 7 0 12 -203904 +-1 -1 307 256; +#X obj 619 267 nbx 5 16 0 20000 0 0 empty empty y -10 7 0 12 -203904 +-1 -1 195 256; +#X obj 501 299 cnv 15 198 180 empty empty empty 20 12 0 14 -233017 +-66577 0; +#X obj 608 320 vsl 15 63 1 0 0 0 empty empty top 18 6 0 10 -262130 +-1 -1 0 1; +#X obj 608 403 vsl 15 63 0 1 0 0 empty empty bottom 18 60 0 10 -262130 +-1 -1 0 1; +#X obj 626 386 hsl 63 15 1 0 0 0 empty empty right 30 -8 0 10 -262130 +-1 -1 0 1; +#X obj 543 386 hsl 63 15 0 1 0 0 empty empty left 2 -8 0 10 -262130 +-1 -1 0 1; +#X text 509 317 Shade size; +#X obj 501 33 cnv 15 198 130 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 519 64 nbx 5 16 -1000 1000 0 0 empty empty x -10 7 0 12 -261234 +-1 -1 -3.66001 256; +#X obj 519 84 nbx 5 16 -1000 1000 0 0 empty empty y -10 7 0 12 -261234 +-1 -1 1.52 256; +#X obj 619 64 nbx 5 16 -1000 1000 0 0 empty empty x -10 7 0 12 -261234 +-1 -1 0.62 256; +#X obj 619 84 nbx 5 16 -1000 1000 0 0 empty empty y -10 7 0 12 -261234 +-1 -1 1.92 256; +#X obj 519 114 nbx 5 16 -1000 1000 0 0 empty empty x -10 7 0 12 -261234 +-1 -1 -2.9 256; +#X obj 519 134 nbx 5 16 -1000 1000 0 0 empty empty y -10 7 0 12 -261234 +-1 -1 -1.61 256; +#X obj 619 114 nbx 5 16 -1000 1000 0 0 empty empty x -10 7 0 12 -261234 +-1 -1 0.49 256; +#X obj 619 134 nbx 5 16 -1000 1000 0 0 empty empty y -10 7 0 12 -261234 +-1 -1 -1.69 256; +#X text 522 36 Vertex position; +#X obj 201 206 pack f f; +#X obj 247 181 t b f; +#X obj 307 207 pack f f; +#X obj 353 182 t b f; +#X obj 231 256 pack f f; +#X obj 277 231 t b f; +#X obj 337 257 pack f f; +#X obj 383 232 t b f; +#X msg 201 277 Vtl \$1 \$2; +#X msg 337 299 Vbr \$1 \$2; +#X msg 230 297 Vbl \$1 \$2; +#X msg 307 279 Vtr \$1 \$2; +#X obj 99 105 r \$0-glsl; +#X obj 98 152 s \$0-init; +#X obj 704 36 r \$0-init; +#X obj 203 372 pack f f; +#X obj 249 347 t b f; +#X obj 309 373 pack f f; +#X obj 355 348 t b f; +#X obj 233 419 pack f f; +#X obj 279 394 t b f; +#X obj 339 420 pack f f; +#X obj 385 395 t b f; +#X msg 203 439 Ttl \$1 \$2; +#X msg 309 441 Ttr \$1 \$2; +#X msg 323 461 Tbr \$1 \$2; +#X msg 216 459 Tbl \$1 \$2; +#X obj 201 325 s \$0-glsl; +#X obj 203 484 s \$0-glsl; +#X msg 204 515 Sl \$1; +#X msg 253 515 Sr \$1; +#X msg 300 515 St \$1; +#X msg 346 515 Sb \$1; +#X obj 204 539 s \$0-glsl; +#X obj 120 182 r nfp_fb; +#X obj 706 61 saved VP_TL_X-\$1; +#X obj 706 81 saved VP_TL_Y-\$1; +#X obj 706 111 saved VP_BL_X-\$1; +#X obj 706 131 saved VP_BL_Y-\$1; +#X obj 816 61 saved VP_TR_X-\$1; +#X obj 816 81 saved VP_TR_Y-\$1; +#X obj 816 111 saved VP_BR_X-\$1; +#X obj 816 131 saved VP_BR_Y-\$1; +#X obj 706 197 saved TP_TL_X-\$1; +#X obj 706 217 saved TP_TL_Y-\$1; +#X obj 706 247 saved TP_BL_X-\$1; +#X obj 706 267 saved TP_BL_Y-\$1; +#X obj 816 197 saved TP_TR_X-\$1; +#X obj 816 217 saved TP_TR_Y-\$1; +#X obj 816 247 saved TP_BR_X-\$1; +#X obj 816 267 saved TP_BR_Y-\$1; +#X obj 708 370 saved Shade_L-\$1; +#X obj 709 394 saved Shade_R-\$1; +#X obj 705 334 saved Shade_T-\$1; +#X obj 711 423 saved Shade_B-\$1; +#X obj 704 166 r \$0-init; +#X obj 704 306 r \$0-init; +#X obj 106 131 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 226 44 r \$0-init; +#X obj 226 85 s \$0-glsl; +#X msg 226 65 center 1 1; +#X connect 0 0 3 0; +#X connect 1 0 4 0; +#X connect 2 0 4 0; +#X connect 4 0 0 0; +#X connect 4 1 45 0; +#X connect 5 0 2 0; +#X connect 8 0 75 0; +#X connect 8 0 47 0; +#X connect 9 0 76 0; +#X connect 9 0 48 0; +#X connect 10 0 79 0; +#X connect 10 0 49 0; +#X connect 11 0 80 0; +#X connect 11 0 50 0; +#X connect 12 0 77 0; +#X connect 12 0 51 0; +#X connect 13 0 78 0; +#X connect 13 0 52 0; +#X connect 14 0 81 0; +#X connect 14 0 53 0; +#X connect 15 0 82 0; +#X connect 15 0 54 0; +#X connect 17 0 85 0; +#X connect 17 0 63 0; +#X connect 18 0 86 0; +#X connect 18 0 64 0; +#X connect 19 0 84 0; +#X connect 19 0 62 0; +#X connect 20 0 83 0; +#X connect 20 0 61 0; +#X connect 23 0 32 0; +#X connect 23 0 67 0; +#X connect 24 0 33 0; +#X connect 24 0 68 0; +#X connect 25 0 34 0; +#X connect 25 0 71 0; +#X connect 26 0 35 0; +#X connect 26 0 72 0; +#X connect 27 0 36 0; +#X connect 27 0 69 0; +#X connect 28 0 37 0; +#X connect 28 0 70 0; +#X connect 29 0 38 0; +#X connect 29 0 73 0; +#X connect 30 0 39 0; +#X connect 30 0 74 0; +#X connect 32 0 40 0; +#X connect 33 0 32 0; +#X connect 33 1 32 1; +#X connect 34 0 43 0; +#X connect 35 0 34 0; +#X connect 35 1 34 1; +#X connect 36 0 42 0; +#X connect 37 0 36 0; +#X connect 37 1 36 1; +#X connect 38 0 41 0; +#X connect 39 0 38 0; +#X connect 39 1 38 1; +#X connect 40 0 59 0; +#X connect 41 0 59 0; +#X connect 42 0 59 0; +#X connect 43 0 59 0; +#X connect 44 0 4 1; +#X connect 46 0 25 0; +#X connect 46 0 26 0; +#X connect 46 0 23 0; +#X connect 46 0 24 0; +#X connect 46 0 29 0; +#X connect 46 0 30 0; +#X connect 46 0 27 0; +#X connect 46 0 28 0; +#X connect 47 0 55 0; +#X connect 48 0 47 0; +#X connect 48 1 47 1; +#X connect 49 0 56 0; +#X connect 50 0 49 0; +#X connect 50 1 49 1; +#X connect 51 0 58 0; +#X connect 52 0 51 0; +#X connect 52 1 51 1; +#X connect 53 0 57 0; +#X connect 54 0 53 0; +#X connect 54 1 53 1; +#X connect 55 0 60 0; +#X connect 56 0 60 0; +#X connect 57 0 60 0; +#X connect 58 0 60 0; +#X connect 61 0 65 0; +#X connect 62 0 65 0; +#X connect 63 0 65 0; +#X connect 64 0 65 0; +#X connect 66 0 0 1; +#X connect 67 0 23 0; +#X connect 68 0 24 0; +#X connect 69 0 27 0; +#X connect 70 0 28 0; +#X connect 71 0 25 0; +#X connect 72 0 26 0; +#X connect 73 0 29 0; +#X connect 74 0 30 0; +#X connect 75 0 8 0; +#X connect 76 0 9 0; +#X connect 77 0 12 0; +#X connect 78 0 13 0; +#X connect 79 0 10 0; +#X connect 80 0 11 0; +#X connect 81 0 14 0; +#X connect 82 0 15 0; +#X connect 83 0 20 0; +#X connect 84 0 19 0; +#X connect 85 0 17 0; +#X connect 86 0 18 0; +#X connect 87 0 8 0; +#X connect 87 0 10 0; +#X connect 87 0 9 0; +#X connect 87 0 11 0; +#X connect 87 0 12 0; +#X connect 87 0 14 0; +#X connect 87 0 13 0; +#X connect 87 0 15 0; +#X connect 88 0 17 0; +#X connect 88 0 19 0; +#X connect 88 0 20 0; +#X connect 88 0 18 0; +#X connect 89 0 45 0; +#X connect 90 0 92 0; +#X connect 92 0 91 0; +#X coords 0 -1 1 1 200 470 1 500 10; diff --git a/Gem/examples/12.multi_screen_projection/save_system-help.pd b/Gem/examples/12.multi_screen_projection/save_system-help.pd new file mode 100644 index 0000000..9345cbe --- /dev/null +++ b/Gem/examples/12.multi_screen_projection/save_system-help.pd @@ -0,0 +1,20 @@ +#N canvas 219 286 450 300 10; +#X obj 19 67 load_save; +#X obj 19 9 loadbang; +#X obj 27 47 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 84 47 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X floatatom 277 88 5 0 0 0 - - -; +#X floatatom 277 108 5 0 0 0 - - -; +#X obj 171 86 saved data1; +#X obj 171 106 saved data2; +#X text 103 48 save; +#X text 43 49 load; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X connect 3 0 0 1; +#X connect 4 0 6 0; +#X connect 5 0 7 0; +#X connect 6 0 4 0; +#X connect 7 0 5 0; diff --git a/Gem/examples/12.multi_screen_projection/saved.pd b/Gem/examples/12.multi_screen_projection/saved.pd new file mode 100644 index 0000000..499c0bd --- /dev/null +++ b/Gem/examples/12.multi_screen_projection/saved.pd @@ -0,0 +1,24 @@ +#N canvas 545 325 474 372 10; +#X obj 268 0 t b; +#X obj 53 124 f; +#X obj 268 220 f; +#X obj 53 -21 inlet; +#X obj 53 284 outlet; +#X obj 268 266 list trim; +#X obj 268 247 list prepend \$1; +#X obj 268 285 s save_system_data; +#X obj 268 -26 r save_system_save; +#X obj 105 10 r save_system_saved; +#X obj 105 36 route \$1; +#X msg 53 263 set \$1; +#X connect 0 0 2 0; +#X connect 1 0 2 1; +#X connect 1 0 11 0; +#X connect 2 0 6 0; +#X connect 3 0 1 0; +#X connect 5 0 7 0; +#X connect 6 0 5 0; +#X connect 8 0 0 0; +#X connect 9 0 10 0; +#X connect 10 0 1 0; +#X connect 11 0 4 0; diff --git a/Gem/examples/12.multi_screen_projection/soft_edge.frag b/Gem/examples/12.multi_screen_projection/soft_edge.frag new file mode 100644 index 0000000..1c2e35f --- /dev/null +++ b/Gem/examples/12.multi_screen_projection/soft_edge.frag @@ -0,0 +1,62 @@ +// Cyrille Henry 2010 + +//#extension GL_ARB_texture_rectangle : enable +//uniform sampler2DRect MyTex; +uniform sampler2D MyTex; +uniform vec2 overlap, geometry_screen, geometry_computer; + +void main (void) +{ +// FSAA + +// change coord from computer matrix to screen matrice + vec2 coord = (gl_TextureMatrix[0] * gl_TexCoord[0]).st; + vec2 pos_new = coord; + pos_new *= geometry_computer; + float screen_num = floor(pos_new.x)+floor(pos_new.y)*geometry_computer.x; // number of the screen + pos_new = fract(pos_new); // coord in 1 screen (from 0 to 1) + pos_new.x += fract(screen_num/geometry_screen.x)*geometry_screen.x; + pos_new.y += floor(screen_num/geometry_screen.x); + pos_new /= geometry_screen; + +// compute position regarding to the overlap + vec2 pos = pos_new; + pos *= geometry_screen; + + vec2 pos_over = fract(pos); + pos_over *= overlap; + pos_over -= overlap/2.; + pos += pos_over; + pos += overlap/2.; + pos /= geometry_screen + overlap; + vec4 color = texture2D(MyTex, pos); + +// compute fade on Top and Right + vec2 black = pos_new; + black *= geometry_screen; + black = fract(black); + black *= 1. + (overlap/ (geometry_screen/2.)); + black -= 1.; + black = max(black,0.); + black *= (geometry_screen / 2.) / overlap; + if ( ( floor(pos_new.x*geometry_screen.x) < geometry_screen.x-1. ) && (overlap.x != 0.) ) + color *= (1.-black.x); + if ( ( floor(pos_new.y*geometry_screen.y) < geometry_screen.y-1. ) && (overlap.x != 0.) ) + color *= (1.-black.y); + +// compute fade on Left and bottom + black = pos_new; + black *= geometry_screen; + black = fract(black); + black = vec2(1.) - black; + black *= 1. + (overlap/ (geometry_screen/2.)); + black -= 1.; + black = max(black,0.); + black *= (geometry_screen / 2.) / overlap; + if ( ( floor(pos_new.x*geometry_screen.x) > 0. ) && (overlap.x != 0.) ) + color *= (1.-black.x); + if ( ( floor(pos_new.y*geometry_screen.y) > 0. ) && (overlap.x != 0.) ) + color *= (1.-black.y); + + gl_FragColor = color; +} diff --git a/Gem/examples/13.recursion/01.repetition_is_futile.pd b/Gem/examples/13.recursion/01.repetition_is_futile.pd new file mode 100644 index 0000000..3b8637b --- /dev/null +++ b/Gem/examples/13.recursion/01.repetition_is_futile.pd @@ -0,0 +1,61 @@ +#N canvas 0 0 602 516 10; +#X obj 14 66 gemwin; +#X obj 14 9 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X msg 48 10 create; +#X msg 55 33 destroy; +#X obj 14 93 gemhead; +#X obj 14 123 t a a; +#X obj 59 123 circle; +#X obj 14 153 separator; +#X obj 14 213 scale 0.7; +#X obj 14 173 rotate 45 0 0 1; +#X obj 14 243 t a a; +#X obj 59 243 circle; +#X obj 14 273 separator; +#X obj 14 333 scale 0.7; +#X obj 14 293 rotate 45 0 0 1; +#X obj 14 363 t a a; +#X obj 59 363 circle; +#X obj 14 193 translate 2 0 1 0; +#X obj 14 313 translate 2 0 1 0; +#X obj 14 393 separator; +#X obj 14 453 scale 0.7; +#X obj 14 413 rotate 45 0 0 1; +#X obj 14 433 translate 2 0 1 0; +#X obj 14 483 t a a; +#X obj 59 483 circle; +#X text 170 17 A tutorial on recursion in Gem; +#X text 170 37 (GPL) 2007 Claude Heiland-Allen +; +#X text 170 77 The simplest and most obvious way of working with Gem +is to create all the objects statically. That is \, the Gem chain (or +tree) is exactly what is visible in the patch.; +#X text 170 127 Say we way we want to make a spiral of circles. Even +with just 4 circles the repetition is painfully obvious \, and if we +wanted more the duplication would be painfully tedious.; +#X text 170 177 There is a powerful way to avoid this pain \, however +\, using recursion.; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X connect 3 0 0 0; +#X connect 4 0 5 0; +#X connect 5 0 7 0; +#X connect 5 1 6 0; +#X connect 7 0 9 0; +#X connect 8 0 10 0; +#X connect 9 0 17 0; +#X connect 10 0 12 0; +#X connect 10 1 11 0; +#X connect 12 0 14 0; +#X connect 13 0 15 0; +#X connect 14 0 18 0; +#X connect 15 0 19 0; +#X connect 15 1 16 0; +#X connect 17 0 8 0; +#X connect 18 0 13 0; +#X connect 19 0 21 0; +#X connect 20 0 23 0; +#X connect 21 0 22 0; +#X connect 22 0 20 0; +#X connect 23 1 24 0; diff --git a/Gem/examples/13.recursion/02.iteration_is_insufficient.pd b/Gem/examples/13.recursion/02.iteration_is_insufficient.pd new file mode 100644 index 0000000..f895aff --- /dev/null +++ b/Gem/examples/13.recursion/02.iteration_is_insufficient.pd @@ -0,0 +1,33 @@ +#N canvas 0 0 602 259 10; +#X obj 14 66 gemwin; +#X obj 14 9 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X msg 48 10 create; +#X msg 55 33 destroy; +#X obj 14 93 gemhead; +#X obj 14 153 t a a; +#X obj 59 153 circle; +#X obj 14 223 scale 0.7; +#X obj 14 183 rotate 45 0 0 1; +#X obj 14 203 translate 2 0 1 0; +#X text 170 17 A tutorial on recursion in Gem; +#X text 170 37 (GPL) 2007 Claude Heiland-Allen +; +#X text 170 77 A common idiom in Gem is to use the [repeat] object +found in the Zexy library \, to generate multiple copies of the same +object. Let's try using it to make our spiral.; +#X obj 14 123 repeat 64; +#X text 170 127 And indeed \, it works well. But a spiral is a linear +structure \, without branches. Iteration has solved one problem \, +only to present us with another: what if we want a branching structure? +; +#X text 170 187 Recursion is an elegant solution to this problem.; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X connect 3 0 0 0; +#X connect 4 0 13 0; +#X connect 5 0 8 0; +#X connect 5 1 6 0; +#X connect 8 0 9 0; +#X connect 9 0 7 0; +#X connect 13 0 5 0; diff --git a/Gem/examples/13.recursion/03.recursive_spiral.pd b/Gem/examples/13.recursion/03.recursive_spiral.pd new file mode 100644 index 0000000..f889aed --- /dev/null +++ b/Gem/examples/13.recursion/03.recursive_spiral.pd @@ -0,0 +1,71 @@ +#N canvas 3 2 602 516 10; +#X obj 14 66 gemwin; +#X obj 14 9 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X msg 48 10 create; +#X msg 55 33 destroy; +#X obj 14 93 gemhead; +#X obj 14 213 t a a; +#X obj 59 213 circle; +#X obj 14 283 scale 0.7; +#X obj 14 243 rotate 45 0 0 1; +#X obj 14 263 translate 2 0 1 0; +#X text 170 17 A tutorial on recursion in Gem; +#X text 170 37 (GPL) 2007 Claude Heiland-Allen +; +#X text 170 77 A common idiom in Gem is to use the [repeat] object +found in the Zexy library \, to generate multiple copies of the same +object. Let's try using it to make our spiral.; +#X obj 14 183 separator; +#X obj 24 163 r \$0-recurse; +#X obj 68 133 v \$0-depth; +#X obj 14 113 t a b; +#X obj 68 113 f 16; +#X floatatom 91 96 5 0 0 2 max-depth - -; +#X obj 36 433 s \$0-recurse; +#X obj 14 313 t b a b; +#X obj 99 343 v \$0-depth; +#X obj 99 363 - 1; +#X obj 99 383 max 0; +#X obj 99 403 v \$0-depth; +#X obj 36 413 spigot; +#X obj 14 343 v \$0-depth; +#X obj 14 383 v \$0-depth; +#X obj 14 363 + 1; +#X text 170 127 First \, we need to limit the depth of the recursion +\, to avoid the dreaded "stack overflow" errors from both Pd and OpenGL. +We set the maximum depth before doing anything else in the Gem chain. +; +#X text 170 187 Next \, we draw the circle and set up the transformations +for the recursive call.; +#X text 170 227 Finally \, we check that we are within the allowed +depth \, and recurse (after decrementing the maximum depth).; +#X text 170 267 At first glance \, this recursive solution is much +less elegant than the iterative solution with [repeat] \, and it is +-- for non-branching structures. The power of recursion comes from +the ease with which branching structures can be created.; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X connect 3 0 0 0; +#X connect 4 0 16 0; +#X connect 5 0 8 0; +#X connect 5 1 6 0; +#X connect 7 0 20 0; +#X connect 8 0 9 0; +#X connect 9 0 7 0; +#X connect 13 0 5 0; +#X connect 14 0 13 0; +#X connect 16 0 13 0; +#X connect 16 1 17 0; +#X connect 17 0 15 0; +#X connect 18 0 17 1; +#X connect 20 0 26 0; +#X connect 20 1 25 0; +#X connect 20 2 21 0; +#X connect 21 0 22 0; +#X connect 22 0 23 0; +#X connect 23 0 24 0; +#X connect 23 0 25 1; +#X connect 25 0 19 0; +#X connect 26 0 28 0; +#X connect 28 0 27 0; diff --git a/Gem/examples/13.recursion/04.binary_tree.pd b/Gem/examples/13.recursion/04.binary_tree.pd new file mode 100644 index 0000000..0550698 --- /dev/null +++ b/Gem/examples/13.recursion/04.binary_tree.pd @@ -0,0 +1,98 @@ +#N canvas 3 2 602 516 10; +#X obj 14 66 gemwin; +#X obj 14 9 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X msg 48 10 create; +#X msg 55 33 destroy; +#X obj 14 93 gemhead; +#X text 170 17 A tutorial on recursion in Gem; +#X text 170 37 (GPL) 2007 Claude Heiland-Allen +; +#X obj 24 163 r \$0-recurse; +#X obj 68 133 v \$0-depth; +#X obj 14 113 t a b; +#X floatatom 91 96 5 0 0 2 max-depth - -; +#X obj 14 253 t a a; +#X obj 59 253 circle; +#X obj 14 223 separator; +#X obj 36 473 s \$0-recurse; +#X obj 14 353 t b a b; +#X obj 99 383 v \$0-depth; +#X obj 99 403 - 1; +#X obj 99 423 max 0; +#X obj 99 443 v \$0-depth; +#X obj 36 453 spigot; +#X obj 14 383 v \$0-depth; +#X obj 14 423 v \$0-depth; +#X obj 14 403 + 1; +#X obj 184 253 t a a; +#X obj 229 253 circle; +#X obj 206 473 s \$0-recurse; +#X obj 184 353 t b a b; +#X obj 269 383 v \$0-depth; +#X obj 269 403 - 1; +#X obj 269 423 max 0; +#X obj 269 443 v \$0-depth; +#X obj 206 453 spigot; +#X obj 184 383 v \$0-depth; +#X obj 184 423 v \$0-depth; +#X obj 184 403 + 1; +#X obj 184 223 separator; +#X obj 14 183 t a a; +#X obj 184 303 translate 1.5 0 1 0; +#X obj 184 323 scale 0.5; +#X obj 14 323 scale 0.5; +#X obj 14 303 translate 1.5 0 1 0; +#X obj 14 283 rotate -30 0 0 1; +#X obj 184 283 rotate 30 0 0 1; +#X obj 68 113 f 4; +#X text 170 77 The simplest recursive branching structure is one that +splits into two at each branch. Essentially what we are creating is +a circle \, plus two transformed copies of the whole structure \, limited +to a maximums depth of recursion.; +#X text 170 137 Be careful not to increase the max-depth too much: +the splitting at each recursion leads to an exponential increase in +the number of circles to be drawn.; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X connect 3 0 0 0; +#X connect 4 0 9 0; +#X connect 7 0 37 0; +#X connect 9 0 37 0; +#X connect 9 1 44 0; +#X connect 10 0 44 1; +#X connect 11 0 42 0; +#X connect 11 1 12 0; +#X connect 13 0 11 0; +#X connect 15 0 21 0; +#X connect 15 1 20 0; +#X connect 15 2 16 0; +#X connect 16 0 17 0; +#X connect 17 0 18 0; +#X connect 18 0 19 0; +#X connect 18 0 20 1; +#X connect 20 0 14 0; +#X connect 21 0 23 0; +#X connect 23 0 22 0; +#X connect 24 0 43 0; +#X connect 24 1 25 0; +#X connect 27 0 33 0; +#X connect 27 1 32 0; +#X connect 27 2 28 0; +#X connect 28 0 29 0; +#X connect 29 0 30 0; +#X connect 30 0 31 0; +#X connect 30 0 32 1; +#X connect 32 0 26 0; +#X connect 33 0 35 0; +#X connect 35 0 34 0; +#X connect 36 0 24 0; +#X connect 37 0 13 0; +#X connect 37 1 36 0; +#X connect 38 0 39 0; +#X connect 39 0 27 0; +#X connect 40 0 15 0; +#X connect 41 0 40 0; +#X connect 42 0 41 0; +#X connect 43 0 38 0; +#X connect 44 0 8 0; diff --git a/Gem/examples/13.recursion/05.n-ary_tree.pd b/Gem/examples/13.recursion/05.n-ary_tree.pd new file mode 100644 index 0000000..dca40cf --- /dev/null +++ b/Gem/examples/13.recursion/05.n-ary_tree.pd @@ -0,0 +1,81 @@ +#N canvas 3 2 600 605 10; +#X obj 14 66 gemwin; +#X obj 14 9 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X msg 48 10 create; +#X msg 55 33 destroy; +#X obj 14 93 gemhead; +#X text 170 17 A tutorial on recursion in Gem; +#X text 170 37 (GPL) 2007 Claude Heiland-Allen +; +#X obj 30 159 r \$0-recurse; +#X obj 68 133 v \$0-depth; +#X obj 14 113 t a b; +#X floatatom 84 70 5 0 0 2 max-depth - -; +#X obj 14 187 t a a; +#X obj 60 188 circle; +#X obj 14 325 separator; +#X obj 36 536 s \$0-recurse; +#X obj 14 416 t b a b; +#X obj 99 446 v \$0-depth; +#X obj 99 466 - 1; +#X obj 99 486 max 0; +#X obj 99 506 v \$0-depth; +#X obj 36 516 spigot; +#X obj 14 446 v \$0-depth; +#X obj 14 486 v \$0-depth; +#X obj 14 466 + 1; +#X obj 68 113 f 4; +#X obj 14 346 rotate 0 0 0 1; +#X obj 126 303 * 72; +#X obj 14 366 translate 2 0 1 0; +#X obj 14 386 scale 0.35; +#X obj 14 270 nrepeat 5; +#X obj 119 236 t f f; +#X floatatom 118 196 5 0 0 2 count - -; +#X obj 149 259 swap 360; +#X obj 149 282 /; +#X obj 118 215 clip 1 16; +#X obj 84 89 clip 1 6; +#X text 170 77 Recursion can be combined with iteration to make complex +structures. However \, using the [repeat] from Zexy is no longer enough. +Trying to use it with an external counter leads to re-entrancy bugs +\, because the [repeat] is retriggered before the counter has finished +\, which messes up the counter's internal state. [nrepeat] is a "repeat +with a built in counter" \, which is re-entrancy safe.; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X connect 3 0 0 0; +#X connect 4 0 9 0; +#X connect 7 0 11 0; +#X connect 9 0 11 0; +#X connect 9 1 24 0; +#X connect 10 0 35 0; +#X connect 11 0 29 0; +#X connect 11 1 12 0; +#X connect 13 0 25 0; +#X connect 15 0 21 0; +#X connect 15 1 20 0; +#X connect 15 2 16 0; +#X connect 16 0 17 0; +#X connect 17 0 18 0; +#X connect 18 0 19 0; +#X connect 18 0 20 1; +#X connect 20 0 14 0; +#X connect 21 0 23 0; +#X connect 23 0 22 0; +#X connect 24 0 8 0; +#X connect 25 0 27 0; +#X connect 26 0 25 1; +#X connect 27 0 28 0; +#X connect 28 0 15 0; +#X connect 29 0 13 0; +#X connect 29 1 26 0; +#X connect 30 0 29 1; +#X connect 30 1 32 0; +#X connect 31 0 34 0; +#X connect 32 0 33 0; +#X connect 32 1 33 1; +#X connect 33 0 26 1; +#X connect 34 0 30 0; +#X connect 35 0 24 1; diff --git a/Gem/examples/13.recursion/06.breaking_symmetry.pd b/Gem/examples/13.recursion/06.breaking_symmetry.pd new file mode 100644 index 0000000..74cd9c1 --- /dev/null +++ b/Gem/examples/13.recursion/06.breaking_symmetry.pd @@ -0,0 +1,384 @@ +#N canvas 4 2 673 560 10; +#X obj 14 66 gemwin; +#X obj 14 9 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 +; +#X msg 55 33 destroy; +#X obj 14 92 gemhead; +#X text 220 17 A tutorial on recursion in Gem; +#X text 220 37 (GPL) 2007 Claude Heiland-Allen +; +#X obj 30 273 r \$0-recurse; +#X obj 14 301 t a a; +#X floatatom 72 360 5 0 0 2 count - -; +#X obj 72 379 clip 1 6; +#N canvas 0 0 368 384 \$0-transformations 0; +#X obj 19 19 inlet; +#X obj 250 19 inlet; +#X obj 19 343 outlet; +#X text 299 20 count; +#X text 72 19 gem; +#X text 74 344 gem; +#X obj 19 44 separator; +#X obj 19 315 scaleXYZ; +#X obj 19 225 translateXYZ; +#X obj 19 135 rotateXYZ; +#X obj 38 74 tabread \$0-rotate-X; +#X obj 57 94 tabread \$0-rotate-Y; +#X obj 77 114 tabread \$0-rotate-Z; +#X obj 45 164 tabread \$0-translate-X; +#X obj 71 184 tabread \$0-translate-Y; +#X obj 98 204 tabread \$0-translate-Z; +#X obj 36 254 tabread \$0-scale-X; +#X obj 53 274 tabread \$0-scale-Y; +#X obj 70 294 tabread \$0-scale-Z; +#X text 135 230 Transform the recursion branch \,; +#X connect 0 0 6 0; +#X connect 1 0 10 0; +#X connect 1 0 11 0; +#X connect 1 0 12 0; +#X connect 1 0 13 0; +#X connect 1 0 14 0; +#X connect 1 0 15 0; +#X connect 1 0 16 0; +#X connect 1 0 17 0; +#X connect 1 0 18 0; +#X connect 6 0 9 0; +#X connect 7 0 2 0; +#X connect 8 0 7 0; +#X connect 9 0 8 0; +#X connect 10 0 9 1; +#X connect 11 0 9 2; +#X connect 12 0 9 3; +#X connect 13 0 8 1; +#X connect 14 0 8 2; +#X connect 15 0 8 3; +#X connect 16 0 7 1; +#X connect 17 0 7 2; +#X connect 18 0 7 3; +#X restore 63 442 pd \$0-transformations; +#N canvas 0 0 679 337 \$0-colourize-and-limit-depth 0; +#X obj 297 19 inlet; +#X obj 293 298 outlet; +#X text 343 299 gem; +#X text 347 21 gem; +#X obj 436 18 inlet; +#X text 487 18 count; +#X obj 352 171 v \$0-depth; +#X obj 352 191 - 1; +#X obj 352 211 max 0; +#X obj 352 231 v \$0-depth; +#X obj 294 246 spigot; +#X obj 264 174 v \$0-depth; +#X obj 264 214 v \$0-depth; +#X obj 264 194 + 1; +#X obj 436 189 v \$0-R; +#X obj 436 229 v \$0-R; +#X obj 486 189 v \$0-G; +#X obj 486 229 v \$0-G; +#X obj 536 229 v \$0-B; +#X obj 536 189 v \$0-B; +#X obj 436 71 tabread \$0-colour-R; +#X obj 486 105 tabread \$0-colour-G; +#X obj 536 128 tabread \$0-colour-B; +#X text 442 248 Transform colours.; +#X text 251 271 Limit recursion depth.; +#X obj 536 209 + 1; +#X obj 486 209 + 1; +#X obj 435 209 + 1; +#X obj 297 52 t b a b; +#X obj 436 167 t b f; +#X obj 486 167 t b f; +#X obj 536 167 t b f; +#X obj 46 18 inlet; +#X text 97 18 count; +#X obj 46 189 v \$0-R; +#X obj 46 229 v \$0-R; +#X obj 96 189 v \$0-G; +#X obj 96 229 v \$0-G; +#X obj 146 229 v \$0-B; +#X obj 146 189 v \$0-B; +#X obj 46 71 tabread \$0-colour-R; +#X obj 96 105 tabread \$0-colour-G; +#X obj 146 128 tabread \$0-colour-B; +#X obj 46 167 t b f; +#X obj 96 167 t b f; +#X obj 146 167 t b f; +#X text 52 252 Untransform colours.; +#X obj 45 209 - 1; +#X obj 96 209 - 1; +#X obj 146 209 - 1; +#X connect 0 0 28 0; +#X connect 4 0 20 0; +#X connect 4 0 21 0; +#X connect 4 0 22 0; +#X connect 6 0 7 0; +#X connect 7 0 8 0; +#X connect 8 0 9 0; +#X connect 8 0 10 1; +#X connect 10 0 1 0; +#X connect 11 0 13 0; +#X connect 13 0 12 0; +#X connect 14 0 27 0; +#X connect 16 0 26 0; +#X connect 19 0 25 0; +#X connect 20 0 29 0; +#X connect 21 0 30 0; +#X connect 22 0 31 0; +#X connect 25 0 18 0; +#X connect 26 0 17 0; +#X connect 27 0 15 0; +#X connect 28 0 11 0; +#X connect 28 1 10 0; +#X connect 28 2 6 0; +#X connect 29 0 14 0; +#X connect 29 1 27 1; +#X connect 30 0 16 0; +#X connect 30 1 26 1; +#X connect 31 0 19 0; +#X connect 31 1 25 1; +#X connect 32 0 40 0; +#X connect 32 0 41 0; +#X connect 32 0 42 0; +#X connect 34 0 47 0; +#X connect 36 0 48 0; +#X connect 39 0 49 0; +#X connect 40 0 43 0; +#X connect 41 0 44 0; +#X connect 42 0 45 0; +#X connect 43 0 34 0; +#X connect 43 1 47 1; +#X connect 44 0 36 0; +#X connect 44 1 48 1; +#X connect 45 0 39 0; +#X connect 45 1 49 1; +#X connect 47 0 35 0; +#X connect 48 0 37 0; +#X connect 49 0 38 0; +#X restore 14 479 pd \$0-colourize-and-limit-depth; +#X obj 14 499 s \$0-recurse; +#X obj 14 223 t a b; +#N canvas 22 26 435 181 \$0-initialize 0; +#X obj 23 20 inlet; +#X text 68 19 bang; +#X obj 23 122 v \$0-depth; +#X obj 23 102 f 4; +#X obj 103 122 v \$0-R; +#X obj 153 122 v \$0-G; +#X obj 203 122 v \$0-B; +#X obj 160 21 inlet; +#X text 205 20 max depth; +#X text 18 146 Initialize the variables: recursion depth and object +colours.; +#X obj 203 98 f 0; +#X obj 153 99 f 0; +#X obj 103 98 f 0; +#X connect 0 0 3 0; +#X connect 0 0 10 0; +#X connect 0 0 11 0; +#X connect 0 0 12 0; +#X connect 3 0 2 0; +#X connect 7 0 3 1; +#X connect 10 0 6 0; +#X connect 11 0 5 0; +#X connect 12 0 4 0; +#X restore 44 243 pd \$0-initialize; +#X floatatom 151 200 5 0 0 2 depth - -; +#N canvas 0 0 340 391 \$0-draw-object 0; +#X obj 23 14 inlet; +#X text 69 13 gem; +#X obj 23 67 t a b b b; +#X obj 23 321 colorRGB; +#X obj 23 358 cube; +#X obj 240 291 inlet; +#X text 286 291 alpha; +#X obj 42 106 v \$0-R; +#X obj 120 104 v \$0-G; +#X obj 198 104 v \$0-B; +#X text 125 76 Normalize the colour range.; +#X obj 23 41 separator; +#X obj 42 253 expr $f1/$f4 \; $f2/$f4 \; $f3/$f4; +#X obj 42 128 expr $f1 \; $f2 \; $f3 \; max(max(max($f1 \, $f2) \, +$f3) \, 1); +#X connect 0 0 11 0; +#X connect 2 0 3 0; +#X connect 2 1 7 0; +#X connect 2 2 8 0; +#X connect 2 3 9 0; +#X connect 3 0 4 0; +#X connect 5 0 3 4; +#X connect 7 0 13 0; +#X connect 8 0 13 1; +#X connect 9 0 13 2; +#X connect 11 0 2 0; +#X connect 12 0 3 1; +#X connect 12 1 3 2; +#X connect 12 2 3 3; +#X connect 13 0 12 0; +#X connect 13 1 12 1; +#X connect 13 2 12 2; +#X connect 13 3 12 3; +#X restore 44 321 pd \$0-draw-object; +#X floatatom 158 279 5 0 0 2 alpha - -; +#X obj 158 299 / 100; +#N canvas 0 0 650 615 \$0-gui 0; +#X obj 11 11 xform-gui 0; +#X obj 167 263 t a; +#X msg 167 293 \$3 \$1 \$2; +#X obj 167 329 unpack f f s; +#X obj 246 355 select cR cG cB rX rY rZ tX tY tZ sX sY sZ; +#X obj 167 576 tabwrite; +#X obj 246 485 symbol \$0-colour-R; +#X obj 270 465 symbol \$0-colour-G; +#X obj 294 445 symbol \$0-colour-B; +#X obj 318 425 symbol \$0-rotate-X; +#X obj 342 405 symbol \$0-rotate-Y; +#X obj 366 385 symbol \$0-rotate-Z; +#X obj 390 485 symbol \$0-translate-X; +#X obj 414 465 symbol \$0-translate-Y; +#X obj 438 445 symbol \$0-translate-Z; +#X obj 462 425 symbol \$0-scale-X; +#X obj 486 405 symbol \$0-scale-Y; +#X obj 510 385 symbol \$0-scale-Z; +#X obj 374 552 list prepend set; +#X obj 374 572 list trim; +#X obj 495 112 inlet; +#X obj 71 11 xform-gui 1; +#X obj 131 11 xform-gui 2; +#X obj 191 11 xform-gui 3; +#X obj 251 11 xform-gui 4; +#X obj 311 11 xform-gui 5; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 5 0; +#X connect 3 1 5 1; +#X connect 3 2 4 0; +#X connect 4 0 6 0; +#X connect 4 1 7 0; +#X connect 4 2 8 0; +#X connect 4 3 9 0; +#X connect 4 4 10 0; +#X connect 4 5 11 0; +#X connect 4 6 12 0; +#X connect 4 7 13 0; +#X connect 4 8 14 0; +#X connect 4 9 15 0; +#X connect 4 10 16 0; +#X connect 4 11 17 0; +#X connect 6 0 18 0; +#X connect 7 0 18 0; +#X connect 8 0 18 0; +#X connect 9 0 18 0; +#X connect 10 0 18 0; +#X connect 11 0 18 0; +#X connect 12 0 18 0; +#X connect 13 0 18 0; +#X connect 14 0 18 0; +#X connect 15 0 18 0; +#X connect 16 0 18 0; +#X connect 17 0 18 0; +#X connect 18 0 19 0; +#X connect 19 0 5 0; +#X connect 20 0 0 0; +#X connect 20 0 21 0; +#X connect 20 0 22 0; +#X connect 20 0 23 0; +#X connect 20 0 24 0; +#X connect 20 0 25 0; +#X connect 21 0 1 0; +#X connect 22 0 1 0; +#X connect 23 0 1 0; +#X connect 24 0 1 0; +#X connect 25 0 1 0; +#X coords 0 -1 1 1 362 212 2 10 10; +#X restore 275 286 pd \$0-gui; +#X text 460 263 transformation parameters; +#N canvas 0 0 360 364 \$0-transformation-parameters 0; +#X obj 21 318 table \$0-scale-Z 6; +#X obj 21 298 table \$0-scale-Y 6; +#X obj 21 278 table \$0-scale-X 6; +#X obj 21 208 table \$0-translate-X 6; +#X obj 21 228 table \$0-translate-Y 6; +#X obj 21 248 table \$0-translate-Z 6; +#X obj 21 178 table \$0-rotate-Z 6; +#X obj 21 158 table \$0-rotate-Y 6; +#X obj 21 138 table \$0-rotate-X 6; +#X obj 21 68 table \$0-colour-R 6; +#X obj 21 88 table \$0-colour-G 6; +#X obj 21 108 table \$0-colour-B 6; +#X text 21 29 Tables to store transformation parameters.; +#X restore 418 506 pd \$0-transformation-parameters; +#X obj 14 191 alpha; +#X msg 37 164 auto \$1; +#X obj 38 139 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#N canvas 0 0 471 288 \$0-scene-transformation 0; +#X obj 20 20 inlet; +#X obj 20 42 t a b; +#X obj 20 149 rotateXYZ; +#X obj 50 67 f 0; +#X obj 88 67 + 1; +#X obj 62 98 / 1.618; +#X obj 82 122 / 1.618; +#X obj 20 217 scale 0.05; +#X obj 53 191 inlet; +#X obj 20 252 outlet; +#X text 152 215 Scale the whole scene.; +#X text 158 67 Rotate the whole scene continuously.; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 1 3 0; +#X connect 2 0 7 0; +#X connect 3 0 4 0; +#X connect 3 0 2 1; +#X connect 3 0 5 0; +#X connect 4 0 3 1; +#X connect 5 0 2 2; +#X connect 5 0 6 0; +#X connect 6 0 2 3; +#X connect 7 0 9 0; +#X connect 8 0 7 1; +#X restore 14 115 pd \$0-scene-transformation; +#X floatatom 158 69 5 0 0 2 scale - -; +#X obj 158 89 / 100; +#X obj 151 221 clip 0 6; +#X text 219 182 Subpatches are used to hide the implementation details +of each part of the patch. Further comments are inside.; +#X obj 275 260 bng 15 250 50 1 empty empty randomize 17 7 0 10 -262144 +-1 -1; +#X obj 14 404 nnrepeat 5; +#X text 220 77 Another new object is necessary for full effect: [nnrepeat] +which outputs the repeat count both before and after the repeated value +\, thus we can do and undo actions before and after \, such as colourizing +the geos according to the transformations. Allowing different parameters +for each transformation means we can create non-symmetric structures +with some sort of self-similarity.; +#X msg 48 13 create; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X connect 3 0 25 0; +#X connect 6 0 7 0; +#X connect 7 0 31 0; +#X connect 7 1 16 0; +#X connect 8 0 9 0; +#X connect 9 0 31 1; +#X connect 10 0 11 1; +#X connect 11 0 12 0; +#X connect 13 0 7 0; +#X connect 13 1 14 0; +#X connect 15 0 28 0; +#X connect 17 0 18 0; +#X connect 18 0 16 1; +#X connect 22 0 13 0; +#X connect 23 0 22 0; +#X connect 24 0 23 0; +#X connect 25 0 22 0; +#X connect 26 0 27 0; +#X connect 27 0 25 1; +#X connect 28 0 14 1; +#X connect 30 0 19 0; +#X connect 31 0 11 0; +#X connect 31 1 10 0; +#X connect 31 2 10 1; +#X connect 31 2 11 2; +#X connect 33 0 0 0; diff --git a/Gem/examples/13.recursion/README b/Gem/examples/13.recursion/README new file mode 100644 index 0000000..77fdbc9 --- /dev/null +++ b/Gem/examples/13.recursion/README @@ -0,0 +1,23 @@ +gem-recursion -- a tutorial on using recursion with Gem +Copyright (C) 2007 Claude Heiland-Allen + + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + +Requirements: +(*) pd-0.40-2 or greater +(*) Gem for pd +(*) Zexy for pd diff --git a/Gem/examples/13.recursion/nnrepeat-help.pd b/Gem/examples/13.recursion/nnrepeat-help.pd new file mode 100644 index 0000000..b23304e --- /dev/null +++ b/Gem/examples/13.recursion/nnrepeat-help.pd @@ -0,0 +1,28 @@ +#N canvas 0 0 506 325 10; +#X floatatom 87 195 5 0 0 0 - - -; +#X text 94 11 - repeat a message several times with counter; +#X obj 54 273 print repeat; +#X msg 22 110 bang; +#X msg 49 136 1 1 2 3 5 8 13 21 44 fibonacchi; +#X text 63 111 repeat bangs; +#X text 282 138 repeat a list; +#X msg 69 166 set 5; +#X text 117 167 repeat anything; +#X text 127 194 reset the number of repetitions; +#X text 100 220 creation argument initializes the number of repeats +; +#X obj 19 12 nnrepeat 1; +#X obj 22 219 nnrepeat 3; +#X obj 87 250 print n1; +#X obj 22 297 print n2; +#X text 19 44 Similar to [repeat] from Zexy but outputs the repetition +count from the right-hand outlet then outputs the repeated input from +the middle outlet \, then outputs the repetition count again from the +left-hand outlet.; +#X connect 0 0 12 1; +#X connect 3 0 12 0; +#X connect 4 0 12 0; +#X connect 7 0 12 0; +#X connect 12 0 14 0; +#X connect 12 1 2 0; +#X connect 12 2 13 0; diff --git a/Gem/examples/13.recursion/nnrepeat-test.pd b/Gem/examples/13.recursion/nnrepeat-test.pd new file mode 100644 index 0000000..91b5c94 --- /dev/null +++ b/Gem/examples/13.recursion/nnrepeat-test.pd @@ -0,0 +1,55 @@ +#N canvas 0 0 481 517 10; +#X obj 71 95 r \$0-recurse; +#X obj 71 380 s \$0-recurse; +#X obj 140 270 t b a b; +#X obj 224 290 v \$0-depth; +#X obj 224 310 - 1; +#X obj 224 330 max 0; +#X obj 162 350 spigot; +#X obj 224 350 v \$0-depth; +#X obj 185 160 t b f; +#X obj 185 183 v \$0-depth; +#X obj 185 208 pack f f; +#X obj 140 290 v \$0-depth; +#X obj 140 330 v \$0-depth; +#X obj 140 310 + 1; +#X obj 108 50 t a b; +#X msg 108 21 nrepeat test; +#X obj 285 108 v \$0-depth; +#X floatatom 262 77 5 0 0 2 max-depth - -; +#X floatatom 261 38 5 0 0 2 repetitions - -; +#X obj 246 108 f 3; +#X obj 185 235 print ->; +#X obj 98 160 t b f; +#X obj 98 183 v \$0-depth; +#X obj 98 208 pack f f; +#X obj 98 235 print <-; +#X obj 108 135 nnrepeat 2; +#X connect 0 0 25 0; +#X connect 2 0 11 0; +#X connect 2 1 6 0; +#X connect 2 2 3 0; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 6 1; +#X connect 5 0 7 0; +#X connect 6 0 1 0; +#X connect 8 0 9 0; +#X connect 8 1 10 1; +#X connect 9 0 10 0; +#X connect 10 0 20 0; +#X connect 11 0 13 0; +#X connect 13 0 12 0; +#X connect 14 0 25 0; +#X connect 14 1 19 0; +#X connect 15 0 14 0; +#X connect 17 0 19 1; +#X connect 18 0 25 1; +#X connect 19 0 16 0; +#X connect 21 0 22 0; +#X connect 21 1 23 1; +#X connect 22 0 23 0; +#X connect 23 0 24 0; +#X connect 25 0 21 0; +#X connect 25 1 2 0; +#X connect 25 2 8 0; diff --git a/Gem/examples/13.recursion/nnrepeat.pd b/Gem/examples/13.recursion/nnrepeat.pd new file mode 100644 index 0000000..9ac5f37 --- /dev/null +++ b/Gem/examples/13.recursion/nnrepeat.pd @@ -0,0 +1,27 @@ +#N canvas 0 0 400 328 10; +#X obj 61 94 nrepeat \$1; +#X obj 136 21 inlet; +#X text 178 21 count; +#X obj 27 20 inlet; +#X text 68 21 repeatee; +#X obj 88 175 stack; +#X obj 61 136 t b a; +#X obj 126 137 t f f; +#X obj 25 262 outlet; +#X text 75 263 count; +#X obj 132 263 outlet; +#X text 182 264 repeated; +#X obj 256 263 outlet; +#X text 311 265 count; +#X obj 132 209 print nnrepeat-internal-error; +#X text 23 295 nnrepeat.pd (GPL) ; +#X connect 0 0 6 0; +#X connect 0 1 7 0; +#X connect 1 0 0 1; +#X connect 3 0 0 0; +#X connect 5 0 8 0; +#X connect 5 1 14 0; +#X connect 6 0 5 0; +#X connect 6 1 10 0; +#X connect 7 0 12 0; +#X connect 7 1 5 1; diff --git a/Gem/examples/13.recursion/nrepeat-help.pd b/Gem/examples/13.recursion/nrepeat-help.pd new file mode 100644 index 0000000..41f21de --- /dev/null +++ b/Gem/examples/13.recursion/nrepeat-help.pd @@ -0,0 +1,25 @@ +#N canvas 0 0 506 325 10; +#X floatatom 80 196 5 0 0 0 - - -; +#X obj 19 12 nrepeat 1; +#X text 94 11 - repeat a message several times with counter; +#X text 19 44 Similar to [repeat] from Zexy but also outputs the repetition +count from the right-hand outlet before it outputs the repeated input +from the left-hand outlet.; +#X obj 22 219 nrepeat 3; +#X obj 22 273 print repeat; +#X obj 80 249 print n; +#X msg 22 110 bang; +#X msg 49 136 1 1 2 3 5 8 13 21 44 fibonacchi; +#X text 63 111 repeat bangs; +#X text 282 138 repeat a list; +#X msg 69 166 set 5; +#X text 117 167 repeat anything; +#X text 127 194 reset the number of repetitions; +#X text 100 220 creation argument initializes the number of repeats +; +#X connect 0 0 4 1; +#X connect 4 0 5 0; +#X connect 4 1 6 0; +#X connect 7 0 4 0; +#X connect 8 0 4 0; +#X connect 11 0 4 0; diff --git a/Gem/examples/13.recursion/nrepeat-test.pd b/Gem/examples/13.recursion/nrepeat-test.pd new file mode 100644 index 0000000..48348b3 --- /dev/null +++ b/Gem/examples/13.recursion/nrepeat-test.pd @@ -0,0 +1,46 @@ +#N canvas 0 0 481 517 10; +#X obj 71 95 r \$0-recurse; +#X obj 71 380 s \$0-recurse; +#X obj 108 260 t b a b; +#X obj 192 280 v \$0-depth; +#X obj 192 300 - 1; +#X obj 192 320 max 0; +#X obj 130 340 spigot; +#X obj 192 340 v \$0-depth; +#X obj 166 160 t b f; +#X obj 166 183 v \$0-depth; +#X obj 166 208 pack f f; +#X obj 165 239 print nrepeat; +#X obj 108 280 v \$0-depth; +#X obj 108 320 v \$0-depth; +#X obj 108 300 + 1; +#X obj 108 50 t a b; +#X msg 108 21 nrepeat test; +#X obj 285 108 v \$0-depth; +#X floatatom 262 77 5 0 0 2 max-depth - -; +#X floatatom 261 38 5 0 0 2 repetitions - -; +#X obj 246 108 f 3; +#X obj 108 135 nrepeat 2; +#X connect 0 0 21 0; +#X connect 2 0 12 0; +#X connect 2 1 6 0; +#X connect 2 2 3 0; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 6 1; +#X connect 5 0 7 0; +#X connect 6 0 1 0; +#X connect 8 0 9 0; +#X connect 8 1 10 1; +#X connect 9 0 10 0; +#X connect 10 0 11 0; +#X connect 12 0 14 0; +#X connect 14 0 13 0; +#X connect 15 0 21 0; +#X connect 15 1 20 0; +#X connect 16 0 15 0; +#X connect 18 0 20 1; +#X connect 19 0 21 1; +#X connect 20 0 17 0; +#X connect 21 0 2 0; +#X connect 21 1 8 0; diff --git a/Gem/examples/13.recursion/nrepeat.pd b/Gem/examples/13.recursion/nrepeat.pd new file mode 100644 index 0000000..2281300 --- /dev/null +++ b/Gem/examples/13.recursion/nrepeat.pd @@ -0,0 +1,49 @@ +#N canvas 0 0 413 451 10; +#X obj 78 26 inlet; +#X obj 78 60 t b a b; +#X obj 131 121 repeat \$1; +#X obj 189 24 inlet; +#X obj 92 239 stack; +#X msg 122 192 0; +#X msg 146 239 0; +#X obj 78 192 t b b; +#X obj 131 142 t a b; +#X obj 161 193 t b b; +#X msg 176 240 1; +#X obj 92 267 list prepend; +#X obj 92 295 route 0 1; +#X text 86 312 nop; +#X obj 121 321 t f f; +#X obj 236 195 + 1; +#X obj 121 361 outlet; +#X obj 10 205 outlet; +#X obj 187 298 print nrepeat-stack-underflow; +#X obj 187 328 print nrepeat-internal-error; +#X text 119 24 repeatee; +#X text 233 23 count; +#X text 8 225 repeated; +#X text 119 381 counter; +#X text 30 419 nrepeat.pd (GPL) ; +#X connect 0 0 1 0; +#X connect 1 0 7 0; +#X connect 1 1 2 0; +#X connect 1 2 5 0; +#X connect 2 0 8 0; +#X connect 3 0 2 1; +#X connect 4 0 11 0; +#X connect 4 1 18 0; +#X connect 5 0 4 1; +#X connect 6 0 11 1; +#X connect 7 0 4 0; +#X connect 7 1 6 0; +#X connect 8 0 17 0; +#X connect 8 1 9 0; +#X connect 9 0 4 0; +#X connect 9 1 10 0; +#X connect 10 0 11 1; +#X connect 11 0 12 0; +#X connect 12 1 14 0; +#X connect 12 2 19 0; +#X connect 14 0 16 0; +#X connect 14 1 15 0; +#X connect 15 0 4 1; diff --git a/Gem/examples/13.recursion/stack-help.pd b/Gem/examples/13.recursion/stack-help.pd new file mode 100644 index 0000000..025fa74 --- /dev/null +++ b/Gem/examples/13.recursion/stack-help.pd @@ -0,0 +1,20 @@ +#N canvas 0 0 411 333 10; +#X obj 43 199 stack; +#X obj 43 269 print popped; +#X obj 73 249 print empty; +#X msg 130 163 list foo 2 bar; +#X floatatom 73 108 5 0 0 1 float - -; +#X obj 43 79 bng 15 250 50 0 empty empty pop 17 7 0 10 -262144 -1 -1 +; +#X symbolatom 101 135 10 0 0 1 symbol - -; +#X text 241 164 mixture of stuff; +#X text 13 9 A stack is a "first in \, last out" structure.; +#X text 13 48 Right inlet stores atom(s).; +#X text 13 29 Left inlet unstores the most recently stored atom.; +#X text 11 301 stack-help.pd (GPL) ; +#X connect 0 0 1 0; +#X connect 0 1 2 0; +#X connect 3 0 0 1; +#X connect 4 0 0 1; +#X connect 5 0 0 0; +#X connect 6 0 0 1; diff --git a/Gem/examples/13.recursion/stack.pd b/Gem/examples/13.recursion/stack.pd new file mode 100644 index 0000000..ab47928 --- /dev/null +++ b/Gem/examples/13.recursion/stack.pd @@ -0,0 +1,38 @@ +#N canvas 0 0 351 366 10; +#X obj 25 19 inlet; +#X text 69 18 pop; +#X obj 166 18 inlet; +#X text 213 17 push; +#X obj 25 53 t b b; +#X obj 25 152 list prepend; +#X msg 88 127 0; +#X msg 121 127 1; +#X obj 25 183 route 0 1; +#X obj 25 251 list split 1; +#X obj 25 298 outlet; +#X obj 25 97 list; +#X text 79 298 popped; +#X obj 166 299 outlet; +#X text 220 298 empty; +#X obj 166 47 t b a b; +#X obj 109 217 list prepend; +#X obj 120 182 print stack-internal-error; +#X text 17 330 stack.pd (GPL) ; +#X connect 0 0 4 0; +#X connect 2 0 15 0; +#X connect 4 0 11 0; +#X connect 4 1 6 0; +#X connect 5 0 8 0; +#X connect 6 0 5 1; +#X connect 7 0 5 1; +#X connect 8 0 9 0; +#X connect 8 1 16 0; +#X connect 8 2 17 0; +#X connect 9 0 10 0; +#X connect 9 1 11 1; +#X connect 9 2 13 0; +#X connect 11 0 5 0; +#X connect 15 0 11 0; +#X connect 15 1 16 1; +#X connect 15 2 7 0; +#X connect 16 0 11 1; diff --git a/Gem/examples/13.recursion/xform-gui.pd b/Gem/examples/13.recursion/xform-gui.pd new file mode 100644 index 0000000..efe1e89 --- /dev/null +++ b/Gem/examples/13.recursion/xform-gui.pd @@ -0,0 +1,120 @@ +#N canvas 0 0 476 324 10; +#X obj 340 251 list prepend \$1; +#X obj 340 275 outlet; +#X floatatom 220 13 5 0 0 0 cR - -; +#X floatatom 220 29 5 0 0 0 cG - -; +#X floatatom 220 45 5 0 0 0 cB - -; +#X floatatom 220 66 5 0 0 0 rX - -; +#X floatatom 220 82 5 0 0 0 rY - -; +#X floatatom 220 98 5 0 0 0 rZ - -; +#X floatatom 220 119 5 0 0 0 tX - -; +#X floatatom 220 135 5 0 0 0 tY - -; +#X floatatom 220 151 5 0 0 0 tZ - -; +#X floatatom 220 172 5 0 0 0 sX - -; +#X floatatom 220 188 5 0 0 0 sY - -; +#X floatatom 220 204 5 0 0 0 sZ - -; +#X obj 282 173 / 100; +#X obj 282 193 / 100; +#X obj 282 213 / 100; +#X obj 282 111 / 10; +#X obj 282 131 / 10; +#X obj 282 151 / 10; +#X obj 341 5 list prepend cR; +#X obj 341 65 list prepend rX; +#X obj 341 85 list prepend rY; +#X obj 341 105 list prepend rZ; +#X obj 341 125 list prepend tX; +#X obj 341 145 list prepend tY; +#X obj 341 165 list prepend tZ; +#X obj 341 185 list prepend sX; +#X obj 341 205 list prepend sY; +#X obj 341 225 list prepend sZ; +#X obj 341 25 list prepend cG; +#X obj 341 45 list prepend cB; +#X obj 67 70 random 360; +#X obj 67 90 random 360; +#X obj 67 110 random 360; +#X obj 147 110 - 180; +#X obj 147 90 - 180; +#X obj 147 70 - 180; +#X obj 67 130 random 360; +#X obj 67 150 random 360; +#X obj 67 170 random 360; +#X obj 147 170 - 180; +#X obj 147 150 - 180; +#X obj 147 130 - 180; +#X obj 8 6 inlet; +#X obj 67 10 random 5; +#X obj 67 30 random 5; +#X obj 67 50 random 5; +#X obj 67 190 random 50; +#X obj 67 210 random 50; +#X obj 67 230 random 50; +#X obj 147 190 + 50; +#X obj 147 210 + 50; +#X obj 147 230 + 50; +#X connect 0 0 1 0; +#X connect 2 0 20 0; +#X connect 3 0 30 0; +#X connect 4 0 31 0; +#X connect 5 0 21 0; +#X connect 6 0 22 0; +#X connect 7 0 23 0; +#X connect 8 0 17 0; +#X connect 9 0 18 0; +#X connect 10 0 19 0; +#X connect 11 0 14 0; +#X connect 12 0 15 0; +#X connect 13 0 16 0; +#X connect 14 0 27 0; +#X connect 15 0 28 0; +#X connect 16 0 29 0; +#X connect 17 0 24 0; +#X connect 18 0 25 0; +#X connect 19 0 26 0; +#X connect 20 0 0 0; +#X connect 21 0 0 0; +#X connect 22 0 0 0; +#X connect 23 0 0 0; +#X connect 24 0 0 0; +#X connect 25 0 0 0; +#X connect 26 0 0 0; +#X connect 27 0 0 0; +#X connect 28 0 0 0; +#X connect 29 0 0 0; +#X connect 30 0 0 0; +#X connect 31 0 0 0; +#X connect 32 0 37 0; +#X connect 33 0 36 0; +#X connect 34 0 35 0; +#X connect 35 0 7 0; +#X connect 36 0 6 0; +#X connect 37 0 5 0; +#X connect 38 0 43 0; +#X connect 39 0 42 0; +#X connect 40 0 41 0; +#X connect 41 0 10 0; +#X connect 42 0 9 0; +#X connect 43 0 8 0; +#X connect 44 0 32 0; +#X connect 44 0 33 0; +#X connect 44 0 34 0; +#X connect 44 0 38 0; +#X connect 44 0 39 0; +#X connect 44 0 40 0; +#X connect 44 0 45 0; +#X connect 44 0 46 0; +#X connect 44 0 47 0; +#X connect 44 0 48 0; +#X connect 44 0 49 0; +#X connect 44 0 50 0; +#X connect 45 0 2 0; +#X connect 46 0 3 0; +#X connect 47 0 4 0; +#X connect 48 0 51 0; +#X connect 49 0 52 0; +#X connect 50 0 53 0; +#X connect 51 0 11 0; +#X connect 52 0 12 0; +#X connect 53 0 13 0; +#X coords 0 -1 1 1 60 210 2 200 10; diff --git a/Gem/examples/99.games/puzzle.pd b/Gem/examples/99.games/puzzle.pd new file mode 100644 index 0000000..d02322c --- /dev/null +++ b/Gem/examples/99.games/puzzle.pd @@ -0,0 +1,158 @@ +#N canvas 14 64 584 223 12; +#X obj 171 14 cnv 15 200 130 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 258 30 bng 30 250 50 0 up y up 8 -8 192 12 -261681 -1 -1; +#X obj 258 90 bng 30 250 50 0 down y down -5 38 192 12 -261681 -1 -1 +; +#X obj 288 60 bng 30 250 50 0 right y right 33 15 192 12 -261681 -1 +-1; +#X obj 228 60 bng 30 250 50 0 left y left -53 15 192 12 -261681 -1 +-1; +#N canvas 133 127 818 527 code 0; +#X obj 128 45 gemkeyname; +#X obj 128 77 select 1; +#X obj 128 104 symbol; +#X msg 128 131 \$1 0; +#X obj 411 229 r reset; +#X obj 411 255 t b b; +#X msg 505 229 bang; +#X obj 418 194 gemwin; +#X msg 415 132 create; +#X msg 422 157 destroy; +#X obj 501 147 tgl 30 0 empty empty empty 20 8 0 8 -262144 -1 -1 1 +1; +#X obj 342 79 del 100; +#X msg 342 130 1; +#X obj 342 17 r start; +#X msg 509 113 reset; +#X obj 584 204 gemmouse; +#X obj 617 239 s help; +#X obj 342 45 t b b b; +#X obj 342 103 t b b b; +#N canvas 81 93 600 400 original 0; +#X obj 86 109 gemhead; +#X obj 86 345 square 4; +#X obj 86 30 r help; +#X obj 86 73 != 0; +#X obj 173 45 loadbang; +#X msg 173 68 0; +#X obj 86 143 pix_image ../data/fractal.JPG; +#X obj 86 272 pix_texture; +#X connect 0 0 6 0; +#X connect 2 0 3 0; +#X connect 3 0 0 0; +#X connect 4 0 5 0; +#X connect 5 0 3 0; +#X connect 6 0 7 0; +#X connect 7 0 1 0; +#X restore 445 390 pd original image; +#N canvas 4 20 450 300 control 0; +#X obj 149 48 route Left Right Up Down; +#X msg 191 206 move \$1; +#X msg 191 138 5; +#X msg 149 138 4; +#X msg 231 138 6; +#X msg 192 111 8; +#X msg 193 165 2; +#X obj 48 98 r up; +#X obj 47 167 r down; +#X obj 0 129 r left; +#X obj 71 131 r right; +#X obj 194 256 outlet; +#X obj 146 18 inlet; +#X obj 295 109 inlet; +#X connect 0 0 3 0; +#X connect 0 1 4 0; +#X connect 0 2 5 0; +#X connect 0 3 6 0; +#X connect 1 0 11 0; +#X connect 2 0 1 0; +#X connect 3 0 1 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 1 0; +#X connect 7 0 5 0; +#X connect 8 0 6 0; +#X connect 9 0 3 0; +#X connect 10 0 4 0; +#X connect 12 0 0 0; +#X connect 13 0 2 0; +#X restore 128 276 pd control; +#N canvas 113 141 600 498 puzzled 0; +#X obj 120 110 gemhead; +#X obj 120 415 square 4; +#X floatatom 179 389 5 0 0 0 - - -; +#X obj 120 309 pix_puzzle 4 4; +#X msg 221 203 size 4 4; +#X obj 120 213 pix_image; +#X msg 153 175 open ../data/fractal.JPG; +#X obj 204 97 loadbang; +#X obj 204 125 t b b; +#X obj 221 48 t b a; +#X obj 341 56 t b b; +#X obj 117 40 r help; +#X obj 120 79 == 0; +#X obj 37 27 loadbang; +#X msg 38 52 0; +#X obj 120 342 pix_texture; +#X obj 343 27 inlet scramble!; +#X obj 222 18 inlet move!; +#X connect 0 0 5 0; +#X connect 2 0 1 1; +#X connect 3 0 15 0; +#X connect 4 0 3 0; +#X connect 5 0 3 0; +#X connect 6 0 5 0; +#X connect 7 0 8 0; +#X connect 8 0 4 0; +#X connect 8 1 6 0; +#X connect 9 0 6 0; +#X connect 9 1 3 0; +#X connect 10 0 6 0; +#X connect 10 1 3 0; +#X connect 11 0 12 0; +#X connect 12 0 0 0; +#X connect 13 0 14 0; +#X connect 14 0 12 0; +#X connect 15 0 1 0; +#X connect 16 0 10 0; +#X connect 17 0 9 0; +#X restore 128 390 pd puzzled image; +#X obj 213 249 loadbang; +#X text 116 439 we use [pix_puzzle] to scramble the image. this is +not very effective (as we could use openGL-texture coordinates too). +anyhow it is just simple; +#X connect 0 0 1 0; +#X connect 0 1 2 1; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 20 0; +#X connect 4 0 5 0; +#X connect 5 0 20 1; +#X connect 5 1 21 1; +#X connect 6 0 5 0; +#X connect 8 0 7 0; +#X connect 9 0 7 0; +#X connect 10 0 7 0; +#X connect 11 0 18 0; +#X connect 12 0 7 0; +#X connect 13 0 17 0; +#X connect 14 0 7 0; +#X connect 15 2 16 0; +#X connect 17 0 11 0; +#X connect 17 1 14 0; +#X connect 17 2 9 0; +#X connect 18 0 12 0; +#X connect 18 1 8 0; +#X connect 18 2 6 0; +#X connect 20 0 21 0; +#X connect 22 0 20 1; +#X restore 420 99 pd code; +#X obj 435 39 bng 50 250 50 0 reset empty RESET 0 -8 128 12 -258699 +-1 -1; +#X obj 50 38 bng 50 250 50 0 start empty start 0 -8 128 12 -24198 -1 +-1; +#X obj 257 60 tgl 30 0 help help ? 7 15 192 24 -262144 -258699 -1 0 +1; +#X text 61 168 on linux you can use the arrow-keys too...; +#X text 46 187 first mouse-button toggles between help/game; diff --git a/Gem/examples/Makefile.am b/Gem/examples/Makefile.am new file mode 100644 index 0000000..98e45ef --- /dev/null +++ b/Gem/examples/Makefile.am @@ -0,0 +1,241 @@ +AUTOMAKE_OPTIONS = foreign + +gemexamplesdir=$(pkglibdir)/examples + +nobase_dist_gemexamples_DATA = \ + 01.basic/01.redSquare.pd \ + 01.basic/02.blueRectangle.pd \ + 01.basic/03.disk.pd \ + 01.basic/04.PrimTri.pd \ + 01.basic/05.cube.pd \ + 01.basic/06.sphere.pd \ + 01.basic/07.cylinder.pd \ + 01.basic/08.model.pd \ + 01.basic/09.yelloTeapot.pd \ + 02.advanced/00.gemwin-subpatch.pd \ + 02.advanced/01.Separator.pd \ + 02.advanced/02.Ortho.pd \ + 02.advanced/03.View_OSD.pd \ + 02.advanced/03.View.pd \ + 02.advanced/04.Fog.pd \ + 02.advanced/05.Stereo.pd \ + 02.advanced/06.StereoParticle.pd \ + 02.advanced/07.Snapshot1.pd \ + 02.advanced/08.Snapshot2.pd \ + 02.advanced/09.SnapshotSave.pd \ + 02.advanced/10.LinearPath.pd \ + 02.advanced/11.SplinePath.pd \ + 02.advanced/12.Hsv.pd \ + 02.advanced/13.ModelRescale.pd \ + 02.advanced/14.RenderOrder.pd \ + 02.advanced/15.GemWin.pd \ + 02.advanced/16.vertex_program.pd \ + 02.advanced/17.fragment_program.pd \ + 02.advanced/18.gl_shading_language.pd \ + 02.advanced/19.pointer.pd \ + 02.advanced/20.double-gemhead_vs_repeat.pd \ + 02.advanced/21.basic_LSystem.pd \ + 02.advanced/22.double-iterative.pd \ + 03.lighting/01.world_light.pd \ + 03.lighting/02.light.pd \ + 03.lighting/03.controlLights.pd \ + 03.lighting/04.moveSpheres.pd \ + 03.lighting/05.materials.pd \ + 04.pix/01.image.pd \ + 04.pix/02.multiimage.pd \ + 04.pix/04.ImageInPlace.pd \ + 04.pix/05.film.pd \ + 04.pix/05.movie.pd \ + 04.pix/06.PixRect.pd \ + 04.pix/07.PixSet.pd \ + 04.pix/08.PixDump.pd \ + 04.pix/09.Histogram.pd \ + 04.pix/10.PixDataSimple.pd \ + 04.pix/11.PixDataComplex.pd \ + 04.pix/12.add.pd \ + 04.pix/12.blending.pd \ + 04.pix/12.composite.pd \ + 04.pix/12.pix_multiply.pd \ + 04.pix/13.maskDancer.pd \ + 04.pix/14.takeAlpha.pd \ + 04.pix/15.pix_alpha.pd \ + 04.pix/16.alphaGrey.pd \ + 04.pix/16.pix_2grey.pd \ + 04.pix/17.pix_gain.pd \ + 04.pix/18.Curves.pd \ + 04.pix/19.colorMatrix.pd \ + 04.pix/20.convolve.pd \ + 04.pix/22.biquad.pd \ + 04.pix/23.gravity.pd \ + 04.pix/24.time-filtering.pd \ + 04.pix/25.buffer.pd \ + 04.pix/26.framebuffer_readback.pd \ + 04.video/00.SimpleVideo.pd \ + 04.video/01.VideoPaint.pd \ + 04.video/02.VideoSphere.pd \ + 04.video/03.movement_detection.pd \ + 04.video/04.videoRTX.pd \ + 04.video/05.buffer_rtx.pd \ + 04.video/06.frame_diff_tracking.pd \ + 04.video/07.bg_subtract_tracking.pd \ + 04.video/08.color_classification.pd \ + 05.text/01.TextNoLoadBang.pd \ + 05.text/01.Text.pd \ + 05.text/03.ChangeTextNoLoadBang.pd \ + 05.text/03.ChangeText.pd \ + 05.text/vera.ttf \ + 06.particle/01.simple.pd \ + 06.particle/02.fountain.pd \ + 06.particle/03.orbit.pd \ + 06.particle/04.combo.pd \ + 06.particle/05.twoSrc.pd \ + 06.particle/06.target.pd \ + 06.particle/07.render.pd \ + 06.particle/08.info.pd \ + 06.particle/09.sink.pd \ + 07.texture/01.texture.pd \ + 07.texture/02.TexCoord.pd \ + 07.texture/04.moveImages.pd \ + 07.texture/05.newWave.pd \ + 07.texture/06.ripple.pd \ + 07.texture/07.feedback.pd \ + 07.texture/08.MotionBlur.pd \ + 07.texture/09.sharedTextures.pd \ + 07.texture/10.framebuffer.pd \ + 07.texture/11.multiples_gemhead_in_a_framebuffer.pd \ + 08.io/01.Mouse.pd \ + 08.io/02.Tablet.pd \ + 08.io/03.Orb.pd \ + 08.io/04.UseOrb.pd \ + 09.openGL/01.primQuad.pd \ + 09.openGL/02.displayList.pd \ + 09.openGL/03.stencilBuffer.pd \ + 09.openGL/04.clearZ.pd \ + 09.openGL/05.load_identity_matrix.pd \ + 10.glsl/01.simple_texture.pd \ + 10.glsl/02.primitive_distortion.pd \ + 10.glsl/03.texture_distortion.pd \ + 10.glsl/04.game_of_life.pd \ + 10.glsl/05.multitexture.pd \ + 10.glsl/05.multitexture_bis.pd \ + 10.glsl/06.rectangle_multitexture.pd \ + 10.glsl/07.framebuffer_and_shader.pd \ + 10.glsl/08.multi_pass_rendering.pd \ + 10.glsl/09.vertex_texture_fetching.pd \ + 10.glsl/10.GPGPU_Physical_model.pd \ + 10.glsl/11.geometry.pd \ + 10.glsl/12.tri2fan.pd \ + 10.glsl/13.panoramique.pd \ + 10.glsl/14.blur.pd \ + 10.glsl/15.bicubic_image_interpolation.pd \ + 10.glsl/bicubic_interpolation.frag \ + 10.glsl/bicubic_interpolation.vert \ + 10.glsl/blur.frag \ + 10.glsl/blur.vert \ + 10.glsl/cam1.jpg \ + 10.glsl/cam2.jpg \ + 10.glsl/cam3.jpg \ + 10.glsl/cam4.jpg \ + 10.glsl/fetching2.frag \ + 10.glsl/fetching2.vert \ + 10.glsl/fetching.frag \ + 10.glsl/fetching.vert \ + 10.glsl/game.frag \ + 10.glsl/game.vert \ + 10.glsl/geo.frag \ + 10.glsl/geo.geom \ + 10.glsl/geo.vert \ + 10.glsl/_glsl.pd \ + 10.glsl/GLSL_mix.frag \ + 10.glsl/GLSL_mix.vert \ + 10.glsl/img1.jpg \ + 10.glsl/img2.jpg \ + 10.glsl/img3.jpg \ + 10.glsl/interpol.frag \ + 10.glsl/link.frag \ + 10.glsl/link.vert \ + 10.glsl/mass.frag \ + 10.glsl/mass.vert \ + 10.glsl/multitexture.frag \ + 10.glsl/multitexture_rect.frag \ + 10.glsl/multitexture_rect.vert \ + 10.glsl/multitexture.vert \ + 10.glsl/normal.frag \ + 10.glsl/normal.vert \ + 10.glsl/panoramique.frag \ + 10.glsl/panoramique.vert \ + 10.glsl/P_distord.frag \ + 10.glsl/P_distord.vert \ + 10.glsl/single_blur.pd \ + 10.glsl/T_distord.frag \ + 10.glsl/T_distord.vert \ + 10.glsl/texture.frag \ + 10.glsl/texture_rect.frag \ + 10.glsl/texture.vert \ + 10.glsl/tri2fan.frag \ + 10.glsl/tri2fan.geom \ + 10.glsl/tri2fan.vert \ + 10.glsl/vague.frag \ + 10.glsl/wave.frag \ + 11.obj-exporter/obj_cube.pd \ + 11.obj-exporter/obj_exporter-help.pd \ + 11.obj-exporter/obj_exporter.pd \ + 11.obj-exporter/obj_primTri.pd \ + 11.obj-exporter/obj_rectangle.pd \ + 11.obj-exporter/obj_square.pd \ + 12.multi_screen_projection/01.flat_projection-help.pd \ + 12.multi_screen_projection/02.nfp-help.pd \ + 12.multi_screen_projection/config.txt \ + 12.multi_screen_projection/flat_projection.pd \ + 12.multi_screen_projection/grid.jpg \ + 12.multi_screen_projection/load_save.pd \ + 12.multi_screen_projection/nfp_22.frag \ + 12.multi_screen_projection/nfp_22.vert \ + 12.multi_screen_projection/nfp_33.frag \ + 12.multi_screen_projection/nfp_33.vert \ + 12.multi_screen_projection/nfp_curved_wall.pd \ + 12.multi_screen_projection/nfp_flat_wall.pd \ + 12.multi_screen_projection/saved.pd \ + 12.multi_screen_projection/save_system-help.pd \ + 12.multi_screen_projection/soft_edge.frag \ + 13.recursion/01.repetition_is_futile.pd \ + 13.recursion/02.iteration_is_insufficient.pd \ + 13.recursion/03.recursive_spiral.pd \ + 13.recursion/04.binary_tree.pd \ + 13.recursion/05.n-ary_tree.pd \ + 13.recursion/06.breaking_symmetry.pd \ + 13.recursion/nnrepeat-help.pd \ + 13.recursion/nnrepeat.pd \ + 13.recursion/nnrepeat-test.pd \ + 13.recursion/nrepeat-help.pd \ + 13.recursion/nrepeat.pd \ + 13.recursion/nrepeat-test.pd \ + 13.recursion/README \ + 13.recursion/stack-help.pd \ + 13.recursion/stack.pd \ + 13.recursion/xform-gui.pd \ + 99.games/puzzle.pd \ + data/64shade.tif \ + data/alea.mpg \ + data/anim-1.mov \ + data/blob0.tif \ + data/blob1.tif \ + data/blob2.tif \ + data/COPYING.txt \ + data/dancer.JPG \ + data/ducks.png \ + data/fractalAlpha.TIF \ + data/fractal.JPG \ + data/homer.avi \ + data/random.fp \ + data/temp0.JPG \ + data/temp1.JPG \ + data/temp2.JPG \ + data/Toon.frag \ + data/Toon.vert \ + data/toon.vp \ + data/valcolor.tab \ + data/valmotion.tab \ + data/venus.mtl \ + data/venus.obj \ + data/vera.ttf diff --git a/Gem/examples/data/64shade.tif b/Gem/examples/data/64shade.tif new file mode 100644 index 0000000..7091b2a Binary files /dev/null and b/Gem/examples/data/64shade.tif differ diff --git a/Gem/examples/data/COPYING.txt b/Gem/examples/data/COPYING.txt new file mode 100644 index 0000000..a80de72 --- /dev/null +++ b/Gem/examples/data/COPYING.txt @@ -0,0 +1,89 @@ +COPYRIGHT issues of the examples data files +=========================================== + +This data is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +-------------------------------------------- + +The contents of the examples/data folder provides data-files for +showcase use within the pd/Gem environment. + +I try to only include files that are free to use (as in Free Speech +and Free Beer). +However, for legacy reasons some of the files here may have non-free +clauses in their license agreements. +These files will be removed from this package as soon as their +problematic state is discovered. + +If you notice such a problematic case, please contact me +(zmoelnig[AT]iem[DOT]at) immediately, so i can remove it and replace it +by a free alternative. + + +=========================================== + + +vera.ttf +-------------------------------------------- + +Bitstream Vera Fonts Copyright + +The fonts have a generous copyright, allowing derivative works (as +long as "Bitstream" or "Vera" are not in the names), and full +redistribution (so long as they are not *sold* by themselves). They +can be be bundled, redistributed and sold with any software. + +The fonts are distributed under the following copyright: + +Copyright +========= + +Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream +Vera is a trademark of Bitstream, Inc. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the fonts accompanying this license ("Fonts") and associated +documentation files (the "Font Software"), to reproduce and distribute +the Font Software, including without limitation the rights to use, +copy, merge, publish, distribute, and/or sell copies of the Font +Software, and to permit persons to whom the Font Software is furnished +to do so, subject to the following conditions: + +The above copyright and trademark notices and this permission notice +shall be included in all copies of one or more of the Font Software +typefaces. + +The Font Software may be modified, altered, or added to, and in +particular the designs of glyphs or characters in the Fonts may be +modified and additional glyphs or characters may be added to the +Fonts, only if the fonts are renamed to names not containing either +the words "Bitstream" or the word "Vera". + +This License becomes null and void to the extent applicable to Fonts +or Font Software that has been modified and is distributed under the +"Bitstream Vera" names. + +The Font Software may be sold as part of a larger software package but +no copy of one or more of the Font Software typefaces may be sold by +itself. + +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL +BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, +OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT +SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. + +Except as contained in this notice, the names of Gnome, the Gnome +Foundation, and Bitstream Inc., shall not be used in advertising or +otherwise to promote the sale, use or other dealings in this Font +Software without prior written authorization from the Gnome Foundation +or Bitstream Inc., respectively. For further information, contact: +fonts at gnome dot org. + diff --git a/Gem/examples/data/Toon.frag b/Gem/examples/data/Toon.frag new file mode 100644 index 0000000..268bdab --- /dev/null +++ b/Gem/examples/data/Toon.frag @@ -0,0 +1,61 @@ +// +// Fragment shader for cartoon-style shading +// +// Author: Philip Rideout +// +// Copyright (c) 2005 3Dlabs Inc. Ltd. +// +/************************************************************************ +* * +* Copyright (C) 2002-2006 3Dlabs Inc. Ltd. * +* * +* All rights reserved. * +* * +* Redistribution and use in source and binary forms, with or without * +* modification, are permitted provided that the following conditions * +* are met: * +* * +* Redistributions of source code must retain the above copyright * +* notice, this list of conditions and the following disclaimer. * +* * +* Redistributions in binary form must reproduce the above * +* copyright notice, this list of conditions and the following * +* disclaimer in the documentation and/or other materials provided * +* with the distribution. * +* * +* Neither the name of 3Dlabs Inc. Ltd. nor the names of its * +* contributors may be used to endorse or promote products derived * +* from this software without specific prior written permission. * +* * +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * +* COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * +* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN * +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * +* POSSIBILITY OF SUCH DAMAGE. * +* * +************************************************************************/ + +const vec3 DiffuseColor= vec3( 0.1,0.1,0.1); +const vec3 PhongColor = vec3( 0.5,0.5,0.5); +const float Edge= 0.2; +uniform float Phong; +varying vec3 Normal; + +void main (void) +{ + vec3 color = DiffuseColor; + float f = dot(vec3(0,0,1),Normal); + if (abs(f) < Edge) + color = vec3(0); + if (f > Phong) + color = PhongColor; + + gl_FragColor = vec4(color, 1); +} diff --git a/Gem/examples/data/Toon.vert b/Gem/examples/data/Toon.vert new file mode 100644 index 0000000..2f7d51c --- /dev/null +++ b/Gem/examples/data/Toon.vert @@ -0,0 +1,54 @@ +// +// Vertex shader for cartoon-style shading +// +// Author: Philip Rideout +// +// Copyright (c) 2005 3Dlabs Inc. Ltd. +// +// +// +/************************************************************************ +* * +* Copyright (C) 2002-2006 3Dlabs Inc. Ltd. * +* * +* All rights reserved. * +* * +* Redistribution and use in source and binary forms, with or without * +* modification, are permitted provided that the following conditions * +* are met: * +* * +* Redistributions of source code must retain the above copyright * +* notice, this list of conditions and the following disclaimer. * +* * +* Redistributions in binary form must reproduce the above * +* copyright notice, this list of conditions and the following * +* disclaimer in the documentation and/or other materials provided * +* with the distribution. * +* * +* Neither the name of 3Dlabs Inc. Ltd. nor the names of its * +* contributors may be used to endorse or promote products derived * +* from this software without specific prior written permission. * +* * +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * +* COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * +* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN * +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * +* POSSIBILITY OF SUCH DAMAGE. * +* * +************************************************************************/ + + +varying vec3 Normal; + +void main(void) +{ + Normal = normalize(gl_NormalMatrix * gl_Normal); + gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; +} diff --git a/Gem/examples/data/alea.mpg b/Gem/examples/data/alea.mpg new file mode 100644 index 0000000..adeb521 Binary files /dev/null and b/Gem/examples/data/alea.mpg differ diff --git a/Gem/examples/data/anim-1.mov b/Gem/examples/data/anim-1.mov new file mode 100644 index 0000000..40ebf9d Binary files /dev/null and b/Gem/examples/data/anim-1.mov differ diff --git a/Gem/examples/data/bitmap_font_6x8.bmp b/Gem/examples/data/bitmap_font_6x8.bmp new file mode 100644 index 0000000..3a9fc0b Binary files /dev/null and b/Gem/examples/data/bitmap_font_6x8.bmp differ diff --git a/Gem/examples/data/blob0.tif b/Gem/examples/data/blob0.tif new file mode 100644 index 0000000..f595a3c Binary files /dev/null and b/Gem/examples/data/blob0.tif differ diff --git a/Gem/examples/data/blob1.tif b/Gem/examples/data/blob1.tif new file mode 100644 index 0000000..4f27652 Binary files /dev/null and b/Gem/examples/data/blob1.tif differ diff --git a/Gem/examples/data/blob2.tif b/Gem/examples/data/blob2.tif new file mode 100644 index 0000000..57debc5 Binary files /dev/null and b/Gem/examples/data/blob2.tif differ diff --git a/Gem/examples/data/dancer.JPG b/Gem/examples/data/dancer.JPG new file mode 100644 index 0000000..ba50f1a Binary files /dev/null and b/Gem/examples/data/dancer.JPG differ diff --git a/Gem/examples/data/ducks.png b/Gem/examples/data/ducks.png new file mode 100644 index 0000000..1491078 Binary files /dev/null and b/Gem/examples/data/ducks.png differ diff --git a/Gem/examples/data/fractal.JPG b/Gem/examples/data/fractal.JPG new file mode 100644 index 0000000..330b82c Binary files /dev/null and b/Gem/examples/data/fractal.JPG differ diff --git a/Gem/examples/data/fractalAlpha.TIF b/Gem/examples/data/fractalAlpha.TIF new file mode 100644 index 0000000..754ccdf Binary files /dev/null and b/Gem/examples/data/fractalAlpha.TIF differ diff --git a/Gem/examples/data/homer.avi b/Gem/examples/data/homer.avi new file mode 100644 index 0000000..f27ec00 Binary files /dev/null and b/Gem/examples/data/homer.avi differ diff --git a/Gem/examples/data/random.fp b/Gem/examples/data/random.fp new file mode 100644 index 0000000..651fdeb --- /dev/null +++ b/Gem/examples/data/random.fp @@ -0,0 +1,111 @@ +!!ARBfp1.0 +# Based on an algorithm described by Francois Grieu, sci.crypt, 5th February 2004 +#ATTRIB tex0 = fragment.texcoord[0]; +ATTRIB tex0 = fragment.position; +ATTRIB col = fragment.color; + +#PARAM bounds = program.local[1]; +#PARAM seed = program.local[2]; +PARAM bounds = 10.0; +PARAM seed = 1234; +PARAM coordsOffset = { -100, 100, 0, 0 }; +PARAM cMult = 0.0001002707309736288; +PARAM aSubtract = 0.2727272727272727; +PARAM coordMult0 = { 0.67676, 0.000058758, 0, 0 }; +PARAM coordMult1 = { 0.0000696596, 0.797976, 0, 0 }; +PARAM coordMult2 = { 0.587976, 0.0000233443, 0, 0 }; + +TEMP tableCoord, a, b, c, floorA, seedCoords, res; + +ADD seedCoords, tex0, coordsOffset; + +# gFastRngA = (((currentX*multX)/(currentY*multY))+ +MUL tableCoord, seedCoords, coordMult0; +RCP tableCoord.y, tableCoord.y; +MUL a.x, tableCoord.x, tableCoord.y; + +# (((height-currentY)*multX2)/((width-currentX)*multY2))+ +SUB tableCoord, bounds, seedCoords; +MUL tableCoord, tableCoord, coordMult1; +RCP tableCoord.x, tableCoord.x; +MAD a.x, tableCoord.x, tableCoord.y, a.x; + +# (((height-currentX)*multX3)/((width-currentY)*multY3))); +SUB tableCoord.x, bounds.y, seedCoords.x; +SUB tableCoord.y, bounds.x, seedCoords.y; +MUL tableCoord, tableCoord, coordMult2; +RCP tableCoord.y, tableCoord.y; +MAD a.x, tableCoord.x, tableCoord.y, a.x; + +# gFastRngA = fmod(gFastRngA,1); +FRC a.x, a.x; +ADD a.x, a.x, seed; + +MOV c.x, 0; +MOV b.x, 0; + +# (gFastRngA += gFastRngC*(1./9973)+(3./11)-floor(gFastRngA)) +FRC floorA.x, a.x; +SUB floorA.x, a.x, floorA.x; +SUB floorA.x, aSubtract.x, floorA.x; +ADD floorA.x, floorA.x, a.x; +MAD a.x, c.x, cMult.x, floorA.x; + +# (gFastRngB += (gFastRngA *= gFastRngA)) +MUL a.x, a.x, a.x; +ADD b.x, b.x, a.x; + +# (gFastRngC += (gFastRngB -= floor(gFastRngB))) +FRC b.x, b.x; +ADD c.x, c.x, b.x; + +# (gFastRngC -= floor(gFastRngC)) +FRC c.x, c.x; + +# (gFastRngA += gFastRngC*(1./9973)+(3./11)-floor(gFastRngA)) +FRC floorA.x, a.x; +SUB floorA.x, a.x, floorA.x; +SUB floorA.x, aSubtract.x, floorA.x; +ADD floorA.x, floorA.x, a.x; +MAD a.x, c.x, cMult.x, floorA.x; + +# (gFastRngB += (gFastRngA *= gFastRngA)) +MUL a.x, a.x, a.x; +ADD b.x, b.x, a.x; + +# (gFastRngC += (gFastRngB -= floor(gFastRngB))) +FRC b.x, b.x; +ADD c.x, c.x, b.x; + +# (gFastRngC -= floor(gFastRngC)) +FRC c.x, c.x; + +# (gFastRngA += gFastRngC*(1./9973)+(3./11)-floor(gFastRngA)) +FRC floorA.x, a.x; +SUB floorA.x, a.x, floorA.x; +SUB floorA.x, aSubtract.x, floorA.x; +ADD floorA.x, floorA.x, a.x; +MAD a.x, c.x, cMult.x, floorA.x; + +# (gFastRngB += (gFastRngA *= gFastRngA)) +MUL a.x, a.x, a.x; +ADD b.x, b.x, a.x; + +# (gFastRngC += (gFastRngB -= floor(gFastRngB))) +FRC b.x, b.x; +ADD c.x, c.x, b.x; + +# (gFastRngC -= floor(gFastRngC)) +FRC c.x, c.x; + + +MOV res, c.x; +MOV res.a, 1; + +MUL res, res, -0.5; + +ADD res, res, col; + +MOV result.color, res; + +END diff --git a/Gem/examples/data/temp0.JPG b/Gem/examples/data/temp0.JPG new file mode 100644 index 0000000..ba50f1a Binary files /dev/null and b/Gem/examples/data/temp0.JPG differ diff --git a/Gem/examples/data/temp1.JPG b/Gem/examples/data/temp1.JPG new file mode 100644 index 0000000..330b82c Binary files /dev/null and b/Gem/examples/data/temp1.JPG differ diff --git a/Gem/examples/data/temp2.JPG b/Gem/examples/data/temp2.JPG new file mode 100644 index 0000000..0152c1b Binary files /dev/null and b/Gem/examples/data/temp2.JPG differ diff --git a/Gem/examples/data/toon.vp b/Gem/examples/data/toon.vp new file mode 100644 index 0000000..621670b --- /dev/null +++ b/Gem/examples/data/toon.vp @@ -0,0 +1,36 @@ +!!ARBvp1.0 + +# Toon Shader by James A. McCombe, Tue Jun 17 2003 +# +# Implements a very crude toon shader. Basically, a simple dot product between a +# light direction vector and the vertex normal is performed. The output of this is +# used to set the texture coordinates to lookup inside a special texture which +# effectively quantises the light intensity into 3 bands. +# +# Parameters: +# program.env[0] - Light direction vector + +ATTRIB vPosition = vertex.position; +ATTRIB vNormal = vertex.normal; + +PARAM lightDirection = program.env[0]; + +TEMP t0, transVertex; + +DP4 result.position.x, state.matrix.mvp.row[0], vPosition; +DP4 result.position.y, state.matrix.mvp.row[1], vPosition; +DP4 result.position.z, state.matrix.mvp.row[2], vPosition; +DP4 result.position.w, state.matrix.mvp.row[3], vPosition; + +DP3 t0.x, state.matrix.modelview[0].invtrans.row[0], vNormal; +DP3 t0.z, state.matrix.modelview[0].invtrans.row[1], vNormal; +DP3 t0.y, state.matrix.modelview[0].invtrans.row[2], vNormal; + +# Dot product of normal and light vector to do tone lookup +DP3 t0, t0, lightDirection; +SWZ result.texcoord[0], t0, x,1,1,1; + +# Write the primary vertex color +MOV result.color, vertex.color; + +END diff --git a/Gem/examples/data/valcolor.tab b/Gem/examples/data/valcolor.tab new file mode 100644 index 0000000..43a8523 --- /dev/null +++ b/Gem/examples/data/valcolor.tab @@ -0,0 +1,6 @@ +0. 0. 0. +1. 1. 1. +.5 .0 1. +0. 1. 0. +1. 1. 1. +0. 0. 0. diff --git a/Gem/examples/data/valmotion.tab b/Gem/examples/data/valmotion.tab new file mode 100644 index 0000000..1a3f2ac --- /dev/null +++ b/Gem/examples/data/valmotion.tab @@ -0,0 +1,8 @@ +0. 0. 0. +0. 0. 0. +2. 2. -2. +-3. -1. .5 +-2. 4. -1. +.5 -.5 0. +0. 0. 0. +0. 0. 0. diff --git a/Gem/examples/data/venus.mtl b/Gem/examples/data/venus.mtl new file mode 100644 index 0000000..dc43199 --- /dev/null +++ b/Gem/examples/data/venus.mtl @@ -0,0 +1,9 @@ +# +# venus.mtl +# + +newmtl vskin +Ka 0.6 0.6 0.45 +Kd 0.6 0.6 0.45 +Ks 0.2 0.1 0.1 +Ns 5.0 diff --git a/Gem/examples/data/venus.obj b/Gem/examples/data/venus.obj new file mode 100644 index 0000000..1dc1749 --- /dev/null +++ b/Gem/examples/data/venus.obj @@ -0,0 +1,2147 @@ +# Tue Oct 22 14:45:37 1991 +# +# + +mtllib venus.mtl + +g default +v -27.430000 147.320007 -3.300000 +v -30.480000 135.380005 -9.400000 +v -21.590000 150.619995 -15.490000 +v -26.670000 129.789993 3.300000 +v -24.129999 142.490005 13.460000 +v -15.240000 124.459999 12.450000 +v -13.970000 135.889999 19.049999 +v -18.799999 114.050003 6.350000 +v -31.500000 120.400002 -1.520000 +v -35.810001 128.020004 -13.720000 +v -27.180000 138.429993 -22.610001 +v -35.310001 130.809998 -28.959999 +v -23.879999 140.460007 -27.690001 +v -16.510000 142.240005 -28.450001 +v -13.720000 151.380005 -18.030001 +v -19.049999 134.869995 -38.860001 +v -30.990000 132.330002 -36.830002 +v -8.130000 143.000000 -26.670000 +v -4.320000 138.940002 -31.750000 +v -9.650000 150.110001 -18.799999 +v -40.889999 126.489998 -32.509998 +v -5.840000 149.610001 -15.490000 +v -0.760000 140.210007 -18.799999 +v 0.760000 138.429993 -5.590000 +v 0.250000 145.289993 -3.810000 +v 4.570000 130.050003 -7.870000 +v 0.000000 132.080002 4.830000 +v -0.510000 139.190002 8.890000 +v 2.030000 137.919998 -24.129999 +v 2.790000 135.639999 -34.040001 +v 8.640000 133.600006 -21.080000 +v 0.250000 134.369995 -39.119999 +v -6.100000 142.750000 2.540000 +v -12.190000 145.800003 -7.370000 +v -6.100000 138.940002 11.680000 +v -14.990000 143.759995 4.060000 +v -12.950000 138.679993 16.260000 +v -25.910000 147.830002 -1.020000 +v -21.590000 148.839996 -5.840000 +v -41.150002 125.980003 -25.150000 +v 9.910000 131.830002 -39.619999 +v -20.570000 129.289993 -45.209999 +v -9.910000 124.709999 -48.509998 +v 3.050000 129.289993 -45.209999 +v 18.030001 127.250000 -43.430000 +v 31.500000 124.970001 -35.560001 +v 29.209999 127.000000 -26.420000 +v 10.670000 133.860001 -30.230000 +v 41.660000 121.669998 -27.690001 +v 38.610001 123.699997 -20.070000 +v 26.420000 125.480003 -17.020000 +v 24.889999 120.139999 -9.140000 +v 35.810001 121.160004 -10.920000 +v 0.760000 121.410004 1.270000 +v -6.350000 116.330002 5.080000 +v -6.350000 126.489998 10.410000 +v -7.370000 135.380005 15.490000 +v 38.099998 114.809998 -4.830000 +v 24.889999 110.489998 -1.780000 +v 10.670000 109.220001 4.830000 +v 8.890000 100.330002 9.400000 +v -5.840000 99.059998 11.680000 +v -13.720000 105.160004 9.650000 +v -32.770000 107.190002 5.590000 +v -24.639999 103.629997 9.400000 +v -22.350000 93.980003 13.460000 +v -34.290001 98.040001 9.650000 +v -44.959999 105.160004 1.020000 +v -51.820000 111.760002 -9.140000 +v -52.070000 114.550003 -17.270000 +v -60.709999 108.709999 -16.000000 +v -51.560001 116.589996 -26.160000 +v -58.419998 111.250000 -27.180000 +v -50.040001 118.110001 -34.290001 +v -46.480000 118.110001 -43.689999 +v -55.880001 112.519997 -36.070000 +v -34.799999 117.860001 -52.320000 +v -59.180000 98.550003 0.510000 +v -63.750000 103.120003 -5.840000 +v -53.340000 91.190002 5.840000 +v -47.240002 92.459999 7.620000 +v -41.400002 92.959999 9.910000 +v -36.580002 88.650002 12.950000 +v -46.740002 87.629997 9.140000 +v -30.990000 81.029999 16.000000 +v -19.559999 80.769997 17.530001 +v -4.830000 85.849998 16.000000 +v 6.860000 90.169998 13.970000 +v 18.290001 88.900002 12.190000 +v 19.559999 100.839996 6.350000 +v 28.190001 96.010002 5.840000 +v 33.020000 103.889999 0.760000 +v 44.700001 106.169998 -4.570000 +v 37.080002 98.040001 0.510000 +v 49.279999 97.790001 -6.100000 +v 51.820000 106.930000 -14.730000 +v 46.230000 116.589996 -13.460000 +v 41.150002 120.400002 -12.700000 +v 46.480000 118.360001 -18.799999 +v 51.049999 110.739998 -21.590000 +v 43.939999 116.330002 -34.290001 +v 34.799999 118.870003 -42.419998 +v 26.670000 118.620003 -48.259998 +v 9.140000 116.839996 -55.880001 +v 1.270000 117.599998 -55.119999 +v -4.320000 118.620003 -52.830002 +v -24.379999 119.889999 -51.560001 +v -9.650000 109.980003 -54.860001 +v -7.110000 109.220001 -55.880001 +v -12.950000 109.220001 -55.119999 +v -29.209999 106.169998 -58.930000 +v -24.639999 106.930000 -58.169998 +v -38.349998 104.389999 -56.389999 +v -48.259998 99.820000 -51.049999 +v -56.389999 101.089996 -44.200001 +v -60.450001 106.680000 -36.580002 +v -63.500000 99.059998 -36.070000 +v -64.769997 103.889999 -26.670000 +v -67.559998 101.089996 -14.730000 +v -68.830002 92.459999 -23.370001 +v -72.139999 88.139999 -10.160000 +v 1.780000 109.730003 -59.180000 +v 7.110000 109.220001 -59.939999 +v 18.290001 106.430000 -57.400002 +v 30.230000 104.900002 -52.070000 +v 37.590000 103.120003 -46.230000 +v 44.959999 102.110001 -42.419998 +v 51.049999 93.470001 -38.860001 +v 55.880001 98.040001 -24.889999 +v 56.639999 96.519997 -18.799999 +v 56.130001 94.739998 -14.730000 +v 53.340000 91.949997 -10.160000 +v -66.550003 93.980003 -0.760000 +v -59.180000 86.610001 5.330000 +v -54.099998 79.760002 4.830000 +v -49.529999 80.260002 4.570000 +v -45.470001 79.760002 9.140000 +v -41.910000 84.839996 11.940000 +v 5.080000 80.260002 16.000000 +v 29.209999 88.650002 7.620000 +v 44.200001 92.959999 -4.060000 +v 36.580002 92.459999 -0.510000 +v -61.470001 80.260002 4.830000 +v -67.559998 76.449997 1.780000 +v -71.370003 77.220001 -2.030000 +v -71.879997 72.900002 -14.480000 +v -71.120003 82.040001 -19.299999 +v -66.800003 83.309998 -30.730000 +v -61.470001 92.459999 -39.619999 +v -59.689999 87.879997 -39.880001 +v -53.849998 87.879997 -45.470001 +v -47.500000 86.610001 -52.070000 +v -63.500000 79.500000 -33.529999 +v -63.250000 69.089996 -2.030000 +v -63.250000 74.419998 4.320000 +v -57.660000 70.870003 5.590000 +v -58.930000 67.059998 1.780000 +v -55.880001 75.440002 5.590000 +v -45.209999 70.099998 4.060000 +v -51.049999 68.070000 4.830000 +v -52.320000 66.800003 5.080000 +v -54.860001 61.720001 -1.520000 +v -56.130001 60.709999 -12.950000 +v -49.779999 60.450001 0.510000 +v -53.849998 57.150002 -7.870000 +v -49.020000 54.360001 -6.100000 +v -42.669998 54.099998 -4.570000 +v -45.209999 62.990002 2.540000 +v -39.619999 76.709999 12.700000 +v -32.000000 72.900002 20.320000 +v -38.099998 69.849998 17.270000 +v -40.889999 65.790001 13.970000 +v -41.400002 61.980000 12.700000 +v -41.400002 54.860001 3.810000 +v -24.129999 73.150002 21.340000 +v -18.799999 73.150002 20.830000 +v -10.410000 75.949997 18.030001 +v -3.300000 77.980003 16.260000 +v 11.430000 77.470001 17.780001 +v 17.530001 77.720001 18.799999 +v 22.860001 83.059998 15.750000 +v 28.959999 84.839996 11.180000 +v 34.040001 85.339996 2.540000 +v 34.799999 85.849998 -4.830000 +v 44.700001 84.330002 -7.110000 +v 50.549999 76.199997 -10.920000 +v 56.900002 81.279999 -15.750000 +v 58.669998 85.599998 -22.860001 +v 35.810001 75.180000 -8.890000 +v 32.770000 82.040001 8.130000 +v 32.259998 79.500000 12.700000 +v 29.459999 80.010002 15.240000 +v 24.889999 76.449997 19.049999 +v 16.000000 72.900002 19.299999 +v 8.130000 72.139999 17.530001 +v 1.270000 67.309998 15.750000 +v -4.060000 66.550003 15.750000 +v -14.480000 63.750000 22.100000 +v -17.020000 68.580002 22.860001 +v -21.840000 66.550003 24.129999 +v -21.080000 57.910000 23.879999 +v -29.209999 59.689999 24.639999 +v -29.459999 65.790001 24.379999 +v -34.040001 67.059998 22.860001 +v -36.320000 65.790001 21.340000 +v -37.590000 64.010002 20.570000 +v -37.590000 61.720001 20.320000 +v -39.880001 56.639999 12.950000 +v -37.080002 59.439999 20.070000 +v -32.000000 53.849998 19.809999 +v -33.270000 57.910000 22.610001 +v -27.180000 55.119999 22.610001 +v -35.310001 49.529999 10.410000 +v -35.810001 46.480000 1.780000 +v -42.930000 51.560001 -16.260000 +v -29.459999 48.770000 16.000000 +v -17.270000 52.320000 19.049999 +v -12.450000 58.169998 19.299999 +v -4.830000 57.150002 13.210000 +v -0.250000 53.849998 11.430000 +v -34.540001 61.980000 23.879999 +v 2.790000 58.419998 12.950000 +v 9.910000 64.519997 16.510000 +v 17.270000 68.580002 19.049999 +v 24.129999 73.910004 20.070000 +v 29.719999 76.449997 17.780001 +v 32.770000 73.910004 13.970000 +v 30.230000 71.879997 16.260000 +v 26.160000 72.389999 19.049999 +v 34.799999 78.230003 6.600000 +v 34.540001 71.879997 8.380000 +v 36.070000 73.410004 1.020000 +v 35.049999 74.169998 -4.570000 +v 57.400002 89.150002 -28.450001 +v 57.150002 85.599998 -28.959999 +v 49.020000 74.169998 -23.620001 +v 43.180000 74.169998 -33.529999 +v 52.320000 86.360001 -37.590000 +v 44.450001 84.839996 -42.930000 +v 43.430000 94.739998 -43.430000 +v -8.130000 52.070000 12.700000 +v -48.509998 53.849998 -14.730000 +v -48.770000 58.419998 -21.590000 +v -56.389999 64.769997 -28.190001 +v -47.750000 67.559998 -43.939999 +v -54.099998 79.760002 -37.080002 +v -45.470001 60.959999 -25.400000 +v -60.709999 67.820000 -28.959999 +v -64.769997 69.339996 -26.670000 +v -67.820000 74.169998 -26.920000 +v -59.939999 78.989998 -35.049999 +v -56.130001 72.900002 -32.509998 +v -49.779999 79.250000 -47.240002 +v -37.340000 95.000000 -58.930000 +v -41.150002 79.500000 -56.389999 +v -32.259998 92.199997 -60.959999 +v -24.379999 92.459999 -60.959999 +v -11.430000 94.489998 -58.930000 +v -6.600000 96.010002 -59.180000 +v 2.540000 100.080002 -61.720001 +v 5.590000 100.580002 -61.720001 +v 15.750000 99.059998 -59.939999 +v -36.830002 68.070000 -57.150002 +v -28.190001 72.900002 -61.720001 +v -19.299999 81.529999 -61.720001 +v -9.910000 84.330002 -60.709999 +v -4.570000 84.580002 -61.470001 +v 5.590000 87.379997 -63.250000 +v 13.970000 85.089996 -62.740002 +v 11.430000 69.339996 -62.740002 +v 3.300000 71.629997 -64.010002 +v -3.300000 70.870003 -62.740002 +v -7.370000 70.099998 -62.230000 +v -16.000000 64.769997 -63.750000 +v -25.150000 60.959999 -63.250000 +v -33.529999 57.660000 -59.439999 +v -42.930000 62.230000 -44.450001 +v -38.610001 41.910000 -5.840000 +v -36.070000 34.040001 -7.870000 +v -40.389999 49.020000 -23.110001 +v -34.290001 25.400000 -11.430000 +v -37.340000 31.240000 -28.190001 +v -35.560001 40.130001 -43.180000 +v -34.799999 52.320000 -53.590000 +v -29.209999 43.939999 -57.660000 +v -22.100000 46.990002 -63.250000 +v -15.490000 49.279999 -62.990002 +v -6.600000 52.580002 -63.500000 +v -2.790000 51.820000 -64.260002 +v 4.060000 51.820000 -65.279999 +v 10.160000 48.509998 -64.010002 +v 3.050000 30.730000 -61.209999 +v 8.640000 26.420000 -60.200001 +v -0.760000 31.500000 -59.439999 +v -6.100000 31.240000 -60.200001 +v -13.720000 28.700001 -59.180000 +v -19.299999 27.180000 -60.959999 +v -28.190001 22.860001 -53.340000 +v -33.270000 21.590000 -44.450001 +v 2.290000 6.860000 -53.849998 +v -2.290000 12.950000 -53.090000 +v -11.940000 12.950000 -55.880001 +v -22.350000 14.220000 -57.150002 +v 37.340000 96.519997 -43.939999 +v 36.070000 90.419998 -42.160000 +v 35.810001 80.769997 -40.130001 +v 40.130001 80.010002 -41.660000 +v 34.290001 73.150002 -37.849998 +v 35.810001 64.519997 -27.940001 +v 31.240000 82.300003 -51.310001 +v 29.209999 64.519997 -50.799999 +v 33.270000 92.709999 -48.770000 +v 27.430000 96.010002 -55.369999 +v 24.379999 82.550003 -59.689999 +v 20.830000 66.800003 -58.930000 +v 19.299999 52.830002 -60.959999 +v 28.959999 52.580002 -51.049999 +v 28.959999 46.230000 -49.779999 +v 18.290001 44.450001 -60.200001 +v 36.830002 53.849998 -29.719999 +v 37.849998 53.340000 -23.620001 +v 36.830002 65.279999 -13.720000 +v 38.099998 52.830002 -16.260000 +v 36.830002 41.400002 -30.230000 +v 37.849998 39.369999 -20.570000 +v 47.500000 72.139999 -16.510000 +v 36.070000 69.339996 -10.410000 +v 35.310001 67.309998 -4.570000 +v 32.770000 63.500000 5.590000 +v 29.719999 67.059998 13.460000 +v 21.340000 65.019997 17.530001 +v 17.780001 57.910000 13.210000 +v 6.860000 54.610001 11.430000 +v 28.190001 59.939999 8.130000 +v 33.020000 58.930000 -1.780000 +v 29.719999 55.880001 1.270000 +v 23.620001 53.340000 6.350000 +v 16.510000 52.320000 9.140000 +v -11.940000 48.009998 12.700000 +v -18.799999 44.200001 11.430000 +v 36.580002 51.560001 -10.160000 +v 31.240000 48.259998 -2.290000 +v 24.379999 42.669998 3.560000 +v 19.049999 34.290001 6.350000 +v 14.220000 33.020000 8.890000 +v 2.030000 40.389999 10.920000 +v -10.160000 34.540001 11.430000 +v 3.300000 29.719999 8.380000 +v -10.920000 25.650000 9.140000 +v -2.290000 20.570000 5.330000 +v 11.180000 20.570000 5.330000 +v -9.650000 18.799999 5.080000 +v 18.030001 21.080000 2.030000 +v 25.400000 27.430000 -1.520000 +v 26.920000 35.310001 0.000000 +v 31.750000 36.070000 -4.830000 +v 36.580002 38.349998 -13.460000 +v -25.400000 43.430000 9.400000 +v -17.530001 30.230000 8.640000 +v -23.110001 35.810001 7.110000 +v -18.799999 17.270000 1.520000 +v -24.639999 28.959999 3.810000 +v -29.459999 21.080000 -4.570000 +v -31.750000 29.969999 -2.030000 +v -31.500000 37.849998 1.270000 +v 18.540001 15.490000 1.020000 +v 24.889999 17.270000 -5.080000 +v 33.020000 23.370001 -13.210000 +v 36.070000 27.940001 -18.540001 +v -2.790000 14.220000 5.080000 +v 11.430000 11.180000 3.560000 +v 6.100000 12.450000 4.320000 +v 34.540001 17.270000 -20.070000 +v 34.540001 22.100000 -30.990000 +v 36.070000 32.770000 -30.990000 +v 28.450001 33.020000 -47.750000 +v -9.400000 13.970000 5.080000 +v 33.529999 1.270000 -11.680000 +v 39.369999 -1.520000 -19.049999 +v 24.379999 8.890000 -6.350000 +v 19.049999 6.860000 -1.020000 +v 13.210000 5.840000 2.790000 +v 7.620000 4.320000 3.560000 +v 4.060000 7.110000 3.560000 +v -1.270000 5.080000 3.050000 +v -9.140000 3.300000 5.330000 +v -14.480000 5.590000 4.060000 +v -22.350000 11.430000 -1.020000 +v -28.700001 16.000000 -5.080000 +v -36.070000 13.720000 -13.460000 +v -27.430000 7.870000 -4.830000 +v -39.119999 -2.540000 -4.570000 +v -47.500000 -6.600000 -12.190000 +v -22.100000 5.590000 -0.760000 +v -26.420000 -2.030000 0.000000 +v -42.930000 -10.920000 -3.560000 +v -37.340000 -13.970000 1.020000 +v -23.879999 -19.049999 7.870000 +v -18.030001 -10.410000 8.380000 +v -15.490000 -0.510000 5.840000 +v -9.400000 -1.780000 7.110000 +v -9.400000 -11.680000 10.410000 +v -10.160000 -22.350000 11.180000 +v 1.270000 -11.940000 9.400000 +v -5.080000 -5.840000 8.130000 +v -4.570000 -1.270000 5.840000 +v -3.810000 1.270000 3.810000 +v 2.290000 4.060000 1.520000 +v 4.060000 3.050000 2.030000 +v 4.320000 -1.020000 3.560000 +v 6.600000 -2.540000 5.840000 +v -0.250000 -3.810000 5.080000 +v 0.250000 0.760000 0.000000 +v 14.730000 0.760000 4.060000 +v 19.809999 -2.030000 1.780000 +v 27.690001 -6.600000 -3.560000 +v 36.320000 -10.410000 -9.400000 +v 41.660000 -13.460000 -16.260000 +v 32.259998 -16.000000 -3.560000 +v 26.160000 -19.809999 0.760000 +v 20.570000 -14.730000 4.830000 +v 17.530001 -9.650000 5.840000 +v 14.220000 -6.350000 6.860000 +v 8.890000 -9.140000 8.640000 +v 11.940000 -15.750000 9.140000 +v 2.790000 -22.860001 10.670000 +v 12.190000 -29.969999 8.380000 +v 21.080000 -27.690001 4.060000 +v 38.610001 4.320000 -31.500000 +v 42.419998 -12.190000 -29.719999 +v 43.430000 -23.879999 -14.730000 +v 44.959999 -25.650000 -26.670000 +v 47.240002 -39.369999 -23.620001 +v 46.480000 -40.389999 -10.920000 +v 46.990002 -56.389999 -6.350000 +v 48.770000 -62.230000 -17.780001 +v 43.689999 -44.700001 -4.060000 +v 39.880001 -35.560001 -3.560000 +v 37.340000 -24.129999 -5.840000 +v 28.450001 -25.910000 0.000000 +v 32.509998 -36.320000 1.020000 +v 34.799999 -42.930000 1.520000 +v 25.400000 -41.400002 4.320000 +v 23.370001 -32.770000 3.560000 +v 14.220000 -38.349998 7.370000 +v 16.760000 -42.669998 6.600000 +v 4.830000 -31.500000 10.410000 +v 7.620000 -43.689999 9.650000 +v -1.020000 -45.470001 10.920000 +v -10.670000 -32.259998 10.670000 +v -9.650000 -45.720001 10.920000 +v -22.100000 -41.910000 9.140000 +v -15.750000 -49.279999 10.410000 +v -28.190001 -46.990002 8.890000 +v -29.459999 -30.990000 6.600000 +v -33.529999 -25.650000 4.830000 +v -36.580002 -29.969999 4.830000 +v -45.970001 -21.840000 -2.540000 +v -51.560001 -21.590000 -8.640000 +v -50.799999 -9.910000 -18.799999 +v -46.230000 1.520000 -31.500000 +v -42.419998 7.870000 -23.879999 +v -38.099998 18.030001 -32.259998 +v -55.369999 -40.639999 -5.840000 +v -56.389999 -37.080002 -12.190000 +v -49.020000 -39.369999 1.020000 +v -49.529999 -48.770000 3.300000 +v -57.400002 -57.660000 -3.560000 +v -37.590000 -43.939999 8.130000 +v -35.810001 -57.400002 14.220000 +v -41.150002 10.410000 -41.660000 +v -52.320000 -19.049999 -29.459999 +v -53.849998 -22.100000 -14.990000 +v -54.360001 -31.240000 -26.920000 +v -49.279999 -25.650000 -44.959999 +v -54.360001 -45.209999 -36.320000 +v -46.740002 -12.450000 -45.209999 +v -41.150002 3.560000 -44.700001 +v -29.969999 13.460000 -51.049999 +v -35.310001 4.570000 -50.040001 +v -25.910000 5.590000 -53.849998 +v -30.480000 -4.570000 -55.630001 +v -40.889999 -8.380000 -51.310001 +v -45.470001 -24.379999 -50.799999 +v -45.970001 -34.799999 -51.310001 +v -41.150002 -24.639999 -54.860001 +v -39.880001 -38.610001 -58.669998 +v -29.969999 -28.190001 -60.450001 +v -30.230000 -16.000000 -57.660000 +v 15.240000 18.030001 -56.389999 +v 28.190001 18.540001 -45.970001 +v 21.590000 12.700000 -52.580002 +v 26.670000 2.540000 -51.049999 +v 8.380000 7.110000 -55.880001 +v -4.570000 6.860000 -53.340000 +v -13.970000 5.840000 -54.860001 +v -18.799999 7.110000 -55.369999 +v -25.150000 -1.520000 -54.610001 +v -18.799999 -25.150000 -60.709999 +v -21.840000 -34.040001 -61.720001 +v -19.299999 -18.030001 -59.939999 +v -24.639999 -12.450000 -57.400002 +v -20.320000 -2.540000 -55.369999 +v -14.730000 -3.810000 -55.630001 +v -8.890000 -4.830000 -55.369999 +v -1.270000 -5.330000 -54.610001 +v 8.380000 0.000000 -55.369999 +v 12.950000 3.810000 -55.369999 +v 20.070000 -4.060000 -53.590000 +v 27.940001 -8.640000 -52.070000 +v 19.809999 -17.020000 -58.169998 +v 26.920000 -20.570000 -56.130001 +v 33.529999 -22.350000 -50.799999 +v 33.020000 -13.210000 -48.009998 +v 10.160000 -21.590000 -58.669998 +v 2.540000 -16.760000 -57.660000 +v -4.570000 -13.210000 -56.900002 +v -13.460000 -16.760000 -58.669998 +v -17.780001 -11.430000 -57.400002 +v -8.890000 -27.430000 -59.439999 +v 2.790000 -30.480000 -59.939999 +v 17.530001 -26.420000 -60.709999 +v 24.129999 -35.560001 -59.689999 +v 32.259998 -30.480000 -52.830002 +v 12.450000 -41.910000 -65.019997 +v 20.320000 -50.290001 -62.990002 +v 0.510000 -47.750000 -64.519997 +v -4.060000 -38.099998 -58.669998 +v -9.650000 -34.040001 -58.169998 +v -14.480000 -31.750000 -59.689999 +v -16.760000 -38.349998 -61.209999 +v 35.310001 -1.020000 -41.910000 +v 32.509998 -4.060000 -47.240002 +v 36.580002 -15.750000 -44.200001 +v 40.639999 -20.320000 -38.610001 +v 37.849998 -24.889999 -44.450001 +v 40.889999 -41.400002 -39.619999 +v -9.650000 -44.200001 -56.389999 +v -21.840000 -38.349998 -62.740002 +v -29.719999 -39.119999 -62.740002 +v 28.450001 -41.400002 -55.880001 +v 25.910000 -53.590000 -58.419998 +v 16.000000 -62.480000 -65.019997 +v 4.830000 -57.910000 -67.059998 +v 13.460000 -54.610001 -66.550003 +v 6.600000 -65.019997 -66.290001 +v 9.400000 -69.599998 -65.019997 +v 11.430000 -74.169998 -62.480000 +v 23.370001 -73.150002 -57.660000 +v 13.970000 -80.260002 -57.910000 +v 19.299999 -82.300003 -53.590000 +v 24.889999 -83.570000 -48.009998 +v 30.480000 -74.419998 -48.770000 +v 41.400002 -60.959999 -36.320000 +v 48.770000 -73.150002 -15.240000 +v 41.150002 -75.690002 -33.020000 +v 37.080002 -75.440002 -39.119999 +v 26.670000 -86.360001 -44.700001 +v 32.259998 -90.419998 -38.349998 +v 41.660000 -84.580002 -30.480000 +v 43.180000 -92.459999 -27.430000 +v 50.040001 -82.800003 -11.180000 +v 35.810001 -48.509998 2.540000 +v 43.939999 -68.580002 7.370000 +v 48.009998 -73.660004 1.520000 +v 50.040001 -94.489998 12.950000 +v -14.480000 -52.320000 -61.720001 +v -8.890000 -53.849998 -56.639999 +v -9.400000 -63.500000 -56.389999 +v -14.480000 -65.279999 -60.959999 +v -14.220000 -72.389999 -56.900002 +v -9.400000 -70.870003 -53.090000 +v -0.250000 -73.660004 -60.709999 +v -14.480000 -75.180000 -54.360001 +v -8.890000 -76.199997 -45.970001 +v 2.030000 -82.040001 -54.610001 +v -0.760000 -65.790001 -63.750000 +v -21.590000 -77.980003 -55.880001 +v -18.290001 -65.019997 -62.480000 +v -23.879999 -73.910004 -59.939999 +v -24.889999 -57.660000 -65.019997 +v -22.860001 -51.820000 -65.790001 +v -29.459999 -52.070000 -65.279999 +v -39.619999 -43.430000 -59.689999 +v -4.570000 -51.310001 -61.470001 +v -5.330000 -62.230000 -61.470001 +v -4.830000 -73.150002 -57.660000 +v -2.540000 -82.040001 -51.049999 +v -4.830000 -80.260002 -49.020000 +v -0.250000 -60.200001 -65.019997 +v -39.119999 -53.590000 -60.959999 +v -29.459999 -61.720001 -64.010002 +v -39.880001 -60.200001 -60.200001 +v -38.349998 -68.830002 -58.669998 +v -32.770000 -74.169998 -57.660000 +v -42.930000 -73.150002 -50.290001 +v -39.880001 -80.519997 -46.480000 +v -35.560001 -81.029999 -48.770000 +v -32.000000 -80.519997 -51.560001 +v -19.049999 -80.010002 -52.580002 +v -15.240000 -78.739998 -49.529999 +v -26.670000 -68.330002 -62.480000 +v 52.830002 -103.889999 -2.030000 +v 44.450001 -112.519997 -21.590000 +v 38.099998 -115.059998 -26.920000 +v 36.580002 -96.269997 -33.529999 +v 26.670000 -91.690002 -40.639999 +v 20.570000 -99.309998 -37.080002 +v 22.610001 -115.059998 -31.240000 +v 10.410000 -112.269997 -29.209999 +v 9.140000 -99.309998 -34.040001 +v 8.640000 -91.440002 -38.349998 +v 17.530001 -92.459999 -41.660000 +v 20.070000 -86.870003 -47.750000 +v 15.490000 -86.110001 -50.799999 +v 3.050000 -84.580002 -51.310001 +v 6.100000 -87.379997 -46.230000 +v 17.020000 -89.919998 -44.700001 +v 0.250000 -86.110001 -42.930000 +v 3.810000 -89.150002 -35.310001 +v 0.000000 -86.110001 -31.500000 +v 2.790000 -98.040001 -28.700001 +v -3.300000 -83.059998 -41.400002 +v -5.080000 -83.570000 -27.430000 +v -2.290000 -96.519997 -22.350000 +v 3.810000 -102.110001 -27.430000 +v 0.250000 -103.889999 -20.830000 +v -1.780000 -106.169998 -22.860001 +v -8.380000 -78.739998 -37.590000 +v -12.950000 -83.059998 -35.810001 +v -7.620000 -97.790001 -29.209999 +v -9.140000 -113.790001 -30.990000 +v -16.000000 -98.550003 -35.810001 +v -19.809999 -85.089996 -40.389999 +v -28.190001 -84.070000 -46.230000 +v -37.080002 -86.110001 -40.889999 +v -27.430000 -85.849998 -41.400002 +v -27.690001 -91.440002 -40.889999 +v -24.639999 -98.040001 -38.610001 +v -18.290001 -115.320000 -34.799999 +v -26.160000 -114.550003 -35.049999 +v -34.290001 -96.519997 -37.849998 +v -37.849998 -113.540001 -30.990000 +v -41.660000 -94.739998 -34.540001 +v -49.779999 -92.709999 -26.670000 +v -46.740002 -112.010002 -22.860001 +v -49.279999 -81.029999 -34.290001 +v -43.430000 -84.070000 -38.349998 +v -50.799999 -69.849998 -39.119999 +v -47.500000 -68.070000 -47.500000 +v -41.150002 -65.790001 -57.400002 +v -44.450001 -60.959999 -54.860001 +v -48.009998 -55.119999 -48.259998 +v -53.590000 -57.660000 -38.610001 +v -54.860001 -68.830002 -30.730000 +v -53.090000 -78.989998 -28.959999 +v -54.360001 -89.919998 -13.970000 +v -56.639999 -76.709999 -15.490000 +v -50.799999 -111.000000 -10.670000 +v -42.669998 -46.480000 -56.389999 +v -42.930000 -54.610001 -57.150002 +v -48.509998 -42.930000 -46.740002 +v -51.560001 -48.770000 -41.910000 +v -55.880001 -57.660000 -33.020000 +v -58.669998 -57.660000 -19.809999 +v -56.639999 -42.419998 -24.639999 +v -55.880001 -74.680000 -1.020000 +v -54.099998 -86.870003 0.510000 +v -50.549999 -107.440002 5.590000 +v -46.990002 -83.059998 11.940000 +v -34.540001 -70.360001 18.799999 +v -48.770000 -64.519997 8.130000 +v -33.270000 -79.760002 21.340000 +v -30.990000 -101.599998 25.650000 +v -43.180000 -104.650002 17.270000 +v -57.150002 -41.910000 -11.180000 +v -58.419998 -57.660000 -6.350000 +v -58.930000 -65.019997 -10.920000 +v -25.400000 -56.389999 14.220000 +v -18.540001 -78.739998 21.590000 +v -14.480000 -98.809998 25.650000 +v -18.540001 -53.090000 9.400000 +v -4.570000 -55.369999 11.180000 +v -6.860000 -58.669998 10.410000 +v -7.870000 -61.470001 7.370000 +v -8.640000 -70.870003 13.720000 +v -6.100000 -86.110001 17.270000 +v -4.060000 -96.769997 19.559999 +v -0.760000 -95.250000 14.730000 +v -0.250000 -82.800003 8.130000 +v -0.510000 -68.070000 1.020000 +v -1.780000 -60.959999 9.400000 +v 2.540000 -56.389999 10.670000 +v 5.080000 -59.689999 8.890000 +v 7.370000 -62.990002 6.600000 +v 6.860000 -72.389999 13.210000 +v 6.600000 -85.339996 18.799999 +v 6.860000 -97.279999 22.610001 +v 13.720000 -88.389999 24.129999 +v 14.220000 -98.300003 27.690001 +v 13.720000 -79.760002 20.830000 +v 12.950000 -67.559998 14.220000 +v 12.700000 -58.169998 6.600000 +v 9.910000 -54.860001 9.140000 +v 23.879999 -49.279999 5.080000 +v 34.799999 -80.519997 21.840000 +v 36.070000 -64.010002 11.680000 +v 34.799999 -89.410004 26.160000 +v 24.639999 -58.169998 10.670000 +v 23.370001 -73.410004 19.809999 +v 24.379999 -91.440002 27.940001 +# 711 vertices + +# 0 texture vertices + +# 0 normals + +g d +usemtl vskin +s 1 +f 3 2 1 +f 2 4 1 +f 5 1 4 +f 6 5 4 +f 7 5 6 +f 6 4 8 +f 9 8 4 +f 2 9 4 +f 10 9 2 +f 2 11 10 +f 3 11 2 +f 12 10 11 +f 12 11 13 +f 3 13 11 +f 3 15 14 +f 14 13 3 +f 14 16 13 +f 13 16 17 +f 19 16 18 +f 18 16 14 +f 20 18 14 +f 15 20 14 +f 12 17 21 +f 17 12 13 +f 23 18 22 +f 22 18 20 +f 22 25 24 +f 23 24 26 +f 24 23 22 +f 28 27 25 +f 25 27 24 +f 24 27 26 +f 29 18 23 +f 18 29 19 +f 30 19 29 +f 30 29 31 +f 31 29 23 +f 23 26 31 +f 19 30 32 +f 32 16 19 +f 28 25 33 +f 33 25 34 +f 33 35 28 +f 33 36 35 +f 35 36 37 +f 37 36 5 +f 5 36 38 +f 38 36 39 +f 38 39 3 +f 1 38 3 +f 1 5 38 +f 3 39 34 +f 15 3 34 +f 20 15 34 +f 22 20 34 +f 25 22 34 +f 36 33 34 +f 39 36 34 +f 40 10 12 +f 12 21 40 +f 30 41 32 +f 42 16 32 +f 32 43 42 +f 44 43 32 +f 32 41 44 +f 45 44 41 +f 41 46 45 +f 41 47 46 +f 47 41 48 +f 30 48 41 +f 31 48 30 +f 47 48 31 +f 47 50 49 +f 49 46 47 +f 50 47 51 +f 51 47 31 +f 51 31 52 +f 53 51 52 +f 51 53 50 +f 31 26 52 +f 26 54 52 +f 26 27 54 +f 54 27 55 +f 55 27 56 +f 56 27 57 +f 57 27 28 +f 57 28 35 +f 37 57 35 +f 7 57 37 +f 58 53 52 +f 59 58 52 +f 60 59 52 +f 54 60 52 +f 55 60 54 +f 61 60 55 +f 61 55 62 +f 62 55 63 +f 63 55 8 +f 55 6 8 +f 56 6 55 +f 57 7 56 +f 6 56 7 +f 8 9 64 +f 64 65 8 +f 63 8 65 +f 63 65 66 +f 66 62 63 +f 66 65 67 +f 65 64 67 +f 64 68 67 +f 68 64 9 +f 69 68 9 +f 9 10 69 +f 71 69 70 +f 70 69 10 +f 70 72 71 +f 71 72 73 +f 5 7 37 +f 10 40 70 +f 70 40 72 +f 72 40 74 +f 40 21 74 +f 74 21 75 +f 21 17 75 +f 73 72 74 +f 74 76 73 +f 74 75 76 +f 17 77 75 +f 42 77 17 +f 17 16 42 +f 79 78 69 +f 78 68 69 +f 68 78 80 +f 81 68 80 +f 81 82 68 +f 68 82 67 +f 82 83 67 +f 84 83 82 +f 82 81 84 +f 84 81 80 +f 83 66 67 +f 66 83 85 +f 86 66 85 +f 66 86 87 +f 62 66 87 +f 88 62 87 +f 62 88 61 +f 89 61 88 +f 61 89 90 +f 59 60 90 +f 60 61 90 +f 89 91 90 +f 91 59 90 +f 59 91 92 +f 58 59 92 +f 93 58 92 +f 94 93 92 +f 91 94 92 +f 94 95 93 +f 96 93 95 +f 97 93 96 +f 58 93 97 +f 97 98 58 +f 53 58 98 +f 53 98 50 +f 99 50 98 +f 100 99 97 +f 98 97 99 +f 97 96 100 +f 99 49 50 +f 101 49 99 +f 99 100 101 +f 46 49 101 +f 101 102 46 +f 102 103 46 +f 45 46 103 +f 104 45 103 +f 44 45 104 +f 104 105 44 +f 106 44 105 +f 44 106 43 +f 42 43 107 +f 43 106 108 +f 108 106 109 +f 43 108 110 +f 107 43 110 +f 107 77 42 +f 77 107 111 +f 107 112 111 +f 112 107 110 +f 113 77 111 +f 113 114 77 +f 75 77 114 +f 75 114 115 +f 115 116 75 +f 76 75 116 +f 116 115 117 +f 117 118 116 +f 116 73 76 +f 73 116 118 +f 73 118 71 +f 71 118 119 +f 118 117 120 +f 119 118 120 +f 121 119 120 +f 109 106 122 +f 122 106 105 +f 105 104 122 +f 104 123 122 +f 124 123 104 +f 103 124 104 +f 124 103 125 +f 103 102 125 +f 125 102 126 +f 126 102 101 +f 101 127 126 +f 128 127 101 +f 128 101 100 +f 100 129 128 +f 129 100 130 +f 130 100 96 +f 95 131 96 +f 96 131 130 +f 132 131 95 +f 79 69 71 +f 71 119 79 +f 133 119 121 +f 119 133 79 +f 78 79 133 +f 133 134 78 +f 78 134 80 +f 134 135 80 +f 136 84 80 +f 135 136 80 +f 136 137 84 +f 138 84 137 +f 84 138 83 +f 83 138 85 +f 139 88 87 +f 88 139 89 +f 140 91 89 +f 91 140 94 +f 94 142 141 +f 94 140 142 +f 95 94 141 +f 132 95 141 +f 135 134 143 +f 143 134 133 +f 133 144 143 +f 133 145 144 +f 121 145 133 +f 146 145 121 +f 121 120 147 +f 121 147 146 +f 147 120 148 +f 120 117 148 +f 148 117 149 +f 117 115 149 +f 115 151 150 +f 115 114 151 +f 151 114 152 +f 153 148 149 +f 150 153 149 +f 145 146 154 +f 144 145 154 +f 155 144 154 +f 144 155 143 +f 156 143 155 +f 157 155 154 +f 155 157 156 +f 158 143 156 +f 143 158 135 +f 135 158 159 +f 158 160 159 +f 158 156 160 +f 156 161 160 +f 156 157 161 +f 161 157 162 +f 163 162 157 +f 161 162 164 +f 163 165 162 +f 166 162 165 +f 162 166 164 +f 166 167 164 +f 167 168 164 +f 168 161 164 +f 168 160 161 +f 160 168 159 +f 136 135 159 +f 137 136 159 +f 169 138 137 +f 138 169 85 +f 169 170 85 +f 170 169 171 +f 171 169 159 +f 169 137 159 +f 172 171 159 +f 173 172 159 +f 168 173 159 +f 173 168 174 +f 168 167 174 +f 170 175 85 +f 175 86 85 +f 86 175 176 +f 177 86 176 +f 163 157 154 +f 146 163 154 +f 86 177 87 +f 177 178 87 +f 178 139 87 +f 89 139 179 +f 180 89 179 +f 180 181 89 +f 89 181 182 +f 140 89 182 +f 142 140 183 +f 183 140 182 +f 142 184 141 +f 184 185 141 +f 185 132 141 +f 132 185 186 +f 186 187 132 +f 187 131 132 +f 188 131 187 +f 186 185 189 +f 189 185 184 +f 190 183 182 +f 191 190 182 +f 181 192 182 +f 193 192 181 +f 181 180 193 +f 180 194 193 +f 194 180 179 +f 195 194 179 +f 139 195 179 +f 196 195 139 +f 139 178 196 +f 196 178 197 +f 197 178 177 +f 198 197 177 +f 199 198 177 +f 199 177 176 +f 200 199 176 +f 199 200 198 +f 198 200 201 +f 202 201 200 +f 202 200 203 +f 200 175 203 +f 175 170 203 +f 175 200 176 +f 170 204 203 +f 171 204 170 +f 205 204 171 +f 206 205 171 +f 171 172 206 +f 207 206 172 +f 172 173 207 +f 208 207 173 +f 208 173 174 +f 209 207 208 +f 208 210 209 +f 211 209 210 +f 210 202 211 +f 202 210 212 +f 201 202 212 +f 213 208 174 +f 167 214 174 +f 214 213 174 +f 215 167 166 +f 213 210 208 +f 213 216 210 +f 210 216 212 +f 216 217 212 +f 217 201 212 +f 201 217 218 +f 198 201 218 +f 197 198 218 +f 219 197 218 +f 197 219 220 +f 221 204 205 +f 205 206 221 +f 207 221 206 +f 209 221 207 +f 209 211 221 +f 221 211 202 +f 221 202 203 +f 204 221 203 +f 220 222 197 +f 196 197 222 +f 196 222 223 +f 195 196 223 +f 194 195 223 +f 224 194 223 +f 224 225 194 +f 193 194 225 +f 193 225 226 +f 192 193 226 +f 191 192 226 +f 227 191 226 +f 228 227 226 +f 229 228 226 +f 225 229 226 +f 192 191 182 +f 183 184 142 +f 183 190 230 +f 190 191 230 +f 191 227 230 +f 227 231 230 +f 231 232 230 +f 232 183 230 +f 183 232 233 +f 233 184 183 +f 189 184 233 +f 130 131 188 +f 188 234 130 +f 129 130 234 +f 234 128 129 +f 235 234 188 +f 236 235 188 +f 235 236 237 +f 237 238 235 +f 238 128 234 +f 235 238 234 +f 237 239 238 +f 128 238 239 +f 239 240 128 +f 240 127 128 +f 126 127 240 +f 241 220 219 +f 242 165 163 +f 166 242 215 +f 165 242 166 +f 163 243 242 +f 244 243 163 +f 247 246 245 +f 242 243 215 +f 163 248 244 +f 249 248 163 +f 163 146 249 +f 249 146 250 +f 147 250 146 +f 250 147 148 +f 148 153 250 +f 250 153 249 +f 251 249 153 +f 248 249 251 +f 251 252 248 +f 248 252 244 +f 244 252 247 +f 243 244 247 +f 247 215 243 +f 252 246 247 +f 251 246 252 +f 153 150 251 +f 251 150 246 +f 150 149 115 +f 150 151 246 +f 253 246 151 +f 245 246 253 +f 253 151 152 +f 114 113 152 +f 254 152 113 +f 254 113 111 +f 253 255 245 +f 152 255 253 +f 255 152 254 +f 255 254 256 +f 256 254 111 +f 257 256 111 +f 112 257 111 +f 257 112 110 +f 258 257 110 +f 108 258 110 +f 108 259 258 +f 259 108 109 +f 122 259 109 +f 259 122 260 +f 260 122 123 +f 123 261 260 +f 123 262 261 +f 262 123 124 +f 263 245 255 +f 264 263 255 +f 264 255 256 +f 256 265 264 +f 265 256 257 +f 257 258 265 +f 258 266 265 +f 267 258 259 +f 266 258 267 +f 268 267 259 +f 268 260 261 +f 259 260 268 +f 261 262 268 +f 262 269 268 +f 268 269 270 +f 270 271 268 +f 268 271 267 +f 271 272 267 +f 267 272 273 +f 273 266 267 +f 273 265 266 +f 265 273 274 +f 274 264 265 +f 275 264 274 +f 263 264 275 +f 275 276 263 +f 276 277 263 +f 245 263 277 +f 247 245 277 +f 167 215 278 +f 215 279 278 +f 215 280 279 +f 279 280 281 +f 280 282 281 +f 282 280 283 +f 280 277 283 +f 280 247 277 +f 247 280 215 +f 277 284 283 +f 284 285 283 +f 284 277 276 +f 276 285 284 +f 286 285 276 +f 275 286 276 +f 274 286 275 +f 274 287 286 +f 288 287 274 +f 273 288 274 +f 289 288 273 +f 273 272 289 +f 272 271 289 +f 271 290 289 +f 270 290 271 +f 291 290 270 +f 292 290 291 +f 291 293 292 +f 290 292 289 +f 294 289 292 +f 295 289 294 +f 288 289 295 +f 295 287 288 +f 296 287 295 +f 297 287 296 +f 286 287 297 +f 297 285 286 +f 285 297 298 +f 285 298 283 +f 298 299 283 +f 299 282 283 +f 292 293 300 +f 300 294 292 +f 301 294 300 +f 295 294 301 +f 302 295 301 +f 302 296 295 +f 296 302 297 +f 297 302 303 +f 298 297 303 +f 126 240 304 +f 240 305 304 +f 240 239 305 +f 305 239 306 +f 237 307 239 +f 308 307 237 +f 237 236 309 +f 309 308 237 +f 306 307 308 +f 307 306 239 +f 306 308 310 +f 305 306 310 +f 311 308 309 +f 310 308 311 +f 312 305 310 +f 305 312 304 +f 312 125 304 +f 125 126 304 +f 125 262 124 +f 313 262 125 +f 312 313 125 +f 313 312 314 +f 312 310 314 +f 310 311 314 +f 311 315 314 +f 315 270 314 +f 270 269 314 +f 269 262 314 +f 262 313 314 +f 291 270 316 +f 270 315 316 +f 315 311 316 +f 311 317 316 +f 317 318 316 +f 318 319 316 +f 319 291 316 +f 320 318 317 +f 317 311 320 +f 320 311 309 +f 309 321 320 +f 309 322 321 +f 321 322 323 +f 321 324 320 +f 324 318 320 +f 325 324 321 +f 321 323 325 +f 188 187 236 +f 236 187 326 +f 309 236 326 +f 187 186 326 +f 322 309 326 +f 186 322 326 +f 186 327 322 +f 189 327 186 +f 327 189 328 +f 233 328 189 +f 232 328 233 +f 328 232 329 +f 232 231 329 +f 330 231 227 +f 227 228 330 +f 330 228 229 +f 229 331 330 +f 229 225 331 +f 331 225 224 +f 333 332 223 +f 332 331 223 +f 331 224 223 +f 331 332 334 +f 334 330 331 +f 330 334 329 +f 231 330 329 +f 335 328 329 +f 336 335 329 +f 334 336 329 +f 336 334 337 +f 334 332 337 +f 332 338 337 +f 333 338 332 +f 333 222 220 +f 241 219 218 +f 217 241 218 +f 241 217 339 +f 339 217 340 +f 340 217 216 +f 328 322 327 +f 323 322 341 +f 341 322 328 +f 328 335 341 +f 341 335 342 +f 335 336 342 +f 336 343 342 +f 343 336 337 +f 338 343 337 +f 343 338 344 +f 338 345 344 +f 346 345 338 +f 338 333 346 +f 346 333 220 +f 220 241 346 +f 346 241 339 +f 347 346 339 +f 346 347 348 +f 347 349 348 +f 349 350 348 +f 345 346 348 +f 351 345 348 +f 350 351 348 +f 352 350 349 +f 351 353 345 +f 345 353 344 +f 353 354 344 +f 354 355 344 +f 355 343 344 +f 343 355 342 +f 355 356 342 +f 354 356 355 +f 356 341 342 +f 341 356 357 +f 341 357 323 +f 357 325 323 +f 222 333 223 +f 339 340 347 +f 216 358 340 +f 340 360 359 +f 340 358 360 +f 347 340 359 +f 349 347 359 +f 361 349 359 +f 361 352 349 +f 362 361 359 +f 363 361 362 +f 362 364 363 +f 279 363 364 +f 363 279 281 +f 279 364 365 +f 279 365 278 +f 365 214 278 +f 214 167 278 +f 358 216 213 +f 213 214 358 +f 214 365 358 +f 365 360 358 +f 360 362 359 +f 362 360 365 +f 365 364 362 +f 354 353 366 +f 367 354 366 +f 354 367 368 +f 368 356 354 +f 357 356 368 +f 368 369 357 +f 353 351 366 +f 351 350 370 +f 351 372 371 +f 351 371 366 +f 368 367 373 +f 369 368 373 +f 373 374 369 +f 375 369 374 +f 325 369 375 +f 357 369 325 +f 375 324 325 +f 375 318 324 +f 376 318 375 +f 374 376 375 +f 352 361 377 +f 350 352 370 +f 352 377 370 +f 372 351 370 +f 379 373 378 +f 373 380 378 +f 373 367 380 +f 380 367 366 +f 381 380 366 +f 382 381 366 +f 371 382 366 +f 382 371 383 +f 371 384 383 +f 384 371 372 +f 384 372 370 +f 385 384 370 +f 386 385 370 +f 377 386 370 +f 387 386 377 +f 377 361 387 +f 387 361 388 +f 361 363 388 +f 363 389 388 +f 389 363 281 +f 390 389 281 +f 390 391 389 +f 392 391 390 +f 390 393 392 +f 389 391 388 +f 391 394 388 +f 394 391 395 +f 395 391 392 +f 392 393 396 +f 392 396 397 +f 395 392 397 +f 398 395 397 +f 398 399 395 +f 395 399 400 +f 394 395 400 +f 387 394 400 +f 394 387 388 +f 386 387 400 +f 401 386 400 +f 402 401 400 +f 399 402 400 +f 399 398 402 +f 403 402 398 +f 402 403 404 +f 405 402 404 +f 405 401 402 +f 401 405 406 +f 386 401 406 +f 407 386 406 +f 385 386 407 +f 384 385 408 +f 408 409 384 +f 384 409 383 +f 409 410 383 +f 410 411 383 +f 410 412 411 +f 411 412 404 +f 412 405 404 +f 405 412 406 +f 412 407 406 +f 385 407 413 +f 408 385 413 +f 409 408 413 +f 410 409 413 +f 412 410 413 +f 407 412 413 +f 411 414 383 +f 414 381 382 +f 414 382 383 +f 415 381 414 +f 416 381 415 +f 380 381 416 +f 380 416 378 +f 416 417 378 +f 417 379 378 +f 418 379 417 +f 417 416 419 +f 416 420 419 +f 420 416 421 +f 416 422 421 +f 415 422 416 +f 415 414 423 +f 414 411 423 +f 411 424 423 +f 424 411 404 +f 425 424 404 +f 426 425 404 +f 403 426 404 +f 425 426 427 +f 428 425 427 +f 425 428 421 +f 428 420 421 +f 422 425 421 +f 425 422 423 +f 424 425 423 +f 422 415 423 +f 429 374 373 +f 373 379 429 +f 430 429 379 +f 379 418 430 +f 430 418 431 +f 431 432 430 +f 433 432 431 +f 431 434 433 +f 433 434 435 +f 433 435 436 +f 435 434 437 +f 437 434 438 +f 434 431 438 +f 431 439 438 +f 431 418 439 +f 439 418 417 +f 439 417 419 +f 440 439 419 +f 439 440 438 +f 440 441 438 +f 441 442 438 +f 442 437 438 +f 442 441 443 +f 441 444 443 +f 441 440 444 +f 420 440 419 +f 420 428 440 +f 444 440 428 +f 428 445 444 +f 446 444 445 +f 444 446 443 +f 445 428 427 +f 447 445 427 +f 445 447 448 +f 446 445 448 +f 447 449 448 +f 449 447 450 +f 447 426 450 +f 426 447 427 +f 426 403 450 +f 451 449 450 +f 452 451 450 +f 452 454 453 +f 454 452 455 +f 455 452 450 +f 398 455 450 +f 403 398 450 +f 456 398 397 +f 398 456 455 +f 457 455 456 +f 456 458 457 +f 458 456 397 +f 396 458 397 +f 458 396 393 +f 393 459 458 +f 459 393 460 +f 460 393 461 +f 393 390 462 +f 390 463 462 +f 459 464 458 +f 464 459 465 +f 458 464 466 +f 466 464 467 +f 468 467 464 +f 466 467 469 +f 467 470 469 +f 454 455 469 +f 455 457 469 +f 457 458 469 +f 458 466 469 +f 282 463 281 +f 463 390 281 +f 282 299 463 +f 463 299 471 +f 461 463 471 +f 463 461 462 +f 461 393 462 +f 461 472 460 +f 460 472 473 +f 473 459 460 +f 465 459 473 +f 473 474 465 +f 474 473 472 +f 476 474 475 +f 474 472 475 +f 472 477 475 +f 461 477 472 +f 477 461 478 +f 471 478 461 +f 478 471 299 +f 299 298 479 +f 478 299 479 +f 480 478 479 +f 481 480 479 +f 479 303 481 +f 298 303 479 +f 481 482 480 +f 480 482 483 +f 478 480 483 +f 483 477 478 +f 484 477 483 +f 477 484 475 +f 484 485 475 +f 484 486 485 +f 485 486 487 +f 486 488 487 +f 489 488 486 +f 486 483 489 +f 483 482 489 +f 483 486 484 +f 319 293 291 +f 319 490 293 +f 493 492 491 +f 490 491 492 +f 293 490 494 +f 293 494 300 +f 300 495 301 +f 301 495 302 +f 302 495 496 +f 496 497 302 +f 303 302 497 +f 497 481 303 +f 498 482 481 +f 489 482 498 +f 499 488 489 +f 500 488 499 +f 499 489 501 +f 501 489 502 +f 489 498 502 +f 498 503 502 +f 481 497 498 +f 498 497 503 +f 503 497 496 +f 496 504 503 +f 496 505 504 +f 495 505 496 +f 506 505 495 +f 506 495 300 +f 300 507 506 +f 300 494 507 +f 494 508 507 +f 490 508 494 +f 492 508 490 +f 508 492 509 +f 509 492 493 +f 493 510 509 +f 508 509 507 +f 510 512 511 +f 510 514 513 +f 513 512 510 +f 511 509 510 +f 515 509 511 +f 507 509 515 +f 515 516 507 +f 517 507 516 +f 506 507 517 +f 517 505 506 +f 518 505 517 +f 504 505 518 +f 518 519 504 +f 503 504 519 +f 503 519 502 +f 519 501 502 +f 501 519 518 +f 501 518 499 +f 518 520 499 +f 520 518 517 +f 520 516 515 +f 517 516 520 +f 515 521 520 +f 522 521 515 +f 511 522 515 +f 511 512 522 +f 523 522 512 +f 512 524 523 +f 513 524 512 +f 523 525 522 +f 523 526 525 +f 525 521 522 +f 527 521 525 +f 521 527 528 +f 520 521 528 +f 528 529 520 +f 530 520 529 +f 530 499 520 +f 499 530 531 +f 500 499 531 +f 376 319 318 +f 319 376 490 +f 491 490 376 +f 491 376 374 +f 374 429 491 +f 491 429 532 +f 532 533 491 +f 491 533 493 +f 510 493 533 +f 533 514 510 +f 534 514 533 +f 533 532 534 +f 532 430 534 +f 429 430 532 +f 535 534 430 +f 430 432 535 +f 432 536 535 +f 537 536 432 +f 432 433 537 +f 536 534 535 +f 514 534 513 +f 513 534 536 +f 524 513 536 +f 524 536 537 +f 529 538 530 +f 530 538 531 +f 539 500 531 +f 539 540 500 +f 500 540 488 +f 488 540 487 +f 524 541 523 +f 526 523 541 +f 526 541 542 +f 542 543 526 +f 525 544 527 +f 525 545 544 +f 526 545 525 +f 543 545 526 +f 545 543 546 +f 546 544 545 +f 546 543 547 +f 548 547 543 +f 543 549 548 +f 548 549 550 +f 550 549 551 +f 552 551 549 +f 552 549 553 +f 553 549 542 +f 542 549 543 +f 553 542 554 +f 554 542 541 +f 541 537 554 +f 537 541 524 +f 436 537 433 +f 554 537 436 +f 436 555 554 +f 555 556 554 +f 556 557 554 +f 554 557 553 +f 553 557 558 +f 559 558 557 +f 559 557 560 +f 560 557 556 +f 556 555 560 +f 561 560 555 +f 555 562 561 +f 555 435 562 +f 436 435 555 +f 564 435 563 +f 435 564 565 +f 565 562 435 +f 566 562 565 +f 565 564 566 +f 528 538 529 +f 538 567 531 +f 538 568 567 +f 567 568 569 +f 569 570 567 +f 571 570 569 +f 569 572 571 +f 546 547 573 +f 547 548 573 +f 575 574 572 +f 573 548 576 +f 576 548 550 +f 574 571 572 +f 544 546 577 +f 558 552 553 +f 574 578 571 +f 580 579 571 +f 571 578 580 +f 579 570 571 +f 567 570 579 +f 581 567 579 +f 582 567 581 +f 567 582 531 +f 582 539 531 +f 539 582 540 +f 582 583 540 +f 540 583 584 +f 584 487 540 +f 528 585 538 +f 538 585 568 +f 585 586 568 +f 568 586 569 +f 587 569 586 +f 572 569 587 +f 588 572 587 +f 575 572 589 +f 588 589 572 +f 587 576 588 +f 573 576 587 +f 587 577 573 +f 573 577 546 +f 586 577 587 +f 577 586 590 +f 590 544 577 +f 590 586 585 +f 590 585 527 +f 585 528 527 +f 527 544 590 +f 591 584 583 +f 583 592 591 +f 593 591 592 +f 592 594 593 +f 592 595 594 +f 596 594 595 +f 596 595 597 +f 597 595 598 +f 598 595 599 +f 595 580 599 +f 580 578 599 +f 600 578 574 +f 574 601 600 +f 575 601 574 +f 580 595 602 +f 579 580 602 +f 592 579 602 +f 579 592 581 +f 583 581 592 +f 581 583 582 +f 595 592 602 +f 603 561 562 +f 604 561 603 +f 605 561 604 +f 606 561 605 +f 560 561 606 +f 606 559 560 +f 606 607 559 +f 608 606 605 +f 605 609 608 +f 608 609 610 +f 610 611 608 +f 611 612 608 +f 608 612 613 +f 608 613 607 +f 607 606 608 +f 607 558 559 +f 558 607 613 +f 613 614 558 +f 558 614 552 +f 552 614 551 +f 615 551 614 +f 551 615 550 +f 550 615 576 +f 576 615 616 +f 617 616 615 +f 617 615 612 +f 612 615 618 +f 618 613 612 +f 618 614 613 +f 614 618 615 +f 616 588 576 +f 588 616 617 +f 617 619 588 +f 612 619 617 +f 622 621 620 +f 612 620 619 +f 619 623 588 +f 621 625 624 +f 621 624 623 +f 622 625 621 +f 620 611 622 +f 620 612 611 +f 626 611 610 +f 626 622 611 +f 626 627 622 +f 610 627 626 +f 622 627 625 +f 627 628 625 +f 624 629 623 +f 629 575 623 +f 588 623 589 +f 630 575 629 +f 629 624 630 +f 625 630 624 +f 631 630 625 +f 631 625 628 +f 628 632 631 +f 631 632 633 +f 633 630 631 +f 634 630 633 +f 630 634 601 +f 630 601 575 +f 634 600 601 +f 578 600 599 +f 600 635 599 +f 635 636 599 +f 636 598 599 +f 636 597 598 +f 635 600 634 +f 634 637 635 +f 636 635 637 +f 636 637 638 +f 637 634 638 +f 633 638 634 +f 639 638 633 +f 640 639 633 +f 632 640 633 +f 639 640 641 +f 641 642 639 +f 642 641 643 +f 643 644 642 +f 644 643 645 +f 645 643 646 +f 645 647 644 +f 644 648 636 +f 636 642 644 +f 638 642 636 +f 639 642 638 +f 648 597 636 +f 647 648 644 +f 596 648 647 +f 648 596 597 +f 647 649 596 +f 596 649 650 +f 651 596 650 +f 651 594 596 +f 593 594 651 +f 651 652 593 +f 650 652 651 +f 652 650 653 +f 650 649 653 +f 649 654 653 +f 649 655 654 +f 655 649 647 +f 655 647 656 +f 656 647 645 +f 658 645 657 +f 645 646 657 +f 646 659 657 +f 620 621 623 +f 620 623 619 +f 660 487 584 +f 660 584 591 +f 661 660 591 +f 591 593 661 +f 661 593 652 +f 661 652 653 +f 662 660 653 +f 660 661 653 +f 662 485 660 +f 485 487 660 +f 662 663 476 +f 664 476 663 +f 654 664 663 +f 654 663 653 +f 663 662 653 +f 476 664 665 +f 666 476 665 +f 476 666 474 +f 485 662 475 +f 662 476 475 +f 655 664 654 +f 664 655 665 +f 655 658 665 +f 656 658 655 +f 647 656 655 +f 645 658 656 +f 623 575 589 +f 667 658 657 +f 668 667 657 +f 669 668 657 +f 659 669 657 +f 668 669 670 +f 670 667 668 +f 672 670 671 +f 670 673 671 +f 670 674 673 +f 675 674 670 +f 670 669 675 +f 676 666 665 +f 677 676 665 +f 676 677 468 +f 468 464 676 +f 667 468 677 +f 677 678 667 +f 678 677 665 +f 658 678 665 +f 658 667 678 +f 670 672 667 +f 468 667 672 +f 468 672 467 +f 672 470 467 +f 470 672 671 +f 470 679 469 +f 679 470 671 +f 680 679 671 +f 673 680 671 +f 680 673 674 +f 674 681 680 +f 474 666 465 +f 465 666 676 +f 464 465 676 +f 679 454 469 +f 679 682 454 +f 454 682 453 +f 451 452 453 +f 683 451 453 +f 684 683 453 +f 685 684 453 +f 453 682 685 +f 685 682 686 +f 682 679 686 +f 679 680 686 +f 680 687 686 +f 680 681 687 +f 687 681 688 +f 688 689 687 +f 690 687 689 +f 687 690 686 +f 690 691 686 +f 691 685 686 +f 685 691 692 +f 684 685 692 +f 683 684 692 +f 449 451 683 +f 683 693 449 +f 693 683 692 +f 694 693 692 +f 691 694 692 +f 691 695 694 +f 695 691 696 +f 691 690 696 +f 690 697 696 +f 697 690 689 +f 689 698 697 +f 698 700 699 +f 697 698 699 +f 701 697 699 +f 697 701 696 +f 701 702 696 +f 702 695 696 +f 702 703 695 +f 703 694 695 +f 704 694 703 +f 693 694 704 +f 693 704 448 +f 449 693 448 +f 704 446 448 +f 446 704 705 +f 446 705 443 +f 705 442 443 +f 563 442 705 +f 437 442 563 +f 563 435 437 +f 564 707 706 +f 566 564 706 +f 708 566 706 +f 563 707 564 +f 707 563 709 +f 563 705 709 +f 705 703 709 +f 703 705 704 +f 703 702 709 +f 702 710 709 +f 701 710 702 +f 701 711 710 +f 711 701 699 +f 700 711 699 +f 711 708 706 +f 710 711 706 +f 707 710 706 +f 710 707 709 +f 603 562 566 +f 610 689 627 +f 698 689 610 +f 698 610 609 +f 609 700 698 +f 711 700 609 +f 711 609 605 +f 605 708 711 +f 708 605 604 +f 604 566 708 +f 566 604 603 +f 627 689 688 +f 688 628 627 +f 628 688 681 +f 681 632 628 +f 632 681 674 +f 674 640 632 +f 641 640 674 +f 674 643 641 +f 643 674 675 +f 675 646 643 +f 669 646 675 +f 659 646 669 +# 1419 elements diff --git a/Gem/examples/data/vera.ttf b/Gem/examples/data/vera.ttf new file mode 100644 index 0000000..58cd6b5 Binary files /dev/null and b/Gem/examples/data/vera.ttf differ diff --git a/Gem/extra/Makefile.am b/Gem/extra/Makefile.am new file mode 100644 index 0000000..ee9be34 --- /dev/null +++ b/Gem/extra/Makefile.am @@ -0,0 +1,10 @@ +AUTOMAKE_OPTIONS = foreign +AM_CPPFLAGS = -I$(top_srcdir)/src +ACLOCAL_AMFLAGS = -I ../m4 + + +SUBDIRS = +SUBDIRS += pix2jpg + +EXTRA_DIST = \ + README-EXTRA.txt diff --git a/Gem/extra/Makefile.am~ b/Gem/extra/Makefile.am~ new file mode 100644 index 0000000..8332066 --- /dev/null +++ b/Gem/extra/Makefile.am~ @@ -0,0 +1,9 @@ +AUTOMAKE_OPTIONS = foreign +AM_CPPFLAGS = -I$(top_srcdir)/src +ACLOCAL_AMFLAGS = -I ../m4 + + +SUBDIRS = pix2jpg + +EXTRA_DIST = \ + README-EXTRA.txt diff --git a/Gem/extra/README-EXTRA.txt b/Gem/extra/README-EXTRA.txt new file mode 100644 index 0000000..722bf10 --- /dev/null +++ b/Gem/extra/README-EXTRA.txt @@ -0,0 +1,48 @@ +extras for Gem +============== + +this folder contains objectclasses that are shipped with Gem but are not linked +into Gem. + +reasons why these objectclasses are not part of Gem proper are: + +- license issues + (Gem is GPL, objects that are not GPL would go in here) + +- dependency issues + (we try to keep the dependencies of Gem-core to the minimum of openGL and + WindowManager (if at all); any objectclass that makes heavy use of 3rd party + libraries would go in here) + +- specialist objects + (objectclasses that are highly specialized and of no common interest might go + in here as well) + + + +ADDING your own subdirectory to extra/ using autoconf: +- Gem/extra/Makefile.am + add your projects to the SUBDIRS variable + if your project has a "Makefile" that has all the usual autoconf + targets, you are done :-) + see Gem/extra/Makefile.am for an example + . + this applies to most projects! + +- Gem/configure.ac + if you provide a Makefile.am and want Gem's build process to create a + Makefile from that, you have to add [extra//Makefile] to the + AC_CONFIG_FILES in Gem/configure.ac; + see Gem/configure.ac for an example + . + this applies to small projects (no additional dependencies) that are + to be shipped with Gem + +- Gem/extra/configure.ac + if you provide your own autoconf system (configure.ac), add your project + to the AC_CONFIG_SUBDIRS in Gem/extra/configure.ac + see Gem/extra/configure.ac for an example + . + this applies to bigger projects (additional dependencies) or projects + not to be shipped with Gem + diff --git a/Gem/extra/configure.ac b/Gem/extra/configure.ac new file mode 100644 index 0000000..8b915c1 --- /dev/null +++ b/Gem/extra/configure.ac @@ -0,0 +1,43 @@ +# -*- Autoconf -*- +# Process this file with autoconf to produce a configure script. + + +AC_PREREQ(2.60) +AC_INIT(Gem-extras,[0.1],zmoelnig@iem.at) +AM_INIT_AUTOMAKE([1.10 foreign]) + +AC_CONFIG_MACRO_DIR([../m4]) + +AC_CONFIG_SRCDIR([README-EXTRA.txt]) +AC_CONFIG_FILES([Makefile]) + +AC_PROG_CXX +AC_SUBST(CXX) + +## pix_artoolkit +if test -d "$srcdir/pix_artoolkit"; then + AC_CONFIG_SUBDIRS([pix_artoolkit]) +fi + +## pix_drum (Jaime Oliver) +#if test -d "$srcdir/pix_drum"; then +# AC_CONFIG_SUBDIRS([pix_drum]) +#fi + +## pix_mano (Jaime Oliver) +#if test -d "$srcdir/pix_mano"; then +# AC_CONFIG_SUBDIRS([pix_mano]) +#fi + +## pix_hit (Davide Morelli) +#if test -d "$srcdir/pix_hit"; then +# AC_CONFIG_SUBDIRS([pix_hit]) +#fi + +### pix_opencv (Yves Degoyon & Lluis Gomez i Bigorda) +#if test -d "$srcdir/pix_opencv"; then +# AC_CONFIG_SUBDIRS([pix_opencv]) +#fi + +AC_OUTPUT + diff --git a/Gem/extra/convenience-link-extra.mk b/Gem/extra/convenience-link-extra.mk new file mode 100644 index 0000000..2da1cfe --- /dev/null +++ b/Gem/extra/convenience-link-extra.mk @@ -0,0 +1,16 @@ +# convenience symlinks for extra_LTLIBRARIES + +## uha, this is ugly +%.@GEM_RTE_EXTENSION@: %.la + rm -f $@ + test -f .libs/$@ && $(LN_S) .libs/$@ $@ || true + +.PHONY: clean-conviencesymlink + +clean-conviencesymlink: + rm -f *.@GEM_RTE_EXTENSION@ + + +all-local:: $(extra_LTLIBRARIES:.la=.@GEM_RTE_EXTENSION@) + +clean-local:: clean-conviencesymlink diff --git a/libremediaserver/externals/pix2jpg/LICENSE.txt b/Gem/extra/pix2jpg/LICENSE.txt similarity index 100% rename from libremediaserver/externals/pix2jpg/LICENSE.txt rename to Gem/extra/pix2jpg/LICENSE.txt diff --git a/libremediaserver/externals/pix2jpg/Makefile.am b/Gem/extra/pix2jpg/Makefile.am similarity index 99% rename from libremediaserver/externals/pix2jpg/Makefile.am rename to Gem/extra/pix2jpg/Makefile.am index f976820..67ba657 100644 --- a/libremediaserver/externals/pix2jpg/Makefile.am +++ b/Gem/extra/pix2jpg/Makefile.am @@ -3,8 +3,6 @@ ACLOCAL_AMFLAGS = -I $(top_srcdir)/src/m4 AM_CPPFLAGS = -I$(top_srcdir)/src -I/usr/include/ImageMagick EXTRA_DIST = - - extradir=$(libdir)/pix2jpg extra_LTLIBRARIES = pix2jpg.la @@ -12,7 +10,6 @@ extra_LTLIBRARIES = pix2jpg.la dist_extra_DATA = LICENSE.txt dist_extra_DATA += pix2jpg-help.pd - ## some default flags pix2jpg_la_CXXFLAGS = pix2jpg_la_LDFLAGS = -L/usr/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -L/usr/lib/X11 -module -avoid-version -shared -shrext .@GEM_RTE_EXTENSION@ @@ -31,7 +28,6 @@ pix2jpg_la_LDFLAGS += @GEM_ARCH_LDFLAGS@ pix2jpg_la_CXXFLAGS += -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -pthread .@GEM_EXTERNAL_CFLAGS@ pix2jpg_la_LIBADD += -L/usr/lib -lMagick++ -lMagickWand -lMagickCore -llcms -ltiff -lfreetype -ljpeg -llqr-1 -lglib-2.0 -lfontconfig -lXext -lSM -lICE -lX11 -lXt -lbz2 -lz -lm -lgomp -lpthread -lltdl -L$(top_builddir) @GEM_EXTERNAL_LIBS@ - # convenience symlinks ## uha, this is ugly pix2jpg.@GEM_RTE_EXTENSION@: pix2jpg.la @@ -43,7 +39,6 @@ pix2jpg.@GEM_RTE_EXTENSION@: pix2jpg.la clean-conviencesymlink: rm -f pix2jpg.@GEM_RTE_EXTENSION@ - all-local:: pix2jpg.@GEM_RTE_EXTENSION@ clean-local:: clean-conviencesymlink diff --git a/libremediaserver/externals/pix2jpg/pix2jpg-help.pd b/Gem/extra/pix2jpg/pix2jpg-help.pd similarity index 100% rename from libremediaserver/externals/pix2jpg/pix2jpg-help.pd rename to Gem/extra/pix2jpg/pix2jpg-help.pd diff --git a/libremediaserver/externals/pix2jpg/pix2jpg.cpp b/Gem/extra/pix2jpg/pix2jpg.cpp similarity index 100% rename from libremediaserver/externals/pix2jpg/pix2jpg.cpp rename to Gem/extra/pix2jpg/pix2jpg.cpp diff --git a/libremediaserver/externals/pix2jpg/pix2jpg.h b/Gem/extra/pix2jpg/pix2jpg.h similarity index 100% rename from libremediaserver/externals/pix2jpg/pix2jpg.h rename to Gem/extra/pix2jpg/pix2jpg.h diff --git a/Gem/help/GEMglBegin-help.pd b/Gem/help/GEMglBegin-help.pd new file mode 100644 index 0000000..b2e875d --- /dev/null +++ b/Gem/help/GEMglBegin-help.pd @@ -0,0 +1,14 @@ +#N canvas 144 70 497 292 10; +#X text 21 22 GEMglBegin - delimit the vertices of a primitive or a +group of like primitives; +#X text 21 61 C Specification: void glBegin( GLenum mode ); +#X text 21 91 Parameters; +#X text 42 115 mode; +#X text 77 116 Specifies the primitive or primitives that will be created +from vertices presented between glBegin and the subsequent glEnd. Ten +symbolic constants are accepted: GL_POINTS \, GL_LINES \, GL_LINE_STRIP +\, GL_LINE_LOOP \, GL_TRIANGLES \, GL_TRIANGLE_STRIP \, GL_TRIANGLE_FAN +\, GL_QUADS \, GL_QUAD_STRIP \, and GL_POLYGON.; +#X text 71 244 http://www.glprogramming.com/blue/ch05.html#id5450783 +; +#X text 22 228 OpenGL Reference page:; diff --git a/Gem/help/GLdefine-help.pd b/Gem/help/GLdefine-help.pd new file mode 100644 index 0000000..e64cc25 --- /dev/null +++ b/Gem/help/GLdefine-help.pd @@ -0,0 +1,65 @@ +#N canvas 78 37 701 310 10; +#X obj 519 47 cnv 15 170 250 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 584 234 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 112 destroy; +#X msg 132 112 create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 589 273 pd gemwin; +#X msg 589 254 create; +#X text 585 233 Create window:; +#X text 525 29 Example:; +#X obj 7 65 cnv 15 450 100 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 8 216 cnv 15 450 80 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 11 217 Inlets:; +#X obj 8 176 cnv 15 450 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 452 8 GEM object; +#X text 11 266 Outlets:; +#X obj 522 71 cnv 15 150 140 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 530 192 GEMglBegin; +#X obj 534 77 loadbang; +#X text 54 30 Class: GEMgl object; +#X text 33 14 Synopsis: [GLdefine]; +#X text 15 88 Send an OpenGL configuration constant to a GEMglBegin +to set up the OpenGL environment. These constants are defined in GL/gl.h +in the OpenGL C++ code.; +#X floatatom 584 167 5 0 0 0 - - -; +#X text 29 229 Inlet 1: bang; +#X text 23 279 Outlet 1: float; +#X text 14 137 for more \, see: http://www.glprogramming.com/blue/ch04.html +; +#X text 7 69 Description: gets the value of a OpenGL constant; +#X text 29 245 Inlet 1: message - the name of the constant; +#X text 17 175 Arguments:; +#X text 29 189 the name of a OpenGL constant (e.g. GL_LINES or GL_POLYGON) +; +#X msg 542 98 GL_LINES; +#X obj 534 142 GLdefine GL_ADD; +#X msg 553 119 symbol GL_ACCUM; +#X connect 2 0 3 0; +#X connect 3 0 2 0; +#X connect 14 0 27 0; +#X connect 26 0 27 0; +#X connect 27 0 13 1; +#X connect 27 0 18 0; +#X connect 28 0 27 0; diff --git a/Gem/help/Makefile.am b/Gem/help/Makefile.am new file mode 100644 index 0000000..39cd16d --- /dev/null +++ b/Gem/help/Makefile.am @@ -0,0 +1,220 @@ +AUTOMAKE_OPTIONS = foreign + +SUFFIXES = .pd + +gemhelpdir=$(pkglibdir) + +dist_gemhelp_DATA = \ + accumrotate-help.pd \ + alpha-help.pd \ + ambient-help.pd \ + ambientRGB-help.pd \ + camera-help.pd \ + circle-help.pd \ + color-help.pd \ + colorRGB-help.pd \ + colorSquare-help.pd \ + cone-help.pd \ + cube-help.pd \ + cuboid-help.pd \ + curve3d-help.pd \ + curve-help.pd \ + cylinder-help.pd \ + depth-help.pd \ + diffuse-help.pd \ + diffuseRGB-help.pd \ + disk-help.pd \ + emission-help.pd \ + emissionRGB-help.pd \ + fragment_program-help.pd \ + gemframebuffer-help.pd \ + GEMglBegin-help.pd \ + gemhead-help.pd \ + gemkeyboard-help.pd \ + gemkeyname-help.pd \ + gemlist-help.pd \ + gemlist_info-help.pd \ + gemlist_matrix-help.pd \ + gemmouse-help.pd \ + gemorb-help.pd \ + gemreceive-help.pd \ + gemtablet-help.pd \ + gemvertexbuffer-help.pd \ + gemwin-help.pd \ + GLdefine-help.pd \ + glsl_fragment-help.pd \ + glsl_geometry-help.pd \ + glsl_program-help.pd \ + glsl_vertex-help.pd \ + imageVert-help.pd \ + light-help.pd \ + linear_path-help.pd \ + mesh_line-help.pd \ + mesh_square-help.pd \ + model-help.pd \ + multimodel-help.pd \ + newWave-help.pd \ + ortho-help.pd \ + part_color-help.pd \ + part_damp-help.pd \ + part_draw-help.pd \ + part_follow-help.pd \ + part_gravity-help.pd \ + part_head-help.pd \ + part_info-help.pd \ + part_killold-help.pd \ + part_killslow-help.pd \ + part_orbitpoint-help.pd \ + part_render-help.pd \ + part_sink-help.pd \ + part_size-help.pd \ + part_source-help.pd \ + part_targetcolor-help.pd \ + part_targetsize-help.pd \ + part_velcone-help.pd \ + part_velocity-help.pd \ + part_velsphere-help.pd \ + part_vertex-help.pd \ + pix_2grey-help.pd \ + pix_a_2grey-help.pd \ + pix_add-help.pd \ + pix_aging-help.pd \ + pix_alpha-help.pd \ + pix_background-help.pd \ + pix_backlight-help.pd \ + pix_biquad-help.pd \ + pix_bitmask-help.pd \ + pix_blob-help.pd \ + pix_blur-help.pd \ + pix_buffer-help.pd \ + pix_buffer_read-help.pd \ + pix_buffer_write-help.pd \ + pix_buf-help.pd \ + pix_chroma_key-help.pd \ + pix_clearblock-help.pd \ + pix_coloralpha-help.pd \ + pix_color-help.pd \ + pix_colorclassify-help.pd \ + pix_colormatrix-help.pd \ + pix_colorreduce-help.pd \ + pix_compare-help.pd \ + pix_composite-help.pd \ + pix_contrast-help.pd \ + pix_convert-help.pd \ + pix_convolve-help.pd \ + pix_coordinate-help.pd \ + pix_crop-help.pd \ + pix_curve-help.pd \ + pix_data-help.pd \ + pix_deinterlace-help.pd \ + pix_delay-help.pd \ + pix_diff-help.pd \ + pix_dot-help.pd \ + pix_draw-help.pd \ + pix_dump-help.pd \ + pix_duotone-help.pd \ + pix_film-help.pd \ + pix_flip-help.pd \ + pix_freeframe-help.pd \ + pix_frei0r-help.pd \ + pix_gain-help.pd \ + pix_grey-help.pd \ + pix_halftone-help.pd \ + pix_histo-help.pd \ + pix_hsv2rgb-help.pd \ + pix_image-help.pd \ + pix_imageInPlace-help.pd \ + pix_indycam-help.pd \ + pix_info-help.pd \ + pix_invert-help.pd \ + pix_kaleidoscope-help.pd \ + pix_levels-help.pd \ + pix_lumaoffset-help.pd \ + pix_mask-help.pd \ + pix_mean_color-help.pd \ + pix_metaimage-help.pd \ + pix_mix-help.pd \ + pix_motionblur-help.pd \ + pix_movement2-help.pd \ + pix_movement-help.pd \ + pix_movie-help.pd \ + pix_multiblob-help.pd \ + pix_multiimage-help.pd \ + pix_multitexture-help.pd \ + pix_multiply-help.pd \ + pix_noise-help.pd \ + pix_normalize-help.pd \ + pix_offset-help.pd \ + pix_pix2sig~-help.pd \ + pix_posterize-help.pd \ + pix_puzzle-help.pd \ + pix_rds-help.pd \ + pix_record-help.pd \ + pix_rectangle-help.pd \ + pix_refraction-help.pd \ + pix_resize-help.pd \ + pix_rgb2hsv-help.pd \ + pix_rgba-help.pd \ + pix_roi-help.pd \ + pix_roll-help.pd \ + pix_rtx-help.pd \ + pix_scanline-help.pd \ + pix_set-help.pd \ + pix_share_read-help.pd \ + pix_share_write-help.pd \ + pix_sig2pix~-help.pd \ + pix_snap2tex-help.pd \ + pix_snap-help.pd \ + pix_subtract-help.pd \ + pix_takealpha-help.pd \ + pix_texture-help.pd \ + pix_threshold_bernsen-help.pd \ + pix_threshold-help.pd \ + pix_tIIR-help.pd \ + pix_videoDS-help.pd \ + pix_video-help.pd \ + pix_write-help.pd \ + pix_yuv-help.pd \ + pix_zoom-help.pd \ + polygon-help.pd \ + polygon_smooth-help.pd \ + pqtorusknots-help.pd \ + primTri-help.pd \ + rectangle-help.pd \ + render_trigger-help.pd \ + ripple-help.pd \ + rotate-help.pd \ + rotateXYZ-help.pd \ + rubber-help.pd \ + scale-help.pd \ + scaleXYZ-help.pd \ + scopeXYZ~-help.pd \ + separator-help.pd \ + shearXY-help.pd \ + shearXZ-help.pd \ + shearYX-help.pd \ + shearYZ-help.pd \ + shearZX-help.pd \ + shearZY-help.pd \ + shininess-help.pd \ + slideSquares-help.pd \ + specular-help.pd \ + specularRGB-help.pd \ + sphere3d-help.pd \ + sphere-help.pd \ + spline_path-help.pd \ + spot_light-help.pd \ + square-help.pd \ + surface3d-help.pd \ + teapot-help.pd \ + text2d-help.pd \ + text3d-help.pd \ + textextruded-help.pd \ + textoutline-help.pd \ + torus-help.pd \ + translate-help.pd \ + translateXYZ-help.pd \ + triangle-help.pd \ + tube-help.pd \ + vertex_program-help.pd \ + world_light-help.pd diff --git a/Gem/help/accumrotate-help.pd b/Gem/help/accumrotate-help.pd new file mode 100644 index 0000000..a040c5f --- /dev/null +++ b/Gem/help/accumrotate-help.pd @@ -0,0 +1,75 @@ +#N canvas 57 47 634 374 10; +#X text 452 8 GEM object; +#X text 50 12 Synopsis: [accumrotate]; +#X obj 8 197 cnv 15 430 130 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 63 225 Inlet 1: message: reset; +#X text 64 254 Inlet 3: float: delta-rotation around Y-axis (in deg) +; +#X text 64 242 Inlet 2: float: delta-rotation around X-axis (in deg) +; +#X text 64 266 Inlet 4: float: delta-rotation around Z-axis (in deg) +; +#X text 39 198 Inlets:; +#X text 63 211 Inlet 1: gemlist; +#X text 39 282 Outlets:; +#X text 57 295 Outlet 1: gemlist; +#X obj 8 156 cnv 15 430 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 155 Arguments:; +#X text 63 166 initial rotations around X \, Y \, Z-axes; +#X obj 8 76 cnv 15 430 70 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 42 95 [accumrotate] accepts a gemList and changes the current +transformation matrix by the specified delta-rotation; +#X text 41 130 the delta-values add to the current rotation-matrix. +; +#X text 29 77 Description: accumulated rotation; +#X obj 449 77 cnv 15 170 250 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X text 453 60 Example:; +#X obj 514 254 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 132 112 create \, 1; +#X msg 198 112 destroy; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 519 293 pd gemwin; +#X msg 519 274 create; +#X text 515 253 Create window:; +#X text 71 31 Class: manipulation object; +#X obj 450 158 cnv 15 160 60 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 451 84 gemhead; +#X obj 451 233 square; +#X msg 478 108 reset; +#X msg 531 163 10; +#X text 490 139 click repeatedly; +#X obj 451 186 accumrotate 45 0 0; +#X msg 491 163 5; +#X msg 572 163 15; +#X text 34 335 see also:; +#X obj 143 337 rotateXYZ; +#X obj 95 337 rotate; +#X connect 21 0 22 0; +#X connect 22 0 21 0; +#X connect 26 0 31 0; +#X connect 28 0 31 0; +#X connect 29 0 31 2; +#X connect 31 0 27 0; +#X connect 32 0 31 1; +#X connect 33 0 31 3; diff --git a/Gem/help/alpha-help.pd b/Gem/help/alpha-help.pd new file mode 100644 index 0000000..930dcf9 --- /dev/null +++ b/Gem/help/alpha-help.pd @@ -0,0 +1,109 @@ +#N canvas 50 237 711 539 10; +#X text 452 8 GEM object; +#X obj 8 196 cnv 15 430 330 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 37 195 Inlets:; +#X text 453 355 Outlets:; +#X text 461 366 Outlet 1: gemlist; +#X obj 8 161 cnv 15 430 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 160 Arguments:; +#X obj 8 76 cnv 15 430 80 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 449 77 cnv 15 250 250 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X text 453 60 Example:; +#X obj 584 254 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 50 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 132 112 create \, 1; +#X msg 198 112 destroy; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 589 293 pd gemwin; +#X msg 589 274 create; +#X text 585 253 Create window:; +#X text 71 31 Class: manipulation object; +#X obj 451 197 cnv 15 80 60 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 579 186 color 1 0 0 0.5; +#X text 60 219 Inlet 1: float: turn alpha blending on/off; +#X text 50 12 Synopsis: [alpha]; +#X text 29 77 Description: enable alpha blending; +#X obj 458 310 square; +#X obj 458 233 alpha; +#X obj 458 108 color 0 1 0 0.5; +#X text 61 208 Inlet 1: gemlist; +#X text 60 231 Inlet 1: message "auto 1" | "auto 0" turn on/off automatic +depth detection; +#X floatatom 583 139 5 0 0 0 - - -; +#X obj 458 86 gemhead 51; +#X obj 579 211 sphere; +#X obj 458 137 rotate 114 0 1 0; +#X obj 579 162 gemhead 50; +#X msg 474 176 auto \$1; +#X obj 474 158 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X msg 583 108 0 1 0 \$1; +#X floatatom 583 88 5 0 1 0 - - -; +#X obj 628 88 hsl 64 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144 +-1 -1 0 1; +#X text 22 91 [alpha] turns on and off alpha blending. Be aware that +the rendering order matters \, so you probably want to set the gemhead +order number high so that the object is rendered after all of the non-alpha +blended ones.; +#X text 63 171 float : blending function (default: GL_ONE_MINUS_SRC_ALPHA) +; +#X text 60 260 Inlet 2: float: blending function; +#X text 70 272 0=GL_ONE_MINUS_SOURCE_ALPHA; +#X text 70 282 1=GL_ONE; +#X text 70 294 2=GL_ZERO; +#X text 70 306 3=GL_SRC_COLOR; +#X text 70 318 4=GL_ONE_MINUS_SRC_COLOR; +#X text 70 330 5=GL_DST_COLOR; +#X text 70 342 6=GL_ONE_MINUS_DST_COLOR; +#X text 70 354 7=GL_SRC_ALPHA; +#X text 70 366 8=GL_ONE_MINUS_SRC_ALPHA; +#X text 70 378 9=GL_DST_ALPHA; +#X text 70 390 10=GL_ONE_MINUS_DST_ALPHA; +#X text 70 402 11=GL_CONSTANT_COLOR; +#X text 70 414 12=GL_ONE_MINUS_CONSTANT_COLOR; +#X text 70 426 13=GL_CONSTANT_ALPHA; +#X text 70 438 14=GL_ONE_MINUS_CONSTANT_ALPHA; +#X text 70 450 15=GL_SRC_ALPHA_SATURATE; +#X text 70 462 16=GL_SRC1_COLOR; +#X text 70 474 17=GL_ONE_MINUS_SRC1_COLOR; +#X text 70 486 18=GL_SRC1_ALPHA; +#X text 70 498 19=GL_ONE_MINUS_SRC1_ALPHA; +#X obj 477 210 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X floatatom 501 210 2 0 19 0 - - -; +#X connect 11 0 12 0; +#X connect 12 0 11 0; +#X connect 16 0 27 0; +#X connect 21 0 20 0; +#X connect 22 0 28 0; +#X connect 25 0 28 1; +#X connect 26 0 22 0; +#X connect 28 0 21 0; +#X connect 29 0 16 0; +#X connect 30 0 21 0; +#X connect 31 0 30 0; +#X connect 32 0 22 1; +#X connect 33 0 32 0; +#X connect 34 0 33 0; +#X connect 58 0 21 0; +#X connect 59 0 21 1; diff --git a/Gem/help/ambient-help.pd b/Gem/help/ambient-help.pd new file mode 100644 index 0000000..b57f8b6 --- /dev/null +++ b/Gem/help/ambient-help.pd @@ -0,0 +1,68 @@ +#N canvas 260 145 639 369 10; +#X text 452 8 GEM object; +#X obj 8 196 cnv 15 430 130 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 39 198 Inlets:; +#X text 63 211 Inlet 1: gemlist; +#X text 39 252 Outlets:; +#X text 57 265 Outlet 1: gemlist; +#X obj 8 146 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 145 Arguments:; +#X obj 8 76 cnv 15 430 60 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 449 77 cnv 15 170 250 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X text 453 60 Example:; +#X obj 514 254 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 197 134 destroy; +#X msg 132 112 reset \, lighting 1 \, create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 519 293 pd gemwin; +#X msg 519 274 create; +#X text 515 253 Create window:; +#X text 71 31 Class: manipulation object; +#X obj 450 118 cnv 15 160 60 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 451 84 gemhead; +#X text 29 77 Description: ambient colouring; +#X obj 451 193 cube; +#X obj 500 192 gemhead; +#X obj 500 230 world_light; +#X obj 500 211 rotate 180 1 0 0; +#X text 62 156 a list of 3 (RGB) or 4 (RGBA) float-values.; +#X text 60 171 defaults: 0.2 0.2 0.2 1; +#X text 22 91 [ambient] accepts a gemList and sets the ambient-color +for all subsequent vertex-operations. You have to enable lighting to +see any effects.; +#X text 50 12 Synopsis: [ambient]; +#X obj 451 156 ambient 0 1 0; +#X msg 478 130 0.4 0.8 1; +#X text 63 229 Inlet 2: list: 3(RGB) or 4(RGBA) float values; +#X floatatom 549 193 5 0 0 0 - - -; +#X obj 84 332 ambientRGB; +#X text 21 332 see also:; +#X connect 12 0 13 0; +#X connect 13 0 12 0; +#X connect 17 0 27 0; +#X connect 20 0 22 0; +#X connect 22 0 21 0; +#X connect 27 0 19 0; +#X connect 28 0 27 1; +#X connect 30 0 22 1; diff --git a/Gem/help/ambientRGB-help.pd b/Gem/help/ambientRGB-help.pd new file mode 100644 index 0000000..128ad0f --- /dev/null +++ b/Gem/help/ambientRGB-help.pd @@ -0,0 +1,77 @@ +#N canvas 4 49 641 366 10; +#X text 452 8 GEM object; +#X obj 8 196 cnv 15 430 130 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 39 198 Inlets:; +#X text 63 211 Inlet 1: gemlist; +#X text 39 292 Outlets:; +#X text 57 305 Outlet 1: gemlist; +#X obj 8 146 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 145 Arguments:; +#X obj 8 76 cnv 15 430 60 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 449 77 cnv 15 170 250 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X text 453 60 Example:; +#X obj 514 254 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 197 134 destroy; +#X msg 132 112 reset \, lighting 1 \, create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 519 293 pd gemwin; +#X msg 519 274 create; +#X text 515 253 Create window:; +#X text 71 31 Class: manipulation object; +#X obj 450 118 cnv 15 160 60 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 451 84 gemhead; +#X text 29 77 Description: ambient colouring; +#X obj 451 193 cube; +#X obj 500 192 gemhead; +#X obj 500 230 world_light; +#X text 50 12 Synopsis: [ambientRGB]; +#X text 22 91 [ambientRGB] accepts a gemList and sets the ambient-color +for all subsequent vertex-operations. You have to enable lighting to +see any effects.; +#X text 62 156 a list of 3 (RGB) or 4 (RGBA) float-values.; +#X text 60 171 defaults: 0.2 0.2 0.2 1; +#X text 63 229 Inlet 2: float: red value; +#X text 63 244 Inlet 3: float: green value; +#X text 63 259 Inlet 4: float: blue value; +#X text 63 274 Inlet 5: float: alpha value; +#X obj 451 156 ambientRGB 0 1 0; +#X floatatom 477 122 3 0 1 0 - - -; +#X floatatom 504 122 3 0 1 0 - - -; +#X floatatom 531 122 3 0 1 0 - - -; +#X floatatom 558 122 3 0 1 0 - - -; +#X floatatom 548 192 5 0 0 0 - - -; +#X obj 500 211 rotate 70 1 0 0; +#X text 20 333 see also:; +#X obj 93 332 ambient; +#X connect 12 0 13 0; +#X connect 13 0 12 0; +#X connect 17 0 30 0; +#X connect 20 0 36 0; +#X connect 30 0 19 0; +#X connect 31 0 30 1; +#X connect 32 0 30 2; +#X connect 33 0 30 3; +#X connect 34 0 30 4; +#X connect 35 0 36 1; +#X connect 36 0 21 0; diff --git a/Gem/help/camera-help.pd b/Gem/help/camera-help.pd new file mode 100644 index 0000000..9b0d5f8 --- /dev/null +++ b/Gem/help/camera-help.pd @@ -0,0 +1,81 @@ +#N canvas 0 22 630 494 10; +#X obj 179 157 camera; +#X obj 179 45 gemhead; +#X obj 162 82 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 185 63 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 234 108 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X obj 260 86 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X msg 234 124 left \$1; +#X msg 260 102 right \$1; +#X obj 75 120 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 101 98 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X msg 101 114 up \$1; +#X msg 75 136 down \$1; +#X msg 267 58 reset; +#X msg 185 80 forward \$1; +#X msg 162 98 reverse \$1; +#X msg 66 252 speed \$1; +#X floatatom 66 234 5 0 0 0 - - -; +#X floatatom 67 195 5 0 0 0 - - -; +#X msg 379 150 lookX \$1; +#X msg 379 187 lookY \$1; +#X msg 379 223 lookZ \$1; +#X floatatom 379 134 5 0 0 0 - - -; +#X floatatom 379 207 5 0 0 0 - - -; +#X floatatom 379 170 5 0 0 0 - - -; +#X msg 67 213 distance \$1; +#X obj 170 305 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 112 destroy; +#X msg 132 112 create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 175 344 pd gemwin; +#X msg 175 325 create; +#X text 171 304 Create window:; +#X connect 1 0 0 0; +#X connect 2 0 14 0; +#X connect 3 0 13 0; +#X connect 4 0 6 0; +#X connect 5 0 7 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 11 0; +#X connect 9 0 10 0; +#X connect 10 0 0 0; +#X connect 11 0 0 0; +#X connect 12 0 0 0; +#X connect 13 0 0 0; +#X connect 14 0 0 0; +#X connect 15 0 0 0; +#X connect 16 0 15 0; +#X connect 17 0 24 0; +#X connect 18 0 0 0; +#X connect 19 0 0 0; +#X connect 20 0 0 0; +#X connect 21 0 18 0; +#X connect 22 0 20 0; +#X connect 23 0 19 0; +#X connect 24 0 0 0; +#X connect 26 0 27 0; +#X connect 27 0 26 0; diff --git a/Gem/help/circle-help.pd b/Gem/help/circle-help.pd new file mode 100644 index 0000000..b8370dd --- /dev/null +++ b/Gem/help/circle-help.pd @@ -0,0 +1,65 @@ +#N canvas 291 154 710 345 10; +#X text 33 14 Synopsis: [circle]; +#X text 54 30 Class: geometric object; +#X text 525 29 Example:; +#X obj 7 65 cnv 15 450 90 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 7 69 Description: Renders a circle.; +#X text 16 86 The circle object renders a circle flat disc at the current +position with current color. The look of the circle can be changed +with the draw message \, its size can be changed via the second inlet. +; +#X obj 8 216 cnv 15 450 100 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 9 221 Inlets:; +#X obj 8 166 cnv 15 450 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 165 Arguments:; +#X text 27 261 Inlet 2: float: size; +#X text 452 8 GEM object; +#X text 27 233 Inlet 1: gemlist; +#X text 9 280 Outlets:; +#X text 21 293 Outlet 1: gemlist; +#X text 63 177 size of the circle; +#X obj 519 47 cnv 15 170 250 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 584 224 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 112 destroy; +#X msg 132 112 create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 589 263 pd gemwin; +#X msg 589 244 create; +#X text 585 223 Create window:; +#X obj 525 80 cnv 15 150 100 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 593 159 circle; +#X msg 535 95 draw line; +#X msg 535 116 draw fill; +#X msg 535 138 draw point; +#X obj 593 54 gemhead; +#X floatatom 626 130 5 0 0 2 size - -; +#X text 64 191 default: 1; +#X text 27 247 Inlet 1: message: draw [line|fill|point|default]; +#X connect 18 0 19 0; +#X connect 19 0 18 0; +#X connect 23 0 22 0; +#X connect 24 0 22 0; +#X connect 25 0 22 0; +#X connect 26 0 22 0; +#X connect 27 0 22 1; diff --git a/Gem/help/color-help.pd b/Gem/help/color-help.pd new file mode 100644 index 0000000..b797ca4 --- /dev/null +++ b/Gem/help/color-help.pd @@ -0,0 +1,62 @@ +#N canvas 48 102 639 342 10; +#X text 452 8 GEM object; +#X obj 8 196 cnv 15 430 130 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 39 198 Inlets:; +#X text 63 211 Inlet 1: gemlist; +#X text 39 292 Outlets:; +#X text 57 305 Outlet 1: gemlist; +#X obj 8 146 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 145 Arguments:; +#X obj 8 66 cnv 15 430 70 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 449 66 cnv 15 170 200 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X text 453 49 Example:; +#X obj 510 183 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 197 134 destroy; +#X msg 132 112 reset \, create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 515 222 pd gemwin; +#X msg 515 203 create; +#X text 511 182 Create window:; +#X text 71 31 Class: manipulation object; +#X obj 450 107 cnv 15 160 60 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 451 73 gemhead; +#X obj 451 182 cube; +#X text 62 156 a list of 3 (RGB) or 4 (RGBA) float-values.; +#X text 60 171 defaults: 0 0 0 1; +#X obj 451 145 color 0 1 0; +#X msg 487 116 0 0 1; +#X text 63 229 Inlet 2: list: 3(RGB) or 4(RGBA) float values; +#X text 22 81 [color] sets the colour of all subsequent shape and vertex +operations until reset by another [color]/[colorRGB] object. If you +set the alpha-value \, you will need an [alpha] object to enable alpha-blending +; +#X text 50 12 Synopsis: [color]; +#X text 29 67 Description: colouring; +#X text 449 272 see also:; +#X obj 452 301 colorRGB; +#X connect 12 0 13 0; +#X connect 13 0 12 0; +#X connect 17 0 21 0; +#X connect 21 0 18 0; +#X connect 22 0 21 1; diff --git a/Gem/help/colorRGB-help.pd b/Gem/help/colorRGB-help.pd new file mode 100644 index 0000000..f55a268 --- /dev/null +++ b/Gem/help/colorRGB-help.pd @@ -0,0 +1,71 @@ +#N canvas 42 24 639 342 10; +#X text 452 8 GEM object; +#X obj 8 196 cnv 15 430 130 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 39 198 Inlets:; +#X text 63 211 Inlet 1: gemlist; +#X text 39 292 Outlets:; +#X text 57 305 Outlet 1: gemlist; +#X obj 8 146 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 145 Arguments:; +#X obj 8 66 cnv 15 430 70 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 449 66 cnv 15 170 200 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X text 453 49 Example:; +#X obj 514 190 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 197 134 destroy; +#X msg 132 112 reset \, create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 519 229 pd gemwin; +#X msg 519 210 create; +#X text 515 189 Create window:; +#X text 71 31 Class: manipulation object; +#X obj 450 107 cnv 15 160 60 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 451 73 gemhead; +#X obj 451 182 cube; +#X text 62 156 a list of 3 (RGB) or 4 (RGBA) float-values.; +#X text 63 229 Inlet 2: float: red value; +#X text 63 244 Inlet 3: float: green value; +#X text 63 259 Inlet 4: float: blue value; +#X text 63 274 Inlet 5: float: alpha value; +#X floatatom 479 111 3 0 1 0 - - -; +#X floatatom 508 111 3 0 1 0 - - -; +#X floatatom 536 111 3 0 1 0 - - -; +#X floatatom 565 111 3 0 1 0 - - -; +#X text 60 171 defaults: 0 0 0 1; +#X text 50 12 Synopsis: [colorRGB]; +#X obj 451 145 colorRGB 0 1 0; +#X text 29 67 Description: colouring; +#X text 22 81 [colorRGB] sets the colour of all subsequent shape and +vertex operations until reset by another [color]/[colorRGB] object. +If you set the alpha-value \, you will need an [alpha] object to enable +alpha-blending; +#X text 447 272 see also:; +#X obj 449 297 color; +#X connect 12 0 13 0; +#X connect 13 0 12 0; +#X connect 17 0 30 0; +#X connect 24 0 30 1; +#X connect 25 0 30 2; +#X connect 26 0 30 3; +#X connect 27 0 30 4; +#X connect 30 0 18 0; diff --git a/Gem/help/colorSquare-help.pd b/Gem/help/colorSquare-help.pd new file mode 100644 index 0000000..aac9afc --- /dev/null +++ b/Gem/help/colorSquare-help.pd @@ -0,0 +1,82 @@ +#N canvas 130 41 696 468 10; +#X text 54 30 Class: geometric object; +#X obj 479 107 cnv 15 200 250 empty empty empty 20 12 0 14 -228992 +-66577 0; +#X obj 494 284 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 112 destroy; +#X msg 132 112 create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 499 323 pd gemwin; +#X msg 499 304 create; +#X text 495 283 Create window:; +#X obj 7 65 cnv 15 450 80 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 8 196 cnv 15 450 200 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 9 201 Inlets:; +#X obj 8 156 cnv 15 450 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 155 Arguments:; +#X text 27 227 Inlet 1: message: draw [line|fill|point]; +#X text 27 241 Inlet 2: float: size; +#X text 452 8 GEM object; +#X text 27 213 Inlet 1: gemlist; +#X text 9 350 Outlets:; +#X text 21 363 Outlet 1: gemlist; +#X text 485 89 Example:; +#X obj 482 137 cnv 15 190 110 empty empty empty 20 12 0 14 -81876 -66577 +0; +#X text 33 14 Synopsis: [colorSquare]; +#X obj 534 252 cnv 15 100 30 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X msg 485 145 draw line; +#X msg 485 166 draw fill; +#X msg 485 188 draw point; +#X obj 543 114 gemhead; +#X floatatom 557 143 5 0 0 1 size - -; +#X text 7 69 Description: Renders a square with several colors.; +#X text 63 166 size of the square; +#X obj 543 259 colorSquare; +#X msg 615 222 1 1 0; +#X msg 600 203 0 0 1; +#X msg 586 184 0 1 0; +#X msg 571 165 1 0 0; +#X text 27 268 Inlet 3: list: 3(RGB) float values for the lowerleft +corner; +#X text 27 285 Inlet 4: list: 3(RGB) float values for the lowerright +corner; +#X text 27 305 Inlet 5: list: 3(RGB) float values for the upperright +corner; +#X text 27 322 Inlet 6: list: 3(RGB) float values for the upperleft +corner; +#X text 16 86 The colorSquare object renders a square at the current +position. The size of the square can be changed via the second inlet. +The colors of the 4 corners can be specified separately and are drawn +as gradients.; +#X connect 3 0 4 0; +#X connect 4 0 3 0; +#X connect 21 0 28 0; +#X connect 22 0 28 0; +#X connect 23 0 28 0; +#X connect 24 0 28 0; +#X connect 25 0 28 1; +#X connect 29 0 28 5; +#X connect 30 0 28 4; +#X connect 31 0 28 3; +#X connect 32 0 28 2; diff --git a/Gem/help/cone-help.pd b/Gem/help/cone-help.pd new file mode 100644 index 0000000..a08b413 --- /dev/null +++ b/Gem/help/cone-help.pd @@ -0,0 +1,69 @@ +#N canvas 290 157 710 345 10; +#X text 54 30 Class: geometric object; +#X obj 479 47 cnv 15 170 250 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 544 224 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 112 destroy; +#X msg 132 112 create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 549 263 pd gemwin; +#X msg 549 244 create; +#X text 545 223 Create window:; +#X text 485 29 Example:; +#X obj 7 65 cnv 15 450 80 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 8 216 cnv 15 450 100 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 9 221 Inlets:; +#X obj 8 146 cnv 15 450 50 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 145 Arguments:; +#X text 27 261 Inlet 2: float: size; +#X text 452 8 GEM object; +#X text 27 233 Inlet 1: gemlist; +#X text 9 287 Outlets:; +#X text 21 300 Outlet 1: gemlist; +#X text 33 14 Synopsis: [cone]; +#X text 7 69 Description: Renders a cone.; +#X text 14 86 The cone object renders a cone at the current position +with current color. The look of the cone can be changed with the draw +message \, its size can be changed via the second inlet.; +#X obj 542 130 cnv 15 100 80 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X msg 485 65 draw line; +#X msg 485 86 draw fill; +#X msg 485 108 draw point; +#X obj 553 54 gemhead; +#X floatatom 569 144 5 0 0 2 size - -; +#X obj 553 79 rotateXYZ 90 0 0; +#X floatatom 586 171 5 0 0 2 segments - -; +#X text 27 272 Inlet 3: int: number of segments; +#X obj 553 189 cone 1; +#X text 64 180 defaults: 1 10; +#X text 63 162 size of the cone \, number of segments; +#X text 27 247 Inlet 1: message: draw [line|fill|point|default]; +#X connect 3 0 4 0; +#X connect 4 0 3 0; +#X connect 21 0 29 0; +#X connect 22 0 29 0; +#X connect 23 0 29 0; +#X connect 24 0 26 0; +#X connect 25 0 29 1; +#X connect 26 0 29 0; +#X connect 27 0 29 2; diff --git a/Gem/help/cube-help.pd b/Gem/help/cube-help.pd new file mode 100644 index 0000000..d80e0e1 --- /dev/null +++ b/Gem/help/cube-help.pd @@ -0,0 +1,64 @@ +#N canvas 289 160 710 345 10; +#X text 54 30 Class: geometric object; +#X obj 519 47 cnv 15 170 250 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 584 224 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 112 destroy; +#X msg 132 112 create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 589 263 pd gemwin; +#X msg 589 244 create; +#X text 585 223 Create window:; +#X obj 7 65 cnv 15 450 100 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 8 216 cnv 15 450 100 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 9 221 Inlets:; +#X obj 8 176 cnv 15 450 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 175 Arguments:; +#X text 27 247 Inlet 1: message: draw [line|fill|point]; +#X text 27 261 Inlet 2: float: size; +#X text 452 8 GEM object; +#X text 27 233 Inlet 1: gemlist; +#X text 9 280 Outlets:; +#X text 21 293 Outlet 1: gemlist; +#X text 33 14 Synopsis: [cube]; +#X text 7 69 Description: Renders a cube.; +#X text 63 186 size of the cube; +#X text 16 86 The cube object renders a cube at the current position +with current color. The size of the cube can be changed via the second +inlet.; +#X text 525 29 Example:; +#X obj 522 78 cnv 15 150 100 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X msg 525 128 draw point; +#X obj 593 54 gemhead; +#X floatatom 624 114 5 0 0 0 - - -; +#X text 624 98 size; +#X obj 593 159 cube; +#X msg 525 106 draw line; +#X msg 525 85 draw default; +#X connect 3 0 4 0; +#X connect 4 0 3 0; +#X connect 23 0 27 0; +#X connect 24 0 27 0; +#X connect 25 0 27 1; +#X connect 28 0 27 0; +#X connect 29 0 27 0; diff --git a/Gem/help/cuboid-help.pd b/Gem/help/cuboid-help.pd new file mode 100644 index 0000000..428b791 --- /dev/null +++ b/Gem/help/cuboid-help.pd @@ -0,0 +1,73 @@ +#N canvas 289 160 710 363 10; +#X text 54 30 Class: geometric object; +#X obj 519 47 cnv 15 170 250 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 584 224 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 112 destroy; +#X msg 132 112 create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 589 263 pd gemwin; +#X msg 589 244 create; +#X text 585 223 Create window:; +#X text 525 29 Example:; +#X obj 7 65 cnv 15 450 80 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 8 216 cnv 15 450 130 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 9 221 Inlets:; +#X obj 8 156 cnv 15 450 50 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 155 Arguments:; +#X text 27 247 Inlet 1: message: draw [line|fill|point]; +#X text 452 8 GEM object; +#X text 27 233 Inlet 1: gemlist; +#X text 9 310 Outlets:; +#X text 21 323 Outlet 1: gemlist; +#X obj 522 82 cnv 15 160 120 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X msg 525 95 draw line; +#X msg 525 116 draw fill; +#X msg 525 138 draw point; +#X obj 593 54 gemhead; +#X floatatom 605 104 5 0 0 0 - - -; +#X obj 593 179 cuboid; +#X floatatom 617 134 5 0 0 0 - - -; +#X floatatom 630 162 5 0 0 0 - - -; +#X text 605 88 length; +#X text 617 118 height; +#X text 630 146 depth; +#X text 63 167 dimensions of the cuboid (length width height); +#X text 7 69 Description: Renders a cuboid box.; +#X text 16 86 The cuboid object renders a cuboid (box) at the current +position with current color. The dimensions of the cuboid can be changed +via the last three inlets.; +#X text 33 14 Synopsis: [cuboid]; +#X text 27 260 Inlet 2: float: length (dimX); +#X text 27 275 Inlet 3: float: height (dimY); +#X text 27 289 Inlet 4: float: depth (dimZ); +#X text 65 181 default: 1 1 0; +#X connect 3 0 4 0; +#X connect 4 0 3 0; +#X connect 18 0 23 0; +#X connect 19 0 23 0; +#X connect 20 0 23 0; +#X connect 21 0 23 0; +#X connect 22 0 23 1; +#X connect 24 0 23 2; +#X connect 25 0 23 3; diff --git a/Gem/help/curve-help.pd b/Gem/help/curve-help.pd new file mode 100644 index 0000000..6922779 --- /dev/null +++ b/Gem/help/curve-help.pd @@ -0,0 +1,112 @@ +#N canvas 65 18 762 461 10; +#X text 54 30 Class: geometric object; +#X text 475 39 Example:; +#X obj 7 65 cnv 15 450 100 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 8 216 cnv 15 450 180 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 9 221 Inlets:; +#X obj 8 176 cnv 15 450 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 175 Arguments:; +#X text 452 8 GEM object; +#X text 27 233 Inlet 1: gemlist; +#X text 9 358 Outlets:; +#X text 21 371 Outlet 1: gemlist; +#X obj 469 58 cnv 15 200 295 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 568 359 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 132 112 create \, 1; +#X msg 198 112 destroy \, reset; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 573 398 pd gemwin; +#X msg 573 379 create; +#X text 569 358 Create window:; +#X obj 474 112 cnv 15 190 200 empty empty empty 20 12 0 14 -85973 -66577 +0; +#X obj 521 319 cnv 15 100 30 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X text 21 138 Each (additional) inlet will accept an X Y Z point which +is where the control point will be.; +#X text 28 323 Inlet 2: list: 3(XYZ) float values; +#X text 28 344 Inlet N: list: 3(XYZ) float values; +#X text 52 330 ...; +#X text 33 14 Synopsis: [curve]; +#X text 7 69 Description: Renders a bezier-curve; +#X text 63 187 number of control-points of the curve (mandatory); +#X text 27 247 Inlet 1: message: draw [line|linestrip|fill|point|tri|tristrip|trifan|quad|quadstrip] +; +#X text 22 88 [curve] creates a bezier curve. The initial argument +is the number of control-points of the curve. There is no maximum number +of control-points.; +#X text 27 306 Inlet 1: message: res : interpolation-resolution(30) +; +#X text 27 293 Inlet 1: message: width : line-width(1); +#X obj 596 233 cnv 15 65 75 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X msg 479 163 draw line; +#X msg 479 118 draw fill; +#X msg 479 140 draw point; +#X obj 537 64 gemhead; +#X msg 585 115 1 1 0; +#X msg 593 135 1 -1 0; +#X floatatom 605 196 5 0 0 0 - - -; +#X msg 603 175 -2 1 0; +#X msg 599 155 -1 -1 -3; +#X msg 479 183 draw linestrip; +#X msg 479 203 draw tri; +#X msg 479 225 draw tristrip; +#X msg 478 248 draw trifan; +#X msg 478 269 draw quad; +#X msg 478 291 draw quadstrip; +#X obj 537 88 rotateXYZ; +#X floatatom 595 65 5 0 0 0 - - -; +#X obj 537 326 curve 5; +#X obj 608 89 loadbang; +#X floatatom 599 237 5 0 10 0 - - -; +#X msg 599 253 width \$1; +#X floatatom 600 274 5 0 100 0 - - -; +#X msg 600 291 res \$1; +#X msg 605 213 \$1 \$1 \$1; +#X connect 13 0 14 0; +#X connect 14 0 13 0; +#X connect 30 0 47 0; +#X connect 31 0 47 0; +#X connect 32 0 47 0; +#X connect 33 0 45 0; +#X connect 34 0 47 1; +#X connect 35 0 47 2; +#X connect 36 0 53 0; +#X connect 37 0 47 4; +#X connect 38 0 47 3; +#X connect 39 0 47 0; +#X connect 40 0 47 0; +#X connect 41 0 47 0; +#X connect 42 0 47 0; +#X connect 43 0 47 0; +#X connect 44 0 47 0; +#X connect 45 0 47 0; +#X connect 46 0 45 1; +#X connect 46 0 45 3; +#X connect 48 0 34 0; +#X connect 49 0 50 0; +#X connect 50 0 47 0; +#X connect 51 0 52 0; +#X connect 52 0 47 0; +#X connect 53 0 47 5; diff --git a/Gem/help/curve3d-help.pd b/Gem/help/curve3d-help.pd new file mode 100644 index 0000000..141d27a --- /dev/null +++ b/Gem/help/curve3d-help.pd @@ -0,0 +1,1659 @@ +#N canvas 362 96 968 580 10; +#X text 145 42 Class: geometric object; +#X obj 13 64 cnv 15 450 100 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 13 212 cnv 15 450 220 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 17 214 Inlets:; +#X obj 13 173 cnv 15 450 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 22 172 Arguments:; +#X text 32 229 Inlet 1: gemlist; +#X text 14 401 Outlets:; +#X text 28 413 Outlet 1: gemlist; +#X text 146 24 Synopsis: [curve3d]; +#X obj 475 63 cnv 15 480 500 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 845 484 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 455 304 gemwin 0; +#X obj 132 182 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 112 destroy; +#X msg 132 112 create \, 1; +#X obj 294 56 gemhead; +#X obj 294 76 world_light; +#X msg 207 155 lighting 1; +#X obj 207 134 loadbang; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 9 0; +#X connect 10 0 0 0; +#X connect 11 0 10 0; +#X restore 861 523 pd gemwin; +#X msg 861 504 create; +#X text 857 483 Create window:; +#X obj 796 74 cnv 15 150 150 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 796 234 cnv 15 150 150 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 486 74 cnv 15 300 310 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X msg 519 175 draw line; +#X msg 519 155 draw fill; +#X msg 519 195 draw point; +#X msg 536 300 width 1; +#X msg 536 321 width 4; +#X msg 519 216 draw line1; +#X msg 519 237 draw line2; +#X msg 519 258 draw line3; +#X msg 519 279 draw line4; +#X msg 657 169 draw control_line; +#X msg 657 190 draw control_line1; +#X msg 657 211 draw control_line2; +#X msg 657 232 draw control_fill; +#X msg 657 253 draw control_point; +#X msg 834 111 res 2 2; +#X msg 829 269 grid 2 10; +#X msg 834 132 res 3 3; +#X msg 829 290 grid 10 10; +#X msg 829 332 grid 40 40; +#X msg 834 153 res 5 5; +#X msg 834 174 res 1 4; +#X msg 829 311 grid 20 20; +#X text 592 92 draw style; +#X text 506 124 draw the curve; +#X obj 624 343 s curve3d; +#X obj 810 198 s curve3d; +#X obj 807 356 s curve3d; +#X obj 490 344 s curve3d; +#X text 660 139 of the curve; +#X text 647 125 draw control point; +#X obj 486 398 cnv 15 300 150 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 494 407 gemhead; +#X floatatom 522 450 5 0 0 0 - - -; +#X floatatom 557 450 5 0 0 0 - - -; +#X floatatom 593 450 5 0 0 0 - - -; +#X floatatom 562 408 5 0 0 0 - - -; +#X floatatom 610 408 5 0 0 0 - - -; +#X floatatom 659 408 5 0 0 0 - - -; +#X obj 494 471 rotateXYZ 0 0 0; +#X obj 494 428 translateXYZ -2.5 -2.5 -2; +#X obj 504 496 r curve3d; +#X text 809 91 control matrix; +#X text 804 78 resolution of the; +#X text 805 239 resolution of the; +#X text 826 250 curve grid; +#X text 28 389 Inlet 2: not used; +#X text 32 243 Inlet 1: message: draw [line|fill|point|...]; +#X obj 13 443 cnv 15 450 120 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 253 49 691 493 forme2 0; +#N canvas 0 0 353 257 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 28 92 pd tripleRnd; +#X msg 26 270 set 2 0 \$1 \$2 \$3; +#X msg 161 269 set 2 1 \$1 \$2 \$3; +#X msg 298 269 set 2 2 \$1 \$2 \$3; +#X msg 299 190 set 1 2 \$1 \$2 \$3; +#X msg 299 112 set 0 2 \$1 \$2 \$3; +#X msg 161 112 set 0 1 \$1 \$2 \$3; +#X msg 28 114 set 0 0 \$1 \$2 \$3; +#X msg 29 193 set 1 0 \$1 \$2 \$3; +#X msg 161 189 set 1 1 \$1 \$2 \$3; +#X msg 26 337 set 3 0 \$1 \$2 \$3; +#X msg 162 336 set 3 1 \$1 \$2 \$3; +#X msg 298 338 set 3 2 \$1 \$2 \$3; +#X msg 423 111 set 0 3 \$1 \$2 \$3; +#X msg 424 189 set 1 3 \$1 \$2 \$3; +#X msg 424 265 set 2 3 \$1 \$2 \$3; +#X msg 423 335 set 3 3 \$1 \$2 \$3; +#X msg 544 109 set 0 4 \$1 \$2 \$3; +#X msg 545 187 set 1 4 \$1 \$2 \$3; +#X msg 540 263 set 2 4 \$1 \$2 \$3; +#X msg 543 333 set 3 4 \$1 \$2 \$3; +#X msg 28 399 set 4 0 \$1 \$2 \$3; +#X msg 162 392 set 4 1 \$1 \$2 \$3; +#X msg 299 393 set 4 2 \$1 \$2 \$3; +#X msg 424 391 set 4 3 \$1 \$2 \$3; +#X msg 545 389 set 4 4 \$1 \$2 \$3; +#X obj 10 445 outlet; +#X obj 36 15 inlet; +#X obj 36 39 s bang_forme2; +#N canvas 0 0 355 259 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 161 90 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 299 91 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 423 89 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 544 86 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 29 169 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 162 167 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 300 168 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 424 166 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 545 163 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 28 247 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 161 245 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 299 246 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 422 244 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 544 241 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 28 318 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 161 316 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 299 317 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 423 315 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 544 312 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 29 374 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 162 372 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 300 373 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 424 371 pd tripleRnd; +#N canvas 0 0 351 255 tripleRnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 219 outlet; +#X obj 92 64 random 100; +#X obj 92 122 pack 0 1000; +#X obj 92 145 line; +#X obj 170 64 random 100; +#X obj 170 122 pack 0 1000; +#X obj 170 145 line; +#X obj 12 189 pack f f f; +#X obj 12 90 / 20; +#X obj 92 91 / 20; +#X obj 170 91 / 20; +#X obj 12 12 r bang_forme2; +#X obj 231 9 r line_forme2; +#X connect 0 0 11 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 4 0 12 0; +#X connect 5 0 6 0; +#X connect 6 0 10 1; +#X connect 7 0 13 0; +#X connect 8 0 9 0; +#X connect 9 0 10 2; +#X connect 10 0 3 0; +#X connect 11 0 1 0; +#X connect 12 0 5 0; +#X connect 13 0 8 0; +#X connect 14 0 0 0; +#X connect 14 0 4 0; +#X connect 14 0 7 0; +#X connect 15 0 1 1; +#X connect 15 0 5 1; +#X connect 15 0 8 1; +#X restore 545 368 pd tripleRnd; +#X connect 0 0 7 0; +#X connect 1 0 26 0; +#X connect 2 0 26 0; +#X connect 3 0 26 0; +#X connect 4 0 26 0; +#X connect 5 0 26 0; +#X connect 6 0 26 0; +#X connect 7 0 26 0; +#X connect 8 0 26 0; +#X connect 9 0 26 0; +#X connect 10 0 26 0; +#X connect 11 0 26 0; +#X connect 12 0 26 0; +#X connect 13 0 26 0; +#X connect 14 0 26 0; +#X connect 15 0 26 0; +#X connect 16 0 26 0; +#X connect 17 0 26 0; +#X connect 18 0 26 0; +#X connect 19 0 26 0; +#X connect 20 0 26 0; +#X connect 21 0 26 0; +#X connect 22 0 26 0; +#X connect 23 0 26 0; +#X connect 24 0 26 0; +#X connect 25 0 26 0; +#X connect 27 0 28 0; +#X connect 29 0 6 0; +#X connect 30 0 5 0; +#X connect 31 0 13 0; +#X connect 32 0 17 0; +#X connect 33 0 8 0; +#X connect 34 0 9 0; +#X connect 35 0 4 0; +#X connect 36 0 14 0; +#X connect 37 0 18 0; +#X connect 38 0 1 0; +#X connect 39 0 2 0; +#X connect 40 0 3 0; +#X connect 41 0 15 0; +#X connect 42 0 19 0; +#X connect 43 0 10 0; +#X connect 44 0 11 0; +#X connect 45 0 12 0; +#X connect 46 0 16 0; +#X connect 47 0 20 0; +#X connect 48 0 21 0; +#X connect 49 0 22 0; +#X connect 50 0 23 0; +#X connect 51 0 24 0; +#X connect 52 0 25 0; +#X restore 136 509 pd forme2; +#X obj 136 490 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 57 490 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#N canvas 253 49 697 499 forme1 0; +#X obj 76 418 outlet; +#X obj 36 15 inlet; +#N canvas 0 0 251 239 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 28 92 pd Rnd; +#X msg 28 114 set 0 0 0 0 \$1; +#X msg 126 115 set 0 1 0 1 \$1; +#X msg 227 116 set 0 2 0 2 \$1; +#X msg 323 117 set 0 3 0 3 \$1; +#X msg 419 116 set 0 4 0 4 \$1; +#X msg 47 159 set 1 0 1 0 \$1; +#X msg 145 160 set 1 1 1 1 \$1; +#X msg 246 161 set 1 2 1 2 \$1; +#X msg 342 162 set 1 3 1 3 \$1; +#X msg 438 161 set 1 4 1 4 \$1; +#X msg 68 202 set 2 0 2 0 \$1; +#X msg 166 203 set 2 1 2 1 \$1; +#X msg 267 204 set 2 2 2 2 \$1; +#X msg 363 205 set 2 3 2 3 \$1; +#X msg 459 204 set 2 4 2 4 \$1; +#X msg 97 249 set 3 0 3 0 \$1; +#X msg 195 250 set 3 1 3 1 \$1; +#X msg 297 251 set 3 2 3 2 \$1; +#X msg 393 252 set 3 3 3 3 \$1; +#X msg 488 251 set 3 4 3 4 \$1; +#X msg 121 296 set 4 0 4 0 \$1; +#X msg 219 297 set 4 1 4 1 \$1; +#X msg 320 298 set 4 2 4 2 \$1; +#X msg 416 299 set 4 3 4 3 \$1; +#X msg 512 298 set 4 4 4 4 \$1; +#X obj 36 39 s bang_forme3; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 127 92 pd Rnd; +#N canvas 0 0 251 239 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 227 93 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 326 93 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 420 94 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 48 138 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 147 138 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 247 139 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 346 139 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 440 140 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 68 181 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 167 181 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 267 182 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 366 182 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 460 183 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 97 227 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 196 227 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 296 228 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 395 228 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 489 229 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 121 275 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 220 275 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 320 276 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 419 276 pd Rnd; +#N canvas 0 0 249 237 Rnd 0; +#X obj 12 63 random 100; +#X obj 12 121 pack 0 1000; +#X obj 12 149 line; +#X obj 12 173 outlet; +#X obj 12 90 / 20; +#X obj 12 12 r bang_forme3; +#X obj 105 11 r line_forme3; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 1 1; +#X restore 513 277 pd Rnd; +#X connect 1 0 28 0; +#X connect 2 0 3 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 5 0 0 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X connect 9 0 0 0; +#X connect 10 0 0 0; +#X connect 11 0 0 0; +#X connect 12 0 0 0; +#X connect 13 0 0 0; +#X connect 14 0 0 0; +#X connect 15 0 0 0; +#X connect 16 0 0 0; +#X connect 17 0 0 0; +#X connect 18 0 0 0; +#X connect 19 0 0 0; +#X connect 20 0 0 0; +#X connect 21 0 0 0; +#X connect 22 0 0 0; +#X connect 23 0 0 0; +#X connect 24 0 0 0; +#X connect 25 0 0 0; +#X connect 26 0 0 0; +#X connect 27 0 0 0; +#X connect 29 0 4 0; +#X connect 30 0 5 0; +#X connect 31 0 6 0; +#X connect 32 0 7 0; +#X connect 33 0 8 0; +#X connect 34 0 9 0; +#X connect 35 0 10 0; +#X connect 36 0 11 0; +#X connect 37 0 12 0; +#X connect 38 0 13 0; +#X connect 39 0 14 0; +#X connect 40 0 15 0; +#X connect 41 0 16 0; +#X connect 42 0 17 0; +#X connect 43 0 18 0; +#X connect 44 0 19 0; +#X connect 45 0 20 0; +#X connect 46 0 21 0; +#X connect 47 0 22 0; +#X connect 48 0 23 0; +#X connect 49 0 24 0; +#X connect 50 0 25 0; +#X connect 51 0 26 0; +#X connect 52 0 27 0; +#X restore 57 509 pd forme1; +#X text 77 489 shape1; +#X text 156 489 shape2; +#X obj 57 469 loadbang; +#X floatatom 214 464 5 0 0 0 - - -; +#X msg 214 506 set 3 2 \$1 \$2 \$3; +#X floatatom 247 464 5 0 0 0 - - -; +#N canvas 0 0 173 130 pak 0; +#X obj 73 39 t b f; +#X obj 108 39 t b f; +#X obj 38 19 inlet; +#X obj 38 69 pack f f f; +#X obj 38 90 outlet; +#X obj 73 19 inlet; +#X obj 108 19 inlet; +#X connect 0 0 3 0; +#X connect 0 1 3 1; +#X connect 1 0 3 0; +#X connect 1 1 3 2; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 5 0 0 0; +#X connect 6 0 1 0; +#X restore 214 484 pd pak f f f; +#X floatatom 281 464 5 0 0 0 - - -; +#X obj 214 532 s exemples_shape; +#X obj 136 532 s curve3d; +#X obj 57 532 s curve3d; +#X text 13 68 Description: Renders a 3d bezier curve.; +#X text 68 183 size of the control matrix (default : 2 2); +#X obj 494 521 curve3d 5 5; +#X text 276 3 Create a 3D bezier curve \, using a matrix of control +points; +#X text 31 336 Inlet 1 : message: set Mx My X Y Z; +#X text 31 296 Inlet 1: message: grid X Y; +#X text 31 259 Inlet 1: message: res X Y; +#X text 53 272 This message is use for changing the size of the control +matrix (X \, Y are 2 int); +#X text 52 310 This message is use for changing the subdivision of +the displayed curve (X Y are 2 int); +#X text 53 349 This message can be use to set the position of a control +point. (Mx \, My : position of the point in the matrix. X \, Y \, Z +: position of this control point; +#X text 21 447 exemples :; +#X text 29 87 The curve3d object renders a curve at the current position +with current color or texture. The shape of the curve is cotrolled +from a matrix. Note that control points are not necessary part of the +curve.; +#X connect 12 0 13 0; +#X connect 13 0 12 0; +#X connect 18 0 45 0; +#X connect 19 0 45 0; +#X connect 20 0 45 0; +#X connect 21 0 45 0; +#X connect 22 0 45 0; +#X connect 23 0 45 0; +#X connect 24 0 45 0; +#X connect 25 0 45 0; +#X connect 26 0 45 0; +#X connect 27 0 42 0; +#X connect 28 0 42 0; +#X connect 29 0 42 0; +#X connect 30 0 42 0; +#X connect 31 0 42 0; +#X connect 32 0 43 0; +#X connect 33 0 44 0; +#X connect 34 0 43 0; +#X connect 35 0 44 0; +#X connect 36 0 44 0; +#X connect 37 0 43 0; +#X connect 38 0 43 0; +#X connect 39 0 44 0; +#X connect 49 0 57 0; +#X connect 50 0 56 1; +#X connect 51 0 56 2; +#X connect 52 0 56 3; +#X connect 53 0 57 1; +#X connect 54 0 57 2; +#X connect 55 0 57 3; +#X connect 56 0 83 0; +#X connect 57 0 56 0; +#X connect 58 0 83 0; +#X connect 66 0 79 0; +#X connect 67 0 66 0; +#X connect 68 0 69 0; +#X connect 69 0 80 0; +#X connect 72 0 68 0; +#X connect 73 0 76 0; +#X connect 74 0 78 0; +#X connect 75 0 76 1; +#X connect 76 0 74 0; +#X connect 77 0 76 2; diff --git a/Gem/help/cylinder-help.pd b/Gem/help/cylinder-help.pd new file mode 100644 index 0000000..e9781f7 --- /dev/null +++ b/Gem/help/cylinder-help.pd @@ -0,0 +1,70 @@ +#N canvas 291 154 710 345 10; +#X text 54 30 Class: geometric object; +#X obj 479 47 cnv 15 170 250 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 544 224 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 112 destroy; +#X msg 132 112 create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 549 263 pd gemwin; +#X msg 549 244 create; +#X text 545 223 Create window:; +#X text 485 29 Example:; +#X obj 7 65 cnv 15 450 80 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 8 216 cnv 15 450 100 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 9 221 Inlets:; +#X obj 8 156 cnv 15 450 50 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 155 Arguments:; +#X text 27 261 Inlet 2: float: size; +#X text 452 8 GEM object; +#X text 27 233 Inlet 1: gemlist; +#X text 9 287 Outlets:; +#X text 21 300 Outlet 1: gemlist; +#X obj 546 130 cnv 15 100 80 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X msg 485 65 draw line; +#X msg 485 86 draw fill; +#X msg 485 108 draw point; +#X obj 553 54 gemhead; +#X floatatom 575 144 5 0 0 2 size - -; +#X obj 553 79 rotateXYZ 90 0 0; +#X floatatom 598 172 3 0 0 2 segments - -; +#X text 27 272 Inlet 3: int: number of segments; +#X text 33 14 Synopsis: [cylinder]; +#X obj 553 189 cylinder; +#X text 7 69 Description: Renders a cylinder.; +#X text 14 86 The cylinder object renders a cylinder at the current +position with current color. The look of the cylinder can be changed +with the draw message \, its size can be changed via the second inlet. +; +#X text 63 167 size of the cylinder \, segments; +#X text 63 182 defaults: 1 \, 10; +#X text 27 247 Inlet 1: message: draw [line|fill|point|default]; +#X connect 3 0 4 0; +#X connect 4 0 3 0; +#X connect 18 0 27 0; +#X connect 19 0 27 0; +#X connect 20 0 27 0; +#X connect 21 0 23 0; +#X connect 22 0 27 1; +#X connect 23 0 27 0; +#X connect 24 0 27 2; diff --git a/Gem/help/depth-help.pd b/Gem/help/depth-help.pd new file mode 100644 index 0000000..83fe3d9 --- /dev/null +++ b/Gem/help/depth-help.pd @@ -0,0 +1,85 @@ +#N canvas 15 24 724 431 10; +#X obj 17 299 cnv 15 430 90 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 28 302 Inlets:; +#X text 28 339 Outlets:; +#X obj 17 264 cnv 15 430 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 26 263 Arguments:; +#X obj 17 69 cnv 15 430 190 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 46 352 Outlet 1: gemlist; +#X text 52 316 Inlet 1: gemlist; +#X text 466 15 GEM object; +#X obj 459 77 cnv 15 250 300 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X text 463 60 Example:; +#X obj 604 313 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 16 419 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 268 112 destroy; +#X msg 132 112 create \, 1; +#X obj 264 174 gemhead; +#X obj 264 200 world_light; +#X obj 238 68 r \$0-gemwin; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 9 0; +#X connect 10 0 0 0; +#X restore 609 352 pd gemwin; +#X msg 609 333 create; +#X text 605 312 Create window:; +#X obj 460 106 cnv 15 240 90 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 461 84 gemhead 51; +#X obj 461 172 depth; +#X text 60 22 Synopsis: [depth]; +#X text 81 41 Class: manips object; +#X text 27 72 Description: Activate / Deactivate depth test; +#X text 26 93 [depth] turns on and off depth test (also known as Z-buffering). +This is very useful if you are in single-buffer mode \, because then +a painting effect can be achieved. In double-buffered mode \, you probably +do not want to turn off the depth test \, unless you have taken control +of the rendering order by setting the priority of each gemhead (see +the gemhead example for explanation).; +#X obj 496 114 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X text 26 189 By default \, this object will turn OFF depth buffering +for the objects "below".; +#X text 72 274 float (0/1) : depth test on/off; +#X text 52 329 Inlet 1: float (0/1) : depth test on/off; +#X obj 461 293 cube; +#X obj 461 260 rotateXYZ 0 30 30; +#X floatatom 560 239 5 0 0 0 - - -; +#X floatatom 494 202 5 0 0 0 - - -; +#X floatatom 527 218 5 0 0 0 - - -; +#X obj 607 210 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X msg 607 229 lighting \$1; +#X obj 607 252 s \$0-gemwin; +#X text 630 210 lighting; +#X text 516 113 turn depth test on/off; +#X connect 12 0 13 0; +#X connect 13 0 12 0; +#X connect 16 0 17 0; +#X connect 17 0 27 0; +#X connect 22 0 17 0; +#X connect 27 0 26 0; +#X connect 28 0 27 3; +#X connect 29 0 27 1; +#X connect 30 0 27 2; +#X connect 31 0 32 0; +#X connect 32 0 33 0; diff --git a/Gem/help/diffuse-help.pd b/Gem/help/diffuse-help.pd new file mode 100644 index 0000000..a9c9d69 --- /dev/null +++ b/Gem/help/diffuse-help.pd @@ -0,0 +1,68 @@ +#N canvas 61 22 630 385 10; +#X text 452 8 GEM object; +#X obj 8 196 cnv 15 430 180 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 34 198 Inlets:; +#X text 58 211 Inlet 1: gemlist; +#X text 34 252 Outlets:; +#X text 52 265 Outlet 1: gemlist; +#X obj 8 146 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 145 Arguments:; +#X obj 8 76 cnv 15 430 60 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 449 77 cnv 15 170 250 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X text 453 60 Example:; +#X obj 514 254 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 197 134 destroy; +#X msg 132 112 reset \, lighting 1 \, create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 519 293 pd gemwin; +#X msg 519 274 create; +#X text 515 253 Create window:; +#X text 71 31 Class: manipulation object; +#X obj 450 118 cnv 15 160 60 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 451 84 gemhead; +#X obj 451 193 cube; +#X obj 500 192 gemhead; +#X obj 500 230 world_light; +#X text 62 156 a list of 3 (RGB) or 4 (RGBA) float-values.; +#X msg 478 130 0.4 0.8 1; +#X text 58 229 Inlet 2: list: 3(RGB) or 4(RGBA) float values; +#X text 50 12 Synopsis: [diffuse]; +#X text 29 77 Description: diffuse colouring; +#X text 61 170 defaults: 0.8 0.8 0.8 1; +#X text 22 91 [diffuse] accepts a gemList and sets the diffuse-color +for all subsequent vertex-operations. You have to enable lighting to +see any effects.; +#X floatatom 561 190 5 0 0 0 - - -; +#X obj 500 211 rotate 66 1 0 0; +#X obj 451 156 diffuse 0 1 0; +#X obj 451 355 diffuseRGB; +#X text 448 332 see also:; +#X connect 12 0 13 0; +#X connect 13 0 12 0; +#X connect 17 0 30 0; +#X connect 19 0 29 0; +#X connect 22 0 30 1; +#X connect 28 0 29 1; +#X connect 29 0 20 0; +#X connect 30 0 18 0; diff --git a/Gem/help/diffuseRGB-help.pd b/Gem/help/diffuseRGB-help.pd new file mode 100644 index 0000000..9bad398 --- /dev/null +++ b/Gem/help/diffuseRGB-help.pd @@ -0,0 +1,75 @@ +#N canvas 61 22 632 388 10; +#X text 452 8 GEM object; +#X obj 8 196 cnv 15 430 180 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 39 198 Inlets:; +#X text 63 211 Inlet 1: gemlist; +#X text 39 292 Outlets:; +#X text 57 305 Outlet 1: gemlist; +#X obj 8 146 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 145 Arguments:; +#X obj 8 76 cnv 15 430 60 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 449 77 cnv 15 170 250 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X text 453 60 Example:; +#X obj 514 254 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 197 134 destroy; +#X msg 132 112 reset \, lighting 1 \, create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 519 293 pd gemwin; +#X msg 519 274 create; +#X text 515 253 Create window:; +#X text 71 31 Class: manipulation object; +#X obj 450 118 cnv 15 160 60 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 451 84 gemhead; +#X obj 451 193 cube; +#X obj 500 192 gemhead; +#X obj 500 230 world_light; +#X text 62 156 a list of 3 (RGB) or 4 (RGBA) float-values.; +#X text 63 229 Inlet 2: float: red value; +#X text 63 244 Inlet 3: float: green value; +#X text 63 259 Inlet 4: float: blue value; +#X text 63 274 Inlet 5: float: alpha value; +#X floatatom 477 122 3 0 1 0 - - -; +#X floatatom 504 122 3 0 1 0 - - -; +#X floatatom 531 122 3 0 1 0 - - -; +#X floatatom 558 122 3 0 1 0 - - -; +#X text 50 12 Synopsis: [diffuseRGB]; +#X text 29 77 Description: diffuse colouring; +#X text 22 91 [diffuseRGB] accepts a gemList and sets the diffuse-color +for all subsequent vertex-operations. You have to enable lighting to +see any effects.; +#X obj 451 156 diffuseRGB 0 1 0; +#X text 60 171 defaults: 0.8 0.8 0.8 1; +#X obj 500 211 rotate 63 1 0 0; +#X text 447 331 see also:; +#X obj 449 353 diffuse; +#X connect 12 0 13 0; +#X connect 13 0 12 0; +#X connect 17 0 33 0; +#X connect 19 0 35 0; +#X connect 26 0 33 1; +#X connect 27 0 33 2; +#X connect 28 0 33 3; +#X connect 29 0 33 4; +#X connect 33 0 18 0; +#X connect 35 0 20 0; diff --git a/Gem/help/disk-help.pd b/Gem/help/disk-help.pd new file mode 100644 index 0000000..c5f94d7 --- /dev/null +++ b/Gem/help/disk-help.pd @@ -0,0 +1,72 @@ +#N canvas 291 154 710 345 10; +#X text 54 30 Class: geometric object; +#X obj 479 47 cnv 15 170 250 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 544 224 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 112 destroy; +#X msg 132 112 create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 549 263 pd gemwin; +#X msg 549 244 create; +#X text 545 223 Create window:; +#X text 485 29 Example:; +#X obj 7 65 cnv 15 450 90 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 8 216 cnv 15 450 120 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 9 221 Inlets:; +#X obj 8 166 cnv 15 450 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 165 Arguments:; +#X text 452 8 GEM object; +#X text 27 233 Inlet 1: gemlist; +#X text 9 307 Outlets:; +#X text 21 320 Outlet 1: gemlist; +#X obj 481 81 cnv 15 160 140 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X msg 485 95 draw line; +#X msg 485 116 draw fill; +#X msg 485 138 draw point; +#X obj 553 54 gemhead; +#X floatatom 564 102 5 0 0 1 R - -; +#X floatatom 576 122 3 0 0 1 segments - -; +#X floatatom 589 147 5 0 0 1 r - -; +#X text 27 261 Inlet 2: float: size (= outer radius); +#X text 33 14 Synopsis: [disk]; +#X text 7 69 Description: Renders a disk.; +#X text 14 86 The disk object renders a flat disk with a hole in the +middle at the current position with current color. The look of the +disk can be changed with the draw message \, its size can be changed +via the second inlet \, the size of the hole via the third inlet.; +#X text 26 286 Inlet 4: float: inner radius (default: 0); +#X obj 553 199 disk 1; +#X text 27 273 Inlet 3: int: number of segments (default: 10); +#X text 28 177 disk size(=outer radius) \, segments \, hole size(=inner +radius); +#X text 29 191 defaults: 1 \, 10 \, 0; +#X text 27 247 Inlet 1: message: draw [line|fill|point|default]; +#X connect 3 0 4 0; +#X connect 4 0 3 0; +#X connect 17 0 29 0; +#X connect 18 0 29 0; +#X connect 19 0 29 0; +#X connect 20 0 29 0; +#X connect 21 0 29 1; +#X connect 22 0 29 2; +#X connect 23 0 29 3; diff --git a/Gem/help/emission-help.pd b/Gem/help/emission-help.pd new file mode 100644 index 0000000..dae2398 --- /dev/null +++ b/Gem/help/emission-help.pd @@ -0,0 +1,66 @@ +#N canvas 61 22 639 342 10; +#X text 452 8 GEM object; +#X obj 8 196 cnv 15 430 130 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 39 198 Inlets:; +#X text 63 211 Inlet 1: gemlist; +#X text 39 252 Outlets:; +#X text 57 265 Outlet 1: gemlist; +#X obj 8 146 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 145 Arguments:; +#X obj 8 76 cnv 15 430 60 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 449 77 cnv 15 170 200 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X text 453 60 Example:; +#X obj 510 209 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 197 134 destroy; +#X msg 132 112 reset \, lighting 1 \, create \, 1; +#X msg 277 206 lighting \$1; +#X obj 313 182 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X connect 8 0 0 0; +#X connect 9 0 8 0; +#X restore 515 248 pd gemwin; +#X msg 515 229 create; +#X text 511 208 Create window:; +#X text 71 31 Class: manipulation object; +#X obj 450 118 cnv 15 160 60 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 451 84 gemhead; +#X obj 451 193 cube; +#X text 62 156 a list of 3 (RGB) or 4 (RGBA) float-values.; +#X msg 478 130 0.4 0.8 1; +#X text 63 229 Inlet 2: list: 3(RGB) or 4(RGBA) float values; +#X text 60 171 defaults: 0 0 0 1; +#X text 50 12 Synopsis: [emission]; +#X obj 451 156 emission 0 1 0; +#X text 29 77 Description: emission colouring; +#X text 21 91 [emission] accepts a gemList and sets the emission-color +for all subsequent vertex-operations. You have to enable lighting to +see any effects.; +#X text 448 285 see also:; +#X obj 450 308 emissionRGB; +#X connect 12 0 13 0; +#X connect 13 0 12 0; +#X connect 17 0 24 0; +#X connect 20 0 24 1; +#X connect 24 0 18 0; diff --git a/Gem/help/emissionRGB-help.pd b/Gem/help/emissionRGB-help.pd new file mode 100644 index 0000000..b2137af --- /dev/null +++ b/Gem/help/emissionRGB-help.pd @@ -0,0 +1,70 @@ +#N canvas 61 22 639 342 10; +#X text 452 8 GEM object; +#X obj 8 196 cnv 15 430 130 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 39 198 Inlets:; +#X text 63 211 Inlet 1: gemlist; +#X text 39 292 Outlets:; +#X text 57 305 Outlet 1: gemlist; +#X obj 8 146 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 145 Arguments:; +#X obj 8 76 cnv 15 430 60 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 449 77 cnv 15 170 200 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X text 453 60 Example:; +#X obj 509 208 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 197 134 destroy; +#X msg 132 112 reset \, lighting 1 \, create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 514 247 pd gemwin; +#X msg 514 228 create; +#X text 510 207 Create window:; +#X text 71 31 Class: manipulation object; +#X obj 450 118 cnv 15 160 60 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 451 84 gemhead; +#X obj 451 193 cube; +#X text 62 156 a list of 3 (RGB) or 4 (RGBA) float-values.; +#X text 63 229 Inlet 2: float: red value; +#X text 63 244 Inlet 3: float: green value; +#X text 63 259 Inlet 4: float: blue value; +#X text 63 274 Inlet 5: float: alpha value; +#X floatatom 479 122 3 0 1 0 - - -; +#X floatatom 508 122 3 0 1 0 - - -; +#X floatatom 536 122 3 0 1 0 - - -; +#X floatatom 565 122 3 0 1 0 - - -; +#X obj 451 156 emissionRGB 0 1 0; +#X text 60 171 defaults: 0 0 0 1; +#X text 29 77 Description: emission colouring; +#X text 50 12 Synopsis: [emissionRGB]; +#X text 22 91 [emissionRGB] accepts a gemList and sets the emission-color +for all subsequent vertex-operations. You have to enable lighting to +see any effects.; +#X text 449 284 see also:; +#X obj 451 307 emission; +#X connect 12 0 13 0; +#X connect 13 0 12 0; +#X connect 17 0 28 0; +#X connect 24 0 28 1; +#X connect 25 0 28 2; +#X connect 26 0 28 3; +#X connect 27 0 28 4; +#X connect 28 0 18 0; diff --git a/Gem/help/fragment_program-help.pd b/Gem/help/fragment_program-help.pd new file mode 100644 index 0000000..90d278e --- /dev/null +++ b/Gem/help/fragment_program-help.pd @@ -0,0 +1,86 @@ +#N canvas 35 199 694 458 10; +#X text 452 8 GEM object; +#X obj 8 335 cnv 15 430 80 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 11 334 Inlets:; +#X text 10 386 Outlets:; +#X obj 8 296 cnv 15 430 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 295 Arguments:; +#X obj 7 76 cnv 15 430 210 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 444 77 cnv 15 200 230 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X text 453 60 Example:; +#X obj 474 334 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 132 112 create \, 1; +#X msg 198 112 destroy; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 479 373 pd gemwin; +#X msg 479 354 create; +#X text 475 333 Create window:; +#X obj 450 178 cnv 15 190 70 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 451 84 gemhead; +#X text 63 306 ; +#X text 28 399 Outlet 1: gemlist; +#X text 35 346 Inlet 1: gemlist; +#X obj 10 211 cnv 15 420 70 empty empty empty 20 12 0 14 -225280 -66577 +0; +#X text 71 31 Class: shader object; +#X obj 516 184 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#N canvas 0 0 450 300 open 0; +#X obj 75 103 openpanel; +#X obj 75 173 outlet; +#X obj 75 127 t b s; +#X msg 105 152 set open \$1; +#X obj 75 80 inlet; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X connect 2 1 3 0; +#X connect 3 0 1 0; +#X connect 4 0 0 0; +#X restore 459 183 pd open; +#X text 14 219 IMPORTANT NOTE: your openGL-implementation (gfx-card +driver \, ...) has to support either (or both) the ARB shader extensions +or the NV shader extensions in order to make use of this object.; +#X text 10 176 Of course \, you also have to supply anything else needed +for the shader to work (like textures \, ...); +#X obj 451 266 teapot; +#X msg 459 203 open examples/data/random.fp; +#X text 50 12 Synopsis: [fragment_program]; +#X text 12 76 Description: load and apply an ARB fragment shader; +#X text 24 95 [fragment_program] loads and applies an ARB (or NV) fragment +shader.; +#X text 11 123 If you want to modify the parameters of the shader-program +\, you have to set the modification up yourself \, via [GEMglProgramEnvParameter*] +working on GL_FRAGMENT_PROGRAM_ARB.; +#X text 35 358 Inlet 1: messsage: open : fragment shader +program to load; +#X text 443 406 see also; +#X obj 508 406 vertex_program; +#X obj 451 226 fragment_program random.fp; +#X connect 10 0 11 0; +#X connect 11 0 10 0; +#X connect 14 0 33 0; +#X connect 20 0 21 0; +#X connect 21 0 25 0; +#X connect 25 0 33 0; +#X connect 33 0 24 0; diff --git a/Gem/help/gemframebuffer-help.pd b/Gem/help/gemframebuffer-help.pd new file mode 100644 index 0000000..7dcb61b --- /dev/null +++ b/Gem/help/gemframebuffer-help.pd @@ -0,0 +1,236 @@ +#N canvas 131 3 893 604 10; +#X obj 465 9 cnv 15 420 570 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 472 293 cnv 15 300 60 empty empty empty 20 12 0 14 -191407 -66577 +0; +#X obj 474 18 cnv 15 400 250 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 477 41 gemhead 20; +#X obj 664 306 gemhead; +#X msg 615 106 dimen 320 240; +#X obj 477 468 rotateXYZ; +#X floatatom 794 427 5 0 0 0 - - -; +#X msg 762 114 color 0 0 1 0; +#X msg 602 87 dimen 1024 1024; +#X msg 751 74 color 0 0 0 0; +#X obj 477 422 t a b; +#X floatatom 717 469 5 0 0 0 - - -; +#X msg 549 232 rectangle \$1; +#X obj 549 214 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X msg 509 101 type FLOAT; +#X obj 664 274 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X obj 477 382 translateXYZ 0 0 -4; +#X obj 477 298 gemframebuffer; +#X obj 664 331 pix_texture; +#X obj 664 358 t a b; +#X msg 531 187 texunit \$1; +#X msg 495 62 type BYTE; +#X msg 503 82 type INT; +#X msg 658 179 format YUV; +#X msg 649 158 format RGB; +#X msg 668 200 format RGBA; +#X msg 680 220 format RGB32; +#X obj 664 487 square 2; +#X obj 664 449 rotateXYZ -40 0 200; +#X floatatom 707 429 5 0 0 0 - - -; +#X obj 477 487 pqtorusknots; +#N canvas 0 22 450 300 rotation 0; +#X obj 33 19 inlet; +#X obj 33 110 % 360; +#X obj 33 62 i; +#X obj 33 88 + 5; +#X obj 33 136 outlet; +#X obj 84 111 % 360; +#X obj 84 63 i; +#X obj 84 137 outlet; +#X obj 134 112 % 360; +#X obj 134 64 i; +#X obj 134 138 outlet; +#X obj 84 89 + 3; +#X obj 134 90 + 7; +#X connect 0 0 2 0; +#X connect 0 0 6 0; +#X connect 0 0 9 0; +#X connect 1 0 2 1; +#X connect 1 0 4 0; +#X connect 2 0 3 0; +#X connect 3 0 1 0; +#X connect 5 0 6 1; +#X connect 5 0 7 0; +#X connect 6 0 11 0; +#X connect 8 0 9 1; +#X connect 8 0 10 0; +#X connect 9 0 12 0; +#X connect 11 0 5 0; +#X connect 12 0 8 0; +#X restore 509 443 pd rotation; +#X floatatom 531 167 5 0 0 0 - - -; +#N canvas 125 20 450 300 rotation 0; +#X obj 112 29 inlet; +#X obj 112 105 % 360; +#X obj 112 57 i; +#X obj 112 131 outlet; +#X obj 112 83 + 1; +#X connect 0 0 2 0; +#X connect 1 0 2 1; +#X connect 1 0 3 0; +#X connect 2 0 4 0; +#X connect 4 0 1 0; +#X restore 794 402 pd rotation; +#X obj 762 93 loadbang; +#X obj 477 402 color 1 0 0; +#X obj 649 245 t a; +#X obj 585 124 t a; +#X obj 751 135 t a; +#X obj 495 130 t a; +#X floatatom 563 361 5 0 0 0 - - -; +#X floatatom 607 362 5 0 0 0 - - -; +#X floatatom 520 361 5 0 0 0 - - -; +#X obj 495 154 t a; +#X obj 470 514 cnv 15 410 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X msg 757 544 color 0 0 0 0; +#X msg 746 522 color 0 1 1 0; +#X msg 637 525 lighting \$1; +#X obj 615 526 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#N canvas 0 22 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 112 destroy; +#X msg 132 112 create \, 1; +#X obj 67 40 route create destroy; +#X obj 20 217 gemhead 1; +#X obj 20 237 world_light; +#X connect 2 0 7 0; +#X connect 3 0 1 0; +#X connect 4 0 1 0; +#X connect 5 0 0 0; +#X connect 6 0 0 0; +#X connect 7 0 3 0; +#X connect 7 0 6 0; +#X connect 7 1 4 0; +#X connect 7 1 5 0; +#X connect 7 2 0 0; +#X connect 8 0 9 0; +#X restore 473 554 pd gemwin; +#X msg 473 529 destroy; +#X text 471 513 Create window:; +#X obj 637 552 t a; +#X text 476 22 Example:; +#X text 379 -10 GEM object; +#X obj 7 41 cnv 15 450 130 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 7 208 cnv 15 450 370 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 10 214 Inlets:; +#X obj 7 175 cnv 15 450 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 14 174 Arguments:; +#X text 28 233 Inlet 1: gemlist; +#X text 15 523 Outlets:; +#X text 31 539 Outlet 1: gemlist; +#X text 60 187 ; +#X text 102 -1 Synopsis: [gemframebuffer]; +#X text 122 15 Class: framebuffer object; +#X text 12 50 Description: Renders a scenne in a texture \, for later +use.; +#X text 12 68 this example renders a scene (pqtorusknots) into a framebuffer +\, which is then used as a texture onto a square.; +#X text 13 98 you need framebuffer support (and its driver) on your +gfx-card; +#X text 28 247 Inlet 1: message: type [BYTE | INT | FLOAT]; +#X text 27 315 Inlet 1: message: dimen ; +#X text 27 349 Inlet 1: message: color ; +#X text 26 430 Inlet 1: message: texunit ; +#X text 27 280 Inlet 1: message: format [RGB|RGBA|RGB32|YUV]; +#X text 26 385 Inlet 1: message: rectangle [0|1]; +#X text 103 262 (type of the framebuffer data); +#X text 102 330 (dimension of the framebuffer texture); +#X text 106 465 (usefull only with shader); +#X text 106 448 (change texunit of the texture); +#X text 31 557 Outlet 2: texture Id; +#X text 104 402 (texturing mode \; rectangle (1) or normalized (0)) +; +#X text 100 296 (color format of the framebuffer); +#X text 102 365 (background color of the framebuffer); +#X obj 556 41 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +1; +#X floatatom 493 323 5 0 0 0 - - -; +#X obj 477 342 scaleXYZ; +#X floatatom 563 326 5 0 0 0 - - -; +#X floatatom 528 325 5 0 0 0 - - -; +#X msg 585 30 perspec -1 1 -1 1 1 20; +#X msg 593 56 perspec -1 1 -1 1 3 75; +#X text 98 497 (frustum of the framebuffer); +#X text 752 29 default; +#X text 11 130 NOTE: the default view-point of [gemframebuffer] is +at the origin 0/0/0 \, unlike [gemwin] where it is at 0/0/4. You might +want to manually insert a [translateXYZ 0 0 -4].; +#X text 23 482 Inlet 1: message: perspec +; +#X text 428 482 ; +#X connect 3 0 18 0; +#X connect 4 0 19 0; +#X connect 5 0 38 0; +#X connect 6 0 31 0; +#X connect 7 0 29 3; +#X connect 8 0 39 0; +#X connect 9 0 38 0; +#X connect 10 0 39 0; +#X connect 11 0 6 0; +#X connect 11 1 32 0; +#X connect 12 0 28 1; +#X connect 13 0 18 0; +#X connect 14 0 13 0; +#X connect 15 0 40 0; +#X connect 16 0 4 0; +#X connect 17 0 36 0; +#X connect 18 0 86 0; +#X connect 18 1 19 1; +#X connect 19 0 20 0; +#X connect 20 0 29 0; +#X connect 20 1 34 0; +#X connect 21 0 18 0; +#X connect 22 0 40 0; +#X connect 23 0 40 0; +#X connect 24 0 37 0; +#X connect 25 0 37 0; +#X connect 26 0 37 0; +#X connect 27 0 37 0; +#X connect 29 0 28 0; +#X connect 30 0 29 1; +#X connect 32 0 6 1; +#X connect 32 1 6 2; +#X connect 32 2 6 3; +#X connect 33 0 21 0; +#X connect 34 0 7 0; +#X connect 35 0 8 0; +#X connect 36 0 11 0; +#X connect 37 0 18 0; +#X connect 38 0 44 0; +#X connect 39 0 44 0; +#X connect 40 0 44 0; +#X connect 41 0 17 2; +#X connect 42 0 17 3; +#X connect 43 0 17 1; +#X connect 44 0 18 0; +#X connect 46 0 53 0; +#X connect 47 0 53 0; +#X connect 48 0 53 0; +#X connect 49 0 48 0; +#X connect 50 0 51 0; +#X connect 51 0 50 0; +#X connect 53 0 50 0; +#X connect 84 0 3 0; +#X connect 85 0 86 1; +#X connect 86 0 17 0; +#X connect 87 0 86 3; +#X connect 88 0 86 2; +#X connect 89 0 38 0; +#X connect 90 0 38 0; diff --git a/Gem/help/gemhead-help.pd b/Gem/help/gemhead-help.pd new file mode 100644 index 0000000..046ac37 --- /dev/null +++ b/Gem/help/gemhead-help.pd @@ -0,0 +1,116 @@ +#N canvas 32 22 937 572 10; +#X text 452 8 GEM object; +#X obj 8 438 cnv 15 430 130 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 18 440 Inlets:; +#X text 18 518 Outlets:; +#X text 36 531 Outlet 1: gemlist; +#X obj 8 393 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 398 Arguments:; +#X obj 8 76 cnv 15 430 310 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 50 12 Synopsis: [gemhead]; +#X text 71 31 Class: control object; +#X text 29 77 Description: start a rendering chain; +#X obj 607 371 cnv 15 140 65 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X msg 622 391 create; +#X text 618 370 Create window:; +#N canvas 0 22 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 132 93 create \, 1 \, frame 2; +#X msg 198 112 destroy \, reset; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 622 411 pd gemwin (2fps); +#X text 21 91 [gemhead] connects the gem objects to the window manager. +The start of any gemList begins with the gemhead. Without the gemhead +\, gem objects will not receive the render command.; +#X text 20 366 example: "1" before "50" before "-10" before "-23"; +#X text 22 149 Any gem object connected after the gemhead will receive +one render command per frame.; +#X text 20 294 The rendering-order value can also be negative. Negative +numbered [gemhead]s will be rendered AFTER all positive [gemhead]s. +Note \, that Higher values (-3) will be rendered BEFORE lower values +(-10). [gemhead]s with negative numbers will NOT be affected by view-point +changes !!!; +#X text 62 409 float : priority (default : 50); +#X text 42 471 Inlet 1: bang : force rendering now.; +#X text 42 453 Inlet 1: float (1/0): turn rendering on/off (default +1); +#X text 42 490 Inlet 1: set : change priority value of this +chain.; +#X obj 442 74 cnv 15 160 240 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 451 79 enable/disable rendering; +#X obj 451 123 cnv 15 100 40 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X msg 470 240 gemList; +#X obj 470 134 gemhead; +#X msg 470 101 1; +#X msg 506 101 0; +#X obj 470 281 print ENABLE; +#X obj 470 199 square 0.5; +#X obj 606 74 cnv 15 160 240 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 770 74 cnv 15 160 240 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 617 81 force rendering; +#X text 789 79 set rendering order; +#X obj 621 128 cnv 15 100 40 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 781 135 cnv 15 100 40 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X msg 630 101 bang; +#X msg 791 101 set 45; +#X obj 791 286 print SETTABLE; +#X obj 630 284 print FORCEABLE; +#X msg 630 243 gemList; +#X msg 791 245 gemList; +#X obj 630 202 circle 0.5; +#X obj 791 204 triangle 0.5; +#X obj 791 144 gemhead 105; +#X text 21 188 All chain will be rendered one after the other. You +can control precisely the rendering order by giving [gemhead] a priority +value (argument or message). The default value is 50 The lower the +value is \, the sooner the gemhead will receive the rendering command +(a value of 1 is the lowest possible value). This value is important +when you are doing alpha blending and for certain objects (such as +light).; +#X obj 470 178 translateXYZ -2 0 0; +#X msg 854 101 set 105; +#X obj 630 181 translateXYZ 0 2 0; +#X obj 630 138 gemhead 50; +#X obj 791 183 translateXYZ 2 0 0; +#X connect 12 0 14 0; +#X connect 14 0 12 0; +#X connect 26 0 30 0; +#X connect 27 0 48 0; +#X connect 28 0 27 0; +#X connect 29 0 27 0; +#X connect 31 0 26 0; +#X connect 38 0 51 0; +#X connect 39 0 46 0; +#X connect 42 0 41 0; +#X connect 43 0 40 0; +#X connect 44 0 42 0; +#X connect 45 0 43 0; +#X connect 46 0 52 0; +#X connect 48 0 31 0; +#X connect 49 0 46 0; +#X connect 50 0 44 0; +#X connect 51 0 50 0; +#X connect 52 0 45 0; diff --git a/Gem/help/gemkeyboard-help.pd b/Gem/help/gemkeyboard-help.pd new file mode 100644 index 0000000..1dbca78 --- /dev/null +++ b/Gem/help/gemkeyboard-help.pd @@ -0,0 +1,62 @@ +#N canvas 64 27 679 445 10; +#X obj 27 85 cnv 15 450 170 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 28 303 cnv 15 450 100 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 29 308 Inlets:; +#X obj 28 265 cnv 15 450 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 37 264 Arguments:; +#X text 472 28 GEM object; +#X text 29 337 Outlets:; +#X text 495 49 Example:; +#X text 74 50 Class: control object; +#X obj 486 84 cnv 15 170 180 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 495 101 cnv 15 150 80 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 546 194 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 112 destroy; +#X msg 132 112 create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 551 233 pd gemwin; +#X msg 551 214 create; +#X text 547 193 Create window:; +#X text 53 34 Synopsis: [gemkeyboard]; +#X text 27 89 Description: output keyboard events in the GEM window +; +#X text 36 106 [gemkeyboard] sends out keyboard events which occur +in the GEM window. Such event will appear on KEY_DOWN and will give +the KeyCode of the button.; +#X text 34 181 Furthermore \, i would like to make this object really +cross-platform one day. Thus the KeyCode might change on one system +or another in future times.; +#X text 34 228 USE AT YOUR OWN RISK !!!; +#X text 35 148 It is not guaranteed \, that Windows / Linux / OSX versions +will give the same KeyCode for the same key pressed !!!; +#X text 83 275 none; +#X text 47 320 Inlet 1: non - used; +#X text 41 350 Outlet 1: keyCode; +#X obj 508 115 gemkeyboard; +#X floatatom 508 153 5 0 0 1 keyCode - -; +#X text 488 274 see also:; +#X obj 489 299 gemkeyname; +#X connect 12 0 13 0; +#X connect 13 0 12 0; +#X connect 24 0 25 0; diff --git a/Gem/help/gemkeyname-help.pd b/Gem/help/gemkeyname-help.pd new file mode 100644 index 0000000..6e72dd9 --- /dev/null +++ b/Gem/help/gemkeyname-help.pd @@ -0,0 +1,68 @@ +#N canvas 64 27 679 445 10; +#X obj 27 85 cnv 15 450 200 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 27 325 cnv 15 450 100 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 35 332 Inlets:; +#X obj 27 290 cnv 15 450 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 36 291 Arguments:; +#X text 472 28 GEM object; +#X text 35 361 Outlets:; +#X text 495 49 Example:; +#X text 74 50 Class: control object; +#X obj 486 84 cnv 15 170 180 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 495 101 cnv 15 150 80 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 546 194 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 112 destroy; +#X msg 132 112 create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 551 233 pd gemwin; +#X msg 551 214 create; +#X text 547 193 Create window:; +#X text 38 89 Description: output keyboard events in the GEM window +; +#X text 37 265 USE AT YOUR OWN RISK !!!; +#X text 82 302 none; +#X text 53 344 Inlet 1: non - used; +#X text 488 274 see also:; +#X text 53 34 Synopsis: [gemkeyname]; +#X text 36 108 [gemkeyname] sends out keyboard events which occur in +the GEM window. Such event will give a symbolic description of the +button. The "state"-outlet will be 1 for KEY_DOWN and 0 for KEY_UP. +; +#X text 37 219 Furthermore \, i would like to make this object really +cross-platform one day. Thus the KeyName might change on one system +or another in future times.; +#X text 37 161 It is not guaranteed \, that Windows / Linux / OSX versions +will give the same description for the same key pressed !!! Also \, +there is no guarantee \, that the pd-object [keyname] will return the +same symbols as [gemkeyname]; +#X text 53 376 Outlet 1: state; +#X text 53 390 Outlet 2: keyName; +#X obj 489 299 gemkeyboard; +#X floatatom 508 160 2 0 0 1 state - -; +#X symbolatom 565 134 10 0 0 0 keyName - -; +#X obj 508 115 gemkeyname; +#X connect 12 0 13 0; +#X connect 13 0 12 0; +#X connect 29 0 27 0; +#X connect 29 1 28 0; diff --git a/Gem/help/gemlist-help.pd b/Gem/help/gemlist-help.pd new file mode 100644 index 0000000..bd6e313 --- /dev/null +++ b/Gem/help/gemlist-help.pd @@ -0,0 +1,73 @@ +#N canvas 443 181 661 405 10; +#X obj 7 65 cnv 15 450 100 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 8 216 cnv 15 450 100 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 9 221 Inlets:; +#X obj 8 176 cnv 15 450 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 175 Arguments:; +#X text 452 8 GEM object; +#X text 27 233 Inlet 1: gemlist; +#X text 9 280 Outlets:; +#X text 21 293 Outlet 1: gemlist; +#X text 63 186 none; +#X text 475 29 Example:; +#X text 33 14 Synopsis: [gemlist]; +#X text 54 30 Class: control object; +#X text 27 247 Inlet 1: bang; +#X text 27 261 Inlet 2: gemlist; +#X text 7 69 Description: Store a gemlist; +#X text 16 86 The gemlist object stores a gemlist \, which may de output +by sending it a "bang" message.; +#X obj 467 47 cnv 15 170 340 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 475 81 cnv 15 150 130 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 528 320 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 112 destroy; +#X msg 132 112 create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 533 359 pd gemwin; +#X msg 533 340 create; +#X text 529 319 Create window:; +#X obj 498 59 gemhead; +#X obj 484 190 gemlist; +#X obj 484 169 until; +#X obj 484 288 scaleXYZ 0.9 0.9 0.9; +#X obj 484 243 translateXYZ 0.5 0 0; +#X msg 484 149 30; +#X obj 484 265 rotateXYZ 0 0 30; +#X obj 484 221 circle 0.3 33; +#X obj 498 107 route gem_state; +#X obj 498 127 route float; +#X obj 498 86 t a a; +#X connect 20 0 21 0; +#X connect 21 0 20 0; +#X connect 23 0 33 0; +#X connect 24 0 30 0; +#X connect 25 0 24 0; +#X connect 27 0 29 0; +#X connect 28 0 25 0; +#X connect 29 0 26 0; +#X connect 30 0 27 0; +#X connect 31 0 32 0; +#X connect 32 1 28 0; +#X connect 33 0 31 0; +#X connect 33 1 24 1; diff --git a/Gem/help/gemlist_info-help.pd b/Gem/help/gemlist_info-help.pd new file mode 100644 index 0000000..1a446c7 --- /dev/null +++ b/Gem/help/gemlist_info-help.pd @@ -0,0 +1,297 @@ +#N canvas 594 117 688 676 10; +#X text 452 8 GEM object; +#X obj 8 206 cnv 15 430 120 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 39 218 Inlets:; +#X text 63 231 Inlet 1: gemlist; +#X text 38 240 Outlets:; +#X text 62 253 Outlet 1: gemlist; +#X obj 8 156 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 155 Arguments:; +#X obj 8 76 cnv 15 430 70 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 453 60 Example:; +#X obj 9 415 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 454 304 gemwin 0; +#X obj 132 160 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 133 destroy; +#X obj 288 57 world_light; +#X obj 288 28 gemhead; +#X msg 132 112 create \, 1 \, lighting 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 9 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 8 0 7 0; +#X connect 9 0 0 0; +#X restore 14 454 pd gemwin; +#X msg 14 435 create; +#X text 10 414 Create window:; +#X text 50 12 Synopsis: [gemlist_info]; +#X text 71 31 Class: information object; +#X text 29 77 Description: get curent transformation of a gemlist; +#X text 42 94 [gemlist_info] accepts a gemList decompost the transformation +matrix in basic transformation (translation \, scale \, shear \, rotation) +; +#X text 60 174 no argument; +#X text 62 299 Outlet 5: 3 float list : translationX \, Y and Z; +#X text 62 265 Outlet 2: 3 float list : RotationX \, Y and Z; +#X text 62 277 Outlet 3: 3 float list : shear YX \, YZ and ZX; +#X text 62 288 Outlet 4: 3 float list : scale X \, Y and Z; +#X obj 9 336 cnv 15 430 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 452 890 more 0; +#X obj 30 122 gemhead; +#X floatatom 44 144 5 0 0 0 - - -; +#X floatatom 78 144 5 0 0 0 - - -; +#X floatatom 112 144 5 0 0 0 - - -; +#X floatatom 46 184 5 0 0 0 - - -; +#X floatatom 80 184 5 0 0 0 - - -; +#X floatatom 114 184 5 0 0 0 - - -; +#X floatatom 52 227 5 0 0 0 - - -; +#X floatatom 86 227 5 0 0 0 - - -; +#X floatatom 120 227 5 0 0 0 - - -; +#X obj 30 433 gemlist_info; +#X obj 192 568 unpack f f f; +#X obj 178 396 gemhead; +#X obj 178 536 translateXYZ; +#X floatatom 192 591 5 0 0 0 - - -; +#X floatatom 225 591 5 0 0 0 - - -; +#X floatatom 259 591 5 0 0 0 - - -; +#X floatatom 193 761 5 0 0 0 - - -; +#X floatatom 226 761 5 0 0 0 - - -; +#X floatatom 260 761 5 0 0 0 - - -; +#X floatatom 200 516 5 0 0 0 - - -; +#X floatatom 233 516 5 0 0 0 - - -; +#X floatatom 267 516 5 0 0 0 - - -; +#X obj 193 734 unpack f f f; +#X obj 200 490 unpack f f f; +#X obj 178 421 GEMglLoadIdentity; +#X obj 178 450 color 1 0 0; +#X floatatom 46 336 5 0 0 0 - - -; +#X floatatom 80 336 5 0 0 0 - - -; +#X floatatom 114 336 5 0 0 0 - - -; +#X floatatom 52 379 5 0 0 0 - - -; +#X floatatom 86 379 5 0 0 0 - - -; +#X floatatom 120 379 5 0 0 0 - - -; +#X obj 30 163 scaleXYZ 1 1 1; +#X obj 30 205 rotateXYZ 0 0 0; +#X obj 30 247 translateXYZ 0 0 0; +#X obj 30 357 rotateXYZ 0 0 0; +#X obj 30 399 translateXYZ 0 0 0; +#X floatatom 44 283 5 0 0 0 - - -; +#X floatatom 78 283 5 0 0 0 - - -; +#X floatatom 112 283 5 0 0 0 - - -; +#X obj 30 302 scaleXYZ 1 1 1; +#X obj 30 512 cube; +#X obj 30 484 scaleXYZ 1 1 0.2; +#X floatatom 192 665 8 0 0 0 - - -; +#X floatatom 225 681 8 0 0 0 - - -; +#X floatatom 259 697 8 0 0 0 - - -; +#X obj 192 643 unpack f f f; +#N canvas 296 410 419 328 shear 0; +#X obj 28 17 inlet; +#X obj 28 270 outlet; +#X obj 108 21 inlet; +#X obj 205 20 inlet; +#X obj 297 18 inlet; +#X text 117 38 ShearXY; +#X text 217 37 ShearXZ; +#X text 306 36 ShearYZ; +#X obj 28 104 shearYX; +#X obj 28 153 shearZX; +#X obj 28 212 shearZY; +#X connect 0 0 8 0; +#X connect 2 0 8 1; +#X connect 3 0 9 1; +#X connect 4 0 10 1; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 10 0 1 0; +#X restore 178 711 pd shear; +#X obj 178 811 cube 0.5; +#X obj 178 80 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 178 785 rotateXYZ; +#X obj 178 610 scaleXYZ; +#X obj 178 30 loadbang; +#X msg 178 55 0; +#X text 50 844 this show the transformation neaded to create a specific +transformation matrix decomposed with gemlist_info; +#X connect 0 0 33 0; +#X connect 1 0 33 1; +#X connect 2 0 33 2; +#X connect 3 0 33 3; +#X connect 4 0 34 1; +#X connect 5 0 34 2; +#X connect 6 0 34 3; +#X connect 7 0 35 1; +#X connect 8 0 35 2; +#X connect 9 0 35 3; +#X connect 10 0 43 0; +#X connect 10 1 23 0; +#X connect 10 2 47 0; +#X connect 10 3 11 0; +#X connect 10 4 24 0; +#X connect 11 0 14 0; +#X connect 11 1 15 0; +#X connect 11 2 16 0; +#X connect 12 0 25 0; +#X connect 13 0 52 0; +#X connect 14 0 52 1; +#X connect 15 0 52 2; +#X connect 16 0 52 3; +#X connect 17 0 51 1; +#X connect 18 0 51 2; +#X connect 19 0 51 3; +#X connect 20 0 13 1; +#X connect 21 0 13 2; +#X connect 22 0 13 3; +#X connect 23 0 17 0; +#X connect 23 1 18 0; +#X connect 23 2 19 0; +#X connect 24 0 20 0; +#X connect 24 1 21 0; +#X connect 24 2 22 0; +#X connect 25 0 26 0; +#X connect 26 0 13 0; +#X connect 27 0 36 1; +#X connect 28 0 36 2; +#X connect 29 0 36 3; +#X connect 30 0 37 1; +#X connect 31 0 37 2; +#X connect 32 0 37 3; +#X connect 33 0 34 0; +#X connect 34 0 35 0; +#X connect 35 0 41 0; +#X connect 36 0 37 0; +#X connect 37 0 10 0; +#X connect 38 0 41 1; +#X connect 39 0 41 2; +#X connect 40 0 41 3; +#X connect 41 0 36 0; +#X connect 43 0 42 0; +#X connect 44 0 48 1; +#X connect 45 0 48 2; +#X connect 46 0 48 3; +#X connect 47 0 44 0; +#X connect 47 1 45 0; +#X connect 47 2 46 0; +#X connect 48 0 51 0; +#X connect 50 0 0 0; +#X connect 50 0 12 0; +#X connect 51 0 49 0; +#X connect 52 0 48 0; +#X connect 53 0 54 0; +#X connect 54 0 50 0; +#X restore 15 349 pd more; +#X obj 449 77 cnv 15 200 570 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 459 310 cnv 15 180 40 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 472 89 gemhead; +#X floatatom 494 121 5 0 0 0 - - -; +#X floatatom 528 121 5 0 0 0 - - -; +#X floatatom 562 121 5 0 0 0 - - -; +#X floatatom 488 264 5 0 0 0 - - -; +#X floatatom 522 264 5 0 0 0 - - -; +#X floatatom 556 264 5 0 0 0 - - -; +#X floatatom 486 170 5 0 0 0 - - -; +#X floatatom 520 170 5 0 0 0 - - -; +#X floatatom 554 170 5 0 0 0 - - -; +#X obj 472 320 gemlist_info; +#X obj 488 596 unpack f f f; +#X floatatom 488 619 5 0 0 0 - - -; +#X floatatom 521 619 5 0 0 0 - - -; +#X floatatom 555 619 5 0 0 0 - - -; +#X floatatom 522 470 5 0 0 0 - - -; +#X floatatom 555 470 5 0 0 0 - - -; +#X floatatom 589 470 5 0 0 0 - - -; +#X floatatom 539 394 5 0 0 0 - - -; +#X floatatom 572 394 5 0 0 0 - - -; +#X floatatom 606 394 5 0 0 0 - - -; +#X obj 522 444 unpack f f f; +#X obj 539 371 unpack f f f; +#X text 547 356 position; +#X text 533 428 size; +#X obj 505 520 unpack f f f; +#N canvas 437 191 389 322 shear 0; +#X obj 37 27 inlet; +#X obj 37 280 outlet; +#X obj 118 31 inlet; +#X obj 215 30 inlet; +#X obj 307 28 inlet; +#X text 127 48 ShearXY; +#X text 227 47 ShearXZ; +#X text 316 46 ShearYZ; +#X obj 37 114 shearXY; +#X obj 37 163 shearXZ; +#X obj 37 222 shearYZ; +#X connect 0 0 8 0; +#X connect 2 0 8 1; +#X connect 3 0 9 1; +#X connect 4 0 10 1; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 10 0 1 0; +#X restore 472 237 pd shear; +#X obj 472 285 rotateXYZ; +#X obj 472 189 scaleXYZ; +#X obj 472 144 translateXYZ; +#X floatatom 486 216 5 0 0 0 - - -; +#X floatatom 520 216 5 0 0 0 - - -; +#X floatatom 554 216 5 0 0 0 - - -; +#X floatatom 505 545 5 0 0 0 - - -; +#X floatatom 538 545 5 0 0 0 - - -; +#X floatatom 572 545 5 0 0 0 - - -; +#X text 498 580 orientation; +#X text 514 504 shear (YX \, ZX \, ZY); +#X text 76 349 <- more about gemlist_info; +#X text 18 375 see also :; +#X obj 100 375 gemlist_matrix; +#X connect 11 0 12 0; +#X connect 12 0 11 0; +#X connect 27 0 56 0; +#X connect 28 0 56 1; +#X connect 29 0 56 2; +#X connect 30 0 56 3; +#X connect 31 0 54 1; +#X connect 32 0 54 2; +#X connect 33 0 54 3; +#X connect 34 0 55 1; +#X connect 35 0 55 2; +#X connect 36 0 55 3; +#X connect 37 1 38 0; +#X connect 37 2 52 0; +#X connect 37 3 48 0; +#X connect 37 4 49 0; +#X connect 38 0 39 0; +#X connect 38 1 40 0; +#X connect 38 2 41 0; +#X connect 48 0 42 0; +#X connect 48 1 43 0; +#X connect 48 2 44 0; +#X connect 49 0 45 0; +#X connect 49 1 46 0; +#X connect 49 2 47 0; +#X connect 52 0 60 0; +#X connect 52 1 61 0; +#X connect 52 2 62 0; +#X connect 53 0 54 0; +#X connect 54 0 37 0; +#X connect 55 0 53 0; +#X connect 56 0 55 0; +#X connect 57 0 53 1; +#X connect 58 0 53 2; +#X connect 59 0 53 3; diff --git a/Gem/help/gemlist_matrix-help.pd b/Gem/help/gemlist_matrix-help.pd new file mode 100644 index 0000000..30b6044 --- /dev/null +++ b/Gem/help/gemlist_matrix-help.pd @@ -0,0 +1,120 @@ +#N canvas 594 117 675 520 10; +#X text 452 8 GEM object; +#X obj 8 206 cnv 15 430 120 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 39 218 Inlets:; +#X text 63 231 Inlet 1: gemlist; +#X text 38 240 Outlets:; +#X text 62 253 Outlet 1: gemlist; +#X obj 8 156 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 155 Arguments:; +#X obj 8 76 cnv 15 430 70 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 453 60 Example:; +#X obj 9 385 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 0 454 304 gemwin 0; +#X obj 132 160 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 133 destroy; +#X obj 288 57 world_light; +#X obj 288 28 gemhead; +#X msg 132 112 create \, 1 \, lighting 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 9 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 8 0 7 0; +#X connect 9 0 0 0; +#X restore 14 424 pd gemwin; +#X msg 14 405 create; +#X text 10 384 Create window:; +#X text 71 31 Class: information object; +#X text 60 174 no argument; +#X obj 9 336 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X obj 449 77 cnv 15 200 400 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 459 310 cnv 15 180 40 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 472 89 gemhead; +#X floatatom 494 121 5 0 0 0 - - -; +#X floatatom 528 121 5 0 0 0 - - -; +#X floatatom 562 121 5 0 0 0 - - -; +#X floatatom 488 264 5 0 0 0 - - -; +#X floatatom 522 264 5 0 0 0 - - -; +#X floatatom 556 264 5 0 0 0 - - -; +#X floatatom 486 170 5 0 0 0 - - -; +#X floatatom 520 170 5 0 0 0 - - -; +#X floatatom 554 170 5 0 0 0 - - -; +#N canvas 437 191 753 491 shear 0; +#X obj 25 17 inlet; +#X obj 28 270 outlet; +#X obj 108 21 inlet; +#X obj 205 20 inlet; +#X obj 297 18 inlet; +#X text 117 38 ShearXY; +#X text 217 37 ShearXZ; +#X text 306 36 ShearYZ; +#X obj 27 104 shearXY; +#X obj 26 153 shearXZ; +#X obj 26 212 shearYZ; +#X connect 0 0 8 0; +#X connect 2 0 8 1; +#X connect 3 0 9 1; +#X connect 4 0 10 1; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 10 0 1 0; +#X restore 472 237 pd shear; +#X obj 472 285 rotateXYZ; +#X obj 472 189 scaleXYZ; +#X obj 472 144 translateXYZ; +#X floatatom 486 216 5 0 0 0 - - -; +#X floatatom 520 216 5 0 0 0 - - -; +#X floatatom 554 216 5 0 0 0 - - -; +#X obj 101 348 gemlist_info; +#X obj 472 320 gemlist_matrix; +#X text 14 351 see also :; +#X text 29 77 Description: get curent transformation matrix of a gemlist +; +#X msg 496 378 \$1 \$2 \$3; +#X msg 503 398 \$5 \$6 \$7; +#X msg 510 419 \$9 \$10 \$11; +#X msg 517 440 \$13 \$14 \$15; +#X text 50 12 Synopsis: [gemlist_matrix]; +#X text 42 94 [gemlist_matrix] accepts a gemList and output the transformation +matrix.; +#X text 62 265 Outlet 2: transformation matrix (16 floats); +#X connect 11 0 12 0; +#X connect 12 0 11 0; +#X connect 19 0 32 0; +#X connect 20 0 32 1; +#X connect 21 0 32 2; +#X connect 22 0 32 3; +#X connect 23 0 30 1; +#X connect 24 0 30 2; +#X connect 25 0 30 3; +#X connect 26 0 31 1; +#X connect 27 0 31 2; +#X connect 28 0 31 3; +#X connect 29 0 30 0; +#X connect 30 0 37 0; +#X connect 31 0 29 0; +#X connect 32 0 31 0; +#X connect 33 0 29 1; +#X connect 34 0 29 2; +#X connect 35 0 29 3; +#X connect 37 1 40 0; +#X connect 37 1 41 0; +#X connect 37 1 42 0; +#X connect 37 1 43 0; diff --git a/Gem/help/gemmouse-help.pd b/Gem/help/gemmouse-help.pd new file mode 100644 index 0000000..77b243c --- /dev/null +++ b/Gem/help/gemmouse-help.pd @@ -0,0 +1,115 @@ +#N canvas 179 30 929 414 10; +#X obj 7 65 cnv 15 450 170 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X obj 8 283 cnv 15 450 120 empty empty empty 20 12 0 14 -233017 -66577 +0; +#X text 9 288 Inlets:; +#X obj 8 245 cnv 15 450 30 empty empty empty 20 12 0 14 -195568 -66577 +0; +#X text 17 244 Arguments:; +#X text 452 8 GEM object; +#X text 9 317 Outlets:; +#X text 475 29 Example:; +#X text 54 30 Class: control object; +#X obj 466 64 cnv 15 170 180 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 466 284 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 +0; +#N canvas 0 22 450 300 gemwin 0; +#X obj 132 136 gemwin; +#X obj 67 89 outlet; +#X obj 67 10 inlet; +#X obj 67 41 route create; +#X msg 67 70 set destroy; +#X msg 142 68 set create; +#X msg 198 112 destroy; +#X msg 132 112 create \, 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 7 0; +#X connect 3 1 5 0; +#X connect 3 1 6 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; +#X restore 471 323 pd gemwin; +#X msg 471 304 create; +#X text 467 283 Create window:; +#X text 27 300 Inlet 1: non - used; +#X text 468 364 see also:; +#X text 33 14 Synopsis: [gemmouse]; +#X text 7 69 Description: mouse events in the GEM window; +#X text 16 86 [gemmouse] sends out mouse events which occur in the +GEM window. The X and Y Position go from 0 to the size of the window +in pixels. The point (0 \, 0) is in the top left of the window.; +#X text 15 141 You can also set some normalization of the output coordinates +with arguments.; +#X text 15 170 The button outlets send a 1 when the specified button +is pressed and a 0 when it is released.; +#X text 63 255 [list : x-normalization y-normalization]; +#X text 21 330 Outlet 1: x position; +#X text 21 343 Outlet 2: y position; +#X text 21 355 Outlet 3: left button state; +#X text 21 368 Outlet 4: middle button state; +#X text 21 381 Outlet 5: right button state; +#X obj 466 385 gemkeyboard; +#X obj 478 82 cnv 15 100 40 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X obj 491 93 gemmouse; +#X floatatom 491 218 9 0 0 1 X-position - -; +#X floatatom 502 196 8 0 0 1 Y-position - -; +#X floatatom 513 174 2 0 0 1 left-Button - -; +#X floatatom 524 153 2 0 0 1 middle-Button - -; +#X floatatom 536 129 2 0 0 1 right-Button - -; +#X obj 642 64 cnv 15 280 180 empty empty empty 20 12 0 14 -228992 -66577 +0; +#X obj 654 82 cnv 15 100 40 empty empty empty 20 12 0 14 -24198 -66577 +0; +#X floatatom 657 135 9 0 0 1 X-position - -; +#X floatatom 674 113 8 0 0 1 Y-position - -; +#X text 792 134 (normalized to 0..1); +#X obj 657 89 gemmouse 1 1; +#X text 791 111 (normalized to 0..1); +#X obj 656 186 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 1 +1; +#N canvas 589 352 498 353 follow_mouse 0; +#X obj 112 29 inlet; +#X obj 168 74 * 8; +#X obj 168 97 - 4; +#X obj 168 31 inlet; +#X obj 112 129 gemhead; +#X obj 112 189 translateXYZ; +#X obj 112 217 colorRGB 1 0 0; +#X obj 112 242 square 0.25; +#X obj 214 139 - 4; +#X obj 214 33 inlet; +#X text 253 76 invert y; +#X obj 214 116 * 8; +#X msg 214 57 1 \$1; +#X obj 214 81 -; +#X connect 0 0 4 0; +#X connect 1 0 2 0; +#X connect 2 0 5 1; +#X connect 3 0 1 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 8 0 5 2; +#X connect 9 0 12 0; +#X connect 11 0 8 0; +#X connect 12 0 13 0; +#X connect 13 0 11 0; +#X restore 656 209 pd follow_mouse; +#X connect 11 0 12 0; +#X connect 12 0 11 0; +#X connect 29 0 30 0; +#X connect 29 1 31 0; +#X connect 29 2 32 0; +#X connect 29 3 33 0; +#X connect 29 4 34 0; +#X connect 37 0 43 1; +#X connect 38 0 43 2; +#X connect 40 0 37 0; +#X connect 40 1 38 0; +#X connect 42 0 43 0; diff --git a/Gem/help/gemorb-help.pd b/Gem/help/gemorb-help.pd new file mode 100644 index 0000000..2894cda --- /dev/null +++ b/Gem/help/gemorb-help.pd @@ -0,0 +1,32 @@ +#N canvas 293 148 600 556 10; +#X text 135 37 part of GEM; +#X obj 157 187 gemorb 1; +#X text 69 93 respond to events of a SpaceOrb on a specified commport. +; +#X msg 157 290 (X Y Z) Position; +#X msg 182 255 (X Y Z) Rotation; +#X msg 208 219 (a b c d e f g) Button; +#X text 152 70 [gemorb]; +#X text 67 326 [gemorb] connects to a SpaceOrb onthe commport specified +as the creation-argument.; +#X text 70 358 You have to have a SpaceOrb to make serious use of [gemorb] +; +#X text 66 389 Position and Rotation give you float-triplets specifying +the position/rotation at/for the 3 axis; +#X text 66 426 Button gives a 9tupel with the state \, each button +is in; +#X msg 180 118 reset; +#X msg 180 140 timer