| /* |
| * Copyright (C) 2009 Francisco Jerez. |
| * All Rights Reserved. |
| * |
| * Permission is hereby granted, free of charge, to any person obtaining |
| * a copy of this software and associated documentation files (the |
| * "Software"), to deal in the Software without restriction, including |
| * without limitation the rights to use, copy, modify, merge, publish, |
| * distribute, sublicense, and/or sell copies of the Software, and to |
| * permit persons to whom the Software is furnished to do so, subject to |
| * the following conditions: |
| * |
| * The above copyright notice and this permission notice (including the |
| * next paragraph) shall be included in all copies or substantial |
| * portions of the Software. |
| * |
| * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
| * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
| * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
| * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE |
| * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION |
| * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION |
| * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
| * |
| */ |
| |
| #ifndef __NOUVEAU_STATE_H__ |
| #define __NOUVEAU_STATE_H__ |
| |
| enum { |
| NOUVEAU_STATE_ALPHA_FUNC, |
| NOUVEAU_STATE_BLEND_COLOR, |
| NOUVEAU_STATE_BLEND_EQUATION, |
| NOUVEAU_STATE_BLEND_FUNC, |
| NOUVEAU_STATE_CLIP_PLANE0, |
| NOUVEAU_STATE_CLIP_PLANE1, |
| NOUVEAU_STATE_CLIP_PLANE2, |
| NOUVEAU_STATE_CLIP_PLANE3, |
| NOUVEAU_STATE_CLIP_PLANE4, |
| NOUVEAU_STATE_CLIP_PLANE5, |
| NOUVEAU_STATE_COLOR_MASK, |
| NOUVEAU_STATE_COLOR_MATERIAL, |
| NOUVEAU_STATE_CULL_FACE, |
| NOUVEAU_STATE_FRONT_FACE, |
| NOUVEAU_STATE_DEPTH, |
| NOUVEAU_STATE_DITHER, |
| NOUVEAU_STATE_FRAG, |
| NOUVEAU_STATE_FRAMEBUFFER, |
| NOUVEAU_STATE_FOG, |
| NOUVEAU_STATE_LIGHT_ENABLE, |
| NOUVEAU_STATE_LIGHT_MODEL, |
| NOUVEAU_STATE_LIGHT_SOURCE0, |
| NOUVEAU_STATE_LIGHT_SOURCE1, |
| NOUVEAU_STATE_LIGHT_SOURCE2, |
| NOUVEAU_STATE_LIGHT_SOURCE3, |
| NOUVEAU_STATE_LIGHT_SOURCE4, |
| NOUVEAU_STATE_LIGHT_SOURCE5, |
| NOUVEAU_STATE_LIGHT_SOURCE6, |
| NOUVEAU_STATE_LIGHT_SOURCE7, |
| NOUVEAU_STATE_LINE_STIPPLE, |
| NOUVEAU_STATE_LINE_MODE, |
| NOUVEAU_STATE_LOGIC_OPCODE, |
| NOUVEAU_STATE_MATERIAL_FRONT_AMBIENT, |
| NOUVEAU_STATE_MATERIAL_BACK_AMBIENT, |
| NOUVEAU_STATE_MATERIAL_FRONT_DIFFUSE, |
| NOUVEAU_STATE_MATERIAL_BACK_DIFFUSE, |
| NOUVEAU_STATE_MATERIAL_FRONT_SPECULAR, |
| NOUVEAU_STATE_MATERIAL_BACK_SPECULAR, |
| NOUVEAU_STATE_MATERIAL_FRONT_SHININESS, |
| NOUVEAU_STATE_MATERIAL_BACK_SHININESS, |
| NOUVEAU_STATE_MODELVIEW, |
| NOUVEAU_STATE_POINT_MODE, |
| NOUVEAU_STATE_POINT_PARAMETER, |
| NOUVEAU_STATE_POLYGON_MODE, |
| NOUVEAU_STATE_POLYGON_OFFSET, |
| NOUVEAU_STATE_POLYGON_STIPPLE, |
| NOUVEAU_STATE_PROJECTION, |
| NOUVEAU_STATE_RENDER_MODE, |
| NOUVEAU_STATE_SCISSOR, |
| NOUVEAU_STATE_SHADE_MODEL, |
| NOUVEAU_STATE_STENCIL_FUNC, |
| NOUVEAU_STATE_STENCIL_MASK, |
| NOUVEAU_STATE_STENCIL_OP, |
| NOUVEAU_STATE_TEX_ENV0, |
| NOUVEAU_STATE_TEX_ENV1, |
| NOUVEAU_STATE_TEX_ENV2, |
| NOUVEAU_STATE_TEX_ENV3, |
| NOUVEAU_STATE_TEX_GEN0, |
| NOUVEAU_STATE_TEX_GEN1, |
| NOUVEAU_STATE_TEX_GEN2, |
| NOUVEAU_STATE_TEX_GEN3, |
| NOUVEAU_STATE_TEX_MAT0, |
| NOUVEAU_STATE_TEX_MAT1, |
| NOUVEAU_STATE_TEX_MAT2, |
| NOUVEAU_STATE_TEX_MAT3, |
| NOUVEAU_STATE_TEX_OBJ0, |
| NOUVEAU_STATE_TEX_OBJ1, |
| NOUVEAU_STATE_TEX_OBJ2, |
| NOUVEAU_STATE_TEX_OBJ3, |
| NOUVEAU_STATE_VIEWPORT, |
| NUM_NOUVEAU_STATE, |
| |
| /* Room for card-specific states. */ |
| |
| MAX_NOUVEAU_STATE = NUM_NOUVEAU_STATE + 16, |
| }; |
| |
| typedef void (*nouveau_state_func)(struct gl_context *ctx, int emit); |
| |
| void |
| nouveau_state_init(struct gl_context *ctx); |
| |
| void |
| nouveau_emit_nothing(struct gl_context *ctx, int emit); |
| |
| int |
| nouveau_next_dirty_state(struct gl_context *ctx); |
| |
| void |
| nouveau_state_emit(struct gl_context *ctx); |
| |
| #endif |