SDL 1.2.15扩展表面问题

时间:2014-09-13 19:46:24

标签: c++ sdl sdl-1.2

因此,当我通过操纵h和w成员使表面变大时,我最终得到了奇怪的结果 - 增加的空间充满了表面上已经存在的乱码版本。有什么方法我可以避免这个/清除增加的空间(将其设置为alpha)?

enter image description here

1 个答案:

答案 0 :(得分:2)

我只使用了SDL 2,但我想我知道,你的代码有什么问题。

表面的像素数据是一个简单的1D像素阵列。该数组的长度等于w*h。访问像素的方式如下:pixeldata[y * w + x]

这意味着,您不能只更改两个成员来更改曲面的尺寸。使用此表面时,它将导致对像素数据阵列的越界访问。

因此,如果要调整曲面大小,则应创建一个新曲面并将所需像素复制到曲面。

当然,可以手动调整大小,但你不应该在没有充分理由的情况下尝试这样做。