Commit 9a74a0e0 by Nicolas Capens

Fix Android EGL config attribute retrieval.

Bug 23017372 Change-Id: I9764e558cdf602ecaf2a8c644fd5e444216b1568 Reviewed-on: https://swiftshader-review.googlesource.com/3860Reviewed-by: 's avatarPing-Hao Wu <pinghao@google.com> Reviewed-by: 's avatarNicolas Capens <capn@google.com> Tested-by: 's avatarNicolas Capens <capn@google.com>
parent 0c19ed89
...@@ -150,6 +150,9 @@ Config::Config(const DisplayMode &displayMode, EGLint minInterval, EGLint maxInt ...@@ -150,6 +150,9 @@ Config::Config(const DisplayMode &displayMode, EGLint minInterval, EGLint maxInt
mTransparentRedValue = 0; mTransparentRedValue = 0;
mTransparentGreenValue = 0; mTransparentGreenValue = 0;
mTransparentBlueValue = 0; mTransparentBlueValue = 0;
mRecordableAndroid = EGL_TRUE;
mFramebufferTargetAndroid = EGL_TRUE;
} }
EGLConfig Config::getHandle() const EGLConfig Config::getHandle() const
...@@ -352,8 +355,8 @@ bool ConfigSet::getConfigs(EGLConfig *configs, const EGLint *attribList, EGLint ...@@ -352,8 +355,8 @@ bool ConfigSet::getConfigs(EGLConfig *configs, const EGLint *attribList, EGLint
case EGL_MAX_PBUFFER_WIDTH: match = config->mMaxPBufferWidth >= attribute[1]; break; case EGL_MAX_PBUFFER_WIDTH: match = config->mMaxPBufferWidth >= attribute[1]; break;
case EGL_MAX_PBUFFER_HEIGHT: match = config->mMaxPBufferHeight >= attribute[1]; break; case EGL_MAX_PBUFFER_HEIGHT: match = config->mMaxPBufferHeight >= attribute[1]; break;
case EGL_MAX_PBUFFER_PIXELS: match = config->mMaxPBufferPixels >= attribute[1]; break; case EGL_MAX_PBUFFER_PIXELS: match = config->mMaxPBufferPixels >= attribute[1]; break;
case EGL_RECORDABLE_ANDROID: match = true; /* UNIMPLEMENTED(); EGL_ANDROID_recordable */ break; case EGL_RECORDABLE_ANDROID: match = config->mRecordableAndroid == attribute[1]; break;
case EGL_FRAMEBUFFER_TARGET_ANDROID: match = true; /* UNIMPLEMENTED(); EGL_ANDROID_framebuffer_target */ break; case EGL_FRAMEBUFFER_TARGET_ANDROID: match = config->mFramebufferTargetAndroid == attribute[1]; break;
default: default:
*numConfig = 0; *numConfig = 0;
return false; return false;
......
...@@ -35,7 +35,7 @@ struct DisplayMode ...@@ -35,7 +35,7 @@ struct DisplayMode
class Config class Config
{ {
public: public:
Config(const DisplayMode &displayMode, EGLint minSwapInterval, EGLint maxSwapInterval, sw::Format renderTargetFormat, sw::Format depthStencilFormat, EGLint multiSample); Config(const DisplayMode &displayMode, EGLint minSwapInterval, EGLint maxSwapInterval, sw::Format renderTargetFormat, sw::Format depthStencilFormat, EGLint multiSample);
EGLConfig getHandle() const; EGLConfig getHandle() const;
...@@ -79,6 +79,9 @@ class Config ...@@ -79,6 +79,9 @@ class Config
EGLint mTransparentRedValue; // Transparent red value EGLint mTransparentRedValue; // Transparent red value
EGLint mTransparentGreenValue; // Transparent green value EGLint mTransparentGreenValue; // Transparent green value
EGLint mTransparentBlueValue; // Transparent blue value EGLint mTransparentBlueValue; // Transparent blue value
EGLBoolean mRecordableAndroid; // EGL_ANDROID_recordable
EGLBoolean mFramebufferTargetAndroid; // EGL_ANDROID_framebuffer_target
}; };
struct CompareConfig struct CompareConfig
......
...@@ -223,7 +223,7 @@ bool Display::getConfigAttrib(EGLConfig config, EGLint attribute, EGLint *value) ...@@ -223,7 +223,7 @@ bool Display::getConfigAttrib(EGLConfig config, EGLint attribute, EGLint *value)
{ {
const egl::Config *configuration = mConfigSet.get(config); const egl::Config *configuration = mConfigSet.get(config);
switch (attribute) switch(attribute)
{ {
case EGL_BUFFER_SIZE: *value = configuration->mBufferSize; break; case EGL_BUFFER_SIZE: *value = configuration->mBufferSize; break;
case EGL_ALPHA_SIZE: *value = configuration->mAlphaSize; break; case EGL_ALPHA_SIZE: *value = configuration->mAlphaSize; break;
...@@ -253,11 +253,13 @@ bool Display::getConfigAttrib(EGLConfig config, EGLint attribute, EGLint *value) ...@@ -253,11 +253,13 @@ bool Display::getConfigAttrib(EGLConfig config, EGLint attribute, EGLint *value)
case EGL_ALPHA_MASK_SIZE: *value = configuration->mAlphaMaskSize; break; case EGL_ALPHA_MASK_SIZE: *value = configuration->mAlphaMaskSize; break;
case EGL_COLOR_BUFFER_TYPE: *value = configuration->mColorBufferType; break; case EGL_COLOR_BUFFER_TYPE: *value = configuration->mColorBufferType; break;
case EGL_RENDERABLE_TYPE: *value = configuration->mRenderableType; break; case EGL_RENDERABLE_TYPE: *value = configuration->mRenderableType; break;
case EGL_MATCH_NATIVE_PIXMAP: *value = false; UNIMPLEMENTED(); break; case EGL_MATCH_NATIVE_PIXMAP: *value = EGL_FALSE; UNIMPLEMENTED(); break;
case EGL_CONFORMANT: *value = configuration->mConformant; break; case EGL_CONFORMANT: *value = configuration->mConformant; break;
case EGL_MAX_PBUFFER_WIDTH: *value = configuration->mMaxPBufferWidth; break; case EGL_MAX_PBUFFER_WIDTH: *value = configuration->mMaxPBufferWidth; break;
case EGL_MAX_PBUFFER_HEIGHT: *value = configuration->mMaxPBufferHeight; break; case EGL_MAX_PBUFFER_HEIGHT: *value = configuration->mMaxPBufferHeight; break;
case EGL_MAX_PBUFFER_PIXELS: *value = configuration->mMaxPBufferPixels; break; case EGL_MAX_PBUFFER_PIXELS: *value = configuration->mMaxPBufferPixels; break;
case EGL_RECORDABLE_ANDROID: *value = configuration->mRecordableAndroid; break;
case EGL_FRAMEBUFFER_TARGET_ANDROID: *value = configuration->mFramebufferTargetAndroid; break;
default: default:
return false; return false;
} }
......
...@@ -177,7 +177,9 @@ const char *QueryString(EGLDisplay dpy, EGLint name) ...@@ -177,7 +177,9 @@ const char *QueryString(EGLDisplay dpy, EGLint name)
return success("EGL_KHR_gl_texture_2D_image " return success("EGL_KHR_gl_texture_2D_image "
"EGL_KHR_gl_texture_cubemap_image " "EGL_KHR_gl_texture_cubemap_image "
"EGL_KHR_gl_renderbuffer_image " "EGL_KHR_gl_renderbuffer_image "
"EGL_KHR_image_base"); "EGL_KHR_image_base "
"EGL_ANDROID_framebuffer_target "
"EGL_ANDROID_recordable");
case EGL_VENDOR: case EGL_VENDOR:
return success("TransGaming Inc."); return success("TransGaming Inc.");
case EGL_VERSION: case EGL_VERSION:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment