TinyGL 0.4.1 for MinGW
TinyGL.MinGW-master
src
misc.c
Go to the documentation of this file.
1
#include "
zgl.h
"
2
#include "
msghandling.h
"
3
4
void
glopViewport
(
GLContext
*c,
GLParam
*p)
5
{
6
int
xsize,ysize,xmin,ymin,xsize_req,ysize_req;
7
8
xmin=p[1].
i
;
9
ymin=p[2].
i
;
10
xsize=p[3].
i
;
11
ysize=p[4].
i
;
12
13
/* we may need to resize the zbuffer */
14
15
if
(c->
viewport
.
xmin
!= xmin ||
16
c->
viewport
.
ymin
!= ymin ||
17
c->
viewport
.
xsize
!= xsize ||
18
c->
viewport
.
ysize
!= ysize) {
19
20
xsize_req=xmin+xsize;
21
ysize_req=ymin+ysize;
22
23
if
(c->
gl_resize_viewport
&&
24
c->
gl_resize_viewport
(c,&xsize_req,&ysize_req) != 0) {
25
gl_fatal_error
(
"glViewport: error while resizing display"
);
26
}
27
28
xsize=xsize_req-xmin;
29
ysize=ysize_req-ymin;
30
if
(xsize <= 0 || ysize <= 0) {
31
gl_fatal_error
(
"glViewport: size too small"
);
32
}
33
34
tgl_trace
(
"glViewport: %d %d %d %d\n"
,
35
xmin, ymin, xsize, ysize);
36
c->
viewport
.
xmin
=xmin;
37
c->
viewport
.
ymin
=ymin;
38
c->
viewport
.
xsize
=xsize;
39
c->
viewport
.
ysize
=ysize;
40
41
c->
viewport
.
updated
=1;
42
}
43
}
44
45
void
glopEnableDisable
(
GLContext
*c,
GLParam
*p)
46
{
47
int
code=p[1].
i
;
48
int
v=p[2].
i
;
49
50
switch
(code) {
51
case
GL_CULL_FACE
:
52
c->
cull_face_enabled
=v;
53
break
;
54
case
GL_LIGHTING
:
55
c->
lighting_enabled
=v;
56
break
;
57
case
GL_COLOR_MATERIAL
:
58
c->
color_material_enabled
=v;
59
break
;
60
case
GL_TEXTURE_2D
:
61
c->
texture_2d_enabled
=v;
62
break
;
63
case
GL_NORMALIZE
:
64
c->
normalize_enabled
=v;
65
break
;
66
case
GL_DEPTH_TEST
:
67
c->
depth_test
= v;
68
break
;
69
case
GL_POLYGON_OFFSET_FILL
:
70
if
(v) c->
offset_states
|=
TGL_OFFSET_FILL
;
71
else
c->
offset_states
&= ~TGL_OFFSET_FILL;
72
break
;
73
case
GL_POLYGON_OFFSET_POINT
:
74
if
(v) c->
offset_states
|=
TGL_OFFSET_POINT
;
75
else
c->
offset_states
&= ~TGL_OFFSET_POINT;
76
break
;
77
case
GL_POLYGON_OFFSET_LINE
:
78
if
(v) c->
offset_states
|=
TGL_OFFSET_LINE
;
79
else
c->
offset_states
&= ~TGL_OFFSET_LINE;
80
break
;
81
default
:
82
if
(code>=
GL_LIGHT0
&& code<
GL_LIGHT0
+
MAX_LIGHTS
) {
83
gl_enable_disable_light
(c,code -
GL_LIGHT0
, v);
84
}
else
{
85
/*
86
fprintf(stderr,"glEnableDisable: 0x%X not supported.\n",code);
87
*/
88
}
89
break
;
90
}
91
}
92
93
void
glopShadeModel
(
GLContext
*c,
GLParam
*p)
94
{
95
int
code=p[1].
i
;
96
c->
current_shade_model
=code;
97
}
98
99
void
glopCullFace
(
GLContext
*c,
GLParam
*p)
100
{
101
int
code=p[1].
i
;
102
c->
current_cull_face
=code;
103
}
104
105
void
glopFrontFace
(
GLContext
*c,
GLParam
*p)
106
{
107
int
code=p[1].
i
;
108
c->
current_front_face
=code;
109
}
110
111
void
glopPolygonMode
(
GLContext
*c,
GLParam
*p)
112
{
113
int
face=p[1].
i
;
114
int
mode=p[2].
i
;
115
116
switch
(face) {
117
case
GL_BACK
:
118
c->
polygon_mode_back
=mode;
119
break
;
120
case
GL_FRONT
:
121
c->
polygon_mode_front
=mode;
122
break
;
123
case
GL_FRONT_AND_BACK
:
124
c->
polygon_mode_front
=mode;
125
c->
polygon_mode_back
=mode;
126
break
;
127
default
:
128
assert(0);
129
}
130
}
131
132
void
glopHint
(
GLContext
*c,
GLParam
*p)
133
{
134
#if 0
135
int
target=p[1].
i
;
136
int
mode=p[2].
i
;
137
138
/* do nothing */
139
#endif
140
}
141
142
void
143
glopPolygonOffset
(
GLContext
*c,
GLParam
*p)
144
{
145
c->
offset_factor
= p[1].
f
;
146
c->
offset_units
= p[2].
f
;
147
}
gl_fatal_error
void gl_fatal_error(char *format,...)
Definition:
error.c:4
GL_BACK
@ GL_BACK
Definition:
gl.h:120
GL_NORMALIZE
@ GL_NORMALIZE
Definition:
gl.h:191
GL_FRONT_AND_BACK
@ GL_FRONT_AND_BACK
Definition:
gl.h:184
GL_CULL_FACE
@ GL_CULL_FACE
Definition:
gl.h:121
GL_TEXTURE_2D
@ GL_TEXTURE_2D
Definition:
gl.h:488
GL_COLOR_MATERIAL
@ GL_COLOR_MATERIAL
Definition:
gl.h:188
GL_LIGHT0
@ GL_LIGHT0
Definition:
gl.h:159
GL_DEPTH_TEST
@ GL_DEPTH_TEST
Definition:
gl.h:149
GL_LIGHTING
@ GL_LIGHTING
Definition:
gl.h:158
GL_POLYGON_OFFSET_POINT
@ GL_POLYGON_OFFSET_POINT
Definition:
gl.h:129
GL_FRONT
@ GL_FRONT
Definition:
gl.h:119
GL_POLYGON_OFFSET_FILL
@ GL_POLYGON_OFFSET_FILL
Definition:
gl.h:131
GL_POLYGON_OFFSET_LINE
@ GL_POLYGON_OFFSET_LINE
Definition:
gl.h:130
gl_enable_disable_light
void gl_enable_disable_light(GLContext *c, int light, int v)
Definition:
light.c:164
glopEnableDisable
void glopEnableDisable(GLContext *c, GLParam *p)
Definition:
misc.c:45
glopShadeModel
void glopShadeModel(GLContext *c, GLParam *p)
Definition:
misc.c:93
glopPolygonOffset
void glopPolygonOffset(GLContext *c, GLParam *p)
Definition:
misc.c:143
glopHint
void glopHint(GLContext *c, GLParam *p)
Definition:
misc.c:132
glopFrontFace
void glopFrontFace(GLContext *c, GLParam *p)
Definition:
misc.c:105
glopViewport
void glopViewport(GLContext *c, GLParam *p)
Definition:
misc.c:4
glopPolygonMode
void glopPolygonMode(GLContext *c, GLParam *p)
Definition:
misc.c:111
glopCullFace
void glopCullFace(GLContext *c, GLParam *p)
Definition:
misc.c:99
tgl_trace
void tgl_trace(const char *format,...)
Definition:
msghandling.c:28
msghandling.h
GLContext
Definition:
zgl.h:159
GLContext::offset_units
float offset_units
Definition:
zgl.h:262
GLContext::offset_factor
float offset_factor
Definition:
zgl.h:261
GLContext::cull_face_enabled
int cull_face_enabled
Definition:
zgl.h:212
GLContext::polygon_mode_back
int polygon_mode_back
Definition:
zgl.h:206
GLContext::color_material_enabled
int color_material_enabled
Definition:
zgl.h:173
GLContext::current_front_face
int current_front_face
Definition:
zgl.h:209
GLContext::depth_test
int depth_test
Definition:
zgl.h:277
GLContext::normalize_enabled
int normalize_enabled
Definition:
zgl.h:213
GLContext::viewport
GLViewport viewport
Definition:
zgl.h:203
GLContext::lighting_enabled
int lighting_enabled
Definition:
zgl.h:168
GLContext::current_shade_model
int current_shade_model
Definition:
zgl.h:210
GLContext::texture_2d_enabled
int texture_2d_enabled
Definition:
zgl.h:179
GLContext::polygon_mode_front
int polygon_mode_front
Definition:
zgl.h:207
GLContext::offset_states
int offset_states
Definition:
zgl.h:263
GLContext::current_cull_face
int current_cull_face
Definition:
zgl.h:211
GLContext::gl_resize_viewport
int(* gl_resize_viewport)(struct GLContext *c, int *xsize, int *ysize)
Definition:
zgl.h:274
GLViewport::xmin
int xmin
Definition:
zgl.h:91
GLViewport::ymin
int ymin
Definition:
zgl.h:91
GLViewport::ysize
int ysize
Definition:
zgl.h:91
GLViewport::updated
int updated
Definition:
zgl.h:94
GLViewport::xsize
int xsize
Definition:
zgl.h:91
GLParam
Definition:
zgl.h:97
GLParam::i
int i
Definition:
zgl.h:100
GLParam::f
float f
Definition:
zgl.h:99
zgl.h
TGL_OFFSET_POINT
#define TGL_OFFSET_POINT
Definition:
zgl.h:50
MAX_LIGHTS
#define MAX_LIGHTS
Definition:
zgl.h:41
TGL_OFFSET_LINE
#define TGL_OFFSET_LINE
Definition:
zgl.h:49
TGL_OFFSET_FILL
#define TGL_OFFSET_FILL
Definition:
zgl.h:48
Generated by
1.9.2