2 * Copyright (C) 2010 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
5 * DongKyun Yun <dk77.yun@samsung.com>
6 * SangJin Kim <sangjin3.kim@samsung.com>
7 * HyunGoo Kang <hyungoo1.kang@samsung.com>
9 * Permission is hereby granted, free of charge, to any person obtaining a copy of
10 * this software and associated documentation files (the "Software"), to deal in
11 * the Software without restriction, including without limitation the rights to
12 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
13 * of the Software, and to permit persons to whom the Software is furnished to do
14 * so, subject to the following conditions:
16 * The above copyright notice and this permission notice shall be included in all
17 * copies or substantial portions of the Software.
19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
34 #ifdef ALEXGL_PROVIDE_COMMON
35 void GL_APIENTRY EXTFN(Materialf)(GLenum face, GLenum pname, GLfloat param) {
38 INTFN(SetError)(GL_INVALID_ENUM);
40 case GL_FRONT_AND_BACK:
45 INTFN(SetError)(GL_INVALID_ENUM);
50 FNPTR(Materialf)(face, pname, param);
54 void GL_APIENTRY EXTFN(Materialx)(GLenum face, GLenum pname, GLfixed param) {
55 register GLfloat fValue = x2f(param);
58 INTFN(SetError)(GL_INVALID_ENUM);
60 case GL_FRONT_AND_BACK:
65 INTFN(SetError)(GL_INVALID_ENUM);
70 FNPTR(Materialf)(face, pname, fValue);
73 #ifdef ALEXGL_PROVIDE_COMMON
74 void GL_APIENTRY EXTFN(Materialfv)(GLenum face, GLenum pname, const GLfloat* params) {
77 INTFN(SetError)(GL_INVALID_ENUM);
79 case GL_FRONT_AND_BACK:
84 INTFN(SetError)(GL_INVALID_ENUM);
86 case GL_AMBIENT_AND_DIFFUSE:
87 fv2fv(params, CCV(ambientMaterial), 4);
88 fv2fv(params, CCV(diffuseMaterial), 4);
89 FNPTR(Materialfv)(face, pname, params);
92 fv2fv(params, CCV(ambientMaterial), 4);
93 FNPTR(Materialfv)(face, pname, params);
96 fv2fv(params, CCV(diffuseMaterial), 4);
97 FNPTR(Materialfv)(face, pname, params);
102 FNPTR(Materialfv)(face, pname, params);
108 void GL_APIENTRY EXTFN(Materialxv)(GLenum face, GLenum pname, const GLfixed* params) {
112 INTFN(SetError)(GL_INVALID_ENUM);
114 case GL_FRONT_AND_BACK:
119 INTFN(SetError)(GL_INVALID_ENUM);
121 case GL_AMBIENT_AND_DIFFUSE:
122 xv2fv(params, CCV(ambientMaterial), 4);
123 xv2fv(params, CCV(diffuseMaterial), 4);
124 FNPTR(Materialfv)(face, pname, CCV(ambientMaterial));
127 xv2fv(params, CCV(ambientMaterial), 4);
128 FNPTR(Materialfv)(face, pname, CCV(ambientMaterial));
131 xv2fv(params, CCV(diffuseMaterial), 4);
132 FNPTR(Materialfv)(face, pname, CCV(diffuseMaterial));
137 FNPTR(Materialfv)(face, pname, f);
140 f[0] = x2f(params[0]);
141 FNPTR(Materialfv)(face, pname, f);
146 #ifdef ALEXGL_PROVIDE_COMMON
147 #ifdef ALEXGL_PROVIDE_1_1
148 void GL_APIENTRY EXTFN(GetMaterialfv)(GLenum face, GLenum pname, GLfloat* params) {
151 INTFN(SetError)(GL_INVALID_ENUM);
159 INTFN(SetError)(GL_INVALID_ENUM);
165 FNPTR(GetMaterialfv)(face, pname, params);
168 FNPTR(GetMaterialfv)(face, pname, params);
175 #ifdef ALEXGL_PROVIDE_1_1
176 GL_API void GL_APIENTRY EXTFN(GetMaterialxv)(GLenum face, GLenum pname, GLfixed* params) {
180 INTFN(SetError)(GL_INVALID_ENUM);
188 INTFN(SetError)(GL_INVALID_ENUM);
194 FNPTR(GetMaterialfv)(face, pname, f);
198 FNPTR(GetMaterialfv)(face, pname, f);
199 params[0] = f2x(f[0]);
206 #ifdef ALEXGL_PROVIDE_COMMON
207 GL_API void GL_APIENTRY EXTFN(Lightf)(GLenum light, GLenum pname, GLfloat param) {
208 FNPTR(Lightf)(light, pname, param);
212 #ifdef ALEXGL_PROVIDE_COMMON
213 GL_API void GL_APIENTRY EXTFN(Lightfv)(GLenum light, GLenum pname, const GLfloat* params) {
214 FNPTR(Lightfv)(light, pname, params);
218 GL_API void GL_APIENTRY EXTFN(Lightx)(GLenum light, GLenum pname, GLfixed param) {
219 FNPTR(Lightf)(light, pname, x2f(param));
222 GL_API void GL_APIENTRY EXTFN(Lightxv)(GLenum light, GLenum pname, const GLfixed* params) {
225 FNPTR(Lightfv)(light, pname, f);
228 #ifdef ALEXGL_PROVIDE_COMMON
229 #ifdef ALEXGL_PROVIDE_1_1
230 GL_API void GL_APIENTRY EXTFN(GetLightfv)(GLenum light, GLenum pname, GLfloat* params) {
231 FNPTR(GetLightfv)(light, pname, params);
236 #ifdef ALEXGL_PROVIDE_1_1
237 GL_API void GL_APIENTRY EXTFN(GetLightxv)(GLenum light, GLenum pname, GLfixed* params) {
239 FNPTR(GetLightfv)(light, pname, f);
244 #ifdef ALEXGL_PROVIDE_COMMON
245 GL_API void GL_APIENTRY EXTFN(LightModelf)(GLenum pname, GLfloat param) {
246 if (pname != GL_LIGHT_MODEL_TWO_SIDE) {
247 INTFN(SetError)(GL_INVALID_ENUM);
250 FNPTR(LightModelf)(pname, param);
254 #ifdef ALEXGL_PROVIDE_COMMON
255 GL_API void GL_APIENTRY EXTFN(LightModelfv)(GLenum pname, const GLfloat* params) {
256 if (pname != GL_LIGHT_MODEL_TWO_SIDE && pname != GL_LIGHT_MODEL_AMBIENT) {
257 INTFN(SetError)(GL_INVALID_ENUM);
260 FNPTR(LightModelfv)(pname, params);
264 GL_API void GL_APIENTRY EXTFN(LightModelx)(GLenum pname, GLfixed param) {
265 if (pname != GL_LIGHT_MODEL_TWO_SIDE) {
266 INTFN(SetError)(GL_INVALID_ENUM);
269 FNPTR(LightModelf)(pname, x2f(param));
272 GL_API void GL_APIENTRY EXTFN(LightModelxv)(GLenum pname, const GLfixed* params) {
273 if (pname != GL_LIGHT_MODEL_TWO_SIDE && pname != GL_LIGHT_MODEL_AMBIENT) {
274 INTFN(SetError)(GL_INVALID_ENUM);
279 FNPTR(LightModelfv)(pname, f);
282 GL_API void GL_APIENTRY EXTFN(ShadeModel)(GLenum mode) {
283 FNPTR(ShadeModel)(mode);