gpt4 book ai didi

OpenGL 和 SDL,在保持内部分辨率不变的同时调整窗口大小?

转载 作者:行者123 更新时间:2023-12-04 06:16:11 25 4
gpt4 key购买 nike

我正在 OpenGL 中做一个游戏,并使用 SDL 来管理窗口、设置图标等等。
现在我已将场景渲染设置为帧缓冲区,我想知道是否可以在保持起始 GL 设置的同时调整 SDL 窗口的大小(我正在尝试模拟精确的分辨率,因此窗口大小调整是将帧缓冲区重新缩放到窗口大小)

我尝试为 SDL 窗口提供两倍于我传递给 glortho 的分辨率的分辨率,但它产生了意想不到的结果©。这是可能的,还是我需要一直将我的工作分辨率调整为屏幕分辨率?
我使用此代码来初始化视频

SDL_SetVideoMode(XRES, YRES, bpp, SDL_OPENGL | SDL_HWPALETTE);
gl_init(XRES,YRES);

在 gl_init 中,我将 glortho 设置为 glOrtho(0, width, 0, height, -1, 1),然后将帧缓冲区“空白”纹理的大小也设置为宽度和高度。

当函数被调用时,一切都很好。但如果我尝试类似的东西
SDL_SetVideoMode(XRES*2, YRES*2, bpp, SDL_OPENGL | SDL_HWPALETTE);
gl_init(XRES,YRES);

我发现输出位于 X 轴最左侧和 Y 轴中间的某个位置,而不是获得我预期的结果(缩放输出),就像 GL 尺寸甚至比屏幕更大,其余部分被裁剪出去。有什么我想念的吗?

最佳答案

尝试简单地将 FBO 纹理大小设置为窗口大小的 1/4(其边缘长度的 1/2),然后将 FBO 的颜色缓冲区纹理渲染到整个 SDL 窗口。

关于OpenGL 和 SDL,在保持内部分辨率不变的同时调整窗口大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7211809/

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