Sha256: 5be0b8439ba932077eb523a83852c1d819c1a3ee8a82b448bf8315e3ca062331

Contents?: true

Size: 672 Bytes

Versions: 3

Compression:

Stored size: 672 Bytes

Contents

#include <Gosu/Platform.hpp>
#if defined(GOSU_IS_MAC)

#include <Gosu/Timing.hpp>
#include <unistd.h>

void Gosu::sleep(unsigned milliseconds)
{
    usleep(milliseconds * 1000);
}

// Thanks to this blog for the unconvoluted code example:
// http://shiftedbits.org/2008/10/01/mach_absolute_time-on-the-iphone/

#include <mach/mach_time.h>

unsigned long Gosu::milliseconds()
{
    static mach_timebase_info_data_t info;
    static const uint64_t first_tick = [] {
        mach_timebase_info(&info);
        return mach_absolute_time();
    }();

    uint64_t runtime = mach_absolute_time() - first_tick;
    return runtime * info.numer / info.denom / 1'000'000;
}

#endif

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
gosu-2.0.0.pre8 src/TimingApple.cpp
gosu-2.0.0.pre7 src/TimingApple.cpp
gosu-2.0.0.pre6 src/TimingApple.cpp