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

2 803

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/


Грядущее мятежно, но надежда есть

Знаю я, что эта песня Не к погоде и не к месту, Мне из лестного бы теста Вам пирожные печь. Александр Градский Итак, информации уже достаточно, чтобы обрисовать основные сценарии развития с...

Их ценности за две минуты... Аркадий, чо ты ржёшь?

Здравствуй, дорогая Русская Цивилизация. В Европе и Америке сейчас новая тема, они когда выходят на трибуну, обязаны поприветствовать все гендеры. Это не издевательство, на полном серьё...

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