ATTRIBUTE // только для вершины

VARYING

UNIFORM

type_specifier:

VOID

FLOAT

INT

BOOL

VEC2

VEC3

VEC4

BVEC2

BVEC3

BVEC4

IVEC2

IVEC3

IVEC4

MAT2

MAT3

MAT4

SAMPLER1D

SAMPLER2D

SAMPLER3D

SAMPLERCUBE

SAMPLER1DSHAD0W

SAMPLER2DSHAD0W struct_speci fier TYPEJAME

struct_speci fier:

STRUCT IDENTIFIER LEFT_BRACE struct_declaration_list RIGHT_BRACE .

STRUCT LEFT_BRACE struct_declaration_list RIGHT_BRACE

struct_decl arati onj i st: struct_declaration

struct_declaration_list struct_declaration

struct_declaration:

type_specifier struct_declarator_list SEMICOLON

struct_declarator J i st: struct_declarator

struct_declaratorJist COMMA struct_declarator

struct_declarator:

IDENTIFIER

IDENTIFIER LEFTJ3RACKET constant_expression RIGHT_BRACKET

initializer:

assignment_expression

declaration_statement: declaration

statement:

compound_statement

simple_statement

// оператор 'goto' и метки не поддерживаются

simple_statement:

declaration__statement

expression_statement

selection_statement

iteration_statement

jump_statement

compound_statement:

LEFT_BRACE RIGHT_BRACE

LEFT_BRACE statement_list RIGHT_BRACE

statement_no_new_scope:

compound_statement_no_new_scope

simple_statement

compound_statement_no_new_scope:

LEFT_BRACE RIGHT_BRACE

LEFT_BRACE statement__l i st RIGHT_BRACE

statement_list:

statement

statementjist statement

expressi on_statement:

SEMICOLON

expression SEMICOLON

selecti on_statement:

IF LEFT_PAREN expression RIGHT_PAREN selection_rest_statement

selecti on_rest_statement: statement ELSE statement statement

// оператор 'switch' не поддерживается

condition:

expression

fully_specified_type IDENTIFIER EQUAL initializer

i terati on_statement:

WHILE LEFT_PAREN condition RIGHT_PAREN statement_no_new_scope DO statement WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON

FOR LEFT_PAREN for_init_statement for_rest_statement RIGHT_PAREN

statement_no_new_scope

for_init_statement: expression_statement declaration_statement

conditionopt: condition /* пусто */

for_rest_statement:

conditionopt SEMICOLON conditionopt SEMICOLON expression

jump_statement:

CONTINUE SEMICOLON BREAK SEMICOLON RETURN SEMICOLON RETURN expression SEMICOLON

DISCARD SEMICOLON // только для фрагментного шейдера

// оператор 'goto' не поддерживается

translation_unit:

external_declaration translation_unit external_declaration

external_declaration: function_definition declaration

function_definition:

function_prototype compound_statement_no_new_scope

Приложение Б Справочник функций API

В этом разделе содержатся подробное описание функций OpenGL для создания, компиляции, компоновки шейдеров, написанных на языке шейдеров OpenGL, и манипулирования ими, а также описание функций для работы с дополнительными атрибутами вершин и uniform-переменными.

Права на эти материалы принадлежат компании 3Dlabs, Inc., Ltd. Перепечатано с разрешения 3Dlabs.

glAttachObjectARB

Название

glAttachObjectARB - связывает шейдерный объект с программным объектом.

Прототип функции

void glAttach0bjectARB(GLhand1eARB program. GLhandleARB shader)

Параметры

program Дескриптор программного объекта, с которым связывается шейдерный объект, shader Дескриптор связываемого шейдерного объекта.


⇐ вернуться назад | | далее ⇒