mirror of
https://gitea.wildfiregames.com/0ad/0ad.git
synced 2026-06-21 01:29:50 +00:00
Split off Object-related functions from ScriptInterface
Follows 34b1920e7b.
This splits off the object-related functions, such as
[Set/Get/Has]Property, CreateObject, CreateArray, FreezeObject.
It also puts the definitions in the header itself, which might end up
with faster code here & there, though perhaps slower compilation time
(somewhat doubtful since we already included most things anyways).
Differential Revision: https://code.wildfiregames.com/D3956
This was SVN commit r25430.
This commit is contained in:
@@ -44,6 +44,7 @@
|
||||
#include "ps/UserReport.h"
|
||||
#include "ps/VideoMode.h"
|
||||
#include "scriptinterface/FunctionWrapper.h"
|
||||
#include "scriptinterface/Object.h"
|
||||
#include "scriptinterface/ScriptInterface.h"
|
||||
|
||||
#if OS_LINUX
|
||||
@@ -75,8 +76,8 @@
|
||||
|
||||
#endif
|
||||
|
||||
static void ReportSDL(const ScriptInterface& scriptInterface, JS::HandleValue settings);
|
||||
static void ReportGLLimits(const ScriptInterface& scriptInterface, JS::HandleValue settings);
|
||||
static void ReportSDL(const ScriptRequest& rq, JS::HandleValue settings);
|
||||
static void ReportGLLimits(const ScriptRequest& rq, JS::HandleValue settings);
|
||||
|
||||
void SetDisableAudio(bool disabled)
|
||||
{
|
||||
@@ -114,61 +115,61 @@ void RunHardwareDetection()
|
||||
// includes some fields that aren't directly useful for the hwdetect script)
|
||||
|
||||
JS::RootedValue settings(rq.cx);
|
||||
ScriptInterface::CreateObject(rq, &settings);
|
||||
Script::CreateObject(rq, &settings);
|
||||
|
||||
scriptInterface.SetProperty(settings, "os_unix", OS_UNIX);
|
||||
scriptInterface.SetProperty(settings, "os_bsd", OS_BSD);
|
||||
scriptInterface.SetProperty(settings, "os_linux", OS_LINUX);
|
||||
scriptInterface.SetProperty(settings, "os_android", OS_ANDROID);
|
||||
scriptInterface.SetProperty(settings, "os_macosx", OS_MACOSX);
|
||||
scriptInterface.SetProperty(settings, "os_win", OS_WIN);
|
||||
Script::SetProperty(rq, settings, "os_unix", OS_UNIX);
|
||||
Script::SetProperty(rq, settings, "os_bsd", OS_BSD);
|
||||
Script::SetProperty(rq, settings, "os_linux", OS_LINUX);
|
||||
Script::SetProperty(rq, settings, "os_android", OS_ANDROID);
|
||||
Script::SetProperty(rq, settings, "os_macosx", OS_MACOSX);
|
||||
Script::SetProperty(rq, settings, "os_win", OS_WIN);
|
||||
|
||||
scriptInterface.SetProperty(settings, "arch_ia32", ARCH_IA32);
|
||||
scriptInterface.SetProperty(settings, "arch_amd64", ARCH_AMD64);
|
||||
scriptInterface.SetProperty(settings, "arch_arm", ARCH_ARM);
|
||||
scriptInterface.SetProperty(settings, "arch_aarch64", ARCH_AARCH64);
|
||||
scriptInterface.SetProperty(settings, "arch_e2k", ARCH_E2K);
|
||||
scriptInterface.SetProperty(settings, "arch_ppc64", ARCH_PPC64);
|
||||
Script::SetProperty(rq, settings, "arch_ia32", ARCH_IA32);
|
||||
Script::SetProperty(rq, settings, "arch_amd64", ARCH_AMD64);
|
||||
Script::SetProperty(rq, settings, "arch_arm", ARCH_ARM);
|
||||
Script::SetProperty(rq, settings, "arch_aarch64", ARCH_AARCH64);
|
||||
Script::SetProperty(rq, settings, "arch_e2k", ARCH_E2K);
|
||||
Script::SetProperty(rq, settings, "arch_ppc64", ARCH_PPC64);
|
||||
|
||||
#ifdef NDEBUG
|
||||
scriptInterface.SetProperty(settings, "build_debug", 0);
|
||||
Script::SetProperty(rq, settings, "build_debug", 0);
|
||||
#else
|
||||
scriptInterface.SetProperty(settings, "build_debug", 1);
|
||||
Script::SetProperty(rq, settings, "build_debug", 1);
|
||||
#endif
|
||||
scriptInterface.SetProperty(settings, "build_opengles", CONFIG2_GLES);
|
||||
Script::SetProperty(rq, settings, "build_opengles", CONFIG2_GLES);
|
||||
|
||||
scriptInterface.SetProperty(settings, "build_datetime", std::string(__DATE__ " " __TIME__));
|
||||
scriptInterface.SetProperty(settings, "build_revision", std::wstring(svn_revision));
|
||||
Script::SetProperty(rq, settings, "build_datetime", std::string(__DATE__ " " __TIME__));
|
||||
Script::SetProperty(rq, settings, "build_revision", std::wstring(svn_revision));
|
||||
|
||||
scriptInterface.SetProperty(settings, "build_msc", (int)MSC_VERSION);
|
||||
scriptInterface.SetProperty(settings, "build_icc", (int)ICC_VERSION);
|
||||
scriptInterface.SetProperty(settings, "build_gcc", (int)GCC_VERSION);
|
||||
scriptInterface.SetProperty(settings, "build_clang", (int)CLANG_VERSION);
|
||||
Script::SetProperty(rq, settings, "build_msc", (int)MSC_VERSION);
|
||||
Script::SetProperty(rq, settings, "build_icc", (int)ICC_VERSION);
|
||||
Script::SetProperty(rq, settings, "build_gcc", (int)GCC_VERSION);
|
||||
Script::SetProperty(rq, settings, "build_clang", (int)CLANG_VERSION);
|
||||
|
||||
scriptInterface.SetProperty(settings, "gfx_card", gfx::CardName());
|
||||
scriptInterface.SetProperty(settings, "gfx_drv_ver", gfx::DriverInfo());
|
||||
Script::SetProperty(rq, settings, "gfx_card", gfx::CardName());
|
||||
Script::SetProperty(rq, settings, "gfx_drv_ver", gfx::DriverInfo());
|
||||
#if CONFIG2_AUDIO
|
||||
if (g_SoundManager)
|
||||
{
|
||||
scriptInterface.SetProperty(settings, "snd_card", g_SoundManager->GetSoundCardNames());
|
||||
scriptInterface.SetProperty(settings, "snd_drv_ver", g_SoundManager->GetOpenALVersion());
|
||||
Script::SetProperty(rq, settings, "snd_card", g_SoundManager->GetSoundCardNames());
|
||||
Script::SetProperty(rq, settings, "snd_drv_ver", g_SoundManager->GetOpenALVersion());
|
||||
}
|
||||
#endif
|
||||
ReportSDL(scriptInterface, settings);
|
||||
|
||||
ReportGLLimits(scriptInterface, settings);
|
||||
|
||||
scriptInterface.SetProperty(settings, "video_desktop_xres", g_VideoMode.GetDesktopXRes());
|
||||
scriptInterface.SetProperty(settings, "video_desktop_yres", g_VideoMode.GetDesktopYRes());
|
||||
scriptInterface.SetProperty(settings, "video_desktop_bpp", g_VideoMode.GetDesktopBPP());
|
||||
scriptInterface.SetProperty(settings, "video_desktop_freq", g_VideoMode.GetDesktopFreq());
|
||||
Script::SetProperty(rq, settings, "video_desktop_xres", g_VideoMode.GetDesktopXRes());
|
||||
Script::SetProperty(rq, settings, "video_desktop_yres", g_VideoMode.GetDesktopYRes());
|
||||
Script::SetProperty(rq, settings, "video_desktop_bpp", g_VideoMode.GetDesktopBPP());
|
||||
Script::SetProperty(rq, settings, "video_desktop_freq", g_VideoMode.GetDesktopFreq());
|
||||
|
||||
struct utsname un;
|
||||
uname(&un);
|
||||
scriptInterface.SetProperty(settings, "uname_sysname", std::string(un.sysname));
|
||||
scriptInterface.SetProperty(settings, "uname_release", std::string(un.release));
|
||||
scriptInterface.SetProperty(settings, "uname_version", std::string(un.version));
|
||||
scriptInterface.SetProperty(settings, "uname_machine", std::string(un.machine));
|
||||
Script::SetProperty(rq, settings, "uname_sysname", std::string(un.sysname));
|
||||
Script::SetProperty(rq, settings, "uname_release", std::string(un.release));
|
||||
Script::SetProperty(rq, settings, "uname_version", std::string(un.version));
|
||||
Script::SetProperty(rq, settings, "uname_machine", std::string(un.machine));
|
||||
|
||||
#if OS_LINUX
|
||||
{
|
||||
@@ -176,43 +177,43 @@ void RunHardwareDetection()
|
||||
if (ifs.good())
|
||||
{
|
||||
std::string str((std::istreambuf_iterator<char>(ifs)), std::istreambuf_iterator<char>());
|
||||
scriptInterface.SetProperty(settings, "linux_release", str);
|
||||
Script::SetProperty(rq, settings, "linux_release", str);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
scriptInterface.SetProperty(settings, "cpu_identifier", std::string(cpu_IdentifierString()));
|
||||
scriptInterface.SetProperty(settings, "cpu_frequency", os_cpu_ClockFrequency());
|
||||
scriptInterface.SetProperty(settings, "cpu_pagesize", (u32)os_cpu_PageSize());
|
||||
scriptInterface.SetProperty(settings, "cpu_largepagesize", (u32)os_cpu_LargePageSize());
|
||||
scriptInterface.SetProperty(settings, "cpu_numprocs", (u32)os_cpu_NumProcessors());
|
||||
Script::SetProperty(rq, settings, "cpu_identifier", std::string(cpu_IdentifierString()));
|
||||
Script::SetProperty(rq, settings, "cpu_frequency", os_cpu_ClockFrequency());
|
||||
Script::SetProperty(rq, settings, "cpu_pagesize", (u32)os_cpu_PageSize());
|
||||
Script::SetProperty(rq, settings, "cpu_largepagesize", (u32)os_cpu_LargePageSize());
|
||||
Script::SetProperty(rq, settings, "cpu_numprocs", (u32)os_cpu_NumProcessors());
|
||||
#if ARCH_X86_X64
|
||||
scriptInterface.SetProperty(settings, "cpu_numpackages", (u32)topology::NumPackages());
|
||||
scriptInterface.SetProperty(settings, "cpu_coresperpackage", (u32)topology::CoresPerPackage());
|
||||
scriptInterface.SetProperty(settings, "cpu_logicalpercore", (u32)topology::LogicalPerCore());
|
||||
Script::SetProperty(rq, settings, "cpu_numpackages", (u32)topology::NumPackages());
|
||||
Script::SetProperty(rq, settings, "cpu_coresperpackage", (u32)topology::CoresPerPackage());
|
||||
Script::SetProperty(rq, settings, "cpu_logicalpercore", (u32)topology::LogicalPerCore());
|
||||
#endif
|
||||
|
||||
scriptInterface.SetProperty(settings, "numa_numnodes", (u32)numa_NumNodes());
|
||||
scriptInterface.SetProperty(settings, "numa_factor", numa_Factor());
|
||||
scriptInterface.SetProperty(settings, "numa_interleaved", numa_IsMemoryInterleaved());
|
||||
Script::SetProperty(rq, settings, "numa_numnodes", (u32)numa_NumNodes());
|
||||
Script::SetProperty(rq, settings, "numa_factor", numa_Factor());
|
||||
Script::SetProperty(rq, settings, "numa_interleaved", numa_IsMemoryInterleaved());
|
||||
|
||||
scriptInterface.SetProperty(settings, "ram_total", (u32)os_cpu_MemorySize());
|
||||
scriptInterface.SetProperty(settings, "ram_total_os", (u32)os_cpu_QueryMemorySize());
|
||||
Script::SetProperty(rq, settings, "ram_total", (u32)os_cpu_MemorySize());
|
||||
Script::SetProperty(rq, settings, "ram_total_os", (u32)os_cpu_QueryMemorySize());
|
||||
|
||||
#if ARCH_X86_X64
|
||||
scriptInterface.SetProperty(settings, "x86_vendor", (u32)x86_x64::Vendor());
|
||||
scriptInterface.SetProperty(settings, "x86_model", (u32)x86_x64::Model());
|
||||
scriptInterface.SetProperty(settings, "x86_family", (u32)x86_x64::Family());
|
||||
Script::SetProperty(rq, settings, "x86_vendor", (u32)x86_x64::Vendor());
|
||||
Script::SetProperty(rq, settings, "x86_model", (u32)x86_x64::Model());
|
||||
Script::SetProperty(rq, settings, "x86_family", (u32)x86_x64::Family());
|
||||
|
||||
u32 caps0, caps1, caps2, caps3;
|
||||
x86_x64::GetCapBits(&caps0, &caps1, &caps2, &caps3);
|
||||
scriptInterface.SetProperty(settings, "x86_caps[0]", caps0);
|
||||
scriptInterface.SetProperty(settings, "x86_caps[1]", caps1);
|
||||
scriptInterface.SetProperty(settings, "x86_caps[2]", caps2);
|
||||
scriptInterface.SetProperty(settings, "x86_caps[3]", caps3);
|
||||
Script::SetProperty(rq, settings, "x86_caps[0]", caps0);
|
||||
Script::SetProperty(rq, settings, "x86_caps[1]", caps1);
|
||||
Script::SetProperty(rq, settings, "x86_caps[2]", caps2);
|
||||
Script::SetProperty(rq, settings, "x86_caps[3]", caps3);
|
||||
#endif
|
||||
|
||||
scriptInterface.SetProperty(settings, "timer_resolution", timer_Resolution());
|
||||
Script::SetProperty(rq, settings, "timer_resolution", timer_Resolution());
|
||||
|
||||
// The version should be increased for every meaningful change.
|
||||
const int reportVersion = 14;
|
||||
@@ -229,25 +230,25 @@ void RunHardwareDetection()
|
||||
ScriptFunction::CallVoid(rq, global, "RunHardwareDetection", settings);
|
||||
}
|
||||
|
||||
static void ReportSDL(const ScriptInterface& scriptInterface, JS::HandleValue settings)
|
||||
static void ReportSDL(const ScriptRequest& rq, JS::HandleValue settings)
|
||||
{
|
||||
SDL_version build, runtime;
|
||||
SDL_VERSION(&build);
|
||||
|
||||
char version[16];
|
||||
snprintf(version, ARRAY_SIZE(version), "%d.%d.%d", build.major, build.minor, build.patch);
|
||||
scriptInterface.SetProperty(settings, "sdl_build_version", version);
|
||||
Script::SetProperty(rq, settings, "sdl_build_version", version);
|
||||
|
||||
SDL_GetVersion(&runtime);
|
||||
snprintf(version, ARRAY_SIZE(version), "%d.%d.%d", runtime.major, runtime.minor, runtime.patch);
|
||||
scriptInterface.SetProperty(settings, "sdl_runtime_version", version);
|
||||
Script::SetProperty(rq, settings, "sdl_runtime_version", version);
|
||||
|
||||
// This is null in atlas (and further the call triggers an assertion).
|
||||
const char* backend = g_VideoMode.GetWindow() ? GetSDLSubsystem(g_VideoMode.GetWindow()) : "none";
|
||||
scriptInterface.SetProperty(settings, "sdl_video_backend", backend ? backend : "unknown");
|
||||
Script::SetProperty(rq, settings, "sdl_video_backend", backend ? backend : "unknown");
|
||||
}
|
||||
|
||||
static void ReportGLLimits(const ScriptInterface& scriptInterface, JS::HandleValue settings)
|
||||
static void ReportGLLimits(const ScriptRequest& rq, JS::HandleValue settings)
|
||||
{
|
||||
const char* errstr = "(error)";
|
||||
|
||||
@@ -255,20 +256,20 @@ static void ReportGLLimits(const ScriptInterface& scriptInterface, JS::HandleVal
|
||||
GLint i = -1; \
|
||||
glGetIntegerv(GL_##id, &i); \
|
||||
if (ogl_SquelchError(GL_INVALID_ENUM)) \
|
||||
scriptInterface.SetProperty(settings, "GL_" #id, errstr); \
|
||||
Script::SetProperty(rq, settings, "GL_" #id, errstr); \
|
||||
else \
|
||||
scriptInterface.SetProperty(settings, "GL_" #id, i); \
|
||||
Script::SetProperty(rq, settings, "GL_" #id, i); \
|
||||
} while (false)
|
||||
|
||||
#define INTEGER2(id) do { \
|
||||
GLint i[2] = { -1, -1 }; \
|
||||
glGetIntegerv(GL_##id, i); \
|
||||
if (ogl_SquelchError(GL_INVALID_ENUM)) { \
|
||||
scriptInterface.SetProperty(settings, "GL_" #id "[0]", errstr); \
|
||||
scriptInterface.SetProperty(settings, "GL_" #id "[1]", errstr); \
|
||||
Script::SetProperty(rq, settings, "GL_" #id "[0]", errstr); \
|
||||
Script::SetProperty(rq, settings, "GL_" #id "[1]", errstr); \
|
||||
} else { \
|
||||
scriptInterface.SetProperty(settings, "GL_" #id "[0]", i[0]); \
|
||||
scriptInterface.SetProperty(settings, "GL_" #id "[1]", i[1]); \
|
||||
Script::SetProperty(rq, settings, "GL_" #id "[0]", i[0]); \
|
||||
Script::SetProperty(rq, settings, "GL_" #id "[1]", i[1]); \
|
||||
} \
|
||||
} while (false)
|
||||
|
||||
@@ -276,20 +277,20 @@ static void ReportGLLimits(const ScriptInterface& scriptInterface, JS::HandleVal
|
||||
GLfloat f = std::numeric_limits<GLfloat>::quiet_NaN(); \
|
||||
glGetFloatv(GL_##id, &f); \
|
||||
if (ogl_SquelchError(GL_INVALID_ENUM)) \
|
||||
scriptInterface.SetProperty(settings, "GL_" #id, errstr); \
|
||||
Script::SetProperty(rq, settings, "GL_" #id, errstr); \
|
||||
else \
|
||||
scriptInterface.SetProperty(settings, "GL_" #id, f); \
|
||||
Script::SetProperty(rq, settings, "GL_" #id, f); \
|
||||
} while (false)
|
||||
|
||||
#define FLOAT2(id) do { \
|
||||
GLfloat f[2] = { std::numeric_limits<GLfloat>::quiet_NaN(), std::numeric_limits<GLfloat>::quiet_NaN() }; \
|
||||
glGetFloatv(GL_##id, f); \
|
||||
if (ogl_SquelchError(GL_INVALID_ENUM)) { \
|
||||
scriptInterface.SetProperty(settings, "GL_" #id "[0]", errstr); \
|
||||
scriptInterface.SetProperty(settings, "GL_" #id "[1]", errstr); \
|
||||
Script::SetProperty(rq, settings, "GL_" #id "[0]", errstr); \
|
||||
Script::SetProperty(rq, settings, "GL_" #id "[1]", errstr); \
|
||||
} else { \
|
||||
scriptInterface.SetProperty(settings, "GL_" #id "[0]", f[0]); \
|
||||
scriptInterface.SetProperty(settings, "GL_" #id "[1]", f[1]); \
|
||||
Script::SetProperty(rq, settings, "GL_" #id "[0]", f[0]); \
|
||||
Script::SetProperty(rq, settings, "GL_" #id "[1]", f[1]); \
|
||||
} \
|
||||
} while (false)
|
||||
|
||||
@@ -297,34 +298,34 @@ static void ReportGLLimits(const ScriptInterface& scriptInterface, JS::HandleVal
|
||||
const char* c = (const char*)glGetString(GL_##id); \
|
||||
if (!c) c = ""; \
|
||||
if (ogl_SquelchError(GL_INVALID_ENUM)) c = errstr; \
|
||||
scriptInterface.SetProperty(settings, "GL_" #id, std::string(c)); \
|
||||
Script::SetProperty(rq, settings, "GL_" #id, std::string(c)); \
|
||||
} while (false)
|
||||
|
||||
#define QUERY(target, pname) do { \
|
||||
GLint i = -1; \
|
||||
pglGetQueryivARB(GL_##target, GL_##pname, &i); \
|
||||
if (ogl_SquelchError(GL_INVALID_ENUM)) \
|
||||
scriptInterface.SetProperty(settings, "GL_" #target ".GL_" #pname, errstr); \
|
||||
Script::SetProperty(rq, settings, "GL_" #target ".GL_" #pname, errstr); \
|
||||
else \
|
||||
scriptInterface.SetProperty(settings, "GL_" #target ".GL_" #pname, i); \
|
||||
Script::SetProperty(rq, settings, "GL_" #target ".GL_" #pname, i); \
|
||||
} while (false)
|
||||
|
||||
#define VERTEXPROGRAM(id) do { \
|
||||
GLint i = -1; \
|
||||
pglGetProgramivARB(GL_VERTEX_PROGRAM_ARB, GL_##id, &i); \
|
||||
if (ogl_SquelchError(GL_INVALID_ENUM)) \
|
||||
scriptInterface.SetProperty(settings, "GL_VERTEX_PROGRAM_ARB.GL_" #id, errstr); \
|
||||
Script::SetProperty(rq, settings, "GL_VERTEX_PROGRAM_ARB.GL_" #id, errstr); \
|
||||
else \
|
||||
scriptInterface.SetProperty(settings, "GL_VERTEX_PROGRAM_ARB.GL_" #id, i); \
|
||||
Script::SetProperty(rq, settings, "GL_VERTEX_PROGRAM_ARB.GL_" #id, i); \
|
||||
} while (false)
|
||||
|
||||
#define FRAGMENTPROGRAM(id) do { \
|
||||
GLint i = -1; \
|
||||
pglGetProgramivARB(GL_FRAGMENT_PROGRAM_ARB, GL_##id, &i); \
|
||||
if (ogl_SquelchError(GL_INVALID_ENUM)) \
|
||||
scriptInterface.SetProperty(settings, "GL_FRAGMENT_PROGRAM_ARB.GL_" #id, errstr); \
|
||||
Script::SetProperty(rq, settings, "GL_FRAGMENT_PROGRAM_ARB.GL_" #id, errstr); \
|
||||
else \
|
||||
scriptInterface.SetProperty(settings, "GL_FRAGMENT_PROGRAM_ARB.GL_" #id, i); \
|
||||
Script::SetProperty(rq, settings, "GL_FRAGMENT_PROGRAM_ARB.GL_" #id, i); \
|
||||
} while (false)
|
||||
|
||||
#define BOOL(id) INTEGER(id)
|
||||
@@ -599,30 +600,30 @@ static void ReportGLLimits(const ScriptInterface& scriptInterface, JS::HandleVal
|
||||
#define GLXQCR_INTEGER(id) do { \
|
||||
unsigned int i = UINT_MAX; \
|
||||
if (pglXQueryCurrentRendererIntegerMESA(id, &i)) \
|
||||
scriptInterface.SetProperty(settings, #id, i); \
|
||||
Script::SetProperty(rq, settings, #id, i); \
|
||||
} while (false)
|
||||
|
||||
#define GLXQCR_INTEGER2(id) do { \
|
||||
unsigned int i[2] = { UINT_MAX, UINT_MAX }; \
|
||||
if (pglXQueryCurrentRendererIntegerMESA(id, i)) { \
|
||||
scriptInterface.SetProperty(settings, #id "[0]", i[0]); \
|
||||
scriptInterface.SetProperty(settings, #id "[1]", i[1]); \
|
||||
Script::SetProperty(rq, settings, #id "[0]", i[0]); \
|
||||
Script::SetProperty(rq, settings, #id "[1]", i[1]); \
|
||||
} \
|
||||
} while (false)
|
||||
|
||||
#define GLXQCR_INTEGER3(id) do { \
|
||||
unsigned int i[3] = { UINT_MAX, UINT_MAX, UINT_MAX }; \
|
||||
if (pglXQueryCurrentRendererIntegerMESA(id, i)) { \
|
||||
scriptInterface.SetProperty(settings, #id "[0]", i[0]); \
|
||||
scriptInterface.SetProperty(settings, #id "[1]", i[1]); \
|
||||
scriptInterface.SetProperty(settings, #id "[2]", i[2]); \
|
||||
Script::SetProperty(rq, settings, #id "[0]", i[0]); \
|
||||
Script::SetProperty(rq, settings, #id "[1]", i[1]); \
|
||||
Script::SetProperty(rq, settings, #id "[2]", i[2]); \
|
||||
} \
|
||||
} while (false)
|
||||
|
||||
#define GLXQCR_STRING(id) do { \
|
||||
const char* str = pglXQueryCurrentRendererStringMESA(id); \
|
||||
if (str) \
|
||||
scriptInterface.SetProperty(settings, #id ".string", str); \
|
||||
Script::SetProperty(rq, settings, #id ".string", str); \
|
||||
} while (false)
|
||||
|
||||
|
||||
@@ -636,7 +637,7 @@ static void ReportGLLimits(const ScriptInterface& scriptInterface, JS::HandleVal
|
||||
|
||||
const char* glxexts = glXQueryExtensionsString(dpy, scrnum);
|
||||
|
||||
scriptInterface.SetProperty(settings, "glx_extensions", glxexts);
|
||||
Script::SetProperty(rq, settings, "glx_extensions", glxexts);
|
||||
|
||||
if (strstr(glxexts, "GLX_MESA_query_renderer") && pglXQueryCurrentRendererIntegerMESA && pglXQueryCurrentRendererStringMESA)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user