10771
|
Qt / Пользовательский интерфейс (GUI) / Re: Платформонезависимая иконка!
|
: Декабрь 19, 2009, 17:13
|
Если ты имеешь в виду иконку, которую видно в файловом менеджере у исполняемого файла, то НЕТ. И тебе в этом никто не поможет, т.к. только у виндовоза файловый менеджер умеет их читать из исполняемого файла. В других ОСьках просто с типом/именем файла ассоциируется иконка
Про Линукс ничего не знаю, а Mac OSX умеет и так и так: если это "package" (или флаг "Custom Icon" установлен) то берется из файла, иначе используется тип файла или extension. Управлять этим из IDE можно, но это глухой нативняк
|
|
|
10772
|
Qt / Общие вопросы / Re: Параллельные вычисления (проблемы)
|
: Декабрь 18, 2009, 18:48
|
сколько раз(за время своей жизни), в сумме, происходит блокировка разделяемого ресурса нитками? Извините за возможные непонятки, мой ответ был 2) Блокировки конечно есть для I/O и.т.п. Но в тестах реально работает только одна - для выборки ниткой следующей пачки задач из очереди. Реализация QSpinLockLock/QSpinLockUnlock (это OSX аналог QAtomicInt).
То есть при использовании OpenMP блокировок нет вообще, все потери на синхронизации. Повторюсь также про трудоемкость 1 пикселя (для вычисления которого привлекаются все нитки) 32 sec / (80 * 1000)
|
|
|
10773
|
Qt / Общие вопросы / Re: Параллельные вычисления (проблемы)
|
: Декабрь 18, 2009, 17:15
|
не думаю что твое видение решения, окажется верным. тут проблема в архитектуре/реализации.
Трудно понять, мудрено выражаетесь Так в архитектуре или реализации? (часто это употребляется в смысле стратегия/тактика). Насчет видения - ну я пока ничего не вижу, буду благодарен за свежие идеи (пусть и экспериментальные).
|
|
|
10774
|
Qt / Общие вопросы / Re: Параллельные вычисления (проблемы)
|
: Декабрь 18, 2009, 15:38
|
Добрый день Попробовал OpenMP. Впечатление очень приятное, библиотека сделана по уму, пользоваться легко и удобно, ничего переделывать не пришлось. К сожалению, OpenMP никак не быстрее ручной реализации. На совсем маленьких расчетах время примерно то же самое (хотя с OpenMP диаграмма загрузки выглядит гораздо стабильнее). А вот с увеличением числа расчетов OpenMP начинает проигрывать. Не так уж много но заметно, например 87 секунд против 76 Сейчас качаю Intel компилятор, хочу проверить еще с ним.
|
|
|
10775
|
Компиляторы и платформы / Компиляторы / Re: gcc 4.4 (XCode)
|
: Декабрь 17, 2009, 16:56
|
Добрый день Просто чтобы "закруглить" тему. Компилятор успешно инсталлирован. Другое дело что я не смог заставить его работать с Xcode. (хотя заявлено что да, он работает с OSX и XCode)
Я был неправ, про Xcode никто ничего не обещал, и, насколько мне известно, та же ситуация в OSX 10.6, говорят Apple делает упор на LLVM версии gcc. Нельзя добавить 4.4 в список компиляторов Xcode. Сделать его внешним компилятором можно, но он не понимает нескольких опций командной строки (arch и.т.п). Говорят что можно сделать через External BUild и makefile, но это для меня сложновато Однако библиотека OpenMP (для чего мне все это понадобилось) успешно поставилась и работает с gcc 4.2 - так что задача решена. Еще раз спасибо niXman за помощь.
|
|
|
10776
|
Qt / Пользовательский интерфейс (GUI) / Re: Чем большой текст показать?
|
: Декабрь 15, 2009, 15:53
|
Попробовал запустить на большом файле 357 MB 1) После загрузки файла - показывает только первые несколько строчек на видимую страницу. После нескольких скролирований начинает показывать всю видимую страницу 2) При скролировании с включенным Wrap - падает 3) Не смог обработать ошибочные комбинации переносов строк возникающие при переносе и редактировании файла под разными системами (win->mac->lin>win->..). Пример такого файла ("lines-bad.txt") описание("info.txt"), конечный автомат("fsm.txt") для правильного разбора и его код("fsm.cpp.txt") в архиве "lines.zip"
- С критикой концов строк вынужден согласиться, но в автоматах/пулеметах я не силен поэтому решил по-своему (attachment). Заодно поправил еще ошибку (lines-bad.txt не реагировал на сколлер) - конечно я верю что есть проблемы с просмотром, но без возможности воспроизвести ситуацию - фиксировать нечего. Дайте файл - попробую исправить - с wrap хуже всего, у меня нет даже идей и неясно почему он падает И вообще: исходники есть, так что исправляем, дополняем, пишем свои реализации и.т.п.
|
|
|
10777
|
Компиляторы и платформы / Компиляторы / Re: gcc 4.4 (XCode)
|
: Декабрь 15, 2009, 06:36
|
Ага, "есть анодное!" (после того как я прекратил гуглить и попытался понять что пишут make, configure). Для gmp надо указать
./configure ABI=32
Иначе он создает 64-битную gmp которую mpfr "не может найти". При этом однако сам mpfr успешно инсталлится и проблема возникает уже на configure gcc Мдааа...
|
|
|
10778
|
Компиляторы и платформы / Компиляторы / Re: gcc 4.4 (XCode)
|
: Декабрь 14, 2009, 21:01
|
Дело может быть в том, что сама либа устанавливается от имени одного пользователя(к примеру рядового юзера), а скрипт конфигурации, к примеру от имени рута. или на оборот.
Никогда не видел никаких др. пользователей кроме себя Гуглю, проблема популярная но что делать никто толком не говорит..
|
|
|
10779
|
Компиляторы и платформы / Компиляторы / Re: gcc 4.4 (XCode)
|
: Декабрь 14, 2009, 18:29
|
Разобрался - оказывается виноват "пустой" пароль (как был у меня), так нельзя. Вообще-то конечно милая "никсовская" шутка если не считать 2 дней на гугление и поиск методом втыка Получил новое (при ./configure для gcc) checking for correct version of gmp.h... yes checking for correct version of mpfr.h... no configure: error: Building GCC requires GMP 4.1+ and MPFR 2.3.2+.
mpfr отинсталлировал и имею usr/local/include/mpfr.h В котором ясно написано: версия 2.4.1 Нагуглил похожее http://www.mail-archive.com/gcc-bugs@gcc.gnu.org/msg260531.htmlПытаюсь понять о чем речь
|
|
|
10780
|
Qt / Установка, сборка, отладка, тестирование / Re: заточка кода под быстродействие.
|
: Декабрь 14, 2009, 18:10
|
спасибо, понял пока не очень, но думать буду.
Вам нужно держать массив сортированным и вставлять в него, правильно? Ну так QSet для этого и предназначен. Это имеет смысл если анимация сводится к добавлению/удалению. А если нет - то все еще проще QVector<QDistObj> и qSort т.е. задом наперёд? и можно чуть по-подробнее - какую именно оптимизацию и с каким буффером курить? просто поподробнее, что бы точно стало ясно куда копать?
Полагаем что "очередность" меняется часто, от кадра к кадру (иначе нет смысла возиться). Были объекты [0..10], новый объект вставляем на место 5 (например). Значит можно перерисовать от 5-го нового до начала, хвост не трогать. При удалении - наоборот. Как содрать буфера в OGL - (depth и.т.п) - разберетесь. да блин.. я понимаю что железо у меня не привлекает к программированию 3д вообще, не говоря уж о программировании красивого 3д.. тот же код на других машинах (с нормальным железом) уже даёт 90-120 фпс вместо 24 моих, но всё же ощущать себя таким убогим совсем не хочется - тогда полностью пропадает интерес к программингу - вот и спрашиваю - где же ещё можно выдрать фпсы? на чём ещё можно выдрать чуть-чуть и сделать по симпатичнее?
Почему Вы думаете что 3D = fps и OGL? У меня кадр может считаться минуты а иногда и часы (на приличном железе) - и я совсем не страдаю от отсутствия фпс'ов, не в них счастье. Все зависит от того что и как рендерится и с каким качеством. Не говоря уже о том что рендер - это довольно малая часть от всего 3D вообще. Смотрите на вещи "ширше"
|
|
|
10781
|
Qt / Пользовательский интерфейс (GUI) / Re: Чем большой текст показать?
|
: Декабрь 14, 2009, 15:57
|
П.С. к слову сказать просмотрщик у меня не работает, так как ожидалось. Имеется файл, неслишком большой, много строчек, строчки нумерованы (создан твоей утилитой). В Тоталкомандере по F3 вижу строчки нумерованные. А В LargeTextView только первую строку и море пустых
Наконец воспроизвелось и я увидел где это (ошибка при отлове конца строки для Вындоуз). Подправил (attachment). Насчет CONFIG += designer теряюсь в догадках. На одном проекте (из архива) все нормально, добавляет либу в созданный проект. На другом нет. Почему - хз Я на XCode просто беру QtDesigner framework и дроплю в проект - секундное дело.
|
|
|
10782
|
Qt / Установка, сборка, отладка, тестирование / Re: заточка кода под быстродействие.
|
: Декабрь 14, 2009, 14:58
|
1) На 600 единицах (объектах) проходит все что угодно и много на контейнерах не сэкономить. Все же я бы делал попроще struct CDistObj { OGLObject * mObj; float mDist;
bool operator < ( const CDistObj & sec ) const { return mDist < sec.mDist; } };
QSet <CDistObj> theDistObj; // очевидные операции вставки и.т.п
2) Рендер "по расстоянию от камеры" дает ограниченные возможности, но если уж Вы так решили - то почему Вы каждый раз выводите ВСЕ объекты "задом наперед"? Делаете по расстоянию - так крутите оптимизацию с буфером (и при удалении тоже) 3) хочется сделать красивую сцену, но стоит докинуть текстурку - получаю минус в скорости. докидываю источник света - та же хрень и так далее... Хммм... а на что Вы рассчитывали? Если при добавлении текстуры/света скорость падает - то при чем здесь контейнеры? Откуда убежденность что все должно быть real-time на любом железе? Для начала отключите туманы и прочие красоты.
|
|
|
10784
|
Qt / Пользовательский интерфейс (GUI) / Re: Чем большой текст показать?
|
: Декабрь 14, 2009, 14:12
|
Просматиривая большой файл (300 метров), возникла ошибка при перемещении ползунка скрола мышой (debug показал ошибку в qvector.h -> inline bool isEmpty() const { return d->size == 0;} )
Вот и исправьте и выложите обновленный вариант, больше толку будет чем месить QHash для spreadsheet
|
|
|
10785
|
Qt / Пользовательский интерфейс (GUI) / Re: Чем большой текст показать?
|
: Декабрь 14, 2009, 14:10
|
Igors, коррективы твоей программы: во все pro-файлы добавить: C++ (Qt) CONFIG += designer
в генератор файлов, в функции Generate заменить строку: C++ (Qt) s += lst[RandInt(0, lst.size())];
на C++ (Qt) s += lst[RandInt(0, lst.size()-1)];
иначе во время генерации крашится по ASSERT'у в QList Спасибо, Юра, про CONFIG просто не знал
|
|
|
|
|