В SDL wiki говорится:
Используйте эту функцию для быстрого перехода с исходной поверхности на целевую поверхность.
Однако это не очень помогает мне.
Что означает в этом контексте термин биение конца поверхности?
В SDL wiki говорится:
Используйте эту функцию для быстрого перехода с исходной поверхности на целевую поверхность.
Однако это не очень помогает мне.
Что означает в этом контексте термин биение конца поверхности?
В основном это означает копирование изображения с одной поверхности на другую - возможно, обрезанное и сдвинутое.
Blitting означает бит-пограничный блок передачи, как определено в Википедии, или Блокировка передачи информации, хорошо известная среди разработчиков Pygame. Предположим, что у вас есть поверхность (ваш экран). И вы хотите нарисовать круг на экране. Итак, что вы хотите сделать, нарисуйте круг и перенесите блок окружности буфера в буфер экрана, этот процесс называется "Blitting". Вы можете продолжить и прочитать больше о Blit здесь.
Он копирует память из одного места в памяти (источник) в другое место в памяти (место назначения).
Eg. Он может копировать пиксели из одного растрового изображения в другое, от растрового изображения до текстуры или любого из вышеперечисленного на поверхность экрана или на обратную буферную поверхность экрана.
Скажем, у вас есть изображение/плитка, которую вы хотите отобразить на экране. Вы должны выполнить "blit", чтобы скопировать память, составляющую изображение, в память, которая используется на экране.
По сути, он вызывает функцию, очень похожую на memcpy(), которая копирует байты, указанные в качестве источника один за другим, в байты, указанные в качестве адресата.
Пример кода
Интуитивно, это означает "нарисовать спрайт поверх другой поверхности".
Эту операцию можно ускорить с помощью 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
- это способ blit.
В этом примере текстура создается и отправляется в память графического процессора только один раз, и с этого момента она эффективно используется повторно, см. также: Разница между поверхностью и текстурой (SDL/общий)
Когда я запускаю этот пример в Ubuntu 15.10, nvidia-settings
говорит, что использование графического процессора идет на 100%, и я получаю гораздо более высокий FPS, чем за счет рисования пикселя по экрану, поэтому он ускоряется. p >