Use BufferID in place of GLuint handles.

Introduces enable_if handling for "FromGL". Avoids the use of any macro
code to handle resource id casting.

Bug: angleproject:3611
Change-Id: I1a6d10c3c9cc6ba0dc072bad1d62c33551f05d87
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1736127
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Tim Van Patten <timvp@google.com>
diff --git a/src/libANGLE/ResourceManager.cpp b/src/libANGLE/ResourceManager.cpp
index ffc44ba..a430c71 100644
--- a/src/libANGLE/ResourceManager.cpp
+++ b/src/libANGLE/ResourceManager.cpp
@@ -103,7 +103,7 @@
 
 template class ResourceManagerBase<HandleAllocator>;
 template class ResourceManagerBase<HandleRangeAllocator>;
-template class TypedResourceManager<Buffer, HandleAllocator, BufferManager, GLuint>;
+template class TypedResourceManager<Buffer, HandleAllocator, BufferManager, BufferID>;
 template class TypedResourceManager<Texture, HandleAllocator, TextureManager, GLuint>;
 template class TypedResourceManager<Renderbuffer,
                                     HandleAllocator,
@@ -120,7 +120,7 @@
 // BufferManager Implementation.
 
 // static
-Buffer *BufferManager::AllocateNewObject(rx::GLImplFactory *factory, GLuint handle)
+Buffer *BufferManager::AllocateNewObject(rx::GLImplFactory *factory, BufferID handle)
 {
     Buffer *buffer = new Buffer(factory, handle);
     buffer->addRef();
@@ -133,12 +133,12 @@
     buffer->release(context);
 }
 
-GLuint BufferManager::createBuffer()
+BufferID BufferManager::createBuffer()
 {
     return AllocateEmptyObject(&mHandleAllocator, &mObjectMap);
 }
 
-Buffer *BufferManager::getBuffer(GLuint handle) const
+Buffer *BufferManager::getBuffer(BufferID handle) const
 {
     return mObjectMap.query(handle);
 }