OSDN Git Service

IMG_LoadPCX_RW 新しい説明の訳に差し替え
[sdl2referencejp/sdl2referencejp.git] / SDL_SetEventFilter.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="CategoryEvents.html" title="1\82Â\8fã">\r
9 <title>SDL_SetEventFilter</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="CategoryEvents.html">\83C\83x\83\93\83g\8f\88\97\9d</a> - SDL_SetEventFilter\r
13 <hr>\r
14 <h1>SDL_SetEventFilter</h1>\r
15 \93à\95\94\8fó\91Ô\82ª\95Ï\82í\82è\93à\95\94\83L\83\85\81[\82É\93ü\82é\91O\82É\91S\82Ä\82Ì\83C\83x\83\93\83g\82ð\8f\88\97\9d\82·\82é\83t\83B\83\8b\83^\82ð\90Ý\92è\82·\82é\r
16 <h2>\8d\\95¶</h2>\r
17 <code>void SDL_SetEventFilter(SDL_EventFilter filter, void* userdata)</code>\r
18 <h2>\88ø\90\94</h2>\r
19 <table border="1" summary="SDL_SetEventFilter">\r
20 <tr><td>filter</td><td>\83C\83x\83\93\83g\94­\90\8e\9e\82É\8cÄ\82Î\82ê\82é\8aÖ\90\94 (\8fÚ\8d×\82ð\8eQ\8fÆ\82·\82é\82±\82Æ)</td></tr>\r
21 <tr><td>userdata</td><td>filter\82Ö\93n\82³\82ê\82é\83|\83C\83\93\83^</td></tr>\r
22 </table>\r
23 <h2>\83T\83\93\83v\83\8b\83R\81[\83h</h2>\r
24 <code>\r
25 <pre>\r
26 #include "SDL.h"\r
27 \r
28 \r
29 // \82Ü\82¸\8cx\8d\90\82±\82ê\82Í\83o\83J\82°\82½\82â\82è\95û\82Å\82 \82é. \82µ\82©\82µ, \83C\83x\83\93\83g\83t\83B\83\8b\83^\82ª\r
30 // \82Ç\82Ì\82æ\82¤\82É\93­\82­\82©\82ð\8e¦\82µ\82Ä\82¢\82é. \8eÀ\8dÛ\82Ì\8fê\8d\87\82Í, \83\81\83C\83\93\83\8b\81[\83v\82Å\r
31 // SDL_PollEvent\82©\82ç\93¾\82½\83C\83x\83\93\83g\82ð\82½\82¾\8f\88\97\9d\82·\82ê\82Î\82æ\82¢. \88ê\94Ê\93I\82É, \83C\83x\r
32 // \83\93\83g\83t\83B\83\8b\83^\82ð\8eg\82¨\82¤\82Æ\8ev\82Á\82½\82Æ\82«\82Í, \97§\82¿\8e~\82Ü\82è, \8c´\93_\82É\8bA\82Á\82Ä\82»\82ê\r
33 // \82ª\82æ\82¢\95û\96@\82©\82æ\82­\8dl\82¦\82é\82×\82«\82Å\82 \82é.\r
34 \r
35 \r
36 // \82±\82Ì\8aÖ\90\94\82ðSDL_SetEventFilter\82É\93n\82·. \83\86\81[\83U\82ª\83L\81[\83{\81[\83h\82Ì\83X\83y\81[\83X\r
37 // \83o\81[\82ð\89\9f\82µ\82½\82Æ\82«, `userdata`\83|\83C\83\93\83^\82ª\8e¦\82·\92l\82ð\90Ø\82è\91Ö\82¦\82é. \82±\82ê\82Í\r
38 // \90Â\90F\82ð\82 \82ç\82í\82µ\82Ä\82¢\82Ä, 255\82Æ0\82Ì\8aÔ\82Ì\92l\82Å\82 \82é. \83\81\83C\83\93\83v\83\8d\83O\83\89\83\80\82Í\83X\r
39 // \83y\81[\83X\83o\81[\82ð\89\9f\82·\82½\82Ñ\82É\82±\82Ì\92l\82Ì\90F\82Å\83E\83B\83\93\83h\83E\82ð\83N\83\8a\83A\82·\82é.\r
40 static int SDLCALL my_event_filter(void *userdata, SDL_Event * event)\r
41 {\r
42     if ((event->type == SDL_KEYDOWN) && (event->key.keysym.sym == SDLK_SPACE)) {\r
43         Uint8 *blue = (Uint8 *) userdata;\r
44         if (*blue == 0) {\r
45             *blue = 255;\r
46         } else {\r
47             *blue = 0;\r
48         }\r
49     }\r
50     return 1;  // \83C\83x\83\93\83g\82ð\83L\83\85\81[\82É\92Ç\89Á\82·\82é\8fê\8d\87\82Í1\82ð\96ß\82·\r
51 }\r
52 \r
53 int main(int argc, char **argv)\r
54 {\r
55     Uint8 blue = 0;\r
56     int quit = 0;\r
57 \r
58     // \92P\82É\83E\83B\83\93\83h\83E\82ð\90\90¬\82µ\82Ä\8d\95\90F\82Å\83N\83\8a\83A\82·\82é.\r
59     // \8eÀ\8dÛ\82Ì\8fê\8d\87\82Í\83G\83\89\81[\82ð\83`\83F\83b\83N\82·\82é\82±\82Æ!\r
60     SDL_Init(SDL_INIT_VIDEO);\r
61     SDL_Window *window = SDL_CreateWindow("Hello SDL", SDL_WINDOWPOS_UNDEFINED,\r
62                                           SDL_WINDOWPOS_UNDEFINED, 640, 480, 0);\r
63     SDL_Renderer *renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_PRESENTVSYNC);\r
64     SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);\r
65     SDL_RenderClear(renderer);\r
66     SDL_RenderPresent(renderer);\r
67 \r
68     // \83C\83x\83\93\83g\83t\83B\83\8b\83^\82ð\90Ý\92è\82·\82é...\r
69     SDL_SetEventFilter(my_event_filter, &blue);\r
70 \r
71     // \83C\83x\83\93\83g\83\8b\81[\83v\82ð\96³\8cÀ\82É\8eÀ\8ds\82·\82é. \91S\82Ä\82Ì\83C\83x\83\93\83g\82Í\82±\82±\82É\93\9e\92B\82·\82é\91O\82É\r
72     // my_event_filter\8aÖ\90\94\82ð\92Ê\89ß\82·\82é. \83t\83\8c\81[\83\80\82²\82Æ\82É\83E\83B\83\93\83h\83E\82ð`blue`\82É\90Ý\92è\82³\r
73     // \82ê\82½\90F\82Å\93h\82è\82Â\82Ô\82·. \82»\82Ì\92l\82Ì\83A\83h\83\8c\83X\82Íuserdata\82Å\83t\83B\83\8b\83^\8aÖ\90\94\82É\93n\82³\82ê,\r
74     // \82»\82±\82Å\95Ï\82¦\82ç\82ê\82é.\r
75     while (!quit) {\r
76         SDL_Event e;\r
77         while (SDL_PollEvent(&e)) {\r
78             if (e.type == SDL_QUIT) {\r
79                 quit = 1;\r
80             }\r
81         }\r
82 \r
83         SDL_SetRenderDrawColor(renderer, 0, 0, blue, 255);\r
84         SDL_RenderClear(renderer);\r
85         SDL_RenderPresent(renderer);\r
86     }\r
87 \r
88     SDL_Quit();\r
89     return 0;\r
90 }\r
91 </pre>\r
92 </code>\r
93 <h2>\8fÚ\8d×</h2>\r
94 <p>\r
95 filter\82Ì\8aÖ\90\94\83v\83\8d\83g\83^\83C\83v\82Í\r
96 </p>\r
97 <p>\r
98 <code>int YourEventFilter(void* userdata, SDL_Event* event)</code><br>\r
99 </p>\r
100 <p>\r
101 YourEventFilter\82Í\94C\88Ó\82Ì\8aÖ\90\94\96¼\82Å, \83p\83\89\83\81\81[\83^\82Í\8e\9f\82Ì\92Ê\82è\82Å\82 \82é.\r
102 </p>\r
103 <p>\r
104 <table border="1" summary="YourEventFilter">\r
105 <tr><td>userdata</td><td><a href="SDL_SetEventFilter.html">SDL_SetEventFilter()</a>\82Å\90Ý\92è\82µ\82½userdata</td></tr>\r
106 <tr><td>event</td><td>\83R\81[\83\8b\83o\83b\83N\82ð\88ø\82«\8bN\82±\82µ\82½\83C\83x\83\93\83g</td></tr>\r
107 </table>\r
108 </p>\r
109 <p>\r
110 filter\82ª1\82ð\96ß\82µ\82½\82Æ\82«, \83C\83x\83\93\83g\82Í\93à\95\94\83L\83\85\81[\82É\92Ç\89Á\82³\82ê\82é.\r
111 0\82ð\96ß\82µ\82½\82Æ\82«, \83C\83x\83\93\83g\82Í\83L\83\85\81[\82©\82ç\8dí\8f\9c\82³\82ê\82é\82ª\93à\95\94\8fó\91Ô\82Í\8dX\90V\82³\82ê\82é.\r
112 \82±\82ê\82É\82æ\82è\8eó\90M\82µ\82½\83C\83x\83\93\83g\82ð\93®\93I\82É\83t\83B\83\8b\83^\82Å\91I\91ð\82Å\82«\82é.\r
113 </p>\r
114 <p>\r
115 <em>\92\8d\88Ó:</em> \95Ê\83X\83\8c\83b\83h\82Å\8eg\97p\82·\82é\8fê\8d\87\83C\83x\83\93\83g\83t\83B\83\8b\83^\8aÖ\90\94\82Å\8ds\82¤\82±\82Æ\82É\82Í\8d×\90S\82Ì\92\8d\88Ó\82ð\95¥\82¤\82±\82Æ!\r
116 </p>\r
117 <p>\r
118 \8a\84\82è\8d\9e\82Ý(\97á\82¦\82ÎCTRL-C)\82Å\94­\90\82µ\82½\8fI\97¹\83C\83x\83\93\83g\82Í, \83A\83v\83\8a\83P\81[\83V\83\87\83\93\82É\82Í\8e\9f\82Ì\83C\83x\83\93\83g\83|\81[\83\8a\83\93\83O\82Å\93Í\82¯\82ç\82ê\82é.\r
119 </p>\r
120 <p>\r
121 <a href="SDL_QuitEvent.html">SDL_QuitEvent</a>\83C\83x\83\93\83g\82ð\88µ\82¤\8fê\8d\87\92\8d\88Ó\82·\82×\82«\82±\82Æ\82ª\82 \82é.\r
122 \82±\82Ì\8fê\8d\87\83C\83x\83\93\83g\83t\83B\83\8b\83^\82Í\83E\83B\83\93\83h\83E\83}\83l\81[\83W\83\83\82ª\83A\83v\83\8a\83P\81[\83V\83\87\83\93\83E\83B\83\93\83h\83E\82ð\95Â\82\82æ\82¤\82Æ\82µ\82½\82Æ\82«\82Ì\82Ý\8cÄ\82Î\82ê\82é.\r
123 \82à\82µ\83C\83x\83\93\83g\83t\83B\83\8b\83^\82ª1\82ð\96ß\82·\82Æ\83E\83B\83\93\83h\83E\82Í\95Â\82\82é. \82»\82ê\88È\8aO\82ð\96ß\82·\82Æ\89Â\94\\82È\82ç\82Î\8aJ\82¢\82½\82Ü\82Ü\82É\82·\82é.\r
124 </p>\r
125 <p>\r
126 \83\81\83\82\96³\8cø\89»\82³\82ê\82½\83C\83x\83\93\83g\82Í\83C\83x\83\93\83g\83t\83B\83\8b\83^\8aÖ\90\94\82É\82Í\93Í\82©\82È\82¢. <a href="SDL_EventState.html">SDL_EventState()</a>\82ð\8eQ\8fÆ\82·\82é\82±\82Æ.\r
127 </p>\r
128 <p>\r
129 \83\81\83\82\83t\83B\83\8b\83^\82·\82é\82Ì\82Å\82Í\82È\82­\92P\82É\83C\83x\83\93\83g\82ð\92²\8d¸\82µ\82½\82¢\82Ì\82Å\82 \82ê\82Î, \91ã\82í\82è\82É<a href="SDL_AddEventWatch.html">SDL_AddEventWatch()</a>\82ð\8eg\82¤\82×\82«\82Å\82 \82é.\r
130 </p>\r
131 <p>\r
132 \83\81\83\82\83R\81[\83\8b\83o\83b\83N\82Í\83\86\81[\83U\82Ì<a href="SDL_PushEvent.html">SDL_PushEvent()</a>\82Å\94­\90\82³\82¹\82½\83C\83x\83\93\83g\82Å\82à\8cÄ\82Î\82ê\82é.\r
133 \82µ\82©\82µ, <a href="SDL_PeepEvents.html">SDL_PeepEvents()</a>\82Å\94­\90\82µ\82½\83C\83x\83\93\83g\82Ì\8fê\8d\87\82Í\8cÄ\82Î\82ê\82È\82¢.\r
134 </p>\r
135 <h2>\83o\81[\83W\83\87\83\93</h2>\r
136 SDL 2.0.0\88È\8d~\r
137 <h2>\8aÖ\98A\8d\80\96Ú(\8aÖ\90\94)</h2>\r
138 <a href="SDL_AddEventWatch.html">SDL_AddEventWatch</a><br>\r
139 <a href="SDL_EventState.html">SDL_EventState</a><br>\r
140 <a href="SDL_GetEventFilter.html">SDL_GetEventFilter</a><br>\r
141 <a href="SDL_PeepEvents.html">SDL_PeepEvents</a><br>\r
142 <a href="SDL_PushEvent.html">SDL_PushEvent</a><br>\r
143 <h2>SDL Wiki\82Ö\82Ì\83\8a\83\93\83N</h2>\r
144 <a href="https://wiki.libsdl.org/SDL_SetEventFilter">SDL_SetEventFilter - SDL Wiki</a>\r
145 <hr>\r
146 </body>\r
147 </html>\r