Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Пн дек 17, 2018 10:42 pm

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 99 сообщений ]  На страницу Пред. 1 2 3 4 57 След.
Автор Сообщение
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Пн сен 07, 2009 6:09 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 784
Исправил глюк с вылетом программы, теперь вроди работает нормально.
Документацию обновлю позже.


Вложения:
vectors_090607b.7z [11.01 КБ]
96 скачиваний
Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Ср сен 09, 2009 3:27 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 784
Заметил, что все программы использующие функцию рисующую кривую Безье из библиотеки не работают. А в эмуляторе KlbrInWin все функции работают. Что означает ошибка:
Page fault - Недостаток страницы


Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Ср сен 09, 2009 5:04 pm 
Возможно указатель вышел за пределы выделенного участка памяти.


Вернуться к началу
   
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Ср сен 09, 2009 10:08 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт мар 01, 2007 7:57 pm
Сообщения: 835
У меня всё кроме самолёта не работает.

_________________
Всех выше те, кто доброе творят,
И за дела добра не ждут наград,
Всем жертвуют для страждущих людей,
Не думая о выгоде своей.


Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Ср сен 09, 2009 10:36 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 784
Атауальпа писал(а):
У меня всё кроме самолёта не работает

Так и есть, дело в том что там пока не используются функции рисования Безье.
Недавно вычислил "глючное" место. Оказалось, что первая точка по координате Y имеет очень большое значение. Потому как сказал Mario, программа вылазила на чужую память. В эмуляторе этого глюка не заметно, т. к. WinAPI функции при неправильных координатах не вылетают (что с одной стороны хорошо, а с другой плохо: нельзя отлаживать программы если не видно глюков, тормозится рисование).
В общем проверял несколько раз алгоритм, и устранил глюк добавлением в функцию всего 1-й строки кода:
Код:
finit
:o


Вложения:
Комментарий к файлу: с этим файлом работает
vectors.obj [2.73 КБ]
87 скачиваний
Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Пт сен 11, 2009 11:03 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт мар 01, 2007 7:57 pm
Сообщения: 835
Теперь работает, но со странным глюком.
Когда запущены часы или самолёт, во всех других приложениях не работают клавиатура и мышь! Я не могу ничего сделать ни с каким другим окном, пока не закрою демку. По клавише Win запускается меню, но ни один из его пунктов ничего не запускает ни мышью, ни клавиатурой.

_________________
Всех выше те, кто доброе творят,
И за дела добра не ждут наград,
Всем жертвуют для страждущих людей,
Не думая о выгоде своей.


Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Вт сен 15, 2009 1:57 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 784
немного обновил библиотеку:
1) работает масштабирование контуров (раньше масштаб всегда был = 1.0, даже если на входе подавалось другое число)
2) добавил функцию вывода векторного шрифта (в своем формате, хотелось-бы сделать поддержку стандартных, но до этого пока наверное очень далеко)
---
В примерах самолет и часы пока не нашел как устранить проблемы связанные с таймером.
В общем изменений не много.


Вложения:
vectors_090915.7z [12.21 КБ]
86 скачиваний
Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Чт сен 17, 2009 7:18 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 784
версия 17.09.09:
1) вызов функции vect_conv_cont делается перед прорисовкой контуров автоматически (это упрощает написание программ)
2) изменен способ задания размера текста, и сама функция вывода текста доработана (символ 13 работает как перевод строки)
из недостатков:
1) пока шрифт не в отдельном файле
2) в шрифте есть не все символы


Вложения:
vectors_090917.7z [13.97 КБ]
85 скачиваний
Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Чт сен 17, 2009 8:48 pm 
Самолет убил систему запущенную под Qemu. Я думал, что такое невозможно. :mrgreen:

Итак ошибки:
1) samolot.asm
Код:
draw_window:
  push eax ebx ecx edx
  mcall 12,1

  xor eax,eax
  mov ebx,50*65536+320
  mov ecx,30*65536+250
  mov edx,0
  or  edx,0x33000000
  mov edi,hed
  mcall

  mov eax,4 ;рисование текста
  mov ebx,5*65536+5
  mov ecx,0xffff00
  or  ecx,0x80000000
  mov edx,txtInfo
  mcall

  call draw_objects

  mcall 12,1
  pop edx ecx ebx eax
  ret


2) clock.asm
Код:
draw_window:
  push eax ebx ecx edx
  mcall 12,1

  xor eax,eax
  mov ebx,50*65536+320
  mov ecx,30*65536+250
  mov edx,0+0x33000000
  mov edi,hed
  mcall

  mov eax,4 ;рисование текста
  mov ebx,5*65536+5
  mov ecx,0xffff00
  or  ecx,0x80000000
  mov edx,txtInfo
  mcall

  call draw_objects

  mcall 12,1
  pop edx ecx ebx eax
  ret


Вопрос на засыпку кто видит ошибки? Я вижу, но не скажу.

Как там было на bash.org.ru:
Цитата:
xxx: Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд.


Вернуться к началу
   
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Чт сен 17, 2009 8:55 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пн ноя 28, 2005 8:00 pm
Сообщения: 1601
Mario79 писал(а):
Как там было на bash.org.ru:
Цитата:
xxx: Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд.

Распространённый-то он распространённый, но это не влияет на тот факт, что этот способ не работает (неоднократно проверял... пришлось писать отладчик).
P.S. Да, а копипастить при программировании вообще не стоит. Хотя в данном случае скорее имеет место быть банальная опечатка.

_________________
Ушёл к умным, знающим и культурным людям.


Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Чт сен 17, 2009 9:01 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пт янв 27, 2006 3:06 pm
Сообщения: 1071
Видим и намекнем. :) Незачем программам по 2 окна.


Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Чт сен 17, 2009 9:04 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 784
кажись я понял в чем юмор:
1)
Код:
push eax ebx ecx edx ;в начале функции
...
mov edi,hed ;в нутри функции, хотя edi не в стеке
2)
Код:
mcall 12,1 ;в начале
...
mcall 12,1 ;в конце, должно быть mcall 12,2


Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Чт сен 17, 2009 9:06 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пт янв 27, 2006 3:06 pm
Сообщения: 1071
первое не критично, если по ходу программы ты в edi не хранишь нечто важное, хотя в твоем варианте, наверное проще написать pushad/popad


Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Сб сен 19, 2009 11:14 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 784
Исправил ошибки в примерах, немного изменил 2 функции в библиотеке. Самое главное перенес данные по шрифту в отдельный файл. Теперь можно создавать файлы шрифтов, не сидящие внутри kex файла.
Если разобрать формат ttf, то думаю можно сделать прогрмму для конвертирования этих файлов, в таком случае не нужно будет создавать свои шрифты с 0 (тем более что я так до конца не заполнил все символы).


Вложения:
vectors_090919.7z [15.48 КБ]
91 скачивание
Вернуться к началу
 Заголовок сообщения: Re: Векторные функции
СообщениеДобавлено: Сб сен 19, 2009 11:51 am 
Не в сети
Kernel Optimizer
Аватара пользователя

Зарегистрирован: Пн янв 16, 2006 7:58 pm
Сообщения: 657
Пример с отображением шрифта не очень удачный т.к. при непосредственном выводе без буферизации в ОЗУ глифов медленно. Конечно, лучше разобраться с существующими форматами шрифтов (хотя бы одним). У меня нет достаточно времени, что бы этим заняться...


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 99 сообщений ]  На страницу Пред. 1 2 3 4 57 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB