diff --git a/engine/client/sys_linux.c b/engine/client/sys_linux.c index 4755c8c65..2d299b071 100644 --- a/engine/client/sys_linux.c +++ b/engine/client/sys_linux.c @@ -887,3 +887,13 @@ void Sys_Sleep (double seconds) nanosleep(&ts, NULL); } + +qboolean Sys_RandomBytes(qbyte *string, int len) +{ + qboolean res; + int fd = open("/dev/urandom", 0); + res = (read(fd, string, len) == len); + close(fd); + + return res; +} diff --git a/engine/common/mathlib.h b/engine/common/mathlib.h index c636a5ecf..d23ee7116 100644 --- a/engine/common/mathlib.h +++ b/engine/common/mathlib.h @@ -166,6 +166,7 @@ float *Matrix4x4_CM_NewTranslation(float x, float y, float z); //projection matricies of different types... gesh void Matrix4x4_CM_Orthographic (float *proj, float xmin, float xmax, float ymax, float ymin, float znear, float zfar); +void Matrix4x4_CM_OrthographicD3D(float *proj, float xmin, float xmax, float ymax, float ymin, float znear, float zfar); void Matrix4x4_CM_Projection_Far(float *proj, float fovx, float fovy, float neard, float fard); void Matrix4x4_CM_Projection2 (float *proj, float fovx, float fovy, float neard); void Matrix4x4_CM_Projection_Inf(float *proj, float fovx, float fovy, float neard); diff --git a/engine/d3d/d3d_backend.c b/engine/d3d/d3d_backend.c index 7900d1059..3c62a3df8 100644 --- a/engine/d3d/d3d_backend.c +++ b/engine/d3d/d3d_backend.c @@ -1983,10 +1983,10 @@ static void BE_RotateForEntity (const entity_t *e, const model_t *mod) /*FIXME: no bob*/ float iv[16]; Matrix4_Invert(r_refdef.m_view, iv); - Matrix4_NewRotation(90, 1, 0, 0); + Matrix4x4_CM_NewRotation(90, 1, 0, 0); Matrix4_Multiply(iv, m, mv); - Matrix4_Multiply(mv, Matrix4_NewRotation(-90, 1, 0, 0), iv); - Matrix4_Multiply(iv, Matrix4_NewRotation(90, 0, 0, 1), mv); + Matrix4_Multiply(mv, Matrix4x4_CM_NewRotation(-90, 1, 0, 0), iv); + Matrix4_Multiply(iv, Matrix4x4_CM_NewRotation(90, 0, 0, 1), mv); IDirect3DDevice9_SetTransform(pD3DDev9, D3DTS_WORLD, (D3DMATRIX*)mv); } @@ -2285,7 +2285,7 @@ static void R_DrawPortal(batch_t *batch, batch_t **blist) TransformDir(vright, paxis, vaxis, vright); TransformDir(vup, paxis, vaxis, vup); } - Matrix4_ModelViewMatrixFromAxis(r_refdef.m_view, vpn, vright, vup, r_refdef.vieworg); + Matrix4x4_CM_ModelViewMatrixFromAxis(r_refdef.m_view, vpn, vright, vup, r_refdef.vieworg); VectorAngles(vpn, vup, r_refdef.viewangles); VectorCopy(r_refdef.vieworg, r_origin); diff --git a/engine/d3d/vid_d3d.c b/engine/d3d/vid_d3d.c index af7ee2461..263296d19 100644 --- a/engine/d3d/vid_d3d.c +++ b/engine/d3d/vid_d3d.c @@ -850,8 +850,6 @@ static void (D3D9_VID_SetWindowCaption) (char *msg) SetWindowText(mainwindow, msg); } -void Matrix4_OrthographicD3D(float *proj, float xmin, float xmax, float ymax, float ymin, - float znear, float zfar); void d3dx_ortho(float *m); void D3D9_Set2D (void) @@ -860,13 +858,13 @@ void D3D9_Set2D (void) D3DVIEWPORT9 vport; // IDirect3DDevice9_EndScene(pD3DDev9); - Matrix4_OrthographicD3D(m, 0 + (0.5*vid.width/vid.pixelwidth), vid.width + (0.5*vid.width/vid.pixelwidth), 0 + (0.5*vid.height/vid.pixelheight), vid.height + (0.5*vid.height/vid.pixelheight), 0, 100); + Matrix4x4_CM_OrthographicD3D(m, 0 + (0.5*vid.width/vid.pixelwidth), vid.width + (0.5*vid.width/vid.pixelwidth), 0 + (0.5*vid.height/vid.pixelheight), vid.height + (0.5*vid.height/vid.pixelheight), 0, 100); IDirect3DDevice9_SetTransform(pD3DDev9, D3DTS_PROJECTION, (D3DMATRIX*)m); - Matrix4_Identity(m); + Matrix4x4_Identity(m); IDirect3DDevice9_SetTransform(pD3DDev9, D3DTS_WORLD, (D3DMATRIX*)m); - Matrix4_Identity(m); + Matrix4x4_Identity(m); IDirect3DDevice9_SetTransform(pD3DDev9, D3DTS_VIEW, (D3DMATRIX*)m); vport.X = 0; @@ -1165,14 +1163,14 @@ static void D3D9_SetupViewPort(void) screenaspect = (float)r_refdef.vrect.width/r_refdef.vrect.height; /*view matrix*/ - Matrix4_ModelViewMatrixFromAxis(r_refdef.m_view, vpn, vright, vup, r_refdef.vieworg); + Matrix4x4_CM_ModelViewMatrixFromAxis(r_refdef.m_view, vpn, vright, vup, r_refdef.vieworg); d3d9error(IDirect3DDevice9_SetTransform(pD3DDev9, D3DTS_VIEW, (D3DMATRIX*)r_refdef.m_view)); /*d3d projection matricies scale depth to 0 to 1*/ - Matrix4_Projection_Inf(r_refdef.m_projection, fov_x, fov_y, gl_mindist.value/2); + Matrix4x4_CM_Projection_Inf(r_refdef.m_projection, fov_x, fov_y, gl_mindist.value/2); d3d9error(IDirect3DDevice9_SetTransform(pD3DDev9, D3DTS_PROJECTION, (D3DMATRIX*)r_refdef.m_projection)); /*ogl projection matricies scale depth to -1 to 1, and I would rather my code used consistant culling*/ - Matrix4_Projection_Inf(r_refdef.m_projection, fov_x, fov_y, gl_mindist.value); + Matrix4x4_CM_Projection_Inf(r_refdef.m_projection, fov_x, fov_y, gl_mindist.value); } static void (D3D9_R_RenderView) (void) diff --git a/engine/server/sv_sys_unix.c b/engine/server/sv_sys_unix.c index 246edacbb..cd94006ab 100644 --- a/engine/server/sv_sys_unix.c +++ b/engine/server/sv_sys_unix.c @@ -1062,3 +1062,13 @@ void Sys_Sleep (double seconds) nanosleep(&ts, NULL); } + +qboolean Sys_RandomBytes(qbyte *string, int len) +{ + qboolean res; + int fd = open("/dev/urandom", 0); + res = (read(fd, string, len) == len); + close(fd); + + return res; +}