Move query and sync support to Renderer

Trac #21727

git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1331 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/renderer/Renderer.h b/src/libGLESv2/renderer/Renderer.h
index f27b129..857109e 100644
--- a/src/libGLESv2/renderer/Renderer.h
+++ b/src/libGLESv2/renderer/Renderer.h
@@ -10,6 +10,9 @@
 #ifndef LIBGLESV2_RENDERER_RENDERER_H_
 #define LIBGLESV2_RENDERER_RENDERER_H_
 
+#include <set>
+#include <vector>
+
 #include "common/angleutils.h"
 #define GL_APICALL
 #include <GLES2/gl2.h>
@@ -32,13 +35,18 @@
     return MAKEWORD(minorVersion, majorVersion);
 }
 
+namespace egl
+{
+class Display;
+}
+
 namespace renderer
 {
 
 class Renderer
 {
   public:
-    Renderer(HMODULE hModule, HDC hDc);
+    Renderer(egl::Display *display, HMODULE hModule, HDC hDc);
     virtual ~Renderer();
 
     virtual EGLint initialize();
@@ -47,6 +55,10 @@
     virtual void startScene();
     virtual void endScene();
 
+    virtual void sync(bool block);
+    virtual IDirect3DQuery9* allocateEventQuery();
+    virtual void freeEventQuery(IDirect3DQuery9* query);
+
 #if 0
     // resource creation
     virtual void *createVertexShader(const DWORD *function, size_t length);
@@ -103,11 +115,13 @@
   private:
     DISALLOW_COPY_AND_ASSIGN(Renderer);
 
+    egl::Display *mDisplay;
     const HDC mDc;
     HMODULE mD3d9Module;
 
     void initializeDevice();
     D3DPRESENT_PARAMETERS getDefaultPresentParameters();
+    void releaseDeviceResources();
 
     UINT mAdapter;
     D3DDEVTYPE mDeviceType;
@@ -124,6 +138,9 @@
 
     bool mSceneStarted;
     bool mSupportsNonPower2Textures;
+
+    // A pool of event queries that are currently unused.
+    std::vector<IDirect3DQuery9*> mEventQueryPool;
 };
 
 }