diff options
author | James Gregory <james@james.id.au> | 2013-05-10 17:26:06 -0700 |
---|---|---|
committer | James Gregory <james@james.id.au> | 2013-05-10 17:26:06 -0700 |
commit | 8f401ce051259ea128b943a21a57a93cf8bf5b03 (patch) | |
tree | 32a64d16c14bbc8ff865cdba41809affd923f9d6 | |
parent | b41b535aeac53740dec416f617378ec4e4e382ce (diff) |
Issue #645: Implement eglQuerySurface for EGL_HEIGHT and EGL_WIDTH.
-rw-r--r-- | src/library_egl.js | 4 | ||||
-rwxr-xr-x | tests/runner.py | 6 | ||||
-rw-r--r-- | tests/test_egl_width_height.c | 40 |
3 files changed, 48 insertions, 2 deletions
diff --git a/src/library_egl.js b/src/library_egl.js index 271ea29e..1ae31cea 100644 --- a/src/library_egl.js +++ b/src/library_egl.js @@ -318,10 +318,10 @@ var LibraryEGL = { // Existing Android implementation seems to do so at least. return 1; case 0x3057: // EGL_WIDTH - // TODO + {{{ makeSetValue('value', '0', 'Module.canvas.width.toString()', 'i32') }}}; return 1; case 0x3056: // EGL_HEIGHT - // TODO + {{{ makeSetValue('value', '0', 'Module.canvas.height.toString()', 'i32') }}}; return 1; case 0x3090: // EGL_HORIZONTAL_RESOLUTION {{{ makeSetValue('value', '0', '-1' /* EGL_UNKNOWN */, 'i32') }}}; diff --git a/tests/runner.py b/tests/runner.py index c414c619..50929dff 100755 --- a/tests/runner.py +++ b/tests/runner.py @@ -11728,6 +11728,12 @@ elif 'browser' in str(sys.argv): Popen([PYTHON, EMCC, '-O2', os.path.join(self.get_dir(), 'glfw.c'), '-o', 'page.html']).communicate() self.run_browser('page.html', '', '/report_result?1') + def test_egl_width_height(self): + open(os.path.join(self.get_dir(), 'test_egl_width_height.c'), 'w').write(self.with_report_result(open(path_from_root('tests', 'test_egl_width_height.c')).read())) + + Popen([PYTHON, EMCC, '-O2', os.path.join(self.get_dir(), 'test_egl_width_height.c'), '-o', 'page.html']).communicate() + self.run_browser('page.html', 'Should print "(300, 150)" -- the size of the canvas in pixels', '/report_result?1') + def test_freealut(self): programs = self.get_library('freealut', os.path.join('examples', 'hello_world.bc'), make_args=['EXEEXT=.bc']) for program in programs: diff --git a/tests/test_egl_width_height.c b/tests/test_egl_width_height.c new file mode 100644 index 00000000..4a4f5e24 --- /dev/null +++ b/tests/test_egl_width_height.c @@ -0,0 +1,40 @@ +#include <stdio.h> +#include <EGL/egl.h> + +int main(int argc, char *argv[]) +{ + EGLDisplay display = eglGetDisplay(EGL_DEFAULT_DISPLAY); + + EGLint major, minor; + eglInitialize(display, &major, &minor); + + EGLint numConfigs; + eglGetConfigs(display, NULL, 0, &numConfigs); + + EGLint attribs[] = { + EGL_RED_SIZE, 5, + EGL_GREEN_SIZE, 6, + EGL_BLUE_SIZE, 5, + EGL_NONE + }; + EGLConfig config; + eglChooseConfig(display, attribs, &config, 1, &numConfigs); + + EGLNativeWindowType dummyWindow; + EGLSurface surface = eglCreateWindowSurface(display, config, dummyWindow, NULL); + + EGLint width, height; + eglQuerySurface(display, surface, EGL_WIDTH, &width); + eglQuerySurface(display, surface, EGL_HEIGHT, &height); + + printf("(%d, %d)\n", width, height); + +#ifdef REPORT_RESULT + int result = 0; + if(width == 300 && height == 150) + { + result = 1; + } + REPORT_RESULT(); +#endif +} |