예제 #1
0
/* ------------------------------------------------------------------------- */
void primitives_init_alphaComp_opt(primitives_t* prims)
{
	generic = primitives_get_generic();
	primitives_init_alphaComp(prims);
#ifdef WITH_IPP
	prims->alphaComp_argb = ipp_alphaComp_argb;
#elif defined(WITH_SSE2)

	if (IsProcessorFeaturePresent(PF_SSE2_INSTRUCTIONS_AVAILABLE)
	    && IsProcessorFeaturePresent(PF_SSE3_INSTRUCTIONS_AVAILABLE))    /* for LDDQU */
	{
		prims->alphaComp_argb = sse2_alphaComp_argb;
	}

#endif
}
예제 #2
0
/* ------------------------------------------------------------------------- */
static BOOL CALLBACK primitives_init_generic(PINIT_ONCE once, PVOID param, PVOID* context)
{
	WINPR_UNUSED(once);
	WINPR_UNUSED(param);
	WINPR_UNUSED(context);
	primitives_init_add(&pPrimitivesGeneric);
	primitives_init_andor(&pPrimitivesGeneric);
	primitives_init_alphaComp(&pPrimitivesGeneric);
	primitives_init_copy(&pPrimitivesGeneric);
	primitives_init_set(&pPrimitivesGeneric);
	primitives_init_shift(&pPrimitivesGeneric);
	primitives_init_sign(&pPrimitivesGeneric);
	primitives_init_colors(&pPrimitivesGeneric);
	primitives_init_YCoCg(&pPrimitivesGeneric);
	primitives_init_YUV(&pPrimitivesGeneric);
	return TRUE;
}
예제 #3
0
/* ------------------------------------------------------------------------- */
void primitives_init(void)
{
	if (pPrimitives == NULL)
	{
		pPrimitives = calloc(1, sizeof(primitives_t));

		if (pPrimitives == NULL)
			return;
	}

	/* Now call each section's initialization routine. */
	primitives_init_add(pPrimitives);
	primitives_init_andor(pPrimitives);
	primitives_init_alphaComp(pPrimitives);
	primitives_init_copy(pPrimitives);
	primitives_init_set(pPrimitives);
	primitives_init_shift(pPrimitives);
	primitives_init_sign(pPrimitives);
	primitives_init_colors(pPrimitives);
}