diff options
author | Hans-Christoph Steiner <eighthave@users.sourceforge.net> | 2008-08-27 22:27:30 +0000 |
---|---|---|
committer | Hans-Christoph Steiner <eighthave@users.sourceforge.net> | 2008-08-27 22:27:30 +0000 |
commit | 3964e2714e9672fb4a45c8a16a96153ab7cae05b (patch) | |
tree | 907e694cfd92f92d4b8987137a34c053cededfed | |
parent | 6726719d723f2f816827739aa59187848746f64f (diff) |
merged in relevant changes from the v0-40 pd-extended release branch
svn path=/trunk/externals/pdp/; revision=10266
-rw-r--r-- | modules/image_io/pdp_qt.c | 14 | ||||
-rw-r--r-- | opengl/Makefile | 2 | ||||
-rw-r--r-- | opengl/Makefile.config | 4 | ||||
-rw-r--r-- | opengl/doc/objects/3dp_color-help.pd | 61 | ||||
-rw-r--r-- | opengl/doc/objects/3dp_draw-help.pd | 91 | ||||
-rw-r--r-- | opengl/doc/objects/3dp_light-help.pd | 157 | ||||
-rw-r--r-- | opengl/doc/objects/3dp_mouserotate-help.pd | 40 | ||||
-rw-r--r-- | opengl/doc/objects/3dp_push-help.pd | 60 | ||||
-rw-r--r-- | opengl/doc/objects/3dp_snap-help.pd | 13 | ||||
-rw-r--r-- | opengl/doc/objects/3dp_view-help.pd | 78 | ||||
-rw-r--r-- | opengl/doc/objects/3dp_windowcontext-help.pd | 36 |
11 files changed, 553 insertions, 3 deletions
diff --git a/modules/image_io/pdp_qt.c b/modules/image_io/pdp_qt.c index af149dc..fc81a4e 100644 --- a/modules/image_io/pdp_qt.c +++ b/modules/image_io/pdp_qt.c @@ -26,6 +26,7 @@ #include "pdp.h" #include "pdp_llconv.h" +#include "s_stuff.h" // need to get sys_libdir for libquicktime plugins #define min(x,y) ((x<y)?(x):(y)) @@ -967,6 +968,19 @@ void pdp_qt_setup(void) pdp_qt_setup_common(pdp_qt_tilde_class); class_addmethod(pdp_qt_tilde_class, (t_method)pdp_qt_dsp, gensym("dsp"), 0); + +#ifdef __APPLE__ + /* this is necessary for pdp_qt to find the embedded libquicktime plugins */ + char buf[FILENAME_MAX]; + char realpath_buf[FILENAME_MAX]; + strncpy(buf, sys_libdir->s_name, FILENAME_MAX - 20); + strcat(buf, "/../lib/libquicktime"); + if(realpath(buf, realpath_buf)) + { + post("[pdp_qt]: setting LIBQUICKTIME_PLUGIN_DIR to:\n %s", realpath_buf); + setenv("LIBQUICKTIME_PLUGIN_DIR", realpath_buf, 0); // 0 means don't overwrite existing value + } +#endif } #ifdef __cplusplus diff --git a/opengl/Makefile b/opengl/Makefile index 719fa59..ac10380 100644 --- a/opengl/Makefile +++ b/opengl/Makefile @@ -24,7 +24,7 @@ pdp_opengl.pd_linux: subdirs pdp_opengl.pd_darwin: subdirs rm -f pdp_opengl.pd_linux - $(CC) -o pdp_opengl.pd_pd_darwin ../modules/*/*.o ../system/pdp.o ../system/*/*.o ../puredata/*.o modules/*.o system/*.o $(PDP_LIBS) -bundle -undefined dynamic_lookup -bundle_loader $(PD_EXECUTABLE) + $(CC) $(LDFLAGS) -o pdp_opengl.pd_darwin ../modules/*/*.o ../system/pdp.o ../system/*/*.o ../puredata/*.o modules/*.o system/*.o $(PDP_LIBS) -bundle -undefined dynamic_lookup -bundle_loader $(PD_EXECUTABLE) # $(CC) -o pdp_opengl.pd_pd_darwin modules/*.o system/*.o $(LDFLAGS) -g -dynamic -bundle -flat_namespace -undefined suppress diff --git a/opengl/Makefile.config b/opengl/Makefile.config index 7fab2d9..b1d7b6f 100644 --- a/opengl/Makefile.config +++ b/opengl/Makefile.config @@ -7,7 +7,7 @@ PDP_OGL_DIR = ../include CFLAGS = -DPD -O2 -funroll-loops -fomit-frame-pointer -ffast-math \ - -Wall -W -Wstrict-prototypes -Werror \ + -Wall -W -Wstrict-prototypes \ -Wno-unused -Wno-parentheses -Wno-switch -g -I../../../../pd/src @@ -23,7 +23,7 @@ ifeq ($(UNAME),Darwin) TARGET = darwin CPPFLAGS += -I/sw/include PD_EXECUTABLE=../../../pd/bin/pd - LDFLAGS = -lGL -lGLU -lglut -lX11 -L/sw/lib -L/usr/X11R6/lib + LDFLAGS = -lgsl -lGL -lGLU -lglut -lX11 -L/sw/lib -L/usr/X11R6/lib endif diff --git a/opengl/doc/objects/3dp_color-help.pd b/opengl/doc/objects/3dp_color-help.pd new file mode 100644 index 0000000..2b77f2b --- /dev/null +++ b/opengl/doc/objects/3dp_color-help.pd @@ -0,0 +1,61 @@ +#N canvas 143 1 590 665 10; +#X obj 18 111 3dp_windowcontext; +#X obj 18 139 3dp_push; +#X obj 18 169 3dp_mouserotate; +#X obj 76 428 3dp_push; +#X obj 18 226 3dp_blend; +#X text 98 228 <-- click for more info; +#X obj 42 379 3dp_color; +#X floatatom 132 330 5 0 0 0 - - -; +#X floatatom 178 330 5 0 0 0 - - -; +#X floatatom 223 330 5 0 0 0 - - -; +#X floatatom 267 330 5 0 0 0 - - -; +#X obj 283 127 3dp_view transz 5; +#X obj 283 151 3dp_light; +#X obj 18 78 metro 40; +#X obj 18 50 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 132 271 vsl 15 50 0 1 0 1 empty empty empty 0 -8 0 8 -262144 +-1 -1 2600 1; +#X obj 178 270 vsl 15 50 0 1 0 1 empty empty empty 0 -8 0 8 -262144 +-1 -1 3300 1; +#X obj 223 270 vsl 15 50 0 1 0 1 empty empty empty 0 -8 0 8 -262144 +-1 -1 4300 1; +#X obj 269 269 vsl 15 50 0 1 0 1 empty empty empty 0 -8 0 8 -262144 +-1 -1 2300 1; +#X obj 283 102 3dp_view roty 5; +#X obj 126 475 3dp_draw dodeca 4; +#X text 129 248 red; +#X text 170 248 green; +#X text 219 249 blue; +#X text 268 246 gain; +#X obj 17 199 3dp_view scale 1; +#X text 42 523 3dp_color: changes the rgb and gain values; +#X text 43 536 right outlet is new color \, left outlet is the previous +color.; +#X text 303 303 alpha is interpreted as a color gain; +#X text 303 280 in this blending mode \,; +#X text 45 49 <-- start here; +#X text 45 634 bitch made doc for PDP 0.12.5 - http://delcorp.org/abbadingo +; +#X connect 0 0 1 0; +#X connect 0 1 2 1; +#X connect 1 0 2 0; +#X connect 1 1 19 0; +#X connect 2 0 25 0; +#X connect 3 1 20 0; +#X connect 4 0 6 0; +#X connect 6 1 3 0; +#X connect 7 0 6 1; +#X connect 8 0 6 2; +#X connect 9 0 6 3; +#X connect 10 0 6 4; +#X connect 11 0 12 0; +#X connect 13 0 0 0; +#X connect 14 0 13 0; +#X connect 15 0 7 0; +#X connect 16 0 8 0; +#X connect 17 0 9 0; +#X connect 18 0 10 0; +#X connect 19 0 11 0; +#X connect 25 0 4 0; diff --git a/opengl/doc/objects/3dp_draw-help.pd b/opengl/doc/objects/3dp_draw-help.pd new file mode 100644 index 0000000..6181664 --- /dev/null +++ b/opengl/doc/objects/3dp_draw-help.pd @@ -0,0 +1,91 @@ +#N canvas 107 0 656 544 10; +#X obj 55 68 metro 40; +#X obj 55 38 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 55 213 3dp_mouserotate; +#X obj 55 179 3dp_push; +#X obj 301 195 3dp_view transz 5; +#X obj 55 110 3dp_windowcontext; +#X obj 55 244 3dp_push; +#X obj 55 344 3dp_push; +#X obj 55 415 3dp_push; +#X obj 198 273 3dp_draw dodeca 3; +#X obj 55 143 3dp_blend; +#X obj 123 453 3dp_color; +#X floatatom 172 424 2 0 0 0 - - -; +#X obj 172 387 vsl 15 29 0 1 0 1 empty empty empty 0 -8 0 8 -262144 +-1 -1 2800 1; +#X obj 127 272 3dp_color; +#X floatatom 177 250 2 0 0 0 - - -; +#X obj 177 209 vsl 15 29 0 1 0 1 empty empty empty 0 -8 0 8 -262144 +-1 -1 1500 1; +#X text 216 35 some simple objects can be drawn using the pdp_draw +object. the first argument is the object: square \, cube \, sphere +\, torus \, cone \, teapot \, dodeca \, icosa \, octa \, tetra. prepending +the names with a w draws the wireframe version. (i.e. wcube is a wireframe +cube). other inlets set some parameters like size \, nb of segments +for sphere \, etc.. they can be specified by creation arguments too. +; +#X obj 181 491 3dp_draw wicosa 8; +#X obj 301 225 3dp_light 0; +#N canvas 0 0 450 300 texture 0; +#X obj 99 200 pdp_convert texture/*/*; +#X obj 85 91 pdp_plasma; +#X obj 85 38 loadbang; +#X obj 202 10 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 +; +#X obj 153 275 outlet; +#X obj 203 37 metro 200; +#X msg 86 63 dim 320 240 \, bang; +#X floatatom 230 112 5 0 0 0 - - -; +#X obj 128 140 pdp_gain 7; +#X connect 2 0 6 0; +#X connect 2 0 3 0; +#X connect 3 0 5 0; +#X restore 211 334 pd texture; +#X obj 121 361 3dp_color; +#X floatatom 172 342 2 0 0 0 - - -; +#X obj 172 307 vsl 15 29 0 1 0 1 empty empty empty 0 -8 0 8 -262144 +-1 -1 2200 1; +#X floatatom 291 338 5 0 0 0 - - -; +#X obj 196 355 3dp_draw sphere 3; +#X msg 291 318 111; +#X text 203 378 the first inlet of the object is a texture inlet. not +all objects support this \, but cube \, square and sphere do.; +#X text 47 528 bitch made doc for PDP 0.12.4 - http://delcorp.org/abbadingo +; +#X text 87 38 <-- start here; +#X text 307 492 <---- wireframe icosaedro; +#X text 132 146 <------- to render all objects with transparency!!! +; +#X text 327 356 <-- sphere; +#X obj 291 298 loadbang; +#X connect 0 0 5 0; +#X connect 1 0 0 0; +#X connect 2 0 6 0; +#X connect 3 0 2 0; +#X connect 3 1 4 0; +#X connect 4 0 19 0; +#X connect 5 0 10 0; +#X connect 5 1 2 1; +#X connect 6 0 7 0; +#X connect 6 1 14 0; +#X connect 7 0 8 0; +#X connect 7 1 21 0; +#X connect 8 1 11 0; +#X connect 10 0 3 0; +#X connect 11 1 18 0; +#X connect 12 0 11 4; +#X connect 12 0 11 1; +#X connect 13 0 12 0; +#X connect 14 1 9 0; +#X connect 15 0 14 4; +#X connect 15 0 14 3; +#X connect 16 0 15 0; +#X connect 20 0 25 1; +#X connect 21 1 25 0; +#X connect 22 0 21 4; +#X connect 23 0 22 0; +#X connect 24 0 25 3; +#X connect 26 0 24 0; +#X connect 33 0 26 0; diff --git a/opengl/doc/objects/3dp_light-help.pd b/opengl/doc/objects/3dp_light-help.pd new file mode 100644 index 0000000..1d85bf6 --- /dev/null +++ b/opengl/doc/objects/3dp_light-help.pd @@ -0,0 +1,157 @@ +#N canvas 150 78 695 334 10; +#X obj 18 23 metro 40; +#X obj 18 -1 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 +; +#X floatatom 74 228 5 0 0 0 - - -; +#X obj 17 249 3dp_draw sphere 5; +#X obj 261 156 loadbang; +#X obj 18 48 3dp_windowcontext; +#X obj 17 191 3dp_view roty; +#X floatatom 103 168 5 0 0 0 - - -; +#X obj 14 278 3dp_draw cube 2; +#N canvas 193 86 450 300 counter 0; +#X obj 175 172 spigot; +#X obj 157 142 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 +1; +#X obj 213 143 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X obj 119 171 spigot; +#X obj 160 115 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 63 62 loadbang; +#X floatatom 147 219 0 0 0 0 - - -; +#X obj 270 201 float; +#X obj 119 194 + 1; +#X obj 176 195 - 1; +#X obj 219 84 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 219 117 1; +#X msg 250 116 0; +#X obj 163 279 outlet; +#X obj 92 26 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 +; +#X obj 161 251 / 10; +#X obj 69 5 inlet; +#X obj 131 21 metro 50; +#X connect 0 0 9 0; +#X connect 1 0 3 1; +#X connect 2 0 0 1; +#X connect 3 0 8 0; +#X connect 4 0 1 0; +#X connect 4 0 2 0; +#X connect 5 0 1 0; +#X connect 6 0 15 0; +#X connect 7 0 0 0; +#X connect 7 0 3 0; +#X connect 8 0 7 1; +#X connect 8 0 6 0; +#X connect 9 0 7 1; +#X connect 9 0 6 0; +#X connect 10 0 11 0; +#X connect 10 0 12 0; +#X connect 10 0 7 0; +#X connect 11 0 1 0; +#X connect 12 0 2 0; +#X connect 14 0 17 0; +#X connect 15 0 13 0; +#X connect 16 0 14 0; +#X connect 17 0 10 0; +#X restore 103 147 pd counter; +#X obj 103 128 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 +1; +#X obj 18 85 3dp_push; +#X obj 405 133 3dp_view transz 5; +#X obj 405 157 3dp_light; +#X floatatom 549 101 5 0 0 0 - - -; +#X floatatom 505 77 5 0 0 0 - - -; +#X obj 405 108 3dp_view roty 5; +#X obj 226 234 pdp_convert texture/*/*; +#X obj 226 209 pdp_plasma; +#X obj 228 126 bng 30 250 50 0 empty empty try_this 0 -6 1 8 -250685 +-1 -62784; +#X obj 226 260 pdp_del 3; +#X text 299 262 <- textures can be stored in a delay line; +#X text 41 0 <-- start here; +#X msg 261 177 dim 320 240; +#X obj 483 26 loadbang; +#X text 486 159 <-light source; +#N canvas 193 86 450 300 counter 0; +#X obj 175 172 spigot; +#X obj 157 142 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 +1; +#X obj 213 143 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X obj 119 171 spigot; +#X obj 160 115 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 63 62 loadbang; +#X floatatom 147 219 0 0 0 0 - - -; +#X obj 270 201 float; +#X obj 119 194 + 1; +#X obj 176 195 - 1; +#X obj 219 84 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 219 117 1; +#X msg 250 116 0; +#X obj 163 279 outlet; +#X obj 92 26 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 +; +#X obj 69 5 inlet; +#X obj 131 21 metro 100; +#X obj 162 252 / 3; +#X connect 0 0 9 0; +#X connect 1 0 3 1; +#X connect 2 0 0 1; +#X connect 3 0 8 0; +#X connect 4 0 1 0; +#X connect 4 0 2 0; +#X connect 5 0 1 0; +#X connect 6 0 17 0; +#X connect 7 0 0 0; +#X connect 7 0 3 0; +#X connect 8 0 7 1; +#X connect 8 0 6 0; +#X connect 9 0 7 1; +#X connect 9 0 6 0; +#X connect 10 0 11 0; +#X connect 10 0 12 0; +#X connect 10 0 7 0; +#X connect 11 0 1 0; +#X connect 12 0 2 0; +#X connect 14 0 16 0; +#X connect 15 0 14 0; +#X connect 16 0 10 0; +#X connect 17 0 13 0; +#X restore 495 51 pd counter; +#X obj 663 27 vsl 35 128 -70 70 0 0 empty empty try_this 0 -8 1 8 -260818 +-1 -24198 6600 1; +#X obj 615 24 vsl 35 128 -70 70 0 0 empty empty try_this 0 -8 1 8 -260818 +-1 -24198 4800 1; +#X text 313 303 bitch made doc for PDP 0.12.4 - http://delcorp.org/abbadingo +; +#X connect 0 0 5 0; +#X connect 1 0 0 0; +#X connect 2 0 3 2; +#X connect 3 0 8 0; +#X connect 4 0 23 0; +#X connect 5 0 11 0; +#X connect 6 0 3 0; +#X connect 7 0 6 1; +#X connect 9 0 7 0; +#X connect 10 0 9 0; +#X connect 11 0 6 0; +#X connect 11 1 16 0; +#X connect 12 0 13 0; +#X connect 14 0 12 1; +#X connect 15 0 16 1; +#X connect 16 0 12 0; +#X connect 17 0 20 0; +#X connect 17 0 3 1; +#X connect 18 0 17 0; +#X connect 19 0 18 0; +#X connect 20 0 8 1; +#X connect 23 0 18 0; +#X connect 24 0 26 0; +#X connect 26 0 15 0; +#X connect 27 0 14 0; +#X connect 28 0 15 0; diff --git a/opengl/doc/objects/3dp_mouserotate-help.pd b/opengl/doc/objects/3dp_mouserotate-help.pd new file mode 100644 index 0000000..7619375 --- /dev/null +++ b/opengl/doc/objects/3dp_mouserotate-help.pd @@ -0,0 +1,40 @@ +#N canvas 534 483 533 399 10; +#X obj 18 15 inlet; +#X obj 18 359 outlet; +#X obj 61 148 - 0.5; +#X obj 126 147 - 0.5; +#X obj 73 210 *; +#X obj 126 208 *; +#X obj 126 182 t f f; +#X obj 73 180 t f f; +#X obj 73 239 +; +#X obj 104 267 sqrt; +#X obj 83 15 inlet; +#X obj 104 294 * 360; +#X obj 18 325 3dp_view rota; +#X text 172 81 convert mouse coordinates to axis and angle; +#X obj 61 114 unpack 0 0; +#X obj 83 45 route drag1 press1; +#X obj 198 126 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 0 1; +#X connect 0 0 12 0; +#X connect 2 0 7 0; +#X connect 2 0 12 2; +#X connect 3 0 6 0; +#X connect 3 0 12 1; +#X connect 4 0 8 0; +#X connect 5 0 8 1; +#X connect 6 0 5 0; +#X connect 6 1 5 1; +#X connect 7 0 4 0; +#X connect 7 1 4 1; +#X connect 8 0 9 0; +#X connect 9 0 11 0; +#X connect 10 0 15 0; +#X connect 11 0 12 4; +#X connect 12 0 1 0; +#X connect 14 0 2 0; +#X connect 14 0 16 0; +#X connect 14 1 3 0; +#X connect 15 0 14 0; +#X connect 15 1 14 0; diff --git a/opengl/doc/objects/3dp_push-help.pd b/opengl/doc/objects/3dp_push-help.pd new file mode 100644 index 0000000..2f0de29 --- /dev/null +++ b/opengl/doc/objects/3dp_push-help.pd @@ -0,0 +1,60 @@ +#N canvas 221 0 695 553 10; +#X obj 22 40 3dp_windowcontext; +#X obj 22 15 metro 40; +#X obj 22 -5 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 +; +#X obj 22 67 3dp_push; +#X obj 180 126 3dp_light; +#X floatatom 301 85 5 0 0 0 - - -; +#X obj 22 97 3dp_mouserotate; +#X obj 180 104 3dp_view transz 10; +#X obj 23 207 3dp_draw sphere 1; +#X obj 317 128 3dp_for 3; +#X obj 317 151 3dp_push; +#X obj 368 215 3dp_draw cube 0.5; +#X obj 23 177 3dp_push; +#X obj 368 189 3dp_view transy; +#X obj 468 158 * 1; +#X floatatom 484 134 5 0 0 0 - - -; +#X obj 180 84 3dp_view roty; +#X floatatom 266 66 5 0 0 0 - - -; +#X floatatom 391 102 5 0 0 0 - - -; +#X obj 63 413 3dp_mode texture; +#X text 28 244 saving a (matrix) state can be accomplished by the 3dp_push +object. the default matrix is the modelview matrix. it works as follows: +both the right and the left outlet propagate the same matrix state +as the input. so in short you can use 3dp_push to split your rendering +tree into parallel branches. the matrix types that can be pushed are: +modelview \, texture \, color \, projection. setting a current matrix +can be done using the 3dp_mode object. i.e. will map all geometric +transforms to the texture matrix \, for texture coordinate animation. +the left outlet restores the current matrix back to the modelview matrix. +; +#X text 27 418 i.e; +#X text 185 418 will map all geometric transforms; +#X text 27 431 to the texture matrix \, for texture coordinate animation. +the left outlet restores the current matrix back to the modelview matrix. +; +#X text 46 -6 <-- start here; +#X text 34 501 bitch made doc for PDP 0.12.4 - http://delcorp.org/abbadingo +; +#X connect 0 0 3 0; +#X connect 0 1 6 1; +#X connect 1 0 0 0; +#X connect 2 0 1 0; +#X connect 3 0 6 0; +#X connect 3 1 16 0; +#X connect 5 0 7 1; +#X connect 6 0 12 0; +#X connect 7 0 4 0; +#X connect 9 0 10 0; +#X connect 9 1 14 0; +#X connect 10 1 13 0; +#X connect 12 0 8 0; +#X connect 12 1 9 0; +#X connect 13 0 11 0; +#X connect 14 0 13 1; +#X connect 15 0 14 1; +#X connect 16 0 7 0; +#X connect 17 0 16 1; +#X connect 18 0 9 1; diff --git a/opengl/doc/objects/3dp_snap-help.pd b/opengl/doc/objects/3dp_snap-help.pd new file mode 100644 index 0000000..261ac4f --- /dev/null +++ b/opengl/doc/objects/3dp_snap-help.pd @@ -0,0 +1,13 @@ +#N canvas 23 127 436 363 10; +#X text 38 16 couping 3dp and pdp can be done using 3dp_snap and pdp_convert. +the correct way to do it is to put 3dp_snap in a rendering chain and +give it arguments like this: [3dp_snap image/*/* 320 240] if you specify +the subtype to be image/multi/* \, the packet will not be colour space +converted: it will stay rgb. if you want to make a snapshot to store +as a high quality png image \, snap to bitmap/rgb/* and store it in +pdp_reg to save. to convert an image back to a texture \, use [pdp_convert +texture/*/*] if you snap to a texture (which is the default) the dimensions +don't need to be specified. a texture will be allocated that can contain +the entire screen. this is because texture coordinates are relative +and data is always interpolated. snapping only works correctly when +the window is not covered by other windows.; diff --git a/opengl/doc/objects/3dp_view-help.pd b/opengl/doc/objects/3dp_view-help.pd new file mode 100644 index 0000000..edffb65 --- /dev/null +++ b/opengl/doc/objects/3dp_view-help.pd @@ -0,0 +1,78 @@ +#N canvas 18 74 650 512 10; +#X obj 37 35 3dp_windowcontext; +#X obj 37 63 3dp_push; +#X obj 411 55 3dp_view transz 5; +#X obj 411 75 3dp_light; +#X obj 37 2 metro 40; +#X obj 37 -28 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X floatatom 525 33 5 0 0 0 - - -; +#X floatatom 511 14 5 0 0 0 - - -; +#X floatatom 162 158 5 0 0 0 - - -; +#X obj 36 428 3dp_draw tetra 4; +#X obj 411 35 3dp_view roty 5; +#X msg 511 -11 75; +#X obj 36 306 3dp_view rotx; +#X floatatom 160 307 5 0 0 0 - - -; +#X obj 37 175 3dp_view scale 2; +#X floatatom 170 356 5 0 0 0 - - -; +#X obj 316 221 3dp_view rota 1 1 1 90; +#X text 219 96 geometric transformations can be done using the 3dp_view +object. the first argument is the kind of transformation: scale \, +scalex \, scaley \, scalez \, rotx \, roty \, rotz \, rota \, transx +\, transy \, transz \, transxyz. repectively this scales the object +\, the x \, y \, z axis \, rotates around the x \, y \, z axis \, rotates +around an arbitrary axis \, translates in the x \, y \, z directions +and translates along a vector. the initial parameters can be specified +as creation arguments \, i.e.: rotates by 90 degrees around axis (1 +\, 1 \, 1).; +#X text 58 -27 <-- start here; +#X text 225 434 bitch made doc for PDP 0.12.4 - http://delcorp.org/abbadingo +; +#X obj 514 -33 loadbang; +#X msg 570 17 5; +#X floatatom 160 408 5 0 0 0 - - -; +#X obj 36 393 3dp_blend; +#X floatatom 175 257 5 0 0 0 - - -; +#X obj 36 356 3dp_view transxyz; +#X obj 36 259 3dp_view transxyz; +#X text 228 256 <-- translation before rotation: the object rotates +around itself; +#X text 228 356 <-- translation after rotation: the object makes an +orbit; +#N canvas 0 22 450 300 all 0; +#X obj 33 19 3dp_view scale; +#X obj 33 40 3dp_view scalex; +#X obj 33 61 3dp_view scaley; +#X obj 33 83 3dp_view scalez; +#X obj 173 19 3dp_view rota; +#X obj 173 40 3dp_view rotx; +#X obj 173 61 3dp_view roty; +#X obj 173 83 3dp_view rotz; +#X obj 313 19 3dp_view transxyz; +#X obj 313 40 3dp_view transx; +#X obj 313 61 3dp_view transy; +#X obj 313 83 3dp_view transz; +#X restore 464 405 pd all possibilities; +#X connect 0 0 1 0; +#X connect 1 0 14 0; +#X connect 1 1 10 0; +#X connect 2 0 3 0; +#X connect 4 0 0 0; +#X connect 5 0 4 0; +#X connect 6 0 2 1; +#X connect 7 0 10 1; +#X connect 8 0 14 1; +#X connect 10 0 2 0; +#X connect 11 0 7 0; +#X connect 12 0 25 0; +#X connect 13 0 12 1; +#X connect 14 0 26 0; +#X connect 15 0 25 2; +#X connect 20 0 11 0; +#X connect 21 0 6 0; +#X connect 22 0 9 1; +#X connect 23 0 9 0; +#X connect 24 0 26 2; +#X connect 25 0 23 0; +#X connect 26 0 12 0; diff --git a/opengl/doc/objects/3dp_windowcontext-help.pd b/opengl/doc/objects/3dp_windowcontext-help.pd new file mode 100644 index 0000000..6c243e1 --- /dev/null +++ b/opengl/doc/objects/3dp_windowcontext-help.pd @@ -0,0 +1,36 @@ +#N canvas 118 0 641 389 10; +#X obj 55 68 metro 40; +#X obj 55 38 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 +; +#X obj 55 166 3dp_mouserotate; +#X obj 357 149 3dp_light 0; +#X obj 55 140 3dp_push; +#X obj 357 121 3dp_view transz 5; +#X obj 55 110 3dp_windowcontext; +#X obj 55 192 3dp_draw cube 7; +#X msg 222 71 dim 1023 768; +#X floatatom 485 87 5 0 0 0 - - -; +#X msg 222 47 dim 320 240; +#X text 203 185 the 3dp_windowcontext creates a window to draw in. +the window packet will be the output to the left outlet when a bang +is received. control flow for context is right to left \, this means +if a 3dp object has 2 context outlets \, the rightmost will be propagated +before the leftmost. there is no fanout. all operations are accumulative +\, including the geometric transformations. if you need to branch use +a 3dp_push object.; +#X text 88 37 <-- start here; +#X text 78 348 bitch made doc for PDP 0.12.4 - http://delcorp.org/abbadingo +; +#X text 440 151 <-- light source; +#X text 335 54 <-- changes the window size; +#X connect 0 0 6 0; +#X connect 1 0 0 0; +#X connect 2 0 7 0; +#X connect 4 0 2 0; +#X connect 4 1 5 0; +#X connect 5 0 3 0; +#X connect 6 0 4 0; +#X connect 6 1 2 1; +#X connect 8 0 6 0; +#X connect 9 0 5 1; +#X connect 10 0 6 0; |