some small fixes
This commit is contained in:
parent
84920e46d6
commit
8a61d6e674
12
DGL.C
12
DGL.C
|
@ -58,9 +58,13 @@ void dgl_set_error(DGL_ERROR error) {
|
||||||
_last_error = error;
|
_last_error = error;
|
||||||
}
|
}
|
||||||
|
|
||||||
void dgl_init(void) {
|
void _dgl_atexit(void) {
|
||||||
atexit(mouse_shutdown);
|
mouse_shutdown();
|
||||||
atexit(keyboard_shutdown);
|
keyboard_shutdown();
|
||||||
atexit(video_shutdown);
|
video_shutdown();
|
||||||
|
}
|
||||||
|
|
||||||
|
void dgl_init(void) {
|
||||||
|
atexit(_dgl_atexit);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -61,7 +61,9 @@ static float symmetrical_round(float value) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static boolean close_enough(float a, float b, float tolerance) {
|
static boolean close_enough(float a, float b, float tolerance) {
|
||||||
return fabs((a - b) / ((b == 0.0f) ? 1.0f : b)) < tolerance;
|
//return fabs((a - b) / ((b == 0.0f) ? 1.0f : b)) < tolerance;
|
||||||
|
// TODO: this is not the best way
|
||||||
|
return fabs(a - b) <= tolerance;
|
||||||
}
|
}
|
||||||
|
|
||||||
static boolean power_of_2(int n) {
|
static boolean power_of_2(int n) {
|
||||||
|
|
7
MAKEFILE
7
MAKEFILE
|
@ -4,11 +4,11 @@ target_name = dgl
|
||||||
|
|
||||||
object_files = &
|
object_files = &
|
||||||
dglblit.obj &
|
dglblit.obj &
|
||||||
dglblita.obj &
|
dglblita.obj &
|
||||||
dglclip.obj &
|
dglclip.obj &
|
||||||
dgl.obj &
|
dgl.obj &
|
||||||
dgldraw.obj &
|
dgldraw.obj &
|
||||||
dgldrawa.obj &
|
dgldrawa.obj &
|
||||||
dglgfx.obj &
|
dglgfx.obj &
|
||||||
dglpal.obj &
|
dglpal.obj &
|
||||||
dglkbrd.obj &
|
dglkbrd.obj &
|
||||||
|
@ -34,7 +34,7 @@ asm_flags = /m /ml $(asm_flags_$(target_config))
|
||||||
wcc386 $[. /zq $(cc_flags)
|
wcc386 $[. /zq $(cc_flags)
|
||||||
|
|
||||||
.asm.obj: .AUTODEPEND
|
.asm.obj: .AUTODEPEND
|
||||||
tasm $[. /t $(asm_flags)
|
tasm $[. /t $(asm_flags)
|
||||||
|
|
||||||
$(target_name).lbc: $(object_files)
|
$(target_name).lbc: $(object_files)
|
||||||
%create $^@
|
%create $^@
|
||||||
|
@ -47,6 +47,7 @@ clean : .SYMBOLIC
|
||||||
del *.obj
|
del *.obj
|
||||||
del *.err
|
del *.err
|
||||||
del $(target_name).exe
|
del $(target_name).exe
|
||||||
|
del $(target_name).lib
|
||||||
del $(target_name).lnk
|
del $(target_name).lnk
|
||||||
del $(target_name).lbc
|
del $(target_name).lbc
|
||||||
|
|
||||||
|
|
12
TEST/FIXED.C
12
TEST/FIXED.C
|
@ -6,13 +6,14 @@
|
||||||
void test_fixed(void) {
|
void test_fixed(void) {
|
||||||
fixed a, b, c;
|
fixed a, b, c;
|
||||||
float af, bf, cf, f;
|
float af, bf, cf, f;
|
||||||
|
float aaf, bbf, ccf;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
a = FTOFIX(PI);
|
a = FTOFIX(PI);
|
||||||
f = FIXTOF(a);
|
f = FIXTOF(a);
|
||||||
ASSERT(FFIX_EQU(PI, f));
|
ASSERT(FFIX_EQU(PI, f));
|
||||||
|
|
||||||
a = FTOFIX(-0.37f);
|
a = FTOFIX(-0.38f);
|
||||||
f = FIXTOF(a);
|
f = FIXTOF(a);
|
||||||
ASSERT(FFIX_EQU(-0.38f, f));
|
ASSERT(FFIX_EQU(-0.38f, f));
|
||||||
|
|
||||||
|
@ -57,13 +58,16 @@ void test_fixed(void) {
|
||||||
f = DEG_TO_RAD(i + 1);
|
f = DEG_TO_RAD(i + 1);
|
||||||
a = fix_sin(FTOFIX(f));
|
a = fix_sin(FTOFIX(f));
|
||||||
af = sin(f);
|
af = sin(f);
|
||||||
|
aaf = FIXTOF(a);
|
||||||
b = fix_cos(FTOFIX(f));
|
b = fix_cos(FTOFIX(f));
|
||||||
bf = cos(f);
|
bf = cos(f);
|
||||||
|
bbf = FIXTOF(b);
|
||||||
c = fix_tan(FTOFIX(f));
|
c = fix_tan(FTOFIX(f));
|
||||||
cf = tan(f);
|
cf = tan(f);
|
||||||
ASSERT(FFIX_EQU(FIXTOF(a), af));
|
ccf = FIXTOF(c);
|
||||||
ASSERT(FFIX_EQU(FIXTOF(b), bf));
|
ASSERT(FFIX_EQU(aaf, af));
|
||||||
ASSERT(FFIX_EQU(FIXTOF(c), cf));
|
ASSERT(FFIX_EQU(bbf, bf));
|
||||||
|
ASSERT(FFIX_EQU(ccf, cf));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@
|
||||||
#include "dgl.h"
|
#include "dgl.h"
|
||||||
|
|
||||||
#define F_EQU(a, b) (close_enough((a), (b), TOLERANCE))
|
#define F_EQU(a, b) (close_enough((a), (b), TOLERANCE))
|
||||||
#define FFIX_EQU(a, b) (close_enough((a), (b), 0.01f))
|
#define FFIX_EQU(a, b) (close_enough((a), (b), 0.05f)) // wow !
|
||||||
|
|
||||||
extern void _breakpoint();
|
extern void _breakpoint();
|
||||||
#pragma aux _breakpoint = "int 0x03";
|
#pragma aux _breakpoint = "int 0x03";
|
||||||
|
|
||||||
|
|
||||||
#define ASSERT(x) \
|
#define ASSERT(x) \
|
||||||
do { \
|
do { \
|
||||||
if (!(x)) { \
|
if (!(x)) { \
|
||||||
|
|
|
@ -69,7 +69,6 @@ int main(void) {
|
||||||
|
|
||||||
surface_free(backbuffer);
|
surface_free(backbuffer);
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue