Почему SDL такой медленный и как я могу заставить его работать быстрее? - PullRequest
2 голосов
/ 07 октября 2010

У меня есть следующие настройки теста:

  • 1024 * 768 поверхность экрана, созданная с помощью SDL_HWSURFACE
  • Основной цикл состоит только из SDL_Flip () и простого счетчика FPS

Проблема:

Я получаю только 1000 FPS с этим. Что действительно очень мало, если учесть, что вы даже ничего не рисуете!

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

Что я хотел сделать:

Пиксельные эффекты / физически разрушаемая местность / игра объектов.

  • Почему SDL такой медленный? (Я три дня играл с небольшим примером теста и устранял каждую возможную ошибку, которую мог допустить, поэтому я совершенно уверен, что на самом деле это ошибка SDL)

  • Есть ли какие-нибудь секретные приемы, чтобы заставить его работать быстрее?

  • Существуют ли другие 2D API, которые обеспечивают простой и довольно быстрый однопиксельный доступ?

Ответы [ 2 ]

0 голосов
/ 25 октября 2010

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

0 голосов
/ 15 октября 2010

Доступ к пикселям очень медленный на аппаратных поверхностях (это аппаратное ограничение, а не ограничение sdl).

Вы можете попробовать SFML , чтобы он ускорял OpenGL.

...