История изменений
Исправление gloomy, (текущая версия) :
На данный момент это не правда, пауза там 1 милисекунду и нужна она для того чтобы отработала функция внутри WaitEvent принимающая параметр timeout. Таким образом ты либо явно задаёшь -1 и ничего не ждёшь, либо задаёшь timeout и ждёшь 1ms * timeout времени в течении.
Вы оба правы. В более старых версиях SDL2 там был просто блок, который даже при задании -1 в качестве таймаута – крутил цикл с PeepEvents() и SDL_Delay(10), но да… в Linux это nanosleep так что даже в таком варианте - загрузка CPU близка к 0. На десктопах, по кр. мере это абсолютно не критично.
Но в новых версиях SDL2 уже не так, кроме этого цикла там может вызываться платформозависмые ветки. Что приводит к вызову, например, X11_WaitEventTimeout на X11, а там внутри уже поинтереснее :) X11_PollEvent, X11_DispatchEvent.
Впрочем, в моем движке мне пришлось перейти на примитивную схему даже с новыми SDL, так как мне нужна была повышенная точность таймаутов (для контроля fps).
Лично я альтернативы SDL2 не вижу… (Просто тоже активно его использую, в том числе и в своём собственном текстовом редакторе) :)
Идея lite хорошая, там микроядро на C и большая часть на Lua. Другое дело, что это уже форк и от простоты там уже (возможно) мало что осталось. Не смотрел.
Исходная версия gloomy, :
На данный момент это не правда, пауза там 1 милисекунду и нужна она для того чтобы отработала функция внутри WaitEvent принимающая параметр timeout. Таким образом ты либо явно задаёшь -1 и ничего не ждёшь, либо задаёшь timeout и ждёшь 1ms * timeout времени в течении.
Вы оба правы. В более старых версиях SDL2 там был просто блок, который даже при задании -1 в качестве таймаута – крутил цикл с PeepEvents() и SDL_Delay(10), но да… в Linux это nanosleep так что даже в таком варианте - загрузка CPU близка к 0. На десктопах, по кр. мере это абсолютно не критично.
Но в новых версиях SDL2 уже не так, кроме этого цикла там может вызываться платформозависмые ветки. Что приводит к вызову, например, X11_WaitEventTimeout на X11, а там внутри уже поинтереснее :) X11_PollEvent, X11_DispatchEvent.
Впрочем, в моем редакторе мне пришлось перейти на примитивную схему даже с новыми SDL, так как мне нужна была повышенная точность таймаутов (для контроля fps).
Лично я альтернативы SDL2 не вижу… (Просто тоже активно его использую, в том числе и в своём собственном текстовом редакторе) :)
Идея lite хорошая, там микроядро на C и большая часть на Lua. Другое дело, что это уже форк и от простоты там уже (возможно) мало что осталось. Не смотрел.