本文整理汇总了C++中PolycodeShaderModule::hasShader方法的典型用法代码示例。如果您正苦于以下问题:C++ PolycodeShaderModule::hasShader方法的具体用法?C++ PolycodeShaderModule::hasShader怎么用?C++ PolycodeShaderModule::hasShader使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PolycodeShaderModule
的用法示例。
在下文中一共展示了PolycodeShaderModule::hasShader方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: applyMaterial
void OpenGLRenderer::applyMaterial(Material *material, ShaderBinding *localOptions,unsigned int shaderIndex) {
if(!material->getShader(shaderIndex) || !shadersEnabled) {
setTexture(NULL);
return;
}
FixedShaderBinding *fBinding;
switch(material->getShader(shaderIndex)->getType()) {
case Shader::FIXED_SHADER:
// FixedShader *fShader = (FixedShader*)material->getShader();
fBinding = (FixedShaderBinding*)material->getShaderBinding(shaderIndex);
setTexture(fBinding->getDiffuseTexture());
// setTexture(fShader->getDiffuseTexture());
break;
case Shader::MODULE_SHADER:
currentMaterial = material;
if(material->shaderModule == NULL) {
for(int m=0; m < shaderModules.size(); m++) {
PolycodeShaderModule *shaderModule = shaderModules[m];
if(shaderModule->hasShader(material->getShader(shaderIndex))) {
material->shaderModule = (void*)shaderModule;
}
}
} else {
PolycodeShaderModule *shaderModule = (PolycodeShaderModule*)material->shaderModule;
shaderModule->applyShaderMaterial(this, material, localOptions, shaderIndex);
currentShaderModule = shaderModule;
}
break;
}
setBlendingMode(material->blendingMode);
}
示例2: applyMaterial
void OpenGLRenderer::applyMaterial(Material *material, ShaderBinding *localOptions,unsigned int shaderIndex) {
if(!material->getShader(shaderIndex) || !shadersEnabled) {
setTexture(NULL);
return;
}
GLfloat data4[] = {material->diffuseColor.r, material->diffuseColor.g, material->diffuseColor.b, material->diffuseColor.a};
glMaterialfv(GL_FRONT, GL_DIFFUSE, data4);
data4[0] = material->specularColor.r;
data4[1] = material->specularColor.g;
data4[2] = material->specularColor.b;
data4[3] = material->specularStrength;
glMaterialfv(GL_FRONT, GL_SPECULAR, data4);
glMaterialf(GL_FRONT, GL_SHININESS, material->specularValue);
data4[0] = ambientColor.r;
data4[1] = ambientColor.g;
data4[2] = ambientColor.b;
data4[3] = 1.0;
glMaterialfv(GL_FRONT, GL_AMBIENT, data4);
FixedShaderBinding *fBinding;
switch(material->getShader(shaderIndex)->getType()) {
case Shader::FIXED_SHADER:
// FixedShader *fShader = (FixedShader*)material->getShader();
fBinding = (FixedShaderBinding*)material->getShaderBinding(shaderIndex);
setTexture(fBinding->getDiffuseTexture());
// setTexture(fShader->getDiffuseTexture());
break;
case Shader::MODULE_SHADER:
currentMaterial = material;
if(material->shaderModule == NULL) {
for(int m=0; m < shaderModules.size(); m++) {
PolycodeShaderModule *shaderModule = shaderModules[m];
if(shaderModule->hasShader(material->getShader(shaderIndex))) {
material->shaderModule = (void*)shaderModule;
}
}
} else {
PolycodeShaderModule *shaderModule = (PolycodeShaderModule*)material->shaderModule;
shaderModule->applyShaderMaterial(this, material, localOptions, shaderIndex);
currentShaderModule = shaderModule;
}
break;
}
}
示例3: applyMaterial
void Renderer::applyMaterial(Material *material, ShaderBinding *localOptions,unsigned int shaderIndex, bool forceMaterial) {
if(overrideMaterial) {
if(!forceMaterial) {
material = overrideMaterial;
}
}
if(!material->getShader(shaderIndex) || !shadersEnabled) {
setTexture(NULL);
return;
}
FixedShaderBinding *fBinding;
Shader *shader = material->getShader(shaderIndex);
if(shader->numPointLights + shader->numSpotLights > 0) {
sortLights();
}
switch(material->getShader(shaderIndex)->getType()) {
case Shader::FIXED_SHADER:
fBinding = (FixedShaderBinding*)material->getShaderBinding(shaderIndex);
setTexture(fBinding->getDiffuseTexture());
break;
case Shader::MODULE_SHADER:
currentMaterial = material;
if(material->shaderModule == NULL) {
for(int m=0; m < shaderModules.size(); m++) {
PolycodeShaderModule *shaderModule = shaderModules[m];
if(shaderModule->hasShader(material->getShader(shaderIndex))) {
material->shaderModule = (void*)shaderModule;
}
}
} else {
PolycodeShaderModule *shaderModule = (PolycodeShaderModule*)material->shaderModule;
shaderModule->applyShaderMaterial(this, material, localOptions, shaderIndex);
currentShaderModule = shaderModule;
}
break;
}
setBlendingMode(material->blendingMode);
setWireframePolygonMode(material->wireframe);
}