Created an abstract rx::QueryImpl class.
TRAC #22418
Signed-off-by: Nicolas Capens
Signed-off-by: Shannon Woods
Author: Geoff Lang
git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1837 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/renderer/QueryImpl.h b/src/libGLESv2/renderer/QueryImpl.h
new file mode 100644
index 0000000..17dbaf5
--- /dev/null
+++ b/src/libGLESv2/renderer/QueryImpl.h
@@ -0,0 +1,50 @@
+//
+// Copyright (c) 2013 The ANGLE Project Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+
+// QueryImpl.h: Defines the abstract rx::QueryImpl class.
+
+#ifndef LIBGLESV2_RENDERER_QUERYIMPL_H_
+#define LIBGLESV2_RENDERER_QUERYIMPL_H_
+
+#define GL_APICALL
+#include <GLES2/gl2.h>
+
+#include "common/angleutils.h"
+
+namespace rx
+{
+
+class QueryImpl
+{
+ public:
+ explicit QueryImpl(GLenum type) : mType(type), mStatus(GL_FALSE), mResult(0) { }
+ virtual ~QueryImpl() { }
+
+ virtual void begin() = 0;
+ virtual void end() = 0;
+ virtual GLuint getResult() = 0;
+ virtual GLboolean isResultAvailable() = 0;
+
+ GLenum getType() const { return mType; }
+
+ protected:
+ void setStatus(GLboolean status) { mStatus = status; }
+ GLboolean getStatus() const { return mStatus; }
+
+ void setResult(GLuint result) { mResult = result; }
+ GLuint getResult() const { return mResult; }
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(QueryImpl);
+
+ GLenum mType;
+ GLboolean mStatus;
+ GLuint mResult;
+};
+
+}
+
+#endif // LIBGLESV2_RENDERER_QUERYIMPL_H_