add INLINE macro for less mouthful static-inline declarations
This commit is contained in:
parent
f7b2031e7f
commit
583f0dbf26
9 changed files with 45 additions and 44 deletions
|
@ -40,7 +40,7 @@ typedef enum EndingID {
|
|||
ENDING(ENDING_BAD_2) \
|
||||
ENDING(ENDING_BAD_3) \
|
||||
|
||||
static inline attr_must_inline bool ending_is_good(EndingID end) {
|
||||
INLINE bool ending_is_good(EndingID end) {
|
||||
#define ENDING(e) (end == (e)) ||
|
||||
return (
|
||||
GOOD_ENDINGS
|
||||
|
@ -48,7 +48,7 @@ static inline attr_must_inline bool ending_is_good(EndingID end) {
|
|||
#undef ENDING
|
||||
}
|
||||
|
||||
static inline attr_must_inline bool ending_is_bad(EndingID end) {
|
||||
INLINE bool ending_is_bad(EndingID end) {
|
||||
#define ENDING(e) (end == (e)) ||
|
||||
return (
|
||||
BAD_ENDINGS
|
||||
|
|
|
@ -109,7 +109,7 @@ struct EntityInterface {
|
|||
ENTITY_INTERFACE_BASE(EntityInterface);
|
||||
};
|
||||
|
||||
static inline attr_must_inline const char* ent_type_name(EntityType type) {
|
||||
INLINE const char* ent_type_name(EntityType type) {
|
||||
switch(type) {
|
||||
#define ENT_TYPE(typename, id) case id: return #id;
|
||||
ENT_TYPES
|
||||
|
|
|
@ -31,7 +31,7 @@ void htutil_init(void);
|
|||
* Hash function for 32-bit integers
|
||||
* NOTE: assuming hash_t stays uint32_t, this function has no collisions.
|
||||
*/
|
||||
static inline attr_must_inline hash_t htutil_hashfunc_uint32(uint32_t x) {
|
||||
INLINE hash_t htutil_hashfunc_uint32(uint32_t x) {
|
||||
x = ((x >> 16) ^ x) * 0x45d9f3b;
|
||||
x = ((x >> 16) ^ x) * 0x45d9f3b;
|
||||
x = (x >> 16) ^ x;
|
||||
|
@ -43,7 +43,7 @@ static inline attr_must_inline hash_t htutil_hashfunc_uint32(uint32_t x) {
|
|||
*
|
||||
* Hash function for 64-bit integers.
|
||||
*/
|
||||
static inline attr_must_inline hash_t htutil_hashfunc_uint64(uint64_t x) {
|
||||
INLINE hash_t htutil_hashfunc_uint64(uint64_t x) {
|
||||
x = (x ^ (x >> 30)) * UINT64_C(0xbf58476d1ce4e5b9);
|
||||
x = (x ^ (x >> 27)) * UINT64_C(0x94d049bb133111eb);
|
||||
x = x ^ (x >> 31);
|
||||
|
|
|
@ -18,7 +18,7 @@ static uint64_t prev_hires_time;
|
|||
static uint64_t prev_hires_freq;
|
||||
static uint64_t fast_path_mul;
|
||||
|
||||
static inline attr_must_inline void set_freq(uint64_t freq) {
|
||||
INLINE void set_freq(uint64_t freq) {
|
||||
prev_hires_freq = freq;
|
||||
lldiv_t d = lldiv(HRTIME_RESOLUTION, freq);
|
||||
fast_path_mul = d.quot * (d.rem == 0);
|
||||
|
|
|
@ -736,22 +736,22 @@ VertexAttribFormat* r_vertex_attrib_format_interleaved(
|
|||
* Small convenience wrappers
|
||||
*/
|
||||
|
||||
static inline attr_must_inline
|
||||
INLINE
|
||||
void r_enable(RendererCapability cap) {
|
||||
r_capability(cap, true);
|
||||
}
|
||||
|
||||
static inline attr_must_inline
|
||||
INLINE
|
||||
void r_disable(RendererCapability cap) {
|
||||
r_capability(cap, false);
|
||||
}
|
||||
|
||||
static inline attr_must_inline
|
||||
INLINE
|
||||
ShaderProgram* r_shader_get(const char *name) {
|
||||
return get_resource_data(RES_SHADER_PROGRAM, name, RESF_DEFAULT | RESF_UNSAFE);
|
||||
}
|
||||
|
||||
static inline attr_must_inline
|
||||
INLINE
|
||||
ShaderProgram* r_shader_get_optional(const char *name) {
|
||||
ShaderProgram *prog = get_resource_data(RES_SHADER_PROGRAM, name, RESF_OPTIONAL | RESF_UNSAFE);
|
||||
|
||||
|
@ -762,86 +762,86 @@ ShaderProgram* r_shader_get_optional(const char *name) {
|
|||
return prog;
|
||||
}
|
||||
|
||||
static inline attr_must_inline
|
||||
INLINE
|
||||
Texture* r_texture_get(const char *name) {
|
||||
return get_resource_data(RES_TEXTURE, name, RESF_DEFAULT | RESF_UNSAFE);
|
||||
}
|
||||
|
||||
static inline attr_must_inline
|
||||
INLINE
|
||||
void r_mat_translate(float x, float y, float z) {
|
||||
r_mat_translate_v((vec3) { x, y, z });
|
||||
}
|
||||
|
||||
static inline attr_must_inline
|
||||
INLINE
|
||||
void r_mat_rotate(float angle, float nx, float ny, float nz) {
|
||||
r_mat_rotate_v(angle, (vec3) { nx, ny, nz });
|
||||
}
|
||||
|
||||
static inline attr_must_inline
|
||||
INLINE
|
||||
void r_mat_rotate_deg(float angle_degrees, float nx, float ny, float nz) {
|
||||
r_mat_rotate_v(angle_degrees * 0.017453292519943295, (vec3) { nx, ny, nz });
|
||||
}
|
||||
|
||||
static inline attr_must_inline
|
||||
INLINE
|
||||
void r_mat_rotate_deg_v(float angle_degrees, vec3 v) {
|
||||
r_mat_rotate_v(angle_degrees * 0.017453292519943295, v);
|
||||
}
|
||||
|
||||
static inline attr_must_inline
|
||||
INLINE
|
||||
void r_mat_scale(float sx, float sy, float sz) {
|
||||
r_mat_scale_v((vec3) { sx, sy, sz });
|
||||
}
|
||||
|
||||
static inline attr_must_inline
|
||||
INLINE
|
||||
void r_color(const Color *c) {
|
||||
r_color4(c->r, c->g, c->b, c->a);
|
||||
}
|
||||
|
||||
static inline attr_must_inline
|
||||
INLINE
|
||||
void r_color3(float r, float g, float b) {
|
||||
r_color4(r, g, b, 1.0);
|
||||
}
|
||||
|
||||
static inline attr_must_inline attr_nonnull(1)
|
||||
INLINE attr_nonnull(1)
|
||||
void r_shader(const char *prog) {
|
||||
r_shader_ptr(r_shader_get(prog));
|
||||
}
|
||||
|
||||
static inline attr_must_inline
|
||||
INLINE
|
||||
Uniform* r_shader_current_uniform(const char *name) {
|
||||
return r_shader_uniform(r_shader_current(), name);
|
||||
}
|
||||
|
||||
static inline attr_must_inline
|
||||
INLINE
|
||||
void r_clear(ClearBufferFlags flags, const Color *colorval, float depthval) {
|
||||
r_framebuffer_clear(r_framebuffer_current(), flags, colorval, depthval);
|
||||
}
|
||||
|
||||
static inline attr_must_inline attr_nonnull(1)
|
||||
INLINE attr_nonnull(1)
|
||||
void r_draw_model(const char *model) {
|
||||
r_draw_model_ptr(get_resource_data(RES_MODEL, model, RESF_UNSAFE), 0, 0);
|
||||
}
|
||||
|
||||
static inline attr_must_inline attr_nonnull(1)
|
||||
INLINE attr_nonnull(1)
|
||||
void r_draw_model_instanced(const char *model, uint instances, uint base_instance) {
|
||||
r_draw_model_ptr(get_resource_data(RES_MODEL, model, RESF_UNSAFE), instances, base_instance);
|
||||
}
|
||||
|
||||
static inline attr_must_inline
|
||||
INLINE
|
||||
r_capability_bits_t r_capability_bit(RendererCapability cap) {
|
||||
r_capability_bits_t idx = cap;
|
||||
assert(idx < NUM_RCAPS);
|
||||
return (1 << idx);
|
||||
}
|
||||
|
||||
static inline attr_must_inline
|
||||
INLINE
|
||||
r_feature_bits_t r_feature_bit(RendererFeature feat) {
|
||||
r_feature_bits_t idx = feat;
|
||||
assert(idx < NUM_RFEATS);
|
||||
return (1 << idx);
|
||||
}
|
||||
|
||||
static inline attr_must_inline
|
||||
INLINE
|
||||
bool r_supports(RendererFeature feature) {
|
||||
return r_features() & r_feature_bit(feature);
|
||||
}
|
||||
|
|
|
@ -257,11 +257,12 @@ typedef complex max_align_t;
|
|||
#define attr_designated_init
|
||||
#endif
|
||||
|
||||
#define INLINE static inline attr_must_inline __attribute__((gnu_inline, artificial))
|
||||
|
||||
#ifdef NDEBUG
|
||||
#define _ensure_aligned(ptr, alignment) (ptr)
|
||||
#else
|
||||
static inline attr_must_inline
|
||||
void* _ensure_aligned(void *ptr, size_t alignment) {
|
||||
INLINE void *_ensure_aligned(void *ptr, size_t alignment) {
|
||||
assert(((uintptr_t)ptr & (alignment - 1)) == 0);
|
||||
return ptr;
|
||||
}
|
||||
|
|
|
@ -17,13 +17,13 @@ void* memdup(const void *src, size_t size);
|
|||
void inherit_missing_pointers(uint num, void *dest[num], void *const base[num]);
|
||||
bool is_main_thread(void);
|
||||
|
||||
static inline attr_must_inline uint32_t float_to_bits(float f) {
|
||||
INLINE uint32_t float_to_bits(float f) {
|
||||
union { uint32_t i; float f; } u;
|
||||
u.f = f;
|
||||
return u.i;
|
||||
}
|
||||
|
||||
static inline attr_must_inline float bits_to_float(uint32_t i) {
|
||||
INLINE float bits_to_float(uint32_t i) {
|
||||
union { uint32_t i; float f; } u;
|
||||
u.i = i;
|
||||
return u.f;
|
||||
|
|
|
@ -74,52 +74,52 @@ bool point_in_ellipse(complex p, Ellipse e) attr_const;
|
|||
double lineseg_circle_intersect(LineSegment seg, Circle c) attr_const;
|
||||
bool lineseg_ellipse_intersect(LineSegment seg, Ellipse e) attr_const;
|
||||
|
||||
static inline attr_must_inline attr_const
|
||||
INLINE attr_const
|
||||
double rect_x(Rect r) {
|
||||
return creal(r.top_left);
|
||||
}
|
||||
|
||||
static inline attr_must_inline attr_const
|
||||
INLINE attr_const
|
||||
double rect_y(Rect r) {
|
||||
return cimag(r.top_left);
|
||||
}
|
||||
|
||||
static inline attr_must_inline attr_const
|
||||
INLINE attr_const
|
||||
double rect_width(Rect r) {
|
||||
return creal(r.bottom_right) - creal(r.top_left);
|
||||
}
|
||||
|
||||
static inline attr_must_inline attr_const
|
||||
INLINE attr_const
|
||||
double rect_height(Rect r) {
|
||||
return cimag(r.bottom_right) - cimag(r.top_left);
|
||||
}
|
||||
|
||||
static inline attr_must_inline attr_const
|
||||
INLINE attr_const
|
||||
double rect_top(Rect r) {
|
||||
return cimag(r.top_left);
|
||||
}
|
||||
|
||||
static inline attr_must_inline attr_const
|
||||
INLINE attr_const
|
||||
double rect_bottom(Rect r) {
|
||||
return cimag(r.bottom_right);
|
||||
}
|
||||
|
||||
static inline attr_must_inline attr_const
|
||||
INLINE attr_const
|
||||
double rect_left(Rect r) {
|
||||
return creal(r.top_left);
|
||||
}
|
||||
|
||||
static inline attr_must_inline attr_const
|
||||
INLINE attr_const
|
||||
double rect_right(Rect r) {
|
||||
return creal(r.bottom_right);
|
||||
}
|
||||
|
||||
static inline attr_must_inline attr_const
|
||||
INLINE attr_const
|
||||
double rect_area(Rect r) {
|
||||
return rect_width(r) * rect_height(r);
|
||||
}
|
||||
|
||||
static inline attr_must_inline
|
||||
INLINE
|
||||
void rect_move(Rect *r, complex pos) {
|
||||
complex vector = pos - r->top_left;
|
||||
r->top_left += vector;
|
||||
|
|
|
@ -297,7 +297,7 @@ typedef struct int128_bits {
|
|||
uint64_t lo;
|
||||
} int128_bits_t;
|
||||
|
||||
static inline attr_must_inline attr_unused
|
||||
INLINE attr_unused
|
||||
void udiv_128_64(int128_bits_t divident, uint64_t divisor, uint64_t *out_quotient) {
|
||||
/*
|
||||
if(!divident.hi) {
|
||||
|
@ -341,7 +341,7 @@ void udiv_128_64(int128_bits_t divident, uint64_t divisor, uint64_t *out_quotien
|
|||
*out_quotient = quotient;
|
||||
}
|
||||
|
||||
static inline attr_must_inline attr_unused
|
||||
INLINE attr_unused
|
||||
void umul_128_64(uint64_t multiplicant, uint64_t multiplier, int128_bits_t *result) {
|
||||
#if defined(__GNUC__) && (defined(__x86_64) || defined(__x86_64__))
|
||||
__asm__ (
|
||||
|
@ -371,7 +371,7 @@ void umul_128_64(uint64_t multiplicant, uint64_t multiplier, int128_bits_t *resu
|
|||
#endif
|
||||
}
|
||||
|
||||
static inline attr_must_inline attr_unused
|
||||
INLINE attr_unused
|
||||
uint64_t _umuldiv64_slow(uint64_t x, uint64_t multiplier, uint64_t divisor) {
|
||||
int128_bits_t intermediate;
|
||||
uint64_t result;
|
||||
|
@ -382,7 +382,7 @@ uint64_t _umuldiv64_slow(uint64_t x, uint64_t multiplier, uint64_t divisor) {
|
|||
|
||||
#include "util.h"
|
||||
|
||||
static inline attr_must_inline
|
||||
INLINE
|
||||
uint64_t _umuldiv64(uint64_t x, uint64_t multiplier, uint64_t divisor) {
|
||||
#if defined(TAISEI_BUILDCONF_HAVE_INT128)
|
||||
__extension__ typedef unsigned __int128 uint128_t;
|
||||
|
|
Loading…
Reference in a new issue