Возникли проблемы при инициализации SDL_Surface - PullRequest
2 голосов
/ 03 февраля 2009

Я пытаюсь настроить что-то в SDL [на C ++], где я могу нарисовать прямоугольник размером в один пиксель. В моем коде все работает, кроме моего второго SDL_Surface, называемого прямоугольником. У меня проблемы с инициализацией. Вот строка, где я пытаюсь ее инициализировать:

rectangle = SDL_Surface(SDL_DOUBLEBUF | SDL_HWACCEL | 
                        SDL_SRCALPHA  | SDL_HWSURFACE,
                        screen->format, 1, 1, 16, NULL, clip_rect, 1);

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

1 Ответ

4 голосов
/ 04 февраля 2009

Я думаю, что основная проблема, с которой вы столкнулись, в том, что нет функции SDL_Surface. Чтобы создать новую поверхность, используйте SDL_CreateRGBSurface. Обязательно вызовите SDL_FreeSurface на возвращенной поверхности после того, как с ней покончено, иначе у вас будет утечка памяти.

Кроме того, я не уверен, почему вы создаете поверхность для прямоугольника. Более чистый способ рисования одноцветного прямоугольника - SDL_FillRect без создания новой поверхности.

...