We should provide a way to create `non-owning` constructors for types that could be build from raw pointers,like `EGLSurface`/`EGLContext`, `GLXContext`, ect.