0
所以当我通过操作h和w成员来创建一个更大的表面时,我会得到奇怪的结果 - 增加的空间充满了表面上已经存在的乱码版本。有什么方法可以避免/清除增加的空间(将其设置为alpha)?SDL 1.2.15表面问题的延伸
所以当我通过操作h和w成员来创建一个更大的表面时,我会得到奇怪的结果 - 增加的空间充满了表面上已经存在的乱码版本。有什么方法可以避免/清除增加的空间(将其设置为alpha)?SDL 1.2.15表面问题的延伸
我只用SDL 2,但我想我知道,什么你的代码错误。
表面的像素数据是一个简单的一维像素数组。该阵列的长度等于w*h
。访问像素是这样实现的:pixeldata[y * w + x]
。
这意味着,您不能只更改两个成员来更改曲面的尺寸。当使用这个表面时,它将导致对像素数据数组的越界访问。
所以,如果你想调整一个表面的大小,你应该创建一个新的表面并将所需的像素复制到它。
当然,可以手动调整它的大小,但是您不应该在没有充分理由的情况下尝试这样做。
也许你可以将表面数据复制到一个新创建的空白表面,这是你需要的尺寸 – Zammalad 2014-09-13 20:30:44