Хабы: C++, Ненормальное программирование, Старое железо, Демосцена
Приветствую, Хабравчане!
В данной статье опишу реализацию GDI рендера для Windows. Поехали.
Так как проект пухнет строчками кода. Я встроил поддержку обработки ошибок. Так как я намеренно не использую исключения, то требуется некий альтернативный подход. Мне не очень нравится идеология принятая в Windows, libc или SDL2. При вызове функции, проверяют её возвращаемое значение и если значение соответствует коду ошибки, то для подробной информации об ошибке требуется вызвать функцию GetLastError.
И в принципе такой подход не плох, но меня беспокоит глобальность данной функции. Какие то потоки могут в нее писать одновременно и в итоге, можно получить ошибку которая не относится к текущему выполняемому коду. Для упрощения обработки ошибок я создал класс Result.
Loading, please wait