static void frame_event_cb (CoglOnscreen *onscreen, CoglFrameEvent event, CoglFrameInfo *info, void *user_data) { if (event == COGL_FRAME_EVENT_SYNC) paint_cb (user_data); }
static void frame_event_cb(cg_onscreen_t *onscreen, cg_frame_event_t event, cg_frame_info_t *info, void *user_data) { if (event == CG_FRAME_EVENT_SYNC){ Data *data = user_data; paint_cb(&data->idle); } }
static LRESULT CALLBACK window_cb(HWND window, UINT message, WPARAM wparam, LPARAM lparam) { dpy_flushkeys(); switch (message) { case WM_CLOSE: return 0; case WM_EXITSIZEMOVE: if (!isfullscreen) { window_geometry_valid = true; GetWindowRect(window, &window_geometry); write_window_geometry(); } break; case WM_SIZE: if (!window_created) { create_cb(); window_created = true; } resize_buffer(); break; case WM_SIZING: sizing_cb(wparam, (RECT*) lparam); goto delegate; case WM_ERASEBKGND: return 1; case WM_PAINT: { PAINTSTRUCT ps; BeginPaint(window, &ps); paint_cb(window, &ps, ps.hdc); EndPaint(window, &ps); break; } case WM_PRINTCLIENT: { PAINTSTRUCT ps; ps.hdc = (HDC) wparam; GetClientRect(window, &ps.rcPaint); paint_cb(window, &ps, ps.hdc); break; } case WM_CHAR: { unicode_key(wparam, lparam); break; } case WM_KEYDOWN: case WM_SYSKEYDOWN: { if (special_key(wparam, lparam)) return 1; break; } case WM_SYSCOMMAND: { switch (wparam) { case MENUITEM_SETFONT: setfont_cb(); break; case MENUITEM_FULLSCREEN: fullscreen_cb(); break; } goto delegate; } case WM_TIMER: { if (wparam == TIMEOUT_TIMER_ID) { dpy_queuekey(-VK_TIMEOUT); break; } goto delegate; } delegate: default: return DefWindowProcW(window, message, wparam, lparam); } return 0; }