Lines Matching refs:ctx

37 nouveau_alpha_func(struct gl_context *ctx, GLenum func, GLfloat ref)
39 context_dirty(ctx, ALPHA_FUNC);
43 nouveau_blend_color(struct gl_context *ctx, const GLfloat color[4])
45 context_dirty(ctx, BLEND_COLOR);
49 nouveau_blend_equation_separate(struct gl_context *ctx, GLenum modeRGB, GLenum modeA)
51 context_dirty(ctx, BLEND_EQUATION);
55 nouveau_blend_func_separate(struct gl_context *ctx, GLenum sfactorRGB,
58 context_dirty(ctx, BLEND_FUNC);
62 nouveau_clip_plane(struct gl_context *ctx, GLenum plane, const GLfloat *equation)
64 context_dirty_i(ctx, CLIP_PLANE, plane - GL_CLIP_PLANE0);
68 nouveau_color_mask(struct gl_context *ctx, GLboolean rmask, GLboolean gmask,
71 context_dirty(ctx, COLOR_MASK);
75 nouveau_color_material(struct gl_context *ctx, GLenum face, GLenum mode)
77 context_dirty(ctx, COLOR_MATERIAL);
78 context_dirty(ctx, MATERIAL_FRONT_AMBIENT);
79 context_dirty(ctx, MATERIAL_BACK_AMBIENT);
80 context_dirty(ctx, MATERIAL_FRONT_DIFFUSE);
81 context_dirty(ctx, MATERIAL_BACK_DIFFUSE);
82 context_dirty(ctx, MATERIAL_FRONT_SPECULAR);
83 context_dirty(ctx, MATERIAL_BACK_SPECULAR);
87 nouveau_cull_face(struct gl_context *ctx, GLenum mode)
89 context_dirty(ctx, CULL_FACE);
93 nouveau_front_face(struct gl_context *ctx, GLenum mode)
95 context_dirty(ctx, FRONT_FACE);
99 nouveau_depth_func(struct gl_context *ctx, GLenum func)
101 context_dirty(ctx, DEPTH);
105 nouveau_depth_mask(struct gl_context *ctx, GLboolean flag)
107 context_dirty(ctx, DEPTH);
111 nouveau_read_buffer(struct gl_context *ctx, GLenum buffer)
113 nouveau_validate_framebuffer(ctx);
117 nouveau_draw_buffers(struct gl_context *ctx, GLsizei n, const GLenum *buffers)
119 nouveau_validate_framebuffer(ctx);
120 context_dirty(ctx, FRAMEBUFFER);
124 nouveau_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
130 context_dirty(ctx, ALPHA_FUNC);
133 context_dirty(ctx, BLEND_EQUATION);
136 context_dirty(ctx, LOGIC_OPCODE);
139 context_dirty(ctx, COLOR_MATERIAL);
140 context_dirty(ctx, MATERIAL_FRONT_AMBIENT);
141 context_dirty(ctx, MATERIAL_BACK_AMBIENT);
142 context_dirty(ctx, MATERIAL_FRONT_DIFFUSE);
143 context_dirty(ctx, MATERIAL_BACK_DIFFUSE);
144 context_dirty(ctx, MATERIAL_FRONT_SPECULAR);
145 context_dirty(ctx, MATERIAL_BACK_SPECULAR);
148 context_dirty(ctx, FRAG);
149 context_dirty(ctx, LIGHT_MODEL);
152 context_dirty(ctx, CULL_FACE);
155 context_dirty(ctx, DEPTH);
158 context_dirty(ctx, DITHER);
161 context_dirty(ctx, FOG);
162 context_dirty(ctx, FRAG);
163 context_dirty(ctx, MODELVIEW);
173 context_dirty(ctx, MODELVIEW);
174 context_dirty(ctx, LIGHT_ENABLE);
175 context_dirty_i(ctx, LIGHT_SOURCE, cap - GL_LIGHT0);
176 context_dirty(ctx, MATERIAL_FRONT_AMBIENT);
177 context_dirty(ctx, MATERIAL_BACK_AMBIENT);
178 context_dirty(ctx, MATERIAL_FRONT_DIFFUSE);
179 context_dirty(ctx, MATERIAL_BACK_DIFFUSE);
180 context_dirty(ctx, MATERIAL_FRONT_SPECULAR);
181 context_dirty(ctx, MATERIAL_BACK_SPECULAR);
182 context_dirty(ctx, MATERIAL_FRONT_SHININESS);
183 context_dirty(ctx, MATERIAL_BACK_SHININESS);
186 context_dirty(ctx, FRAG);
187 context_dirty(ctx, MODELVIEW);
188 context_dirty(ctx, LIGHT_MODEL);
189 context_dirty(ctx, LIGHT_ENABLE);
191 mask = ctx->Light._EnabledLights;
194 context_dirty_i(ctx, LIGHT_SOURCE, i);
197 context_dirty(ctx, MATERIAL_FRONT_AMBIENT);
198 context_dirty(ctx, MATERIAL_BACK_AMBIENT);
199 context_dirty(ctx, MATERIAL_FRONT_DIFFUSE);
200 context_dirty(ctx, MATERIAL_BACK_DIFFUSE);
201 context_dirty(ctx, MATERIAL_FRONT_SPECULAR);
202 context_dirty(ctx, MATERIAL_BACK_SPECULAR);
203 context_dirty(ctx, MATERIAL_FRONT_SHININESS);
204 context_dirty(ctx, MATERIAL_BACK_SHININESS);
207 context_dirty(ctx, LINE_MODE);
210 context_dirty(ctx, LIGHT_ENABLE);
213 context_dirty(ctx, POINT_MODE);
218 context_dirty(ctx, POLYGON_OFFSET);
221 context_dirty(ctx, POLYGON_MODE);
224 context_dirty(ctx, SCISSOR);
227 context_dirty(ctx, STENCIL_FUNC);
233 context_dirty_i(ctx, TEX_ENV, ctx->Texture.CurrentUnit);
234 context_dirty_i(ctx, TEX_OBJ, ctx->Texture.CurrentUnit);
240 context_dirty_i(ctx, TEX_GEN, ctx->Texture.CurrentUnit);
241 context_dirty(ctx, MODELVIEW);
247 nouveau_fog(struct gl_context *ctx, GLenum pname, const GLfloat *params)
249 context_dirty(ctx, FOG);
253 nouveau_light(struct gl_context *ctx, GLenum light, GLenum pname, const GLfloat *params)
257 context_dirty(ctx, MATERIAL_FRONT_AMBIENT);
258 context_dirty(ctx, MATERIAL_BACK_AMBIENT);
261 context_dirty(ctx, MATERIAL_FRONT_DIFFUSE);
262 context_dirty(ctx, MATERIAL_BACK_DIFFUSE);
265 context_dirty(ctx, MATERIAL_FRONT_SPECULAR);
266 context_dirty(ctx, MATERIAL_BACK_SPECULAR);
270 context_dirty(ctx, MODELVIEW);
271 context_dirty(ctx, LIGHT_ENABLE);
272 context_dirty_i(ctx, LIGHT_SOURCE, light - GL_LIGHT0);
275 context_dirty_i(ctx, LIGHT_SOURCE, light - GL_LIGHT0);
281 nouveau_light_model(struct gl_context *ctx, GLenum pname, const GLfloat *params)
283 context_dirty(ctx, LIGHT_MODEL);
284 context_dirty(ctx, MODELVIEW);
288 nouveau_line_stipple(struct gl_context *ctx, GLint factor, GLushort pattern )
290 context_dirty(ctx, LINE_STIPPLE);
294 nouveau_line_width(struct gl_context *ctx, GLfloat width)
296 context_dirty(ctx, LINE_MODE);
300 nouveau_logic_opcode(struct gl_context *ctx, GLenum opcode)
302 context_dirty(ctx, LOGIC_OPCODE);
306 nouveau_point_parameter(struct gl_context *ctx, GLenum pname, const GLfloat *params)
308 context_dirty(ctx, POINT_PARAMETER);
312 nouveau_point_size(struct gl_context *ctx, GLfloat size)
314 context_dirty(ctx, POINT_MODE);
318 nouveau_polygon_mode(struct gl_context *ctx, GLenum face, GLenum mode)
320 context_dirty(ctx, POLYGON_MODE);
324 nouveau_polygon_offset(struct gl_context *ctx, GLfloat factor, GLfloat units, GLfloat clamp)
326 context_dirty(ctx, POLYGON_OFFSET);
330 nouveau_polygon_stipple(struct gl_context *ctx, const GLubyte *mask)
332 context_dirty(ctx, POLYGON_STIPPLE);
336 nouveau_render_mode(struct gl_context *ctx, GLenum mode)
338 context_dirty(ctx, RENDER_MODE);
342 nouveau_shade_model(struct gl_context *ctx, GLenum mode)
344 context_dirty(ctx, SHADE_MODEL);
348 nouveau_stencil_func_separate(struct gl_context *ctx, GLenum face, GLenum func,
351 context_dirty(ctx, STENCIL_FUNC);
355 nouveau_stencil_mask_separate(struct gl_context *ctx, GLenum face, GLuint mask)
357 context_dirty(ctx, STENCIL_MASK);
361 nouveau_stencil_op_separate(struct gl_context *ctx, GLenum face, GLenum fail,
364 context_dirty(ctx, STENCIL_OP);
368 nouveau_tex_gen(struct gl_context *ctx, GLenum coord, GLenum pname,
373 context_dirty_i(ctx, TEX_GEN, ctx->Texture.CurrentUnit);
374 context_dirty(ctx, MODELVIEW);
377 context_dirty_i(ctx, TEX_GEN, ctx->Texture.CurrentUnit);
383 nouveau_tex_env(struct gl_context *ctx, GLenum target, GLenum pname,
388 context_dirty_i(ctx, TEX_OBJ, ctx->Texture.CurrentUnit);
391 context_dirty_i(ctx, TEX_ENV, ctx->Texture.CurrentUnit);
397 nouveau_tex_parameter(struct gl_context *ctx,
409 context_dirty_i(ctx, TEX_OBJ, ctx->Texture.CurrentUnit);
415 nouveau_texture_reallocate(ctx, t);
416 context_dirty_i(ctx, TEX_OBJ, ctx->Texture.CurrentUnit);
422 nouveau_emit_nothing(struct gl_context *ctx, int emit)
427 nouveau_next_dirty_state(struct gl_context *ctx)
429 struct nouveau_context *nctx = to_nouveau_context(ctx);
432 if (i < 0 || i >= context_drv(ctx)->num_emit)
439 nouveau_state_emit(struct gl_context *ctx)
441 struct nouveau_context *nctx = to_nouveau_context(ctx);
442 const struct nouveau_driver *drv = context_drv(ctx);
445 while ((i = nouveau_next_dirty_state(ctx)) >= 0) {
447 drv->emit[i](ctx, i);
454 nouveau_update_state(struct gl_context *ctx, GLbitfield new_state)
459 context_dirty(ctx, PROJECTION);
462 context_dirty(ctx, MODELVIEW);
465 for (i = 0; i < ctx->Const.MaxTextureCoordUnits; i++)
466 context_dirty_i(ctx, TEX_MAT, i);
470 context_dirty(ctx, SCISSOR);
473 context_dirty(ctx, VIEWPORT);
477 context_dirty(ctx, MATERIAL_FRONT_AMBIENT);
478 context_dirty(ctx, MATERIAL_BACK_AMBIENT);
479 context_dirty(ctx, MATERIAL_FRONT_DIFFUSE);
480 context_dirty(ctx, MATERIAL_BACK_DIFFUSE);
481 context_dirty(ctx, MATERIAL_FRONT_SPECULAR);
482 context_dirty(ctx, MATERIAL_BACK_SPECULAR);
483 context_dirty(ctx, MATERIAL_FRONT_SHININESS);
484 context_dirty(ctx, MATERIAL_BACK_SHININESS);
488 for (i = 0; i < ctx->Const.MaxTextureUnits; i++) {
489 if (ctx->Texture.Unit[i].Sampler)
490 context_dirty_i(ctx, TEX_OBJ, i);
494 _swrast_InvalidateState(ctx, new_state);
495 _tnl_InvalidateState(ctx, new_state);
496 _vbo_InvalidateState(ctx, new_state);
498 nouveau_state_emit(ctx);
502 nouveau_state_init(struct gl_context *ctx)
504 struct nouveau_context *nctx = to_nouveau_context(ctx);
506 ctx->Driver.AlphaFunc = nouveau_alpha_func;
507 ctx->Driver.BlendColor = nouveau_blend_color;
508 ctx->Driver.BlendEquationSeparate = nouveau_blend_equation_separate;
509 ctx->Driver.BlendFuncSeparate = nouveau_blend_func_separate;
510 ctx->Driver.ClipPlane = nouveau_clip_plane;
511 ctx->Driver.ColorMask = nouveau_color_mask;
512 ctx->Driver.ColorMaterial = nouveau_color_material;
513 ctx->Driver.CullFace = nouveau_cull_face;
514 ctx->Driver.FrontFace = nouveau_front_face;
515 ctx->Driver.DepthFunc = nouveau_depth_func;
516 ctx->Driver.DepthMask = nouveau_depth_mask;
517 ctx->Driver.ReadBuffer = nouveau_read_buffer;
518 ctx->Driver.DrawBuffers = nouveau_draw_buffers;
519 ctx->Driver.Enable = nouveau_enable;
520 ctx->Driver.Fogfv = nouveau_fog;
521 ctx->Driver.Lightfv = nouveau_light;
522 ctx->Driver.LightModelfv = nouveau_light_model;
523 ctx->Driver.LineStipple = nouveau_line_stipple;
524 ctx->Driver.LineWidth = nouveau_line_width;
525 ctx->Driver.LogicOpcode = nouveau_logic_opcode;
526 ctx->Driver.PointParameterfv = nouveau_point_parameter;
527 ctx->Driver.PointSize = nouveau_point_size;
528 ctx->Driver.PolygonMode = nouveau_polygon_mode;
529 ctx->Driver.PolygonOffset = nouveau_polygon_offset;
530 ctx->Driver.PolygonStipple = nouveau_polygon_stipple;
531 ctx->Driver.RenderMode = nouveau_render_mode;
532 ctx->Driver.ShadeModel = nouveau_shade_model;
533 ctx->Driver.StencilFuncSeparate = nouveau_stencil_func_separate;
534 ctx->Driver.StencilMaskSeparate = nouveau_stencil_mask_separate;
535 ctx->Driver.StencilOpSeparate = nouveau_stencil_op_separate;
536 ctx->Driver.TexGen = nouveau_tex_gen;
537 ctx->Driver.TexEnv = nouveau_tex_env;
538 ctx->Driver.TexParameter = nouveau_tex_parameter;
540 ctx->Driver.UpdateState = nouveau_update_state;