Issue #645: Implement eglQuerySurface for EGL_HEIGHT and EGL_WIDTH.

This commit is contained in:
James Gregory 2013-05-10 17:26:06 -07:00
Родитель b41b535aea
Коммит 8f401ce051
3 изменённых файлов: 48 добавлений и 2 удалений

Просмотреть файл

@ -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') }}};

Просмотреть файл

@ -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:

Просмотреть файл

@ -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
}