Мой обновленный способ инициализации. В целом он почти не отличается от использованного мною все эти годы. И является практически дефольтным, согласно документации. Но, на одном параметре стоит заострить внимание. По-умолчанию этот параметр установлен в TRUE. И сегодня я получил слайд-шоу, …
Development
Emscripten HiDPI
На HiDPI мониторах downscaled текстуры выглядят мягко говоря не очень красиво. Искал способ решить эту проблему. В итоге мои исследования привели к такому не самому легковесному решению. Получить device pixel ratio для настройки размров canvas. Получить размер canvas и разрешение …
Simple Viewer GL: исправление GIF
Некоторые пользователи моего вьювера жаловались на медленное проигрывание GIF-анимации во вьювере. И чем больше по размеру GIF-файл, тем медленнее происходит загрузка следующего фрейма. И проблема была явно не в медленном декодировании фрейма и его загрузке в GL-текстуру. Все оказалось проще. …
История поиска одного бага
Довольно много времени потратил на поиск «плавающего» бага. За это время успел отрефакторить кучу кода, до которого руки не доходили ранее. Но баг не ловился. И в его поимке не смогли помочь ни Xcode Instruments, ни Xcode Analyzer (фронтэнд к …
Emscripten: события клавиатуры в iframe
Столкнулся с проблемой на itch.io, когда приложение запущенной внутри iframe, то оно не получает события клавиатуры. Придумал вот такой workaround: К событию postRun добавляем установку листенера на событие mousedown. Теперь при клике мышью на канавасе с игрой события от клавиатуры …
Flexible and Economical UTF-8 Decode
Давно использую декодер, состоящий из кучи бранчей и логических операций. Вот вариант без бренча (тернарный оператор в данном случае брачнем не является), двух логических операций и таблицы – Flexible and Economical UTF-8 Decode
Texture Packer
This is one of the essential tools I use daily, helping me eliminate a significant amount of routine work. Yes, it happens – I actually use my own creation daily. Texture Packer for Linux and macOS is a command-line utility …
C++11 countof
Наверняка многие «плюсовыми» используют макрос, подобный нижеприведенному: Он хорош до тех пор, пока в качестве array в него не будет передан указатель на array. Компилятор проглотит и ничего не скажет, а результат будет совсем не тот, которого ожидает разработчик. Благодаря …
Emscripten + OS X El Capitan
Emscripten is an LLVM-based project that compiles C and C++ into highly-optimizable JavaScript in asm.js format. This lets you run C and C++ on the web at near-native speed, without plugins. Решил еще раз установить Emscripten с помощью brew, на …