1d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul/* 2d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul * Mesa 3-D graphics library 36d4d51d647c27288aa625560bc080231099c0b01Brian Paul * Version: 7.3 45e3bc0c2a2bcdf59949410f94c9b705fc1281ce8Jouk Jansen * 5b36e6f0baf64491772b8e1a1cddf68a7dcf8ee22Brian Paul * Copyright (C) 1999-2008 Brian Paul All Rights Reserved. 65e3bc0c2a2bcdf59949410f94c9b705fc1281ce8Jouk Jansen * 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: 135e3bc0c2a2bcdf59949410f94c9b705fc1281ce8Jouk Jansen * 14d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul * The above copyright notice and this permission notice shall be included 15d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul * in all copies or substantial portions of the Software. 165e3bc0c2a2bcdf59949410f94c9b705fc1281ce8Jouk Jansen * 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 26d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul#ifndef STATE_H 27d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul#define STATE_H 28d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul 295e3bc0c2a2bcdf59949410f94c9b705fc1281ce8Jouk Jansen#include "mtypes.h" 30d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul 315fb84d263b8068467a2429942ecf113a0a4c8a60Brian Paulextern void 32f9995b30756140724f41daf963fa06167912be7fKristian Høgsberg_mesa_update_state(struct gl_context *ctx); 335fb84d263b8068467a2429942ecf113a0a4c8a60Brian Paul 345ac93f86210eb5c2a8dee74ec19b0ecd54376863Keith Whitwell/* As above but can only be called between _mesa_lock_context_textures() and 355ac93f86210eb5c2a8dee74ec19b0ecd54376863Keith Whitwell * _mesa_unlock_context_textures(). 365ac93f86210eb5c2a8dee74ec19b0ecd54376863Keith Whitwell */ 375ac93f86210eb5c2a8dee74ec19b0ecd54376863Keith Whitwellextern void 38f9995b30756140724f41daf963fa06167912be7fKristian Høgsberg_mesa_update_state_locked(struct gl_context *ctx); 396d4d51d647c27288aa625560bc080231099c0b01Brian Paul 406d4d51d647c27288aa625560bc080231099c0b01Brian Paul 416d4d51d647c27288aa625560bc080231099c0b01Brian Paulextern void 42dca6a28a14f22d77273d79d44f57b0d853c0242dMathias Fröhlich_mesa_set_varying_vp_inputs(struct gl_context *ctx, GLbitfield64 varying_inputs); 436d4d51d647c27288aa625560bc080231099c0b01Brian Paul 446d4d51d647c27288aa625560bc080231099c0b01Brian Paul 456d4d51d647c27288aa625560bc080231099c0b01Brian Paulextern void 46f9995b30756140724f41daf963fa06167912be7fKristian Høgsberg_mesa_set_vp_override(struct gl_context *ctx, GLboolean flag); 475ac93f86210eb5c2a8dee74ec19b0ecd54376863Keith Whitwell 48d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul 49decc6e2a32ef49e673c081f30e19b8970155d887Brian Paul/** 50decc6e2a32ef49e673c081f30e19b8970155d887Brian Paul * Is the secondary color needed? 51decc6e2a32ef49e673c081f30e19b8970155d887Brian Paul */ 529520f483b8f1e45fa474674b415554988de5d8d3Brian Paulstatic inline GLboolean 53decc6e2a32ef49e673c081f30e19b8970155d887Brian Paul_mesa_need_secondary_color(const struct gl_context *ctx) 54decc6e2a32ef49e673c081f30e19b8970155d887Brian Paul{ 55decc6e2a32ef49e673c081f30e19b8970155d887Brian Paul if (ctx->Light.Enabled && 56decc6e2a32ef49e673c081f30e19b8970155d887Brian Paul ctx->Light.Model.ColorControl == GL_SEPARATE_SPECULAR_COLOR) 57decc6e2a32ef49e673c081f30e19b8970155d887Brian Paul return GL_TRUE; 58decc6e2a32ef49e673c081f30e19b8970155d887Brian Paul 59decc6e2a32ef49e673c081f30e19b8970155d887Brian Paul if (ctx->Fog.ColorSumEnabled) 60decc6e2a32ef49e673c081f30e19b8970155d887Brian Paul return GL_TRUE; 61decc6e2a32ef49e673c081f30e19b8970155d887Brian Paul 62decc6e2a32ef49e673c081f30e19b8970155d887Brian Paul if (ctx->VertexProgram._Current && 63decc6e2a32ef49e673c081f30e19b8970155d887Brian Paul (ctx->VertexProgram._Current != ctx->VertexProgram._TnlProgram) && 64decc6e2a32ef49e673c081f30e19b8970155d887Brian Paul (ctx->VertexProgram._Current->Base.InputsRead & VERT_BIT_COLOR1)) 65decc6e2a32ef49e673c081f30e19b8970155d887Brian Paul return GL_TRUE; 66decc6e2a32ef49e673c081f30e19b8970155d887Brian Paul 67decc6e2a32ef49e673c081f30e19b8970155d887Brian Paul if (ctx->FragmentProgram._Current && 68decc6e2a32ef49e673c081f30e19b8970155d887Brian Paul (ctx->FragmentProgram._Current != ctx->FragmentProgram._TexEnvProgram) && 69decc6e2a32ef49e673c081f30e19b8970155d887Brian Paul (ctx->FragmentProgram._Current->Base.InputsRead & FRAG_BIT_COL1)) 70decc6e2a32ef49e673c081f30e19b8970155d887Brian Paul return GL_TRUE; 71decc6e2a32ef49e673c081f30e19b8970155d887Brian Paul 72decc6e2a32ef49e673c081f30e19b8970155d887Brian Paul return GL_FALSE; 73decc6e2a32ef49e673c081f30e19b8970155d887Brian Paul} 74decc6e2a32ef49e673c081f30e19b8970155d887Brian Paul 75d0a3ea051a3825441cdc97a82fa9a9c6e7e83087Brian Paul#endif 76