Что такое блит в SDL? - PullRequest
       50

Что такое блит в SDL?

18 голосов
/ 13 сентября 2010

В вики SDL написано:

Используйте эту функцию, чтобы выполнить быстрый блиц с поверхности источника на поверхность назначения.

Однако это не сильно мне помогает.

Что означает термин блистер поверхности в этом контексте?

Ответы [ 4 ]

19 голосов
/ 13 сентября 2010

В основном это означает копирование изображения с одной поверхности на другую - возможно, обрезанное и смещенное.

13 голосов
/ 24 января 2014

Блиттинг означает передача блока с битовой границей , как определено в Википедии, или Передача информации о блоке , хорошо известная среди разработчиков Pygame.Предположим, у вас есть поверхность (ваш экран).И вы хотели бы нарисовать круг на экране.Итак, что вы хотите сделать, это нарисовать круг и перенести блок круга буфера в экранный буфер, этот процесс называется «Blitting».Вы можете продолжить и узнать больше о Blit здесь.

1 голос
/ 09 октября 2017

Копирует память из одного места в памяти (источник) в другое место в памяти (место назначения).

Например.Он может копировать пиксели из одного растрового изображения в другое, из растрового изображения в текстуру или любого из вышеперечисленного на поверхность экрана или поверхность заднего буфера экрана.

Скажем, у вас есть изображение / плитка, которую вы хотите отобразить на экране.Вы должны выполнить «блиц» для копирования памяти, составляющей изображение, в память, которая используется на экране.

По сути, это вызов функции, очень похожей на memcpy (), которая копирует байтыуказывается как источник по одному для байтов, указанных в качестве пункта назначения.

1 голос

Официальный пример кода

Интуитивно, это означает «нарисовать спрайт поверх другой поверхности».

Эта операция может быть ускорена графическим процессором с помощью SDL_Texture + SDL_RenderCopy.

Взгляните на http://hg.libsdl.org/SDL/file/e12c38730512/test/testsprite2.c для примера, в частности комментария:

/* Blit the sprite onto the screen */
SDL_RenderCopy(renderer, sprite, NULL, position);

, который прямо говорит, что SDL_RenderCopy - это способ блистать.

В этом примере текстура создается и отправляется в память графического процессора только один раз, и с тех пор она эффективно используется повторно, см. Также: Разница между поверхностью и текстурой (SDL / общая информация)

Когда я запускаю этот пример в Ubuntu 15.10, nvidia-settings говорит, что использование графического процессора достигает 100%, и я получаю гораздо более высокую частоту кадров, чем при выводе пикселя за пикселем на экран, поэтому ускоряется с помощью графического процессора.

...