Add explicit UniqueID classes for GrGpuResource & GrSurfaceProxy

This sets the stage for using the Proxy's/RenderTargetContext's ID above the flush and the RenderTarget's/GrGpuResource's below the flush.

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4650

Change-Id: I9f1e6b00c02a0691d90b58c49e1d8c60684884c1
Reviewed-on: https://skia-review.googlesource.com/4650
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
diff --git a/tests/ClearTest.cpp b/tests/ClearTest.cpp
index d83fb92..d43e65f 100644
--- a/tests/ClearTest.cpp
+++ b/tests/ClearTest.cpp
@@ -37,8 +37,15 @@
     return true;
 }
 
+// TODO: this test does this thorough purging of the rendertargets b.c. right now
+// the clear optimizations rely on the rendertarget's uniqueID. It can be
+// relaxed when we switch that over to using rendertargetcontext ids (although
+// we probably will want to have more clear values then too)
 static bool reset_rtc(sk_sp<GrRenderTargetContext>* rtc, GrContext* context, int w, int h) {
-    SkDEBUGCODE(uint32_t oldID = 0;)
+#ifdef SK_DEBUG
+    GrGpuResource::UniqueID oldID = GrGpuResource::UniqueID::InvalidID();
+#endif
+
     if (*rtc) {
         SkDEBUGCODE(oldID = (*rtc)->accessRenderTarget()->uniqueID();)
         rtc->reset(nullptr);