Merge branch 'master' of git://github.com/slavapestov/factor
commit
4addd3161b
|
@ -633,7 +633,7 @@ M: windows-ui-backend do-events
|
||||||
0 >>cbClsExtra
|
0 >>cbClsExtra
|
||||||
0 >>cbWndExtra
|
0 >>cbWndExtra
|
||||||
f GetModuleHandle >>hInstance
|
f GetModuleHandle >>hInstance
|
||||||
f GetModuleHandle "fraptor" utf16n string>alien LoadIcon >>hIcon
|
f GetModuleHandle "APPICON" utf16n string>alien LoadIcon >>hIcon
|
||||||
f IDC_ARROW LoadCursor >>hCursor
|
f IDC_ARROW LoadCursor >>hCursor
|
||||||
|
|
||||||
class-name-ptr >>lpszClassName
|
class-name-ptr >>lpszClassName
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
! Copyright (C) 2010 Erik Charlebois.
|
! Copyright (C) 2010 Erik Charlebois.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: alien.c-types alien.libraries alien.syntax classes.struct
|
USING: alien alien.c-types alien.libraries alien.syntax
|
||||||
kernel math windows.types windows.ole32 ;
|
classes.struct kernel math windows.types windows.ole32 ;
|
||||||
IN: windows.ddk.hid
|
IN: windows.ddk.hid
|
||||||
|
|
||||||
<< "hid" "hid.dll" stdcall add-library >>
|
<< "hid" "hid.dll" stdcall add-library >>
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
! Copyright (C) 2010 Erik Charlebois.
|
! Copyright (C) 2010 Erik Charlebois.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: literals windows.kernel32 math alien.syntax windows.types classes.struct
|
USING: literals windows.kernel32 math alien.syntax windows.types
|
||||||
alien.c-types windows.errors windows.ole32 windows.advapi32 alien.libraries ;
|
classes.struct alien alien.c-types windows.errors windows.ole32
|
||||||
|
windows.advapi32 alien.libraries ;
|
||||||
IN: windows.ddk.setupapi
|
IN: windows.ddk.setupapi
|
||||||
|
|
||||||
<< "setupapi" "setupapi.dll" stdcall add-library >>
|
<< "setupapi" "setupapi.dll" stdcall add-library >>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
! Copyright (C) 2010 Erik Charlebois.
|
! Copyright (C) 2010 Erik Charlebois.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: alien.c-types alien.syntax classes.struct windows.kernel32
|
USING: alien alien.c-types alien.syntax classes.struct
|
||||||
windows.types alien.libraries ;
|
windows.kernel32 windows.types alien.libraries ;
|
||||||
IN: windows.ddk.winusb
|
IN: windows.ddk.winusb
|
||||||
|
|
||||||
<< "winusb" "winusb.dll" stdcall add-library >>
|
<< "winusb" "winusb.dll" stdcall add-library >>
|
||||||
|
|
|
@ -233,7 +233,7 @@ COM-INTERFACE: IDWriteFont IUnknown {acd16696-8c14-4f5d-877e-fe3fc1d32737}
|
||||||
HRESULT HasCharacter ( UINT32 unicodeValue, BOOL* exists )
|
HRESULT HasCharacter ( UINT32 unicodeValue, BOOL* exists )
|
||||||
HRESULT CreateFontFace ( IDWriteFontFace** fontFace ) ;
|
HRESULT CreateFontFace ( IDWriteFontFace** fontFace ) ;
|
||||||
|
|
||||||
C-ENUM: DWRITE_READING_DRECTION
|
C-ENUM: DWRITE_READING_DIRECTION
|
||||||
DWRITE_READING_DIRECTION_LEFT_TO_RIGHT
|
DWRITE_READING_DIRECTION_LEFT_TO_RIGHT
|
||||||
DWRITE_READING_DIRECTION_RIGHT_TO_LEFT ;
|
DWRITE_READING_DIRECTION_RIGHT_TO_LEFT ;
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
! (c)2009 Joe Groff bsd license
|
! (c)2009 Joe Groff bsd license
|
||||||
USING: alien.c-types alien.data alien.libraries alien.syntax
|
USING: alien alien.c-types alien.data alien.libraries
|
||||||
classes.struct kernel math system-info.windows windows.types ;
|
alien.syntax classes.struct kernel math system-info.windows
|
||||||
|
windows.types ;
|
||||||
IN: windows.dwmapi
|
IN: windows.dwmapi
|
||||||
|
|
||||||
STRUCT: MARGINS
|
STRUCT: MARGINS
|
||||||
|
|
|
@ -38,8 +38,7 @@ const char *default_image_path()
|
||||||
u64 nano_count()
|
u64 nano_count()
|
||||||
{
|
{
|
||||||
struct timespec t;
|
struct timespec t;
|
||||||
int ret;
|
int ret = clock_gettime(CLOCK_MONOTONIC,&t);
|
||||||
ret = clock_gettime(CLOCK_MONOTONIC,&t);
|
|
||||||
if(ret != 0)
|
if(ret != 0)
|
||||||
fatal_error("clock_gettime failed", 0);
|
fatal_error("clock_gettime failed", 0);
|
||||||
return (u64)t.tv_sec * 1000000000 + t.tv_nsec;
|
return (u64)t.tv_sec * 1000000000 + t.tv_nsec;
|
||||||
|
|
|
@ -87,12 +87,19 @@ Protocol *objc_getProtocol(char *name)
|
||||||
|
|
||||||
u64 nano_count()
|
u64 nano_count()
|
||||||
{
|
{
|
||||||
u64 t = mach_absolute_time();
|
u64 time = mach_absolute_time();
|
||||||
|
|
||||||
|
static u64 scaling_factor = 0;
|
||||||
|
if(!scaling_factor)
|
||||||
|
{
|
||||||
mach_timebase_info_data_t info;
|
mach_timebase_info_data_t info;
|
||||||
kern_return_t ret = mach_timebase_info(&info);
|
kern_return_t ret = mach_timebase_info(&info);
|
||||||
if(ret != 0)
|
if(ret != 0)
|
||||||
fatal_error("mach_timebase_info failed",ret);
|
fatal_error("mach_timebase_info failed",ret);
|
||||||
return t * (info.numer/info.denom);
|
scaling_factor = info.numer/info.denom;
|
||||||
|
}
|
||||||
|
|
||||||
|
return time * scaling_factor;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,17 +18,24 @@ u64 system_micros()
|
||||||
|
|
||||||
u64 nano_count()
|
u64 nano_count()
|
||||||
{
|
{
|
||||||
LARGE_INTEGER count;
|
static double scale_factor;
|
||||||
LARGE_INTEGER frequency;
|
|
||||||
static u32 hi = 0;
|
static u32 hi = 0;
|
||||||
static u32 lo = 0;
|
static u32 lo = 0;
|
||||||
BOOL ret;
|
|
||||||
ret = QueryPerformanceCounter(&count);
|
LARGE_INTEGER count;
|
||||||
|
BOOL ret = QueryPerformanceCounter(&count);
|
||||||
if(ret == 0)
|
if(ret == 0)
|
||||||
fatal_error("QueryPerformanceCounter", 0);
|
fatal_error("QueryPerformanceCounter", 0);
|
||||||
ret = QueryPerformanceFrequency(&frequency);
|
|
||||||
|
if(scale_factor == 0.0)
|
||||||
|
{
|
||||||
|
LARGE_INTEGER frequency;
|
||||||
|
BOOL ret = QueryPerformanceFrequency(&frequency);
|
||||||
if(ret == 0)
|
if(ret == 0)
|
||||||
fatal_error("QueryPerformanceFrequency", 0);
|
fatal_error("QueryPerformanceFrequency", 0);
|
||||||
|
scale_factor = (1000000000.0 / frequency.QuadPart);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef FACTOR_64
|
#ifdef FACTOR_64
|
||||||
hi = count.HighPart;
|
hi = count.HighPart;
|
||||||
|
@ -40,7 +47,7 @@ u64 nano_count()
|
||||||
#endif
|
#endif
|
||||||
lo = count.LowPart;
|
lo = count.LowPart;
|
||||||
|
|
||||||
return (u64)((((u64)hi << 32) | (u64)lo)*(1000000000.0/frequency.QuadPart));
|
return (u64)((((u64)hi << 32) | (u64)lo) * scale_factor);
|
||||||
}
|
}
|
||||||
|
|
||||||
void sleep_nanos(u64 nsec)
|
void sleep_nanos(u64 nsec)
|
||||||
|
|
Loading…
Reference in New Issue