gpt4 book ai didi

c++ - 全屏模式下的Allegro颜色变化

转载 作者:行者123 更新时间:2023-11-30 04:24:52 25 4
gpt4 key购买 nike

我现在正在学习使用 allegro 库,在使用 set_gfx_mode 函数时,如果我将 GFX_AUTODETECT_FULLSCREEN 作为第一个参数,则在运行编译后的窗口时,窗口将全屏显示应用程序,但在运行大约第一秒后,所有颜色都会改变。使用任何其他图形模式不会发生这种情况,但在两台独立的机器上,颜色会在更改为全屏模式后立即发生变化。有没有其他人看到过这种情况?我根本找不到关于这个问题的任何讨论。

我正在为 visual studio 2010 和运行的 windows 7 使用预编译的 allegro 4.4.2 库。

最佳答案

Allegro 4 已经过时并且使用的 API 不再受到现代操作系统的很好支持。全屏模式会出现问题,尤其是在 8 位图形上。获得可靠全屏的最佳方式是尊重用户当前的桌面设置:

int w, h;
get_desktop_resolution(&w, &h);

set_color_depth(desktop_color_depth());
set_gfx_mode(GFX_AUTODETECT_FULLSCREEN, w, h, 0, 0);

然后您的应用程序将需要居中/缩放图形。这并没有那么难,只需将所有内容绘制到一个中间缓冲区,该缓冲区是您 native 游戏的宽度/高度,然后将其拉伸(stretch)到适当的屏幕尺寸。

总而言之,您真的应该学习 Allegro 5,因为它专为在当今的硬件和操作系统(包括 iOS 和 Android)上运行而设计。

关于c++ - 全屏模式下的Allegro颜色变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12470899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com