1c6511ab950e2865e606ff13ce87f0ffc782c57adBrian Paul/*
2c6511ab950e2865e606ff13ce87f0ffc782c57adBrian Paul * Mesa 3-D graphics library
3048412473bda3db3e58b9840de5ef82d2ecce3c0Brian * Version:  6.5.3
4c6511ab950e2865e606ff13ce87f0ffc782c57adBrian Paul *
5048412473bda3db3e58b9840de5ef82d2ecce3c0Brian * Copyright (C) 1999-2007  Brian Paul   All Rights Reserved.
6c6511ab950e2865e606ff13ce87f0ffc782c57adBrian Paul *
7c6511ab950e2865e606ff13ce87f0ffc782c57adBrian Paul * Permission is hereby granted, free of charge, to any person obtaining a
8c6511ab950e2865e606ff13ce87f0ffc782c57adBrian Paul * copy of this software and associated documentation files (the "Software"),
9c6511ab950e2865e606ff13ce87f0ffc782c57adBrian Paul * to deal in the Software without restriction, including without limitation
10c6511ab950e2865e606ff13ce87f0ffc782c57adBrian Paul * the rights to use, copy, modify, merge, publish, distribute, sublicense,
11c6511ab950e2865e606ff13ce87f0ffc782c57adBrian Paul * and/or sell copies of the Software, and to permit persons to whom the
12c6511ab950e2865e606ff13ce87f0ffc782c57adBrian Paul * Software is furnished to do so, subject to the following conditions:
13c6511ab950e2865e606ff13ce87f0ffc782c57adBrian Paul *
14c6511ab950e2865e606ff13ce87f0ffc782c57adBrian Paul * The above copyright notice and this permission notice shall be included
15c6511ab950e2865e606ff13ce87f0ffc782c57adBrian Paul * in all copies or substantial portions of the Software.
16c6511ab950e2865e606ff13ce87f0ffc782c57adBrian Paul *
17c6511ab950e2865e606ff13ce87f0ffc782c57adBrian Paul * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
18c6511ab950e2865e606ff13ce87f0ffc782c57adBrian Paul * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19c6511ab950e2865e606ff13ce87f0ffc782c57adBrian Paul * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
20c6511ab950e2865e606ff13ce87f0ffc782c57adBrian Paul * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
21c6511ab950e2865e606ff13ce87f0ffc782c57adBrian Paul * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
22c6511ab950e2865e606ff13ce87f0ffc782c57adBrian Paul * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23c6511ab950e2865e606ff13ce87f0ffc782c57adBrian Paul */
24c6511ab950e2865e606ff13ce87f0ffc782c57adBrian Paul
25c6511ab950e2865e606ff13ce87f0ffc782c57adBrian Paul
26c6511ab950e2865e606ff13ce87f0ffc782c57adBrian Paul#ifndef PROGRAMOPT_H
27c6511ab950e2865e606ff13ce87f0ffc782c57adBrian Paul#define PROGRAMOPT_H 1
28c6511ab950e2865e606ff13ce87f0ffc782c57adBrian Paul
29db0c6810f9cd1705fe27231ca7f8dcf0c4d6874dVinson Lee#include "main/mtypes.h"
30c6511ab950e2865e606ff13ce87f0ffc782c57adBrian Paul
31c6511ab950e2865e606ff13ce87f0ffc782c57adBrian Paulextern void
32f9995b30756140724f41daf963fa06167912be7fKristian Høgsberg_mesa_insert_mvp_code(struct gl_context *ctx, struct gl_vertex_program *vprog);
33c6511ab950e2865e606ff13ce87f0ffc782c57adBrian Paul
34c6511ab950e2865e606ff13ce87f0ffc782c57adBrian Paulextern void
354d203a01e20dedcfaab09c18922e8ed9dcb39729Ian Romanick_mesa_append_fog_code(struct gl_context *ctx,
364d203a01e20dedcfaab09c18922e8ed9dcb39729Ian Romanick		      struct gl_fragment_program *fprog, GLenum fog_mode,
374d203a01e20dedcfaab09c18922e8ed9dcb39729Ian Romanick		      GLboolean saturate);
38c6511ab950e2865e606ff13ce87f0ffc782c57adBrian Paul
39048412473bda3db3e58b9840de5ef82d2ecce3c0Brianextern void
40048412473bda3db3e58b9840de5ef82d2ecce3c0Brian_mesa_count_texture_indirections(struct gl_program *prog);
41048412473bda3db3e58b9840de5ef82d2ecce3c0Brian
42048412473bda3db3e58b9840de5ef82d2ecce3c0Brianextern void
43048412473bda3db3e58b9840de5ef82d2ecce3c0Brian_mesa_count_texture_instructions(struct gl_program *prog);
44048412473bda3db3e58b9840de5ef82d2ecce3c0Brian
456ca948a303e1af7ae66ea7082af741f6880887f2Brian Paulextern void
46b4026d9be828bd0b6f60158456edf24994efb053Brian Paul_mesa_remove_output_reads(struct gl_program *prog, gl_register_file type);
47c6511ab950e2865e606ff13ce87f0ffc782c57adBrian Paul
48c7aee65bb96df3f8e8421b5125dca84c028e9073Brian Paulextern void
49f9995b30756140724f41daf963fa06167912be7fKristian Høgsberg_mesa_nop_fragment_program(struct gl_context *ctx, struct gl_fragment_program *prog);
50c7aee65bb96df3f8e8421b5125dca84c028e9073Brian Paul
51c7aee65bb96df3f8e8421b5125dca84c028e9073Brian Paulextern void
52f9995b30756140724f41daf963fa06167912be7fKristian Høgsberg_mesa_nop_vertex_program(struct gl_context *ctx, struct gl_vertex_program *prog);
53c7aee65bb96df3f8e8421b5125dca84c028e9073Brian Paul
54c7aee65bb96df3f8e8421b5125dca84c028e9073Brian Paul
55c6511ab950e2865e606ff13ce87f0ffc782c57adBrian Paul#endif /* PROGRAMOPT_H */
56