summaryrefslogtreecommitdiff
path: root/themes/WebglContext.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'themes/WebglContext.cpp')
-rw-r--r--themes/WebglContext.cpp32
1 files changed, 26 insertions, 6 deletions
diff --git a/themes/WebglContext.cpp b/themes/WebglContext.cpp
index 3346280..11a201b 100644
--- a/themes/WebglContext.cpp
+++ b/themes/WebglContext.cpp
@@ -1,12 +1,32 @@
#include "WebglContext.h"
#include <cstdio>
-EM_BOOL onScreenSizeChanged(int eventType, const EmscriptenUiEvent *uiEvent, void *userData) {
- printf("Here\n");
- WebglContext* context = (WebglContext*)userData;
+void WebglContext::init(const char* inQuery) {
+ strcpy(query, inQuery);
+ float64 inWidth, inHeight;
+ emscripten_get_element_css_size(query, &inWidth, &inHeight);
+ width = static_cast<int32>(inWidth);
+ height = static_cast<int32>(inHeight);
+ emscripten_set_canvas_element_size( query, width, height);
- context->width = uiEvent->documentBodyClientWidth;
- context->height = uiEvent->documentBodyClientHeight;
- return true;
+ EmscriptenWebGLContextAttributes attrs;
+ emscripten_webgl_init_context_attributes(&attrs);
+
+ attrs.enableExtensionsByDefault = 1;
+ attrs.majorVersion = 3;
+ attrs.minorVersion = 0;
+
+ context = emscripten_webgl_create_context(query, &attrs);
+ makeCurrentContext();
+
+ glClearColor(0, 0, 0, 0.0f);
+};
+
+void WebglContext::makeCurrentContext() {
+ emscripten_webgl_make_context_current(context);
+};
+
+void WebglContext::destroy() {
+ emscripten_webgl_destroy_context(context);
}