deepstone

annotate src/vmath.h @ 25:5ff8ce78059a

first pass at converting the rasterizer to fixed point
author John Tsiombikas <nuclear@member.fsf.org>
date Sun, 22 Sep 2013 02:21:30 +0300
parents 00d84ab1ef26
children 61d97b17cd2b
rev   line source
nuclear@15 1 #ifndef VMATH_H_
nuclear@15 2 #define VMATH_H_
nuclear@15 3
nuclear@21 4 #include <math.h>
nuclear@25 5 #include "fixed_point.h"
nuclear@21 6
nuclear@21 7 #ifndef M_PI
nuclear@21 8 #define M_PI 3.1415926536
nuclear@21 9 #endif
nuclear@21 10
nuclear@15 11 typedef struct {
nuclear@15 12 float x, y, z, w;
nuclear@15 13 } vec4_t;
nuclear@15 14
nuclear@15 15 typedef struct {
nuclear@15 16 float x, y, z;
nuclear@15 17 } vec3_t;
nuclear@15 18
nuclear@15 19 typedef struct {
nuclear@15 20 float x, y;
nuclear@15 21 } vec2_t;
nuclear@15 22
nuclear@25 23 typedef struct {
nuclear@25 24 fixed x, y, z, w;
nuclear@25 25 } vec4x_t;
nuclear@25 26
nuclear@25 27 typedef struct {
nuclear@25 28 fixed x, y, z;
nuclear@25 29 } vec3x_t;
nuclear@25 30
nuclear@25 31 typedef struct {
nuclear@25 32 fixed x, y;
nuclear@25 33 } vec2x_t;
nuclear@25 34
nuclear@25 35
nuclear@25 36 #define vec2_to_fixed2(v, f) \
nuclear@25 37 do { \
nuclear@25 38 f.x = fixedf(v.x); \
nuclear@25 39 f.y = fixedf(v.y); \
nuclear@25 40 } while(0)
nuclear@25 41
nuclear@25 42 #define vec3_to_fixed3(v, f) \
nuclear@25 43 do { \
nuclear@25 44 f.x = fixedf(v.x); \
nuclear@25 45 f.y = fixedf(v.y); \
nuclear@25 46 f.z = fixedf(v.z); \
nuclear@25 47 } while(0)
nuclear@25 48
nuclear@25 49 #define vec4_to_fixed4(v, f) \
nuclear@25 50 do { \
nuclear@25 51 f.x = fixedf(v.x); \
nuclear@25 52 f.y = fixedf(v.y); \
nuclear@25 53 f.z = fixedf(v.z); \
nuclear@25 54 f.w = fixedf(v.w); \
nuclear@25 55 } while(0)
nuclear@25 56
nuclear@25 57
nuclear@25 58 #define fixed2_to_vec2(f, v) \
nuclear@25 59 do { \
nuclear@25 60 v.x = fixed_float(f.x); \
nuclear@25 61 v.y = fixed_float(f.y); \
nuclear@25 62 } while(0)
nuclear@25 63
nuclear@25 64 #define fixed3_to_vec3(f, v) \
nuclear@25 65 do { \
nuclear@25 66 v.x = fixed_float(f.x); \
nuclear@25 67 v.y = fixed_float(f.y); \
nuclear@25 68 v.z = fixed_float(f.z); \
nuclear@25 69 } while(0)
nuclear@25 70
nuclear@25 71 #define fixed4_to_vec4(f, v) \
nuclear@25 72 do { \
nuclear@25 73 v.x = fixed_float(f.x); \
nuclear@25 74 v.y = fixed_float(f.y); \
nuclear@25 75 v.z = fixed_float(f.z); \
nuclear@25 76 v.w = fixed_float(f.w); \
nuclear@25 77 } while(0)
nuclear@25 78
nuclear@15 79
nuclear@15 80 #endif /* VMATH_H_ */