light.h revision af69d88d
17117f1b4Smrg/*
27117f1b4Smrg * Mesa 3-D graphics library
37117f1b4Smrg *
44a49301eSmrg * Copyright (C) 1999-2008  Brian Paul   All Rights Reserved.
54a49301eSmrg * Copyright (C) 2009  VMware, Inc.  All Rights Reserved.
67117f1b4Smrg *
77117f1b4Smrg * Permission is hereby granted, free of charge, to any person obtaining a
87117f1b4Smrg * copy of this software and associated documentation files (the "Software"),
97117f1b4Smrg * to deal in the Software without restriction, including without limitation
107117f1b4Smrg * the rights to use, copy, modify, merge, publish, distribute, sublicense,
117117f1b4Smrg * and/or sell copies of the Software, and to permit persons to whom the
127117f1b4Smrg * Software is furnished to do so, subject to the following conditions:
137117f1b4Smrg *
147117f1b4Smrg * The above copyright notice and this permission notice shall be included
157117f1b4Smrg * in all copies or substantial portions of the Software.
167117f1b4Smrg *
177117f1b4Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
187117f1b4Smrg * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
197117f1b4Smrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
20af69d88dSmrg * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
21af69d88dSmrg * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
22af69d88dSmrg * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
23af69d88dSmrg * OTHER DEALINGS IN THE SOFTWARE.
247117f1b4Smrg */
257117f1b4Smrg
267117f1b4Smrg
277117f1b4Smrg#ifndef LIGHT_H
287117f1b4Smrg#define LIGHT_H
297117f1b4Smrg
307117f1b4Smrg
313464ebd5Sriastradh#include "glheader.h"
323464ebd5Sriastradh
333464ebd5Sriastradhstruct gl_context;
343464ebd5Sriastradhstruct gl_light;
353464ebd5Sriastradhstruct gl_material;
367117f1b4Smrg
377117f1b4Smrgextern void GLAPIENTRY
387117f1b4Smrg_mesa_ShadeModel( GLenum mode );
397117f1b4Smrg
404a49301eSmrgextern void GLAPIENTRY
41af69d88dSmrg_mesa_ProvokingVertex(GLenum mode);
424a49301eSmrg
434a49301eSmrg
447117f1b4Smrgextern void GLAPIENTRY
457117f1b4Smrg_mesa_ColorMaterial( GLenum face, GLenum mode );
467117f1b4Smrg
477117f1b4Smrgextern void GLAPIENTRY
487117f1b4Smrg_mesa_Lightf( GLenum light, GLenum pname, GLfloat param );
497117f1b4Smrg
507117f1b4Smrgextern void GLAPIENTRY
517117f1b4Smrg_mesa_Lightfv( GLenum light, GLenum pname, const GLfloat *params );
527117f1b4Smrg
537117f1b4Smrgextern void GLAPIENTRY
547117f1b4Smrg_mesa_Lightiv( GLenum light, GLenum pname, const GLint *params );
557117f1b4Smrg
567117f1b4Smrgextern void GLAPIENTRY
577117f1b4Smrg_mesa_Lighti( GLenum light, GLenum pname, GLint param );
587117f1b4Smrg
597117f1b4Smrgextern void GLAPIENTRY
607117f1b4Smrg_mesa_LightModelf( GLenum pname, GLfloat param );
617117f1b4Smrg
627117f1b4Smrgextern void GLAPIENTRY
637117f1b4Smrg_mesa_LightModelfv( GLenum pname, const GLfloat *params );
647117f1b4Smrg
657117f1b4Smrgextern void GLAPIENTRY
667117f1b4Smrg_mesa_LightModeli( GLenum pname, GLint param );
677117f1b4Smrg
687117f1b4Smrgextern void GLAPIENTRY
697117f1b4Smrg_mesa_LightModeliv( GLenum pname, const GLint *params );
707117f1b4Smrg
717117f1b4Smrgextern void GLAPIENTRY
727117f1b4Smrg_mesa_GetLightfv( GLenum light, GLenum pname, GLfloat *params );
737117f1b4Smrg
747117f1b4Smrgextern void GLAPIENTRY
757117f1b4Smrg_mesa_GetLightiv( GLenum light, GLenum pname, GLint *params );
767117f1b4Smrg
777117f1b4Smrgextern void GLAPIENTRY
787117f1b4Smrg_mesa_GetMaterialfv( GLenum face, GLenum pname, GLfloat *params );
797117f1b4Smrg
807117f1b4Smrgextern void GLAPIENTRY
817117f1b4Smrg_mesa_GetMaterialiv( GLenum face, GLenum pname, GLint *params );
827117f1b4Smrg
837117f1b4Smrg
847117f1b4Smrgextern void
853464ebd5Sriastradh_mesa_light(struct gl_context *ctx, GLuint lnum, GLenum pname, const GLfloat *params);
867117f1b4Smrg
877117f1b4Smrg
883464ebd5Sriastradhextern GLuint _mesa_material_bitmask( struct gl_context *ctx,
897117f1b4Smrg                                      GLenum face, GLenum pname,
907117f1b4Smrg                                      GLuint legal,
917117f1b4Smrg                                      const char * );
927117f1b4Smrg
933464ebd5Sriastradhextern void _mesa_update_lighting( struct gl_context *ctx );
947117f1b4Smrg
953464ebd5Sriastradhextern void _mesa_update_tnl_spaces( struct gl_context *ctx, GLuint new_state );
967117f1b4Smrg
973464ebd5Sriastradhextern void _mesa_update_material( struct gl_context *ctx,
987117f1b4Smrg                                   GLuint bitmask );
997117f1b4Smrg
1003464ebd5Sriastradhextern void _mesa_update_color_material( struct gl_context *ctx,
1017117f1b4Smrg                                         const GLfloat rgba[4] );
1027117f1b4Smrg
1033464ebd5Sriastradhextern void _mesa_init_lighting( struct gl_context *ctx );
1047117f1b4Smrg
1053464ebd5Sriastradhextern void _mesa_free_lighting_data( struct gl_context *ctx );
1067117f1b4Smrg
1073464ebd5Sriastradhextern void _mesa_allow_light_in_model( struct gl_context *ctx, GLboolean flag );
1087117f1b4Smrg
1097117f1b4Smrg#endif
110