Forums > Jitter

Subconsious fullscreening

December 12, 2006 | 11:20 pm

I want to create a program that takes a snapshot of the desktop, makes a fullscreen window with the desktop as it was, and then manipulate it. the only thing I don’t know how to do is make a seemless transition to fullscreen window. I always seem to notice a small moment of black. Is it possible with some option to do this?

NCRIII


December 13, 2006 | 12:43 am

Hi,

I believe u’re trying to achieve, is to take control over the user’s
desktop and start to manipulate his interaction with it, whithout him
actually noticing anything? … if that is the case, i think you will
have to dig deaper than just using a jitter object, because starting a
fullscreen *custom drawn , user controlled* visualization is something
that asks quite some things from the system, and still is kind of a hard
virtual switch between drawing contexts… at least if you have to work
at the fancy@ upper layers like programming in jitter.
I think, u would at least have to consider designing a custom object…
But what i’m thinking of is this, if u’re trying to get the user in a
state where he thinks everything’s ok, but actually u’re in control,
Than u could incorporate the *being black for while* thing into the
setup… imagine: the user is working as usaully, all of sudden …
black!…. ???… the screen appears again but a warning message is
displayed …. an black again!…. ???? … what the…. screen comes
back…. no warning message no more… huh? is everything still ok than?…
what i’m trying to say is, that it might be a lot easier if u try to
incorporate the blanking of the screen into the concept, Plus, depending
on what u’re trying to achieve it really might be a Plus to have some
stuff blanking… huh? huh?….

good luck
d

@= no offense! fancy is not a bad thing, right?…i just mean for c i
need my dirty clothes, but when i work jitter i’m on my sunday’s best … ;)

Nicholas C. Raftis III wrote:
> I want to create a program that takes a snapshot of the desktop, makes a fullscreen window with the desktop as it was, and then manipulate it. the only thing I don’t know how to do is make a seemless transition to fullscreen window. I always seem to notice a small moment of black. Is it possible with some option to do this?
>
> NCRIII
> –
> -=ili!ili=- http://www.Axiom-Crux.net -=ili!ili=-
>
>


December 13, 2006 | 12:49 am

You misunderstand, I want to take a screenshot of the desktop and process it.


December 13, 2006 | 3:03 am

Here’s a dirty cludge. This was kind of fun. Not sure if there are windows versions of this needed external.
For max 4.6 use:

http://www.bildstrom.at/ingo/io_window.zip

For max 4.5 replace io.window with windowmanager found here:

http://www.wojciechkosma.kylos.pl/soft/windowmanager.zip

Patch follows:

max v2;
#N vpatcher 418 217 1057 842;
#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P newex 432 338 73 196617 prepend dim;
#P newex 412 433 56 196617 unpack 0 0;
#P newex 181 554 62 196617 delay 10;
#B color 5;
#P number 252 564 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 252 584 62 196617 offset_x $1;
#N counter 0 0 1280;
#X flags 0 0;
#P newobj 252 543 109 196617 counter 0 0 1280;
#B color 5;
#P message 322 464 71 196617 boundmode 2;
#P newex 316 486 41 196617 jit.rota;
#B color 5;
#P newex 17 142 50 196617 delay 50;
#P message 16 195 54 196617 front;
#P newex 17 110 50 196617 t b;
#P newex 32 81 185 196617 t 1 b b b 0 b b b b;
#P button 268 396 15 0;
#P newex 285 440 110 196617 jit.matrix;
#P button 265 349 15 0;
#P message 244 474 61 196617 fullscreen 1;
#P message 192 472 50 196617 front;
#P newex 251 517 272 196617 jit.window screenshot @rect 0 0 1 1 @border 0;
#P message 98 303 54 196617 noShadow;
#P message 114 285 48 196617 alpha $1;
#P newex 50 358 55 196617 io.window;
#P button 84 60 15 0;
#P newex 32 60 50 196617 loadbang;
#P newex 316 338 110 196617 pak rect 0 0 320 240;
#P newex 348 293 56 196617 zl slice 4;
#P message 349 252 45 196617 coords 0;
#P newex 348 270 73 196617 jit.displays;
#P window linecount 2;
#P newex 302 365 159 196617 jit.desktop 4 char 320 240 @adapt 1;
#P comment 5 30 100 196617 you’ll probably want to hide me.;
#P connect 20 0 19 0;
#P connect 17 0 18 0;
#P connect 18 0 20 0;
#P connect 6 0 17 0;
#P connect 7 0 17 0;
#P fasten 17 5 8 0 142 344 55 344;
#P fasten 19 0 8 0 21 230 55 230;
#P fasten 10 0 8 0 103 344 55 344;
#P connect 9 0 8 0;
#P fasten 17 2 10 0 79 294 103 294;
#P connect 17 0 9 0;
#P fasten 17 4 9 0 121 200 119 200;
#P connect 11 0 26 0;
#P fasten 17 6 12 0 163 147 197 147;
#P fasten 17 3 13 0 100 131 249 131;
#P connect 12 0 11 0;
#P connect 13 0 11 0;
#P connect 21 0 11 0;
#P connect 11 0 23 0;
#P connect 23 0 25 0;
#P connect 25 0 24 0;
#P connect 20 0 15 0;
#P connect 26 0 15 0;
#P fasten 17 1 15 0 58 105 290 105;
#P connect 16 0 15 0;
#P connect 1 0 15 0;
#P connect 28 0 1 0;
#P fasten 17 7 1 0 184 240 307 240;
#P connect 5 0 1 0;
#P connect 14 0 1 0;
#P connect 15 0 21 0;
#P connect 22 0 21 0;
#P connect 24 0 21 0;
#P connect 17 8 22 0;
#P connect 3 0 2 0;
#P connect 2 0 4 0;
#P connect 27 1 23 4;
#P fasten 17 8 3 0 205 123 354 123;
#P connect 4 1 5 3;
#P connect 4 1 27 0;
#P connect 4 1 28 0;
#P pop;


December 13, 2006 | 2:15 pm

Hello NCRIII,

If the wheel doesn’t work for you, it’s best to reinvent it.

Instead of using fullscreen message, you could manually set jit.window to
cover entire desktop, with some tricks along the way:

#P window setfont Geneva 9.;
#P window linecount 1;
#N vpatcher 15 55 388 209;
#P window setfont Geneva 9.;
#P window linecount 1;
#P comment 183 76 145 9961481 to preserve desktop sharpness;
#P newex 50 50 45 9961481 loadbang;
#P message 50 72 110 9961481 sendtexture filter none;
#P outlet 50 92 15 0;
#P window linecount 0;
#P comment 183 60 100 9961481 prevents filtering;
#P connect 3 0 2 0;
#P connect 2 0 1 0;
#P pop;
#P newobj 551 248 76 9961481 p no_smoothing;
#N vpatcher 15 55 412 399;
#P window setfont Geneva 9.;
#P newex 50 48 55 9961481 screensize;
#P newex 112 155 86 9961481 t b l l;
#P newex 150 190 83 9961481 prepend rect 0 0;
#P newex 252 190 61 9961481 prepend dim;
#P newex 112 131 76 9961481 pack 1280 800;
#P newex 178 105 27 9961481 + 1;
#P newex 112 105 27 9961481 + 1;
#P newex 50 76 104 9961481 unpack 0 0 1279 799;
#N comlet bang;
#P inlet 50 22 15 0;
#N comlet fullscreen rect;
#P outlet 70 235 15 0;
#N comlet messages for jit.desktop;
#P outlet 112 258 15 0;
#P connect 2 0 10 0;
#P connect 10 0 3 0;
#P connect 8 0 1 0;
#P lcolor 1;
#P connect 3 2 4 0;
#P connect 4 0 6 0;
#P connect 6 0 9 0;
#P fasten 8 0 0 0 155 240 117 240;
#P fasten 7 0 0 0 257 247 117 247;
#P connect 9 0 0 0;
#P connect 9 1 8 0;
#P connect 3 3 5 0;
#P connect 5 0 6 1;
#P fasten 9 2 7 0 193 178 257 178;
#P pop;
#P newobj 286 142 161 9961481 p get screen size & calculate rects;
#B color 1;
#N vpatcher 15 55 456 473;
#P window setfont Geneva 9.;
#P window linecount 0;
#P message 21 59 17 9961481 1.;
#P window linecount 1;
#P newex 50 57 41 9961481 del 150;
#P newex 50 138 39 9961481 jit.qball;
#P newex 264 219 37 9961481 * 360.;
#P newex 240 274 107 9961481 pak rotatexyz 0. 0. 0.;
#P newex 118 219 112 9961481 pack scale 1. 1. 1.;
#P message 50 92 54 9961481 1 , 0. 900.;
#P newex 50 171 182 9961481 t b erase b f f f;
#P newex 50 113 52 9961481 line 0. 33.;
#P inlet 50 24 15 0;
#P outlet 173 349 15 0;
#P outlet 50 245 15 0;
#P fasten 2 0 11 0 55 49 26 49;
#P connect 2 0 10 0;
#P connect 10 0 5 0;
#P connect 5 0 3 0;
#P connect 3 0 9 0;
#P fasten 11 0 4 0 26 163 55 163;
#P connect 9 0 4 0;
#P connect 4 0 0 0;
#P fasten 4 1 0 0 89 197 55 197;
#P connect 4 2 6 0;
#P connect 4 3 6 1;
#P connect 7 0 1 0;
#P connect 6 0 1 0;
#P connect 4 4 6 2;
#P connect 4 5 8 0;
#P connect 8 0 7 3;
#P pop;
#P newobj 345 250 53 9961481 p fun-part;
#P newex 175 275 121 9961481 zl reg rect 0 0 1280 800;
#B color 1;
#P message 198 242 44 9961481 visible 1;
#P newex 152 192 57 9961481 t b b b;
#P message 45 243 115 9961481 rect 0 0 64 48 , visible 0;
#P newex 137 167 40 9961481 sel 0 1;
#P newex 501 236 27 9961481 t b l;
#P newex 518 275 191 9961481 jit.gl.videoplane virii @transform_reset 2;
#P newex 501 306 192 9961481 jit.gl.render virii @erase_color 0. 0. 0. 0.;
#P toggle 137 136 15 0;
#P newex 137 89 28 9961481 t b b;
#P newex 137 61 35 9961481 sel 27;
#P newex 137 36 40 9961481 key;
#P newex 501 214 134 9961481 jit.desktop 4 char 1280 800;
#P newex 175 320 233 9961481 jit.window virii @size 64 48 @border 0
@floating 1;
#P comment 153 137 100 9961481 fullscreen;
#P connect 17 0 8 0;
#P connect 15 1 8 0;
#P lcolor 1;
#P connect 9 1 8 0;
#P connect 9 0 7 0;
#P connect 15 0 7 0;
#P fasten 5 1 16 0 160 124 291 124;
#P lcolor 2;
#P connect 16 0 14 1;
#P lcolor 2;
#P connect 16 1 2 0;
#P lcolor 2;
#P connect 4 0 5 0;
#P connect 5 0 6 0;
#P fasten 12 0 15 0 157 229 350 229;
#P connect 14 0 1 0;
#P lcolor 2;
#P connect 12 1 14 0;
#P lcolor 2;
#P fasten 13 0 1 0 203 302 180 302;
#P lcolor 2;
#P connect 12 2 13 0;
#P lcolor 2;
#P connect 10 1 12 0;
#P connect 2 0 9 0;
#P connect 11 0 1 0;
#P lcolor 2;
#P connect 10 0 11 0;
#P lcolor 2;
#P connect 6 0 10 0;
#P connect 3 0 4 0;
#P window clipboard copycount 18;

I’m in a bit of hurry, so I left out many explanations, but I’ll be glad to
answer any questions.

Best,
nesa


December 15, 2006 | 1:52 am

Good work guys, thats exactly what I was going for. Fun right? Could be cool for an interface background, or a patch startup. (or a max/msp virus that trips people out :P )
Thanks!


December 15, 2006 | 2:10 am

Hah. That made me chuckle. If you could grab the texture from OS X of
certain windows with alpha layers, you could actually do some pretty
cool shit with that.

On Dec 13, 2006, at 9:15 AM, nesa wrote:

> #P window setfont Geneva 9.;
> #P window linecount 1;
> #N vpatcher 15 55 388 209;
> #P window setfont Geneva 9.;
> #P window linecount 1;
> #P comment 183 76 145 9961481 to preserve desktop sharpness;
> #P newex 50 50 45 9961481 loadbang;
> #P message 50 72 110 9961481 sendtexture filter none;
> #P outlet 50 92 15 0;
> #P window linecount 0;
> #P comment 183 60 100 9961481 prevents filtering;
> #P connect 3 0 2 0;
> #P connect 2 0 1 0;
> #P pop;
> #P newobj 551 248 76 9961481 p no_smoothing;
> #N vpatcher 15 55 412 399;
> #P window setfont Geneva 9.;
> #P newex 50 48 55 9961481 screensize;
> #P newex 112 155 86 9961481 t b l l;
> #P newex 150 190 83 9961481 prepend rect 0 0;
> #P newex 252 190 61 9961481 prepend dim;
> #P newex 112 131 76 9961481 pack 1280 800;
> #P newex 178 105 27 9961481 + 1;
> #P newex 112 105 27 9961481 + 1;
> #P newex 50 76 104 9961481 unpack 0 0 1279 799;
> #N comlet bang;
> #P inlet 50 22 15 0;
> #N comlet fullscreen rect;
> #P outlet 70 235 15 0;
> #N comlet messages for jit.desktop;
> #P outlet 112 258 15 0;
> #P connect 2 0 10 0;
> #P connect 10 0 3 0;
> #P connect 8 0 1 0;
> #P lcolor 1;
> #P connect 3 2 4 0;
> #P connect 4 0 6 0;
> #P connect 6 0 9 0;
> #P fasten 8 0 0 0 155 240 117 240;
> #P fasten 7 0 0 0 257 247 117 247;
> #P connect 9 0 0 0;
> #P connect 9 1 8 0;
> #P connect 3 3 5 0;
> #P connect 5 0 6 1;
> #P fasten 9 2 7 0 193 178 257 178;
> #P pop;
> #P newobj 286 142 161 9961481 p get screen size & calculate rects;
> #B color 1;
> #N vpatcher 15 55 456 473;
> #P window setfont Geneva 9.;
> #P window linecount 0;
> #P message 21 59 17 9961481 1.;
> #P window linecount 1;
> #P newex 50 57 41 9961481 del 150;
> #P newex 50 138 39 9961481 jit.qball;
> #P newex 264 219 37 9961481 * 360.;
> #P newex 240 274 107 9961481 pak rotatexyz 0. 0. 0.;
> #P newex 118 219 112 9961481 pack scale 1. 1. 1.;
> #P message 50 92 54 9961481 1 , 0. 900.;
> #P newex 50 171 182 9961481 t b erase b f f f;
> #P newex 50 113 52 9961481 line 0. 33.;
> #P inlet 50 24 15 0;
> #P outlet 173 349 15 0;
> #P outlet 50 245 15 0;
> #P fasten 2 0 11 0 55 49 26 49;
> #P connect 2 0 10 0;
> #P connect 10 0 5 0;
> #P connect 5 0 3 0;
> #P connect 3 0 9 0;
> #P fasten 11 0 4 0 26 163 55 163;
> #P connect 9 0 4 0;
> #P connect 4 0 0 0;
> #P fasten 4 1 0 0 89 197 55 197;
> #P connect 4 2 6 0;
> #P connect 4 3 6 1;
> #P connect 7 0 1 0;
> #P connect 6 0 1 0;
> #P connect 4 4 6 2;
> #P connect 4 5 8 0;
> #P connect 8 0 7 3;
> #P pop;
> #P newobj 345 250 53 9961481 p fun-part;
> #P newex 175 275 121 9961481 zl reg rect 0 0 1280 800;
> #B color 1;
> #P message 198 242 44 9961481 visible 1;
> #P newex 152 192 57 9961481 t b b b;
> #P message 45 243 115 9961481 rect 0 0 64 48 , visible 0;
> #P newex 137 167 40 9961481 sel 0 1;
> #P newex 501 236 27 9961481 t b l;
> #P newex 518 275 191 9961481 jit.gl.videoplane virii
> @transform_reset 2;
> #P newex 501 306 192 9961481 jit.gl.render virii @erase_color 0. 0.
> 0. 0.;
> #P toggle 137 136 15 0;
> #P newex 137 89 28 9961481 t b b;
> #P newex 137 61 35 9961481 sel 27;
> #P newex 137 36 40 9961481 key;
> #P newex 501 214 134 9961481 jit.desktop 4 char 1280 800;
> #P newex 175 320 233 9961481 jit.window virii @size 64 48 @border 0
> @floating 1;
> #P comment 153 137 100 9961481 fullscreen;
> #P connect 17 0 8 0;
> #P connect 15 1 8 0;
> #P lcolor 1;
> #P connect 9 1 8 0;
> #P connect 9 0 7 0;
> #P connect 15 0 7 0;
> #P fasten 5 1 16 0 160 124 291 124;
> #P lcolor 2;
> #P connect 16 0 14 1;
> #P lcolor 2;
> #P connect 16 1 2 0;
> #P lcolor 2;
> #P connect 4 0 5 0;
> #P connect 5 0 6 0;
> #P fasten 12 0 15 0 157 229 350 229;
> #P connect 14 0 1 0;
> #P lcolor 2;
> #P connect 12 1 14 0;
> #P lcolor 2;
> #P fasten 13 0 1 0 203 302 180 302;
> #P lcolor 2;
> #P connect 12 2 13 0;
> #P lcolor 2;
> #P connect 10 1 12 0;
> #P connect 2 0 9 0;
> #P connect 11 0 1 0;
> #P lcolor 2;
> #P connect 10 0 11 0;
> #P lcolor 2;
> #P connect 6 0 10 0;
> #P connect 3 0 4 0;
> #P window clipboard copycount 18;

v a d e //

http://www.vade.info
abstrakt.vade.info


December 18, 2006 | 11:10 am

Yes, with jit.window over the entire screen + jit.desktop + windowmanager you can already do a lot. That worked for me when i maked an ‘desktop equalizer’ to enjoy and ‘remix’ my desktop while making music.


December 18, 2006 | 6:40 pm

Nice! That sounds cool, I would love to see what you did if your so willing. ;)


Viewing 9 posts - 1 through 9 (of 9 total)