Обновление приложения для поддержки спецификации ядра OpenGL 3.2

Спецификация OpenGL 3.0 осудила много областей функциональности, определенной в более ранних версиях спецификации OpenGL. Профиль Ядра OpenGL 3.2 явно удаляет эти устаревшие функции и корректирует другие части спецификации для обеспечения оптимизированного, чистого интерфейса программирования для OpenGL. Используйте эту главу для помощи Вам в миграции Вашего приложения далеко от этой осуждаемой функциональности.

Удаленная функциональность

Функции, удаленные из OpenGL, описаны в в Приложении E спецификации Ядра OpenGL 3.2, и необходимо использовать это в качестве полного руководства для изменений, которые необходимо внести в приложении. Вот сводка старших значащих областей, изменившихся:

Расширение изменяется на OS X

OpenGL 3.2 обеспечивает функциональность, которую более ранние версии OpenGL обеспечили посредством расширений. Другие расширения, ранее поддерживавшиеся на OS X, больше не поддерживаются, когда Ваше приложение использует профиль Ядра OpenGL 3.2. Таблица b-1 перечисляет расширения, описанные в другом месте в этом руководстве; используйте эту таблицу, чтобы определить, поддерживается ли расширение, и в противном случае какая эквивалентная функциональность поддерживается.

Табличные b-1  Расширения описаны в этом руководстве

Расширение

Состояние

APPLE_fence

Устаревший. Используйте ARB_Sync функциональность, предоставленная OpenGL 3.2 (Ядро).

ARB_vertex_buffer_object

Функциональность, предоставленная OpenGL 3.2 (Ядро).

APPLE_vertex_array_object

Устаревший. Используйте ARB_vertex_array_object функциональность, предоставленная OpenGL 3.2 (Ядро).

APPLE_vertex_array_range

Устаревший. Используйте ARB_map_buffer_range функциональность, предоставленная OpenGL 3.2 (Ядро).

APPLE_flush_buffer_range

Устаревший. Используйте ARB_map_buffer_range функциональность, предоставленная OpenGL 3.2 (Ядро).

APPLE_client_storage

Поддерживаемый.

APPLE_texture_range

Поддерживаемый.

ARB_texture_rectangle

Функциональность, предоставленная OpenGL 3.2 (Ядро).

ARB_shader_objects

Функциональность, предоставленная OpenGL 3.2 (Ядро).

ARB_vertex_shader

Функциональность, предоставленная OpenGL 3.2 (Ядро).

ARB_fragment_shader

Функциональность, предоставленная OpenGL 3.2 (Ядро).

EXT_transform_feedback

Функциональность, предоставленная OpenGL 3.2 (Ядро).

EXT_gpu_shader4

Устаревший. Функциональность включена в GLSL 1.5

EXT_geometry_shader4

Функциональность, предоставленная OpenGL 3.2 (Ядро).

EXT_bindable_uniform

Устаревший. Используйте ARB_uniform_buffer_object функциональность, предоставленная OpenGL 3.2 (Ядро).

ARB_pixel_buffer_object

Функциональность, предоставленная OpenGL 3.2 (Ядро).

EXT_framebuffer_object

Устаревший. Используйте ARB_framebuffer_object функциональность, предоставленная OpenGL 3.2 (Ядро).

APPLE_pixel_buffer

Устаревший. Используйте объекты кадрового буфера вместо этого.

NV_multisample_filter_hint

Устаревший. Используйте мультивыбранный renderbuffers для точного управления мультивыборкой.