Lines Matching refs:c
37 static void pointx_validate(void *con, const GGLcoord* c, GGLcoord r);
38 static void pointx(void *con, const GGLcoord* c, GGLcoord r);
39 static void aa_pointx(void *con, const GGLcoord* c, GGLcoord r);
40 static void aa_nice_pointx(void *con, const GGLcoord* c, GGLcoord r);
46 static void recti_validate(void* c, GGLint l, GGLint t, GGLint r, GGLint b);
47 static void recti(void* c, GGLint l, GGLint t, GGLint r, GGLint b);
65 static inline int min(int a, int b, int c) CONST;
66 static inline int max(int a, int b, int c) CONST;
80 inline int min(int a, int b, int c) { in min() argument
81 return min(a,min(b,c)); in min()
83 inline int max(int a, int b, int c) { in max() argument
84 return max(a,max(b,c)); in max()
114 void ggl_init_trap(context_t* c) in ggl_init_trap() argument
116 ggl_state_changed(c, GGL_PIXEL_PIPELINE_STATE|GGL_TMU_STATE|GGL_CB_STATE); in ggl_init_trap()
119 void ggl_state_changed(context_t* c, int flags) in ggl_state_changed() argument
121 if (ggl_likely(!c->dirty)) { in ggl_state_changed()
122 c->procs.pointx = pointx_validate; in ggl_state_changed()
123 c->procs.linex = linex_validate; in ggl_state_changed()
124 c->procs.recti = recti_validate; in ggl_state_changed()
125 c->procs.trianglex = trianglex_validate; in ggl_state_changed()
127 c->dirty |= uint32_t(flags); in ggl_state_changed()
138 GGL_CONTEXT(c, con); in pointx_validate()
139 ggl_pick(c); in pointx_validate()
140 if (c->state.needs.p & GGL_NEED_MASK(P_AA)) { in pointx_validate()
141 if (c->state.enables & GGL_ENABLE_POINT_AA_NICE) { in pointx_validate()
142 c->procs.pointx = aa_nice_pointx; in pointx_validate()
144 c->procs.pointx = aa_pointx; in pointx_validate()
147 c->procs.pointx = pointx; in pointx_validate()
149 c->procs.pointx(con, v, rad); in pointx_validate()
154 GGL_CONTEXT(c, con); in pointx()
171 recti(c, l, t, r, b); in pointx()
205 GGL_CONTEXT(c, con); in aa_nice_pointx()
216 if (l < GGLint(c->state.scissor.left)) { in aa_nice_pointx()
217 xstart += TRI_FROM_INT(c->state.scissor.left-l); in aa_nice_pointx()
218 l = GGLint(c->state.scissor.left); in aa_nice_pointx()
220 if (t < GGLint(c->state.scissor.top)) { in aa_nice_pointx()
221 ystart += TRI_FROM_INT(c->state.scissor.top-t); in aa_nice_pointx()
222 t = GGLint(c->state.scissor.top); in aa_nice_pointx()
224 if (r > GGLint(c->state.scissor.right)) { in aa_nice_pointx()
225 r = GGLint(c->state.scissor.right); in aa_nice_pointx()
227 if (b > GGLint(c->state.scissor.bottom)) { in aa_nice_pointx()
228 b = GGLint(c->state.scissor.bottom); in aa_nice_pointx()
234 int16_t* covPtr = c->state.buffers.coverage; in aa_nice_pointx()
240 c->iterators.xl = l; in aa_nice_pointx()
241 c->iterators.xr = r; in aa_nice_pointx()
242 c->init_y(c, t); in aa_nice_pointx()
251 c->scanline(c); in aa_nice_pointx()
252 c->step_y(c); in aa_nice_pointx()
270 GGL_CONTEXT(c, con); in aa_pointx()
281 if (l < GGLint(c->state.scissor.left)) { in aa_pointx()
282 xstart += TRI_FROM_INT(c->state.scissor.left-l); in aa_pointx()
283 l = GGLint(c->state.scissor.left); in aa_pointx()
285 if (t < GGLint(c->state.scissor.top)) { in aa_pointx()
286 ystart += TRI_FROM_INT(c->state.scissor.top-t); in aa_pointx()
287 t = GGLint(c->state.scissor.top); in aa_pointx()
289 if (r > GGLint(c->state.scissor.right)) { in aa_pointx()
290 r = GGLint(c->state.scissor.right); in aa_pointx()
292 if (b > GGLint(c->state.scissor.bottom)) { in aa_pointx()
293 b = GGLint(c->state.scissor.bottom); in aa_pointx()
299 int16_t* covPtr = c->state.buffers.coverage; in aa_pointx()
312 c->iterators.xl = l; in aa_pointx()
313 c->iterators.xr = r; in aa_pointx()
314 c->init_y(c, t); in aa_pointx()
324 c->scanline(c); in aa_pointx()
325 c->step_y(c); in aa_pointx()
338 GGL_CONTEXT(c, con); in linex_validate()
339 ggl_pick(c); in linex_validate()
340 if (c->state.needs.p & GGL_NEED_MASK(P_AA)) { in linex_validate()
341 c->procs.linex = aa_linex; in linex_validate()
343 c->procs.linex = linex; in linex_validate()
345 c->procs.linex(con, v0, v1, w); in linex_validate()
350 GGL_CONTEXT(c, con); in linex()
378 GGL_CONTEXT(c, con); in aa_linex()
413 GGL_CONTEXT(c, con); in recti_validate()
414 ggl_pick(c); in recti_validate()
415 c->procs.recti = recti; in recti_validate()
416 c->procs.recti(con, l, t, r, b); in recti_validate()
421 GGL_CONTEXT(c, con); in recti()
424 if (l < GGLint(c->state.scissor.left)) in recti()
425 l = GGLint(c->state.scissor.left); in recti()
426 if (t < GGLint(c->state.scissor.top)) in recti()
427 t = GGLint(c->state.scissor.top); in recti()
428 if (r > GGLint(c->state.scissor.right)) in recti()
429 r = GGLint(c->state.scissor.right); in recti()
430 if (b > GGLint(c->state.scissor.bottom)) in recti()
431 b = GGLint(c->state.scissor.bottom); in recti()
436 c->iterators.xl = l; in recti()
437 c->iterators.xr = r; in recti()
438 c->init_y(c, t); in recti()
439 c->rect(c, yc); in recti()
449 static void scanline_set(context_t* c) in scanline_set() argument
451 int32_t x = c->iterators.xl; in scanline_set()
452 size_t ct = c->iterators.xr - x; in scanline_set()
453 int32_t y = c->iterators.y; in scanline_set()
454 surface_t* cb = &(c->state.buffers.color); in scanline_set()
455 const GGLFormat* fp = &(c->formats[cb->format]); in scanline_set()
465 GGL_CONTEXT(c, con); in trianglex_debug()
466 if (c->state.needs.p & GGL_NEED_MASK(P_AA)) { in trianglex_debug()
471 void (*save_scanline)(context_t*) = c->scanline; in trianglex_debug()
472 c->scanline = scanline_set; in trianglex_debug()
476 c->scanline = save_scanline; in trianglex_debug()
495 GGL_CONTEXT(c, con); in trianglex_validate()
496 ggl_pick(c); in trianglex_validate()
497 if (c->state.needs.p & GGL_NEED_MASK(P_AA)) { in trianglex_validate()
498 c->procs.trianglex = DEBUG_TRANGLES ? trianglex_debug : aa_trianglex; in trianglex_validate()
500 c->procs.trianglex = DEBUG_TRANGLES ? trianglex_debug : trianglex_big; in trianglex_validate()
502 c->procs.trianglex(con, v0, v1, v2); in trianglex_validate()
510 GGL_CONTEXT(c, con); in trianglex_small()
544 const int32_t minx = max(bminx, c->state.scissor.left); in trianglex_small()
545 const int32_t miny = max(bminy, c->state.scissor.top); in trianglex_small()
546 const int32_t maxx = min(bmaxx, c->state.scissor.right); in trianglex_small()
547 const int32_t maxy = min(bmaxy, c->state.scissor.bottom); in trianglex_small()
564 c->init_y(c, miny); in trianglex_small()
587 c->iterators.xl = xl; in trianglex_small()
588 c->iterators.xr = xr; in trianglex_small()
589 c->scanline(c); in trianglex_small()
591 c->step_y(c); in trianglex_small()
723 context_t* c ) in triangle_sweep_edges() argument
741 const int xmin = c->state.scissor.left; in triangle_sweep_edges()
742 const int xmax = c->state.scissor.right; in triangle_sweep_edges()
751 c->iterators.xl = xl; in triangle_sweep_edges()
752 c->iterators.xr = xr; in triangle_sweep_edges()
753 c->scanline(c); in triangle_sweep_edges()
755 c->step_y(c); in triangle_sweep_edges()
763 GGL_CONTEXT(c, con); in trianglex_big()
767 int32_t ymin = TRI_FROM_INT(c->state.scissor.top) + TRI_HALF; in trianglex_big()
768 int32_t ymax = TRI_FROM_INT(c->state.scissor.bottom) - TRI_HALF; in trianglex_big()
795 c->init_y(c, y_top >> TRI_FRACTION_BITS); in trianglex_big()
798 triangle_sweep_edges( left, right, y_top, y_mid, c ); in trianglex_big()
807 triangle_sweep_edges( left, right, y_mid, y_bot, c ); in trianglex_big()
812 const GGLcoord* a, const GGLcoord* b, const GGLcoord* c) in aa_trianglex() argument
814 GGLcoord pts[6] = { a[0], a[1], b[0], b[1], c[0], c[1] }; in aa_trianglex()
952 GGL_CONTEXT(c, con); in aapolyx()
958 const int xmin = c->state.scissor.left; in aapolyx()
959 const int xmax = c->state.scissor.right; in aapolyx()
963 int32_t ymin = TRI_FROM_INT(c->state.scissor.top); in aapolyx()
964 int32_t ymax = TRI_FROM_INT(c->state.scissor.bottom); in aapolyx()
980 int16_t* const covPtr = c->state.buffers.coverage; in aapolyx()
996 c->init_y(c, yt>>TRI_FRACTION_BITS); in aapolyx()
997 c->iterators.xl = xmax; in aapolyx()
998 c->iterators.xr = xmin; in aapolyx()
1043 if (c->iterators.xl < c->iterators.xr) in aapolyx()
1044 c->scanline(c); in aapolyx()
1045 c->step_y(c); in aapolyx()
1047 c->iterators.xl = xml; in aapolyx()
1048 c->iterators.xr = xmr; in aapolyx()
1051 c->iterators.xl = min(c->iterators.xl, xml); in aapolyx()
1052 c->iterators.xr = max(c->iterators.xr, xmr); in aapolyx()
1169 if (c->iterators.xl < c->iterators.xr) in aapolyx()
1170 c->scanline(c); in aapolyx()