1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
//! Exposes the OpenGL [`Program`](struct.Program.html) object and related types.
use PhantomData;
use gl;
use *;
use GLObject;
/// An OpenGL program object.
///
/// A program is used in OpenGL to customize the render pipeline. A program is
/// composed of multiple [`Shader`](../shader/struct.Shader.html) objects, each
/// of which computes one step in the render pipeline, and feed data to the
/// next program.
///
/// A program will automatically be deleted after going out of scope.
///
/// # See also
/// [`gl.build_shader`](../context/program_context/trait.ContextProgramBuilderExt.html#tymethod.build_program):
/// Build and link a new program object
///
/// [`gl.create_program`](../context/program_context/trait.ContextProgramExt.html#method.create_program):
/// Create a new, empty program object.
///
/// [`gl.use_program`](../context/program_context/trait.ProgramContext.html#method.use_program):
/// Bind a program to use for drawing calls, returning a [`ProgramBinding`]
/// (../context/program_context/struct.ProgramBinding.html) type.
/// An OpenGL generic vertex attribute.
///
/// This type is used for getting and setting up the vertex attributes of a
/// program, which describes how a program should treat the raw data that
/// is rendered with a draw call such as [`gl.draw_arrays_range`]
/// (context/buffer_context/trait.ContextBufferExt.html#method.draw_arrays_range).
///
/// # See also
/// [`gl.get_attrib_location`](context/program_context/trait.ContextProgramExt.html#method.get_attrib_location):
/// Get a `ProgramAttrib` from an attribute's name within a program.
/// An OpenGL program uniform.
///
/// This type is used for getting and setting a program's uniform variables,
/// which are constants used during a single draw call, but can be changed
/// between draw calls.
///
/// # See also
/// [`gl.get_uniform_location`](context/program_context/trait.ContextProgramExt.html#method.get_uniform_location):
/// Get a `ProgramUnfirom` from a uniform's name within a program.
///
/// [`gl.set_uniform`](context/program_context/trait.ContextProgramExt.html#method.set_uniform):
/// Set or change the value of a program's uniform.