Скорее glAttachShader должен быть скрыт, ведь это деталь реализации. Более того, в gl шейдер это идентификатор, по этому странно что у него может быть какая-то разная реализация.
Можешь посмотреть мой подход gist.github.com/938592 (внимание, код не для продакшена и не вылезанный). Идея в том, что для разных материалов мы НЕ пишем c++ код, а пишем шэйдеры, а в json файлике прописываем атрибуты и юниформы.
Вопрос можно поставить другой стороной: я должен платить ещё _и в этом_ магазине? Это к тому, что хотелось бы покупать один раз и иметь на всех доступных платформах, как это делается в steam.
Это смотря, что считать развитием. Пользователи и user expirience? Пожалуй да. Но технологии развиваются в upstream и близких к нему дистрибутивах (Fedora, OpenSUSE). Достаточно вспомнить где первыми появились kms, plymouth, pulseaudio (замечу, что на fedora он тогда работал заметно лучше чем на ubuntu), udisk/upower, etc…
Если вы купили в России ретэйл то нечего удивляться, это стандартная практика. Компания становится перед выбором: продавать по заниженной цене (всё-таки в России покупательская способность ниже) или не продавать вообще. Отсюда вытекает залочка на регион — компании как-то нужно охранять свои продажи в других регионах. По этой причине я покупаю только на Steam, без привязки к региону. Более того, предзаказ и распродажи на Steam порой позволяют не хило сэкономить.
>Но уже через 5-6 лет работы эти понятия могут подзабыться
В конкретном случае — нет, всё-таки они искали системных программистов, которые эти проблемы решают более-менее регулярно.
Основы это основы компьютерной графики, а не как работать с определённым апи. Мне понравилась «Интерактивная компьютерная графика» Эйнджела, там хоть всё тот же устаревший fixed pipeline но полностью объясняется как он работает. По книге я смог написать простенький софтварный рендер — очень полезный опыт.
И в этой теме я отпишусь, что затрахали матрицы с таким разрешением делать. А вот корпус и начинка хорошие, даже взял бы в замен своего x80n, если бы не матрица. Алсо, лучше бы не позорились и не предустанавливали свой bloatware.
Можешь посмотреть мой подход gist.github.com/938592 (внимание, код не для продакшена и не вылезанный). Идея в том, что для разных материалов мы НЕ пишем c++ код, а пишем шэйдеры, а в json файлике прописываем атрибуты и юниформы.
В конкретном случае — нет, всё-таки они искали системных программистов, которые эти проблемы решают более-менее регулярно.
struct node* invert(struct node *nd) { struct node *next = NULL; while (nd) { struct node *tmp = nd->next; nd->next = next; next = nd; nd = tmp; } return next; }