SDL 改变视口的渲染大小,独立于窗口

Posted

技术标签:

【中文标题】SDL 改变视口的渲染大小,独立于窗口【英文标题】:SDL change rendering size of viewport independent of window 【发布时间】:2017-10-03 06:16:39 【问题描述】:

我希望能够将其设置为 SDL 中的 1 个像素为 20x20 像素。如果我使用的是原始 OpenGL,我只需将视口大小更改为具有相同窗口纵横比的较低分辨率。但是,似乎没有一种直接的方法可以使用 SDL2 做到这一点。

一种明显的方法是将缩放应用于绘制的所有像素和纹理,但是这需要大量额外的工作,我认为这是不必要的。

我怎样才能做到这一点?

【问题讨论】:

看看wiki.libsdl.org/SDL_RenderSetLogicalSize和wiki.libsdl.org/SDL_RenderSetScale @keltar 太棒了,正是我需要的。不知道我是如何在文档中错过的!如果你回答我会接受它:) 【参考方案1】:

您可以使用SDL_RenderSetLogicalSize 或SDL_RenderSetScale。这不会影响指针事件(鼠标/触摸/...),您可能需要手动将它们转换为虚拟分辨率。

【讨论】:

其实在2.0.8(不知道以前的版本是不是一样)鼠标和触摸事件被正确重新映射为渲染器的逻辑大小

以上是关于SDL 改变视口的渲染大小,独立于窗口的主要内容,如果未能解决你的问题,请参考以下文章

如何使 OpenGL 视口具有渲染到其中的 QML 项目的确切大小和位置?

text 使用视口设置样式 - 相对于浏览器大小的窗口(显示大小) - 真正为任何设备创建响应式体验(最小到

css 使用视口设置样式 - 相对于浏览器大小的窗口(显示大小) - 真正为任何设备创建响应式体验(最小到

渲染时如何使 SDL2 0,0 定位在窗口的中心?

解决QT 中使用SDL多次创建窗口不能渲染画面

解决QT 中使用SDL多次创建窗口不能渲染画面