1f069e5e412eebabe64286d35598173caac5c132eKeith Whitwell/* 2f069e5e412eebabe64286d35598173caac5c132eKeith Whitwell * Mesa 3-D graphics library 36dd98e9853a6984150aa47467112e016c40a4ab4Brian * Version: 7.1 4f069e5e412eebabe64286d35598173caac5c132eKeith Whitwell * 56dd98e9853a6984150aa47467112e016c40a4ab4Brian * Copyright (C) 2007 Tungsten Graphics All Rights Reserved. 6f069e5e412eebabe64286d35598173caac5c132eKeith Whitwell * 7f069e5e412eebabe64286d35598173caac5c132eKeith Whitwell * Permission is hereby granted, free of charge, to any person obtaining a 8f069e5e412eebabe64286d35598173caac5c132eKeith Whitwell * copy of this software and associated documentation files (the "Software"), 9f069e5e412eebabe64286d35598173caac5c132eKeith Whitwell * to deal in the Software without restriction, including without limitation 10f069e5e412eebabe64286d35598173caac5c132eKeith Whitwell * the rights to use, copy, modify, merge, publish, distribute, sublicense, 11f069e5e412eebabe64286d35598173caac5c132eKeith Whitwell * and/or sell copies of the Software, and to permit persons to whom the 12f069e5e412eebabe64286d35598173caac5c132eKeith Whitwell * Software is furnished to do so, subject to the following conditions: 13f069e5e412eebabe64286d35598173caac5c132eKeith Whitwell * 14f069e5e412eebabe64286d35598173caac5c132eKeith Whitwell * The above copyright notice and this permission notice shall be included 15f069e5e412eebabe64286d35598173caac5c132eKeith Whitwell * in all copies or substantial portions of the Software. 16f069e5e412eebabe64286d35598173caac5c132eKeith Whitwell * 17f069e5e412eebabe64286d35598173caac5c132eKeith Whitwell * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 18f069e5e412eebabe64286d35598173caac5c132eKeith Whitwell * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19f069e5e412eebabe64286d35598173caac5c132eKeith Whitwell * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 205f534aa1e2c53360bb1ae42fb196e41aa29d0d3dKeith Whitwell * TUNGSTEN GRAPHICS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 215f534aa1e2c53360bb1ae42fb196e41aa29d0d3dKeith Whitwell * WHETHER IN 22f069e5e412eebabe64286d35598173caac5c132eKeith Whitwell * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 23f069e5e412eebabe64286d35598173caac5c132eKeith Whitwell * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 24f069e5e412eebabe64286d35598173caac5c132eKeith Whitwell */ 25f069e5e412eebabe64286d35598173caac5c132eKeith Whitwell 26f069e5e412eebabe64286d35598173caac5c132eKeith Whitwell/** 27f069e5e412eebabe64286d35598173caac5c132eKeith Whitwell * \file t_vp_build.c 28f069e5e412eebabe64286d35598173caac5c132eKeith Whitwell * Create a vertex program to execute the current fixed function T&L pipeline. 29f069e5e412eebabe64286d35598173caac5c132eKeith Whitwell * \author Keith Whitwell 30f069e5e412eebabe64286d35598173caac5c132eKeith Whitwell */ 31f069e5e412eebabe64286d35598173caac5c132eKeith Whitwell 32f069e5e412eebabe64286d35598173caac5c132eKeith Whitwell 33bbd287103dad776d8a45c87c4e51fbc26d9b80d5Brian Paul#include "main/glheader.h" 3432ef6e75839d6be283e034436e5dd34eabb67958Keith Whitwell#include "main/ffvertex_prog.h" 35176a8359b93badfff3b6f6e78df974f870fbf7aaVinson Lee#include "main/mtypes.h" 36f069e5e412eebabe64286d35598173caac5c132eKeith Whitwell#include "t_vp_build.h" 37f069e5e412eebabe64286d35598173caac5c132eKeith Whitwell 38f069e5e412eebabe64286d35598173caac5c132eKeith Whitwell 396dd98e9853a6984150aa47467112e016c40a4ab4Brian/** 4032ef6e75839d6be283e034436e5dd34eabb67958Keith Whitwell * XXX This should go away someday, but still referenced by some drivers... 41f069e5e412eebabe64286d35598173caac5c132eKeith Whitwell */ 42f9995b30756140724f41daf963fa06167912be7fKristian Høgsbergvoid _tnl_UpdateFixedFunctionProgram( struct gl_context *ctx ) 43a8534885efb13ec7f071192c1504513cd90d07deKeith Whitwell{ 44122629f27925a9dc50029bebc5079f87f416a7e1Brian Paul const struct gl_vertex_program *prev = ctx->VertexProgram._Current; 45f069e5e412eebabe64286d35598173caac5c132eKeith Whitwell 46dba21ed913da2222e3b55fc8ba724ca93acbabf1Nicolai Haehnle if (!ctx->VertexProgram._Current || 47dba21ed913da2222e3b55fc8ba724ca93acbabf1Nicolai Haehnle ctx->VertexProgram._Current == ctx->VertexProgram._TnlProgram) { 4832ef6e75839d6be283e034436e5dd34eabb67958Keith Whitwell ctx->VertexProgram._Current 4932ef6e75839d6be283e034436e5dd34eabb67958Keith Whitwell = ctx->VertexProgram._TnlProgram 5032ef6e75839d6be283e034436e5dd34eabb67958Keith Whitwell = _mesa_get_fixed_func_vertex_program(ctx); 51a8534885efb13ec7f071192c1504513cd90d07deKeith Whitwell } 52a8534885efb13ec7f071192c1504513cd90d07deKeith Whitwell 53c3626a91cee5034528f3f92c802a8e5947ea5f92Keith Whitwell /* Tell the driver about the change. Could define a new target for 54c3626a91cee5034528f3f92c802a8e5947ea5f92Keith Whitwell * this? 55a8534885efb13ec7f071192c1504513cd90d07deKeith Whitwell */ 56a328e469d328f8b6fd5afdfc21d576fa1a2c43fcBrian if (ctx->VertexProgram._Current != prev && ctx->Driver.BindProgram) { 57122629f27925a9dc50029bebc5079f87f416a7e1Brian Paul ctx->Driver.BindProgram(ctx, GL_VERTEX_PROGRAM_ARB, 58122629f27925a9dc50029bebc5079f87f416a7e1Brian Paul (struct gl_program *) ctx->VertexProgram._Current); 59a328e469d328f8b6fd5afdfc21d576fa1a2c43fcBrian } 60a8534885efb13ec7f071192c1504513cd90d07deKeith Whitwell} 61