mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-27 18:48:14 +02:00
progs/egl: Fix screen surface demos.
Set the screen surface size to the mode size, as the spec requires the screen surface size to be larger than the mode size. Besides, bind the API to OpenGL as they are written in it. Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
This commit is contained in:
parent
c657c80180
commit
472a601966
5 changed files with 22 additions and 10 deletions
|
|
@ -114,6 +114,7 @@ main(int argc, char *argv[])
|
|||
|
||||
PrintConfigs(d, configs, numConfigs);
|
||||
|
||||
eglBindAPI(EGL_OPENGL_API);
|
||||
ctx = eglCreateContext(d, configs[0], EGL_NO_CONTEXT, NULL);
|
||||
if (ctx == EGL_NO_CONTEXT) {
|
||||
printf("failed to create context\n");
|
||||
|
|
|
|||
|
|
@ -111,11 +111,7 @@ main(int argc, char *argv[])
|
|||
EGL_HEIGHT, 500,
|
||||
EGL_NONE
|
||||
};
|
||||
const EGLint screenAttribs[] = {
|
||||
EGL_WIDTH, 1024,
|
||||
EGL_HEIGHT, 768,
|
||||
EGL_NONE
|
||||
};
|
||||
EGLint screenAttribs[32];
|
||||
EGLModeMESA mode;
|
||||
EGLScreenMESA screen;
|
||||
EGLint count;
|
||||
|
|
@ -149,6 +145,7 @@ main(int argc, char *argv[])
|
|||
eglGetScreensMESA(d, &screen, 1, &count);
|
||||
eglGetModesMESA(d, screen, &mode, 1, &count);
|
||||
|
||||
eglBindAPI(EGL_OPENGL_API);
|
||||
ctx = eglCreateContext(d, configs[0], EGL_NO_CONTEXT, NULL);
|
||||
if (ctx == EGL_NO_CONTEXT) {
|
||||
printf("failed to create context\n");
|
||||
|
|
@ -169,6 +166,13 @@ main(int argc, char *argv[])
|
|||
|
||||
b = eglMakeCurrent(d, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
|
||||
|
||||
i = 0;
|
||||
screenAttribs[i++] = EGL_WIDTH;
|
||||
eglGetModeAttribMESA(d, mode, EGL_WIDTH, &screenAttribs[i++]);
|
||||
screenAttribs[i++] = EGL_HEIGHT;
|
||||
eglGetModeAttribMESA(d, mode, EGL_HEIGHT, &screenAttribs[i++]);
|
||||
screenAttribs[i] = EGL_NONE;
|
||||
|
||||
screen_surf = eglCreateScreenSurfaceMESA(d, configs[0], screenAttribs);
|
||||
if (screen_surf == EGL_NO_SURFACE) {
|
||||
printf("failed to create screen surface\n");
|
||||
|
|
|
|||
|
|
@ -564,11 +564,8 @@ main(int argc, char *argv[])
|
|||
EGLint numConfigs, count;
|
||||
EGLBoolean b;
|
||||
const GLubyte *bitmap;
|
||||
const EGLint screenAttribs[] = {
|
||||
EGL_WIDTH, 1024,
|
||||
EGL_HEIGHT, 768,
|
||||
EGL_NONE
|
||||
};
|
||||
EGLint screenAttribs[32];
|
||||
EGLint i;
|
||||
|
||||
EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY);
|
||||
assert(d);
|
||||
|
|
@ -590,12 +587,20 @@ main(int argc, char *argv[])
|
|||
eglGetScreensMESA(d, &screen, 1, &count);
|
||||
eglGetModesMESA(d, screen, &mode, 1, &count);
|
||||
|
||||
eglBindAPI(EGL_OPENGL_API);
|
||||
ctx = eglCreateContext(d, configs[0], EGL_NO_CONTEXT, NULL);
|
||||
if (ctx == EGL_NO_CONTEXT) {
|
||||
printf("failed to create context\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
i = 0;
|
||||
screenAttribs[i++] = EGL_WIDTH;
|
||||
eglGetModeAttribMESA(d, mode, EGL_WIDTH, &screenAttribs[i++]);
|
||||
screenAttribs[i++] = EGL_HEIGHT;
|
||||
eglGetModeAttribMESA(d, mode, EGL_HEIGHT, &screenAttribs[i++]);
|
||||
screenAttribs[i] = EGL_NONE;
|
||||
|
||||
screen_surf = eglCreateScreenSurfaceMESA(d, configs[0], screenAttribs);
|
||||
if (screen_surf == EGL_NO_SURFACE) {
|
||||
printf("failed to create screen surface\n");
|
||||
|
|
|
|||
|
|
@ -426,6 +426,7 @@ main(int argc, char *argv[])
|
|||
}
|
||||
printf("eglgears: Using screen mode/size %d: %d x %d\n", chosenMode, width, height);
|
||||
|
||||
eglBindAPI(EGL_OPENGL_API);
|
||||
ctx = eglCreateContext(d, configs[0], EGL_NO_CONTEXT, NULL);
|
||||
if (ctx == EGL_NO_CONTEXT) {
|
||||
printf("eglgears: failed to create context\n");
|
||||
|
|
|
|||
|
|
@ -208,6 +208,7 @@ int main(int argc, char *argv[])
|
|||
}
|
||||
printf("egltri: Using screen mode/size %d: %d x %d\n", chosenMode, width, height);
|
||||
|
||||
eglBindAPI(EGL_OPENGL_API);
|
||||
ctx = eglCreateContext(d, configs[0], EGL_NO_CONTEXT, NULL);
|
||||
if (ctx == EGL_NO_CONTEXT) {
|
||||
printf("egltri: failed to create context\n");
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue