github.com/Konstantin8105/c4go@v0.0.0-20240505174241-768bb1c65a51/tests/raylib/external/glfw/src/cocoa_time.c (about)

     1  //========================================================================
     2  // GLFW 3.4 macOS - www.glfw.org
     3  //------------------------------------------------------------------------
     4  // Copyright (c) 2009-2016 Camilla Löwy <elmindreda@glfw.org>
     5  //
     6  // This software is provided 'as-is', without any express or implied
     7  // warranty. In no event will the authors be held liable for any damages
     8  // arising from the use of this software.
     9  //
    10  // Permission is granted to anyone to use this software for any purpose,
    11  // including commercial applications, and to alter it and redistribute it
    12  // freely, subject to the following restrictions:
    13  //
    14  // 1. The origin of this software must not be misrepresented; you must not
    15  //    claim that you wrote the original software. If you use this software
    16  //    in a product, an acknowledgment in the product documentation would
    17  //    be appreciated but is not required.
    18  //
    19  // 2. Altered source versions must be plainly marked as such, and must not
    20  //    be misrepresented as being the original software.
    21  //
    22  // 3. This notice may not be removed or altered from any source
    23  //    distribution.
    24  //
    25  //========================================================================
    26  // It is fine to use C99 in this file because it will not be built with VS
    27  //========================================================================
    28  
    29  #include "internal.h"
    30  
    31  #include <mach/mach_time.h>
    32  
    33  
    34  //////////////////////////////////////////////////////////////////////////
    35  //////                       GLFW platform API                      //////
    36  //////////////////////////////////////////////////////////////////////////
    37  
    38  void _glfwPlatformInitTimer(void)
    39  {
    40      mach_timebase_info_data_t info;
    41      mach_timebase_info(&info);
    42  
    43      _glfw.timer.ns.frequency = (info.denom * 1e9) / info.numer;
    44  }
    45  
    46  uint64_t _glfwPlatformGetTimerValue(void)
    47  {
    48      return mach_absolute_time();
    49  }
    50  
    51  uint64_t _glfwPlatformGetTimerFrequency(void)
    52  {
    53      return _glfw.timer.ns.frequency;
    54  }
    55