Thoralf Schulze a écrit :
hi there,
with regard to this thread: http://lists.puredata.info/pipermail/pd-list/2006-09/041759.html
- is there a way to resize a texture in gem?
i'm aware of pix_resize, but this object is slow as hell and only resizes to the next power of two.
GEMglTextCoord2f for example resizes a texture, GEMglTexParameterf could be use for different kinds of texturing, no latency, no power of two. attached patch uses these two openGL functions.
Patco.
#N canvas 424 23 566 309 10; #N canvas 0 22 450 300 gemwin 0; #X obj 132 136 gemwin; #X obj 67 89 outlet; #X obj 67 10 inlet; #X obj 67 41 route create; #X msg 67 70 set destroy; #X msg 142 68 set create; #X msg 132 112 create , 1; #X msg 198 112 destroy; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 3 0 6 0; #X connect 3 1 5 0; #X connect 3 1 7 0; #X connect 4 0 1 0; #X connect 5 0 1 0; #X connect 6 0 0 0; #X connect 7 0 0 0; #X restore 11 30 pd gemwin; #X msg 11 11 create; #X obj 131 600 GEMglEnd; #X floatatom 190 263 5 0 0 0 - - -; #X obj 128 292 GEMglRotatef 0 1 1 1; #X floatatom 226 265 5 0 0 0 - - -; #X floatatom 263 266 5 0 0 0 - - -; #X obj 299 334 vsl 10 40 -3 3 0 0 empty empty empty 0 -8 0 8 -262144 -1 -1 2600 1; #X obj 287 334 vsl 10 40 -3 3 0 0 empty empty empty 0 -8 0 8 -262144 -1 -1 2500 1; #X obj 312 334 vsl 10 40 -3 3 0 0 empty empty empty 0 -8 0 8 -262144 -1 -1 2000 1; #X obj 381 394 vsl 10 40 -3 3 0 0 empty empty empty 0 -8 0 8 -262144 -1 -1 0 1; #X obj 369 394 vsl 10 40 -3 3 0 0 empty empty empty 0 -8 0 8 -262144 -1 -1 0 1; #X obj 394 394 vsl 10 40 -3 3 0 0 empty empty empty 0 -8 0 8 -262144 -1 -1 0 1; #X obj 128 7 gemhead 50; #X obj 206 311 vsl 10 40 -1 1 0 0 empty empty empty 0 -8 0 8 -262144 -1 -1 0 1; #X obj 218 311 vsl 10 40 -1 1 0 0 empty empty empty 0 -8 0 8 -262144 -1 -1 3500 1; #X obj 335 350 vsl 10 40 -1 1 0 0 empty empty empty 0 -8 0 8 -262144 -1 -1 3700 1; #X obj 348 350 vsl 10 40 -1 1 0 0 empty empty empty 0 -8 0 8 -262144 -1 -1 3100 1; #X obj 261 443 vsl 10 40 -1 1 0 0 empty empty empty 0 -8 0 8 -262144 -1 -1 3900 1; #X obj 274 443 vsl 10 40 -1 1 0 0 empty empty empty 0 -8 0 8 -262144 -1 -1 0 1; #X obj 303 474 vsl 10 40 -3 3 0 0 empty empty empty 0 -8 0 8 -262144 -1 -1 0 1; #X obj 291 474 vsl 10 40 -3 3 0 0 empty empty empty 0 -8 0 8 -262144 -1 -1 0 1; #X obj 316 474 vsl 10 40 -3 3 0 0 empty empty empty 0 -8 0 8 -262144 -1 -1 0 1; #X obj 272 531 vsl 10 40 -1 1 0 0 empty empty empty 0 -8 0 8 -262144 -1 -1 3900 1; #X obj 285 531 vsl 10 40 -1 1 0 0 empty empty empty 0 -8 0 8 -262144 -1 -1 2800 1; #X obj 315 563 vsl 10 40 -3 3 0 0 empty empty empty 0 -8 0 8 -262144 -1 -1 2200 1; #X obj 303 563 vsl 10 40 -3 3 0 0 empty empty empty 0 -8 0 8 -262144 -1 -1 3300 1; #X obj 328 563 vsl 10 40 -3 3 0 0 empty empty empty 0 -8 0 8 -262144 -1 -1 1200 1; #X obj 128 394 GEMglVertex3f -2 -1 0; #X obj 128 458 GEMglVertex3f -2 1 0; #X obj 131 531 GEMglVertex3f 0 1 0; #X obj 131 578 GEMglVertex3f 0 -1 0; #X obj 132 499 GEMglTexCoord2f 0.9 0.65; #X obj 128 425 GEMglTexCoord2f 0.02 0.65; #X floatatom 415 491 5 0 0 0 - - -; #X obj 131 555 GEMglTexCoord2f 0.9 0.02; #N canvas 261 145 671 416 image 0; #X obj 305 28 cnv 15 200 100 empty empty empty 20 12 0 14 -233017 -66577 0; #X obj 46 18 inlet; #X obj 47 306 outlet; #X obj 46 87 pix_texture; #X obj 46 65 pix_image; #X obj 127 28 openpanel; #X msg 128 51 open $1; #X obj 345 47 hradio 15 1 0 2 $0-radio-values $0-radio-values-r value -37 6 0 8 -262144 -1 -1 0; #X obj 373 31 hradio 15 1 0 5 empty $0-radio-parameter parameter -65 6 0 8 -262144 -1 -1 0; #N canvas 336 51 692 558 TEXTURE_2D 0; #X obj 111 1 inlet; #X obj 300 121 cnv 15 200 20 empty $0-cnv-parameter GL_TEXTURE_WRAP_S 2 12 0 9 -1 -262144 0; #N canvas 509 40 514 394 MAG_FILTER 0; #X obj 60 12 inlet; #X obj 77 290 t b a; #X obj 80 136 sel 0; #X obj 79 66 inlet; #X msg 140 187 GL_NEAREST; #X msg 116 208 GL_LINEAR; #X obj 144 262 list trim; #X obj 144 241 list prepend label; #X obj 64 345 outlet; #X obj 60 41 sel 2; #X obj 264 100 s $0-cnv-parameter; #X msg 264 67 label GL_TEXTURE_MAG_FILTER; #X obj 60 100 i 0; #X obj 144 284 s $0-cnv-value; #X obj 221 158 s $0-radio-values-r; #X obj 60 321 pack 10240 9728; #X msg 47 190 9728; #X msg 66 218 9729; #X connect 0 0 9 0; #X connect 1 0 15 0; #X connect 1 1 15 1; #X connect 2 0 5 0; #X connect 2 0 16 0; #X connect 2 1 4 0; #X connect 2 1 17 0; #X connect 3 0 2 0; #X connect 3 0 12 1; #X connect 4 0 7 0; #X connect 5 0 7 0; #X connect 6 0 13 0; #X connect 7 0 6 0; #X connect 9 0 11 0; #X connect 9 0 12 0; #X connect 11 0 10 0; #X connect 12 0 2 0; #X connect 12 0 14 0; #X connect 15 0 8 0; #X connect 16 0 1 0; #X connect 17 0 1 0; #X restore 142 193 pd MAG_FILTER; #X obj 179 89 inlet; #N canvas 424 253 518 398 WRAP_T 0; #X obj 60 12 inlet; #X obj 66 275 t b a; #X obj 78 145 sel 0; #X obj 79 71 inlet; #X obj 132 257 list trim; #X obj 132 236 list prepend label; #X obj 53 330 outlet; #X msg 108 207 GL_CLAMP; #X msg 132 186 GL_REPEAT; #X obj 132 279 s $0-cnv-value; #X obj 60 38 sel 1; #X obj 264 100 s $0-cnv-parameter; #X msg 264 67 label GL_TEXTURE_WRAP_T; #X obj 60 103 i 0; #X obj 212 139 s $0-radio-values-r; #X obj 49 306 pack 10243 10496; #X msg 15 187 10496; #X msg 59 184 10497; #X connect 0 0 10 0; #X connect 1 0 15 0; #X connect 1 1 15 1; #X connect 2 0 7 0; #X connect 2 0 16 0; #X connect 2 1 8 0; #X connect 2 1 17 0; #X connect 3 0 2 0; #X connect 3 0 13 1; #X connect 4 0 9 0; #X connect 5 0 4 0; #X connect 7 0 5 0; #X connect 8 0 5 0; #X connect 10 0 12 0; #X connect 10 0 13 0; #X connect 12 0 11 0; #X connect 13 0 2 0; #X connect 13 0 14 0; #X connect 15 0 6 0; #X connect 16 0 1 0; #X connect 17 0 1 0; #X restore 124 166 pd WRAP_T; #X obj 123 332 outlet; #X obj 181 110 demux 0 1 2 3 4; #N canvas 0 0 478 328 hdial 0; #X obj 64 21 inlet; #X msg 14 169 number $1; #X msg 18 139 2; #X msg 76 137 4; #X msg 47 138 6; #X obj 7 76 sel 0 1 2 3 4; #X obj 10 193 s $0-radio-values-r; #X connect 0 0 5 0; #X connect 1 0 6 0; #X connect 2 0 1 0; #X connect 3 0 1 0; #X connect 4 0 1 0; #X connect 5 0 2 0; #X connect 5 1 2 0; #X connect 5 2 2 0; #X connect 5 3 4 0; #X connect 5 4 3 0; #X restore 220 49 pd hdial value; #N canvas 162 177 538 418 WRAP_S 0; #X obj 60 12 inlet; #X obj 70 284 t b a; #X obj 82 154 sel 0; #X obj 82 89 inlet; #X obj 134 245 list trim; #X obj 134 224 list prepend label; #X obj 57 339 outlet; #X msg 106 191 GL_CLAMP; #X msg 130 170 GL_REPEAT; #X obj 134 267 s $0-cnv-value; #X obj 60 35 sel 0; #X obj 264 100 s $0-cnv-parameter; #X msg 264 67 label GL_TEXTURE_WRAP_S; #X obj 75 121 i 0; #X obj 221 158 s $0-radio-values-r; #X msg 56 253 10496; #X msg 82 227 10497; #X obj 53 315 pack 10242 10496; #X connect 0 0 10 0; #X connect 1 0 17 0; #X connect 1 1 17 1; #X connect 2 0 7 0; #X connect 2 0 15 0; #X connect 2 1 8 0; #X connect 2 1 16 0; #X connect 3 0 2 0; #X connect 3 0 13 1; #X connect 4 0 9 0; #X connect 5 0 4 0; #X connect 7 0 5 0; #X connect 8 0 5 0; #X connect 10 0 12 0; #X connect 10 0 13 0; #X connect 12 0 11 0; #X connect 13 0 2 0; #X connect 13 0 14 0; #X connect 15 0 1 0; #X connect 16 0 1 0; #X connect 17 0 6 0; #X restore 110 137 pd WRAP_S; #N canvas 431 0 587 505 MIN_FILTER 0; #X obj 15 11 inlet; #X obj 32 352 t b a; #X obj 33 79 inlet; #X msg 333 306 GL_NEAREST; #X msg 316 325 GL_LINEAR; #X obj 337 381 list trim; #X obj 337 360 list prepend label; #X obj 19 407 outlet; #X obj 34 180 sel 0 1 2 3 4 5; #X msg 359 266 GL_LINEAR_MINMAP_LINEAR; #X obj 316 188 sel 0 1 2 3 4 5; #X obj 337 403 s $0-cnv-value; #X obj 266 75 s $0-cnv-parameter; #X obj 15 33 sel 3; #X msg 266 42 label GL_TEXTURE_MIN_FILTER; #X obj 29 125 i 0; #X obj 153 181 s $0-radio-values-r; #X obj 16 383 pack 10241 9728; #X msg 33 319 9728; #X msg 45 295 9729; #X msg 63 269 9984; #X msg 90 224 9986; #X msg 103 202 9987; #X msg 76 244 9985; #X msg 344 286 GL_NEAREST_MINMAP_NEAREST; #X msg 374 247 GL_NEAREST_MINMAP_LINEAR; #X msg 384 228 GL_LINEAR_MINMAP_LINEAR; #X connect 0 0 13 0; #X connect 1 0 17 0; #X connect 1 1 17 1; #X connect 2 0 8 0; #X connect 2 0 10 0; #X connect 2 0 15 1; #X connect 3 0 6 0; #X connect 4 0 6 0; #X connect 5 0 11 0; #X connect 6 0 5 0; #X connect 8 0 18 0; #X connect 8 1 19 0; #X connect 8 2 20 0; #X connect 8 3 23 0; #X connect 8 4 21 0; #X connect 8 5 22 0; #X connect 9 0 6 0; #X connect 10 0 4 0; #X connect 10 1 3 0; #X connect 10 2 24 0; #X connect 10 3 9 0; #X connect 10 4 25 0; #X connect 10 5 26 0; #X connect 13 0 14 0; #X connect 13 0 15 0; #X connect 14 0 12 0; #X connect 15 0 8 0; #X connect 15 0 10 0; #X connect 15 0 16 0; #X connect 17 0 7 0; #X connect 18 0 1 0; #X connect 19 0 1 0; #X connect 20 0 1 0; #X connect 21 0 1 0; #X connect 22 0 1 0; #X connect 23 0 1 0; #X connect 24 0 6 0; #X connect 25 0 6 0; #X connect 26 0 6 0; #X restore 161 219 pd MIN_FILTER; #X obj 300 100 cnv 15 200 20 empty empty GL_TEXTURE_2D 2 12 0 9 -1 -262144 0; #N canvas 212 28 614 549 BORDER_COLOR 0; #X obj 271 15 inlet; #X obj 300 118 inlet; #X obj 348 257 list trim; #X obj 348 236 list prepend label; #X obj 215 354 outlet; #X obj 348 279 s $0-cnv-value; #X obj 313 87 s $0-cnv-parameter; #X msg 311 66 label GL_TEXTURE_BORDER_COLOR; #X obj 229 181 demux 0 1 2 3; #X obj 352 169 sel 0 1 2 3; #X msg 351 202 RED; #X msg 376 200 GREEN; #X msg 414 200 BLUE; #X msg 446 201 ALPHA; #X obj 146 147 r $0-BORDER_COLOR; #X obj 253 241 t b a; #X obj 277 267 t b a; #X obj 302 291 t b a; #X obj 43 274 t b b; #X obj 271 38 sel 4; #X obj 18 252 sel 4; #X obj 18 380 i $0; #X obj 271 142 i 0; #X msg 68 300 clear; #X obj 24 461 s pd-TEXTURE_2D-value; #X obj 43 350 i $0; #X obj 89 332 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 18 300 t b b; #X msg 63 379 obj 100 100 cnv 15 200 20 empty $1-cnv-value empty 2 11 0 9 -1 0 0; #X obj 360 147 s $0-radio-values-r; #X floatatom 107 202 5 0 0 0 - - -; #X msg 16 418 obj 170 102 hsl 101 15 0 1 0 0 $1-BORDER_COLOR $1-BORDER_COLOR-r empty 50 6 2 8 0 -1 -1 0; #X obj 211 328 pack 0 0 0 0; #X connect 0 0 19 0; #X connect 0 0 20 0; #X connect 1 0 9 0; #X connect 1 0 8 1; #X connect 1 0 22 1; #X connect 2 0 5 0; #X connect 3 0 2 0; #X connect 7 0 6 0; #X connect 8 0 32 0; #X connect 8 1 15 0; #X connect 8 2 16 0; #X connect 8 3 17 0; #X connect 9 0 10 0; #X connect 9 1 11 0; #X connect 9 2 12 0; #X connect 9 3 13 0; #X connect 10 0 3 0; #X connect 11 0 3 0; #X connect 12 0 3 0; #X connect 13 0 3 0; #X connect 14 0 30 0; #X connect 14 0 8 0; #X connect 15 0 32 0; #X connect 15 1 32 1; #X connect 16 0 32 0; #X connect 16 1 32 2; #X connect 17 0 32 0; #X connect 17 1 32 3; #X connect 18 0 25 0; #X connect 18 1 23 0; #X connect 19 0 7 0; #X connect 19 0 22 0; #X connect 20 0 27 0; #X connect 20 1 18 0; #X connect 21 0 31 0; #X connect 22 0 8 1; #X connect 22 0 9 0; #X connect 22 0 29 0; #X connect 23 0 24 0; #X connect 25 0 28 0; #X connect 26 0 25 0; #X connect 27 0 21 0; #X connect 28 0 24 0; #X connect 31 0 24 0; #X connect 32 0 4 0; #X restore 184 254 pd BORDER_COLOR; #N canvas 24 313 506 356 TEXTURE_2D-value 0; #X obj 100 100 cnv 15 200 20 empty 1002-cnv-value GL_CLAMP 2 11 0 9 -1 -262144 0; #X coords 0 -1 1 1 200 20 1 100 100; #X restore 300 140 pd TEXTURE_2D-value; #X obj 111 28 t a a a a a a a; #X text 337 4 megalegoland@yahoo.fr; #X obj 184 333 outlet; #X obj 107 277 unpack f f; #X obj 207 308 pack f f f f; #X obj 184 277 t b a; #X msg 139 308 4100; #X connect 0 0 13 0; #X connect 2 0 16 0; #X connect 3 0 6 0; #X connect 4 0 16 0; #X connect 6 0 8 1; #X connect 6 1 4 1; #X connect 6 2 2 1; #X connect 6 3 9 1; #X connect 6 4 11 1; #X connect 8 0 16 0; #X connect 9 0 16 0; #X connect 11 0 18 0; #X connect 13 0 8 0; #X connect 13 1 4 0; #X connect 13 2 2 0; #X connect 13 3 9 0; #X connect 13 4 11 0; #X connect 13 5 6 1; #X connect 13 6 7 0; #X connect 16 0 5 0; #X connect 16 1 15 0; #X connect 17 0 15 0; #X connect 18 0 19 0; #X connect 18 1 17 0; #X connect 19 0 5 0; #X coords 0 -1 1 1 200 60 1 300 100; #X restore 305 64 pd TEXTURE_2D; #X obj 470 42 bng 15 250 50 0 empty empty open_jpg -20 -6 0 8 -262144 -1 -1; #X msg 203 158 4100; #X text 366 3 border color doesn't work; #X obj 319 213 print tex_parameter; #X obj 499 199 print tex_value; #X obj 45 235 GEMglTexParameterf 3553 10242 10496; #X msg 139 184 3553; #X msg 114 146 3552; #X connect 1 0 4 0; #X connect 3 0 15 0; #X connect 4 0 3 0; #X connect 5 0 6 0; #X connect 6 0 4 0; #X connect 7 0 9 1; #X connect 8 0 9 0; #X connect 9 0 13 0; #X connect 9 0 15 2; #X connect 9 1 14 0; #X connect 9 1 15 3; #X connect 10 0 5 0; #X connect 11 0 15 2; #X connect 15 0 2 0; #X connect 16 0 15 1; #X connect 17 0 15 1; #X coords 0 -1 1 1 200 100 1 305 28; #X restore 128 34 pd image; #X obj 382 45 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X floatatom 370 119 5 0 0 0 - - -; #X obj 128 361 GEMglTexCoord2f -0.5 -0.5; #X text 216 11 a gop for GLdefine GL_TEXTURE_2D and image browsing ; #X obj 128 320 GEMglBegin 9; #X obj 131 621 GEMglShadeModel 7424; #X obj 366 75 GLdefine GL_SPHERE_MAP; #N canvas 548 337 454 304 TexGenf 0; #X obj 117 78 inlet; #X obj 129 249 outlet; #X obj 146 181 GEMglTexGenf; #X msg 225 46 8192; #X msg 216 67 8193; #X msg 210 86 8194; #X msg 203 105 8195; #X text 190 41 S; #X text 184 61 T; #X text 178 83 R; #X text 173 103 Q; #X msg 268 49 9472; #X text 261 32 TEXTURE_GEN_MODE; #X text 353 70 OBJECT_LINEAR; #X msg 360 87 9217; #X msg 378 117 9216; #X text 367 103 EYE_LINEAR; #X msg 326 67 9217; #X text 327 50 SPHERE_MAP; #X connect 0 0 2 0; #X connect 2 0 1 0; #X connect 3 0 2 1; #X connect 4 0 2 1; #X connect 5 0 2 1; #X connect 6 0 2 1; #X connect 11 0 2 2; #X connect 14 0 2 3; #X connect 15 0 2 3; #X connect 17 0 2 3; #X restore 128 175 pd TexGenf; #X connect 0 0 1 0; #X connect 1 0 0 0; #X connect 2 0 42 0; #X connect 3 0 4 1; #X connect 4 0 41 0; #X connect 5 0 4 2; #X connect 6 0 4 3; #X connect 7 0 28 2; #X connect 8 0 28 1; #X connect 9 0 28 3; #X connect 10 0 29 2; #X connect 11 0 29 1; #X connect 12 0 29 3; #X connect 13 0 36 0; #X connect 14 0 34 0; #X connect 14 0 39 1; #X connect 15 0 34 0; #X connect 15 0 39 2; #X connect 16 0 33 1; #X connect 16 0 34 0; #X connect 17 0 33 2; #X connect 17 0 34 0; #X connect 18 0 32 1; #X connect 18 0 34 0; #X connect 19 0 32 2; #X connect 19 0 34 0; #X connect 20 0 30 2; #X connect 21 0 30 1; #X connect 22 0 30 3; #X connect 23 0 35 1; #X connect 24 0 35 2; #X connect 25 0 31 2; #X connect 26 0 31 1; #X connect 27 0 31 3; #X connect 28 0 33 0; #X connect 29 0 32 0; #X connect 30 0 35 0; #X connect 31 0 2 0; #X connect 32 0 30 0; #X connect 33 0 29 0; #X connect 35 0 31 0; #X connect 36 0 44 0; #X connect 37 0 43 0; #X connect 39 0 28 0; #X connect 41 0 39 0; #X connect 43 0 38 0; #X connect 44 0 4 0;