Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

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