Commit ec2c0c5e by Ian Ewell Committed by Commit Bot

Update internal AttributeMap type to EGLAttrib.

Newer EGL functions use EGLAttrib to pass in attributes, which can be either 32-bit or 64-bit depending on the system while the old attributes are passed in as EGLints, which are usually 32-bits. To support these newer functions, AttributeMap now uses EGLAttrib internally instead of EGLint, and all the code using AttributeMap has been updated to cast properly. BUG=angleproject:1348 Change-Id: I7c4dd9ef23ea1b1741f3a565502fb5e26bf962d7 Reviewed-on: https://chromium-review.googlesource.com/337162Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Commit-Queue: Ian Ewell <ewell@google.com>
parent 4f66748d
...@@ -13,30 +13,19 @@ AttributeMap::AttributeMap() ...@@ -13,30 +13,19 @@ AttributeMap::AttributeMap()
{ {
} }
AttributeMap::AttributeMap(const EGLint *attributes) void AttributeMap::insert(EGLAttrib key, EGLAttrib value)
{
if (attributes)
{
for (const EGLint *curAttrib = attributes; curAttrib[0] != EGL_NONE; curAttrib += 2)
{
insert(curAttrib[0], curAttrib[1]);
}
}
}
void AttributeMap::insert(EGLint key, EGLint value)
{ {
mAttributes[key] = value; mAttributes[key] = value;
} }
bool AttributeMap::contains(EGLint key) const bool AttributeMap::contains(EGLAttrib key) const
{ {
return (mAttributes.find(key) != mAttributes.end()); return (mAttributes.find(key) != mAttributes.end());
} }
EGLint AttributeMap::get(EGLint key, EGLint defaultValue) const EGLAttrib AttributeMap::get(EGLAttrib key, EGLAttrib defaultValue) const
{ {
std::map<EGLint, EGLint>::const_iterator iter = mAttributes.find(key); std::map<EGLAttrib, EGLAttrib>::const_iterator iter = mAttributes.find(key);
return (mAttributes.find(key) != mAttributes.end()) ? iter->second : defaultValue; return (mAttributes.find(key) != mAttributes.end()) ? iter->second : defaultValue;
} }
...@@ -50,4 +39,31 @@ AttributeMap::const_iterator AttributeMap::end() const ...@@ -50,4 +39,31 @@ AttributeMap::const_iterator AttributeMap::end() const
return mAttributes.end(); return mAttributes.end();
} }
// static
AttributeMap AttributeMap::CreateFromIntArray(const EGLint *attributes)
{
AttributeMap map;
if (attributes)
{
for (const EGLint *curAttrib = attributes; curAttrib[0] != EGL_NONE; curAttrib += 2)
{
map.insert(static_cast<EGLAttrib>(curAttrib[0]), static_cast<EGLAttrib>(curAttrib[1]));
}
}
return map;
}
// static
AttributeMap AttributeMap::CreateFromAttribArray(const EGLAttrib *attributes)
{
AttributeMap map;
if (attributes)
{
for (const EGLAttrib *curAttrib = attributes; curAttrib[0] != EGL_NONE; curAttrib += 2)
{
map.insert(curAttrib[0], curAttrib[1]);
}
}
return map;
}
} }
...@@ -19,19 +19,21 @@ class AttributeMap final ...@@ -19,19 +19,21 @@ class AttributeMap final
{ {
public: public:
AttributeMap(); AttributeMap();
explicit AttributeMap(const EGLint *attributes);
void insert(EGLint key, EGLint value); void insert(EGLAttrib key, EGLAttrib value);
bool contains(EGLint key) const; bool contains(EGLAttrib key) const;
EGLint get(EGLint key, EGLint defaultValue) const; EGLAttrib get(EGLAttrib key, EGLAttrib defaultValue) const;
typedef std::map<EGLint, EGLint>::const_iterator const_iterator; typedef std::map<EGLAttrib, EGLAttrib>::const_iterator const_iterator;
const_iterator begin() const; const_iterator begin() const;
const_iterator end() const; const_iterator end() const;
static AttributeMap CreateFromIntArray(const EGLint *attributes);
static AttributeMap CreateFromAttribArray(const EGLAttrib *attributes);
private: private:
std::map<EGLint, EGLint> mAttributes; std::map<EGLAttrib, EGLAttrib> mAttributes;
}; };
} }
......
...@@ -167,8 +167,8 @@ class ConfigSorter ...@@ -167,8 +167,8 @@ class ConfigSorter
// components that are 0 or don't-care. // components that are 0 or don't-care.
for (auto attribIter = attributeMap.begin(); attribIter != attributeMap.end(); attribIter++) for (auto attribIter = attributeMap.begin(); attribIter != attributeMap.end(); attribIter++)
{ {
EGLint attributeKey = attribIter->first; EGLAttrib attributeKey = attribIter->first;
EGLint attributeValue = attribIter->second; EGLAttrib attributeValue = attribIter->second;
if (attributeKey != 0 && attributeValue != EGL_DONT_CARE) if (attributeKey != 0 && attributeValue != EGL_DONT_CARE)
{ {
switch (attributeKey) switch (attributeKey)
...@@ -215,8 +215,8 @@ std::vector<const Config*> ConfigSet::filter(const AttributeMap &attributeMap) c ...@@ -215,8 +215,8 @@ std::vector<const Config*> ConfigSet::filter(const AttributeMap &attributeMap) c
for (auto attribIter = attributeMap.begin(); attribIter != attributeMap.end(); attribIter++) for (auto attribIter = attributeMap.begin(); attribIter != attributeMap.end(); attribIter++)
{ {
EGLint attributeKey = attribIter->first; EGLAttrib attributeKey = attribIter->first;
EGLint attributeValue = attribIter->second; EGLAttrib attributeValue = attribIter->second;
switch (attributeKey) switch (attributeKey)
{ {
......
...@@ -82,13 +82,13 @@ void MarkTransformFeedbackBufferUsage(gl::TransformFeedback *transformFeedback) ...@@ -82,13 +82,13 @@ void MarkTransformFeedbackBufferUsage(gl::TransformFeedback *transformFeedback)
// Attribute map queries. // Attribute map queries.
EGLint GetClientVersion(const egl::AttributeMap &attribs) EGLint GetClientVersion(const egl::AttributeMap &attribs)
{ {
return attribs.get(EGL_CONTEXT_CLIENT_VERSION, 1); return static_cast<EGLint>(attribs.get(EGL_CONTEXT_CLIENT_VERSION, 1));
} }
GLenum GetResetStrategy(const egl::AttributeMap &attribs) GLenum GetResetStrategy(const egl::AttributeMap &attribs)
{ {
EGLenum attrib = attribs.get(EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT, EGLAttrib attrib = attribs.get(EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT,
EGL_NO_RESET_NOTIFICATION_EXT); EGL_NO_RESET_NOTIFICATION_EXT);
switch (attrib) switch (attrib)
{ {
case EGL_NO_RESET_NOTIFICATION: case EGL_NO_RESET_NOTIFICATION:
......
...@@ -134,7 +134,8 @@ rx::DisplayImpl *CreateDisplayFromDevice(Device *eglDevice) ...@@ -134,7 +134,8 @@ rx::DisplayImpl *CreateDisplayFromDevice(Device *eglDevice)
rx::DisplayImpl *CreateDisplayFromAttribs(const AttributeMap &attribMap) rx::DisplayImpl *CreateDisplayFromAttribs(const AttributeMap &attribMap)
{ {
rx::DisplayImpl *impl = nullptr; rx::DisplayImpl *impl = nullptr;
EGLint displayType = attribMap.get(EGL_PLATFORM_ANGLE_TYPE_ANGLE, EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE); EGLAttrib displayType =
attribMap.get(EGL_PLATFORM_ANGLE_TYPE_ANGLE, EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE);
switch (displayType) switch (displayType)
{ {
case EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE: case EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE:
......
...@@ -27,7 +27,7 @@ Stream::Stream(rx::StreamImpl *impl, const AttributeMap &attribs) ...@@ -27,7 +27,7 @@ Stream::Stream(rx::StreamImpl *impl, const AttributeMap &attribs)
mState(EGL_STREAM_STATE_CREATED_KHR), mState(EGL_STREAM_STATE_CREATED_KHR),
mProducerFrame(0), mProducerFrame(0),
mConsumerFrame(0), mConsumerFrame(0),
mConsumerLatency(attribs.get(EGL_CONSUMER_LATENCY_USEC_KHR, 0)) mConsumerLatency(static_cast<EGLint>(attribs.get(EGL_CONSUMER_LATENCY_USEC_KHR, 0)))
{ {
} }
......
...@@ -54,17 +54,17 @@ Surface::Surface(rx::SurfaceImpl *impl, ...@@ -54,17 +54,17 @@ Surface::Surface(rx::SurfaceImpl *impl,
mFixedSize = (attributes.get(EGL_FIXED_SIZE_ANGLE, EGL_FALSE) == EGL_TRUE); mFixedSize = (attributes.get(EGL_FIXED_SIZE_ANGLE, EGL_FALSE) == EGL_TRUE);
if (mFixedSize) if (mFixedSize)
{ {
mFixedWidth = attributes.get(EGL_WIDTH, 0); mFixedWidth = static_cast<size_t>(attributes.get(EGL_WIDTH, 0));
mFixedHeight = attributes.get(EGL_HEIGHT, 0); mFixedHeight = static_cast<size_t>(attributes.get(EGL_HEIGHT, 0));
} }
if (mType != EGL_WINDOW_BIT) if (mType != EGL_WINDOW_BIT)
{ {
mTextureFormat = attributes.get(EGL_TEXTURE_FORMAT, EGL_NO_TEXTURE); mTextureFormat = static_cast<EGLenum>(attributes.get(EGL_TEXTURE_FORMAT, EGL_NO_TEXTURE));
mTextureTarget = attributes.get(EGL_TEXTURE_TARGET, EGL_NO_TEXTURE); mTextureTarget = static_cast<EGLenum>(attributes.get(EGL_TEXTURE_TARGET, EGL_NO_TEXTURE));
} }
mOrientation = attributes.get(EGL_SURFACE_ORIENTATION_ANGLE, 0); mOrientation = static_cast<EGLint>(attributes.get(EGL_SURFACE_ORIENTATION_ANGLE, 0));
mDefaultFramebuffer = createDefaultFramebuffer(); mDefaultFramebuffer = createDefaultFramebuffer();
ASSERT(mDefaultFramebuffer != nullptr); ASSERT(mDefaultFramebuffer != nullptr);
......
...@@ -60,8 +60,8 @@ egl::Error CreateRendererD3D(egl::Display *display, RendererD3D **outRenderer) ...@@ -60,8 +60,8 @@ egl::Error CreateRendererD3D(egl::Display *display, RendererD3D **outRenderer)
const auto &attribMap = display->getAttributeMap(); const auto &attribMap = display->getAttributeMap();
EGLNativeDisplayType nativeDisplay = display->getNativeDisplayId(); EGLNativeDisplayType nativeDisplay = display->getNativeDisplayId();
EGLint requestedDisplayType = EGLint requestedDisplayType = static_cast<EGLint>(
attribMap.get(EGL_PLATFORM_ANGLE_TYPE_ANGLE, EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE); attribMap.get(EGL_PLATFORM_ANGLE_TYPE_ANGLE, EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE));
# if defined(ANGLE_ENABLE_D3D11) # if defined(ANGLE_ENABLE_D3D11)
if (nativeDisplay == EGL_D3D11_ELSE_D3D9_DISPLAY_ANGLE || if (nativeDisplay == EGL_D3D11_ELSE_D3D9_DISPLAY_ANGLE ||
...@@ -169,11 +169,12 @@ SurfaceImpl *DisplayD3D::createWindowSurface(const egl::Config *configuration, ...@@ -169,11 +169,12 @@ SurfaceImpl *DisplayD3D::createWindowSurface(const egl::Config *configuration,
{ {
ASSERT(mRenderer != nullptr); ASSERT(mRenderer != nullptr);
EGLint width = attribs.get(EGL_WIDTH, 0); EGLint width = static_cast<EGLint>(attribs.get(EGL_WIDTH, 0));
EGLint height = attribs.get(EGL_HEIGHT, 0); EGLint height = static_cast<EGLint>(attribs.get(EGL_HEIGHT, 0));
EGLint fixedSize = attribs.get(EGL_FIXED_SIZE_ANGLE, EGL_FALSE); EGLint fixedSize = static_cast<EGLint>(attribs.get(EGL_FIXED_SIZE_ANGLE, EGL_FALSE));
EGLint orientation = attribs.get(EGL_SURFACE_ORIENTATION_ANGLE, 0); EGLint orientation = static_cast<EGLint>(attribs.get(EGL_SURFACE_ORIENTATION_ANGLE, 0));
EGLint directComposition = attribs.get(EGL_DIRECT_COMPOSITION_ANGLE, EGL_FALSE); EGLint directComposition =
static_cast<EGLint>(attribs.get(EGL_DIRECT_COMPOSITION_ANGLE, EGL_FALSE));
if (!fixedSize) if (!fixedSize)
{ {
...@@ -190,8 +191,8 @@ SurfaceImpl *DisplayD3D::createPbufferSurface(const egl::Config *configuration, ...@@ -190,8 +191,8 @@ SurfaceImpl *DisplayD3D::createPbufferSurface(const egl::Config *configuration,
{ {
ASSERT(mRenderer != nullptr); ASSERT(mRenderer != nullptr);
EGLint width = attribs.get(EGL_WIDTH, 0); EGLint width = static_cast<EGLint>(attribs.get(EGL_WIDTH, 0));
EGLint height = attribs.get(EGL_HEIGHT, 0); EGLint height = static_cast<EGLint>(attribs.get(EGL_HEIGHT, 0));
return SurfaceD3D::createOffscreen(mRenderer, mDisplay, configuration, nullptr, width, height); return SurfaceD3D::createOffscreen(mRenderer, mDisplay, configuration, nullptr, width, height);
} }
...@@ -202,8 +203,8 @@ SurfaceImpl *DisplayD3D::createPbufferFromClientBuffer(const egl::Config *config ...@@ -202,8 +203,8 @@ SurfaceImpl *DisplayD3D::createPbufferFromClientBuffer(const egl::Config *config
{ {
ASSERT(mRenderer != nullptr); ASSERT(mRenderer != nullptr);
EGLint width = attribs.get(EGL_WIDTH, 0); EGLint width = static_cast<EGLint>(attribs.get(EGL_WIDTH, 0));
EGLint height = attribs.get(EGL_HEIGHT, 0); EGLint height = static_cast<EGLint>(attribs.get(EGL_HEIGHT, 0));
return SurfaceD3D::createOffscreen( return SurfaceD3D::createOffscreen(
mRenderer, mDisplay, configuration, shareHandle, width, height); mRenderer, mDisplay, configuration, shareHandle, width, height);
......
...@@ -421,10 +421,10 @@ Renderer11::Renderer11(egl::Display *display) ...@@ -421,10 +421,10 @@ Renderer11::Renderer11(egl::Display *display)
{ {
const auto &attributes = mDisplay->getAttributeMap(); const auto &attributes = mDisplay->getAttributeMap();
EGLint requestedMajorVersion = EGLint requestedMajorVersion = static_cast<EGLint>(
attributes.get(EGL_PLATFORM_ANGLE_MAX_VERSION_MAJOR_ANGLE, EGL_DONT_CARE); attributes.get(EGL_PLATFORM_ANGLE_MAX_VERSION_MAJOR_ANGLE, EGL_DONT_CARE));
EGLint requestedMinorVersion = EGLint requestedMinorVersion = static_cast<EGLint>(
attributes.get(EGL_PLATFORM_ANGLE_MAX_VERSION_MINOR_ANGLE, EGL_DONT_CARE); attributes.get(EGL_PLATFORM_ANGLE_MAX_VERSION_MINOR_ANGLE, EGL_DONT_CARE));
if (requestedMajorVersion == EGL_DONT_CARE || requestedMajorVersion >= 11) if (requestedMajorVersion == EGL_DONT_CARE || requestedMajorVersion >= 11)
{ {
...@@ -451,8 +451,8 @@ Renderer11::Renderer11(egl::Display *display) ...@@ -451,8 +451,8 @@ Renderer11::Renderer11(egl::Display *display)
mAvailableFeatureLevels.push_back(D3D_FEATURE_LEVEL_9_3); mAvailableFeatureLevels.push_back(D3D_FEATURE_LEVEL_9_3);
} }
EGLint requestedDeviceType = attributes.get(EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE, EGLint requestedDeviceType = static_cast<EGLint>(attributes.get(
EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE); EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE, EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE));
switch (requestedDeviceType) switch (requestedDeviceType)
{ {
case EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE: case EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE:
...@@ -475,8 +475,8 @@ Renderer11::Renderer11(egl::Display *display) ...@@ -475,8 +475,8 @@ Renderer11::Renderer11(egl::Display *display)
UNREACHABLE(); UNREACHABLE();
} }
const EGLenum presentPath = attributes.get(EGL_EXPERIMENTAL_PRESENT_PATH_ANGLE, const EGLenum presentPath = static_cast<EGLenum>(attributes.get(
EGL_EXPERIMENTAL_PRESENT_PATH_COPY_ANGLE); EGL_EXPERIMENTAL_PRESENT_PATH_ANGLE, EGL_EXPERIMENTAL_PRESENT_PATH_COPY_ANGLE));
mPresentPathFastEnabled = (presentPath == EGL_EXPERIMENTAL_PRESENT_PATH_FAST_ANGLE); mPresentPathFastEnabled = (presentPath == EGL_EXPERIMENTAL_PRESENT_PATH_FAST_ANGLE);
} }
else if (display->getPlatform() == EGL_PLATFORM_DEVICE_EXT) else if (display->getPlatform() == EGL_PLATFORM_DEVICE_EXT)
...@@ -790,7 +790,8 @@ void Renderer11::initializeDevice() ...@@ -790,7 +790,8 @@ void Renderer11::initializeDevice()
// If automatic trim is enabled, DXGIDevice3::Trim( ) is called for the application // If automatic trim is enabled, DXGIDevice3::Trim( ) is called for the application
// automatically when an application is suspended by the OS. This feature is currently // automatically when an application is suspended by the OS. This feature is currently
// only supported for Windows Store applications. // only supported for Windows Store applications.
EGLint enableAutoTrim = attributes.get(EGL_PLATFORM_ANGLE_ENABLE_AUTOMATIC_TRIM_ANGLE, EGL_FALSE); EGLint enableAutoTrim = static_cast<EGLint>(
attributes.get(EGL_PLATFORM_ANGLE_ENABLE_AUTOMATIC_TRIM_ANGLE, EGL_FALSE));
if (enableAutoTrim == EGL_TRUE) if (enableAutoTrim == EGL_TRUE)
{ {
......
...@@ -91,8 +91,8 @@ Renderer9::Renderer9(egl::Display *display) : RendererD3D(display), mStateManage ...@@ -91,8 +91,8 @@ Renderer9::Renderer9(egl::Display *display) : RendererD3D(display), mStateManage
mAdapter = D3DADAPTER_DEFAULT; mAdapter = D3DADAPTER_DEFAULT;
const egl::AttributeMap &attributes = display->getAttributeMap(); const egl::AttributeMap &attributes = display->getAttributeMap();
EGLint requestedDeviceType = attributes.get(EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE, EGLint requestedDeviceType = static_cast<EGLint>(attributes.get(
EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE); EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE, EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE));
switch (requestedDeviceType) switch (requestedDeviceType)
{ {
case EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE: case EGL_PLATFORM_ANGLE_DEVICE_TYPE_HARDWARE_ANGLE:
......
...@@ -110,7 +110,8 @@ RendererGL::RendererGL(const FunctionsGL *functions, const egl::AttributeMap &at ...@@ -110,7 +110,8 @@ RendererGL::RendererGL(const FunctionsGL *functions, const egl::AttributeMap &at
} }
#endif #endif
EGLint deviceType = attribMap.get(EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE, EGL_NONE); EGLint deviceType =
static_cast<EGLint>(attribMap.get(EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE, EGL_NONE));
if (deviceType == EGL_PLATFORM_ANGLE_DEVICE_TYPE_NULL_ANGLE) if (deviceType == EGL_PLATFORM_ANGLE_DEVICE_TYPE_NULL_ANGLE)
{ {
mSkipDrawCalls = true; mSkipDrawCalls = true;
......
...@@ -119,8 +119,8 @@ SurfaceImpl *DisplayCGL::createWindowSurface(const egl::Config *configuration, ...@@ -119,8 +119,8 @@ SurfaceImpl *DisplayCGL::createWindowSurface(const egl::Config *configuration,
SurfaceImpl *DisplayCGL::createPbufferSurface(const egl::Config *configuration, SurfaceImpl *DisplayCGL::createPbufferSurface(const egl::Config *configuration,
const egl::AttributeMap &attribs) const egl::AttributeMap &attribs)
{ {
EGLint width = attribs.get(EGL_WIDTH, 0); EGLint width = static_cast<EGLint>(attribs.get(EGL_WIDTH, 0));
EGLint height = attribs.get(EGL_HEIGHT, 0); EGLint height = static_cast<EGLint>(attribs.get(EGL_HEIGHT, 0));
return new PbufferSurfaceCGL(this->getRenderer(), width, height, mFunctions); return new PbufferSurfaceCGL(this->getRenderer(), width, height, mFunctions);
} }
......
...@@ -147,7 +147,7 @@ egl::Error DisplayGLX::initialize(egl::Display *display) ...@@ -147,7 +147,7 @@ egl::Error DisplayGLX::initialize(egl::Display *display)
if (attribMap.contains(EGL_X11_VISUAL_ID_ANGLE)) if (attribMap.contains(EGL_X11_VISUAL_ID_ANGLE))
{ {
mRequestedVisual = attribMap.get(EGL_X11_VISUAL_ID_ANGLE, -1); mRequestedVisual = static_cast<EGLint>(attribMap.get(EGL_X11_VISUAL_ID_ANGLE, -1));
// There is no direct way to get the GLXFBConfig matching an X11 visual ID // There is no direct way to get the GLXFBConfig matching an X11 visual ID
// so we have to iterate over all the GLXFBConfigs to find the right one. // so we have to iterate over all the GLXFBConfigs to find the right one.
...@@ -349,8 +349,8 @@ SurfaceImpl *DisplayGLX::createPbufferSurface(const egl::Config *configuration, ...@@ -349,8 +349,8 @@ SurfaceImpl *DisplayGLX::createPbufferSurface(const egl::Config *configuration,
ASSERT(configIdToGLXConfig.count(configuration->configID) > 0); ASSERT(configIdToGLXConfig.count(configuration->configID) > 0);
glx::FBConfig fbConfig = configIdToGLXConfig[configuration->configID]; glx::FBConfig fbConfig = configIdToGLXConfig[configuration->configID];
EGLint width = attribs.get(EGL_WIDTH, 0); EGLint width = static_cast<EGLint>(attribs.get(EGL_WIDTH, 0));
EGLint height = attribs.get(EGL_HEIGHT, 0); EGLint height = static_cast<EGLint>(attribs.get(EGL_HEIGHT, 0));
bool largest = (attribs.get(EGL_LARGEST_PBUFFER, EGL_FALSE) == EGL_TRUE); bool largest = (attribs.get(EGL_LARGEST_PBUFFER, EGL_FALSE) == EGL_TRUE);
return new PbufferSurfaceGLX(this->getRenderer(), width, height, largest, mGLX, mContext, return new PbufferSurfaceGLX(this->getRenderer(), width, height, largest, mGLX, mContext,
...@@ -385,8 +385,8 @@ egl::Error DisplayGLX::initializeContext(glx::FBConfig config, ...@@ -385,8 +385,8 @@ egl::Error DisplayGLX::initializeContext(glx::FBConfig config,
{ {
int profileMask = 0; int profileMask = 0;
EGLint requestedDisplayType = EGLint requestedDisplayType = static_cast<EGLint>(
eglAttributes.get(EGL_PLATFORM_ANGLE_TYPE_ANGLE, EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE); eglAttributes.get(EGL_PLATFORM_ANGLE_TYPE_ANGLE, EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE));
if (requestedDisplayType == EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE) if (requestedDisplayType == EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE)
{ {
if (!mHasEXTCreateContextES2Profile) if (!mHasEXTCreateContextES2Profile)
...@@ -401,9 +401,10 @@ egl::Error DisplayGLX::initializeContext(glx::FBConfig config, ...@@ -401,9 +401,10 @@ egl::Error DisplayGLX::initializeContext(glx::FBConfig config,
} }
// Create a context of the requested version, if any. // Create a context of the requested version, if any.
gl::Version requestedVersion( gl::Version requestedVersion(static_cast<EGLint>(eglAttributes.get(
eglAttributes.get(EGL_PLATFORM_ANGLE_MAX_VERSION_MAJOR_ANGLE, EGL_DONT_CARE), EGL_PLATFORM_ANGLE_MAX_VERSION_MAJOR_ANGLE, EGL_DONT_CARE)),
eglAttributes.get(EGL_PLATFORM_ANGLE_MAX_VERSION_MINOR_ANGLE, EGL_DONT_CARE)); static_cast<EGLint>(eglAttributes.get(
EGL_PLATFORM_ANGLE_MAX_VERSION_MINOR_ANGLE, EGL_DONT_CARE)));
if (static_cast<EGLint>(requestedVersion.major) != EGL_DONT_CARE && if (static_cast<EGLint>(requestedVersion.major) != EGL_DONT_CARE &&
static_cast<EGLint>(requestedVersion.minor) != EGL_DONT_CARE) static_cast<EGLint>(requestedVersion.minor) != EGL_DONT_CARE)
{ {
......
...@@ -180,8 +180,8 @@ egl::Error DisplayWGL::initialize(egl::Display *display) ...@@ -180,8 +180,8 @@ egl::Error DisplayWGL::initialize(egl::Display *display)
DestroyWindow(dummyWindow); DestroyWindow(dummyWindow);
const egl::AttributeMap &displayAttributes = display->getAttributeMap(); const egl::AttributeMap &displayAttributes = display->getAttributeMap();
EGLint requestedDisplayType = EGLint requestedDisplayType = static_cast<EGLint>(displayAttributes.get(
displayAttributes.get(EGL_PLATFORM_ANGLE_TYPE_ANGLE, EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE); EGL_PLATFORM_ANGLE_TYPE_ANGLE, EGL_PLATFORM_ANGLE_TYPE_DEFAULT_ANGLE));
if (requestedDisplayType == EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE && if (requestedDisplayType == EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE &&
!mFunctionsWGL->hasExtension("WGL_EXT_create_context_es2_profile") && !mFunctionsWGL->hasExtension("WGL_EXT_create_context_es2_profile") &&
!mFunctionsWGL->hasExtension("WGL_EXT_create_context_es_profile")) !mFunctionsWGL->hasExtension("WGL_EXT_create_context_es_profile"))
...@@ -261,8 +261,10 @@ egl::Error DisplayWGL::initialize(egl::Display *display) ...@@ -261,8 +261,10 @@ egl::Error DisplayWGL::initialize(egl::Display *display)
// Don't request a specific version unless the user wants one. WGL will return the highest version // Don't request a specific version unless the user wants one. WGL will return the highest version
// that the driver supports if no version is requested. // that the driver supports if no version is requested.
EGLint requestedMajorVersion = displayAttributes.get(EGL_PLATFORM_ANGLE_MAX_VERSION_MAJOR_ANGLE, EGL_DONT_CARE); EGLint requestedMajorVersion = static_cast<EGLint>(
EGLint requestedMinorVersion = displayAttributes.get(EGL_PLATFORM_ANGLE_MAX_VERSION_MINOR_ANGLE, EGL_DONT_CARE); displayAttributes.get(EGL_PLATFORM_ANGLE_MAX_VERSION_MAJOR_ANGLE, EGL_DONT_CARE));
EGLint requestedMinorVersion = static_cast<EGLint>(
displayAttributes.get(EGL_PLATFORM_ANGLE_MAX_VERSION_MINOR_ANGLE, EGL_DONT_CARE));
if (requestedMajorVersion != EGL_DONT_CARE && requestedMinorVersion != EGL_DONT_CARE) if (requestedMajorVersion != EGL_DONT_CARE && requestedMinorVersion != EGL_DONT_CARE)
{ {
contextCreationAttributes.push_back(WGL_CONTEXT_MAJOR_VERSION_ARB); contextCreationAttributes.push_back(WGL_CONTEXT_MAJOR_VERSION_ARB);
...@@ -408,7 +410,7 @@ SurfaceImpl *DisplayWGL::createWindowSurface(const egl::Config *configuration, ...@@ -408,7 +410,7 @@ SurfaceImpl *DisplayWGL::createWindowSurface(const egl::Config *configuration,
EGLNativeWindowType window, EGLNativeWindowType window,
const egl::AttributeMap &attribs) const egl::AttributeMap &attribs)
{ {
EGLint orientation = attribs.get(EGL_SURFACE_ORIENTATION_ANGLE, 0); EGLint orientation = static_cast<EGLint>(attribs.get(EGL_SURFACE_ORIENTATION_ANGLE, 0));
if (mUseDXGISwapChains) if (mUseDXGISwapChains)
{ {
return new DXGISwapChainWindowSurfaceWGL(this->getRenderer(), window, mD3D11Device, return new DXGISwapChainWindowSurfaceWGL(this->getRenderer(), window, mD3D11Device,
...@@ -425,11 +427,11 @@ SurfaceImpl *DisplayWGL::createWindowSurface(const egl::Config *configuration, ...@@ -425,11 +427,11 @@ SurfaceImpl *DisplayWGL::createWindowSurface(const egl::Config *configuration,
SurfaceImpl *DisplayWGL::createPbufferSurface(const egl::Config *configuration, SurfaceImpl *DisplayWGL::createPbufferSurface(const egl::Config *configuration,
const egl::AttributeMap &attribs) const egl::AttributeMap &attribs)
{ {
EGLint width = attribs.get(EGL_WIDTH, 0); EGLint width = static_cast<EGLint>(attribs.get(EGL_WIDTH, 0));
EGLint height = attribs.get(EGL_HEIGHT, 0); EGLint height = static_cast<EGLint>(attribs.get(EGL_HEIGHT, 0));
bool largest = (attribs.get(EGL_LARGEST_PBUFFER, EGL_FALSE) == EGL_TRUE); bool largest = (attribs.get(EGL_LARGEST_PBUFFER, EGL_FALSE) == EGL_TRUE);
EGLenum textureFormat = attribs.get(EGL_TEXTURE_FORMAT, EGL_NO_TEXTURE); EGLenum textureFormat = static_cast<EGLenum>(attribs.get(EGL_TEXTURE_FORMAT, EGL_NO_TEXTURE));
EGLenum textureTarget = attribs.get(EGL_TEXTURE_TARGET, EGL_NO_TEXTURE); EGLenum textureTarget = static_cast<EGLenum>(attribs.get(EGL_TEXTURE_TARGET, EGL_NO_TEXTURE));
return new PbufferSurfaceWGL(this->getRenderer(), width, height, textureFormat, textureTarget, return new PbufferSurfaceWGL(this->getRenderer(), width, height, textureFormat, textureTarget,
largest, mPixelFormat, mDeviceContext, mWGLContext, mFunctionsWGL); largest, mPixelFormat, mDeviceContext, mWGLContext, mFunctionsWGL);
......
...@@ -209,15 +209,15 @@ Error ValidateCreateContext(Display *display, Config *configuration, gl::Context ...@@ -209,15 +209,15 @@ Error ValidateCreateContext(Display *display, Config *configuration, gl::Context
} }
// Get the requested client version (default is 1) and check it is 2 or 3. // Get the requested client version (default is 1) and check it is 2 or 3.
EGLint clientMajorVersion = 1; EGLAttrib clientMajorVersion = 1;
EGLint clientMinorVersion = 0; EGLAttrib clientMinorVersion = 0;
EGLint contextFlags = 0; EGLAttrib contextFlags = 0;
bool resetNotification = false; bool resetNotification = false;
bool robustAccess = false; bool robustAccess = false;
for (AttributeMap::const_iterator attributeIter = attributes.begin(); attributeIter != attributes.end(); attributeIter++) for (AttributeMap::const_iterator attributeIter = attributes.begin(); attributeIter != attributes.end(); attributeIter++)
{ {
EGLint attribute = attributeIter->first; EGLAttrib attribute = attributeIter->first;
EGLint value = attributeIter->second; EGLAttrib value = attributeIter->second;
switch (attribute) switch (attribute)
{ {
...@@ -356,8 +356,8 @@ Error ValidateCreateWindowSurface(Display *display, Config *config, EGLNativeWin ...@@ -356,8 +356,8 @@ Error ValidateCreateWindowSurface(Display *display, Config *config, EGLNativeWin
for (AttributeMap::const_iterator attributeIter = attributes.begin(); attributeIter != attributes.end(); attributeIter++) for (AttributeMap::const_iterator attributeIter = attributes.begin(); attributeIter != attributes.end(); attributeIter++)
{ {
EGLint attribute = attributeIter->first; EGLAttrib attribute = attributeIter->first;
EGLint value = attributeIter->second; EGLAttrib value = attributeIter->second;
switch (attribute) switch (attribute)
{ {
...@@ -451,8 +451,8 @@ Error ValidateCreatePbufferSurface(Display *display, Config *config, const Attri ...@@ -451,8 +451,8 @@ Error ValidateCreatePbufferSurface(Display *display, Config *config, const Attri
for (AttributeMap::const_iterator attributeIter = attributes.begin(); attributeIter != attributes.end(); attributeIter++) for (AttributeMap::const_iterator attributeIter = attributes.begin(); attributeIter != attributes.end(); attributeIter++)
{ {
EGLint attribute = attributeIter->first; EGLAttrib attribute = attributeIter->first;
EGLint value = attributeIter->second; EGLAttrib value = attributeIter->second;
switch (attribute) switch (attribute)
{ {
...@@ -521,8 +521,8 @@ Error ValidateCreatePbufferSurface(Display *display, Config *config, const Attri ...@@ -521,8 +521,8 @@ Error ValidateCreatePbufferSurface(Display *display, Config *config, const Attri
const Caps &caps = display->getCaps(); const Caps &caps = display->getCaps();
EGLenum textureFormat = attributes.get(EGL_TEXTURE_FORMAT, EGL_NO_TEXTURE); EGLAttrib textureFormat = attributes.get(EGL_TEXTURE_FORMAT, EGL_NO_TEXTURE);
EGLenum textureTarget = attributes.get(EGL_TEXTURE_TARGET, EGL_NO_TEXTURE); EGLAttrib textureTarget = attributes.get(EGL_TEXTURE_TARGET, EGL_NO_TEXTURE);
if ((textureFormat != EGL_NO_TEXTURE && textureTarget == EGL_NO_TEXTURE) || if ((textureFormat != EGL_NO_TEXTURE && textureTarget == EGL_NO_TEXTURE) ||
(textureFormat == EGL_NO_TEXTURE && textureTarget != EGL_NO_TEXTURE)) (textureFormat == EGL_NO_TEXTURE && textureTarget != EGL_NO_TEXTURE))
...@@ -536,8 +536,8 @@ Error ValidateCreatePbufferSurface(Display *display, Config *config, const Attri ...@@ -536,8 +536,8 @@ Error ValidateCreatePbufferSurface(Display *display, Config *config, const Attri
return Error(EGL_BAD_ATTRIBUTE); return Error(EGL_BAD_ATTRIBUTE);
} }
EGLint width = attributes.get(EGL_WIDTH, 0); EGLint width = static_cast<EGLint>(attributes.get(EGL_WIDTH, 0));
EGLint height = attributes.get(EGL_HEIGHT, 0); EGLint height = static_cast<EGLint>(attributes.get(EGL_HEIGHT, 0));
if (textureFormat != EGL_NO_TEXTURE && !caps.textureNPOT && (!gl::isPow2(width) || !gl::isPow2(height))) if (textureFormat != EGL_NO_TEXTURE && !caps.textureNPOT && (!gl::isPow2(width) || !gl::isPow2(height)))
{ {
return Error(EGL_BAD_MATCH); return Error(EGL_BAD_MATCH);
...@@ -576,8 +576,8 @@ Error ValidateCreatePbufferFromClientBuffer(Display *display, EGLenum buftype, E ...@@ -576,8 +576,8 @@ Error ValidateCreatePbufferFromClientBuffer(Display *display, EGLenum buftype, E
for (AttributeMap::const_iterator attributeIter = attributes.begin(); attributeIter != attributes.end(); attributeIter++) for (AttributeMap::const_iterator attributeIter = attributes.begin(); attributeIter != attributes.end(); attributeIter++)
{ {
EGLint attribute = attributeIter->first; EGLAttrib attribute = attributeIter->first;
EGLint value = attributeIter->second; EGLAttrib value = attributeIter->second;
switch (attribute) switch (attribute)
{ {
...@@ -639,8 +639,8 @@ Error ValidateCreatePbufferFromClientBuffer(Display *display, EGLenum buftype, E ...@@ -639,8 +639,8 @@ Error ValidateCreatePbufferFromClientBuffer(Display *display, EGLenum buftype, E
return Error(EGL_BAD_MATCH); return Error(EGL_BAD_MATCH);
} }
EGLenum textureFormat = attributes.get(EGL_TEXTURE_FORMAT, EGL_NO_TEXTURE); EGLAttrib textureFormat = attributes.get(EGL_TEXTURE_FORMAT, EGL_NO_TEXTURE);
EGLenum textureTarget = attributes.get(EGL_TEXTURE_TARGET, EGL_NO_TEXTURE); EGLAttrib textureTarget = attributes.get(EGL_TEXTURE_TARGET, EGL_NO_TEXTURE);
if ((textureFormat != EGL_NO_TEXTURE && textureTarget == EGL_NO_TEXTURE) || if ((textureFormat != EGL_NO_TEXTURE && textureTarget == EGL_NO_TEXTURE) ||
(textureFormat == EGL_NO_TEXTURE && textureTarget != EGL_NO_TEXTURE)) (textureFormat == EGL_NO_TEXTURE && textureTarget != EGL_NO_TEXTURE))
{ {
...@@ -655,8 +655,8 @@ Error ValidateCreatePbufferFromClientBuffer(Display *display, EGLenum buftype, E ...@@ -655,8 +655,8 @@ Error ValidateCreatePbufferFromClientBuffer(Display *display, EGLenum buftype, E
if (buftype == EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE) if (buftype == EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE)
{ {
EGLint width = attributes.get(EGL_WIDTH, 0); EGLint width = static_cast<EGLint>(attributes.get(EGL_WIDTH, 0));
EGLint height = attributes.get(EGL_HEIGHT, 0); EGLint height = static_cast<EGLint>(attributes.get(EGL_HEIGHT, 0));
if (width == 0 || height == 0) if (width == 0 || height == 0)
{ {
...@@ -745,8 +745,8 @@ Error ValidateCreateImageKHR(const Display *display, ...@@ -745,8 +745,8 @@ Error ValidateCreateImageKHR(const Display *display,
for (AttributeMap::const_iterator attributeIter = attributes.begin(); for (AttributeMap::const_iterator attributeIter = attributes.begin();
attributeIter != attributes.end(); attributeIter++) attributeIter != attributes.end(); attributeIter++)
{ {
EGLint attribute = attributeIter->first; EGLAttrib attribute = attributeIter->first;
EGLint value = attributeIter->second; EGLAttrib value = attributeIter->second;
switch (attribute) switch (attribute)
{ {
...@@ -819,7 +819,7 @@ Error ValidateCreateImageKHR(const Display *display, ...@@ -819,7 +819,7 @@ Error ValidateCreateImageKHR(const Display *display,
return Error(EGL_BAD_ACCESS, "texture has a surface bound to it."); return Error(EGL_BAD_ACCESS, "texture has a surface bound to it.");
} }
EGLint level = attributes.get(EGL_GL_TEXTURE_LEVEL_KHR, 0); EGLAttrib level = attributes.get(EGL_GL_TEXTURE_LEVEL_KHR, 0);
if (texture->getWidth(GL_TEXTURE_2D, static_cast<size_t>(level)) == 0 || if (texture->getWidth(GL_TEXTURE_2D, static_cast<size_t>(level)) == 0 ||
texture->getHeight(GL_TEXTURE_2D, static_cast<size_t>(level)) == 0) texture->getHeight(GL_TEXTURE_2D, static_cast<size_t>(level)) == 0)
{ {
...@@ -873,7 +873,7 @@ Error ValidateCreateImageKHR(const Display *display, ...@@ -873,7 +873,7 @@ Error ValidateCreateImageKHR(const Display *display,
return Error(EGL_BAD_ACCESS, "texture has a surface bound to it."); return Error(EGL_BAD_ACCESS, "texture has a surface bound to it.");
} }
EGLint level = attributes.get(EGL_GL_TEXTURE_LEVEL_KHR, 0); EGLAttrib level = attributes.get(EGL_GL_TEXTURE_LEVEL_KHR, 0);
GLenum cubeMapFace = egl_gl::EGLCubeMapTargetToGLCubeMapTarget(target); GLenum cubeMapFace = egl_gl::EGLCubeMapTargetToGLCubeMapTarget(target);
if (texture->getWidth(cubeMapFace, static_cast<size_t>(level)) == 0 || if (texture->getWidth(cubeMapFace, static_cast<size_t>(level)) == 0 ||
texture->getHeight(cubeMapFace, static_cast<size_t>(level)) == 0) texture->getHeight(cubeMapFace, static_cast<size_t>(level)) == 0)
...@@ -932,8 +932,8 @@ Error ValidateCreateImageKHR(const Display *display, ...@@ -932,8 +932,8 @@ Error ValidateCreateImageKHR(const Display *display,
return Error(EGL_BAD_ACCESS, "texture has a surface bound to it."); return Error(EGL_BAD_ACCESS, "texture has a surface bound to it.");
} }
EGLint level = attributes.get(EGL_GL_TEXTURE_LEVEL_KHR, 0); EGLAttrib level = attributes.get(EGL_GL_TEXTURE_LEVEL_KHR, 0);
EGLint zOffset = attributes.get(EGL_GL_TEXTURE_ZOFFSET_KHR, 0); EGLAttrib zOffset = attributes.get(EGL_GL_TEXTURE_ZOFFSET_KHR, 0);
if (texture->getWidth(GL_TEXTURE_3D, static_cast<size_t>(level)) == 0 || if (texture->getWidth(GL_TEXTURE_3D, static_cast<size_t>(level)) == 0 ||
texture->getHeight(GL_TEXTURE_3D, static_cast<size_t>(level)) == 0 || texture->getHeight(GL_TEXTURE_3D, static_cast<size_t>(level)) == 0 ||
texture->getDepth(GL_TEXTURE_3D, static_cast<size_t>(level)) == 0) texture->getDepth(GL_TEXTURE_3D, static_cast<size_t>(level)) == 0)
...@@ -1094,8 +1094,8 @@ Error ValidateCreateStreamKHR(const Display *display, const AttributeMap &attrib ...@@ -1094,8 +1094,8 @@ Error ValidateCreateStreamKHR(const Display *display, const AttributeMap &attrib
for (const auto &attributeIter : attributes) for (const auto &attributeIter : attributes)
{ {
EGLint attribute = attributeIter.first; EGLAttrib attribute = attributeIter.first;
EGLint value = attributeIter.second; EGLAttrib value = attributeIter.second;
switch (attribute) switch (attribute)
{ {
......
...@@ -198,7 +198,8 @@ EGLBoolean EGLAPIENTRY ChooseConfig(EGLDisplay dpy, const EGLint *attrib_list, E ...@@ -198,7 +198,8 @@ EGLBoolean EGLAPIENTRY ChooseConfig(EGLDisplay dpy, const EGLint *attrib_list, E
return EGL_FALSE; return EGL_FALSE;
} }
std::vector<const Config*> filteredConfigs = display->getConfigs(AttributeMap(attrib_list)); std::vector<const Config *> filteredConfigs =
display->getConfigs(AttributeMap::CreateFromIntArray(attrib_list));
if (configs) if (configs)
{ {
filteredConfigs.resize(std::min<size_t>(filteredConfigs.size(), config_size)); filteredConfigs.resize(std::min<size_t>(filteredConfigs.size(), config_size));
...@@ -245,7 +246,7 @@ EGLSurface EGLAPIENTRY CreateWindowSurface(EGLDisplay dpy, EGLConfig config, EGL ...@@ -245,7 +246,7 @@ EGLSurface EGLAPIENTRY CreateWindowSurface(EGLDisplay dpy, EGLConfig config, EGL
Display *display = static_cast<Display*>(dpy); Display *display = static_cast<Display*>(dpy);
Config *configuration = static_cast<Config*>(config); Config *configuration = static_cast<Config*>(config);
AttributeMap attributes(attrib_list); AttributeMap attributes = AttributeMap::CreateFromIntArray(attrib_list);
Error error = ValidateCreateWindowSurface(display, configuration, win, attributes); Error error = ValidateCreateWindowSurface(display, configuration, win, attributes);
if (error.isError()) if (error.isError())
...@@ -272,7 +273,7 @@ EGLSurface EGLAPIENTRY CreatePbufferSurface(EGLDisplay dpy, EGLConfig config, co ...@@ -272,7 +273,7 @@ EGLSurface EGLAPIENTRY CreatePbufferSurface(EGLDisplay dpy, EGLConfig config, co
Display *display = static_cast<Display*>(dpy); Display *display = static_cast<Display*>(dpy);
Config *configuration = static_cast<Config*>(config); Config *configuration = static_cast<Config*>(config);
AttributeMap attributes(attrib_list); AttributeMap attributes = AttributeMap::CreateFromIntArray(attrib_list);
Error error = ValidateCreatePbufferSurface(display, configuration, attributes); Error error = ValidateCreatePbufferSurface(display, configuration, attributes);
if (error.isError()) if (error.isError())
...@@ -474,7 +475,7 @@ EGLContext EGLAPIENTRY CreateContext(EGLDisplay dpy, EGLConfig config, EGLContex ...@@ -474,7 +475,7 @@ EGLContext EGLAPIENTRY CreateContext(EGLDisplay dpy, EGLConfig config, EGLContex
Display *display = static_cast<Display*>(dpy); Display *display = static_cast<Display*>(dpy);
Config *configuration = static_cast<Config*>(config); Config *configuration = static_cast<Config*>(config);
gl::Context* sharedGLContext = static_cast<gl::Context*>(share_context); gl::Context* sharedGLContext = static_cast<gl::Context*>(share_context);
AttributeMap attributes(attrib_list); AttributeMap attributes = AttributeMap::CreateFromIntArray(attrib_list);
Error error = ValidateCreateContext(display, configuration, sharedGLContext, attributes); Error error = ValidateCreateContext(display, configuration, sharedGLContext, attributes);
if (error.isError()) if (error.isError())
...@@ -1065,7 +1066,7 @@ EGLSurface EGLAPIENTRY CreatePbufferFromClientBuffer(EGLDisplay dpy, EGLenum buf ...@@ -1065,7 +1066,7 @@ EGLSurface EGLAPIENTRY CreatePbufferFromClientBuffer(EGLDisplay dpy, EGLenum buf
Display *display = static_cast<Display*>(dpy); Display *display = static_cast<Display*>(dpy);
Config *configuration = static_cast<Config*>(config); Config *configuration = static_cast<Config*>(config);
AttributeMap attributes(attrib_list); AttributeMap attributes = AttributeMap::CreateFromIntArray(attrib_list);
Error error = ValidateCreatePbufferFromClientBuffer(display, buftype, buffer, configuration, attributes); Error error = ValidateCreatePbufferFromClientBuffer(display, buftype, buffer, configuration, attributes);
if (error.isError()) if (error.isError())
......
...@@ -326,7 +326,8 @@ EGLDisplay EGLAPIENTRY GetPlatformDisplayEXT(EGLenum platform, void *native_disp ...@@ -326,7 +326,8 @@ EGLDisplay EGLAPIENTRY GetPlatformDisplayEXT(EGLenum platform, void *native_disp
} }
SetGlobalError(Error(EGL_SUCCESS)); SetGlobalError(Error(EGL_SUCCESS));
return Display::GetDisplayFromAttribs(native_display, AttributeMap(attrib_list)); return Display::GetDisplayFromAttribs(native_display,
AttributeMap::CreateFromIntArray(attrib_list));
} }
else if (platform == EGL_PLATFORM_DEVICE_EXT) else if (platform == EGL_PLATFORM_DEVICE_EXT)
{ {
...@@ -468,7 +469,7 @@ ANGLE_EXPORT EGLImageKHR EGLAPIENTRY CreateImageKHR(EGLDisplay dpy, ...@@ -468,7 +469,7 @@ ANGLE_EXPORT EGLImageKHR EGLAPIENTRY CreateImageKHR(EGLDisplay dpy,
Display *display = static_cast<Display *>(dpy); Display *display = static_cast<Display *>(dpy);
gl::Context *context = static_cast<gl::Context *>(ctx); gl::Context *context = static_cast<gl::Context *>(ctx);
AttributeMap attributes(attrib_list); AttributeMap attributes = AttributeMap::CreateFromIntArray(attrib_list);
Error error = ValidateCreateImageKHR(display, context, target, buffer, attributes); Error error = ValidateCreateImageKHR(display, context, target, buffer, attributes);
if (error.isError()) if (error.isError())
...@@ -559,7 +560,7 @@ EGLStreamKHR EGLAPIENTRY CreateStreamKHR(EGLDisplay dpy, const EGLint *attrib_li ...@@ -559,7 +560,7 @@ EGLStreamKHR EGLAPIENTRY CreateStreamKHR(EGLDisplay dpy, const EGLint *attrib_li
EVENT("(EGLDisplay dpy = 0x%0.8p, const EGLAttrib* attrib_list = 0x%0.8p)", dpy, attrib_list); EVENT("(EGLDisplay dpy = 0x%0.8p, const EGLAttrib* attrib_list = 0x%0.8p)", dpy, attrib_list);
Display *display = static_cast<Display *>(dpy); Display *display = static_cast<Display *>(dpy);
AttributeMap attributes(attrib_list); AttributeMap attributes = AttributeMap::CreateFromIntArray(attrib_list);
Error error = ValidateCreateStreamKHR(display, attributes); Error error = ValidateCreateStreamKHR(display, attributes);
if (error.isError()) if (error.isError())
......
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