15d954fd5cb4b35b896b90100956d45eaa30edacbBrian Paul
234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick#include <stdbool.h>
334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick#include "api_loopback.h"
534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick#include "api_exec.h"
634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick#include "blend.h"
734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick#include "clear.h"
834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick#include "clip.h"
934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick#include "context.h"
1034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick#include "depth.h"
1134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick#include "fog.h"
1234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick#include "imports.h"
1334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick#include "light.h"
1434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick#include "lines.h"
1534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick#include "matrix.h"
1634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick#include "multisample.h"
1734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick#include "pixelstore.h"
1834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick#include "points.h"
1934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick#include "polygon.h"
2034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick#include "readpix.h"
2134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick#include "texenv.h"
2234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick#include "texgen.h"
2334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick#include "texobj.h"
2434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick#include "texparam.h"
2534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick#include "mtypes.h"
2634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick#include "viewport.h"
2734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick#include "main/drawtex.h"
2834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick#include "vbo/vbo.h"
2934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
3034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick#include "main/es1_conversion.h"
3134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
3234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
331a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_AlphaFuncx(GLenum func, GLclampx ref)
3434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
3534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _mesa_AlphaFunc(func, (GLclampf) (ref / 65536.0f));
3634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
3734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
3834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
391a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_ClearColorx(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha)
4034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
4134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _mesa_ClearColor((GLclampf) (red / 65536.0f),
4234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                    (GLclampf) (green / 65536.0f),
4334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                    (GLclampf) (blue / 65536.0f),
4434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                    (GLclampf) (alpha / 65536.0f));
4534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
4634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
4734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
481a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_ClearDepthx(GLclampx depth)
4934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
5034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _mesa_ClearDepthf((GLclampf) (depth / 65536.0f));
5134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
5234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
5334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
541a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_ClipPlanef(GLenum plane, const GLfloat *equation)
5534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
5634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   unsigned int i;
5734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   GLdouble converted_equation[4];
5834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
59c2e130f8201239f836f429cab3beddb4d66a3357Brian Paul   for (i = 0; i < ARRAY_SIZE(converted_equation); i++) {
6034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      converted_equation[i] = (GLdouble) (equation[i]);
6134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
6234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
6334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _mesa_ClipPlane(plane, converted_equation);
6434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
6534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
6634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
671a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_ClipPlanex(GLenum plane, const GLfixed *equation)
6834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
6934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   unsigned int i;
7034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   GLdouble converted_equation[4];
7134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
72c2e130f8201239f836f429cab3beddb4d66a3357Brian Paul   for (i = 0; i < ARRAY_SIZE(converted_equation); i++) {
7334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      converted_equation[i] = (GLdouble) (equation[i] / 65536.0);
7434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
7534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
7634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _mesa_ClipPlane(plane, converted_equation);
7734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
7834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
7934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
8034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick_es_Color4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
8134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
8234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick    _es_Color4f((GLfloat) (red / 255.0f),
8334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                (GLfloat) (green / 255.0f),
8434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                (GLfloat) (blue / 255.0f),
8534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                (GLfloat) (alpha / 255.0f));
8634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
8734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
8834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
891a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_Color4x(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)
9034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
9134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick    _es_Color4f((GLfloat) (red / 65536.0f),
9234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                (GLfloat) (green / 65536.0f),
9334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                (GLfloat) (blue / 65536.0f),
9434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                (GLfloat) (alpha / 65536.0f));
9534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
9634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
9734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
981a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_DepthRangex(GLclampx zNear, GLclampx zFar)
9934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
10034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick    _mesa_DepthRangef((GLclampf) (zNear / 65536.0f),
10134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                      (GLclampf) (zFar / 65536.0f));
10234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
10334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
10434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
1051a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_DrawTexxOES(GLfixed x, GLfixed y, GLfixed z, GLfixed w, GLfixed h)
10634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
10734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
1081a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry    _mesa_DrawTexfOES((GLfloat) (x / 65536.0f),
10934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                   (GLfloat) (y / 65536.0f),
11034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                   (GLfloat) (z / 65536.0f),
11134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                   (GLfloat) (w / 65536.0f),
11234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                   (GLfloat) (h / 65536.0f));
11334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
11434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
11534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
1161a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_DrawTexxvOES(const GLfixed *coords)
11734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
11834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick    unsigned int i;
11934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick    GLfloat converted_coords[5];
12034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
121c2e130f8201239f836f429cab3beddb4d66a3357Brian Paul    for (i = 0; i < ARRAY_SIZE(converted_coords); i++) {
12234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick        converted_coords[i] = (GLfloat) (coords[i] / 65536.0f);
12334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick    }
12434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
1251a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry    _mesa_DrawTexfvOES(converted_coords);
12634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
12734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
12834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
1291a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_Fogx(GLenum pname, GLfixed param)
13034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
13110e7db1ccf4d3b2023f04663f7a6c079eb6afc57Ian Romanick   if (pname != GL_FOG_MODE) {
13234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      _mesa_Fogf(pname, (GLfloat) (param / 65536.0f));
13334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   } else {
13434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      _mesa_Fogf(pname, (GLfloat) param);
13534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
13634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
13734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
13834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
13934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
1401a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_Fogxv(GLenum pname, const GLfixed *params)
14134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
14234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   unsigned int i;
14334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   unsigned int n_params = 4;
14434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   GLfloat converted_params[4];
14534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   bool convert_params_value = true;
14634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
14734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   switch(pname) {
14834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_FOG_MODE:
14934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      convert_params_value = false;
15034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      n_params = 1;
15134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
15234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_FOG_COLOR:
15334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      n_params = 4;
15434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
15534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_FOG_DENSITY:
15634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_FOG_START:
15734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_FOG_END:
15834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      n_params = 1;
15934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
16034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   default:
16134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM,
16234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                  "glFogxv(pname=0x%x)", pname);
16334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      return;
16434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
16534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
16634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   if (convert_params_value) {
16734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      for (i = 0; i < n_params; i++) {
16834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick         converted_params[i] = (GLfloat) (params[i] / 65536.0f);
16934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      }
17034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   } else {
17134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      for (i = 0; i < n_params; i++) {
17234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick         converted_params[i] = (GLfloat) params[i];
17334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      }
17434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
17534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
17634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _mesa_Fogfv(pname, converted_params);
17734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
17834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
17934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
1801a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_Frustumf(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top,
18134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick             GLfloat zNear, GLfloat zFar)
18234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
18334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _mesa_Frustum((GLdouble) (left),
18434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                 (GLdouble) (right),
18534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                 (GLdouble) (bottom),
18634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                 (GLdouble) (top),
18734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                 (GLdouble) (zNear),
18834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                 (GLdouble) (zFar));
18934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
19034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
19134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
1921a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_Frustumx(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top,
19334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick             GLfixed zNear, GLfixed zFar)
19434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
19534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _mesa_Frustum((GLdouble) (left / 65536.0),
19634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                 (GLdouble) (right / 65536.0),
19734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                 (GLdouble) (bottom / 65536.0),
19834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                 (GLdouble) (top / 65536.0),
19934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                 (GLdouble) (zNear / 65536.0),
20034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                 (GLdouble) (zFar / 65536.0));
20134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
20234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
20334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
2041a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_GetClipPlanef(GLenum plane, GLfloat *equation)
20534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
20634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   unsigned int i;
20734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   GLdouble converted_equation[4];
20834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
20934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _mesa_GetClipPlane(plane, converted_equation);
210c2e130f8201239f836f429cab3beddb4d66a3357Brian Paul   for (i = 0; i < ARRAY_SIZE(converted_equation); i++) {
21134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      equation[i] = (GLfloat) (converted_equation[i]);
21234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
21334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
21434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
21534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
2161a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_GetClipPlanex(GLenum plane, GLfixed *equation)
21734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
21834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   unsigned int i;
21934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   GLdouble converted_equation[4];
22034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
22134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _mesa_GetClipPlane(plane, converted_equation);
222c2e130f8201239f836f429cab3beddb4d66a3357Brian Paul   for (i = 0; i < ARRAY_SIZE(converted_equation); i++) {
22334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      equation[i] = (GLfixed) (converted_equation[i] * 65536);
22434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
22534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
22634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
22734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
2281a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_GetLightxv(GLenum light, GLenum pname, GLfixed *params)
22934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
23034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   unsigned int i;
23134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   unsigned int n_params = 4;
23234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   GLfloat converted_params[4];
23334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
2345a193557d115e62bf70c599e4037d8e1e3f5a9fcIan Romanick   if (light < GL_LIGHT0 || light > GL_LIGHT7) {
23534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM,
23634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                  "glGetLightxv(light=0x%x)", light);
23734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      return;
23834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
23934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   switch(pname) {
24034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_AMBIENT:
24134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_DIFFUSE:
24234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_SPECULAR:
24334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_POSITION:
24434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      n_params = 4;
24534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
24634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_SPOT_DIRECTION:
24734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      n_params = 3;
24834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
24934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_SPOT_EXPONENT:
25034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_SPOT_CUTOFF:
25134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_CONSTANT_ATTENUATION:
25234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_LINEAR_ATTENUATION:
25334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_QUADRATIC_ATTENUATION:
25434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      n_params = 1;
25534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
25634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   default:
25734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM,
25834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                  "glGetLightxv(pname=0x%x)", pname);
25934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      return;
26034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
26134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
26234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _mesa_GetLightfv(light, pname, converted_params);
26334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   for (i = 0; i < n_params; i++) {
26434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      params[i] = (GLint) (converted_params[i] * 65536);
26534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
26634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
26734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
26834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
2691a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_GetMaterialxv(GLenum face, GLenum pname, GLfixed *params)
27034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
27134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   unsigned int i;
27234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   unsigned int n_params = 4;
27334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   GLfloat converted_params[4];
27434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
27534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   switch(face) {
27634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_FRONT:
27734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_BACK:
27834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
27934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   default:
28034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM,
28134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                  "glGetMaterialxv(face=0x%x)", face);
28234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      return;
28334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
28434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   switch(pname) {
28534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_SHININESS:
28634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      n_params = 1;
28734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
28834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_AMBIENT:
28934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_DIFFUSE:
29034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_SPECULAR:
29134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_EMISSION:
29234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      n_params = 4;
29334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
29434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   default:
29534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM,
29634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                  "glGetMaterialxv(pname=0x%x)", pname);
29734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      return;
29834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
29934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
30034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _mesa_GetMaterialfv(face, pname, converted_params);
30134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   for (i = 0; i < n_params; i++) {
30234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      params[i] = (GLint) (converted_params[i] * 65536);
30334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
30434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
30534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
30634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
3071a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_GetTexEnvxv(GLenum target, GLenum pname, GLfixed *params)
30834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
30934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   unsigned int i;
31034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   unsigned int n_params = 4;
31134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   GLfloat converted_params[4];
31234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   bool convert_params_value = true;
31334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
31434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   switch(target) {
31534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_POINT_SPRITE:
31634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      if (pname != GL_COORD_REPLACE) {
31734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick         _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM,
31834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                     "glGetTexEnvxv(target=0x%x)", target);
31934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick         return;
32034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      }
32134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
32234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_TEXTURE_FILTER_CONTROL_EXT:
32334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      if (pname != GL_TEXTURE_LOD_BIAS_EXT) {
32434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick         _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM,
32534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                     "glGetTexEnvxv(target=0x%x)", target);
32634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick         return;
32734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      }
32834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
32934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_TEXTURE_ENV:
3305d954fd5cb4b35b896b90100956d45eaa30edacbBrian Paul      if (pname != GL_TEXTURE_ENV_COLOR &&
3315d954fd5cb4b35b896b90100956d45eaa30edacbBrian Paul          pname != GL_RGB_SCALE &&
3325d954fd5cb4b35b896b90100956d45eaa30edacbBrian Paul          pname != GL_ALPHA_SCALE &&
3335d954fd5cb4b35b896b90100956d45eaa30edacbBrian Paul          pname != GL_TEXTURE_ENV_MODE &&
3345d954fd5cb4b35b896b90100956d45eaa30edacbBrian Paul          pname != GL_COMBINE_RGB &&
3355d954fd5cb4b35b896b90100956d45eaa30edacbBrian Paul          pname != GL_COMBINE_ALPHA &&
3365d954fd5cb4b35b896b90100956d45eaa30edacbBrian Paul          pname != GL_SRC0_RGB &&
3375d954fd5cb4b35b896b90100956d45eaa30edacbBrian Paul          pname != GL_SRC1_RGB &&
3385d954fd5cb4b35b896b90100956d45eaa30edacbBrian Paul          pname != GL_SRC2_RGB &&
3395d954fd5cb4b35b896b90100956d45eaa30edacbBrian Paul          pname != GL_SRC0_ALPHA &&
3405d954fd5cb4b35b896b90100956d45eaa30edacbBrian Paul          pname != GL_SRC1_ALPHA &&
3415d954fd5cb4b35b896b90100956d45eaa30edacbBrian Paul          pname != GL_SRC2_ALPHA &&
3425d954fd5cb4b35b896b90100956d45eaa30edacbBrian Paul          pname != GL_OPERAND0_RGB &&
3435d954fd5cb4b35b896b90100956d45eaa30edacbBrian Paul          pname != GL_OPERAND1_RGB &&
3445d954fd5cb4b35b896b90100956d45eaa30edacbBrian Paul          pname != GL_OPERAND2_RGB &&
3455d954fd5cb4b35b896b90100956d45eaa30edacbBrian Paul          pname != GL_OPERAND0_ALPHA &&
3465d954fd5cb4b35b896b90100956d45eaa30edacbBrian Paul          pname != GL_OPERAND1_ALPHA &&
3475d954fd5cb4b35b896b90100956d45eaa30edacbBrian Paul          pname != GL_OPERAND2_ALPHA) {
34834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick         _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM,
34934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                     "glGetTexEnvxv(target=0x%x)", target);
35034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick         return;
35134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      }
35234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
35334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   default:
35434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM,
35534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                  "glGetTexEnvxv(target=0x%x)", target);
35634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      return;
35734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
35834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   switch(pname) {
35934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_COORD_REPLACE:
36034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      convert_params_value = false;
36134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      n_params = 1;
36234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
36334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_TEXTURE_LOD_BIAS_EXT:
36434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      n_params = 1;
36534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
36634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_TEXTURE_ENV_COLOR:
36734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      n_params = 4;
36834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
36934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_RGB_SCALE:
37034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_ALPHA_SCALE:
37134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      n_params = 1;
37234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
37334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_TEXTURE_ENV_MODE:
37434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_COMBINE_RGB:
37534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_COMBINE_ALPHA:
37634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_SRC0_RGB:
37734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_SRC1_RGB:
37834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_SRC2_RGB:
37934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_SRC0_ALPHA:
38034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_SRC1_ALPHA:
38134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_SRC2_ALPHA:
38234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_OPERAND0_RGB:
38334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_OPERAND1_RGB:
38434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_OPERAND2_RGB:
38534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_OPERAND0_ALPHA:
38634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_OPERAND1_ALPHA:
38734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_OPERAND2_ALPHA:
38834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      convert_params_value = false;
38934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      n_params = 1;
39034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
39134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   default:
39234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM,
39334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                  "glGetTexEnvxv(pname=0x%x)", pname);
39434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      return;
39534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
39634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
39734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _mesa_GetTexEnvfv(target, pname, converted_params);
39834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   if (convert_params_value) {
39934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      for (i = 0; i < n_params; i++) {
40034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick         params[i] = (GLint) (converted_params[i] * 65536);
40134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      }
40234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   } else {
40334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      for (i = 0; i < n_params; i++) {
40434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick         params[i] = (GLfixed) converted_params[i];
40534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      }
40634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
40734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
40834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
40934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
41034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick_check_GetTexGenivOES(GLenum coord, GLenum pname, GLint *params)
41134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
412d2b03f6e993f08b0a80a206d7bf6f0d42b308266Ian Romanick   _mesa_GetTexGeniv(coord, pname, params);
41334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
41434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
41534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
4161a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_GetTexGenxvOES(GLenum coord, GLenum pname, GLfixed *params)
41734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
418d2b03f6e993f08b0a80a206d7bf6f0d42b308266Ian Romanick   _mesa_GetTexGeniv(coord, pname, (GLint *) params);
41934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
42034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
42134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
4221a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_GetTexParameterxv(GLenum target, GLenum pname, GLfixed *params)
42334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
42434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   unsigned int i;
42534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   unsigned int n_params = 4;
42634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   GLfloat converted_params[4];
42734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   bool convert_params_value = true;
42834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
42934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   switch(target) {
43034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_TEXTURE_2D:
43134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_TEXTURE_CUBE_MAP:
43234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_TEXTURE_EXTERNAL_OES:
43334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
43434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   default:
43534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM,
43634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                  "glGetTexParameterxv(target=0x%x)", target);
43734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      return;
43834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
43934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   switch(pname) {
44034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_TEXTURE_WRAP_S:
44134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_TEXTURE_WRAP_T:
44234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_TEXTURE_MIN_FILTER:
44334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_TEXTURE_MAG_FILTER:
44434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_GENERATE_MIPMAP:
44534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      convert_params_value = false;
44634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      n_params = 1;
44734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
44834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_TEXTURE_CROP_RECT_OES:
44934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      n_params = 4;
45034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
45134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   default:
45234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM,
45334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                  "glGetTexParameterxv(pname=0x%x)", pname);
45434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      return;
45534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
45634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
45734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _mesa_GetTexParameterfv(target, pname, converted_params);
45834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   if (convert_params_value) {
45934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      for (i = 0; i < n_params; i++) {
46034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick         params[i] = (GLint) (converted_params[i] * 65536);
46134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      }
46234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   } else {
46334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      for (i = 0; i < n_params; i++) {
46434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick         params[i] = (GLfixed) converted_params[i];
46534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      }
46634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
46734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
46834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
46934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
4701a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_LightModelx(GLenum pname, GLfixed param)
47134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
47234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _mesa_LightModelf(pname, (GLfloat) param);
47334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
47434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
47534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
4761a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_LightModelxv(GLenum pname, const GLfixed *params)
47734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
47834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   unsigned int i;
47934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   unsigned int n_params = 4;
48034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   GLfloat converted_params[4];
48134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   bool convert_params_value = true;
48234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
48334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   switch(pname) {
48434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_LIGHT_MODEL_AMBIENT:
48534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      n_params = 4;
48634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
48734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_LIGHT_MODEL_TWO_SIDE:
48834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      convert_params_value = false;
48934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      n_params = 1;
49034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
49134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   default:
49234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM,
49334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                  "glLightModelxv(pname=0x%x)", pname);
49434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      return;
49534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
49634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
49734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   if (convert_params_value) {
49834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      for (i = 0; i < n_params; i++) {
49934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick         converted_params[i] = (GLfloat) (params[i] / 65536.0f);
50034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      }
50134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   } else {
50234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      for (i = 0; i < n_params; i++) {
50334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick         converted_params[i] = (GLfloat) params[i];
50434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      }
50534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
50634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
50734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _mesa_LightModelfv(pname, converted_params);
50834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
50934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
51034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
5111a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_Lightx(GLenum light, GLenum pname, GLfixed param)
51234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
51334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _mesa_Lightf(light, pname, (GLfloat) (param / 65536.0f));
51434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
51534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
51634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
5171a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_Lightxv(GLenum light, GLenum pname, const GLfixed *params)
51834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
51934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   unsigned int i;
52034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   unsigned int n_params = 4;
52134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   GLfloat converted_params[4];
52234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
5235a193557d115e62bf70c599e4037d8e1e3f5a9fcIan Romanick   if (light < GL_LIGHT0 || light > GL_LIGHT7) {
52434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM,
52534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                  "glLightxv(light=0x%x)", light);
52634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      return;
52734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
52834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   switch(pname) {
52934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_AMBIENT:
53034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_DIFFUSE:
53134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_SPECULAR:
53234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_POSITION:
53334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      n_params = 4;
53434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
53534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_SPOT_DIRECTION:
53634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      n_params = 3;
53734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
53834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_SPOT_EXPONENT:
53934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_SPOT_CUTOFF:
54034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_CONSTANT_ATTENUATION:
54134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_LINEAR_ATTENUATION:
54234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_QUADRATIC_ATTENUATION:
54334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      n_params = 1;
54434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
54534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   default:
54634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM,
54734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                  "glLightxv(pname=0x%x)", pname);
54834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      return;
54934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
55034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
55134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   for (i = 0; i < n_params; i++) {
55234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      converted_params[i] = (GLfloat) (params[i] / 65536.0f);
55334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
55434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
55534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _mesa_Lightfv(light, pname, converted_params);
55634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
55734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
55834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
5591a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_LineWidthx(GLfixed width)
56034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
56134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _mesa_LineWidth((GLfloat) (width / 65536.0f));
56234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
56334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
56434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
5651a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_LoadMatrixx(const GLfixed *m)
56634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
56734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   unsigned int i;
56834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   GLfloat converted_m[16];
56934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
570c2e130f8201239f836f429cab3beddb4d66a3357Brian Paul   for (i = 0; i < ARRAY_SIZE(converted_m); i++) {
57134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      converted_m[i] = (GLfloat) (m[i] / 65536.0f);
57234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
57334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
57434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _mesa_LoadMatrixf(converted_m);
57534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
57634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
57734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
5781a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_Materialx(GLenum face, GLenum pname, GLfixed param)
57934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
580fb4f2d34256aee6b0005b18769a395dd066d3820Ian Romanick   if (face != GL_FRONT_AND_BACK) {
58134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM,
58234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                  "glMaterialx(face=0x%x)", face);
58334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      return;
58434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
585fb4f2d34256aee6b0005b18769a395dd066d3820Ian Romanick
586fb4f2d34256aee6b0005b18769a395dd066d3820Ian Romanick   if (pname != GL_SHININESS) {
58734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM,
58834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                  "glMaterialx(pname=0x%x)", pname);
58934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      return;
59034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
59134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
59234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _es_Materialf(face, pname, (GLfloat) (param / 65536.0f));
59334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
59434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
59534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
5961a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_Materialxv(GLenum face, GLenum pname, const GLfixed *params)
59734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
59834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   unsigned int i;
59934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   unsigned int n_params = 4;
60034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   GLfloat converted_params[4];
60134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
602fb4f2d34256aee6b0005b18769a395dd066d3820Ian Romanick   if (face != GL_FRONT_AND_BACK) {
60334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM,
60434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                  "glMaterialxv(face=0x%x)", face);
60534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      return;
60634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
607fb4f2d34256aee6b0005b18769a395dd066d3820Ian Romanick
60834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   switch(pname) {
60934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_AMBIENT:
61034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_DIFFUSE:
61134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_AMBIENT_AND_DIFFUSE:
61234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_SPECULAR:
61334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_EMISSION:
61434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      n_params = 4;
61534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
61634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_SHININESS:
61734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      n_params = 1;
61834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
61934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   default:
62034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM,
62134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                  "glMaterialxv(pname=0x%x)", pname);
62234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      return;
62334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
62434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
62534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   for (i = 0; i < n_params; i++) {
62634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      converted_params[i] = (GLfloat) (params[i] / 65536.0f);
62734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
62834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
62934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _es_Materialfv(face, pname, converted_params);
63034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
63134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
63234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
6331a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_MultMatrixx(const GLfixed *m)
63434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
63534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   unsigned int i;
63634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   GLfloat converted_m[16];
63734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
638c2e130f8201239f836f429cab3beddb4d66a3357Brian Paul   for (i = 0; i < ARRAY_SIZE(converted_m); i++) {
63934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      converted_m[i] = (GLfloat) (m[i] / 65536.0f);
64034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
64134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
64234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _mesa_MultMatrixf(converted_m);
64334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
64434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
64534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
6461a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_MultiTexCoord4x(GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q)
64734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
64834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _es_MultiTexCoord4f(texture,
64934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                       (GLfloat) (s / 65536.0f),
65034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                       (GLfloat) (t / 65536.0f),
65134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                       (GLfloat) (r / 65536.0f),
65234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                       (GLfloat) (q / 65536.0f));
65334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
65434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
65534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
6561a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_Normal3x(GLfixed nx, GLfixed ny, GLfixed nz)
65734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
65834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _es_Normal3f((GLfloat) (nx / 65536.0f),
65934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                (GLfloat) (ny / 65536.0f),
66034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                (GLfloat) (nz / 65536.0f));
66134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
66234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
66334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
6641a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_Orthof(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top,
66534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick           GLfloat zNear, GLfloat zFar)
66634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
66734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _mesa_Ortho((GLdouble) (left),
66834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick               (GLdouble) (right),
66934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick               (GLdouble) (bottom),
67034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick               (GLdouble) (top),
67134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick               (GLdouble) (zNear),
67234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick               (GLdouble) (zFar));
67334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
67434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
67534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
6761a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_Orthox(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top,
67734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick           GLfixed zNear, GLfixed zFar)
67834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
67934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _mesa_Ortho((GLdouble) (left / 65536.0),
68034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick               (GLdouble) (right / 65536.0),
68134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick               (GLdouble) (bottom / 65536.0),
68234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick               (GLdouble) (top / 65536.0),
68334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick               (GLdouble) (zNear / 65536.0),
68434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick               (GLdouble) (zFar / 65536.0));
68534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
68634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
68734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
6881a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_PointParameterx(GLenum pname, GLfixed param)
68934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
69034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _mesa_PointParameterf(pname, (GLfloat) (param / 65536.0f));
69134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
69234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
69334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
6941a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_PointParameterxv(GLenum pname, const GLfixed *params)
69534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
69634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   unsigned int i;
69734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   unsigned int n_params = 3;
69834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   GLfloat converted_params[3];
69934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
70034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   switch(pname) {
70134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_POINT_SIZE_MIN:
70234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_POINT_SIZE_MAX:
70334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_POINT_FADE_THRESHOLD_SIZE:
70434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      n_params = 1;
70534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
70634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_POINT_DISTANCE_ATTENUATION:
70734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      n_params = 3;
70834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
70934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   default:
71034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM,
71134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                  "glPointParameterxv(pname=0x%x)", pname);
71234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      return;
71334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
71434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
71534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   for (i = 0; i < n_params; i++) {
71634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      converted_params[i] = (GLfloat) (params[i] / 65536.0f);
71734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
71834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
71934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _mesa_PointParameterfv(pname, converted_params);
72034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
72134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
72234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
7231a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_PointSizex(GLfixed size)
72434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
72534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _mesa_PointSize((GLfloat) (size / 65536.0f));
72634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
72734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
72834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
7291a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_PolygonOffsetx(GLfixed factor, GLfixed units)
73034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
73134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _mesa_PolygonOffset((GLfloat) (factor / 65536.0f),
73234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                       (GLfloat) (units / 65536.0f));
73334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
73434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
73534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
7361a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_Rotatex(GLfixed angle, GLfixed x, GLfixed y, GLfixed z)
73734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
73834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _mesa_Rotatef((GLfloat) (angle / 65536.0f),
73934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                 (GLfloat) (x / 65536.0f),
74034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                 (GLfloat) (y / 65536.0f),
74134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                 (GLfloat) (z / 65536.0f));
74234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
74334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
74434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
7451a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_SampleCoveragex(GLclampx value, GLboolean invert)
74634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
7471a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry   _mesa_SampleCoverage((GLclampf) (value / 65536.0f),
74834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                           invert);
74934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
75034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
75134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
7521a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_Scalex(GLfixed x, GLfixed y, GLfixed z)
75334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
75434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _mesa_Scalef((GLfloat) (x / 65536.0f),
75534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                (GLfloat) (y / 65536.0f),
75634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                (GLfloat) (z / 65536.0f));
75734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
75834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
75934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
7601a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_TexEnvx(GLenum target, GLenum pname, GLfixed param)
76134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
76234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   switch(target) {
76334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_POINT_SPRITE:
76434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_TEXTURE_FILTER_CONTROL_EXT:
76534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_TEXTURE_ENV:
76634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
76734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   default:
76834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM,
76934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                  "glTexEnvx(target=0x%x)", target);
77034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      return;
77134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
7728a263b6efd2c520a4ed9c98b9c8142c6c2c6f389Ian Romanick
77334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   switch(pname) {
77434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_COORD_REPLACE:
77534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_TEXTURE_ENV_MODE:
77634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_COMBINE_RGB:
77734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_COMBINE_ALPHA:
77834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_SRC0_RGB:
77934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_SRC1_RGB:
78034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_SRC2_RGB:
78134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_SRC0_ALPHA:
78234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_SRC1_ALPHA:
78334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_SRC2_ALPHA:
78434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_OPERAND0_RGB:
78534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_OPERAND1_RGB:
78634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_OPERAND2_RGB:
78734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_OPERAND0_ALPHA:
78834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_OPERAND1_ALPHA:
78934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_OPERAND2_ALPHA:
7908a263b6efd2c520a4ed9c98b9c8142c6c2c6f389Ian Romanick      _mesa_TexEnvf(target, pname, (GLfloat) param);
7918a263b6efd2c520a4ed9c98b9c8142c6c2c6f389Ian Romanick      break;
7928a263b6efd2c520a4ed9c98b9c8142c6c2c6f389Ian Romanick   case GL_TEXTURE_LOD_BIAS_EXT:
7938a263b6efd2c520a4ed9c98b9c8142c6c2c6f389Ian Romanick   case GL_RGB_SCALE:
7948a263b6efd2c520a4ed9c98b9c8142c6c2c6f389Ian Romanick   case GL_ALPHA_SCALE:
7958a263b6efd2c520a4ed9c98b9c8142c6c2c6f389Ian Romanick      _mesa_TexEnvf(target, pname, (GLfloat) (param / 65536.0f));
79634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
79734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   default:
79834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM,
79934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                  "glTexEnvx(pname=0x%x)", pname);
80034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      return;
80134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
80234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
80334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
80434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
8051a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_TexEnvxv(GLenum target, GLenum pname, const GLfixed *params)
80634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
80734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   switch(target) {
80834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_POINT_SPRITE:
80934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_TEXTURE_FILTER_CONTROL_EXT:
81034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_TEXTURE_ENV:
81134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
81234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   default:
81334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM,
81434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                  "glTexEnvxv(target=0x%x)", target);
81534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      return;
81634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
8178a263b6efd2c520a4ed9c98b9c8142c6c2c6f389Ian Romanick
81834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   switch(pname) {
81934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_COORD_REPLACE:
82034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_TEXTURE_ENV_MODE:
82134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_COMBINE_RGB:
82234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_COMBINE_ALPHA:
82334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_SRC0_RGB:
82434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_SRC1_RGB:
82534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_SRC2_RGB:
82634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_SRC0_ALPHA:
82734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_SRC1_ALPHA:
82834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_SRC2_ALPHA:
82934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_OPERAND0_RGB:
83034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_OPERAND1_RGB:
83134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_OPERAND2_RGB:
83234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_OPERAND0_ALPHA:
83334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_OPERAND1_ALPHA:
83434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_OPERAND2_ALPHA:
8358a263b6efd2c520a4ed9c98b9c8142c6c2c6f389Ian Romanick      _mesa_TexEnvf(target, pname, (GLfloat) params[0]);
83634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
8378a263b6efd2c520a4ed9c98b9c8142c6c2c6f389Ian Romanick   case GL_TEXTURE_LOD_BIAS_EXT:
8388a263b6efd2c520a4ed9c98b9c8142c6c2c6f389Ian Romanick   case GL_RGB_SCALE:
8398a263b6efd2c520a4ed9c98b9c8142c6c2c6f389Ian Romanick   case GL_ALPHA_SCALE:
8408a263b6efd2c520a4ed9c98b9c8142c6c2c6f389Ian Romanick      _mesa_TexEnvf(target, pname, (GLfloat) (params[0] / 65536.0f));
84134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
8428a263b6efd2c520a4ed9c98b9c8142c6c2c6f389Ian Romanick   case GL_TEXTURE_ENV_COLOR: {
8438a263b6efd2c520a4ed9c98b9c8142c6c2c6f389Ian Romanick      unsigned int i;
8448a263b6efd2c520a4ed9c98b9c8142c6c2c6f389Ian Romanick      GLfloat converted_params[4];
8458a263b6efd2c520a4ed9c98b9c8142c6c2c6f389Ian Romanick
846c2e130f8201239f836f429cab3beddb4d66a3357Brian Paul      for (i = 0; i < ARRAY_SIZE(converted_params); i++) {
8478a263b6efd2c520a4ed9c98b9c8142c6c2c6f389Ian Romanick         converted_params[i] = (GLfloat) (params[i] / 65536.0f);
8488a263b6efd2c520a4ed9c98b9c8142c6c2c6f389Ian Romanick      }
8498a263b6efd2c520a4ed9c98b9c8142c6c2c6f389Ian Romanick
8508a263b6efd2c520a4ed9c98b9c8142c6c2c6f389Ian Romanick      _mesa_TexEnvfv(target, pname, converted_params);
8518a263b6efd2c520a4ed9c98b9c8142c6c2c6f389Ian Romanick      break;
8528a263b6efd2c520a4ed9c98b9c8142c6c2c6f389Ian Romanick   }
85334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   default:
85434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM,
85534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                  "glTexEnvxv(pname=0x%x)", pname);
85634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      return;
85734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
85834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
85934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
86034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
86134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick_check_TexGeniOES(GLenum coord, GLenum pname, GLint param)
86234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
86334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _es_TexGenf(coord, pname, (GLfloat) param);
86434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
86534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
86634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
86734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick_check_TexGenivOES(GLenum coord, GLenum pname, const GLint *params)
86834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
869f329adfa497b6b2e0a125ab98a38c656a017270dIan Romanick   _es_TexGenf(coord, pname, (GLfloat) params[0]);
87034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
87134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
87234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
8731a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_TexGenxOES(GLenum coord, GLenum pname, GLfixed param)
87434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
87534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _es_TexGenf(coord, pname, (GLfloat) param);
87634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
87734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
87834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
8791a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_TexGenxvOES(GLenum coord, GLenum pname, const GLfixed *params)
88034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
881f329adfa497b6b2e0a125ab98a38c656a017270dIan Romanick   _es_TexGenf(coord, pname, (GLfloat) params[0]);
88234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
88334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
88434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
8851a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_TexParameterx(GLenum target, GLenum pname, GLfixed param)
88634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
887b3dd524a1082efd12d4a796122c300a61ba016d9Ian Romanick   if (pname == GL_TEXTURE_MAX_ANISOTROPY_EXT) {
888b3dd524a1082efd12d4a796122c300a61ba016d9Ian Romanick      _mesa_TexParameterf(target, pname, (GLfloat) (param / 65536.0f));
88934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   } else {
890b3dd524a1082efd12d4a796122c300a61ba016d9Ian Romanick      _mesa_TexParameterf(target, pname, (GLfloat) param);
89134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
89234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
89334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
89434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
8951a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_TexParameterxv(GLenum target, GLenum pname, const GLfixed *params)
89634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
89734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   unsigned int i;
89834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   unsigned int n_params = 4;
89934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   GLfloat converted_params[4];
90034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   bool convert_params_value = true;
90134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
90234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   switch(target) {
90334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_TEXTURE_2D:
90434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_TEXTURE_CUBE_MAP:
90534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_TEXTURE_EXTERNAL_OES:
90634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
90734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   default:
90834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM,
90934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                  "glTexParameterxv(target=0x%x)", target);
91034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      return;
91134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
91234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   switch(pname) {
91334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_TEXTURE_WRAP_S:
91434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_TEXTURE_WRAP_T:
91534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      convert_params_value = false;
91634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      n_params = 1;
91734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
91834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_TEXTURE_MIN_FILTER:
91934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_TEXTURE_MAG_FILTER:
92034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_GENERATE_MIPMAP:
92134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      convert_params_value = false;
92234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      n_params = 1;
92334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
92434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_TEXTURE_MAX_ANISOTROPY_EXT:
92534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      n_params = 1;
92634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
92734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   case GL_TEXTURE_CROP_RECT_OES:
92834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      n_params = 4;
92934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      break;
93034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   default:
93134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      _mesa_error(_mesa_get_current_context(), GL_INVALID_ENUM,
93234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                  "glTexParameterxv(pname=0x%x)", pname);
93334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      return;
93434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
93534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
93634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   if (convert_params_value) {
93734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      for (i = 0; i < n_params; i++) {
93834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick         converted_params[i] = (GLfloat) (params[i] / 65536.0f);
93934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      }
94034472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   } else {
94134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      for (i = 0; i < n_params; i++) {
94234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick         converted_params[i] = (GLfloat) params[i];
94334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick      }
94434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   }
94534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
94634472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick   _mesa_TexParameterfv(target, pname, converted_params);
94734472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
94834472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick
94934472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanickvoid GL_APIENTRY
9501a1db1746db82efc7f0643508886dfc78a15eb71Paul Berry_mesa_Translatex(GLfixed x, GLfixed y, GLfixed z)
95134472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick{
95234472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick    _mesa_Translatef((GLfloat) (x / 65536.0f),
95334472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                     (GLfloat) (y / 65536.0f),
95434472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick                     (GLfloat) (z / 65536.0f));
95534472a0d8713c4eb300c9d1de0844c8b78bcf1abIan Romanick}
956