Пока Glance 1.0 пятый месяц "уходит на золото", я позволил себе немного развлечься с новым C++...
22.11.11
25.5.11
История одной оптимизации
Я, конечно, не мог на прямой дорожке к релизу не заблудиться в еловом лесу и не добавить какой-нибудь новый форматик в Glance.. Просто руки зудят добавить какой-нибудь! Ну, оно и понятно - средь серых будней убивания назойливой шестилапой мелочи хочется чего-то эдакого.
В этот раз я, забредя на страничку про модифицированный логарифмический тон-маппинг...
17.4.11
Прогресс с Глянсом
Давно следовало запостить какие-то новости о разработке картинкосмотрелки, вот уже и в коментах напоминают)
Ухты, на блогспоте кат появился.. о_О
теги:
glance
2.8.10
Glance
Лето - пора релизов.
Третий год подряд выпускаю на свет велосипеды. :) В 2008-м это был "оранжевый" HL2DM, в 2009-м - Advanced Stacker.
На сей раз это будет крупная, по моим меркам, рыбёшка: просмотрщик изображений. И для лисапеда такой сложности написал я его (опять же, по своим меркам) невероятно быстро: примерно месяц ушёл на основные работы, и ещё столько же на всякую фигню, которую можно было и отложить до следующей версии.
Поначалу хотелось просто иметь аскетичный вьюер для личного пользования. Быстрый и с интуитивным для меня же управлением. Потому что:
- Стандартный виндовый просмотрщик медлителен как беременная черепаха-инвалид и неудобен в обращении как
VHEтопор, обклеенный канцелярскими кнопками. Порой думает по несколько секунд после мановения скроллбара, прежде чем обновить экран. >_< Нет, я понимаю, в 2001-м году самое большое изображение которое юзер мог бы открыть в этом недоразумении было, наверное, обоиной для рабочего стола 1024х768, так что можно было без угрызений совести написать простыню быдлокода.. да хоть десять простыней - и никто бы не заметил. Но не удосужиться за все эти годы и три сервис-пака пересмотреть данную политику - это так мелко-мягко! - Хотелось свой, с черничным джемом и шлюзами, так что в сторону других программ я даже не glядел.
- А чуть ранее мне под руку попался фреймворк под названием GLUT - OpenGL Utility Toolkit, позволяющий без ОС-специфичного кода возыметь окошко с огл-вьюпортом, написав несколько строчек.
- Наконец, хотелось сильнее углубиться в многопоточное программирование.
Всё это и определило сущность Glance как вьюера шустрого, удобного и использующего огл.
Собственно, первое обеспечивается последним, хотя не обошлось и без компромисса: за скорость отрисовки приходится платить временем загрузки изображения в видеопамять. Впрочем, я готов потерпеть небольшой фриз, чтобы потом вертеть (в буквальном и переносном) картинкой как мне вздумается и в реальном времени.
Так вот. Начал я, значится, писать это дело. Организовав с грехом пополам загрузку и отображение жыпегов - понёс показывать этот зародыш друзьям. Один из них попросил знакомую нарисовать иконку. Я весь насквозь обрадовался, только вот стормозил и вовремя не успел объяснить, чего бы мне хотелось. :( Скетч был уже нарисован, к сожалению отвергнут, и всё забылось..
Опуская остальные подробности, итогом показа стало решение релизить прогу публично. :D А это потянуло за собой такую ниточку, что до сих пор её ещё не вытянул полностью.
Во-первых захардкоденные шорткаты были вынесены в конфиг (впрочем, оно и мне самому пригодилось бы). Во-вторых конфиг был обильно прокомментирован, ибо туда вскоре выползли всевозможные твики. И в-третьих - нужен был хотя бы намёк на графический интерфейс. Решено было сделать появляющийся при наведении тулбар, с кнопками в лучших традициях programmer art.
Внезапно! нашлось применение, как казалось тогда, бесполезной фигне по имени CGUI. Переквалификация консольного гуя в огльный оказалась на удивление несложной операцией: переписано было меньше 90% кода.. Шучу :D, проценты я не прикидывал, но большая часть базового кода осталась нетронутой. По ходу дела я даже сделал попытку отделить рендеринг и ввод от всей остальной логики гуя, но вылилось это в ужасающую мешанину, в коей по самые помидоры утоп код, собственно, интерфейса Glance. >_< Зато cgui, который я теперь даже не знаю как называть, прошёл обкатку и закалку в боевых условиях, что однозначно пошло ему на пользу. :)
А теперь, собственно, о том, что вас - юзеров - в сабже может вообще привлечь. Пиарщик из меня как из пастилы наковальня, но я попробую. :)
- Glance не нужно устанавливать, регистрировать итд, итп.. Вынул из архива - и запустил из любого удобного места.
- Glance ничего не пишет на диск, в реестр и вообще куда бы то ни было, поэтому должен работать даже при жёстко ограниченных пользовательских правах. Соответственно и не требует никаких чисток после использования - удалил папку, и программы в системе как не бывало.
- Glance весит приблизительно в стопицот раз меньше монстров вроде acdsee.
- Glance, как упоминалось выше, быстр.
- Glance поддерживает форматы JPEG, PNG, TGA и GIF (aнимированные, wheee!).
- Glance имеет полностью кастомизируемые шорткаты.
- Glance, сцуко, бесплатный. :D
Не обошлось, конечно же, и без свистоперделок, напрочь сметающих с программы ярлык аскетичности. Как то:
- "Мышиные жесты" - возможность листать картинки, шмякаясь курсором в края экрана.
- Включабельная подсветка по краям изображения, призванная создавать эффект присутствия в комнате, одна стена которой и является изображением. Хотя на самом деле я просто хотел пощупать шейдеры в OpenGL. :Р
- "Логическая" сортировка файлов по имени - цифры, встречающиеся в именах, формируют числа, которые затем и сравниваются. Такой метод сравнения используется в виндовых эксплорерах начиная с XP.
В планах:
- Удобный просмотр "косоглазых" стереоизображений, конвертация цвето-кодированных в косоглазый формат и наоборот (налету).
- Просмотр изображений внутри архивов.
- Расширение интерфейса до более юзабельного вида. В частности: справка, настройки, возможность выбора метода фильтрации изображения.
- Поддержка формата BMP.
- Вероятно: поддержка контейнеров VTF и DDS с возможностью разглядывать кубмапы на сферах, чайниках и других прелестях.
- Поддержка HDRI.
Требования к системе простые: операционка Windows 2000 или выше (хотя конкретно на 2k тесты не проводились..) и видеокарта с поддержкой OpenGL 1.3.
Скачать? Скачать!
Обращаюсь ко всем скачавшим (к тем полутора человекам):
Это первая публичная версия (считайте бета), так что не ждите чудес стабильности и безглючности. Если что-то не так, там есть такой файлик, ридми зовётся. :)) И только после его прочтения можно идти на меня с несвежими помидорами. :) В остальном любая отдача только приветствуется. ("Ага, Маньяк, разбежался, щас на тебя прямо посыпятся отзывы со всех сторон, как же!" - "Ну так ведь Сибо умирает последней!")
Это первая публичная версия (считайте бета), так что не ждите чудес стабильности и безглючности. Если что-то не так, там есть такой файлик, ридми зовётся. :)) И только после его прочтения можно идти на меня с несвежими помидорами. :) В остальном любая отдача только приветствуется. ("Ага, Маньяк, разбежался, щас на тебя прямо посыпятся отзывы со всех сторон, как же!" - "Ну так ведь Сибо умирает последней!")
Подписаться на:
Сообщения (Atom)