- Reestructuración de ficheros y directorios general
- merge v0.01 --> Añadido fileselector - Añadidas fuentes de Gem y Pure Data - pix2jpg incluído en Gem. Archivos de construcción de Gem modificados. - Añadido fichero ompiling.txt con instrucciones de compilación
This commit is contained in:
parent
c9adfd020b
commit
e85d191b46
3100 changed files with 775434 additions and 3073 deletions
48
Gem/COPYING.txt
Normal file
48
Gem/COPYING.txt
Normal file
|
@ -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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
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
|
||||
|
12942
Gem/ChangeLog
Normal file
12942
Gem/ChangeLog
Normal file
File diff suppressed because it is too large
Load diff
10
Gem/Gem-meta.pd.in
Normal file
10
Gem/Gem-meta.pd.in
Normal file
|
@ -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;
|
14
Gem/Gem.pc.in
Normal file
14
Gem/Gem.pc.in
Normal file
|
@ -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@
|
290
Gem/GnuGPL.LICENSE.txt
Normal file
290
Gem/GnuGPL.LICENSE.txt
Normal file
|
@ -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
|
34
Gem/Makefile.am
Normal file
34
Gem/Makefile.am
Normal file
|
@ -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
|
184
Gem/README.txt
Normal file
184
Gem/README.txt
Normal file
|
@ -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-<gemver>.tgz :: quite everything (except binaries and auxiliary libraries)
|
||||
Gem-doc-<gemver>.tgz :: example-patches, manual, ...
|
||||
Gem-bin-<gemver>.zip :: W32-binary (containing a single file "Gem.dll")
|
||||
Gem-bin-doc-<gemver>.zip :: W32-binary + documentation
|
||||
|
||||
GemLibs-<OS>-<libver>.tgz :: auxiliary libraries (used to be "AuxLibs")
|
||||
|
||||
1) the core Gem-packages:
|
||||
the core Gem-packages all extract into the same directory Gem-<gemver>/
|
||||
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-<version>\ 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-<version>\
|
||||
|
||||
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_<type><NAME>.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
|
||||
|
77
Gem/TODO
Normal file
77
Gem/TODO
Normal file
|
@ -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 <name>Mess() provides a method for "<name>"
|
||||
- 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
|
||||
|
29
Gem/abstractions/Makefile.am
Normal file
29
Gem/abstractions/Makefile.am
Normal file
|
@ -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
|
||||
|
17
Gem/abstractions/gemdefaultwindow.pd.in
Normal file
17
Gem/abstractions/gemdefaultwindow.pd.in
Normal file
|
@ -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;
|
90
Gem/abstractions/gemhead.pd
Normal file
90
Gem/abstractions/gemhead.pd
Normal file
|
@ -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;
|
154
Gem/abstractions/gemmouse.pd
Normal file
154
Gem/abstractions/gemmouse.pd
Normal file
|
@ -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;
|
22
Gem/abstractions/gemorb.pd
Normal file
22
Gem/abstractions/gemorb.pd
Normal file
|
@ -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;
|
21
Gem/abstractions/gemtablet.pd
Normal file
21
Gem/abstractions/gemtablet.pd
Normal file
|
@ -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;
|
2802
Gem/abstractions/gemwin.pd
Normal file
2802
Gem/abstractions/gemwin.pd
Normal file
File diff suppressed because it is too large
Load diff
65
Gem/abstractions/hsv2rgb-help.pd
Normal file
65
Gem/abstractions/hsv2rgb-help.pd
Normal file
|
@ -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;
|
143
Gem/abstractions/hsv2rgb.pd
Normal file
143
Gem/abstractions/hsv2rgb.pd
Normal file
|
@ -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;
|
420
Gem/abstractions/pix_blobtracker-help.pd
Normal file
420
Gem/abstractions/pix_blobtracker-help.pd
Normal file
|
@ -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 <float>: minimum luminance of a pixel
|
||||
to be considered part of a blob. (default=0.04);
|
||||
#X text 24 325 Inlet 1: blobSize <float>: 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;
|
132
Gem/abstractions/pix_blobtracker.pd
Normal file
132
Gem/abstractions/pix_blobtracker.pd
Normal file
|
@ -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;
|
86
Gem/abstractions/pix_buffer_filmopen-help.pd
Normal file
86
Gem/abstractions/pix_buffer_filmopen-help.pd
Normal file
|
@ -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: <buffer_name>;
|
||||
#X text 26 312 Inlet 1: message: set <buffer_name>: 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 <filename> <bufferindex>: 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: <length> <width> <height>: 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;
|
78
Gem/abstractions/pix_buffer_filmopen.pd
Normal file
78
Gem/abstractions/pix_buffer_filmopen.pd
Normal file
|
@ -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;
|
197
Gem/abstractions/pix_write.pd
Normal file
197
Gem/abstractions/pix_write.pd
Normal file
|
@ -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;
|
150
Gem/abstractions/pix_writer.pd
Normal file
150
Gem/abstractions/pix_writer.pd
Normal file
|
@ -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;
|
21
Gem/abstractions/rgb2hsv-help.pd
Normal file
21
Gem/abstractions/rgb2hsv-help.pd
Normal file
|
@ -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;
|
301
Gem/abstractions/rgb2hsv.pd
Normal file
301
Gem/abstractions/rgb2hsv.pd
Normal file
|
@ -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;
|
36
Gem/abstractions/rgb2yuv-help.pd
Normal file
36
Gem/abstractions/rgb2yuv-help.pd
Normal file
|
@ -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;
|
105
Gem/abstractions/rgb2yuv.pd
Normal file
105
Gem/abstractions/rgb2yuv.pd
Normal file
|
@ -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;
|
35
Gem/abstractions/yuv2rgb-help.pd
Normal file
35
Gem/abstractions/yuv2rgb-help.pd
Normal file
|
@ -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;
|
84
Gem/abstractions/yuv2rgb.pd
Normal file
84
Gem/abstractions/yuv2rgb.pd
Normal file
|
@ -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;
|
165
Gem/autogen.sh
Executable file
165
Gem/autogen.sh
Executable file
|
@ -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
|
50
Gem/build/Makefile.am
Normal file
50
Gem/build/Makefile.am
Normal file
|
@ -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
|
||||
|
33
Gem/build/autoconf/README.txt
Normal file
33
Gem/build/autoconf/README.txt
Normal file
|
@ -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/
|
||||
|
37
Gem/build/autoconf/configure.mingw32
Normal file
37
Gem/build/autoconf/configure.mingw32
Normal file
|
@ -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 " \
|
||||
|
BIN
Gem/build/osx-dmginstaller/DS_Store
Normal file
BIN
Gem/build/osx-dmginstaller/DS_Store
Normal file
Binary file not shown.
52
Gem/build/osx-dmginstaller/buildinstaller.sh
Executable file
52
Gem/build/osx-dmginstaller/buildinstaller.sh
Executable file
|
@ -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"
|
||||
|
11
Gem/build/osx-dmginstaller/droplet_system.applescript
Normal file
11
Gem/build/osx-dmginstaller/droplet_system.applescript
Normal file
|
@ -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
|
||||
|
11
Gem/build/osx-dmginstaller/droplet_user.applescript
Normal file
11
Gem/build/osx-dmginstaller/droplet_user.applescript
Normal file
|
@ -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
|
||||
|
97
Gem/build/osx-dmginstaller/icon2app
Executable file
97
Gem/build/osx-dmginstaller/icon2app
Executable file
|
@ -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 <app or directory(writeable)> <iconfile.icns>" 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} <thisfile> -o <file-to-add-icon-to>
|
||||
* after that, enable the icon with
|
||||
* ${SETFILE} -a C <file-to-add-icon-to>
|
||||
*/
|
||||
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
|
||||
|
31
Gem/build/osx-dmginstaller/installer_system.applescript
Normal file
31
Gem/build/osx-dmginstaller/installer_system.applescript
Normal file
|
@ -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
|
31
Gem/build/osx-dmginstaller/installer_user.applescript
Normal file
31
Gem/build/osx-dmginstaller/installer_user.applescript
Normal file
|
@ -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
|
17940
Gem/build/osx-projectbuilder/Gem.pbproj/project.pbxproj
Normal file
17940
Gem/build/osx-projectbuilder/Gem.pbproj/project.pbxproj
Normal file
File diff suppressed because it is too large
Load diff
8768
Gem/build/osx-xcode/Gem.xcodeproj/project.pbxproj
Normal file
8768
Gem/build/osx-xcode/Gem.xcodeproj/project.pbxproj
Normal file
File diff suppressed because it is too large
Load diff
617
Gem/build/win-nsis/Gem.nsi
Normal file
617
Gem/build/win-nsis/Gem.nsi
Normal file
|
@ -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
|
11
Gem/build/win-nsis/buildinstaller.bat
Normal file
11
Gem/build/win-nsis/buildinstaller.bat
Normal file
|
@ -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%
|
91
Gem/build/win-nsis/uninstaller1.nsi
Normal file
91
Gem/build/win-nsis/uninstaller1.nsi
Normal file
|
@ -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
|
60
Gem/build/win-nsis/uninstaller2.nsi
Normal file
60
Gem/build/win-nsis/uninstaller2.nsi
Normal file
|
@ -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
|
294
Gem/build/win-vs2003/Gem.sln
Normal file
294
Gem/build/win-vs2003/Gem.sln
Normal file
|
@ -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
|
3765
Gem/build/win-vs2003/Gem.vcproj
Normal file
3765
Gem/build/win-vs2003/Gem.vcproj
Normal file
File diff suppressed because it is too large
Load diff
22
Gem/build/win-vs2003/README_W32.txt.template
Normal file
22
Gem/build/win-vs2003/README_W32.txt.template
Normal file
|
@ -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 <at> iem <tod> at
|
||||
gem-dev <at> iem <tod> at
|
10
Gem/build/win-vs2003/installer.bat
Normal file
10
Gem/build/win-vs2003/installer.bat
Normal file
|
@ -0,0 +1,10 @@
|
|||
set _=%CD%
|
||||
|
||||
set NSISDIR=..\win-nsis\
|
||||
|
||||
xcopy /y Gem.dll %NSISDIR%\
|
||||
cd %NSISDIR%
|
||||
|
||||
buildinstaller.bat %1
|
||||
|
||||
cd %_%
|
38
Gem/build/win-vs2003/installer.vcproj
Normal file
38
Gem/build/win-vs2003/installer.vcproj
Normal file
|
@ -0,0 +1,38 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="7.10"
|
||||
Name="installer"
|
||||
ProjectGUID="{6965876A-4A92-470C-95EF-EB554B13B336}"
|
||||
Keyword="MakeFileProj">
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"/>
|
||||
</Platforms>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="Debug"
|
||||
IntermediateDirectory="Debug"
|
||||
ConfigurationType="0">
|
||||
<Tool
|
||||
Name="VCNMakeTool"
|
||||
BuildCommandLine="buildinstaller.bat"/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="Release"
|
||||
IntermediateDirectory="Release"
|
||||
ConfigurationType="0">
|
||||
<Tool
|
||||
Name="VCNMakeTool"
|
||||
BuildCommandLine="installerCVS.bat"/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
2
Gem/build/win-vs2003/installerCVS.bat
Normal file
2
Gem/build/win-vs2003/installerCVS.bat
Normal file
|
@ -0,0 +1,2 @@
|
|||
installer SVN%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%
|
||||
rem installer 0.93.0
|
48
Gem/build/win-vs2003/libraries.txt
Normal file
48
Gem/build/win-vs2003/libraries.txt
Normal file
|
@ -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)
|
40
Gem/build/win-vs2003/release.bat
Normal file
40
Gem/build/win-vs2003/release.bat
Normal file
|
@ -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%
|
21
Gem/build/win-vs2008/Debug.vsprops
Normal file
21
Gem/build/win-vs2008/Debug.vsprops
Normal file
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioPropertySheet
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="Debug"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
InlineFunctionExpansion="0"
|
||||
FavorSizeOrSpeed="0"
|
||||
PreprocessorDefinitions="_DEBUG;DEBUG"
|
||||
RuntimeLibrary="1"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
GenerateDebugInformation="true"
|
||||
/>
|
||||
</VisualStudioPropertySheet>
|
17
Gem/build/win-vs2008/DirectShow.vsprops
Normal file
17
Gem/build/win-vs2008/DirectShow.vsprops
Normal file
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioPropertySheet
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="DirectShow"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""C:\DXSDK\samples\C++\DirectShow\BaseClasses""
|
||||
PreprocessorDefinitions="HAVE_DIRECTSHOW"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="ddraw.lib atls.lib strmiids.lib strmbase.lib"
|
||||
AdditionalLibraryDirectories=""C:\DXSDK\samples\C++\DirectShow\BaseClasses\Release""
|
||||
/>
|
||||
</VisualStudioPropertySheet>
|
17
Gem/build/win-vs2008/FTGL.vsprops
Normal file
17
Gem/build/win-vs2008/FTGL.vsprops
Normal file
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioPropertySheet
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="FTGL"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""$(FREETYPE)\include";"$(FTGL)\src""
|
||||
PreprocessorDefinitions="HAVE_LIBFTGL;HAVE_FTGL_FTGL_H;FTGL_LIBRARY_STATIC"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="FTGL.lib"
|
||||
AdditionalLibraryDirectories=""$(FTGL)\msvc\Build";"$(FTGL)\win32_vcpp\Build";"$(FREETYPE)\objs""
|
||||
/>
|
||||
</VisualStudioPropertySheet>
|
17
Gem/build/win-vs2008/FTGL_Debug.vsprops
Normal file
17
Gem/build/win-vs2008/FTGL_Debug.vsprops
Normal file
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioPropertySheet
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="FTGL Debug"
|
||||
InheritedPropertySheets=".\FTGL.vsprops"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="freetype235mt_D.lib"
|
||||
AdditionalLibraryDirectories=""
|
||||
/>
|
||||
</VisualStudioPropertySheet>
|
17
Gem/build/win-vs2008/FTGL_Release.vsprops
Normal file
17
Gem/build/win-vs2008/FTGL_Release.vsprops
Normal file
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioPropertySheet
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="FTGL Release"
|
||||
InheritedPropertySheets=".\FTGL.vsprops"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src;"$(FREETYPE)\include";"$(FTGL)\src""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="freetype235mt.lib"
|
||||
AdditionalLibraryDirectories=""
|
||||
/>
|
||||
</VisualStudioPropertySheet>
|
340
Gem/build/win-vs2008/Gem.sln
Normal file
340
Gem/build/win-vs2008/Gem.sln
Normal file
|
@ -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
|
4984
Gem/build/win-vs2008/Gem.vcproj
Normal file
4984
Gem/build/win-vs2008/Gem.vcproj
Normal file
File diff suppressed because it is too large
Load diff
17
Gem/build/win-vs2008/Gem.vsprops
Normal file
17
Gem/build/win-vs2008/Gem.vsprops
Normal file
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioPropertySheet
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="Gem"
|
||||
InheritedPropertySheets=".\puredata.vsprops"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""$(SolutionDir)\..\..\src";"$(ProjectDir)\..\..\src""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="Gem.lib"
|
||||
AdditionalLibraryDirectories=""$(SolutionDir)";"$(ProjectDir)\..\..\build\win-vs2008";"
|
||||
/>
|
||||
</VisualStudioPropertySheet>
|
20
Gem/build/win-vs2008/GemInternal.vsprops
Normal file
20
Gem/build/win-vs2008/GemInternal.vsprops
Normal file
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioPropertySheet
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="GemInternal"
|
||||
OutputDirectory="$(ProjectDir)"
|
||||
IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\src"
|
||||
PreprocessorDefinitions="GEM_INTERNAL;GLEW_BUILD"
|
||||
PrecompiledHeaderFile="$(IntDir)\$(ProjectName).pch"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="opengl32.lib glu32.lib ws2_32.lib"
|
||||
OutputFile="$(OutDir)\$(ProjectName).dll"
|
||||
/>
|
||||
</VisualStudioPropertySheet>
|
17
Gem/build/win-vs2008/QuickTime.vsprops
Normal file
17
Gem/build/win-vs2008/QuickTime.vsprops
Normal file
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioPropertySheet
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="QuickTime"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="$(ProgramFiles)\QuickTime SDK\CIncludes"
|
||||
PreprocessorDefinitions="HAVE_QUICKTIME"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="QTMLClient.lib"
|
||||
AdditionalLibraryDirectories="$(ProgramFiles)\QuickTime SDK\Libraries"
|
||||
/>
|
||||
</VisualStudioPropertySheet>
|
22
Gem/build/win-vs2008/README_W32.txt.template
Normal file
22
Gem/build/win-vs2008/README_W32.txt.template
Normal file
|
@ -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 <at> iem <tod> at
|
||||
gem-dev <at> iem <tod> at
|
17
Gem/build/win-vs2008/Release.vsprops
Normal file
17
Gem/build/win-vs2008/Release.vsprops
Normal file
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioPropertySheet
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="Release"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="2"
|
||||
FavorSizeOrSpeed="1"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
RuntimeLibrary="2"
|
||||
EnableFunctionLevelLinking="true"
|
||||
WarningLevel="3"
|
||||
/>
|
||||
</VisualStudioPropertySheet>
|
12
Gem/build/win-vs2008/SIMD.vsprops
Normal file
12
Gem/build/win-vs2008/SIMD.vsprops
Normal file
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioPropertySheet
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="SIMD"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PreprocessorDefinitions="__MMX__;__SSE2__"
|
||||
EnableEnhancedInstructionSet="2"
|
||||
/>
|
||||
</VisualStudioPropertySheet>
|
15
Gem/build/win-vs2008/VFW.vsprops
Normal file
15
Gem/build/win-vs2008/VFW.vsprops
Normal file
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioPropertySheet
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="VFW"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PreprocessorDefinitions="HAVE_VFW_H;HAVE_LIBVFW32"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="vfw32.lib"
|
||||
/>
|
||||
</VisualStudioPropertySheet>
|
8
Gem/build/win-vs2008/extra.vsprops
Normal file
8
Gem/build/win-vs2008/extra.vsprops
Normal file
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioPropertySheet
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="extra"
|
||||
InheritedPropertySheets=".\Gem.vsprops;.\extraCommon.vsprops;.\Release.vsprops"
|
||||
>
|
||||
</VisualStudioPropertySheet>
|
17
Gem/build/win-vs2008/extraCommon.vsprops
Normal file
17
Gem/build/win-vs2008/extraCommon.vsprops
Normal file
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioPropertySheet
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="extra - common config"
|
||||
OutputDirectory="$(ProjectDir)"
|
||||
IntermediateDirectory="$(ProjectDir)/$(ConfigurationName)"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PrecompiledHeaderFile="$(IntDir)\$(ProjectName).pch"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(OutDir)\..\$(ProjectName).dll"
|
||||
/>
|
||||
</VisualStudioPropertySheet>
|
10
Gem/build/win-vs2008/installer.bat
Normal file
10
Gem/build/win-vs2008/installer.bat
Normal file
|
@ -0,0 +1,10 @@
|
|||
set _=%CD%
|
||||
|
||||
set NSISDIR=..\win-nsis\
|
||||
|
||||
xcopy /y Gem.dll %NSISDIR%\
|
||||
cd %NSISDIR%
|
||||
|
||||
buildinstaller.bat %1
|
||||
|
||||
cd %_%
|
65
Gem/build/win-vs2008/installer.vcproj
Normal file
65
Gem/build/win-vs2008/installer.vcproj
Normal file
|
@ -0,0 +1,65 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9,00"
|
||||
Name="installer"
|
||||
ProjectGUID="{6965876A-4A92-470C-95EF-EB554B13B336}"
|
||||
Keyword="MakeFileProj"
|
||||
TargetFrameworkVersion="131072"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="Debug"
|
||||
IntermediateDirectory="Debug"
|
||||
ConfigurationType="0"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||
>
|
||||
<Tool
|
||||
Name="VCNMakeTool"
|
||||
BuildCommandLine="buildinstaller.bat"
|
||||
ReBuildCommandLine=""
|
||||
CleanCommandLine=""
|
||||
Output=""
|
||||
PreprocessorDefinitions=""
|
||||
IncludeSearchPath=""
|
||||
ForcedIncludes=""
|
||||
AssemblySearchPath=""
|
||||
ForcedUsingAssemblies=""
|
||||
CompileAsManaged=""
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="Release"
|
||||
IntermediateDirectory="Release"
|
||||
ConfigurationType="0"
|
||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||
>
|
||||
<Tool
|
||||
Name="VCNMakeTool"
|
||||
BuildCommandLine="installerCVS.bat"
|
||||
ReBuildCommandLine=""
|
||||
CleanCommandLine=""
|
||||
Output=""
|
||||
PreprocessorDefinitions=""
|
||||
IncludeSearchPath=""
|
||||
ForcedIncludes=""
|
||||
AssemblySearchPath=""
|
||||
ForcedUsingAssemblies=""
|
||||
CompileAsManaged=""
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
</Files>
|
||||
</VisualStudioProject>
|
2
Gem/build/win-vs2008/installerCVS.bat
Normal file
2
Gem/build/win-vs2008/installerCVS.bat
Normal file
|
@ -0,0 +1,2 @@
|
|||
installer SVN%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%
|
||||
rem installer 0.93.0
|
48
Gem/build/win-vs2008/libraries.txt
Normal file
48
Gem/build/win-vs2008/libraries.txt
Normal file
|
@ -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)
|
8
Gem/build/win-vs2008/plugin.vsprops
Normal file
8
Gem/build/win-vs2008/plugin.vsprops
Normal file
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioPropertySheet
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="plugin"
|
||||
InheritedPropertySheets=".\Gem.vsprops;.\Release.vsprops;.\pluginCommon.vsprops"
|
||||
>
|
||||
</VisualStudioPropertySheet>
|
13
Gem/build/win-vs2008/pluginCommon.vsprops
Normal file
13
Gem/build/win-vs2008/pluginCommon.vsprops
Normal file
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioPropertySheet
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="plugin - common config"
|
||||
OutputDirectory="$(SolutionDir)"
|
||||
IntermediateDirectory="$(ProjectDir)/$(ConfigurationName)"
|
||||
>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(OutDir)/gem_$(ProjectName).dll"
|
||||
/>
|
||||
</VisualStudioPropertySheet>
|
17
Gem/build/win-vs2008/pthread.vsprops
Normal file
17
Gem/build/win-vs2008/pthread.vsprops
Normal file
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioPropertySheet
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="pthread"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\..\pd\src;"$(ProgramFiles)\pd\src""
|
||||
PreprocessorDefinitions="HAVE_PTHREADS;HAVE_PTHREAD_H"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="pthreadVC.lib"
|
||||
AdditionalLibraryDirectories="..\..\..\pd\bin;"$(ProgramFiles)\pd\bin""
|
||||
/>
|
||||
</VisualStudioPropertySheet>
|
18
Gem/build/win-vs2008/puredata.vsprops
Normal file
18
Gem/build/win-vs2008/puredata.vsprops
Normal file
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioPropertySheet
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="puredata"
|
||||
InheritedPropertySheets=".\w32.vsprops"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""..\..\..\pure-data\pd\src";..\..\..\pd\src;"$(ProjectDir)\..\..\..\..\pd\src";"$(ProgramFiles)\pd\src""
|
||||
PreprocessorDefinitions="MSW"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="pd.lib"
|
||||
AdditionalLibraryDirectories=""..\..\..\pure-data\pd\bin";..\..\..\pd\bin;"$(ProjectDir)\..\..\..\..\pd\bin";"$(ProgramFiles)\pd\bin""
|
||||
/>
|
||||
</VisualStudioPropertySheet>
|
40
Gem/build/win-vs2008/release.bat
Normal file
40
Gem/build/win-vs2008/release.bat
Normal file
|
@ -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%
|
19
Gem/build/win-vs2008/w32.vsprops
Normal file
19
Gem/build/win-vs2008/w32.vsprops
Normal file
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioPropertySheet
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="w32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PreprocessorDefinitions="WIN32;_WINDOWS;__WIN32__;NT;WIN32_LEAN_AND_MEAN;_LANGUAGE_C_PLUS_PLUS"
|
||||
StringPooling="true"
|
||||
DefaultCharIsUnsigned="false"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
SubSystem="2"
|
||||
RandomizedBaseAddress="1"
|
||||
DataExecutionPrevention="0"
|
||||
/>
|
||||
</VisualStudioPropertySheet>
|
16
Gem/build/win-vs6/README.txt
Normal file
16
Gem/build/win-vs6/README.txt
Normal file
|
@ -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 <Gem>/src/ instead of
|
||||
<Gem>/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)
|
||||
|
4545
Gem/build/win-vs6/gem.dsp
Normal file
4545
Gem/build/win-vs6/gem.dsp
Normal file
File diff suppressed because it is too large
Load diff
29
Gem/build/win-vs6/gem_vc6.dsw
Normal file
29
Gem/build/win-vs6/gem_vc6.dsw
Normal file
|
@ -0,0 +1,29 @@
|
|||
Microsoft Developer Studio Workspace File, Format Version 6.00
|
||||
# WARNUNG: DIESE ARBEITSBEREICHSDATEI DARF NICHT BEARBEITET ODER GELÖSCHT WERDEN!
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "gem"=.\gem.dsp - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Global:
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<3>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
16
Gem/build/win-vs7/README.txt
Normal file
16
Gem/build/win-vs7/README.txt
Normal file
|
@ -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 <Gem>/src/ instead of
|
||||
<Gem>/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)
|
||||
|
3237
Gem/build/win-vs7/gem.vcproj
Normal file
3237
Gem/build/win-vs7/gem.vcproj
Normal file
File diff suppressed because it is too large
Load diff
21
Gem/build/win-vs7/gem_vc7.sln
Normal file
21
Gem/build/win-vs7/gem_vc7.sln
Normal file
|
@ -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
|
720
Gem/configure.ac
Normal file
720
Gem/configure.ac
Normal file
|
@ -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 ...])
|
145
Gem/doc/CodingStyle.txt
Normal file
145
Gem/doc/CodingStyle.txt
Normal file
|
@ -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.
|
||||
|
BIN
Gem/doc/GemPrimer.pdf
Normal file
BIN
Gem/doc/GemPrimer.pdf
Normal file
Binary file not shown.
47
Gem/doc/Makefile.am
Normal file
47
Gem/doc/Makefile.am
Normal file
|
@ -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
|
270
Gem/doc/cMatrix.html
Normal file
270
Gem/doc/cMatrix.html
Normal file
|
@ -0,0 +1,270 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Matrix Operations for Image Processing</title>
|
||||
</head>
|
||||
<body bgcolor="#ffffff" text="#000000">
|
||||
<!--no_print--><br><center><table width=564><tr><td>
|
||||
<h2>Matrix Operations for Image Processing</h2>
|
||||
<!--no_print--><h3>Paul Haeberli</h3>
|
||||
<h3>Nov 1993</h3>
|
||||
<img src=../tribar.gif alt="Horiz Bar" width=561 height=3>
|
||||
<h3>Introduction</h3>
|
||||
<p>
|
||||
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.
|
||||
<p>
|
||||
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.
|
||||
|
||||
<h3>Color Transformation</h3>
|
||||
RGB colors are transformed by a four by four matrix as shown here:
|
||||
|
||||
<pre>
|
||||
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];
|
||||
}
|
||||
</pre>
|
||||
|
||||
<h3>The Identity</h3>
|
||||
This is the identity matrix:
|
||||
<pre>
|
||||
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,
|
||||
};
|
||||
</pre>
|
||||
Transforming colors by the identity matrix will leave them unchanged.
|
||||
|
||||
<h3>Changing Brightness</h3>
|
||||
To scale RGB colors a matrix like this is used:
|
||||
<pre>
|
||||
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,
|
||||
};
|
||||
</pre>
|
||||
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.
|
||||
<p>
|
||||
In effect, this calculates:
|
||||
<pre>
|
||||
tr = r*rscale;
|
||||
tg = g*gscale;
|
||||
tb = b*bscale;
|
||||
</pre>
|
||||
|
||||
<h3>Modifying Saturation</h3>
|
||||
|
||||
|
||||
<h3>Converting to Luminance</h3>
|
||||
To convert a color image into a black and white image, this matrix is used:
|
||||
<pre>
|
||||
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,
|
||||
};
|
||||
</pre>
|
||||
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.
|
||||
<p>
|
||||
In effect, this calculates:
|
||||
<pre>
|
||||
tr = r*rwgt + g*gwgt + b*bwgt;
|
||||
tg = r*rwgt + g*gwgt + b*bwgt;
|
||||
tb = r*rwgt + g*gwgt + b*bwgt;
|
||||
</pre>
|
||||
|
||||
<h3>Modifying Saturation</h3>
|
||||
|
||||
To saturate RGB colors, this matrix is used:
|
||||
|
||||
<pre>
|
||||
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,
|
||||
};
|
||||
</pre>
|
||||
Where the constants are derived from the saturation value s
|
||||
as shown below:
|
||||
|
||||
<pre>
|
||||
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;
|
||||
</pre>
|
||||
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.
|
||||
<p>
|
||||
Notice that when <code>s</code> is set to 0.0, the matrix is exactly
|
||||
the "convert to luminance" matrix described above. When <code>s</code>
|
||||
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.
|
||||
<p>
|
||||
This is discussed in more detail in the note on
|
||||
<a href="../interp/index.html">Image Processing By Interpolation and Extrapolation</a>.
|
||||
<h3>Applying Offsets to Color Components</h3>
|
||||
To offset the r, g, and b components of colors in an image this matrix is used:
|
||||
<pre>
|
||||
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,
|
||||
};
|
||||
</pre>
|
||||
This can be used along with color scaling to alter the contrast of RGB
|
||||
images.
|
||||
|
||||
<h3>Simple Hue Rotation</h3>
|
||||
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:
|
||||
<p>
|
||||
If we have functions:<br><br>
|
||||
<dl>
|
||||
<dt><code>identmat(mat)</code>
|
||||
<dd>that creates an identity matrix.
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><code>xrotatemat(mat,rsin,rcos)</code>
|
||||
<dd>that multiplies a matrix that rotates about the x (red) axis.
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><code>yrotatemat(mat,rsin,rcos)</code>
|
||||
<dd>that multiplies a matrix that rotates about the y (green) axis.
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><code>zrotatemat(mat,rsin,rcos)</code>
|
||||
<dd>that multiplies a matrix that rotates about the z (blue) axis.
|
||||
</dl>
|
||||
Then a matrix that rotates about the 1.0,1.0,1.0 diagonal can be
|
||||
constructed like this:
|
||||
<br>
|
||||
First we make an identity matrix
|
||||
<pre>
|
||||
identmat(mat);
|
||||
</pre>
|
||||
Rotate the grey vector into positive Z
|
||||
<pre>
|
||||
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);
|
||||
</pre>
|
||||
Rotate the hue
|
||||
<pre>
|
||||
zrs = sin(rot*PI/180.0);
|
||||
zrc = cos(rot*PI/180.0);
|
||||
zrotatemat(mat,zrs,zrc);
|
||||
</pre>
|
||||
Rotate the grey vector back into place
|
||||
<pre>
|
||||
yrotatemat(mat,-yrs,yrc);
|
||||
xrotatemat(mat,-xrs,xrc);
|
||||
</pre>
|
||||
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:
|
||||
|
||||
<h3>Hue Rotation While Preserving Luminance</h3>
|
||||
|
||||
We make an identity matrix
|
||||
<pre>
|
||||
identmat(mmat);
|
||||
</pre>
|
||||
Rotate the grey vector into positive Z
|
||||
<pre>
|
||||
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);
|
||||
</pre>
|
||||
Shear the space to make the luminance plane horizontal
|
||||
<pre>
|
||||
xformrgb(mmat,rwgt,gwgt,bwgt,&lx,&ly,&lz);
|
||||
zsx = lx/lz;
|
||||
zsy = ly/lz;
|
||||
zshearmat(mat,zsx,zsy);
|
||||
</pre>
|
||||
Rotate the hue
|
||||
<pre>
|
||||
zrs = sin(rot*PI/180.0);
|
||||
zrc = cos(rot*PI/180.0);
|
||||
zrotatemat(mat,zrs,zrc);
|
||||
</pre>
|
||||
Unshear the space to put the luminance plane back
|
||||
<pre>
|
||||
zshearmat(mat,-zsx,-zsy);
|
||||
</pre>
|
||||
Rotate the grey vector back into place
|
||||
<pre>
|
||||
yrotatemat(mat,-yrs,yrc);
|
||||
xrotatemat(mat,-xrs,xrc);
|
||||
</pre>
|
||||
<h3>Conclusion</h3>
|
||||
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.
|
||||
<p>
|
||||
<a href="matrix.c">Example C code</a>
|
||||
that demonstrates these concepts is provided for your enjoyment.
|
||||
<p>
|
||||
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.
|
||||
<!--no_print--><p>
|
||||
<!--no_print--><center>
|
||||
<!--no_print--><a href=../index.html#matrix><img src=../gobot.gif width=564 height=25 border=0></a>
|
||||
<!--no_print--><br>
|
||||
<!--no_print--></center>
|
||||
<!--no_print--></td></tr></table></center>
|
||||
</body>
|
||||
</html>
|
||||
|
298
Gem/doc/gem.known_bugs.txt
Normal file
298
Gem/doc/gem.known_bugs.txt
Normal file
|
@ -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
|
1018
Gem/doc/gem.release_notes.txt
Normal file
1018
Gem/doc/gem.release_notes.txt
Normal file
File diff suppressed because it is too large
Load diff
65
Gem/doc/gem.todo.txt
Normal file
65
Gem/doc/gem.todo.txt
Normal file
|
@ -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
|
27
Gem/doc/manual/Advanced.html
Normal file
27
Gem/doc/manual/Advanced.html
Normal file
|
@ -0,0 +1,27 @@
|
|||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="Author" content="Mark Danks">
|
||||
<meta name="GENERATOR" content="Mozilla/4.5 [en] (WinNT; I) [Netscape]">
|
||||
<title>Advanced</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<center>
|
||||
<h2>
|
||||
<u>Advanced objects</u></h2></center>
|
||||
|
||||
<p><br>Todo:
|
||||
<p>more than 8 lights
|
||||
<br>pix_imageInPlace
|
||||
<br>accumrotate
|
||||
<br>camera
|
||||
<br>polygon and curve
|
||||
<br>text3d
|
||||
<br>pix_data
|
||||
<br>linear_path
|
||||
<br>spline_path
|
||||
<p><a href="index.html">[return]</a>
|
||||
</body>
|
||||
</html>
|
115
Gem/doc/manual/BasicObj.html
Normal file
115
Gem/doc/manual/BasicObj.html
Normal file
|
@ -0,0 +1,115 @@
|
|||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="Author" content="Mark Danks">
|
||||
<meta name="Author" content="IOhannes m zmölnig">
|
||||
<title>Basic Objects</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<center>
|
||||
<h2>
|
||||
<u>Basic Objects</u></h2></center>
|
||||
|
||||
<p><br>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.
|
||||
<p><a href="#gemwin">[gemwin]</a> - The window manager
|
||||
<br><a href="#gemhead">[gemhead]</a> - The start of a rendering chain
|
||||
<br><a href="#manips">manips</a> - Move an object in the window
|
||||
<br><a href="#geos">geos</a> - Render a shape
|
||||
<p><img SRC="tribar.gif" height=13 width=561>
|
||||
<h3>
|
||||
<a NAME="gemwin"></a>[gemwin]</h3>
|
||||
The graphics window is created and destroyed with the <i>[gemwin]</i> object.
|
||||
With the <i>[gemwin]</i> 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 <i>[gemwin]</i>
|
||||
object with these messages:
|
||||
<center>
|
||||
<p><img SRC="gemwin.jpg" BORDER=1 height=128 width=78></center>
|
||||
The create and destroy messages will display and remove the graphics window.
|
||||
The 1 and 0 messages start and stop rendering.
|
||||
<p><img SRC="tribar.gif" height=13 width=561>
|
||||
<h3>
|
||||
<a NAME="gemhead"></a>[gemhead]</h3>
|
||||
The <i>[gemhead]</i> object is the start of every rendering chain.
|
||||
A simple patch, which is located in examples/gem_basic/gem1.redSquare.pd
|
||||
looks like:
|
||||
<center>
|
||||
<p><img SRC="redSquare.jpg" BORDER=1 height=138 width=91></center>
|
||||
|
||||
<p>This patch will render a red square. The <i>[gemhead]</i> object
|
||||
signifies the start of rendering. The <i>[color]</i> object sets the color
|
||||
for all objects after it in the chain. The <i>[square]</i> 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.
|
||||
<p>Every rendering chain <b>MUST</b> start with a [gemhead]. If you
|
||||
do not put a <i>[gemhead]</i> at the beginning of the chain, then nothing
|
||||
will be rendered for that part of the patch.
|
||||
<p><img SRC="tribar.gif" height=13 width=561>
|
||||
<h3>
|
||||
<a NAME="manips"></a>manips</h3>
|
||||
In the patch 01.basic/02.cube.pd, the <i>[translateXYZ]</i> object is
|
||||
introduced.
|
||||
<center>
|
||||
<p><img SRC="basicCube.jpg" BORDER=1 height=133 width=93></center>
|
||||
|
||||
<p>The graphics are transformed and moved by the <i>manipulator</i> objects,
|
||||
or the manips. GEM has the following manips:
|
||||
<p><i>[color]</i> - set the color with a vector
|
||||
<br><i>[colorRGB]</i> - set the color with 3 discrete values
|
||||
<br><i>[rotate]</i> - rotate with an angle and vector
|
||||
<br><i>[rotateXYZ]</i> - rotate with 3 discrete values
|
||||
<br><i>[scale]</i> - scale with a vector
|
||||
<br><i>[scaleXYZ]</i> - scale with 3 discrete values
|
||||
<br><i>[translate]</i> - translate with a vector
|
||||
<br><i>[translateXYZ]</i> - translate with 3 discrete values
|
||||
<p>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.
|
||||
<center>
|
||||
<p><img SRC="transXYZ.jpg" BORDER=1 height=92 width=201></center>
|
||||
|
||||
<p>The two translate objects above will do exactly the same thing in a
|
||||
patch, but they provide two different ways to do it. <i>[translate]</i> accepts
|
||||
a scalar and vector. <i>[translateXYZ]</i> accepts three floats which
|
||||
specify a point in space. The manips will transform any object which
|
||||
appears after it in the rendering chain.
|
||||
<p><img SRC="tribar.gif" height=13 width=561>
|
||||
<h3>
|
||||
<a NAME="geos"></a>geos</h3>
|
||||
Up above, we saw the <i>[square]</i> and <i>[cube]</i> objects. The other
|
||||
primary geos are:
|
||||
<p><i>[square]</i> - render a square
|
||||
<br><i>[circle]</i> - render a circle
|
||||
<br><i>[triangle]</i> - render a triangle
|
||||
<br><i>[cube]</i> - render a cube
|
||||
<br><i>[sphere]</i> - render a sphere
|
||||
<br><i>[cone]</i> - render a cone
|
||||
<p>The <i>[square]</i>, <i>[circle]</i>, <i>[cube]</i>, and <i>[triangle]</i> objects
|
||||
have a right-hand inlet to set the size of the shape. The default
|
||||
size is 1.
|
||||
<p>The <i>[cone]</i> and <i>[sphere]</i> 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
|
||||
<i><a href="Lighting.html#world_light">[world_light]</a></i>
|
||||
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).
|
||||
<p>Your graphics window should look like this for 5 and 15 slices:
|
||||
<center>
|
||||
<p><img SRC="sphere5.jpg" BORDER=0 height=150 width=150><img SRC="sphere15.jpg" height=150 width=150></center>
|
||||
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.
|
||||
<p><img SRC="tribar.gif" height=13 width=561>
|
||||
<p><a href="index.html">[return]</a>
|
||||
<br>
|
||||
</body>
|
||||
</html>
|
667
Gem/doc/manual/GemFaq.html
Normal file
667
Gem/doc/manual/GemFaq.html
Normal file
|
@ -0,0 +1,667 @@
|
|||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="Author" content="Mark Danks">
|
||||
<meta name="GENERATOR" content="Mozilla/4.5 [en] (WinNT; I) [Netscape]">
|
||||
<title>Gem FAQ</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<center>
|
||||
<h2>
|
||||
<u>GEM FAQ</u></h2></center>
|
||||
|
||||
<p><br>* : new question
|
||||
<br>+ : changed question
|
||||
<p><img SRC="tribar.gif" height=13 width=561>
|
||||
<h2>
|
||||
<u>QUESTIONS</u></h2>
|
||||
<i><a href="#General">GENERAL</a></i>
|
||||
<br><a href="#1.1">1.1) What is GEM?</a>
|
||||
<br><a href="#1.2">1.2) What is Pd?</a>
|
||||
<br><a href="#1.3">1.3) What platforms do GEM and Pd run on?</a>
|
||||
<br><a href="#1.4.0">1.4.0) How do I install GEM and Pd on IRIX?</a>
|
||||
<br><a href="#1.4.1">1.4.1) How do I install GEM and Pd on linux?</a>
|
||||
<br><a href="#1.4.2">1.4.2) How do I install GEM and Pd on WinNT?</a>
|
||||
<br><a href="#1.7">1.7) What is a good intro to OpenGL?</a>
|
||||
<br><a href="#1.8">1.8) Are there any web sites for Pd or GEM?</a>
|
||||
<br><a href="#1.9">1.9) What libraries does GEM use? (aka: Who does Mark
|
||||
want to thank?)</a>
|
||||
<br><a href="#1.10">1.10) Are there any restrictions on GEM?</a>
|
||||
<br><a href="#1.11">1.11) How do I use GEM in a performance?</a>
|
||||
<p><i><a href="#UsingGem">USING GEM</a></i>
|
||||
<br><a href="#2.1">2.1) How do I (???)</a>
|
||||
<br><a href="#2.2">2.2) How do I make GEM run?</a>
|
||||
<br><a href="#2.3">2.3) Why doesn't GEM run?</a>
|
||||
<br><a href="#2.4">2.4) I've got it running. Now what?</a>
|
||||
<br><a href="#2.5">2.5) On IRIX 5.3, why does GEM dump with an rld error?</a>
|
||||
<br><a href="#2.6">2.6) Why can't I compile GEM on IRIX 5.3?</a>
|
||||
<br><a href="#2.7">2.7) Why is GEM slow in general?</a>
|
||||
<br><a href="#2.8">2.8) Why is GEM slow on IRIX?</a>
|
||||
<br><a href="#2.9">2.9) Why is GEM slow on WinNT/Win95?</a>
|
||||
<br><a href="#2.10">2.10) Why is GEM slow on Linux?</a>
|
||||
<br><a href="#2.11">2.11) If I resize the window, everything looks strange.</a>
|
||||
<br><a href="#2.12">2.12) Can GEM run on a 3Dfx Voodoo card?</a>
|
||||
<br><a href="#2.13">2.13) Will GEM support hardware transform and lighting
|
||||
(T&L) ?</a>
|
||||
<br><a href="#2.14">2.14) I get an error "GEM needs Truecolor visual support".</a>
|
||||
<p><i><a href="#ViewingObjects">VIEWING OBJECTS</a></i>
|
||||
<br><a href="#3.1">3.1) Why does everything seem dim?</a>
|
||||
<br><a href="#3.2">3.2) Why does everything seem dark?</a>
|
||||
<p><i><a href="#TextureMapping">TEXTURE MAPPING</a></i>
|
||||
<br><a href="#4.1">4.1) My image doesn't appear. What is going on?</a>
|
||||
<br><a href="#4.2">4.2) My image looks strange. What is going on?</a>
|
||||
<br><a href="#4.3">4.3) Why does GEM say that it can't handle a gray image?</a>
|
||||
<br><a href="#4.4">4.4) What image formats can GEM handle?</a>
|
||||
<br><a href="#4.5">4.5) What movie formats can GEM handle?</a>
|
||||
<br><a href="#4.6">4.6) Why is pix_draw so slow?</a>
|
||||
<p><i><a href="#WorkingWithPd">WORKING WITH PD</a></i>
|
||||
<br><a href="#5.1">5.1) Why do I get clicks in the audio?</a>
|
||||
<br><a href="#5.2">5.2) How do I get audio data to GEM?</a>
|
||||
<br><a href="#5.3">5.3) Why can't GEM find an image/model file?</a>
|
||||
<br><a href="#5.4">5.4) How can I optimize my patches?</a>
|
||||
<p><i><a href="#NewGemObjects">WRITING NEW GEM OBJECTS</a></i>
|
||||
<br><a href="#6.1">6.1) How do I write a new GEM object?</a>
|
||||
<br><a href="#6.2">6.2) What are the default OpenGL states?</a>
|
||||
<p><i><a href="#ObjectSpecific">OBJECT SPECIFIC</a></i>
|
||||
<br><a href="#7.1">7.1) Why doesn't <object> exist on <platform>?</a>
|
||||
<br><a href="#7.2">7.2) Why doesn't gemtablet work?</a>
|
||||
<br><a href="#7.3">7.3) I don't want GEM to take over my tablet.
|
||||
How do I stop it?</a>
|
||||
<br><a href="#7.4">7.4) Why doesn't gemmouse work in IRIX/Linux?</a>
|
||||
<br><a href="#7.5">7.5) Why doesn't gemorb work?</a>
|
||||
<br><a href="#7.6">7.6) What is wrong with pix_video in WinNT?</a>
|
||||
<p><img SRC="tribar.gif" height=13 width=561>
|
||||
<h2>
|
||||
<u>ANSWERS</u></h2>
|
||||
<a NAME="General"></a><h3>GENERAL</h3>
|
||||
<br><a NAME="1.1"></a>1.1) What is GEM?
|
||||
<p>GEM is the Graphics Environment for Multimedia.
|
||||
It was originally written by <a href="mailto:mark@danks.org">Mark Danks</a> 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.
|
||||
<p>You can get GEM at <a href="http://www.iem.at/GEM">http://gem.iem.at/</a>
|
||||
<p>GEM was sponsored by a grant from Intel (<a href="http://www.intel.com">http://www.intel.com</a>)
|
||||
<p>GEM was ported to <a href="http://www.linux.org">linux</a> by <a href="mailto:geiger@xdv.org">Günter Geiger</a>
|
||||
<p>GEM is now maintained by <a href="mailto:zmoelnig@iem.at">IOhannes m zmölnig</a>.
|
||||
<p>the core-development team consists of<ul>
|
||||
<li>chris clepper</li>
|
||||
<li>günter geiger</li>
|
||||
<li>daniel heckenberg</li>
|
||||
<li>james tittle</li>
|
||||
<li>IOhannes m zmölnig</li></ul>
|
||||
lots of contributions are made by various people (thanks to all of them)
|
||||
<p>----
|
||||
<br><a NAME="1.2"></a>1.2) What is Pd?
|
||||
<p>Pd is a real-time environment for audio and MIDI.
|
||||
It was written by <a href="mailto:msp@ucsd.edu">Miller Puckette</a>, 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.
|
||||
<p>You can get Pd at <a href="http://www.crca.ucsd.edu/~msp/software.html">http://www.crca.ucsd.edu/~msp/software.html</a>
|
||||
<p>Pd is sponsored by a grant from Intel (<a href="http://www.intel.com">http://www.intel.com</a>)
|
||||
<p>----
|
||||
<br><a NAME="1.3"></a>1.3) What platforms do GEM and Pd run on?
|
||||
<p>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).
|
||||
<a href="mailto:geiger@xdv.org">Günter Geiger</a>
|
||||
has done an initial port of GEM and Pd to Linux <a href="http://gige.epy.co.at/">http://gige.epy.co.at</a>).
|
||||
<p>GEM is now maintained by <a href="mailto:zmoelnig@iem.at">me</a> and
|
||||
developed by a team of several independent programmers (see <a href="1.1">section 1.1</a>)
|
||||
<p>----
|
||||
<br><a NAME="1.4"></a>1.4) How do I install GEM ?
|
||||
<p>----
|
||||
<br><a NAME="1.4.0"></a>1.4.0) How do I install GEM and Pd on IRIX?
|
||||
<p>See the readme for installing Pd.
|
||||
<p>GEM should be at
|
||||
<p>pd/gem
|
||||
<p>If you run GEM.INSTALL.sh, then all of the example files and documention
|
||||
should be put in the correct locations.
|
||||
<p>----
|
||||
<br><a NAME="1.4.1"></a>1.4.1) How do I install GEM and Pd on linux?
|
||||
<p>See the readme for installing Pd.
|
||||
<p>GEM should be at
|
||||
<p>chdir to <gem>/src/Gnu and build Gem following the instructions in the README.build
|
||||
(<tt>./configure; make</tt>)
|
||||
<p>If you then <tt>make install</tt>, then all of the example files and documention
|
||||
should be put in the correct locations.
|
||||
<p>if you are using debian, Gem should be available via apt</p>
|
||||
<p>if you are using an rpm-based distribution, check out the builds at planetCCRMA</p>
|
||||
<p>----
|
||||
<br><a NAME="1.4.2"></a>1.4.2) How do I install GEM and Pd on WinNT?
|
||||
<p>See the readme for installing Pd.
|
||||
<p>unzip GEM so that it is at
|
||||
<p>pd\gem
|
||||
<p>If you run GEM.INSTALL.bat, then all of the example files and documentation
|
||||
should be put in the correct locations.
|
||||
<p>there is also an installer for windows.
|
||||
<p>----
|
||||
<br><a NAME="1.4.3"></a>1.4.3) How do I install GEM and Pd on macOS?
|
||||
<p>See the readme for installing Pd.
|
||||
<p>there is also an installer for macOS.
|
||||
<p>----
|
||||
<br><a NAME="1.7"></a>1.7) What is a good intro to OpenGL?
|
||||
<p>The best book is the <u>OpenGL Programming Manual</u>
|
||||
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
|
||||
<a href="http://www.opengl.org">http://www.opengl.org</a>.
|
||||
Also, Mark Kilgard (who used to work for SGI) has a wonderful site with
|
||||
lots of links (<a href="http://reality.sgi.com/mjk">http://reality.sgi.com/mjk</a>)
|
||||
Also, Normal Lin has written another great book on <u>3D-graphics under linux</u>
|
||||
<p>----
|
||||
<br><a NAME="1.8"></a>1.8) Are there any web sites for Pd or GEM?
|
||||
<p>Except for the ones noted above, there is the Japanese
|
||||
installation page at
|
||||
<br><a href="http://www.rinc.or.jp/~kotobuki/gem/index.htm">http://www.rinc.or.jp/~kotobuki/gem/index.htm</a>
|
||||
<p>There is a Pd mailing list. Subscription info
|
||||
is on IEM's site <a href="http://www.iem.at/mailinglists/pd-list">http://www.iem.at/mailinglists/pd-list</a>
|
||||
<p>One of pd's unofficial home-pages is at <a href="http://pd.iem.at">http://pd.iem.at</a> hosted by the
|
||||
<a href="http://iem.at">Institute of Electronic Music and Acoustics, Graz, Austria</a>
|
||||
<p>Also hosted by the <a href="http://iem.at">iem</a> is the site of the pd-community
|
||||
<a href="http://www.puredata.info">http://www.puredata.info</a>
|
||||
<p>An interesting place might also be Günter Geiger's size <a href="http://gige.epy.co.at/">http://gige.epy.co.at/</a>
|
||||
<p>there are lot's of other cool pages (search the net...)
|
||||
<p>----
|
||||
<br><a NAME="1.9"></a>1.9) What libraries does GEM use?
|
||||
(aka: Who does Mark want to thank?)
|
||||
<p>All copyrights and license info can be found in
|
||||
<br> GEM.LICENSE.TERMS
|
||||
<br> Thanks to Sam Leffner for libTiff, the TIFF image
|
||||
loader.
|
||||
<br>
|
||||
sam@engr.sgi.com
|
||||
<br> <a href="ftp://ftp.sgi.com/graphics/tiff/">ftp://ftp.sgi.com/graphics/tiff/</a>
|
||||
<br> Thanks to Masayuki Matsumoto for fstimage for OpenGL,
|
||||
the SGI
|
||||
<br> image loader.
|
||||
<br>
|
||||
matumot@dst.nk-exa.co.jp
|
||||
<br> Thanks to the Independent JPEG Group for libjpeg,
|
||||
the JPEG image loader.
|
||||
<br>
|
||||
jpeg-info@uunet.uu.net
|
||||
<br> <a href="ftp://ftp.simtel.net/pub/simtelnet/msdos/graphics/">ftp://ftp.simtel.net/pub/simtelnet/msdos/graphics/</a>
|
||||
<br> Thanks to Mark Kilgard at al. (and SGI) for glut, the openGL Utility Toolkit
|
||||
<br> <a href="http://www.pobox.com/~ndr">http://www.pobox.com/~ndr</a>
|
||||
<br> Thanks to Stephane Rehel for GLTT, the OpenGL TrueType
|
||||
render.
|
||||
<br>
|
||||
rehel@worldnet.fr
|
||||
<br> <a href="http://home.worldnet.fr/~rehel/gltt/gltt.html">http://home.worldnet.fr/~rehel/gltt/gltt.html</a>
|
||||
<br> Thanks to David Turner, Robert Wilhelm, and Werner
|
||||
Lemberg for
|
||||
<br> Freetype, a TrueType font
|
||||
rendering engine.
|
||||
<br>
|
||||
turner@enst.fr
|
||||
<br>
|
||||
robert@physiol.med.tu-muenchen.de
|
||||
<br>
|
||||
a7971428@unet.univie.ac.at
|
||||
<br> <a href="http://www.physiol.med.tu-muenchen.de/~robert/freetype.html">http://www.physiol.med.tu-muenchen.de/~robert/freetype.html</a>
|
||||
<br> Thanks to the MPEG Software Simulation Group, for
|
||||
libmpeg, the
|
||||
<br>MPEG-2 Encoder/Decoder
|
||||
<br>
|
||||
mssg@mpeg.org
|
||||
<br> <a href="http://www.mpeg.org/MSSG/">http://www.mpeg.org/MSSG/</a>
|
||||
<br> Thanks to Heroine for quicktime4linux
|
||||
a quickime Decoder
|
||||
and libmpeg3, another MPEG-2 Encoder/Decoder
|
||||
<br>MPEG-2 Encoder/Decoder
|
||||
<br>
|
||||
mssg@mpeg.org
|
||||
<br> <a href="http://heroinewarrior.com/">http://heroinewarrior.com/</a>
|
||||
<br> Thanks to LCS/Telegraphics for Wintab, the Windows
|
||||
tablet library.
|
||||
<br>
|
||||
wintab@pointing.com
|
||||
<br> Thanks to David McAllister for the Particle System
|
||||
library.
|
||||
<br>
|
||||
davemc@cs.unc.edu
|
||||
<br> <a href="http://www.cs.unc.edu/~davemc/Particle/">http://www.cs.unc.edu/~davemc/Particle/</a>
|
||||
<br> Thanks to John Stone for the Space Orb library,
|
||||
libOrb
|
||||
<br>
|
||||
j.stone@acm.org
|
||||
<br> <a href="http://www.umr.edu/~johns/projects/liborb/">http://www.umr.edu/~johns/projects/liborb/</a>
|
||||
<p>----
|
||||
<br><a NAME="1.10"></a>1.10) Are there any restrictions on GEM?
|
||||
<p>GEM is under the Gnu Public License. This basically
|
||||
means that it will always be free software.Check out <a href="http://www.gnu.org">http://www.gnu.org</a>
|
||||
for more information and read the full license in GnuGPL.LICENSE in the GEM release.
|
||||
<p>----
|
||||
<br><a NAME="1.11"></a>1.11) How do I use GEM in a performance?
|
||||
<p>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.
|
||||
<p>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.
|
||||
<p>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 <a href="#2.12">question 2.12</a>, 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.
|
||||
<p>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(".<br>
|
||||
<em>Note:</em> 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)
|
||||
<p>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 <<em>render.host</em>>:0.0"
|
||||
|
||||
<p>If you are doing audio with graphics, the only solution
|
||||
to prevent clicking (<a href="#5.1">question 5.1</a>) 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.
|
||||
<p>
|
||||
<hr WIDTH="100%"><a NAME="UsingGem"></a><h3><i>USING GEM</i></h3>
|
||||
<br><a NAME="2.1"></a>2.1)How do I (???)
|
||||
<p>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.
|
||||
<p><a NAME="2.2"></a>2.2) How do I make GEM run?
|
||||
<p>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
|
||||
<p>/usr/people/mdanks/pd/bin/pd -lib /usr/people/mdanks/pd/gem/Gem
|
||||
<p>and on WinNT
|
||||
<p>\pdDir\pd\bin\pd -lib /pdDir/pd/gem/Gem
|
||||
<p>on UNIX-systems you will probably want to use a <tt>.pdrc</tt> file,
|
||||
where you can put the command-line arguments for pd that you "always" need.
|
||||
<p>If you don't see a startup message from GEM, then something went wrong.
|
||||
<p>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.
|
||||
<p>----
|
||||
<br><a NAME="2.3"></a>2.3) Why doesn't GEM run?
|
||||
<p><b>Notice that the -lib flag always requires Unix
|
||||
styles slashes</b>. This is the case even on Windows.
|
||||
<p>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).
|
||||
<p>----
|
||||
<br><a NAME="2.4"></a>2.4) I've got it running. Now what?
|
||||
<p>Try out the manual. It will step you through
|
||||
the basics.
|
||||
<br> 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
|
||||
<i>gem/01.basic/01.redSquare.pd</i>
|
||||
It puts a red square up on the screen and allows you to rotate it. <i>gemImage.pd</i>
|
||||
shows how to load in a TIFF file. <i>gem/03.lighting/04.moveSpheres.pd</i>
|
||||
moves two spheres around the screen. Try the other ones.
|
||||
<br> Most of the GEM objects have test patches which
|
||||
give some information about the various controls for the object.
|
||||
<p>----
|
||||
<br><a NAME="2.5"></a>2.5) On IRIX 5.3, why does GEM dump with an rld error?
|
||||
<p>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.
|
||||
<br> 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.
|
||||
<p>----
|
||||
<br><a NAME="2.6"></a>2.6) Why can't I compile GEM on IRIX 5.3?
|
||||
<p>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.
|
||||
<p>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.
|
||||
<p>----
|
||||
<br><a NAME="2.7"></a>2.7) Why is GEM slow in general?
|
||||
<p>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).
|
||||
<br> 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.
|
||||
<br> profile 0 - turn off profiling
|
||||
<br> profile 1 - turn on profiling
|
||||
<br> profile 2 - turn on profiling
|
||||
and don't cache pixes
|
||||
<p>----
|
||||
<br><a NAME="2.8"></a>2.8) Why is GEM slow on IRIX?
|
||||
<p>If you are having major slowdowns, then please let
|
||||
me know. I have gotten very good performance on most machines (Indy,
|
||||
O2, Impact, Onyx2).
|
||||
<p>----
|
||||
<br><a NAME="2.9"></a>2.9) Why is GEM slow on WinNT/Win95?
|
||||
<p>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.
|
||||
<br> 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.
|
||||
<p>----
|
||||
<br><a NAME="2.10"></a>2.10) Why is GEM slow on Linux?
|
||||
<p>It is because you have to use Mesa, which might be
|
||||
running iin software. Mesa (<a href="http://www.mesa.org">http://www.mesa.org</a>)
|
||||
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.
|
||||
<br>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)
|
||||
<br>radeon cards should also be supported very well under linux (even with open-source drivers)
|
||||
<p>----
|
||||
<br><a NAME="2.11"></a>2.11) If I resize the window, everything looks strange.
|
||||
<p>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.
|
||||
<p>----
|
||||
<br><a NAME="2.12"></a>2.12) Can GEM run on a 3Dfx Voodoo card?
|
||||
<p>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.
|
||||
<p>IMPORTANT: You MUST set the environment variable
|
||||
<p>GEM_SINGLE_CONTEXT = 1
|
||||
<p>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.
|
||||
<br>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.
|
||||
<p>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.
|
||||
<p>----
|
||||
<br><a NAME="2.13"></a>2.13) Will GEM support hardware transform and lighting
|
||||
(T & L)?
|
||||
<p>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.
|
||||
<p><a NAME="2.14"></a>2.14) I get an error "GEM needs Truecolor visual
|
||||
support".
|
||||
<p>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
|
||||
<p>startx -- -bpp 16
|
||||
<p>or some higher number, then it should work fine. 32-bit color
|
||||
is the best.
|
||||
<p>
|
||||
<hr WIDTH="100%"><a NAME="ViewingObjects"></a><h3><i>VIEWING OBJECTS</i></h3>
|
||||
<br><a NAME="3.1"></a>3.1)Why does everything seem dim?<
|
||||
<p>You probably turned on lighting but don't have any
|
||||
lights in the world. Either add a light with <i>world_light</i> or
|
||||
<i>light</i>
|
||||
or turn lighting off by sending a message 'lighting 0' to the <i>gemwin</i>.
|
||||
You can also send a reset message to <i>gemwin</i> to set it back to the
|
||||
startup state (which doesn't have any lighting).
|
||||
<p>----
|
||||
<br><a NAME="3.2"></a>3.2) Why does everything seem dark?
|
||||
<p>See question 3.1.
|
||||
<br> If you are using <tt>view</tt> 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.
|
||||
<br> Also, if you have been using single buffering ('buffer
|
||||
1' message to <i>gemwin</i>), then you might still be in that mode.
|
||||
Either send a 'buffer 2' message or a 'reset' message to <i>gemwin</i>.
|
||||
Then, destroy and create your window.
|
||||
<p>
|
||||
<hr WIDTH="100%"><a NAME="TextureMapping"></a><h3><i>TEXTURE MAPPING</i></h3>
|
||||
<br><a NAME="4.1"></a>4.1) My image doesn't appear. What is going
|
||||
on?
|
||||
<p>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.
|
||||
<p>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.
|
||||
<p>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 <i>pix_coordinate</i> 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).
|
||||
<p>Also, make sure that GEM can find your image (ie,
|
||||
that the path name is correct).
|
||||
<p>----
|
||||
<br><a NAME="4.2"></a>4.2) My image looks strange. What is going
|
||||
on?
|
||||
<p>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.
|
||||
<br> 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).
|
||||
<p>----
|
||||
<br><a NAME="4.3"></a>4.3) Why does GEM say that it can't handle a gray
|
||||
image?
|
||||
<p>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 <i>native</i>
|
||||
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 <i>pix_rgba</a>
|
||||
or harass whoever made the object to add the functionality.
|
||||
<p>----
|
||||
<br><a NAME="4.4"></a>4.4) What image formats can GEM handle?
|
||||
<p>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).
|
||||
<p>GEM can write TIFF and JPEG images.
|
||||
TIFF-images will be full RGBA-images, wheras JPEG-files only support (compressed) RGB.
|
||||
<p>----
|
||||
<br><a NAME="4.5"></a>4.5) What movie formats can GEM handle?
|
||||
<p>The movie formats GEM can handle (still) depend on the platform
|
||||
you are using.
|
||||
<p>On Windoze you can read all AVI-files you have codecs for
|
||||
<p>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 <a href="mailto:zmoelnig@iem.at">to me</a>.
|
||||
(Be ready to upload the movie-file that won't work)
|
||||
<p>----
|
||||
<br><a NAME="4.6"></a>4.6) Why is <i>pix_draw</i> so slow?
|
||||
<p><i>pix_draw</i> is almost never hardware accelerated
|
||||
on PCs graphics accelerator. This means that it runs <i>extremely</i>
|
||||
slowly. Always use <i>pix_texture</i>, even if you are just displaying
|
||||
an image.
|
||||
<p>
|
||||
<hr WIDTH="100%"><a NAME="WorkingWithPd"></a><h3><i>WORKING WITH PD</i></h3>
|
||||
<br><a NAME="5.1"></a>5.1) Why do I get clicks in the audio?
|
||||
<p>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).
|
||||
<br> 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 <i>netsend</i> and <i>netreceive</i>
|
||||
to have the two versions of Pd talk to each other.
|
||||
<p>----
|
||||
<br><a NAME="5.2"></a>5.2) How do I get audio data to GEM?
|
||||
<p>One simple way to get raw audio values right now is
|
||||
to use <i>snapshot~</i>. Just set up a <i>metro</i> which bangs <i>snapshot~</i>
|
||||
and use the floating point value. If you want "musical" information,
|
||||
then use objects such as <i>env~</i>.
|
||||
You might also have a look at the <i>pix_sig2pix~</i> which interprets audio-data as pixels
|
||||
and its counterpart <i>pix_pix2sig~</i>
|
||||
<p>----
|
||||
<br><a NAME="5.3"></a>5.3) Why can't GEM find an image/model file?
|
||||
<p>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 <i>-path</i> flag.
|
||||
<p>Check the following:
|
||||
<p>1) Does the file exist?
|
||||
<br> 2) Did you make a typo in the filename?
|
||||
<br> 3) Is the file in the search-path ?
|
||||
<p>----
|
||||
<br><a NAME="5.4"></a>5.4) How can I optimize my patches?
|
||||
<p>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...
|
||||
<br> 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 <i>spigot</i> or <i>gate</i> and block
|
||||
the events early. This is especially important with objects that
|
||||
send a lot of numbers, like ~ objects or <i>line</i>/<i>tripleLine</i>.
|
||||
<p>
|
||||
<hr WIDTH="100%"><a NAME="NewGemObjects"></a><h3><i>WRITING NEW GEM OBJECTS</i></h3>
|
||||
<br><a NAME="6.1"></a>6.1) How do I write a new GEM object?
|
||||
<p>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.
|
||||
<p>----
|
||||
<br><a NAME="6.2"></a>6.2) What are the default OpenGL states?
|
||||
<p>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
|
||||
<p>float xDivy = (float)m_width / (float)m_height;
|
||||
<br> glMatrixMode(GL_PROJECTION);
|
||||
<br> glLoadIdentity();
|
||||
<br> glFrustum(-xDivy, xDivy, -1.0, 1.0, 1.0, 20.0);
|
||||
<br> gluLookAt(0.0, 0.0, 4.0, 0.0, 0.0, 0.0, 0.0, 1.0,
|
||||
0.0);
|
||||
<br> glMatrixMode(GL_MODELVIEW);
|
||||
<br> glViewport(0, 0, m_width, m_height);
|
||||
<p>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.
|
||||
<p>The specific functions to look at are:
|
||||
<p>GemMan::windowInit()
|
||||
<br>GemMan::resetValues()
|
||||
<br>gemhead::renderGL()
|
||||
<p>
|
||||
<hr WIDTH="100%"><a NAME="ObjectSpecific"></a><h3><i>OBJECT SPECIFIC</i></h3>
|
||||
<br><a NAME="7.1"></a>7.1) Why doesn't <object> exist on <platform>?
|
||||
<p>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...)
|
||||
<p>----
|
||||
<br><a NAME="7.2"></a>7.2) Why doesn't <i>gemtablet</i> work?
|
||||
<p><i>gemtablet</i> only works on WinNT. I don't
|
||||
have drivers for IRIX or Linux (also, see question 7.4)
|
||||
<br> 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.
|
||||
<br> The tablet is mapped to the size of the GEM graphics
|
||||
window.
|
||||
<p>---
|
||||
<br><a NAME="7.3"></a>7.3) I don't want GEM to take over my tablet.
|
||||
How do I stop it?
|
||||
<p>Set the environment variable
|
||||
<p>GEM_NO_TABLET = 1
|
||||
<p>----
|
||||
<br><a NAME="7.4"></a>7.4) Why doesn't <i>gemmouse</i> work in IRIX?
|
||||
<p>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).
|
||||
<p>----
|
||||
<br><a NAME="7.5"></a>7.5) Why doesn't gemorb work?
|
||||
<p>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.
|
||||
<br> <RANT> When will companies wake up and actually
|
||||
provide drivers and support for their products under WinNT? </RANT>
|
||||
<p>----
|
||||
<br><a NAME="7.6"></a>7.6) What is wrong with <i>pix_video</i> in WinNT?
|
||||
<p>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.
|
||||
<p><a href="index.html">[return]</a>
|
||||
<br>
|
||||
<br>
|
||||
</body>
|
||||
</html>
|
140
Gem/doc/manual/GemWPd.html
Normal file
140
Gem/doc/manual/GemWPd.html
Normal file
|
@ -0,0 +1,140 @@
|
|||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="Author" content="Mark Danks">
|
||||
<meta name="GENERATOR" content="Mozilla/4.5 [en] (WinNT; I) [Netscape]">
|
||||
<title>Using GEM with Pd</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<center>
|
||||
<h2>
|
||||
<u>Using GEM with Pd</u></h2></center>
|
||||
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.
|
||||
<p><a href="#GEMIrix">How do I install GEM on IRIX?</a>
|
||||
<br><a href="#GEMWinNT">How do I install GEM on Win95/NT/2k?</a>
|
||||
<br><a href="#GEMlinux">How do I install GEM on linux?</a>
|
||||
<br><a href="#GEMmacos">How do I install GEM on macOS-X?</a>
|
||||
<br><a href="#runIRIX">How do I run GEM on IRIX?</a>
|
||||
<br><a href="#runWinNT">How do I run GEM on Win95/NT/2k?</a>
|
||||
<br><a href="#runlinux">How do I run GEM on linux?</a>
|
||||
<br><a href="#runmacos">How do I run GEM on linux?</a>
|
||||
<br><a href="#noRun">Why doesn't GEM run?</a>
|
||||
<p><img SRC="tribar.gif" height=13 width=561>
|
||||
<h4>
|
||||
<a NAME="GEMIrix"></a><u>How do I install GEM and Pd on IRIX?</u></h4>
|
||||
See the readme for installing Pd.
|
||||
<p>Uncompress and untar the GEM file that you downloaded. GEM should
|
||||
be located at
|
||||
<p>pd/gem
|
||||
<p>depending on where you have installed Pd.
|
||||
<p>If you run the shell script, GEM.INSTALL.sh, then all of the example
|
||||
files and documention
|
||||
<br>should be put in the correct locations.
|
||||
<p><img SRC="tribar.gif" height=13 width=561>
|
||||
<h4>
|
||||
<a NAME="GEMWinNT"></a><u>How do I install GEM and Pd on WinNT?</u></h4>
|
||||
See the readme for installing Pd.
|
||||
<p>TODO: there should be a install package somewhere
|
||||
<p>Unzip the GEM file that you downloaded so that it is at
|
||||
<p>pd\gem
|
||||
<p>depending on where you have installed Pd.
|
||||
<p>If you run GEM.INSTALL.bat, then all of the example files and documentation
|
||||
should be put in the correct locations.
|
||||
<p><img SRC="tribar.gif" height=13 width=561>
|
||||
<h4>
|
||||
<a NAME="GEMlinux"></a><u>How do I install GEM and Pd on linux?</u></h4>
|
||||
See the readme for installing Pd.
|
||||
<p>Uncompress and untar the GEM file that you downloaded so that it is at
|
||||
<p>pd/gem
|
||||
<p>depending on where you have installed Pd.
|
||||
<p>chdir into <pd/gem>/src/Gnu
|
||||
<p>read the README.build
|
||||
<p>run <tt>./configure</tt> and afterwards <tt>make</tt>
|
||||
<p>If you run <tt>make install</tt>, then all of the example files and documentation
|
||||
should be put in the correct locations.
|
||||
<p><img SRC="tribar.gif" height=13 width=561>
|
||||
<h4>
|
||||
<a NAME="GEMmacos"></a><u>How do I install GEM and Pd on macOS-X?</u></h4>
|
||||
See the readme for installing Pd.
|
||||
<p>TODO: there should be a install package somewhere
|
||||
<p><img SRC="tribar.gif" height=13 width=561>
|
||||
<h4>
|
||||
<a NAME="runIRIX"></a><u>How do I run GEM on IRIX?</u></h4>
|
||||
To use GEM type something like:
|
||||
<p>/usr/people/mdanks/pd/bin/pd -lib /usr/people/mdanks/pd/gem/Gem
|
||||
<p>(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
|
||||
<br>for trouble shooting suggestions.
|
||||
<p>If you don't see startup messages from GEM, then something went wrong.
|
||||
<br>Also, you might need to add pd/bin to your PATH environment variable.
|
||||
<p><img SRC="tribar.gif" height=13 width=561>
|
||||
<h4>
|
||||
<a NAME="runWinNT"></a><u>How do I run GEM on Win95/NT?</u></h4>
|
||||
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.
|
||||
<p> To use GEM type something like:
|
||||
<p>\pd\bin\pd -lib /pd/gem/Gem
|
||||
<p>depending on where you installed Pd.
|
||||
<p> 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.
|
||||
<p>If you don't see a startup message from GEM, then something went wrong.
|
||||
<p> Most people use the command shell to start Pd.
|
||||
It is difficult to configure Pd to run from double-clicking on the icon.
|
||||
<p> Also, you might need to add pd/bin to your PATH environment
|
||||
variable.
|
||||
<p><img SRC="tribar.gif" height=13 width=561>
|
||||
<h4>
|
||||
<a NAME="runIRIX"></a><u>How do I run GEM on linux?</u></h4>
|
||||
To use GEM type something like:
|
||||
<p>/usr/people/mdanks/pd/bin/pd -lib /usr/people/mdanks/pd/gem/Gem
|
||||
<p>(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
|
||||
<br>for trouble shooting suggestions.
|
||||
<p>If you don't see startup messages from GEM, then something went wrong.
|
||||
<br>Also, you might need to add pd/bin to your PATH environment variable.
|
||||
<p><img SRC="tribar.gif" height=13 width=561>
|
||||
<h4>
|
||||
<a NAME="runIRIX"></a><u>How do I run GEM on macOS-X?</u></h4>
|
||||
To use GEM type something like:
|
||||
<code>/usr/local/bin/pd -lib /Users/zmoelnig/pd/Gem</code>
|
||||
<p>(where /usr/local/bin/pd is the path to the pd directory and
|
||||
/Users/zmoelnig/pd is the path where the <i>Gem.pd_darwin</i> 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
|
||||
<br>for trouble shooting suggestions.
|
||||
<p>If you don't see startup messages from GEM, then something went wrong.
|
||||
<br>Also, you might need to add pd/bin to your PATH environment variable.
|
||||
<p><img SRC="tribar.gif" height=13 width=561>
|
||||
<h4>
|
||||
<a NAME="noRun"></a><u>Why doesn't GEM run?</u></h4>
|
||||
Notice that the -lib flag always requires Unix styles
|
||||
slashes, even if you are on Windows. This means that you need to
|
||||
do <i>-lib /gem/Gem</i>, not <i>-lib \gem\Gem</i>
|
||||
<p> 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).
|
||||
<p><a href="index.html">[return]</a>
|
||||
<br>
|
||||
</body>
|
||||
</html>
|
41
Gem/doc/manual/Gloss.html
Normal file
41
Gem/doc/manual/Gloss.html
Normal file
|
@ -0,0 +1,41 @@
|
|||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="Author" content="Mark Danks">
|
||||
<meta name="GENERATOR" content="Mozilla/4.5 [en] (WinNT; I) [Netscape]">
|
||||
<title>Glossary/Index</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<center>
|
||||
<h2>
|
||||
<u>Glossary</u></h2></center>
|
||||
<a NAME="Alpha"></a>Alpha - The amount of opacity. An alpha equal
|
||||
to 1.0 means completely opaque. An alpha equal to 0.0 means completely
|
||||
transparent.
|
||||
<p><a NAME="Controls"></a>Controls - GEM objects which access the low levels
|
||||
of GEM, such as window managers.
|
||||
<p><a NAME="Geos"></a>Geos - GEM objects which have a shape of some kind,
|
||||
such as a cube.
|
||||
<p><a NAME="Manips"></a>Manips - GEM objects which manipulate the geos.
|
||||
<p><a NAME="MarkEx"></a>MarkEx - A collection of objects which help with
|
||||
data manipulation, especially for usage in GEM.
|
||||
<p><a NAME="Nongeos"></a>Nongeos - GEM objects which do not have an explicit
|
||||
shape, yet affect the rendering in some way.
|
||||
<p><a NAME="OpenGL"></a><a href="http://www.opengl.org">OpenGL</a> - A
|
||||
graphics API which exists on many different platforms.<br>
|
||||
Gem can <i>also</i> be used as a wrapper for openGL, allowing to program openGL without having to
|
||||
compile
|
||||
<p><a NAME="Particles"></a>Particles - GEM objects which involve the particle
|
||||
system.
|
||||
<p><a NAME="Pd"></a><a href="http://pd.iem.at">Pd</a>
|
||||
- A visual programming language for audio processing. This is the
|
||||
host application for GEM.
|
||||
<p><a NAME="Pixes"></a>Pixes - Image processing objects in GEM
|
||||
<p><a NAME="Texture"></a>Texture mapping - Applying an image to a geometric
|
||||
object.
|
||||
<p><a href="index.html">[return]</a>
|
||||
<br>
|
||||
</body>
|
||||
</html>
|
112
Gem/doc/manual/Images.html
Normal file
112
Gem/doc/manual/Images.html
Normal file
|
@ -0,0 +1,112 @@
|
|||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="Author" content="Mark Danks">
|
||||
<meta name="Author" content="IOhannes m zmölnig">
|
||||
<title>Images</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<center>
|
||||
<h2>
|
||||
<u>Dealing with Images</u></h2></center>
|
||||
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 <i>geo</i>; that occurs in
|
||||
the next part of the manual.
|
||||
<p>The pix objects are GEM objects which deal with <i>pix</i>els.
|
||||
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 <i>[pix_draw]</i> and <i>[pix_texture]</i>.
|
||||
<p><b>Warning</b>: <i>[pix_draw]</i> is almost always slower than <i>[pix_texture]</i>.
|
||||
Because <i>[pix_draw]</i> is easier to use than <i>[pix_texture]</i>, it is
|
||||
used in these examples. However, in any real usage or piece, <i>[pix_texture]</i>
|
||||
should always be used instead. <i>[pix_draw]</i> is slow because PC
|
||||
graphics accelerators do not provide hardware acceleration for that functionality.
|
||||
<i>[pix_texture]</i> does have hardware acceleration and will be much faster.
|
||||
<p><a href="#pix_image">[pix_image]</a> - load in an image
|
||||
<br><a href="#pix_multiimage">[pix_multiimage]</a> - load in multiple images
|
||||
<br><a href="#pix_movie">[pix_movie]</a> - load in a movie file
|
||||
<br><a href="#pix_video">[pix_video]</a> - use a real time video source
|
||||
<p><img SRC="tribar.gif" height=13 width=561>
|
||||
<h3>
|
||||
<a NAME="pix_image"></a>[pix_image]</h3>
|
||||
<i>[pix_image]</i> 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 <i>[pix_image]</i> object.
|
||||
In this patch, the <i>[pix_image]</i> object loads in the file dancer.JPG.
|
||||
<center>
|
||||
<p><img SRC="pixImage.jpg" BORDER=1 height=180 width=151></center>
|
||||
|
||||
<p>As is the case with every GEM chain, this patch starts with the <i>[gemhead]</i>
|
||||
object. The next object is <i>[pix_image]</i>, which actually loads
|
||||
the image. <i>[pix_image]</i> makes the file dancer.JPG the current
|
||||
pixel data, which will be used in all subsequent operations in the chain.
|
||||
The <i>[translateXYZ]</i> object is used to move the image around.
|
||||
Finally, the <i>[pix_draw]</i> object renders the pixel data to the screen.
|
||||
<p>The patch mentions that changing the Z in <i>[translateXYZ]</i> does not
|
||||
change the size of the image, as would occur with a <i>geo</i> object like
|
||||
<i>[square]</i>.
|
||||
This is because <i>[pix_draw]</i> 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.
|
||||
<p><img SRC="tribar.gif" height=13 width=561>
|
||||
<h3>
|
||||
<a NAME="pix_multiimage"></a>[pix_multiimage]</h3>
|
||||
The <i>[pix_image]</i> 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 <i>[pix_multiimage]</i>. If you look
|
||||
at patch gem_pix/gemMultiImage.pd, you will see this object in action.
|
||||
<p>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.
|
||||
<p><img SRC="tribar.gif" height=13 width=561>
|
||||
<h3><a NAME="pix_movie"></a>[pix_movie]/[pix_film]</h3>
|
||||
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 <i>[pix_movie]</i>
|
||||
accepts a number to specify the frame to display. Look at 04.pix/04.movie.pd
|
||||
for an image.
|
||||
<p>A key fact of <i>[pix_movie]</i> is that it immediately sends the movie
|
||||
data to OpenGL as a texture map. This means that you do not need
|
||||
the <i>[pix_texture]</i> 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 <i>[pix_film]</i>
|
||||
(and <i>[pix_texture]</i> for texture-mapping).
|
||||
<p>Some of the geos will not texture map the <i>[pix_movie]</i> 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.
|
||||
<p><img SRC="tribar.gif" height=13 width=561>
|
||||
<h3>
|
||||
<a NAME="pix_video"></a>pix_video</h3>
|
||||
The "image" can come from the <i>[pix_video]</i> object.
|
||||
This means that you can use a real-time video source and display it on the screen.
|
||||
<p>You can play with <i>[pix_video]</i> with the patches in 04.video/.
|
||||
The patches are explained in more depth in the advanced section of the GEM manual.
|
||||
<p><img SRC="tribar.gif" height=13 width=561>
|
||||
<p><a href="index.html">[return]</a>
|
||||
<br>
|
||||
</body>
|
||||
</html>
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue