Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
emscripten-core
GitHub Repository: emscripten-core/emscripten
Path: blob/main/test/browser/glgettexenv.c
7085 views
1
/*
2
* Copyright 2014 The Emscripten Authors. All rights reserved.
3
* Emscripten is available under two separate licenses, the MIT license and the
4
* University of Illinois/NCSA Open Source License. Both these licenses can be
5
* found in the LICENSE file.
6
*/
7
8
/*
9
THIS WORK, INCLUDING THE SOURCE CODE, DOCUMENTATION
10
AND RELATED MEDIA AND DATA, IS PLACED INTO THE PUBLIC DOMAIN.
11
12
THE ORIGINAL AUTHOR IS KYLE FOLEY.
13
14
THIS SOFTWARE IS PROVIDED AS-IS WITHOUT WARRANTY
15
OF ANY KIND, NOT EVEN THE IMPLIED WARRANTY OF
16
MERCHANTABILITY. THE AUTHOR OF THIS SOFTWARE,
17
ASSUMES _NO_ RESPONSIBILITY FOR ANY CONSEQUENCE
18
RESULTING FROM THE USE, MODIFICATION, OR
19
REDISTRIBUTION OF THIS SOFTWARE.
20
*/
21
22
#ifndef __EMSCRIPTEN__
23
#define USE_GLEW 1
24
#endif
25
26
#if USE_GLEW
27
#include "GL/glew.h"
28
#endif
29
30
#include "SDL/SDL.h"
31
#if !USE_GLEW
32
#include "SDL/SDL_opengl.h"
33
#endif
34
35
#include <stdio.h>
36
#include <string.h>
37
#include <assert.h>
38
39
int main(int argc, char *argv[]) {
40
SDL_Surface *screen;
41
if ( SDL_Init(SDL_INIT_VIDEO) != 0 ) {
42
printf("Unable to initialize SDL: %s\n", SDL_GetError());
43
return 1;
44
}
45
46
SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 );
47
screen = SDL_SetVideoMode( 640, 480, 24, SDL_OPENGL );
48
if ( !screen ) {
49
printf("Unable to set video mode: %s\n", SDL_GetError());
50
return 1;
51
}
52
53
GLint value = 0;
54
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_BLEND);
55
glGetTexEnviv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, &value);
56
assert(value == GL_BLEND);
57
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
58
glGetTexEnviv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, &value);
59
assert(value == GL_MODULATE);
60
61
GLfloat colora[4] = { 0.2f, 0.3f, 0.4f, 0.5f };
62
GLfloat colorb[4] = {};
63
glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, colora);
64
glGetTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, colorb);
65
printf("%f %f %f %f\n", colorb[0], colorb[1], colorb[2], colorb[3]);
66
assert(colora[0] == colorb[0]);
67
assert(colora[1] == colorb[1]);
68
assert(colora[2] == colorb[2]);
69
assert(colora[3] == colorb[3]);
70
71
SDL_Quit();
72
73
#ifdef REPORT_RESULT
74
REPORT_RESULT(1);
75
#endif
76
return 0;
77
}
78
79