1bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez/* 2bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez * Copyright (C) 2009 Francisco Jerez. 3bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez * All Rights Reserved. 4bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez * 5bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez * Permission is hereby granted, free of charge, to any person obtaining 6bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez * a copy of this software and associated documentation files (the 7bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez * "Software"), to deal in the Software without restriction, including 8bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez * without limitation the rights to use, copy, modify, merge, publish, 9bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez * distribute, sublicense, and/or sell copies of the Software, and to 10bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez * permit persons to whom the Software is furnished to do so, subject to 11bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez * the following conditions: 12bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez * 13bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez * The above copyright notice and this permission notice (including the 14bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez * next paragraph) shall be included in all copies or substantial 15bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez * portions of the Software. 16bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez * 17bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 18bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 19bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 20bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE 21bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 22bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 23bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 24bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez * 25bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez */ 26bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez 27bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez#ifndef __NV20_DRIVER_H__ 28bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez#define __NV20_DRIVER_H__ 29bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez 30bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerezenum { 31bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez NOUVEAU_STATE_TEX_SHADER = NUM_NOUVEAU_STATE, 32bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez NUM_NV20_STATE 33bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez}; 34bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez 35bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez#define NV20_TEXTURE_UNITS 4 36bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez 37bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez/* nv20_context.c */ 3856dcd011b5ec33190f268cf546a4c68f81f5ebd0Francisco Jerezextern const struct nouveau_driver nv20_driver; 39bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez 40bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez/* nv20_render.c */ 41bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerezvoid 42cdb38b5d3d1b93a90a91ad06c0f03efdfde6b525Francisco Jereznv20_vbo_init(struct gl_context *ctx); 43bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez 44bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerezvoid 45cdb38b5d3d1b93a90a91ad06c0f03efdfde6b525Francisco Jereznv20_vbo_destroy(struct gl_context *ctx); 46cdb38b5d3d1b93a90a91ad06c0f03efdfde6b525Francisco Jerez 47cdb38b5d3d1b93a90a91ad06c0f03efdfde6b525Francisco Jerezvoid 48cdb38b5d3d1b93a90a91ad06c0f03efdfde6b525Francisco Jereznv20_swtnl_init(struct gl_context *ctx); 49cdb38b5d3d1b93a90a91ad06c0f03efdfde6b525Francisco Jerez 50cdb38b5d3d1b93a90a91ad06c0f03efdfde6b525Francisco Jerezvoid 51cdb38b5d3d1b93a90a91ad06c0f03efdfde6b525Francisco Jereznv20_swtnl_destroy(struct gl_context *ctx); 52bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez 53bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez/* nv20_state_fb.c */ 54bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerezvoid 55f9995b30756140724f41daf963fa06167912be7fKristian Høgsbergnv20_emit_framebuffer(struct gl_context *ctx, int emit); 56bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez 57bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerezvoid 58f9995b30756140724f41daf963fa06167912be7fKristian Høgsbergnv20_emit_viewport(struct gl_context *ctx, int emit); 59bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez 60bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez/* nv20_state_polygon.c */ 61bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerezvoid 62f9995b30756140724f41daf963fa06167912be7fKristian Høgsbergnv20_emit_point_mode(struct gl_context *ctx, int emit); 63bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez 64bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez/* nv20_state_raster.c */ 65bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerezvoid 66f9995b30756140724f41daf963fa06167912be7fKristian Høgsbergnv20_emit_logic_opcode(struct gl_context *ctx, int emit); 67bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez 687269a30b86745a29bb575ce3545ab82e6514ce2aFrancisco Jerez/* nv20_state_frag.c */ 697269a30b86745a29bb575ce3545ab82e6514ce2aFrancisco Jerezvoid 70f9995b30756140724f41daf963fa06167912be7fKristian Høgsbergnv20_emit_tex_env(struct gl_context *ctx, int emit); 717269a30b86745a29bb575ce3545ab82e6514ce2aFrancisco Jerez 727269a30b86745a29bb575ce3545ab82e6514ce2aFrancisco Jerezvoid 73f9995b30756140724f41daf963fa06167912be7fKristian Høgsbergnv20_emit_frag(struct gl_context *ctx, int emit); 747269a30b86745a29bb575ce3545ab82e6514ce2aFrancisco Jerez 75bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez/* nv20_state_tex.c */ 76bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerezvoid 77f9995b30756140724f41daf963fa06167912be7fKristian Høgsbergnv20_emit_tex_gen(struct gl_context *ctx, int emit); 78c944fb5ffe7cf16154d6395001f43a6c965cab1fFrancisco Jerez 79c944fb5ffe7cf16154d6395001f43a6c965cab1fFrancisco Jerezvoid 80f9995b30756140724f41daf963fa06167912be7fKristian Høgsbergnv20_emit_tex_mat(struct gl_context *ctx, int emit); 811a812ab57a71d16e45ca44de7ae0570d2bd46674Francisco Jerez 821a812ab57a71d16e45ca44de7ae0570d2bd46674Francisco Jerezvoid 83f9995b30756140724f41daf963fa06167912be7fKristian Høgsbergnv20_emit_tex_obj(struct gl_context *ctx, int emit); 84bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez 85bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerezvoid 86f9995b30756140724f41daf963fa06167912be7fKristian Høgsbergnv20_emit_tex_shader(struct gl_context *ctx, int emit); 87bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez 88bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez/* nv20_state_tnl.c */ 89bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerezvoid 90f9995b30756140724f41daf963fa06167912be7fKristian Høgsbergnv20_emit_clip_plane(struct gl_context *ctx, int emit); 91bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez 92bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerezvoid 93f9995b30756140724f41daf963fa06167912be7fKristian Høgsbergnv20_emit_color_material(struct gl_context *ctx, int emit); 94bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez 95bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerezvoid 96f9995b30756140724f41daf963fa06167912be7fKristian Høgsbergnv20_emit_fog(struct gl_context *ctx, int emit); 97bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez 98bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerezvoid 99f9995b30756140724f41daf963fa06167912be7fKristian Høgsbergnv20_emit_light_model(struct gl_context *ctx, int emit); 100bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez 101bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerezvoid 102f9995b30756140724f41daf963fa06167912be7fKristian Høgsbergnv20_emit_light_source(struct gl_context *ctx, int emit); 103bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez 104bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerezvoid 105f9995b30756140724f41daf963fa06167912be7fKristian Høgsbergnv20_emit_material_ambient(struct gl_context *ctx, int emit); 106bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez 107bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerezvoid 108f9995b30756140724f41daf963fa06167912be7fKristian Høgsbergnv20_emit_material_diffuse(struct gl_context *ctx, int emit); 109bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez 110bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerezvoid 111f9995b30756140724f41daf963fa06167912be7fKristian Høgsbergnv20_emit_material_specular(struct gl_context *ctx, int emit); 112bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez 113bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerezvoid 114f9995b30756140724f41daf963fa06167912be7fKristian Høgsbergnv20_emit_material_shininess(struct gl_context *ctx, int emit); 115bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez 116bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerezvoid 117f9995b30756140724f41daf963fa06167912be7fKristian Høgsbergnv20_emit_modelview(struct gl_context *ctx, int emit); 118bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez 119bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerezvoid 120f9995b30756140724f41daf963fa06167912be7fKristian Høgsbergnv20_emit_projection(struct gl_context *ctx, int emit); 121bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez 122bfb5dc68fcc9f5dee71f66d9499b8bdcde9627eaFrancisco Jerez#endif 123