OSDN Git Service

SDL_CreateThread サンプルコードを修正 https://wiki.libsdl.org/SDL_CreateThread?action=diff...
[sdl2referencejp/sdl2referencejp.git] / SDL_GetPerformanceFrequency.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">\r
2 <html lang="ja-JP">\r
3 <head>\r
4 <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">\r
5 <meta http-equiv="Content-Style-Type" content="text/css">\r
6 <meta name="keywords" content="Simple Directmedia Layer SDL2.0">\r
7 <link rel="top" href="index.html" title="\83z\81[\83\80">\r
8 <link rel="parent" href="CategoryTimer.html" title="1\82Â\8fã">\r
9 <title>SDL_GetPerformanceFrequency</title>\r
10 </head>\r
11 <body>\r
12 <a href="index.html">\96Ú\8e\9f</a> - <a href="ApiByCategory.html">API(\8b@\94\\95Ê)</a> - <a href="CategoryTimer.html">\83^\83C\83}</a> - SDL_GetPerformanceFrequency\r
13 <hr>\r
14 <h1>SDL_GetPerformanceFrequency</h1>\r
15 1\95b\82 \82½\82è\82Ì\8d\82\95ª\89ð\94\\83J\83E\83\93\83^\82ð\93¾\82é\r
16 <h2>\8d\\95¶</h2>\r
17 <code>Uint64 SDL_GetPerformanceFrequency(void)</code>\r
18 <h2>\96ß\82è\92l</h2>\r
19 \8aÂ\8b«\82É\88Ë\91\82µ\82½1\95b\82 \82½\82è\82Ì\83J\83E\83\93\83g\90\94\82ð\93¾\82é.\r
20 <h2>\83T\83\93\83v\83\8b\83R\81[\83h</h2>\r
21 <p>\r
22 <code>\r
23 <pre>\r
24 #include "SDL.h"\r
25 \r
26 #define DEFAULT_RESOLUTION  1\r
27 \r
28 static int ticks = 0;\r
29 \r
30 static Uint32 SDLCALL\r
31 ticktock(Uint32 interval, void *param)\r
32 {\r
33     ++ticks;\r
34     return (interval);\r
35 }\r
36 \r
37 static Uint32 SDLCALL\r
38 callback(Uint32 interval, void *param)\r
39 {\r
40     SDL_Log("\83^\83C\83} %d : \83p\83\89\83\81\81[\83^ = %d", interval, (int) (uintptr_t) param);\r
41     return interval;\r
42 }\r
43 \r
44 int\r
45 main(int argc, char *argv[])\r
46 {\r
47     int i, desired;\r
48     SDL_TimerID t1, t2, t3;\r
49     Uint32 start32, now32;\r
50     Uint64 start, now;\r
51 \r
52     /* \92Ê\8fí\82Ì\83A\83v\83\8a\83P\81[\83V\83\87\83\93\83\8d\83O\82ð\97L\8cø\82É\82·\82é */\r
53     SDL_LogSetPriority(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO);\r
54 \r
55     if (SDL_Init(SDL_INIT_TIMER) &lt; 0) {\r
56         SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "SDL\82ð\8f\89\8aú\89»\82Å\82«\82È\82©\82Á\82½: %s", SDL_GetError());\r
57         return (1);\r
58     }\r
59 \r
60     /* \83^\83C\83}\82ð\8aJ\8en\82·\82é */\r
61     desired = 0;\r
62     if (argv[1]) {\r
63         desired = SDL_atoi(argv[1]);\r
64     }\r
65     if (desired == 0) {\r
66         desired = DEFAULT_RESOLUTION;\r
67     }\r
68     t1 = SDL_AddTimer(desired, ticktock, NULL);\r
69 \r
70     /* 10\95b\8aÔ\91Ò\82 */\r
71     SDL_Log("10\95b\8aÔ\91Ò\82Â");\r
72     SDL_Delay(10 * 1000);\r
73 \r
74     /* \83^\83C\83}\82ð\92â\8e~\82·\82é */\r
75     SDL_RemoveTimer(t1);\r
76 \r
77     /* \8c\8b\89Ê\82ð\95\\8e¦\82·\82é */\r
78     if (ticks) {\r
79         SDL_Log("\83^\83C\83}\95ª\89ð\94\: \97v\8b\81 = %d ms, \8eÀ\8dÛ = %f ms",\r
80                 desired, (double) (10 * 1000) / ticks);\r
81     }\r
82 \r
83     /* \95¡\90\94\82Ì\83^\83C\83}\82Ì\83e\83X\83g */\r
84     SDL_Log("\95¡\90\94\82Ì\83^\83C\83}\82Ì\83e\83X\83g...");\r
85     t1 = SDL_AddTimer(100, callback, (void *) 1);\r
86     if (!t1)\r
87         SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,"\83^\83C\83}1\82ð\90\90¬\82Å\82«\82È\82©\82Á\82½: %s", SDL_GetError());\r
88     t2 = SDL_AddTimer(50, callback, (void *) 2);\r
89     if (!t2)\r
90         SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,"\83^\83C\83}2\82ð\90\90¬\82Å\82«\82È\82©\82Á\82½: %s", SDL_GetError());\r
91     t3 = SDL_AddTimer(233, callback, (void *) 3);\r
92     if (!t3)\r
93         SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,"\83^\83C\83}3\82ð\90\90¬\82Å\82«\82È\82©\82Á\82½: %s", SDL_GetError());\r
94 \r
95     /* 10\95b\8aÔ\91Ò\82 */\r
96     SDL_Log("10\95b\8aÔ\91Ò\82Â");\r
97     SDL_Delay(10 * 1000);\r
98 \r
99     SDL_Log("\83^\83C\83}1\82ð\8dí\8f\9c\82µ, \82³\82ç\82É5\95b\8aÔ\91Ò\82Â");\r
100     SDL_RemoveTimer(t1);\r
101 \r
102     SDL_Delay(5 * 1000);\r
103 \r
104     SDL_RemoveTimer(t2);\r
105     SDL_RemoveTimer(t3);\r
106 \r
107     start = SDL_GetPerformanceCounter();\r
108     for (i = 0; i &lt; 1000000; ++i) {\r
109         ticktock(0, NULL);\r
110     }\r
111     now = SDL_GetPerformanceCounter();\r
112     SDL_Log("100\96\9c\89ñ\82Ìticktock\8aÖ\90\94\82Ì\8cÄ\82Ñ\8fo\82µ\82É\82Í %f ms \82ð\97v\82µ\82½", (double)((now - start)*1000) / SDL_GetPerformanceFrequency());\r
113 \r
114     SDL_Log("1\95b\82 \82½\82è\82Ì\8d\82\95ª\89ð\94\\83J\83E\83\93\83^: %"SDL_PRIu64"", (unsigned long long) SDL_GetPerformanceFrequency());\r
115     start32 = SDL_GetTicks();\r
116     start = SDL_GetPerformanceCounter();\r
117     SDL_Delay(1000);\r
118     now = SDL_GetPerformanceCounter();\r
119     now32 = SDL_GetTicks();\r
120     SDL_Log("SDL_Delay(1000) = %d ms, \8d\82\95ª\89ð\94\\82Å\82Í %f", (now32-start32), (double)((now - start)*1000) / SDL_GetPerformanceFrequency());\r
121 \r
122     SDL_Quit();\r
123     return (0);\r
124 }\r
125 </pre>\r
126 </code>\r
127 </p>\r
128 <h2>\83o\81[\83W\83\87\83\93</h2>\r
129 <p>\r
130 SDL 2.0.0\88È\8d~\r
131 </p>\r
132 <h2>\8aÖ\98A\8d\80\96Ú(\8aÖ\90\94)</h2>\r
133 <a href="SDL_GetPerformanceCounter.html">SDL_GetPerformanceCounter</a><br>\r
134 <h2>SDL Wiki\82Ö\82Ì\83\8a\83\93\83N</h2>\r
135 <a href="https://wiki.libsdl.org/SDL_GetPerformanceFrequency">SDL_GetPerformanceFrequency - SDL Wiki</a>\r
136 <hr>\r
137 </body>\r
138 </html>\r