Switch iffy translation code to lookup table translation.

This commit is contained in:
Branimir Karadžić 2016-08-10 20:36:21 -07:00
parent 1804ba77c1
commit 2c861766e8
1 changed files with 18 additions and 22 deletions

View File

@ -693,30 +693,26 @@ namespace
}
}
static const uint64_t s_blend[] =
{
BGFX_STATE_BLEND_ZERO,
BGFX_STATE_BLEND_ONE,
BGFX_STATE_BLEND_SRC_COLOR,
BGFX_STATE_BLEND_INV_SRC_COLOR,
BGFX_STATE_BLEND_DST_COLOR,
BGFX_STATE_BLEND_INV_DST_COLOR,
BGFX_STATE_BLEND_SRC_ALPHA,
BGFX_STATE_BLEND_INV_SRC_ALPHA,
BGFX_STATE_BLEND_DST_ALPHA,
BGFX_STATE_BLEND_INV_DST_ALPHA,
BGFX_STATE_BLEND_SRC_ALPHA_SAT,
};
static uint64_t glnvg_convertBlendFuncFactor(int factor)
{
if (factor == NVG_ZERO)
return BGFX_STATE_BLEND_ZERO;
if (factor == NVG_ONE)
return BGFX_STATE_BLEND_ONE;
if (factor == NVG_SRC_COLOR)
return BGFX_STATE_BLEND_SRC_COLOR;
if (factor == NVG_ONE_MINUS_SRC_COLOR)
return BGFX_STATE_BLEND_INV_SRC_COLOR;
if (factor == NVG_DST_COLOR)
return BGFX_STATE_BLEND_DST_COLOR;
if (factor == NVG_ONE_MINUS_DST_COLOR)
return BGFX_STATE_BLEND_INV_DST_COLOR;
if (factor == NVG_SRC_ALPHA)
return BGFX_STATE_BLEND_SRC_ALPHA;
if (factor == NVG_ONE_MINUS_SRC_ALPHA)
return BGFX_STATE_BLEND_INV_SRC_ALPHA;
if (factor == NVG_DST_ALPHA)
return BGFX_STATE_BLEND_DST_ALPHA;
if (factor == NVG_ONE_MINUS_DST_ALPHA)
return BGFX_STATE_BLEND_INV_DST_ALPHA;
if (factor == NVG_SRC_ALPHA_SATURATE)
return BGFX_STATE_BLEND_SRC_ALPHA_SAT;
const uint32_t numtz = bx::uint32_cnttz(factor);
const uint32_t idx = bx::uint32_min(numtz, BX_COUNTOF(s_blend)-1);
return s_blend[idx];
}
static uint64_t glnvg__blendCompositeOperation(NVGcompositeOperationState op)