![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /usr/share/emscripten/tests/ |
Upload File : |
#include <stdio.h> #include <EGL/egl.h> #include <GLES2/gl2.h> int result = 1; // Success #define assert(x) do { if (!(x)) {result = 0; printf("Assertion failure: %s in %s:%d!\n", #x, __FILE__, __LINE__); } } while(0) int main(int argc, char *argv[]) { EGLDisplay display = eglGetDisplay(EGL_DEFAULT_DISPLAY); assert(display != EGL_NO_DISPLAY); assert(eglGetError() == EGL_SUCCESS); EGLint major = 0, minor = 0; EGLBoolean ret = eglInitialize(display, &major, &minor); assert(eglGetError() == EGL_SUCCESS); assert(ret == EGL_TRUE); assert(major * 10000 + minor >= 10004); EGLint numConfigs; ret = eglGetConfigs(display, NULL, 0, &numConfigs); assert(eglGetError() == EGL_SUCCESS); assert(ret == EGL_TRUE); EGLint attribs[] = { EGL_RED_SIZE, 5, EGL_GREEN_SIZE, 6, EGL_BLUE_SIZE, 5, EGL_NONE }; EGLConfig config; ret = eglChooseConfig(display, attribs, &config, 1, &numConfigs); assert(eglGetError() == EGL_SUCCESS); assert(ret == EGL_TRUE); EGLNativeWindowType dummyWindow; EGLSurface surface = eglCreateWindowSurface(display, config, dummyWindow, NULL); assert(eglGetError() == EGL_SUCCESS); assert(surface != 0); // WebGL maps to GLES2. GLES1 is not supported. EGLint contextAttribsOld[] = { EGL_CONTEXT_CLIENT_VERSION, 1, EGL_NONE }; EGLContext context = eglCreateContext(display, config, NULL, contextAttribsOld); assert(eglGetError() != EGL_SUCCESS); //Test for invalid attribs EGLint contextInvalidAttribs[] = { EGL_CONTEXT_CLIENT_VERSION, 2, 0xFFFF, -1, EGL_NONE }; context = eglCreateContext(display, config, NULL, contextInvalidAttribs); assert(eglGetError() != EGL_SUCCESS); assert(context == 0); //Test for missing terminator EGLint contextAttribsMissingTerm[] = { EGL_CONTEXT_CLIENT_VERSION, 2, }; context = eglCreateContext(display, config, NULL, contextAttribsMissingTerm); assert(eglGetError() != EGL_SUCCESS); assert(context == 0); //Test for null terminator EGLint contextAttribsNullTerm[] = { EGL_CONTEXT_CLIENT_VERSION, 2, 0 }; context = eglCreateContext(display, config, NULL, contextAttribsNullTerm); assert(eglGetError() != EGL_SUCCESS); assert(context == 0); //Test for invalid and null terminator EGLint contextAttribsNullTermInvalid[] = { 0, }; context = eglCreateContext(display, config, NULL, contextAttribsNullTermInvalid); assert(eglGetError() != EGL_SUCCESS); assert(context == 0); // The correct attributes, should create a good EGL context EGLint contextAttribs[] = { EGL_CONTEXT_CLIENT_VERSION, 2, EGL_NONE }; context = eglCreateContext(display, config, NULL, contextAttribs); assert(eglGetError() == EGL_SUCCESS); assert(context != 0); assert(eglGetCurrentContext() == 0); // Creating a context does not yet activate it. assert(eglGetError() == EGL_SUCCESS); ret = eglMakeCurrent(display, surface, surface, context); assert(eglGetError() == EGL_SUCCESS); assert(ret == EGL_TRUE); assert(eglGetCurrentContext() == context); assert(eglGetCurrentSurface(EGL_READ) == surface); assert(eglGetCurrentSurface(EGL_DRAW) == surface); ret = eglMakeCurrent(display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); assert(eglGetError() == EGL_SUCCESS); assert(ret == EGL_TRUE); assert(eglGetCurrentContext() == EGL_NO_CONTEXT); assert(eglGetCurrentSurface(EGL_READ) == EGL_NO_SURFACE); assert(eglGetCurrentSurface(EGL_DRAW) == EGL_NO_SURFACE); ret = eglTerminate(display); assert(eglGetError() == EGL_SUCCESS); assert(ret == EGL_TRUE); assert(eglGetProcAddress("glClear") != 0); assert(eglGetProcAddress("glWakaWaka") == 0); glClearColor(1.0,0.0,0.0,0.5); glClear(GL_COLOR_BUFFER_BIT); #ifdef REPORT_RESULT REPORT_RESULT(); #endif }