forked from Mirrorlandia_minetest/irrlicht
OpenGL: Print more debug info at init time
This commit is contained in:
parent
602a4050b5
commit
9f2d13a2b6
@ -205,7 +205,7 @@ COpenGL3DriverBase::~COpenGL3DriverBase()
|
|||||||
|
|
||||||
// print renderer information
|
// print renderer information
|
||||||
VendorName = GL.GetString(GL_VENDOR);
|
VendorName = GL.GetString(GL_VENDOR);
|
||||||
os::Printer::log(VendorName.c_str(), ELL_INFORMATION);
|
os::Printer::log("Vendor", VendorName.c_str(), ELL_INFORMATION);
|
||||||
|
|
||||||
Version = getVersionFromOpenGL();
|
Version = getVersionFromOpenGL();
|
||||||
}
|
}
|
||||||
@ -222,6 +222,7 @@ COpenGL3DriverBase::~COpenGL3DriverBase()
|
|||||||
{
|
{
|
||||||
initVersion();
|
initVersion();
|
||||||
initFeatures();
|
initFeatures();
|
||||||
|
printTextureFormats();
|
||||||
|
|
||||||
// reset cache handler
|
// reset cache handler
|
||||||
delete CacheHandler;
|
delete CacheHandler;
|
||||||
@ -276,6 +277,22 @@ COpenGL3DriverBase::~COpenGL3DriverBase()
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void COpenGL3DriverBase::printTextureFormats()
|
||||||
|
{
|
||||||
|
char buf[128];
|
||||||
|
for (u32 i = 0; i < static_cast<u32>(ECF_UNKNOWN); i++) {
|
||||||
|
auto &info = TextureFormats[i];
|
||||||
|
if (!info.InternalFormat) {
|
||||||
|
snprintf_irr(buf, sizeof(buf), "%s -> unsupported", ColorFormatNames[i]);
|
||||||
|
} else {
|
||||||
|
snprintf_irr(buf, sizeof(buf), "%s -> %#06x %#06x %#06x%s",
|
||||||
|
ColorFormatNames[i], info.InternalFormat, info.PixelFormat,
|
||||||
|
info.PixelType, info.Converter ? " (c)" : "");
|
||||||
|
}
|
||||||
|
os::Printer::log(buf, ELL_DEBUG);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void COpenGL3DriverBase::loadShaderData(const io::path& vertexShaderName, const io::path& fragmentShaderName, c8** vertexShaderData, c8** fragmentShaderData)
|
void COpenGL3DriverBase::loadShaderData(const io::path& vertexShaderName, const io::path& fragmentShaderName, c8** vertexShaderData, c8** fragmentShaderData)
|
||||||
{
|
{
|
||||||
io::path vsPath(OGLES2ShaderPath);
|
io::path vsPath(OGLES2ShaderPath);
|
||||||
|
@ -272,7 +272,6 @@ namespace video
|
|||||||
COpenGL3CacheHandler* getCacheHandler() const;
|
COpenGL3CacheHandler* getCacheHandler() const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
//! inits the opengl-es driver
|
|
||||||
virtual bool genericDriverInit(const core::dimension2d<u32>& screenSize, bool stencilBuffer);
|
virtual bool genericDriverInit(const core::dimension2d<u32>& screenSize, bool stencilBuffer);
|
||||||
|
|
||||||
void initVersion();
|
void initVersion();
|
||||||
@ -391,6 +390,8 @@ private:
|
|||||||
|
|
||||||
IContextManager* ContextManager;
|
IContextManager* ContextManager;
|
||||||
|
|
||||||
|
void printTextureFormats();
|
||||||
|
|
||||||
void addDummyMaterial(E_MATERIAL_TYPE type);
|
void addDummyMaterial(E_MATERIAL_TYPE type);
|
||||||
|
|
||||||
unsigned QuadIndexCount;
|
unsigned QuadIndexCount;
|
||||||
|
@ -9,8 +9,11 @@
|
|||||||
#include "irrString.h"
|
#include "irrString.h"
|
||||||
#include "SMaterial.h"
|
#include "SMaterial.h"
|
||||||
#include "fast_atof.h"
|
#include "fast_atof.h"
|
||||||
|
#include "os.h"
|
||||||
#include <mt_opengl.h>
|
#include <mt_opengl.h>
|
||||||
|
|
||||||
|
// FIXME: this basically duplicates what mt_opengl.h already does
|
||||||
|
|
||||||
namespace irr
|
namespace irr
|
||||||
{
|
{
|
||||||
namespace video
|
namespace video
|
||||||
@ -24,7 +27,7 @@ namespace video
|
|||||||
pos = next + 1;
|
pos = next + 1;
|
||||||
}
|
}
|
||||||
addExtension(pos);
|
addExtension(pos);
|
||||||
updateLegacyExtensionList();
|
extensionsLoaded();
|
||||||
}
|
}
|
||||||
|
|
||||||
void COpenGL3ExtensionHandler::initExtensionsNew()
|
void COpenGL3ExtensionHandler::initExtensionsNew()
|
||||||
@ -32,10 +35,10 @@ namespace video
|
|||||||
int ext_count = GetInteger(GL_NUM_EXTENSIONS);
|
int ext_count = GetInteger(GL_NUM_EXTENSIONS);
|
||||||
for (int k = 0; k < ext_count; k++)
|
for (int k = 0; k < ext_count; k++)
|
||||||
addExtension(reinterpret_cast<const char *>(GL.GetStringi(GL_EXTENSIONS, k)));
|
addExtension(reinterpret_cast<const char *>(GL.GetStringi(GL_EXTENSIONS, k)));
|
||||||
updateLegacyExtensionList();
|
extensionsLoaded();
|
||||||
}
|
}
|
||||||
|
|
||||||
void COpenGL3ExtensionHandler::addExtension(std::string name) {
|
void COpenGL3ExtensionHandler::addExtension(std::string &&name) {
|
||||||
Extensions.emplace(std::move(name));
|
Extensions.emplace(std::move(name));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -43,7 +46,10 @@ namespace video
|
|||||||
return Extensions.find(name) != Extensions.end();
|
return Extensions.find(name) != Extensions.end();
|
||||||
}
|
}
|
||||||
|
|
||||||
void COpenGL3ExtensionHandler::updateLegacyExtensionList() {
|
void COpenGL3ExtensionHandler::extensionsLoaded() {
|
||||||
|
os::Printer::log((std::string("Loaded ") + std::to_string(Extensions.size()) + " extensions:").c_str(), ELL_DEBUG);
|
||||||
|
for (const auto &it : Extensions)
|
||||||
|
os::Printer::log((std::string(" ") + it).c_str(), ELL_DEBUG);
|
||||||
for (size_t j = 0; j < IRR_OGLES_Feature_Count; ++j)
|
for (size_t j = 0; j < IRR_OGLES_Feature_Count; ++j)
|
||||||
FeatureAvailable[j] = queryExtension(getFeatureString(j));
|
FeatureAvailable[j] = queryExtension(getFeatureString(j));
|
||||||
}
|
}
|
||||||
|
@ -159,8 +159,8 @@ namespace video
|
|||||||
bool BlendMinMaxSupported = false;
|
bool BlendMinMaxSupported = false;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void addExtension(std::string name);
|
void addExtension(std::string &&name);
|
||||||
void updateLegacyExtensionList();
|
void extensionsLoaded();
|
||||||
|
|
||||||
std::unordered_set<std::string> Extensions;
|
std::unordered_set<std::string> Extensions;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user