Возникли проблемы с инициализацией SDL_Surface.
-
21-08-2019 - |
Вопрос
Я пытаюсь настроить что-то в SDL [на C++], где я могу нарисовать прямоугольник размером в один пиксель.У меня все в моем коде работает, кроме моего второго прямоугольника, называемого SDL_Surface.У меня возникли проблемы с его инициализацией.Вот строка, в которой я пытаюсь его инициализировать:
rectangle = SDL_Surface(SDL_DOUBLEBUF | SDL_HWACCEL |
SDL_SRCALPHA | SDL_HWSURFACE,
screen->format, 1, 1, 16, NULL, clip_rect, 1);
Спасибо, что нашли время прочитать это и любые ответы, которые вы можете дать.
Решение
Я думаю, что основная проблема, с которой вы сталкиваетесь, заключается в том, что нет SDL_Surface
функция.Чтобы создать новую поверхность, используйте SDL_CreateRGBSurface
.Обязательно позвоните SDL_FreeSurface
на возвращенной поверхности после того, как вы закончите с этим, иначе произойдет утечка памяти.
Кроме того, я не уверен, почему вы создаете поверхность для прямоугольника.Более чистый способ рисования прямоугольника сплошного цвета: SDL_FillRect
без создания новой поверхности.