Fading In and Out from the Windows Desktop
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next marker
t / T Toggle theatre / SUPERtheatre mode
V Revert filter to original state Y Select link (requires manual Ctrl-c)

Menu toggling

q Quotes r References f Filter y Link c Credits

In-Menu Movement

a
w
s
d
h j k l


Quotes and References Menus

Enter Jump to timecode

Quotes, References and Credits Menus

o Open URL (in new tab)

Filter Menu

x, Space Toggle category and focus next
X, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus

Filter and Link Menus

z Toggle filter / linking mode

Credits Menu

Enter Open URL (in new tab)
1:15Recap our current situation
1:15Recap our current situation
1:15Recap our current situation
1:45Internet: SetLayeredWindowAttributes1
1:45Internet: SetLayeredWindowAttributes1
1:45Internet: SetLayeredWindowAttributes1
2:56win32_handmade.cpp: Create a fullscreen window that's transparent but black, and gradually increase its opacity
2:56win32_handmade.cpp: Create a fullscreen window that's transparent but black, and gradually increase its opacity
2:56win32_handmade.cpp: Create a fullscreen window that's transparent but black, and gradually increase its opacity
5:01Run the game and see the fade-out
5:01Run the game and see the fade-out
5:01Run the game and see the fade-out
5:15win32_handmade.cpp: Make the fade-out routine something that can be called incrementally
5:15win32_handmade.cpp: Make the fade-out routine something that can be called incrementally
5:15win32_handmade.cpp: Make the fade-out routine something that can be called incrementally
9:24Run the game and see that nothing happens
9:24Run the game and see that nothing happens
9:24Run the game and see that nothing happens
9:47win32_handmade.cpp: Defer calling ShowWindow until FadeAlpha is 1.0f
9:47win32_handmade.cpp: Defer calling ShowWindow until FadeAlpha is 1.0f
9:47win32_handmade.cpp: Defer calling ShowWindow until FadeAlpha is 1.0f
13:58win32_handmade.cpp: Enable the timing loop
13:58win32_handmade.cpp: Enable the timing loop
13:58win32_handmade.cpp: Enable the timing loop
14:13Run the game and see a slight flicker on the transition
14:13Run the game and see a slight flicker on the transition
14:13Run the game and see a slight flicker on the transition
16:04Debugger: Step into ShowWindow
16:04Debugger: Step into ShowWindow
16:04Debugger: Step into ShowWindow
18:35win32_handmade.cpp: Try doing ToggleFullscreen after showing it, then try and force a repaint2
18:35win32_handmade.cpp: Try doing ToggleFullscreen after showing it, then try and force a repaint2
18:35win32_handmade.cpp: Try doing ToggleFullscreen after showing it, then try and force a repaint2
20:39win32_handmade.cpp: Set WindowsAlpha = 255 and test if(IsWindowVisible)
20:39win32_handmade.cpp: Set WindowsAlpha = 255 and test if(IsWindowVisible)
20:39win32_handmade.cpp: Set WindowsAlpha = 255 and test if(IsWindowVisible)
27:32Debugger: Break into ShowWindow in SetFadeAlpha and see it's not getting called
27:32Debugger: Break into ShowWindow in SetFadeAlpha and see it's not getting called
27:32Debugger: Break into ShowWindow in SetFadeAlpha and see it's not getting called
28:23Spy++: Look at the Window Styles
28:23Spy++: Look at the Window Styles
28:23Spy++: Look at the Window Styles
31:08win32_handmade.cpp: Correct the FadingComplete / ShowingComplete testsα
31:08win32_handmade.cpp: Correct the FadingComplete / ShowingComplete testsα
31:08win32_handmade.cpp: Correct the FadingComplete / ShowingComplete testsα
31:43Run the game and see that we don't have our glitch
31:43Run the game and see that we don't have our glitch
31:43Run the game and see that we don't have our glitch
32:35win32_handmade.cpp: Introduce dFadeAlpha to fade back to the desktop
32:35win32_handmade.cpp: Introduce dFadeAlpha to fade back to the desktop
32:35win32_handmade.cpp: Introduce dFadeAlpha to fade back to the desktop
38:15win32_handmade.h: Introduce win32_fader_state and win32_fader
38:15win32_handmade.h: Introduce win32_fader_state and win32_fader
38:15win32_handmade.h: Introduce win32_fader_state and win32_fader
40:37win32_handmade.cpp: Introduce UpdateFade
40:37win32_handmade.cpp: Introduce UpdateFade
40:37win32_handmade.cpp: Introduce UpdateFade
41:23win32_handmade.cpp: Make a little finite state machine for the fades
41:23win32_handmade.cpp: Make a little finite state machine for the fades
41:23win32_handmade.cpp: Make a little finite state machine for the fades
44:25win32_handmade.cpp: Briefly describe the finite state machine
44:25win32_handmade.cpp: Briefly describe the finite state machine
44:25win32_handmade.cpp: Briefly describe the finite state machine
45:05win32_handmade.h: Add Win32Fade_FadingGame to win32_fader_state
45:05win32_handmade.h: Add Win32Fade_FadingGame to win32_fader_state
45:05win32_handmade.h: Add Win32Fade_FadingGame to win32_fader_state
46:46win32_handmade.cpp: Introduce InitFader, BeginFadein and BeginFadeOut
46:46win32_handmade.cpp: Introduce InitFader, BeginFadein and BeginFadeOut
46:46win32_handmade.cpp: Introduce InitFader, BeginFadein and BeginFadeOut
53:37win32_handmade.cpp: Only do BeginFadeToDesktop if Win32Fade_Inactive
53:37win32_handmade.cpp: Only do BeginFadeToDesktop if Win32Fade_Inactive
53:37win32_handmade.cpp: Only do BeginFadeToDesktop if Win32Fade_Inactive
54:28Run the game and see that we're working properly
54:28Run the game and see that we're working properly
54:28Run the game and see that we're working properly
54:59Q&A
🗩
54:59Q&A
🗩
54:59Q&A
🗩
55:44m1el Casey, you need one more state to wait for alpha-enabled window to show, because you might have the same bug when you fade to desktop
🗪
55:44m1el Casey, you need one more state to wait for alpha-enabled window to show, because you might have the same bug when you fade to desktop
🗪
55:44m1el Casey, you need one more state to wait for alpha-enabled window to show, because you might have the same bug when you fade to desktop
🗪
57:25SteelGolem Your fading setup seems overcomplicated to me. Why not just take a screenshot, blit that to the back buffer, and fade that? What platforms wouldn't that work for?
🗪
57:25SteelGolem Your fading setup seems overcomplicated to me. Why not just take a screenshot, blit that to the back buffer, and fade that? What platforms wouldn't that work for?
🗪
57:25SteelGolem Your fading setup seems overcomplicated to me. Why not just take a screenshot, blit that to the back buffer, and fade that? What platforms wouldn't that work for?
🗪
1:00:26insofaras Why are you using a second window for the fade in, instead of just fading in the main window?
🗪
1:00:26insofaras Why are you using a second window for the fade in, instead of just fading in the main window?
🗪
1:00:26insofaras Why are you using a second window for the fade in, instead of just fading in the main window?
🗪
1:02:06Miblo Wow, thank you for such a comprehensive A: to my Q:. That's exactly what I wanted! Another small one: Would it be possible to make bits of the window transparent, e.g. for the situation where some monstar has torn a hole in the game window, revealing the desktop beneath?
🗪
1:02:06Miblo Wow, thank you for such a comprehensive A: to my Q:. That's exactly what I wanted! Another small one: Would it be possible to make bits of the window transparent, e.g. for the situation where some monstar has torn a hole in the game window, revealing the desktop beneath?
🗪
1:02:06Miblo Wow, thank you for such a comprehensive A: to my Q:. That's exactly what I wanted! Another small one: Would it be possible to make bits of the window transparent, e.g. for the situation where some monstar has torn a hole in the game window, revealing the desktop beneath?
🗪
1:03:31Mr4thDimention Suppose you're Microsoft, but instead of wanting all of the money in the world you just want to make a living selling your OS. Do you think you could do that while providing a good way for users of your platform to debug the code that uses your API?
🗪
1:03:31Mr4thDimention Suppose you're Microsoft, but instead of wanting all of the money in the world you just want to make a living selling your OS. Do you think you could do that while providing a good way for users of your platform to debug the code that uses your API?
🗪
1:03:31Mr4thDimention Suppose you're Microsoft, but instead of wanting all of the money in the world you just want to make a living selling your OS. Do you think you could do that while providing a good way for users of your platform to debug the code that uses your API?
🗪
1:05:17insofaras Can you not unset the layered window flag after doing the fade?
🗪
1:05:17insofaras Can you not unset the layered window flag after doing the fade?
🗪
1:05:17insofaras Can you not unset the layered window flag after doing the fade?
🗪
1:07:15SteelGolem Wait, why can I Alt-PrintScreen to capture HDCP with windows but I can't take a screencap manually? I have lots of screenshots of my PS3 through the player via prntscrnt
🗪
1:07:15SteelGolem Wait, why can I Alt-PrintScreen to capture HDCP with windows but I can't take a screencap manually? I have lots of screenshots of my PS3 through the player via prntscrnt
🗪
1:07:15SteelGolem Wait, why can I Alt-PrintScreen to capture HDCP with windows but I can't take a screencap manually? I have lots of screenshots of my PS3 through the player via prntscrnt
🗪
1:08:53blah238 So this detour was all about startup and shutdown fades, but how would you implement fading in between in-game scenes? This shouldn't involve the Windows API, correct?
🗪
1:08:53blah238 So this detour was all about startup and shutdown fades, but how would you implement fading in between in-game scenes? This shouldn't involve the Windows API, correct?
🗪
1:08:53blah238 So this detour was all about startup and shutdown fades, but how would you implement fading in between in-game scenes? This shouldn't involve the Windows API, correct?
🗪
1:09:25handmade_cutscene.h: Add tFadeIn to layered_scene
1:09:25handmade_cutscene.h: Add tFadeIn to layered_scene
1:09:25handmade_cutscene.h: Add tFadeIn to layered_scene
1:10:35handmade_cutscene.cpp: Implement fade to black between cutscene shots
1:10:35handmade_cutscene.cpp: Implement fade to black between cutscene shots
1:10:35handmade_cutscene.cpp: Implement fade to black between cutscene shots
1:12:56Run the game and see that fade
1:12:56Run the game and see that fade
1:12:56Run the game and see that fade
1:13:27Note that the alpha must be gamma corrected
1:13:27Note that the alpha must be gamma corrected
1:13:27Note that the alpha must be gamma corrected
1:16:41We are out of time
🗩
1:16:41We are out of time
🗩
1:16:41We are out of time
🗩