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); }
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); } }
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 }