mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-11 15:22:16 +00:00
Fix race condition
This commit is contained in:
parent
8ad2f45082
commit
a7a779dd31
2 changed files with 175 additions and 175 deletions
|
@ -209,184 +209,181 @@ extern "C"
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
Drawers::Drawers()
|
||||||
|
{
|
||||||
|
DrawColumn = DrawColumn_SSE2;
|
||||||
|
DrawColumnAdd = DrawColumnAdd_SSE2;
|
||||||
|
DrawColumnShaded = DrawColumnShaded_SSE2;
|
||||||
|
DrawColumnAddClamp = DrawColumnAddClamp_SSE2;
|
||||||
|
DrawColumnSubClamp = DrawColumnSubClamp_SSE2;
|
||||||
|
DrawColumnRevSubClamp = DrawColumnRevSubClamp_SSE2;
|
||||||
|
DrawColumnTranslated = DrawColumnTranslated_SSE2;
|
||||||
|
DrawColumnTlatedAdd = DrawColumnTlatedAdd_SSE2;
|
||||||
|
DrawColumnAddClampTranslated = DrawColumnAddClampTranslated_SSE2;
|
||||||
|
DrawColumnSubClampTranslated = DrawColumnSubClampTranslated_SSE2;
|
||||||
|
DrawColumnRevSubClampTranslated = DrawColumnRevSubClampTranslated_SSE2;
|
||||||
|
FillColumn = FillColumn_SSE2;
|
||||||
|
FillColumnAdd = FillColumnAdd_SSE2;
|
||||||
|
FillColumnAddClamp = FillColumnAddClamp_SSE2;
|
||||||
|
FillColumnSubClamp = FillColumnSubClamp_SSE2;
|
||||||
|
FillColumnRevSubClamp = FillColumnRevSubClamp_SSE2;
|
||||||
|
DrawColumnRt1 = DrawColumnRt1_SSE2;
|
||||||
|
DrawColumnRt1Copy = DrawColumnRt1Copy_SSE2;
|
||||||
|
DrawColumnRt1Add = DrawColumnRt1Add_SSE2;
|
||||||
|
DrawColumnRt1Shaded = DrawColumnRt1Shaded_SSE2;
|
||||||
|
DrawColumnRt1AddClamp = DrawColumnRt1AddClamp_SSE2;
|
||||||
|
DrawColumnRt1SubClamp = DrawColumnRt1SubClamp_SSE2;
|
||||||
|
DrawColumnRt1RevSubClamp = DrawColumnRt1RevSubClamp_SSE2;
|
||||||
|
DrawColumnRt1Translated = DrawColumnRt1Translated_SSE2;
|
||||||
|
DrawColumnRt1TlatedAdd = DrawColumnRt1TlatedAdd_SSE2;
|
||||||
|
DrawColumnRt1AddClampTranslated = DrawColumnRt1AddClampTranslated_SSE2;
|
||||||
|
DrawColumnRt1SubClampTranslated = DrawColumnRt1SubClampTranslated_SSE2;
|
||||||
|
DrawColumnRt1RevSubClampTranslated = DrawColumnRt1RevSubClampTranslated_SSE2;
|
||||||
|
DrawColumnRt4 = DrawColumnRt4_SSE2;
|
||||||
|
DrawColumnRt4Copy = DrawColumnRt4Copy_SSE2;
|
||||||
|
DrawColumnRt4Add = DrawColumnRt4Add_SSE2;
|
||||||
|
DrawColumnRt4Shaded = DrawColumnRt4Shaded_SSE2;
|
||||||
|
DrawColumnRt4AddClamp = DrawColumnRt4AddClamp_SSE2;
|
||||||
|
DrawColumnRt4SubClamp = DrawColumnRt4SubClamp_SSE2;
|
||||||
|
DrawColumnRt4RevSubClamp = DrawColumnRt4RevSubClamp_SSE2;
|
||||||
|
DrawColumnRt4Translated = DrawColumnRt4Translated_SSE2;
|
||||||
|
DrawColumnRt4TlatedAdd = DrawColumnRt4TlatedAdd_SSE2;
|
||||||
|
DrawColumnRt4AddClampTranslated = DrawColumnRt4AddClampTranslated_SSE2;
|
||||||
|
DrawColumnRt4SubClampTranslated = DrawColumnRt4SubClampTranslated_SSE2;
|
||||||
|
DrawColumnRt4RevSubClampTranslated = DrawColumnRt4RevSubClampTranslated_SSE2;
|
||||||
|
DrawSpan = DrawSpan_SSE2;
|
||||||
|
DrawSpanMasked = DrawSpanMasked_SSE2;
|
||||||
|
DrawSpanTranslucent = DrawSpanTranslucent_SSE2;
|
||||||
|
DrawSpanMaskedTranslucent = DrawSpanMaskedTranslucent_SSE2;
|
||||||
|
DrawSpanAddClamp = DrawSpanAddClamp_SSE2;
|
||||||
|
DrawSpanMaskedAddClamp = DrawSpanMaskedAddClamp_SSE2;
|
||||||
|
vlinec1 = vlinec1_SSE2;
|
||||||
|
vlinec4 = vlinec4_SSE2;
|
||||||
|
mvlinec1 = mvlinec1_SSE2;
|
||||||
|
mvlinec4 = mvlinec4_SSE2;
|
||||||
|
tmvline1_add = tmvline1_add_SSE2;
|
||||||
|
tmvline4_add = tmvline4_add_SSE2;
|
||||||
|
tmvline1_addclamp = tmvline1_addclamp_SSE2;
|
||||||
|
tmvline4_addclamp = tmvline4_addclamp_SSE2;
|
||||||
|
tmvline1_subclamp = tmvline1_subclamp_SSE2;
|
||||||
|
tmvline4_subclamp = tmvline4_subclamp_SSE2;
|
||||||
|
tmvline1_revsubclamp = tmvline1_revsubclamp_SSE2;
|
||||||
|
tmvline4_revsubclamp = tmvline4_revsubclamp_SSE2;
|
||||||
|
DrawSky1 = DrawSky1_SSE2;
|
||||||
|
DrawSky4 = DrawSky4_SSE2;
|
||||||
|
DrawDoubleSky1 = DrawDoubleSky1_SSE2;
|
||||||
|
DrawDoubleSky4 = DrawDoubleSky4_SSE2;
|
||||||
|
TriDrawNormal8.push_back(TriDrawNormal8_0_SSE2);
|
||||||
|
TriDrawNormal8.push_back(TriDrawNormal8_1_SSE2);
|
||||||
|
TriDrawNormal8.push_back(TriDrawNormal8_2_SSE2);
|
||||||
|
TriDrawNormal8.push_back(TriDrawNormal8_3_SSE2);
|
||||||
|
TriDrawNormal8.push_back(TriDrawNormal8_4_SSE2);
|
||||||
|
TriDrawNormal8.push_back(TriDrawNormal8_5_SSE2);
|
||||||
|
TriDrawNormal8.push_back(TriDrawNormal8_6_SSE2);
|
||||||
|
TriDrawNormal8.push_back(TriDrawNormal8_7_SSE2);
|
||||||
|
TriDrawNormal8.push_back(TriDrawNormal8_8_SSE2);
|
||||||
|
TriDrawNormal8.push_back(TriDrawNormal8_9_SSE2);
|
||||||
|
TriDrawNormal8.push_back(TriDrawNormal8_10_SSE2);
|
||||||
|
TriDrawNormal8.push_back(TriDrawNormal8_11_SSE2);
|
||||||
|
TriDrawNormal8.push_back(TriDrawNormal8_12_SSE2);
|
||||||
|
TriDrawNormal32.push_back(TriDrawNormal32_0_SSE2);
|
||||||
|
TriDrawNormal32.push_back(TriDrawNormal32_1_SSE2);
|
||||||
|
TriDrawNormal32.push_back(TriDrawNormal32_2_SSE2);
|
||||||
|
TriDrawNormal32.push_back(TriDrawNormal32_3_SSE2);
|
||||||
|
TriDrawNormal32.push_back(TriDrawNormal32_4_SSE2);
|
||||||
|
TriDrawNormal32.push_back(TriDrawNormal32_5_SSE2);
|
||||||
|
TriDrawNormal32.push_back(TriDrawNormal32_6_SSE2);
|
||||||
|
TriDrawNormal32.push_back(TriDrawNormal32_7_SSE2);
|
||||||
|
TriDrawNormal32.push_back(TriDrawNormal32_8_SSE2);
|
||||||
|
TriDrawNormal32.push_back(TriDrawNormal32_9_SSE2);
|
||||||
|
TriDrawNormal32.push_back(TriDrawNormal32_10_SSE2);
|
||||||
|
TriDrawNormal32.push_back(TriDrawNormal32_11_SSE2);
|
||||||
|
TriDrawNormal32.push_back(TriDrawNormal32_12_SSE2);
|
||||||
|
TriFillNormal8.push_back(TriFillNormal8_0_SSE2);
|
||||||
|
TriFillNormal8.push_back(TriFillNormal8_1_SSE2);
|
||||||
|
TriFillNormal8.push_back(TriFillNormal8_2_SSE2);
|
||||||
|
TriFillNormal8.push_back(TriFillNormal8_3_SSE2);
|
||||||
|
TriFillNormal8.push_back(TriFillNormal8_4_SSE2);
|
||||||
|
TriFillNormal8.push_back(TriFillNormal8_5_SSE2);
|
||||||
|
TriFillNormal8.push_back(TriFillNormal8_6_SSE2);
|
||||||
|
TriFillNormal8.push_back(TriFillNormal8_7_SSE2);
|
||||||
|
TriFillNormal8.push_back(TriFillNormal8_8_SSE2);
|
||||||
|
TriFillNormal8.push_back(TriFillNormal8_9_SSE2);
|
||||||
|
TriFillNormal8.push_back(TriFillNormal8_10_SSE2);
|
||||||
|
TriFillNormal8.push_back(TriFillNormal8_11_SSE2);
|
||||||
|
TriFillNormal8.push_back(TriFillNormal8_12_SSE2);
|
||||||
|
TriFillNormal32.push_back(TriFillNormal32_0_SSE2);
|
||||||
|
TriFillNormal32.push_back(TriFillNormal32_1_SSE2);
|
||||||
|
TriFillNormal32.push_back(TriFillNormal32_2_SSE2);
|
||||||
|
TriFillNormal32.push_back(TriFillNormal32_3_SSE2);
|
||||||
|
TriFillNormal32.push_back(TriFillNormal32_4_SSE2);
|
||||||
|
TriFillNormal32.push_back(TriFillNormal32_5_SSE2);
|
||||||
|
TriFillNormal32.push_back(TriFillNormal32_6_SSE2);
|
||||||
|
TriFillNormal32.push_back(TriFillNormal32_7_SSE2);
|
||||||
|
TriFillNormal32.push_back(TriFillNormal32_8_SSE2);
|
||||||
|
TriFillNormal32.push_back(TriFillNormal32_9_SSE2);
|
||||||
|
TriFillNormal32.push_back(TriFillNormal32_10_SSE2);
|
||||||
|
TriFillNormal32.push_back(TriFillNormal32_11_SSE2);
|
||||||
|
TriFillNormal32.push_back(TriFillNormal32_12_SSE2);
|
||||||
|
TriDrawSubsector8.push_back(TriDrawSubsector8_0_SSE2);
|
||||||
|
TriDrawSubsector8.push_back(TriDrawSubsector8_1_SSE2);
|
||||||
|
TriDrawSubsector8.push_back(TriDrawSubsector8_2_SSE2);
|
||||||
|
TriDrawSubsector8.push_back(TriDrawSubsector8_3_SSE2);
|
||||||
|
TriDrawSubsector8.push_back(TriDrawSubsector8_4_SSE2);
|
||||||
|
TriDrawSubsector8.push_back(TriDrawSubsector8_5_SSE2);
|
||||||
|
TriDrawSubsector8.push_back(TriDrawSubsector8_6_SSE2);
|
||||||
|
TriDrawSubsector8.push_back(TriDrawSubsector8_7_SSE2);
|
||||||
|
TriDrawSubsector8.push_back(TriDrawSubsector8_8_SSE2);
|
||||||
|
TriDrawSubsector8.push_back(TriDrawSubsector8_9_SSE2);
|
||||||
|
TriDrawSubsector8.push_back(TriDrawSubsector8_10_SSE2);
|
||||||
|
TriDrawSubsector8.push_back(TriDrawSubsector8_11_SSE2);
|
||||||
|
TriDrawSubsector8.push_back(TriDrawSubsector8_12_SSE2);
|
||||||
|
TriDrawSubsector32.push_back(TriDrawSubsector32_0_SSE2);
|
||||||
|
TriDrawSubsector32.push_back(TriDrawSubsector32_1_SSE2);
|
||||||
|
TriDrawSubsector32.push_back(TriDrawSubsector32_2_SSE2);
|
||||||
|
TriDrawSubsector32.push_back(TriDrawSubsector32_3_SSE2);
|
||||||
|
TriDrawSubsector32.push_back(TriDrawSubsector32_4_SSE2);
|
||||||
|
TriDrawSubsector32.push_back(TriDrawSubsector32_5_SSE2);
|
||||||
|
TriDrawSubsector32.push_back(TriDrawSubsector32_6_SSE2);
|
||||||
|
TriDrawSubsector32.push_back(TriDrawSubsector32_7_SSE2);
|
||||||
|
TriDrawSubsector32.push_back(TriDrawSubsector32_8_SSE2);
|
||||||
|
TriDrawSubsector32.push_back(TriDrawSubsector32_9_SSE2);
|
||||||
|
TriDrawSubsector32.push_back(TriDrawSubsector32_10_SSE2);
|
||||||
|
TriDrawSubsector32.push_back(TriDrawSubsector32_11_SSE2);
|
||||||
|
TriDrawSubsector32.push_back(TriDrawSubsector32_12_SSE2);
|
||||||
|
TriFillSubsector8.push_back(TriFillSubsector8_0_SSE2);
|
||||||
|
TriFillSubsector8.push_back(TriFillSubsector8_1_SSE2);
|
||||||
|
TriFillSubsector8.push_back(TriFillSubsector8_2_SSE2);
|
||||||
|
TriFillSubsector8.push_back(TriFillSubsector8_3_SSE2);
|
||||||
|
TriFillSubsector8.push_back(TriFillSubsector8_4_SSE2);
|
||||||
|
TriFillSubsector8.push_back(TriFillSubsector8_5_SSE2);
|
||||||
|
TriFillSubsector8.push_back(TriFillSubsector8_6_SSE2);
|
||||||
|
TriFillSubsector8.push_back(TriFillSubsector8_7_SSE2);
|
||||||
|
TriFillSubsector8.push_back(TriFillSubsector8_8_SSE2);
|
||||||
|
TriFillSubsector8.push_back(TriFillSubsector8_9_SSE2);
|
||||||
|
TriFillSubsector8.push_back(TriFillSubsector8_10_SSE2);
|
||||||
|
TriFillSubsector8.push_back(TriFillSubsector8_11_SSE2);
|
||||||
|
TriFillSubsector8.push_back(TriFillSubsector8_12_SSE2);
|
||||||
|
TriFillSubsector32.push_back(TriFillSubsector32_0_SSE2);
|
||||||
|
TriFillSubsector32.push_back(TriFillSubsector32_1_SSE2);
|
||||||
|
TriFillSubsector32.push_back(TriFillSubsector32_2_SSE2);
|
||||||
|
TriFillSubsector32.push_back(TriFillSubsector32_3_SSE2);
|
||||||
|
TriFillSubsector32.push_back(TriFillSubsector32_4_SSE2);
|
||||||
|
TriFillSubsector32.push_back(TriFillSubsector32_5_SSE2);
|
||||||
|
TriFillSubsector32.push_back(TriFillSubsector32_6_SSE2);
|
||||||
|
TriFillSubsector32.push_back(TriFillSubsector32_7_SSE2);
|
||||||
|
TriFillSubsector32.push_back(TriFillSubsector32_8_SSE2);
|
||||||
|
TriFillSubsector32.push_back(TriFillSubsector32_9_SSE2);
|
||||||
|
TriFillSubsector32.push_back(TriFillSubsector32_10_SSE2);
|
||||||
|
TriFillSubsector32.push_back(TriFillSubsector32_11_SSE2);
|
||||||
|
TriFillSubsector32.push_back(TriFillSubsector32_12_SSE2);
|
||||||
|
TriStencil = TriStencil_SSE2;
|
||||||
|
TriStencilClose = TriStencilClose_SSE2;
|
||||||
|
}
|
||||||
|
|
||||||
Drawers *Drawers::Instance()
|
Drawers *Drawers::Instance()
|
||||||
{
|
{
|
||||||
static Drawers drawers;
|
static Drawers drawers;
|
||||||
static bool firstcall = true;
|
|
||||||
|
|
||||||
if (!firstcall)
|
|
||||||
return &drawers;
|
|
||||||
|
|
||||||
drawers.DrawColumn = DrawColumn_SSE2;
|
|
||||||
drawers.DrawColumnAdd = DrawColumnAdd_SSE2;
|
|
||||||
drawers.DrawColumnShaded = DrawColumnShaded_SSE2;
|
|
||||||
drawers.DrawColumnAddClamp = DrawColumnAddClamp_SSE2;
|
|
||||||
drawers.DrawColumnSubClamp = DrawColumnSubClamp_SSE2;
|
|
||||||
drawers.DrawColumnRevSubClamp = DrawColumnRevSubClamp_SSE2;
|
|
||||||
drawers.DrawColumnTranslated = DrawColumnTranslated_SSE2;
|
|
||||||
drawers.DrawColumnTlatedAdd = DrawColumnTlatedAdd_SSE2;
|
|
||||||
drawers.DrawColumnAddClampTranslated = DrawColumnAddClampTranslated_SSE2;
|
|
||||||
drawers.DrawColumnSubClampTranslated = DrawColumnSubClampTranslated_SSE2;
|
|
||||||
drawers.DrawColumnRevSubClampTranslated = DrawColumnRevSubClampTranslated_SSE2;
|
|
||||||
drawers.FillColumn = FillColumn_SSE2;
|
|
||||||
drawers.FillColumnAdd = FillColumnAdd_SSE2;
|
|
||||||
drawers.FillColumnAddClamp = FillColumnAddClamp_SSE2;
|
|
||||||
drawers.FillColumnSubClamp = FillColumnSubClamp_SSE2;
|
|
||||||
drawers.FillColumnRevSubClamp = FillColumnRevSubClamp_SSE2;
|
|
||||||
drawers.DrawColumnRt1 = DrawColumnRt1_SSE2;
|
|
||||||
drawers.DrawColumnRt1Copy = DrawColumnRt1Copy_SSE2;
|
|
||||||
drawers.DrawColumnRt1Add = DrawColumnRt1Add_SSE2;
|
|
||||||
drawers.DrawColumnRt1Shaded = DrawColumnRt1Shaded_SSE2;
|
|
||||||
drawers.DrawColumnRt1AddClamp = DrawColumnRt1AddClamp_SSE2;
|
|
||||||
drawers.DrawColumnRt1SubClamp = DrawColumnRt1SubClamp_SSE2;
|
|
||||||
drawers.DrawColumnRt1RevSubClamp = DrawColumnRt1RevSubClamp_SSE2;
|
|
||||||
drawers.DrawColumnRt1Translated = DrawColumnRt1Translated_SSE2;
|
|
||||||
drawers.DrawColumnRt1TlatedAdd = DrawColumnRt1TlatedAdd_SSE2;
|
|
||||||
drawers.DrawColumnRt1AddClampTranslated = DrawColumnRt1AddClampTranslated_SSE2;
|
|
||||||
drawers.DrawColumnRt1SubClampTranslated = DrawColumnRt1SubClampTranslated_SSE2;
|
|
||||||
drawers.DrawColumnRt1RevSubClampTranslated = DrawColumnRt1RevSubClampTranslated_SSE2;
|
|
||||||
drawers.DrawColumnRt4 = DrawColumnRt4_SSE2;
|
|
||||||
drawers.DrawColumnRt4Copy = DrawColumnRt4Copy_SSE2;
|
|
||||||
drawers.DrawColumnRt4Add = DrawColumnRt4Add_SSE2;
|
|
||||||
drawers.DrawColumnRt4Shaded = DrawColumnRt4Shaded_SSE2;
|
|
||||||
drawers.DrawColumnRt4AddClamp = DrawColumnRt4AddClamp_SSE2;
|
|
||||||
drawers.DrawColumnRt4SubClamp = DrawColumnRt4SubClamp_SSE2;
|
|
||||||
drawers.DrawColumnRt4RevSubClamp = DrawColumnRt4RevSubClamp_SSE2;
|
|
||||||
drawers.DrawColumnRt4Translated = DrawColumnRt4Translated_SSE2;
|
|
||||||
drawers.DrawColumnRt4TlatedAdd = DrawColumnRt4TlatedAdd_SSE2;
|
|
||||||
drawers.DrawColumnRt4AddClampTranslated = DrawColumnRt4AddClampTranslated_SSE2;
|
|
||||||
drawers.DrawColumnRt4SubClampTranslated = DrawColumnRt4SubClampTranslated_SSE2;
|
|
||||||
drawers.DrawColumnRt4RevSubClampTranslated = DrawColumnRt4RevSubClampTranslated_SSE2;
|
|
||||||
drawers.DrawSpan = DrawSpan_SSE2;
|
|
||||||
drawers.DrawSpanMasked = DrawSpanMasked_SSE2;
|
|
||||||
drawers.DrawSpanTranslucent = DrawSpanTranslucent_SSE2;
|
|
||||||
drawers.DrawSpanMaskedTranslucent = DrawSpanMaskedTranslucent_SSE2;
|
|
||||||
drawers.DrawSpanAddClamp = DrawSpanAddClamp_SSE2;
|
|
||||||
drawers.DrawSpanMaskedAddClamp = DrawSpanMaskedAddClamp_SSE2;
|
|
||||||
drawers.vlinec1 = vlinec1_SSE2;
|
|
||||||
drawers.vlinec4 = vlinec4_SSE2;
|
|
||||||
drawers.mvlinec1 = mvlinec1_SSE2;
|
|
||||||
drawers.mvlinec4 = mvlinec4_SSE2;
|
|
||||||
drawers.tmvline1_add = tmvline1_add_SSE2;
|
|
||||||
drawers.tmvline4_add = tmvline4_add_SSE2;
|
|
||||||
drawers.tmvline1_addclamp = tmvline1_addclamp_SSE2;
|
|
||||||
drawers.tmvline4_addclamp = tmvline4_addclamp_SSE2;
|
|
||||||
drawers.tmvline1_subclamp = tmvline1_subclamp_SSE2;
|
|
||||||
drawers.tmvline4_subclamp = tmvline4_subclamp_SSE2;
|
|
||||||
drawers.tmvline1_revsubclamp = tmvline1_revsubclamp_SSE2;
|
|
||||||
drawers.tmvline4_revsubclamp = tmvline4_revsubclamp_SSE2;
|
|
||||||
drawers.DrawSky1 = DrawSky1_SSE2;
|
|
||||||
drawers.DrawSky4 = DrawSky4_SSE2;
|
|
||||||
drawers.DrawDoubleSky1 = DrawDoubleSky1_SSE2;
|
|
||||||
drawers.DrawDoubleSky4 = DrawDoubleSky4_SSE2;
|
|
||||||
drawers.TriDrawNormal8.push_back(TriDrawNormal8_0_SSE2);
|
|
||||||
drawers.TriDrawNormal8.push_back(TriDrawNormal8_1_SSE2);
|
|
||||||
drawers.TriDrawNormal8.push_back(TriDrawNormal8_2_SSE2);
|
|
||||||
drawers.TriDrawNormal8.push_back(TriDrawNormal8_3_SSE2);
|
|
||||||
drawers.TriDrawNormal8.push_back(TriDrawNormal8_4_SSE2);
|
|
||||||
drawers.TriDrawNormal8.push_back(TriDrawNormal8_5_SSE2);
|
|
||||||
drawers.TriDrawNormal8.push_back(TriDrawNormal8_6_SSE2);
|
|
||||||
drawers.TriDrawNormal8.push_back(TriDrawNormal8_7_SSE2);
|
|
||||||
drawers.TriDrawNormal8.push_back(TriDrawNormal8_8_SSE2);
|
|
||||||
drawers.TriDrawNormal8.push_back(TriDrawNormal8_9_SSE2);
|
|
||||||
drawers.TriDrawNormal8.push_back(TriDrawNormal8_10_SSE2);
|
|
||||||
drawers.TriDrawNormal8.push_back(TriDrawNormal8_11_SSE2);
|
|
||||||
drawers.TriDrawNormal8.push_back(TriDrawNormal8_12_SSE2);
|
|
||||||
drawers.TriDrawNormal32.push_back(TriDrawNormal32_0_SSE2);
|
|
||||||
drawers.TriDrawNormal32.push_back(TriDrawNormal32_1_SSE2);
|
|
||||||
drawers.TriDrawNormal32.push_back(TriDrawNormal32_2_SSE2);
|
|
||||||
drawers.TriDrawNormal32.push_back(TriDrawNormal32_3_SSE2);
|
|
||||||
drawers.TriDrawNormal32.push_back(TriDrawNormal32_4_SSE2);
|
|
||||||
drawers.TriDrawNormal32.push_back(TriDrawNormal32_5_SSE2);
|
|
||||||
drawers.TriDrawNormal32.push_back(TriDrawNormal32_6_SSE2);
|
|
||||||
drawers.TriDrawNormal32.push_back(TriDrawNormal32_7_SSE2);
|
|
||||||
drawers.TriDrawNormal32.push_back(TriDrawNormal32_8_SSE2);
|
|
||||||
drawers.TriDrawNormal32.push_back(TriDrawNormal32_9_SSE2);
|
|
||||||
drawers.TriDrawNormal32.push_back(TriDrawNormal32_10_SSE2);
|
|
||||||
drawers.TriDrawNormal32.push_back(TriDrawNormal32_11_SSE2);
|
|
||||||
drawers.TriDrawNormal32.push_back(TriDrawNormal32_12_SSE2);
|
|
||||||
drawers.TriFillNormal8.push_back(TriFillNormal8_0_SSE2);
|
|
||||||
drawers.TriFillNormal8.push_back(TriFillNormal8_1_SSE2);
|
|
||||||
drawers.TriFillNormal8.push_back(TriFillNormal8_2_SSE2);
|
|
||||||
drawers.TriFillNormal8.push_back(TriFillNormal8_3_SSE2);
|
|
||||||
drawers.TriFillNormal8.push_back(TriFillNormal8_4_SSE2);
|
|
||||||
drawers.TriFillNormal8.push_back(TriFillNormal8_5_SSE2);
|
|
||||||
drawers.TriFillNormal8.push_back(TriFillNormal8_6_SSE2);
|
|
||||||
drawers.TriFillNormal8.push_back(TriFillNormal8_7_SSE2);
|
|
||||||
drawers.TriFillNormal8.push_back(TriFillNormal8_8_SSE2);
|
|
||||||
drawers.TriFillNormal8.push_back(TriFillNormal8_9_SSE2);
|
|
||||||
drawers.TriFillNormal8.push_back(TriFillNormal8_10_SSE2);
|
|
||||||
drawers.TriFillNormal8.push_back(TriFillNormal8_11_SSE2);
|
|
||||||
drawers.TriFillNormal8.push_back(TriFillNormal8_12_SSE2);
|
|
||||||
drawers.TriFillNormal32.push_back(TriFillNormal32_0_SSE2);
|
|
||||||
drawers.TriFillNormal32.push_back(TriFillNormal32_1_SSE2);
|
|
||||||
drawers.TriFillNormal32.push_back(TriFillNormal32_2_SSE2);
|
|
||||||
drawers.TriFillNormal32.push_back(TriFillNormal32_3_SSE2);
|
|
||||||
drawers.TriFillNormal32.push_back(TriFillNormal32_4_SSE2);
|
|
||||||
drawers.TriFillNormal32.push_back(TriFillNormal32_5_SSE2);
|
|
||||||
drawers.TriFillNormal32.push_back(TriFillNormal32_6_SSE2);
|
|
||||||
drawers.TriFillNormal32.push_back(TriFillNormal32_7_SSE2);
|
|
||||||
drawers.TriFillNormal32.push_back(TriFillNormal32_8_SSE2);
|
|
||||||
drawers.TriFillNormal32.push_back(TriFillNormal32_9_SSE2);
|
|
||||||
drawers.TriFillNormal32.push_back(TriFillNormal32_10_SSE2);
|
|
||||||
drawers.TriFillNormal32.push_back(TriFillNormal32_11_SSE2);
|
|
||||||
drawers.TriFillNormal32.push_back(TriFillNormal32_12_SSE2);
|
|
||||||
drawers.TriDrawSubsector8.push_back(TriDrawSubsector8_0_SSE2);
|
|
||||||
drawers.TriDrawSubsector8.push_back(TriDrawSubsector8_1_SSE2);
|
|
||||||
drawers.TriDrawSubsector8.push_back(TriDrawSubsector8_2_SSE2);
|
|
||||||
drawers.TriDrawSubsector8.push_back(TriDrawSubsector8_3_SSE2);
|
|
||||||
drawers.TriDrawSubsector8.push_back(TriDrawSubsector8_4_SSE2);
|
|
||||||
drawers.TriDrawSubsector8.push_back(TriDrawSubsector8_5_SSE2);
|
|
||||||
drawers.TriDrawSubsector8.push_back(TriDrawSubsector8_6_SSE2);
|
|
||||||
drawers.TriDrawSubsector8.push_back(TriDrawSubsector8_7_SSE2);
|
|
||||||
drawers.TriDrawSubsector8.push_back(TriDrawSubsector8_8_SSE2);
|
|
||||||
drawers.TriDrawSubsector8.push_back(TriDrawSubsector8_9_SSE2);
|
|
||||||
drawers.TriDrawSubsector8.push_back(TriDrawSubsector8_10_SSE2);
|
|
||||||
drawers.TriDrawSubsector8.push_back(TriDrawSubsector8_11_SSE2);
|
|
||||||
drawers.TriDrawSubsector8.push_back(TriDrawSubsector8_12_SSE2);
|
|
||||||
drawers.TriDrawSubsector32.push_back(TriDrawSubsector32_0_SSE2);
|
|
||||||
drawers.TriDrawSubsector32.push_back(TriDrawSubsector32_1_SSE2);
|
|
||||||
drawers.TriDrawSubsector32.push_back(TriDrawSubsector32_2_SSE2);
|
|
||||||
drawers.TriDrawSubsector32.push_back(TriDrawSubsector32_3_SSE2);
|
|
||||||
drawers.TriDrawSubsector32.push_back(TriDrawSubsector32_4_SSE2);
|
|
||||||
drawers.TriDrawSubsector32.push_back(TriDrawSubsector32_5_SSE2);
|
|
||||||
drawers.TriDrawSubsector32.push_back(TriDrawSubsector32_6_SSE2);
|
|
||||||
drawers.TriDrawSubsector32.push_back(TriDrawSubsector32_7_SSE2);
|
|
||||||
drawers.TriDrawSubsector32.push_back(TriDrawSubsector32_8_SSE2);
|
|
||||||
drawers.TriDrawSubsector32.push_back(TriDrawSubsector32_9_SSE2);
|
|
||||||
drawers.TriDrawSubsector32.push_back(TriDrawSubsector32_10_SSE2);
|
|
||||||
drawers.TriDrawSubsector32.push_back(TriDrawSubsector32_11_SSE2);
|
|
||||||
drawers.TriDrawSubsector32.push_back(TriDrawSubsector32_12_SSE2);
|
|
||||||
drawers.TriFillSubsector8.push_back(TriFillSubsector8_0_SSE2);
|
|
||||||
drawers.TriFillSubsector8.push_back(TriFillSubsector8_1_SSE2);
|
|
||||||
drawers.TriFillSubsector8.push_back(TriFillSubsector8_2_SSE2);
|
|
||||||
drawers.TriFillSubsector8.push_back(TriFillSubsector8_3_SSE2);
|
|
||||||
drawers.TriFillSubsector8.push_back(TriFillSubsector8_4_SSE2);
|
|
||||||
drawers.TriFillSubsector8.push_back(TriFillSubsector8_5_SSE2);
|
|
||||||
drawers.TriFillSubsector8.push_back(TriFillSubsector8_6_SSE2);
|
|
||||||
drawers.TriFillSubsector8.push_back(TriFillSubsector8_7_SSE2);
|
|
||||||
drawers.TriFillSubsector8.push_back(TriFillSubsector8_8_SSE2);
|
|
||||||
drawers.TriFillSubsector8.push_back(TriFillSubsector8_9_SSE2);
|
|
||||||
drawers.TriFillSubsector8.push_back(TriFillSubsector8_10_SSE2);
|
|
||||||
drawers.TriFillSubsector8.push_back(TriFillSubsector8_11_SSE2);
|
|
||||||
drawers.TriFillSubsector8.push_back(TriFillSubsector8_12_SSE2);
|
|
||||||
drawers.TriFillSubsector32.push_back(TriFillSubsector32_0_SSE2);
|
|
||||||
drawers.TriFillSubsector32.push_back(TriFillSubsector32_1_SSE2);
|
|
||||||
drawers.TriFillSubsector32.push_back(TriFillSubsector32_2_SSE2);
|
|
||||||
drawers.TriFillSubsector32.push_back(TriFillSubsector32_3_SSE2);
|
|
||||||
drawers.TriFillSubsector32.push_back(TriFillSubsector32_4_SSE2);
|
|
||||||
drawers.TriFillSubsector32.push_back(TriFillSubsector32_5_SSE2);
|
|
||||||
drawers.TriFillSubsector32.push_back(TriFillSubsector32_6_SSE2);
|
|
||||||
drawers.TriFillSubsector32.push_back(TriFillSubsector32_7_SSE2);
|
|
||||||
drawers.TriFillSubsector32.push_back(TriFillSubsector32_8_SSE2);
|
|
||||||
drawers.TriFillSubsector32.push_back(TriFillSubsector32_9_SSE2);
|
|
||||||
drawers.TriFillSubsector32.push_back(TriFillSubsector32_10_SSE2);
|
|
||||||
drawers.TriFillSubsector32.push_back(TriFillSubsector32_11_SSE2);
|
|
||||||
drawers.TriFillSubsector32.push_back(TriFillSubsector32_12_SSE2);
|
|
||||||
drawers.TriStencil = TriStencil_SSE2;
|
|
||||||
drawers.TriStencilClose = TriStencilClose_SSE2;
|
|
||||||
|
|
||||||
firstcall = false;
|
|
||||||
return &drawers;
|
return &drawers;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -340,4 +340,7 @@ public:
|
||||||
std::vector<void(*)(const TriDrawTriangleArgs *, WorkerThreadData *)> TriFillSubsector32;
|
std::vector<void(*)(const TriDrawTriangleArgs *, WorkerThreadData *)> TriFillSubsector32;
|
||||||
void(*TriStencil)(const TriDrawTriangleArgs *, WorkerThreadData *) = nullptr;
|
void(*TriStencil)(const TriDrawTriangleArgs *, WorkerThreadData *) = nullptr;
|
||||||
void(*TriStencilClose)(const TriDrawTriangleArgs *, WorkerThreadData *) = nullptr;
|
void(*TriStencilClose)(const TriDrawTriangleArgs *, WorkerThreadData *) = nullptr;
|
||||||
|
|
||||||
|
private:
|
||||||
|
Drawers();
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue