Conversation

hey why did windows XP do the thing sometimes where you drag a window and it makes a bunch of copies of the window under it?

6
0
0
@0x4d6165 windows xp didn't have a compositing windows manager so whenever a window moved, the OS had no idea what should be rendered behind it so if there's a serious case of lag. The OS just doesn't have the spoons to render these areas correctly yet. That's why there can be trailing bunch of copies of the window under it and there you go.
0
0
1

@0x4d6165 i was pretty sure there'd be an old new thing post about whatever cursed win32 design decision made this happen, but if it exists i can't find it :/

0
0
1
@0x4d6165 i have to assume it's something similar to why frozen x clients have a similar effect (everything just draws to the framebuffer, so if a program doesn't redraw itself stuff just gets duplicated)

vista moved to dwm, which works similarly to wayland iirc in terms of how it exposes resources
1
0
1
@aleteoryx @0x4d6165 X doesn't suffer from this effect if you have a compositor running either, i just don't run a compositor because things are faster if I don't
0
0
0
@0x4d6165 Later versions of Windows store each graphical window as a separate texture in the GPU, and so moving one window just reveals the one underneath.
Earlier versions instead just have a single flat picture for the entire screen, and when one window moves, the window underneath is told to redraw. If that underlying application is frozen in some way and can't redraw immediately, the screen continues showing whatever content was painted there before.
0
0
1

@0x4d6165 if the surface under the window was not being redrawn (for whatever reason, like some software crashed or froze), then every time you moved a window, the area where the window used to be keeps looking the same. you also see this effect e.g. when looking out of bounds in doom (1993).

in general, if nothing draws onto an area of the screen, then that area just keeps whatever pixels it had previously

1
0
1

@0x4d6165 what's *supposed* to happen is: you move the window, and then the OS tells the underlying surface that it needs to redraw that newly exposed area. this issue stopped happening from vista onward because it draws windows in an entirely different way

0
0
1