Золотые страницы форума GP2X Community
Новостной форум посвященный консолям GP2X
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   СудокуСудоку    Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Free Pascal, компилирующий под Caanoo
На страницу Пред.  1, 2
 
Начать новую тему   Ответить на тему    Список форумов GP2X Community -> Программирование: Консоли GP2X F100 F200 Wiz Caanoo
Предыдущая тема :: Следующая тема  
Автор Сообщение
Hahahoj

Site Admin


Пол: Пол:Мужской
Возраст: 50
Зарегистрирован: 08.10.2008
Сообщения: 1848

Группы: 
[ Команда сайта ]
[Модераторы Модераторы ]


СообщениеДобавлено: Чт Апр 28, 2011 4:43 pm    Заголовок сообщения: Ответить с цитатой

Всё ж таки еще раз отреквесчу собранный и готовый к простой инсталяции путем разархивации в папку тулчейн под Винду.
_________________
Просто Вовк
Вернуться к началу
Посмотреть профильHahahoj сейчас оффлайн  Отправить личное сообщение
BiSe Trojanov

Постоялец


Пол: Пол:Мужской
Возраст: 34
Зарегистрирован: 21.04.2011
Сообщения: 18
Откуда: Казань
Группы: Нет

СообщениеДобавлено: Пт Апр 29, 2011 2:59 am    Заголовок сообщения: Ответить с цитатой

Hahahoj писал(а):
Всё ж таки еще раз отреквесчу собранный и готовый к простой инсталяции путем разархивации в папку тулчейн под Винду.
Боюсь, у меня никаких нервов не хватит собирать компилятор для Винды. Как варианты:
1. Поставить виртуальную машину для Убунты. Например, VirtualBox или Virtual PC, на последней надо будет грузить Убунту в режиме консоли из-за некоторых несовместимостей видеокарты.
2. Воспользоваться тем пакетом, который собрал KidPaddle. Я возился с ним всего полчаса и вполне мог недоглядеть какую-нибудь маленькую загвоздку.
3. Имея MinGW, собрать bin-utils самому. Варианты с компиляцией на Винде я сразу отбросил до самого крайнего случая. Всё же в первую очередь весь этот софт пишется под gcc.
4. Извращения с cygwin'ом как это делает Ainu. Кстати, самый оптимальный вариант.

Хоть у меня главная система это Windows, но то, что писать программы под Caanoo я буду, сидя под Убунтой, я принял решение ещё до того, как ко мне прилетела покупка. Начнём хотя бы с отладки, без доступа к SSH консоли я бы помер. Я не приемлю каких-то левых драйверов под Виндой, за сим установить Caanoo так же как в Убунте у меня бы не получилось.
Вернуться к началу
Посмотреть профильBiSe Trojanov сейчас оффлайн  Отправить личное сообщение
BiSe Trojanov

Постоялец


Пол: Пол:Мужской
Возраст: 34
Зарегистрирован: 21.04.2011
Сообщения: 18
Откуда: Казань
Группы: Нет

СообщениеДобавлено: Вт Май 10, 2011 11:57 am    Заголовок сообщения: Ответить с цитатой

К сожалению подчинить sdl_ttf не удалось ни в какую. По невыясненной причине модуль работает сверх глючно. При рендеринге шрифтов в Surface постоянные плавающие "EAccessViolation : Access violation". Бороться с этим невозможно. Иногда всё рендерится, иногда просто падает. Причём упадёт или нет зависит от другого присутствующего кода.

Код:
SDL_Init(SDL_INIT_VIDEO or SDL_INIT_JOYSTICK);
 Surf:=SDL_SetVideoMode(320, 240, 16, SDL_FULLSCREEN or SDL_SWSURFACE);

 Joy   :=SDL_JoyStickopen(0);
 SDL_ShowCursor(0);//}

 TTF_Init();
 SystemFont :=TTF_OpenFont('./fonts/DejaVuSans.ttf', 12);
 writeln('d1 ',IntToHex(random(1),1),' ',IntToHex(uint32(SystemFont),8));
 color.r:=255;color.g:=0;color.b:=0;color.unused:=255;
 surf:=TTF_RenderUTF8_Blended(SystemFont,Pchar('Menu'),color);
 exit;
Может вполне заработать. А тот же самый код, где после "exit" написаны ещё пару строк, например,
Код:
fontColor:=StrToInt('$'+copy(s,5,2)+copy(s,3,2)+copy(s,1,2));
(то есть НЕДОСТЕЖИМЫй не исполняемый в любом случае код), то на строке с рендерингом падение. Ещё падение иногда бывает, если SDL_Init не вывести через writeln. Иногда падает, если не использовать IntToHex. Если бы сам не увидел, не поверил бы. В общем стабильности с этим модулем мне добиться не удалось. Узнать чем вызвано такое поведение не представляется возможным по крайней мере без дебаггера.

Все функции грузятся через динлиб, все функции выдают правильные значения, шрифты грузятся. От чего такие вещи понять не могу.
Вернуться к началу
Посмотреть профильBiSe Trojanov сейчас оффлайн  Отправить личное сообщение
Hahahoj

Site Admin


Пол: Пол:Мужской
Возраст: 50
Зарегистрирован: 08.10.2008
Сообщения: 1848

Группы: 
[ Команда сайта ]
[Модераторы Модераторы ]


СообщениеДобавлено: Вт Май 10, 2011 3:41 pm    Заголовок сообщения: Ответить с цитатой

Не раз испытывал тоже самое и на обычной брудшеловской сишной sdk-шке при использоании той же sdl_ttf для старых гп-х. Мне к примеру никогда не удавалось менять несколько раз подряд размер шрифта.
При этом была закономерность -на компе всё тоже нормально бегало.
Так что грабли действительно скорее всего в самой либе и лучше временно переключится на что-нибудь другое дав мозгам отдохнуть.

_________________
Просто Вовк
Вернуться к началу
Посмотреть профильHahahoj сейчас оффлайн  Отправить личное сообщение
BiSe Trojanov

Постоялец


Пол: Пол:Мужской
Возраст: 34
Зарегистрирован: 21.04.2011
Сообщения: 18
Откуда: Казань
Группы: Нет

СообщениеДобавлено: Вт Май 10, 2011 4:00 pm    Заголовок сообщения: Ответить с цитатой

Как такое вообще возможно? Каким образом на него действует код, который вообще недостежим. Судя по тому как меняется размер исполняемых файлов, Паскаль линкует разные библиотеки, ведь просто объявление в uses не заставляет компилятор добавлять весь код внутрь. То есть при использовании IntToHex, компилятор линкует SysUtils, но как влияет наличие дополнительного исходного кода на код, находящийся вообще за тридевять страниц от него? Если бы не я сам писал глючный код, то я бы посоветовал копать в сторону облегчения кода насколько это возможно, но это я уже сделал, легче просто некуда. Уже и разные режимы перепробовал (хотя с самого-самого начала программирования для Caanoo я на всякий случай отключил оптимизацию на корню), и стэк увеливал, ничего не помогает. Как код может зависеть от наличия/отсутствия другого кода, вот чего я не пойму. Я допущу, что это ошибка в sdl_ttf, но как она может быть настолько плавающей? Гейзенбаг как он есть.

Вижу несколько выходов:
1. Попробовать линковать ttf-функции статически. Сомневаюсь, что поможет
2. Напрямую разбираться с libfreetype.so, рендерить из неё в память хоть bmp-изображения текста (с альфа-каналом, разумеется), и это засовывать в Surface. Если дело не в libfreetype, а в sdl_ttf, то поможет
3. Пробовать качать исходники SDL и компилировать самому. Может быть в новой версии (а такая вообще есть?) ошибки исправлены
4. Писать свою реализацию TTF. Поможет в любом случае.

Hahahoj писал(а):
временно переключится на что-нибудь другое дав мозгам отдохнуть.
Задача не "заставить sdl_ttf работать", эта либа пусть хоть в аду горит, задача "найти легчайший (требующий минимум ресурсов) способ рендерить текст"
Вернуться к началу
Посмотреть профильBiSe Trojanov сейчас оффлайн  Отправить личное сообщение
Hahahoj

Site Admin


Пол: Пол:Мужской
Возраст: 50
Зарегистрирован: 08.10.2008
Сообщения: 1848

Группы: 
[ Команда сайта ]
[Модераторы Модераторы ]


СообщениеДобавлено: Вт Май 10, 2011 5:32 pm    Заголовок сообщения: Ответить с цитатой

Народ еще с прошлого поколения консолей пошел по пути написания своих либ рендерящих текст.
Причем Квазист, например, использует Bitmap Font Builder для построения битмапов шрифтов под пару нужных размеров, с которых потом печатает.
На gp32x.com мелькал еще один способ обхода глюков в работе либы от кого-то из гуру - на старте под нужный размер шрифта и сам фонт шрифт рендерится на поверхность в памяти, а потом печатается уже встроенными самопальными утилитами с этой поверхности не затрагивая глючную либу.

_________________
Просто Вовк
Вернуться к началу
Посмотреть профильHahahoj сейчас оффлайн  Отправить личное сообщение
BiSe Trojanov

Постоялец


Пол: Пол:Мужской
Возраст: 34
Зарегистрирован: 21.04.2011
Сообщения: 18
Откуда: Казань
Группы: Нет

СообщениеДобавлено: Вт Май 10, 2011 6:27 pm    Заголовок сообщения: Ответить с цитатой

Не, ну хранить в памяти плоскость на 2-5 МБ ОЗУ это конечно круто, благо оборудование позволяет, но это же костыль! Я так понимаю, у многих возникают эти проблемы? Если проблемы ещё с прошлых консолей, почему глюки переместились в это поколение для пущей совместимости?
Вернуться к началу
Посмотреть профильBiSe Trojanov сейчас оффлайн  Отправить личное сообщение
Hahahoj

Site Admin


Пол: Пол:Мужской
Возраст: 50
Зарегистрирован: 08.10.2008
Сообщения: 1848

Группы: 
[ Команда сайта ]
[Модераторы Модераторы ]


СообщениеДобавлено: Вт Май 10, 2011 8:19 pm    Заголовок сообщения: Ответить с цитатой

46 кб на 10 размера шрифтик. Вполне по карману. Плюс отрисовка много шустрее.
_________________
Просто Вовк
Вернуться к началу
Посмотреть профильHahahoj сейчас оффлайн  Отправить личное сообщение
Don Miguel

Профи



Возраст: 74
Зарегистрирован: 02.11.2008
Сообщения: 27

Группы: 
[Модераторы Модераторы ]


СообщениеДобавлено: Чт Июл 07, 2011 11:09 pm    Заголовок сообщения: Ответить с цитатой

Замечательно.
Очень жаль, что не было 10 лет назад того
Вернуться к началу
Посмотреть профильDon Miguel сейчас оффлайн  Отправить личное сообщение
quasist

Профи


Пол: Пол:Мужской
Возраст: 37
Зарегистрирован: 28.10.2008
Сообщения: 43

Группы: 
[Модераторы Модераторы ]


СообщениеДобавлено: Пн Авг 15, 2011 4:31 am    Заголовок сообщения: Ответить с цитатой

GPH говорило(мне), что у них на консоли старая версия SDL и, например, затрагивающая меня проблема непахания SetPosition(или как там её) в SDL_mixer именно из-за версии (причем передали ссылку на офф. changelog где это указано).
_________________
Вернуться к началу
Посмотреть профильquasist сейчас оффлайн  Отправить личное сообщение
PredatorGLScene

Новичок



Возраст: 40
Зарегистрирован: 21.10.2011
Сообщения: 1

Группы: Нет

СообщениеДобавлено: Пн Окт 31, 2011 7:09 pm    Заголовок сообщения: Ответить с цитатой

BiSe Trojanov
Здарова! Я смог скомпилить для андроида приложение и собрать пакет апк!
Вот статья http://wiki.glscene.info/index.php?title=Compiling_the_example_LCL-Android_Application/ru
я в основном сижу на glscene.ru ака Predator будут вопросы пиши!
Вернуться к началу
Посмотреть профильPredatorGLScene сейчас оффлайн  Отправить личное сообщение
SyDr

Постоялец


Пол: Пол:Мужской
Возраст: 32
Зарегистрирован: 18.08.2011
Сообщения: 29
Откуда: Беларусь
Группы: Нет

СообщениеДобавлено: Ср Ноя 02, 2011 7:30 am    Заголовок сообщения: Ответить с цитатой

Пытаюсь заставить работать FPC4ARM на винде. Вроде потихонечку идёт. Столкнулся, однако, с проблемой:
Код:
/cygdrive/c/FPC4ARM/ToolChains/GPH_Caanoo/bin/arm-gph-linux-gnueabi-ld: warning:
 libfreetype.so.6, needed by C:\FPC4ARM\ToolChains\GPH_Caanoo\libs\/libSDL_ttf.s
o, not found (try using -rpath or -rpath-link)
C:\FPC4ARM\ToolChains\GPH_Caanoo\libs\/libSDL_ttf.so: undefined reference to `FT
_Set_Pixel_Sizes'
...
ur.lpr(29,1) Error: Error while linking
ur.lpr(29,1) Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted

Это при попытке работать с SDL_TTF. libfreetype.so.6 в тулчейне не было, своровал из официального SDK, ничего не изменилось вообще.
Вернуться к началу
Посмотреть профильSyDr сейчас оффлайн  Отправить личное сообщение
BiSe Trojanov

Постоялец


Пол: Пол:Мужской
Возраст: 34
Зарегистрирован: 21.04.2011
Сообщения: 18
Откуда: Казань
Группы: Нет

СообщениеДобавлено: Чт Ноя 03, 2011 1:46 pm    Заголовок сообщения: Ответить с цитатой

SyDr писал(а):
своровал из официального SDK, ничего не изменилось вообще.
А с самой приставки?
Вернуться к началу
Посмотреть профильBiSe Trojanov сейчас оффлайн  Отправить личное сообщение
SyDr

Постоялец


Пол: Пол:Мужской
Возраст: 32
Зарегистрирован: 18.08.2011
Сообщения: 29
Откуда: Беларусь
Группы: Нет

СообщениеДобавлено: Чт Ноя 03, 2011 6:48 pm    Заголовок сообщения: Ответить с цитатой

BiSe Trojanov, пока искал, как её там найти и скопировать - пришла мысля. Проверил, так и есть: libfreetype.so.6 просто символическая ссылка. Заменил на саму библиотеку. Теперь всё компилится. Надо бы сменить обратно на вин-версию symlink. Странно только, что писало, что файл не найден, а не то, что он не подходит.

В целом, ситуация такая же, как и выше - краш при попытке отрендерить текст. Сменил на обычный текст (RenderText_Solid), прочитал замечания к функции, добавил для текста отдельную переменную и проверку:
if (systemfont<>nil) and (textc<>nil) then
В результате - ни краша, ни текста. Тоже самое в винде работает и выводит текст на экран.


Костыль найден. Тяну вместе с исполняемым файлом на консоль все библотеки (хотя, с учётом того, что я её переименовывл, должно хватить только sdl_ttf.so.6). Текст выводится. Игра Недоигра не крашится. Необходимо перейти к более серьёзным тестам. В связи с чём возникает вопрос: как нормально перекидывать файлы на консоль/с консоли? А то сейчас: подрубил дата-кабель, подождал, скопировал файл, отрубил дата-кабель, проверил и всё по новой. Нет ли более удобных способов?
Вернуться к началу
Посмотреть профильSyDr сейчас оффлайн  Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов GP2X Community -> Программирование: Консоли GP2X F100 F200 Wiz Caanoo Часовой пояс: GMT + 3
На страницу Пред.  1, 2
Страница 2 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы




Powered by phpBB © 2001, 2005 phpBB Group

Locations of visitors to this page