Я портирую действительно старую игру AWT на действительно нахальное новое устройство.
В игре есть множество проблем, в том числе очень слабый подход к безопасности потоков: игровой движокпытаясь нарисовать прямо на экране в его движке, используя графический контекст, полученный из потока пользовательского интерфейса.Это не работает на устройстве.
Мне удалось взломать его на работу, заставив поток движка рисовать в буфере за пределами экрана и затем периодически вызывать поток пользовательского интерфейса repaint () длякомпонент отображения и компонент отображения сбрасывают буфер на экран, но производительность отстой - неудивительно, учитывая все переключатели контекста и двойную буферизацию.
На самом деле я не особенно хорошо осведомленный программист AWT;это достаточно ненавистно, что я избегал этого до сих пор.Но эта проблема - желание нарисовать поток двигателя на экране - должна быть распространенной.Кто-нибудь знает какие-нибудь приличные стратегии (и, желательно, пример кода!), Как сделать это безопасным образом, чтобы выжать из системы максимально возможную производительность?
(Что мне особенно нравится, так этобезопасный ярлык, позволяющий потоку движка напрямую визуализироваться в графическом контексте экрана, когда он чувствует себя готовым к этому, и поэтому избегать необходимости сообщать потоку пользовательского интерфейса о необходимости перерисовки. Это позволит мне удалить целый слой двойной буферизацииНо я не знаю, возможно ли такое ...)
Это все на PBP 1.1.2 - да, это не полная Java и не честный MidP ...