22 #include "SDL_mouse.h"
37 const bool stereoVisual,
43 m_invalid_window(false),
44 m_sdl_custom_cursor(
NULL)
48 m_sdl_win = SDL_CreateWindow(title,
53 SDL_WINDOW_RESIZABLE | SDL_WINDOW_OPENGL | SDL_WINDOW_SHOWN);
62 SDL_RaiseWindow(m_sdl_win);
70 if (m_sdl_custom_cursor) {
71 SDL_FreeCursor(m_sdl_custom_cursor);
76 SDL_DestroyWindow(m_sdl_win);
90 if (
context->initializeDrawingContext())
101 if (m_invalid_window ==
false) {
103 m_invalid_window =
true;
113 SDL_SetWindowFullscreen(m_sdl_win, SDL_FALSE);
114 SDL_RestoreWindow(m_sdl_win);
117 SDL_SetWindowFullscreen(m_sdl_win, SDL_FALSE);
118 SDL_MaximizeWindow(m_sdl_win);
121 SDL_MinimizeWindow(m_sdl_win);
124 SDL_SetWindowFullscreen(m_sdl_win, SDL_TRUE);
135 Uint32 flags = SDL_GetWindowFlags(m_sdl_win);
137 if (flags & SDL_WINDOW_FULLSCREEN)
139 else if (flags & SDL_WINDOW_MAXIMIZED)
141 else if (flags & SDL_WINDOW_MINIMIZED)
153 SDL_SetWindowTitle(m_sdl_win, title);
158 return SDL_GetWindowTitle(m_sdl_win);
169 SDL_GetWindowSize(m_sdl_win, &
w, &h);
170 SDL_GetWindowPosition(m_sdl_win, &
x, &
y);
189 SDL_GetWindowSize(m_sdl_win, &
width,
NULL);
207 SDL_GetWindowPosition(m_sdl_win, &x_win, &y_win);
219 SDL_GetWindowPosition(m_sdl_win, &x_win, &y_win);
227 0xef, 0x01, 0xff, 0x01, 0xff, 0x01, 0x7c, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00,
228 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x38, 0x00, 0x7c, 0x00, 0xff, 0x01, 0xff, 0x01, 0xef, 0x01,
231 0x00, 0x77, 0x00, 0x1c, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08,
232 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x1c, 0x00, 0x77, 0x00, 0x00, 0x00, 0x00,
234 #define sdl_std_cursor_WIDTH_xterm 9
235 #define sdl_std_cursor_HEIGHT_xterm 16
236 #define sdl_std_cursor_HOT_X_xterm -3
237 #define sdl_std_cursor_HOT_Y_xterm -7
240 0xfc, 0x0f, 0xfc, 0x0f, 0xfc, 0x0f, 0xfe, 0x1f, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
241 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfe, 0x1f, 0xfc, 0x0f, 0xfc, 0x0f, 0xfc, 0x0f,
244 0xf8, 0x07, 0xf8, 0x07, 0xf8, 0x07, 0xfc, 0x0f, 0x86, 0x18, 0x83, 0x30, 0x81, 0xe0, 0xc1, 0xe1,
245 0xc1, 0xe1, 0x21, 0xe0, 0x13, 0x30, 0x06, 0x18, 0xfc, 0x0f, 0xf8, 0x07, 0xf8, 0x07, 0xf8, 0x07,
247 #define sdl_std_cursor_WIDTH_watch 16
248 #define sdl_std_cursor_HEIGHT_watch 16
249 #define sdl_std_cursor_HOT_X_watch -15
250 #define sdl_std_cursor_HOT_Y_watch -7
253 0xe8, 0x76, 0xfb, 0xdf, 0xfd, 0x3f, 0xfe, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xcf, 0x79, 0xc0, 0x01,
254 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x07, 0xc0, 0x07, 0xc0, 0x07, 0xc0, 0x07, 0x80, 0x03,
257 0x88, 0x04, 0x20, 0x0a, 0xc9, 0x32, 0xf2, 0x09, 0x4c, 0x06, 0x43, 0x18, 0x40, 0x00, 0x40, 0x00,
258 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x01, 0x40, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
260 #define sdl_std_cursor_WIDTH_umbrella 16
261 #define sdl_std_cursor_HEIGHT_umbrella 16
262 #define sdl_std_cursor_HOT_X_umbrella -7
263 #define sdl_std_cursor_HOT_Y_umbrella -12
266 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xc0, 0x01, 0xe0, 0x03, 0xf0, 0x07, 0xf8, 0x0f,
267 0xdc, 0x1d, 0xcc, 0x19, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01,
270 0xff, 0x1f, 0xff, 0x1f, 0x00, 0x00, 0x40, 0x00, 0xe0, 0x00, 0x50, 0x01, 0x48, 0x02, 0x44, 0x04,
271 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
273 #define sdl_std_cursor_WIDTH_top_side 15
274 #define sdl_std_cursor_HEIGHT_top_side 16
275 #define sdl_std_cursor_HOT_X_top_side -6
276 #define sdl_std_cursor_HOT_Y_top_side -14
279 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0xfc, 0xf7, 0xfc, 0xf7, 0xfc, 0xf7,
280 0xc0, 0xf7, 0xe0, 0xf7, 0x70, 0xf7, 0x38, 0xf7, 0x1c, 0xf7, 0x0c, 0xf7, 0x00, 0xf0, 0x00, 0xf0,
283 0xff, 0x3f, 0xff, 0x3f, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0xfc, 0x31, 0x80, 0x31, 0x40, 0x31,
284 0x20, 0x31, 0x10, 0x31, 0x08, 0x31, 0x04, 0x31, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00,
286 #define sdl_std_cursor_WIDTH_top_right_corner 16
287 #define sdl_std_cursor_HEIGHT_top_right_corner 16
288 #define sdl_std_cursor_HOT_X_top_right_corner -13
289 #define sdl_std_cursor_HOT_Y_top_right_corner -14
292 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0xef, 0x3f, 0xef, 0x3f, 0xef, 0x3f,
293 0xef, 0x03, 0xef, 0x07, 0xef, 0x0e, 0xef, 0x1c, 0xef, 0x38, 0xef, 0x30, 0x0f, 0x00, 0x0f, 0x00,
296 0xff, 0x3f, 0xff, 0x3f, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0xe3, 0x0f, 0x63, 0x00, 0xa3, 0x00,
297 0x23, 0x01, 0x23, 0x02, 0x23, 0x04, 0x23, 0x08, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
299 #define sdl_std_cursor_WIDTH_top_left_corner 16
300 #define sdl_std_cursor_HEIGHT_top_left_corner 16
301 #define sdl_std_cursor_HOT_X_top_left_corner 0
302 #define sdl_std_cursor_HOT_Y_top_left_corner -14
305 0x38, 0x00, 0x7c, 0x00, 0xfe, 0x00, 0xff, 0x01, 0xff, 0x01, 0x7c, 0x00, 0x7c, 0x00, 0x7c,
306 0x00, 0x7c, 0x00, 0x7c, 0x00, 0xff, 0x01, 0xff, 0x01, 0xfe, 0x00, 0x7c, 0x00, 0x38, 0x00,
309 0x10, 0x00, 0x38, 0x00, 0x7c, 0x00, 0xfe, 0x00, 0x28, 0x00, 0x28, 0x00, 0x28, 0x00, 0x28,
310 0x00, 0x28, 0x00, 0x28, 0x00, 0x28, 0x00, 0xfe, 0x00, 0x7c, 0x00, 0x38, 0x00, 0x10, 0x00,
312 #define sdl_std_cursor_WIDTH_sb_v_double_arrow 9
313 #define sdl_std_cursor_HEIGHT_sb_v_double_arrow 15
314 #define sdl_std_cursor_HOT_X_sb_v_double_arrow -3
315 #define sdl_std_cursor_HOT_Y_sb_v_double_arrow -8
357 #define sdl_std_cursor_WIDTH_sb_h_double_arrow 15
358 #define sdl_std_cursor_HEIGHT_sb_h_double_arrow 9
359 #define sdl_std_cursor_HOT_X_sb_h_double_arrow -7
360 #define sdl_std_cursor_HOT_Y_sb_h_double_arrow -4
363 0x00, 0xf0, 0x00, 0xf0, 0xc0, 0xf0, 0xc0, 0xf1, 0x80, 0xf3, 0x00, 0xf7, 0xff, 0xff, 0xff,
364 0xff, 0xff, 0xff, 0x00, 0xf7, 0x80, 0xf3, 0xc0, 0xf1, 0xc0, 0xf0, 0x00, 0xf0, 0x00, 0xf0,
367 0x00, 0x30, 0x00, 0x30, 0x40, 0x30, 0x80, 0x30, 0x00, 0x31, 0x00, 0x32, 0xff, 0x37, 0x00,
368 0x32, 0x00, 0x31, 0x80, 0x30, 0x40, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00,
370 #define sdl_std_cursor_WIDTH_right_side 16
371 #define sdl_std_cursor_HEIGHT_right_side 15
372 #define sdl_std_cursor_HOT_X_right_side -13
373 #define sdl_std_cursor_HOT_Y_right_side -7
376 0x00, 0x03, 0x80, 0x03, 0xc0, 0x03, 0xe0, 0x03, 0xf0, 0x03, 0xf8, 0x03, 0xfc, 0x03, 0xfe, 0x03,
377 0xff, 0x03, 0xff, 0x03, 0xf8, 0x03, 0xbc, 0x03, 0x3c, 0x03, 0x1e, 0x00, 0x1e, 0x00, 0x0c, 0x00,
380 0x00, 0x80, 0x00, 0xc0, 0x00, 0xe0, 0x00, 0xf0, 0x00, 0xf8, 0x00, 0xfc, 0x00, 0xfe, 0x00, 0xff,
381 0x00, 0xf8, 0x00, 0xd8, 0x00, 0x8c, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00,
383 #define sdl_std_cursor_WIDTH_right_ptr 10
384 #define sdl_std_cursor_HEIGHT_right_ptr 16
385 #define sdl_std_cursor_HOT_X_right_ptr -7
386 #define sdl_std_cursor_HOT_Y_right_ptr -14
389 0xf8, 0x00, 0xfc, 0x01, 0xfe, 0x03, 0xff, 0x07, 0x8f, 0x07, 0x9f, 0x07, 0xde, 0x07, 0xfc, 0x03,
390 0xf8, 0x01, 0xf8, 0x00, 0xf8, 0x00, 0xfc, 0x01, 0xfe, 0x03, 0xfc, 0x01, 0xf8, 0x00, 0x70, 0x00,
393 0x7c, 0x00, 0xfe, 0x00, 0xc7, 0x01, 0x83, 0x01, 0x87, 0x01, 0xc6, 0x01, 0xe0, 0x00, 0x78, 0x00,
394 0x38, 0x00, 0x28, 0x00, 0x28, 0x00, 0xee, 0x00, 0x6c, 0x00, 0x38, 0x00, 0x10, 0x00, 0x00, 0x00,
396 #define sdl_std_cursor_WIDTH_question_arrow 11
397 #define sdl_std_cursor_HEIGHT_question_arrow 16
398 #define sdl_std_cursor_HOT_X_question_arrow -4
399 #define sdl_std_cursor_HOT_Y_question_arrow -8
402 0xf0, 0x03, 0xf8, 0x07, 0xfc, 0x0f, 0xfe, 0x1f, 0xfe, 0x1f, 0xfc, 0x0f, 0xf8, 0x07, 0xf1, 0x83,
403 0xf1, 0xe3, 0xf3, 0xf3, 0xef, 0x39, 0x1e, 0x1e, 0xe0, 0x01, 0xfe, 0xc7, 0xff, 0xff, 0x0f, 0x7c,
406 0xe0, 0x01, 0xf0, 0x03, 0xf8, 0x07, 0xcc, 0x0c, 0xcc, 0x0c, 0xf8, 0x07, 0xf0, 0x03, 0xe0, 0x01,
407 0xe1, 0x21, 0xe1, 0x61, 0xc2, 0x10, 0x1c, 0x0e, 0xe0, 0x01, 0xf8, 0x47, 0x0f, 0x7c, 0x01, 0x20,
409 #define sdl_std_cursor_WIDTH_pirate 16
410 #define sdl_std_cursor_HEIGHT_pirate 16
411 #define sdl_std_cursor_HOT_X_pirate -7
412 #define sdl_std_cursor_HOT_Y_pirate -4
415 0x0f, 0x00, 0x0f, 0x00, 0x0f, 0x03, 0x8f, 0x03, 0xcf, 0x01, 0xef, 0x00, 0xff, 0xff, 0xff,
416 0xff, 0xff, 0xff, 0xef, 0x00, 0xcf, 0x01, 0x8f, 0x03, 0x0f, 0x03, 0x0f, 0x00, 0x0f, 0x00,
419 0x03, 0x00, 0x03, 0x00, 0x83, 0x00, 0x43, 0x00, 0x23, 0x00, 0x13, 0x00, 0xfb, 0x3f, 0x13,
420 0x00, 0x23, 0x00, 0x43, 0x00, 0x83, 0x00, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
422 #define sdl_std_cursor_WIDTH_left_side 16
423 #define sdl_std_cursor_HEIGHT_left_side 15
424 #define sdl_std_cursor_HOT_X_left_side 0
425 #define sdl_std_cursor_HOT_Y_left_side -7
428 0x03, 0x00, 0x07, 0x00, 0x0f, 0x00, 0x1f, 0x00, 0x3f, 0x00, 0x7f, 0x00, 0xff, 0x00, 0xff, 0x01,
429 0xff, 0x03, 0xff, 0x03, 0x7f, 0x00, 0xf7, 0x00, 0xf3, 0x00, 0xe0, 0x01, 0xe0, 0x01, 0xc0, 0x00,
432 0x00, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0e, 0x00, 0x1e, 0x00, 0x3e, 0x00, 0x7e, 0x00, 0xfe, 0x00,
433 0xfe, 0x00, 0x3e, 0x00, 0x36, 0x00, 0x62, 0x00, 0x60, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0x00, 0x00,
435 #define sdl_std_cursor_WIDTH_left_ptr 10
436 #define sdl_std_cursor_HEIGHT_left_ptr 16
437 #define sdl_std_cursor_HOT_X_left_ptr -8
438 #define sdl_std_cursor_HOT_Y_left_ptr -14
441 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xff, 0xff, 0xff, 0xff,
442 0xff, 0xff, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01,
445 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x7f, 0xff,
446 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00,
448 #define sdl_std_cursor_WIDTH_crosshair 16
449 #define sdl_std_cursor_HEIGHT_crosshair 16
450 #define sdl_std_cursor_HOT_X_crosshair -7
451 #define sdl_std_cursor_HOT_Y_crosshair -8
454 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xcc, 0x19, 0xdc, 0x1d,
455 0xf8, 0x0f, 0xf0, 0x07, 0xe0, 0x03, 0xc0, 0x01, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f,
458 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x44, 0x04, 0x48, 0x02,
459 0x50, 0x01, 0xe0, 0x00, 0x40, 0x00, 0x00, 0x00, 0xff, 0x1f, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00,
461 #define sdl_std_cursor_WIDTH_bottom_side 15
462 #define sdl_std_cursor_HEIGHT_bottom_side 16
463 #define sdl_std_cursor_HOT_X_bottom_side -6
464 #define sdl_std_cursor_HOT_Y_bottom_side -1
467 0x00, 0xf0, 0x00, 0xf0, 0x0c, 0xf7, 0x1c, 0xf7, 0x38, 0xf7, 0x70, 0xf7, 0xe0, 0xf7, 0xc0, 0xf7,
468 0xfc, 0xf7, 0xfc, 0xf7, 0xfc, 0xf7, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
471 0x00, 0x30, 0x00, 0x30, 0x04, 0x31, 0x08, 0x31, 0x10, 0x31, 0x20, 0x31, 0x40, 0x31, 0x80, 0x31,
472 0xfc, 0x31, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0xff, 0x3f, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00,
474 #define sdl_std_cursor_WIDTH_bottom_right_corner 16
475 #define sdl_std_cursor_HEIGHT_bottom_right_corner 16
476 #define sdl_std_cursor_HOT_X_bottom_right_corner -13
477 #define sdl_std_cursor_HOT_Y_bottom_right_corner -1
480 0x0f, 0x00, 0x0f, 0x00, 0xef, 0x30, 0xef, 0x38, 0xef, 0x1c, 0xef, 0x0e, 0xef, 0x07, 0xef, 0x03,
481 0xef, 0x3f, 0xef, 0x3f, 0xef, 0x3f, 0x0f, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
484 0x03, 0x00, 0x03, 0x00, 0x23, 0x08, 0x23, 0x04, 0x23, 0x02, 0x23, 0x01, 0xa3, 0x00, 0x63, 0x00,
485 0xe3, 0x0f, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0xff, 0x3f, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00,
487 #define sdl_std_cursor_WIDTH_bottom_left_corner 16
488 #define sdl_std_cursor_HEIGHT_bottom_left_corner 16
489 #define sdl_std_cursor_HOT_X_bottom_left_corner 0
490 #define sdl_std_cursor_HOT_Y_bottom_left_corner -1
493 0x00, 0xe0, 0x00, 0xf8, 0x00, 0xfe, 0x80, 0x7f, 0xe0, 0x7f, 0xf8, 0x3f, 0xfc, 0x3f, 0xfc, 0x1f,
494 0xe0, 0x1f, 0xf0, 0x0f, 0xf8, 0x0f, 0x7c, 0x07, 0x3e, 0x07, 0x1f, 0x02, 0x0e, 0x00, 0x04, 0x00,
497 0x00, 0x30, 0x00, 0x3c, 0x00, 0x1f, 0xc0, 0x1f, 0xf0, 0x0f, 0xfc, 0x0f, 0xc0, 0x07, 0xe0, 0x07,
498 0x70, 0x03, 0x38, 0x03, 0x1c, 0x01, 0x0e, 0x01, 0x07, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
500 #define sdl_std_cursor_WIDTH_arrow 16
501 #define sdl_std_cursor_HEIGHT_arrow 16
502 #define sdl_std_cursor_HOT_X_arrow -13
503 #define sdl_std_cursor_HOT_Y_arrow -14
511 const Uint8 *
data,
const Uint8 *
mask,
int w,
int h,
int hot_x,
int hot_y)
517 Uint8 datab = 0, maskb = 0;
518 const Uint32 black = 0xFF000000;
519 const Uint32 white = 0xFFFFFFFF;
520 const Uint32 transparent = 0x00000000;
526 surface = SDL_CreateRGBSurface(0,
w, h, 32, 0x00FF0000, 0x0000FF00, 0x000000FF, 0xFF000000);
530 for (
y = 0;
y < h; ++
y) {
532 for (
x = 0;
x <
w; ++
x) {
538 datab = (datab * 0x0202020202ULL & 0x010884422010ULL) % 1023;
539 maskb = (maskb * 0x0202020202ULL & 0x010884422010ULL) % 1023;
542 *pixel++ = (datab & 0x80) ? white : black;
545 *pixel++ = (datab & 0x80) ? white : transparent;
552 cursor = SDL_CreateColorCursor(
surface, hot_x, hot_y);
563 #define DEF_CURSOR(name, ind) \
565 sdl_std_cursor_array[(int)ind] = sdl_ghost_CreateCursor( \
566 sdl_std_cursor_##name, \
567 sdl_std_cursor_mask_##name, \
568 sdl_std_cursor_WIDTH_##name, \
569 sdl_std_cursor_HEIGHT_##name, \
570 (sdl_std_cursor_WIDTH_##name + (sdl_std_cursor_HOT_X_##name)) - 1, \
571 (sdl_std_cursor_HEIGHT_##name + (sdl_std_cursor_HOT_Y_##name)) - 1); \
572 assert(sdl_std_cursor_array[(int)ind] != NULL); \
612 if (cursor ==
NULL) {
616 SDL_SetCursor(cursor);
633 if (m_sdl_custom_cursor) {
634 SDL_FreeCursor(m_sdl_custom_cursor);
638 (
const Uint8 *)bitmap, (
const Uint8 *)
mask, sizex, sizex, hotX, hotY);
640 SDL_SetCursor(m_sdl_custom_cursor);
646 SDL_ShowCursor(visible);
652 int displayIndex = SDL_GetWindowDisplayIndex(m_sdl_win);
653 if (displayIndex < 0) {
658 if (SDL_GetDisplayDPI(displayIndex, &ddpi,
NULL,
NULL) != 0) {
#define GHOST_OPENGL_SDL_RESET_NOTIFICATION_STRATEGY
#define GHOST_OPENGL_SDL_CONTEXT_FLAGS
@ GHOST_kWindowStateMinimized
@ GHOST_kWindowStateMaximized
@ GHOST_kWindowStateNormal
@ GHOST_kWindowStateFullScreen
@ GHOST_kStandardCursorBottomLeftCorner
@ GHOST_kStandardCursorHelp
@ GHOST_kStandardCursorCopy
@ GHOST_kStandardCursorWait
@ GHOST_kStandardCursorTopSide
@ GHOST_kStandardCursorCrosshair
@ GHOST_kStandardCursorLeftRight
@ GHOST_kStandardCursorPencil
@ GHOST_kStandardCursorUpDown
@ GHOST_kStandardCursorBottomSide
@ GHOST_kStandardCursorInfo
@ GHOST_kStandardCursorTopLeftCorner
@ GHOST_kStandardCursorBottomRightCorner
@ GHOST_kStandardCursorDefault
@ GHOST_kStandardCursorRightSide
@ GHOST_kStandardCursorRightArrow
@ GHOST_kStandardCursorTopRightCorner
@ GHOST_kStandardCursorDestroy
@ GHOST_kStandardCursorNumCursors
@ GHOST_kStandardCursorLeftSide
@ GHOST_kStandardCursorText
@ GHOST_kStandardCursorLeftArrow
unsigned int GHOST_TUns32
unsigned short GHOST_TUns16
GHOST_TDrawingContextType
@ GHOST_kDrawingContextTypeOpenGL
unsigned char GHOST_TUns8
static unsigned char sdl_std_cursor_mask_arrow[]
static unsigned char sdl_std_cursor_mask_right_side[]
static SDL_Cursor * sdl_ghost_CreateCursor(const Uint8 *data, const Uint8 *mask, int w, int h, int hot_x, int hot_y)
static unsigned char sdl_std_cursor_top_side[]
static unsigned char sdl_std_cursor_mask_pirate[]
static unsigned char sdl_std_cursor_mask_top_left_corner[]
static unsigned char sdl_std_cursor_mask_top_right_corner[]
static unsigned char sdl_std_cursor_mask_bottom_right_corner[]
static unsigned char sdl_std_cursor_umbrella[]
static unsigned char sdl_std_cursor_bottom_right_corner[]
static unsigned char sdl_std_cursor_mask_right_ptr[]
static unsigned char sdl_std_cursor_question_arrow[]
static unsigned char sdl_std_cursor_top_left_corner[]
static unsigned char sdl_std_cursor_left_ptr[]
static unsigned char sdl_std_cursor_mask_bottom_left_corner[]
static unsigned char sdl_std_cursor_pirate[]
static unsigned char sdl_std_cursor_mask_sb_v_double_arrow[]
static unsigned char sdl_std_cursor_right_ptr[]
static unsigned char sdl_std_cursor_mask_bottom_side[]
static unsigned char sdl_std_cursor_top_right_corner[]
static unsigned char sdl_std_cursor_right_side[]
static unsigned char sdl_std_cursor_mask_watch[]
static unsigned char sdl_std_cursor_mask_crosshair[]
static unsigned char sdl_std_cursor_left_side[]
static unsigned char sdl_std_cursor_watch[]
static unsigned char sdl_std_cursor_sb_h_double_arrow[]
static unsigned char sdl_std_cursor_mask_left_ptr[]
static unsigned char sdl_std_cursor_xterm[]
static unsigned char sdl_std_cursor_bottom_left_corner[]
static unsigned char sdl_std_cursor_mask_left_side[]
static unsigned char sdl_std_cursor_crosshair[]
static SDL_Cursor * getStandardCursorShape(GHOST_TStandardCursor shape)
static unsigned char sdl_std_cursor_mask_top_side[]
static unsigned char sdl_std_cursor_mask_question_arrow[]
static unsigned char sdl_std_cursor_mask_umbrella[]
#define DEF_CURSOR(name, ind)
static unsigned char sdl_std_cursor_mask_sb_h_double_arrow[]
static SDL_Cursor * sdl_std_cursor_array[(int) GHOST_kStandardCursorNumCursors]
static unsigned char sdl_std_cursor_bottom_side[]
static unsigned char sdl_std_cursor_arrow[]
static unsigned char sdl_std_cursor_sb_v_double_arrow[]
static unsigned char sdl_std_cursor_mask_xterm[]
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei width
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei height
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint y
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble top
static btDbvtVolume bounds(btDbvtNode **leaves, int count)
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.
void addDirtyWindow(GHOST_WindowSDL *bad_wind)
GHOST_TSuccess setClientHeight(GHOST_TUns32 height)
void setTitle(const char *title)
GHOST_TSuccess setClientSize(GHOST_TUns32 width, GHOST_TUns32 height)
GHOST_TSuccess setWindowCursorVisibility(bool visible)
GHOST_TSuccess hasCursorShape(GHOST_TStandardCursor shape)
GHOST_TSuccess setWindowCustomCursorShape(GHOST_TUns8 *bitmap, GHOST_TUns8 *mask, int sizex, int sizey, int hotX, int hotY, bool canInvertColor)
GHOST_Context * newDrawingContext(GHOST_TDrawingContextType type)
void clientToScreen(GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST_TInt32 &outX, GHOST_TInt32 &outY) const
std::string getTitle() const
GHOST_TSuccess invalidate(void)
GHOST_TWindowState getState() const
void getClientBounds(GHOST_Rect &bounds) const
void screenToClient(GHOST_TInt32 inX, GHOST_TInt32 inY, GHOST_TInt32 &outX, GHOST_TInt32 &outY) const
GHOST_TSuccess setState(GHOST_TWindowState state)
void getWindowBounds(GHOST_Rect &bounds) const
GHOST_WindowSDL(GHOST_SystemSDL *system, const char *title, GHOST_TInt32 left, GHOST_TInt32 top, GHOST_TUns32 width, GHOST_TUns32 height, GHOST_TWindowState state, GHOST_TDrawingContextType type=GHOST_kDrawingContextTypeNone, const bool stereoVisual=false, const bool exclusive=false, const GHOST_IWindow *parentWindow=NULL)
GHOST_TSuccess setClientWidth(GHOST_TUns32 width)
GHOST_TSuccess setWindowCursorShape(GHOST_TStandardCursor shape)
GHOST_TUns16 getDPIHint()
GHOST_TSuccess setWindowCursorGrab(GHOST_TGrabCursorMode mode)
GHOST_TSuccess setDrawingContextType(GHOST_TDrawingContextType type)
GHOST_TSuccess releaseNativeHandles()
virtual bool getValid() const
struct @203::@204 surface
struct SELECTID_Context context
ccl_device_inline float4 mask(const int4 &mask, const float4 &a)