00 C++17 & OpenGL Красота в коде

2 730

00 C++17 & OpenGL Красота в коде

В жизни каждого человека есть то любовь к которому он пронес через всю жизнь. В моей жизни такой любовью был язык программирования С++. Встреча с ним состоялась в те далекие времена, когда в продаже появились первые нормальные компьютеры с 486 процессором, Windows 95 и Visual C++ 6.0.

В то время С++ только родился и большинство профессиональных программистов восприняло его в штыки - он требовал совершенно другого стиля мышления. Как в той истории про 40-ножку, которую спросили с какой ноги она начинает ходить только наоборот. От способа описания какой ногой и куда ходить перешли к определению самой 40-ножки, а какой ногой она ходит - пусть сама разбирается.

Справедливости ради, нужно сказать, что большинство программистов быстро оценили всю мощь нового языка - он позволил создать программы, которые сами стали писать программы.

А в 2011, 2014 и 2017 годах произошло рождение бабочки из куколки старого С++. Сейчас написано достаточно книг об этом новом С++. Одно «но» - их очень скучно читать. И это проявляется с двух сторон - вы вручную набираете код и вам это быстро надоедает. Или вы используете готовый код, который предлагают авторы книг - вы его скопировали, он заработал и ... вы его благополучно забыли. А все потому, что пример там правильные, но НИ О ЧЕМ.

Решение пришло, как всегда, неожиданно - читая книгу «Бьярне Страуструп. Программирование. Принципы и практика с использованием С++. Второе издание. Москва • Санкт-Петербург • Киев . 2016», я обнаружил, что целых пять глав плюс одно приложение он посвятил графической библиотеке FLTK.

В старых С++ была собственная графическая библиотека, которая подключалась к проекту через файл «graphics.h» и в большинстве случаев ее вполне хватало. Но в дальнейшем она тихо исчезла.

Однако FLTK предоставляет возможность программирования только двухмерной графики. Для трехмерной она использует OpenGL.

И я подумал - а зачем мне посредник? Почему бы не использовать OpenGL напрямую?

И это оказалось именно той фишкой, которая сделала процесс изучения С++17 не просто интересным, а по-настоящему увлекательным.

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

А теперь предлагаю оценить всю мощь и красоту С++17 - вот минимальная РАБОЧАЯ программа на С++ и OpenGL:

#include <GL/glut.h>

int main()

{

   glutCreateWindow("Small program");

   glutDisplayFunc([]{});

   glutMainLoop();

}

для сравнения минимальная программа на «чистом» С++:

#include <iostream>

int main()

{

   std::cout << "Hello, World!" << std::endl;

   stl::cin.get();

}

Обалдеть! Графическая программ всего НА ОДНУ СТРОЧКУ больше.

И вот у меня есть желание поделится этой красотой - красивыми бывают не только музыка или любое другое искусство, но и программный код - это тоже ОЧЕНЬ КРАСИВО.

Я не буду рассуждать на темы «почему?» - для этого есть специальная литература. Я буду показывать «как» сделать то или другое с чем у меня возникали проблемы и как красиво их можно решить на С++17.

Единственное - это первая и последняя моя статья на эту тему на КОНТе. Основная проблема с ним - перестали приходить извещения на почту.

Для тех, кого это заинтересует - буду писать в своем ЖЖ

http://wlad55wlad.livejournal.com/


Невоенный анализ-61. Разыскивается карлик-узурпатор. 6 мая 2024

Традиционный дисклеймер: Я не военный, не анонимный телеграмщик, не Цицерон, тусовки от меня в истерике, не учу Генштаб воевать, генералов не увольняю, в «милитари порно» не снимаюсь, под ...

И за учИтелей своих... Россия предоставит желающим оружие для нанесения ударов по территории Великобритании?

Не сказать, чтоб неожиданно, но то один, то другой западный Лидер-у-руля делает заявления о желательности нанесения своим оружием ударов по территории России. Отметился вот и британский...

Украинка, уехавшая в Россию, дает смачный ответ всем хейтерам, уехавшим в Европу
  • voenkorr
  • Сегодня 11:59
  • В топе

Попалось видео, записанное украинской дивчиной, которая после начала конфликта уехала в Россию. И вот уже два года пытается "донести правду". Ее постоянно атакуют хейтеры, называют кучей...

Обсудить
  • дааааа было время в 1992-93 в институте начинал учить............. нэ пригодилось!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!