SDL: сделать существующую поверхность прозрачной / удалить все данные пикселей

0

У меня есть прозрачная поверхность в SDL, эта поверхность содержит пиксельные данные. Теперь мне нужно "очистить" эту поверхность.

Есть ли способ очистить поверхность, поэтому она полностью прозрачна (так что я могу нарисовать на ней новые вещи?). Единственное, что я нашел, это создать совершенно новую поверхность, но я бы хотел избежать этого по нескольким причинам.

Теги:
sdl
sdl-1.2

1 ответ

0
Лучший ответ

Какую версию SDL вы используете (1.2 или 2.0).

Вы можете "очистить" поверхность, установив все пиксели на определенный цвет (см. Memset и элемент пикселей из SDL_Surface). Но вам не нужно делать его прозрачным, чтобы нарисовать его. Если вы нанесете на него другую поверхность, все пиксели должны изменить свой цвет. Можете ли вы предоставить код os с кодом?

  • 0
    Извините, я забыл версию SDL. Я в настоящее время использую 1.2. Дело в том, что я перетаскиваю другие поверхности перед этой на экране, эта действует как «наложение». Так что оно должно быть прозрачным, чтобы другие вещи под ним все еще были видны.
  • 0
    Если он уже находится на экране, вам придется перерисовать эту часть. Если вы хотите, чтобы затрагивалась только эта часть, вы можете как-то заблокировать ее (я не знаю, что это была за функция; может быть, SDL_SetClipRect). Если нет, вы используете memset или SLD_FillRect (который должен быть медленнее чем memset).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню