Simple Viewer GL

Simple Viewer GL Небольшой вьювер изображений использующий OpenGL. Пользуюсь этим вьювером в повседневной работе для быстрого просмотра списка изображений, определения параметров области, которую занимает спрайт на текстуре.

Поддерживаемые форматы: PSD (первые 4 цветовых слоя, что делать с остальными я не знаю), PNG (libpng), JPEG (libjpeg), TIFF (tiff, многостраничный), ICO (поддержка фреймов в формате png), DDS, GIF (giflib, без анимации, но с возможностью просмотра каждого фрейма), BMP, TARGA, PPM, XPM, AGE (мой собственный формат, умеет rle-сжатие, zlib-сжатие и power of two), SCR (формат экрана ZX-Spectrum).

Основные возможности:

  • загрузка изображений в отдельном потоке + индикатор процесса загрузки;
  • создание списка файлов и поиск позиции, с которой начался просмотр;
  • поддержка GIF-анимации;
  • использование OpenGL;
  • отображение координаты и цвета пикселя под курсором (ключ командной строки -p или клавиша P);
  • возможность выделения части изображения рамкой (удобно для определения координат и позиции области);
  • разбиение больших изображений по нескольким текстурам;
  • быстрое скролирование изображения с помощью клавиатуры или мышки;
  • произвольное масштабирование изображения с помощью клавиатуры ( / + / 1..0);
  • корректное автоматическое масштабирование изображений, не вмещающихся в окно вьювера;
  • возможность просмотра многостраничных изображений (клавиши PgUp / PgDn)

 
Без минусов не обошлось:

  • нельзя посмотреть EXIF (планирую сделать);
  • нет возможности переназначить “горячие” клавиши (планирую сделать);
  • изображения загруженные с помощью Imlib2 не имеют информации о кол-ве бит на пиксель (постепенно избавляюсь от этой библиотеки в пользу собственной реализации загрузчиков);
  • при повернутом изображении некорректно отображается информация о пикселе под курсором;

 


Загрузка и сборка
В данный момент исходные коды Simple Viewer GL доступны в Git на Bitbucket.org. Забрать последнюю версию исходных кодов можно следующей командой:

$ git clone https://bitbucket.org/andreyu/simple-viewer-gl
$ cd simple-viewer-gl
$ make release
$ ln -s sviewgl /path_to/bin/sviewgl

 


Данный ebuild устаревший, тянет исходники с sourceforge.
Добрый человек с LOR скрывающийся под ником AnDoR сделал ebuild для вьювера – simpleviewer-gl-9999.ebuild. Большое ему за это спасибо.

 


Предыдущая крайне устаревшая версия Simple Viewer.

Mac OS X: путь к исполнимому файлу

Нашел у себя в черновиках. Не уверен, что я этот код где-либо использовал, но для затравки сойдёт.
Object-C:

const char *path;
path = [[[NSBundle mainBundle] bundlePath] UTF8String];

Или так:

CFBundleRef bundle;
bundle = CFBundleGetMainBundle();

CFURLRef res;
res = CFBundleCopyResourcesDirectoryURL(bundle);

CFStringRef resStr;
resStr = CFURLCopyFileSystemPath(res, kCFURLPOSIXPathStyle);

char path[8192];
CFStringGetFileSystemRepresentation(resStr, path, sizeof(path));

World of Goo

World of Goo
Просто чумовая игра – World of Goo. Детей не оторвать, сам оторвался только после того, как прошел все, что возможно.
Жанр игры однозначно определить сложно – это и аркада, и логика. Игра завязана на законах физически. Сейчас вообще стало очень модно использовать физику в играх. Но в этой игре и реализация, и дизайн, и дух просто непередаваемы.

Игра доступна для Windows, Mac OS X, Wii, и, с недавнего времени, Linux.

Очень рекомендую!

Between the Worlds

Не смотря на козни конкурентов, которые своими комментариями пытаются понизить интерес к игре, Between the Worlds остается на первом месте в топе паблишера iWin.

Статистика по игре на CasualCharts.com.
Список игр, отсортированных по рейтингу в общей категории на iWin.

К сожалению, пока только версия для Windows, а Mac OS X и Linux версии пока не доступны для публичного скачивания.

В ближайшее время ожидается выпуск игры еще для десятка паблишеров.

Word of Padman

Word of Padman – FPS в игрушечно-мультяшном стиле. Есть мультиплеер, а сингла нет. Если не ошибаюсь, то игра использует движок от Quake II.
Ничего конкретного об игре сказать не могу, т.к. сам еще не играл в нее. Но игра входит в топ 100 лучших игр для Linux.
Версии для Windows, Linux, Mac OS X.

Teewars

Teewars – сетевая 2D-аркада для платформ Windows, Mac OS X, Linux. Игрушка простая но весьма занимательная – ваша задача управляя “колобком” не дать ему погибнуть от руки (пистолета, гранатомета) другого колобка. При этом стараясь уничтожить противника. Колобок кроме движения вправо/влево может выстреливать не очень длинной цепью с крючком для того, что бы подняться по стене или преодолеть пропасть.
На сайте доступны исходные коды игры.

Google performance tools

Google Performance Tools (GPT) — набор утилит, которые позволяют проводить анализ производительности программ, а также анализировать выделение памяти программами и производить поиск утечек памяти.

GPT может работать практически на всех Unix-совместимых операционных системах — Linux, FreeBSD, Solaris, Mac OS X (Darwin), включая поддержку разных процессоров1 — x86, x86_64 и PowerPC. Кроме того, tcmalloc можно скомпилировать также и для MS Windows, что позволит искать утечки памяти в программах, разработанных для этой ОС.

Полная версия статьи Google performance tools.

Статья этого же автора о Valgrind.

Subversion GUI-клиент для Mac OS X

Не всегда удобно добавлять описание и новые файлы в репозиторий из консоли. Проводить различные операции над множеством файлов удобнее из GUI-клиента. Поиск Subversion GUI-клиента для Mac OS X привел меня к svnX.
По удобству для меня (может я просто все еще не могу привыкнуть к интерфейсу Mac OS X?) он хуже Kdesvn (Linux, KDE), и много хуже TortoiseSVN (Windows).

UPD (26.04.2008):
Subversion клиент для Mac OS X – SCPlugin. До TortoiseSVN ему еще далеко, но на мой взгляд он лучше, чем svnX.

Code::Blocks для Mac OS X и SDL

Пришлось немного повозиться, что бы заставить работать данную связку. Итак, приступим:

  1. Из списка “Link libraries” удаляем все библиотеки. Надеюсь, в будущих версиях Code::Blocks это поправят.
  2. В “Other linker options” нужно прописать “-framework SDL -framework Cocoa -framework SDL_image -framework SDL_mixer -framework OpenGL”. Ну или те библиотеки, которые вам нужны.
  3. Добавляем к проекту два файла SDLMain.h и SDLMain.m. В свойствах файла SDLMain.m указываем “Compile file” и “Link file”.
  4. В опциях проекта снимаем галку “Strip all symbols from binary” Это параметр -s компилятора. Если этого не сделать, то при попытке запуска приложения получим ошибку:
    dyld: lazy symbol binding failed: lazy pointer not found
    dyld: lazy pointer not found
    Trace/BPT trap
  5. После компиляции можно вручную выполнить strip.
  6. Думаю, что стоит написать скрипт, который будет после компиляции автоматически делать бандл.

Полезные ссылки:

1 2 3 4