summaryrefslogtreecommitdiff
path: root/themes/WebglContext.h~
diff options
context:
space:
mode:
Diffstat (limited to 'themes/WebglContext.h~')
-rw-r--r--themes/WebglContext.h~38
1 files changed, 38 insertions, 0 deletions
diff --git a/themes/WebglContext.h~ b/themes/WebglContext.h~
new file mode 100644
index 0000000..3997a51
--- /dev/null
+++ b/themes/WebglContext.h~
@@ -0,0 +1,38 @@
+#pragma once
+#include "types.h"
+#include <emscripten.h>
+#include <emscripten/html5.h>
+#include <GLES2/gl2.h>
+#include <EGL/egl.h>
+
+struct WebglContext {
+ EMSCRIPTEN_WEBGL_CONTEXT_HANDLE context;
+ int width = 800;
+ int height = 600;
+
+ void init(const char* query, int inWidth = 800, int inHeight = 600) {
+ width = inWidth;
+ height = inHeight;
+ emscripten_set_canvas_element_size( query, width, height);
+
+ 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.2f, 0.3f, 0.3f, 1.0f);
+ };
+
+ void makeCurrentContext() {
+ emscripten_webgl_make_context_current(context);
+ };
+
+ void destroy() {
+ emscripten_webgl_destroy_context(context);
+ }
+};