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:
|
||||
CacheHandler->setBlendEquation(GL_FUNC_REVERSE_SUBTRACT);
|
||||
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:
|
||||
break;
|
||||
}
|
||||
|
@ -166,6 +166,7 @@ namespace video
|
||||
}
|
||||
|
||||
bool AnisotropicFilterSupported = false;
|
||||
bool BlendMinMaxSupported = false;
|
||||
|
||||
private:
|
||||
void addExtension(std::string name);
|
||||
|
@ -34,6 +34,7 @@ namespace video {
|
||||
initExtensionsNew();
|
||||
|
||||
AnisotropicFilterSupported = isVersionAtLeast(4, 6) || queryExtension("GL_ARB_texture_filter_anisotropic") || queryExtension("GL_EXT_texture_filter_anisotropic");
|
||||
BlendMinMaxSupported = true;
|
||||
|
||||
// COGLESCoreExtensionHandler::Feature
|
||||
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");
|
||||
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");
|
||||
|
||||
// COGLESCoreExtensionHandler::Feature
|
||||
|
Loading…
Reference in New Issue
Block a user