blob: 3581bcd1e40b38181fbf3466a6ff3a0deea8eb6f [file] [log] [blame]
// Copyright 2018 The Emscripten Authors. All rights reserved.
// Emscripten is available under two separate licenses, the MIT license and the
// University of Illinois/NCSA Open Source License. Both these licenses can be
// found in the LICENSE file.
#include <assert.h>
#include <stdio.h>
#include <stdbool.h>
#include <GL/gl.h>
#include <GL/glut.h>
int main(int argc, char* argv[]) {
bool stencilActivated = false;
bool depthActivated = false;
bool alphaActivated = false;
bool antiAliasingActivated = false;
unsigned int mode = GLUT_RGBA | GLUT_DOUBLE;
#ifdef STENCIL_ACTIVATED
stencilActivated = true;
mode |= GLUT_STENCIL;
#endif
#ifdef DEPTH_ACTIVATED
depthActivated = true;
mode |= GLUT_DEPTH;
#endif
#ifdef ALPHA_ACTIVATED
alphaActivated = true;
mode |= GLUT_ALPHA;
#endif
#ifdef AA_ACTIVATED
antiAliasingActivated = true;
mode |= GLUT_MULTISAMPLE;
#endif
glutInit(&argc, argv);
glutInitWindowSize(640, 480);
glutInitDisplayMode(mode);
glutCreateWindow(__FILE__);
printf("stencil: %d\n", glutGet(GLUT_WINDOW_STENCIL_SIZE));
printf("depth: %d\n", glutGet(GLUT_WINDOW_DEPTH_SIZE));
printf("alpha: %d\n", glutGet(GLUT_WINDOW_ALPHA_SIZE));
printf("antialias: %d\n", glutGet(GLUT_WINDOW_NUM_SAMPLES));
assert(!stencilActivated || glutGet(GLUT_WINDOW_STENCIL_SIZE) > 0);
assert(!depthActivated || glutGet(GLUT_WINDOW_DEPTH_SIZE) > 0);
assert(!alphaActivated || glutGet(GLUT_WINDOW_ALPHA_SIZE) > 0);
assert(!antiAliasingActivated || glutGet(GLUT_WINDOW_NUM_SAMPLES) > 0);
// fix-up "ReferenceError: GL is not defined,createContext" due to
// overzealous JS stripping
glClear(0);
return 0;
}