![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
TarasBer |
![]()
Сообщение
#1
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Я не понял, как именно надо использовать пакет System.Storage_Elements
Итак, задача такая, у меня есть тип
У него есть метод:
Последняя функция не компилируется. Что надо сделать, чтобы она скомпилировалась? Кстати, здесь мне очень важна скорость, с точностью до лишних тактов и копирований чисел туда-сюда. -------------------- |
![]() ![]() |
-TarasBer- |
![]()
Сообщение
#2
|
Гость ![]() |
> Насколько я помню, CreateDIBSection своим четвертым параметром возвращает указатель на массив пикселей (а не на массив указателей на пиксели).
Да, поэтому надо указатель на пиксел передать по указателю. Двойной указатель получается. out-параметры в функциях, ага. > function To_PTColorArray is new Ada.Unchecked_Conversion (Win32.PVOID, PTColor_Array); Это же скомпилится в перекидывание из регистра в регистр, что при оптимизации вообще изчезнет, я так понимаю? И если возвращать сам пиксел, то тогда и отдельно надо писать процедуру установки цвета, а тогда
приведёт к тому, что адрес будет считаться дважды, вместо
А брать указатели на элементы массива в Аде нельзя, я так понял. Вообще, типичный пример цикла, ради которого я всё это обсуждаю:
Оптимизация очень важна тут. На Д7, к сожалению, много обращений к вершине стека, по регистрам хреново разруливает, правда, скорость меня устраивает в режиме 800х600 на селероне 600МГЦ. Да, я знаю, что умные дяди в таких случаях используют ОткрытыйГЛ и ПрямойХ, но тёплый ламповый софтрендер всё равно выглядит по другому и узнаваемо, для меня это важно. |
![]() ![]() |
![]() |
Текстовая версия | 22.07.2025 13:46 |