खोज…


परिचय

प्रोग्राम API के माध्यम से प्रोग्राम ऑब्जेक्ट की कई विशेषताओं को प्राप्त किया जा सकता है।

वर्टेक्स विशेषता जानकारी

शीर्ष विशेषता के बारे में जानकारी OGL फ़ंक्शन glGetProgram और GL_ACTIVE_ATTRIBUTES और GL_ACTIVE_ATTRIBUTE_MAX_LENGTH के मापदंडों से प्राप्त की जा सकती है।

एक सक्रिय shader विशेषता का स्थान OGL फ़ंक्शन glGetAttribLocation द्वारा विशेषता के सूचकांक द्वारा निर्धारित किया जा सकता है।

GLuint shaderProg = ...;
std::map< std::string, GLint > attributeLocation;

GLint maxAttribLen, nAttribs;
glGetProgramiv( shaderProg, GL_ACTIVE_ATTRIBUTES, &nAttribs );
glGetProgramiv( shaderProg, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, &maxAttribLen 
GLint written, size;
GLenum type;
std::vector< GLchar >attrName( maxAttribLen );
for( int attribInx = 0; attribInx < nAttribs; attribInx++ )
{
    glGetActiveAttrib( shaderProg, attribInx, maxAttribLen, &written, &size, &type, &attrName[0] );
    attributeLocation[attrName] = glGetAttribLocation( shaderProg, attrName.data() );
}

समान जानकारी

एक कार्यक्रम में सक्रिय वर्दी के बारे में जानकारी OGL फ़ंक्शन glGetProgram और GL_ACTIVE_UNIFORMS और GL_ACTIVE_UNIFORM_MAX_LENGTH के मापदंडों से प्राप्त की जा सकती है।

एक सक्रिय shader वर्दी चर का स्थान OGL फ़ंक्शन glGetActiveUniform , विशेषता के सूचकांक द्वारा निर्धारित किया जा सकता है।

GLuint shaderProg = ...;
std::map< std::string, GLint > unifomLocation;

GLint maxUniformLen, nUniforms;
glGetProgramiv( shaderProg, GL_ACTIVE_UNIFORMS, &nUniforms );
glGetProgramiv( shaderProg, GL_ACTIVE_UNIFORM_MAX_LENGTH, &maxUniformLen );

GLint written, size;
GLenum type;
std::vector< GLchar >uniformName( maxUniformLen );
for( int uniformInx = 0; uniformInx < nUniforms; uniformInx++ )
{
    glGetActiveUniform( shaderProg, uniformInx, maxUniformLen, &written, &size, &type, &uniformName[0] );
    unifomLocation[uniformName] = glGetUniformLocation( shaderProg, uniformName.data() );
}


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow