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