SDL 1.2.15 расширение поверхности вопроса

Поэтому, когда я увеличиваю поверхность, манипулируя элементами h и w, я получаю странные результаты — добавленное пространство заполняется искаженными версиями того, что уже было на поверхности. Есть ли способ, которым я могу избежать этого / очистить добавленное пространство (установите его в альфа)?

введите описание изображения здесь

0

Решение

Я использовал только SDL 2, но я думаю, что знаю, что не так с вашим кодом.

Пиксельные данные поверхности — это простой одномерный массив пикселей. Длина этого массива равна w*h, Доступ к пикселю реализован так: pixeldata[y * w + x],

Это означает, что вы не можете просто изменить два элемента, чтобы изменить размеры поверхности. Это приведет к выходу за пределы массива данных пикселей при использовании этой поверхности.

Таким образом, если вы хотите изменить размер поверхности, вы должны создать новую поверхность и скопировать в нее необходимые пиксели.

Конечно, можно изменить размер вручную, но вы не должны пытаться делать это без веской причины.

2

Другие решения


По вопросам рекламы [email protected]