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