ref: 6614b9c066b017be7b6a826904a6203ab6f2e9fe
parent: 39d66c58951286ec82b8ee283ad0dd42c479bbd4
author: rodri <rgl@antares-labs.eu>
date: Tue Apr 8 12:05:36 EDT 2025
render: replace the raster fn switch with a lut there's no need to check for alien primitives, the tilers already do that.
--- a/render.c
+++ b/render.c
@@ -377,6 +377,11 @@
static void
rasterizer(void *arg)
{
+ static void(*rasterfn[])(Rastertask*) = {
+ [PPoint] rasterizept,
+ [PLine] rasterizeline,
+ [PTriangle] rasterizetri,
+ };
Rasterparam *rp;
Rastertask *task;
SUparams *params;
@@ -437,12 +442,7 @@
fsp.su = params;
task->fsp = &fsp;
- switch(task->p.type){
- case PPoint: rasterizept(task); break;
- case PLine: rasterizeline(task); break;
- case PTriangle: rasterizetri(task); break;
- default: sysfatal("alien primitive detected");
- }
+ (*rasterfn[task->p.type])(task);
_delvattrs(&v);
for(i = 0; i < task->p.type+1; i++)
--
⑨