Improve crash handling in drawers

This commit is contained in:
Magnus Norddahl 2016-10-12 13:25:05 +02:00
commit 27b432a930
7 changed files with 219 additions and 21 deletions

View file

@ -104,6 +104,8 @@ public:
LLVMDrawers::Instance()->DrawSpan(&args);
}
FString DebugInfo() override { return "DrawSpanLLVMCommand"; }
protected:
DrawSpanArgs args;
@ -247,6 +249,11 @@ public:
WorkerThreadData d = ThreadData(thread);
LLVMDrawers::Instance()->vlinec4(&args, &d);
}
FString DebugInfo() override
{
return "DrawWall4LLVMCommand\n" + args.ToString();
}
};
class DrawWall1LLVMCommand : public DrawerCommand
@ -301,6 +308,11 @@ public:
WorkerThreadData d = ThreadData(thread);
LLVMDrawers::Instance()->vlinec1(&args, &d);
}
FString DebugInfo() override
{
return "DrawWall1LLVMCommand\n" + args.ToString();
}
};
class DrawColumnLLVMCommand : public DrawerCommand
@ -318,6 +330,11 @@ protected:
return d;
}
FString DebugInfo() override
{
return "DrawColumnLLVMCommand";
}
public:
DrawColumnLLVMCommand()
{
@ -510,6 +527,11 @@ public:
*dest = 0xff000000 | (red << 16) | (green << 8) | blue;
}
}
FString DebugInfo() override
{
return "DrawFuzzColumnRGBACommand";
}
};
class FillSpanRGBACommand : public DrawerCommand
@ -544,6 +566,11 @@ public:
for (int i = 0; i < count; i++)
dest[i] = color;
}
FString DebugInfo() override
{
return "FillSpanRGBACommand";
}
};
/////////////////////////////////////////////////////////////////////////////
@ -663,6 +690,11 @@ public:
dy--;
}
}
FString DebugInfo() override
{
return "DrawSlabRGBACommand";
}
};
/////////////////////////////////////////////////////////////////////////////
@ -737,6 +769,11 @@ public:
dest[x] = 0xff000000 | (red << 16) | (green << 8) | blue;
} while (++x <= x2);
}
FString DebugInfo() override
{
return "DrawFogBoundaryLineRGBACommand";
}
};
class DrawTiltedSpanRGBACommand : public DrawerCommand
@ -886,6 +923,11 @@ public:
count--;
}
}
FString DebugInfo() override
{
return "DrawTiltedSpanRGBACommand";
}
};
class DrawColoredSpanRGBACommand : public DrawerCommand
@ -925,6 +967,11 @@ public:
for (int i = 0; i < count; i++)
dest[i] = color;
}
FString DebugInfo() override
{
return "DrawColoredSpanRGBACommand";
}
};
class FillTransColumnRGBACommand : public DrawerCommand
@ -992,6 +1039,11 @@ public:
dest += spacing;
}
}
FString DebugInfo() override
{
return "FillTransColumnRGBACommand";
}
};
ApplySpecialColormapRGBACommand::ApplySpecialColormapRGBACommand(FSpecialColormap *colormap, DFrameBuffer *screen)