A2 & Oberon GOOGLE trans to English      Помощь      Поиск      Пользователи  Файловый архив


 Страниц (1): [1]   

> Описание: Враппер для работы с SDL из под AOS
MaDzi
Отправлено: 05 Декабря, 2010 - 22:29:43
Post Id



Member


Покинул форум
Сообщений всего: 102
Дата рег-ции: Дек. 2008  
Откуда: Саратов
Репутация: 0




Хочу использовать Active Oberon для написания кросс-приложений с использованием графической библиотеки SDL (может-быть перепишу подсистему Display в дальнейшем для Unix, Win32 AOS, чтобы ускорить графику). Собственно заткнулся на подсистеме событий. Дело в том, что в оригинальной C версии существует некоторое множество событий, которые объединены в union или вариантную запись (record case integer of). Соответственно, в АО хотелось бы использовать наследуемые записи, но при этом возникает проблема с памятью. В настоящий момент решаю её через врапер (см вложение), но есть некоторые проблемы с сообщениями от клавиатуры.
Буду рад вашей критике, советам и предложениям. В особенности что я напутал с сообщениями от клавиш.
Скачать файл: SDL.zip
Скачан раз: 212
 
 Top
BohdanT Администратор
Отправлено: 06 Декабря, 2010 - 17:30:05
Post Id



Super Member


Покинул форум
Сообщений всего: 606
Дата рег-ции: Июль 2008  
Откуда: Киев, Украина
Репутация: 2




MaDzi пишет:
Соответственно, в АО хотелось бы использовать наследуемые записи,

А какая именно проблема с памятью?
 
 Top
MaDzi
Отправлено: 06 Декабря, 2010 - 18:15:27
Post Id



Member


Покинул форум
Сообщений всего: 102
Дата рег-ции: Дек. 2008  
Откуда: Саратов
Репутация: 0




Проблема с памятью в том, что невозможно предугадать буфер какой длины нужно передать в процедуру SDL_PollEvent (event : pSDL_Event);
Поэтому приходится передавать просто некоторую область данных DummyEvent

Собственно проблема заключается в правильном восстановлении данных из этой области в программу. Сейчас это делается путём создания новой динамической переменной, соответствующего типа, и правильным заполнением её полей. Для всех других типов записей заполнение происходит "относительно" правильно (дело в знаковом бите и неправильном порядке следования байт), но для клавиатуры, как мне кажется, данные буфера не соответствуют ожидаемым. (например, имя клавиши должно соответствовать нажатой клавише). Кроме того, получается, что процедурой-обёрткой порождается огромное количество динамического мусора, который хотелось бы избежать.

Как? - пока не знаю.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0, скрытых: 0)
« Графические библиотеки »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Locations of visitors to this page
[Valid RSS]

RSS

Valid CSS!


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0121]     [ Gzipped ]