コード例 #1
0
void VDPixmapStretchBlt_Any32_nearest_reference(VDPixmapReferenceStretchBltParameters params) {
	do {
		uint32 *dstp = (uint32 *)params.dst;
		const uint32 *srcp = (const uint32 *)params.src;
		uint32 u = params.u;

		if (params.xprecopy) {
			VDMemset32(dstp, *(const uint32 *)((const char *)params.src + params.xprepos), params.xprecopy);
			dstp += params.xprecopy;
		}

		sint32 wt = params.dx;
		if (wt > 0)
			do {
				*dstp++ = *srcp;

				uint32 ut = u + params.dudx;
				srcp += ut<u;
				srcp += params.uinc;
				u = ut;
			} while(--wt);

		if (params.xpostcopy)
			VDMemset32(dstp, *(const uint32 *)((const char *)params.src + params.xpostpos), params.xpostcopy);

		params.advance();
	} while(--params.dy);
}
コード例 #2
0
ファイル: memory.cpp プロジェクト: Tphive/mpc-be
void VDMemset32Rect(void *dst, ptrdiff_t pitch, uint32 value, size_t w, size_t h) {
	if (w>0 && h>0) {
		do {
			VDMemset32(dst, value, w);
			dst = (char *)dst + pitch;
		} while(--h);
	}
}
コード例 #3
0
ファイル: memory.cpp プロジェクト: Tphive/mpc-be
void VDMemsetPointer(void *dst, const void *value, size_t count) {
#if defined(VD_CPU_X86) || defined(VD_CPU_ARM)
	VDMemset32(dst, (uint32)(size_t)value, count);
#elif defined(VD_CPU_AMD64)
	VDMemset64(dst, (uint64)(size_t)value, count);
#else
	#error Unknown pointer size
#endif
}