186bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com//
286bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com// Copyright (c) 2012 The ANGLE Project Authors. All rights reserved.
386bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com// Use of this source code is governed by a BSD-style license that can be
486bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com// found in the LICENSE file.
586bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com//
686bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com
786bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com// Query.h: Defines the gl::Query class
886bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com
986bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com#ifndef LIBGLESV2_QUERY_H_
1086bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com#define LIBGLESV2_QUERY_H_
1186bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com
12f26ddae9acc05461792c8b1b6b35444ddf209de8shannon.woods%transgaming.com@gtempaccount.com#include <GLES3/gl3.h>
1386bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com#include <GLES2/gl2.h>
1486bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com
1586bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com#include "common/angleutils.h"
16b66a70156d33b0712fae267c6697af55e22bf8b6apatrick@chromium.org#include "common/RefCountObject.h"
17486d9e9b6b4ed31f66d2624b8e822020fe40a1f7shannon.woods@transgaming.com
18486d9e9b6b4ed31f66d2624b8e822020fe40a1f7shannon.woods@transgaming.comnamespace rx
19486d9e9b6b4ed31f66d2624b8e822020fe40a1f7shannon.woods@transgaming.com{
20486d9e9b6b4ed31f66d2624b8e822020fe40a1f7shannon.woods@transgaming.comclass Renderer;
21486d9e9b6b4ed31f66d2624b8e822020fe40a1f7shannon.woods@transgaming.comclass QueryImpl;
22486d9e9b6b4ed31f66d2624b8e822020fe40a1f7shannon.woods@transgaming.com}
2386bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com
2486bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.comnamespace gl
2586bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com{
2686bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com
2786bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.comclass Query : public RefCountObject
2886bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com{
2986bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com  public:
30b32e19875065fc668b65ae89511b504cd3da8310shannon.woods@transgaming.com    Query(rx::Renderer *renderer, GLenum type, GLuint id);
3186bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com    virtual ~Query();
3286bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com
3386bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com    void begin();
3486bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com    void end();
35b32e19875065fc668b65ae89511b504cd3da8310shannon.woods@transgaming.com
3686bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com    GLuint getResult();
3786bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com    GLboolean isResultAvailable();
3886bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com
3986bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com    GLenum getType() const;
4045c785d35c270ca1d1168b6ca5517cb3a5a285ccJamie Madill    bool isStarted() const;
4186bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com
4286bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com  private:
4386bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com    DISALLOW_COPY_AND_ASSIGN(Query);
4486bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com
45b32e19875065fc668b65ae89511b504cd3da8310shannon.woods@transgaming.com    rx::QueryImpl *mQuery;
4686bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com};
4786bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com
4886bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com}
4986bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com
5086bdb824d516091ba1316675576aa8f511a0fd17daniel@transgaming.com#endif   // LIBGLESV2_QUERY_H_
51