because the definition of EGLNativeDisplayType can change profoundly depending on where it is included and what the assumed EGL platform is (decided a pre-processing time). Hence it fails the one-definition-rule and will occasionally cause build failures.
A good compromise I think is to write code that assumes EGLNativeDisplayType is always going to be compatible with a pointer. So please change EGLNativeDisplayType to use MirEGLNativeDisplayType (which is currently defined in mir_toolkit/client_types.h). Although it's better if we never need to return it from a function at all...
Oh, actually, further to Alberto's comments, that does need fixing:
+ EGLNativeDispla yType egl_native_ display( ) const override;
because the definition of EGLNativeDispla yType can change profoundly depending on where it is included and what the assumed EGL platform is (decided a pre-processing time). Hence it fails the one-definition-rule and will occasionally cause build failures.
A good compromise I think is to write code that assumes EGLNativeDispla yType is always going to be compatible with a pointer. So please change EGLNativeDispla yType to use MirEGLNativeDis playType (which is currently defined in mir_toolkit/ client_ types.h) . Although it's better if we never need to return it from a function at all...