Subversion Repositories Kolibri OS

Rev

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

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