Size: a a a

pro.graphon (and gamedev)

2020 June 26

AB

Alexander Busarov in pro.graphon (and gamedev)
@disba1ancer ааа, я нашел как обхитрить эту систему!
источник

АК

Антон Ковалев... in pro.graphon (and gamedev)
Alexander Busarov
но WM_PAINT один фиг не обрабатывается пока я зажал кнопку в заголовке окна
создание таймер и при ресайзе при тике таймера рисуем картинку
источник

АК

Антон Ковалев... in pro.graphon (and gamedev)
тут аналогично
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
Антон Ковалев
тут аналогично
не работает такое
источник

d

disba1ancer in pro.graphon (and gamedev)
Антон Ковалев
создание таймер и при ресайзе при тике таймера рисуем картинку
ты сначала попробуй, только кейс у нас не в ресайзе
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
@disba1ancer
procedure TMyThread.Execute;
begin
 inherited;
 while not Terminated do
 begin
   InvalidateRect(FWnd, nil, false);
   UpdateWindow(FWnd);
   Sleep(40);
 end;
end;
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
короче вся соль тут в UpdateWindow
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
это функция потока если что
источник

d

disba1ancer in pro.graphon (and gamedev)
аааааа, мы синхронизируемся на очереди
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
да, мы заставляем обработать это добро форсированно, мимо оконного цикла
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
забавный трюк кстати, пожалуй возьму себе на вооружение
источник

d

disba1ancer in pro.graphon (and gamedev)
Alexander Busarov
да, мы заставляем обработать это добро форсированно, мимо оконного цикла
точнее в недрах getmessage peekmessage
источник

АК

Антон Ковалев... in pro.graphon (and gamedev)
Кстати, @mrshoor, на маке у нас проблема. Нам нужно отправлять эвенты в поток окна, ибо VST стандарт требует вызова функции только в потоке окна. На винде это делает через MsgProc, а на маке вот не знаем как сделать.
источник

d

disba1ancer in pro.graphon (and gamedev)
ибо сама отрисовка идёт всё равно внутри UI потока
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
а на маке та же проблема?
источник

АК

Антон Ковалев... in pro.graphon (and gamedev)
Alexander Busarov
а на маке та же проблема?
да
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
забавно, что ОС разные, а проблемы одни и те же
источник

АК

Антон Ковалев... in pro.graphon (and gamedev)
macOS сама создает поток окна, и вот тут уже мы бессильны
источник

d

disba1ancer in pro.graphon (and gamedev)
Антон Ковалев
Кстати, @mrshoor, на маке у нас проблема. Нам нужно отправлять эвенты в поток окна, ибо VST стандарт требует вызова функции только в потоке окна. На винде это делает через MsgProc, а на маке вот не знаем как сделать.
а в чём именно проблема? я что-то не вкурил
источник

d

disba1ancer in pro.graphon (and gamedev)
Антон Ковалев
macOS сама создает поток окна, и вот тут уже мы бессильны
это как?
источник