diff --git a/basis/ui/backend/windows/windows.factor b/basis/ui/backend/windows/windows.factor old mode 100644 new mode 100755 index e0be2e7c99..4e271a8280 --- a/basis/ui/backend/windows/windows.factor +++ b/basis/ui/backend/windows/windows.factor @@ -633,7 +633,7 @@ M: windows-ui-backend do-events 0 >>cbClsExtra 0 >>cbWndExtra f GetModuleHandle >>hInstance - f GetModuleHandle "fraptor" utf16n string>alien LoadIcon >>hIcon + f GetModuleHandle "APPICON" utf16n string>alien LoadIcon >>hIcon f IDC_ARROW LoadCursor >>hCursor class-name-ptr >>lpszClassName diff --git a/basis/windows/ddk/hid/hid.factor b/basis/windows/ddk/hid/hid.factor old mode 100644 new mode 100755 index d832a9d405..0e1e8e208c --- a/basis/windows/ddk/hid/hid.factor +++ b/basis/windows/ddk/hid/hid.factor @@ -1,7 +1,7 @@ ! Copyright (C) 2010 Erik Charlebois. ! See http://factorcode.org/license.txt for BSD license. -USING: alien.c-types alien.libraries alien.syntax classes.struct -kernel math windows.types windows.ole32 ; +USING: alien alien.c-types alien.libraries alien.syntax +classes.struct kernel math windows.types windows.ole32 ; IN: windows.ddk.hid << "hid" "hid.dll" stdcall add-library >> diff --git a/basis/windows/ddk/setupapi/setupapi.factor b/basis/windows/ddk/setupapi/setupapi.factor old mode 100644 new mode 100755 index e4658b6e75..578a44a6d8 --- a/basis/windows/ddk/setupapi/setupapi.factor +++ b/basis/windows/ddk/setupapi/setupapi.factor @@ -1,7 +1,8 @@ ! Copyright (C) 2010 Erik Charlebois. ! See http://factorcode.org/license.txt for BSD license. -USING: literals windows.kernel32 math alien.syntax windows.types classes.struct -alien.c-types windows.errors windows.ole32 windows.advapi32 alien.libraries ; +USING: literals windows.kernel32 math alien.syntax windows.types +classes.struct alien alien.c-types windows.errors windows.ole32 +windows.advapi32 alien.libraries ; IN: windows.ddk.setupapi << "setupapi" "setupapi.dll" stdcall add-library >> diff --git a/basis/windows/ddk/winusb/winusb.factor b/basis/windows/ddk/winusb/winusb.factor old mode 100644 new mode 100755 index d40c994b19..328e16f5c9 --- a/basis/windows/ddk/winusb/winusb.factor +++ b/basis/windows/ddk/winusb/winusb.factor @@ -1,7 +1,7 @@ ! Copyright (C) 2010 Erik Charlebois. ! See http://factorcode.org/license.txt for BSD license. -USING: alien.c-types alien.syntax classes.struct windows.kernel32 -windows.types alien.libraries ; +USING: alien alien.c-types alien.syntax classes.struct +windows.kernel32 windows.types alien.libraries ; IN: windows.ddk.winusb << "winusb" "winusb.dll" stdcall add-library >> diff --git a/basis/windows/directx/dwrite/dwrite.factor b/basis/windows/directx/dwrite/dwrite.factor old mode 100644 new mode 100755 index 3d635a0dc4..91dd422667 --- a/basis/windows/directx/dwrite/dwrite.factor +++ b/basis/windows/directx/dwrite/dwrite.factor @@ -233,7 +233,7 @@ COM-INTERFACE: IDWriteFont IUnknown {acd16696-8c14-4f5d-877e-fe3fc1d32737} HRESULT HasCharacter ( UINT32 unicodeValue, BOOL* exists ) HRESULT CreateFontFace ( IDWriteFontFace** fontFace ) ; -C-ENUM: DWRITE_READING_DRECTION +C-ENUM: DWRITE_READING_DIRECTION DWRITE_READING_DIRECTION_LEFT_TO_RIGHT DWRITE_READING_DIRECTION_RIGHT_TO_LEFT ; diff --git a/basis/windows/dwmapi/dwmapi.factor b/basis/windows/dwmapi/dwmapi.factor old mode 100644 new mode 100755 index 8f68643e0a..60fa5b4d83 --- a/basis/windows/dwmapi/dwmapi.factor +++ b/basis/windows/dwmapi/dwmapi.factor @@ -1,6 +1,7 @@ ! (c)2009 Joe Groff bsd license -USING: alien.c-types alien.data alien.libraries alien.syntax -classes.struct kernel math system-info.windows windows.types ; +USING: alien alien.c-types alien.data alien.libraries +alien.syntax classes.struct kernel math system-info.windows +windows.types ; IN: windows.dwmapi STRUCT: MARGINS diff --git a/vm/os-genunix.cpp b/vm/os-genunix.cpp index c7449e867b..fb5ecf9f50 100644 --- a/vm/os-genunix.cpp +++ b/vm/os-genunix.cpp @@ -38,8 +38,7 @@ const char *default_image_path() u64 nano_count() { struct timespec t; - int ret; - ret = clock_gettime(CLOCK_MONOTONIC,&t); + int ret = clock_gettime(CLOCK_MONOTONIC,&t); if(ret != 0) fatal_error("clock_gettime failed", 0); return (u64)t.tv_sec * 1000000000 + t.tv_nsec; diff --git a/vm/os-macosx.mm b/vm/os-macosx.mm index 4a6a3cb2b4..05a9aef5c8 100644 --- a/vm/os-macosx.mm +++ b/vm/os-macosx.mm @@ -87,12 +87,19 @@ Protocol *objc_getProtocol(char *name) u64 nano_count() { - u64 t = mach_absolute_time(); - mach_timebase_info_data_t info; - kern_return_t ret = mach_timebase_info(&info); - if(ret != 0) - fatal_error("mach_timebase_info failed",ret); - return t * (info.numer/info.denom); + u64 time = mach_absolute_time(); + + static u64 scaling_factor = 0; + if(!scaling_factor) + { + mach_timebase_info_data_t info; + kern_return_t ret = mach_timebase_info(&info); + if(ret != 0) + fatal_error("mach_timebase_info failed",ret); + scaling_factor = info.numer/info.denom; + } + + return time * scaling_factor; } } diff --git a/vm/os-windows-nt.cpp b/vm/os-windows-nt.cpp index 4fea294a12..97cd2146af 100755 --- a/vm/os-windows-nt.cpp +++ b/vm/os-windows-nt.cpp @@ -18,17 +18,24 @@ u64 system_micros() u64 nano_count() { - LARGE_INTEGER count; - LARGE_INTEGER frequency; + static double scale_factor; + static u32 hi = 0; static u32 lo = 0; - BOOL ret; - ret = QueryPerformanceCounter(&count); + + LARGE_INTEGER count; + BOOL ret = QueryPerformanceCounter(&count); if(ret == 0) fatal_error("QueryPerformanceCounter", 0); - ret = QueryPerformanceFrequency(&frequency); - if(ret == 0) - fatal_error("QueryPerformanceFrequency", 0); + + if(scale_factor == 0.0) + { + LARGE_INTEGER frequency; + BOOL ret = QueryPerformanceFrequency(&frequency); + if(ret == 0) + fatal_error("QueryPerformanceFrequency", 0); + scale_factor = (1000000000.0 / frequency.QuadPart); + } #ifdef FACTOR_64 hi = count.HighPart; @@ -40,7 +47,7 @@ u64 nano_count() #endif 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)