egl: improve attribute checking for eglCreateContext
authorFrank Binns <frank.binns@imgtec.com>
Wed, 12 Aug 2015 15:36:00 +0000 (16:36 +0100)
committerEmil Velikov <emil.l.velikov@gmail.com>
Thu, 13 Aug 2015 16:36:06 +0000 (17:36 +0100)
commitd9603be038b6d30f17ca7c05e60cc78100a625ac
tree0adca46113b90a8f1060e1f92f3e360e167795cc
parent21b2c6fd5ea5ec2a810945c3c61b14d93a53991d
egl: improve attribute checking for eglCreateContext

The EGL 1.4 spec states for eglCreateContext:

"attribute EGL_CONTEXT_CLIENT_VERSION is only valid when the current
 rendering API is EGL_OPENGL_ES_API"

Additionally, if the EGL_KHR_create_context EGL extension is supported
(this is mandatory in EGL 1.5) then the EGL_CONTEXT_MAJOR_VERSION_KHR,
which is an alias for EGL_CONTEXT_CLIENT_VERSION, and
EGL_CONTEXT_MINOR_VERSION_KHR attributes are also accepted by
eglCreateContext with the extension spec stating:

"The values for attributes EGL_CONTEXT_MAJOR_VERSION_KHR and
 EGL_CONTEXT_MINOR_VERSION_KHR specify the requested client API
 version. They are only meaningful for OpenGL and OpenGL ES
 contexts, and specifying them for other types of contexts will
 generate an error."

Add the necessary checks against the extension and rendering APIs when
validating these attributes as part of eglCreateContext.

Signed-off-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
[Emil Velikov: Add newline before the spec quote (Matt)]
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
src/egl/main/eglcontext.c