Рубрика «c++» - 29

Для программистов настали тяжёлые времена. Хотя Утечка Памяти была уничтожена valgrind-ом, оставшиеся силы UB преследовали программистов по всей галактике.

Избегая встречи с грозными знаковыми переполнениями, группа борцов за свободу, ведомая Кириллом Бриллиантовым, Глебом Соловьевым и Денисом Лочмелисом, обустроила новый секретный репозиторий.

Тёмная владычица UB неинициализированная переменная, одержимая желанием сломать все программы галактики, разослала тысячи раздражающих ошибок в самые далекие уголки космоса…

Мы — трое студентов бакалавриата «Прикладная математика и информатика» в Питерской Вышке. В качестве учебного проекта во втором полугодии мы решили написать UB-tester — анализатор кода на С++.

Анализатор C++ на первом курсе: миф, иллюзия или выдумка? - 1
Читать полностью »

Как не надо разрабатывать звуковые движки - 1

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

Читать полностью »

Сборка Hello World с помощью Bake
Сборка Hello World с помощью Bake

Наверное, большинство из вас согласится, что на сегодняшний день наибольшую популярность среди систем сборки для проектов на C/C++ имеет CMake. Каково же было мое удивление увидеть в проекте на новой работе собственную систему сборки - Bake.

Читать полностью »

Этим летом на онлайн-конференции C++ Russia побывал самый почетный гость, какой только может быть на мероприятии по C++: создатель этого языка Бьярне Страуструп. Мы поговорили с ним о контроле над языком, нововведениях, удалении старых функций, о том, почему у языка нет четкой экосистемы, и как так получилось, что у С++ нет стандартной сетевой библиотеки.

А поскольку сообщество C++ вечно обсуждает Rust, не обошлось и без вопроса о заимствованиях между этими языками.

Бьярне Страуструп о контроле над языком, удалении старых функций, заимствованиях у Rust и многом другом - 1

Бьярне не нуждается в особых представлениях, но у него столько активностей и заслуг, что попробуем перечислить:

  • написал множество публикаций, в том числе книги «Язык программирования С++» и «Программирование: Принципы и практика использования C++»
  • работает управляющим директором в отделе технологий компании «Морган Стенли» в Нью-Йорке
  • преподает в Колумбийском университете
  • принимает активное участие в работе комитета по стандартизации C++
  • состоит в Национальной академии инженерии США, IEEE, Ассоциации по вычислительной технике. Исследует программирование в области распределенных вычислений, инструменты развития ПО и языки программирования.
  • Магистр и заслуженный профессор Орхусского университета и доктор по направлению «Информатика» Кембриджского университета и почетный член научного сообщества Колледжа Черчилля, заслуженный профессор Санкт-Петербургского ИТМО

Вопросы ему задавали С++ программист, организатор С++ Siberia Сергей Платонов и руководитель разработки бэкенда Яндекс.Лавки Сергей Федоров. Под катом — перевод, а также видеозапись интервью для тех, кто хочет послушать на английском.

Читать полностью »

Валидация данных в C++ с использованием библиотеки cpp-validator - 1

Казалось бы, валидация данных — это одна из базовых задач в программировании, которая встретится и в начале изучения языка вместе с "Hello world!", и в том или ином виде будет присутствовать в множестве зрелых проектов. Тем не менее, Google до сих пор выдает ноль релевантных результатов при попытке найти универсальную библиотеку валидации данных с открытым исходным кодом на C++.

Читать полностью »

Я работаю техническим переводчиком Ижевской IT-компании CG Tribe, которая предложила мне внести свой вклад в сообщество и начать публиковать переводы интересных статей и руководств.

Здесь я буду публиковать перевод руководства к Vulkan API. Ссылка на источник — vulkan-tutorial.com. Поскольку переводом этого же руководства занимается еще один пользователь Хабра — kiwhy (https://habr.com/ru/users/kiwhy/), мы договорились
разделить уроки между собой. В своих публикациях я буду давать ссылки на главы, переведенные kiwhy.

Содержание

1. Вступление

2. Краткий обзор

3. Среда разработки

4. Отрисовка треугольника

  1. Подготовка к работе
  2. Отображение на экране
  3. Основы графического конвейера (pipeline)
  4. Отрисовка
  5. Повторное создание цепочки показа

5. Буферы вершин

  1. Описание
  2. Создание буфера вершин
  3. Staging буфер
  4. Буфер индексов

6. Uniform-буферы

  1. Дескриптор layout и буфера
  2. Дескриптор пула и sets

7. Текстурирование

  1. Изображения
  2. Image view и image sampler
  3. Комбинированный image sampler

8. Буфер глубины

9. Загрузка моделей

10. Создание мип-карт

11. Multisampling

FAQ

Политика конфиденциальности

1. Вступление


См. статью автора kiwhy — habr.com/ru/post/462137

2. Краткий обзор


Предпосылки возникновения Vulkan

Как нарисовать треугольник?

  1. Шаг 1 — Экземпляр (instance) и физические устройства
  2. Шаг 2 — Логическое устройство и семейства очередей
  3. Шаг 3 — Window surface и цепочки показа (swap chain)
  4. Шаг 4 — Image views и фреймбуферы
  5. Шаг 5 — Проходы рендера
  6. Шаг 6 — Графический конвейер (pipeline)
  7. Шаг 7 — Пул команд и буферы команд
  8. Шаг 8 — Основной цикл
  9. Выводы

Концепты API

  1. Стандарт оформления кода
  2. Слои валидации

В этой главе мы начнем знакомство с Vulkan и рассмотрим, какие проблемы он позволяет решить. Мы опишем шаги, необходимые для создания вашего первого треугольника. Это даст вам общее представление о стандарте и позволит понять логику расположения последующих глав. В заключение мы рассмотрим структуру Vulkan API и типичные случаи использования.Читать полностью »

Привет!

В поисках вдохновения, чем бы пополнить портфель издательства на тему С++, мы набрели на возникший словно из ниоткуда блог Артура О'Дуайера, кстати, уже написавшего одну книгу по C++. Сегодняшняя публикация посвящена теме чистого кода. Надеемся, что вам будут интересны как сам кейс, так и автор.
Читать полностью »

Герба Саттера (Herb Sutter) знает любой программист, пишущий на C++. Он автор книг, председатель комитета по стандартизации C++, а также архитектор языка программирования в Microsoft.

Герб Саттер о будущем С++, работе в комитете, фонде C++ Foundation и синтаксическом сахаре - 1

На C++ Russia 2020 Moscow Герб ответил на вопросы сообщества, заданные Анастасией Казаковой из JetBrains и Сергеем Федоровым из Яндекс.Лавки и поделился своими мыслями о С++20, стандартной библиотеке, концептах, синтаксическом сахаре и не только.

Мы перевели это интервью и теперь хотим поделиться с вами. Если хочется послушать интервью на английском — под катом есть также видеозапись.

Читать полностью »

Как-то мне позвонили из Ростелекома и предложили подключить IP TV. Ну что же, решил я, пусть жена с сыном смотрят в спальне мультики и согласился. И вот принесли мне заветную коробочку. Т.к. отдельного телевизора для неё у меня нет, то решил я значит подключить её к старому монитору, через переходник HDMI-VGA. Для звука у меня были старые компьютерные колонки. Решено — сделано. Всё прекрасно завелось с одним но: с пульта, который шёл в комплекте с приставкой, невозможно регулировать громкость звука. Как так то? Честно сказать никогда с таким не сталкивался. Особо я в причинах не разбирался, но вроде как пульт от Ростелекома прописывается в телевизоре, так что с пульта меняется громкость на самом телевизоре, а не на выходе из приставки. Удобно? Конечно, если подключить приставку к современному телевизору. А вот вставать с кровати и крутить крутилку на колонках каждый раз, когда нужно поменять громкость — неудобно. Решением этого вопроса и займёмся. Соберём отдельное устройство, которое будет регулировать громкость на наших колонках по сигналу с пульта.

Читать полностью »

Наблюдать за развитием файлообменной сети интересно, но ещё интереснее участвовать в нём.

На сегодняшний день, устанавливая и запуская современный NMDC хаб, новоиспечённый администратор получает доступ практически ко всем наработкам и накопленному в этой области опыту его предшественников. Он имеет систему, готовую к расширению и кастомизации в том числе с помощью многочисленных скриптов.

С ADC хабами иначе. Структура этого протокола предполагает расширяемость. Хочешь новую фичу? Ну что ж – предлагай, продвигай, реализуй, внедряй, пользуйся.Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js