forked from Mirrorlandia_minetest/irrlicht
OpenGL3: Support min/max blend modes
This commit is contained in:
parent
81ad195aa3
commit
1f15fd0805
@ -1405,6 +1405,18 @@ COpenGL3DriverBase::~COpenGL3DriverBase()
|
|||||||
case EBO_REVSUBTRACT:
|
case EBO_REVSUBTRACT:
|
||||||
CacheHandler->setBlendEquation(GL_FUNC_REVERSE_SUBTRACT);
|
CacheHandler->setBlendEquation(GL_FUNC_REVERSE_SUBTRACT);
|
||||||
break;
|
break;
|
||||||
|
case EBO_MIN:
|
||||||
|
if (BlendMinMaxSupported)
|
||||||
|
CacheHandler->setBlendEquation(GL_MIN);
|
||||||
|
else
|
||||||
|
os::Printer::log("Attempt to use EBO_MIN without driver support", ELL_WARNING);
|
||||||
|
break;
|
||||||
|
case EBO_MAX:
|
||||||
|
if (BlendMinMaxSupported)
|
||||||
|
CacheHandler->setBlendEquation(GL_MAX);
|
||||||
|
else
|
||||||
|
os::Printer::log("Attempt to use EBO_MAX without driver support", ELL_WARNING);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -166,6 +166,7 @@ namespace video
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool AnisotropicFilterSupported = false;
|
bool AnisotropicFilterSupported = false;
|
||||||
|
bool BlendMinMaxSupported = false;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void addExtension(std::string name);
|
void addExtension(std::string name);
|
||||||
|
@ -34,6 +34,7 @@ namespace video {
|
|||||||
initExtensionsNew();
|
initExtensionsNew();
|
||||||
|
|
||||||
AnisotropicFilterSupported = isVersionAtLeast(4, 6) || queryExtension("GL_ARB_texture_filter_anisotropic") || queryExtension("GL_EXT_texture_filter_anisotropic");
|
AnisotropicFilterSupported = isVersionAtLeast(4, 6) || queryExtension("GL_ARB_texture_filter_anisotropic") || queryExtension("GL_EXT_texture_filter_anisotropic");
|
||||||
|
BlendMinMaxSupported = true;
|
||||||
|
|
||||||
// COGLESCoreExtensionHandler::Feature
|
// COGLESCoreExtensionHandler::Feature
|
||||||
static_assert(MATERIAL_MAX_TEXTURES <= 16, "Only up to 16 textures are guaranteed");
|
static_assert(MATERIAL_MAX_TEXTURES <= 16, "Only up to 16 textures are guaranteed");
|
||||||
|
@ -32,6 +32,7 @@ namespace video {
|
|||||||
|
|
||||||
const bool MRTSupported = Version.Major >= 3 || queryExtension("GL_EXT_draw_buffers");
|
const bool MRTSupported = Version.Major >= 3 || queryExtension("GL_EXT_draw_buffers");
|
||||||
AnisotropicFilterSupported = queryExtension("GL_EXT_texture_filter_anisotropic");
|
AnisotropicFilterSupported = queryExtension("GL_EXT_texture_filter_anisotropic");
|
||||||
|
BlendMinMaxSupported = (Version.Major >= 3) || FeatureAvailable[IRR_GL_EXT_blend_minmax];
|
||||||
const bool TextureLODBiasSupported = queryExtension("GL_EXT_texture_lod_bias");
|
const bool TextureLODBiasSupported = queryExtension("GL_EXT_texture_lod_bias");
|
||||||
|
|
||||||
// COGLESCoreExtensionHandler::Feature
|
// COGLESCoreExtensionHandler::Feature
|
||||||
|
Loading…
Reference in New Issue
Block a user