Windows 8平板电脑体验将其组件组织为一系列层,每一层堆叠在下一层之上。在今天的讨论中,重要的层是开始层和应用层:如果你正在使用应用,那么应用层是全屏的。如果打开了Start,则Start层将覆盖应用层。如果最后一个应用退出,则“启动”将自动打开。应该有一个全屏层在任何时候。
当然,在开发过程中,不可避免地会出现一些问题,您会进入既不显示Start也不显示Apps层的状态,从而导致黑屏。
现在,黑屏可能有多种原因。视频驱动程序可能崩溃了。或者,视频驱动程序可能工作正常,但合成器崩溃,因此视频驱动程序没有收到任何信息。或者合成器可以正常工作,但是外壳崩溃了,所以合成器没有任何渲染。或者shell可能正在运行,但它只是忘记在屏幕上显示一些内容。
对于最后一种情况,Windows 8外壳创建了一个位于所有其他层下方的一层的逆止窗口。如果其他层都不存在,那么至少你有一个逆止窗口。在早期的调试构建中,backstop窗口包含一个ASCII猫图。这样,如果你看到猫,你就知道你遇到了最后一个失败案例:外壳正在运行,但忘记在屏幕上放置一些东西。
事实上,编写后台窗口的开发人员非常喜欢猫,他们有一系列猫的图片。在系统启动时,他们在逆止窗口上绘制第一张cat图片,每次要求逆止窗口重新绘制时,他们都会循环到下一张图片。这就像一个故事,一句话一句地讲,每一句话都会在下一次发生灾难性的失败时显露出来。
实际上,整个故事从未被讲述过,因为我们几乎连第一张照片都没拍完。
*,MMM8&&&;。*mm88&&&&&; .mm88&&&&&&&;*MMM88&&&&&&&&;MMM88&&&&&&&&;'MMM88&&&&&&;''MMM8&&&;' * |\___/| /\___/\ ) ( ) ~( . ‘ =\ /= =\~ /= )===( ) ~ ( / \ / \ | | ) ~ ( / \ / ~ \ \ / \~ ~/ _/\_/\_/\__ _/_/\_/\__~__/_/\_/\_/\_/\_/\_ | | | |( ( | | | )) | | | | | | | | | | ) ) | | |//| | | | | | | | | | |(_( | | (( | | | | | | | | | | | | | | |\)| | | | | | | | | | | | | | | | | | | | | |
*,MMM8&&&;。*mm88&&&&&; .mm88&&&&&&&;*MMM88&&&&&&&&;MMM88&&&&&&&&;'MMM88&&&&&&;''MMM8&&&;' * |\___/| /\___/\ ) ( ) ~( . ‘ =\ /= =\~ /= )===( ) ~ ( / \ / \ | | ) ~ ( / \ / ~ \ \ / \~ ~/ _/\_/\_/\__ _/_/\_/\__~__/_/\_/\_/\_/\_/\_ | | | |) )| | | (( | | | | | | | | | | ( ( | | | |\\| | | | | | | | | | |)_) | | |))| | | | | | | | | | | | | | |\)| | | | | | | | | | | | | | | | | | | | | |
*,MMM8&&&;。*mm88&&&&&; .mm88&&&&&&&;*MMM88&&&&&&&&;MMM88&&&&&&&&;'MMM88&&&&&&;' |\___/| /\___/\ ) ( ) ~( . ‘ =\ /= =\~ /= )===( ) ~ ( / \ / \ | | ) ~ ( / \ / ~ \ \ / \~ ~/ _/\_/\_/\__ _/_/\_/\__~__/_/\_/\_/\_/\_/\_ | | | |) )| | | (( | | | | | | | | | | ( ( | | | |\\| | | | | | | | | | |)_) | | |))| | | | | | | | | | | | | | |\)| | | | | | | | | | | | | | | | | | | | | |
*,MMM8&&&;。*mm88&&&&&; .mm88&&&&&&&;*MMM88&&&&&&&&;MMM88&&&&&&&&; |\___/| /\___/\ ) ( ) ~( . ‘ =\ /= =\~ /= )===( ) ~ ( / \ / \ | | ) ~ ( / \ / ~ \ \ / \~ ~/ _/\_/\_/\__ _/_/\_/\__~__/_/\_/\_/\_/\_/\_ | | | |) )| | | (( | | | | | | | | | | ( ( | | | |\\| | | | | | | | | | |)_) | | |))| | | | | | | | | | | | | | |\)| | | | | | | | | | | | | | | | | | | | | |
*,MMM8&&&;。*mm88&&&&&; .mm88&&&&&&&;*MMM88&&&&&&&&; |\___/| /\___/\ ) ( ) ~( . ‘ =\ /= =\~ /= )===( ) ~ ( / \ / \ | | ) ~ ( / \ / ~ \ \ / \~ ~/ _/\_/\_/\__ _/_/\_/\__~__/_/\_/\_/\_/\_/\_ | | | |) )| | | (( | | | | | | | | | | ( ( | | | |\\| | | | | | | | | | |)_) | | |))| | | | | | | | | | | | | | |\)| | | | | | | | | | | | | | | | | | | | | |
*,MMM8&&&;。*mm88&&&&&; .mm88&&&&&&&; |\___/| /\___/\ ) ( ) ~( . ‘ =\ /= =\~ /= )===( ) ~ ( / \ / \ | | ) ~ ( / \ / ~ \ \ / \~ ~/ _/\_/\_/\__ _/_/\_/\__~__/_/\_/\_/\_/\_/\_ | | | |) )| | | (( | | | | | | | | | | ( ( | | | |\\| | | | | | | | | | |)_) | | |))| | | | | | | | | | | | | | |\)| | | | | | | | | | | | | | | | | | | | | |
mm88&&&&&; .mm88&&&&&&&; |\___/| /\___/\ ) ( ) ~( . ‘ =\ /= =\~ /= )===( ) ~ ( / \ / \ | | ) ~ ( / \ / ~ \ \ / \~ ~/ _/\_/\_/\__ _/_/\_/\__~__/_/\_/\_/\_/\_/\_ | | | |) )| | | (( | | | | | | | | | | ( ( | | | |\\| | | | | | | | | | |)_) | | |))| | | | | | | | | | | | | | |\)| | | | | | | | | | | | | | | | | | | | | |
mm88&&&&&&&; |\___/| /\___/\ ) ( ) ~( . ‘ =\ /= =\~ /= )===( ) ~ ( / \ / \ | | ) ~ ( / \ / ~ \ \ / \~ ~/ _/\_/\_/\__ _/_/\_/\__~__/_/\_/\_/\_/\_/\_ | | | |) )| | | (( | | | | | | | | | | ( ( | | | |\\| | | | | | | | | | |)_) | | |))| | | | | | | | | | | | | | |\)| | | | | | | | | | | | | | | | | | | | | |
__________________|晚安,月亮| \ ============== | / \/ |\___/| /\___/\ ) ( ) ~( . ‘ =\ /= =\~ /= )===( ) ~ ( / \ / \ | | ) ~ ( / \ / ~ \ \ / \~ ~/ _/\_/\_/\__ _/_/\_/\__~__/_/\_/\_/\_/\_/\_ | | | |) )| | | (( | | | | | | | | | | ( ( | | | |\\| | | | | | | | | | |)_) | | |))| | | | | | | | | | | | | | |\)| | | | | | | | | | | | | | | | | | | | | |
如果你很不幸地让backstop窗口被调用了九次以上,那么它会在动画到达终点后向后运行,然后重新开始。以下是完整的动画:
当出了什么问题,可以看到逆止窗口时,我们会说我们看到了猫。
这些猫在附近逗留了一段时间,直到表演团队要求我们移除它们。你看,ASCII艺术使用单空间字体,而cats屏幕是启动序列中唯一使用单空间字体的部分。绘制逆止窗口迫使光栅化一种全新的字体,这需要花费时间和内存来完成一些原本不应该出现的东西。
更新:我注意到猫的照片似乎是基于琼·斯塔克的作品。