История изменений
Исправление
Legioner,
(текущая версия)
:
Если по теме - я бы сделал микрофреймворк. Процедура инициализации создаёт окно (например на Gtk, если на C пишешь, можно и на Xlib). Остальное API идентично Borland CRT-шному, но рисует, соответственно, на этом окне.
Важное отличие в том, что в GUI-фреймворках принят событийный подход, т.е. пришло событие, очень быстро отработало и вернуло управление. А в Borland CRT простая последовательная модель выполнения. Нарисовали. Сделали Sleep. И т.д., поэтому тебе нужно будет все операции с рисованием делать в отдельном потоке, а главный поток уже будет последовательно выполняться, как в паскале. Ну и, соответственно, все команды на рисование должны высылаться GUI-потоку, который их будет подбирать и выполнять.
Осилишь это, причём так, чтобы код на Borland CRT компилировался на твоём фреймворке без изменений (кроме #include может быть), будет неплохой опыт. Но задача нетривиальная.
Исходная версия
Legioner,
:
Если по теме - я бы сделал микрофреймворк. Процедура инициализации создаёт окно (например на Gtk, если на C пишешь). Остальное API идентично Borland CRT-шному, но рисует, соответственно, на этом окне.
Важное отличие в том, что в GUI-фреймворках принят событийный подход, т.е. пришло событие, очень быстро отработало и вернуло управление. А в Borland CRT простая последовательная модель выполнения. Нарисовали. Сделали Sleep. И т.д., поэтому тебе нужно будет все операции с рисованием делать в отдельном потоке, а главный поток уже будет последовательно выполняться, как в паскале. Ну и, соответственно, все команды на рисование должны высылаться GUI-потоку, который их будет подбирать и выполнять.
Осилишь это, причём так, чтобы код на Borland CRT компилировался на твоём фреймворке без изменений (кроме #include может быть), будет неплохой опыт. Но задача нетривиальная.