1. 程式人生 > >GLES2.0中文API-glAttachShader

GLES2.0中文API-glAttachShader

名稱

glAttachShader- 將著色器物件附加到program物件

C規範

void glAttachShader(GLuint program,GLuint shader);

引數

program

指定著色器物件將附加到的program物件。

shader

指定要附加的著色器物件。

描述

為了建立一個可執行檔案,必須要有一種方法來指定將被連結在一起的東西的列表。那麼,program物件就提供了這麼一種機制。

要在program物件中連結的shaders必須首先附加到該program物件上。那glAttachShader方法就是用於將指定的shaders附著到指定的program物件上。這就表明shader將被包含在要被執行的program的連結操作中。

不管shader物件是否被附著到program物件上,在shader物件上執行的所有操作都是有效的。

在原始碼載入到著色器物件之前或著色器物件被編譯之前,將shader物件附著到program物件上都是被允許的

多個同類型(例如都是vertex shader型別,或都是fragment shader型別)的shader物件不能被附著到同一個program物件上。但是,單個shader物件可以被附著到多個program物件上

如果著色器物件在附加到程式物件時被刪除,它將被標記為刪除,並且直到呼叫glDetachShader才能將其從它所連線的所有程式物件中分離出來,否則刪除將不會發生。

錯誤

GL_INVALID_VALUE:如果programshader不是由OpenGL所生成的值。

GL_INVALID_OPERATION:如果program引數傳的不是program物件

GL_INVALID_OPERATION:如果shader引數傳的不是shader物件

GL_INVALID_OPERATION如果shader已經被新增到program物件上了,或者已經有一個同類型的shader物件新增到該program物件上的時候。

相關Gets

glGetAttachedShaders可依據一個有效的program物件來獲得其所關聯的shaders。

glIsProgram

glIsShader

另見

glCompileShaderglDetachShaderglLinkProgramglShaderSourceglShaderBinary

版權

https://www.khronos.org/registry/OpenGL-Refpages/es2.0/xhtml/glAttachShader.xml

Copyright © 1991-2006 Silicon Graphics, Inc.本文件的許可是根據SGI Free Software B License.詳見http://oss.sgi.com/projects/FreeB/.

Android,OpenGL ES,圖形學