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.

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

25 комментариев:

  1. Ну Маньяк, ты маньяк! Молоток, забираю, пока бесплатно.

    ОтветитьУдалить
  2. Хехех, шустро ты )
    Спасибо.

    Ага, портфолио Флага! Кое-чего не видел ещё, впечатляет. :)

    ОтветитьУдалить
  3. Ооо, ништяки ))

    Действительно шустро работает )
    Понравился зум в область курсора. Полезная вещь.. А то скроллбарами пока нацелишься.. )

    Есть пожелание добавить кнопку "открыть" в верхней панельке.. Хоткеи это конечно круто, но кнопка не помешала бы )

    И еще хотелось бы, при нажатии на кнопку, или при движение мыши в низ, чтобы снизу по горизонтали выстраивались превьюшки изображений, которые присутствуют в каталоге, по типу такого:
    http://img293.imageshack.us/img293/3058/47204555.jpg
    Это удобная штука например для моделлера )) Когда есть много рефов, удобней перемещаться по превьюшкам, чем перелистывать )

    И еще по ворчу не много ) Хотелось бы увидеть, если такое возможно, фотошоповский контейнер .PSD ))

    В общем спасибо за прогу, будем пользоваться )

    ОтветитьУдалить
  4. > Есть пожелание добавить кнопку "открыть" в верхней панельке..
    Будет)

    > превьюшки изображений
    Поступало уже такое предложение.. И раз их теперь два, видимо придётся сделать. :D Хотя быстроту загрузки этих превьюшек не обещаю..

    Насчёт PSD - думаю, получится сделать, но не лучше, чем в максе: если psd-файл не содержит превью, то и отображать будет нечего. Потому что во-первых формат закрытый, и нет ни одного парсера, 100-процентно покрывающего все его фичи; а во-вторых все слои пришлось бы рендерить вручную, а эта задача по сложности тянет на десять таких программ)))

    > спасибо за прогу, будем пользоваться
    Пожалуйста) Рад, что кто-то реально будет ей пользоваться. :)

    ОтветитьУдалить
  5. >Пожалуйста) Рад, что кто-то реально будет ей пользоваться. :)
    Я уже пользуюсь :D Присоединяюсь к пожеланиям насчет превью и psd. И вот еще что, у меня почему-то tga отображаются флипнутыми по вертикали, а в режиме фулскрин подсветка работает не на всем экране, внизу остается полоска неразмытого изображения. Вообще, эффект очень понравился, можно его по дефалту поставить.

    ОтветитьУдалить
  6. > у меня почему-то tga отображаются флипнутыми по вертикали
    Ыгы, это даже упомянуто в ридми) Пока не знаю, как лечить, к сожалению, потому что переворачиваются некоторые тгахи, и закономерность я не выявил. о_О Скорее всего просто под чистую сменю код загрузки tga - это проще, чем в нём разбираться))

    > в режиме фулскрин подсветка работает не на всем экране
    Ыгы, об этом тоже знаю, но в ридми написать забыл) И тоже не удалось пока нащупать причину. =\

    > можно его по дефалту поставить
    Эффект довольно прожорлив до видяхи, поэтому изначально выключен. Но желающие могут у себя в конфиге выставить AmbientLight 1. :) Вернее, смогут в будущем, потому что Ведроид вчера обнаружил, что если так сделать, то при запуске вываливается ошибка, которой точно быть не должно (про неподдержку огл 2.0). :D Пофикшу.

    ОтветитьУдалить
  7. О! Вот это тема, а то виндузятный просмотрщик достал уже, ACDSee тяжеловат, да и хоткеи там некошерно по дефолту стоят :). Нравится минималитичность, зум по сроллу в место где курсор, перелистывание жмяканием мышки и конечно же подсветка, love it! Поддреживаю идею с превьюшками, хочу поддержки vtf и dds. Будем юзать!

    ОтветитьУдалить
  8. > Будем юзать!
    Рад слышать) Енжой))

    зы: Эвакуируюсь из Мск, и на комменты (если ещё будут) отвечу не раньше сентября. Ну и новых версий, соответственно, пока не будет. :)

    ОтветитьУдалить
  9. Будешь допиливать просмотрщик? Потому что за время юзания выявил пару очень мне необходимых возможностей которых пока нету, ихотелось бы чтобы они были, а именно:
    -Ну предыдущие пожелания это само собой =)
    -Просмотр png
    -Просмотр картинок в локальной сети. Почему то не открывает.
    -Ну и не помешала бы хоть какая-то иконка экзешнику ;).

    ОтветитьУдалить
  10. Допиливать буду, но ближайший минимум месяц хотелось посвятить broken arrow. А то что-то совсем я от него отвлёкся. =\ Так что рассчётное время возвращения к glance - ноябрь, а выход новой версии - декабрь.
    Но, конечно же, все эти планы как всегда пойдут под откос. :D Ладно, не будем о грустном.

    Просмотр png есть. о_О Я мог не все нюансы предусмотреть, так что если у тебя какой-то пнг-файл отказывается открываться, было бы замечательно его себе заиметь, дабы отловить баг. :)
    Иконка - да, будет. Думаю к следующему релизу изобразить что-нибудь)
    Хмм.. локальная сеть.. Ха, а вот о сетевых путях-то я даже не подумал. Об относительных - подумал, но не учёл по лени (они щас тоже не поддерживаются), а про сетевые вообще напрочь забыл. В общем, фикс будет, спасибо за находку. :)

    ОтветитьУдалить
  11. Блин, ну нравится мне Ambient Light вокруг картинок! Тащусь.
    Радует скорость работы.
    Глюков пока что не нашел.

    Спасибо, Маньяк.

    ОтветитьУдалить
  12. прежде всего скажу что много лет юзаю
    ACDSee 2.44 32 classic от безысходности и
    отсутствия подходящей альтернативы
    (и потому что искать что то лень)
    далее идет мое мнение

    ==========================
    ========= Плюсы! =========
    ==========================
    + скорость безусловно самое главное круто
    + Ambient Light ахуенет! хочу подефолту [x]
    + MMB - для таскания картинки это ахуенно
    + конфиг сразу в программе это адскиАхуенно
    + поддержка win окна "открыть" это хОрОшО
    на win 7 64bit осталась xот-панель слева
    http://bit.ly/cDhESs
    + можно установить для быстрого открытия
    вьюером картинок в виндовоз по умолчанию
    это радует (бывает иначе)

    ============================
    ========= Минусы?? =========
    ============================
    - флипает вертикально TGA
    поскольку ходовной формат например в
    Unreal Engine 3 - это очень критично!

    - при закрытии конфига ambient light дропается
    подозреваю что из за возврата к дефолту
    [второй раз] хочу подефолту [x]

    - по дефолку LMB открывает следующуюю картинку
    а RMB почему то не открывает предыдущую :]
    зато вместо этого повторяет функцию MMB..
    я что то не так понял?

    - не нашел в описании конфига бинда мыши (?)
    Right.Mouse.B (RMB) так и не смог забиндить..

    - хотел забиндить ESC на закрытие
    но тоже не получилось

    - тулбар не всегда видно
    можно подобрать иное решение
    http://bit.ly/dCmoDI

    - я не понял.. где кнопка "об авторе"
    страна должна знать героя в инфо и лого

    ===========================
    ========= ХОЧУ :] =========
    ===========================
    - ОЧЕНЬ хочу хот кей и кнопку тулбара
    для размножения картинки в квадрат 3х3
    для просмотра Tiled функции
    http://bit.ly/9cnuCl

    - чоху бинд 4-ой и 5-ой кнопки мыши
    - хочу подефолту (или биндить)
    пробел на "вернуть 1:1 скале"
    - хочу убирать Smoof режим и
    по возможности включать поверх сеточку
    http://bit.ly/9BTdND

    - хочу Scale info внутри всплыв. тулбара
    http://bit.ly/b42edT

    - хочу хот кей и кнопку тулбара для
    отображения информации файла картинки
    http://bit.ly/bT87Fr


    - идеи по трумблинкам и функциям
    этого режима опущу
    и так жирно кажеся хD

    - хочу следить обновлением программы
    в любом месте любым способом

    ====== Post.Scriptum ======
    ===========================
    - профинансировать?
    - готов быть тестером по юзабилити
    для этой и других программ
    - могу подкидывать кучу идей
    по эргономике и интерфейсу

    поставил Glance вьюером по умолчанию и
    буду очень долго пользовать
    хранить и распространять
    пока все..

    icq - 333879808

    ОтветитьУдалить
  13. прежде всего скажу что много лет юзаю
    ACDSee 2.44 32 classic от безысходности и
    отсутствия подходящей альтернативы
    (и потому что искать что то лень)
    далее идет мое мнение

    ==========================
    ========= Плюсы! =========
    ==========================
    + скорость безусловно самое главное круто
    + Ambient Light ахуенет! хочу подефолту [x]
    + MMB - для таскания картинки это ахуенно
    + конфиг сразу в программе это адскиАхуенно
    + поддержка win окна "открыть" это хОрОшО
    на win 7 64bit осталась xот-панель слева
    http://bit.ly/cDhESs
    + можно установить для быстрого открытия
    вьюером картинок в виндовоз по умолчанию
    это радует (бывает иначе)

    ============================
    ========= Минусы?? =========
    ============================
    - флипает вертикально TGA
    поскольку ходовной формат например в
    Unreal Engine 3 - это очень критично!

    - при закрытии конфига ambient light дропается
    подозреваю что из за возврата к дефолту
    [второй раз] хочу подефолту [x]

    - по дефолку LMB открывает следующуюю картинку
    а RMB почему то не открывает предыдущую :]
    зато вместо этого повторяет функцию MMB..
    я что то не так понял?

    - не нашел в описании конфига бинда мыши (?)
    Right.Mouse.B (RMB) так и не смог забиндить..

    - хотел забиндить ESC на закрытие
    но тоже не получилось

    - тулбар не всегда видно
    можно подобрать иное решение
    http://bit.ly/dCmoDI

    - я не понял.. где кнопка "об авторе"
    страна должна знать героя в инфо и лого

    ОтветитьУдалить
  14. ===========================
    ========= ХОЧУ :] =========
    ===========================
    - ОЧЕНЬ хочу хот кей и кнопку тулбара
    для размножения картинки в квадрат 3х3
    для просмотра Tiled функции
    http://bit.ly/9cnuCl

    - чоху бинд 4-ой и 5-ой кнопки мыши
    - хочу подефолту (или биндить)
    пробел на "вернуть 1:1 скале"
    - хочу убирать Smoof режим и
    по возможности включать поверх сеточку
    http://bit.ly/9BTdND

    - хочу Scale info внутри всплыв. тулбара
    http://bit.ly/b42edT

    - хочу хот кей и кнопку тулбара для
    отображения информации файла картинки
    http://bit.ly/bT87Fr


    - идеи по трумблинкам и функциям
    этого режима опущу
    и так жирно кажеся хD

    - хочу следить обновлением программы
    в любом месте любым способом

    ====== Post.Scriptum ======
    ===========================
    - профинансировать?
    - готов быть тестером по юзабилити
    для этой и других программ
    - могу подкидывать кучу идей
    по эргономике и интерфейсу

    поставил Glance вьюером по умолчанию и
    буду очень долго пользовать
    хранить и распространять
    пока все..

    icq - 333879808

    ОтветитьУдалить
  15. для полного изврата можно
    добавить режим "сравнить"

    например уже открыта картинка 1
    нажимаем хот-кей\тулбар
    появляется окно "открыть"
    выбираем и открываем картинку 2

    теперь на экране видны
    две половинки двух картинок

    хватаем мышкой вертикальный разделитель и
    двигаем влево вправо для рассмотрения разницы
    как тут http://bit.ly/9BWfZo

    снова нажимаем хот-кей\тулбар "сравнить"
    2-я картинка исчезает и остается первая

    ОтветитьУдалить
  16. О__О


    > флипает вертикально TGA
    Думаю, к следующему разу исправлю.

    > при закрытии конфига ambient light дропается
    > подозреваю что из за возврата к дефолту
    Ыгы.
    > хочу подефолту [x]
    Будет, будет)

    > по дефолку LMB открывает следующуюю картинку
    > а RMB почему то не открывает предыдущую :]
    Кто-то опять не прочёл ридми. %) Левый щелчок перелистывает вперёд/назад в зависимости от половины окна, в которой был сделан) Согласен, не очень очевидно, но пока ничего лучше не выдумал..
    В конце концов действительно надо как-то предусмотреть настройку функций мыши.. Ибо сейчас они захардкодены.

    > хотел забиндить ESC на закрытие
    > но тоже не получилось
    ESCAPE надо биндить. :)

    > тулбар не всегда видно
    Да, идея с инверсией цвета была фейловатой.. Оставлю это как опцию, а по дефолту сделаю на фоне кнопок {не-|полу-}прозрачную панельку со скруглёнными уголками. :)

    > я не понял.. где кнопка "об авторе"
    Хммм, как-то не задумывался над этим) Наверное имеет смысл сделать, да.

    > ОЧЕНЬ хочу хот кей и кнопку тулбара
    > для размножения картинки в квадрат 3х3
    Читаешь мои мысли. =)

    > чоху бинд 4-ой и 5-ой кнопки мыши
    Постараюсь, но не гарантирую.

    > хочу подефолту (или биндить)
    > пробел на "вернуть 1:1 скале"
    Сейчас пробел захардкоден для таскания картинки с зажатой левой мышой, так что вынесу-ка я его в конфиг.. Тогда можно будет его освободить и забиндить на него любую команду.
    Мысли вслух. :D

    > хочу убирать Smoof режим и
    > по возможности включать поверх сеточку
    Первое уже точно будет (выбор метода фильтрации nearest).
    Второе наверное тоже (если не будет сильно тормозить))), мелькала у меня такая мысля. Вкупе с возможностью видеть и копипастить цвет пикселя под курсором.

    > хочу Scale info внутри всплыв. тулбара
    > хочу хот кей и кнопку тулбара для
    > отображения информации файла картинки
    Stone тоже хочет. :) Будет.
    Возможно даже exif и xmp воткну.

    > хочу следить обновлением программы
    > в любом месте любым способом
    Это, к сожалению, упирается в необходимость иметь маломальский сервер с информацией о текущей версии, чтобы программа к нему обращалась и сравнивала эту самую версию со своей) Хотя.. может тот же dropbox запользовать? оО
    Ещё думал об автообновлении, но пока не вижу необходимости - обновления слишком редкие)

    > профинансировать?
    Не отказался бы. :D Денежки мне нужны, но речь, как я понимаю, о символическом пожертвовании для подержания моего интереса к разработке? ) Или что-то более серьёзное?

    > готов быть тестером по юзабилити
    > могу подкидывать кучу идей
    Буду обращаться. :)

    > поставил Glance вьюером по умолчанию и
    > буду очень долго пользовать
    > хранить и распространять
    ^__^

    > для полного изврата можно
    > добавить режим "сравнить"
    Уже запланировал несколько режимов просмотра, теперь вот будет на один запланированный режим больше))

    ОтветитьУдалить
  17. ===== Кто-то опять не прочёл ридми
    да нет же \ я прочел все что было
    и функция толкания края экрана понравилась и кликать половинку экрана как в веб галлереях ОЧЕНЬ удобно
    просто сказалась привычка от брузера "опера"
    там функция назад\вперед чисто кнопками мыши и
    главное хочется биндить кнопки мыши)
    [у людей разные привычки]

    вообще возможно бинда наверное самая великая
    вплане удобства любой раскладки

    ===== ESCAPE надо биндить. :)
    спасибо =D (промахнулся бывает х] )

    ===== {не-|полу-}прозрачную панельку
    если да то можно сразу 0-100 в конфиг хD

    ===== Ещё думал об автообновлении..
    не обязательно так круто \ просто хочется
    заметить момент когда появится новая версия)
    впринципе могу и за этим блогом следить
    этого вполне достаточно

    ===== речь, как я понимаю, о симв. пожертвовании
    конечно \ на пиво там с блэкджеком и шлюхами :]
    программа хорошая \ в чем то перспективная
    хочется прокаченной версии х]
    (естественное такое житейское желание)

    ===== Буду обращаться. :)
    в любое время \ в аську
    при потребности через что то более специфичное

    ===== Glance вьюером по умолчанию ^__^
    нарвался на то что иногда нужно
    ковертировать кучку картинок в другой формат..
    значит ася2.44 будет дополнительной чисто для этого)

    ===== Уже запланировал (много чего)
    главное не перекачивать лишним)
    а так же я один и тех кто надеется что
    тот самый мод все таки выйдет =]

    pS. удачи

    ОтветитьУдалить
  18. Этот комментарий был удален автором.

    ОтветитьУдалить
  19. а можно отдельную команду центровки изображения а то
    при zoom100 центром остается точка форусировки
    (что очень удобно) но иногда хочется zoom100 + center
    для житейских вещей

    ОтветитьУдалить
  20. > просто сказалась привычка от брузера "опера"
    > там функция назад\вперед чисто кнопками мыши и
    > главное хочется биндить кнопки мыши)
    Понятно) Ну я придумаю что-нибудь на этот счёт.

    > можно сразу 0-100 в конфиг
    "r g b a" 0-255. =)

    > на пиво там с блэкджеком и шлюхами :]
    :)))
    Ок, ближе к следующей версии заведу себе кошелёчег)
    Может ещё доброжелатели будут)

    > нарвался на то что иногда нужно
    > ковертировать кучку картинок в другой формат..
    > значит ася2.44 будет дополнительной чисто для этого)
    Кстати фотошоп можно тоже. Хотя сомневаюсь, что выйдет быстрее..

    > главное не перекачивать лишним)
    Постоянно держу это в голове, чтобы не страдала скорость и простота интерфейса. :)
    Но свои собственные пожелания тоже учитывать надо, так что функционал как ни крути стремится раздуться) Его надо только изящно оформить.

    > удачи
    Спасибо!

    ОтветитьУдалить
  21. > иногда хочется zoom100 + center
    Хех, хотел сделать возможность биндить несколько команд на одну кнопку.. Видимо, это таки имеет смысл. =)

    ОтветитьУдалить
  22. Хм.. А мне нравиццо)
    Развивай програмулину, епта! Толковая штука..

    ОтветитьУдалить
  23. где же ты *позывной* MANJAK
    сделай какое нибудь забавное заявление о программе :]

    ну скажем компания ManJak industris переносит дальнейшую разработку на 2212 год..

    или что то более оптимистичное

    ОтветитьУдалить
  24. Да, надо бы. :)
    Сейчас что-нибудь накатаем..

    ОтветитьУдалить