state.c revision de99760bf3511d05185799c4fb4347f9e5f420f4
1d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul/* 2d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul * Mesa 3-D graphics library 37ee79c80ea19a7df6069265fc3656f0b29e78d7aBrian Paul * Version: 6.3 4d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul * 567742383e87734130e35d08d7c63c75b9adcf655Brian Paul * Copyright (C) 1999-2005 Brian Paul All Rights Reserved. 6d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul * 7d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul * Permission is hereby granted, free of charge, to any person obtaining a 8d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul * copy of this software and associated documentation files (the "Software"), 9d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul * to deal in the Software without restriction, including without limitation 10d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul * the rights to use, copy, modify, merge, publish, distribute, sublicense, 11d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul * and/or sell copies of the Software, and to permit persons to whom the 12d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul * Software is furnished to do so, subject to the following conditions: 13d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul * 14d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul * The above copyright notice and this permission notice shall be included 15d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul * in all copies or substantial portions of the Software. 16d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul * 17d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 18d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 20d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 21d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 22d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul */ 24d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul 25d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul 266d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paul/** 276d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paul * \file state.c 286d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paul * State management. 296d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paul * 306d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paul * This file manages recalculation of derived values in the __GLcontextRec. 316d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paul * Also, this is where we initialize the API dispatch table. 326d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paul */ 336d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paul 34d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul#include "glheader.h" 35d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul#include "accum.h" 36ad2ac216fa0cbebc36530bf9e5256e902710b892Keith Whitwell#include "api_loopback.h" 375960105ca35d5f51ef3881d201faf2cda99ead0cBrian Paul#if FEATURE_ARB_vertex_program || FEATURE_ARB_fragment_program 385960105ca35d5f51ef3881d201faf2cda99ead0cBrian Paul#include "arbprogram.h" 395960105ca35d5f51ef3881d201faf2cda99ead0cBrian Paul#endif 407f752fed993e5e9423abac200dd59141edbada56Dave Airlie#if FEATURE_ATI_fragment_shader 417f752fed993e5e9423abac200dd59141edbada56Dave Airlie#include "atifragshader.h" 427f752fed993e5e9423abac200dd59141edbada56Dave Airlie#endif 43d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul#include "attrib.h" 44d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul#include "blend.h" 456061df09a45c42745253965df012ddf76910ea33Brian Paul#if FEATURE_ARB_vertex_buffer_object 466061df09a45c42745253965df012ddf76910ea33Brian Paul#include "bufferobj.h" 476061df09a45c42745253965df012ddf76910ea33Brian Paul#endif 48d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul#include "buffers.h" 49d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul#include "clip.h" 50d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul#include "colortab.h" 51d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul#include "context.h" 52cf8eebee075e3f69c3daa4ea88994e07527055e4Brian Paul#include "convolve.h" 53d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul#include "depth.h" 54d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul#include "dlist.h" 55d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul#include "drawpix.h" 56d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul#include "enable.h" 57d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul#include "eval.h" 58d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul#include "get.h" 59d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul#include "feedback.h" 60d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul#include "fog.h" 61386e997f450649f105f0986c3b55faae42e4349cBrian Paul#if FEATURE_EXT_framebuffer_object 62386e997f450649f105f0986c3b55faae42e4349cBrian Paul#include "fbobject.h" 63386e997f450649f105f0986c3b55faae42e4349cBrian Paul#endif 64e4b2356c07d31fbeeabb13b2fb47db703b473080Brian Paul#include "framebuffer.h" 65d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul#include "hint.h" 668a9507442a9811e2c4a4bac6a993e8a900c50d4dBrian Paul#include "histogram.h" 6727558a160a9fe91745728d7626995cd88f8fe339Brian Paul#include "imports.h" 68d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul#include "light.h" 69d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul#include "lines.h" 70a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul#include "macros.h" 71d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul#include "matrix.h" 72b17a722ca3989e8563ee04cb2939f4835f8a171eBrian Paul#if FEATURE_ARB_occlusion_query 73b17a722ca3989e8563ee04cb2939f4835f8a171eBrian Paul#include "occlude.h" 74b17a722ca3989e8563ee04cb2939f4835f8a171eBrian Paul#endif 75d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul#include "pixel.h" 76d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul#include "points.h" 77d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul#include "polygon.h" 78d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul#include "rastpos.h" 79d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul#include "state.h" 80d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul#include "stencil.h" 81d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul#include "teximage.h" 82d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul#include "texobj.h" 83d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul#include "texstate.h" 845e3bc0c2a2bcdf59949410f94c9b705fc1281ce8Jouk Jansen#include "mtypes.h" 85d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul#include "varray.h" 8604a81da03bef5020d863e46aa597eddf7aaac016Brian Paul#if FEATURE_NV_vertex_program 87610d59981a9f43fefe29b34ef19c184d28e2bef5Brian Paul#include "nvprogram.h" 888dfc5b9863f08a713177fd92847573e17febbac9Brian Paul#endif 8936a0a3252e1e20df69b53f70ba93bc74c4a4bf0eBrian Paul#if FEATURE_NV_fragment_program 9004a81da03bef5020d863e46aa597eddf7aaac016Brian Paul#include "nvprogram.h" 9104a81da03bef5020d863e46aa597eddf7aaac016Brian Paul#include "program.h" 92276330b2412910777f7016f427909085f02acbb8Keith Whitwell#include "texenvprogram.h" 9336a0a3252e1e20df69b53f70ba93bc74c4a4bf0eBrian Paul#endif 9480d468c1c976d9e3c00edcf82e56f42e168c8b9aMichal Krol#if FEATURE_ARB_shader_objects 9580d468c1c976d9e3c00edcf82e56f42e168c8b9aMichal Krol#include "shaderobjects.h" 9680d468c1c976d9e3c00edcf82e56f42e168c8b9aMichal Krol#endif 976dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#include "debug.h" 989bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick#include "dispatch.h" 996dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell 10023caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell 101d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul 1026dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell/** 1036dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell * Initialize a dispatch table with pointers to Mesa's immediate-mode 1046dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell * commands. 1056dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell * 1066dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell * Pointers to glBegin()/glEnd() object commands and a few others 1076dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell * are provided via the GLvertexformat interface. 108ad2ac216fa0cbebc36530bf9e5256e902710b892Keith Whitwell * 1099bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick * \param ctx GL context to which \c exec belongs. 1106dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell * \param exec dispatch table. 111d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul */ 112d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paulvoid 11321f6978c532eae50d9daefd481b5ab936225fd27Brian Paul_mesa_init_exec_table(struct _glapi_table *exec) 114d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul{ 1156dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#if _HAVE_FULL_GL 116ae0eaf93e092ac8e8b1c98f3e986de96940663faKeith Whitwell _mesa_loopback_init_api_table( exec ); 1176dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#endif 118ad2ac216fa0cbebc36530bf9e5256e902710b892Keith Whitwell 119d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul /* load the dispatch slots we understand */ 1209bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_AlphaFunc(exec, _mesa_AlphaFunc); 1219bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_BlendFunc(exec, _mesa_BlendFunc); 1229bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Clear(exec, _mesa_Clear); 1239bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ClearColor(exec, _mesa_ClearColor); 1249bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ClearStencil(exec, _mesa_ClearStencil); 1259bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ColorMask(exec, _mesa_ColorMask); 1269bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_CullFace(exec, _mesa_CullFace); 1279bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Disable(exec, _mesa_Disable); 1289bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_DrawBuffer(exec, _mesa_DrawBuffer); 1299bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Enable(exec, _mesa_Enable); 1309bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Finish(exec, _mesa_Finish); 1319bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Flush(exec, _mesa_Flush); 1329bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_FrontFace(exec, _mesa_FrontFace); 1339bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Frustum(exec, _mesa_Frustum); 1349bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetError(exec, _mesa_GetError); 1359bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetFloatv(exec, _mesa_GetFloatv); 1369bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetString(exec, _mesa_GetString); 1379bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_InitNames(exec, _mesa_InitNames); 1389bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_LineStipple(exec, _mesa_LineStipple); 1399bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_LineWidth(exec, _mesa_LineWidth); 1409bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_LoadIdentity(exec, _mesa_LoadIdentity); 1419bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_LoadMatrixf(exec, _mesa_LoadMatrixf); 1429bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_LoadName(exec, _mesa_LoadName); 1439bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_LogicOp(exec, _mesa_LogicOp); 1449bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_MatrixMode(exec, _mesa_MatrixMode); 1459bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_MultMatrixf(exec, _mesa_MultMatrixf); 1469bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Ortho(exec, _mesa_Ortho); 1479bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_PixelStorei(exec, _mesa_PixelStorei); 1489bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_PopMatrix(exec, _mesa_PopMatrix); 1499bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_PopName(exec, _mesa_PopName); 1509bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_PushMatrix(exec, _mesa_PushMatrix); 1519bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_PushName(exec, _mesa_PushName); 1529bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_RasterPos2f(exec, _mesa_RasterPos2f); 1539bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_RasterPos2fv(exec, _mesa_RasterPos2fv); 1549bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_RasterPos2i(exec, _mesa_RasterPos2i); 1559bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_RasterPos2iv(exec, _mesa_RasterPos2iv); 1569bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ReadBuffer(exec, _mesa_ReadBuffer); 1579bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_RenderMode(exec, _mesa_RenderMode); 1589bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Rotatef(exec, _mesa_Rotatef); 1599bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Scalef(exec, _mesa_Scalef); 1609bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Scissor(exec, _mesa_Scissor); 1619bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_SelectBuffer(exec, _mesa_SelectBuffer); 1629bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ShadeModel(exec, _mesa_ShadeModel); 1639bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_StencilFunc(exec, _mesa_StencilFunc); 1649bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_StencilMask(exec, _mesa_StencilMask); 1659bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_StencilOp(exec, _mesa_StencilOp); 1669bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_TexEnvfv(exec, _mesa_TexEnvfv); 1679bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_TexEnvi(exec, _mesa_TexEnvi); 1689bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_TexImage2D(exec, _mesa_TexImage2D); 1699bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_TexParameteri(exec, _mesa_TexParameteri); 1709bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Translatef(exec, _mesa_Translatef); 1719bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Viewport(exec, _mesa_Viewport); 1726dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#if _HAVE_FULL_GL 1739bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Accum(exec, _mesa_Accum); 1749bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Bitmap(exec, _mesa_Bitmap); 1759bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_CallList(exec, _mesa_CallList); 1769bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_CallLists(exec, _mesa_CallLists); 1779bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ClearAccum(exec, _mesa_ClearAccum); 1789bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ClearDepth(exec, _mesa_ClearDepth); 1799bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ClearIndex(exec, _mesa_ClearIndex); 1809bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ClipPlane(exec, _mesa_ClipPlane); 1819bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ColorMaterial(exec, _mesa_ColorMaterial); 1829bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_CopyPixels(exec, _mesa_CopyPixels); 1839bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_CullParameterfvEXT(exec, _mesa_CullParameterfvEXT); 1849bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_CullParameterdvEXT(exec, _mesa_CullParameterdvEXT); 1859bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_DeleteLists(exec, _mesa_DeleteLists); 1869bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_DepthFunc(exec, _mesa_DepthFunc); 1879bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_DepthMask(exec, _mesa_DepthMask); 1889bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_DepthRange(exec, _mesa_DepthRange); 1899bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_DrawPixels(exec, _mesa_DrawPixels); 1909bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_EndList(exec, _mesa_EndList); 1919bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_FeedbackBuffer(exec, _mesa_FeedbackBuffer); 1929bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_FogCoordPointerEXT(exec, _mesa_FogCoordPointerEXT); 1939bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Fogf(exec, _mesa_Fogf); 1949bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Fogfv(exec, _mesa_Fogfv); 1959bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Fogi(exec, _mesa_Fogi); 1969bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Fogiv(exec, _mesa_Fogiv); 1979bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GenLists(exec, _mesa_GenLists); 1989bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetClipPlane(exec, _mesa_GetClipPlane); 1999bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetBooleanv(exec, _mesa_GetBooleanv); 2009bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetDoublev(exec, _mesa_GetDoublev); 2019bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetIntegerv(exec, _mesa_GetIntegerv); 2029bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetLightfv(exec, _mesa_GetLightfv); 2039bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetLightiv(exec, _mesa_GetLightiv); 2049bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetMapdv(exec, _mesa_GetMapdv); 2059bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetMapfv(exec, _mesa_GetMapfv); 2069bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetMapiv(exec, _mesa_GetMapiv); 2079bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetMaterialfv(exec, _mesa_GetMaterialfv); 2089bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetMaterialiv(exec, _mesa_GetMaterialiv); 2099bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetPixelMapfv(exec, _mesa_GetPixelMapfv); 2109bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetPixelMapuiv(exec, _mesa_GetPixelMapuiv); 2119bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetPixelMapusv(exec, _mesa_GetPixelMapusv); 2129bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetPolygonStipple(exec, _mesa_GetPolygonStipple); 2139bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetTexEnvfv(exec, _mesa_GetTexEnvfv); 2149bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetTexEnviv(exec, _mesa_GetTexEnviv); 2159bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetTexLevelParameterfv(exec, _mesa_GetTexLevelParameterfv); 2169bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetTexLevelParameteriv(exec, _mesa_GetTexLevelParameteriv); 2179bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetTexParameterfv(exec, _mesa_GetTexParameterfv); 2189bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetTexParameteriv(exec, _mesa_GetTexParameteriv); 2199bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetTexGendv(exec, _mesa_GetTexGendv); 2209bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetTexGenfv(exec, _mesa_GetTexGenfv); 2219bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetTexGeniv(exec, _mesa_GetTexGeniv); 2229bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetTexImage(exec, _mesa_GetTexImage); 2239bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Hint(exec, _mesa_Hint); 2249bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_IndexMask(exec, _mesa_IndexMask); 2259bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_IsEnabled(exec, _mesa_IsEnabled); 2269bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_IsList(exec, _mesa_IsList); 2279bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_LightModelf(exec, _mesa_LightModelf); 2289bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_LightModelfv(exec, _mesa_LightModelfv); 2299bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_LightModeli(exec, _mesa_LightModeli); 2309bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_LightModeliv(exec, _mesa_LightModeliv); 2319bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Lightf(exec, _mesa_Lightf); 2329bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Lightfv(exec, _mesa_Lightfv); 2339bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Lighti(exec, _mesa_Lighti); 2349bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Lightiv(exec, _mesa_Lightiv); 2359bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ListBase(exec, _mesa_ListBase); 2369bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_LoadMatrixd(exec, _mesa_LoadMatrixd); 2379bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Map1d(exec, _mesa_Map1d); 2389bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Map1f(exec, _mesa_Map1f); 2399bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Map2d(exec, _mesa_Map2d); 2409bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Map2f(exec, _mesa_Map2f); 2419bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_MapGrid1d(exec, _mesa_MapGrid1d); 2429bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_MapGrid1f(exec, _mesa_MapGrid1f); 2439bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_MapGrid2d(exec, _mesa_MapGrid2d); 2449bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_MapGrid2f(exec, _mesa_MapGrid2f); 2459bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_MultMatrixd(exec, _mesa_MultMatrixd); 2469bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_NewList(exec, _mesa_NewList); 2479bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_PassThrough(exec, _mesa_PassThrough); 2489bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_PixelMapfv(exec, _mesa_PixelMapfv); 2499bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_PixelMapuiv(exec, _mesa_PixelMapuiv); 2509bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_PixelMapusv(exec, _mesa_PixelMapusv); 2519bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_PixelStoref(exec, _mesa_PixelStoref); 2529bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_PixelTransferf(exec, _mesa_PixelTransferf); 2539bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_PixelTransferi(exec, _mesa_PixelTransferi); 2549bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_PixelZoom(exec, _mesa_PixelZoom); 2559bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_PointSize(exec, _mesa_PointSize); 2569bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_PolygonMode(exec, _mesa_PolygonMode); 2579bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_PolygonOffset(exec, _mesa_PolygonOffset); 2589bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_PolygonStipple(exec, _mesa_PolygonStipple); 2599bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_PopAttrib(exec, _mesa_PopAttrib); 2609bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_PushAttrib(exec, _mesa_PushAttrib); 2619bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_RasterPos2d(exec, _mesa_RasterPos2d); 2629bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_RasterPos2dv(exec, _mesa_RasterPos2dv); 2639bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_RasterPos2s(exec, _mesa_RasterPos2s); 2649bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_RasterPos2sv(exec, _mesa_RasterPos2sv); 2659bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_RasterPos3d(exec, _mesa_RasterPos3d); 2669bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_RasterPos3dv(exec, _mesa_RasterPos3dv); 2679bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_RasterPos3f(exec, _mesa_RasterPos3f); 2689bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_RasterPos3fv(exec, _mesa_RasterPos3fv); 2699bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_RasterPos3i(exec, _mesa_RasterPos3i); 2709bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_RasterPos3iv(exec, _mesa_RasterPos3iv); 2719bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_RasterPos3s(exec, _mesa_RasterPos3s); 2729bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_RasterPos3sv(exec, _mesa_RasterPos3sv); 2739bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_RasterPos4d(exec, _mesa_RasterPos4d); 2749bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_RasterPos4dv(exec, _mesa_RasterPos4dv); 2759bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_RasterPos4f(exec, _mesa_RasterPos4f); 2769bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_RasterPos4fv(exec, _mesa_RasterPos4fv); 2779bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_RasterPos4i(exec, _mesa_RasterPos4i); 2789bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_RasterPos4iv(exec, _mesa_RasterPos4iv); 2799bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_RasterPos4s(exec, _mesa_RasterPos4s); 2809bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_RasterPos4sv(exec, _mesa_RasterPos4sv); 2819bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ReadPixels(exec, _mesa_ReadPixels); 2829bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Rotated(exec, _mesa_Rotated); 2839bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Scaled(exec, _mesa_Scaled); 2849bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_SecondaryColorPointerEXT(exec, _mesa_SecondaryColorPointerEXT); 2859bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_TexEnvf(exec, _mesa_TexEnvf); 2869bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_TexEnviv(exec, _mesa_TexEnviv); 2879bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_TexGend(exec, _mesa_TexGend); 2889bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_TexGendv(exec, _mesa_TexGendv); 2899bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_TexGenf(exec, _mesa_TexGenf); 2909bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_TexGenfv(exec, _mesa_TexGenfv); 2919bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_TexGeni(exec, _mesa_TexGeni); 2929bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_TexGeniv(exec, _mesa_TexGeniv); 2939bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_TexImage1D(exec, _mesa_TexImage1D); 2949bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_TexParameterf(exec, _mesa_TexParameterf); 2959bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_TexParameterfv(exec, _mesa_TexParameterfv); 2969bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_TexParameteriv(exec, _mesa_TexParameteriv); 2979bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Translated(exec, _mesa_Translated); 2986dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#endif 299d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul 300d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul /* 1.1 */ 3019bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_BindTexture(exec, _mesa_BindTexture); 3029bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_DeleteTextures(exec, _mesa_DeleteTextures); 3039bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GenTextures(exec, _mesa_GenTextures); 3046dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#if _HAVE_FULL_GL 3059bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_AreTexturesResident(exec, _mesa_AreTexturesResident); 3069bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_AreTexturesResidentEXT(exec, _mesa_AreTexturesResident); 3079bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ColorPointer(exec, _mesa_ColorPointer); 3089bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_CopyTexImage1D(exec, _mesa_CopyTexImage1D); 3099bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_CopyTexImage2D(exec, _mesa_CopyTexImage2D); 3109bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_CopyTexSubImage1D(exec, _mesa_CopyTexSubImage1D); 3119bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_CopyTexSubImage2D(exec, _mesa_CopyTexSubImage2D); 3129bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_DisableClientState(exec, _mesa_DisableClientState); 3139bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_EdgeFlagPointer(exec, _mesa_EdgeFlagPointer); 3149bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_EnableClientState(exec, _mesa_EnableClientState); 3159bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GenTexturesEXT(exec, _mesa_GenTextures); 3169bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetPointerv(exec, _mesa_GetPointerv); 3179bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_IndexPointer(exec, _mesa_IndexPointer); 3189bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_InterleavedArrays(exec, _mesa_InterleavedArrays); 3199bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_IsTexture(exec, _mesa_IsTexture); 3209bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_IsTextureEXT(exec, _mesa_IsTexture); 3219bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_NormalPointer(exec, _mesa_NormalPointer); 3229bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_PopClientAttrib(exec, _mesa_PopClientAttrib); 3239bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_PrioritizeTextures(exec, _mesa_PrioritizeTextures); 3249bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_PushClientAttrib(exec, _mesa_PushClientAttrib); 3259bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_TexCoordPointer(exec, _mesa_TexCoordPointer); 3269bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_TexSubImage1D(exec, _mesa_TexSubImage1D); 3279bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_TexSubImage2D(exec, _mesa_TexSubImage2D); 3289bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_VertexPointer(exec, _mesa_VertexPointer); 3296dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#endif 330d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul 331d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul /* 1.2 */ 3326dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#if _HAVE_FULL_GL 3339bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_CopyTexSubImage3D(exec, _mesa_CopyTexSubImage3D); 3349bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_TexImage3D(exec, _mesa_TexImage3D); 3359bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_TexSubImage3D(exec, _mesa_TexSubImage3D); 3366dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#endif 337d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul 338d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul /* OpenGL 1.2 GL_ARB_imaging */ 3396dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#if _HAVE_FULL_GL 3409bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_BlendColor(exec, _mesa_BlendColor); 3419bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_BlendEquation(exec, _mesa_BlendEquation); 3429bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_BlendEquationSeparateEXT(exec, _mesa_BlendEquationSeparateEXT); 3439bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ColorSubTable(exec, _mesa_ColorSubTable); 3449bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ColorTable(exec, _mesa_ColorTable); 3459bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ColorTableParameterfv(exec, _mesa_ColorTableParameterfv); 3469bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ColorTableParameteriv(exec, _mesa_ColorTableParameteriv); 3479bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ConvolutionFilter1D(exec, _mesa_ConvolutionFilter1D); 3489bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ConvolutionFilter2D(exec, _mesa_ConvolutionFilter2D); 3499bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ConvolutionParameterf(exec, _mesa_ConvolutionParameterf); 3509bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ConvolutionParameterfv(exec, _mesa_ConvolutionParameterfv); 3519bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ConvolutionParameteri(exec, _mesa_ConvolutionParameteri); 3529bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ConvolutionParameteriv(exec, _mesa_ConvolutionParameteriv); 3539bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_CopyColorSubTable(exec, _mesa_CopyColorSubTable); 3549bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_CopyColorTable(exec, _mesa_CopyColorTable); 3559bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_CopyConvolutionFilter1D(exec, _mesa_CopyConvolutionFilter1D); 3569bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_CopyConvolutionFilter2D(exec, _mesa_CopyConvolutionFilter2D); 3579bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetColorTable(exec, _mesa_GetColorTable); 3589bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetColorTableEXT(exec, _mesa_GetColorTable); 3599bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetColorTableParameterfv(exec, _mesa_GetColorTableParameterfv); 3609bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetColorTableParameterfvEXT(exec, _mesa_GetColorTableParameterfv); 3619bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetColorTableParameteriv(exec, _mesa_GetColorTableParameteriv); 3629bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetColorTableParameterivEXT(exec, _mesa_GetColorTableParameteriv); 3639bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetConvolutionFilter(exec, _mesa_GetConvolutionFilter); 3649bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetConvolutionFilterEXT(exec, _mesa_GetConvolutionFilter); 3659bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetConvolutionParameterfv(exec, _mesa_GetConvolutionParameterfv); 3669bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetConvolutionParameterfvEXT(exec, _mesa_GetConvolutionParameterfv); 3679bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetConvolutionParameteriv(exec, _mesa_GetConvolutionParameteriv); 3689bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetConvolutionParameterivEXT(exec, _mesa_GetConvolutionParameteriv); 3699bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetHistogram(exec, _mesa_GetHistogram); 3709bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetHistogramEXT(exec, _mesa_GetHistogram); 3719bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetHistogramParameterfv(exec, _mesa_GetHistogramParameterfv); 3729bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetHistogramParameterfvEXT(exec, _mesa_GetHistogramParameterfv); 3739bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetHistogramParameteriv(exec, _mesa_GetHistogramParameteriv); 3749bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetHistogramParameterivEXT(exec, _mesa_GetHistogramParameteriv); 3759bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetMinmax(exec, _mesa_GetMinmax); 3769bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetMinmaxEXT(exec, _mesa_GetMinmax); 3779bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetMinmaxParameterfv(exec, _mesa_GetMinmaxParameterfv); 3789bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetMinmaxParameterfvEXT(exec, _mesa_GetMinmaxParameterfv); 3799bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetMinmaxParameteriv(exec, _mesa_GetMinmaxParameteriv); 3809bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetMinmaxParameterivEXT(exec, _mesa_GetMinmaxParameteriv); 3819bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetSeparableFilter(exec, _mesa_GetSeparableFilter); 3829bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetSeparableFilterEXT(exec, _mesa_GetSeparableFilter); 3839bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Histogram(exec, _mesa_Histogram); 3849bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Minmax(exec, _mesa_Minmax); 3859bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ResetHistogram(exec, _mesa_ResetHistogram); 3869bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ResetMinmax(exec, _mesa_ResetMinmax); 3879bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_SeparableFilter2D(exec, _mesa_SeparableFilter2D); 3886dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#endif 389d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul 390a9e34c68ac0538699a144f67d3ce83ccb8f49be9Brian Paul /* OpenGL 2.0 */ 3919bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_StencilFuncSeparate(exec, _mesa_StencilFuncSeparate); 3929bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_StencilMaskSeparate(exec, _mesa_StencilMaskSeparate); 3939bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_StencilOpSeparate(exec, _mesa_StencilOpSeparate); 394a9e34c68ac0538699a144f67d3ce83ccb8f49be9Brian Paul 3951a1cf7ed75d799bbda34399ddab7949b8c06686eBrian Paul /* 2. GL_EXT_blend_color */ 3961a1cf7ed75d799bbda34399ddab7949b8c06686eBrian Paul#if 0 3979bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick/* SET_BlendColorEXT(exec, _mesa_BlendColorEXT); */ 3981a1cf7ed75d799bbda34399ddab7949b8c06686eBrian Paul#endif 3991a1cf7ed75d799bbda34399ddab7949b8c06686eBrian Paul 4001a1cf7ed75d799bbda34399ddab7949b8c06686eBrian Paul /* 3. GL_EXT_polygon_offset */ 4016dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#if _HAVE_FULL_GL 4029bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_PolygonOffsetEXT(exec, _mesa_PolygonOffsetEXT); 4036dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#endif 4041a1cf7ed75d799bbda34399ddab7949b8c06686eBrian Paul 4051a1cf7ed75d799bbda34399ddab7949b8c06686eBrian Paul /* 6. GL_EXT_texture3d */ 406ead285a9266bb5f80e68de122490a6afb88df6f3Brian Paul#if 0 4079bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick/* SET_CopyTexSubImage3DEXT(exec, _mesa_CopyTexSubImage3D); */ 4089bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick/* SET_TexImage3DEXT(exec, _mesa_TexImage3DEXT); */ 4099bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick/* SET_TexSubImage3DEXT(exec, _mesa_TexSubImage3D); */ 410ead285a9266bb5f80e68de122490a6afb88df6f3Brian Paul#endif 411d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul 4121a1cf7ed75d799bbda34399ddab7949b8c06686eBrian Paul /* 11. GL_EXT_histogram */ 4136dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#if _HAVE_FULL_GL 4149bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetHistogramEXT(exec, _mesa_GetHistogram); 4159bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetHistogramParameterfvEXT(exec, _mesa_GetHistogramParameterfv); 4169bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetHistogramParameterivEXT(exec, _mesa_GetHistogramParameteriv); 4179bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetMinmaxEXT(exec, _mesa_GetMinmax); 4189bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetMinmaxParameterfvEXT(exec, _mesa_GetMinmaxParameterfv); 4199bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetMinmaxParameterivEXT(exec, _mesa_GetMinmaxParameteriv); 4206dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#endif 421d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul 4221a1cf7ed75d799bbda34399ddab7949b8c06686eBrian Paul /* ?. GL_SGIX_pixel_texture */ 4236dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#if _HAVE_FULL_GL 4249bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_PixelTexGenSGIX(exec, _mesa_PixelTexGenSGIX); 4256dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#endif 4262b2e925ea4a5652b0ab73b1efbce345a42663842Brian Paul 4271a1cf7ed75d799bbda34399ddab7949b8c06686eBrian Paul /* 15. GL_SGIS_pixel_texture */ 4286dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#if _HAVE_FULL_GL 4299bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_PixelTexGenParameteriSGIS(exec, _mesa_PixelTexGenParameteriSGIS); 4309bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_PixelTexGenParameterivSGIS(exec, _mesa_PixelTexGenParameterivSGIS); 4319bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_PixelTexGenParameterfSGIS(exec, _mesa_PixelTexGenParameterfSGIS); 4329bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_PixelTexGenParameterfvSGIS(exec, _mesa_PixelTexGenParameterfvSGIS); 4339bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetPixelTexGenParameterivSGIS(exec, _mesa_GetPixelTexGenParameterivSGIS); 4349bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetPixelTexGenParameterfvSGIS(exec, _mesa_GetPixelTexGenParameterfvSGIS); 4356dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#endif 4362b2e925ea4a5652b0ab73b1efbce345a42663842Brian Paul 4371f0e213bf88500e9c2f7ca92e57392efae5e4459Brian Paul /* 30. GL_EXT_vertex_array */ 4386dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#if _HAVE_FULL_GL 4399bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ColorPointerEXT(exec, _mesa_ColorPointerEXT); 4409bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_EdgeFlagPointerEXT(exec, _mesa_EdgeFlagPointerEXT); 4419bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_IndexPointerEXT(exec, _mesa_IndexPointerEXT); 4429bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_NormalPointerEXT(exec, _mesa_NormalPointerEXT); 4439bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_TexCoordPointerEXT(exec, _mesa_TexCoordPointerEXT); 4449bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_VertexPointerEXT(exec, _mesa_VertexPointerEXT); 4456dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#endif 4461f0e213bf88500e9c2f7ca92e57392efae5e4459Brian Paul 4471a1cf7ed75d799bbda34399ddab7949b8c06686eBrian Paul /* 37. GL_EXT_blend_minmax */ 4481a1cf7ed75d799bbda34399ddab7949b8c06686eBrian Paul#if 0 4499bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_BlendEquationEXT(exec, _mesa_BlendEquationEXT); 4501a1cf7ed75d799bbda34399ddab7949b8c06686eBrian Paul#endif 451d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul 4521a1cf7ed75d799bbda34399ddab7949b8c06686eBrian Paul /* 54. GL_EXT_point_parameters */ 4536dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#if _HAVE_FULL_GL 4549bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_PointParameterfEXT(exec, _mesa_PointParameterfEXT); 4559bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_PointParameterfvEXT(exec, _mesa_PointParameterfvEXT); 4566dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#endif 457d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul 4581a1cf7ed75d799bbda34399ddab7949b8c06686eBrian Paul /* 78. GL_EXT_paletted_texture */ 459ead285a9266bb5f80e68de122490a6afb88df6f3Brian Paul#if 0 4609bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ColorTableEXT(exec, _mesa_ColorTableEXT); 4619bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ColorSubTableEXT(exec, _mesa_ColorSubTableEXT); 462ead285a9266bb5f80e68de122490a6afb88df6f3Brian Paul#endif 4636dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#if _HAVE_FULL_GL 4649bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetColorTableEXT(exec, _mesa_GetColorTable); 4659bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetColorTableParameterfvEXT(exec, _mesa_GetColorTableParameterfv); 4669bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetColorTableParameterivEXT(exec, _mesa_GetColorTableParameteriv); 4676dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#endif 468d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul 4691a1cf7ed75d799bbda34399ddab7949b8c06686eBrian Paul /* 97. GL_EXT_compiled_vertex_array */ 4706dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#if _HAVE_FULL_GL 4719bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_LockArraysEXT(exec, _mesa_LockArraysEXT); 4729bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_UnlockArraysEXT(exec, _mesa_UnlockArraysEXT); 4736dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#endif 4741a1cf7ed75d799bbda34399ddab7949b8c06686eBrian Paul 4752525bc7d305f6dcab3beb75535da25a488c969b0Brian Paul /* 148. GL_EXT_multi_draw_arrays */ 4766dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#if _HAVE_FULL_GL 4779bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_MultiDrawArraysEXT(exec, _mesa_MultiDrawArraysEXT); 4789bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_MultiDrawElementsEXT(exec, _mesa_MultiDrawElementsEXT); 4796dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#endif 4802525bc7d305f6dcab3beb75535da25a488c969b0Brian Paul 4811a1cf7ed75d799bbda34399ddab7949b8c06686eBrian Paul /* 173. GL_INGR_blend_func_separate */ 4826dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#if _HAVE_FULL_GL 4839bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_BlendFuncSeparateEXT(exec, _mesa_BlendFuncSeparateEXT); 4846dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#endif 4851a1cf7ed75d799bbda34399ddab7949b8c06686eBrian Paul 4861a1cf7ed75d799bbda34399ddab7949b8c06686eBrian Paul /* 196. GL_MESA_resize_buffers */ 4876dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#if _HAVE_FULL_GL 4889bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ResizeBuffersMESA(exec, _mesa_ResizeBuffersMESA); 4896dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#endif 4901a1cf7ed75d799bbda34399ddab7949b8c06686eBrian Paul 4911a1cf7ed75d799bbda34399ddab7949b8c06686eBrian Paul /* 197. GL_MESA_window_pos */ 4926dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#if _HAVE_FULL_GL 4939bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_WindowPos2dMESA(exec, _mesa_WindowPos2dMESA); 4949bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_WindowPos2dvMESA(exec, _mesa_WindowPos2dvMESA); 4959bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_WindowPos2fMESA(exec, _mesa_WindowPos2fMESA); 4969bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_WindowPos2fvMESA(exec, _mesa_WindowPos2fvMESA); 4979bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_WindowPos2iMESA(exec, _mesa_WindowPos2iMESA); 4989bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_WindowPos2ivMESA(exec, _mesa_WindowPos2ivMESA); 4999bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_WindowPos2sMESA(exec, _mesa_WindowPos2sMESA); 5009bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_WindowPos2svMESA(exec, _mesa_WindowPos2svMESA); 5019bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_WindowPos3dMESA(exec, _mesa_WindowPos3dMESA); 5029bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_WindowPos3dvMESA(exec, _mesa_WindowPos3dvMESA); 5039bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_WindowPos3fMESA(exec, _mesa_WindowPos3fMESA); 5049bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_WindowPos3fvMESA(exec, _mesa_WindowPos3fvMESA); 5059bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_WindowPos3iMESA(exec, _mesa_WindowPos3iMESA); 5069bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_WindowPos3ivMESA(exec, _mesa_WindowPos3ivMESA); 5079bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_WindowPos3sMESA(exec, _mesa_WindowPos3sMESA); 5089bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_WindowPos3svMESA(exec, _mesa_WindowPos3svMESA); 5099bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_WindowPos4dMESA(exec, _mesa_WindowPos4dMESA); 5109bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_WindowPos4dvMESA(exec, _mesa_WindowPos4dvMESA); 5119bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_WindowPos4fMESA(exec, _mesa_WindowPos4fMESA); 5129bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_WindowPos4fvMESA(exec, _mesa_WindowPos4fvMESA); 5139bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_WindowPos4iMESA(exec, _mesa_WindowPos4iMESA); 5149bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_WindowPos4ivMESA(exec, _mesa_WindowPos4ivMESA); 5159bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_WindowPos4sMESA(exec, _mesa_WindowPos4sMESA); 5169bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_WindowPos4svMESA(exec, _mesa_WindowPos4svMESA); 5176dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#endif 518d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul 5193baefe663bb15b4fd60921155de38c12ec2758c4Ian Romanick /* 200. GL_IBM_multimode_draw_arrays */ 5203baefe663bb15b4fd60921155de38c12ec2758c4Ian Romanick#if _HAVE_FULL_GL 5219bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_MultiModeDrawArraysIBM(exec, _mesa_MultiModeDrawArraysIBM); 5229bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_MultiModeDrawElementsIBM(exec, _mesa_MultiModeDrawElementsIBM); 5233baefe663bb15b4fd60921155de38c12ec2758c4Ian Romanick#endif 5243baefe663bb15b4fd60921155de38c12ec2758c4Ian Romanick 525b638c34381004aa2a778227bad51d259d05a9b53Brian Paul /* 233. GL_NV_vertex_program */ 5268dfc5b9863f08a713177fd92847573e17febbac9Brian Paul#if FEATURE_NV_vertex_program 5279bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_BindProgramNV(exec, _mesa_BindProgram); 5289bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_DeleteProgramsNV(exec, _mesa_DeletePrograms); 5299bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ExecuteProgramNV(exec, _mesa_ExecuteProgramNV); 5309bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GenProgramsNV(exec, _mesa_GenPrograms); 5319bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_AreProgramsResidentNV(exec, _mesa_AreProgramsResidentNV); 5329bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_RequestResidentProgramsNV(exec, _mesa_RequestResidentProgramsNV); 5339bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetProgramParameterfvNV(exec, _mesa_GetProgramParameterfvNV); 5349bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetProgramParameterdvNV(exec, _mesa_GetProgramParameterdvNV); 5359bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetProgramivNV(exec, _mesa_GetProgramivNV); 5369bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetProgramStringNV(exec, _mesa_GetProgramStringNV); 5379bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetTrackMatrixivNV(exec, _mesa_GetTrackMatrixivNV); 5389bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetVertexAttribdvNV(exec, _mesa_GetVertexAttribdvNV); 5399bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetVertexAttribfvNV(exec, _mesa_GetVertexAttribfvNV); 5409bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetVertexAttribivNV(exec, _mesa_GetVertexAttribivNV); 5419bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetVertexAttribPointervNV(exec, _mesa_GetVertexAttribPointervNV); 5429bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_IsProgramNV(exec, _mesa_IsProgram); 5439bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_LoadProgramNV(exec, _mesa_LoadProgramNV); 5449bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ProgramParameter4dNV(exec, _mesa_ProgramParameter4dNV); 5459bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ProgramParameter4dvNV(exec, _mesa_ProgramParameter4dvNV); 5469bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ProgramParameter4fNV(exec, _mesa_ProgramParameter4fNV); 5479bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ProgramParameter4fvNV(exec, _mesa_ProgramParameter4fvNV); 5489bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ProgramParameters4dvNV(exec, _mesa_ProgramParameters4dvNV); 5499bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ProgramParameters4fvNV(exec, _mesa_ProgramParameters4fvNV); 5509bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_TrackMatrixNV(exec, _mesa_TrackMatrixNV); 5519bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_VertexAttribPointerNV(exec, _mesa_VertexAttribPointerNV); 552e8e93e9cc641e31c9c0e6a2bb1ac3e44d0bdec5aBrian Paul /* glVertexAttrib*NV functions handled in api_loopback.c */ 5538dfc5b9863f08a713177fd92847573e17febbac9Brian Paul#endif 55486b842790b720cd6b1499ce8edca8a4e9c8dc029Brian Paul 5555960105ca35d5f51ef3881d201faf2cda99ead0cBrian Paul /* 282. GL_NV_fragment_program */ 55652334967edb3bf79c3eecbd599dcef667ba63239Brian Paul#if FEATURE_NV_fragment_program 5579bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ProgramNamedParameter4fNV(exec, _mesa_ProgramNamedParameter4fNV); 5589bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ProgramNamedParameter4dNV(exec, _mesa_ProgramNamedParameter4dNV); 5599bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ProgramNamedParameter4fvNV(exec, _mesa_ProgramNamedParameter4fvNV); 5609bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ProgramNamedParameter4dvNV(exec, _mesa_ProgramNamedParameter4dvNV); 5619bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetProgramNamedParameterfvNV(exec, _mesa_GetProgramNamedParameterfvNV); 5629bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetProgramNamedParameterdvNV(exec, _mesa_GetProgramNamedParameterdvNV); 5639bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ProgramLocalParameter4dARB(exec, _mesa_ProgramLocalParameter4dARB); 5649bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ProgramLocalParameter4dvARB(exec, _mesa_ProgramLocalParameter4dvARB); 5659bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ProgramLocalParameter4fARB(exec, _mesa_ProgramLocalParameter4fARB); 5669bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ProgramLocalParameter4fvARB(exec, _mesa_ProgramLocalParameter4fvARB); 5679bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetProgramLocalParameterdvARB(exec, _mesa_GetProgramLocalParameterdvARB); 5689bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetProgramLocalParameterfvARB(exec, _mesa_GetProgramLocalParameterfvARB); 569610d59981a9f43fefe29b34ef19c184d28e2bef5Brian Paul#endif 570610d59981a9f43fefe29b34ef19c184d28e2bef5Brian Paul 57123d8ef3937b3b66684f7feb62446abca8e91d307Brian Paul /* 262. GL_NV_point_sprite */ 5726dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#if _HAVE_FULL_GL 5739bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_PointParameteriNV(exec, _mesa_PointParameteriNV); 5749bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_PointParameterivNV(exec, _mesa_PointParameterivNV); 5756dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#endif 57623d8ef3937b3b66684f7feb62446abca8e91d307Brian Paul 5775f60a0b50ada1865d4fc6a724366e8ea0cc9a72fBrian Paul /* 268. GL_EXT_stencil_two_side */ 5786dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#if _HAVE_FULL_GL 5799bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ActiveStencilFaceEXT(exec, _mesa_ActiveStencilFaceEXT); 5806dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#endif 5815f60a0b50ada1865d4fc6a724366e8ea0cc9a72fBrian Paul 582b0b9b798ac0620aeba15143f84c1d1ef2ddd44dbBrian Paul /* ???. GL_EXT_depth_bounds_test */ 5839bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_DepthBoundsEXT(exec, _mesa_DepthBoundsEXT); 584b0b9b798ac0620aeba15143f84c1d1ef2ddd44dbBrian Paul 5851a1cf7ed75d799bbda34399ddab7949b8c06686eBrian Paul /* ARB 1. GL_ARB_multitexture */ 5866dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#if _HAVE_FULL_GL 5879bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ActiveTextureARB(exec, _mesa_ActiveTextureARB); 5889bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ClientActiveTextureARB(exec, _mesa_ClientActiveTextureARB); 5896dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#endif 590d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul 5911a1cf7ed75d799bbda34399ddab7949b8c06686eBrian Paul /* ARB 3. GL_ARB_transpose_matrix */ 5926dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#if _HAVE_FULL_GL 5939bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_LoadTransposeMatrixdARB(exec, _mesa_LoadTransposeMatrixdARB); 5949bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_LoadTransposeMatrixfARB(exec, _mesa_LoadTransposeMatrixfARB); 5959bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_MultTransposeMatrixdARB(exec, _mesa_MultTransposeMatrixdARB); 5969bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_MultTransposeMatrixfARB(exec, _mesa_MultTransposeMatrixfARB); 5976dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#endif 5981207bf057aeea3376e5e0f03f789a5d67ed4d29dBrian Paul 599736fcbec4732830e7976fb5eb309b13e03be132cBrian Paul /* ARB 5. GL_ARB_multisample */ 6006dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#if _HAVE_FULL_GL 6019bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_SampleCoverageARB(exec, _mesa_SampleCoverageARB); 6026dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#endif 603736fcbec4732830e7976fb5eb309b13e03be132cBrian Paul 6041207bf057aeea3376e5e0f03f789a5d67ed4d29dBrian Paul /* ARB 12. GL_ARB_texture_compression */ 6056dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#if _HAVE_FULL_GL 6069bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_CompressedTexImage3DARB(exec, _mesa_CompressedTexImage3DARB); 6079bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_CompressedTexImage2DARB(exec, _mesa_CompressedTexImage2DARB); 6089bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_CompressedTexImage1DARB(exec, _mesa_CompressedTexImage1DARB); 6099bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_CompressedTexSubImage3DARB(exec, _mesa_CompressedTexSubImage3DARB); 6109bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_CompressedTexSubImage2DARB(exec, _mesa_CompressedTexSubImage2DARB); 6119bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_CompressedTexSubImage1DARB(exec, _mesa_CompressedTexSubImage1DARB); 6129bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetCompressedTexImageARB(exec, _mesa_GetCompressedTexImageARB); 6136dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell#endif 6141207bf057aeea3376e5e0f03f789a5d67ed4d29dBrian Paul 6151537b63fce36f87b3606d0e7cdca2d10bbdffd56Brian Paul /* ARB 14. GL_ARB_point_parameters */ 6161537b63fce36f87b3606d0e7cdca2d10bbdffd56Brian Paul /* reuse EXT_point_parameters functions */ 6176061df09a45c42745253965df012ddf76910ea33Brian Paul 6185960105ca35d5f51ef3881d201faf2cda99ead0cBrian Paul /* ARB 26. GL_ARB_vertex_program */ 6195960105ca35d5f51ef3881d201faf2cda99ead0cBrian Paul /* ARB 27. GL_ARB_fragment_program */ 6205960105ca35d5f51ef3881d201faf2cda99ead0cBrian Paul#if FEATURE_ARB_vertex_program || FEATURE_ARB_fragment_program 621b0b9b798ac0620aeba15143f84c1d1ef2ddd44dbBrian Paul /* glVertexAttrib1sARB aliases glVertexAttrib1sNV */ 622b0b9b798ac0620aeba15143f84c1d1ef2ddd44dbBrian Paul /* glVertexAttrib1fARB aliases glVertexAttrib1fNV */ 623b0b9b798ac0620aeba15143f84c1d1ef2ddd44dbBrian Paul /* glVertexAttrib1dARB aliases glVertexAttrib1dNV */ 624b0b9b798ac0620aeba15143f84c1d1ef2ddd44dbBrian Paul /* glVertexAttrib2sARB aliases glVertexAttrib2sNV */ 625b0b9b798ac0620aeba15143f84c1d1ef2ddd44dbBrian Paul /* glVertexAttrib2fARB aliases glVertexAttrib2fNV */ 626b0b9b798ac0620aeba15143f84c1d1ef2ddd44dbBrian Paul /* glVertexAttrib2dARB aliases glVertexAttrib2dNV */ 627b0b9b798ac0620aeba15143f84c1d1ef2ddd44dbBrian Paul /* glVertexAttrib3sARB aliases glVertexAttrib3sNV */ 628b0b9b798ac0620aeba15143f84c1d1ef2ddd44dbBrian Paul /* glVertexAttrib3fARB aliases glVertexAttrib3fNV */ 629b0b9b798ac0620aeba15143f84c1d1ef2ddd44dbBrian Paul /* glVertexAttrib3dARB aliases glVertexAttrib3dNV */ 630b0b9b798ac0620aeba15143f84c1d1ef2ddd44dbBrian Paul /* glVertexAttrib4sARB aliases glVertexAttrib4sNV */ 631b0b9b798ac0620aeba15143f84c1d1ef2ddd44dbBrian Paul /* glVertexAttrib4fARB aliases glVertexAttrib4fNV */ 632b0b9b798ac0620aeba15143f84c1d1ef2ddd44dbBrian Paul /* glVertexAttrib4dARB aliases glVertexAttrib4dNV */ 633b0b9b798ac0620aeba15143f84c1d1ef2ddd44dbBrian Paul /* glVertexAttrib4NubARB aliases glVertexAttrib4NubNV */ 634b0b9b798ac0620aeba15143f84c1d1ef2ddd44dbBrian Paul /* glVertexAttrib1svARB aliases glVertexAttrib1svNV */ 635b0b9b798ac0620aeba15143f84c1d1ef2ddd44dbBrian Paul /* glVertexAttrib1fvARB aliases glVertexAttrib1fvNV */ 636b0b9b798ac0620aeba15143f84c1d1ef2ddd44dbBrian Paul /* glVertexAttrib1dvARB aliases glVertexAttrib1dvNV */ 637b0b9b798ac0620aeba15143f84c1d1ef2ddd44dbBrian Paul /* glVertexAttrib2svARB aliases glVertexAttrib2svNV */ 638b0b9b798ac0620aeba15143f84c1d1ef2ddd44dbBrian Paul /* glVertexAttrib2fvARB aliases glVertexAttrib2fvNV */ 639b0b9b798ac0620aeba15143f84c1d1ef2ddd44dbBrian Paul /* glVertexAttrib2dvARB aliases glVertexAttrib2dvNV */ 640b0b9b798ac0620aeba15143f84c1d1ef2ddd44dbBrian Paul /* glVertexAttrib3svARB aliases glVertexAttrib3svNV */ 641b0b9b798ac0620aeba15143f84c1d1ef2ddd44dbBrian Paul /* glVertexAttrib3fvARB aliases glVertexAttrib3fvNV */ 642b0b9b798ac0620aeba15143f84c1d1ef2ddd44dbBrian Paul /* glVertexAttrib3dvARB aliases glVertexAttrib3dvNV */ 643b0b9b798ac0620aeba15143f84c1d1ef2ddd44dbBrian Paul /* glVertexAttrib4svARB aliases glVertexAttrib4svNV */ 644b0b9b798ac0620aeba15143f84c1d1ef2ddd44dbBrian Paul /* glVertexAttrib4fvARB aliases glVertexAttrib4fvNV */ 645b0b9b798ac0620aeba15143f84c1d1ef2ddd44dbBrian Paul /* glVertexAttrib4dvARB aliases glVertexAttrib4dvNV */ 646b0b9b798ac0620aeba15143f84c1d1ef2ddd44dbBrian Paul /* glVertexAttrib4NubvARB aliases glVertexAttrib4NubvNV */ 647e8e93e9cc641e31c9c0e6a2bb1ac3e44d0bdec5aBrian Paul /* glVertexAttrib4bvARB handled in api_loopback.c */ 648e8e93e9cc641e31c9c0e6a2bb1ac3e44d0bdec5aBrian Paul /* glVertexAttrib4ivARB handled in api_loopback.c */ 649e8e93e9cc641e31c9c0e6a2bb1ac3e44d0bdec5aBrian Paul /* glVertexAttrib4ubvARB handled in api_loopback.c */ 650e8e93e9cc641e31c9c0e6a2bb1ac3e44d0bdec5aBrian Paul /* glVertexAttrib4usvARB handled in api_loopback.c */ 651e8e93e9cc641e31c9c0e6a2bb1ac3e44d0bdec5aBrian Paul /* glVertexAttrib4uivARB handled in api_loopback.c */ 652e8e93e9cc641e31c9c0e6a2bb1ac3e44d0bdec5aBrian Paul /* glVertexAttrib4NbvARB handled in api_loopback.c */ 653e8e93e9cc641e31c9c0e6a2bb1ac3e44d0bdec5aBrian Paul /* glVertexAttrib4NsvARB handled in api_loopback.c */ 654e8e93e9cc641e31c9c0e6a2bb1ac3e44d0bdec5aBrian Paul /* glVertexAttrib4NivARB handled in api_loopback.c */ 655e8e93e9cc641e31c9c0e6a2bb1ac3e44d0bdec5aBrian Paul /* glVertexAttrib4NusvARB handled in api_loopback.c */ 656e8e93e9cc641e31c9c0e6a2bb1ac3e44d0bdec5aBrian Paul /* glVertexAttrib4NuivARB handled in api_loopback.c */ 6579bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_VertexAttribPointerARB(exec, _mesa_VertexAttribPointerARB); 6589bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_EnableVertexAttribArrayARB(exec, _mesa_EnableVertexAttribArrayARB); 6599bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_DisableVertexAttribArrayARB(exec, _mesa_DisableVertexAttribArrayARB); 6609bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ProgramStringARB(exec, _mesa_ProgramStringARB); 661b0b9b798ac0620aeba15143f84c1d1ef2ddd44dbBrian Paul /* glBindProgramARB aliases glBindProgramNV */ 662b0b9b798ac0620aeba15143f84c1d1ef2ddd44dbBrian Paul /* glDeleteProgramsARB aliases glDeleteProgramsNV */ 663b0b9b798ac0620aeba15143f84c1d1ef2ddd44dbBrian Paul /* glGenProgramsARB aliases glGenProgramsNV */ 664b0b9b798ac0620aeba15143f84c1d1ef2ddd44dbBrian Paul /* glIsProgramARB aliases glIsProgramNV */ 6659bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetVertexAttribdvARB(exec, _mesa_GetVertexAttribdvARB); 6669bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetVertexAttribfvARB(exec, _mesa_GetVertexAttribfvARB); 6679bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetVertexAttribivARB(exec, _mesa_GetVertexAttribivARB); 668b0b9b798ac0620aeba15143f84c1d1ef2ddd44dbBrian Paul /* glGetVertexAttribPointervARB aliases glGetVertexAttribPointervNV */ 6699bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ProgramEnvParameter4dARB(exec, _mesa_ProgramEnvParameter4dARB); 6709bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ProgramEnvParameter4dvARB(exec, _mesa_ProgramEnvParameter4dvARB); 6719bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ProgramEnvParameter4fARB(exec, _mesa_ProgramEnvParameter4fARB); 6729bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ProgramEnvParameter4fvARB(exec, _mesa_ProgramEnvParameter4fvARB); 6739bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ProgramLocalParameter4dARB(exec, _mesa_ProgramLocalParameter4dARB); 6749bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ProgramLocalParameter4dvARB(exec, _mesa_ProgramLocalParameter4dvARB); 6759bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ProgramLocalParameter4fARB(exec, _mesa_ProgramLocalParameter4fARB); 6769bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ProgramLocalParameter4fvARB(exec, _mesa_ProgramLocalParameter4fvARB); 6779bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetProgramEnvParameterdvARB(exec, _mesa_GetProgramEnvParameterdvARB); 6789bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetProgramEnvParameterfvARB(exec, _mesa_GetProgramEnvParameterfvARB); 6799bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetProgramLocalParameterdvARB(exec, _mesa_GetProgramLocalParameterdvARB); 6809bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetProgramLocalParameterfvARB(exec, _mesa_GetProgramLocalParameterfvARB); 6819bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetProgramivARB(exec, _mesa_GetProgramivARB); 6829bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetProgramStringARB(exec, _mesa_GetProgramStringARB); 6835960105ca35d5f51ef3881d201faf2cda99ead0cBrian Paul#endif 6845960105ca35d5f51ef3881d201faf2cda99ead0cBrian Paul 6856061df09a45c42745253965df012ddf76910ea33Brian Paul /* ARB 28. GL_ARB_vertex_buffer_object */ 6866061df09a45c42745253965df012ddf76910ea33Brian Paul#if FEATURE_ARB_vertex_buffer_object 6879bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_BindBufferARB(exec, _mesa_BindBufferARB); 6889bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_BufferDataARB(exec, _mesa_BufferDataARB); 6899bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_BufferSubDataARB(exec, _mesa_BufferSubDataARB); 6909bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_DeleteBuffersARB(exec, _mesa_DeleteBuffersARB); 6919bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GenBuffersARB(exec, _mesa_GenBuffersARB); 6929bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetBufferParameterivARB(exec, _mesa_GetBufferParameterivARB); 6939bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetBufferPointervARB(exec, _mesa_GetBufferPointervARB); 6949bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetBufferSubDataARB(exec, _mesa_GetBufferSubDataARB); 6959bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_IsBufferARB(exec, _mesa_IsBufferARB); 6969bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_MapBufferARB(exec, _mesa_MapBufferARB); 6979bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_UnmapBufferARB(exec, _mesa_UnmapBufferARB); 6986061df09a45c42745253965df012ddf76910ea33Brian Paul#endif 699b17a722ca3989e8563ee04cb2939f4835f8a171eBrian Paul 70053f82c5aadbb15585754bfacf3237093eccdb2ceBrian Paul /* ARB 29. GL_ARB_occlusion_query */ 701b17a722ca3989e8563ee04cb2939f4835f8a171eBrian Paul#if FEATURE_ARB_occlusion_query 7029bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GenQueriesARB(exec, _mesa_GenQueriesARB); 7039bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_DeleteQueriesARB(exec, _mesa_DeleteQueriesARB); 7049bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_IsQueryARB(exec, _mesa_IsQueryARB); 7059bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_BeginQueryARB(exec, _mesa_BeginQueryARB); 7069bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_EndQueryARB(exec, _mesa_EndQueryARB); 7079bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetQueryivARB(exec, _mesa_GetQueryivARB); 7089bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetQueryObjectivARB(exec, _mesa_GetQueryObjectivARB); 7099bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetQueryObjectuivARB(exec, _mesa_GetQueryObjectuivARB); 710b17a722ca3989e8563ee04cb2939f4835f8a171eBrian Paul#endif 71153f82c5aadbb15585754bfacf3237093eccdb2ceBrian Paul 71253f82c5aadbb15585754bfacf3237093eccdb2ceBrian Paul /* ARB 37. GL_ARB_draw_buffers */ 7139bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_DrawBuffersARB(exec, _mesa_DrawBuffersARB); 71480d468c1c976d9e3c00edcf82e56f42e168c8b9aMichal Krol 71580d468c1c976d9e3c00edcf82e56f42e168c8b9aMichal Krol#if FEATURE_ARB_shader_objects 7169bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_DeleteObjectARB(exec, _mesa_DeleteObjectARB); 7179bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetHandleARB(exec, _mesa_GetHandleARB); 7189bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_DetachObjectARB(exec, _mesa_DetachObjectARB); 7199bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_CreateShaderObjectARB(exec, _mesa_CreateShaderObjectARB); 7209bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ShaderSourceARB(exec, _mesa_ShaderSourceARB); 7219bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_CompileShaderARB(exec, _mesa_CompileShaderARB); 7229bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_CreateProgramObjectARB(exec, _mesa_CreateProgramObjectARB); 7239bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_AttachObjectARB(exec, _mesa_AttachObjectARB); 7249bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_LinkProgramARB(exec, _mesa_LinkProgramARB); 7259bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_UseProgramObjectARB(exec, _mesa_UseProgramObjectARB); 7269bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ValidateProgramARB(exec, _mesa_ValidateProgramARB); 7279bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Uniform1fARB(exec, _mesa_Uniform1fARB); 7289bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Uniform2fARB(exec, _mesa_Uniform2fARB); 7299bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Uniform3fARB(exec, _mesa_Uniform3fARB); 7309bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Uniform4fARB(exec, _mesa_Uniform4fARB); 7319bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Uniform1iARB(exec, _mesa_Uniform1iARB); 7329bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Uniform2iARB(exec, _mesa_Uniform2iARB); 7339bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Uniform3iARB(exec, _mesa_Uniform3iARB); 7349bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Uniform4iARB(exec, _mesa_Uniform4iARB); 7359bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Uniform1fvARB(exec, _mesa_Uniform1fvARB); 7369bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Uniform2fvARB(exec, _mesa_Uniform2fvARB); 7379bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Uniform3fvARB(exec, _mesa_Uniform3fvARB); 7389bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Uniform4fvARB(exec, _mesa_Uniform4fvARB); 7399bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Uniform1ivARB(exec, _mesa_Uniform1ivARB); 7409bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Uniform2ivARB(exec, _mesa_Uniform2ivARB); 7419bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Uniform3ivARB(exec, _mesa_Uniform3ivARB); 7429bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_Uniform4ivARB(exec, _mesa_Uniform4ivARB); 7439bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_UniformMatrix2fvARB(exec, _mesa_UniformMatrix2fvARB); 7449bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_UniformMatrix3fvARB(exec, _mesa_UniformMatrix3fvARB); 7459bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_UniformMatrix4fvARB(exec, _mesa_UniformMatrix4fvARB); 7469bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetObjectParameterfvARB(exec, _mesa_GetObjectParameterfvARB); 7479bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetObjectParameterivARB(exec, _mesa_GetObjectParameterivARB); 7489bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetInfoLogARB(exec, _mesa_GetInfoLogARB); 7499bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetAttachedObjectsARB(exec, _mesa_GetAttachedObjectsARB); 7509bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetUniformLocationARB(exec, _mesa_GetUniformLocationARB); 7519bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetActiveUniformARB(exec, _mesa_GetActiveUniformARB); 7529bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetUniformfvARB(exec, _mesa_GetUniformfvARB); 7539bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetUniformivARB(exec, _mesa_GetUniformivARB); 7549bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetShaderSourceARB(exec, _mesa_GetShaderSourceARB); 7559bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick#endif /* FEATURE_ARB_shader_objects */ 7569bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick 7579bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick#if FEATURE_ARB_vertex_shader 7589bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_BindAttribLocationARB(exec, _mesa_BindAttribLocationARB); 7599bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetActiveAttribARB(exec, _mesa_GetActiveAttribARB); 7609bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetAttribLocationARB(exec, _mesa_GetAttribLocationARB); 761ed5f790919da3ca982a0c3d2f0c705093ed6163fMichal Krol#endif /* FEATURE_ARB_vertex_shader */ 7627f752fed993e5e9423abac200dd59141edbada56Dave Airlie 7637f752fed993e5e9423abac200dd59141edbada56Dave Airlie /* GL_ATI_fragment_shader */ 7647f752fed993e5e9423abac200dd59141edbada56Dave Airlie#if FEATURE_ATI_fragment_shader 7659bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GenFragmentShadersATI(exec, _mesa_GenFragmentShadersATI); 7669bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_BindFragmentShaderATI(exec, _mesa_BindFragmentShaderATI); 7679bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_DeleteFragmentShaderATI(exec, _mesa_DeleteFragmentShaderATI); 7689bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_BeginFragmentShaderATI(exec, _mesa_BeginFragmentShaderATI); 7699bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_EndFragmentShaderATI(exec, _mesa_EndFragmentShaderATI); 7709bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_PassTexCoordATI(exec, _mesa_PassTexCoordATI); 7719bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_SampleMapATI(exec, _mesa_SampleMapATI); 7729bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ColorFragmentOp1ATI(exec, _mesa_ColorFragmentOp1ATI); 7739bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ColorFragmentOp2ATI(exec, _mesa_ColorFragmentOp2ATI); 7749bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_ColorFragmentOp3ATI(exec, _mesa_ColorFragmentOp3ATI); 7759bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_AlphaFragmentOp1ATI(exec, _mesa_AlphaFragmentOp1ATI); 7769bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_AlphaFragmentOp2ATI(exec, _mesa_AlphaFragmentOp2ATI); 7779bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_AlphaFragmentOp3ATI(exec, _mesa_AlphaFragmentOp3ATI); 7789bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_SetFragmentShaderConstantATI(exec, _mesa_SetFragmentShaderConstantATI); 7797f752fed993e5e9423abac200dd59141edbada56Dave Airlie#endif 780386e997f450649f105f0986c3b55faae42e4349cBrian Paul 781386e997f450649f105f0986c3b55faae42e4349cBrian Paul#if FEATURE_EXT_framebuffer_object 7829bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_IsRenderbufferEXT(exec, _mesa_IsRenderbufferEXT); 7839bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_BindRenderbufferEXT(exec, _mesa_BindRenderbufferEXT); 7849bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_DeleteRenderbuffersEXT(exec, _mesa_DeleteRenderbuffersEXT); 7859bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GenRenderbuffersEXT(exec, _mesa_GenRenderbuffersEXT); 7869bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_RenderbufferStorageEXT(exec, _mesa_RenderbufferStorageEXT); 7879bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetRenderbufferParameterivEXT(exec, _mesa_GetRenderbufferParameterivEXT); 7889bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_IsFramebufferEXT(exec, _mesa_IsFramebufferEXT); 7899bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_BindFramebufferEXT(exec, _mesa_BindFramebufferEXT); 7909bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_DeleteFramebuffersEXT(exec, _mesa_DeleteFramebuffersEXT); 7919bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GenFramebuffersEXT(exec, _mesa_GenFramebuffersEXT); 7929bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_CheckFramebufferStatusEXT(exec, _mesa_CheckFramebufferStatusEXT); 7939bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_FramebufferTexture1DEXT(exec, _mesa_FramebufferTexture1DEXT); 7949bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_FramebufferTexture2DEXT(exec, _mesa_FramebufferTexture2DEXT); 7959bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_FramebufferTexture3DEXT(exec, _mesa_FramebufferTexture3DEXT); 7969bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_FramebufferRenderbufferEXT(exec, _mesa_FramebufferRenderbufferEXT); 7979bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GetFramebufferAttachmentParameterivEXT(exec, _mesa_GetFramebufferAttachmentParameterivEXT); 7989bdfee3a470a535ebe31074651fbacf680bcea6aIan Romanick SET_GenerateMipmapEXT(exec, _mesa_GenerateMipmapEXT); 799386e997f450649f105f0986c3b55faae42e4349cBrian Paul#endif 800d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul} 801d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul 802d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul 8031207bf057aeea3376e5e0f03f789a5d67ed4d29dBrian Paul 804d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul/**********************************************************************/ 8056dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell/** \name State update logic */ 8066dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell/*@{*/ 807a852378a6289d154364dde440f89a39bbfc33e2dBrian Paul 8081e1aac034c986a08248861363c0baa27dc2ae2d5Keith Whitwell 80936a0a3252e1e20df69b53f70ba93bc74c4a4bf0eBrian Paulstatic void 8103abf746a7eae52220485cd031aecec2ca9e6103eKeith Whitwellupdate_separate_specular( GLcontext *ctx ) 81136a0a3252e1e20df69b53f70ba93bc74c4a4bf0eBrian Paul{ 8123abf746a7eae52220485cd031aecec2ca9e6103eKeith Whitwell if (NEED_SECONDARY_COLOR(ctx)) 8133abf746a7eae52220485cd031aecec2ca9e6103eKeith Whitwell ctx->_TriangleCaps |= DD_SEPARATE_SPECULAR; 8143abf746a7eae52220485cd031aecec2ca9e6103eKeith Whitwell else 8153abf746a7eae52220485cd031aecec2ca9e6103eKeith Whitwell ctx->_TriangleCaps &= ~DD_SEPARATE_SPECULAR; 81636a0a3252e1e20df69b53f70ba93bc74c4a4bf0eBrian Paul} 81736a0a3252e1e20df69b53f70ba93bc74c4a4bf0eBrian Paul 8180cb28418d06c30e431bdff515c1d36a812d5950dKeith Whitwell 819a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul/** 820a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul * Update state dependent on vertex arrays. 821a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul */ 822a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paulstatic void 823a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paulupdate_arrays( GLcontext *ctx ) 824a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul{ 825a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul GLuint i, min; 826a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul 827a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul /* find min of _MaxElement values for all enabled arrays */ 828a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul 829a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul /* 0 */ 8306d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paul if (ctx->VertexProgram._Enabled 831a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul && ctx->Array.VertexAttrib[VERT_ATTRIB_POS].Enabled) { 832a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul min = ctx->Array.VertexAttrib[VERT_ATTRIB_POS]._MaxElement; 833a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul } 834a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul else if (ctx->Array.Vertex.Enabled) { 835a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul min = ctx->Array.Vertex._MaxElement; 836a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul } 837a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul else { 838a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul /* can't draw anything without vertex positions! */ 839a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul min = 0; 840a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul } 841a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul 842a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul /* 1 */ 8436d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paul if (ctx->VertexProgram._Enabled 844a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul && ctx->Array.VertexAttrib[VERT_ATTRIB_WEIGHT].Enabled) { 845a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul min = MIN2(min, ctx->Array.VertexAttrib[VERT_ATTRIB_WEIGHT]._MaxElement); 846a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul } 847a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul /* no conventional vertex weight array */ 848a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul 849a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul /* 2 */ 8506d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paul if (ctx->VertexProgram._Enabled 851a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul && ctx->Array.VertexAttrib[VERT_ATTRIB_NORMAL].Enabled) { 852a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul min = MIN2(min, ctx->Array.VertexAttrib[VERT_ATTRIB_NORMAL]._MaxElement); 853a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul } 854a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul else if (ctx->Array.Normal.Enabled) { 855a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul min = MIN2(min, ctx->Array.Normal._MaxElement); 856a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul } 857a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul 858a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul /* 3 */ 8596d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paul if (ctx->VertexProgram._Enabled 860a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul && ctx->Array.VertexAttrib[VERT_ATTRIB_COLOR0].Enabled) { 861a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul min = MIN2(min, ctx->Array.VertexAttrib[VERT_ATTRIB_COLOR0]._MaxElement); 862a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul } 863a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul else if (ctx->Array.Color.Enabled) { 864a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul min = MIN2(min, ctx->Array.Color._MaxElement); 865a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul } 866a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul 867a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul /* 4 */ 8686d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paul if (ctx->VertexProgram._Enabled 869a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul && ctx->Array.VertexAttrib[VERT_ATTRIB_COLOR1].Enabled) { 870a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul min = MIN2(min, ctx->Array.VertexAttrib[VERT_ATTRIB_COLOR1]._MaxElement); 871a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul } 872a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul else if (ctx->Array.SecondaryColor.Enabled) { 873a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul min = MIN2(min, ctx->Array.SecondaryColor._MaxElement); 874a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul } 875a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul 876a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul /* 5 */ 8776d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paul if (ctx->VertexProgram._Enabled 878a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul && ctx->Array.VertexAttrib[VERT_ATTRIB_FOG].Enabled) { 879a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul min = MIN2(min, ctx->Array.VertexAttrib[VERT_ATTRIB_FOG]._MaxElement); 880a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul } 881a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul else if (ctx->Array.FogCoord.Enabled) { 882a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul min = MIN2(min, ctx->Array.FogCoord._MaxElement); 883a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul } 884a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul 885a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul /* 6 */ 8866d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paul if (ctx->VertexProgram._Enabled 887a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul && ctx->Array.VertexAttrib[VERT_ATTRIB_SIX].Enabled) { 888a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul min = MIN2(min, ctx->Array.VertexAttrib[VERT_ATTRIB_SIX]._MaxElement); 889a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul } 890a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul 891a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul /* 7 */ 8926d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paul if (ctx->VertexProgram._Enabled 893a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul && ctx->Array.VertexAttrib[VERT_ATTRIB_SEVEN].Enabled) { 894a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul min = MIN2(min, ctx->Array.VertexAttrib[VERT_ATTRIB_SEVEN]._MaxElement); 895a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul } 896a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul 897a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul /* 8..15 */ 898a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul for (i = VERT_ATTRIB_TEX0; i < VERT_ATTRIB_MAX; i++) { 8996d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paul if (ctx->VertexProgram._Enabled 900a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul && ctx->Array.VertexAttrib[i].Enabled) { 901a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul min = MIN2(min, ctx->Array.VertexAttrib[i]._MaxElement); 902a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul } 903a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul else if (i - VERT_ATTRIB_TEX0 < ctx->Const.MaxTextureCoordUnits 904a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul && ctx->Array.TexCoord[i - VERT_ATTRIB_TEX0].Enabled) { 905a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul min = MIN2(min, ctx->Array.TexCoord[i - VERT_ATTRIB_TEX0]._MaxElement); 906a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul } 907a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul } 908a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul 909a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul if (ctx->Array.Index.Enabled) { 910a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul min = MIN2(min, ctx->Array.Index._MaxElement); 911a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul } 912a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul 913a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul if (ctx->Array.EdgeFlag.Enabled) { 914a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul min = MIN2(min, ctx->Array.EdgeFlag._MaxElement); 915a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul } 916a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul 917a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul /* _MaxElement is one past the last legal array element */ 918a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul ctx->Array._MaxElement = min; 919a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul} 920a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul 921a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul 9226d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paul/** 9236d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paul * Update derived vertex/fragment program state. 9246d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paul */ 9256d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paulstatic void 9266d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paulupdate_program(GLcontext *ctx) 9276d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paul{ 9286d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paul /* For now, just set the _Enabled (really enabled) flags. 9296d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paul * In the future we may have to check other state to be sure we really 9306d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paul * have a runable program or shader. 9316d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paul */ 9326d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paul ctx->VertexProgram._Enabled = ctx->VertexProgram.Enabled 933de99760bf3511d05185799c4fb4347f9e5f420f4Brian Paul && ctx->VertexProgram.Current->Base.Instructions; 9346d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paul ctx->FragmentProgram._Enabled = ctx->FragmentProgram.Enabled 935de99760bf3511d05185799c4fb4347f9e5f420f4Brian Paul && ctx->FragmentProgram.Current->Base.Instructions; 9367f752fed993e5e9423abac200dd59141edbada56Dave Airlie ctx->ATIFragmentShader._Enabled = ctx->ATIFragmentShader.Enabled 937de99760bf3511d05185799c4fb4347f9e5f420f4Brian Paul && ctx->ATIFragmentShader.Current->Base.Instructions; 93847b29f511a8e917c65536fde90397d54d2ad23d3Keith Whitwell 93947b29f511a8e917c65536fde90397d54d2ad23d3Keith Whitwell ctx->FragmentProgram._Current = ctx->FragmentProgram.Current; 94047b29f511a8e917c65536fde90397d54d2ad23d3Keith Whitwell ctx->FragmentProgram._Active = ctx->FragmentProgram._Enabled; 94147b29f511a8e917c65536fde90397d54d2ad23d3Keith Whitwell 94247b29f511a8e917c65536fde90397d54d2ad23d3Keith Whitwell if (ctx->_MaintainTexEnvProgram && !ctx->FragmentProgram._Enabled) { 943276330b2412910777f7016f427909085f02acbb8Keith Whitwell if (!ctx->_TexEnvProgram) 944276330b2412910777f7016f427909085f02acbb8Keith Whitwell ctx->_TexEnvProgram = (struct fragment_program *) 945276330b2412910777f7016f427909085f02acbb8Keith Whitwell ctx->Driver.NewProgram(ctx, GL_FRAGMENT_PROGRAM_ARB, 0); 946276330b2412910777f7016f427909085f02acbb8Keith Whitwell 947276330b2412910777f7016f427909085f02acbb8Keith Whitwell ctx->FragmentProgram._Current = ctx->_TexEnvProgram; 94847b29f511a8e917c65536fde90397d54d2ad23d3Keith Whitwell ctx->FragmentProgram._Active = GL_TRUE; 94947b29f511a8e917c65536fde90397d54d2ad23d3Keith Whitwell } 9506d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paul} 9516d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paul 952a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul 95367742383e87734130e35d08d7c63c75b9adcf655Brian Paul/** 9546dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell * If __GLcontextRec::NewState is non-zero then this function \b must be called 9556dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell * before rendering any primitive. Basically, function pointers and 9566dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell * miscellaneous flags are updated to reflect the current state of the state 9576dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell * machine. 958cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell * 95967742383e87734130e35d08d7c63c75b9adcf655Brian Paul * Calls dd_function_table::UpdateState to perform any internal state 96067742383e87734130e35d08d7c63c75b9adcf655Brian Paul * management necessary. 9616dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell * 9626dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell * \sa _mesa_update_modelview_project(), _mesa_update_texture(), 96367742383e87734130e35d08d7c63c75b9adcf655Brian Paul * _mesa_update_buffer_bounds(), _mesa_update_polygon(), 96467742383e87734130e35d08d7c63c75b9adcf655Brian Paul * _mesa_update_lighting() and _mesa_update_tnl_spaces(). 9651e1aac034c986a08248861363c0baa27dc2ae2d5Keith Whitwell */ 96667742383e87734130e35d08d7c63c75b9adcf655Brian Paulvoid 96767742383e87734130e35d08d7c63c75b9adcf655Brian Paul_mesa_update_state( GLcontext *ctx ) 9681e1aac034c986a08248861363c0baa27dc2ae2d5Keith Whitwell{ 9693abf746a7eae52220485cd031aecec2ca9e6103eKeith Whitwell GLuint new_state = ctx->NewState; 9701e1aac034c986a08248861363c0baa27dc2ae2d5Keith Whitwell 9711e1aac034c986a08248861363c0baa27dc2ae2d5Keith Whitwell if (MESA_VERBOSE & VERBOSE_STATE) 972306d3fcdbad523428501833405e47e9897896defKeith Whitwell _mesa_print_state("_mesa_update_state", new_state); 9731e1aac034c986a08248861363c0baa27dc2ae2d5Keith Whitwell 9746d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paul if (new_state & _NEW_PROGRAM) 9756d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paul update_program( ctx ); 9766d460af6af77a0d5a5b568bcd6094b98e249ba93Brian Paul 9776dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell if (new_state & (_NEW_MODELVIEW|_NEW_PROJECTION)) 9786dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell _mesa_update_modelview_project( ctx, new_state ); 9791e1aac034c986a08248861363c0baa27dc2ae2d5Keith Whitwell 9803abf746a7eae52220485cd031aecec2ca9e6103eKeith Whitwell if (new_state & (_NEW_PROGRAM|_NEW_TEXTURE|_NEW_TEXTURE_MATRIX)) 9816dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell _mesa_update_texture( ctx, new_state ); 982d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul 983e4b2356c07d31fbeeabb13b2fb47db703b473080Brian Paul if (new_state & (_NEW_BUFFERS | _NEW_COLOR | _NEW_PIXEL)) 984e4b2356c07d31fbeeabb13b2fb47db703b473080Brian Paul _mesa_update_framebuffer(ctx); 985e4b2356c07d31fbeeabb13b2fb47db703b473080Brian Paul 98652f686c48080cec9a26aa23d16bc14bd3d302d70Brian Paul if (new_state & (_NEW_SCISSOR | _NEW_BUFFERS | _NEW_VIEWPORT)) 98767742383e87734130e35d08d7c63c75b9adcf655Brian Paul _mesa_update_draw_buffer_bounds( ctx ); 988d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul 989dfe7aedf845ce9117065c6cee2146df7eee1c0faBrian Paul if (new_state & _NEW_POINT) 990dfe7aedf845ce9117065c6cee2146df7eee1c0faBrian Paul _mesa_update_point( ctx ); 991dfe7aedf845ce9117065c6cee2146df7eee1c0faBrian Paul 9925e3bc0c2a2bcdf59949410f94c9b705fc1281ce8Jouk Jansen if (new_state & _NEW_POLYGON) 9936dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell _mesa_update_polygon( ctx ); 994d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul 9955e3bc0c2a2bcdf59949410f94c9b705fc1281ce8Jouk Jansen if (new_state & _NEW_LIGHT) 99608836341788a9f9d638d9dc8328510ccd18ddeb5Brian Paul _mesa_update_lighting( ctx ); 997d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul 99842c34efd23d7ad05df9f3c71f7d52dd259e179d8Brian Paul if (new_state & _NEW_STENCIL) 99942c34efd23d7ad05df9f3c71f7d52dd259e179d8Brian Paul _mesa_update_stencil( ctx ); 100042c34efd23d7ad05df9f3c71f7d52dd259e179d8Brian Paul 10019c7b81697b2a381d7083e8e4c52f919f36ea9fa1Brian Paul if (new_state & _IMAGE_NEW_TRANSFER_STATE) 10029c7b81697b2a381d7083e8e4c52f919f36ea9fa1Brian Paul _mesa_update_pixel( ctx, new_state ); 1003d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul 10043abf746a7eae52220485cd031aecec2ca9e6103eKeith Whitwell if (new_state & _DD_NEW_SEPARATE_SPECULAR) 10053abf746a7eae52220485cd031aecec2ca9e6103eKeith Whitwell update_separate_specular( ctx ); 10060cb28418d06c30e431bdff515c1d36a812d5950dKeith Whitwell 10073abf746a7eae52220485cd031aecec2ca9e6103eKeith Whitwell if (new_state & (_NEW_ARRAY | _NEW_PROGRAM)) 1008a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul update_arrays( ctx ); 1009a2b9bad251b058f6255fa037b842c5465c0609a2Brian Paul 101047b29f511a8e917c65536fde90397d54d2ad23d3Keith Whitwell if (ctx->_MaintainTexEnvProgram) { 1011276330b2412910777f7016f427909085f02acbb8Keith Whitwell if (new_state & (_NEW_TEXTURE | _DD_NEW_SEPARATE_SPECULAR | _NEW_FOG)) 101247b29f511a8e917c65536fde90397d54d2ad23d3Keith Whitwell _mesa_UpdateTexEnvProgram(ctx); 101347b29f511a8e917c65536fde90397d54d2ad23d3Keith Whitwell } 101447b29f511a8e917c65536fde90397d54d2ad23d3Keith Whitwell 10159c7b81697b2a381d7083e8e4c52f919f36ea9fa1Brian Paul /* ctx->_NeedEyeCoords is now up to date. 10161e1aac034c986a08248861363c0baa27dc2ae2d5Keith Whitwell * 1017cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell * If the truth value of this variable has changed, update for the 1018cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell * new lighting space and recompute the positions of lights and the 10191e1aac034c986a08248861363c0baa27dc2ae2d5Keith Whitwell * normal transform. 10205e3bc0c2a2bcdf59949410f94c9b705fc1281ce8Jouk Jansen * 10211e1aac034c986a08248861363c0baa27dc2ae2d5Keith Whitwell * If the lighting space hasn't changed, may still need to recompute 102222144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes * light positions & normal transforms for other reasons. 10231e1aac034c986a08248861363c0baa27dc2ae2d5Keith Whitwell */ 10246dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell if (new_state & _MESA_NEW_NEED_EYE_COORDS) 10256dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell _mesa_update_tnl_spaces( ctx, new_state ); 10261e1aac034c986a08248861363c0baa27dc2ae2d5Keith Whitwell 102723caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell /* 1028a999e809af97e32cc1198ca816dcacc735a0a4afBrian Paul * Give the driver a chance to act upon the new_state flags. 1029a999e809af97e32cc1198ca816dcacc735a0a4afBrian Paul * The driver might plug in different span functions, for example. 1030a999e809af97e32cc1198ca816dcacc735a0a4afBrian Paul * Also, this is where the driver can invalidate the state of any 1031a999e809af97e32cc1198ca816dcacc735a0a4afBrian Paul * active modules (such as swrast_setup, swrast, tnl, etc). 1032cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell * 1033cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell * Set ctx->NewState to zero to avoid recursion if 1034cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell * Driver.UpdateState() has to call FLUSH_VERTICES(). (fixed?) 103523caf20169ac38436ee9c13914f1d6aa7cf6bb5eKeith Whitwell */ 10363abf746a7eae52220485cd031aecec2ca9e6103eKeith Whitwell new_state = ctx->NewState; 1037d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul ctx->NewState = 0; 1038cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell ctx->Driver.UpdateState(ctx, new_state); 10392448fc7deeaa870d879de17158f243f239c05b15Keith Whitwell ctx->Array.NewState = 0; 1040d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul} 10410cb28418d06c30e431bdff515c1d36a812d5950dKeith Whitwell 10426dc85575000127630489b407c50a4b3ea87c9acbKeith Whitwell/*@}*/ 1043