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 // Fence9.h: Defines the rx::FenceNV9 class which implements rx::FenceNVImpl.
8 
9 #ifndef LIBANGLE_RENDERER_D3D_D3D9_FENCE9_H_
10 #define LIBANGLE_RENDERER_D3D_D3D9_FENCE9_H_
11 
12 #include "libANGLE/renderer/FenceNVImpl.h"
13 #include "libANGLE/renderer/SyncImpl.h"
14 
15 namespace rx
16 {
17 class Renderer9;
18 
19 class FenceNV9 : public FenceNVImpl
20 {
21   public:
22     explicit FenceNV9(Renderer9 *renderer);
23     ~FenceNV9() override;
24 
25     gl::Error set(GLenum condition) override;
26     gl::Error test(GLboolean *outFinished) override;
27     gl::Error finish() override;
28 
29   private:
30     gl::Error testHelper(bool flushCommandBuffer, GLboolean *outFinished);
31 
32     Renderer9 *mRenderer;
33     IDirect3DQuery9 *mQuery;
34 };
35 
36 }
37 
38 #endif // LIBANGLE_RENDERER_D3D_D3D9_FENCE9_H_
39