mirror of
https://github.com/yquake2/yquake2remaster.git
synced 2024-11-14 00:41:03 +00:00
YQ2_ALIGNAS_*() in common.h
This commit is contained in:
parent
bebd9e73b3
commit
f9c77b98af
3 changed files with 17 additions and 16 deletions
|
@ -374,21 +374,6 @@ SCR_ReadNextFrame(void)
|
||||||
int r;
|
int r;
|
||||||
int command;
|
int command;
|
||||||
|
|
||||||
// TODO: in case we need this anywhere else, put it in a header!
|
|
||||||
#if __STDC_VERSION__ >= 201112L // C11 or newer
|
|
||||||
#define YQ2_ALIGNAS_SIZE(SIZE) _Alignas(SIZE)
|
|
||||||
#define YQ2_ALIGNAS_TYPE(TYPE) _Alignas(TYPE)
|
|
||||||
#elif defined(__GNUC__) // GCC and clang should support this attribute
|
|
||||||
#define YQ2_ALIGNAS_SIZE(SIZE) __attribute__(( __aligned__(SIZE) ))
|
|
||||||
#define YQ2_ALIGNAS_TYPE(TYPE) __attribute__(( __aligned__(__alignof__(TYPE)) ))
|
|
||||||
#elif defined(_MSC_VER)
|
|
||||||
#define YQ2_ALIGNAS_SIZE(SIZE) __declspec( align(SIZE) )
|
|
||||||
#define YQ2_ALIGNAS_TYPE(TYPE) __declspec( align( __alignof(TYPE) ) )
|
|
||||||
#else
|
|
||||||
#warning "Please add a case for your compiler here to align correctly"
|
|
||||||
#define YQ2_ALIGNAS_TYPE(TYPE)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// the samples array is used as bytes or shorts, depending on bitrate (cin.s_width)
|
// the samples array is used as bytes or shorts, depending on bitrate (cin.s_width)
|
||||||
// so we need to make sure to align it correctly
|
// so we need to make sure to align it correctly
|
||||||
YQ2_ALIGNAS_TYPE(short) byte samples[22050 / 14 * 4];
|
YQ2_ALIGNAS_TYPE(short) byte samples[22050 / 14 * 4];
|
||||||
|
|
|
@ -53,6 +53,22 @@
|
||||||
#define CFGDIR ".yq2"
|
#define CFGDIR ".yq2"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// stuff to align variables/arrays
|
||||||
|
#if __STDC_VERSION__ >= 201112L // C11 or newer
|
||||||
|
#define YQ2_ALIGNAS_SIZE(SIZE) _Alignas(SIZE)
|
||||||
|
#define YQ2_ALIGNAS_TYPE(TYPE) _Alignas(TYPE)
|
||||||
|
#elif defined(__GNUC__) // GCC and clang should support this attribute
|
||||||
|
#define YQ2_ALIGNAS_SIZE(SIZE) __attribute__(( __aligned__(SIZE) ))
|
||||||
|
#define YQ2_ALIGNAS_TYPE(TYPE) __attribute__(( __aligned__(__alignof__(TYPE)) ))
|
||||||
|
#elif defined(_MSC_VER)
|
||||||
|
#define YQ2_ALIGNAS_SIZE(SIZE) __declspec( align(SIZE) )
|
||||||
|
#define YQ2_ALIGNAS_TYPE(TYPE) __declspec( align( __alignof(TYPE) ) )
|
||||||
|
#else
|
||||||
|
#warning "Please add a case for your compiler here to align correctly"
|
||||||
|
#define YQ2_ALIGNAS_TYPE(TYPE)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* ================================================================== */
|
/* ================================================================== */
|
||||||
|
|
||||||
typedef struct sizebuf_s
|
typedef struct sizebuf_s
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
|
|
||||||
#include "header/server.h"
|
#include "header/server.h"
|
||||||
|
|
||||||
byte fatpvs[65536 / 8];
|
static YQ2_ALIGNAS_TYPE(long) byte fatpvs[65536 / 8];
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Writes a delta update of an entity_state_t list to the message.
|
* Writes a delta update of an entity_state_t list to the message.
|
||||||
|
|
Loading…
Reference in a new issue