summaryrefslogtreecommitdiff
path: root/src/waffle/nacl/nacl_container.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/waffle/nacl/nacl_container.cpp')
-rw-r--r--src/waffle/nacl/nacl_container.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/waffle/nacl/nacl_container.cpp b/src/waffle/nacl/nacl_container.cpp
index fe907ff..84ab1da 100644
--- a/src/waffle/nacl/nacl_container.cpp
+++ b/src/waffle/nacl/nacl_container.cpp
@@ -28,11 +28,13 @@
#include "ppapi/cpp/module.h"
#include "ppapi/c/pp_errors.h"
#include "nacl_container.h"
+#include "nacl_swap_thread.h"
namespace waffle {
struct nacl_container {
pp::Graphics3D *ctx;
+ NaclSwapThread *swapper;
void *glapi;
bool (*glInitializePPAPI) (PPB_GetInterface);
@@ -49,6 +51,7 @@ nacl_container_dtor(waffle::nacl_container *nc)
if (nc->glapi)
dlclose(nc->glapi);
+ delete nc->swapper;
delete nc;
}
@@ -119,6 +122,7 @@ nacl_context_init(waffle::nacl_container *nc, struct nacl_config *cfg)
return false;
}
+ nc->swapper = new NaclSwapThread(pp_instance, nc->ctx);
return true;
}
@@ -194,3 +198,11 @@ nacl_makecurrent(nacl_container *nc, bool release)
return true;
}
+
+extern "C" bool
+nacl_swapbuffers(nacl_container *nc)
+{
+ waffle::nacl_container *cpp_nc =
+ reinterpret_cast<waffle::nacl_container*>(nc);
+ return cpp_nc->swapper->swap();
+}