LINUX.ORG.RU

История изменений

Исправление 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. Другое дело, что это уже форк и от простоты там уже (возможно) мало что осталось. Не смотрел.