minetest/irr/src/COGLESCoreExtensionHandler.h
grorp 50b7523336 ogles 2 driver: Delete some dead code
grepping for IRR_COMPILE_GLES2_COMMON gives no other results

COGLESCoreExtensionHandler is only used through COpenGL3ExtensionHandler
2024-11-08 20:43:24 +01:00

100 lines
2.6 KiB
C++

// Copyright (C) 2017 Michael Zeilfelder
// This file is part of the "Irrlicht Engine".
// For conditions of distribution and use, see copyright notice in Irrlicht.h
#pragma once
// Can be included from different ES versions
// (this is also the reason why this file is header-only as correct OGL ES headers have to be included first)
#include "irrMath.h"
#include "COpenGLCoreFeature.h"
namespace irr
{
namespace video
{
class COGLESCoreExtensionHandler
{
public:
// Enums used internally to check for ES extensions quickly.
// We buffer all extensions on start once in an array.
// All OpenGL ES versions share the same extensions (WebGL adds it's own extensions on top of ES2)
enum EOGLESFeatures
{
// If you update this enum also update the corresponding OGLESFeatureStrings string-array
IRR_GL_APPLE_texture_format_BGRA8888,
IRR_GL_EXT_blend_minmax,
IRR_GL_EXT_texture_format_BGRA8888,
IRR_GL_EXT_texture_rg,
IRR_GL_OES_depth_texture,
IRR_GL_OES_element_index_uint,
IRR_GL_OES_packed_depth_stencil,
IRR_GL_OES_texture_float,
IRR_GL_OES_texture_half_float,
IRR_OGLES_Feature_Count
};
COGLESCoreExtensionHandler() :
MaxAnisotropy(1), MaxIndices(0xffff),
MaxTextureSize(1), MaxTextureLODBias(0.f), StencilBuffer(false)
{
for (u32 i = 0; i < IRR_OGLES_Feature_Count; ++i)
FeatureAvailable[i] = false;
DimAliasedLine[0] = 1.f;
DimAliasedLine[1] = 1.f;
DimAliasedPoint[0] = 1.f;
DimAliasedPoint[1] = 1.f;
}
virtual ~COGLESCoreExtensionHandler() {}
const COpenGLCoreFeature &getFeature() const
{
return Feature;
}
void dump() const
{
for (u32 i = 0; i < IRR_OGLES_Feature_Count; ++i)
os::Printer::log(getFeatureString(i), FeatureAvailable[i] ? " true" : " false");
}
protected:
const char *getFeatureString(size_t index) const
{
// One for each EOGLESFeatures
static const char *const OGLESFeatureStrings[IRR_OGLES_Feature_Count] = {
"GL_APPLE_texture_format_BGRA8888",
"GL_EXT_blend_minmax",
"GL_EXT_texture_format_BGRA8888",
"GL_EXT_texture_rg",
"GL_OES_depth_texture",
"GL_OES_element_index_uint",
"GL_OES_packed_depth_stencil",
"GL_OES_texture_float",
"GL_OES_texture_half_float",
};
return OGLESFeatureStrings[index];
}
COpenGLCoreFeature Feature;
u8 MaxAnisotropy;
u32 MaxIndices;
u32 MaxTextureSize;
f32 MaxTextureLODBias;
//! Minimal and maximal supported thickness for lines without smoothing
float DimAliasedLine[2];
//! Minimal and maximal supported thickness for points without smoothing
float DimAliasedPoint[2];
bool StencilBuffer;
bool FeatureAvailable[IRR_OGLES_Feature_Count];
};
}
}