diff options
Diffstat (limited to 'src/waffle/nacl/nacl_container.cpp')
-rw-r--r-- | src/waffle/nacl/nacl_container.cpp | 12 |
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(); +} |