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