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;
};
}