22.11.11

C++11 Argument Unpacking & Tuples

Пока Glance 1.0 пятый месяц "уходит на золото", я позволил себе немного развлечься с новым C++...

25.5.11

История одной оптимизации

Я, конечно, не мог на прямой дорожке к релизу не заблудиться в еловом лесу и не добавить какой-нибудь новый форматик в Glance.. Просто руки зудят добавить какой-нибудь! Ну, оно и понятно - средь серых будней убивания назойливой шестилапой мелочи хочется чего-то эдакого.

17.4.11

Прогресс с Глянсом

Давно следовало запостить какие-то новости о разработке картинкосмотрелки, вот уже и в коментах напоминают)

Ухты, на блогспоте кат появился.. о_О

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.

Скачать? Скачать!
Обращаюсь ко всем скачавшим (к тем полутора человекам):
Это первая публичная версия (считайте бета), так что не ждите чудес стабильности и безглючности. Если что-то не так, там есть такой файлик, ридми зовётся. :)) И только после его прочтения можно идти на меня с несвежими помидорами. :) В остальном любая отдача только приветствуется. ("Ага, Маньяк, разбежался, щас на тебя прямо посыпятся отзывы со всех сторон, как же!" - "Ну так ведь Сибо умирает последней!")