mirror of
https://github.com/godotengine/godot-angle-static.git
synced 2026-01-03 14:09:33 +03:00
Fix samples' arguments to SampleApplication
Two new parameters were added in https://chromium-review.googlesource.com/c/angle/angle/+/3664916 with default values, but not all samples were updated to accomodate them. As a result, many samples passed in the major version for client type and thus couldn't run. This change introduces an enum class for the client type + version to make sure such a mistake is impossible. Bug: angleproject:7360 Change-Id: I450edee612d08a7b67530b61615f63268fefb200 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3748413 Auto-Submit: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Lingfeng Yang <lfy@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
This commit is contained in:
committed by
Angle LUCI CQ
parent
007a4f061d
commit
5a65a2b1c6
@@ -18,8 +18,7 @@ class CaptureReplaySample : public SampleApplication
|
||||
: SampleApplication("CaptureReplaySample",
|
||||
argc,
|
||||
argv,
|
||||
3,
|
||||
0,
|
||||
ClientType::ES3_0,
|
||||
traceInfo.drawSurfaceWidth,
|
||||
traceInfo.drawSurfaceHeight),
|
||||
mTraceInfo(traceInfo)
|
||||
|
||||
@@ -25,7 +25,7 @@ class GLES1DrawTextureSample : public SampleApplication
|
||||
{
|
||||
public:
|
||||
GLES1DrawTextureSample(int argc, char **argv)
|
||||
: SampleApplication("GLES1DrawTexture", argc, argv, 1, 0, 1280, 800)
|
||||
: SampleApplication("GLES1DrawTexture", argc, argv, ClientType::ES1, 1280, 800)
|
||||
{}
|
||||
|
||||
bool initialize() override
|
||||
|
||||
@@ -23,7 +23,7 @@ class FlatShadingSample : public SampleApplication
|
||||
{
|
||||
public:
|
||||
FlatShadingSample(int argc, char **argv)
|
||||
: SampleApplication("FlatShadingSample", argc, argv, 1, 0)
|
||||
: SampleApplication("FlatShadingSample", argc, argv, ClientType::ES1)
|
||||
{}
|
||||
|
||||
bool initialize() override
|
||||
|
||||
@@ -20,7 +20,7 @@ class GLES1HelloTriangleSample : public SampleApplication
|
||||
{
|
||||
public:
|
||||
GLES1HelloTriangleSample(int argc, char **argv)
|
||||
: SampleApplication("GLES1HelloTriangle", argc, argv, 1, 0)
|
||||
: SampleApplication("GLES1HelloTriangle", argc, argv, ClientType::ES1)
|
||||
{}
|
||||
|
||||
bool initialize() override
|
||||
|
||||
@@ -23,7 +23,7 @@ class SimpleLightingSample : public SampleApplication
|
||||
{
|
||||
public:
|
||||
SimpleLightingSample(int argc, char **argv)
|
||||
: SampleApplication("SimpleLightingSample", argc, argv, 1, 0)
|
||||
: SampleApplication("SimpleLightingSample", argc, argv, ClientType::ES1)
|
||||
{}
|
||||
|
||||
bool initialize() override
|
||||
|
||||
@@ -23,7 +23,7 @@ class GLES1SimpleTexture2DSample : public SampleApplication
|
||||
{
|
||||
public:
|
||||
GLES1SimpleTexture2DSample(int argc, char **argv)
|
||||
: SampleApplication("GLES1SimpleTexture2D", argc, argv, 1, 0)
|
||||
: SampleApplication("GLES1SimpleTexture2D", argc, argv, ClientType::ES1)
|
||||
{}
|
||||
|
||||
bool initialize() override
|
||||
|
||||
@@ -20,9 +20,7 @@
|
||||
class HelloTriangleSample : public SampleApplication
|
||||
{
|
||||
public:
|
||||
HelloTriangleSample(int argc, char **argv)
|
||||
: SampleApplication("HelloTriangle", argc, argv, 2, 0)
|
||||
{}
|
||||
HelloTriangleSample(int argc, char **argv) : SampleApplication("HelloTriangle", argc, argv) {}
|
||||
|
||||
bool initialize() override
|
||||
{
|
||||
|
||||
@@ -20,7 +20,7 @@ class MultiWindowSample : public SampleApplication
|
||||
{
|
||||
public:
|
||||
MultiWindowSample(int argc, char **argv)
|
||||
: SampleApplication("MultiWindow", argc, argv, 2, 0, 256, 256)
|
||||
: SampleApplication("MultiWindow", argc, argv, ClientType::ES2, 256, 256)
|
||||
{}
|
||||
|
||||
bool initialize() override
|
||||
|
||||
@@ -107,7 +107,12 @@ class MultipleContextsSample : public SampleApplication
|
||||
{
|
||||
public:
|
||||
MultipleContextsSample(int argc, char **argv)
|
||||
: SampleApplication("MultipleContexts", argc, argv, 3, 0, kWindowWidth, kWindowHeight)
|
||||
: SampleApplication("MultipleContexts",
|
||||
argc,
|
||||
argv,
|
||||
ClientType::ES3_0,
|
||||
kWindowWidth,
|
||||
kWindowHeight)
|
||||
{}
|
||||
|
||||
bool initialize() override
|
||||
|
||||
@@ -44,7 +44,7 @@ class MultiviewSample : public SampleApplication
|
||||
{
|
||||
public:
|
||||
MultiviewSample(int argc, char **argv)
|
||||
: SampleApplication("Multiview", argc, argv, 3, 0),
|
||||
: SampleApplication("Multiview", argc, argv, ClientType::ES3_0),
|
||||
mMultiviewProgram(0),
|
||||
mMultiviewPersperiveUniformLoc(-1),
|
||||
mMultiviewLeftEyeCameraUniformLoc(-1),
|
||||
|
||||
@@ -77,10 +77,7 @@ bool IsGLExtensionEnabled(const std::string &extName)
|
||||
SampleApplication::SampleApplication(std::string name,
|
||||
int argc,
|
||||
char **argv,
|
||||
EGLenum clientType,
|
||||
EGLint glMajorVersion,
|
||||
EGLint glMinorVersion,
|
||||
EGLint profileMask,
|
||||
ClientType clientType,
|
||||
uint32_t width,
|
||||
uint32_t height)
|
||||
: mName(std::move(name)),
|
||||
@@ -111,17 +108,52 @@ SampleApplication::SampleApplication(std::string name,
|
||||
}
|
||||
}
|
||||
|
||||
EGLenum eglClientType = EGL_OPENGL_ES_API;
|
||||
EGLint glMajorVersion = 2;
|
||||
EGLint glMinorVersion = 0;
|
||||
EGLint profileMask = 0;
|
||||
|
||||
switch (clientType)
|
||||
{
|
||||
case ClientType::ES1:
|
||||
glMajorVersion = 1;
|
||||
break;
|
||||
case ClientType::ES2:
|
||||
break;
|
||||
case ClientType::ES3_0:
|
||||
glMajorVersion = 3;
|
||||
break;
|
||||
case ClientType::ES3_1:
|
||||
glMajorVersion = 3;
|
||||
glMinorVersion = 1;
|
||||
break;
|
||||
case ClientType::GL3_3_CORE:
|
||||
eglClientType = EGL_OPENGL_API;
|
||||
glMajorVersion = 3;
|
||||
glMinorVersion = 3;
|
||||
profileMask = EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT;
|
||||
break;
|
||||
case ClientType::GL3_3_COMPATIBILITY:
|
||||
eglClientType = EGL_OPENGL_API;
|
||||
glMajorVersion = 3;
|
||||
glMinorVersion = 3;
|
||||
profileMask = EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT;
|
||||
break;
|
||||
default:
|
||||
UNREACHABLE();
|
||||
}
|
||||
|
||||
mOSWindow = OSWindow::New();
|
||||
|
||||
// Load EGL library so we can initialize the display.
|
||||
if (useNativeGL)
|
||||
{
|
||||
#if defined(ANGLE_PLATFORM_WINDOWS)
|
||||
mGLWindow = WGLWindow::New(clientType, glMajorVersion, glMinorVersion, profileMask);
|
||||
mGLWindow = WGLWindow::New(eglClientType, glMajorVersion, glMinorVersion, profileMask);
|
||||
mEntryPointsLib.reset(angle::OpenSharedLibrary("opengl32", angle::SearchType::SystemDir));
|
||||
mDriverType = angle::GLESDriverType::SystemWGL;
|
||||
#else
|
||||
mGLWindow = EGLWindow::New(clientType, glMajorVersion, glMinorVersion, profileMask);
|
||||
mGLWindow = EGLWindow::New(eglClientType, glMajorVersion, glMinorVersion, profileMask);
|
||||
mEntryPointsLib.reset(angle::OpenSharedLibraryWithExtension(
|
||||
angle::GetNativeEGLLibraryNameWithExtension(), angle::SearchType::SystemDir));
|
||||
mDriverType = angle::GLESDriverType::SystemEGL;
|
||||
@@ -130,7 +162,7 @@ SampleApplication::SampleApplication(std::string name,
|
||||
else
|
||||
{
|
||||
mGLWindow = mEGLWindow =
|
||||
EGLWindow::New(clientType, glMajorVersion, glMinorVersion, profileMask);
|
||||
EGLWindow::New(eglClientType, glMajorVersion, glMinorVersion, profileMask);
|
||||
mEntryPointsLib.reset(
|
||||
angle::OpenSharedLibrary(ANGLE_EGL_LIBRARY_NAME, angle::SearchType::ModuleDir));
|
||||
}
|
||||
|
||||
@@ -28,16 +28,24 @@ class Library;
|
||||
|
||||
bool IsGLExtensionEnabled(const std::string &extName);
|
||||
|
||||
enum class ClientType
|
||||
{
|
||||
// Client types used by the samples. Add as needed.
|
||||
ES1,
|
||||
ES2,
|
||||
ES3_0,
|
||||
ES3_1,
|
||||
GL3_3_CORE,
|
||||
GL3_3_COMPATIBILITY,
|
||||
};
|
||||
|
||||
class SampleApplication
|
||||
{
|
||||
public:
|
||||
SampleApplication(std::string name,
|
||||
int argc,
|
||||
char **argv,
|
||||
EGLenum clientType = EGL_OPENGL_ES_API,
|
||||
EGLint glMajorVersion = 2,
|
||||
EGLint glMinorVersion = 0,
|
||||
EGLint profileMask = 0,
|
||||
ClientType clientType = ClientType::ES2,
|
||||
uint32_t width = 1280,
|
||||
uint32_t height = 720);
|
||||
virtual ~SampleApplication();
|
||||
|
||||
@@ -48,7 +48,7 @@ class TexRedefBenchSample : public SampleApplication
|
||||
{
|
||||
public:
|
||||
TexRedefBenchSample(int argc, char **argv)
|
||||
: SampleApplication("Microbench", argc, argv, 2, 0, 1280, 1280),
|
||||
: SampleApplication("Microbench", argc, argv, ClientType::ES2, 1280, 1280),
|
||||
mPixelsResize(nullptr),
|
||||
mPixelsNewTex(nullptr),
|
||||
mTimeFrame(false),
|
||||
|
||||
@@ -26,7 +26,7 @@ class BufferStorageSample : public SampleApplication
|
||||
{
|
||||
public:
|
||||
BufferStorageSample(int argc, char **argv)
|
||||
: SampleApplication("GLES3.1 Buffer Storage", argc, argv, 3, 1)
|
||||
: SampleApplication("GLES3.1 Buffer Storage", argc, argv, ClientType::ES3_1)
|
||||
{}
|
||||
|
||||
bool initialize() override
|
||||
|
||||
@@ -16,7 +16,7 @@ class GLES1TorusLightingSample : public SampleApplication
|
||||
{
|
||||
public:
|
||||
GLES1TorusLightingSample(int argc, char **argv)
|
||||
: SampleApplication("GLES1 Torus Lighting", argc, argv, 1, 0)
|
||||
: SampleApplication("GLES1 Torus Lighting", argc, argv, ClientType::ES1)
|
||||
{}
|
||||
|
||||
bool initialize() override
|
||||
|
||||
@@ -19,7 +19,7 @@ class GLES2TorusLightingSample : public SampleApplication
|
||||
{
|
||||
public:
|
||||
GLES2TorusLightingSample(int argc, char **argv)
|
||||
: SampleApplication("GLES2 Torus Lighting", argc, argv, 2, 0)
|
||||
: SampleApplication("GLES2 Torus Lighting", argc, argv)
|
||||
{}
|
||||
|
||||
bool initialize() override
|
||||
|
||||
@@ -29,7 +29,7 @@ class TriangleFanBenchSample : public SampleApplication
|
||||
{
|
||||
public:
|
||||
TriangleFanBenchSample(int argc, char **argv)
|
||||
: SampleApplication("Microbench", argc, argv, 2, 0, 1280, 1280), mFrameCount(0)
|
||||
: SampleApplication("Microbench", argc, argv, ClientType::ES2, 1280, 1280), mFrameCount(0)
|
||||
{}
|
||||
|
||||
void createVertexBuffers()
|
||||
|
||||
Reference in New Issue
Block a user