4 #include <Evas_Engine_GL_SDL.h>
7 engine_gl_sdl_args(const char *engine, int width, int height)
9 Evas_Engine_Info_GL_SDL *einfo;
12 evas_output_method_set(evas, evas_render_method_lookup("gl_sdl"));
14 einfo = (Evas_Engine_Info_GL_SDL *) evas_engine_info_get(evas);
17 printf("Evas wasn't build with GL SDL backend.\n");
21 /* the following is specific to the engine */
22 einfo->flags.fullscreen = fullscreen;
23 einfo->flags.noframe = 0;
25 if (!evas_engine_info_set(evas, (Evas_Engine_Info *) einfo))
27 printf("Evas could not initialize the GL SDL Engine\n");
35 engine_gl_sdl_loop(void)
39 while(SDL_PollEvent(&event))
44 evas_event_feed_mouse_move(evas, event.motion.x, event.motion.y, 0, NULL);
46 case SDL_MOUSEBUTTONDOWN:
47 evas_event_feed_mouse_move(evas, event.button.x, event.button.y, 0, NULL);
48 evas_event_feed_mouse_down(evas, event.button.state, EVAS_BUTTON_NONE, 0, NULL);
50 case SDL_MOUSEBUTTONUP:
51 evas_event_feed_mouse_move(evas, event.button.x, event.button.y, 0, NULL);
52 evas_event_feed_mouse_up(evas, event.button.state, EVAS_BUTTON_NONE, 0, NULL);
55 evas_output_viewport_set(evas, 0, 0,
56 event.resize.w, event.resize.w);
57 evas_output_size_set(evas, event.resize.w, event.resize.w);
58 evas_output_size_get(evas, &win_w, &win_h);
61 evas_output_size_get(evas, &win_w, &win_h);
62 evas_damage_rectangle_add(evas, 0, 0, win_w, win_h);
65 switch (event.key.keysym.sym)
69 evas_key_modifier_on(evas, "Shift");
73 evas_key_modifier_on(evas, "Control");
78 evas_key_modifier_on(evas, "Alt");
82 evas_key_modifier_on(evas, "Super");
85 if (evas_key_lock_is_set(evas_key_lock_get(evas), "Caps_Lock"))
86 evas_key_lock_off(evas, "Caps_Lock");
88 evas_key_lock_on(evas, "Caps_Lock");
91 if (evas_key_lock_is_set(evas_key_lock_get(evas), "Num_Lock"))
92 evas_key_lock_off(evas, "Num_Lock");
94 evas_key_lock_on(evas, "Num_Lock");
97 if (evas_key_lock_is_set(evas_key_lock_get(evas), "Scroll_Lock"))
98 evas_key_lock_off(evas, "Scroll_Lock");
100 evas_key_lock_on(evas, "Scroll_Lock");
104 evas_event_feed_key_down(evas, "Escape", "Escape", NULL, NULL, 0, NULL);
108 evas_event_feed_key_down(evas, "Return", "Return", NULL, NULL, 0, NULL);
110 case SDLK_LEFT: evas_event_feed_key_down(evas, "Left", "Left", NULL, NULL, 0, NULL); break;
111 case SDLK_RIGHT: evas_event_feed_key_down(evas, "Right", "Right", NULL, NULL, 0, NULL); break;
113 if (evas_key_lock_is_set(evas_key_lock_get(evas), "Caps_Lock"))
114 evas_event_feed_key_down(evas, "Q", "Q", NULL, NULL, 0, NULL);
116 evas_event_feed_key_down(evas, "q", "q", NULL, NULL, 0, NULL);
123 switch (event.key.keysym.sym)
127 evas_key_modifier_off(evas, "Shift");
131 evas_key_modifier_off(evas, "Control");
136 evas_key_modifier_off(evas, "Alt");
140 evas_key_modifier_off(evas, "Super");
142 case SDLK_ESCAPE: evas_event_feed_key_up(evas, "Escape", "Escape", NULL, NULL, 0, NULL); break;
143 case SDLK_RETURN: evas_event_feed_key_up(evas, "Return", "Return", NULL, NULL, 0, NULL); break;
144 case SDLK_LEFT: evas_event_feed_key_up(evas, "Left", "Left", NULL, NULL, 0, NULL); break;
145 case SDLK_RIGHT: evas_event_feed_key_up(evas, "Right", "Right", NULL, NULL, 0, NULL); break;
147 if (evas_key_lock_is_set(evas_key_lock_get(evas), "Caps_Lock"))
148 evas_event_feed_key_up(evas, "Q", "Q", NULL, NULL, 0, NULL);
150 evas_event_feed_key_up(evas, "q", "q", NULL, NULL, 0, NULL);
159 case SDL_ACTIVEEVENT:
160 case SDL_JOYAXISMOTION:
161 case SDL_JOYBALLMOTION:
162 case SDL_JOYHATMOTION:
163 case SDL_JOYBUTTONDOWN:
164 case SDL_JOYBUTTONUP:
172 engine_gl_sdl_shutdown(void)