Вопрос

Я пытаюсь настроить что-то в 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 без создания новой поверхности.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top