<code>Uint64 SDL_GetPerformanceFrequency(void)</code>\r
<h2>\96ß\82è\92l</h2>\r
\8aÂ\8b«\82É\88Ë\91¶\82µ\82½1\95b\82 \82½\82è\82Ì\83J\83E\83\93\83g\90\94\82ð\93¾\82é.\r
+<h2>\83T\83\93\83v\83\8b\83R\81[\83h</h2>\r
+<p>\r
+<code>\r
+<pre>\r
+#include "SDL.h"\r
+\r
+#define DEFAULT_RESOLUTION 1\r
+\r
+static int ticks = 0;\r
+\r
+static Uint32 SDLCALL\r
+ticktock(Uint32 interval, void *param)\r
+{\r
+ ++ticks;\r
+ return (interval);\r
+}\r
+\r
+static Uint32 SDLCALL\r
+callback(Uint32 interval, void *param)\r
+{\r
+ SDL_Log("\83^\83C\83} %d : \83p\83\89\83\81\81[\83^ = %d\n", interval, (int) (uintptr_t) param);\r
+ return interval;\r
+}\r
+\r
+int\r
+main(int argc, char *argv[])\r
+{\r
+ int i, desired;\r
+ SDL_TimerID t1, t2, t3;\r
+ Uint32 start32, now32;\r
+ Uint64 start, now;\r
+\r
+ /* \92Ê\8fí\82Ì\83A\83v\83\8a\83P\81[\83V\83\87\83\93\83\8d\83O\82ð\97L\8cø\82É\82·\82é */\r
+ SDL_LogSetPriority(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO);\r
+\r
+ if (SDL_Init(SDL_INIT_TIMER) < 0) {\r
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "SDL\82ð\8f\89\8aú\89»\82Å\82«\82È\82©\82Á\82½: %s\n", SDL_GetError());\r
+ return (1);\r
+ }\r
+\r
+ /* \83^\83C\83}\82ð\8aJ\8en\82·\82é */\r
+ desired = 0;\r
+ if (argv[1]) {\r
+ desired = atoi(argv[1]);\r
+ }\r
+ if (desired == 0) {\r
+ desired = DEFAULT_RESOLUTION;\r
+ }\r
+ t1 = SDL_AddTimer(desired, ticktock, NULL);\r
+\r
+ /* 10\95b\8aÔ\91Ò\82Â */\r
+ SDL_Log("10\95b\8aÔ\91Ò\82Â\n");\r
+ SDL_Delay(10 * 1000);\r
+\r
+ /* \83^\83C\83}\82ð\92â\8e~\82·\82é */\r
+ SDL_RemoveTimer(t1);\r
+\r
+ /* \8c\8b\89Ê\82ð\95\\8e¦\82·\82é */\r
+ if (ticks) {\r
+ SDL_Log("\83^\83C\83}\95ª\89ð\94\: \97v\8b\81 = %d ms, \8eÀ\8dÛ = %f ms\n",\r
+ desired, (double) (10 * 1000) / ticks);\r
+ }\r
+\r
+ /* \95¡\90\94\82Ì\83^\83C\83}\82Ì\83e\83X\83g */\r
+ SDL_Log("\95¡\90\94\82Ì\83^\83C\83}\82Ì\83e\83X\83g...\n");\r
+ t1 = SDL_AddTimer(100, callback, (void *) 1);\r
+ if (!t1)\r
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,"\83^\83C\83}1\82ð\90¶\90¬\82Å\82«\82È\82©\82Á\82½: %s\n", SDL_GetError());\r
+ t2 = SDL_AddTimer(50, callback, (void *) 2);\r
+ if (!t2)\r
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,"\83^\83C\83}2\82ð\90¶\90¬\82Å\82«\82È\82©\82Á\82½: %s\n", SDL_GetError());\r
+ t3 = SDL_AddTimer(233, callback, (void *) 3);\r
+ if (!t3)\r
+ SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,"\83^\83C\83}3\82ð\90¶\90¬\82Å\82«\82È\82©\82Á\82½: %s\n", SDL_GetError());\r
+\r
+ /* 10\95b\8aÔ\91Ò\82Â */\r
+ SDL_Log("10\95b\8aÔ\91Ò\82Â\n");\r
+ SDL_Delay(10 * 1000);\r
+\r
+ SDL_Log("\83^\83C\83}1\82ð\8dí\8f\9c\82µ, \82³\82ç\82É5\95b\8aÔ\91Ò\82Â\n");\r
+ SDL_RemoveTimer(t1);\r
+\r
+ SDL_Delay(5 * 1000);\r
+\r
+ SDL_RemoveTimer(t2);\r
+ SDL_RemoveTimer(t3);\r
+\r
+ start = SDL_GetPerformanceCounter();\r
+ for (i = 0; i < 1000000; ++i) {\r
+ ticktock(0, NULL);\r
+ }\r
+ now = SDL_GetPerformanceCounter();\r
+ SDL_Log("100\96\9c\89ñ\82Ìticktock\8aÖ\90\94\82Ì\8cÄ\82Ñ\8fo\82µ\82É\82Í %f ms \82ð\97v\82µ\82½\n", (double)((now - start)*1000) / SDL_GetPerformanceFrequency());\r
+\r
+ SDL_Log("1\95b\82 \82½\82è\82Ì\8d\82\95ª\89ð\94\\83J\83E\83\93\83^: %"PRIu64"\n", (unsigned long long) SDL_GetPerformanceFrequency());\r
+ start32 = SDL_GetTicks();\r
+ start = SDL_GetPerformanceCounter();\r
+ SDL_Delay(1000);\r
+ now = SDL_GetPerformanceCounter();\r
+ now32 = SDL_GetTicks();\r
+ SDL_Log("SDL_Delay(1000) = %d ms, \8d\82\95ª\89ð\94\\82Å\82Í %f\n", (now32-start32), (double)((now - start)*1000) / SDL_GetPerformanceFrequency());\r
+\r
+ SDL_Quit();\r
+ return (0);\r
+}\r
+</pre>\r
+</code>\r
+</p>\r
<h2>\8aÖ\98A\8d\80\96Ú(\8aÖ\90\94)</h2>\r
<a href="SDL_GetPerformanceCounter.html">SDL_GetPerformanceCounter</a><br>\r
<h2>SDL Wiki\82Ö\82Ì\83\8a\83\93\83N</h2>\r