]> git.sesse.net Git - casparcg/blob - core/mixer/gpu/fence.h
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches...
[casparcg] / core / mixer / gpu / fence.h
1 #pragma once\r
2 \r
3 #include <memory>\r
4 \r
5 namespace caspar { namespace core {\r
6         \r
7 class ogl_device;\r
8 \r
9 // Used to avoid blocking ogl thread for async operations. \r
10 // This is imported when several objects use the same ogl context.\r
11 // Based on http://www.opengl.org/registry/specs/ARB/sync.txt.\r
12 class fence\r
13 {\r
14 public:\r
15         fence();\r
16         void set();\r
17         bool ready() const;\r
18         void wait(ogl_device& ogl);\r
19 private:\r
20         struct implementation;\r
21         std::shared_ptr<implementation> impl_;\r
22 };\r
23 \r
24 }}\r