summaryrefslogtreecommitdiff
path: root/themes/WebglContext.cpp
blob: 11a201bba55317c6fb2bdd08d01a7fa8fe409812 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include "WebglContext.h"
#include <cstdio>


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);
    
    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);
}