1//
2// Copyright (c) 2013 The ANGLE Project Authors. All rights reserved.
3// Use of this source code is governed by a BSD-style license that can be
4// found in the LICENSE file.
5//
6
7// QueryImpl.h: Defines the abstract rx::QueryImpl class.
8
9#ifndef LIBGLESV2_RENDERER_QUERYIMPL_H_
10#define LIBGLESV2_RENDERER_QUERYIMPL_H_
11
12#include "libGLESv2/Error.h"
13
14#include "common/angleutils.h"
15
16#include <GLES2/gl2.h>
17
18namespace rx
19{
20
21class QueryImpl
22{
23  public:
24    explicit QueryImpl(GLenum type) { mType = type; }
25    virtual ~QueryImpl() { }
26
27    virtual gl::Error begin() = 0;
28    virtual gl::Error end() = 0;
29    virtual gl::Error getResult(GLuint *params) = 0;
30    virtual gl::Error isResultAvailable(GLuint *available) = 0;
31
32    GLenum getType() const { return mType;  }
33
34  private:
35    DISALLOW_COPY_AND_ASSIGN(QueryImpl);
36
37    GLenum mType;
38};
39
40}
41
42#endif // LIBGLESV2_RENDERER_QUERYIMPL_H_
43