Index: src/gpu/gl/GrGLUniformManager.h |
diff --git a/src/gpu/gl/GrGLUniformManager.h b/src/gpu/gl/GrGLUniformManager.h |
index ee693a6a5bba7d8554416a07f5b43b9e9c3504a7..a9cf3ad702ea1b55e2931a695a2af19378652d65 100644 |
--- a/src/gpu/gl/GrGLUniformManager.h |
+++ b/src/gpu/gl/GrGLUniformManager.h |
@@ -22,8 +22,27 @@ class SkMatrix; |
class GrGLUniformManager { |
public: |
// Opaque handle to a uniform |
- typedef int UniformHandle; |
- static const UniformHandle kInvalidUniformHandle = 0; |
+ class UniformHandle { |
+ public: |
+ static UniformHandle CreateFromUniformIndex(int i); |
+ |
+ int toUniformIndex() const { GrAssert(isValid()); return ~fHandle; } |
bsalomon
2013/08/09 13:19:40
Can we make this private to GrGLUniformManager?
I
Kimmo Kinnunen
2013/08/13 09:00:33
Done.
|
+ bool isValid() const { return 0 != fHandle; } |
+ |
+ bool operator==(const UniformHandle& other) const { return other.fHandle == fHandle; } |
+ |
+ UniformHandle() |
+ : fHandle(0) { |
+ } |
+ |
+ private: |
+ UniformHandle(int handle) |
+ : fHandle(~handle) { |
+ GrAssert(isValid()); |
+ } |
+ |
+ int fHandle; |
+ }; |
GrGLUniformManager(const GrGLContext& context) : fContext(context) {} |