OGL/Render.cpp, InitDriverInfo(): Use std::string_view to eliminate string copies.
Consolidate the NVIDIA Tegra and non-Tegra checks into one branch.
This commit is contained in:
parent
1d7f128693
commit
05101b251c
|
@ -144,28 +144,35 @@ static void APIENTRY ClearDepthf(GLfloat depthval)
|
||||||
|
|
||||||
static void InitDriverInfo()
|
static void InitDriverInfo()
|
||||||
{
|
{
|
||||||
std::string svendor = std::string(g_ogl_config.gl_vendor);
|
const std::string_view svendor(g_ogl_config.gl_vendor);
|
||||||
std::string srenderer = std::string(g_ogl_config.gl_renderer);
|
const std::string_view srenderer(g_ogl_config.gl_renderer);
|
||||||
std::string sversion = std::string(g_ogl_config.gl_version);
|
const std::string_view sversion(g_ogl_config.gl_version);
|
||||||
DriverDetails::Vendor vendor = DriverDetails::VENDOR_UNKNOWN;
|
DriverDetails::Vendor vendor = DriverDetails::VENDOR_UNKNOWN;
|
||||||
DriverDetails::Driver driver = DriverDetails::DRIVER_UNKNOWN;
|
DriverDetails::Driver driver = DriverDetails::DRIVER_UNKNOWN;
|
||||||
DriverDetails::Family family = DriverDetails::Family::UNKNOWN;
|
DriverDetails::Family family = DriverDetails::Family::UNKNOWN;
|
||||||
double version = 0.0;
|
double version = 0.0;
|
||||||
|
|
||||||
// Get the vendor first
|
// Get the vendor first
|
||||||
if (svendor == "NVIDIA Corporation" && srenderer != "NVIDIA Tegra")
|
if (svendor == "NVIDIA Corporation")
|
||||||
{
|
{
|
||||||
vendor = DriverDetails::VENDOR_NVIDIA;
|
if (srenderer != "NVIDIA Tegra")
|
||||||
|
{
|
||||||
|
vendor = DriverDetails::VENDOR_NVIDIA;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
vendor = DriverDetails::VENDOR_TEGRA;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (svendor == "ATI Technologies Inc." || svendor == "Advanced Micro Devices, Inc.")
|
else if (svendor == "ATI Technologies Inc." || svendor == "Advanced Micro Devices, Inc.")
|
||||||
{
|
{
|
||||||
vendor = DriverDetails::VENDOR_ATI;
|
vendor = DriverDetails::VENDOR_ATI;
|
||||||
}
|
}
|
||||||
else if (std::string::npos != sversion.find("Mesa"))
|
else if (sversion.find("Mesa") != std::string::npos)
|
||||||
{
|
{
|
||||||
vendor = DriverDetails::VENDOR_MESA;
|
vendor = DriverDetails::VENDOR_MESA;
|
||||||
}
|
}
|
||||||
else if (std::string::npos != svendor.find("Intel"))
|
else if (svendor.find("Intel") != std::string::npos)
|
||||||
{
|
{
|
||||||
vendor = DriverDetails::VENDOR_INTEL;
|
vendor = DriverDetails::VENDOR_INTEL;
|
||||||
}
|
}
|
||||||
|
@ -186,10 +193,6 @@ static void InitDriverInfo()
|
||||||
{
|
{
|
||||||
vendor = DriverDetails::VENDOR_IMGTEC;
|
vendor = DriverDetails::VENDOR_IMGTEC;
|
||||||
}
|
}
|
||||||
else if (svendor == "NVIDIA Corporation" && srenderer == "NVIDIA Tegra")
|
|
||||||
{
|
|
||||||
vendor = DriverDetails::VENDOR_TEGRA;
|
|
||||||
}
|
|
||||||
else if (svendor == "Vivante Corporation")
|
else if (svendor == "Vivante Corporation")
|
||||||
{
|
{
|
||||||
vendor = DriverDetails::VENDOR_VIVANTE;
|
vendor = DriverDetails::VENDOR_VIVANTE;
|
||||||
|
@ -238,8 +241,8 @@ static void InitDriverInfo()
|
||||||
else if (srenderer.find("Ivybridge") != std::string::npos)
|
else if (srenderer.find("Ivybridge") != std::string::npos)
|
||||||
family = DriverDetails::Family::INTEL_IVY;
|
family = DriverDetails::Family::INTEL_IVY;
|
||||||
}
|
}
|
||||||
else if (std::string::npos != srenderer.find("AMD") ||
|
else if (srenderer.find("AMD") != std::string::npos ||
|
||||||
std::string::npos != srenderer.find("ATI"))
|
srenderer.find("ATI") != std::string::npos)
|
||||||
{
|
{
|
||||||
driver = DriverDetails::DRIVER_R600;
|
driver = DriverDetails::DRIVER_R600;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue