Added vsnprintf implementation.

This commit is contained in:
Branimir Karadžić
2017-02-04 22:27:49 -08:00
parent 273dc78136
commit 89248e2874
4 changed files with 429 additions and 29 deletions

View File

@@ -9,7 +9,6 @@
#include <stdint.h> // uint32_t
#include <stdlib.h> // size_t
#include <stddef.h> // ptrdiff_t
#include <string.h> // memcpy
#include "config.h"
#include "macros.h"
@@ -46,31 +45,23 @@ namespace bx
Ty tmp = _a; _a = _b; _b = tmp;
}
/// Scatter/gather memcpy.
inline void memCopy(void* _dst, const void* _src, uint32_t _size, uint32_t _num, uint32_t _srcPitch, uint32_t _dstPitch)
{
const uint8_t* src = (const uint8_t*)_src;
uint8_t* dst = (uint8_t*)_dst;
for (uint32_t ii = 0; ii < _num; ++ii)
{
memcpy(dst, src, _size);
src += _srcPitch;
dst += _dstPitch;
}
}
///
void* memCopy(void* _dst, const void* _src, size_t _numBytes);
///
inline void gather(void* _dst, const void* _src, uint32_t _size, uint32_t _num, uint32_t _srcPitch)
{
memCopy(_dst, _src, _size, _num, _srcPitch, _size);
}
void memCopy(void* _dst, const void* _src, uint32_t _size, uint32_t _num, uint32_t _srcPitch, uint32_t _dstPitch);
///
inline void scatter(void* _dst, const void* _src, uint32_t _size, uint32_t _num, uint32_t _dstPitch)
{
memCopy(_dst, _src, _size, _num, _size, _dstPitch);
}
void gather(void* _dst, const void* _src, uint32_t _size, uint32_t _num, uint32_t _srcPitch);
///
void scatter(void* _dst, const void* _src, uint32_t _size, uint32_t _num, uint32_t _dstPitch);
///
void* memMove(void* _dst, const void* _src, size_t _numBytes);
///
void* memSet(void* _dst, uint8_t _ch, size_t _numBytes);
} // namespace bx