Skip to main content

Что такое класс OpenGL®?

Класс OpenGL® может ссылаться либо на объектно-ориентированную реализацию частей интерфейса абстрактного программирования (API) OpenGL®, либо на класс, который использует вызовы функций OpenGL® в своем собственном коде. Природа библиотеки OpenGL® означает, что в действительности не было поддержки объектно-ориентированной версии API, и большинство программ вызывали функции в том виде, в котором они были написаны, вне класса. Поскольку объектно-ориентированные языки стали более распространенными, различные библиотеки классов OpenGL®, по-видимому, выступали в качестве объектов-оболочек для базовой библиотеки. Преимущество использования класса OpenGL®, который был полностью реализован, а не просто набор функций, предоставляемых в библиотеке, включая инкапсуляцию и способ получения новых функциональных классов посредством наследования при защите базовой реализации. Не все разработчики используют библиотеку классов OpenGL®, потому что может быть непонятно переключаться на полностью объектно-ориентированные парадигмы программирования.

В объектно-ориентированном программировании класс - это набор данных, переменных и функций, называемых методами, которые изменяют информацию, которую он содержит. Происхождение OpenGL® как библиотеки функций для языка программирования C, который не был объектно-ориентированным языком, означает, что некоторые из разработанных методологий и практик программирования не очень подходят для объектно-ориентированного программирования. Когда некоторые операционные системы и другие устройства стали больше полагаться на объектно-ориентированные языки, появилось несколько библиотек классов OpenGL®.

Некоторые из библиотек классов OpenGL® просто инкапсулировали основные функции OpenGL®. Это обеспечило безопасную и совместимую основу для программирования. Хотя этот тип класса был необходим для некоторых языков, он все еще требовал превращения вспомогательных классов в функциональное приложение. Действительно организованные библиотеки фактически разделили функции OpenGL® на серию классов, каждый из которых управляет отдельным элементом библиотеки, таким как рендеринг.

Ряд библиотек классов OpenGL® начал расширяться на базовом движке OpenGL® и стал включать больше функций. В первую очередь это включало специальный класс для обработки объектов в сцене, который называется графом сцены. Эти классы действовали как обертки для основных библиотек, обеспечивая при этом логическую структуру, которая могла бы быть построена для создания программы, которая выполняла нечто большее, чем просто визуализация сцены и выход, без необходимости каждый раз изобретать новую среду OpenGL®.

Почти каждая библиотека OpenGL®, включая служебные библиотеки, так или иначе была переведена в объектно-ориентированную форму. В некоторых случаях это облегчало разработчикам возможность поддерживать OpenGL® в актуальном состоянии на различных существующих устройствах, формируя в основном единый план реализации OpenGL® в объектно-ориентированной среде. С добавлением объектно-ориентированных инструментов разработки это также позволило перетаскивать класс OpenGL® в программу, поддерживающую визуальную разработку, упрощая некоторые из более сложных аспектов.