Subversion Repositories AndroidProjects

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1452 chris 1
<?xml version="1.0" encoding="UTF-8"?>
2
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
3
              "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
4
<refentry id="glShaderSource">
5
    <refmeta>
6
        <refentrytitle>glShaderSource</refentrytitle>
7
        <manvolnum>3G</manvolnum>
8
    </refmeta>
9
    <refnamediv>
10
        <refname>glShaderSource</refname>
11
        <refpurpose>Replaces the source code in a shader object</refpurpose>
12
    </refnamediv>
13
    <refsynopsisdiv><title>C Specification</title>
14
        <funcsynopsis>
15
            <funcprototype>
16
                <funcdef>void <function>glShaderSource</function></funcdef>
17
                <paramdef>GLuint <parameter>shader</parameter></paramdef>
18
                <paramdef>GLsizei <parameter>count</parameter></paramdef>
19
                <paramdef>const GLchar **<parameter>string</parameter></paramdef>
20
                <paramdef>const GLint *<parameter>length</parameter></paramdef>
21
            </funcprototype>
22
        </funcsynopsis>
23
    </refsynopsisdiv>
24
    <refsect1 id="parameters"><title>Parameters</title>
25
        <variablelist>
26
            <varlistentry>
27
                <term><parameter>shader</parameter></term>
28
                <listitem>
29
                    <para>Specifies the handle of the shader object
30
                    whose source code is to be replaced.</para>
31
                </listitem>
32
            </varlistentry>
33
            <varlistentry>
34
                <term><parameter>count</parameter></term>
35
                <listitem>
36
                    <para>Specifies the number of elements in the
37
                    <parameter>string</parameter> and
38
                    <parameter>length</parameter>
39
                    arrays.</para>
40
                </listitem>
41
            </varlistentry>
42
            <varlistentry>
43
                <term><parameter>string</parameter></term>
44
                <listitem>
45
                    <para>Specifies an array of pointers to strings
46
                    containing the source code to be loaded into the
47
                    shader.</para>
48
                </listitem>
49
            </varlistentry>
50
            <varlistentry>
51
                <term><parameter>length</parameter></term>
52
                <listitem>
53
                    <para>Specifies an array of string lengths.</para>
54
                </listitem>
55
            </varlistentry>
56
        </variablelist>
57
    </refsect1>
58
    <refsect1 id="description"><title>Description</title>
59
        <para><function>glShaderSource</function> sets the source code
60
        in <parameter>shader</parameter> to the source code in the array
61
        of strings specified by <parameter>string</parameter>. Any
62
        source code previously stored in the shader object is completely
63
        replaced. The number of strings in the array is specified by
64
        <parameter>count</parameter>. If <parameter>length</parameter>
65
        is <constant>NULL</constant>, each string is assumed to be null
66
        terminated. If <parameter>length</parameter> is a value other
67
        than <constant>NULL</constant>, it points to an array containing
68
        a string length for each of the corresponding elements of
69
        <parameter>string</parameter>. Each element in the
70
        <parameter>length</parameter> array may contain the length of
71
        the corresponding string (the null character is not counted as
72
        part of the string length) or a value less than 0 to indicate
73
        that the string is null terminated. The source code strings are
74
        not scanned or parsed at this time; they are simply copied into
75
        the specified shader object.</para>
76
    </refsect1>
77
    <refsect1 id="notes"><title>Notes</title>
78
        <para><function>glShaderSource</function> is available only if
79
        the GL version is 2.0 or greater.</para>
80
 
81
        <para>OpenGL copies the shader source code strings when
82
        <function>glShaderSource</function> is called, so an application
83
        may free its copy of the source code strings immediately after
84
        the function returns.</para>
85
    </refsect1>
86
    <refsect1 id="errors"><title>Errors</title>
87
        <para><constant>GL_INVALID_VALUE</constant> is generated if
88
        <parameter>shader</parameter> is not a value generated by
89
        OpenGL.</para>
90
 
91
        <para><constant>GL_INVALID_OPERATION</constant> is generated if
92
        <parameter>shader</parameter> is not a shader object.</para>
93
 
94
        <para><constant>GL_INVALID_VALUE</constant> is generated if
95
        <parameter>count</parameter> is less than 0.</para>
96
 
97
        <para><constant>GL_INVALID_OPERATION</constant> is generated if
98
        <function>glShaderSource</function> is executed between the
99
        execution of
100
        <citerefentry><refentrytitle>glBegin</refentrytitle></citerefentry>
101
        and the corresponding execution of
102
        <citerefentry><refentrytitle>glEnd</refentrytitle></citerefentry>.</para>
103
    </refsect1>
104
    <refsect1 id="associatedgets"><title>Associated Gets</title>
105
        <para><citerefentry><refentrytitle>glGetShader</refentrytitle></citerefentry>
106
        with arguments <parameter>shader</parameter> and
107
        <constant>GL_SHADER_SOURCE_LENGTH</constant></para>
108
 
109
        <para><citerefentry><refentrytitle>glGetShaderSource</refentrytitle></citerefentry>
110
        with argument <parameter>shader</parameter></para>
111
 
112
        <para><citerefentry><refentrytitle>glIsShader</refentrytitle></citerefentry></para>
113
    </refsect1>
114
    <refsect1 id="seealso"><title>See Also</title>
115
        <para><citerefentry><refentrytitle>glCompileShader</refentrytitle></citerefentry>,
116
        <citerefentry><refentrytitle>glCreateShader</refentrytitle></citerefentry>,
117
        <citerefentry><refentrytitle>glDeleteShader</refentrytitle></citerefentry></para>
118
    </refsect1>
119
    <refsect1 id="Copyright"><title>Copyright</title>
120
        <para>
121
            Copyright <trademark class="copyright"></trademark> 2003-2005 3Dlabs Inc. Ltd.
122
            This material may be distributed subject to the terms and conditions set forth in
123
            the Open Publication License, v 1.0, 8 June 1999.
124
            <ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
125
        </para>
126
    </refsect1>
127
</refentry>