]> gitweb.factorcode.org Git - factor.git/commitdiff
Merge branch 'master' of git://github.com/slavapestov/factor
authorErik Charlebois <erikcharlebois@gmail.com>
Mon, 12 Apr 2010 18:29:24 +0000 (11:29 -0700)
committerErik Charlebois <erikcharlebois@gmail.com>
Mon, 12 Apr 2010 18:29:24 +0000 (11:29 -0700)
basis/ui/backend/windows/windows.factor [changed mode: 0644->0755]
basis/windows/ddk/hid/hid.factor [changed mode: 0644->0755]
basis/windows/ddk/setupapi/setupapi.factor [changed mode: 0644->0755]
basis/windows/ddk/winusb/winusb.factor [changed mode: 0644->0755]
basis/windows/directx/dwrite/dwrite.factor [changed mode: 0644->0755]
basis/windows/dwmapi/dwmapi.factor [changed mode: 0644->0755]
vm/os-genunix.cpp
vm/os-macosx.mm
vm/os-windows-nt.cpp

old mode 100644 (file)
new mode 100755 (executable)
index e0be2e7..4e271a8
@@ -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
old mode 100644 (file)
new mode 100755 (executable)
index d832a9d..0e1e8e2
@@ -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 >>
old mode 100644 (file)
new mode 100755 (executable)
index e4658b6..578a44a
@@ -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 >>
old mode 100644 (file)
new mode 100755 (executable)
index d40c994..328e16f
@@ -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 >>
old mode 100644 (file)
new mode 100755 (executable)
index 3d635a0..91dd422
@@ -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 ;
 
old mode 100644 (file)
new mode 100755 (executable)
index 8f68643..60fa5b4
@@ -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
index c7449e867b93f2ca41e92cea866c390145a081b8..fb5ecf9f50a37e7c9181fe4ba6334d2d45d04f4e 100644 (file)
@@ -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;
index 4a6a3cb2b4b65ecd7e55ae21fd95e9ff6ec1d656..05a9aef5c8c665aaa743ae101437aea8c636dd7b 100644 (file)
@@ -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;
 }
 
 }
index 4fea294a12da583fb82ff55565c83a67f636113d..97cd2146afe50b54b5dc3910ea65a36574a521dc 100755 (executable)
@@ -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)