Issue #645: Implement eglQuerySurface for EGL_HEIGHT and EGL_WIDTH.
This commit is contained in:
Родитель
b41b535aea
Коммит
8f401ce051
|
@ -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
|
||||
}
|
Загрузка…
Ссылка в новой задаче