全屏形式和电子游戏有什么区别
Whats the difference between a full screen form and a video game?
如果我在visualstudio c++上创建一个表单,并使该表单与屏幕一样大,并覆盖所有内容,我可以创建一个全屏的表单。如果我按下windows键,启动菜单就会出现,我可以在我的上面运行任何其他程序。
如果我运行一款像《英雄联盟》这样的电子游戏,屏幕会出现故障,游戏会全屏播放。按windows键不会发生任何事情。你不可能在游戏上有任何东西,就像它在自己的环境中一样。
我并不是在寻找一个完整的答案或代码。只是我很想知道游戏设计师使用了什么不同的技术。
这两种技术本质上都是全屏,但有一个小区别:
-
大多数游戏使用的"真实"全屏模式被称为独占全屏,它授予游戏(或程序)对图形输出的独占控制权,因此它能够控制分辨率、刷新率、垂直同步等。
-
您自己创建的全屏窗口是协作全屏(通常称为无边界窗口),它仍然允许其他程序与您的窗口重叠。诸如分辨率、刷新率等问题仍然由覆盖窗口系统来处理。
这两种技术在许多现代游戏中都可用,如《英雄联盟》。
但是,您的实际Windows密钥被阻止是不同的。实际的全屏模式对此没有任何影响。相反,程序必须"吃掉"窗口系统发送的按键事件。如果它被传递,那么它仍然由系统处理(程序的工作方式)。如果它被吃掉了(即没有归还),那么你会得到你在英雄联盟中看到的行为。
相关文章:
- 向量 <int> a {N, 0} 和 int arr a[N] = {0} 的时间复杂度有什么区别
- 在 .h 文件中的类中声明静态变量和在.cpp文件中声明"global"变量有什么区别
- 我是C++编程的新手,这些代码之间有什么区别,我应该使用哪一个
- 返回常量对象引用 (getter) 和仅返回字符串有什么区别?
- Qt:remove() 和 rmdir() 有什么区别
- 这 4 个 lambda 表达式之间有什么区别?
- 将向量作为类>(值)<向量启动和向量<类>[值]有什么区别
- typedef 枚举和枚举类有什么区别?
- &C::c 和 &(C::c) 有什么区别?
- ascii 和 unicode 在处理级别有什么区别吗?
- C 中的常量限定符和 C++ 中的常量限定符有什么区别?
- "ABC" 和 "ABC" ) 在C++中有什么区别?
- 空指针常量 (nullptr)、空指针值和空成员指针值之间有什么区别?
- 引用捕获和在 lambda 中通过引用发送参数有什么区别 (C++)
- 两种访问I2C总线的方法有什么区别?
- 两种模板示例有什么区别?
- 这两种C++语法之间有什么区别?
- lua 5.0.2 模块和 5.3.5 有什么区别?
- C++中"typedef"、"using"、"namespace"和"using namespace"有什么区别?
- std::enable_if 和 std::enable_if_t 有什么区别?